:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f4efd9;background:#182f2a;font-synthesis:none;color-scheme:dark;--cream:#f4efd9;--amber:#eec980;--moss:#bed193}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{height:100svh;height:100dvh}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--amber);outline-offset:5px}button:disabled{opacity:.3;cursor:default}.skip{position:fixed;z-index:30;top:-80px;left:20px;padding:15px;background:var(--cream);color:#234731}.skip:focus{top:8px}.story-stage{position:fixed;inset:0;overflow:hidden;background:#182f2a;isolation:isolate}.story-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(#0c241c88,transparent 22%,transparent 42%,#10251b7a 66%,#10251bee);pointer-events:none;z-index:3}.scene-image,.living-layer{position:absolute;left:var(--art-left,0px);top:var(--art-top,0px);width:var(--art-width,100%);height:var(--art-height,100%);max-width:none;pointer-events:none}.scene-image{object-fit:fill;transition:opacity .6s ease}.current-image{z-index:1}.previous-image{z-index:0}.living-layer{z-index:2;overflow:visible}.story-stage.loading .current-image{opacity:0}.scene-hotspot{position:absolute;z-index:4;transform:translate(-50%,-50%);width:48px;height:48px;display:grid;place-items:center;border:1px solid #f4efd999;border-radius:50%;color:#fff3c0;background:#19362788;box-shadow:0 0 0 6px #edd49218,0 0 25px #ffc77333;font-size:21px;animation:hotspot-breathe 2.8s ease-in-out infinite}.scene-hotspot[hidden]{display:none}header,.chapter-copy,.story-navigation{position:fixed;z-index:10}header{top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:18px 4vw;gap:22px;text-shadow:0 1px 10px #162b25}.home-link{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;white-space:nowrap}.home-link img{filter:brightness(1.8)}.home-link>span:last-child{margin-left:5px}.book-title{font:italic 22px Georgia,serif;opacity:.9}header nav{display:flex;gap:22px}header button{border:0;background:none;padding:10px 0;font-size:11px;min-height:44px;white-space:nowrap}header button span{margin-left:6px}.chapter-copy{left:5vw;bottom:126px;width:min(480px,42vw);text-shadow:0 1px 12px #09201799}.chapter-place{text-transform:uppercase;letter-spacing:.18em;font-size:9px;font-weight:650;color:#dfdfb8;margin:0 0 16px}h1{font:clamp(30px,3.1vw,48px)/1.08 Georgia,serif;letter-spacing:-.035em;margin:0 0 18px;text-wrap:balance}.chapter-text{font-size:14px;line-height:1.85;margin:0;color:#f0eddd;max-width:440px;text-wrap:pretty}.moment-row{display:flex;align-items:center;gap:12px;margin-top:19px}.moment-button{min-height:44px;padding:9px 15px;border:1px solid #d3dba96b;border-radius:25px;background:#203c2ac7;color:#f2eac4;font-size:11px;letter-spacing:.02em;transition:background .2s,border-color .2s}.moment-button:hover{background:#3a5332;border-color:var(--amber)}.moment-button>span:first-child{margin-right:6px;color:#e9c46a}#moment-count{font:10px ui-monospace,monospace;color:#d2dcab}.whisper{height:36px;max-width:430px;font:italic 14px/1.5 Georgia,serif;color:#e8d99f;margin:12px 0 0;opacity:0;transition:opacity .35s}.whisper.revealed{opacity:1}.story-navigation{left:5vw;right:5vw;bottom:max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid #e7e6c82e;padding-top:14px}.journey-progress{display:flex;align-items:center;gap:25px;min-width:0;flex:1}#chapter-count{font:11px ui-monospace,monospace;white-space:nowrap}.progress-track{display:flex;gap:7px;width:min(260px,26vw);min-width:45px}.progress-track i{display:block;flex:1;height:3px;background:#e1e6c92e;border-radius:1px;transition:background .3s}.progress-track i.passed{background:#9caf77}.progress-track i.current{background:#efd293}.journey-label{font-size:9px;color:#c9d2b3;white-space:nowrap}.journey-label span{padding:0 8px}.story-navigation nav{display:flex;gap:12px;flex:none}.story-navigation button{min-height:44px;border:1px solid #d8dfbb50;border-radius:30px;background:#1a3629a6;padding:10px 20px;font-size:12px}.story-navigation button:last-child{background:#eee4c5;color:#234731;border-color:#eee4c5;min-width:106px}.story-navigation button span{margin-left:12px}.loading-note,.error-note{position:fixed;z-index:20;top:82px;left:50%;transform:translateX(-50%);background:#203e2bea;border:1px solid #b0c18580;border-radius:25px;padding:12px 20px;font-size:12px;text-align:center;max-width:90vw}.error-note button{border:0;border-bottom:1px solid currentColor;background:none;margin-left:8px;padding:4px}dialog{border:1px solid #a3b48470;border-radius:14px;background:#1e392b;color:var(--cream);padding:40px;width:min(540px,92vw);max-height:88dvh;overflow:auto}dialog::backdrop{background:#0c211bcf;backdrop-filter:blur(4px)}dialog h2{font:40px/1.1 Georgia,serif;letter-spacing:-.04em;margin:15px 0 25px}.close{position:absolute;right:10px;top:8px;width:44px;height:44px;background:none;border:0;font-size:28px}.chapter-list{display:grid;gap:0}.chapter-list button{display:flex;align-items:center;gap:16px;width:100%;text-align:left;min-height:48px;padding:12px 0;background:none;border:0;border-top:1px solid #adc18a35;font-size:12px}.chapter-list button span:first-child{font:10px ui-monospace,monospace;color:#b5c590}.chapter-list button[aria-current="step"]{color:#efd293}.chapter-note{font:italic 12px/1.6 Georgia,serif;color:#b9c79f;margin:23px 0 0}.game-link{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0;border-top:1px solid #adc18a35}.game-link small{display:block;font-size:10px;color:#cbd4b4;margin-bottom:8px}.game-link strong{font:26px Georgia,serif;letter-spacing:-.03em}.game-link>span:last-child{font-size:24px;color:#e9c46a}.back-link{display:inline-block;font-size:12px;margin-top:18px;padding-block:10px}.no-script{position:fixed;z-index:20;top:30%;left:5vw;right:5vw;padding:20px;background:#1e392bee;line-height:1.7}.no-script a{text-decoration:underline}
.float-bit{animation:bit-wander 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.rain-drop{animation:rain-fall 1.7s linear infinite}.mist{animation:mist-wander 16s ease-in-out infinite alternate}.light-halo{opacity:.25;transition:opacity .8s;animation:lamplight 3.2s ease-in-out infinite alternate}.awake .light-halo{opacity:.9}.star-trace{stroke-dasharray:110;stroke-dashoffset:110;transition:stroke-dashoffset 1.5s ease,opacity .5s;opacity:0}.awake .star-trace{stroke-dashoffset:0;opacity:1}.steam{animation:steam-rise 5s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom}.dream-ring{opacity:.12;transform-box:fill-box;transform-origin:center;transition:opacity .7s;animation:dream-breathe 5s ease-in-out infinite alternate}.awake .dream-ring{opacity:.5}.train-streak{animation:train-pass 4s linear infinite}.door-rays{opacity:0;transition:opacity 1s}.awake .door-rays{opacity:.22}.motion-paused *, .motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}.motion-paused .living-layer{transform:none!important}
@keyframes hotspot-breathe{0%,100%{box-shadow:0 0 0 4px #edd49218,0 0 16px #ffc77322}50%{box-shadow:0 0 0 9px #edd4920d,0 0 30px #ffc77355}}@keyframes bit-wander{0%,100%{transform:translate(0,0);opacity:.2}50%{transform:translate(7px,-13px);opacity:.85}}@keyframes rain-fall{from{transform:translate(0,-35px);opacity:0}30%{opacity:.35}to{transform:translate(-7px,45px);opacity:0}}@keyframes mist-wander{from{transform:translateX(-10px);opacity:.13}to{transform:translateX(20px);opacity:.28}}@keyframes lamplight{from{filter:drop-shadow(0 0 4px #ffd889)}to{filter:drop-shadow(0 0 15px #ffd889)}}@keyframes steam-rise{0%{transform:translate(0,5px);opacity:0}35%{opacity:.3}100%{transform:translate(8px,-20px);opacity:0}}@keyframes dream-breathe{from{transform:scale(.96)}to{transform:scale(1.04)}}@keyframes train-pass{from{transform:translateX(70px);opacity:0}20%,70%{opacity:.3}to{transform:translateX(-95px);opacity:0}}
@media(max-width:700px){header{padding:10px 5vw;gap:12px}.home-link{font-size:12px;gap:5px}.home-link img{width:20px;height:20px}.book-title{display:none}header nav{gap:14px}header button{font-size:10px}header button span{margin-left:3px}.chapter-copy{left:6vw;right:6vw;width:auto;bottom:105px}.chapter-place{font-size:8px;letter-spacing:.14em;margin-bottom:12px}h1{font-size:clamp(28px,8vw,37px);margin-bottom:13px;max-width:360px}.chapter-text{font-size:12px;line-height:1.75;max-width:360px}.moment-row{margin-top:14px}.moment-button{font-size:10px;padding:8px 13px}.whisper{font-size:12px;margin-top:10px;height:36px;max-width:350px}.story-navigation{left:6vw;right:6vw;bottom:max(15px,env(safe-area-inset-bottom));gap:17px;padding-top:10px}.journey-progress{gap:12px}.progress-track{gap:4px;width:auto;flex:1}#chapter-count{font-size:9px}.journey-label{display:none}.story-navigation nav{gap:7px}.story-navigation button{padding:10px 14px;font-size:10px}.story-navigation button:last-child{min-width:81px}.story-navigation button span{margin-left:6px}.loading-note,.error-note{top:70px;font-size:10px}dialog{padding:34px 25px}dialog h2{font-size:34px}.chapter-list button{font-size:11px}}
@media(max-height:500px){header{padding-top:4px;padding-bottom:4px}.book-title{font-size:17px}header button{font-size:10px}.chapter-copy{left:4vw;bottom:75px;width:47vw;right:auto}.chapter-place{font-size:7px;margin-bottom:7px}h1{font-size:clamp(24px,3.5vw,31px);margin-bottom:8px}.chapter-text{font-size:11px;line-height:1.5}.moment-row{margin-top:8px}.moment-button{font-size:9px;min-height:32px;padding:6px 11px}.whisper{font-size:11px;margin-top:6px;height:28px;line-height:1.3}.story-navigation{bottom:8px;padding-top:6px;left:4vw;right:4vw}.story-navigation button{min-height:36px;padding:7px 16px}.journey-label{display:none}.loading-note,.error-note{top:52px}.story-stage::after{background:linear-gradient(90deg,#10251bd9,transparent 74%),linear-gradient(#0c241c66,transparent 22%,transparent 55%,#10251b99)}}
@media(max-height:350px){.chapter-copy{bottom:67px}.chapter-place{margin-bottom:5px}h1{font-size:23px;margin-bottom:6px}.chapter-text{font-size:10px;line-height:1.4}.moment-row{margin-top:6px}.whisper{height:24px;font-size:10px}.home-link{font-size:11px}.book-title{display:none}.story-navigation{bottom:6px}.story-navigation button{min-height:34px}}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) *,body:not(.motion-enabled) *::before,body:not(.motion-enabled) *::after{animation:none!important;transition:none!important}}

/* Small shared moments stay on lightweight layers above the complete scene art. */
.partner-lantern{opacity:.3;transform-box:fill-box;transform-origin:center;animation:partner-light 3.4s ease-in-out infinite alternate;transition:opacity .5s}.awake .partner-lantern{opacity:.85}.support-spark{animation:shared-spark 5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.partner-steam{opacity:.3}.co-op-controller{opacity:.12;transition:opacity .4s}.awake .co-op-controller{opacity:.5}.co-op-ring,.co-op-spark{opacity:0;transform-box:fill-box;transform-origin:center}.co-op-playing .co-op-ring{animation:co-op-ripple 2.2s ease-out both}.co-op-playing .co-op-spark{animation:co-op-spark 1.6s ease-out both}.motion-paused *, .motion-paused *::before,.motion-paused *::after{transition:none!important}
@keyframes partner-light{from{filter:drop-shadow(0 0 2px #efc573);transform:scale(.98)}to{filter:drop-shadow(0 0 10px #efc573);transform:scale(1.025)}}
@keyframes shared-spark{0%,100%{opacity:.12;transform:translateY(0)}45%{opacity:.85;transform:translate(4px,-13px)}}
@keyframes co-op-ripple{0%{opacity:0;transform:scale(.55)}25%{opacity:.55}100%{opacity:0;transform:scale(1.3)}}
@keyframes co-op-spark{0%{opacity:0;transform:translate(0,0) scale(.5)}20%{opacity:.9}100%{opacity:0;transform:translate(var(--spark-drift),-65px) scale(.9)}}
