@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff)format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff)format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff)format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.fx-bar{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.fx-tile{display:flex;position:relative}.fx-tile-open{border:1px solid var(--line);border-radius:var(--radius);min-width:84px;min-height:84px;color:var(--muted);background:var(--panel);cursor:pointer;place-items:center;gap:6px;padding:12px 14px;display:grid}.fx-tile.is-enabled .fx-tile-open{color:var(--text);border-color:var(--accent);background:var(--panel-raised)}.fx-tile-ring{place-items:center;width:28px;height:28px;display:grid;position:relative}.fx-ring{display:block}.fx-ring-track{fill:none;stroke:var(--line);stroke-width:2.5px;stroke-linecap:round}.fx-ring-fill{fill:none;stroke:var(--accent-soft);stroke-width:2.5px;stroke-linecap:round}.fx-tile.is-enabled .fx-ring-fill{stroke:var(--accent)}.fx-tile-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:inherit;font-size:.62rem;position:absolute}.fx-tile-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;font-weight:700}.fx-tile-power{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:20px;height:20px;padding:0;display:grid;position:absolute;top:4px;right:4px}.fx-tile-power-dot{background:#535b51;border-radius:50%;width:9px;height:9px}.fx-tile.is-enabled .fx-tile-power-dot{background:var(--accent)}.fx-modal-backdrop{z-index:50;background:#000000b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.fx-modal{border:1px solid var(--line);border-radius:var(--radius);width:min(440px,100%);max-height:calc(100vh - 40px);color:var(--text);background:var(--panel);padding:18px;overflow-y:auto}.fx-modal:focus{outline:none}.fx-modal:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.fx-modal-header{justify-content:space-between;align-items:center;gap:16px;padding-bottom:14px;display:flex}.fx-modal-title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text);font-size:.78rem;font-weight:700}.fx-modal-close{border:1px solid var(--line);border-radius:var(--radius);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;place-items:center;display:grid}.fx-modal-close:hover{color:var(--text);border-color:var(--accent)}.fx-modal-viz{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);color:var(--signal);margin-bottom:16px;padding:12px;display:block}.fx-modal-body{gap:10px;display:grid}.fx-param-control{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);grid-template-columns:1fr auto;gap:12px;padding:12px 14px;display:grid}.fx-param-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:700}.fx-param-value{color:var(--accent);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.fx-param-value span{color:var(--muted);font-size:.72rem}.fx-param-control input[type=range]{width:100%;accent-color:var(--accent);grid-column:1/-1}.fx-curve{width:100%;height:120px;display:block}.fx-curve-line{fill:none;stroke:currentColor;stroke-width:2px;vector-effect:non-scaling-stroke}.fx-curve-area{fill:color-mix(in srgb, currentColor 14%, transparent);stroke:none}@media (prefers-reduced-motion:reduce){.fx-ring-fill{transition:none}}:root{color:var(--text);background:var(--bg);font-family:var(--font-display);font-synthesis:none;text-rendering:optimizelegibility;--font-display:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--bg:#070a07;--panel:#0c110c;--panel-raised:#111811;--line:#1b241a;--muted:#828e79;--text:#e8eadf;--accent:#a6e267;--accent-soft:#7fae5c;--signal:#6cd23a;--danger:#ff806d;--radius:3px}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,.xy-pad:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app{width:min(1440px,100%);min-height:100vh;margin:0 auto;padding:28px clamp(18px,4vw,64px) 32px}.app--shatter{--accent:#ff9b69;--accent-soft:#9d6042}.app-header,.intro-row,.stage-meta,.panel-heading,footer{justify-content:space-between;align-items:center;gap:20px;display:flex}.app-header{border-bottom:1px solid var(--line);padding-bottom:24px}h1,h2,p{margin:0}h1{letter-spacing:-.07em;font-size:clamp(1.8rem,4vw,3rem);font-weight:500}h2{letter-spacing:-.02em;font-size:clamp(1rem,2.2vw,1.3rem);font-weight:500;line-height:1.05}.brand{margin-bottom:9px;line-height:0;display:flex}.wordmark{color:var(--text);display:block}.eyebrow,.panel-heading,.stage-meta,footer{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:700}.engine-status{color:var(--muted);font:.78rem var(--font-mono);text-transform:capitalize;align-items:center;gap:9px;display:flex}.status-dot{background:#535b51;border-radius:50%;width:8px;height:8px}.status-dot--running{background:var(--accent)}.meter{border-radius:var(--radius);background:var(--line);width:72px;height:3px;display:block;overflow:hidden}.meter span{background:var(--accent);height:100%;transition:width 80ms linear;display:block}.audio-button,.file-button,.mode-switch button{border:1px solid var(--line);border-radius:var(--radius);min-height:44px;font-family:var(--font-mono);cursor:pointer;background:0 0}.source-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;min-width:0;display:flex}.file-button{color:var(--muted);cursor:pointer;align-items:center;padding:0 18px;display:inline-flex}button.file-button:disabled{cursor:not-allowed;opacity:.42}.file-button.is-active{color:#10130e;border-color:var(--accent);background:var(--accent)}.session-banner{border-bottom:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding:10px 18px;font-size:.82rem;display:flex}.session-banner-actions{gap:8px;display:inline-flex}.header-slider{display:inline-flex;position:relative}.header-slider-trigger{gap:8px}.header-slider-value{color:var(--text);font-variant-numeric:tabular-nums}.header-slider-pop{z-index:60;background:var(--panel-raised);border:1px solid var(--accent-soft);border-radius:var(--radius);align-items:center;gap:10px;min-width:200px;padding:12px 14px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #00000080}.header-slider-pop input[type=range]{accent-color:var(--accent);flex:1}.header-slider-readout{text-align:right;min-width:44px;color:var(--muted);font-variant-numeric:tabular-nums}.file-button input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.file-button:focus-within{outline:2px solid var(--accent);outline-offset:3px}.file-button.is-disabled{cursor:not-allowed;opacity:.42}.audio-button{background:var(--accent);color:#10130e;border-color:#0000;padding:0 20px;font-weight:750}.audio-button:disabled{cursor:wait;opacity:.55}.intro-row{align-items:end;padding:clamp(20px,3vw,36px) 0 24px}.intro-row>div:first-child>p:last-child{color:var(--muted);margin-top:16px;font-size:clamp(.95rem,2vw,1.2rem)}.mode-switch{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:4px;display:flex}.mode-switch button{border-color:#0000;min-width:96px;padding:0 18px}.mode-switch button.is-active{color:#10130e;background:var(--accent)}.error-message{color:var(--danger);background:#ff806d12;border:1px solid #ff806d59;border-radius:10px;margin-bottom:16px;padding:14px 18px}.waveform-stage,.xy-panel,.direct-controls{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.waveform-stage{padding:16px;overflow:hidden}.stage-meta,.panel-heading{padding-bottom:12px}.waveform-stage svg{border-radius:var(--radius);cursor:crosshair;touch-action:none;width:100%;min-height:220px;display:block}.waveform-grid{fill:var(--panel-raised)}.region-fill{fill:color-mix(in srgb, var(--accent) 7%, transparent);stroke:color-mix(in srgb, var(--accent) 20%, transparent);stroke-width:1px}.waveform-path{fill:color-mix(in srgb, var(--accent) 34%, transparent);stroke:color-mix(in srgb, var(--accent) 78%, white 4%);stroke-width:1.2px}.grain-visuals{pointer-events:none}.grain-marker line{stroke:color-mix(in srgb, var(--accent) 70%, white 18%);stroke-width:1.4px;stroke-linecap:round}.grain-marker circle{fill:color-mix(in srgb, var(--accent) 74%, white 16%);stroke:color-mix(in srgb, var(--accent) 92%, white 8%);stroke-width:1px}.waveform-empty{fill:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:15px}.position-line{stroke:var(--accent);stroke-width:2px}.beat-line{stroke:#ffffff0d;stroke-width:1px}.region-handle{stroke:color-mix(in srgb, var(--accent) 82%, white 8%);stroke-width:2px;stroke-dasharray:4 4}.waveform-controls{flex-wrap:wrap;align-items:center;gap:6px;padding-top:12px;display:flex}.waveform-controls button{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);min-width:32px;min-height:32px;color:inherit;font:inherit;cursor:pointer;padding:4px 8px}.waveform-controls button:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.waveform-controls .region-range{flex:120px;min-width:90px}.performance-grid{grid-template-columns:minmax(280px,.72fr) minmax(460px,1.28fr);gap:16px;padding-top:16px;display:grid}.shatter-workspace{grid-template-columns:220px minmax(0,1fr);gap:16px;margin-top:16px;display:grid}.shatter-clock,.shatter-sequencer{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:16px}.shatter-clock{align-content:start;gap:10px;display:grid}.shatter-clock .parameter-control{grid-template-columns:1fr}.shatter-clock .parameter-value{justify-self:start}.division-control{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);grid-template-columns:1fr auto;gap:14px;min-height:112px;padding:16px;display:grid}.division-control strong{color:var(--accent);font-weight:500;font-family:var(--font-mono)}.division-control select{border:1px solid var(--line);border-radius:var(--radius);min-height:38px;color:var(--text);font-family:var(--font-mono);background:var(--panel-raised);grid-column:1/-1;padding:0 10px}.step-lane{grid-template-columns:repeat(16,minmax(38px,1fr));gap:5px;display:grid}.step-button{border:1px solid var(--line);border-radius:var(--radius);min-width:0;min-height:64px;color:var(--muted);background:var(--panel);font-family:var(--font-mono);cursor:pointer;place-items:center;gap:5px;padding:7px 3px;display:grid}.step-button span{font-variant-numeric:tabular-nums;font-size:.68rem}.step-button small{min-height:1em;font-size:.6rem}.step-button.is-enabled{color:var(--text);border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--panel))}.step-button.is-selected{box-shadow:inset 0 0 0 1px var(--accent)}.step-button.is-current:after{background:var(--accent);content:"";border-radius:50%;width:6px;height:6px}.step-editor{grid-template-columns:1.15fr 1.15fr .75fr .7fr;gap:10px;margin-top:12px;display:grid}.step-editor>label,.step-editor-title{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);min-height:72px;font:.75rem var(--font-mono);grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.step-editor-title{grid-column:1/-1;min-height:48px}.step-editor-title button{border:1px solid var(--line);border-radius:var(--radius);min-height:30px;color:var(--muted);font-family:var(--font-mono);cursor:pointer;background:0 0;padding:0 12px}.step-editor-title button.is-active{color:#10130e;border-color:var(--accent);background:var(--accent)}.step-editor strong{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:500;font-family:var(--font-mono)}.step-editor input[type=range]{width:100%;accent-color:var(--accent);grid-column:1/-1}.step-editor .select-control{grid-template-columns:1fr}.select-control select{border:1px solid var(--line);border-radius:var(--radius);min-height:32px;color:var(--text);font-family:var(--font-mono);background:var(--panel-raised)}.step-editor .reverse-control{grid-template-columns:auto 1fr}.reverse-control input{width:20px;height:20px;accent-color:var(--accent)}.live-strip{border:1px solid var(--line);border-radius:var(--radius);min-height:48px;color:var(--muted);font:.78rem var(--font-mono);align-items:center;gap:12px;margin-top:10px;padding:10px 16px;display:flex}.live-strip button{border:1px solid var(--line);border-radius:var(--radius);min-height:32px;color:var(--text);font-family:var(--font-mono);cursor:pointer;background:0 0;padding:0 12px}.live-indicator{background:var(--danger);border-radius:50%;width:8px;height:8px}.live-indicator.is-frozen{background:var(--accent)}.live-warning{margin-left:auto}.xy-panel,.direct-controls{padding:16px}.xy-pad{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(90deg, transparent 49.8%, var(--line) 50%, transparent 50.2%), linear-gradient(0deg, transparent 49.8%, var(--line) 50%, transparent 50.2%), var(--panel-raised);touch-action:none;cursor:crosshair;min-height:260px;position:relative;overflow:hidden}.xy-cursor{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent);pointer-events:none;border-radius:50%;width:22px;height:22px;position:absolute;transform:translate(-50%,50%)}.xy-axis{z-index:1;color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;position:absolute}.xy-axis--x{bottom:10px;right:12px}.xy-axis--y{top:12px;left:12px}.parameter-grid{grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;display:grid}.parameter-control{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);grid-template-columns:1fr auto;gap:16px;min-height:112px;padding:16px;display:grid}.parameter-control--locked{opacity:.55;pointer-events:none}.tempo-lock-hint{font-family:var(--font-mono);opacity:.7;align-self:center;font-size:12px}.parameter-label{font-weight:650;font-family:var(--font-mono)}.parameter-value{color:var(--accent);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.parameter-value span{color:var(--muted);font-size:.72rem}.parameter-control input{width:100%;accent-color:var(--accent);grid-column:1/-1}footer{padding-top:28px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.advanced-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-top:16px}.advanced-panel>summary{color:var(--muted);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:16px;font-size:.72rem;font-weight:700;list-style:none;display:flex}.advanced-panel>summary::-webkit-details-marker{display:none}.advanced-summary-title:before{color:var(--accent);content:"▸ "}.advanced-panel[open] .advanced-summary-title:before{content:"▾ "}.advanced-body{gap:22px;padding:0 16px 16px;display:grid}.advanced-section{gap:10px;display:grid}.advanced-section .panel-heading{padding-bottom:0}.advanced-panel .parameter-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.advanced-panel .parameter-grid .select{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);justify-content:space-between;gap:12px;min-height:112px;padding:16px}.advanced-panel .parameter-grid .select-label{font:650 .8rem/1.1 var(--font-mono);letter-spacing:0;text-transform:none;color:var(--text)}.advanced-reset{border:1px solid var(--line);border-radius:var(--radius);min-height:38px;color:var(--muted);font-family:var(--font-mono);cursor:pointer;background:0 0;justify-self:start;padding:0 16px}.patch-actions{align-items:center;gap:9px;margin-bottom:12px;display:flex}.patch-actions-hint{color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;font-size:.72rem}.macro-controls{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-top:16px;padding:16px}.macro-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.macro{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised);justify-items:center;gap:10px;padding:16px;display:grid}.macro.is-unlinked{opacity:.6}.macro-head{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.macro-link{border:1px solid var(--line);border-radius:var(--radius);min-height:28px;color:var(--muted);cursor:pointer;font-family:var(--font-mono);background:0 0;padding:0 10px;font-size:.68rem}.macro-link.is-active{color:#10130e;border-color:var(--accent);background:var(--accent)}.motion-strip{align-items:center;gap:9px;margin-top:10px;display:flex}.motion-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-right:auto;font-size:.72rem;font-weight:700}.motion-lane-count{font-family:var(--font-mono);opacity:.7;align-self:center;font-size:12px}.preset-controls{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-top:16px;padding:16px}.preset-save{gap:9px;margin-bottom:12px;display:flex}.preset-name{border:1px solid var(--line);border-radius:var(--radius);min-height:40px;color:var(--text);font-family:var(--font-mono);background:var(--panel-raised);flex:1;padding:0 12px}.preset-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.preset-list li{border:1px solid var(--line);border-radius:var(--radius);align-items:stretch;display:flex;overflow:hidden}.preset-load{color:var(--text);font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;padding:6px 14px}.preset-delete{border:0;border-left:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);cursor:pointer;background:0 0;padding:6px 10px}.preset-delete:hover{color:var(--danger)}.link-strip{border:1px solid var(--line);border-radius:var(--radius);min-height:44px;color:var(--muted);font:.78rem var(--font-mono);align-items:center;gap:12px;margin-bottom:12px;padding:8px 16px;display:flex}.link-dot{background:#535b51;border-radius:50%;width:8px;height:8px}.link-dot.is-connected{background:var(--accent)}.link-hint{margin-left:auto}@media (max-width:840px){.app-header,.source-actions,.live-strip{flex-wrap:wrap}.live-warning{width:100%;margin-left:0}.engine-status{order:3;width:100%}.intro-row{flex-direction:column;align-items:start}.performance-grid,.shatter-workspace{grid-template-columns:1fr}.shatter-clock{grid-template-columns:repeat(2,1fr)}.step-lane{grid-template-columns:repeat(8,1fr)}.live-topbar{flex-wrap:wrap}.live-actions{flex-wrap:wrap;width:100%;margin-left:0}.live-perform{grid-template-columns:1fr}.live-readouts{flex-wrap:wrap}}@media (max-width:560px){.app{padding-inline:12px}.parameter-grid,.shatter-clock,.step-editor{grid-template-columns:1fr}.step-editor-title{grid-column:auto}.step-lane{grid-template-columns:repeat(4,1fr)}.mode-switch{width:100%}.mode-switch button{flex:1}footer{flex-direction:column;align-items:flex-start}.live-readouts{flex-direction:column}.live-readouts .dial{width:100%}.live-toolbar{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.grain-marker line,.grain-marker circle{filter:none}}.waveform-path{filter:drop-shadow(0 0 3px var(--signal))}.dial{flex-direction:column;align-items:center;gap:6px;display:flex}.dial-visual{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;display:grid;position:relative}.dial-value{font:500 .72rem/1 var(--font-mono);color:var(--text);position:absolute}.dial--readout .dial-value{font-size:1.3rem;font-weight:400}.dial-unit{color:var(--muted);margin-left:2px;font-size:.62em}.dial-label{font:500 .6rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.dial-ring-track{fill:none;stroke:var(--line);stroke-width:2px;stroke-linecap:round}.dial-ring-fill{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round}.dial-input:focus-visible+.dial-label,.dial:focus-within .dial-ring-fill{stroke:var(--signal)}.dial--disabled{opacity:.6}.dial--disabled .dial-visual{cursor:default}.dial--disabled .dial-ring-fill{stroke:var(--muted)}.view-live .app-header,.view-live .intro-row,.view-live .patch-actions,.view-live .motion-strip{display:none}.live-topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding-bottom:16px;display:flex}.live-brand{align-items:baseline;gap:8px;margin-right:4px;display:flex}.live-brand .wordmark{color:var(--text)}.live-version{color:var(--muted);font:700 .62rem/1 var(--font-mono);letter-spacing:.08em}.live-source{color:var(--muted);font:500 .72rem/1 var(--font-mono)}.live-hint{color:var(--muted);font:500 .68rem/1 var(--font-mono);margin-top:8px}.live-start{border:1px solid var(--accent);border-radius:var(--radius);background:#a6e26714;justify-content:center;align-items:center;gap:16px;margin-top:16px;padding:18px;display:flex}.live-start p{color:var(--text);font:500 .8rem/1.4 var(--font-mono);margin:0}.live-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.studio-toggle{font:500 .78rem/1 var(--font-display);border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius);background:#a6e26714;padding:8px 16px}.mode-pill{font:600 .62rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bg);background:var(--accent);border:none;border-radius:20px;padding:6px 12px}.live-perform{grid-template-columns:1.15fr 1fr;gap:16px;margin-top:16px;display:grid}.live-readouts{gap:16px;margin-top:16px;display:flex}.live-readouts .dial{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex:1;padding:14px}.live-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.live-toolbar-sep{background:var(--line);width:1px;height:20px;margin:0 4px}@media (max-width:720px){.live-perform{grid-template-columns:1fr}}.select{flex-direction:column;gap:5px;display:flex;position:relative}.select-label{font:500 .6rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.select-trigger{font:500 .8rem/1 var(--font-mono);color:var(--text);background:var(--panel-raised);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.select-trigger[aria-expanded=true]{border-color:var(--accent)}.select-caret{color:var(--muted)}.select-list{z-index:60;background:var(--panel-raised);border:1px solid var(--accent-soft);border-radius:var(--radius);max-height:260px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.select-option{font:500 .8rem/1.3 var(--font-mono);color:var(--muted);border-radius:var(--radius);cursor:pointer;padding:7px 8px}.select-option.is-active{background:var(--panel);color:var(--text)}.select-option[aria-selected=true]{color:var(--accent)}.devices-panel,.midi-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-top:16px;padding:14px}.device-field{flex-direction:column;gap:5px;margin-top:10px;display:flex}.device-field__label{font:500 .6rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.device-field select{font:500 .8rem/1 var(--font-mono);color:var(--text);background:var(--panel-raised);border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px}.device-field select:focus-visible{border-color:var(--accent);outline:none}.device-note{font:500 .68rem/1.4 var(--font-mono);color:var(--muted);margin:10px 0 0}.ghost-btn{font:500 .68rem/1 var(--font-mono);color:var(--accent);border:1px solid var(--accent-soft);border-radius:var(--radius);cursor:pointer;background:0 0;padding:5px 10px}.ghost-btn:hover{border-color:var(--accent)}.midi-mapping-list{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.midi-mapping-row{align-items:center;gap:10px;display:flex}.midi-mapping-target{font:500 .76rem/1 var(--font-mono);color:var(--text);flex:1}.midi-mapping-source{font:500 .68rem/1 var(--font-mono);color:var(--muted)}.midi-learn{flex-direction:column;gap:8px;margin-top:12px;display:flex}.drop-overlay{z-index:200;border:3px dashed var(--accent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#0d0f0dd1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.drop-overlay__label{font:600 1.1rem/1 var(--font-display);letter-spacing:.04em;color:var(--accent);text-transform:uppercase}
