:root{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0b13;--surface:#171823;--surface-2:#20212f;--border:#303243;--border-strong:#4b4e65;--text:#f0eff4;--muted:#aeb1c2;--faint:#8c90a5;--red:#ff5d79;--green:#5ce5a3;--blue:#76a5ff;--accent:#93b8ff;--amber:#ffd27a;--rgb:linear-gradient(90deg, var(--red), var(--green), var(--blue));--radius:8px;--radius-sm:4px;--gap:1.5rem;--sans:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "SFMono-Regular", Consolas, monospace;font:15px / 1.55 var(--sans);color:var(--text);background:var(--bg)}*,:before,:after{box-sizing:border-box}html{min-width:320px}body{min-height:100vh;color:var(--text);background:var(--bg);margin:0}::selection{color:var(--bg);background:var(--accent)}h1,h2,h3,h4,h5,h6,p{margin-top:0}h1,h2,h3,h4,h5,h6{line-height:1.25}p{margin-bottom:.75rem}a{color:var(--accent)}a:hover{color:var(--green)}main,.app{width:min(100%,88rem);margin:0 auto;padding:2rem clamp(1rem,4vw,3rem) 4rem}.topbar{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1rem;padding:.35rem 0 .85rem;display:flex;position:relative}.topbar:after{content:"";background:var(--rgb);border-radius:10px;height:3px;position:absolute;bottom:0;left:0;right:0}.brand{align-items:center;gap:.7rem;min-width:0;display:flex}.brand-mark{border:2px solid var(--blue);background:radial-gradient(circle at 28% 26%, var(--red) 0 3px, transparent 4px), radial-gradient(circle at 72% 26%, var(--green) 0 3px, transparent 4px), radial-gradient(circle at 50% 75%, var(--blue) 0 3px, transparent 4px), var(--surface);border-radius:50%;flex:none;width:2rem;height:2rem;position:relative}.brand-mark:after{content:"";background:var(--bg);border:2px solid #f0eff4b0;border-radius:50%;position:absolute;inset:37%}.brand h1{letter-spacing:-.025em;margin:0;font-size:1.2rem;font-weight:750}.pill{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:34px;color:var(--muted);flex:none;align-items:center;gap:.5rem;margin:0;padding:.5rem .85rem;font-size:.8rem;display:inline-flex}.pill strong{color:var(--text);font-weight:600}.player{gap:var(--gap);flex-direction:column;display:flex}.start-screen[hidden],.performance-screen[hidden]{display:none}.start-screen{place-items:center;min-height:calc(100svh - 6rem);display:grid}.start-content{width:min(100%,44rem);padding:2rem 0}.start-brand{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.7rem;margin-bottom:2.5rem;font-size:.82rem;font-weight:700;display:inline-flex}.start-brand .brand-mark{width:1.6rem;height:1.6rem}.start-content h1{letter-spacing:-.06em;margin-bottom:.4rem;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:800}.start-intro{color:var(--muted);margin-bottom:2rem;font-size:clamp(1rem,2vw,1.2rem)}.start-form{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:clamp(1.2rem,3vw,2rem);position:relative}.start-form:before{content:"";background:var(--rgb);height:3px;position:absolute;top:-1px;left:-1px;right:-1px}.start-form textarea{min-height:9rem;margin-bottom:1.2rem;font-size:1rem}.start-options{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;display:flex}.start-sounds{border-top:1px solid var(--border);padding-top:1rem}.start-sounds h2{margin-bottom:.7rem;font-size:1rem}.sound-picker{border:0;min-width:0;margin:0;padding:0}.sound-picker legend{color:var(--muted);margin-bottom:.55rem;font-size:.85rem;font-weight:700}.sound-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.sound-card-with-preview{min-width:0}.sound-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;align-items:flex-start;gap:.65rem;min-height:6rem;padding:.8rem;display:flex}.sound-card:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.sound-card:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.sound-card input{width:1rem;height:1rem;accent-color:var(--accent);flex:none;margin:.3rem 0 0;padding:0}.sound-card-body{overflow-wrap:anywhere;flex-direction:column;gap:.25rem;min-width:0;font-size:.8rem;display:flex}.sound-card-body strong{color:var(--text);font-size:.95rem}.sound-card-body small{color:var(--muted)}.sound-preview-slot{align-items:center;gap:.5rem;padding:.35rem 0;font-size:.75rem;display:flex}.sound-preview-slot button{min-width:5.5rem;padding-inline:.75rem}.sound-preview-slot [role=alert]{color:var(--red)}.start-actions{justify-content:space-between;align-items:center;gap:1rem;margin-top:.9rem;display:flex}.start-actions p,.start-connectivity{color:var(--muted);margin:0;font-size:.8rem}.start-actions button{min-width:9rem}.start-connectivity{text-align:center;margin-top:1rem}.performance-screen{gap:var(--gap);flex-direction:column;display:flex}.set-brief{border:1px solid var(--border);background:var(--surface);align-items:baseline;gap:1.2rem;padding:.75rem 1rem .75rem 1.25rem;display:flex;position:relative}.set-brief:before{content:"";background:var(--rgb);width:3px;position:absolute;inset:-1px auto -1px -1px}.set-brief .eyebrow{color:var(--muted);flex:none;margin:0}.set-brief p{overflow-wrap:anywhere;margin:0;font-size:.9rem}.stage{grid-template-columns:minmax(0,1fr);gap:.65rem;display:grid}.workbench{gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.panel,.ai-debug{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;padding:clamp(1.2rem,2.5vw,1.8rem);position:relative}.panel-title,.eyebrow{color:var(--text);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .9rem;font-size:.78rem;font-weight:700;display:block}summary.panel-title{cursor:pointer;list-style:none}summary.panel-title::-webkit-details-marker{display:none}summary.panel-title:before{content:"▸";color:var(--blue);margin-right:.5rem;display:inline-block}details[open]>summary.panel-title{margin-bottom:1rem}details[open]>summary.panel-title:before{content:"▾"}.muted{color:var(--muted)}.hint{color:var(--faint);margin:.9rem 0 0;font-size:.8rem}.row,.field-group,.prompt-actions,.editor-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.inline-label{color:var(--muted);align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;display:inline-flex}button,select,textarea,input{font:inherit;color:inherit}button,select{min-height:44px}button{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);cursor:pointer;padding:.65rem 1.1rem;font-size:.85rem;font-weight:650}button:hover:not(:disabled){border-color:var(--accent);background:#292c42}button:disabled{opacity:.48;cursor:not-allowed}button.primary,button.play{border-color:var(--accent);background:var(--surface-2);color:var(--accent);font-weight:800}button.primary:hover:not(:disabled),button.play:hover:not(:disabled){border-color:var(--blue);color:var(--text);background:#292c42}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2)}button.panic{color:#ff9aae;background:#ff5d7914;border-color:#ff5d7970}button.panic:hover:not(:disabled){color:var(--bg);border-color:var(--red);background:var(--red)}select{appearance:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2710%27 height=%276%27%3E%3Cpath d=%27M1 1l4 4 4-4%27 fill=%27none%27 stroke=%27%2393b8ff%27 stroke-width=%271.5%27/%3E%3C/svg%3E") no-repeat right .7rem center;max-width:100%;color:var(--text);cursor:pointer;padding:.55rem 2.1rem .55rem .85rem;font-size:.85rem}textarea,input:not([type=radio]):not([type=checkbox]){border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);resize:vertical;padding:.9rem 1rem;line-height:1.6}textarea::placeholder,input::placeholder{color:var(--faint)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}textarea:focus-visible,input:focus-visible,select:focus-visible{border-color:var(--accent)}.code{color:#d1ddf3;font:.82rem / 1.65 var(--mono);tab-size:2}kbd{border:1px solid var(--border-strong);min-width:1.6rem;height:1.6rem;color:var(--accent);background:var(--bg);font:.78rem var(--mono);border-radius:5px;place-items:center;padding:0 .3rem;display:inline-grid}.dot{background:var(--faint);border-radius:50%;flex:none;width:.5rem;height:.5rem;display:inline-block}.dot.ok{background:var(--green)}.dot.bad{background:var(--red)}.dot.wait{background:var(--blue)}.prompt-form{border-color:#76a5ff75;flex-direction:column;padding:1rem 1.2rem;display:flex}.prompt-form textarea{flex:1;min-height:4.5rem;margin-bottom:.75rem;font-size:.95rem}.prompt-actions{justify-content:space-between}.transport-panel{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;padding:.2rem .3rem;display:flex}.transport-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.78rem;display:inline-flex}.status-divider{color:var(--faint);margin-inline:.25rem}.transport{gap:.5rem;display:flex}.player[data-playing] .transport .play{border-color:var(--green);background:var(--surface-2);color:var(--green)}.set-status{border-color:#76a5ff65;padding:1.2rem 1.5rem}.set-status:before{content:"";background:var(--rgb);border-radius:4px;height:3px;position:absolute;top:0;left:2rem;right:2rem}.set-head{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1.5rem;margin-bottom:1rem;padding-bottom:1rem;display:grid}.now-title{color:var(--text);margin:0 0 .25rem;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:750}.now-meta{color:var(--muted);margin:0;font-size:.82rem}.beat-counter{min-width:10rem}.beat-readout{justify-content:space-between;gap:.8rem;font-size:.9rem;display:flex}.beat-readout strong{color:var(--text)}.beat-counter small{color:var(--muted);font-size:.72rem}.beat-steps{grid-template-columns:repeat(4,1fr);gap:.25rem;margin:.35rem 0;display:grid}.beat-steps span{background:var(--border-strong);border-radius:1px;height:.38rem}.beat-steps span.active{background:var(--green)}.set-mode{justify-content:flex-end}.set-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.5rem;display:grid}.next-count{color:var(--green);margin:0 0 .25rem;font-size:.78rem;font-weight:700}.timeline h4{margin:0;font-size:1.05rem}.timeline h4 small{color:var(--muted);margin-left:.35rem;font-size:.75rem;font-weight:500}.next-preview{border-top:1px solid var(--border);margin-top:.55rem}.next-preview summary,.set-details summary,.advanced>summary{min-height:44px;color:var(--accent);cursor:pointer;padding:.6rem 0;font-size:.85rem;font-weight:650}.preview-meta{flex-wrap:wrap;gap:.4rem;margin:.15rem 0 .6rem;display:flex}.preview-meta span{border:1px solid var(--border);color:var(--muted);border-radius:2px;padding:.2rem .4rem;font-size:.74rem}.preview-changes{color:var(--text);margin:.4rem 0;font-size:.8rem}.preview-tracks{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.preview-tracks li{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.15rem .6rem;padding:.5rem 0;font-size:.78rem;display:grid}.preview-tracks li span{color:var(--muted)}.preview-tracks li small{color:var(--green);grid-column:1/-1;font-size:.72rem}.preview-tracks code{overflow-wrap:anywhere;color:var(--faint);font:.73rem / 1.4 var(--mono);grid-column:1/-1}.set-details{border-top:1px solid var(--border);margin-top:.55rem}.set-details p{color:var(--muted);font-size:.8rem}.transport .end-set{color:#ffafc0;background:0 0;border-color:#ff5d7970}.transport .end-set:hover:not(:disabled){border-color:var(--red);background:#ff5d7914}.timeline,.tracks{gap:.4rem;margin:.6rem 0;padding:0;list-style:none;display:grid}.timeline>li,.tracks li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:.65rem .85rem;font-size:.85rem}.timeline>li:first-child{border-color:#76a5ff75}.tracks li{overflow-wrap:anywhere;flex-wrap:wrap;gap:.3rem;font-size:.8rem;display:flex}.track-id{color:var(--red);font-weight:700}.track-patch{color:var(--muted)}.tracks li:nth-child(3n+2) .track-id{color:var(--green)}.tracks li:nth-child(3n) .track-id{color:var(--blue)}.meter-readout{color:var(--muted);margin-top:.75rem;font-size:.8rem}.copilot{border-top:1px solid var(--border);margin-top:1.2rem;padding-top:1rem}.options{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.65rem;margin-bottom:.8rem;display:grid}.option{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-direction:column;gap:.25rem;padding:.9rem;display:flex}.option:hover{border-color:var(--accent)}.option h3{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 .35rem;font-size:1rem;display:flex}.option small{color:var(--green);border:1px solid #5ce5a380;border-radius:2px;padding:.15rem .45rem;font-size:.7rem;font-weight:700}.option ul{color:var(--muted);margin:.25rem 0 1rem;padding-left:1rem;font-size:.8rem}.option button{align-self:flex-start;margin-top:auto}.editor .code,.repl .strudel-editor{min-height:18rem}.editor-actions{margin-top:1.25rem}.repl .strudel-editor{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);overflow:hidden}.repl .cm-editor{min-height:18rem;font:.82rem var(--mono)}.rendered-code .code{color:var(--muted)}.advanced{border-top:1px solid var(--border)}.advanced>summary{list-style-position:inside}.advanced .workbench{margin:.4rem 0 1rem}.advanced .rendered-code{margin-bottom:1rem}.alerts:empty{display:none}.alerts{gap:.5rem;display:grid}.error,.warning,.info{border-radius:var(--radius-sm);border:1px solid;border-left-width:3px;margin:1rem 0 0;padding:.75rem 1rem;font-size:.85rem}.alerts .error,.alerts .warning{margin:0}.error{color:#ffafc0;background:#ff5d7910;border-color:#ff5d7970}.warning{color:var(--amber);background:#ffd27a0d;border-color:#ffd27a70}.info{color:#b9d0ff;background:#76a5ff0d;border-color:#76a5ff70}.ai-debug h2{margin:0 0 1rem;font-size:1.1rem}.ai-debug h4,.ai-debug h5,.ai-debug h6{color:var(--accent);margin:1rem 0 .4rem;font-size:.85rem}.ai-debug>ol{margin:0;padding-left:1.5rem}.ai-debug li{overflow-wrap:anywhere;margin-block:.75rem}.ai-debug summary{cursor:pointer;min-height:44px;color:var(--text);padding:.55rem .25rem;font-size:.85rem}.ai-debug summary:hover{color:var(--accent)}.ai-debug details details{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);margin:.75rem 0;padding:.75rem 1rem}.ai-debug section{border-left:2px solid var(--border-strong);margin:.75rem 0;padding-left:.85rem}.ai-debug-text{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);max-height:20rem;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;font:.8rem / 1.6 var(--mono);margin:.5rem 0;padding:.75rem;overflow:auto}.ai-debug pre{font-family:var(--mono)}table{border-collapse:collapse;width:100%;margin-top:1.5rem;font-size:.8rem}th,td{border-bottom:1px solid var(--border);text-align:left;padding:.7rem}th{color:var(--accent);font-size:.8rem;font-weight:700}tbody tr:hover{background:#76a5ff0d}@media (max-width:960px){.workbench,.set-grid{grid-template-columns:1fr}.set-head{grid-template-columns:minmax(0,1fr) auto}.set-mode{grid-column:1/-1;justify-content:flex-start}}@media (max-width:640px){main,.app{padding:1rem .9rem 2rem}.topbar{align-items:center;gap:.6rem;padding:.4rem 0 .8rem}.start-screen{min-height:calc(100svh - 3rem)}.start-brand{margin-bottom:1.5rem}.sound-card-grid{grid-template-columns:minmax(0,1fr)}.start-actions,.set-brief{flex-direction:column;align-items:stretch}.start-actions button{width:100%}.brand{gap:.7rem}.brand-mark{width:1.7rem;height:1.7rem}.brand h1{font-size:1rem}.pill{min-height:30px;padding:.3rem .45rem;font-size:.7rem}.panel,.ai-debug{padding:1.15rem}.set-head{grid-template-columns:1fr;gap:.8rem}.beat-counter{max-width:13rem}.set-mode{grid-column:auto}.prompt-actions>.field-group{width:100%}.transport-panel{align-items:flex-start}.transport{width:100%}.transport button{flex:1;padding-inline:.35rem}.ai-debug>ol{padding-left:1.1rem}}