:root{color-scheme:light;font-family:IBM Plex Sans,Segoe UI,sans-serif;background:radial-gradient(circle at 20% 10%,#e9f5ff,#f8fbff 45%,#fff);color:#102030}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh}.app-shell{max-width:1080px;margin:0 auto;padding:2rem 1.25rem 3rem}.app-shell--desktop-viewer{position:fixed;inset:0;max-width:none;width:100%;height:100%;height:100dvh;min-height:100dvh;margin:0;padding:0;overflow:hidden;background:#000}.hero h1{margin:0;font-size:clamp(1.8rem,3vw,2.6rem)}.hero p{margin-top:.5rem;max-width:62ch;line-height:1.45}.meta{margin-top:1rem;padding:.75rem 1rem;border-radius:.75rem;background:#fffc;border:1px solid #d9e7f5}.canvas-shell{position:relative;margin-top:1.25rem;border-radius:1rem;border:1px solid #bfd4eb;background:linear-gradient(135deg,#123558,#1f5e89);min-height:56vh;overflow:hidden;color:#f8fbff}.app-shell--desktop-viewer .canvas-shell{width:100%;height:100%;height:100dvh;min-height:100dvh;margin:0;border:0;border-radius:0;background:#000}.app-shell--desktop-viewer .canvas-host{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0!important}.mobile-quality{position:absolute;right:calc(.65rem + env(safe-area-inset-right,0));bottom:calc(.65rem + env(safe-area-inset-bottom,0));z-index:35;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:.4rem}.mobile-quality-btn,.mobile-quality-menu button{appearance:none;border:1px solid rgba(255,255,255,.26);border-radius:.5rem;color:#f7f5ef;background:#060a0e94;box-shadow:0 8px 24px #0000002e;backdrop-filter:blur(12px);font:inherit;cursor:pointer}.mobile-quality-btn{display:grid;place-items:center;width:2.45rem;height:2.45rem;padding:0}.mobile-quality-btn svg{display:block}.mobile-quality-menu{display:grid;width:min(11rem,calc(100vw - 2rem));padding:.35rem;border:1px solid rgba(255,255,255,.18);border-radius:.5rem;background:#05080cb8;box-shadow:0 18px 42px #00000047;backdrop-filter:blur(16px)}.mobile-quality-menu button{width:100%;min-height:2.35rem;border-color:transparent;box-shadow:none;background:transparent;text-align:left;padding:0 .65rem;font-size:.82rem}.mobile-quality-menu button.selected{background:#ffffff24;border-color:#fff3}.mobile-quality-divider{width:calc(100% - .4rem);height:1px;margin:.35rem .2rem;background:#ffffff29}.mobile-quality-toggle{display:grid;grid-template-columns:2.25rem 1fr;gap:.55rem;align-items:center;min-height:3rem}.mobile-quality-toggle:disabled{cursor:default;opacity:.72}.mobile-quality-switch{position:relative;width:2.05rem;height:1.2rem;border-radius:999px;background:#ffffff2e;border:1px solid rgba(255,255,255,.22);transition:background .16s ease,border-color .16s ease}.mobile-quality-switch span{position:absolute;top:50%;left:.17rem;width:.82rem;height:.82rem;border-radius:50%;background:#f7f5ef;transform:translateY(-50%);transition:transform .16s ease}.mobile-quality-switch--on{background:#5dcf8f6b;border-color:#93efb994}.mobile-quality-switch--on span{transform:translate(.83rem,-50%)}.mobile-quality-toggle-copy{display:grid;gap:.1rem}.mobile-quality-toggle-copy span{font-size:.8rem}.mobile-quality-toggle-copy small{color:#f7f5efa8;font-size:.68rem}.drone-badge{position:absolute;top:.65rem;left:50%;transform:translate(-50%);z-index:10;background:#ff8c00e0;border:1px solid rgba(255,200,80,.7);border-radius:.4rem;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.12em;padding:.25rem .65rem;pointer-events:none;backdrop-filter:blur(4px)}.gii-toolbar{position:absolute;top:.65rem;left:.65rem;z-index:10;display:flex;gap:.4rem}.gii-tool-btn{background:#081222bf;border:1px solid rgba(255,255,255,.3);border-radius:.55rem;color:#f5f9ff;font-size:.82rem;padding:.32rem .7rem;cursor:pointer;backdrop-filter:blur(6px);transition:background .15s,border-color .15s}.gii-tool-btn:hover{background:#122642e6}.gii-tool-btn--active{border-color:#78d2ffe6;background:#0c223aeb}.gii-tool-select{background:#081222bf;border:1px solid rgba(255,255,255,.3);border-radius:.55rem;color:#f5f9ff;font-size:.82rem;padding:.32rem .5rem;cursor:pointer;backdrop-filter:blur(6px)}.device-unsupported{color:#8a3040;max-width:52ch}.canvas-shell--entrance{background:#000;border-color:#1a1a1a}.gii-entrance-hud{position:absolute;inset:0;z-index:30;pointer-events:none}.gii-reveal-only-hud{position:absolute;top:12px;left:12px;z-index:40;pointer-events:none;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#4f8;text-shadow:0 1px 4px rgba(0,0,0,.9)}.gii-entrance-welcome{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:0;transition:opacity .7s ease-out}.gii-entrance-welcome--visible{opacity:1}.gii-entrance-welcome--hidden{opacity:0;pointer-events:none}.gii-entrance-welcome-title{margin:0;padding-left:.18em;font-size:clamp(1rem,2.4vw,1.28rem);font-weight:400;letter-spacing:.18em;color:#ffffffb8;background:linear-gradient(105deg,#ffffff57 28%,#fffffff5,#ffffff57 66%);background-size:240% 100%;background-position:120% 0;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:gii-loading-sheen 2.6s cubic-bezier(.4,0,.2,1) infinite}@keyframes gii-loading-sheen{0%,18%{background-position:120% 0}82%,to{background-position:-120% 0}}@media(prefers-reduced-motion:reduce){.gii-entrance-welcome-title{color:#ffffffb8;background:none;-webkit-text-fill-color:currentColor;animation:none}}.gii-entrance-progress{opacity:0;transition:opacity .5s ease-out}.gii-entrance-progress--visible{opacity:1}.gii-entrance-progress .entrance-status-track{min-width:min(240px,56vw)}.gii-spatial-prompt{position:absolute;inset:0;z-index:24;display:grid;place-items:center;--gii-chrome-outer-radius: 1.455rem;--gii-move-thumb-x: 0rem;--gii-move-thumb-y: 0rem;--gii-look-thumb-x: 0rem;--gii-look-thumb-y: 0rem;--gii-mouse-offset-x: 0rem;--gii-mouse-offset-y: 0rem;color:#f7f5efe6;opacity:0;pointer-events:none;transition:opacity .58s cubic-bezier(.22,.61,.36,1)}.gii-spatial-prompt:before{content:"";position:absolute;inset:0;background:#00000075;opacity:0;transition:opacity .58s cubic-bezier(.22,.61,.36,1)}.gii-spatial-prompt--visible{opacity:1}.gii-spatial-prompt--visible:before{opacity:1}.gii-spatial-panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;max-width:min(38rem,calc(100vw - 2rem));padding:1.6rem 1.85rem;border:1px solid rgba(247,245,239,.22);border-radius:var(--gii-chrome-outer-radius);background:#04070abd;box-shadow:0 30px 90px #00000085;transform:translateY(.7rem);backdrop-filter:blur(10px);transition:opacity .72s cubic-bezier(.22,.61,.36,1),transform .72s cubic-bezier(.22,.61,.36,1)}.gii-spatial-prompt--visible .gii-spatial-panel{transform:translateY(0)}.gii-spatial-prompt--desktop .gii-spatial-panel{width:min(31rem,calc(100vw - 2rem));height:17.25rem;min-width:0}.gii-spatial-title{font-family:IBM Plex Sans,Segoe UI,sans-serif;text-transform:none;color:#f7f5efd1;font-size:.78rem;font-weight:520;letter-spacing:0;text-align:center}.gii-spatial-instruction{position:relative;display:grid;place-items:center;width:min(26rem,100%);height:2.35rem;overflow:hidden}.gii-spatial-instruction-line{position:absolute;inset:0;display:grid;place-items:center;color:#f7f5efe6;font:470 .96rem/1.38 IBM Plex Sans,Segoe UI,sans-serif;opacity:0;text-align:center;transform:translateY(.28rem);transition:opacity 1.2s cubic-bezier(.22,.61,.36,1),transform 1.2s cubic-bezier(.22,.61,.36,1);white-space:nowrap}.gii-spatial-prompt[data-demo-stage=move] .gii-spatial-instruction-line--move,.gii-spatial-prompt[data-demo-stage=look] .gii-spatial-instruction-line--look{opacity:1;transform:translateY(0)}.gii-spatial-demo-stage{position:relative;width:14.75rem;height:7.25rem}.gii-spatial-keys{position:absolute;left:50%;top:50%;display:grid;grid-template-columns:repeat(3,3.7rem);grid-template-rows:repeat(2,3.35rem);column-gap:.72rem;row-gap:.56rem;justify-items:center;align-items:center;opacity:0;transform:translate(-50%,-45%) scale(.98);transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1)}.gii-spatial-key{position:relative;display:grid;place-items:center;width:3.05rem;aspect-ratio:1;min-width:0;min-height:0;border:1px solid rgba(247,245,239,.34);border-radius:.62rem;background:linear-gradient(180deg,#f7f5ef3d,#f7f5ef21 48%,#f7f5ef13);color:#f7f5efeb;box-shadow:inset 0 1px #ffffff2e,inset 0 -4px #0000003d,0 1px #ffffff0f,0 16px 34px #00000047;text-shadow:0 1px 1px rgba(0,0,0,.46);transition:transform .38s cubic-bezier(.2,.82,.2,1),background .38s ease,border-color .38s ease,box-shadow .38s ease;font:650 .9rem/1 IBM Plex Sans,Segoe UI,sans-serif}.gii-spatial-key--w{grid-column:2}.gii-spatial-key--a{grid-column:1;grid-row:2}.gii-spatial-key--s{grid-column:2;grid-row:2}.gii-spatial-key--d{grid-column:3;grid-row:2}.gii-spatial-mouse{position:absolute;left:50%;top:50%;--gii-mouse-x: 0rem;--gii-mouse-y: 0rem;width:2.1rem;height:3.2rem;border:1px solid rgba(247,245,239,.26);border-radius:999px;background:#070a0e57;box-shadow:0 12px 30px #0000003d;opacity:0;transform:translate(-50%,-43%) translate(var(--gii-mouse-offset-x),var(--gii-mouse-offset-y)) scale(.98);transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .2s cubic-bezier(.22,.61,.36,1)}.gii-spatial-mouse:before{content:"";position:absolute;top:.42rem;left:.48rem;width:.58rem;height:.98rem;border-radius:.42rem .14rem .28rem;background:#f7f5ef52}.gii-spatial-mouse:after{content:"";position:absolute;top:.58rem;left:50%;width:.16rem;height:.42rem;border-radius:999px;background:#f7f5ef80;transform:translate(-50%)}.gii-spatial-panel--mobile{width:min(100vw,32rem);height:min(78dvh,42rem);min-height:0;padding:0;justify-content:flex-start;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none}.gii-spatial-mobile-heading{position:absolute;top:50%;left:1.5rem;right:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.48rem;text-align:center;transform:translateY(-50%)}.gii-spatial-panel--mobile .gii-spatial-title{margin:0}.gii-spatial-mobile-subtitle{margin:0;color:#f7f5efb8;font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:.86rem;font-weight:440;line-height:1.35;letter-spacing:0}.gii-spatial-mobile-pads{position:absolute;left:0;right:0;bottom:calc(.8rem + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;padding:0 calc(1.15rem + env(safe-area-inset-right,0px)) 0 calc(1.15rem + env(safe-area-inset-left,0px))}.gii-spatial-pad-cluster{display:flex;flex-direction:column;align-items:center}.gii-spatial-pad{position:relative;width:clamp(6.6rem,28vw,8.2rem);height:clamp(6.6rem,28vw,8.2rem);border:1px solid rgba(247,245,239,.2);border-radius:999px;background:#f7f5ef0e;box-shadow:inset 0 0 0 1px #ffffff09,0 24px 70px #00000057;backdrop-filter:blur(8px)}.gii-spatial-pad-ring{position:absolute;inset:1.25rem;border:1px solid rgba(247,245,239,.16);border-radius:inherit}.gii-spatial-pad-hotspot{position:absolute;left:50%;top:50%;width:2.35rem;height:2.35rem;border-radius:999px;transform:translate(-50%,-50%);background:#f7f5efd1;box-shadow:0 0 0 .72rem #f7f5ef14,0 16px 38px #00000052;transition:transform .28s cubic-bezier(.22,.61,.36,1)}.gii-spatial-pad--move .gii-spatial-pad-hotspot{transform:translate(-50%,-50%) translate(var(--gii-move-thumb-x),var(--gii-move-thumb-y))}.gii-spatial-pad--look .gii-spatial-pad-hotspot{transform:translate(-50%,-50%) translate(var(--gii-look-thumb-x),var(--gii-look-thumb-y))}.gii-spatial-pad-label{margin-bottom:.76rem;color:#f7f5efd1;font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:.62rem;font-weight:590;letter-spacing:0;text-transform:uppercase;white-space:nowrap}.gii-spatial-prompt[data-demo-action=forward] .gii-spatial-key--w,.gii-spatial-prompt[data-demo-action=back] .gii-spatial-key--s,.gii-spatial-prompt[data-demo-action=left] .gii-spatial-key--a,.gii-spatial-prompt[data-demo-action=right] .gii-spatial-key--d{border-color:#f7f5ef85;background:linear-gradient(180deg,#f7f5ef4d,#f7f5ef2b 58%,#f7f5ef1c);box-shadow:inset 0 1px #ffffff29,inset 0 -1px #0000003d,0 8px 18px #0003;transform:translateY(3px) scale(.985)}.gii-spatial-prompt[data-demo-stage=move] .gii-spatial-keys{opacity:1;transform:translate(-50%,-50%) scale(1)}.gii-spatial-prompt[data-demo-stage=look] .gii-spatial-mouse{opacity:1;transform:translate(-50%,-50%) translate(var(--gii-mouse-offset-x),var(--gii-mouse-offset-y)) scale(1)}.gii-spatial-page{position:absolute;bottom:.95rem;right:1.05rem;color:#f7f5ef6b;font:450 .66rem/1 IBM Plex Sans,Segoe UI,sans-serif;letter-spacing:0;opacity:0;transition:opacity .9s cubic-bezier(.22,.61,.36,1)}.gii-spatial-prompt[data-demo-stage=move] .gii-spatial-page--move,.gii-spatial-prompt[data-demo-stage=look] .gii-spatial-page--look{opacity:1}.gii-spatial-prompt[data-demo-action=mouseDown] .gii-spatial-mouse:before,.gii-spatial-prompt[data-demo-action=lookLeft] .gii-spatial-mouse:before,.gii-spatial-prompt[data-demo-action=lookRight] .gii-spatial-mouse:before,.gii-spatial-prompt[data-demo-action=lookUp] .gii-spatial-mouse:before,.gii-spatial-prompt[data-demo-action=lookDown] .gii-spatial-mouse:before{background:#f7f5efb8;transform:translateY(2px)}.gii-entrance-grid{position:absolute;inset:0;z-index:12;pointer-events:none;background:#000;transition:opacity .45s ease-out}.gii-entrance-grid--fade{opacity:0}.gii-entrance-grid-canvas{display:block;width:100%;height:100%}.app-shell--world-ready .hero,.app-shell--world-ready .viewer-nav{animation:gii-ui-fade-in .9s ease-out both}@keyframes gii-ui-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.gii-viewer-chrome--hidden{opacity:0;transform:translateY(10px);pointer-events:none!important;visibility:hidden}.gii-viewer-chrome--ready{visibility:visible;animation:gii-ui-fade-in .9s ease-out both}.entrance-status{position:absolute;left:50%;bottom:1.35rem;z-index:22;transform:translate(-50%);pointer-events:none;font-size:.72rem;font-weight:400;letter-spacing:.14em;text-transform:lowercase;color:#ffffff52}.entrance-status--progress{display:flex;flex-direction:column;align-items:center;gap:.55rem;min-width:min(280px,62vw)}.entrance-status-label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#ffffff61}.entrance-status-track{width:100%;height:7px;padding:1px;box-sizing:border-box;background:#ffffff0b;border:1px solid rgba(255,255,255,.22);border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000003d,0 0 18px #ffffff0b}.entrance-status-bar{height:100%;background:linear-gradient(90deg,#ffffff47,#ffffff9e);transition:width .45s ease-out;border-radius:999px}.entrance-status-pct{font-size:.68rem;letter-spacing:.1em;color:#ffffff47}.entrance-status--error{width:min(560px,calc(100vw - 2rem));padding:.6rem .75rem;border-radius:.6rem;background:#821212c2;color:#fff5f5eb;text-transform:none;letter-spacing:.02em;font-weight:500;backdrop-filter:blur(8px)}.load-overlay{position:absolute;inset:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#000;pointer-events:none}.load-overlay-label{margin:0;font-size:.95rem;font-weight:500;letter-spacing:.04em;color:#f8fbffeb;text-shadow:0 1px 8px rgba(0,0,0,.35)}.load-overlay-progress{width:min(280px,70%);height:3px;background:#ffffff1f;border-radius:2px;overflow:hidden}.load-overlay-progress-bar{height:100%;background:linear-gradient(90deg,#3af,#6ef);transition:width .3s ease-out;border-radius:0 2px 2px 0}.load-overlay-progress--indeterminate .load-overlay-progress-bar{width:38%!important;animation:load-indeterminate 1.4s ease-in-out infinite}.detail-refine-badge{position:absolute;left:1rem;bottom:1rem;z-index:20;padding:.45rem .75rem;border-radius:999px;background:#081222c7;border:1px solid rgba(120,180,255,.35);color:#e6f0ffeb;font-size:.82rem;letter-spacing:.02em;backdrop-filter:blur(6px);pointer-events:none}.reveal-caption{position:absolute;left:50%;bottom:2rem;z-index:20;transform:translate(-50%);pointer-events:none;padding:.5rem 1.1rem;border-radius:999px;font-size:.82rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#f8fbffeb;background:#0812226b;border:1px solid rgba(136,204,255,.22);text-shadow:0 1px 12px rgba(136,204,255,.25)}.stream-progress{position:absolute;left:50%;bottom:2rem;z-index:20;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.55rem;pointer-events:none;min-width:min(320px,80vw)}.stream-progress-label{font-size:.82rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#f8fbffe0;text-shadow:0 1px 10px rgba(136,204,255,.2)}.stream-progress-track{width:100%;height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden}.stream-progress-bar{height:100%;background:linear-gradient(90deg,#3af,#8ef);border-radius:0 2px 2px 0;transition:width .45s ease-out}.stream-progress-pct{font-size:.75rem;letter-spacing:.06em;color:#b4dcffbf}@keyframes load-indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}.canvas-host{width:100%;height:56vh;min-height:320px;position:relative}.pc-canvas-viewport{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.pc-canvas-viewport .crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-host canvas{display:block;width:100%;height:100%}.canvas-overlay{position:absolute;left:1rem;top:1rem;pointer-events:none;padding:.65rem .85rem;border-radius:.65rem;border:1px solid #ffffff66;background:#091a2acc;font-size:.86rem;line-height:1.35;min-width:12rem}.debug-panel{position:absolute;right:1rem;top:1rem;width:min(22rem,calc(100% - 2rem));max-height:calc(100% - 2rem);overflow:auto;background:#081222eb;border:1px solid rgba(255,255,255,.22);border-radius:.8rem;padding:.75rem;color:#f5f9ff;backdrop-filter:blur(8px)}.debug-panel h2{margin:0 0 .3rem;font-size:1rem}.debug-panel p{margin:0 0 .6rem;font-size:.8rem;color:#d9e8ff}.debug-panel label{display:block;font-size:.85rem;margin-bottom:.25rem}.debug-panel select{width:100%;margin-bottom:.65rem;border-radius:.45rem;border:1px solid rgba(255,255,255,.25);background:#122642;color:#f5f9ff;padding:.42rem .5rem}.camera-authoring{margin:0 0 .85rem;padding:.7rem;border:1px solid rgba(255,190,76,.5);border-radius:.55rem;background:#1f180bb8;box-shadow:inset 3px 0 #ffbd4a}.camera-authoring__heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem;color:#ffe1a3;font:700 .73rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase}.camera-authoring__heading span:last-child{color:#79e6a5;font-size:.62rem}.camera-authoring__readout{display:grid;gap:.28rem;margin-bottom:.6rem}.camera-authoring__readout>div{display:grid;grid-template-columns:4.25rem 1fr;gap:.5rem;font-size:.72rem}.camera-authoring__readout span{color:#d7c7a5}.camera-authoring__readout code{color:#fff4dc;text-align:right;font-variant-numeric:tabular-nums}.camera-authoring button{width:100%;border:1px solid rgba(255,190,76,.72);border-radius:.4rem;background:#ffbd4a;color:#201503;padding:.48rem .6rem;font-weight:750;cursor:pointer}.camera-authoring button:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.camera-authoring small{display:block;margin-top:.45rem;color:#d7c7a5;font-size:.68rem;line-height:1.35}.camera-authoring__status{min-height:1em;margin-top:.35rem;color:#79e6a5;font-size:.68rem}.debug-checkbox{display:flex;align-items:center;gap:.5rem;margin-bottom:.7rem;font-size:.85rem}.debug-checkbox input{margin:0}.debug-grid{display:grid;grid-template-columns:1fr auto;gap:.3rem .75rem;font-size:.8rem}.crosshair{position:absolute;top:50%;left:50%;width:6px;height:6px;background:#ffffffd9;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 0 1px #00000073;z-index:20}.touch-reticle{width:6px;height:6px;background:#ffffffd1;border:none;border-radius:50%;box-shadow:0 0 0 1px #00000073,0 0 10px #ffffff29;transition:width .18s ease,height .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.crosshair.crosshair--target:not(.touch-reticle){width:34px;height:34px;background:transparent;box-shadow:none}.crosshair.crosshair--target:not(.touch-reticle):before{content:"";position:absolute;inset:0;box-sizing:border-box;border:3px solid rgba(255,255,255,.82);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.92) 0 2.5px,transparent 3px);box-shadow:0 0 0 1px #00000057,0 0 18px #fff3;-webkit-mask:linear-gradient(to bottom,#000 0 calc(50% - 7px),transparent calc(50% - 7px) calc(50% + 7px),#000 calc(50% + 7px));mask:linear-gradient(to bottom,#000 0 calc(50% - 7px),transparent calc(50% - 7px) calc(50% + 7px),#000 calc(50% + 7px))}.crosshair.crosshair--target:not(.touch-reticle):after{content:"CLICK";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding-left:.1em;color:#fffffff0;font:700 .46rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.16em;text-shadow:0 1px 4px rgba(0,0,0,.9),0 0 10px rgba(0,0,0,.65)}.crosshair.crosshair--press:not(.touch-reticle):before{animation:gii-crosshair-click-pulse .26s cubic-bezier(.2,.7,.2,1)}@keyframes gii-crosshair-click-pulse{0%{transform:scale(1);opacity:1}45%{transform:scale(.82);opacity:.86}to{transform:scale(1);opacity:1}}.gii-pointer-lock-notice{position:absolute;top:.9rem;left:50%;transform:translate(-50%);z-index:48;pointer-events:none;opacity:0;transition:opacity .85s ease;font:500 10px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#ffffffc7;background:#0a101c61;padding:.42rem .95rem;border-radius:999px;border:1px solid rgba(255,255,255,.09);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap;box-shadow:0 4px 18px #0000002e}.gii-pointer-lock-notice--visible{opacity:1}.gii-pointer-lock-notice--faded{opacity:0}.touch-reticle.crosshair--target{display:grid;place-items:center;width:30px;height:30px;background:#070c1485;border:1px solid rgba(255,255,255,.9);border-radius:50%;color:#ffffffe6;box-shadow:0 0 0 1px #00000061,0 0 0 11px #ffffff1f,0 0 26px #ffffff38;backdrop-filter:blur(8px)}.touch-reticle.crosshair--target:before{content:"";position:absolute;inset:-11px;border-radius:50%;border:1px solid rgba(255,255,255,.26);background:#ffffff09;pointer-events:none}.touch-reticle.crosshair--target:after{content:"TAP";position:absolute;left:50%;top:50%;z-index:1;transform:translate(-50%,-50%);padding-left:.08em;color:#ffffffeb;font:700 .48rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em;text-shadow:0 1px 8px rgba(0,0,0,.85)}.perf-chart{display:flex;align-items:flex-end;gap:1px;height:44px;background:#00000059;border-radius:4px;overflow:hidden;margin:.5rem 0 .4rem;position:relative}.perf-bar{flex:1;min-width:2px;border-radius:1px 1px 0 0;opacity:.85;transition:background-color .15s}.perf-target-line{position:absolute;left:0;right:0;bottom:33.33%;height:1px;background:#ffffff73;pointer-events:none}.viewer-nav a{color:#8cf;text-decoration:none}.viewer-nav a:hover{text-decoration:underline}.world-index{min-height:100vh;padding:1.25rem 1rem 2rem;max-width:42rem;margin:0 auto;color:#e8f0ff;background:linear-gradient(180deg,#081222,#0f2f4b)}.world-index-header h1{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.world-index-header p{margin:0;font-size:.95rem;line-height:1.5;color:#e8f0ffd1}.world-index-list{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.85rem}.world-index-card{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.1rem;border-radius:10px;background:#081222b8;border:1px solid rgba(136,204,255,.18)}.world-index-card h2{margin:0 0 .25rem;font-size:1.1rem}.world-index-card p{margin:0;font-size:.88rem;line-height:1.45;color:#e8f0ffbf}.world-index-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.world-index-actions--stacked{grid-template-columns:1fr}.world-index-btn{display:block;text-align:center;padding:.75rem 1rem;border-radius:8px;font-size:.95rem;font-weight:600;text-decoration:none;color:#e8f0ff;background:#88ccff1f;border:1px solid rgba(136,204,255,.28);-webkit-tap-highlight-color:transparent}.world-index-btn--primary{background:#88ccff38;border-color:#88ccff73}.world-index-btn:active{transform:scale(.98)}.world-index-error{color:#f89;margin-top:1rem}.world-index-loading{margin-top:1.5rem;color:#e8f0ffb3}html.mobile-viewer,html.mobile-viewer body,html.mobile-viewer #root{width:100%;height:100%;height:100dvh;margin:0;padding:0;overflow:hidden;background:#000}.app-shell--mobile-viewer{position:fixed;inset:0;z-index:1;max-width:none;width:100%;height:100%;height:100dvh;min-height:100dvh;margin:0;padding:0;display:flex;flex-direction:column;background:#000}.app-shell--mobile-viewer .canvas-shell,.app-shell--mobile-viewer .canvas-shell--mobile{flex:1 1 auto;width:100%;height:100%;min-height:0;margin:0;border:none;border-radius:0;background:#000}.app-shell--mobile-viewer .canvas-host{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0!important}.mobile-viewer-error{position:absolute;z-index:30;left:0;right:0;top:env(safe-area-inset-top,0);margin:.75rem;padding:.65rem .85rem;border-radius:.5rem;background:#081222eb}.app-shell--mobile-viewer .entrance-status{padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0))}.viewer-diagnostics-wrap{position:absolute;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0));z-index:50;display:flex;flex-direction:column;gap:6px;pointer-events:none}.viewer-diagnostics-wrap[hidden]{display:none!important}.viewer-diagnostics{pointer-events:none;font:10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:#9fd49f;background:#000000d1;border:1px solid rgba(120,200,120,.35);padding:8px 10px;border-radius:6px;white-space:pre-wrap;word-break:break-word;max-height:38vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.viewer-diagnostics-copy{pointer-events:auto;align-self:flex-end;font:12px/1 system-ui,-apple-system,sans-serif;font-weight:600;color:#e8f0ff;background:#28508ce6;border:1px solid rgba(136,204,255,.45);border-radius:6px;padding:8px 14px;-webkit-tap-highlight-color:transparent}.viewer-diagnostics-copy:active{transform:scale(.98)}.viewer-diagnostics--app{position:fixed;z-index:100}@media(min-width:480px){.world-index{padding:2rem 1.5rem 3rem}.world-index-card{flex-direction:row;align-items:center;justify-content:space-between}.world-index-actions{flex:0 0 auto;width:13rem}}
/*# sourceMappingURL=main-BN3EBW2E.css.map */
