:root{color-scheme:dark;--bg:#071725;--panel:#102737;--line:#294453;--ink:#edf7fb;--muted:#aac1cd;--blue:#67e8df;--amber:#ffc575;--accent:#87bdf6;font-family:Inter,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:radial-gradient(ellipse at 85% 3%,#173e56 0,transparent 35%),var(--bg);color:var(--ink);line-height:1.55}a{color:inherit;text-underline-offset:4px}button,select,input{font:inherit}button,select{border:1px solid #45606d;border-radius:7px;background:#142f40;color:var(--ink);padding:9px 12px;cursor:pointer}button:hover,button:focus-visible,select:focus-visible{border-color:var(--blue);background:#214455}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.primary{background:#77e3d9;color:#09232c;border-color:#77e3d9;font-weight:700}.primary:hover{background:#b0fff6;color:#09232c}button:disabled{opacity:.45;cursor:default}h1,h2,h3,p{margin-top:0}h2{font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.2;letter-spacing:-.025em}h3{font-size:1.05rem;line-height:1.3}p{color:var(--muted)}.top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #385361;padding:18px 4vw;gap:16px}.brand{display:flex;align-items:center;gap:24px}.brand img:first-child{width:175px;height:45px;object-fit:contain}.brand img:last-child{width:145px;height:45px;object-fit:contain}.top nav{display:flex;gap:22px;font-size:.88rem}.top nav a{text-decoration:none}.wrap{max-width:1490px;margin:auto;padding:0 4vw}.crumb{display:flex;flex-wrap:wrap;gap:9px;font-size:.8rem;color:var(--muted);padding:24px 0}.hero{display:grid;grid-template-columns:1fr 280px;align-items:end;gap:35px;padding:34px 0 44px}.eyebrow{font-size:.69rem;letter-spacing:.17em;font-weight:700;color:#9cc1d0;margin-bottom:12px}.hero h1{font-size:clamp(2.8rem,5.5vw,5.4rem);letter-spacing:-.055em;line-height:1.02;margin-bottom:25px;font-weight:650}.hero h1 em{font-style:normal;color:#84e8e0}.intro{font-size:1.1rem;max-width:750px}.hero-tags{display:flex;flex-wrap:wrap;gap:12px;font-size:.74rem;color:#c2dae3}.hero-tags span{border:1px solid #3b5868;border-radius:30px;padding:5px 12px}.hero-index{border-left:1px solid #537183;padding-left:24px}.hero-index b{font-size:1.15rem}.hero-index p{margin:15px 0;font-size:.9rem}.hero-index a{font-size:.85rem;color:var(--blue)}.section-nav{display:flex;gap:25px;border-block:1px solid var(--line);padding:15px 0;font-size:.83rem;margin-bottom:28px}.section-nav a{text-decoration:none}.experiment{display:grid;grid-template-columns:290px 1fr;gap:20px;align-items:start}.panel{background:linear-gradient(135deg,#142d3e,#0d2332);border:1px solid var(--line);border-radius:13px;padding:22px;min-width:0}.controls{position:sticky;top:20px;padding:20px}.section-head{display:flex;justify-content:space-between;align-items:start;gap:14px}.section-head h2{margin-bottom:12px}.section-head>span{color:var(--muted);font-size:.75rem;text-align:right}.small{font-size:.78rem;line-height:1.5}.control{margin:17px 0}.control-head{display:flex;align-items:baseline;justify-content:space-between;gap:7px;font-size:.8rem}.control-head label{font-weight:600}.control-head output{color:var(--blue);font-size:.78rem;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.control input[type=range]{display:block;width:100%;accent-color:var(--blue);margin:9px 0;height:18px;cursor:pointer}.control small{display:block;color:#91adbb;font-size:.7rem;line-height:1.3}.advanced{border-top:1px solid var(--line);padding-top:12px}.advanced summary{cursor:pointer;font-size:.8rem;color:#d5e9f0}.control-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:22px}.control-actions button{font-size:.75rem;padding:9px 6px}.controls #save-state{margin:12px 0 0}.results{min-width:0}.stage{padding:16px;overflow:hidden}.stage-heading{display:flex;justify-content:space-between;gap:15px;font-size:.66rem;letter-spacing:.1em}.legend{white-space:nowrap;display:flex;align-items:center;gap:7px}.legend i{display:inline-block;width:13px;height:3px;background:var(--blue)}.legend .a{background:var(--amber)}#rotor{display:block;width:100%;height:340px;margin-top:10px}.stage-foot{display:flex;justify-content:space-between;gap:14px;color:#adc4cf;font-size:.65rem;padding-bottom:12px;border-bottom:1px solid var(--line)}.live{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:15px}.live small{display:block;font-size:.64rem;color:var(--muted)}.live strong{display:block;font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}.playback{margin-top:15px;padding:18px 20px}.playback h2{font-size:1rem}.playback output{color:var(--blue);font-variant-numeric:tabular-nums}.events{display:flex;flex-wrap:wrap;gap:8px;margin:3px 0 14px}.event{font-size:.68rem;padding:4px 8px;border:1px solid #44616f;border-radius:4px;color:#bfd7e2}.event.active{border-color:var(--blue);color:#9ef7ed}.playbar{display:flex;align-items:center;gap:8px}.playbar input{flex:1;min-width:45px;accent-color:var(--blue)}.playbar button,.playbar select{font-size:.75rem;padding:7px 10px}.playback .small{margin:12px 0 0}.status{margin:12px 0;padding:9px 12px;border-left:3px solid #67e8df;font-size:.77rem;background:#143435}.status.warning{border-color:#ffc575;background:#3d3027;color:#ffe0ae}.presets{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.presets button{font-size:.73rem}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{background:#142c3a;border:1px solid var(--line);border-radius:10px;padding:13px}.metric small{display:block;font-size:.68rem;color:var(--muted)}.metric strong{font-size:1.25rem;color:var(--blue);font-weight:600}.metric span{display:block;font-size:.71rem;color:var(--amber);margin-top:4px}.plot-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0}.wide{grid-column:1/-1}.plot-card canvas{height:250px;width:100%;display:block}.plot-card.wide canvas{height:270px;cursor:crosshair}.plot-card p{font-size:.83rem;margin:12px 0 0;max-width:850px}.balance-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px}.balance-card svg{width:100%;height:auto;display:block;touch-action:none}.balance-card>p{font-size:.82rem}.balance-card svg text{font-family:Inter,Arial,sans-serif}.balance-card svg [data-drag]{cursor:grab}.balance-card svg [data-drag]:active{cursor:grabbing}.read-card{padding:30px}.read-item{display:flex;gap:18px;border-bottom:1px solid var(--line);padding:15px 0}.read-item:last-child{border:0}.read-item>b{font-size:1.5rem;color:#6ce0d7;font-weight:400}.read-item h3{margin-bottom:8px}.read-item p{font-size:.87rem;margin-bottom:5px}.equations{padding:50px 0 30px}.equation-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.equation-grid p{font-size:.85rem}.math{overflow-x:auto;padding:15px 0;color:#edfcff}.math math{font-size:1.25rem}.limits{display:grid;grid-template-columns:1fr 2fr;gap:35px;margin:12px 0 28px}.limits p,.limits li{font-size:.87rem}.limits summary{cursor:pointer;color:#d7eef5}.limits li{margin:9px 0}.related{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0}.related a{border:1px solid var(--line);border-radius:10px;text-decoration:none;padding:20px}.related small{display:block;letter-spacing:.1em;font-size:.65rem;color:var(--blue);margin-bottom:8px}footer{display:grid;grid-template-columns:.7fr 1.4fr 1fr;gap:25px;padding:35px 4vw;border-top:1px solid var(--line);margin-top:45px;font-size:.75rem}footer p{margin:0}.skip{position:absolute;left:20px;top:-80px;z-index:4;background:#fff;color:#071725;padding:10px}.skip:focus{top:10px}@media(max-width:1100px){.experiment{grid-template-columns:250px 1fr}.wrap{padding:0 24px}.panel{padding:18px}.stage{padding:14px}.hero-index{width:230px}.live strong{font-size:1rem}#rotor{height:310px}}@media(max-width:800px){.top{padding:14px 22px;flex-wrap:wrap}.brand img:first-child{width:140px;height:35px}.brand img:last-child{width:120px;height:35px}.top nav{gap:20px;font-size:.78rem}.hero{grid-template-columns:1fr;padding:22px 0 30px}.hero-index{width:auto;border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.hero-index b{font-size:1rem}.hero-index p{display:none}.hero-index a{float:right}.section-nav{gap:15px;overflow:auto;white-space:nowrap}.experiment{grid-template-columns:1fr}.controls{position:static}.controls #controls{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.controls #advanced-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.control-actions{grid-template-columns:repeat(4,1fr)}.plot-grid,.balance-row{grid-template-columns:1fr}.limits{grid-template-columns:1fr;gap:8px}.metrics{gap:8px}.hero h1{font-size:3rem}footer{grid-template-columns:1fr 1fr}footer>b{grid-column:1/-1}}@media(max-width:480px){.wrap{padding:0 16px}.brand{gap:18px}.brand img:first-child{width:125px}.brand img:last-child{width:105px}.top{padding:12px 16px}.crumb{font-size:.68rem}.hero h1{font-size:2.65rem}.intro{font-size:.96rem}.hero-index a{float:none;display:block;margin-top:10px}.hero-tags{font-size:.65rem}.panel{padding:15px}.controls #controls,.controls #advanced-controls{gap:0 14px}.control-head{font-size:.72rem;flex-wrap:wrap}.control-head output{font-size:.72rem}.control{margin:12px 0}.control-actions{grid-template-columns:1fr 1fr}.stage-heading{font-size:.55rem;gap:6px;flex-wrap:wrap}#rotor{height:350px}.stage-foot{font-size:.6rem;flex-wrap:wrap}.live{grid-template-columns:1fr 1fr}.live strong{font-size:1.1rem}.live small{font-size:.64rem}.metrics{grid-template-columns:1fr}.metric{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}.metric strong{text-align:right}.metric span{grid-column:1/-1}.playbar{gap:5px}.playbar button,.playbar select{font-size:.66rem;padding:7px}.plot-card canvas{height:240px}.equation-grid{grid-template-columns:1fr}.math math{font-size:1rem}.related{grid-template-columns:1fr}.section-head>span{max-width:90px}.read-card{padding:20px}footer{grid-template-columns:1fr}footer>b{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Export action and compact canvas retain the same desktop presentation. */
.control-actions #export{grid-column:1/-1}.controls #export-state{margin:8px 0 0}.stage{container-type:inline-size}@container(max-width:560px){#rotor{height:400px}}
