:root{--bg-primary: rgba(0, 0, 0, .5);--bg-overlay: rgba(0, 0, 0, .6);--popup-bg: rgba(0, 0, 0, .6);--accent-primary: rgb(238, 238, 238);--bg-svg: rgba(0, 0, 0, .1);--border-svg: rgba(255, 255, 255, .3);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .9);--text-tertiary: rgba(255, 255, 255, .7);--text-quaternary: rgba(255, 255, 255, .5);--border-primary: rgba(255, 255, 255, .2)}#root{width:100%;height:100%}html{font-size:16px}body{background:#000;height:100vh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:1rem}.scene-overlay{position:absolute;inset:0;width:100%;height:100%;background:#0d0d0d;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999}.scene-spinner{width:2.875rem;height:2.875rem;border-radius:50%;border:.25rem solid rgba(255,255,255,.12);border-top-color:#fff;animation:spin .8s linear infinite;margin-bottom:1.25rem}.scene-title{font-size:clamp(.95rem,3.5vw,1.125rem);font-weight:600;color:#fff;margin-bottom:.375rem;text-align:center;max-width:min(20rem,calc(100% - 2rem));line-height:1.3;padding-inline:1rem;box-sizing:border-box}.scene-subtitle{font-size:clamp(.75rem,2.6vw,.875rem);color:#ffffff8c;text-align:center;max-width:min(18rem,calc(100% - 2rem));line-height:1.4;padding-inline:1rem;box-sizing:border-box}.download-tutorial{--dt-icon-slot: clamp(2.5rem, 1.1rem + 2.2vmin, 4.5rem);--dt-lucide: clamp(1.6rem, .6rem + 1.1vmin, 3rem);--dt-lucide-tap-mouse: min(calc(var(--dt-lucide) * 1.25), calc(var(--dt-icon-slot) * .88));--dt-key-stroke: rgba(255, 255, 255, .85);--dt-key-border-w: 2px;display:flex;flex-direction:row;align-items:stretch;justify-content:center;width:100%;min-width:0;max-width:min(560px,100%);margin:0 auto;padding-inline:clamp(.5rem,3vw,1rem);box-sizing:border-box}.download-tutorial--cols-3{max-width:min(760px,100%)}.download-tutorial--cols-3 .download-tutorial__column{padding-inline:clamp(.5rem,1.75vw,.85rem)}.download-tutorial__column{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding-inline:1.25rem;position:relative}@media(min-width:601px){.download-tutorial__column:not(:last-child):after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background:#ffffff14}}.download-tutorial__column-visual{display:flex;align-items:center;justify-content:center;width:min(9rem,100%);min-width:0;min-height:4.5rem;flex-shrink:0;margin:0 auto 1.25rem}.download-tutorial__column-text{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1}.download-tutorial__column-title{font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fffffffa;line-height:1.2}.download-tutorial__column-desc{font-size:.75rem;font-weight:500;letter-spacing:.02em;color:#ffffffeb;line-height:1.5;max-width:100%;overflow-wrap:break-word;text-wrap:pretty;text-shadow:0 1px 3px rgba(0,0,0,.5)}.download-tutorial__column-desc--flow{white-space:pre-line}@media(min-width:601px){.download-tutorial--cols-3 .download-tutorial__column-desc{min-height:3em;display:flex;align-items:center;justify-content:center;text-align:center}.download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__column-text{width:100%;align-items:center;text-align:center}.download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__column-title{width:100%;text-align:center}.download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__column-desc--flow{width:100%;text-align:center;text-wrap:balance;line-height:1.45;letter-spacing:.04em}}.download-tutorial__keyboard-column-visual{display:flex;width:100%;min-width:0;align-items:center;justify-content:center}.download-tutorial--cols-3 .download-tutorial__keyboard-lucide{display:none}.download-tutorial__keys--all{--dt-k-gap-col: .5rem;--dt-k-gap-stack: .5rem;--dt-k-gap-inrow: .25rem;--dt-k-between-clusters: .5rem;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-end;justify-content:center;gap:var(--dt-k-gap-col)}.download-tutorial__keys-wasd,.download-tutorial__keys-arrows{display:flex;flex-direction:column;align-items:center;gap:var(--dt-k-gap-stack);flex-shrink:0;width:min-content;min-width:0;max-width:100%}.download-tutorial__keys-cycle{display:inline-grid;grid-template-areas:"stack";place-content:end center;place-items:end center;min-width:0;max-width:100%;flex-shrink:0}.download-tutorial__keys-layer--wasd,.download-tutorial__keys-layer--arrows{grid-area:stack;place-self:end center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;width:100%;will-change:opacity;backface-visibility:hidden}.download-tutorial__keys-layer--wasd{animation:download-tutorial-keygroup-wasd 6s linear infinite}.download-tutorial__keys-layer--arrows{animation:download-tutorial-keygroup-arrows 6s linear infinite}@keyframes download-tutorial-keygroup-wasd{0%,30%{opacity:1}34%{opacity:.55}38%{opacity:.2}42%,78%{opacity:0}83%{opacity:.35}87%{opacity:.78}91%,to{opacity:1}}@keyframes download-tutorial-keygroup-arrows{0%,30%{opacity:0}34%{opacity:.5}38%{opacity:.85}42%,78%{opacity:1}83%{opacity:.65}87%{opacity:.25}91%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.download-tutorial__keys-cycle{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-end;justify-content:center;gap:var(--dt-k-between-clusters);width:max-content}.download-tutorial__keys-layer--wasd,.download-tutorial__keys-layer--arrows{grid-area:auto;place-self:auto;width:auto;will-change:auto;animation:none!important;opacity:1!important}}.download-tutorial__keys-elev{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--dt-k-gap-stack);flex-shrink:0}.download-tutorial__keys-row{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:var(--dt-k-gap-inrow)}.download-tutorial__key{box-sizing:border-box;width:2rem;height:2rem;border:var(--dt-key-border-w) solid var(--dt-key-stroke);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--dt-key-stroke)}.download-tutorial__key--wide{min-width:2.75rem;font-size:.5625rem;letter-spacing:.02em}.download-tutorial__key--arrow{font-size:.7rem;line-height:1}.download-tutorial__icon{display:flex;align-items:center;justify-content:center}.download-tutorial__tap-icon,.download-tutorial__drag-icon,.download-tutorial__joystick-icon,.download-tutorial__keyboard-lucide{color:#ffffffd9}.download-tutorial__joystick-icon,.download-tutorial__tap-icon,.download-tutorial__drag-icon,.download-tutorial__keyboard-lucide{width:var(--dt-icon-slot);height:var(--dt-icon-slot);flex-shrink:0;box-sizing:border-box}.download-tutorial__joystick-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial__tap-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial__drag-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial__keyboard-lucide svg{display:block;flex-shrink:0;width:var(--dt-lucide-tap-mouse);height:var(--dt-lucide-tap-mouse);object-fit:contain}@media(min-width:601px){.download-tutorial--cols-3 .download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__column-visual{width:min(9rem,100%);max-width:min(9rem,100%);margin-left:auto;margin-right:auto;margin-bottom:1.25rem;min-height:4.5rem;align-items:flex-end;justify-content:center}.download-tutorial--cols-3 .download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__keys--all{flex-shrink:0;transform:scale(.91);transform-origin:bottom center}.download-tutorial--cols-3 .download-tutorial__tap-icon,.download-tutorial--cols-3 .download-tutorial__drag-icon,.download-tutorial--cols-3 .download-tutorial__joystick-icon,.download-tutorial--cols-3 .download-tutorial__keyboard-lucide{width:clamp(4.5rem,.65rem + 2.5vw,5.4rem);height:clamp(4.5rem,.65rem + 2.5vw,5.4rem)}.download-tutorial--cols-3 .download-tutorial__tap-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial--cols-3 .download-tutorial__drag-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial--cols-3 .download-tutorial__joystick-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial--cols-3 .download-tutorial__keyboard-lucide svg{width:clamp(3.9rem,.5rem + 2.1vw,4.8rem);height:clamp(3.9rem,.5rem + 2.1vw,4.8rem);object-fit:contain}}@media(min-width:601px)and (max-width:900px){.download-tutorial--cols-3{--dt-key-border-w: 1.75px}.download-tutorial--cols-3 .download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__key{width:1.7rem;height:1.7rem;font-size:.65rem}.download-tutorial--cols-3 .download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__key--wide{min-width:2.35rem;font-size:.5rem}.download-tutorial--cols-3 .download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__keys--all{--dt-k-gap-col: .5rem;--dt-k-gap-stack: .4rem;--dt-k-gap-inrow: .2rem;--dt-k-between-clusters: .4rem;transform:none}}.download-tutorial--orbit-only{max-width:300px}.download-tutorial--orbit-only .download-tutorial__column:after{display:none}.download-tutorial--orbit-only .download-tutorial__column{flex:0 1 auto;padding-inline:0}.download-tutorial--orbit-only .download-tutorial__column-visual{height:4.5rem}.download-tutorial--orbit-only .download-tutorial__column-desc{max-width:100%}@media(orientation:landscape)and (max-height:500px){.download-tutorial{--dt-icon-slot: clamp(2.25rem, 11vh, 3.25rem);--dt-lucide: clamp(1.45rem, 6.8vh, 2.1rem);--dt-key-border-w: 1.5px;max-width:100%;padding-inline:clamp(.5rem,2vw,1rem)}.download-tutorial__column{flex-direction:row;gap:clamp(.5rem,2vw,1rem);text-align:left;align-items:center;padding-inline:clamp(.5rem,2vw,1.25rem);padding-block:clamp(.25rem,1vh,.5rem)}.download-tutorial__column-visual{flex-shrink:0;width:clamp(3rem,12vh,5rem);min-width:clamp(3rem,12vh,5rem);min-height:clamp(2.5rem,10vh,4rem);height:auto;margin:0;align-items:center;justify-content:center}.download-tutorial--cols-3 .download-tutorial__tap-icon,.download-tutorial--cols-3 .download-tutorial__drag-icon,.download-tutorial--cols-3 .download-tutorial__joystick-icon,.download-tutorial--cols-3 .download-tutorial__keyboard-lucide{width:var(--dt-icon-slot);height:var(--dt-icon-slot);min-width:0;min-height:0;max-width:100%;max-height:var(--dt-icon-slot)}.download-tutorial--cols-3 .download-tutorial__tap-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial--cols-3 .download-tutorial__drag-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial--cols-3 .download-tutorial__joystick-icon :is(svg,img,.tutorial-raster-icon),.download-tutorial--cols-3 .download-tutorial__keyboard-lucide svg{width:var(--dt-lucide-tap-mouse);height:var(--dt-lucide-tap-mouse);max-width:100%;max-height:100%;object-fit:contain}.download-tutorial--cols-3 .download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__column-visual{align-items:center;justify-content:center}.download-tutorial__column-text{align-items:flex-start;flex:1;min-width:0;gap:clamp(.2rem,.8vh,.4rem)}.download-tutorial__column-desc{max-width:none}.download-tutorial--orbit-only{max-width:100%}.download-tutorial--orbit-only .download-tutorial__column-visual{min-height:clamp(2.5rem,10vh,4rem);height:auto}.download-tutorial__column-title{font-size:clamp(.625rem,1.8vh,.8125rem)}.download-tutorial__column-desc{font-size:clamp(.5625rem,1.5vh,.75rem);text-shadow:0 1px 3px rgba(0,0,0,.5)}.download-tutorial__key{width:clamp(1.25rem,4vh,1.75rem);height:clamp(1.25rem,4vh,1.75rem);font-size:clamp(.5rem,1.4vh,.6875rem)}.download-tutorial__key--wide{min-width:clamp(1.75rem,5vh,2.25rem);font-size:clamp(.4rem,1.2vh,.5rem)}}@media(min-width:601px)and (max-height:500px){.download-tutorial--cols-3 .download-tutorial__column-title{text-align:left}.download-tutorial--cols-3 .download-tutorial__column-desc{min-height:0;display:block;text-align:left}}@media(min-width:601px)and (max-height:500px)and (orientation:portrait){.download-tutorial--cols-3 .download-tutorial__column{align-items:flex-start}}@media(min-width:601px)and (max-height:500px)and (orientation:landscape){.download-tutorial--cols-3 .download-tutorial__column{align-items:center}}@media(max-width:600px){.download-tutorial{--dt-icon-slot: 3.25rem;--dt-lucide: 2.5rem;--dt-key-border-w: 1.5px;flex-direction:column;gap:0;max-width:100%;padding-inline:clamp(.5rem,2.5vw,1rem)}.download-tutorial__column{flex-direction:row;gap:.75rem;text-align:left;width:100%;max-width:100%;margin:0 auto;align-items:center;padding:0}.download-tutorial__column:not(:last-child){padding-bottom:.75rem}.download-tutorial--cols-3 .download-tutorial__keys--all{display:none}.download-tutorial--cols-3 .download-tutorial__keyboard-lucide{display:flex}.download-tutorial--cols-3 .download-tutorial__column:has(.download-tutorial__keys--all) .download-tutorial__column-visual{align-items:center;justify-content:center}.download-tutorial--orbit-only{max-width:100%}.download-tutorial__column-visual{flex-shrink:0;width:5.5rem;min-width:5.5rem;height:3.5rem;margin:0;align-items:center;justify-content:center}.download-tutorial__column-text{align-items:flex-start;flex:1;min-width:0;gap:.375rem}.download-tutorial__column-desc{max-width:none}.download-tutorial--orbit-only .download-tutorial__column-visual{height:3.5rem}.download-tutorial__column-title{font-size:.75rem}.download-tutorial__column-desc{font-size:.6875rem;text-shadow:0 1px 3px rgba(0,0,0,.5)}.download-tutorial__key{width:1.5rem;height:1.5rem;font-size:.625rem}.download-tutorial__key--wide{min-width:1.95rem;font-size:.45rem}.download-tutorial__keys--all{--dt-k-gap-col: .45rem;--dt-k-gap-stack: .35rem;--dt-k-gap-inrow: .2rem;--dt-k-between-clusters: .4rem}}@media(max-width:400px){.download-tutorial{--dt-icon-slot: 3rem;--dt-lucide: 2.25rem;padding-inline:.5rem}.download-tutorial__column{gap:.5rem}.download-tutorial__column-title{font-size:.6875rem}.download-tutorial__column-desc{font-size:.625rem;line-height:1.45}.download-tutorial__key{width:1.35rem;height:1.35rem;font-size:.5625rem}.download-tutorial__key--wide{min-width:1.8rem;font-size:.4rem}.download-tutorial__keys--all{--dt-k-gap-col: .4rem;--dt-k-gap-stack: .3rem;--dt-k-gap-inrow: .15rem;--dt-k-between-clusters: .35rem}}.download-screen{position:absolute;inset:0;overflow:hidden;color:#fff}.download-bg{position:relative;width:100%;height:100%;overflow:hidden;background:#000}.download-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 50% 50%,transparent 35%,rgba(0,0,0,.3) 55%,rgba(0,0,0,.6) 100%);pointer-events:none}.download-bg video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease-out}.download-bg video.download-bg-video--visible{opacity:1}.download-fade{position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(to bottom,#0000,#0009 40%,#000000e6);pointer-events:none}.download-title{position:absolute;top:2.5rem;left:50%;transform:translate(-50%);width:100%;max-width:90vw;margin:0;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;letter-spacing:-.03em;line-height:1.1;color:#fff;text-align:center;padding:0 1rem;box-sizing:border-box}.download-title--long{font-size:clamp(1.25rem,3.5vw,1.75rem)}.download-title--very-long{font-size:clamp(1rem,3vw,1.5rem)}.download-content{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:0;padding-top:clamp(1.5rem,4vw,3rem);padding-bottom:clamp(2.25rem,5.5vw,4rem);padding-inline:max(clamp(.75rem,4vw,2rem),env(safe-area-inset-left),env(safe-area-inset-right));box-sizing:border-box}.download-instructions-wrap{width:100%;max-width:min(760px,100%);margin-bottom:clamp(1.5rem,3.5vw,2.75rem);display:flex;flex-direction:column;align-items:center;box-sizing:border-box;padding-inline:.25rem}.download-instructions-wrap--spacer{visibility:hidden;min-height:clamp(5.5rem,22vw,7rem)}.download-instructions-wrap--orbit-only.download-instructions-wrap--spacer{min-height:72px}.download-instructions-wrap--orbit-only:not(.download-instructions-wrap--spacer){margin-bottom:clamp(1.5rem,3.5vw,2.25rem)}.download-instructions-placeholder{width:100%;max-width:760px;height:56px}.download-instructions-heading{margin:0 0 clamp(1.25rem,3.5vw,2rem) 0;font-size:clamp(.6875rem,2.2vw,.875rem);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-align:center;max-width:100%;padding-inline:.25rem;box-sizing:border-box}.download-controls-row{width:100%;display:flex;justify-content:center}.download-info,.download-progress-wrap{width:100%}.download-progress-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:.5rem;min-height:1.5em}.download-subtitle{font-size:.875rem;opacity:.85;color:#ffffffe6}.download-pct{font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:#fffffffa;line-height:1}.download-progress-track{width:100%;height:6px;border-radius:3px;background:#fff3;overflow:hidden}.download-progress-fill{height:100%;background:linear-gradient(90deg,#2f6d9b,#64c8f5 28%,#e57224 58%,#d95686);transition:width .25s ease-out;border-radius:3px}.download-progress-fill--indeterminate{width:40%!important;animation:download-progress-indeterminate 1.5s ease-in-out infinite}@keyframes download-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media(max-width:640px){.download-content{padding-top:clamp(1.25rem,3.5vw,2rem);padding-bottom:clamp(2rem,4.5vw,3rem);padding-inline:max(.75rem,env(safe-area-inset-left),env(safe-area-inset-right))}.download-pct{font-size:clamp(1.25rem,5vw,1.75rem)}.download-controls-row{margin-bottom:clamp(1.5rem,3.5vw,2.25rem)}.download-title{top:1.5rem;font-size:clamp(1.25rem,5vw,1.75rem)}.download-title--long{font-size:clamp(1.125rem,4vw,1.5rem)}.download-title--very-long{font-size:clamp(1rem,3.5vw,1.25rem)}}@media(max-width:400px){.download-content{padding-inline:max(.5rem,env(safe-area-inset-left),env(safe-area-inset-right))}.download-instructions-wrap{padding-inline:0}}.canvas-instructions-overlay{pointer-events:none;-webkit-user-select:none;user-select:none;animation:canvas-instructions-fade-in .6s cubic-bezier(.25,.46,.45,.94) forwards;min-width:0;max-width:100%;box-sizing:border-box}.canvas-instructions-overlay__close-wrap{display:flex;justify-content:center;width:100%;max-width:100%;min-width:0;margin:0 0 1.15em;font-size:clamp(.6875rem,.1rem + 1.1vmin,1rem);line-height:1;pointer-events:auto;box-sizing:border-box}.canvas-instructions-overlay__close{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:2.5em;height:2.5em;min-width:max(2.5em,36px);min-height:max(2.5em,36px);margin:0;padding:0;border:max(1px,.07em) solid rgba(255,255,255,.35);border-radius:50%;background:#00000059;color:#fffffff2;cursor:pointer;pointer-events:auto;flex-shrink:0;font-size:inherit;line-height:0;box-sizing:border-box;transition:background .2s ease,border-color .2s ease,color .2s ease}.canvas-instructions-overlay__close-glyph,.canvas-instructions-overlay__close svg{display:block;width:1.1em;height:1.1em;flex-shrink:0;stroke:currentColor;stroke-width:.12em}.canvas-instructions-overlay__close:hover{background:#00000080;border-color:#ffffff8c;color:#fff}.canvas-instructions-overlay__close:focus-visible{outline:max(2px,.1em) solid rgba(100,200,255,.8);outline-offset:max(2px,.1em)}.canvas-instructions-overlay .download-content{min-width:0;max-width:100%;box-sizing:border-box;animation:canvas-instructions-content-in .6s cubic-bezier(.25,.46,.45,.94) forwards}.canvas-instructions-overlay .download-instructions-wrap{min-width:0;max-width:min(760px,100%);box-sizing:border-box}.canvas-instructions-overlay .download-instructions-heading,.canvas-instructions-overlay .download-tutorial__column-title,.canvas-instructions-overlay .download-tutorial__column-desc{text-shadow:.1em .1em .2em rgba(0,0,0,.45)}.canvas-instructions-overlay .download-tutorial__joystick-icon,.canvas-instructions-overlay .download-tutorial__tap-icon,.canvas-instructions-overlay .download-tutorial__drag-icon,.canvas-instructions-overlay .download-tutorial__keyboard-lucide,.canvas-instructions-overlay .download-tutorial__key{filter:drop-shadow(.12em .12em .2em rgba(0,0,0,.45))}.canvas-instructions-overlay.canvas-instructions-overlay--exiting{animation:canvas-instructions-fade-out .4s cubic-bezier(.25,.46,.45,.94) forwards}.canvas-instructions-overlay.canvas-instructions-overlay--exiting .download-content{animation:canvas-instructions-content-out .4s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes canvas-instructions-fade-in{0%{opacity:0}to{opacity:1}}@keyframes canvas-instructions-fade-out{0%{opacity:1}to{opacity:0}}@keyframes canvas-instructions-content-in{0%{transform:translateY(.5rem)}to{transform:translateY(0)}}@keyframes canvas-instructions-content-out{0%{transform:translateY(0)}to{transform:translateY(.5rem)}}@media(min-width:601px)and (max-height:500px)and (orientation:landscape){.canvas-instructions-overlay .download-tutorial--cols-3 .download-tutorial__column{align-items:center}}.error-screen{position:absolute;inset:0;background:#0d0d0d;display:flex;align-items:center;justify-content:center;color:#fff}.error-box{text-align:center;padding:2rem 2.5rem;border-radius:1rem}.error-title{font-size:1.375rem;font-weight:600;margin-bottom:.5rem}.error-message{font-size:.9375rem;opacity:.75;margin-bottom:1.5rem;max-width:23.75rem}.tooltip-target{display:inline-flex}.tooltip{position:fixed;z-index:1000;background:var(--bg-primary);color:var(--text-primary);border:none;font-size:.75rem;line-height:1.4;font-weight:500;padding:.5rem .75rem;border-radius:.5rem;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .12s ease-out,transform .12s ease-out}.tooltip--visible{opacity:1;transform:translateY(0)}@media(pointer:coarse){.tooltip{display:none}}.animation-controls{position:fixed;bottom:0;left:0;width:100%;z-index:100;display:flex;justify-content:center;pointer-events:none}.controls-row{pointer-events:auto;display:flex;flex-direction:column;align-items:stretch;width:100%;gap:2px;padding:0 1.25rem 1.25rem;opacity:1;transform:translateY(0);transition:opacity .35s ease,transform .35s ease}.slider-wrapper{width:100%;display:flex}.controls-actions{width:100%;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.controls-actions__playback{display:flex;align-items:center;flex-shrink:0}.controls-actions__trailing{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.controls-pill-panel{display:inline-flex;align-items:center;gap:4px;background:var(--bg-primary);border-radius:999px;padding:4px;height:3.5rem;box-sizing:border-box}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:transparent;border-radius:50%;width:2.75rem;height:2.75rem;font-size:1rem;color:var(--accent-primary);cursor:pointer;border:none}.icon-button svg{width:1.5rem;height:1.5rem;filter:drop-shadow(0 0 1px rgba(0,0,0,1));color:var(--accent-primary)}.icon-button:hover{background:#ffffff1a}.icon-button.is-active,.icon-button.is-active:hover{background:#ffffff26}.icon-button.is-active svg{stroke-width:2}.render-mode-option,.navigation-mode-option,.chrome-panel-option{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;width:2.75rem;height:2.75rem;font-size:1rem;cursor:pointer;color:var(--accent-primary)}.render-mode-option svg,.navigation-mode-option svg,.navigation-mode-option .tutorial-raster-icon,.chrome-panel-option svg{width:1.5rem;height:1.5rem;filter:drop-shadow(0 0 1px rgba(0,0,0,1));color:inherit}.render-mode-option:hover,.navigation-mode-option:hover,.chrome-panel-option:hover{background:#ffffff1a}.chrome-panel-option.is-active,.chrome-panel-option.is-active:hover{background:#ffffff26}.chrome-panel-option.is-active svg{stroke-width:3}.render-mode-option.active,.navigation-mode-option.active{background:#ffffff26}.render-mode-option.active svg,.navigation-mode-option.active svg{stroke-width:3}.animation-controls.is-hidden .controls-row{opacity:0;pointer-events:none;transform:translateY(.75rem)}.play-pause-button{background:var(--bg-primary);border:none;border-radius:50%;padding:0;width:3.5rem;height:3.5rem;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer}.play-pause-button svg{flex-shrink:0;width:1.5rem;height:1.5rem;color:var(--accent-primary);filter:drop-shadow(0 0 1px rgba(0,0,0,1));fill:var(--accent-primary)}.progress-slider{width:100%;-webkit-appearance:none;appearance:none;height:2.5rem;background:transparent;border-radius:999px;outline:none;cursor:pointer;padding:0;margin:0}.progress-slider::-moz-range-track{width:100%;height:4px;background:linear-gradient(to right,var(--accent-primary) 0%,var(--accent-primary) var(--progress, 0%),rgb(40,40,40,.6) var(--progress, 0%),rgb(40,40,40,.6) 100%);border-radius:999px;border:none}.progress-slider::-webkit-slider-runnable-track{width:100%;height:.25rem;background:linear-gradient(to right,var(--accent-primary) 0%,var(--accent-primary) var(--progress, 0%),rgb(40,40,40,.6) var(--progress, 0%),rgb(40,40,40,.6) 100%);border-radius:999px;border:none}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:none;cursor:pointer}.progress-slider::-webkit-slider-thumb{position:relative;z-index:1;margin-top:-5px}@media(max-width:600px),(max-height:600px)and (orientation:landscape){.controls-row{padding:0 10px 10px;gap:2px}.controls-actions__trailing{gap:6px}.progress-slider{height:1.25rem}.play-pause-button{font-size:.8125rem;height:2.5rem;width:2.5rem}.play-pause-button svg{width:1.125rem;height:1.125rem}.icon-button{font-size:.8125rem;width:2.125rem;height:2.125rem}.icon-button svg{width:1.125rem;height:1.125rem}.controls-pill-panel{gap:2px;padding:2px;height:2.5rem}.render-mode-option,.navigation-mode-option,.chrome-panel-option{width:2.125rem;height:2.125rem;font-size:.8125rem}.render-mode-option svg,.navigation-mode-option svg,.navigation-mode-option .tutorial-raster-icon,.chrome-panel-option svg{width:1.125rem;height:1.125rem}}.react-joystick{position:relative;border-radius:50%;background:#f1f1f1;box-shadow:0 0 5px #d5dadb inset;border:1px solid #fff;text-align:initial}.react-joystick.react-joystick-disabled{opacity:.5;cursor:not-allowed}.react-joystick .arrows-wrapper{position:absolute;width:100%;height:100%;top:0;left:0}.react-joystick .arrows-wrapper .controller-arrow{display:inline-flex;position:absolute}.react-joystick .arrows-wrapper .arrow-up{display:inline-flex;position:absolute;top:0;left:50%;transform:translate(-50%,50%)}.react-joystick .arrows-wrapper .arrow-down{display:inline-flex;position:absolute;bottom:0;left:50%;transform:translate(-50%,-50%)}.react-joystick .arrows-wrapper .arrow-left{display:inline-flex;position:absolute;left:0;top:50%;transform:translate(50%,-50%)}.react-joystick .arrows-wrapper .arrow-right{display:inline-flex;position:absolute;right:0;top:50%;transform:translate(-50%,-50%)}.react-joystick .react-joystick-controller{background:linear-gradient(to bottom,#fff,#eaf4fe);border-radius:50%;box-shadow:0 0 16px #d5dadb;border:1px solid #d9dde4;box-sizing:border-box}.react-joystick .controller-wrapper{display:inline-flex}.react-joystick-ghost-area{position:relative}.react-joystick-ghost-area .react-joystick-wrapper{position:absolute;width:0;height:0}.react-joystick-ghost-area .react-joystick-wrapper .react-joystick{transform:translate(-50%,-50%)}.react-joystick-ghost-area .react-joystick-wrapper .react-joystick.ghost{visibility:hidden}.react-joystick-ghost-area .react-joystick-wrapper .react-joystick.ghost-active{visibility:visible}.mobile-joystick-wrapper{position:absolute;bottom:80px;left:50%;transform:translate(-50%);z-index:1000;pointer-events:auto;touch-action:none;display:flex;align-items:center;gap:16px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.mobile-joystick{background:var(--bg-primary);border:none;box-shadow:none}.mobile-joystick-controller{background:var(--accent-primary)!important;box-shadow:none!important;border:none!important}.mobile-joystick path{fill:var(--accent-primary)!important}.strafe-button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:none;background:var(--bg-primary);color:var(--accent-primary);cursor:pointer;flex-shrink:0;padding:0;touch-action:none}@media(orientation:portrait){.mobile-joystick-container{left:50%;transform:translate(-50%)}}@media(orientation:landscape){.mobile-joystick-wrapper{bottom:80px;left:12px;transform:none}}.video-player{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;display:flex;justify-content:center;align-items:center;overflow:hidden;opacity:1;pointer-events:auto;transition:opacity .5s ease-in-out}.video-player--hidden{opacity:0;pointer-events:none}.video-player__video{position:absolute;width:100%;object-fit:contain;z-index:10;pointer-events:auto}.video-player__buffering{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:20;pointer-events:none}.video-player__spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.logo-container{position:relative;top:-16px;right:-16px;z-index:10;flex-shrink:0;pointer-events:auto}.logo{height:5rem;width:auto;cursor:pointer}.logo:hover{opacity:.8}@media(max-width:480px){.logo-container{top:-10px;right:-10px}.logo{height:3.5rem}}.top-bar{position:fixed;top:0;left:0;right:0;z-index:99;display:flex;justify-content:space-between;padding:1.25rem;pointer-events:none;gap:1rem}.top-bar__name{font-size:1.25rem;font-weight:500;color:#fffffff2;line-height:1.2;text-shadow:2px 2px 4px rgba(0,0,0,.45);flex-shrink:1;word-wrap:break-word;overflow-wrap:break-word}@media(max-width:480px){.top-bar{padding:.5rem;gap:.5rem}.top-bar__name{font-size:1rem}}.video-fallback{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:8px;background:var(--popup-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border-primary);border-radius:8px;padding:10px 14px;font-size:13px;white-space:nowrap;animation:videoFallbackIn .25s ease-out}@keyframes videoFallbackIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.video-fallback__icon{color:var(--accent-primary, #f59e0b);flex-shrink:0}.video-fallback__message{color:var(--text-primary)}.video-fallback__close{background:transparent;border:none;color:var(--text-quaternary);font-size:18px;line-height:1;cursor:pointer;padding:0 0 0 4px;display:flex;align-items:center;transition:color .15s ease}.video-fallback__close:hover{color:var(--text-primary)}.tutorial-banner{display:inline-flex;align-items:center;gap:clamp(.55rem,.2rem + 1.15vmin,.8rem);width:auto;max-width:min(100%,40rem);margin:0;padding:.72rem .85rem .72rem 1rem;min-height:3.2rem;box-sizing:border-box;border-radius:9999px;background:var(--bg-primary);color:var(--text-primary);pointer-events:auto;-webkit-user-select:none;user-select:none;min-width:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tutorial-banner--exiting{animation:tutorial-banner-out .35s cubic-bezier(.25,.46,.45,.94) forwards}.tutorial-banner__icon-wrap{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.65rem;height:2.65rem;color:#ffffffe0}.tutorial-banner__icon{display:block;width:100%;height:100%;object-fit:contain}.tutorial-banner__text{flex:0 1 auto;min-width:0;margin:0;font-size:clamp(.875rem,.78rem + .38vmin,.97rem);font-weight:500;line-height:1.42;letter-spacing:-.01em}.tutorial-banner__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.45rem;height:2.45rem;margin:0;padding:0;border:none;border-radius:50%;background:transparent;color:#ffffffa6;cursor:pointer;transition:background .15s ease,color .15s ease}.tutorial-banner__close:hover{background:#ffffff14;color:#fffffff2}.tutorial-banner__close:focus-visible{outline:2px solid rgba(120,190,255,.75);outline-offset:1px}.tutorial-banner__close-glyph{width:1.05rem;height:1.05rem}.tutorial-banner__close-spacer{width:2.45rem;flex-shrink:0}@keyframes tutorial-banner-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(.35rem)}}.viewer-tutorial-step-shell{width:100%;display:flex;justify-content:center;opacity:1;transform:translateY(0);transition:opacity .32s ease,transform .36s cubic-bezier(.25,.46,.45,.94);will-change:opacity,transform}.viewer-tutorial-step-shell--leave{opacity:0;transform:translateY(-10px)}.viewer-tutorial-step-shell--enter{opacity:0;transform:translateY(14px)}.viewer-tutorial-step-shell--idle{opacity:1;transform:translateY(0)}.viewer{width:100%;height:100%}.viewer-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:2;opacity:1;transition:opacity 1s ease}.viewer-overlay--faded{opacity:0}.viewer-instructions-overlay{position:absolute;inset:0;z-index:999;pointer-events:none}.viewer-tutorial-dock{position:absolute;left:50%;top:max(20%,env(safe-area-inset-top,0px) + 1.25rem);transform:translate(-50%,-50%);z-index:18;width:calc(100% - 2rem);max-width:calc(100vw - 2rem);pointer-events:none}.viewer-tutorial-dock .tutorial-banner{pointer-events:auto}
