: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(./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(./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(./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(./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(./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(./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}.app{flex-direction:column;min-height:calc(100vh - 108px);display:flex}.stepper{border-bottom:1px solid var(--line);scrollbar-width:none;flex:none;align-items:stretch;gap:0;display:flex;overflow-x:auto}.stepper::-webkit-scrollbar{display:none}.stepper button{appearance:none;border:0;border-right:1px solid var(--line);color:var(--muted);font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:color var(--t), box-shadow var(--t);background:0 0;align-items:center;gap:7px;padding:12px 14px;display:inline-flex}.stepper button:hover{color:var(--ink)}.stepper button[aria-current=step]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--acc)}.stepper .step-n{border:1px solid var(--line2);border-radius:var(--r);width:16px;height:16px;color:var(--faint);justify-content:center;align-items:center;font-size:9px;display:inline-flex}.stepper button[aria-current=step] .step-n{border-color:var(--acc);color:var(--acc-text)}.work{flex:1;grid-template-columns:minmax(0,1fr) 300px;min-height:0;display:grid}.canvas-wrap{background:var(--sunk);height:calc(100vh - 149px);min-height:320px;position:relative;overflow:hidden}.trace-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.viewport3d{position:absolute;inset:0}.viewport3d[hidden]{display:none}.canvas-wrap.empty-load{border:2px dashed var(--line2)}.canvas-wrap.dropping:after{content:"";border:2px dashed var(--acc);border-radius:var(--r);pointer-events:none;position:absolute;inset:6px}.panel{border-left:1px solid var(--line);flex-direction:column;gap:14px;min-width:0;padding:16px;display:flex;overflow-y:auto}.panel h2{font:600 15px/1.3 var(--sans);letter-spacing:-.01em;margin:0}.panel .instr{font:300 12.5px/1.55 var(--sans);color:var(--muted);margin:0}.panel .hint{font:300 11px/1.5 var(--sans);color:var(--faint);margin:0}.panel .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel .grow{flex:1}.panel label.lbl{font:500 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.panel .mono{font:400 12px/1.4 var(--mono);color:var(--muted)}.panel .readout{font:500 13px/1.4 var(--mono);color:var(--ink)}.panel .fld{width:100%}.panel .fld.num{font-family:var(--mono)}.panel .fld.short{flex:none;width:76px}.step-nav{gap:8px;margin-top:auto;padding-top:10px;display:flex}.step-nav .btn{flex:1}.dropzone{border:1px dashed var(--line2);border-radius:var(--r);text-align:center;cursor:pointer;transition:border-color var(--t), background var(--t);flex-direction:column;align-items:center;gap:8px;padding:22px 16px;display:flex}.dropzone:hover,.dropzone.dropping{border-color:var(--acc);background:var(--acc-dim)}.dropzone .dz-title{font:500 13.5px/1.3 var(--sans);color:var(--ink)}.dropzone .dz-privacy{font:500 10.5px/1.5 var(--sans);letter-spacing:.04em;color:var(--acc-text)}.dropzone .dz-hint{font:300 11px/1.5 var(--sans);color:var(--faint)}.loop-list{flex-direction:column;gap:8px;display:flex}.loop-row{border:1px solid var(--line);border-radius:var(--r);align-items:center;gap:8px;padding:8px;display:flex}.loop-row .name{font:500 11px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);min-width:62px}.sun-card{border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:10px;padding:12px;display:flex}.sr-live{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (pointer:coarse){.stepper button{min-height:44px}}@media (max-width:1024px){.work{grid-template-columns:minmax(0,1fr) 280px}}@media (max-width:640px){.work{grid-template-rows:auto auto;grid-template-columns:1fr}.canvas-wrap{height:52vh;min-height:260px}.panel{border-left:0;border-top:1px solid var(--line)}.stepper button{padding:12px 10px}}@media (max-height:520px){.app{min-height:calc(100vh - 92px)}.stepper button{padding:8px 10px}.canvas-wrap{height:calc(100vh - 125px);min-height:200px}.panel{gap:10px;padding:10px}}
