.comic{font-family:var(--font-comic)}main header{text-align:center;padding:3.5rem 1.5rem 2rem;position:relative;overflow:hidden}main header:before{content:"";pointer-events:none;background:radial-gradient(55% 60% at 50% 10%,#9b6bff38,#0000 70%);position:absolute;inset:0}main header .eyebrow{color:var(--gold);font-size:1.3rem;position:relative}main header h1{margin-top:.4rem;font-size:clamp(2.2rem,5.5vw,3.2rem);position:relative}main header p{max-width:34rem;color:var(--ink-dim);margin:1rem auto 0;font-size:.9rem;line-height:1.6;position:relative}.toc{z-index:30;backdrop-filter:blur(6px);background:#0b0620eb;border-bottom:1px solid #ffffff14;flex-wrap:wrap;justify-content:center;gap:.4rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.toc button{font-family:var(--font-body);cursor:pointer;color:var(--ink-dim);background:0 0;border:1px solid #ffffff14;border-radius:999px;padding:.4rem .9rem;font-size:.8rem;transition:border-color .15s,color .15s}.toc button:hover{color:var(--ink)}.toc button.current{color:var(--ink);font-weight:700}.shelf-wrap{max-width:60rem;margin:0 auto;padding:2.5rem 1.25rem 2rem}.shelf-hint{text-align:center;color:var(--ink-faint);margin:0 0 1.75rem;font-size:1.05rem}.shelf{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1.5rem;display:grid}.book-cover{cursor:pointer;aspect-ratio:3/4;background:linear-gradient(155deg,#b8863a,#4a2f0f 35%,#2a1a08 65%,#b8863a);border:none;border-radius:.8rem;padding:3px;transition:transform .18s,box-shadow .18s;box-shadow:0 14px 30px #00000073}.book-cover:hover{transform:translateY(-6px)scale(1.02);box-shadow:0 20px 40px #0000008c}.book-cover-inner{text-align:center;border:1px solid #ffffff14;border-radius:.6rem;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:1.25rem 1rem;display:flex}.book-cover .sigil{background:radial-gradient(circle at 32% 28%, #ffffff24, transparent 60%), var(--bg-elev-2);border-radius:999px;flex:none;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;display:flex}.book-cover .sigil svg{width:1.7rem;height:1.7rem}.book-cover h3{margin-top:.8rem;font-size:1.35rem}.book-cover .hall{font-family:var(--font-comic);color:var(--ink-faint);margin-top:.25rem;font-size:.85rem}.book-cover .meta{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin-top:.7rem;font-size:.62rem}.book-wrap{max-width:60rem;margin:0 auto;padding:1.5rem 1.25rem 2rem}.back-btn{font-family:var(--font-comic);cursor:pointer;color:var(--ink-dim);background:0 0;border:none;margin:0 0 1rem;padding:0;font-size:1.05rem;display:block}.back-btn:hover{color:var(--gold)}.book{background:linear-gradient(155deg,#b8863a,#4a2f0f 35%,#2a1a08 65%,#b8863a);border-radius:1.1rem;padding:3px;position:relative;box-shadow:0 24px 60px #0000008c}.book:before,.book:after{content:"✦";color:#ffe0968c;z-index:2;font-size:1rem;position:absolute}.book:before{top:.5rem;left:.6rem}.book:after{bottom:.5rem;right:.6rem}.page{background:radial-gradient(120% 90% at 50% -10%, #9b6bff24, transparent 60%), linear-gradient(160deg, var(--bg-elev), var(--bg-elev-2));border-radius:.9rem;min-height:24rem;padding:2.25rem 1.75rem 1.75rem;transition:opacity .22s,transform .22s;position:relative}.page.turning{opacity:0;transform:translate(12px)}.page .chapter{font-family:var(--font-comic);text-align:center;font-size:1.05rem}.page .sc-head{text-align:center;flex-direction:column;align-items:center;margin:.6rem 0 1.6rem;display:flex}.page .sc-icon{background:radial-gradient(circle at 32% 28%, #ffffff24, transparent 60%), var(--bg-elev-2);border-radius:999px;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;margin-bottom:.6rem;display:flex}.page .sc-icon svg{width:1.7rem;height:1.7rem}.page .sc-head h2{font-size:1.7rem}.page .sc-head .role{font-family:var(--font-comic);color:var(--ink-faint);margin-top:.15rem;font-size:1.1rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.9rem;display:grid}.hs-card{border:2px solid var(--c,#ffffff14);background:linear-gradient(160deg, var(--bg-elev), #0d0620);border-radius:.8rem .8rem .5rem .5rem;flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 18px #0006}.hs-card:hover{transform:translateY(-3px);box-shadow:0 14px 26px #00000080}.hs-card .gem{z-index:2;border:1.5px solid var(--c,#ffffff14);width:1.5rem;height:1.5rem;color:var(--c,var(--ink-faint));background:var(--bg);border-radius:999px;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;top:.4rem;left:.4rem}.hs-card .portrait{background:radial-gradient(circle, color-mix(in srgb, var(--c,var(--violet)) 30%, transparent), transparent 75%), var(--bg-elev-2);border-bottom:1px solid #ffffff14;justify-content:center;align-items:center;height:4rem;display:flex}.hs-card .portrait svg{width:1.9rem;height:1.9rem}.hs-card .name-band{text-align:center;background:linear-gradient(#ffffff0d,#0000);border-bottom:1px solid #ffffff14;padding:.4rem .55rem;font-size:.76rem;font-weight:700}.hs-card .rules{color:var(--ink-dim);flex:1;padding:.5rem .6rem .7rem;font-size:.68rem;line-height:1.45}.page-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.page-controls button{font-family:var(--font-comic);cursor:pointer;color:var(--ink-dim);background:0 0;border:none;padding:.3rem .6rem;font-size:1.1rem;transition:color .15s}.page-controls button:hover:not(:disabled){color:var(--gold)}.page-controls button:disabled{opacity:.3;cursor:default}.page-info{text-align:center;color:var(--ink-faint);flex:1;font-size:.75rem}.page-dots{justify-content:center;gap:.35rem;margin-top:.5rem;display:flex}.page-dots span{background:#ffffff14;border-radius:999px;width:.4rem;height:.4rem;display:inline-block}.page-dots span.current{background:var(--gold)}.codex-footnote{text-align:center;color:var(--ink-faint);padding:1.5rem 1.5rem 3rem;font-size:.75rem;line-height:1.9}.codex-footnote a{color:var(--ink-faint)}.codex-footnote a:hover{color:var(--ink-dim)}@media (prefers-reduced-motion:reduce){.page{transition:none}}
