@charset "UTF-8";
:root{color-scheme:dark;--bg:#071827;--panel:#0d2538;--line:#294c62;--ink:#eef7fc;--muted:#b2cbd9;--teal:#5de2d3;--amber:#ffbd76;--pink:#ff92c7;--radius:19px;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:radial-gradient(ellipse at 80% 2%,#164a6470,transparent 35%),radial-gradient(ellipse at 8% 28%,#12364d50,transparent 30%),var(--bg);color:var(--ink);line-height:1.6;font-size:16px}a{color:inherit;text-decoration:none}a:hover{color:var(--teal)}button,input,select{font:inherit}button,select{border:1px solid #426477;border-radius:9px;color:var(--ink);background:#17364b}button{padding:9px 13px;cursor:pointer;line-height:1.35;transition:background .15s,border .15s}button:hover{background:#214f65;border-color:var(--teal)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--teal);color:#06212a;font-weight:700;border-color:var(--teal)}button.quiet{background:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,svg:focus-visible{outline:3px solid var(--amber);outline-offset:3px}.skip{position:absolute;left:16px;top:-100px;background:#fff;color:#000;padding:10px;z-index:100}.skip:focus{top:10px}.top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px max(4vw,24px);border-bottom:1px solid #30516b;background:#0a2032a0}.brand{display:flex;align-items:center;gap:26px}.brand img:first-child{width:148px;height:52px;object-fit:contain}.brand img:last-child{width:116px;height:52px;object-fit:contain}.top nav{display:flex;gap:22px;font-size:14px;color:var(--muted)}.wrap{max-width:1510px;margin:auto;padding:28px 4vw 60px}.crumb{display:flex;flex-wrap:wrap;gap:9px;color:var(--muted);font-size:13px}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:8%;align-items:center;padding:48px 0 32px}.eyebrow{font-size:11px;letter-spacing:.17em;color:var(--teal);font-weight:750;margin:0 0 12px}.hero h1{font-size:clamp(40px,5.2vw,76px);line-height:1.04;letter-spacing:-.045em;margin:0 0 24px;font-weight:650}.hero h1 em{font-style:normal;color:var(--teal)}.lead{font-size:18px;color:var(--muted);max-width:720px}.hero-note{border-left:1px solid #356279;padding-left:32px;color:var(--muted)}.hero-note b{color:var(--ink)}.orb{display:grid;place-items:center;width:86px;height:86px;border:1px solid #63d7dc66;border-radius:50%;background:radial-gradient(circle at 35% 30%,#4bd4db30,#0b243e);font-family:Georgia,serif;font-size:40px;color:var(--teal);box-shadow:0 0 70px #25c7d01f}.tag{font-size:11px;color:var(--muted);border:1px solid #39596c;border-radius:30px;padding:5px 9px;display:inline-block}.section-nav{display:flex;gap:25px;flex-wrap:wrap;font-size:13px;padding:12px 0 24px;border-bottom:1px solid var(--line);color:var(--muted)}.preset-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin:24px 0}.preset-strip button{text-align:left;padding:13px 12px;font-size:11px;color:var(--teal);background:#0d293e}.preset-strip b{display:block;font-size:13px;color:var(--ink);margin:4px 0}.preset-strip span{display:block;font-size:11px;color:var(--muted);font-weight:400}.preset-strip [aria-pressed=true]{border-color:var(--teal);background:#17434d;box-shadow:inset 0 -3px var(--teal)}.experiment{display:grid;grid-template-columns:285px minmax(0,1fr);gap:22px;align-items:start}.panel{background:linear-gradient(145deg,#112c40ee,#0c2235ee);border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-width:0}.controls{padding:22px;position:sticky;top:15px}.controls h2{font-size:21px;margin:0 0 18px}h2{font-size:27px;line-height:1.2;margin:0 0 12px;letter-spacing:-.02em}h3{font-size:18px;line-height:1.35;margin:0 0 12px}p{margin:10px 0}.control{margin:19px 0}.control>label{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:600}.control output{white-space:nowrap;color:var(--teal);font-variant-numeric:tabular-nums}.control small,.hint{font-size:11.5px;color:var(--muted);line-height:1.6}.control input[type=range]{width:100%;height:23px;margin:8px 0 0;accent-color:var(--teal)}select{padding:8px;max-width:100%;width:100%;font-size:13px;margin-top:7px}.label{font-size:12px;display:block}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.pair label,.probe-controls label{font-size:12px;color:var(--muted)}input[type=number]{display:block;width:100%;background:#081d2e;border:1px solid #446274;border-radius:7px;padding:8px;color:var(--ink);margin-top:6px}input[type=checkbox]{accent-color:var(--teal)}.check{font-size:12px;display:flex;gap:10px;align-items:center}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.actions button{font-size:12px}.add-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:16px 0}.add-row button{padding:8px 5px;font-size:11px}.results{min-width:0}.stage-panel{padding:0;overflow:hidden}.stage-head{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.08em;padding:15px 18px;border-bottom:1px solid var(--line);color:var(--muted)}.stage-head span:first-child{color:var(--teal);font-weight:700}.stage-head b{padding:0 9px}.stage{position:relative;width:100%;aspect-ratio:5/3;background:#071b2b;isolation:isolate}.stage canvas,.stage svg{position:absolute;width:100%;height:100%;top:0;left:0}.stage svg{touch-action:none;user-select:none;cursor:crosshair}.stage svg .handle{cursor:grab}.stage svg .handle:active{cursor:grabbing}.stage svg text{pointer-events:none;user-select:none}.legend-row{display:flex;align-items:center;gap:10px;padding:10px 18px;color:var(--muted);font-size:10px;flex-wrap:wrap}.colour-ramp{width:130px;height:8px;border-radius:5px;background:linear-gradient(90deg,#183750,#287f9b,#62ddd1,#efd17b,#f1836b)}#legend-caption{margin-left:auto;font-size:9px}.playbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line)}.playbar label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.playbar select{width:auto;margin:0;padding:5px}.playbar button{font-size:11px;padding:7px 10px}.playbar #clock{font-size:12px;font-variant-numeric:tabular-nums;color:var(--teal)}.caption{font-size:11px;color:var(--muted);line-height:1.6;margin:10px 0}.stage-panel>.caption{padding:0 18px 14px;margin:0}.status{border-left:3px solid var(--teal);background:#133346;padding:13px 16px;font-size:12px;margin:16px 0;border-radius:0 9px 9px 0;color:#d3e8ee}.status.warning{border-color:var(--amber);background:#3a3025}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0}.metric{padding:15px 13px;background:#112c3e;border:1px solid #2d4d61;border-radius:12px}.metric small{font-size:10px;display:block;color:var(--muted);min-height:26px}.metric b{display:block;font-size:23px;line-height:1.3;letter-spacing:-.03em;font-weight:600}.metric span{font-size:10px;color:var(--teal)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:45px 0 20px}.section-head h2{margin:0}.section-head>p{font-size:12px;color:var(--muted)}.probe-panel{margin-top:20px}.probe-panel .section-head{margin:0 0 14px}.probe-panel h2{font-size:19px}.probe-controls{display:grid;grid-template-columns:95px 95px minmax(0,1fr);gap:13px;align-items:end}.probe-result{font-size:12px;line-height:1.7;color:var(--muted)}.probe-result b{color:var(--pink);font-weight:650}.table-scroll{overflow:auto;max-width:100%;margin-top:16px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;font-variant-numeric:tabular-nums}th{font-size:11px;font-weight:600;color:var(--muted)}td,th{padding:9px 10px;border-bottom:1px solid var(--line)}td:not(:first-child),th:not(:first-child){text-align:right;white-space:nowrap}caption{font-size:11px;text-align:left;color:var(--muted);margin-bottom:8px}tbody tr:last-child td{border-bottom:0}.comparebar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:20px 0;font-size:12px;color:var(--amber)}.comparebar .actions{margin:0}.a-field{width:100%;aspect-ratio:5/3;display:block;border-radius:9px;background:#071b2b}#a-panel{padding:8px 12px}#a-panel .stage-head{padding:9px 3px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.guide-grid article{display:flex;flex-direction:column;align-items:flex-start}.guide-grid p{color:var(--muted);font-size:13px;flex:1}.guide-grid button{margin-top:14px;font-size:12px}.mini{height:82px;display:flex;gap:22px;align-items:center;width:100%;color:var(--teal);font-size:28px;margin:3px 0 18px}.mini span:not(.circle){width:38px;height:38px;display:grid;place-items:center;border:1px dashed var(--amber);border-radius:50%;color:var(--amber);font-size:24px}.mini i{font-style:normal;font-size:18px;letter-spacing:4px}.mini .circle{font-size:60px;line-height:1;color:#79c5e3}.mini b{color:var(--pink);font-size:40px}.curve-legend{color:var(--teal)!important}.curve-legend span{color:var(--amber)}.plots{display:grid;grid-template-columns:1fr 1fr;gap:18px}.plots svg{width:100%;height:auto;display:block;overflow:visible}.plots svg text{fill:#b6cddd;font-family:inherit;font-size:12px}.plots .panel{padding:20px}.plots h3{font-size:17px}.compare-table{margin-top:20px}.compare-table .section-head{margin:0 0 12px}.compare-table h2{font-size:22px}.compare-table button{font-size:12px}.equation-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.equation-grid p{font-size:13px;color:var(--muted)}math{font-family:"Cambria Math","STIX Two Math",serif;font-size:21px;margin:24px 0;max-width:100%;overflow:auto;white-space:nowrap}.symbol-line{font-size:11px;color:var(--teal);border-top:1px solid var(--line);padding-top:10px}.limits-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:20px}.limits-grid p,.limits-grid li{font-size:13px;color:var(--muted)}.limits-grid ul{padding-left:20px}.limits h3:nth-of-type(2){color:var(--amber);margin-top:24px}.limits-grid a,.sources a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}.sources{margin:25px 0;padding:18px 22px;border:1px solid var(--line);border-radius:12px;font-size:13px}.sources summary{cursor:pointer}.sources li{margin:10px 0}.connections{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:45px 0 10px}.connections>.eyebrow{grid-column:1/-1}.connections>a{display:flex;flex-direction:column;padding:20px;border:1px solid #386078;border-radius:13px;background:#143449}.connections b{font-size:16px}.connections span{font-size:12px;color:var(--muted);margin-top:10px}footer{border-top:1px solid var(--line);padding:28px 4vw 35px;display:flex;justify-content:space-between;gap:25px;color:var(--muted);font-size:12px}footer b{color:var(--ink)}[hidden]{display:none!important}
@media(min-width:1500px){.stage{max-height:610px}}@media(max-width:1100px){.experiment{grid-template-columns:255px minmax(0,1fr);gap:15px}.controls{padding:17px}.preset-strip{grid-template-columns:repeat(3,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}.hero{gap:5%}.hero-note{padding-left:22px}.wrap{padding:25px 3vw 50px}.plots{grid-template-columns:1fr}.probe-controls{grid-template-columns:80px 80px 1fr}.section-head{gap:12px}.guide-grid{gap:12px}.guide-grid .panel{padding:18px}.mini{gap:10px}.mini i{letter-spacing:1px}}
@media(max-width:760px){body{font-size:15px}.top{padding:15px 5vw;gap:12px;flex-wrap:wrap}.brand{gap:18px}.brand img:first-child{width:125px;height:43px}.brand img:last-child{width:94px;height:43px}.top nav{font-size:12px;gap:15px}.wrap{padding:22px 5vw 40px}.hero{grid-template-columns:1fr;padding:30px 0 20px;gap:16px}.hero h1{font-size:48px}.hero-note{display:none}.lead{font-size:16px}.section-nav{gap:14px;font-size:12px}.preset-strip{gap:7px}.preset-strip button{padding:10px 8px}.preset-strip b{font-size:12px}.preset-strip span{font-size:10px}.experiment{display:flex;flex-direction:column}.controls{position:static;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.controls>.eyebrow,.controls>h2,.controls>#cylinder-controls,.controls>#element-controls,.controls>.actions,.controls>#setup-status{grid-column:1/-1}.controls .control{margin:12px 0}.controls>h2{margin-bottom:5px}#cylinder-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}#cylinder-controls>.hint,#cylinder-controls>.pair,#cylinder-controls>button{grid-column:1/-1}.controls>.check{align-self:center}.results{width:100%}.stage{aspect-ratio:5/3}.stage-head{font-size:8px;padding:12px}.legend-row{gap:7px;padding:9px 12px}.colour-ramp{width:100px}#legend-caption{width:100%;margin:0}.playbar{gap:8px;padding:10px 12px}.probe-controls{grid-template-columns:1fr 1fr}.probe-result{grid-column:1/-1}.probe-panel{padding:17px}.probe-panel .section-head{flex-wrap:wrap;gap:8px}.metrics{grid-template-columns:repeat(2,1fr)}.metric small{min-height:0}.guide-grid,.equation-grid,.limits-grid,.connections{grid-template-columns:1fr}.guide-grid article{position:relative}.mini{height:55px;margin-bottom:14px}.guide-grid button{margin-top:8px}.section-head{align-items:flex-start;flex-direction:column;margin-top:32px}.section-head p{margin:0}.plots .panel{padding:15px}.compare-table{padding:16px}h2{font-size:25px}.panel{border-radius:15px}math{font-size:19px}.equation-grid .panel{padding:19px}.connections{gap:10px}.connections a{padding:18px}footer{flex-direction:column;padding:25px 5vw;gap:5px}.comparebar{gap:15px}.comparebar .actions{width:100%}.comparebar .actions button{flex:1}.crumb{font-size:11px}.stage svg text{font-size:17px}.status{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}}
@media(max-width:760px){.plots svg text{font-size:20px}}
.plot-viewport{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#47748b #102b3d;scrollbar-width:thin}.plot-viewport:focus-visible{outline:3px solid var(--amber);outline-offset:3px}.plot-scroll-hint{display:none;color:var(--muted);font-size:11px;margin:8px 0}.plot-viewport svg{display:block}
@media(max-width:600px){.plot-viewport svg{width:500px;min-width:500px;max-width:none}.plot-scroll-hint{display:block}}
