*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}:root{--bg-color:#0a0a0a;--ink:#0a0a0a;--text-main:#f5f5f2;--text-muted:#a3a39e;--text-dim:#6f6f6a;--accent:#ffda00;--accent-strong:#fc0;--accent-soft:#ffda0024;--line:#ffffff24;--line-strong:#ffffff52;--glass:#0a0a0ab8;--glass-strong:#0a0a0ae6;--radius:4px;--radius-sm:2px;--c-scene:#b794ff;--c-door-closed:#3ddc97;--c-door-open:#ff9a3c;--c-muted:#ff5a5a;--c-reposition:#ffda00;--font-display:"Archivo", "Inter", system-ui, sans-serif;--font-condensed:var(--font-display);--font-body:"Inter", system-ui, sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--modal-bg:#0c0c0cf0}html,body{background-color:var(--bg-color);width:100%;height:100%;font-family:var(--font-body);color:var(--text-main);-webkit-font-smoothing:antialiased;overflow:hidden}body.ar-session-active,body.ar-session-active #app-container,body.ar-session-active #webgl-canvas,#ar-hud{background:0 0!important}#app-container{width:100vw;height:100vh;position:relative;overflow:hidden}#webgl-canvas{z-index:1;width:100%;height:100%;display:block;position:absolute;top:0;left:0}button{font:inherit}button:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.menu-overlay{z-index:10;background:var(--ink);width:100%;height:100%;transition:opacity .4s,visibility .4s;display:flex;position:absolute;top:0;left:0;overflow:hidden}.menu-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none;display:none!important}.toast-message{bottom:calc(5.5rem + env(safe-area-inset-bottom,0px));background:var(--glass-strong);border:1px solid var(--line);border-left:3px solid var(--accent);color:var(--text-main);border-radius:var(--radius);letter-spacing:.01em;z-index:100;-webkit-backdrop-filter:blur(14px);pointer-events:none;transition:opacity .3s ease, transform .3s var(--ease-out);text-align:left;max-width:min(90vw,520px);padding:.8rem 1.2rem;font-size:.88rem;font-weight:500;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 18px 40px #0009}.toast-message.hidden{opacity:0;pointer-events:none;transform:translate(-50%)translateY(15px)}.menu-background-layer{z-index:11;filter:saturate(.85)contrast(1.06)brightness(.85);background:url(./bg_menu-3f_NU9qs.jpg) 50%/cover no-repeat;width:100%;height:100%;position:absolute;top:0;left:0;transform:scale(1.03)}.crt-vignette-frame{z-index:12;pointer-events:none;background:linear-gradient(90deg,#0a0a0ae0 0%,#0a0a0a8c 34%,#0a0a0a14 68%,#0a0a0a4d 100%),linear-gradient(#0000 65%,#0a0a0abf 100%);width:100%;height:100%;position:absolute;top:0;left:0;box-shadow:inset 0 0 140px #000000bf}.film-grain-layer{z-index:13;pointer-events:none;opacity:.08;background-image:radial-gradient(#ffffff59 1px,#0000 0);background-size:3px 3px;width:100%;height:100%;position:absolute;top:0;left:0}.menu-content{z-index:14;width:100%;height:100%;padding:max(5vh, env(safe-area-inset-top,0px)) 6vw max(5vh, env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:center;display:flex;position:relative}.menu-left-panel{background:0 0;flex-direction:column;gap:1.6rem;max-width:560px;padding:0;display:flex;position:relative}.menu-eyebrow{font-family:var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:var(--text-main);align-items:center;gap:.6rem;font-size:.78rem;font-weight:700;display:flex}.menu-eyebrow .plus{color:var(--accent);letter-spacing:0;font-size:1.05rem}.device-badge{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#0a0a0a99;align-items:center;gap:.4rem;width:fit-content;padding:.4rem .7rem;font-size:.7rem;font-weight:700;display:inline-flex}.device-badge.badge-ar{color:var(--ink);background:var(--accent);border-color:var(--accent)}.device-badge.badge-3d{color:var(--text-main);border-color:var(--text-main)}.menu-title{font-family:var(--font-display);letter-spacing:-.02em;color:#fff;text-transform:uppercase;text-wrap:balance;font-size:clamp(2.6rem,6.4vw,5.4rem);font-weight:800;font-stretch:85%;line-height:.92}.menu-title .title-line{padding-bottom:.04em;display:block;overflow:hidden}.menu-title .title-line-inner{will-change:transform;display:inline-block}.menu-title .title-line:last-child .title-line-inner{color:var(--accent)}.menu-divider{background:var(--accent);transform-origin:0;width:88px;height:2px}.menu-actions{flex-direction:column;gap:.75rem;width:100%;max-width:340px;display:flex}.btn{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .22s var(--ease-out), color .22s var(--ease-out), border-color .22s var(--ease-out), transform .22s var(--ease-out);text-align:left;border:1.5px solid #0000;justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem 1.3rem;font-size:.95rem;font-weight:800;text-decoration:none;display:inline-flex;position:relative}.btn:after{content:"→";letter-spacing:0;transition:transform .22s var(--ease-out);font-weight:600}.btn:hover:after{transform:translate(4px)}.btn:active{transform:scale(.985)}.btn-primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}.btn-primary:hover{background:var(--ink);color:#fff;border-color:var(--accent)}.btn-secondary{color:#fff;border-color:var(--line-strong);-webkit-backdrop-filter:blur(6px);background:#0a0a0a73}.btn-secondary:after{content:"+";font-size:1.15rem}.btn-secondary:hover{color:var(--ink);background:#fff;border-color:#fff}.btn-secondary:hover:after{transform:rotate(90deg)}.menu-footer{letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);flex-wrap:wrap;gap:1.2rem;font-size:.72rem;font-weight:600;display:flex}.menu-footer span:before{content:"+ ";color:var(--accent)}.modal-overlay{z-index:30;-webkit-backdrop-filter:blur(12px);opacity:0;visibility:hidden;background:#050505c7;justify-content:center;align-items:center;width:100%;height:100%;padding:1.25rem;transition:opacity .3s,visibility .3s;display:flex;position:absolute;top:0;left:0}.modal-overlay.active{opacity:1;visibility:visible}.modal-card{background:var(--modal-bg);border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:var(--radius);flex-direction:column;width:100%;max-width:560px;max-height:82vh;padding:1.6rem 1.6rem 1.4rem;display:flex;position:relative;box-shadow:0 30px 80px #000000b3}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.6rem;display:flex}.modal-title{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;color:#fff;font-size:1.45rem;font-weight:800;font-stretch:85%;line-height:1}.btn-icon{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:38px;height:38px;color:var(--text-main);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;font-size:1.4rem;line-height:1;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.btn-icon:hover{color:var(--ink);background:var(--accent);border-color:var(--accent)}.drop-zone-glb{border-radius:var(--radius);cursor:pointer;transition:background-color .25s ease, border-color .25s ease, transform .25s var(--ease-out);-webkit-user-select:none;user-select:none;background:#ffffff08;border:1.5px dashed #ffda0073;margin:.6rem 0 .9rem;padding:1rem 1.1rem}.drop-zone-glb:hover{background:var(--accent-soft);border-color:var(--accent)}.drop-zone-glb.drag-over{border-color:var(--accent);background:#ffda0038;border-style:solid;transform:scale(1.015)}.drop-zone-body{align-items:center;gap:1rem;display:flex}.drop-icon{border-radius:var(--radius-sm);background:#ffffff0f;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.5rem;line-height:1;display:inline-flex}.drop-info{flex-direction:column;gap:.2rem;display:flex}.drop-title{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:#fff;font-size:.95rem;font-weight:800}.drop-desc{color:var(--text-muted);font-size:.82rem}.drop-highlight{color:var(--accent);text-underline-offset:3px;font-weight:600;text-decoration:underline}.modal-divider{text-align:center;color:var(--text-dim);letter-spacing:.16em;text-transform:uppercase;align-items:center;margin:.4rem 0 .8rem;font-size:.7rem;font-weight:700;display:flex}.modal-divider:before,.modal-divider:after{content:"";border-bottom:1px solid var(--line);flex:1}.modal-divider span{padding:0 .8rem}.scene-tag-local{background:var(--accent);color:var(--ink);border-radius:var(--radius-sm);letter-spacing:.1em;vertical-align:middle;margin-left:.5rem;padding:.12rem .4rem;font-size:.62rem;font-weight:800;display:inline-block}.scene-card.custom-scene{box-shadow:inset 3px 0 0 var(--accent)}.scenes-list{scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;flex-direction:column;gap:.55rem;padding-right:.3rem;display:flex;overflow-y:auto}.scene-card{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:background-color .2s ease, border-color .2s ease, transform .2s var(--ease-out);background:#ffffff09;align-items:center;gap:.9rem;padding:.85rem 1rem;display:flex}.scene-card:hover{border-color:var(--line-strong);background:#ffffff12;transform:translate(2px)}.scene-card.selected{background:var(--accent-soft);border-color:var(--accent)}.scene-icon{font-size:1.5rem;line-height:1}.scene-info{flex:1;min-width:0}.scene-name{color:#fff;overflow-wrap:anywhere;margin-bottom:.2rem;font-size:1rem;font-weight:600}.scene-meta{color:var(--text-muted);overflow-wrap:anywhere;font-size:.75rem}.scene-status{font-family:var(--font-display);letter-spacing:.14em;color:var(--text-muted);border:1px solid var(--line-strong);border-radius:var(--radius-sm);white-space:nowrap;padding:.35rem .55rem;font-size:.68rem;font-weight:800}.scene-card.selected .scene-status{color:var(--ink);background:var(--accent);border-color:var(--accent)}.empty-state{text-align:center;color:var(--text-muted);padding:2rem 0;font-size:.92rem}.hud-overlay{z-index:100;pointer-events:none;width:100vw;height:100vh;padding:max(12px, env(safe-area-inset-top,12px)) max(12px, env(safe-area-inset-right,12px)) max(16px, env(safe-area-inset-bottom,16px)) max(12px, env(safe-area-inset-left,12px));opacity:0;visibility:hidden;flex-direction:column;justify-content:space-between;transition:opacity .25s;display:flex;position:absolute;top:0;left:0}.hud-overlay.active{opacity:1!important;visibility:visible!important;display:flex!important}body.ar-session-active #ar-hud{opacity:1!important;visibility:visible!important;pointer-events:none!important;background:0 0!important;width:100vw!important;height:100vh!important;display:flex!important;position:fixed!important;top:0!important;left:0!important}.hud-top-bar{pointer-events:none;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.hud-brand{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);white-space:nowrap;flex:0 auto;align-items:center;gap:8px;min-width:0;padding:.6rem .8rem;font-size:.78rem;font-weight:800;display:flex}.brand-dot{background-color:var(--accent);border-radius:1px;flex:none;width:8px;height:8px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.hud-buttons{flex:none;align-items:stretch;gap:6px;display:flex;pointer-events:auto!important}.btn-hud{--hud-c:#fff;font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;border-radius:var(--radius);cursor:pointer;color:#fff;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);min-height:42px;transition:background-color .2s var(--ease-out), color .2s var(--ease-out), border-color .2s var(--ease-out), transform .2s var(--ease-out);white-space:nowrap;touch-action:manipulation;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:7px;padding:.55rem .9rem .55rem .8rem;font-size:.74rem;font-weight:800;display:inline-flex;position:relative;overflow:hidden;pointer-events:auto!important}.btn-hud:before{content:"";background:var(--hud-c);height:2px;transition:height .2s var(--ease-out);position:absolute;bottom:0;left:0;right:0}.btn-hud>span:first-child{font-size:1rem;line-height:1}.btn-hud:hover,.btn-hud:active{border-color:var(--hud-c);transform:translateY(-1px)}.btn-hud:hover:before,.btn-hud:active:before{height:3px}.btn-hud-scene{--hud-c:var(--c-scene)}.btn-hud-interact{--hud-c:var(--c-door-closed)}.btn-hud-interact .btn-text{color:var(--c-door-closed)}.btn-hud-interact.is-open{--hud-c:var(--c-door-open);background:#281606c7}.btn-hud-interact.is-open .btn-text{color:var(--c-door-open)}.btn-hud-mute{--hud-c:#ffffff8c}.btn-hud-mute.is-muted{--hud-c:var(--c-muted);background:#300a0acc}.btn-hud-mute.is-muted .btn-text{color:var(--c-muted)}.btn-hud-reposition{--hud-c:var(--c-reposition)}.btn-hud-home{--hud-c:var(--ink);background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn-hud-home:hover,.btn-hud-home:active{background:#fff;border-color:#fff}@media (width<=600px){.hud-buttons{gap:4px}.btn-hud{letter-spacing:.08em;flex-direction:column;gap:3px;min-width:50px;min-height:48px;padding:.4rem .35rem .45rem;font-size:.56rem}.btn-hud>span:first-child{font-size:1.05rem}.hud-brand{padding:.55rem}.hud-brand span.brand-title{display:none}}@media (width<=360px){.hud-buttons{gap:3px}.btn-hud{letter-spacing:.04em;min-width:44px;padding:.4rem .25rem .45rem;font-size:.5rem}}@media (width<=320px){.btn-hud .btn-text{display:none}.btn-hud{min-width:40px;min-height:40px}}.ar-prompt-banner,.walk-instructions-banner{background:var(--glass-strong);border:1px solid var(--line);border-left:3px solid var(--accent);color:var(--text-main);border-radius:var(--radius);letter-spacing:.01em;text-align:center;-webkit-backdrop-filter:blur(14px);pointer-events:none;align-self:center;max-width:min(92vw,560px);padding:.75rem 1.1rem;font-size:.86rem;font-weight:500;transition:opacity .5s;box-shadow:0 14px 34px #00000080}.ar-prompt-banner.fade-out{opacity:0}.walk-instructions-banner{color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}.desktop-hint{display:none}.mobile-hint{display:inline}@media (hover:hover) and (pointer:fine){.desktop-hint{display:inline}.mobile-hint{display:none}}.virtual-joystick-base{pointer-events:none;z-index:25;background:#0a0a0a59;border:2px solid #ffffff8c;border-radius:50%;width:96px;height:96px;margin-top:-48px;margin-left:-48px;display:none;position:absolute;box-shadow:0 0 0 6px #ffda001f}.virtual-joystick-knob{background:var(--accent);border-radius:50%;width:42px;height:42px;margin-top:-21px;margin-left:-21px;position:absolute;top:50%;left:50%;box-shadow:0 6px 18px #00000073}.loading-overlay{z-index:50;-webkit-backdrop-filter:blur(10px);background:#080808e6;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.loading-overlay.hidden{opacity:0;pointer-events:none}.loading-box{flex-direction:column;align-items:flex-start;gap:1rem;width:85%;max-width:340px;display:flex}.loading-spinner{background:var(--accent);width:18px;height:18px;animation:loader-square 1.1s var(--ease-out) infinite}@keyframes loader-square{0%{transform:rotate(0)scale(1)}50%{transform:rotate(90deg)scale(.7)}to{transform:rotate(180deg)scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:#fff;font-size:.95rem;font-weight:800}.loading-progress-container{background:#ffffff24;border-radius:0;width:100%;height:2px;overflow:hidden}.loading-progress-bar{background:var(--accent);border-radius:0;width:0%;height:100%;transition:width .2s}@media (width<=600px){.menu-content{padding:6vh 1.4rem max(2.2rem, env(safe-area-inset-bottom,0px));justify-content:flex-end}.crt-vignette-frame{background:linear-gradient(#0a0a0a33 20%,#0a0a0abf 55%,#0a0a0af5 100%)}.menu-left-panel{gap:1.25rem;max-width:100%}.menu-title{font-size:clamp(2.3rem,11vw,3.4rem)}.menu-actions{max-width:100%}.btn{padding:1.05rem 1.2rem;font-size:.9rem}.modal-card{padding:1.3rem 1.1rem 1.1rem}}@media (height<=520px) and (orientation:landscape){.menu-left-panel{gap:.9rem}.menu-title{font-size:clamp(1.8rem,5vw,2.8rem)}.menu-footer{display:none}.btn{padding:.75rem 1.1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
