/* The existing tools keep their identities; each open drawer reserves scene space. */
.ui-ready.playroom{height:100svh;height:100dvh;min-height:0;isolation:isolate}
.ui-ready .topbar{padding:20px 24px;right:132px;z-index:4}
.ui-ready .room-label{display:none}
.hud-visibility{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));z-index:7;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;background:#fcfaf0ed;border:1px solid #fff9;border-radius:99px;box-shadow:0 4px 18px #24381f13;color:#4b6349;font-size:11px;font-weight:600}
.hud-visibility svg{width:18px;height:18px}.hud-visibility:hover{background:#fffef7}.hud-visibility[aria-pressed=true]{background:#fcfaf0d9;box-shadow:0 2px 14px #24381f15}
.hud-rail{position:absolute;z-index:6;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:stretch;gap:4px;padding:6px;border:1px solid #fff9;border-radius:19px;background:#fcfaf0ef;box-shadow:0 8px 32px #22331924;backdrop-filter:blur(12px);max-width:calc(100% - 24px)}
.hud-rail button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:72px;min-height:54px;padding:8px 14px;border:1px solid transparent;border-radius:13px;font-size:10px;font-weight:600;color:#68765e;background:transparent;white-space:nowrap;flex:1}
.hud-rail button svg{width:19px;height:19px}.hud-rail button:hover,.hud-rail button[aria-expanded=true]{background:#e5ecdb;color:#415c41}.hud-rail button[aria-expanded=true]{border-color:#d3dec7}.hud-rail #call{background:#6e8866;color:#fffef1;min-width:77px;margin-right:3px}.hud-rail #call:hover{background:#5d7b57}
.ui-ready .hud-panel{position:absolute;z-index:5;left:50%;right:auto;top:auto;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 80px);transform:translateX(-50%);width:min(740px,calc(100% - 32px));max-width:none;max-height:min(60svh,calc(100svh - 172px));padding:0;overflow:auto;overscroll-behavior:contain;border:1px solid #fff9;border-radius:19px;background:#fcfaf1f5;box-shadow:0 12px 42px #22331924;backdrop-filter:blur(12px);animation:hud-reveal .16s ease-out;scrollbar-width:thin;scrollbar-color:#bccab2 transparent}
.hud-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:2;min-height:54px;padding:5px 14px 5px 20px;background:#fcfaf1;border-bottom:1px solid #526d4217}.hud-panel-heading h2{margin:0;font-size:12px;line-height:1.4;letter-spacing:.02em;font-weight:600;color:#4d6348}
.hud-close{border:0;background:transparent;color:#6c7a61;border-radius:10px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:9px}.hud-close:hover{background:#e8eddf}.hud-close span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.hud-close svg{width:18px;height:18px}
.hud-panel-content{padding:14px 20px 18px}.ui-ready .interaction-dock[data-tab]{padding:0}.ui-ready .interaction-dock .call-row{gap:12px;padding:0 0 12px}.ui-ready .voice-button{min-height:40px;padding:10px 12px;font-size:10px}.ui-ready #voice-help{width:auto;flex:1;text-align:left;font-size:9px;line-height:1.55}.ui-ready #voice-help br{display:none}
.ui-ready .studio-tabs{margin-top:0;padding:8px 0 10px;gap:5px;justify-content:space-between}.ui-ready .studio-tabs button{min-height:40px;flex:1;padding:8px 10px;font-size:11px}.ui-ready .studio-panel .actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.ui-ready .actions button,.ui-ready .gesture-grid button{min-height:61px;font-size:10px;padding:8px 3px;transform:none;gap:7px}.ui-ready .gesture-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.ui-ready .actions button:hover,.ui-ready .gesture-grid button:hover{background:#e7eddd}
.ui-ready .camera-row{padding-top:12px;margin-top:10px;align-items:flex-start}.ui-ready .camera-row p{font-size:9px}.ui-ready .camera-row button{min-height:40px;font-size:10px;white-space:normal}.ui-ready .music-panel,.ui-ready .profile-panel{gap:18px;padding-top:7px}.ui-ready .music-panel select,.ui-ready .profile-panel select,.ui-ready .profile-panel input,.ui-ready #pet-journal select{min-height:38px;font-size:12px}.ui-ready .music-panel button,.ui-ready .profile-panel button{min-height:36px;font-size:10px}.ui-ready .coat-options button{min-height:32px;width:32px;height:32px;display:grid;place-items:center}.ui-ready .music-panel label,.ui-ready .profile-panel label,.ui-ready .field-label{font-size:10px}.ui-ready #music-source,.ui-ready #profile-storage,.ui-ready #coat-unlock,.ui-ready .graphics-controls p{font-size:9px;line-height:1.5}.ui-ready #robe-toggle{min-height:36px;font-size:10px}.ui-ready .music-sliders input[type=range]{height:20px}.ui-ready .rhythm-game p{font-size:10px;line-height:1.5}.ui-ready #pet-journal{position:relative;bottom:auto;left:auto;right:auto;width:100%;max-height:none;margin-top:15px;padding:15px;box-shadow:none;background:#edf1e4;border-color:#d5dfc9}.ui-ready .growth-controls #journal-toggle{min-height:32px;font-size:9px}
.ui-ready .apartment-nav{display:block;width:min(520px,calc(100% - 32px))}.ui-ready .apartment-nav .hud-panel-content{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ui-ready .apartment-nav [data-room]{display:block;min-height:48px;border:1px solid #dbe3d1;border-radius:10px;background:#f5f7eb;font-size:10px;padding:10px 6px;white-space:normal}.ui-ready .apartment-nav #apartment-view{grid-column:1/-1;min-height:44px;font-size:11px;margin-top:3px}.ui-ready .apartment-nav #room-select,.ui-ready .apartment-nav .room-select-label{display:none}
.ui-ready .companion-card{width:min(350px,calc(100% - 32px))}.ui-ready .companion-card h1{font-size:26px;max-width:none;margin:13px 0}.ui-ready .companion-card .tiny-label{font-size:8px}.ui-ready .companion-card .live-tag{display:inline-block;font-size:7px}.ui-ready .companion-card .activity-row{font-size:11px;padding-bottom:12px}.ui-ready .current-room{font-size:9px;margin-top:8px}.ui-ready .companion-card .needs{margin-top:0;padding-top:15px;gap:12px}.ui-ready .companion-card .needs label{font-size:11px}.ui-ready .companion-card .needs progress{width:140px;height:5px}.ui-ready .companion-card .bond-summary{display:block;font-size:10px}.ui-ready .companion-card #status{display:block;max-height:none;font-size:10px;margin-top:12px;line-height:1.6;min-height:0}
.ui-ready .room-tools{display:block;width:min(430px,calc(100% - 32px))}.ui-ready .room-tools .hud-panel-content{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ui-ready .room-tools .tool-button{width:auto;min-width:0;min-height:64px;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:10px 4px;gap:8px;border-radius:12px;font-size:10px;box-shadow:none}.ui-ready .room-tools .tool-button>span,.ui-ready .room-tools #photo>span:last-child{display:block;font-size:10px}.ui-ready .room-tools .tool-button svg{width:20px;height:20px}
.ui-ready .caption-area{z-index:3;width:min(500px,calc(100% - 40px))}.ui-ready #caption{font-size:12px;padding:10px 16px}.ui-ready #tour-progress{font-size:9px}.ui-ready.hud-hidden .caption-area,.ui-ready.hud-hidden .topbar{display:none}.ui-ready .demo-footer{display:none}
html[data-graphics=low] .hud-rail,html[data-graphics=low] .hud-panel{backdrop-filter:none}
@keyframes hud-reveal{from{opacity:0;transform:translate(-50%,9px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:540px){.ui-ready .topbar{padding:16px;right:115px}.ui-ready .brand{gap:8px}.ui-ready .brand-sub{font-size:5px}.hud-visibility{right:max(12px,env(safe-area-inset-right));top:max(13px,env(safe-area-inset-top));padding:9px 12px;font-size:10px;gap:6px}.hud-rail{width:calc(100% - 24px);bottom:max(12px,env(safe-area-inset-bottom));gap:2px;padding:5px;border-radius:17px}.hud-rail button{min-width:0;min-height:53px;padding:7px 5px;font-size:9px;gap:5px}.hud-rail #call{min-width:0;margin-right:2px}.hud-rail button svg{width:18px;height:18px}.ui-ready .hud-panel{width:calc(100% - 24px);bottom:calc(max(12px,env(safe-area-inset-bottom)) + 76px);border-radius:17px;max-height:min(60svh,calc(100svh - 166px))}.hud-panel-heading{padding-left:15px;min-height:50px}.hud-panel-heading h2{font-size:11px}.hud-panel-content{padding:10px 12px 14px}.ui-ready .studio-tabs button{padding:7px 4px;font-size:10px}.ui-ready .voice-button{font-size:10px;flex-shrink:0}.ui-ready .interaction-dock .call-row{flex-wrap:nowrap;gap:8px;padding-bottom:8px}.ui-ready #voice-help{font-size:8px}.ui-ready .actions button,.ui-ready .gesture-grid button{font-size:9px;min-height:57px;gap:6px}.ui-ready .actions button:nth-child(n+6){transform:none}.ui-ready .music-panel,.ui-ready .profile-panel{grid-template-columns:1fr 1fr;gap:12px}.ui-ready .profile-panel .growth-controls{grid-column:1/-1;gap:6px 12px}.ui-ready .graphics-controls{margin-top:7px}.ui-ready .camera-row{gap:9px;align-items:center}.ui-ready .camera-row button{font-size:9px}.ui-ready .camera-row p{font-size:8px}.ui-ready .apartment-nav .hud-panel-content{display:flex;flex-wrap:wrap;gap:7px}.ui-ready .apartment-nav [data-room]{display:none}.ui-ready .apartment-nav .room-select-label{display:block;flex:0 0 100%;font-size:10px}.ui-ready .apartment-nav #room-select{display:block;flex:1;min-width:0;max-width:none;min-height:44px;font-size:12px;padding:10px;border:1px solid #d3dec7}.ui-ready .apartment-nav #apartment-view{flex:0 0 auto;min-height:44px;padding:10px;font-size:10px;margin:0}.ui-ready .companion-card .needs progress{width:145px}.ui-ready #caption{font-size:11px}.ui-ready #tour-progress{font-size:8px}}
@media(max-height:540px){.ui-ready .topbar{padding:11px 16px}.hud-visibility{top:max(8px,env(safe-area-inset-top));min-height:40px}.hud-rail{bottom:max(8px,env(safe-area-inset-bottom));padding:4px}.hud-rail button{min-height:45px;flex-direction:row;gap:6px;padding:7px 10px}.ui-ready .hud-panel{bottom:calc(max(8px,env(safe-area-inset-bottom)) + 66px);max-height:calc(100svh - 139px)}.hud-panel-heading{min-height:44px;padding-block:0}.ui-ready .caption-area{max-height:58px;overflow:hidden}.ui-ready #caption{font-size:10px;line-height:1.4;padding:6px 12px}.ui-ready #tour-progress{display:none}.ui-ready .welcome-card{padding:16px 24px}.ui-ready .welcome-mark{display:none}.ui-ready .welcome-card h2{font-size:28px;margin:10px 0}.ui-ready #welcome-copy{font-size:10px;line-height:1.5;margin-bottom:13px}.ui-ready .welcome-note{margin-top:9px}.ui-ready .start-overlay{padding:12px}}
@media(prefers-reduced-motion:reduce){.ui-ready .hud-panel{animation:none}}

/* Stage dimensions come from scene-layout.js, so panels never cover the pet. */
.ui-ready .hud-panel{animation:none;backdrop-filter:none;background:#fcfaf1}
.ui-ready[data-scene-layout=side] .hud-rail{width:calc(100% - 24px)}
.ui-ready[data-scene-layout=side] .hud-rail button{min-width:0;padding-inline:5px;white-space:normal}
.ui-ready[data-scene-layout=side] .hud-panel-content{padding:12px 15px 18px}
.ui-ready[data-scene-layout=side] .studio-panel .actions,.ui-ready[data-scene-layout=side] .gesture-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.ui-ready[data-scene-layout=side] .full-music-panel,.ui-ready[data-scene-layout=side] .profile-panel{grid-template-columns:minmax(0,1fr)}
.ui-ready[data-scene-layout=side] .pet-dance-controls{border-left:0;border-top:1px solid #536d4222;padding:12px 0 0}
.ui-ready[data-scene-layout=side] .pet-music-director{grid-template-columns:1fr 1fr}
.ui-ready[data-scene-layout=side] #music-video{grid-column:1/-1}
.ui-ready[data-scene-layout=side] .profile-panel .growth-controls{display:block;grid-column:auto}
.ui-ready[data-scene-layout=side] .call-row{flex-wrap:wrap}
.ui-ready[data-scene-layout=side] #voice-help{flex-basis:100%;font-size:11px}
.ui-ready[data-scene-layout=side] .camera-row{flex-direction:column}
.ui-ready[data-scene-layout=side] .camera-preview-layout{grid-template-columns:1fr}
.ui-ready .hud-panel input,.ui-ready .hud-panel select{font-size:16px;min-height:44px}
.ui-ready .hud-panel button{touch-action:manipulation}
.ui-ready .hud-panel .needs progress{max-width:45%}
.ui-ready[data-scene-layout=stack] .hud-panel{border-radius:18px}
.ui-ready[data-scene-layout=stack] #tour-progress{display:none}
.startup-error{position:absolute;z-index:30;inset:0;display:grid;place-content:center;gap:14px;padding:32px;background:#eff1e6;color:#344b36;text-align:center}
.startup-error h2{margin:0;font-size:24px}.startup-error p{max-width:430px;line-height:1.6;margin:0 auto}.startup-error button{justify-self:center;min-height:48px;padding:12px 20px;border-radius:12px;border:1px solid #506e49;background:#607d57;color:#fff;font-size:15px}
@media(max-height:540px){.ui-ready[data-scene-layout=side] .hud-rail button{font-size:9px;flex-direction:column;gap:3px;min-height:42px}.ui-ready[data-scene-layout=side] .hud-rail button svg{width:16px;height:16px}.ui-ready[data-scene-layout=side] .caption-area{max-height:48px}.ui-ready[data-scene-layout=side] #caption{font-size:11px}}
.save-notice{position:absolute;z-index:25;left:12px;top:72px;width:min(410px,calc(100% - 24px));padding:12px 14px;border:1px solid #bead7e;border-radius:12px;background:#fff8e4;color:#4a4534;box-shadow:0 5px 24px #33402b22;font-size:13px;line-height:1.45}.save-notice p{margin:0 0 8px}.save-notice>div{display:flex;gap:6px;flex-wrap:wrap}.save-notice button{min-height:42px;padding:8px 10px;border:1px solid #9d976d;background:#fffef6;border-radius:8px;color:#484a32;font-size:12px}.save-notice:has(#save-notice-text:empty){display:none}
