*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}html,body{overscroll-behavior:none}body{background:#050507;color:#fff;font-family:var(--font-text);overflow:hidden}html{-webkit-tap-highlight-color:transparent}.app{position:relative;height:100%}.app__scene[data-hidden=true]{visibility:hidden;pointer-events:none}.scene-canvas{position:fixed!important;top:0;right:0;bottom:0;left:0;z-index:10;display:block;touch-action:none}.warp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#000;opacity:0;pointer-events:none}.case-panel{position:fixed;top:50%;right:20vw;transform:translateY(calc(-50% + 8px));width:min(420px,38vw);z-index:35;padding:2.25rem;display:flex;flex-direction:column;max-height:calc(100dvh - 2 * (var(--header-line-top) + var(--header-control) + 1rem));background:var(--glass-film),var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;-webkit-backdrop-filter:var(--glass-blur-card);backdrop-filter:var(--glass-blur-card);box-shadow:var(--glass-shadow);color:var(--text-primary);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .34s ease-out,transform .34s ease-out,visibility 0s linear .34s}.case-panel.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%);transition:opacity .22s ease,transform .22s ease}.case-panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.case-panel__eyebrow{font-size:.68rem;letter-spacing:.16em;color:var(--text-muted);text-transform:uppercase;padding-left:.625rem;border-left:2px solid var(--rule-strong)}.case-panel__close{background:none;border:0;color:#ffffff9e;width:34px;height:34px;cursor:pointer;border-radius:10px;font-size:.9rem;line-height:1;transition:background .15s ease,color .15s ease}@media (hover: hover){.case-panel__close:hover{background:#ffffff14;color:#fff}}.case-panel__close:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.case-panel__title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .35rem;min-height:1.4em}.case-panel__meta{font-size:.72rem;letter-spacing:.04em;color:#ffffff73;margin:0 0 1.5rem;min-height:1.2em}.case-panel__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:.75rem;margin-bottom:1.5rem}.case-panel{--case-brand: #ffffff}.case-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:var(--glass-highlight);opacity:.7}.case-panel__metric{min-width:0;overflow-wrap:anywhere;padding:.875rem 1rem;background:#04070b73;border:1px solid rgba(220,230,245,.08);box-shadow:inset 0 1px 1px #0003;border-top:2px solid var(--case-brand);border-radius:10px}.case-panel__metric-label{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;opacity:.5}.case-panel__metric-value{margin-top:.35rem;font-size:1.25rem;font-weight:600}.case-panel__description{font-size:.85rem;line-height:1.6;color:#ffffffb3;margin:0 0 1rem;min-height:4.8em}.case-panel__details{list-style:none;margin:0 0 1.5rem;padding:0;min-height:7em;font-size:.78rem;line-height:1.55;color:#ffffff8c}.case-panel__details li{padding-left:.9rem;position:relative;margin-bottom:.3rem}.case-panel__details li:before{content:"";position:absolute;left:0;top:.55em;width:4px;height:4px;border-radius:50%;background:var(--case-brand)}.case-panel__graph{height:158px;padding:.875rem 1rem;background:#04070b73;border:1px solid rgba(220,230,245,.08);box-shadow:inset 0 1px 1px #0003;border-radius:10px}.case-panel__next{display:inline-flex;flex-wrap:wrap;align-items:baseline;column-gap:.35em;min-height:44px;margin-top:1.1rem;padding:.75rem 0;border:0;background:none;font:inherit;font-size:.85rem;line-height:1.4;text-align:left;color:var(--text-secondary);cursor:pointer}.case-panel__next-action{font-weight:500;color:var(--text-primary);transition:color .16s ease}.case-panel__next-arrow{display:inline-block;transition:transform .2s cubic-bezier(.22,1,.36,1)}@media (hover: hover){.case-panel__next:hover .case-panel__next-action{color:#fff}.case-panel__next:hover .case-panel__next-arrow{transform:translate(3px)}}.case-panel__next:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){.case-panel__next-arrow{transition:none}}.case-chart{margin:0;color:#fff}.case-chart__title{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:#ffffff73;margin-bottom:.55rem}.case-chart__svg{display:block;width:100%;height:96px}.case-chart__grid line{stroke:#ffffff14;stroke-width:1}.case-chart__stroke{fill:none;stroke:var(--case-brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.case-chart__fill{fill:color-mix(in srgb,var(--case-brand) 22%,transparent);stroke:none}.case-chart__dot{fill:var(--case-brand)}.case-chart__bar{fill:color-mix(in srgb,var(--case-brand) 45%,transparent)}.case-chart__bar.is-max{fill:var(--case-brand)}.case-chart__tick{fill:#fff6;font-size:10px;letter-spacing:.05em}.case-chart__donut{display:flex;align-items:center;gap:1rem}.case-chart__svg--donut{width:96px;flex:none}.case-chart__segment{fill:none;stroke:var(--case-brand);stroke-width:12}.case-chart__legend{list-style:none;margin:0;padding:0;font-size:.7rem;color:#ffffffa6;flex:1}.case-chart__legend li{display:flex;align-items:center;gap:.45rem;margin-bottom:.3rem}.case-chart__swatch{width:8px;height:8px;border-radius:2px;background:var(--case-brand);flex:none}.case-chart__legend-value{margin-left:auto;color:#ffffffd9;font-weight:600}.case-panel__handle{display:none}.case-panel__body{min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-right:-1.9rem;padding-right:1.9rem}@media (max-width: 767px),(max-height: 500px){.case-panel{top:auto;right:0;bottom:var(--case-sheet-bottom, 0px);left:0;width:auto;display:flex;flex-direction:column;height:var(--case-sheet-compact, 0px);max-height:var(--case-sheet-maximum, 0px);overflow:hidden;padding:0 1.5rem 1.5rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom));border-radius:14px 14px 0 0;border-left:none;border-right:none;border-bottom:none;background:var(--glass-film),#080c12e0;transform:translateY(100%);transition:opacity .34s ease-out,transform .34s ease-out,height .32s ease,visibility 0s linear .34s}.case-panel.is-visible{transform:translateY(0);transition:opacity .22s ease,transform .22s ease,height .32s ease}.case-panel[data-stop=expanded]{height:var(--case-sheet-maximum, 0px)}.case-panel[data-sheet-waiting]{opacity:0;visibility:hidden;pointer-events:none}.case-panel[data-sheet-dragging]{transition:none}.case-panel__handle,.case-panel__header{touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize}.case-panel__handle{display:block;flex:0 0 auto;width:calc(100% + 3rem);height:44px;margin:0 -1.5rem;border:0;background:transparent;cursor:pointer;position:relative}.case-panel__handle:before{content:"";position:absolute;left:50%;top:50%;width:36px;height:4px;margin-left:-18px;margin-top:-2px;border-radius:2px;background:#ffffff47}.case-panel__handle:focus-visible{outline:2px solid rgba(120,170,255,.9);outline-offset:-4px;border-radius:8px}.case-panel__header{flex:0 0 auto;margin-bottom:1rem}.case-panel__close{width:45px;height:45px;border-radius:13px;font-size:1.2rem}.case-panel__metrics{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))}.case-panel__body{flex:1 1 auto;min-height:0;overflow-y:auto;margin-right:-1.5rem;padding-right:1.5rem;touch-action:pan-y;overscroll-behavior:contain}.case-panel__body:focus:not(:focus-visible){outline:none}.case-panel__body:focus-visible{outline:2px solid rgba(120,170,255,.9);outline-offset:-2px}@media (pointer: coarse){.case-panel__body:focus,.case-panel__body:focus-visible{outline:none}}.case-panel__description,.case-panel__details{min-height:0}}@media (prefers-reduced-motion: reduce){.case-panel{transition-duration:.01ms;transition-delay:0ms}}.debug-overlay{position:fixed;top:80px;right:16px;z-index:100;display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:12px}.debug-toggle,.debug-actions button,.debug-phases button{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:6px 12px;cursor:pointer;font-size:12px}.debug-toggle:hover,.debug-actions button:hover,.debug-phases button:hover{background:#ffffff2e}.debug-panel{background:#0a0a0eeb;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:14px;width:260px;max-height:84vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.debug-section{color:#ffffff73;text-transform:uppercase;letter-spacing:.12em;font-size:10px;margin-top:6px}.debug-control{display:flex;flex-direction:column;gap:4px;color:#fffc}.debug-control input{width:100%}.debug-actions,.debug-phases{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.debug-phases button{padding:4px 8px;font-size:11px}.debug-phases button[data-active=true]{background:#78b4ff59;border-color:#a0d2ffb3}.has-custom-cursor,.has-custom-cursor *{cursor:none!important}.cursor-layer{position:fixed;top:0;left:0;z-index:999;pointer-events:none;opacity:0;transition:opacity .2s ease}.cursor-layer.is-visible{opacity:1}.cursor-lead,.cursor-follow{position:fixed;top:0;left:0;will-change:transform}.cursor-hand{position:absolute;top:calc(var(--hy) * -1);left:calc(var(--hx) * -1);width:24px;height:24px;fill:#fff;fill-rule:nonzero;stroke:#000;stroke-width:.6px;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45));transition:opacity .12s ease,transform .12s ease}.cursor-hand--open{--hx: 12px;--hy: 6px}.cursor-hand--point{--hx: 9.9px;--hy: 3px}.cursor-hand--fist{--hx: 12px;--hy: 7.5px}.cursor-hand--fist,.cursor-hand--point{opacity:0;transform:scale(.85)}.cursor-layer[data-state=pointer]:not([data-pressed]) .cursor-hand--open{opacity:0;transform:scale(.85)}.cursor-layer[data-state=pointer]:not([data-pressed]) .cursor-hand--point{opacity:1;transform:scale(1)}.cursor-layer[data-pressed] .cursor-hand--open,.cursor-layer[data-state=grabbing] .cursor-hand--open{opacity:0;transform:scale(.85)}.cursor-layer[data-pressed] .cursor-hand--fist,.cursor-layer[data-state=grabbing] .cursor-hand--fist{opacity:1;transform:scale(.92)}.cursor-follow-core{width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;border:1.5px solid #1c67ff;transition:transform .25s ease,background-color .25s ease}.cursor-layer[data-state=pointer] .cursor-follow-core{transform:scale(1.5);background-color:#1c67ff1f}.cursor-layer[data-pressed] .cursor-follow-core,.cursor-layer[data-state=grabbing] .cursor-follow-core{transform:scale(.7);background-color:#1c67ff40}.nav{position:fixed;z-index:45;right:0;top:50%;pointer-events:none}.nav-control{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;background:transparent;color:inherit;pointer-events:auto}.nav-control:focus-visible{width:auto;height:auto;right:16px;top:50%;transform:translateY(-50%);clip-path:none;padding:10px 16px;min-height:44px;border-radius:8px;background:#050507eb;color:#fff;font-family:inherit;font-size:14px;letter-spacing:.02em;outline:2px solid var(--focus-ring);outline-offset:2px}.nav-control:focus-visible:after{content:attr(aria-label)}.scene-hint{--hint-float: 5px;--hint-floor: 36px;position:fixed;z-index:44;left:0;right:0;bottom:calc(var(--hint-floor) + var(--hint-float) + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:.615em;padding:0 24px;font-size:clamp(14px,3.6vw,16px);font-weight:500;letter-spacing:.055em;line-height:1.15;text-align:center;color:#ffffffd9;opacity:0;visibility:hidden;transition:opacity .9s ease-in,visibility 0s linear .9s;animation:earth-hint-float 6s ease-in-out infinite;pointer-events:none;-webkit-user-select:none;user-select:none}.scene-hint[data-visible]{opacity:1;visibility:visible;transition:opacity 2s ease-out,visibility 0s}.scene-hint__glyph{display:block}.scene-hint__glyph--mouse{width:1.25em;height:3.5417em}.scene-hint__glyph--pinch{width:2.5em;height:2.5em}.scene-hint__sentence{text-wrap:balance}.scene-hint__sentence[data-input=coarse],.scene-hint__glyph--pinch{display:none}@media (pointer: coarse){.scene-hint__sentence[data-input=fine],.scene-hint__glyph--mouse{display:none}.scene-hint__sentence[data-input=coarse],.scene-hint__glyph--pinch{display:block}}.scene-hint__part{transform-box:fill-box;transform-origin:center}.scene-hint[data-visible] .scene-hint__part--wheel{animation:earth-hint-wheel-forward 1.4s linear infinite}.scene-hint[data-visible] .scene-hint__part--chase{animation:nav-hint-chase 1.4s ease-in-out infinite;animation-delay:-1s}.scene-hint[data-visible] .scene-hint__chevrons .scene-hint__part--chase:nth-child(2){animation-delay:-.84s}.scene-hint__part--finger-a{transform-origin:100% 100%}.scene-hint__part--finger-b{transform-origin:0 100%}.scene-hint[data-visible] .scene-hint__part--finger-a{animation:earth-hint-pinch-a 1.8s ease-out infinite}.scene-hint[data-visible] .scene-hint__part--finger-b{animation:earth-hint-pinch-b 1.8s ease-out infinite}@keyframes earth-hint-wheel-forward{0%{transform:translateY(9px);opacity:0}18%{transform:translateY(7px);opacity:1}70%{transform:translateY(-1px);opacity:1}to{transform:translateY(-2px);opacity:0}}@keyframes nav-hint-chase{0%,to{opacity:.2}40%{opacity:1}}@keyframes earth-hint-pinch-a{0%{transform:rotate(6deg);opacity:0}14%{transform:rotate(6deg);opacity:1}62%{transform:rotate(-14deg);opacity:1}86%{transform:rotate(-14deg);opacity:1}to{transform:rotate(-14deg);opacity:0}}@keyframes earth-hint-pinch-b{0%{transform:rotate(-6deg);opacity:0}14%{transform:rotate(-6deg);opacity:1}62%{transform:rotate(14deg);opacity:1}86%{transform:rotate(14deg);opacity:1}to{transform:rotate(14deg);opacity:0}}@keyframes earth-hint-float{0%,to{transform:translateY(calc(var(--hint-float) * -1))}50%{transform:translateY(var(--hint-float))}}.scene-hint[data-gesture=out][data-visible] .scene-hint__part--wheel{animation-name:scene-hint-wheel-backward}.scene-hint[data-gesture=out][data-visible] .scene-hint__part--finger-a{animation-name:scene-hint-close-a}.scene-hint[data-gesture=out][data-visible] .scene-hint__part--finger-b{animation-name:scene-hint-close-b}@keyframes scene-hint-wheel-backward{0%{transform:translateY(-9px);opacity:0}18%{transform:translateY(-7px);opacity:1}70%{transform:translateY(1px);opacity:1}to{transform:translateY(2px);opacity:0}}@keyframes scene-hint-close-a{0%{transform:rotate(-14deg);opacity:0}14%{transform:rotate(-14deg);opacity:1}62%{transform:rotate(6deg);opacity:1}86%{transform:rotate(6deg);opacity:1}to{transform:rotate(6deg);opacity:0}}@keyframes scene-hint-close-b{0%{transform:rotate(14deg);opacity:0}14%{transform:rotate(14deg);opacity:1}62%{transform:rotate(-6deg);opacity:1}86%{transform:rotate(-6deg);opacity:1}to{transform:rotate(-6deg);opacity:0}}@media (max-width: 767px){.scene-hint{--hint-floor: 60px}.app__scene[data-menu-open] .scene-hint{opacity:0;transition:opacity .12s ease}}@media (prefers-reduced-motion: reduce){.scene-hint,.scene-hint[data-visible] .scene-hint__part{animation:none}}@media (pointer: coarse){.case-panel__close{position:relative}.case-panel__close:after{content:"";position:absolute;top:50%;left:50%;min-width:44px;min-height:44px;width:100%;height:100%;transform:translate(-50%,-50%)}}.site-footer{position:fixed;z-index:42;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:flex-end;gap:1rem;font-size:.75rem;color:#ffffff8c;pointer-events:none;animation:site-footer-in .48s ease .12s backwards}@keyframes site-footer-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.site-footer__copyright{letter-spacing:.04em}.site-footer[data-tone=light]{color:#fffc;text-shadow:0 1px 3px rgba(0,0,0,.45)}@media (prefers-reduced-motion: reduce){.site-footer{animation:none}}.context-lost{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2rem;padding-top:max(2rem,env(safe-area-inset-top));padding-bottom:max(2rem,env(safe-area-inset-bottom));text-align:center;background:#050507}.context-lost__title{font-family:var(--font-display);font-size:1.25rem;font-weight:500;letter-spacing:.02em}.context-lost__body{max-width:34ch;font-size:.95rem;line-height:1.6;color:#ffffffa8}.context-lost__action{min-height:44px;padding:0 1.5rem;font:inherit;font-size:.9rem;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.24);border-radius:999px;cursor:pointer}@media (hover: hover){.context-lost__action:hover{background:#ffffff24}}#earth-camera-readout{position:fixed;top:0;left:0;z-index:40;padding:8px 10px;margin:8px;background:#0a0e14c7;color:#b9f5c9;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;border-radius:6px;border:1px solid rgba(255,255,255,.06);white-space:pre;min-width:220px;pointer-events:none;-webkit-user-select:text;user-select:text}#earth-camera-readout.hidden{display:none}
