:root{color-scheme:dark;--bg:#0b100e;--surface:#111814;--surface-2:#18221c;--ink:#edf2e9;--mute:#a1b1a5;--line:#34483b;--p:#a7f3ad;--selected:#233e2b;--accent:#b7f4ab;--amber:#f2c477;--shadow:0 16px 45px #0002;--ease-out:cubic-bezier(.23,1,.32,1);font:100%/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root[data-theme=light]{color-scheme:light;--bg:#f3f4ee;--surface:#fffef9;--surface-2:#e9eee4;--ink:#182c21;--mute:#526458;--line:#c1ccbc;--p:#27623a;--selected:#e0edd8;--accent:#27623a;--amber:#805516;--shadow:0 16px 45px #314f2810}
*{box-sizing:border-box}html{scroll-padding-top:1rem}body{margin:0;background:var(--bg);color:var(--ink)}button,select{font:inherit;color:inherit}button,select,summary{touch-action:manipulation}button{cursor:pointer;transition:transform 160ms var(--ease-out);border:1px solid var(--line);background:var(--surface-2);border-radius:10px;min-height:44px;padding:10px 14px;font-size:.875rem;font-weight:550}button:active{transform:scale(.97)}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-underline-offset:3px}button:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,.knob-dial:focus-visible{outline:3px solid var(--p);outline-offset:4px}.app-shell{max-width:1264px;margin:auto;padding:0 max(20px,env(safe-area-inset-left)) 0 max(20px,env(safe-area-inset-right))}.site-header{display:flex;align-items:center;gap:28px;min-height:96px;border-bottom:1px solid var(--line)}.brand{min-height:44px;display:flex;align-items:center;gap:9px;text-decoration:none;font-weight:700;font-size:1.9rem;letter-spacing:-.08em}.brand img{border-radius:10px}.brand-dot{color:var(--p)}.header-note{font-size:.8rem;color:var(--mute)}.header-actions{display:flex;align-items:center;gap:16px;margin-left:auto}select{min-height:44px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 30px 8px 12px;font-size:.8rem;max-width:155px}.help-button{background:transparent;border-color:transparent}.help-button span{margin-left:12px;color:var(--p)}.intro{padding:42px 0 32px;display:grid;grid-template-columns:1fr auto;align-items:end;column-gap:48px}.eyebrow{margin:0;font-size:.68rem;font-weight:650;letter-spacing:.14em}.intro .eyebrow{grid-column:1/-1;color:var(--p);margin-bottom:14px}h1{font-size:clamp(2.6rem,5vw,4.1rem);line-height:1.02;letter-spacing:-.055em;margin:0;font-weight:550}h1 br{display:none}h1 span{font-family:Georgia,serif;font-style:italic;font-weight:400;color:var(--accent)}.intro>p:last-child{margin:0 0 3px;color:var(--mute);font-size:.9rem;line-height:1.65}.mobile-break{display:none}.workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}.display-panel,.control-panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;min-width:0;box-shadow:var(--shadow);padding:22px}.display-panel{position:sticky;top:18px}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px;color:var(--mute)}.plate-label,.small-label{font-size:.64rem;letter-spacing:.06em}.stocks{display:grid;grid-template-columns:1fr 1fr;padding:4px;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;margin-bottom:16px}.stocks button{display:flex;flex-direction:column;align-items:center;border-color:transparent;background:transparent;padding:8px;gap:1px}.stocks button span{font-weight:650;font-size:.9rem}.stocks small{font-size:.7rem;font-weight:400;color:var(--mute)}.stocks button.on{background:var(--selected);border-color:var(--p);color:var(--p)}.scope-face{position:relative;aspect-ratio:1;background:#030504;border:1px solid #2c4434;border-radius:12px;overflow:hidden;width:100%}.scope-face canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hud{position:absolute;inset:0;z-index:3;pointer-events:none;padding:12px;display:flex;flex-direction:column;gap:5px;font-family:ui-monospace,SFMono-Regular,monospace;color:#c8d6c9}.hud-top{display:flex;justify-content:space-between;gap:8px}.hud-chip{font-size:.62rem;letter-spacing:.04em;color:#c6ffd4;background:#0b140de8;border:1px solid #34483b;border-radius:5px;padding:4px 6px;max-width:73%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-chip.warn{color:#f2c477;border-color:#805516}.hud-meters{display:flex;flex-direction:column;gap:3px;width:28%;max-width:120px}.hud-meter{display:flex;align-items:center;gap:6px;font-size:.6rem;color:#a1b1a5}.bar{flex:1;height:5px;background:#18221c;overflow:hidden}.bar i{display:block;height:100%;width:100%;background:#a7f3ad;transform:scaleX(0);transform-origin:left}.hud-cam{pointer-events:auto;position:absolute;left:12px;bottom:12px;background:#101b15dd;color:#c8d6c9;border-color:#34483b;font-size:.7rem;backdrop-filter:blur(8px)}.hud-cam.on{border-color:#a7f3ad;color:#c6ffd4}.hud-cam.denied{border-color:#f2c477}.hud-pip{position:absolute;bottom:12px;right:12px;width:76px;height:76px;object-fit:cover;border:1px solid #a7f3ad;border-radius:8px}.canvas-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#c8d6c9;pointer-events:none;font-size:.95rem}.hint-mark{font:4rem/1 Georgia,serif;color:#a7f3ad;margin-bottom:4px}.canvas-hint small{font-size:.75rem;color:#a1b1a5}.copy{padding:20px 0 16px;min-height:108px}.ratio{color:var(--p);font-size:1.12rem;font-weight:600;letter-spacing:-.025em}.caption{color:var(--mute);font-size:.85rem;line-height:1.55;margin-top:5px;min-height:2.8em}.caption em{font-style:normal}.transport{display:flex;align-items:center;gap:16px;border-top:1px solid var(--line);padding-top:18px}.primary{background:var(--p);color:var(--bg);border-color:var(--p);font-weight:650;padding:12px 22px;min-height:48px}.transport .primary{min-width:160px}.transport p{font-size:.75rem;color:var(--mute);line-height:1.45;margin:0}.status{color:var(--mute);font-size:.73rem;line-height:1.5;min-height:1.5em;margin:12px 0 0;overflow-wrap:anywhere}.control-group+.control-group{border-top:1px solid var(--line);margin-top:22px;padding-top:22px}h3{font-size:.97rem;margin:0;font-weight:600;letter-spacing:-.015em}.group-note{font-size:.76rem;color:var(--mute);margin:3px 0 14px}.presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.presets button{text-align:left;font-size:.8rem;background:var(--surface);font-weight:500;min-height:44px}.presets button.on{border-color:var(--p);background:var(--selected);color:var(--p)}.presets button .icon{display:none}.presets button.on .icon{display:block;float:right;width:16px;height:16px}.presets button.lock{color:var(--amber);border-color:var(--amber)}.knobs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 6px;margin-top:18px}.knob{display:flex;flex-direction:column;align-items:center;gap:6px}.knob-dial{width:60px;height:60px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);box-shadow:inset 0 2px 2px #fff1,0 3px 6px #0001;position:relative;touch-action:none;cursor:grab}.knob-dial:active{cursor:grabbing}.knob-mark{position:absolute;left:calc(50% - 1px);top:9%;height:41%;width:2px;background:var(--p);border-radius:2px;transform-origin:50% 100%;pointer-events:none}.knob-name{font-size:.68rem;color:var(--mute)}.knob-val{font:500 .78rem/1.2 ui-monospace,SFMono-Regular,monospace;color:var(--p);font-variant-numeric:tabular-nums;min-height:1.2em}.display-settings{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0;padding:0}.display-settings summary{cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:space-between;font-size:.82rem;list-style:none}.display-settings summary::-webkit-details-marker{display:none}.display-settings[open] summary>.icon{transform:rotate(180deg)}.crt-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:12px;padding:16px 0 20px}.chk{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;font-size:.75rem;color:var(--mute);cursor:pointer}.chk input{accent-color:var(--p);width:18px;height:18px}.source-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.source-actions button{font-size:.76rem;padding:10px 8px}.mic.live{color:var(--amber);border-color:var(--amber)}.drop{width:100%;border-style:dashed;background:transparent;color:var(--mute);font-size:.71rem;margin:10px 0 20px}.drop.hot{color:var(--p);border-color:var(--p);background:var(--selected)}.record-row{display:flex;align-items:center;gap:10px;justify-content:space-between}.record-row>span{font-size:.8rem}.record-row small{display:block;color:var(--mute);font-size:.68rem;margin-top:3px}.rec{font-size:.76rem;white-space:nowrap}.rec.live{background:#a62626;color:#fff;border-color:#f88484}.ios-note{display:none;color:var(--amber);font-size:.75rem;line-height:1.5}.ios-note.show{display:block}footer{display:flex;justify-content:space-between;gap:16px;padding:28px 0 32px;color:var(--mute);font-size:.7rem}dialog{width:min(540px,calc(100% - 32px));border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:20px;padding:28px;box-shadow:0 24px 80px #0005;max-height:calc(100dvh - 40px)}dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;color:var(--mute)}.dialog-top button{background:transparent;border-color:transparent;font-size:1rem}dialog h2{font-size:1.8rem;line-height:1.15;letter-spacing:-.04em;margin:16px 0 24px}dialog ol{padding-left:22px;font-size:.88rem;line-height:1.7;color:var(--mute)}dialog li{padding-left:6px;margin-bottom:16px}dialog strong{color:var(--ink)}dialog>p{font-size:.8rem;color:var(--mute);line-height:1.65}dialog>.primary{margin-top:16px;width:100%}.hidden{display:none!important}.gl-fail{position:absolute;inset:0;z-index:5;display:grid;place-content:center;padding:30px;text-align:center;color:#f2c477;background:#030504;font-size:.9rem;line-height:1.6}#cap{position:fixed;left:-9999px;top:0;width:9px;height:16px;pointer-events:none}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link:focus{position:fixed;top:10px;left:10px;z-index:20;padding:12px;background:var(--p);color:var(--bg)}.noscript{position:fixed;bottom:0;background:var(--surface);padding:20px;border:1px solid var(--line)}
@media(hover:hover) and (pointer:fine){button:not(:disabled):hover{border-color:var(--p)}.help-button:hover{background:var(--surface-2)}summary:hover{color:var(--p)}}
@media(min-width:1100px){.intro h1 br{display:none}.display-panel{padding:24px}.scope-face{max-height:560px}.intro>p:last-child{max-width:300px}}
@media(max-width:850px){.header-note{display:none}.intro{display:block;padding:30px 0 24px}.intro>p:last-child{margin-top:16px;font-size:.85rem}.intro h1 br{display:block}.workspace{gap:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.display-panel,.control-panel{padding:16px}.plate-label{display:none}.small-label{display:none}}
@media(max-width:650px){.app-shell{padding:0 max(16px,env(safe-area-inset-left)) 0 max(16px,env(safe-area-inset-right))}.site-header{min-height:78px;gap:10px}.brand{font-size:1.65rem}.brand img{width:30px;height:30px}.header-actions{gap:6px}select{font-size:.72rem;max-width:126px;padding-left:9px}.help-button{font-size:.75rem;padding:8px}.help-button span{display:none}.intro{padding:28px 2px 24px}.intro h1 br{display:none}.intro h1{font-size:2.8rem;max-width:360px;line-height:1.02}.intro .eyebrow{font-size:.6rem;margin-bottom:12px}.intro>p:last-child{font-size:.83rem;margin-top:12px}.mobile-break{display:block}.workspace{display:flex;flex-direction:column;gap:16px}.display-panel,.control-panel{width:100%;padding:16px;border-radius:15px;position:static}.panel-top{margin-bottom:16px}.plate-label{display:block;font-size:.55rem}.stocks{margin-bottom:12px}.scope-face{width:100%;max-height:none}.copy{padding:16px 0 12px;min-height:98px}.transport{position:sticky;bottom:10px;z-index:8;background:var(--surface);padding:12px;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 18px #0002;margin:0 -4px}.transport .primary{min-width:150px}.transport p{font-size:.68rem}.control-panel{padding:20px 16px}.small-label{display:block;font-size:.6rem}.knobs{gap:22px 8px}.knob-dial{width:64px;height:64px}.knob-name{font-size:.72rem}.knob-val{font-size:.8rem}.presets button{font-size:.84rem;min-height:46px}.source-actions button{font-size:.8rem;min-height:48px}footer{flex-direction:column;gap:8px;font-size:.65rem;padding:24px 2px calc(28px + env(safe-area-inset-bottom))}dialog{padding:22px}dialog h2{font-size:1.7rem}}
@media(max-width:360px){.brand{gap:4px}.help-button{font-size:.7rem;padding:8px 4px}select{max-width:116px}.intro h1{font-size:2.45rem}.app-shell{padding-left:12px;padding-right:12px}.transport{gap:10px;padding:10px}.transport .primary{min-width:136px;padding:12px}.plate-label{font-size:.5rem}}
@media(prefers-reduced-motion:reduce){button{transition:none}button:active{transform:none}}
@media(prefers-reduced-transparency:reduce){dialog::backdrop{backdrop-filter:none}.hud-cam{background:#101b15;backdrop-filter:none}}
@media(prefers-contrast:more){:root{--line:var(--mute)}button{border-width:2px}}

/* Shared Lucide stroke grammar; labels remain on unfamiliar actions. */
.icon{width:18px;height:18px;flex:0 0 auto;vertical-align:middle;pointer-events:none}
button:has(>.icon){display:inline-flex;align-items:center;justify-content:center;gap:8px}
.icon-button{width:44px;min-width:44px;padding:10px}
.appearance{display:flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.appearance button{width:44px;min-width:44px;padding:10px;background:transparent;border-color:transparent;border-radius:8px;color:var(--mute);position:relative}
.appearance button[aria-pressed=true]{background:var(--selected);color:var(--p);border-color:var(--p)}
[data-tooltip]{position:relative}
[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:calc(100% + 10px);right:0;z-index:15;width:max-content;max-width:180px;padding:6px 9px;background:var(--ink);color:var(--bg);border-radius:6px;font-size:.7rem;font-weight:500;line-height:1.4;pointer-events:none;opacity:0;visibility:hidden;box-shadow:var(--shadow)}
[data-tooltip]:focus-visible::after{opacity:1;visibility:visible}
@media(hover:hover) and (pointer:fine){[data-tooltip]:hover::after{opacity:1;visibility:visible}}
.stocks button>span{display:flex;align-items:center;justify-content:center;gap:8px}.stocks button .icon{width:17px;height:17px}
.summary-label{display:flex;align-items:center;gap:9px}.summary-label .icon{width:16px;height:16px;color:var(--mute)}
.hint-mark .icon{width:48px;height:48px;stroke-width:1.2}
.presets button.on{display:flex;align-items:center;justify-content:space-between;gap:8px}
@media(max-width:650px){.header-actions{gap:6px}.header-actions .help-button{padding:10px}.brand{gap:6px}.appearance{border-radius:10px}.header-note{display:none}}

.presets button{display:flex;align-items:center;justify-content:space-between;text-align:left}

@media(max-width:650px){
 .display-panel{display:flex;flex-direction:column}
 .display-panel>.panel-top{order:0}.stocks{order:1}.transport{order:2}.scope-face{order:3}.copy{order:4}.status{order:5}
 .transport{position:static;margin:0 0 14px;padding:0;border:0;border-radius:0;box-shadow:none;gap:12px}
 .transport .primary{flex-shrink:0;white-space:nowrap;min-width:148px;padding:12px 16px;font-size:.85rem}
 .transport .primary span{white-space:nowrap}.transport p{font-size:.7rem}
}

@media(min-width:651px){.display-panel>.transport{border-top:0;padding-top:0;padding-bottom:16px}}
