@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/montserrat-v31-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/montserrat-v31-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ivar-surface:#111;--ivar-surface-2:#141414;--ivar-surface-3:#1a1a1a;--ivar-interactive:#232323;--ivar-text:#f0f0f0;--ivar-text-2:#a0a0a0;--ivar-text-muted:#6e6e6e;--ivar-border:#232323;--ivar-border-2:#3a3a3a;--ivar-accent:#3a7d6a;--ivar-accent-hover:#34705f;--ivar-accent-soft:#3a7d6a33;--ivar-accent-bright:#5aa58e;--ivar-font:"Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--bg:#000;--panel:#111c;--panel-solid:var(--ivar-surface-2);--panel-hover:#232323eb;--border:#ffffff14;--text:var(--ivar-text);--muted:var(--ivar-text-2);--accent:var(--ivar-accent);--accent-hover:var(--ivar-accent-hover);--accent-soft:var(--ivar-accent-soft);--accent-bright:var(--ivar-accent-bright);--accent-ink:#fff;--danger:#e5776b;--radius:16px;--radius-sm:8px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:500 14px/1.5 var(--ivar-font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;overflow:hidden}#app{position:fixed;inset:0}#viewport{touch-action:none;position:absolute;inset:0}#viewport canvas{outline:none;width:100%;height:100%;display:block}[hidden]{display:none!important}button{font:inherit;color:inherit}.boot,.loading{border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);color:var(--muted);z-index:40;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:14px 18px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.spinner{border:2px solid #ffffff26;border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bar{z-index:10;position:absolute;left:0;right:0}.bar.top{padding:calc(12px + var(--safe-top)) calc(16px + var(--safe-right)) 28px calc(16px + var(--safe-left));pointer-events:none;background:linear-gradient(#0000008c,#0000);justify-content:space-between;align-items:flex-start;gap:12px;display:flex;top:0}.bar.top>*{pointer-events:auto}.brand{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(10px);align-items:center;gap:10px;min-width:0;height:36px;padding:0 12px;display:flex}.brand-icon{color:var(--accent-bright);display:flex}.brand-name{white-space:nowrap;font-weight:700}.brand-dome{color:var(--muted);white-space:nowrap}.brand-file{color:var(--text);border-left:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;max-width:34vw;padding-left:10px;font-size:13px;overflow:hidden}.tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.icon-btn,.pill{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(10px);cursor:pointer;justify-content:center;align-items:center;height:36px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.icon-btn{width:36px;padding:0}.pill{white-space:nowrap;gap:8px;padding:0 12px}.icon-btn:hover,.pill:hover{background:var(--panel-hover)}.icon-btn:focus-visible,.pill:focus-visible,.btn:focus-visible,.menu-item:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.icon-btn.on,.pill.on{color:var(--accent-bright);border-color:var(--accent);background:var(--accent-soft)}.icon-btn:disabled{opacity:.4;cursor:default}.pill-icon,.pill-chev{display:flex}.pill-chev svg{opacity:.7;width:14px;height:14px}.seat-text{text-overflow:ellipsis;max-width:260px;overflow:hidden}.vr-btn{color:var(--accent-bright)}.fov{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(10px);align-items:center;gap:6px;height:36px;padding:0 10px;display:inline-flex}.fov-icon{color:var(--muted);display:flex}.fov input{width:96px}input[type=range]{appearance:none;cursor:pointer;background:0 0;height:24px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:#ffffff2e;border-radius:2px;height:4px}input[type=range]::-moz-range-track{background:#ffffff2e;border-radius:2px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:none;border-radius:50%;width:14px;height:14px;margin-top:-5px}input[type=range]::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:14px;height:14px}input[type=range]:disabled{opacity:.35;cursor:default}input[type=range]:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px;border-radius:4px}.menu{z-index:30;border-radius:var(--radius);background:var(--panel-solid);border:1px solid var(--border);min-width:240px;padding:6px;position:fixed;box-shadow:0 12px 40px #00000080}.menu-title{color:var(--accent-bright);text-transform:uppercase;letter-spacing:.15em;padding:8px 10px 6px;font-size:11px;font-weight:600}.menu-item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 10px;display:flex}.menu-item:hover{background:#ffffff12}.menu-item[aria-checked=true]{color:var(--accent-bright)}.menu-item[aria-checked=true] .key{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-bright)}.menu-item .key{width:20px;height:20px;color:var(--muted);border:1px solid var(--border);border-radius:5px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.menu-hint{color:var(--muted);border-top:1px solid var(--border);margin-top:4px;padding:8px 10px 6px;font-size:12.5px}.start{z-index:5;pointer-events:none;justify-content:center;align-items:center;padding:80px 16px 24px;display:flex;position:absolute;inset:0}.start-card{pointer-events:auto;background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);border-radius:18px;width:min(460px,100%);padding:28px 28px 22px;box-shadow:0 20px 60px #00000073}.start-icon{width:44px;height:44px;color:var(--accent-bright);background:var(--accent-soft);border-radius:12px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.start h1{margin:0 0 10px;font-size:21px;font-weight:700;line-height:1.25}.start-steps{color:var(--text);margin:0 0 18px;padding-left:20px}.start-steps li{margin:2px 0}.start-actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.start-note,.start-privacy{color:var(--muted);margin:0;font-size:13px}.start-privacy{border-top:1px solid var(--border);margin-top:8px;padding-top:10px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:#ffffff0f;align-items:center;gap:8px;height:42px;padding:0 20px;font-weight:600;display:inline-flex}.btn:hover{background:#ffffff1c}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.primary:hover{background:var(--accent-hover)}.btn svg{width:18px;height:18px}.bar.transport{left:50%;right:auto;bottom:calc(14px + var(--safe-bottom));width:min(980px, calc(100% - 24px - var(--safe-left) - var(--safe-right)));background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);border-radius:14px;align-items:center;gap:4px;padding:6px 10px;display:flex;transform:translate(-50%)}.transport .icon-btn{-webkit-backdrop-filter:none;background:0 0;border-color:#0000}.transport .icon-btn:hover{background:#ffffff14}.transport .play{width:40px;height:40px}.time,.frame{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted);padding:0 6px;font-size:13px}.time{color:var(--text);font-weight:600}.scrub-wrap{flex:1;align-items:center;min-width:60px;display:flex;position:relative}.scrub{flex:1;width:100%}.markers{height:0;position:absolute;top:-3px;left:7px;right:7px}.marker{cursor:pointer;background:0 0;border:none;width:16px;height:16px;margin-left:-8px;padding:0;position:absolute;top:0}.marker:before{content:"";background:var(--accent-bright);border-radius:1.5px;width:7px;height:7px;position:absolute;top:2px;left:4px;transform:rotate(45deg);box-shadow:0 0 0 1.5px #000000b3}.marker.selected:before{background:#fff}.marker:hover:before{transform:rotate(45deg)scale(1.3)}.marker:focus-visible{outline:2px solid var(--accent-bright);border-radius:4px}.transport .add-note-btn{-webkit-backdrop-filter:none;color:var(--accent-bright);background:0 0;border-color:#0000;padding:0 10px}.transport .add-note-btn:hover{background:#ffffff14}.transport .add-note-btn.on{background:var(--accent-soft);border-color:var(--accent)}.notice{z-index:9;top:calc(var(--top-h,76px) - 12px);border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);align-items:flex-start;gap:10px;width:min(620px,100% - 24px);padding:10px 8px 10px 14px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.notice p{flex:1;margin:7px 0 0;font-size:13.5px}.notice-icon{color:var(--accent-bright);padding-top:7px;display:flex}.notice .icon-btn{background:0 0;border-color:#0000;flex:none}.play-overlay{z-index:9;background:var(--accent);height:56px;color:var(--accent-ink);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:10px;padding:0 26px 0 20px;font-size:16px;font-weight:600;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #00000080}.play-overlay:hover{background:var(--accent-hover)}.play-overlay svg{width:22px;height:22px}.corner-logo{right:calc(18px + var(--safe-right));bottom:calc(18px + var(--safe-bottom));z-index:8;opacity:.78;width:56px;height:56px;transition:opacity .15s;position:absolute}.corner-logo:hover,.corner-logo:focus-visible{opacity:1}.corner-logo:focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px;border-radius:6px}.corner-logo img{width:100%;height:100%;display:block}@media (max-width:1180px){body.has-transport .corner-logo{bottom:calc(86px + var(--safe-bottom))}}@media (max-width:720px){.corner-logo{display:none}}.toast{left:50%;bottom:calc(24px + var(--safe-bottom));z-index:50;border-radius:var(--radius);background:#24130f;border:1px solid #e5776b80;align-items:flex-start;gap:10px;width:min(560px,100% - 24px);padding:12px 10px 12px 16px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #0006}body.has-transport .toast{bottom:calc(84px + var(--safe-bottom))}.toast p{flex:1;margin:7px 0 0}.toast .icon-btn{background:0 0;border-color:#0000;flex:none}.drop-overlay{z-index:60;border:2px dashed var(--accent-bright);border-radius:var(--radius);text-align:center;pointer-events:none;background:#111111c7;justify-content:center;align-items:center;font-size:17px;display:flex;position:fixed;inset:12px}.drop-overlay svg{width:40px;height:40px;color:var(--accent-bright)}.hover-tip{z-index:20;background:var(--panel-solid);border:1px solid var(--border);pointer-events:none;white-space:nowrap;border-radius:8px;padding:5px 9px;font-size:12.5px;position:fixed}dialog.help{border:1px solid var(--border);background:var(--panel-solid);width:min(560px,100% - 24px);max-height:calc(100% - 48px);color:var(--text);border-radius:16px;padding:20px 24px 18px;box-shadow:0 20px 60px #0009}dialog.help::backdrop{background:#0000008c}.help-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.help h2{margin:0;font-size:19px;font-weight:700}.help h3{color:var(--accent-bright);text-transform:uppercase;letter-spacing:.15em;margin:18px 0 8px;font-size:11px;font-weight:600}.help-list{margin:12px 0 0;padding-left:18px}.help-list li{margin:4px 0}.help-keys{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;display:grid}.help-keys dt{font-variant-numeric:tabular-nums;border:1px solid var(--border);border-radius:6px;justify-self:start;padding:1px 7px;font-size:12.5px}.help-keys dd{margin:0}.help-note{color:var(--muted);margin:14px 0 0;font-size:13px}.help .icon-btn{background:0 0;border-color:#0000}@media (min-width:1180px){.bar.top .tools{flex-wrap:nowrap;flex:none}.brand{overflow:hidden}.brand-file{min-width:40px}}@media (max-width:860px){.brand-dome,.fov{display:none}}@media (max-width:640px){.bar.top{flex-direction:column;align-items:stretch;gap:8px}.brand{align-self:flex-start;max-width:100%}.brand-file{max-width:60vw}.tools{flex-wrap:nowrap;justify-content:flex-start;gap:5px}.tools .outside-btn{display:none}.seat-text{max-width:150px}.frame{display:none}.bar.transport{gap:0;padding:4px 6px}.time{padding:0 4px;font-size:12px}}@media (max-width:420px){.transport .frame-step{display:none}}.notes-btn{position:relative}.notes-badge:not(:empty){background:var(--accent);min-width:20px;height:20px;color:var(--accent-ink);border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:11.5px;font-weight:700;display:inline-flex}#viewport canvas.placing{cursor:crosshair}.notes-panel{z-index:12;top:calc(var(--top-h,76px) - 12px);right:calc(12px + var(--safe-right));bottom:calc(14px + var(--safe-bottom));border-radius:var(--radius);background:var(--panel-solid);border:1px solid var(--border);flex-direction:column;width:340px;display:flex;position:absolute;overflow:hidden;box-shadow:0 16px 50px #00000080}.notes-head{justify-content:space-between;align-items:center;padding:10px 8px 4px 16px;display:flex}.notes-head h2{margin:0;font-size:16px;font-weight:700}.notes-count{color:var(--muted);font-weight:500}.notes-head .icon-btn{background:0 0;border-color:#0000}.notes-add{justify-content:center;height:38px;margin:6px 16px 10px}.notes-local{border-radius:var(--radius-sm);color:var(--muted);background:#ffffff0a;margin:0 16px 10px;padding:10px 12px;font-size:12.5px}.notes-local p{margin:0 0 8px}.notes-list{overscroll-behavior:contain;flex:1;padding:0 8px 12px;overflow-y:auto}.notes-empty{color:var(--muted);margin:0;padding:8px;font-size:13px}.note{cursor:pointer;border:1px solid #0000;border-radius:10px;gap:10px;padding:10px 8px;display:flex}.note+.note{margin-top:2px}.note:hover{background:#ffffff0a}.note.selected{background:var(--accent-soft);border-color:#5aa58e73}.note:focus-visible{outline:2px solid var(--accent-bright);outline-offset:-2px}.note-thumb{object-fit:cover;background:#000;border-radius:6px;flex:none;width:56px;height:56px}.note-body{flex:1;min-width:0}.note-meta{color:var(--muted);flex-wrap:wrap;gap:2px 8px;font-size:12px;display:flex}.note-time{color:var(--accent-bright);font-variant-numeric:tabular-nums;font-weight:600}.note-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:3px 0 0;font-size:13.5px;line-height:1.45}.note-where{color:var(--muted);margin-top:3px;font-size:11.5px}.note-actions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.note-confirm{margin-right:4px;font-size:12.5px}.nbtn{border:1px solid var(--border);cursor:pointer;background:#ffffff0d;border-radius:6px;height:28px;padding:0 9px;font-size:12.5px}.nbtn:hover{background:#ffffff1a}.nbtn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.nbtn.primary:hover{background:var(--accent-hover)}.nbtn.danger{color:var(--danger)}.nbtn:focus-visible{outline:2px solid var(--accent-bright);outline-offset:1px}.note textarea,.note-editor textarea,.note-editor input{border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;color:var(--text);font:inherit;resize:vertical;background:#00000059;margin-top:6px;padding:8px 10px;font-size:13.5px}.note textarea:focus,.note-editor textarea:focus,.note-editor input:focus{border-color:var(--accent);outline:none}.notes-hint{z-index:14;top:calc(var(--top-h,76px) - 12px);background:var(--panel-solid);border:1px solid var(--accent);border-radius:999px;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:6px 6px 6px 14px;font-size:13.5px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000073}.notes-hint-icon{color:var(--accent-bright);display:flex}.note-editor{z-index:16;border-radius:var(--radius);background:var(--panel-solid);border:1px solid var(--border);width:300px;max-width:calc(100% - 16px);padding:10px 12px 12px;position:fixed;box-shadow:0 16px 50px #0000008c}.note-editor label{color:var(--muted);margin-bottom:6px;font-size:12.5px;display:block}.note-editor .btn{height:34px;padding:0 14px}.note-label{z-index:7;pointer-events:none;overflow-wrap:anywhere;background:#111111e0;border:1px solid #5aa58e80;border-radius:8px;max-width:260px;padding:6px 10px;font-size:12.5px;line-height:1.4;position:fixed}.note-label strong{color:var(--accent-bright);margin-right:4px;font-weight:600}.note-label.selected{border-color:#ffffffb3}@media (min-width:861px){body.notes-open .bar.transport{left:calc((100% - 352px - var(--safe-right)) / 2);width:min(980px, calc(100% - 376px - var(--safe-left) - var(--safe-right)))}body.notes-open .corner-logo{display:none}body.notes-open .notice,body.notes-open .notes-hint{left:calc((100% - 352px - var(--safe-right)) / 2)}body.notes-open .notice{width:min(620px,100% - 376px)}body.notes-open .notes-panel{bottom:calc(14px + var(--safe-bottom))}}@media (max-width:860px){.notes-btn-text{display:none}.notes-panel{border-radius:var(--radius) var(--radius) 0 0;width:auto;max-height:55vh;padding-bottom:var(--safe-bottom);z-index:15;inset:auto 0 0}.transport .add-note-btn span{display:none}}@media (max-width:640px){.notes-hint{border-radius:14px;width:calc(100% - 24px);padding:8px 8px 8px 12px;font-size:13px}.notes-hint>span:nth-child(2){flex:1}.note-editor{width:auto;right:12px;left:12px!important;top:calc(var(--top-h,76px) - 12px)!important}}@media (max-width:420px){.seat-btn .seat-text{display:none}}
