:root{color-scheme:dark;--bg:#080f13;--panel:#101a20;--line:#29383e;--ink:#e7e9ed;--muted:#92a8ac;--teal:#dfff00;--gold:#e7c183;--gold-muted:#806a43;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}button,input,select{font:inherit;min-width:0}button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #dfff00}button{cursor:pointer;border:1px solid var(--line);border-radius:5px;background:#17242b;color:var(--ink);padding:12px 12px}button:hover{background:#24363d}button:disabled{opacity:.4;cursor:default}input,select{background:#0b1419;color:var(--ink);border:1px solid #3a4d53;border-radius:4px;padding:12px 10px}a{color:var(--teal);text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.035em}p{color:var(--muted)}h1{font-size:32px;line-height:1.2}h1 span{color:var(--gold)}h2{font-size:19px}h3{font-size:14px;color:var(--ink);margin-bottom:8px}.top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 30px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px;color:var(--ink)}.brand>b{font-size:29px;letter-spacing:-2px;line-height:1}.brand>b>span{color:var(--teal)}.brand>span{font:12px/1.65 ui-monospace,monospace;letter-spacing:1px}.brand small{color:var(--muted);font:12px ui-monospace,monospace}.top-right{display:flex;align-items:center;gap:28px}.local{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.local i{height:5px;width:5px;background:var(--teal);border-radius:50%}.back{font-size:12px;color:var(--muted)}main{max-width:1580px;margin:auto;padding:28px 30px}.heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:26px}.eyebrow{font:12px ui-monospace,monospace;letter-spacing:1.7px;color:var(--gold);margin-bottom:10px}.description{font-size:14px;margin-top:10px}.formula{font-family:ui-serif,Georgia,serif;color:var(--gold);display:flex;align-items:center;gap:30px}.formula>span{font-size:32px;line-height:1}.formula small{font:12px ui-monospace,monospace;align-self:end;color:var(--muted);padding-bottom:4px}.fraction{display:inline-flex;vertical-align:middle;flex-direction:column;align-items:center;font-size:21px;line-height:1.25;min-width:23px;margin-left:4px}.fraction>span:first-child{width:100%;border-bottom:1px solid var(--gold);text-align:center}.instrument{border:1px solid var(--line);border-radius:12px;display:flex;justify-content:space-between;gap:24px;align-items:end;padding:17px 18px;background:var(--panel);margin-bottom:18px}form{display:flex;gap:14px;align-items:end}form label{display:flex;flex-direction:column;gap:12px;color:var(--muted);font-size:12px;position:relative}form label>span{position:absolute;right:0;top:0;color:var(--gold)}form input{width:140px;font:14px ui-monospace,monospace}form label:first-child input{width:180px}form select{min-width:110px;padding:12px 10px}form button{font-size:12px}.playback{display:flex;align-items:center;gap:12px;flex-shrink:0}.primary{background:#dfff00;border-color:#dfff00;color:#171b08;font-weight:650;min-width:118px}.primary:hover:not(:disabled):not([aria-disabled=true]){background:#eaff66;border-color:#eaff66;color:#171b08}.speed{margin-left:12px;display:flex;gap:12px;align-items:center;color:var(--muted);font-size:11px}.speed select{padding:8px}.lab-grid{display:grid;grid-template-columns:minmax(0,1fr) 284px;gap:18px}.visual-panel{border:1px solid var(--line);border-radius:12px;background:#0c151a;overflow:hidden}.view-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:12px 15px;gap:10px}.view-bar>[role=tablist]{display:flex;gap:4px}.view-bar button{background:transparent;border-color:transparent;color:var(--muted);font-size:12px;padding:12px 10px}.view-bar button b{font:12px ui-monospace,monospace;margin-right:5px;opacity:.65}.view-bar button[aria-selected=true]{background:#2c261b;color:#dfff00;border-color:#dfff00}.mono{font:12px ui-monospace,monospace;white-space:nowrap;color:var(--muted)}.canvas-tools{height:49px;padding:12px 20px;display:flex;align-items:center}.canvas-tools>div{display:flex;align-items:center;gap:10px}.canvas-tools label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:9px}.canvas-tools select,.canvas-tools button{padding:4px 12px;font-size:11px}.checkbox{cursor:pointer}.checkbox input{accent-color:#dfff00;width:14px;height:14px;margin:0}.checkbox .mono{font-size:12px;color:#a69679}.canvas-wrap{position:relative;padding:0 14px;min-height:330px}canvas{display:block;width:100%;height:360px;touch-action:pan-y}.canvas-wrap.mode-3d canvas{touch-action:none;cursor:grab}.canvas-wrap.mode-3d canvas:active{cursor:grabbing}.canvas-meta{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px;padding:12px 12px 14px}.canvas-meta .mono{color:var(--gold-muted);font-size:12px;letter-spacing:1px}.scrubber{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.scrubber input{width:100%;accent-color:#dfff00;height:3px;padding:0}.scrubber output{font:12px ui-monospace,monospace;min-width:24px;color:var(--gold)}.scrubber button{white-space:nowrap;font-size:12px;padding:5px 9px}.geometry-stats{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;padding:13px;border-top:1px solid var(--line);font:12px ui-monospace,monospace;color:var(--muted)}.geometry-stats b{color:var(--gold);font-weight:400}.plot-note{padding:13px 20px;border-top:1px solid var(--line);font-size:12px;line-height:1.6}.readout{border:1px solid #4b422e;background:linear-gradient(140deg,#191b19,#10191e 55%);border-radius:12px;padding:20px;display:flex;flex-direction:column}.readout-heading{display:flex;align-items:center;justify-content:space-between;font:12px ui-monospace,monospace;letter-spacing:1.1px;color:#b9aa8c}.readout-heading i{width:5px;height:5px;border-radius:50%;background:var(--gold-muted)}.value-label{font:18px ui-serif,Georgia,serif;color:var(--gold);margin-top:25px}.current{font:clamp(19px,1.7vw,26px) ui-monospace,monospace;letter-spacing:-1px;line-height:1.8;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.target{margin:12px 0 18px;padding-bottom:19px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:12px;font-size:12px;color:var(--muted)}.target b{font:12px ui-monospace,monospace;color:#c4b390;white-space:nowrap}.measure{display:grid;grid-template-columns:1fr auto;gap:4px;margin-bottom:15px}.measure>span{font-size:12px;color:var(--muted)}.measure b{font:12px ui-monospace,monospace;color:var(--ink)}.measure small{font:12px ui-monospace,monospace;grid-column:1/-1;color:#6d848b}.status-box{padding:12px 12px;background:#0a1418;border:1px solid var(--line);border-radius:5px;font-size:12px;color:var(--gold);margin-top:4px}.status-box p{font-size:12px;margin-top:6px}.stability{padding-top:22px;margin-top:auto}.stability>span{font-size:12px;color:var(--muted)}.stability b{display:block;font:12px ui-monospace,monospace;color:var(--teal);margin:12px 0}.stability p{font-size:12px;line-height:1.65}.lower-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;margin-top:22px}.process-panel,.export-panel{border:1px solid var(--line);border-radius:12px;padding:21px 22px;background:var(--panel)}.section-title{display:flex;align-items:center;gap:12px}.section-number{font:12px ui-monospace,monospace;border:1px solid #445052;color:var(--muted);width:23px;height:23px;display:grid;place-content:center;border-radius:4px}.process{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);padding:0;margin:24px 0;gap:14px}.process li{border-top:1px solid #424b54;padding-top:12px;position:relative}.process li:not(:last-child):after{content:'→';position:absolute;right:0;top:-11px;color:var(--gold);background:var(--panel);padding:0 5px}.process b{font-size:12px;font-weight:500;color:var(--muted);display:block;margin-bottom:7px}.process code{font:13px ui-monospace,monospace;color:var(--gold)}.process-panel>p,.export-panel>p{font-size:12px;line-height:1.7}.export-panel>p{margin-top:16px}.export-actions{display:flex;gap:12px;margin:18px 0}.export-actions button{flex:1;font-size:12px}.handoff{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 12px;border:1px solid #424b54;border-radius:5px;background:#1b1e22;font-size:12px}.export-panel .fine{font-size:12px;margin-top:9px}details{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}summary{cursor:pointer;color:#becacb;font-size:12px}details p{font-size:12px;line-height:1.7;margin-top:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.detail-grid p{margin-top:0}.recipe{display:block;padding:14px 0 0;font:12px/1.8 ui-monospace,monospace;color:var(--teal)}.data-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 21px}.data-panel summary{display:flex;justify-content:space-between;gap:20px}.data-panel summary:before{content:'+';color:var(--gold);margin-right:3px}.data-panel[open] summary:before{content:'−'}.data-panel summary>span:first-child{margin-right:auto}.table-wrap{max-height:320px;overflow:auto;margin-top:18px}table{border-collapse:collapse;font:12px/1.7 ui-monospace,monospace;width:100%;text-align:right;white-space:nowrap}th{color:var(--gold);font-weight:400}th,td{padding:12px 12px;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left}.error{padding:12px 15px;background:#3b2520;color:#f2b198;border:1px solid #7e4435;border-radius:5px;margin-bottom:18px}footer{display:flex;justify-content:space-between;gap:18px;margin-top:26px;color:#6e868c;font:12px/1.6 ui-monospace,monospace;letter-spacing:.5px}.sr-only{position:absolute!important;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}[hidden]{display:none!important}@media(min-width:1500px){canvas{height:405px}.lab-grid{grid-template-columns:minmax(0,1fr) 306px}}@media(max-width:1180px){.instrument{flex-wrap:wrap;gap:16px}.playback{margin-left:auto}.formula{gap:16px}.formula small{display:none}.lab-grid{grid-template-columns:minmax(0,1fr) 263px}.lower-grid{grid-template-columns:minmax(0,1fr) 320px}.current{font-size:21px}.process{gap:9px}.process b{font-size:10px}}@media(max-width:850px){main{padding:22px 18px}.top{padding:15px 18px}.local{display:none}.heading{gap:12px}h1{font-size:27px}.formula>span{font-size:27px}.lab-grid{grid-template-columns:minmax(0,1fr) 237px}.readout{padding:16px}.current{font-size:19px}.lower-grid{grid-template-columns:1fr}.export-panel>p{max-width:560px}.export-actions{max-width:400px}.handoff{max-width:400px}.process{gap:15px}.view-bar{padding:8px}.view-bar button{padding:12px 6px;font-size:11px}.view-bar button b{display:none}.view-bar .mono{font-size:9px}.canvas-tools{padding:12px 13px}canvas{height:335px}.measure{grid-template-columns:1fr}.measure small{grid-column:auto}.measure b{font-size:11px}.speed{margin-left:4px}.stability{padding-top:15px}}@media(max-width:650px){.top{padding:13px 14px}.brand{gap:10px}.brand>b{font-size:25px}.brand>span{font-size:9px}.brand small{font-size:7px}.back{font-size:10px}main{padding:22px 13px}.heading{align-items:start;position:relative;padding-bottom:53px;margin-bottom:18px}h1{font-size:27px;max-width:310px}h1 span{display:block}.eyebrow{font-size:9px}.description{font-size:12px}.formula{position:absolute;bottom:0;left:0}.formula>span{font-size:23px}.formula small{display:inline;font-size:12px;margin-left:13px}.fraction{font-size:16px}.instrument{padding:13px;gap:16px}form{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:12px}form label:first-child input,form input,form select{width:100%;min-width:0}form label:first-child{grid-column:1/-1}form button{grid-column:1/-1}.playback{width:100%;margin:0;gap:6px;flex-wrap:wrap}.playback button{font-size:12px;padding:9px}.primary{min-width:114px}.speed{margin-left:auto;gap:4px}.speed>span{display:none}.speed select{padding:12px 5px}.lab-grid{grid-template-columns:1fr}.readout{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:18px}.readout-heading{grid-column:1/-1}.value-label{grid-column:1/-1;margin-top:16px}.current{grid-column:1/-1;font-size:30px;letter-spacing:-1.5px}.target{grid-column:1/-1;margin:5px 0 17px;padding-bottom:16px;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.target b{font-size:11px}.measure{grid-template-columns:1fr}.status-box{grid-column:1/-1}.stability{grid-column:1/-1;padding-top:15px}.stability p{max-width:500px}.measure small{display:none}.view-bar{padding:12px 8px}.view-bar button{font-size:12px;padding:12px 6px}.view-bar .mono{font-size:9px}.canvas-wrap{padding:0 4px}.canvas-tools{padding:10px}.canvas-tools>div{gap:6px;flex-wrap:wrap}#tools-3d{width:100%}#tools-3d select{max-width:44%;font-size:10px}#camera-reset span{display:none}canvas{height:330px}.canvas-meta{padding:12px 12px 12px;font-size:9px}.canvas-meta .mono{display:none}.scrubber{padding:12px 13px;gap:9px}.scrubber button{font-size:10px}.plot-note{padding:12px 15px;font-size:10px}.process-panel,.export-panel{padding:19px 17px}.process{grid-template-columns:1fr 1fr;gap:20px}.process li:nth-child(2):after{display:none}.process b{font-size:11px}.detail-grid{grid-template-columns:1fr;gap:18px}.lower-grid{gap:14px;margin-top:16px}.data-panel{padding:15px}.data-panel summary{font-size:11px}footer{flex-direction:column;gap:6px}.geometry-stats{gap:13px;font-size:10px}table{font-size:10px}th,td{padding:12px 9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Readable controls and supporting copy, including narrow screens. */
body{font-size:16px}.description{font-size:16px}button,select,input,form button,.playback button,.view-bar button{font-size:14px}form label,.canvas-tools label,.speed,.measure>span,.target>span,.stability>span{font-size:14px}form select{font-size:14px}.canvas-tools select,.canvas-tools button,#tools-3d select{font-size:14px}.process-panel>p,.export-panel>p,details p,.detail-grid p{font-size:16px}.stability p,.plot-note,.status-box,.status-box p,.export-panel .fine,.canvas-meta{font-size:14px}.process b,.handoff,.export-actions button,summary,.data-panel summary{font-size:14px}.top-right,.back{font-size:14px}.readout-heading{font-size:12px;letter-spacing:.4px}.measure b,.measure small,.target b,.stability b,.mono{font-size:12px}.canvas-tools{min-height:54px;height:auto}.view-bar{flex-wrap:wrap}.current{letter-spacing:-.8px}.process code{font-size:14px}.canvas-tools label{flex-wrap:wrap}.geometry-stats{font-size:12px}.scrubber,.scrubber button{font-size:14px}.view-bar .mono,.canvas-meta .mono,footer{font-size:12px}.recipe{font-size:14px}.process-panel h3{font-size:16px}.readout{min-width:0}.measure{grid-template-columns:1fr}.measure small{grid-column:auto}.target b{white-space:normal}.process{grid-template-columns:repeat(2,1fr);gap:24px 20px}.process li:nth-child(2):after{display:none}@media(max-width:650px){form label,.description{font-size:14px}.view-bar button{font-size:14px}.view-bar>[role=tablist]{flex-wrap:wrap}.view-bar .mono{font-size:12px}.brand>span{font-size:12px}.brand small{display:none}.heading{padding-bottom:70px}.formula small{font-size:12px}.playback button{font-size:14px}.canvas-tools>div{flex-wrap:wrap}#tools-3d select{max-width:100%;flex:1 1 160px}.canvas-tools{padding-bottom:12px}.canvas-meta{font-size:12px}.target{gap:9px}.target b{font-size:12px}.geometry-stats{font-size:12px}.process b{font-size:14px}.plot-note{font-size:14px}table{font-size:12px}.back{font-size:12px}.speed select{font-size:14px}.readout .measure{grid-template-columns:1fr}.primary{min-width:120px}}

.handoff[aria-disabled=true]{opacity:.4;cursor:default}
@media(max-width:650px){
  .heading{display:block;padding-bottom:0;margin-bottom:14px}
  .heading .eyebrow,.heading .description{display:none}
  main{padding-top:16px}
  .heading h1 span{display:inline}
  .formula{position:static;margin-top:12px}
  form label:first-child{grid-column:auto}
  form label>span{display:none}
  form button{grid-column:auto}
}
