:root{--bg:#1a1a1a;--panel:#121212;--sunk:#0f0f0f;--line:#333;--line2:#555;--ink:#f0f0f1;--muted:#c8c8c8;--faint:#8a8a8a;--acc:#da1313;--acc-dim:#da131314;--acc-hi:#da131326;--acc-dark:#c41010;--acc-text:#f4462f;--r:2px;--t:.3s cubic-bezier(.4,0,.2,1);--sans:"Work Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"DM Mono",ui-monospace,"SF Mono",Consolas,monospace;--hd-bg:#1a1a1af2;--toast-bg:#000000d9}:root[data-theme=light]{--bg:#f7f5f2;--panel:#fff;--sunk:#efece7;--line:#d8d2c8;--line2:#b0a99d;--ink:#18160f;--muted:#47433b;--faint:#6b6259;--acc:#c41010;--acc-dim:#c4101014;--acc-hi:#c4101026;--acc-dark:#a80d0d;--acc-text:#c41010;--hd-bg:#f7f5f2f2;--toast-bg:#fffffff2}:root{--fs-n2:.694rem;--fs-n1:.833rem;--fs-0:1rem;--fs-1:1.2rem;--fs-2:1.44rem;--fs-3:1.728rem;--fs-4:2.074rem;--fs-5:2.488rem;--fs-6:2.986rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}[hidden]{display:none!important}.sr-only,.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{background:var(--bg);color:var(--ink);font:300 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--acc);color:#fff}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}a{color:inherit}code,kbd,samp,pre{font-family:var(--mono)}.eyebrow{font:600 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--acc-text)}.grain{z-index:100;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;position:fixed;inset:0}.btn{appearance:none;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);font:500 13px/1 var(--sans);cursor:pointer;transition:border-color var(--t),background var(--t),color var(--t);justify-content:center;align-items:center;gap:6px;padding:9px 14px;display:inline-flex}.btn:hover{border-color:var(--acc)}.btn:disabled{color:var(--faint);cursor:default;border-color:var(--line)}.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}.btn.pri:hover{background:var(--acc-dark);border-color:var(--acc-dark)}.icon-btn{appearance:none;border-radius:var(--r);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:border-color var(--t),color var(--t);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:15px;line-height:1;display:inline-flex}.icon-btn:hover{border-color:var(--acc);color:var(--ink)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);transition:border-color var(--t)}.card:hover{border-color:var(--acc)}.fld{appearance:none;background:var(--sunk);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);font:300 13px/1.4 var(--sans);transition:border-color var(--t);padding:8px 10px}.fld::placeholder{color:var(--faint)}.fld:focus{border-color:var(--acc);outline:none}.seg{border:1px solid var(--line);border-radius:var(--r);display:inline-flex;overflow:hidden}.seg>button{appearance:none;border:0;border-right:1px solid var(--line);color:var(--muted);font:500 10.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background var(--t),color var(--t);background:0 0;padding:8px 12px}.seg>button:last-child{border-right:0}.seg>button:hover{color:var(--ink)}.seg>button.on,.seg>button[aria-pressed=true]{background:var(--acc-dim);color:var(--acc-text)}input[type=range].rng{appearance:none;cursor:pointer;background:0 0;width:100%;height:17px;margin:0}input[type=range].rng::-webkit-slider-runnable-track{background:var(--line2);height:2px}input[type=range].rng::-webkit-slider-thumb{-webkit-appearance:none;background:var(--acc);border-radius:var(--r);border:0;width:13px;height:13px;margin-top:-5.5px}input[type=range].rng::-moz-range-track{background:var(--line2);height:2px}input[type=range].rng::-moz-range-thumb{background:var(--acc);border-radius:var(--r);border:0;width:13px;height:13px}input[type=range].rng:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.tgl{flex:none;width:32px;height:17px;display:inline-block;position:relative}.tgl input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.tgl span{background:var(--sunk);border:1px solid var(--line);pointer-events:none;transition:background var(--t),border-color var(--t);border-radius:9px;position:absolute;inset:0}.tgl span:after{content:"";background:var(--faint);width:11px;height:11px;transition:transform var(--t),background var(--t);border-radius:50%;position:absolute;top:2px;left:2px}.tgl input:checked+span{background:var(--acc-dim);border-color:var(--acc)}.tgl input:checked+span:after{background:var(--acc);transform:translate(15px)}.tgl input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}.tag{font:500 8.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line);border-radius:var(--r);padding:4px 6px;display:inline-block}.cta{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:var(--r);color:var(--muted);padding:14px 16px}.modal-scrim{z-index:80;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);width:100%;max-width:520px;max-height:85vh;padding:20px;overflow:auto}.toast{z-index:90;background:var(--toast-bg);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);font:400 12px/1.4 var(--mono);-webkit-backdrop-filter:blur(6px);white-space:nowrap;padding:10px 14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}:root{--hd-h:56px}.hd{z-index:50;height:var(--hd-h);background:var(--hd-bg);-webkit-backdrop-filter:blur(6px);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0;overflow:hidden}.hd-brand{flex:none;align-items:center;text-decoration:none;display:flex}.hd-logo{width:auto;height:20px;display:block}@media (max-width:640px){.hd-logo{height:15px}}.hd-sep{background:var(--line);flex:none;width:1px;height:22px}.hd-tile{border:1px solid var(--line);border-radius:5px;flex:none;width:26px;height:26px;overflow:hidden}.hd-tile svg{width:100%;height:100%;display:block}.hd-id{flex-direction:column;gap:2px;min-width:0;display:flex}.hd-name{font:800 17px/1 var(--sans);letter-spacing:-.02em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hd-sub{font:600 8.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);white-space:nowrap}.hd-tabs{scrollbar-width:none;align-self:stretch;align-items:stretch;margin-left:8px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10px calc(100% - 10px),#0000);mask-image:linear-gradient(90deg,#0000,#000 10px calc(100% - 10px),#0000)}.hd-tabs::-webkit-scrollbar{display:none}.hd-tabs button{appearance:none;color:var(--muted);font:500 12.5px/1 var(--sans);letter-spacing:.04em;cursor:pointer;white-space:nowrap;transition:color var(--t),box-shadow var(--t);background:0 0;border:0;padding:0 12px}.hd-tabs button:hover{color:var(--ink)}.hd-tabs button[aria-selected=true]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--acc)}.hd-spacer{flex:1}.hd-actions{flex:none;align-items:center;gap:6px;display:flex}.ft{border-top:1px solid var(--line);font:300 11.5px/1.6 var(--sans);color:var(--faint);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:14px 16px;display:flex}.ft a{color:var(--muted);border-bottom:1px solid var(--line2);transition:color var(--t),border-color var(--t);text-decoration:none}.ft a:hover{color:var(--acc);border-color:var(--acc)}.ft-spacer{flex:1}.ring{flex-wrap:wrap;gap:8px;display:flex}.ring-item{border:1px solid var(--line);border-radius:var(--r);color:var(--muted);font:500 11px/1 var(--sans);transition:border-color var(--t),color var(--t);align-items:center;gap:7px;padding:5px 9px 5px 5px;text-decoration:none;display:inline-flex}a.ring-item:hover{border-color:var(--acc);color:var(--ink)}.ring-item[aria-disabled=true]{opacity:.55;cursor:default}.ring-tile{border-radius:3px;flex:none;width:18px;height:18px;overflow:hidden}.ring-tile svg{width:100%;height:100%;display:block}@media (max-width:640px){:root{--hd-h:48px}.hd{gap:10px;padding:0 12px}.hd-sub{display:none}.hd-name{font-size:16px}.hd-tile{width:24px;height:24px}.hd-id{min-width:52px}.hd-tabs{min-width:64px}}@media (max-height:520px){:root{--hd-h:40px}.hd{gap:10px}.hd-sub{display:none}.hd-tile{width:22px;height:22px}}@media (pointer:coarse){.icon-btn{width:40px;height:40px}.btn,.seg>*,.tag,.fld,select,input[type=text],input[type=number]{min-height:44px}.btn,.seg>*{justify-content:center;align-items:center;display:inline-flex}.tgl{position:relative}.tgl:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}input[type=range].rng{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@font-face{font-family:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/work-sans-latin-var-Bl-S9Xys.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dm-mono-400-latin-4GdczIuU.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/dm-mono-500-latin-DRMDZjhP.woff2)format("woff2")}@font-face{font-family:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/work-sans-latin-ext-var-B5dZ8C4S.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dm-mono-400-latin-ext-C2zvOubV.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/dm-mono-500-latin-ext-BtRyHRi6.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}.vgw{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:50%;outline:none;display:inline-block;position:relative}.vgw:active{cursor:grabbing}.vgw[data-readonly]{cursor:default}.vgw:focus-visible{outline:2px solid var(--acc,#da1313);outline-offset:2px}.vgw svg{width:100%;height:100%;display:block;overflow:visible}.vgw-track{fill:none;stroke:var(--line,#333)}.vgw-tick{stroke:var(--line,#333)}.vgw-tick--major{stroke:var(--line2,#555)}.vgw-detent{fill:var(--acc,#da1313);opacity:.6}.vgw-dlabel-tick{stroke:var(--line2,#555)}.vgw-dlabel{font-family:var(--sans,"Work Sans", system-ui, sans-serif);letter-spacing:.08em;fill:var(--faint,#8a8a8a);text-anchor:middle;font-size:4.5px;font-weight:600}.vgw-marker{stroke:var(--acc,#da1313)}.vgw-halo{fill:var(--acc,#da1313);opacity:.15}.vgw-dot{fill:var(--acc,#da1313)}.vgw-value{font-family:var(--mono,"DM Mono", ui-monospace, "SF Mono", Consolas, monospace);fill:var(--ink,#f0f0f1);text-anchor:middle;font-size:13px}.vgw-unit{font-family:var(--mono,"DM Mono", ui-monospace, "SF Mono", Consolas, monospace);fill:var(--faint,#8a8a8a);text-anchor:middle;font-size:5.5px}.vgw-label{font-family:var(--sans,"Work Sans", system-ui, sans-serif);letter-spacing:.2em;fill:var(--faint,#8a8a8a);text-anchor:middle;font-size:5px;font-weight:500}.vgw-concentric{display:inline-block;position:relative}.vgw-concentric .vgw--ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vgw-center{pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.vgw-center-value{font-family:var(--mono,"DM Mono", ui-monospace, "SF Mono", Consolas, monospace);color:var(--ink,#f0f0f1);font-size:1.25rem;line-height:1}.vgw-center-unit{font-family:var(--mono,"DM Mono", ui-monospace, "SF Mono", Consolas, monospace);color:var(--faint,#8a8a8a);font-size:.6rem}.vgw-center-label{font-family:var(--sans,"Work Sans", system-ui, sans-serif);letter-spacing:.2em;text-transform:uppercase;color:var(--acc-text,#f4462f);font-size:.53rem;font-weight:500}html,body{height:100%}.app{grid-template-columns:380px 1fr;min-height:calc(100vh - 56px);display:grid}.pane{border-right:1px solid var(--line);flex-direction:column;gap:14px;max-height:calc(100vh - 56px);padding:16px;display:flex;overflow-y:auto}.mode-row{align-items:center;gap:10px;display:flex}.mode-row .eyebrow{flex:none}.morph-row{flex-wrap:wrap;align-items:center;gap:8px;display:none}.app[data-mode=mo] .morph-row{display:flex}.morph-row .btn{font-family:var(--mono);padding:7px 10px}.morph-row .btn:disabled{opacity:.45;cursor:not-allowed}.morph-hint{font:300 11px/1.5 var(--sans);color:var(--faint);display:none}.app[data-mode=mo] .morph-hint{display:block}.intro-hint{border-left:3px solid var(--acc);background:var(--acc-dim);font:300 11px/1.5 var(--sans);color:var(--muted);align-items:flex-start;gap:8px;margin:0;padding:8px 10px;display:flex}.intro-hint[hidden]{display:none}.intro-close{color:var(--faint);font:400 15px/1 var(--sans);cursor:pointer;background:0 0;border:0;flex:none;padding:0 2px}.intro-close:hover{color:var(--ink)}.wheelbox{flex-shrink:0;justify-content:center;display:flex}.wheel-scale{position:relative}.wheel-scale>.vgw-concentric{transform-origin:top}.app[data-mode=mo] .vgw--drive{opacity:.35;pointer-events:none}.ring-label{pointer-events:none;font:600 8.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acc-text);white-space:nowrap;position:absolute;left:50%;transform:translate(-50%,-50%)}.sensor-row,.toggle-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toggle-row label.tglrow{font:300 12px/1 var(--sans);color:var(--muted);cursor:pointer;align-items:center;gap:7px;display:inline-flex}.shift-row{align-items:center;gap:10px;display:flex}.shift-row .eyebrow{flex:none}.shift-row input[type=range]{accent-color:var(--acc);flex:1;min-width:0}.shift-val{text-align:right;width:3ch;font:400 12px/1 var(--mono);color:var(--muted);flex:none}.shift-hint{font:300 11px/1.5 var(--sans);color:var(--faint);margin:0}.readouts{background:var(--line);border:1px solid var(--line);border-radius:var(--r);flex-shrink:0;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.ro{background:var(--panel);flex-direction:column;gap:3px;min-width:0;padding:8px 10px;display:flex}.ro-label{font:500 8.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ro-val{font:400 13px/1.1 var(--mono);color:var(--ink);white-space:nowrap}.readouts-toggle{display:none}.readouts-toggle-chevron{transition:transform var(--t)}.sr-live{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.view{background:var(--sunk);height:calc(100vh - 56px);position:relative}.viewbox{justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.aspect{border:1px solid var(--line);background:#0a0a0e;position:relative}.aspect canvas{width:100%;height:100%;display:block}.poster{font:400 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.too-close{z-index:6;text-align:center;pointer-events:none;background:#0a0a0e99;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.too-close[hidden]{display:none}.too-close p{max-width:30em;font:300 13px/1.6 var(--sans);color:var(--ink);margin:0}.guides{pointer-events:none;background:linear-gradient(90deg,#0000 calc(33.33% - .5px),#f0f0f129 33.33%,#0000 calc(33.33% + .5px)),linear-gradient(90deg,#0000 calc(66.66% - .5px),#f0f0f129 66.66%,#0000 calc(66.66% + .5px)),linear-gradient(#0000 calc(33.33% - .5px),#f0f0f129 33.33%,#0000 calc(33.33% + .5px)),linear-gradient(#0000 calc(66.66% - .5px),#f0f0f129 66.66%,#0000 calc(66.66% + .5px));display:none;position:absolute;inset:0}.app[data-guides="1"] .guides{display:block}.view-tools{z-index:5;gap:6px;display:flex;position:absolute;top:10px;right:10px}.view-tools .icon-btn{background:var(--hd-bg);border-color:var(--line)}.view-tools .icon-btn[aria-pressed=true]{border-color:var(--acc);color:var(--acc-text)}.morph-play-float{display:none}@media (max-width:1024px){.app{grid-template-columns:300px 1fr}.pane{padding:12px}}@media (max-width:640px){.app{flex-direction:column;min-height:0;display:flex}.view{order:0;height:min(55vh,75vw)}.pane{border-right:0;order:1;max-height:none;overflow:visible}.readouts{scrollbar-width:none;order:-1;gap:1px;display:flex;overflow-x:auto}.readouts::-webkit-scrollbar{display:none}.ro{flex:none}}@media (max-height:520px) and (min-width:641px){.app{grid-template-columns:minmax(0,3fr) minmax(260px,2fr)}.view{order:0;grid-column:1;height:calc(100vh - 40px)}.pane{border-right:0;border-left:1px solid var(--line);order:1;grid-column:2;max-height:calc(100vh - 40px)}.readouts{max-height:0;transition:max-height var(--t);border-width:0 1px;border-radius:0;order:10;grid-template-columns:1fr 1fr;overflow-y:auto}.readouts.is-open{border-bottom-width:1px;max-height:45vh}.readouts-toggle{z-index:3;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);width:100%;color:var(--muted);font:500 8.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;order:11;justify-content:space-between;align-items:center;padding:8px 10px;display:flex;position:sticky;bottom:0}.readouts-toggle.is-open .readouts-toggle-chevron{transform:rotate(180deg)}.app[data-mode=mo] .morph-play-float{z-index:5;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}}
