:root{color:#171b19;font-synthesis:none;text-rendering:optimizelegibility;background:#dfe4e2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}#app{width:100%;height:100dvh;overflow:hidden}body{min-width:320px}canvas{outline:none;width:100%;height:100%;display:block}canvas:focus-visible{outline-offset:-3px;outline:3px solid #a16207}.viewer-header{z-index:3;top:calc(8px + env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));left:max(12px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;background:#f7f8f7e0;border:1px solid #171b1921;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:6px 10px;display:flex;position:fixed;box-shadow:0 8px 24px #171b1912}.viewer-brand{align-items:center;gap:12px;min-width:0;display:flex}.viewer-brand__mark{object-fit:cover;border:1px solid #c89d42;border-radius:45px;flex:0 0 36px;width:36px;height:36px;display:block;box-shadow:0 2px 6px #171b191f}.viewer-brand__name{color:#1d2923;letter-spacing:-.018em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:720;overflow:hidden}.explore-toggle{color:#f8fbf9;min-width:112px;min-height:44px;font:inherit;cursor:pointer;pointer-events:auto;touch-action:manipulation;background:#29483a;border:1px solid #29483a59;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:9px;padding:0 16px;font-size:.86rem;font-weight:720;transition:background .16s,border-color .16s,box-shadow .16s;display:inline-flex;box-shadow:0 5px 16px #171b1921}.explore-toggle:hover:not(:disabled){background:#365e4b;border-color:#d2ad62;box-shadow:0 7px 20px #171b192e}.explore-toggle:active:not(:disabled){background:#1f382d}.explore-toggle:focus-visible{outline-offset:3px;outline:3px solid #a16207}.explore-toggle:disabled{color:#6c7671;box-shadow:none;cursor:wait;background:#e3e7e5;border-color:#171b1926}.explore-toggle__indicator{border:2px solid;border-radius:50%;flex:0 0 8px;width:8px;height:8px}.explore-toggle[aria-pressed=true]{color:#3e2510;background:#f1d79f;border-color:#d2ad62}.explore-toggle[aria-pressed=true] .explore-toggle__indicator{background:currentColor}.explore-prompt{z-index:5;top:calc(78px + env(safe-area-inset-top));color:#f7faf8;text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;background:#171b19e6;border:1px solid #ffffff29;border-radius:10px;width:min(520px,100vw - 36px);padding:12px 16px;transition:opacity .24s;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #171b1938}.explore-prompt[hidden]{display:none}.explore-prompt--dismissed{opacity:0}.explore-prompt p{margin:0}.explore-prompt__title{font-size:.9rem;font-weight:720}.explore-prompt__detail{color:#cbd3cf;font-size:.75rem;line-height:1.45;margin-top:3px!important}.viewer-mode--placing canvas{cursor:crosshair}.viewer-mode--first-person canvas{cursor:grab}.viewer-mode--first-person canvas:active{cursor:grabbing}.viewer-mode--placement-valid .explore-prompt{border-color:#a4d4bc9e}.viewer-mode--placement-valid .explore-prompt__title{color:#c5edda}.viewer-mode--explore .viewer-status,.viewer-mode--explore .viewer-help{opacity:0}.viewer-status{z-index:2;top:calc(78px + env(safe-area-inset-top));left:max(18px, env(safe-area-inset-left));color:#171b19;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;background:#f7f8f7e6;border:1px solid #171b1924;border-radius:4px;width:min(390px,100vw - 36px);padding:16px 18px;transition:opacity .22s,transform .22s;position:fixed;box-shadow:0 12px 32px #171b191a}.viewer-status p{margin:0}.viewer-status__eyebrow{color:#59635f;letter-spacing:.11em;text-transform:uppercase;font-size:.75rem;font-weight:700}.viewer-status__row{justify-content:space-between;align-items:center;gap:16px;display:flex}.viewer-status__pulse{background:#a16207;border-radius:50%;flex:none;width:8px;height:8px;animation:1.5s ease-in-out infinite status-pulse;box-shadow:0 0 0 5px #a1620721}.viewer-status__title{letter-spacing:-.025em;font-size:clamp(1rem,2vw,1.2rem);font-weight:650;margin-top:7px!important}.viewer-status__hint{color:#4d5753;font-size:.82rem;line-height:1.45;margin-top:4px!important}.viewer-status--ready{opacity:0;transition-delay:1.15s;transform:translateY(-6px)}.viewer-status--ready .viewer-status__pulse{background:#3d6c55;animation:none}.viewer-error{z-index:4;color:#291b1b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fef8f7f5;border:1px solid #b91c1c47;border-radius:6px;width:min(440px,100vw - 32px);padding:24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #171b1933}.viewer-error[hidden]{display:none}.viewer-error__eyebrow,.viewer-error h1,.viewer-error p{margin:0}.viewer-error__eyebrow{color:#991b1b;letter-spacing:.11em;text-transform:uppercase;font-size:.72rem;font-weight:700}.viewer-error h1{letter-spacing:-.03em;margin-top:8px;font-size:1.35rem}.viewer-error p:not(.viewer-error__eyebrow){color:#66504f;margin-top:8px;line-height:1.5}.viewer-error button{color:#fff;min-width:132px;min-height:44px;font:inherit;cursor:pointer;background:#171b19;border:0;border-radius:4px;margin-top:20px;padding:0 18px;font-weight:650;transition:background .18s,transform .18s}.viewer-error button:hover{background:#343a37}.viewer-error button:active{transform:translateY(1px)}.viewer-error button:focus-visible{outline-offset:3px;outline:3px solid #a16207}.debug-hud{z-index:3;right:max(18px, env(safe-area-inset-right));bottom:calc(max(18px, env(safe-area-inset-bottom)) + 60px);color:#eef2f0;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;background:#141816e0;border:1px solid #ffffff1f;border-radius:4px;width:214px;padding:12px;position:fixed;box-shadow:0 12px 32px #171b191f}.debug-hud[hidden]{display:none}.debug-toggle{z-index:4;right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));color:#f6f8f7;width:48px;height:48px;font:inherit;letter-spacing:.06em;cursor:pointer;touch-action:manipulation;background:#1b221fe6;border:1px solid #ffffff3d;border-radius:12px;padding:0;font-size:.68rem;font-weight:800;transition:background .16s,border-color .16s,box-shadow .16s;position:fixed;box-shadow:0 10px 28px #171b1933}.debug-toggle:hover,.debug-toggle--active{background:#29483a;border-color:#d5b46e}.debug-toggle:active{background:#1f382d}.debug-toggle:focus-visible{outline-offset:3px;outline:3px solid #a16207}.debug-hud__head{color:#cad2ce;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;padding-bottom:9px;font-size:.75rem;font-weight:700;display:flex}.debug-hud__live{color:#ddbc78}.debug-hud__fps-slot{background:#020706;border-radius:2px;height:48px;overflow:hidden}.debug-hud__fps,.debug-hud__fps canvas{width:100%!important;height:48px!important}.debug-hud__metrics{gap:5px;margin:10px 0 0;display:grid}.debug-hud__metrics div{justify-content:space-between;gap:12px;font-size:.75rem;display:flex}.viewer-help{z-index:2;bottom:max(18px, env(safe-area-inset-bottom));left:max(18px, env(safe-area-inset-left));color:#4d5753;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#f7f8f7d6;border:1px solid #171b191f;border-radius:4px;flex-wrap:wrap;gap:7px 14px;max-width:calc(100vw - 96px);padding:9px 12px;font-size:.75rem;line-height:1.5;display:flex;position:fixed;box-shadow:0 10px 28px #171b1914}.viewer-help kbd{color:#242a27;font:inherit;font-weight:700}.debug-hud__metrics dt{color:#aeb8b3}.debug-hud__metrics dd{color:#fff;margin:0;font-weight:650}@keyframes status-pulse{0%,to{opacity:.6;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}@media (width<=560px){.viewer-header{top:calc(6px + env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right));left:max(8px, env(safe-area-inset-left));min-height:52px;padding:4px 8px}.viewer-brand{gap:10px}.viewer-brand__mark{border-radius:9px;flex-basis:34px;width:34px;height:34px}.viewer-brand__name{font-size:.94rem}.explore-toggle{min-width:96px;padding:0 12px}.explore-prompt{top:calc(68px + env(safe-area-inset-top))}.viewer-status{right:12px;top:calc(68px + env(safe-area-inset-top));width:auto;padding:13px 15px;left:12px}.debug-hud{right:12px;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 60px);width:184px}.debug-toggle{right:12px;bottom:max(12px, env(safe-area-inset-bottom))}.viewer-help{right:72px;bottom:max(12px, env(safe-area-inset-bottom));max-width:none;padding:7px 9px;left:12px}.viewer-help span:nth-child(2){display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
