:root{--obsidian:#070707;--charcoal:#1a1816;--charcoal-2:#262220;--ash:#8a857c;--ash-2:#5c5852;--parchment:#e6d8b8;--parchment-deep:#c9b58a;--parchment-burn:#6b4a2a;--ember:#ff7a2a;--ember-deep:#b4461a;--ink:#161311;--gold:#c9a24a;--gold-2:#8a6a25;--display:"IM Fell English", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--body:"Crimson Text", "Iowan Old Style", Georgia, serif;--ease-page:cubic-bezier(.55, .05, .25, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--obsidian);color:var(--parchment);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow-x:hidden}a{color:var(--ember);text-decoration:none}a:hover,a:focus-visible{color:#ffa066}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ember);outline-offset:3px}.eyebrow{font-family:var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--ash);margin:0 0 .6rem;font-size:.78rem}.embers{pointer-events:none;z-index:0;opacity:.85;width:100%;height:100%;position:fixed;inset:0}.summoning{background:#000;place-items:center;transition:opacity .9s;animation:none;display:grid;position:fixed;inset:0;overflow:hidden}.summoning.is-leaving{opacity:0}.shadow{fill:#cfcfcf;opacity:0;position:absolute}.shadow-forest{width:100%;height:55vh;animation:7s ease-in-out infinite surface;bottom:0;left:0;right:0}.shadow-figure{height:44vh;animation:7s ease-in-out 2.4s infinite surface;bottom:6vh;left:50%;transform:translate(-50%)}@keyframes surface{0%,to{opacity:0}45%{opacity:.16}60%{opacity:.2}}.summoning-line{z-index:1;font-family:var(--display);color:#f2ede4;letter-spacing:.04em;margin:0;font-size:clamp(1.1rem,2.4vw,1.7rem);font-style:italic;animation:1.4s ease-in-out both drift;position:relative}@keyframes drift{0%{opacity:0;transform:translate(-14px)}25%,70%{opacity:1}to{opacity:0;transform:translate(16px)}}.shelf{z-index:1;max-width:1180px;margin:0 auto;padding:clamp(2rem,6vh,5rem) clamp(1rem,4vw,2.5rem) 5rem;position:relative}.shelf-head{text-align:center;margin-bottom:clamp(2rem,6vh,4rem)}.shelf-title{font-family:var(--display);color:var(--parchment);text-shadow:0 0 40px #ff7a2a2e,0 2px #000;margin:0 0 1rem;font-size:clamp(3rem,9vw,6.5rem);font-weight:400;line-height:.95}.shelf-sub{max-width:46ch;color:var(--ash);margin:0 auto;font-size:1.05rem;font-style:italic}.tomes{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:1.6rem;margin:0;padding:0;list-style:none;display:grid}.tome-card a{color:inherit;display:block}.tome-card.is-unbound{opacity:.55;filter:saturate(.4)}.tome-spine{aspect-ratio:2/3;background:var(--charcoal) center / cover no-repeat;transition:transform .6s var(--ease-out), box-shadow .6s var(--ease-out);border-radius:6px 12px 12px 6px/8px 14px 14px 8px;place-items:center;padding:1.4rem;display:grid;position:relative;overflow:hidden;box-shadow:inset 6px 0 12px -6px #000,inset -2px 0 4px #ffffff0a,0 20px 40px -18px #000,0 0 0 1px #000}.tome-spine:before{content:"";background:radial-gradient(120% 80% at 50% 110%,#ff7a2a29,#0000 60%),repeating-linear-gradient(115deg,#ffffff04 0 2px,#0000 2px 7px),linear-gradient(#00000040,#0000 30% 70%,#00000073);position:absolute;inset:0}.tome-card a:hover .tome-spine,.tome-card a:focus-visible .tome-spine{transform:translateY(-6px)rotate(-.6deg);box-shadow:inset 6px 0 12px -6px #000,0 30px 50px -18px #000,0 0 0 1px #000,0 0 40px -6px #ff7a2a59}.tome-emboss{font-family:var(--display);text-align:center;color:var(--gold);text-shadow:0 1px #000,0 -1px #ffdc9640;font-size:1.25rem;line-height:1.15;position:relative}.tome-meta{padding:.9rem .2rem 0}.tome-meta h2{font-family:var(--display);color:var(--parchment);margin:0 0 .15rem;font-size:1.25rem;font-weight:400}.tome-where{color:var(--ember);letter-spacing:.04em;margin:0 0 .4rem;font-size:.85rem}.tome-blurb{color:var(--ash);margin:0 0 .4rem;font-size:.95rem;font-style:italic}.tome-state{color:var(--ash-2);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem}.empty{text-align:center;color:var(--ash);font-style:italic}.back{z-index:5;letter-spacing:.06em;color:var(--ash);opacity:.7;font-size:.9rem;transition:opacity .3s;position:fixed;top:1.1rem;left:1.2rem}.back:hover{opacity:1;color:var(--ember)}.cover-scene{z-index:1;place-content:center;justify-items:center;gap:1.6rem;min-height:100%;padding:4rem 1rem;display:grid;position:relative}.tome.closed{aspect-ratio:2/3;width:min(78vw,360px);animation:settle 1.4s var(--ease-out) both;transform-style:preserve-3d;background:radial-gradient(140% 90% at 50% 115%,#ff7a2a38,#0000 55%),radial-gradient(60% 40% at 20% 10%,#ffffff0d,#0000 70%),repeating-linear-gradient(112deg,#ffffff05 0 1px,#0000 1px 6px),linear-gradient(170deg,#1d1a17,#0c0b0a 60%,#14100d);border-radius:8px 18px 20px 6px/10px 16px 22px 8px;place-items:center;padding:8%;display:grid;position:relative;box-shadow:inset 10px 0 20px -12px #000,inset 0 0 0 1px #ffffff0a,0 40px 80px -30px #000,0 0 90px -20px #ff7a2a40}@keyframes settle{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:none}}.tome.closed:after{content:"";border-radius:inherit;pointer-events:none;mix-blend-mode:multiply;opacity:.9;background:radial-gradient(60% 20% at 50% 0,#0009,#0000 70%),radial-gradient(80% 30% at 50% 100%,#0000008c,#0000 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.tome-face{text-align:center;width:100%}.tome-rule{background:linear-gradient(90deg, transparent, var(--gold-2), transparent);width:60%;height:1px;margin:.8rem auto}.tome-kicker{letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2);margin:0 0 .4rem;font-size:.72rem}.tome-title{font-family:var(--display);color:var(--gold);text-shadow:0 1px #000,0 -1px #ffe1a04d,0 0 18px #c9a24a40;margin:.2rem 0 .6rem;font-size:clamp(1.5rem,4.6vw,2.2rem);font-weight:400;line-height:1.08}.tome-region{color:var(--ash);margin:0;font-size:.85rem;line-height:1.5}.tome-region span{color:var(--ash-2);font-style:italic}.tome-epigraph{max-width:24ch;font-family:var(--display);color:var(--parchment-deep);opacity:.85;margin:.9rem auto 0;font-size:.9rem;font-style:italic;line-height:1.45}.colophon{font-family:var(--body);color:#5a4632;border-top:1px solid #4a3a2a59;flex-direction:column;gap:.15rem;margin-top:2.2rem;padding-top:.9rem;font-size:.78rem;line-height:1.5;display:flex}.colophon .eyebrow{color:var(--ember-deep);margin-bottom:.3rem;font-size:.66rem}.tome-clasp{background:linear-gradient(90deg,#4a3a22,#8a6a25 40%,#3a2c16);border-radius:4px;width:22px;height:64px;position:absolute;top:50%;right:-6px;transform:translateY(-50%);box-shadow:0 6px 12px -4px #000}.open-btn{color:var(--parchment);font-family:var(--display);letter-spacing:.08em;animation:settle 1.4s var(--ease-out) .5s both;background:0 0;border:1px solid #c9a24a8c;border-radius:999px;padding:.8rem 1.9rem;font-size:1.1rem;transition:background .3s,box-shadow .3s,border-color .3s,transform .3s}.open-btn:hover,.open-btn:focus-visible{border-color:var(--ember);background:#ff7a2a0f;transform:translateY(-1px);box-shadow:0 0 40px -8px #ff7a2a99}.cover-note{color:var(--ash-2);letter-spacing:.18em;text-transform:uppercase;margin:-.6rem 0 0;font-size:.8rem}.book-scene{z-index:1;perspective:2400px;grid-template-rows:1fr auto;place-items:center;min-height:100%;padding:clamp(2.6rem,6vh,4rem) clamp(.6rem,3vw,2.5rem) 1rem;display:grid;position:relative}.tome.open{--leaf-w:min(46vw, 620px);--leaf-h:min(74vh, calc(var(--leaf-w) * 1.32));grid-template-columns:var(--leaf-w) var(--leaf-w);height:var(--leaf-h);transform-style:preserve-3d;animation:bookopen 1.3s var(--ease-out) both;background:repeating-linear-gradient(112deg,#ffffff05 0 1px,#0000 1px 6px),linear-gradient(170deg,#1d1a17,#0c0b0a 60%,#14100d);border-radius:22px 14px 26px 18px/18px 26px 14px 22px;padding:14px;display:grid;position:relative;box-shadow:0 50px 90px -30px #000,0 0 0 1px #000,0 0 120px -30px #ff7a2a38}@keyframes bookopen{0%{opacity:0;transform:rotateX(18deg)translateY(30px)scale(.96)}to{opacity:1;transform:none}}.tome.open:before{content:"";border-radius:inherit;pointer-events:none;z-index:3;opacity:.5;background:radial-gradient(7px 70px at 8% 0,#000000e6 40%,#0000 70%),radial-gradient(5px 120px at 23% 0,#000000e6 40%,#0000 70%),radial-gradient(6px 50px at 61% 0,#000000e6 40%,#0000 70%),radial-gradient(5px 100px at 88% 0,#000000e6 40%,#0000 70%),radial-gradient(9px 30px at 8% 62px,#000c 40%,#0000 72%),radial-gradient(8px 26px at 23% 112px,#000c 40%,#0000 72%);position:absolute;inset:-2px}.spine{z-index:2;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#0000008c 40%,#000000b3 50%,#0000008c 60%,#0000 100%);width:30px;position:absolute;top:14px;bottom:14px;left:50%;transform:translate(-50%)}.leaf,.sheet-front,.sheet-back-face{height:100%;color:var(--ink);background:radial-gradient(90% 60% at 20% 15%, #ffffff59, transparent 60%), radial-gradient(70% 40% at 85% 90%, #6b4a2a59, transparent 70%), radial-gradient(40% 25% at 70% 20%, #6b4a2a2e, transparent 70%), linear-gradient(180deg, var(--parchment), var(--parchment-deep));position:relative;overflow:hidden}.leaf:after,.sheet-front:after,.sheet-back-face:after{content:"";pointer-events:none;mix-blend-mode:multiply;background:radial-gradient(120% 120%,#0000 55%,#50321459 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.12 0 0 0 0 0.05 0 0 0 0.22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.leaf-left{border-radius:6px 0 0 6px;box-shadow:inset -30px 0 40px -30px #0009}.leaf-right{border-radius:0 6px 6px 0;box-shadow:inset 30px 0 40px -30px #0009}.sheet{z-index:4;width:calc(50% - 14px);transform-style:preserve-3d;position:absolute;top:14px;bottom:14px}.sheet-fwd{transform-origin:0;animation:turnfwd var(--flip,1.1s) var(--ease-page) both;left:50%}.sheet-back{transform-origin:100%;animation:turnback var(--flip,1.1s) var(--ease-page) both;right:50%}.sheet-front,.sheet-back-face{backface-visibility:hidden;position:absolute;inset:0}.sheet-back-face{transform:rotateY(180deg)}.sheet-fwd .sheet-front{border-radius:0 6px 6px 0}.sheet-fwd .sheet-back-face,.sheet-back .sheet-front{border-radius:6px 0 0 6px}.sheet-back .sheet-back-face{border-radius:0 6px 6px 0}.sheet:before{content:"";z-index:2;pointer-events:none;animation:sheetshade var(--flip,1.1s) var(--ease-page) both;background:linear-gradient(90deg,#0000008c,#0000 40% 60%,#00000059);position:absolute;inset:0}@keyframes turnfwd{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes turnback{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes sheetshade{0%{opacity:0}50%{opacity:1}to{opacity:0}}.tome.open.flipping-fwd .leaf-right,.tome.open.flipping-back .leaf-left{filter:brightness(.82);transition:filter .4s}.plate{grid-template-rows:1fr auto;gap:.6rem;height:100%;padding:clamp(1.2rem,4%,2.6rem);display:grid}.plate img{object-fit:cover;filter:sepia(.08)contrast(1.05);border-radius:14px 9px 16px 8px/9px 15px 8px 13px;width:100%;height:100%;display:block;box-shadow:0 0 0 1px #16131180,inset 0 0 40px #0009,0 18px 40px -20px #000;-webkit-mask:radial-gradient(130% 130%,#000 62%,#0000 100%);mask:radial-gradient(130% 130%,#000 62%,#0000 100%)}.plate-caption{text-align:center;font-family:var(--display);color:#4a3a2a;letter-spacing:.04em;margin:0;font-size:.95rem;font-style:italic}.script{scrollbar-width:thin;scrollbar-color:#4a3a2a80 transparent;height:100%;font-family:var(--display);padding:clamp(1.4rem,5%,3.4rem) clamp(1.4rem,6%,3.6rem);font-size:clamp(.98rem,1.15vw,1.16rem);line-height:1.62;overflow-y:auto}.script h1{color:#2a1e14;margin:0 0 .3rem;font-size:clamp(1.5rem,2.4vw,2.1rem);font-weight:400;line-height:1.1}.script h2{color:#3a2a1c;border-bottom:1px solid #4a3a2a59;margin:0 0 1rem;padding-bottom:.5rem;font-size:clamp(1.15rem,1.8vw,1.5rem);font-style:italic;font-weight:400}.script .eyebrow{color:var(--ember-deep)}.script-meta{font-family:var(--body);color:#5a4632;margin:0 0 1.2rem;font-size:.9rem;font-style:italic}.script p{text-align:left;-webkit-hyphens:auto;hyphens:auto;margin:0 0 .95em}.script.story>p:first-of-type:first-letter{float:left;color:var(--ember-deep);padding:.08em .12em 0 0;font-size:3.2em;line-height:.85}.book-nav{color:var(--ash);align-items:center;gap:.6rem;margin-top:.9rem;padding:.35rem .5rem;font-size:.9rem;display:flex}.book-nav button{color:var(--parchment);background:0 0;border:1px solid #ffffff1f;border-radius:999px;place-items:center;width:2.4rem;height:2.4rem;font-size:1.4rem;line-height:1;transition:border-color .25s,box-shadow .25s,color .25s;display:grid}.book-nav button:hover:not(:disabled){border-color:var(--ember);color:var(--ember);box-shadow:0 0 24px -8px var(--ember)}.book-nav button:disabled{opacity:.3;cursor:default}.book-nav .voice{letter-spacing:.08em;width:auto;padding:0 .9rem;font-size:.85rem}.book-nav .voice.is-playing{border-color:var(--ember-deep);color:var(--ember)}.folio{font-family:var(--display);text-align:center;min-width:5.5rem;color:var(--parchment)}.folio em{color:var(--ash-2)}.nav-gap{width:1rem}.autoread{cursor:pointer;align-items:center;gap:.4rem;display:inline-flex}.autoread input{accent-color:var(--ember)}@media (width<=820px){.tome.open{--leaf-w:min(92vw, 520px);grid-template-columns:var(--leaf-w);grid-template-rows:auto auto;height:auto}.leaf-left{box-shadow:none;aspect-ratio:16/11;border-radius:6px 6px 0 0}.leaf-right{border-radius:0 0 6px 6px;max-height:62vh;box-shadow:inset 0 30px 40px -30px #00000080}.spine,.sheet{display:none}.tome.open.flipping-fwd .leaf-left,.tome.open.flipping-fwd .leaf-right,.tome.open.flipping-back .leaf-left,.tome.open.flipping-back .leaf-right{animation:fadeleaf var(--flip,1.1s) ease both;filter:none}@keyframes fadeleaf{0%{opacity:1}50%{opacity:.2}to{opacity:1}}.book-nav{flex-wrap:wrap;justify-content:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
