
:root{--bg:#090909;--panel:#151515;--gold:#d5a33b;--text:#f3f3f3;--muted:#aaa;--red:#8e1d1d}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Noto Sans JP",system-ui,sans-serif;line-height:1.7}
a{color:inherit}.hero{min-height:68vh;background:url("assets/hero.svg") center/cover;display:flex;align-items:flex-end;padding:7vw}
.hero h1{font-size:clamp(2.2rem,7vw,6rem);margin:0;line-height:1}.hero p{max-width:760px;color:#ddd}
nav{position:sticky;top:0;z-index:10;background:#090909e8;backdrop-filter:blur(12px);padding:14px 5vw;border-bottom:1px solid #2b2b2b;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
nav strong{color:var(--gold);margin-right:auto}.container{width:min(1320px,92vw);margin:auto;padding:48px 0}
.controls{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:28px}.controls input,.controls select{background:#161616;color:white;border:1px solid #333;border-radius:8px;padding:14px;font-size:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.card{background:var(--panel);border:1px solid #272727;border-radius:12px;overflow:hidden;text-decoration:none;transition:.2s}
.card:hover{transform:translateY(-4px);border-color:var(--gold)}.card img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}.card .body{padding:16px}.card h3{margin:0 0 5px}.meta{color:var(--gold);font-size:.85rem}.muted{color:var(--muted)}
.profile-hero{display:block;width:min(720px,92vw);aspect-ratio:4/5;object-fit:cover;margin:24px auto 0;border:1px solid #2b2b2b;border-radius:18px;background:#121212}.profile{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:36px}.panel{background:var(--panel);padding:24px;border-radius:12px;border:1px solid #292929}
.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{background:#2c1717;color:#f0c96c;padding:4px 10px;border-radius:999px;font-size:.85rem}
.video{aspect-ratio:16/9;width:100%;border:0;border-radius:10px}.sources a,.button{display:inline-block;text-decoration:none;border:1px solid #555;border-radius:8px;padding:9px 12px;margin:5px 5px 5px 0}.button{background:var(--red);border-color:var(--red)}
footer{text-align:center;color:#777;padding:50px 20px;border-top:1px solid #222}
@media(max-width:760px){.profile{grid-template-columns:1fr}.controls{grid-template-columns:1fr}.hero{min-height:52vh}}

.toc-wrap{display:grid;gap:28px;margin:34px 0 44px}
.toc-section{background:var(--panel);border:1px solid #292929;border-radius:14px;overflow:hidden}
.toc-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:linear-gradient(90deg,#2b1010,#171717);border-bottom:1px solid #303030}
.toc-header h2{margin:0;font-size:1.35rem}.toc-count{color:var(--gold);font-size:.9rem}
.name-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0}
.name-link{display:block;padding:13px 16px;border-right:1px solid #242424;border-bottom:1px solid #242424;text-decoration:none;background:#121212}
.name-link:hover{background:#211313;color:#f0c96c}.name-link strong{display:block}.name-link span{display:block;color:var(--muted);font-size:.83rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.section-title{margin-top:52px}.search-note{color:var(--muted);margin-top:-12px;margin-bottom:24px}
@media(max-width:560px){.name-index{grid-template-columns:1fr 1fr}.name-link{padding:11px 12px}.name-link span{display:none}}

.toc-wrap{display:grid;gap:28px;margin:34px 0 44px}
.toc-section{background:var(--panel);border:1px solid #292929;border-radius:14px;overflow:hidden}
.toc-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:linear-gradient(90deg,#2b1010,#171717);border-bottom:1px solid #303030}
.toc-header h2{margin:0;font-size:1.35rem}
.toc-count{color:var(--gold);font-size:.9rem}
.name-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;padding:16px}
.name-link{display:block;text-decoration:none;background:#121212;border:1px solid #242424;border-radius:12px;overflow:hidden;transition:.18s}
.name-link:hover{transform:translateY(-3px);border-color:var(--gold);background:#181212}
.name-link img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.name-link .name-body{padding:10px 12px}
.name-link strong{display:block;line-height:1.35}
.name-link span{display:block;color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}
.section-title{margin-top:52px}
.search-note{color:var(--muted);margin-top:-12px;margin-bottom:24px}
@media(max-width:560px){
  .name-index{grid-template-columns:1fr 1fr;padding:12px;gap:10px}
  .name-link .name-body{padding:8px 10px}
}
