:root{color-scheme:dark;--ink:#e2eaf0;--muted:#9fb6ca}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#101e31;font-family:"Songti SC","Noto Serif SC","Microsoft YaHei",serif;background-image:radial-gradient(ellipse at 50% 20%,#243c56 0,transparent 65%);min-height:100svh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #e2cca7;outline-offset:5px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.storybook{max-width:1050px;margin:auto;padding:22px 26px 30px}header{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;letter-spacing:2px;color:#b8cad7}header>a{padding:10px 0}.header-actions{display:flex;gap:8px;align-items:center}header button{min-height:40px;padding:8px;font-size:11px;letter-spacing:1px}.title{text-align:center;margin:27px 0 24px}.eyebrow{font-size:10px;letter-spacing:4px;color:#a9bac7}h1{font-weight:400;font-size:29px;letter-spacing:9px;margin:11px 0 12px}.title p{font-size:13px;letter-spacing:2px;color:var(--muted);margin:0;line-height:1.9}.book{width:min(100%,500px);margin:auto;position:relative}.page-caption{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;font-size:11px;color:#bdccd8;letter-spacing:3px}.page-caption span:last-child{font-size:10px;letter-spacing:2px;color:#8ea5bb}.scene{position:relative;aspect-ratio:2/3;isolation:isolate;border-radius:120px 120px 12px 12px;overflow:hidden;box-shadow:0 20px 70px #020b1790,0 0 0 1px #94a9c029;touch-action:none;user-select:none;-webkit-user-select:none;background:#213d59}.painted-page{position:absolute;inset:0;background-image:url('assets/moon/story-clean-v2.webp');background-size:300% 100%;background-position:0 0;transition:filter 1.5s,transform 2.4s}.scene[data-page="2"] .painted-page{background-position:50% 0}.scene[data-page="3"] .painted-page{background-position:100% 0;filter:brightness(.7) saturate(.85)}.scene.flowered .painted-page{filter:brightness(1.12);transform:scale(1.025)}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0b20322b,transparent 35%,#101e3124)}#moonFireflies{position:absolute;width:100%;height:100%;inset:0;pointer-events:none;opacity:.78}#storyArt{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.scene [data-object]{cursor:grab;touch-action:none}.scene.is-dragging [data-object]{cursor:grabbing}.whisper{min-height:50px;margin:17px 15px 5px;text-align:center;font-size:12px;line-height:1.9;letter-spacing:1.5px;color:#b3c8d6}.book-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 3px;font-size:11px;color:#93adbf}.book-bottom button{font-size:11px;padding:10px 2px;letter-spacing:1px}.book-bottom button:disabled{opacity:.2;cursor:default}.bookmarks{display:flex;gap:10px;align-items:center}.bookmark{width:5px;height:5px;border:1px solid #b4c5d8;border-radius:50%;opacity:.35}.bookmark.current{opacity:1;background:#dfdaca;box-shadow:0 0 9px #dceaff70}.turn-page{display:block;margin:0 auto 5px;padding:13px 22px;border-bottom:1px solid #a6bec34d;color:#e4e4d5;font-size:13px;letter-spacing:3px;animation:arrive 1.4s both}.next-link{display:block;text-align:center;margin:16px auto;padding:16px 8px;border:1px solid #acc9d24d;border-radius:2px;font-size:13px;letter-spacing:2px}.footer-note{text-align:center;color:#7792a8;font-size:10px;letter-spacing:2px;margin:20px 0 0}dialog{width:min(90vw,420px);border:1px solid #8198ad66;border-radius:9px;background:#1a2c43;color:var(--ink);padding:34px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#071421b8;backdrop-filter:blur(7px)}dialog h2{font-weight:400;font-size:22px;letter-spacing:4px}dialog p{font-size:13px;line-height:1.9;color:#b7c9d6}dialog button.action{display:block;width:100%;text-align:left;border-bottom:1px solid #96a7b32e;padding:15px 0;font-size:13px}#close{position:absolute;right:12px;top:8px;font-size:24px;padding:6px}.bowl-sheen{animation:breathe 3.8s infinite alternate}.moth{animation:float 4s ease-in-out infinite;pointer-events:none}.moth-wing{transform-box:fill-box;transform-origin:center;animation:flutter .9s infinite alternate}.moon-ripple{transform-origin:221px 464px;animation:ripple 4s infinite}.stair-glow{animation:breathe 3s infinite alternate}.moon-drip{stroke-dasharray:4 10;animation:drip 1.5s linear infinite}.capture-glow{animation:arrive 1s both}.live-moon{animation:breathe 3s infinite alternate}@keyframes breathe{from{opacity:.5}to{opacity:1}}@keyframes float{0%,100%{translate:0 0}50%{translate:4px -9px}}@keyframes flutter{from{scale:.85 1}to{scale:1.08 .73}}@keyframes ripple{0%{scale:.6;opacity:0}35%{opacity:.5}100%{scale:1.6;opacity:0}}@keyframes drip{to{stroke-dashoffset:-28}}@keyframes arrive{from{opacity:0}to{opacity:1}}@media(min-width:850px){.storybook{padding-top:27px}.title{margin:24px 0 22px}.book{width:420px}.scene{border-radius:105px 105px 10px 10px}}@media(max-width:480px){.storybook{padding:12px 16px 20px}header{font-size:10px;letter-spacing:1px}header button{font-size:10px;padding:6px}.title{margin:19px 0 18px}h1{font-size:25px;letter-spacing:7px}.title p{font-size:11px}.eyebrow{font-size:8px;letter-spacing:3px}.scene{border-radius:95px 95px 9px 9px}.page-caption{margin-bottom:10px}.whisper{margin-top:13px;font-size:11px;min-height:44px}.footer-note{margin-top:12px;font-size:9px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.falling-moon{pointer-events:none;animation:falling-moon 1.2s cubic-bezier(.4,0,.7,1) both}@keyframes falling-moon{0%{translate:0 0;opacity:1}70%{opacity:1}100%{translate:0 341px;opacity:0;scale:1 .4}}

.painted-moth{pointer-events:none;animation:painted-flutter 2.8s ease-in-out infinite}.bowl-moon{pointer-events:none;animation:breathe 3s infinite alternate}.cradle-call{animation:breathe 2.4s infinite alternate}.joint-glint{animation:breathe 3s infinite alternate}.star-lantern{transition:filter 1s}.star-lantern:not(.is-lit) image{filter:brightness(.55) saturate(.6)}.star-lantern.is-lit{filter:drop-shadow(0 0 5px #e7d89a66)}@keyframes painted-flutter{0%,100%{translate:0 0;scale:1 1}50%{translate:0 -5px;scale:1 .92}}

.continue-space{min-height:82px;display:flow-root}.moon-passage{position:absolute;inset:0;width:100%;height:100%;z-index:8;pointer-events:none}.scene.in-passage .painted-moth,.scene.in-passage .guide-call{visibility:hidden}.scene.in-passage #storyArt{pointer-events:none}.passage-skip{position:absolute;right:16px;bottom:15px;z-index:9;padding:10px 12px;font-size:10px;letter-spacing:2px;color:#d9e4dc;background:#122a3d66;border-radius:20px;backdrop-filter:blur(5px)}.passage-moth-wings{transform-box:fill-box;transform-origin:center;animation:passage-wings .24s ease-in-out infinite alternate}.guide-call{cursor:pointer!important}@keyframes passage-wings{from{scale:1 1}to{scale:.96 .48}}@media(prefers-reduced-motion:reduce){.passage-moth-wings{animation:none}}

.moon-bridge-flight{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}.bridge-flight-wings{transform-box:fill-box;transform-origin:center;animation:passage-wings .23s ease-in-out infinite alternate}.scene.bridge-in-flight [data-object]{pointer-events:none}@media(prefers-reduced-motion:reduce){.bridge-flight-wings{animation:none}}
