/* A single full-screen world, with a small number of glass surfaces above it. */
:root{--ink:#1e2d26;--muted:#526258;--line:#ffffff54;--green:#3a5c48;--green-soft:#deeadca8;--green-line:#749b7d80;--soft:#ffffff38;--paper:#eff3ef;--accent:#284b37;--glass:linear-gradient(145deg,#f5faf2cc,#e9f0e5a8);--glass-edge:inset 0 1px 0 #ffffffd9,inset 0 -1px 0 #ffffff3d,0 16px 48px #06180e26;--panel-bottom:max(20px,env(safe-area-inset-bottom));font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
html,body{width:100%;min-height:100%;background:#283d32}body{min-height:100dvh;overflow:hidden}body::after{content:'';position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#0a1d1666,transparent 32%,transparent 64%,#0a1d1645)}
.scene-fallback{position:fixed;inset:0;z-index:0;background:#788d7b url('./worlds/forest-preview.jpg') center/cover no-repeat;transform:scale(1.025);pointer-events:none}.scene-fallback[data-world=coast]{background-image:url('./worlds/coast-preview.jpg')}.scene-fallback[data-world=room]{background-image:url('./worlds/room-preview.jpg')}body[data-stage=onboarding] .scene-fallback{filter:blur(5px);transform:scale(1.04)}
#space,body[data-stage=landing] #space,body[data-stage=onboarding] #space{position:relative;display:block;max-width:none;min-height:100dvh;margin:0;padding:0;pointer-events:none}
.site-header{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;height:88px;max-width:none;padding:0 36px;margin:0;z-index:8;pointer-events:none;color:#f5faf5}.site-header .brand,.site-header nav{pointer-events:auto}.brand svg{stroke:#ecf8ed}.brand>span{font-size:23px;font-weight:400;letter-spacing:5px}.brand small{color:#edf5e4a6;letter-spacing:3px;font-size:12px}.site-header nav{gap:8px}.site-header :is(.nav-button,.voice-entry,.round-button){color:#f6fff5;border:1px solid #f4ffef45;border-radius:100px;background:linear-gradient(145deg,#ffffff24,#ffffff0c);box-shadow:inset 0 1px 0 #ffffff3d,0 4px 20px #09221712;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);min-height:44px;padding:10px 17px;line-height:1.5}.site-header .round-button{width:44px;padding:10px}.site-header .brand:focus-visible{outline-color:#d1e4d0}
body #avatar-stage,body[data-stage=landing] #avatar-stage,body[data-stage=plan] #avatar-stage,body[data-stage=greeting] #avatar-stage,body[data-stage=session] #avatar-stage,body[data-environment] #avatar-stage{position:fixed;inset:0;z-index:0;width:100%;height:100dvh;min-height:100dvh;margin:0;padding:0;max-width:none;align-self:auto;pointer-events:auto;display:block}
body .avatar-visual,body .avatar-canvas,body[data-environment] .avatar-visual,body[data-stage=greeting][data-environment] .avatar-canvas{position:absolute;inset:0;width:100%;height:100%;border-radius:0;overflow:hidden;background:none;mask-image:none}.ambient-light{display:none}.avatar-canvas{touch-action:pan-y}.avatar-canvas canvas{width:100%;height:100%}.greet-target{inset:20% 25% 24%}
body[data-stage=onboarding] #avatar-stage{display:none}body[data-stage=session] #avatar-stage{pointer-events:none}.space-footer{position:fixed;left:0;right:0;bottom:8px;z-index:4;margin:0;font-size:12px;color:#e3ece2a0;gap:12px;display:none}body:not([data-stage=landing]) :is(.intro,.landing-actions){display:none}
body .intro{position:fixed;top:126px;left:42px;z-index:3;margin:0;padding:0;max-width:340px;text-align:left;color:#f6fbf4;pointer-events:none;text-shadow:0 2px 20px #092a185e}.intro .eyebrow{font-size:14px;letter-spacing:3px;color:#e6f0e2bf;margin:0 0 14px}.intro h1{font-size:42px;line-height:1.3;font-weight:300;letter-spacing:4px}.intro-copy{font-size:16px;line-height:1.8;color:#f2f7efcc;max-width:290px;margin:18px 0 0}
:is(.onboarding,.landing-actions,.conversation,.greeting-bubble,.model-error){background:var(--glass);border:1px solid #ffffff80;border-radius:28px;box-shadow:var(--glass-edge);-webkit-backdrop-filter:blur(22px) saturate(125%);backdrop-filter:blur(22px) saturate(125%);color:var(--ink);pointer-events:auto}
.onboarding{position:fixed;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 48px));max-height:calc(100dvh - 150px);overflow:auto;margin:0;padding:30px 28px}.entry-top{font-size:14px;letter-spacing:2px;margin-bottom:22px;color:#496550}.onboarding h1{font-size:29px;line-height:1.45;font-weight:400;letter-spacing:1px;margin:0 0 22px}.entry-description{font-size:16px;margin:0 0 20px;line-height:1.7;color:#536355}.entry-options{border:0;display:grid;gap:8px}.entry-options button{min-height:66px;padding:15px 42px 15px 16px;border:1px solid #ffffff50;border-radius:16px;background:#ffffff2e;gap:4px}.entry-options strong{font-size:16px;font-weight:500}.entry-options span{font-size:14px;line-height:1.5}.entry-options button::after{right:16px;width:17px;height:17px;border-color:#526d5373}.entry-options button.selected{background:#e9f4e0c9;border-color:#75957c6b;color:#284735;box-shadow:inset 0 1px 0 #ffffffb3}.entry-options button.selected::after{border:5px solid var(--green)}.entry-options button:hover:not(.selected){background:#ffffff60}.entry-actions{margin-top:24px}
body .landing-actions{position:fixed;z-index:4;left:50%;bottom:var(--panel-bottom);transform:translateX(-50%);width:min(390px,calc(100% - 48px));max-width:none;margin:0;padding:18px 20px 12px}.companion-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 14px}.companion-picker button[data-avatar-choice]{min-height:44px;padding:8px 16px;border:1px solid transparent;background:#ffffff24;border-radius:14px;font-size:15px}.companion-picker button.selected{background:#ffffff99;color:var(--green);border-color:#ffffffa6;box-shadow:0 2px 8px #1b37220a}.companion-picker button span{font-size:12px;color:#617264;margin-left:8px}.companion-picker .custom-avatar-entry{display:none}#edit-entry{margin:5px auto 0;font-size:14px;padding:9px}#avatar-animation-note{font-size:14px;margin:0 0 12px}
.primary-button{min-height:50px;border:1px solid #ffffff2b;border-radius:16px;background:linear-gradient(135deg,#355b40df,#213c2beb);box-shadow:inset 0 1px 0 #ffffff30,0 4px 14px #18392312;color:#f5faf0;font-size:16px;font-weight:500;padding:13px 20px;letter-spacing:.5px}.primary-button:hover:not(:disabled),#start:hover:not(:disabled){background:#244730}.primary-button:disabled{background:#ffffff3d;color:#627162;opacity:.65;box-shadow:none}.subtle-button,.feedback-options button{border-color:#ffffff80;background:#ffffff24;border-radius:14px;min-height:44px}.text-button{color:#4e6354;min-height:44px;padding:10px 0}.text-button:hover{color:#203d2a}.quiet-note{color:var(--muted)}
body .conversation{position:fixed;z-index:4;left:50%;bottom:var(--panel-bottom);transform:translateX(-50%);width:min(440px,calc(100% - 48px));max-width:none;padding:24px;max-height:calc(100dvh - 150px);overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.panel-header{margin:0 0 14px}.panel-header .round-button{width:44px;height:44px;color:#526554;background:#ffffff24}.panel-header h2{font-size:15px}body[data-stage=plan] .panel-header{top:14px;right:15px}body[data-stage=plan] .plan-top{padding-right:36px}.plan-top{font-size:12px;color:#556759}.practice-profile{font-size:12px}.practice-why{display:none}#practice-title{font-size:25px;line-height:1.5;margin:5px 0 16px;font-weight:400;letter-spacing:.5px}.plan-duration{border:0;padding:0 0 14px}.plan-time-head{margin-bottom:10px}.plan-field-label{font-size:14px}#custom-duration summary{font-size:14px}.time-picker{gap:6px}.time-picker button{min-height:42px;border-radius:12px;background:#ffffff30}.time-picker button.selected{background:#f2faedb0;box-shadow:inset 0 0 0 1px #75997e78;color:var(--green)}details{border-color:#ffffff5c}summary{min-height:46px;padding:11px 0;font-size:14px}summary>span{font-size:13px;max-width:70%}#start{margin-top:15px;background:linear-gradient(135deg,#355b40df,#213c2beb)}.back-chat{margin:2px auto 0;min-height:38px;font-size:14px}.preferences-body{padding:8px 0 16px}.world-picker-cards{gap:8px;padding-bottom:16px}.world-picker button{border-radius:14px;background:#ffffff30;border-color:#ffffff80}.world-picker span{font-size:13px}
.model-loading{color:#f3faf0;font-size:14px;gap:14px;text-shadow:0 2px 15px #102418}.loading-line{background:#e1f6df}.model-error{z-index:6;inset:auto;top:45%;left:50%;transform:translate(-50%,-50%);width:min(330px,calc(100% - 48px));padding:24px;text-shadow:none}.model-error p{margin:0 0 12px}body .greeting-bubble,body[data-stage=landing] .greeting-bubble,body[data-stage=greeting] .greeting-bubble{position:fixed;top:auto;right:auto;left:50%;bottom:var(--panel-bottom);transform:translateX(-50%);width:min(420px,calc(100% - 48px));max-width:none;padding:20px 24px;margin:0;z-index:5}.greeting-bubble p{font-size:16px;line-height:1.9;margin:8px 0 0}.speaker-name{color:#3b6248;font-size:13px}#skip-greeting{margin:4px 0 0;font-size:14px}.avatar-invite{position:absolute;top:42%;right:12%;background:#ffffff35;border:1px solid #ffffff6e;border-radius:20px;padding:10px 16px;font-size:14px;line-height:1.6;color:#f3faef;box-shadow:inset 0 1px 0 #ffffff59;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.scene-caption{display:block;position:fixed;top:100px;right:36px;left:auto;bottom:auto;z-index:3;font-size:12px;letter-spacing:2px;color:#eaf2e3bd;padding:0;background:none;border-radius:0;pointer-events:none}.environment-loading{background:#e6f0e3d9;border:1px solid #ffffff80;border-radius:100px;box-shadow:var(--glass-edge);font-size:14px;padding:12px 18px;color:#38503e}.avatar-status-tag{left:24px;bottom:38%;background:#ffffff59;border:1px solid #ffffff80;color:#3e5845;border-radius:14px}
body[data-stage=session] .conversation{width:min(390px,calc(100% - 48px));padding:18px 22px;max-height:45dvh;background:linear-gradient(145deg,#edf5e0b8,#dce7d49c);border-radius:26px}.session-controls{display:flex;gap:10px;margin:8px 0 0}.session-controls>button{flex:1;min-height:44px;padding:10px 14px}.session-audio{margin-top:10px}.session-audio summary{min-height:36px;padding:8px 0}.session-audio[open] .volume-control{padding:10px 0}#session-view>.quiet-note{display:none}#phase{display:block;font-size:12px;letter-spacing:2px;text-align:center;color:#4a6850}#session-clock{width:auto;height:auto;border:0;border-radius:0;background:none;box-shadow:none;margin:8px 0 10px;padding:0;display:block}.timer{font-size:32px;font-weight:300;line-height:1.2;letter-spacing:3px;color:#234633}.guidance{font-size:16px;font-weight:400;line-height:1.8;min-height:0;text-align:center;margin:8px 0 14px;color:#293c2d}#progress{height:2px;margin:0 0 12px;background:#ffffff45;accent-color:#476b4c}#skip-arrival{margin:4px auto 8px}.finish-title{font-size:25px;line-height:1.6;font-weight:400;margin:6px 0 12px}.completed-text{font-size:14px;line-height:1.8;margin:0 0 20px;color:#4b6250}.feedback-options button{font-size:14px}.feedback-duration{margin-top:12px}fieldset{margin:16px 0}#again{margin-top:18px}#finish-label{font-size:12px;letter-spacing:2px}
body[data-text-only=true] .conversation{max-width:440px}body[data-text-only=true] #avatar-stage{display:none}
@media(min-width:900px){body .landing-actions{left:auto;right:42px;transform:none;bottom:42px;width:370px}body .conversation{left:auto;right:42px;transform:none;bottom:42px;width:400px}body .greeting-bubble,body[data-stage=landing] .greeting-bubble,body[data-stage=greeting] .greeting-bubble{left:auto;right:42px;transform:none;bottom:42px;width:400px}body .intro{top:130px;left:56px}.scene-caption{top:122px;right:46px}.avatar-invite{right:30%;top:36%}}
@media(max-width:760px){.site-header{height:76px;padding:0 24px}.site-header nav{gap:6px}.brand{gap:9px}.brand>span{font-size:20px;letter-spacing:4px}.brand small{display:none}.brand svg{width:19px;height:19px}.site-header :is(.voice-entry,.nav-button){font-size:13px;padding:10px 12px}.site-header .round-button{width:40px;min-height:40px;padding:10px}body .intro{top:112px;left:28px;max-width:300px}.intro h1{font-size:33px;letter-spacing:3px}.intro .eyebrow{font-size:12px;letter-spacing:2px;margin-bottom:10px}.intro-copy{font-size:14px;max-width:265px;margin-top:12px}.scene-caption{top:88px;right:28px;font-size:12px}.onboarding{padding:26px 24px}.onboarding h1{font-size:28px}.avatar-invite{right:8%;top:40%;max-width:100px;padding:10px 14px}body .conversation{padding:20px;max-height:calc(100dvh - 120px)}body[data-stage=session] .conversation{padding:16px 20px}.generation-widget{bottom:280px!important}body[data-stage=session] .generation-widget{display:none}.notice{bottom:calc(18px + env(safe-area-inset-bottom));max-width:calc(100% - 40px)}}
@media(max-height:650px){.onboarding{max-height:calc(100dvh - 104px);padding:20px}.entry-top{margin-bottom:12px}.onboarding h1{font-size:24px;margin-bottom:16px}.entry-options button{min-height:52px;padding:10px 16px}.entry-actions{margin-top:16px}body .intro{top:90px}.intro h1{font-size:29px}.intro .eyebrow,.intro-copy{display:none}.landing-actions{padding:14px!important}.landing-actions .companion-picker{margin-bottom:8px}#edit-entry{min-height:32px;padding:4px}body .conversation{max-height:calc(100dvh - 108px)}}
@media(prefers-reduced-motion:reduce){.scene-fallback{transform:none}}
/* Secondary surfaces use the same glass, without a second page behind them. */
dialog{width:min(500px,calc(100% - 48px));max-height:calc(var(--usable-height,100dvh) - 110px);margin:auto auto var(--panel-bottom);padding:28px;color:var(--ink);background:linear-gradient(135deg,#f0f6edee,#e5eededb);border:1px solid #ffffffa6;border-radius:28px;box-shadow:var(--glass-edge);-webkit-backdrop-filter:blur(24px) saturate(125%);backdrop-filter:blur(24px) saturate(125%);overscroll-behavior:contain}dialog::backdrop{background:#08221438;-webkit-backdrop-filter:none;backdrop-filter:none}.dialog-head{margin-bottom:20px}.dialog-head h2{font-size:24px;font-weight:400;letter-spacing:.5px}.dialog-head .small-label{font-size:12px;letter-spacing:2px;margin-bottom:6px}.dialog-head .round-button{width:44px;height:44px;background:#ffffff35;color:#49614f;border:1px solid #ffffff4a}.voice-help{font-size:14px;margin-bottom:16px}.voice-option{border-color:#ffffff70;border-radius:16px;margin-bottom:8px;background:#ffffff1c;padding:0 8px}.voice-option.selected{background:#ffffff80;box-shadow:inset 0 1px 0 #ffffffbf;border-color:#ffffffa3}.voice-pick{padding:16px 8px}.voice-pick strong{font-size:17px;font-weight:500}.voice-pick span{font-size:14px;line-height:1.6}.voice-play{min-height:44px;padding:9px 14px;border-radius:100px;background:#ffffff35;border-color:#ffffff80}.voice-silent{min-height:50px;border-radius:14px;border:0;background:#ffffff24;margin-top:4px;padding:14px 16px}.voice-sample{font-size:14px;margin:16px 0}.voice-source p{font-size:14px}.voice-source{margin-top:18px}
select,input:not([type=range],[type=radio],[type=file]),textarea,#minutes,#custom-form>input,#tripo-prompt,#tripo-completion-prompt{background:#ffffff5c;border-color:#ffffffad;border-radius:14px;color:#253d2d}select{min-height:44px}select option{background:#edf4e9;color:#253d2d}textarea::placeholder{color:#607564}#message-form{border-bottom:0;background:#ffffff5c;border:1px solid #ffffffa6;border-radius:18px;padding:12px;gap:10px}#feeling{background:none;max-height:100px}.quick-replies button{background:#ffffff40;border-color:#ffffff91;border-radius:100px;min-height:44px;font-size:14px}.messages{min-height:80px;max-height:25dvh}.message{font-size:16px;line-height:1.8}.message.user{background:#ffffff5c;border-radius:16px}.quick-replies{margin:16px 0;gap:6px}#chat-view>.quiet-note{font-size:14px;margin:14px 0 0}#send{width:44px;height:44px;background:#35563f}
.saved-avatar{background:#ffffff38;border-color:#ffffff9c;border-radius:20px;box-shadow:inset 0 1px 0 #ffffff80}.saved-avatar-picture{background:#ffffff18}.saved-avatar-copy{padding:14px}.saved-avatar-use{border-color:#ffffff8c;border-radius:14px;background:#ffffff35}.saved-avatar.is-selected{border-color:#75987a}.saved-avatar-use[aria-pressed=true]{background:#e2eddaa8}.saved-avatar-status{background:#ffffffb0;border-radius:100px;padding:5px 10px}.avatar-library{border-color:#ffffff80}.avatar-library-empty{border:0;padding:30px 0 18px}.avatar-library-empty p{font-size:21px}.avatar-library-empty button{border:1px solid #ffffff9c;border-radius:100px;background:#ffffff3b;padding:10px 18px;margin-top:22px}.default-avatar-options button{background:#ffffff38;border-color:#ffffff80;border-radius:16px}.default-avatar-options button.selected{background:#e1ecdbb0;border-color:#8ca88d9c}.generation-progress{background:#ffffff35;border:1px solid #ffffff9e;border-radius:20px;padding:20px}.generation-provider{color:#4d6b53;font-size:12px}.generation-percent{color:#3e6348}.generation-away-note,.tripo-cost-note,.tripo-input-meta,.optional{font-size:13px}.generation-steps li{font-size:14px}.generation-detail{font-size:14px;color:#415d47}.generation-progress[data-kind=error],.generation-progress[data-kind=partial]{background:#ffffff50;border-color:#ffffffb0}#custom-dialog[data-view=create] .custom-avatar-result{background:#ffffff35;border-color:#ffffff80;border-radius:20px;padding:18px}.reference-label{background:#ffffff3d;border-color:#7893809c;border-radius:18px}.reference-label input::file-selector-button{background:#ffffff50;border-radius:100px;border-color:#ffffffbd;min-height:44px;padding:10px 16px}.custom-avatar-result img,#custom-dialog[data-view=create] .custom-avatar-result img{background:#ffffff24;border-radius:14px}.tripo-methods{margin-bottom:22px;border-color:#ffffff80;gap:18px}.tripo-methods button{font-size:15px;border-bottom-width:1px;min-height:44px}.tripo-custom>summary{font-size:15px}.tripo-custom-body>.primary-button{margin-top:18px}#custom-form,.credit,.practice-sources{border-color:#ffffff70}.notice,.generation-widget{background:linear-gradient(135deg,#f3f8eae8,#e5efdae0);color:#2a4834;border:1px solid #ffffff9c;border-radius:20px;box-shadow:var(--glass-edge);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.notice{z-index:30;font-size:14px;padding:12px 18px}.generation-widget{right:28px;bottom:auto;top:100px;width:330px}.generation-widget:not([hidden])~.notice{bottom:24px}#avatar-generation-dismiss{color:#3c5943}.generation-widget[data-kind=ready] .generation-widget-mark{background:#e0edd5;color:#335a3b;border-color:#8eae93}#avatar-generation-open strong{font-size:14px}#avatar-generation-open>span>span{font-size:13px}
/* During practice the large panel leaves: a few words and glass controls remain. */
body[data-stage=session] .site-header :is(.voice-entry,.nav-button){display:none}body[data-stage=session] .scene-caption{opacity:.7}body[data-stage=session] .conversation{background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible;color:#f7fff4;padding:0 0 8px;max-height:none;width:min(390px,calc(100% - 48px))}body[data-stage=session] #phase{color:#eff9e8c9;text-shadow:0 2px 14px #0b2c1673}body[data-stage=session] .timer{font-size:38px;font-weight:300;color:#f2faeb;text-shadow:0 2px 16px #0b2c165c}body[data-stage=session] .guidance{color:#f6fced;text-shadow:0 2px 16px #051c0b,0 1px 3px #051c0b80;margin:14px 0 20px;font-size:16px;line-height:1.8}body[data-stage=session] #progress{display:none}body[data-stage=session] .session-controls{gap:10px;margin-top:12px}body[data-stage=session] .session-controls>button{border:1px solid #ffffff80;box-shadow:inset 0 1px 0 #ffffff5c,0 5px 25px #051e1121;border-radius:100px;background:linear-gradient(145deg,#ffffff38,#ffffff1f);color:#f4faee;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);min-height:48px;font-size:15px}body[data-stage=session] .session-controls>button:hover{background:#ffffff45}body[data-stage=session] .session-audio{border:0;margin:10px auto 0;width:100%;color:#eaf4e4}body[data-stage=session] .session-audio>summary{justify-content:center;gap:12px;padding:7px;font-size:14px;min-height:36px;color:#eaf4e4;text-shadow:0 2px 8px #10281880}body[data-stage=session] .session-audio>summary span{margin:0;max-width:none;color:#eaf4e4b8;font-size:13px}body[data-stage=session] .session-audio>summary::after{color:#eaf4e4}body[data-stage=session] .session-audio[open]{background:var(--glass);border:1px solid #ffffff80;border-radius:20px;padding:8px 14px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--ink)}body[data-stage=session] .session-audio[open]>summary,body[data-stage=session] .session-audio[open]>summary span{color:#496550;text-shadow:none}body[data-stage=session] #skip-arrival{color:#eff8e9;text-shadow:0 1px 8px #092314}
body .conversation{bottom:calc(var(--panel-bottom) + var(--keyboard-lift,0px));max-height:calc(var(--usable-height,100dvh) - 120px)}
@media(min-width:900px){dialog{margin:auto 42px 42px;width:440px;max-height:calc(100dvh - 150px)}body[data-stage=session] .conversation{right:42px;bottom:42px}}
@media(max-width:760px){dialog{padding:24px;width:calc(100% - 48px);max-height:calc(var(--usable-height,100dvh) - 100px);margin:auto auto var(--panel-bottom)}.dialog-head h2{font-size:23px}.generation-widget{top:88px;right:24px;bottom:auto!important;width:calc(100% - 48px);max-width:none}.avatar-library-grid{gap:10px}.saved-avatar-copy{padding:12px}.saved-avatar-copy h4{font-size:15px}.generation-steps{gap:8px}.generation-step-mark{width:22px;height:22px}.reference-label{padding:18px 16px}}
@media(max-width:370px){.site-header{padding:0 20px}.site-header nav{gap:5px}.site-header :is(.voice-entry,.nav-button){padding:10px;font-size:12px}.brand>span{font-size:18px;letter-spacing:3px}.onboarding,body .landing-actions,body .conversation,body .greeting-bubble,body[data-stage=greeting] .greeting-bubble,body[data-stage=landing] .greeting-bubble{width:calc(100% - 40px)}.onboarding{padding:24px 20px}.onboarding h1{font-size:27px}#practice-title{font-size:23px}.feedback-options button{font-size:13px}dialog{width:calc(100% - 40px);padding:22px 20px}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){:is(.onboarding,.landing-actions,.conversation,.greeting-bubble,dialog){background:#eaf1e4f2}.site-header :is(.voice-entry,.nav-button,.round-button),body[data-stage=session] .session-controls>button{background:#233f30cf}}
@media(prefers-reduced-transparency:reduce){:is(.onboarding,.landing-actions,.conversation,.greeting-bubble,dialog){background:#eaf1e4f2;-webkit-backdrop-filter:none;backdrop-filter:none}}
:root{--glass:linear-gradient(145deg,#f5faf2ad,#e9f0e57a)}
.intro-copy{display:none}.plan-top{display:none}#practice-title{font-size:24px;line-height:1.5;margin:2px 36px 14px 0}.practice-settings>summary{min-height:44px}.practice-settings>summary>span{font-size:13px}.practice-settings>:is(#scene-selection,#preferences){padding:0 2px;border-color:#ffffff5c}.practice-settings>:is(#scene-selection,#preferences)>summary{color:#46604c;min-height:44px}.practice-settings>details:last-child{margin-bottom:10px}.plan-duration{padding-bottom:12px}.plan-time-head{margin-bottom:8px}.back-chat{margin:0 auto;padding:9px 0;min-height:40px}body .landing-actions{background:linear-gradient(145deg,#f5faf2b3,#e9f0e580)}body[data-stage=plan] .panel-header{top:10px}
body[data-stage=onboarding] .space-footer{display:flex;bottom:max(14px,env(safe-area-inset-bottom));margin:0;left:0;right:0;top:auto}body[data-stage=onboarding] #footer-copy{display:none}body[data-stage=onboarding] .space-footer .text-button{color:#eff7e8ba;font-size:13px;min-height:44px;padding:10px 16px}

/* Keep the landing action usable while the companion responds. */
body[data-stage=landing] .greeting-bubble{bottom:calc(var(--panel-bottom) + var(--landing-panel-height,250px) + 16px);padding:14px 18px;width:min(330px,calc(100% - 48px))}
dialog{margin-bottom:calc(var(--panel-bottom) + var(--keyboard-lift,0px))}.notice{pointer-events:none}body[data-stage=session] .notice{top:90px;bottom:auto}
@media(min-width:900px){body[data-stage=landing] .greeting-bubble{bottom:calc(42px + var(--landing-panel-height,250px) + 16px);width:370px}dialog{margin-bottom:calc(42px + var(--keyboard-lift,0px));max-height:calc(var(--usable-height,100dvh) - 150px)}}
@media(max-height:650px){body[data-stage=session] .conversation{overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding-bottom:0}body[data-stage=session] .session-controls{position:sticky;bottom:0;padding:8px 0;z-index:2;background:linear-gradient(0deg,#173a2df0,#173a2d00);border-radius:24px}body[data-stage=session] .guidance{margin:8px 0;font-size:15px}body[data-stage=session] .timer{font-size:30px}body[data-stage=session] #session-view>.quiet-note{display:none}}

/* Dark-tinted glass keeps the quiet controls readable over bright sand and floors. */
body[data-stage=session]::after{background:linear-gradient(180deg,#0a1d1666,transparent 30%,transparent 53%,#0a1d16a6)}
body[data-stage=session] .session-controls>button{background:linear-gradient(145deg,#173c308c,#132c2273);box-shadow:inset 0 1px 0 #ffffff6b,0 5px 25px #051e1121}.site-header :is(.brand,.voice-entry,.nav-button,.round-button){text-shadow:0 1px 12px #08241573}.scene-caption{text-shadow:0 1px 8px #092217}

/* The first two choices are a quiet, opaque page; immersion starts at the companion. */
body[data-stage=onboarding]{background:#f7f8f5;color:#202a24}
body[data-stage=onboarding]::after,body[data-stage=onboarding] .scene-fallback{display:none}
body[data-stage=onboarding] .site-header{color:#25332b}
body[data-stage=onboarding] .brand{color:#25332b;text-shadow:none}
body[data-stage=onboarding] .brand svg{stroke:#3d5747}
body[data-stage=onboarding] .brand small{color:#67766d}
body[data-stage=onboarding] .onboarding{background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;padding:24px}
body[data-stage=onboarding] .entry-options button{background:#fff;border-color:#dce2db;box-shadow:none}
body[data-stage=onboarding] .entry-options button:hover{background:#f0f3ed}
body[data-stage=onboarding] .entry-options button.selected{background:#e7eee4;border-color:#869e8b;color:#294a35}
body[data-stage=onboarding] .primary-button{background:#2f503c;box-shadow:none;border:0}
body[data-stage=onboarding] .space-footer .text-button{color:#69776e}
body[data-stage=onboarding] .entry-loading{color:#52665a}

/* Navigation stays above the current scene without changing its stage. */
#nav-toggle{border:0;background:none;padding:0;min-height:44px;color:inherit}
#nav-toggle:active{transform:none}
#nav-drawer{position:fixed;inset:0 auto 0 0;margin:0;width:min(320px,calc(100vw - 64px));height:100dvh;max-height:100dvh;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));border:0;border-right:1px solid #ffffffa3;border-radius:0 22px 22px 0;background:linear-gradient(155deg,#f7faf5f5,#ecf1e9eb);color:#27362d;box-shadow:16px 0 60px #071c1733;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow-y:auto;overscroll-behavior:contain}
#nav-drawer::backdrop{background:#071a1747;backdrop-filter:none}
.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 48px}
.drawer-header h2{display:flex;align-items:center;gap:14px;font-size:23px;font-weight:400;letter-spacing:4px;margin:0}
.drawer-header h2 span{font-size:10px;letter-spacing:2px;color:#6f8175}
.drawer-header .round-button{width:44px;height:44px;border:1px solid #6c87752b;background:#ffffff6b;color:#506556;font-size:24px}
.drawer-links{display:grid;gap:6px}
.drawer-links button{display:flex;align-items:center;gap:14px;min-height:60px;width:100%;padding:14px 10px;background:none;border:0;border-radius:12px;text-align:left;font-size:16px;letter-spacing:.2px}
.drawer-links button:hover:not(:disabled){background:#72887514;color:#35543f}
.drawer-links svg{flex:none;width:22px;height:22px;fill:none;stroke:#647e6b;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.drawer-links .drawer-chevron{margin-left:auto;color:#86968a;font-size:23px;font-weight:300}
.drawer-links button:last-child{margin-top:16px;border-top:1px solid #7c8c8026;border-radius:0;padding-top:24px;min-height:80px}
.drawer-note,.drawer-footer{font-size:12px;line-height:1.9;color:#6c7e71;margin:26px 10px 0}
.drawer-footer{margin-top:60px;font-size:11px;letter-spacing:1px}
body:has(#nav-drawer[open]){overflow:hidden}
body[data-stage=onboarding] #nav-drawer{background:#f7f8f5;-webkit-backdrop-filter:none;backdrop-filter:none}
body[data-stage=onboarding] .site-header #nav-toggle:focus-visible{outline-color:#486454}
.account-form>label{display:block;margin:20px 0 10px;font-size:14px;color:#53685a}
.account-form>input,.account-form>select{display:block;width:100%;padding:13px 15px;border:1px solid #ffffffad;font-size:16px}
.account-help{font-size:13px;line-height:1.8;color:#617464;margin:16px 0 24px}
.account-sync{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #7c8c8026;padding-top:18px;font-size:13px;color:#617464}
.account-sync>span:last-child{font-size:12px;color:#7e8c80;white-space:nowrap}
.account-form>.primary-button{margin-top:28px;width:100%}
@media(prefers-reduced-transparency:reduce){#nav-drawer{background:#f4f7f1;-webkit-backdrop-filter:none;backdrop-filter:none}}

/* A quiet scene entry; changing place never rebuilds the companion. */
#scene-picker-open{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 14px;border:1px solid #ffffff45;border-radius:100px;background:linear-gradient(145deg,#ffffff24,#ffffff0c);color:#f2f7ee;font-size:14px;letter-spacing:.5px;z-index:6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
body[data-stage=landing] #scene-picker-open:not(:disabled){pointer-events:auto}
#scene-picker-open svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
#scene-picker-open:disabled{opacity:.65;cursor:default;pointer-events:none}
body:not([data-stage=landing]) #scene-picker-open{border:0;background:none;backdrop-filter:none;padding:0;opacity:.8;min-height:0}
body:not([data-stage=landing]) #scene-picker-open svg{display:none}
.scene-switch-status{position:fixed;top:152px;right:36px;z-index:6;font-size:13px;color:#f2f7ee;text-shadow:0 1px 8px #092217;pointer-events:none}
body:not([data-stage=landing]) .scene-switch-status{display:none}
#scene-dialog .world-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0}
#scene-dialog .world-picker button{font-size:14px;padding:5px 5px 12px;background:#ffffff35;border-color:#ffffff78;min-height:118px}
#scene-dialog .world-picker button.selected{background:#f0f6edc2;border-color:#809b877a;color:#365440}
#scene-dialog .world-picker img{height:85px;border-radius:10px;margin-bottom:12px}
#scene-dialog .dialog-head h2{font-size:21px}
#avatar-canvas .scene-transition-frame{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
#avatar-canvas[data-world-switching=true]{pointer-events:none}
@media(max-width:760px){#scene-picker-open{top:88px;right:24px}.scene-switch-status{top:140px;right:24px}#scene-dialog .world-picker{gap:8px}#scene-dialog .world-picker button{font-size:12px;padding:4px 4px 10px}#scene-dialog .world-picker img{height:74px}#scene-dialog .dialog-head h2{font-size:20px}}
@media(min-width:900px){#scene-picker-open{top:112px;right:42px}.scene-switch-status{top:164px;right:42px}}

/* Saved companions have a visible place alongside the two defaults. */
.companion-picker #avatar-library-open{display:flex;grid-column:1/-1;align-items:center;gap:12px;min-height:44px;padding:9px 14px;margin:0;border:1px solid #ffffff45;border-radius:14px;background:#ffffff24;color:var(--ink);text-align:left}
.companion-picker #avatar-library-open strong{font-size:14px;font-weight:500;white-space:nowrap}
.companion-picker #avatar-library-open span{flex:1;min-width:0;margin:0;font-size:12px;color:#617264;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.companion-picker #avatar-library-open svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.companion-picker #avatar-library-open.selected{background:#ffffff99;border-color:#ffffffa6;color:var(--green);box-shadow:0 2px 8px #1b37220a}
.companion-picker #avatar-library-open .avatar-library-check,.companion-picker #avatar-library-open.selected .avatar-library-arrow{display:none}
.companion-picker #avatar-library-open.selected .avatar-library-check{display:block}
.companion-picker #avatar-library-open:disabled{opacity:.6;cursor:default}

/* Loading is a page-level status, above the 3D canvas and action panel. */
body #model-loading{position:fixed;inset:calc(80px + env(safe-area-inset-top)) auto auto 50%;transform:translateX(-50%);z-index:12;width:min(390px,calc(100% - 48px));min-height:60px;padding:14px 18px;display:flex;flex-direction:row;align-items:center;gap:14px;border:1px solid #ffffffb3;border-radius:18px;background:#edf3eeeF;color:#294535;box-shadow:0 8px 28px #0b241d20;line-height:1.6;text-shadow:none;pointer-events:none}
body #model-loading[hidden],body[data-stage=onboarding] #model-loading{display:none}
#model-loading .loading-line{flex:none;width:26px;background:#496a52}
#model-loading-text{min-width:0;font-size:15px;overflow-wrap:anywhere}
body #model-error{position:fixed;z-index:12}
body[data-avatar-loading=true] .intro,body[data-avatar-loading=true] #scene-picker-open,body[data-avatar-loading=true] #environment-loading{visibility:hidden}
body[data-avatar-loading=true] #avatar-canvas{pointer-events:none}
@media(min-width:900px){body #model-loading{left:auto;right:42px;top:100px;transform:none;width:370px}}
