:root{
  --ink:#15171c;--muted:#646a76;--soft:#f2f4f8;--line:#dde1e8;--accent:#0071e3;--accent-rgb:0,113,227;
  --blue:#0071e3;--red:#ff453a;--green:#30d158;--orange:#ff9f0a;--purple:#bf5af2;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font:16px/1.5 var(--font);letter-spacing:-.011em;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}
.nav{position:fixed;z-index:50;inset:0 0 auto;height:56px;border-bottom:1px solid rgba(22,26,36,.08);background:rgba(255,255,255,.86);backdrop-filter:blur(24px) saturate(150%)}
.nav-inner{width:min(1360px,calc(100% - 40px));height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:680}.brand-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;color:#fff;background:linear-gradient(145deg,var(--accent),rgba(var(--accent-rgb),.7));box-shadow:0 7px 18px rgba(var(--accent-rgb),.25);font-size:17px}
.back{color:var(--muted);font-size:14px;transition:color .2s,transform .2s}.back:hover{color:var(--ink);transform:translateX(-2px)}.author{color:var(--muted);font-size:13px;white-space:nowrap}
.container{width:min(1360px,calc(100% - 40px));margin-inline:auto}
.hero{position:relative;overflow:hidden;padding:86px 0 28px;background:linear-gradient(125deg,rgba(var(--accent-rgb),.1),transparent 46%),linear-gradient(180deg,#fff,#f7f8fb)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.34;background-image:linear-gradient(rgba(var(--accent-rgb),.08) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb),.08) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,#000,transparent 76%)}
.hero .container{position:relative;z-index:1}
.eyebrow{margin:0;color:var(--accent);font-size:12px;font-weight:780;letter-spacing:.075em;text-transform:uppercase}
h1{max-width:880px;margin:10px 0 0;font-size:clamp(35px,4.6vw,56px);line-height:1.01;letter-spacing:-.052em;font-weight:690}h1 span{color:var(--accent)}
.lead{max-width:760px;margin:13px 0 0;color:var(--muted);font-size:clamp(16px,1.4vw,19px);line-height:1.55}
.sim-section{padding:24px 0 70px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f7f8fb 0,#eef1f6 72%,#f7f8fb 100%)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:36px;margin-bottom:17px}.section-head h2{margin:6px 0 0;font-size:clamp(25px,3vw,35px);line-height:1.06;letter-spacing:-.04em;font-weight:680}.section-copy{max-width:520px;margin:0;color:var(--muted);font-size:15px;line-height:1.55}
.surface{overflow:hidden;border:1px solid rgba(23,27,38,.12);border-radius:26px;background:#fff;box-shadow:0 28px 80px rgba(24,31,49,.13),0 2px 7px rgba(24,31,49,.06)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px;padding:14px 20px;color:#f7f9ff;border-bottom:1px solid rgba(255,255,255,.09);background:linear-gradient(115deg,#171b27,#0b1020 70%)}
.toolbar-kicker{display:block;color:rgba(255,255,255,.56);font-size:11px;font-weight:780;letter-spacing:.11em}.toolbar h3{margin:2px 0 0;font-size:19px;letter-spacing:-.025em;font-weight:650}
.toolbar-status{max-width:56%;padding:7px 11px;color:#dfe6f7;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.055);font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(315px,.72fr);min-height:640px}.workspace.plot-heavy{grid-template-columns:minmax(0,2.15fr) minmax(315px,.66fr)}
.visual{position:relative;min-width:0;isolation:isolate;background:#080d19;border-right:1px solid rgba(20,26,40,.16)}.visual::after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;box-shadow:inset 0 0 80px rgba(0,0,0,.24)}
.canvas-wrap{position:absolute;inset:0;z-index:1}.visual canvas{display:block;width:100%;height:100%;touch-action:none}
.canvas-note{position:absolute;z-index:3;left:16px;bottom:14px;max-width:72%;padding:8px 11px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(7,12,24,.7);backdrop-filter:blur(14px);color:#cbd3e6;font-size:12px;line-height:1.42;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.controls{padding:18px;background:linear-gradient(180deg,#fff,#fafbfc);overflow:auto;overscroll-behavior:contain}
.control-card{padding:14px 14px 15px;margin:0 0 11px;border:1px solid #e3e6ec;border-radius:16px;background:#f6f7fa;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}.control-card:last-child{margin-bottom:0}
.control-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:13px;font-weight:720}.control-title output,.range-head output{color:var(--accent);font-weight:720;font-variant-numeric:tabular-nums;white-space:nowrap}
.range-row+.range-row{margin-top:14px}.range-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px;color:#515765;font-size:13px}
input[type="range"]{width:100%;height:20px;margin:0;accent-color:var(--accent);cursor:ew-resize;-webkit-appearance:none;appearance:none;background:transparent}input[type="range"]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,rgba(var(--accent-rgb),.34),#d9dde5)}input[type="range"]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7px;border:3px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 2px 7px rgba(var(--accent-rgb),.38);-webkit-appearance:none}input[type="range"]::-moz-range-track{height:4px;border:0;border-radius:4px;background:#d9dde5}input[type="range"]::-moz-range-progress{height:4px;border-radius:4px;background:rgba(var(--accent-rgb),.5)}input[type="range"]::-moz-range-thumb{width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 2px 7px rgba(var(--accent-rgb),.38)}
select{width:100%;height:42px;padding:0 11px;border:1px solid #cfd4de;border-radius:11px;color:var(--ink);background:#fff}
.switch-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}.check{display:flex;align-items:center;gap:8px;min-height:28px;color:#4f5561;font-size:13px;cursor:pointer}.check input{flex:0 0 auto;width:17px;height:17px;accent-color:var(--accent)}
.button-row{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:13px}.button-row.three{grid-template-columns:repeat(3,1fr)}
.button{min-height:40px;padding:0 13px;border:1px solid transparent;border-radius:12px;color:#fff;background:linear-gradient(180deg,rgba(var(--accent-rgb),.9),var(--accent));box-shadow:0 5px 14px rgba(var(--accent-rgb),.18);font-weight:670;transition:transform .18s,box-shadow .18s,background .18s}.button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(var(--accent-rgb),.24)}.button:active{transform:translateY(0)}
.button.secondary{color:#343944;border-color:#d0d4dc;background:#fff;box-shadow:none}.button.ghost{color:var(--accent);border-color:rgba(var(--accent-rgb),.25);background:rgba(var(--accent-rgb),.055);box-shadow:none}.button[aria-pressed="true"]{color:#fff;border-color:var(--accent);background:var(--accent)}
select:focus,input:focus-visible,button:focus-visible{outline:3px solid rgba(var(--accent-rgb),.22);outline-offset:2px}
.formula{padding:13px 14px;border:1px solid rgba(var(--accent-rgb),.14);border-radius:15px;background:rgba(var(--accent-rgb),.055);font-family:"Cambria Math",Georgia,serif;font-size:16px;line-height:1.55}.formula small{display:block;margin-top:5px;color:var(--muted);font:12px/1.45 var(--font)}
.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border-top:1px solid var(--line);background:var(--line)}.metric{position:relative;min-width:0;padding:15px 18px;background:#fff}.metric::before{content:"";position:absolute;left:18px;top:0;width:28px;height:2px;background:var(--accent)}.metric span{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;margin-top:4px;font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reading{padding:14px 19px;border-top:1px solid var(--line);background:#fff;color:#515765;font-size:13px;line-height:1.5}.reading strong{color:var(--ink)}
.observe{padding:64px 0 70px}.observe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:25px}.observe-card{padding:23px;border:1px solid var(--line);border-radius:20px;background:#fff;transition:transform .2s,box-shadow .2s}.observe-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(24,31,49,.08)}.observe-num{color:var(--accent);font-size:11px;font-weight:780;letter-spacing:.04em}.observe-card h3{margin:18px 0 0;font-size:19px;line-height:1.2;letter-spacing:-.025em}.observe-card p{margin:8px 0 0;color:var(--muted);font-size:15px;line-height:1.55}
.original{margin-top:18px;color:var(--muted);font-size:13px}.original a{color:var(--accent);font-weight:670}.legal{max-width:920px;margin:0 auto;padding:25px 20px;color:#858b96;text-align:center;font-size:12px;line-height:1.55}footer{padding:26px 20px;border-top:1px solid var(--line);color:var(--muted);text-align:center;font-size:14px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:921px) and (min-height:620px){
  .hero{padding:68px 0 12px}
  .hero .container{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);grid-template-rows:auto auto;align-items:end;gap:3px 36px}
  .hero .eyebrow{grid-column:1}.hero h1{grid-column:1;margin-top:2px;font-size:clamp(28px,3.2vw,42px)}.hero .lead{grid-column:2;grid-row:1/3;margin:0;font-size:14px;line-height:1.45}
  .sim-section{padding:8px 0 16px}.sim-section>.container>.section-head{display:none}
  .surface{height:calc(100svh - 152px);display:grid;grid-template-rows:56px minmax(0,1fr) auto auto}
  .toolbar{min-height:56px;padding:8px 16px}.toolbar h3{font-size:17px}.toolbar-status{max-width:48%}
  .workspace,.workspace.plot-heavy{min-height:0;grid-template-columns:minmax(0,1.55fr) minmax(420px,.9fr)}
  .controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;padding:10px;overflow:auto}
  .control-card{margin:0;padding:10px 11px}.control-title{margin-bottom:8px}.range-row+.range-row{margin-top:9px}.button-row{margin-top:8px}
  .formula{align-self:stretch;padding:10px 11px;font-size:15px}.formula small{margin-top:3px}
  .metric{padding:9px 14px}.metric::before{left:14px}.metric strong{margin-top:2px;font-size:15px}
  .reading{padding:8px 16px;line-height:1.4}.canvas-note{left:12px;bottom:10px;padding:7px 10px}
}
@media(max-width:920px){.workspace,.workspace.plot-heavy{grid-template-columns:1fr}.visual{height:590px;border-right:0;border-bottom:1px solid var(--line)}.controls{overflow:visible;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.control-card{margin:0}.formula{align-self:stretch}}
@media(max-width:720px){.nav-inner,.container{width:calc(100% - 24px)}.author{display:none}.brand span:last-child{display:none}.back{margin-left:auto}.hero{padding:76px 0 22px}h1{font-size:clamp(34px,10vw,48px)}.lead{font-size:16px}.sim-section,.observe{padding-bottom:54px}.section-head{align-items:start;flex-direction:column;gap:10px}.surface{border-radius:20px}.toolbar{align-items:flex-start;flex-direction:column;gap:8px}.toolbar-status{max-width:100%;text-align:left}.visual{height:480px}.controls{display:block;padding:14px}.control-card{margin-bottom:10px}.metric-strip,.observe-grid{grid-template-columns:1fr 1fr}.button-row.three{grid-template-columns:1fr 1fr}.switch-list{grid-template-columns:1fr}}
@media(max-width:430px){.metric-strip,.observe-grid{grid-template-columns:1fr}.visual{height:430px}.canvas-note{max-width:calc(100% - 32px)}.button-row.three{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}.observe-card:hover,.button:hover{transform:none}}
