:root{--parchment: #efe6d2;--ink: #241d47;--violet: #4a3f8f;--violet-deep: #2b2550;--gold: #d9bd7c;--teal: #4bb8c8;--coral: #c8695a;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--rail-width: 16rem;--ease: cubic-bezier(.22, .68, .24, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--violet-deep);color:var(--parchment);font-family:var(--sans);overflow:hidden;overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.stage{position:fixed;inset:0;overflow:hidden;user-select:none;-webkit-user-select:none}.backdrop{position:absolute;inset:0}.backdrop img{width:100%;height:100%;object-fit:cover;display:block;transform-origin:18% 76%;transition:filter 1s var(--ease),transform 1.4s var(--ease);will-change:filter,transform}.stage[data-phase=opening] .backdrop img,.stage[data-phase=book] .backdrop img{filter:blur(18px) brightness(.4) saturate(.8);transform:scale(1.12)}.backdrop:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 48%,#0c082000 22%,#0c08208c 78%,#080518cc);opacity:0;transition:opacity 1s var(--ease);pointer-events:none}.stage[data-phase=opening] .backdrop:after,.stage[data-phase=book] .backdrop:after{opacity:1}.book-canvas{position:absolute!important;inset:0;touch-action:none}.landing{position:absolute;inset:0;overflow:hidden;transition:opacity .5s var(--ease),visibility .5s}.stage:not([data-phase=landing]) .landing{opacity:0;visibility:hidden;pointer-events:none}.hotspot{position:absolute;border-radius:14%;transition:transform .4s var(--ease);-webkit-tap-highlight-color:transparent}.hotspot:before{content:"";position:absolute;inset:-11%;border-radius:50%;background:radial-gradient(circle,#d8be7c6b,#d8be7c00 68%);animation:breathe 3.4s var(--ease) infinite;pointer-events:none}.hotspot:after{content:"";position:absolute;inset:-6%;border:1.5px solid rgba(247,236,205,.75);border-radius:12%;opacity:0;transition:opacity .35s var(--ease);pointer-events:none}.hotspot:hover,.hotspot:focus-visible{transform:scale(1.05);outline:none}.hotspot:hover:after,.hotspot:focus-visible:after{opacity:1}.hotspot[data-label-above=true] .hotspot-label{top:auto;bottom:calc(100% + .9rem)}@keyframes breathe{0%,to{opacity:.45;transform:scale(.94)}50%{opacity:.95;transform:scale(1.06)}}.hotspot-label{position:absolute;left:50%;top:calc(100% + .9rem);transform:translate(-50%);white-space:nowrap;pointer-events:none;font-family:var(--serif);font-style:italic;font-size:clamp(.95rem,1.5vw,1.2rem);color:#fdf6e4;text-shadow:0 2px 14px rgba(20,12,45,.85);letter-spacing:.02em}.landing-credit{position:absolute;left:50%;bottom:max(1.5rem,env(safe-area-inset-bottom));transform:translate(-50%);width:min(90vw,34rem);margin:0;text-align:center;font-size:.78rem;line-height:1.6;letter-spacing:.16em;text-transform:uppercase;color:#fdf6e4b8;text-shadow:0 2px 12px rgba(20,12,45,.9)}.landing-credit[role=alert]{letter-spacing:.06em;text-transform:none;font-size:.9rem;color:#fdf6e4;background:#181234b3;border:1px solid rgba(216,190,124,.35);border-radius:10px;padding:.7rem 1rem;backdrop-filter:blur(8px)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;padding:0;border-radius:999px;color:#f7eccde6;background:#18123480;border:1px solid rgba(216,190,124,.28);backdrop-filter:blur(10px);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .25s var(--ease)}.icon-button:hover,.icon-button:focus-visible{background:#302760b8;border-color:var(--gold);color:#fff8e6;transform:translateY(-1px);outline:none}.icon{width:1.25rem;height:1.25rem}.socials{position:absolute;top:max(1.1rem,env(safe-area-inset-top));left:max(1.1rem,env(safe-area-inset-left));display:flex;gap:.5rem;z-index:4}.landing-tools{position:absolute;top:max(1.1rem,env(safe-area-inset-top));right:max(1.1rem,env(safe-area-inset-right));display:flex;gap:.5rem;z-index:4}.rail{position:absolute;top:50%;right:0;transform:translateY(-50%);width:var(--rail-width);padding:.75rem 0;display:flex;flex-direction:column;gap:.35rem;z-index:3;transition:opacity .6s var(--ease),transform .6s var(--ease)}.stage:not([data-phase=book]) .rail,.rail[data-open=false]{opacity:0;transform:translate(calc(100% + 1rem),-50%);pointer-events:none}.rail-title{font-family:var(--serif);font-style:italic;font-size:.9rem;color:#f7eccd99;padding:0 1.1rem .4rem 1.4rem;letter-spacing:.04em}.ribbon{position:relative;display:flex;align-items:center;gap:.7rem;width:100%;padding:.5rem 1rem .5rem 1.1rem;text-align:left;color:#f7eccdd1;background:linear-gradient(90deg,#4a3f8fe6,#2b2550db);border-left:3px solid rgba(216,190,124,.4);border-radius:4px 0 0 4px;transform:translate(.8rem);transition:transform .42s var(--ease),background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);backdrop-filter:blur(6px)}.ribbon:after{content:"";position:absolute;left:-.72rem;top:0;bottom:0;width:.75rem;background:inherit;clip-path:polygon(100% 0,100% 100%,0 50%)}.ribbon:hover,.ribbon:focus-visible{transform:translate(-.35rem);color:#fdf6e4;border-color:var(--gold);outline:none}.ribbon[aria-current=true]{transform:translate(-.35rem);color:#fff8e6;background:linear-gradient(90deg,#6b5cbef2,#3a3168eb);border-color:var(--gold)}.ribbon-numeral{flex:none;width:2.1rem;font-family:var(--serif);font-size:.95rem;letter-spacing:.08em;color:var(--gold)}.ribbon-text{min-width:0}.ribbon-name{display:block;font-family:var(--serif);font-size:.92rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ribbon-kicker{display:block;font-size:.63rem;letter-spacing:.11em;text-transform:uppercase;opacity:.62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-tools .rail-toggle{display:inline-flex}.hud{position:absolute;inset:0;pointer-events:none;z-index:2;transition:opacity .6s var(--ease)}.stage:not([data-phase=book]) .hud{opacity:0}.hud>*{pointer-events:auto}.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .95rem;border-radius:999px;background:#1812348c;border:1px solid rgba(216,190,124,.28);color:#f7eccde6;font-size:.8rem;letter-spacing:.06em;backdrop-filter:blur(10px);transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}a.pill{text-decoration:none;cursor:pointer}button.pill:hover,button.pill:focus-visible,a.pill:hover,a.pill:focus-visible{background:#302760bf;border-color:var(--gold);color:#fff8e6;outline:none}button.pill[disabled]{opacity:.35;cursor:default}.label-short{display:none}.hud-doc{position:absolute;top:max(1.1rem,env(safe-area-inset-top));left:max(1.1rem,env(safe-area-inset-left));display:flex;gap:.5rem;align-items:center}.hud-chapter{position:absolute;top:max(1.1rem,env(safe-area-inset-top));left:50%;transform:translate(-50%);max-width:min(70vw,30rem);text-align:center;font-family:var(--serif);font-style:italic;font-size:clamp(.95rem,1.6vw,1.25rem);color:#fdf6e4eb;text-shadow:0 2px 16px rgba(12,8,32,.9);pointer-events:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-nav{position:absolute;bottom:max(1.2rem,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem}.hud-count{font-variant-numeric:tabular-nums;min-width:5.5rem;justify-content:center}.hud-tools{position:absolute;top:max(1.1rem,env(safe-area-inset-top));right:max(1.1rem,env(safe-area-inset-right));display:flex;gap:.5rem}.zoomer{padding:.15rem .2rem;gap:0}.zoomer button{display:inline-flex;align-items:center;justify-content:center;min-width:2.1rem;min-height:2.1rem;padding:0;border-radius:999px;font-size:1rem;line-height:1;transition:background .2s var(--ease),color .2s var(--ease)}.zoomer button:hover:not([disabled]),.zoomer button:focus-visible:not([disabled]){background:#d8be7c33;color:#fff8e6;outline:none}.zoomer button[disabled]{opacity:.32;cursor:default}.zoom-level{min-width:3.5rem;font-size:.75rem;letter-spacing:.04em;font-variant-numeric:tabular-nums}.hint{position:absolute;bottom:max(5rem,calc(env(safe-area-inset-bottom) + 4.6rem));left:50%;transform:translate(-50%);font-family:var(--serif);font-style:italic;font-size:.95rem;color:#fdf6e4c7;text-shadow:0 2px 14px rgba(12,8,32,.9);animation:hint-in .8s var(--ease) both;pointer-events:none!important;text-align:center}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,.6rem)}}.loader{position:absolute;right:max(1.1rem,env(safe-area-inset-right));bottom:max(1.2rem,env(safe-area-inset-bottom));display:flex;align-items:center;gap:.55rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#f7eccd99;transition:opacity .5s var(--ease)}.loader-track{width:4.5rem;height:2px;border-radius:2px;background:#f7eccd33;overflow:hidden}.loader-fill{height:100%;background:var(--gold);transform-origin:left;transition:transform .4s var(--ease)}.boot{position:fixed;inset:0;display:grid;place-items:center;gap:1rem;background:var(--violet-deep);font-family:var(--serif);font-style:italic;color:#f7eccdbf;text-align:center;padding:2rem}.boot a{color:var(--gold)}.sheet{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:clamp(.75rem,3vw,2.5rem);background:#080516d1;backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s}.sheet[data-open=true]{opacity:1;visibility:visible}.sheet-panel{display:flex;flex-direction:column;width:min(56rem,100%);max-height:100%;border-radius:14px;overflow:hidden;background:#140f2dd1;border:1px solid rgba(216,190,124,.24);box-shadow:0 30px 80px #04021099;transform:translateY(14px) scale(.985);transition:transform .45s var(--ease)}.sheet[data-open=true] .sheet-panel{transform:none}.sheet-bar{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem .7rem 1.2rem;border-bottom:1px solid rgba(216,190,124,.18);background:#18123480}.sheet-title{flex:1;min-width:0;margin:0;font-family:var(--serif);font-style:italic;font-size:1.05rem;color:#fdf6e4eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-size{opacity:.6}.sheet-close{flex:none;width:2.3rem;height:2.3rem}.sheet-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:clamp(.6rem,2vw,1.1rem);padding:clamp(.6rem,2vw,1.1rem)}.sheet-page{display:block;width:100%;height:auto;border-radius:6px;background:#f7eccd0f;box-shadow:0 10px 30px #04021073;user-select:none}.sparkles{position:fixed;inset:0;z-index:40;pointer-events:none}@media (max-width: 900px){:root{--rail-width: 13.5rem}}@media (max-width: 720px),(max-height: 520px){.rail{inset:auto 0 0;width:100%;max-height:58vh;overflow-y:auto;transform:translateY(101%);background:linear-gradient(180deg,#140f2de6,#140f2dfa);backdrop-filter:blur(14px);border-top:1px solid rgba(216,190,124,.25);padding:1rem 1rem calc(1.2rem + env(safe-area-inset-bottom));gap:.3rem;z-index:5}.stage:not([data-phase=book]) .rail,.rail[data-open=false]{transform:translateY(101%);opacity:1}.rail[data-open=true]{transform:translateY(0);opacity:1;pointer-events:auto}.ribbon{transform:none;border-radius:6px;border-left-width:3px;padding:.7rem .9rem}.ribbon:after{display:none}.ribbon:hover,.ribbon:focus-visible,.ribbon[aria-current=true]{transform:none}.ribbon-name{font-size:1rem}.rail-toggle{display:inline-flex}.hud-chapter,.label-long{display:none}.label-short{display:inline}.pill{padding:.45rem .7rem;font-size:.75rem}.zoomer{padding:.1rem .15rem}.zoomer button{min-width:2.5rem;min-height:2.5rem}.zoom-level{min-width:3.1rem}.hint{bottom:max(4.6rem,calc(env(safe-area-inset-bottom) + 4.2rem));font-size:.85rem}.loader{bottom:auto;top:max(3.6rem,calc(env(safe-area-inset-top) + 3rem));right:max(1.1rem,env(safe-area-inset-right))}.hud-doc .label-long,.hud-doc .label-short{display:none}.hud-doc .pill:first-child .label-short{display:inline}.sheet-panel{border-radius:12px}.sheet-bar{padding:.55rem .6rem .55rem .9rem;gap:.5rem}.sheet-title{font-size:.95rem}.sheet-size{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
