:root{color:#eef8f3;font-synthesis:none;text-rendering:optimizelegibility;--ink:#eef8f3;--muted:#a7c3c1;--faint:#6e9392;--line:#c0e7de26;--panel:#081f24b8;--panel-strong:#081b20db;--aqua:#9de5d0;--aqua-bright:#c8f5e2;--orange:#f2b37d;background:#102f37;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{background:#102f37;min-width:320px;overflow:hidden}button,input{font:inherit}button{color:inherit}.app-shell{isolation:isolate;background:linear-gradient(145deg,#b8d9dc 0%,#6fa7b0 54%,#183e43 100%);width:100vw;height:100vh;min-height:560px;position:relative;overflow:hidden}.scene-canvas{z-index:0;cursor:grab;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.scene-canvas:active{cursor:grabbing}.scene-vignette{z-index:1;pointer-events:none;background:linear-gradient(#061c2254 0%,#0000 19% 77%,#04141885 100%),radial-gradient(#0000 46%,#061b204d 100%);position:absolute;inset:0}.grain{z-index:2;pointer-events:none;opacity:.08;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");position:absolute;inset:0}.topbar,.control-panel,.view-panel,.scene-stats,.bottom-note,.error-toast{z-index:3;position:absolute}.topbar{pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;top:26px;left:30px;right:30px}.brand-lockup,.topbar-meta,.weather-readout,.live-pill{align-items:center;display:flex}.brand-lockup{gap:13px}.brand-mark{background:#0a262a73;border:1px solid #cbf7e36b;align-items:flex-end;gap:3px;width:31px;height:31px;padding:5px;display:flex;position:relative;box-shadow:0 5px 20px #05191d2e}.brand-mark span{background:var(--aqua);width:5px;display:block}.brand-mark span:first-child{opacity:.65;height:9px}.brand-mark span:nth-child(2){opacity:.82;height:15px}.brand-mark span:nth-child(3){height:20px}.eyebrow{color:var(--aqua);letter-spacing:.2em;margin:0 0 4px;font-size:9px;font-weight:750;line-height:1}.brand-lockup h1{color:#f1fbf5;letter-spacing:-.045em;text-shadow:0 2px 15px #071a1e4d;margin:0;font-size:clamp(19px,2vw,27px);font-weight:560;line-height:1}.topbar-meta{gap:10px;padding-top:3px}.live-pill,.weather-readout{color:#c8dfda;letter-spacing:.13em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#081e2366;border:1px solid #c0e7de2b;height:29px;font-size:9px;font-weight:700}.live-pill{gap:7px;padding:0 11px}.live-dot{background:#9de5b3;border-radius:50%;width:6px;height:6px;display:inline-block;box-shadow:0 0 0 3px #9de5b31f,0 0 11px #9de5b3d9}.weather-readout{color:var(--aqua-bright);letter-spacing:.1em;gap:7px;padding:0 10px}.weather-temp{color:#e7b789;letter-spacing:0;margin-left:5px;font-size:11px}.glass-panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(115%);backdrop-filter:blur(18px)saturate(115%);background:linear-gradient(145deg,#0d2b2fc7,#061b20a3);box-shadow:0 18px 48px #05191d2b,inset 0 1px #e2fff60f}.control-panel{width:278px;padding:20px 19px 17px;top:103px;left:30px}.view-panel{width:245px;padding:18px 16px 15px;top:103px;right:30px}.panel-heading{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.panel-heading.compact{margin-bottom:15px}.panel-heading h2{color:#eef8f3;letter-spacing:-.03em;margin:0;font-size:17px;font-weight:520}.panel-index{color:#added385;letter-spacing:.12em;font-size:10px;font-weight:700}.control-section{gap:18px;display:grid}.slider-row{cursor:pointer;display:block}.slider-label{color:#c7dcda;letter-spacing:.01em;align-items:center;gap:8px;margin-bottom:10px;font-size:11px;font-weight:550;display:flex}.slider-label strong{color:var(--aqua-bright);letter-spacing:.08em;margin-left:auto;font-size:9px;font-weight:700}.slider-icon{width:22px;height:22px;color:var(--aqua);background:#92d1c214;border:1px solid #abe0d324;justify-content:center;align-items:center;display:inline-flex}input[type=range]{appearance:none;background:linear-gradient(90deg, var(--aqua) 0 var(--range-progress), #b0ddd42e var(--range-progress) 100%);cursor:pointer;border-radius:4px;outline:none;width:100%;height:3px;margin:0;display:block}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--aqua-bright);border:2px solid #173f43;border-radius:50%;width:11px;height:11px;box-shadow:0 0 0 2px #9de5d02e,0 2px 7px #04171b80}input[type=range]::-moz-range-thumb{background:var(--aqua-bright);border:2px solid #173f43;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #9de5d02e,0 2px 7px #04171b80}.section-rule{background:var(--line);height:1px;margin:20px 0 7px}.toggle-list{display:grid}.toggle-row{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c0e7de14;justify-content:space-between;align-items:center;min-height:48px;padding:6px 0;display:flex}.toggle-row:last-child{border-bottom:0}.toggle-leading{align-items:center;gap:9px;display:flex}.toggle-leading>span:last-child{gap:3px;display:grid}.toggle-row strong{color:#d5e8e3;font-size:11px;font-weight:560}.toggle-row small{color:#719493;letter-spacing:.01em;font-size:9px}.toggle-row .slider-icon{width:24px;height:24px;transition:color .18s,background .18s,border-color .18s}.toggle-row.is-on .slider-icon{color:#d6f8e6;background:#75ccab29;border-color:#9de5d057}.switch{background:#b6d7d117;border:1px solid #b1dad338;border-radius:20px;width:27px;height:15px;transition:background .18s,border-color .18s;display:block;position:relative}.switch span{background:#789a98;border-radius:50%;width:9px;height:9px;transition:transform .18s,background .18s;position:absolute;top:2px;left:2px}.toggle-row.is-on .switch{background:#66bba347;border-color:#9de5d066}.toggle-row.is-on .switch span{background:var(--aqua-bright);transform:translate(12px)}.reset-button{color:#c8e5dc;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;background:#89ccb714;border:1px solid #ade1d338;border-radius:2px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:16px;padding:10px 12px;font-size:10px;font-weight:650;transition:background .18s,border-color .18s,transform .18s;display:flex}.reset-button:hover{background:#89ccb729;border-color:#ade1d375;transform:translateY(-1px)}.view-grid{gap:4px;display:grid}.view-button{color:#b6d2ce;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:26px 1fr 15px;align-items:center;gap:7px;min-height:46px;padding:7px 8px;transition:border-color .18s,background .18s,color .18s;display:grid}.view-button:hover,.view-button.is-active{color:#e4f6ed;background:#80cbb51a;border-color:#9de5d040}.view-number{color:#709391;letter-spacing:.1em;font-size:9px;font-weight:700}.view-copy{gap:3px;display:grid}.view-copy strong{font-size:11px;font-weight:600}.view-copy small{color:#769592;font-size:9px}.view-button>svg{color:#7bb8a8;opacity:0;transition:opacity .18s,transform .18s;transform:translate(-3px)}.view-button:hover>svg,.view-button.is-active>svg{opacity:1;transform:translate(0)}.scene-stats{width:282px;padding:13px 15px 14px;bottom:42px;right:30px}.stats-topline{color:#89aaa4;letter-spacing:.13em;align-items:center;gap:7px;font-size:8px;font-weight:700;display:flex}.stats-topline .live-dot{width:5px;height:5px}.stats-live{color:#a3d8b3;margin-left:auto}.stats-main{grid-template-columns:1.12fr 1fr .76fr;gap:8px;margin-top:13px;display:grid}.stats-main>div{gap:4px;min-width:0;display:grid}.stats-main>div+div{border-left:1px solid #c0e7de1f;padding-left:10px}.stats-main strong{color:#e5f4eb;letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:520;overflow:hidden}.stats-main strong small{color:#84a9a4;letter-spacing:.04em;font-size:8px;font-weight:650}.stats-main span{color:#779794;letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.bottom-note{color:#ddf2eab3;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px 8px #061b1f66;align-items:center;gap:9px;font-size:9px;display:flex;bottom:17px;left:50%;transform:translate(-50%)}.note-line{background:#c5edde75;width:24px;height:1px;display:block}.note-dot{color:#9de5d0}.error-toast{color:#ffe6d7;background:#381d1fe6;border:1px solid #ffbe9d59;gap:7px;width:min(360px,100vw - 40px);padding:18px 20px;display:grid;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 40px #04111459}.error-toast strong{font-size:13px}.error-toast span{color:#eab9a6;font-size:11px;line-height:1.5}button:focus-visible,input:focus-visible{outline:2px solid var(--aqua-bright);outline-offset:3px}@media (width<=900px){.control-panel{left:18px}.view-panel,.scene-stats{right:18px}.topbar{left:18px;right:18px}}@media (width<=720px){.app-shell{min-height:620px}.topbar{top:17px}.topbar-meta{gap:5px}.weather-readout{display:none}.control-panel{width:auto;max-height:43vh;padding:14px 15px 13px;inset:auto 14px 47px;overflow:auto}.control-panel .panel-heading{margin-bottom:13px}.control-section{grid-template-columns:repeat(3,1fr);gap:12px}.slider-label{grid-template-columns:22px 1fr;gap:5px;margin-bottom:8px;font-size:10px;display:grid}.slider-label strong{grid-column:2;margin-left:0;font-size:8px}.section-rule{margin:13px 0 3px}.toggle-list{grid-template-columns:repeat(2,1fr);column-gap:14px}.reset-button{margin-top:10px}.view-panel,.scene-stats{display:none}.bottom-note{font-size:8px;bottom:15px}}@media (width<=720px) and (height<=700px){.app-shell{min-height:100vh}.control-panel{max-height:42vh;bottom:16px}.control-panel .panel-heading{margin-bottom:8px}.control-section{gap:6px}.slider-label{margin-bottom:5px}.section-rule{margin:8px 0 2px}.toggle-row{min-height:36px;padding:3px 0}.toggle-row small{display:none}.reset-button{margin-top:7px;padding:7px 10px}.bottom-note{bottom:8px}}@media (width<=480px){.brand-mark{width:28px;height:28px}.brand-lockup h1{font-size:18px}.live-pill{height:26px;padding:0 8px;font-size:8px}.control-section{gap:8px}.slider-label>span:nth-child(2){font-size:9px}.toggle-row{min-height:44px}.toggle-row small,.bottom-note .note-line,.bottom-note .note-dot{display:none}}
