:root{--abyss: #05090c;--deep: #071118;--slate: #16242c;--glass: rgba(10, 22, 28, .58);--glass-strong: rgba(8, 18, 24, .82);--edge: rgba(127, 227, 224, .16);--edge-hot: rgba(127, 227, 224, .5);--ice: #7fe3e0;--ice-dim: #4c9ea4;--text: #d3e6e8;--muted: #7f9aa1;--faint: #56717a;--warn: #e8b98a;--shadow: 0 18px 48px rgba(0, 0, 0, .55);--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sans: "Inter", "Helvetica Neue", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;background:var(--abyss);color:var(--text);font-family:var(--sans);overflow:hidden;-webkit-font-smoothing:antialiased}button{font-family:inherit;color:inherit}a{color:var(--ice);text-decoration:none;border-bottom:1px solid rgba(127,227,224,.32)}a:hover{border-bottom-color:var(--ice)}.app{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--abyss)}.stage{position:absolute;top:0;right:0;bottom:0;left:0}.stage canvas{display:block;outline:none;touch-action:none}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.overlay>*{pointer-events:auto}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(126% 92% at 50% 48%,#0000 52%,#00000070),linear-gradient(to bottom,#06101580,#0000 22%),linear-gradient(to top,#03070a6b,#0000 17%)}.veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;background:radial-gradient(120% 100% at 50% 50%,#06121a,#03070a);opacity:0;transition:opacity .24s ease}.veil.on{opacity:1}.masthead{position:absolute;top:26px;left:30px;max-width:268px}.masthead .mark{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--ice-dim)}.masthead .mark:before{content:"";width:26px;height:1px;background:linear-gradient(to right,transparent,var(--ice))}.masthead h1{margin:10px 0 4px;font-size:25px;font-weight:300;letter-spacing:.13em;text-transform:uppercase;color:#eaf6f7;text-shadow:0 0 34px rgba(127,227,224,.22)}.masthead p{margin:0;font-size:11.5px;line-height:1.55;color:#9db6bd;letter-spacing:.04em;text-shadow:0 1px 10px rgba(2,8,11,.95),0 0 26px rgba(2,8,11,.8)}.masthead .mark,.masthead h1{text-shadow:0 1px 12px rgba(2,8,11,.9)}.nav{position:absolute;top:182px;left:30px;display:flex;flex-direction:column;gap:8px;width:268px}.nav-item{position:relative;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:12px;padding:11px 14px;border:1px solid rgba(127,227,224,.09);border-radius:3px;background:linear-gradient(120deg,#09141a9e,#070e1373);backdrop-filter:blur(13px) saturate(120%);-webkit-backdrop-filter:blur(13px) saturate(120%);cursor:pointer;text-align:left;transition:border-color .2s ease,background .2s ease,transform .2s ease}.nav-item:hover{border-color:#7fe3e04d;transform:translate(3px)}.nav-item .numeral{font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.08em;transition:color .2s ease}.nav-item .name{font-size:12.5px;letter-spacing:.17em;text-transform:uppercase;color:#b9d3d7}.nav-item .sub{font-size:10.5px;letter-spacing:.03em;color:var(--faint);margin-top:3px}.nav-item.active{border-color:var(--edge-hot);background:linear-gradient(120deg,#132d34b8,#08141a80);box-shadow:inset 0 0 0 1px #7fe3e00f,0 0 30px #17545a59}.nav-item.active .numeral,.nav-item.active .name{color:var(--ice)}.nav-item.active:before{content:"";position:absolute;left:-1px;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,transparent,var(--ice),transparent)}.hud{position:absolute;top:26px;right:26px;bottom:26px;width:322px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(127,227,224,.25) transparent}.hud::-webkit-scrollbar{width:6px}.hud::-webkit-scrollbar-thumb{background:#7fe3e038;border-radius:3px}.panel{border:1px solid var(--edge);border-radius:4px;background:linear-gradient(150deg,#0b181ebd,#060d129e);backdrop-filter:blur(16px) saturate(125%);-webkit-backdrop-filter:blur(16px) saturate(125%);box-shadow:var(--shadow);padding:14px 16px 16px;flex:0 0 auto}.panel>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid rgba(127,227,224,.1)}.panel>header h2{margin:0;font-size:10.5px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ice-dim)}.panel>header .tag{font-family:var(--mono);font-size:10px;color:var(--faint)}.panel p{margin:0 0 10px;font-size:11.5px;line-height:1.6;color:var(--muted)}.panel p:last-child{margin-bottom:0}.panel .em{color:#b7d6d9}.readout{display:flex;align-items:flex-end;gap:12px;margin-bottom:10px}.readout .value{font-family:var(--mono);font-size:42px;line-height:.94;font-weight:300;color:var(--ice);text-shadow:0 0 26px rgba(127,227,224,.35);font-variant-numeric:tabular-nums}.readout .value.small{font-size:26px}.readout .legend{padding-bottom:4px}.readout .legend .k{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint)}.readout .legend .v{font-family:var(--mono);font-size:11px;color:var(--muted)}.formula{font-family:var(--mono);font-size:12px;color:#9fc6c9;background:#06101599;border:1px solid rgba(127,227,224,.12);border-radius:3px;padding:8px 10px;margin-bottom:12px;text-align:center;letter-spacing:.03em}.formula b{color:var(--ice);font-weight:500}.stats{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;margin-top:10px}.stat{display:flex;flex-direction:column;gap:2px}.stat .k{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}.stat .v{font-family:var(--mono);font-size:12.5px;color:#bcd8db;font-variant-numeric:tabular-nums}.control{margin-bottom:13px}.control:last-child{margin-bottom:0}.control .label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.control .label .name{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.control .label .num{font-family:var(--mono);font-size:11.5px;color:var(--ice);font-variant-numeric:tabular-nums}.control .hint{margin-top:5px;font-size:10.5px;line-height:1.5;color:var(--faint)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:18px;background:transparent;cursor:pointer;display:block}input[type=range]::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:linear-gradient(to right,#7fe3e08c,#7fe3e01a)}input[type=range]::-moz-range-track{height:2px;border-radius:2px;background:linear-gradient(to right,#7fe3e08c,#7fe3e01a)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;margin-top:-5px;border-radius:50%;background:#0a1a20;border:1.5px solid var(--ice);box-shadow:0 0 12px #7fe3e099;transition:transform .14s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.18)}input[type=range]::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:#0a1a20;border:1.5px solid var(--ice);box-shadow:0 0 12px #7fe3e099}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid rgba(127,227,224,.14);background:#08121880;border-radius:2px;padding:6px 9px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:all .17s ease}.chip:hover{border-color:#7fe3e057;color:#c3dfe2}.chip.on{border-color:var(--edge-hot);color:var(--ice);background:#14303699;box-shadow:0 0 18px #17545a66}.chip .d{font-family:var(--mono);color:var(--faint);margin-left:6px;text-transform:none;letter-spacing:0}.chip.on .d{color:#7fe3e0bf}.toggle{display:flex;align-items:center;gap:9px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle .box{width:13px;height:13px;border:1px solid rgba(127,227,224,.35);border-radius:2px;display:grid;place-items:center}.toggle .box:after{content:"";width:6px;height:6px;border-radius:1px;background:transparent;transition:background .16s ease,box-shadow .16s ease}.toggle.on .box:after{background:var(--ice);box-shadow:0 0 10px #7fe3e0cc}.caption{position:absolute;left:30px;bottom:26px;max-width:430px;border-left:2px solid rgba(127,227,224,.35);padding:3px 0 3px 14px}.caption .eyebrow{font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--ice-dim);margin-bottom:6px}.caption p{margin:0;font-size:12px;line-height:1.65;color:#a8c2c7;text-shadow:0 2px 12px rgba(0,0,0,.8)}.caption .cite{margin-top:8px;font-size:10.5px;color:var(--faint)}.hint-bar{position:absolute;right:366px;bottom:28px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#78969ebf;text-align:right;line-height:1.9}.hint-bar kbd{font-family:var(--mono);font-size:10px;letter-spacing:0;border:1px solid rgba(127,227,224,.18);border-radius:2px;padding:1px 5px;color:#a5c6ca;margin-right:5px}.plot{width:100%;height:auto;display:block;margin:2px 0 4px}.plot text{font-family:var(--mono);fill:var(--faint)}.tag3d{transform:translate(-50%,-50%);padding:5px 10px;border:1px solid rgba(127,227,224,.22);border-radius:2px;background:#060f14b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#a9cfd3;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none}.tag3d b{font-family:var(--mono);color:var(--ice);letter-spacing:0;font-weight:500;margin-left:7px}.boot{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--abyss);z-index:8;transition:opacity .6s ease}.boot.gone{opacity:0;pointer-events:none}.boot .inner{text-align:center}.boot .inner .t{font-size:11px;letter-spacing:.44em;text-transform:uppercase;color:var(--ice-dim)}.boot .inner .bar{margin-top:14px;width:190px;height:1px;background:#7fe3e024;overflow:hidden}.boot .inner .bar i{display:block;height:100%;width:40%;background:var(--ice);animation:sweep 1.5s ease-in-out infinite}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (max-width: 1180px){.hud{width:280px}.hint-bar{display:none}}@media (max-width: 900px){.nav{top:auto;bottom:20px;left:16px;right:16px;width:auto;flex-direction:row;overflow-x:auto}.nav-item{flex:1 0 auto;grid-template-columns:1fr}.nav-item .numeral,.nav-item .sub,.caption{display:none}.masthead{top:16px;left:18px;max-width:46vw}.masthead h1{font-size:18px}.masthead p{display:none}.hud{top:14px;right:12px;bottom:96px;width:min(300px,46vw)}}
