
:root{color-scheme:dark;--bg:#0a1419;--panel:#13242a;--ink:#eee8d0;--muted:#9cbbbd;--gold:#e3ca82;--mint:#82d6c5;--line:#4b6865}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 12% 0,#253532,transparent 52%),var(--bg);color:var(--ink);font:15px/1.6 system-ui,sans-serif}main{max-width:1550px;margin:auto;padding:32px}h1,h2,h3{font-family:Georgia,serif;line-height:1.12;font-weight:500}h1{font-size:clamp(44px,5vw,76px);margin:12px 0}h2{font-size:31px;margin:10px 0}h3{font-size:24px}p{margin:12px 0}a{color:var(--mint)}.back{display:block;margin-bottom:18px}.embedded .back{display:none}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-size:11px;font-weight:700}.lead{font-size:18px;color:var(--muted);max-width:880px}.route{display:flex;gap:20px;align-items:center;margin:28px 0;border-block:1px solid var(--line);padding:18px 0}.route span{flex:1;color:var(--muted);font-size:13px}.route b{display:block;color:var(--gold);font-size:14px}.route i{color:var(--mint)}button,select,.file{border:1px solid #698278;border-radius:10px;background:#203439;color:var(--ink);font:inherit;padding:9px 14px;cursor:pointer;transition:background .18s,box-shadow .18s,border-color .18s}button:hover,select:hover,.file:hover,button:focus-visible,select:focus-visible{border-color:#b3f6d9;background:#294941;box-shadow:0 0 19px #72eec132}button:disabled{opacity:.45;cursor:wait}.toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:20px 0}.toolbar label{font-size:12px;color:var(--muted)}.toolbar select{display:block;max-width:215px;font-size:13px;min-height:43px}.file{position:relative;overflow:hidden;color:var(--ink)!important;font-size:14px!important}.file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.views{display:grid;grid-template-columns:1fr 1.7fr;gap:18px}figure{margin:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#0a1118}figcaption{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 18px;font-size:12px;border-bottom:1px solid #324743}figcaption b{color:var(--gold);font-size:13px}figcaption span{color:var(--muted);text-align:right}.reference canvas{background:radial-gradient(ellipse,#27363a,#0f1a21)}canvas{display:block;width:100%;height:auto}.stage{position:relative}.stage #overlay{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.stage-label{position:absolute;left:18px;bottom:11px;font:10px ui-monospace,monospace;color:#76baa0;pointer-events:none;letter-spacing:.12em}#signal-dot{color:var(--mint)}.controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;margin:22px 0}.controls label{color:var(--muted);font-size:12px}.controls output{float:right;color:var(--gold);font-variant-numeric:tabular-nums}.controls input{display:block;width:100%;margin:14px 0 0;accent-color:var(--mint)}.controls select{width:100%;margin-top:4px;font-size:12px}.options{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 0;border-block:1px solid var(--line);font-size:12px}.options button{font-size:12px}.options input,.delivery input{accent-color:var(--mint)}.inspector{display:grid;grid-template-columns:1fr 1.2fr;gap:30px;margin:30px 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.metrics dt{font-size:11px;color:var(--muted)}.metrics dd{margin:0;color:var(--mint);font-size:20px;font-variant-numeric:tabular-nums}#status{font-size:13px}.muted,#credit{color:var(--muted);font-size:12px}.delivery{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:center;border:1px solid var(--line);background:linear-gradient(120deg,#283c32,#15232b);border-radius:18px;padding:28px}.delivery label{display:block;font-size:12px;color:var(--muted);margin-top:12px}.delivery p{color:var(--muted)}.primary{border-color:var(--gold);color:var(--gold)}#export-status{font-size:12px;overflow-wrap:anywhere}.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:28px}.notes p{font-size:13px;color:var(--muted)}code{color:var(--gold)}footer{margin-top:22px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--muted)}#error{background:#52272e;color:#ffe0d8;border:1px solid #e98787;padding:18px;border-radius:10px}#machine-inputs{padding:8px 16px;display:flex;gap:10px;flex-wrap:wrap;font-size:12px}#machine-inputs label{display:flex;align-items:center;gap:5px}#machine-inputs button{padding:4px 8px;font-size:12px}@media(max-width:950px){main{padding:22px}.controls{grid-template-columns:repeat(3,1fr)}.views{grid-template-columns:1fr 1.4fr}figcaption{display:block}figcaption span{display:block;text-align:left;margin-top:4px}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){main{padding:16px}.views,.inspector,.delivery,.notes{grid-template-columns:1fr}.route{gap:8px}.route span{font-size:10px}.route b{font-size:12px}.toolbar select{max-width:165px}.controls{gap:14px;grid-template-columns:repeat(2,1fr)}.reference canvas{max-height:240px;object-fit:contain}.metrics{grid-template-columns:repeat(4,1fr)}.delivery{gap:14px;padding:20px}h1{font-size:48px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.signal-history{margin:32px 0;padding:24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#172d30,#101c23)}.history-intro p{max-width:900px;color:var(--muted)}.history-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.history-toolbar button{font-size:13px}.signal-history figure{max-width:1000px;margin:auto}.signal-history canvas{touch-action:none;cursor:grab}.signal-history canvas:active{cursor:grabbing}.history-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:20px 0}.history-controls label{display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--muted);min-width:0}.history-controls select{font-size:12px;width:100%}.history-controls input{width:100%;accent-color:var(--mint)}.history-controls output{font-variant-numeric:tabular-nums;color:var(--gold)}@media(max-width:650px){.signal-history{padding:15px}.history-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
/* Read a selected curve and its own temporal sweep together. */
.inspector{display:block;margin:18px 0}.inspector h2{display:inline;font-size:23px;margin-right:16px}.inspector .eyebrow{margin-right:12px}.inspector #selection{margin:8px 0;font-size:13px;min-height:42px}.inspector .metrics{display:flex;flex-wrap:wrap;gap:12px 30px;margin:10px 0}.inspector .metrics>div{display:flex;align-items:baseline;gap:10px}.inspector .metrics dd{font-size:16px}.inspector #limits{margin-bottom:0}
.history-explainer{color:var(--muted);font-size:14px;margin:0 0 20px}.history-panes{display:grid;grid-template-columns:1fr 1fr;gap:20px}.history-pane{min-width:0;display:flex;flex-direction:column}.history-pane header{min-height:106px}.history-pane h2{font-size:28px}.history-pane figure{width:100%;display:flex;flex-direction:column;flex:1}.history-pane figcaption{min-height:62px}.geometry-stage{display:flex;align-items:center;flex:1}.history-pane canvas{width:100%}
@media(max-width:720px){.history-panes{grid-template-columns:1fr}.history-pane header{min-height:0}.history-pane figure{max-width:none}.history-pane h2{font-size:26px}}
.history-picker{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--muted);margin:0 0 20px}.history-picker select{max-width:100%;font-size:12px}
/* Matched drawings share the same 720 × 480 artboard and visual scale. */
.views{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.views>figure{min-width:0}.views figcaption{display:flex;min-height:70px;align-items:center}
.views figcaption b{flex-shrink:0}.views figcaption span{max-width:65%}
.views canvas,.views .stage{aspect-ratio:3/2}.reference canvas{max-height:none}
/* Counters must not push neighbouring controls when digits or labels change. */
.inspector .metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 24px}
.inspector .metrics>div{display:block;min-width:0}.inspector .metrics dd{min-height:26px;white-space:nowrap;font-variant-numeric:tabular-nums}
.inspector #selection{min-height:4.8em}.inspector #limits{min-height:3.2em}
.history-picker select{width:300px;min-width:0}.history-picker{min-height:44px}
.history-toggle{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 16px;color:var(--gold);font-size:14px}
.history-toggle input{accent-color:var(--mint)}.history-toggle span{font-size:12px;color:var(--muted)}
.history-controls :disabled,.history-toolbar :disabled{cursor:default;opacity:.45}
.history-controls label:has(:disabled){opacity:.7}.signal-history canvas[aria-disabled="true"]{cursor:default}
#history-status{min-height:3.2em;font-variant-numeric:tabular-nums}
@media(max-width:650px){.views{grid-template-columns:1fr}.views figcaption{min-height:70px}.inspector .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.history-picker{align-items:start;flex-direction:column;gap:6px}.history-picker select{width:100%}.inspector #selection{min-height:8em}}
