.companion-layer{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}.companion-trinket{pointer-events:all;cursor:pointer;touch-action:none}.companion-trinket:focus-visible{outline:1px solid #c8cfb1;outline-offset:3px}.companion-trinket [data-rest]{transform-origin:0 0}.storybook-host{overflow:hidden!important}.storybook-host>main,.storybook-host>dialog{display:none!important}.storybook-frame{position:fixed;inset:0;width:100%;height:100%;height:100dvh;border:0;background:#edf0e5;z-index:70}.storybook-frame.storybook-preload{visibility:hidden;pointer-events:none}.storybook-departing header,.storybook-departing .title,.storybook-departing .page-caption,.storybook-departing .whisper,.storybook-departing .continue-space,.storybook-departing .book-bottom,.storybook-departing .footer-note{opacity:0;transition:opacity .4s}.storybook-arriving{animation:storybook-arrive .7s ease-out both}@keyframes storybook-arrive{from{opacity:.4}to{opacity:1}}@media(prefers-reduced-motion:reduce){.storybook-arriving{animation:none}.storybook-departing header,.storybook-departing .title{transition:none}}

.tea-steam{opacity:.3;animation:tea-breath 4s ease-in-out infinite;pointer-events:none}.warm-cups .tea-steam{opacity:.8;animation-duration:1.2s}[data-home-cup]{pointer-events:all;cursor:pointer}@keyframes tea-breath{0%,100%{opacity:.1}50%{opacity:.45}}

.companion-presence [data-ambient="lamp"] [data-lamp-glow]{animation:presence-answer 5.8s ease-in-out both}.companion-trinket [data-letter-card]{pointer-events:none}.companion-home{position:fixed;inset:0;box-sizing:border-box;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:radial-gradient(ellipse at 50% 58%,#2c3d56,#14213a 72%);color:#d2dce1;overflow:hidden;overscroll-behavior:contain}.companion-home[open]{display:grid;place-items:center;animation:home-open 1.2s ease-out both}.companion-home::backdrop{background:#14213a}.home-page{position:relative;height:min(100dvh,900px);width:min(100vw,600px,calc(100dvh * 2 / 3));aspect-ratio:2/3;overflow:hidden}.home-page>svg{display:block;position:absolute;inset:0;width:100%;height:100%}.home-page button{position:absolute;z-index:2;border:1px solid #a5b5c133;color:#cdd7de;background:#20324b88;font:12px "Songti SC",serif;letter-spacing:2px;cursor:pointer}.home-close{left:14px;top:max(18px,env(safe-area-inset-top));width:40px;height:40px;border-radius:50%}.home-letter{bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:13px 21px;border-radius:25px;white-space:nowrap}.home-revisit{background:none;color:#9caebc;border:0;padding:10px 16px;font:12px "Songti SC",serif;letter-spacing:2px;cursor:pointer}.home-revisit[hidden]{display:none}.home-page [data-home-cup],.home-page [data-home-lamp]{cursor:pointer;pointer-events:all;touch-action:manipulation}.home-page [role="button"]:focus-visible{outline:1px solid #d9c79c}.home-lamp-aura{opacity:calc(var(--home-lamp,0)*.85)}.home-table-light{opacity:var(--home-lamp,0);pointer-events:none}.home-room{filter:brightness(calc(.78 + var(--home-lamp,0)*.25)) saturate(calc(.84 + var(--home-lamp,0)*.16))}.home-tea-warm{opacity:var(--home-tea,0);pointer-events:none}.home-playing .home-water{animation:home-water-breathe 4s ease-in-out infinite}.home-playing .home-ribbon{transform-box:fill-box;transform-origin:50% 0;animation:home-ribbon-sway 6s ease-in-out infinite}.home-playing .warm-cups .tea-steam,.warm-cups .tea-steam{animation:home-warm-tea 3.8s ease-out both}.warm-cups .home-lamp-aura{animation:home-warm-lamp 3.8s ease-out both}.companion-background .companion-home *{animation-play-state:paused!important}@keyframes home-open{from{opacity:0}to{opacity:1}}@keyframes presence-answer{0%,100%{opacity:.6}35%,65%{opacity:1;transform:scale(1.6)}}@keyframes home-lamp-breathe{0%,100%{opacity:.45}50%{opacity:.9}}@keyframes home-water-breathe{0%,100%{opacity:.2}50%{opacity:.55}}@keyframes home-ribbon-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}@keyframes home-warm-tea{0%{opacity:.1;transform:translateY(2px)}35%{opacity:.9}100%{opacity:.2;transform:translateY(-13px)}}@keyframes home-warm-lamp{0%,100%{opacity:calc(var(--home-lamp,0)*.85)}40%{opacity:1}}@media(prefers-reduced-motion:reduce){.companion-home[open],.home-playing .home-lamp-aura,.home-playing .home-water,.home-playing .home-ribbon,.companion-presence [data-lamp-glow]{animation:none}.tea-steam{animation:none}.warm-cups .tea-steam,.warm-cups .home-lamp-aura{animation:none;opacity:.8}}

body.home-showing{overflow:hidden!important}

.home-sound{right:14px;top:max(18px,env(safe-area-inset-top));width:40px;height:40px;border-radius:50%;font-size:17px!important;letter-spacing:0!important}.home-sound[aria-pressed="false"]{opacity:.65}

.companion-layer.is-occupied .companion-trinket{pointer-events:none}
/* One consistent, touch-sized invitation before the browser has audio permission. */
header button[data-audio-state]{min-height:44px;touch-action:manipulation;transition:background .3s,box-shadow .3s}
header button[data-audio-state="gesture"],header button[data-audio-state="muted"],header button[data-audio-state="failed"]{background:color-mix(in srgb,currentColor 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 25%,transparent);border-radius:22px;padding-inline:12px}


/* Full-sized painted thresholds: only the camera and the traveler move. */
.chapter-bridge{position:fixed;inset:0;z-index:120;pointer-events:auto;overflow:hidden}
.chapter-bridge .relay-return,.chapter-bridge .relay-skip,.chapter-bridge .relay-retry{position:absolute;top:max(18px,env(safe-area-inset-top));bottom:auto;background:rgba(245,239,218,.92);color:#4b5147;border:1px solid #b1b49a;border-radius:20px;padding:8px 15px;font:inherit;z-index:5}
.chapter-bridge .relay-return{left:18px}.chapter-bridge .relay-skip{right:18px}.chapter-bridge .relay-retry{top:70px;left:50%;transform:translateX(-50%)}
.bridge-caption{position:absolute;z-index:4;bottom:55px;left:8%;right:8%;margin:0;text-align:center;color:#f9f0d8;text-shadow:0 2px 7px #172b2e,0 0 3px #172b2e;font-size:15px;pointer-events:none;opacity:0}

/* Morning to afternoon: the full-size paintings share one warm paper surface. */
.chapter-bridge-wash{background:#f3eddc;isolation:isolate}
.chapter-wash-stage{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.wash-scene{position:absolute;overflow:hidden;will-change:opacity,filter}
.wash-scene .scene{box-shadow:none!important}
.wash-scene:nth-child(2){opacity:0}
.wash-paper-grain{position:absolute;inset:0;pointer-events:none;opacity:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23958361' filter='url(%23g)' opacity='.28' d='M0 0h180v180H0z'/%3E%3C/svg%3E");mix-blend-mode:multiply}
@media(prefers-reduced-motion:reduce){.wash-scene{will-change:auto}}

.nap-waking-light{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 56% 30%,#f8dfac99,transparent 68%);mix-blend-mode:screen}

.chapter-bridge-wash .relay-return,.chapter-bridge-wash .relay-skip{opacity:var(--nap-controls,1)}

