.grimoire-stage{background:radial-gradient(70% 60% at 50% 55%,#2a2016 0%,#14110e 60%,#0b0907 100%);height:100svh;position:relative;overflow:hidden}.grimoire-stage:after{content:"";pointer-events:none;background:radial-gradient(#0000 55%,#000000a6 100%);position:absolute;inset:0}.grimoire{--page-w:min(40vw,calc((100svh - 9rem)/1.38),540px);--page-h:calc(var(--page-w)*1.38)}@media (max-width:767px){.grimoire{--page-w:min(84vw,calc((100svh - 8rem)/1.42));--page-h:calc(var(--page-w)*1.42)}}.book{width:calc(var(--page-w)*2);height:var(--page-h);perspective:2800px;position:relative}.book--single{width:var(--page-w)}.book-half{width:var(--page-w);height:100%;position:absolute;top:0}.book-half--left{left:0}.book-half--right{left:var(--page-w)}.book--single .book-half--right{left:0}.leaf{transform-origin:0;transform-style:preserve-3d;will-change:transform}.face{backface-visibility:hidden;position:absolute;inset:0;overflow:hidden;container-type:size}.face--back{transform:rotateY(180deg)}.page-block{box-shadow:1px 1px #cdbb97,2px 2px #b9a782,3px 3px #d3c19d,4px 4px #b4a27d,5px 5px #cfbd99,6px 6px #a89672,7px 8px 18px #0000008c}.page-block--left{box-shadow:-1px 1px #cdbb97,-2px 2px #b9a782,-3px 3px #d3c19d,-4px 4px #b4a27d,-5px 5px #cfbd99,-6px 6px #a89672,-7px 8px 18px #0000008c}.paper{color:var(--ink);background-color:#e8d9b9;background-image:radial-gradient(at 30% 20%,#fffaeb8c,#0000 60%),radial-gradient(at 80% 90%,#966e3c2e,#0000 55%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.25 0 0 0 0 0.12 0 0 0 0.16 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.paper--right{box-shadow:inset 2.2rem 0 2.5rem -1.6rem #462d148c}.paper--left{box-shadow:inset -2.2rem 0 2.5rem -1.6rem #462d148c}.leather{color:#e3c27a;background-color:#3b1d14;background-image:radial-gradient(at 35% 30%,#8c462873,#0000 60%),radial-gradient(at 70% 85%,#00000073,#0000 60%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.55' numOctaves='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.05 0 0 0 0 0.02 0 0 0 0.55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");box-shadow:inset 1.4rem 0 1.6rem -.8rem #000000b3,inset 0 0 0 1px #0009}.gilt{color:#d9b56a;text-shadow:0 1px #ffe6aa59,0 -1px #000c}.endpaper{background-color:#2d1a12;background-image:repeating-radial-gradient(circle at 20% 30%,#b8864b1f 0 2px,#0000 2px 14px),repeating-radial-gradient(circle at 75% 70%,#78281e2e 0 3px,#0000 3px 18px);box-shadow:inset -1.4rem 0 1.6rem -.8rem #000000b3}.ribbon{clip-path:polygon(0 0,100% 0,100% 100%,50% 96%,0 100%);background:linear-gradient(90deg,#5e1515,#8a2222 45%,#5e1515);width:1.1rem;height:112%;position:absolute;top:-2%;left:14%;box-shadow:0 0 6px #00000080}.pg{flex-direction:column;padding:9cqw 9cqw 7cqw;display:flex;position:absolute;inset:0}.pg-kicker{font-family:var(--font-heading),serif;letter-spacing:.12em;color:#7a5a35;font-size:3.4cqw}.pg-title{font-family:var(--font-title),serif;color:#2a1f14;font-size:8.5cqw;line-height:1.1}.pg-numeral{font-family:var(--font-term),serif;color:#8a5a2a;opacity:.85;font-size:30cqw;line-height:1}.pg-epigraph{font-family:var(--font-term),serif;color:#4a3826;font-size:4.1cqw;line-height:1.55}.pg-body{font-family:var(--font-lede),sans-serif;color:#3a2b1c;font-size:3.6cqw;line-height:1.5}.pg-small{font-family:var(--font-lede),sans-serif;color:#6b5438;font-size:2.9cqw}.pg-folio{text-align:center;font-family:var(--font-term),serif;color:#8a7050;margin-top:auto;font-size:2.8cqw}.pg-rule{background:linear-gradient(90deg,#0000,#8a6a40 20% 80%,#0000);border:0;height:1px}.pg-link{font-family:var(--font-heading),serif;color:#7a3b16;text-underline-offset:.3em;font-size:4cqw;text-decoration:underline;text-decoration-thickness:1px}.pg-link:hover{color:#a24f1c}.dust{filter:blur(.5px);background:#e6c88c8c;border-radius:999px;width:3px;height:3px;animation:linear infinite dust-float;position:absolute}@keyframes dust-float{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}to{opacity:0;transform:translate(30px,-45vh)}}.scroll-hint{animation:1.8s ease-in-out infinite hint-bob}@keyframes hint-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.tilt-stage{perspective:1600px}.tilt{transform-style:flat;will-change:transform}.is-closed .float{animation:5s ease-in-out infinite book-float}@keyframes book-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.gilt-shine{color:#0000;background:linear-gradient(110deg,#d9b56a 0% 42%,#fff4cf 50%,#d9b56a 58% 100%) 120% 0/260% 100%;filter:drop-shadow(0 1px #ffe6aa40)drop-shadow(0 -1px #000c);-webkit-background-clip:text;background-clip:text;animation:6s ease-in-out infinite gilt-sweep}@keyframes gilt-sweep{0%{background-position:120% 0}30%,to{background-position:-20% 0}}.sigil-star{transform-origin:60px 60px;transform-box:view-box;animation:40s linear infinite sigil-turn}@keyframes sigil-turn{to{transform:rotate(360deg)}}.glow-flicker{animation:3.2s ease-in-out infinite candle;position:absolute;inset:0}@keyframes candle{0%,to{opacity:1;transform:scale(1)}18%{opacity:.86}34%{opacity:.97;transform:scale(1.02)}52%{opacity:.88}71%{opacity:1;transform:scale(1.03)}86%{opacity:.9}}.is-closed .glow-flicker{animation:none}.leaf-shade{pointer-events:none;opacity:0;background:linear-gradient(90deg,#28190abf,#28190a26 60%,#0000);position:absolute;inset:0}.face--back .leaf-shade{background:linear-gradient(270deg,#28190abf,#28190a26 60%,#0000)}.toc-num{transition:transform .3s,color .3s;display:inline-block}.ink-underline{transition:color .3s;position:relative}.ink-underline:after{content:"";transform-origin:0;background:#a24f1c;height:1px;transition:transform .45s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-.15em;left:0;right:0;transform:scaleX(0)}@media (hover:hover){.toc-row:hover .toc-num{color:#a24f1c;transform:translate(4px)}.toc-row:hover .toc-title{color:#a24f1c}.toc-row:hover .ink-underline:after{transform:scaleX(1)}}.chapter-link{transition:color .25s,text-decoration-thickness .25s}.chapter-arrow{transition:transform .3s cubic-bezier(.22,1,.36,1);display:inline-block}.chapter-link:active{opacity:.6}@media (hover:hover){.chapter-link:hover{text-decoration-thickness:2px}.chapter-link:hover .chapter-arrow{transform:translate(4px)}}.logo-link{transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .3s,filter .35s}.logo-link:focus-visible{outline-offset:4px;outline:1px dashed #8a5a2a}@media (hover:hover){.logo-grid:hover .logo-link{opacity:.45}.logo-grid .logo-link:hover,.logo-grid .logo-link:focus-visible{opacity:1;filter:drop-shadow(0 4px 6px color-mix(in srgb,var(--logo-accent)55%,transparent));transform:translateY(-3px)scale(1.08)}}.pentagram .pen-tip{visibility:hidden}.pentagram .pg-glow{opacity:.25;transition:opacity .6s}.pentagram .pg-runes{transform-origin:100px 100px;transform-box:view-box}.pentagram.is-drawn .pg-runes{animation:120s linear infinite runes-turn}.pentagram.is-drawn .pg-glow{animation:4s ease-in-out infinite glow-breathe}@keyframes runes-turn{to{transform:rotate(360deg)}}@keyframes glow-breathe{0%,to{opacity:.2}50%{opacity:.38}}@media (hover:hover){.pentagram.is-drawn:hover .pg-runes{animation-duration:18s}.pentagram.is-drawn:hover .pg-glow{animation-duration:1.6s}}.feat-bar{transform-origin:top;transition:background-color .3s,width .3s}@media (hover:hover){.feat-row:hover .feat-bar{background-color:#a24f1c;width:3px}}.cond-item{transition:color .25s}.cond-diamond{transition:transform .35s cubic-bezier(.22,1,.36,1),color .25s;display:inline-block}.cond-item:focus-visible{color:#a24f1c;outline:none}@media (hover:hover){.cond-item:hover{color:#a24f1c}.cond-item:hover .cond-diamond,.cond-item:focus-visible .cond-diamond{color:#b8864b;transform:rotate(45deg)}}.chapter-nav-dot{transition:width .35s cubic-bezier(.22,1,.36,1),background-color .3s}.chapter-nav-label{opacity:0;transition:opacity .25s,transform .25s;transform:translate(6px)}.chapter-nav-item:hover .chapter-nav-label,.chapter-nav-item:focus-visible .chapter-nav-label{opacity:1;transform:translate(0)}.index-card{transition:background-color .3s;position:relative}.index-card:before{content:"";background:var(--primary);transform-origin:0;height:2px;transition:transform .55s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.index-card-icon{transition:transform .45s cubic-bezier(.22,1,.36,1)}.index-chip{transition:color .25s,border-color .25s,background-color .25s}.index-chip:focus-visible{border-color:var(--primary);color:var(--foreground);outline:none}.index-class{transition:background-color .3s}.index-class img{transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .3s}.index-class span{transition:color .3s}@media (hover:hover){.index-card:hover{background-color:var(--surface-raised)}.index-card:hover:before{transform:scaleX(1)}.index-card:hover .index-card-icon{transform:rotate(8deg)scale(1.1)}.index-chip:hover{color:var(--foreground);border-color:color-mix(in srgb,var(--primary)60%,transparent);background-color:color-mix(in srgb,var(--primary)8%,transparent)}.index-class:hover img{opacity:1;transform:translateY(-4px)}.index-class:hover span{color:var(--class-accent)}}
