:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eaf4f6;font-synthesis:none;text-rendering:optimizelegibility;--bg:#061017;--surface:#0b1821;--surface-raised:#10212b;--surface-soft:#122630;--line:#203944;--line-bright:#315564;--text:#eaf4f6;--muted:#8ea6b1;--cyan:#44d7ef;--orange:#ff9b55;--green:#6ee7b7;--amber:#f5c75f;--red:#fb7185;--shadow:0 20px 55px #00000047;background:#061017;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{background:radial-gradient(circle at 75% 0%, #102b36 0, var(--bg) 35rem);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,select{color:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}h1,h2{letter-spacing:-.035em}h2{margin-bottom:0;font-size:1.16rem}.app-shell{grid-template-columns:350px minmax(0,1fr);min-height:100vh;display:grid}.control-drawer{z-index:20;position:relative}.control-panel{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#07131bf7;flex-direction:column;gap:13px;height:100vh;padding:22px 18px 18px;display:flex;position:sticky;top:0;box-shadow:12px 0 40px #00000024}.control-panel__title-row,.topbar,.analysis-header,.plot-card__header,.section-heading,.parameter-slider__header,.scene-toolbar,.app-footer{justify-content:space-between;align-items:center;gap:14px;display:flex}.control-panel__title-row h2{font-size:1.4rem}.eyebrow{color:var(--cyan);letter-spacing:.15em;text-transform:uppercase;margin:0 0 4px;font-size:.68rem;font-weight:750}.control-section,.control-group{border:1px solid var(--line);background:#0f222cb3;border-radius:13px}.control-section{padding:12px}.section-heading{color:#d7e7eb;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-size:.78rem;font-weight:700}.section-heading span{color:var(--cyan);font-variant-numeric:tabular-nums}.playback-buttons,.preset-grid,.toolbar-cluster{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.playback-buttons select{flex:1;min-width:62px}.button,.chip,select{border:1px solid var(--line-bright);background:#112630;border-radius:9px;padding:7px 11px;font-size:.78rem;transition:border-color .15s,background .15s,transform .15s}.button:hover,.chip:hover,select:hover{background:#173440;border-color:#4b7a8c}.button:active,.chip:active{transform:translateY(1px)}.button--primary,.chip.is-active{color:#f5fdff;background:linear-gradient(135deg,#087f94,#11687b);border-color:#2da8bd}.preset-grid .chip{flex:1;min-width:70px}.timeline{width:100%;margin-top:11px}.warning-note{color:#ffe49a;background:#f5c75f14;border:1px solid #f5c75f47;border-radius:8px;margin-top:10px;padding:9px 10px;font-size:.72rem;line-height:1.45}.control-scroll{scrollbar-color:#365763 transparent;flex-direction:column;gap:9px;min-height:0;padding:1px 4px 18px 0;display:flex;overflow:auto}.control-group{flex:none;overflow:clip}.control-group summary{cursor:pointer;color:#d9e8ec;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;font-size:.8rem;font-weight:700;list-style:none;display:flex}.control-group summary::-webkit-details-marker{display:none}.control-group summary:after{content:"+";color:var(--cyan);font-size:1rem}.control-group[open] summary:after{content:"−"}.control-group summary small{color:var(--muted);margin-left:auto;font-weight:500}.control-group__body{border-top:1px solid #2c49548c;padding:4px 12px 13px}.parameter-slider{padding:9px 0 5px;display:block}.parameter-slider+.parameter-slider{border-top:1px solid #29434d61}.parameter-slider__header{color:#b9cbd1;margin-bottom:7px;font-size:.74rem}.parameter-slider__header output{color:#f2f8fa;font-variant-numeric:tabular-nums;font-weight:650}.parameter-slider__header output small{color:var(--muted);font-weight:500}.parameter-slider input[type=range],.timeline,.scene-playback-mobile input[type=range]{appearance:none;background:linear-gradient(90deg, var(--cyan) 0 var(--slider-progress,0%), #29434e var(--slider-progress,0%) 100%);border-radius:999px;outline:none;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:#eaf8fb;border:3px solid #178ba0;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 3px #44d7ef1a}input[type=range]::-moz-range-thumb{background:#eaf8fb;border:3px solid #178ba0;border-radius:50%;width:10px;height:10px}.parameter-slider input{width:100%}.parameter-slider__limits{color:#6e8994;justify-content:space-between;margin-top:5px;font-size:.59rem;display:flex}.parameter-slider--compact .parameter-slider__header{margin-bottom:5px}.prose-small{color:#9fb4bc;font-size:.72rem;line-height:1.5}.prose-small p{margin:8px 0}.main-content{min-width:0;padding:0 28px 35px}.topbar{border-bottom:1px solid #2c475199;min-height:92px}.brand-mark{border:1px solid var(--line-bright);background:linear-gradient(145deg,#12333e,#091820);border-radius:9px;flex:none;width:35px;height:35px;position:relative;overflow:hidden}.brand-mark:before,.brand-mark:after,.brand-mark span{content:"";background:var(--cyan);width:2px;height:46px;position:absolute;top:-8px;transform:rotate(42deg)}.brand-mark:before{opacity:.4;left:8px}.brand-mark span{left:17px}.brand-mark:after{opacity:.55;left:26px}.topbar__title{margin-right:auto}.topbar h1{margin:0;font-size:clamp(1.25rem,2.4vw,1.9rem);font-weight:650}.topbar h1 em{color:var(--cyan);font-style:normal;font-weight:450}.model-status{color:#cce1e5;grid-template-columns:auto 1fr;align-items:center;gap:0 7px;font-size:.73rem;display:grid}.model-status i{background:var(--green);border-radius:50%;grid-row:1/3;width:8px;height:8px;box-shadow:0 0 10px #6ee7b7b3}.model-status small{color:var(--muted)}.intro-strip{justify-content:space-between;align-items:center;gap:20px;padding:18px 0 14px;display:flex}.intro-strip p{color:#a4bac2;max-width:760px;margin:0;font-size:.8rem;line-height:1.55}.model-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.model-badges span{border:1px solid var(--line);color:#9fc0ca;background:#0f212bb3;border-radius:6px;padding:5px 8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.65rem}.metric-grid{grid-template-columns:repeat(6,minmax(125px,1fr));gap:9px;margin-bottom:14px;display:grid}.metric-card{border:1px solid var(--line);background:linear-gradient(145deg,#10232df0,#0a1820eb);border-radius:11px;min-width:0;padding:12px 13px;box-shadow:0 9px 24px #0000001c}.metric-card--featured{background:linear-gradient(145deg,#3e261ac7,#111d23f0);border-color:#ff9b5575}.metric-card>span:first-child{color:var(--muted);text-transform:uppercase;letter-spacing:.055em;white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:.65rem;display:block;overflow:hidden}.metric-card strong{color:#f1f8fa;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.08rem;display:block}.metric-card strong small{color:#91abb5;font-size:.62rem;font-weight:500}.metric-card>small{color:#718c97;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:.62rem;display:block;overflow:hidden}.metric-delta{margin-top:3px;font-size:.65rem;font-weight:700;display:block}.metric-delta.positive{color:var(--orange)}.metric-delta.negative{color:var(--cyan)}.metric-delta.neutral{color:var(--muted)}.scene-card,.analysis-section{border:1px solid var(--line);box-shadow:var(--shadow);background:#0a1820e6;border-radius:15px;overflow:hidden}.scene-toolbar{border-bottom:1px solid var(--line);background:#0f222ce0;flex-wrap:wrap;min-height:68px;padding:11px 15px}.scene-toolbar>div:first-child{margin-right:auto}.scene-toolbar .eyebrow{margin-bottom:2px}.toolbar-cluster .chip{text-transform:capitalize;padding:5px 9px;font-size:.68rem}.scene-toggles label{color:#aac0c8;cursor:pointer;align-items:center;gap:4px;font-size:.67rem;display:flex}input[type=checkbox]{accent-color:#18a5bd}.scene-viewport{background:#08131b;height:clamp(430px,54vw,680px);min-height:430px;position:relative}.scene-viewport canvas{display:block}.module-loader,.analysis-placeholder{color:var(--muted);letter-spacing:.04em;place-items:center;font-size:.78rem;display:grid}.module-loader{position:absolute;inset:0}.analysis-placeholder{border:1px solid var(--line);background:#0a1820e6;border-radius:15px;min-height:260px;margin-top:16px}.scene-label{color:#d8edf1;white-space:nowrap;background:#071219cc;border:1px solid #70a0ae73;border-radius:4px;padding:2px 5px;font-size:8px;display:inline-block}.wind-marker{color:#edf8fa;border:1px solid color-mix(in srgb, var(--wind-color) 65%, transparent);border-left:3px solid var(--wind-color);white-space:nowrap;background:#051017e0;border-radius:5px;gap:1px;min-width:84px;padding:4px 7px;display:grid;box-shadow:0 5px 14px #00000040}.wind-marker strong{color:var(--wind-color);letter-spacing:.04em;text-transform:uppercase;font-size:7px}.wind-marker small{color:#b3c8ce;font-size:6px}.scene-legend{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#c3d6dc;pointer-events:none;background:#051017c2;border:1px solid #40616da3;border-radius:8px;align-items:center;gap:13px;padding:8px 10px;font-size:.68rem;display:flex;position:absolute;bottom:13px;left:13px}.scene-legend span{align-items:center;gap:5px;display:flex}.scene-legend small{color:#79949f}.legend-line{width:19px;height:2px;display:inline-block}.legend-line--travelled{background:#ff7438;height:3px}.legend-line--predicted{opacity:.55;background:repeating-linear-gradient(90deg,#ffc49a 0 4px,#0000 4px 7px)}.legend-line--baseline{background:repeating-linear-gradient(90deg, var(--cyan) 0 5px, transparent 5px 8px);opacity:.65}.axis-key{pointer-events:none;background:#051017b3;border-radius:7px;gap:2px;padding:7px 9px;font-size:.6rem;display:grid;position:absolute;bottom:13px;right:13px}.axis-x{color:#ff6b6b}.axis-y{color:#63df89}.axis-z{color:#68a8ff}.scene-playback-mobile{display:none}.analysis-section{margin-top:16px;padding:16px;overflow:visible}.analysis-header{margin-bottom:13px}.plot-picker{z-index:8;position:relative}.plot-picker summary{border:1px solid var(--line-bright);color:#c9dbe0;cursor:pointer;background:#112630;border-radius:8px;padding:7px 11px;font-size:.75rem;list-style:none}.plot-picker summary::-webkit-details-marker{display:none}.plot-picker__menu{border:1px solid var(--line-bright);background:#0d202a;border-radius:10px;width:280px;max-height:370px;padding:7px;position:absolute;top:calc(100% + 7px);right:0;overflow:auto;box-shadow:0 18px 45px #00000073}.plot-picker__menu label{color:#c4d6dc;cursor:pointer;border-radius:7px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px;font-size:.73rem;display:grid}.plot-picker__menu label:hover{background:#15313d}.plot-picker__menu small{color:#708c97}.plot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.plot-card{border:1px solid var(--line);background:#0a1820;border-radius:11px;min-width:0;overflow:hidden}.plot-card__header{border-bottom:1px solid #2a46519e;height:48px;padding:8px 11px}.plot-card__header strong{font-size:.78rem;display:block}.plot-card__header small{color:var(--muted);margin-top:2px;font-size:.61rem;display:block}.icon-button{border:1px solid var(--line);color:#99b2bc;background:0 0;border-radius:7px;place-items:center;width:29px;height:29px;padding:0;font-size:1rem;display:grid}.icon-button:hover{color:#fff;border-color:var(--line-bright)}.echart{width:100%;height:330px}.empty-state{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px;padding:50px}.app-footer{border-top:1px solid var(--line);color:#6f8994;align-items:flex-start;margin-top:18px;padding:16px 2px 0;font-size:.67rem;line-height:1.55}.app-footer>div{display:grid}.app-footer strong{color:#a9bec6}.app-footer>div:last-child{text-align:right}.mobile-only,.drawer-scrim{display:none}.load-screen{text-align:center;background:radial-gradient(circle,#12313c 0,#061017 42%);place-content:center;justify-items:center;min-height:100vh;padding:30px;display:grid}.load-screen h1{margin:4px 0;font-size:2rem}.load-screen pre{white-space:pre-wrap;color:#ffb4c0;max-width:720px}.loader{border:2px solid #244550;border-top-color:var(--cyan);border-radius:50%;width:34px;height:34px;margin-bottom:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1220px){.app-shell{grid-template-columns:320px minmax(0,1fr)}.metric-grid{grid-template-columns:repeat(3,1fr)}.scene-legend small{display:none}}@media (max-width:940px){.app-shell{display:block}.mobile-only{display:inline-grid}.control-drawer{z-index:60;width:min(370px,91vw);transition:transform .22s;position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.control-drawer.is-open{transform:translate(0)}.control-panel{height:100%;position:absolute;inset:0}.drawer-scrim{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#01070ab3;border:0;width:100%;display:block;position:fixed;inset:0}.main-content{padding:0 18px 30px}.topbar{min-height:80px}.brand-mark{display:none}.model-status{margin-left:auto}.intro-strip{align-items:flex-start}.model-badges{display:none}.plot-grid{grid-template-columns:1fr}}@media (max-width:650px){.main-content{padding:0 10px 24px}.topbar{gap:9px}.topbar__title .eyebrow{display:none}.topbar h1{font-size:1.08rem}.model-status{font-size:0}.model-status small{font-size:.59rem}.model-status i{grid-row:auto}.intro-strip{padding-top:12px}.intro-strip p{font-size:.73rem}.metric-grid{scroll-snap-type:x mandatory;padding-bottom:4px;display:flex;overflow-x:auto}.metric-card{scroll-snap-align:start;min-width:155px}.scene-toolbar{align-items:flex-start}.scene-toolbar>div:first-child,.scene-toggles{width:100%}.scene-viewport{height:430px}.scene-playback-mobile{border-top:1px solid var(--line);grid-template-columns:auto auto 1fr auto;align-items:center;gap:7px;padding:10px;display:grid}.scene-playback-mobile input{width:100%}.scene-playback-mobile output{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.68rem}.axis-key{display:none}.analysis-section{padding:10px}.analysis-header{align-items:flex-end}.plot-picker__menu{width:min(280px,100vw - 35px)}.echart{height:300px}.app-footer{display:grid}.app-footer>div:last-child{text-align:left;margin-top:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
