:root{--sky-top:#4b5a9e;--sky-mid:#7180c2;--sky-low:#b4bde6;--parchment:#fbf4e4;--ink:#3b2f2a;--ink-soft:#8a7560;--gold:#c9a24a;--gold-soft:#f0d898;--gold-deep:#a37f2c;--leather:#9a4553;--rose:#e2b3b8;--boy:#7fabe0;--boy-soft:#c7dbf3;--boy-deep:#4673b0;--chip:#3a46828c;--chip-hover:#3a4682cc;--chip-border:#f0d898d9;--font-display:"IM Fell English", "Iowan Old Style", Georgia, serif;--font-body:"Cormorant Garamond", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--sky-top);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:1.15rem;line-height:1.5}button{font:inherit}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stage{position:fixed;inset:0}.book-canvas{z-index:1;touch-action:none;cursor:grab;inset:0;position:absolute!important}.book-canvas:active{cursor:grabbing}.sky{pointer-events:none;background:radial-gradient(130% 60% at 50% 118%,#ffd6c499 0%,#ffd6c400 60%),radial-gradient(70% 50% at 12% 28%,#b09ce847,#0000 70%),radial-gradient(60% 40% at 90% 85%,#96bef038,#0000 70%),linear-gradient(#34407e 0%,#4a589f 32%,#6f7fc3 66%,#a3abdd 100%);position:fixed;inset:0;overflow:hidden}.sky-glow{background:radial-gradient(45% 40% at 88% 10%,#fff4d638,#0000 70%);position:absolute;inset:0}.sky-starfield{width:100%;height:100%;position:absolute;inset:0}.sky-twinkler{animation:ease-in-out infinite twinkle;position:absolute;translate:-50% -50%}.sky-moon{aspect-ratio:1;width:clamp(64px,12vw,120px);position:absolute;top:3.5%;right:6%}.sky-moon svg{filter:drop-shadow(0 0 6px #fff6d68c);width:100%;height:100%;position:relative}.sky-moon-halo{background:radial-gradient(circle,#fff6d652 0%,#fff6d61a 28%,#fff6d600 55%);position:absolute;inset:-90%}.sky-cloud{filter:blur(6px);background:radial-gradient(closest-side,#ffffff38,#fff0);border-radius:50%;height:70px;animation:linear infinite drift;position:absolute}.sky-cloud-1{width:340px;animation-duration:120s;top:16%}.sky-cloud-2{width:460px;height:90px;animation-duration:170s;animation-delay:-80s;top:62%}.sky-cloud-3{width:300px;animation-duration:140s;animation-delay:-40s;top:84%}.sky-grain{opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.hint{left:0;right:0;bottom:max(18px, env(safe-area-inset-bottom));z-index:2;text-align:center;color:#fffaf0;text-shadow:0 1px 6px #28326473;pointer-events:none;opacity:0;margin:0;font-size:1.1rem;font-style:italic;transition:opacity .3s,translate .3s;position:absolute;translate:0 4px}.hint.is-visible{opacity:.85;transition:opacity 2.4s,translate 2.4s;translate:0}.loading{z-index:30;color:#fffaf0;font-family:var(--font-display);text-shadow:0 1px 8px #28326480;pointer-events:none;opacity:0;place-content:center;justify-items:center;gap:14px;font-size:1.25rem;font-style:italic;animation:.8s forwards fade-in;display:grid;position:fixed;inset:0}.loading p{margin:0}.loading.is-done{opacity:0;transition:opacity .6s;animation:none}.loading-stars{color:var(--gold-soft);gap:12px;display:flex}.loading-stars svg{width:16px;animation:1.6s ease-in-out infinite twinkle}.loading-stars svg:nth-child(2){width:20px;animation-delay:.25s}.loading-stars svg:nth-child(3){animation-delay:.5s}.restart,.player-close,.sr-focusable:focus{border:1px solid var(--chip-border);background:var(--chip);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fffaf0;font-family:var(--font-display);cursor:pointer;border-radius:999px;padding:.45em .95em;font-size:.95rem;line-height:1;text-decoration:none}.restart{top:max(10px, env(safe-area-inset-top));z-index:40;position:fixed;left:12px}.restart:hover,.player-close:hover{background:var(--chip-hover)}.restart:focus-visible,.player-close:focus-visible,.sr-focusable:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}.book-controls{left:0;right:0;bottom:max(56px, calc(env(safe-area-inset-bottom) + 44px));z-index:40;justify-content:center;display:flex;position:fixed}.sr-focusable:not(:focus){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.player{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;background:#3c4882d1;place-items:center;padding:56px 12px 24px;transition:opacity .5s,visibility 0s linear .5s;display:grid;position:fixed;inset:0}.player.is-open{opacity:1;visibility:visible;transition:opacity .5s}.player-frame{background:linear-gradient(135deg, var(--gold-soft), var(--gold-deep));border-radius:12px;width:min(100%,177.778dvh - 170.667px,1100px);padding:6px;box-shadow:0 20px 60px #1e245073}.player-frame video{aspect-ratio:16/9;background:#000;border-radius:7px;width:100%;display:block}.player-close{top:max(10px, env(safe-area-inset-top));position:absolute;right:12px}.falling-stars{pointer-events:none;z-index:2;position:fixed;inset:0;overflow:hidden}.falling-star{opacity:.9;animation:linear infinite fall;position:absolute;top:-40px}.dev-nav{z-index:50;opacity:.5;background:#00000059;border-radius:8px;flex-wrap:wrap;gap:4px;max-width:calc(100vw - 16px);padding:4px;transition:opacity .2s;display:flex;position:fixed;bottom:8px;left:8px}.dev-nav:hover,.dev-nav:focus-within{opacity:1}.dev-nav button{color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:4px;padding:3px 7px;font:11px/1.2 ui-monospace,Menlo,monospace}.dev-nav button[aria-current=true]{background:var(--gold);color:#1c2347}@keyframes twinkle{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}@keyframes drift{0%{transform:translate(-480px)}to{transform:translate(calc(100vw + 480px))}}@keyframes fade-in{to{opacity:1}}@keyframes fall{0%{transform:translate(0)rotate(0)}50%{transform:translate(24px,55vh)rotate(180deg)}to{transform:translate(-12px,112vh)rotate(360deg)}}@media (prefers-reduced-motion:reduce){.sky-twinkler,.sky-cloud,.falling-star{animation:none}.falling-stars{display:none}}
