:root { --bg:#0e0f14; --card:#171923; --line:#2a2d3a; --text:#f1ece1; --muted:#9a9aa8; --gold:#d4a85a; --gold2:#b88a3e; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin:0; background:radial-gradient(1200px 500px at 50% -200px,#1d2030,var(--bg)); color:var(--text);
  font:17px/1.6 -apple-system,"Hiragino Sans","Noto Sans JP",sans-serif; padding:env(safe-area-inset-top) env(safe-area-inset-right) 40px env(safe-area-inset-left); min-height:100vh; }
.top { padding:18px 18px 4px; max-width:880px; margin:0 auto; }
h1 { margin:0; font-size:1.5rem; letter-spacing:.08em; color:var(--gold); font-weight:700; }
main { max-width:880px; margin:0 auto; padding:0 18px; }
section { margin-top:26px; }
h2 { font-size:1.15rem; margin:0 0 10px; letter-spacing:.05em; }
.row { display:flex; gap:14px; overflow-x:auto; padding:2px 2px 12px; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; }
.cover { flex:0 0 132px; scroll-snap-align:start; position:relative; }
.cover a { display:block; color:inherit; text-decoration:none; }
.cover img { width:132px; height:188px; object-fit:cover; border-radius:10px; background:var(--card); display:block; box-shadow:0 6px 18px #0009; }
.cover .t { font-size:.9rem; margin-top:6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.35; }
.star { position:absolute; top:4px; right:4px; width:44px; height:44px; border:0; border-radius:50%; background:#000a; color:#fff; font-size:1.35rem; line-height:44px; padding:0; }
.star[aria-pressed="true"] { color:var(--gold); }
.resume { display:flex; gap:16px; background:var(--card); border:1px solid var(--line); border-radius:16px; padding:14px; align-items:center; }
.resume img { width:112px; height:160px; object-fit:cover; border-radius:10px; flex:0 0 auto; background:#000; }
.resume .info { min-width:0; flex:1; }
.resume .name { font-weight:700; font-size:1.1rem; line-height:1.35; overflow-wrap:anywhere; }
.resume .vol { color:var(--muted); margin:2px 0 8px; }
.bar { height:8px; background:#2a2d3a; border-radius:4px; overflow:hidden; }
.bar > i { display:block; height:100%; background:linear-gradient(90deg,var(--gold2),var(--gold)); }
.pct { color:var(--muted); font-size:.9rem; margin:4px 0 12px; }
.btn { display:block; text-align:center; text-decoration:none; font-weight:700; border-radius:14px; padding:14px 18px; min-height:52px; line-height:24px; }
.btn.gold { background:linear-gradient(180deg,var(--gold),var(--gold2)); color:#1b1408; }
.btn.big { font-size:1.2rem; padding:18px; }
.libs { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.libs a { display:block; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 16px; min-height:52px; color:var(--text); text-decoration:none; }
.panel { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:18px; margin-top:26px; }
.note { color:var(--muted); font-size:.88rem; margin:4px 0 0; }
.empty { color:var(--muted); padding:8px 0; margin:0; }
[hidden] { display:none !important; }
@media (min-width:700px) { .cover { flex-basis:160px; } .cover img { width:160px; height:228px; } }
