/* The recovered hero geometry stays intact. Its controls follow the same feet
   anchor as the rig, rather than separate percentages of the viewport. */
.companion-dock{position:absolute;left:0;top:0;z-index:5;pointer-events:none;will-change:transform}
.companion-dock .hello,.companion-dock .breath-cue{position:absolute;left:0;right:auto;top:0;bottom:auto;margin:0;transform:translateX(-50%);white-space:nowrap}
.companion-dock .hello{pointer-events:auto}
.companion-dock .breath-cue{justify-items:center;min-width:140px}
.companion-dock .breathing-dock{position:absolute;left:0;top:0;transform:translateX(-50%);display:grid;justify-items:center;gap:0;pointer-events:none}
.companion-dock .breathing-dock .breath-cue{position:relative;inset:auto;margin:0;transform:none}
@media(max-width:700px){
 .memory-example>span{display:none}
 .companion-dock .breathing-dock{gap:6px}
 .companion-dock .scene-link{pointer-events:auto;margin:0;padding:10px 12px;min-height:44px;white-space:nowrap;color:#203e34;font-size:13px;line-height:20px;font-weight:500;text-shadow:0 1px 8px #fff8,0 0 16px #fff9}
}
/* The static page and moving stage share the same character/feet geometry.
   The greeting must not switch from a viewport bottom offset to a feet anchor
   when the animation module arrives. */
.continuous-journey main{--miro-rest-height:min(82vh,820px);--miro-rest-bottom:8%;--miro-rest-width:min(43vw,640px);--miro-rest-left:55%}
.continuous-journey .hero-character{height:var(--miro-rest-height);bottom:var(--miro-rest-bottom);width:var(--miro-rest-width);left:var(--miro-rest-left)}
.hero .hello{right:auto;transform:translateX(-50%)}
.continuous-journey .hero .hello{left:calc(var(--miro-rest-left) + var(--miro-rest-width)/2);top:calc(100% - var(--miro-rest-bottom) - var(--miro-rest-height)*.076 + 12px);bottom:auto}
@media(min-width:1600px){.continuous-journey main{--miro-rest-height:85vh;--miro-rest-bottom:6%;--miro-rest-width:min(43vw,820px)}}
@media(min-width:701px) and (max-width:1100px){.continuous-journey main{--miro-rest-height:min(82vh,57vw,820px)}}
@media(min-width:701px) and (max-width:900px){.continuous-journey main{--miro-rest-left:53%;--miro-rest-width:48vw}}
.journey-environment{position:absolute;inset:-2%;opacity:0;visibility:hidden;pointer-events:none;will-change:transform,opacity}
.journey-passage{position:absolute;inset:0;pointer-events:none}
.journey-environment .world{animation:forestStillness 24s ease-in-out infinite alternate}
.journey-moon:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 72% 75%,#b7daed15,transparent 35%);animation:moonWater 12s ease-in-out infinite alternate;pointer-events:none}
@keyframes forestStillness{to{transform:scale(1.016) translateY(-.3%)}}
@keyframes moonWater{to{opacity:.35;transform:translateY(.5%)}}
.familiar-copy{color:#203d32;text-shadow:none}
.memory-choices{background:#f2f2e5cc;border-color:#34524624}
.memory-example p{color:#203d32}
.memory-example>span{font-size:13px;line-height:1.45;opacity:1;color:#344f43;max-width:340px}
.familiar-shade{background:linear-gradient(90deg,#edf0df40,transparent 66%)}
.sleep-samples{position:relative;left:auto;right:auto;bottom:auto;margin:26px 0 0;width:min(36vw,460px)}
.sleep-sample{background:#142d35d9;border-color:#d5e3d338}
.sleep-sample small{opacity:.85}.sleep-status{opacity:.85}
.night-copy{width:min(44vw,620px)}
.night-copy h2{font-size:clamp(64px,7vw,112px)}
.night-copy .scene-caption{margin-top:20px}
.night-shade{background:linear-gradient(90deg,#04192360,transparent 65%)}
.technique-control{position:absolute;top:75px;left:50%;transform:translateX(-50%);display:flex;gap:4px;border:1px solid #30483e25;background:#f7f5e7d9;border-radius:40px;padding:4px;z-index:5;white-space:nowrap}
.technique-control button{background:transparent;border-radius:30px;min-height:40px;padding:9px 18px;color:#30483e;font-size:14px}
.technique-control button[aria-pressed=true]{background:#30483e;color:#fff7e8}
.breath-heading{top:150px}.breath-heading .eyebrow{margin-bottom:15px}
.breath-heading #breath-note{min-height:1.5em;max-width:420px;padding:0 20px;margin:16px auto}
.breath-controls{gap:24px}.breathing .breath-world{background-image:linear-gradient(#f7f2e855,#f7f2e822),url('assets/worlds/clearing-wide.webp')}
.breathing.evening .breath-world{background-image:linear-gradient(#0d252c44,#0d252c10),url('assets/worlds/moon-wide.webp')}
.breathing canvas{height:min(65dvh,80vw);bottom:13%}
@media(max-width:700px){
 .continuous-journey main{--miro-rest-height:var(--hero-miro-height);--miro-rest-bottom:var(--hero-miro-bottom);--miro-rest-width:100%;--miro-rest-left:0%}
 .hero .hello{left:50%;margin-left:0}
 .hello,.hello.returned{background:#f8f7e6c9!important;border-color:#ffffffb3;box-shadow:inset 0 1px 0 #fff9,0 3px 12px #193a2312!important;width:128px;min-width:128px;font-size:13px;font-weight:500;padding:10px 13px;text-shadow:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
 .hello:hover{background:#fffbeddd!important}.hello:active,.hello.playing{background:#e9eddbeb!important;color:#203d32}
 .hello:after{display:none}
 .memory-example>span{font-size:12px;line-height:1.45;max-width:275px}
 .memory-example p{font-size:22px;line-height:1.3}
 .familiar-shade{background:linear-gradient(#edf0df3d,transparent 68%)}
 .night-copy{width:auto}
 .sleep-samples{left:auto;right:auto;bottom:auto;width:min(100%,400px);margin:22px auto 0}
 .night-copy h2{font-size:clamp(45px,12.5vw,68px)}
 .sleep-sample{min-height:54px;background:#102b34e8}
 .night-copy .scene-caption{margin-top:16px}
 .technique-control{top:72px;gap:2px;max-width:calc(100% - 24px)}
 .technique-control button{font-size:12px;min-height:38px;padding:8px 14px}
 .breath-heading{top:142px}.breath-heading h2{font-size:clamp(32px,8.8vw,45px)}
 .breath-heading .eyebrow{font-size:10px;margin-bottom:12px}
 .breath-heading #breath-note{font-size:13px;margin-top:12px;max-width:310px}
 .breathing canvas{height:min(56dvh,100vw);bottom:15%}
 .breath-controls{gap:22px;bottom:9%}.breath-controls button{font-size:14px}
 .breathing .breath-world{background-image:linear-gradient(#f7f2e855,#f7f2e822),url('assets/worlds/clearing-portrait.webp')}
 .breathing.evening .breath-world{background-image:linear-gradient(#0d252c44,#0d252c10),url('assets/worlds/moon-portrait.webp')}
}
@media(max-width:700px) and (max-height:700px){
 .continuous-journey .night-copy{top:5%}.night-copy h2,.continuous-journey .night-copy h2{font-size:43px}
 .night-copy .scene-caption{font-size:13px;margin-top:12px}.sleep-samples{margin-top:16px}
 .sleep-sample{min-height:47px;padding:7px 12px}.sleep-sample small{font-size:10px}.sleep-status{margin-top:6px}
 .memory-example>span{font-size:12px;max-width:230px;color:#203d32}.memory-example{margin-top:16px}
 .breathing canvas{height:min(48dvh,88vw);bottom:15%}.breath-heading{top:126px}
 .breath-heading h2{font-size:32px}.breath-heading #breath-note{font-size:12px;margin-top:8px}
 .technique-control{top:66px}.technique-control button{min-height:36px}
}
@media(min-width:701px) and (max-height:800px){
 .night-copy,.continuous-journey .night-copy{top:8%}.night-copy h2,.continuous-journey .night-copy h2{font-size:clamp(58px,6.2vw,88px)}
 .night-copy .eyebrow{margin-bottom:16px}.night-copy .scene-caption{font-size:16px;margin-top:16px}.sleep-samples{margin-top:22px}
 .sleep-sample{min-height:58px}.breathing canvas{height:61dvh}
}
@media(prefers-reduced-motion:reduce){.journey-environment .world,.journey-moon:after{animation:none}}
body:has(dialog[open]) .journey-environment .world,body:has(dialog[open]) .journey-moon:after{animation-play-state:paused}

.breathing .breath-world:after{content:'';position:absolute;inset:78% 0 0;background:linear-gradient(transparent,#f3eddbeb)}
.breathing.evening .breath-world:after{background:linear-gradient(transparent,#091f29ed)}
.breathing[data-guiding=true] #breath-note{font-size:24px;font-variant-numeric:tabular-nums;line-height:1.2}
.breath-controls .quiet-cta{min-height:44px;padding:8px 0}
.breathing .preview-note{opacity:.85}

/* A stable, quiet contrast surface for the timing cue, including pale stone. */
.breath-cue{color:#fff8e8;text-shadow:none;background:#203e34ed;border:1px solid #f5f0e31f;border-radius:16px;padding:9px 18px 10px;gap:7px;box-shadow:0 3px 16px #122c2014}
.breath-cue .breath-trace{background:#fff8e838;width:100px;height:2px}
.breath-cue .breath-trace i{background:#fff8e8}

/* Owner review only. No extra review controls are inserted into the site. */
html[data-hello] .hello{width:128px;min-width:128px;height:45px;min-height:45px;padding:0 10px;gap:8px;color:#234337;font-size:13px;font-weight:500;border:0;background:transparent!important;box-shadow:none!important;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}
html[data-hello] .hello:after{display:none}
html[data-hello] .hello:active{scale:1}
html[data-hello] .hello:focus-visible{outline:2px solid #234337;outline-offset:4px}
html[data-hello=note] .hello:before{content:'';position:absolute;inset:0 -8px;z-index:-1;background:radial-gradient(ellipse,#fbf6e4d9 0%,#fbf6e499 40%,transparent 74%);pointer-events:none}
html[data-hello=note] .sound-bars{box-sizing:content-box;padding:7px;border:1px solid #30483e55;border-radius:50%;background:#f8f5e65c}
html[data-hello=note] .hello:hover .sound-bars,html[data-hello=note] .hello.playing .sound-bars{background:#f9f5e5d9}
html[data-hello=whisper] .hello{gap:7px}
html[data-hello=whisper] #hello-label{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:#30483e70}
html[data-hello=whisper] .hello:before{content:'';position:absolute;inset:5px -6px;z-index:-1;background:#fff8e09c;filter:blur(10px);border-radius:50%;pointer-events:none}
html[data-hello=whisper] .hello:hover #hello-label{text-decoration-color:currentColor}
html[data-hello=pebble] .hello{width:48px;min-width:48px;border:1px solid #fff9;border-radius:50%;background:#f8f5e6b8!important;box-shadow:0 2px 9px #173a2410!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
html[data-hello=pebble] #hello-label{position:absolute;top:47px;font-size:11px;line-height:16px;white-space:nowrap;text-shadow:0 1px 6px #fff9,0 0 12px #fff}
html[data-hello=pebble] .hello:hover,html[data-hello=pebble] .hello.playing{background:#fbf8ebed!important}
@media(max-width:700px){html[data-hello=pebble].continuous-journey main{--hello-height:62px}}

/* Keep the original greeting pill, quieter than the primary invitation.
   Keep the existing dock allocation so changing its finish cannot move Miro. */
html[data-hello=glass] .hello{
 width:164px;min-width:164px;height:44px;min-height:44px;padding:0 18px;gap:10px;
 border:1px solid #ffffff60;border-radius:40px;background:#e7eae36b!important;
 color:#294438;font-size:14px;font-weight:500;line-height:20px;text-shadow:none;
 box-shadow:inset 0 1px 0 #ffffff33,0 2px 8px #173a240a!important;
 backdrop-filter:blur(12px) saturate(.85);-webkit-backdrop-filter:blur(12px) saturate(.85);
 transition:background-color .2s ease,border-color .2s ease;
}
html[data-hello=glass] .hello:after{content:'';display:block;position:absolute;inset:-2px 0;border-radius:inherit;box-shadow:none;pointer-events:auto}
html[data-hello=glass] .hello:active,html[data-hello=glass] .hello.playing{background:#dce3d98c!important;border-color:#ffffff80;scale:1}
html[data-hello=glass] .hello.returned{background:#e7eae36b!important}
@media(hover:hover) and (pointer:fine){html[data-hello=glass] .hello:hover:not(.returned){background:#edf0e87d!important;border-color:#ffffff90}}
@media(max-width:700px){html[data-hello=glass] .hello{width:128px;min-width:128px;height:40px;min-height:40px;padding:0 13px;gap:9px;font-size:13px}}
@media(prefers-reduced-motion:reduce){html[data-hello=glass] .hello{transition:none}}
html[data-world=nearby].continuous-journey .familiar-copy,html[data-world=nearby].continuous-journey .memory-example p,html[data-world=nearby].continuous-journey .memory-example>span{color:#fff7e4;text-shadow:0 2px 16px #142c2480}
html[data-world=nearby].continuous-journey .memory-choices{background:#14382dd9;border-color:#f4f1de50}
html[data-world=nearby].continuous-journey .memory-choices button{color:#fff8e8}
html[data-world=nearby].continuous-journey .memory-choices button[aria-pressed=true]{background:#f4f1de;color:#234337;text-shadow:none}
.journey-reading-shade{position:absolute;inset:0;background:linear-gradient(90deg,#102e25b5, #102e2566 42%,transparent 70%);pointer-events:none}
html[data-world=nearby].continuous-journey .journey-environment .world{animation:none}
html[data-world=nearby].continuous-journey .sleep-sample{background:#142c28e8}
@media(max-width:700px){.journey-reading-shade{background:linear-gradient(180deg,#102c25ba,#102c2570 53%,transparent 78%)}}
