:root{color-scheme:dark;--cream:#efe6d2;--muted:#b9b19f;--gold:#d5af71}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#211f19;color:var(--cream);font-family:Arial,sans-serif;background-image:radial-gradient(ellipse at 65% 45%,#39362a 0,transparent 65%)}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:active:not(:disabled){transform:scale(.97)}.home{min-height:100svh;display:flex;align-items:center;justify-content:center;gap:clamp(40px,8vw,140px);padding:28px}.intro{width:330px;flex-shrink:0}.eyebrow{font-size:10px;letter-spacing:2.5px;color:var(--gold)}h1{font-family:Georgia,serif;font-size:clamp(46px,5vw,66px);line-height:1.04;font-weight:normal;letter-spacing:-2.5px;margin:26px 0 20px}h1 span{color:var(--gold)}.tagline{font-size:17px;color:#d4cbb8}.line{width:38px;height:1px;background:#71634b;margin:38px 0}.invitation{font-family:Georgia,serif;font-size:22px;line-height:1.65;color:#d5cbb8}.instruction{font-size:12px;line-height:1.8;color:var(--muted);margin-top:24px}.chapter{display:block;margin-top:50px;font-size:9px;letter-spacing:2px;color:#b4aa94}.scene{position:relative;isolation:isolate;height:min(880px,calc(100svh - 56px));aspect-ratio:768/1376;max-width:100%;flex-shrink:0;overflow:hidden;border-radius:22px;background:#4a3828;box-shadow:0 28px 90px #0006,0 0 0 1px #ffffff18;touch-action:pan-y}.scene>img,.scene>video{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;inset:0}.scene>.room-layer{z-index:0;opacity:0;transition:opacity .22s ease}.scene>.room-layer.current{opacity:1}.scene>video{z-index:1;opacity:0;transition:opacity .16s ease;pointer-events:none;backface-visibility:hidden}.scene>video.active{opacity:1}.scene-header{position:absolute;z-index:3;inset:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:15px 14px 34px;background:linear-gradient(#19130bcc,transparent);pointer-events:none}.room-navigation{flex:1;min-width:0;pointer-events:auto}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:4px}.name{font-family:Georgia,serif;font-size:16px;text-align:center}.room-step{width:44px;height:44px;flex-shrink:0;padding:0;border:1px solid #ffffff50;border-radius:50%;background:#211a1260;color:var(--cream);font-family:Georgia,serif;font-size:26px;line-height:1;transition:background .18s}.room-step:hover:not(:disabled){background:#ffffff26}.room-tabs{display:flex;gap:3px;justify-content:center;margin-top:5px}.room-tabs button{min-height:44px;padding:7px 10px;background:#211a1240;border:1px solid transparent;border-radius:20px;color:#eee1c9;font-size:11px;white-space:nowrap}.room-tabs button[aria-current=true]{background:#f0e4ce1a;border-color:#f0e4ce66}.room-tabs button:hover{background:#ffffff20}.home-status{font-size:9px;color:#e0d5c0;display:flex;gap:5px;align-items:center;white-space:nowrap;padding-top:18px}.home-status i{width:5px;height:5px;background:#b4c490;border-radius:100%}.hotspot{position:absolute;z-index:2;left:23%;top:31%;width:61%;height:45%;background:transparent;border:0;border-radius:35%}.hotspot:focus-visible{outline:2px dashed var(--cream);outline-offset:-6px}.scene[data-current-room=kitchen] .hotspot{left:30%;top:27%;width:44%;height:56%}.scene[data-current-room=bedroom] .hotspot{left:29%;top:28%;width:46%;height:42%}.speech{position:absolute;z-index:4;top:18%;left:8%;right:8%;text-align:center;font-family:Georgia,serif;font-size:17px;line-height:1.4;background:#251c14c7;border:1px solid #ffffff26;border-radius:15px;padding:11px 14px;box-shadow:0 8px 28px #0003;opacity:0;transition:opacity .2s;pointer-events:none}.speech.show{opacity:1}.media-feedback{position:absolute;z-index:4;bottom:177px;left:12%;right:12%;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;padding:6px 10px;background:#251c14d9;border:1px solid #ffffff25;border-radius:16px;font-size:11px;text-align:center}.media-feedback button{min-height:36px;border:1px solid #fff6;border-radius:20px;background:#ffffff12;color:var(--cream);padding:6px 14px}.media-feedback:has(#media-status:empty){left:auto;right:18px;background:#251c1477}.media-feedback:has(#media-status:empty) #media-status{display:none}footer{position:absolute;z-index:3;bottom:0;left:0;right:0;padding:56px 16px 20px;text-align:center;background:linear-gradient(transparent,#1a140cf5);pointer-events:none}.controls{display:flex;align-items:center;justify-content:center;gap:8px;pointer-events:auto}.knock,.secondary-control{min-height:46px;padding:11px 15px;border-radius:30px;font-size:12px;transition:background .18s,transform .18s}.knock{background:#efe5d0;color:#393022;border:1px solid #fff4;box-shadow:0 3px 14px #0003}.knock:hover:not(:disabled){background:#fff3db;transform:translateY(-1px)}.knock-icon{margin-right:7px;color:#8d6b35}.secondary-control{background:#211a1255;color:#f0e5d0;border:1px solid #ffffff75}.secondary-control:hover:not(:disabled){background:#ffffff20}.small-controls{display:flex;justify-content:center;align-items:center;gap:8px;pointer-events:auto;margin-top:7px}.small-controls button{min-height:44px;background:transparent;border:1px solid transparent;color:#eee1c9;font-size:11px;padding:8px 12px;border-radius:22px}.small-controls button:hover,.small-controls button[aria-pressed=true]{background:#ffffff12;border-color:#ffffff40}footer p{font-size:10px;line-height:1.5;color:#ddd2bd;margin:4px auto 0;max-width:330px;min-height:15px}.chat-panel{position:absolute;z-index:6;bottom:12px;left:12px;right:12px;max-height:calc(100% - 120px);display:flex;flex-direction:column;padding:18px 16px 12px;background:#28231cf7;color:var(--cream);border:1px solid #e9dab23a;border-radius:20px;box-shadow:0 14px 60px #0009;backdrop-filter:blur(12px)}.chat-heading{display:flex;gap:6px;align-items:center;justify-content:space-between}.chat-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.chat-heading h2{font-family:Georgia,serif;font-weight:normal;font-size:18px;margin:7px 0 12px}.chat-heading button{background:transparent;border:0;color:var(--cream);font-size:28px;width:44px;min-height:44px;align-self:flex-start}.chat-log{min-height:85px;max-height:245px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:3px}.chat-message{font-size:13px;line-height:1.5;background:#ffffff0a;border-radius:12px;padding:10px 12px;margin:0 0 10px;overflow-wrap:anywhere}.chat-message .speaker{display:block;font-size:9px;letter-spacing:.5px;color:var(--gold);margin-bottom:4px}.chat-message.visitor{background:#d5af7116;margin-left:24px}.chat-message.gnome{margin-right:12px}.chat-message.room{padding:4px 0;background:none;font-size:10px;color:var(--muted);text-align:center}.chat-suggestions{display:flex;gap:6px;flex-wrap:wrap;padding:4px 0}.chat-suggestions button,.voice-controls button{background:transparent;border:1px solid #ffffff30;border-radius:20px;color:#ebdfc8;min-height:40px;padding:7px 10px;font-size:10px}.chat-suggestions button:hover,.voice-controls button:hover{background:#ffffff10}.chat-panel form{display:flex;gap:8px;margin-top:9px;flex-shrink:0}.chat-panel input{min-width:0;flex:1;background:#17151080;color:var(--cream);border:1px solid #ffffff40;border-radius:12px;padding:11px 12px;min-height:46px;font-size:16px}.chat-panel input::placeholder{color:#a89e8a}.chat-panel form button{border:0;border-radius:12px;background:var(--cream);color:#393022;padding:10px 14px;font-size:12px;min-height:46px}.voice-controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;flex-shrink:0}.voice-controls button[aria-pressed=true]{border-color:var(--gold);background:#d5af711a}.voice-note{font-size:9px;line-height:1.5;color:var(--muted);margin:9px 0 0;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.no-script{position:fixed;bottom:0;background:#28231c;padding:15px;margin:0;width:100%;text-align:center}
@media(max-width:900px){.home{gap:35px;padding:20px}.intro{width:280px}h1{font-size:50px}.scene{height:calc(100svh - 40px)}.home-status{display:none}}
@media(max-width:700px){.home{padding:0;min-height:100svh;gap:0}.intro{display:none}.scene{height:100svh;width:100vw;max-width:560px;aspect-ratio:auto;border-radius:0;box-shadow:none}.scene-header{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.home-status{display:flex}footer{padding-bottom:max(18px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.speech{top:max(140px,18%)}.media-feedback{bottom:calc(170px + env(safe-area-inset-bottom))}.chat-panel{bottom:max(8px,env(safe-area-inset-bottom));max-height:calc(100% - 115px);padding-bottom:12px}.chat-log{max-height:30svh}}
@media(max-width:380px){.home-status{display:none}.name{font-size:15px}.room-tabs button{padding:7px 9px}.controls{gap:6px}.knock,.secondary-control{padding:11px 12px;font-size:11px}.chat-heading h2{font-size:16px}}
@media(max-height:520px) and (orientation:landscape){.home{align-items:flex-start;padding:18px;gap:35px}.intro{width:260px}.chapter{margin-top:20px}.line{margin:20px 0}.scene{height:650px;width:363px;aspect-ratio:768/1376;border-radius:18px}.scene-header{padding-top:12px}.chat-log{max-height:180px}.chat-panel{max-height:calc(100% - 115px)}.speech{top:18%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.chat-note{font-size:9px;line-height:1.5;color:var(--muted);margin:5px 0 0;flex-shrink:0}
@media(max-width:700px){.scene{height:var(--available-height,100dvh)}.compact-chat .chat-panel{max-height:calc(100% - 12px);bottom:6px;padding:9px 12px}.compact-chat .chat-heading .eyebrow,.compact-chat .chat-suggestions,.compact-chat .chat-note{display:none}.compact-chat .chat-heading h2{font-size:16px;margin:5px 0}.compact-chat .chat-log{min-height:35px;max-height:20svh;flex:1}.compact-chat .voice-controls{margin-top:5px}.compact-chat .voice-controls button{min-height:32px}.compact-chat .voice-note{margin-top:5px}}
@media(min-width:701px) and (max-width:900px){.scene{max-width:calc(100vw - 355px);height:min(calc(100svh - 40px),calc((100vw - 355px)*1.7917))}}
@media(max-width:700px) and (max-height:520px) and (orientation:landscape){.scene{height:650px}}
.scene[data-transitioning=true] .media-feedback{top:125px;bottom:auto;z-index:7}.scene[data-transitioning=true] #stop-media{min-height:44px;min-width:44px}
