.studio-root{--bg:#0b0e14;--card:#121722;--line:#1a2130;--edge:#232d42;--ink:#e8ecf4;--mut:#6b7688;--pink:#f5568d;--good:#3ad07f;--warn:#e4b84b;--rec:#e03131;background:var(--bg);min-height:100vh;color:var(--ink);font-family:Helvetica Neue,Avenir Next,system-ui,sans-serif;line-height:1.45}.studio-root *{box-sizing:border-box}.studio-root .mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,monospace}.studio-root .topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:15px 22px;display:flex}.studio-root .wordmark{letter-spacing:-.01em;font-size:14px;font-weight:700}.studio-root .wordmark:after{content:"";background:var(--pink);border-radius:50%;width:7px;height:7px;margin-left:7px;display:inline-block;box-shadow:0 0 8px #f5568db3}.studio-root .where{color:var(--mut);font-size:13px}.studio-root .spacer{flex:1}.studio-root .chip{background:var(--bg);border:1px solid var(--edge);color:#9aa5b8;border-radius:6px;padding:4px 10px;font-size:12.5px}.studio-root .chip .pres{background:var(--good);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.studio-root .chip.you{border-color:var(--pink);color:var(--pink)}.studio-root .btn{font:inherit;cursor:pointer;background:var(--pink);color:#fff;border:none;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:600}.studio-root .btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--edge)}.studio-root .btn.big{border-radius:9px;padding:12px 22px;font-size:14.5px}.studio-root .btn:disabled{opacity:.45;cursor:default}.studio-root .btn:focus-visible{outline:2px solid var(--pink);outline-offset:2px}.studio-root .linkish{color:var(--pink);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;font-weight:600}.studio-root .body{gap:12px;max-width:1080px;margin:0 auto;padding:20px 22px;display:grid}.studio-root .grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=720px){.studio-root .grid2{grid-template-columns:1fr}}.studio-root .card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px}.studio-root .card h3{letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin:0 0 10px;font-size:11px;font-weight:600}.studio-root .hero-card{flex-wrap:wrap;align-items:flex-start;gap:34px;display:flex}.studio-root .huge{letter-spacing:-.04em;font-size:64px;font-weight:200;line-height:.95}.studio-root .huge .cap{letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.studio-root .huge .dim{color:#34405a;font-size:24px}.studio-root .huge .unit{text-align:center;letter-spacing:.1em;color:#34405a;margin-top:6px;font-size:15px;font-weight:400;display:block}.studio-root .playbtn{border:1px solid var(--edge);background:var(--bg);width:60px;height:60px;color:var(--pink);cursor:pointer;border-radius:12px;margin-top:24px;font-size:19px}.studio-root .playbtn:focus-visible{outline:2px solid var(--pink);outline-offset:2px}.studio-root .beat-zone{display:block}.studio-root .beat-zone .cap{letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:36px;font-size:11px;font-weight:600;display:block}.studio-root .beatline{gap:6px;display:flex}.studio-root .beat{background:#1e2637;border-radius:2px;width:26px;height:4px}.studio-root .beat.on{background:var(--pink);box-shadow:0 0 10px #f5568d80}.studio-root .tempo-row{align-items:center;gap:12px;display:inline-flex}.studio-root .nudge{cursor:pointer;color:#47536b;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:none;padding:0 6px;font-family:inherit;font-size:44px;font-weight:300;line-height:1;transition:color .15s,transform .1s}.studio-root .nudge:hover{color:var(--pink)}.studio-root .nudge:active{color:var(--pink);transform:scale(1.12)}.studio-root .nudge:focus-visible{outline:2px solid var(--pink);outline-offset:3px;border-radius:6px}.studio-root .bpm-btn{font:inherit;color:inherit;cursor:text;letter-spacing:inherit;background:0 0;border:none;padding:0}.studio-root .bpm-btn.pend{color:var(--pink)}.studio-root .bpm-btn:focus-visible{outline:2px solid var(--pink);outline-offset:4px;border-radius:4px}.studio-root .bpm-input{letter-spacing:-.04em;border:none;border-bottom:2px solid var(--pink);width:3.2ch;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;padding:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:64px;font-weight:200;line-height:.95}.studio-root .bpm-input:focus{outline:none}.studio-root .pending-line{width:100%;color:var(--pink);font-size:13px}.studio-root .error-line{width:100%;color:var(--rec);font-size:13px}.studio-root .kv{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:13.5px;display:flex}.studio-root .kv:last-child{border-bottom:none}.studio-root .kv .k{color:var(--mut)}.studio-root .ok{color:var(--good)}.studio-root select,.studio-root input[type=text],.studio-root input[type=number]{font:inherit;background:var(--bg);color:var(--ink);border:1px solid var(--edge);border-radius:6px;max-width:100%;padding:5px 8px;font-size:12.5px}.studio-root .kv select{text-overflow:ellipsis;max-width:240px}.studio-root .rec-strip{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;display:flex}.studio-root .roll-dot{background:var(--rec);border-radius:50%;flex:none;width:9px;height:9px;animation:1.4s infinite rollblink;box-shadow:0 0 8px #e0313199}.studio-root .roll-dot.idle{box-shadow:none;background:#2a3346;animation:none}@keyframes rollblink{0%,to{opacity:1}50%{opacity:.35}}.studio-root .rollstate{color:var(--mut);font-size:13px}.studio-root .rollstate b{color:var(--ink);font-weight:500}.studio-root .markbtn{white-space:nowrap;margin-left:auto}.studio-root .take{border-top:1px solid var(--line);align-items:center;gap:14px;padding:9px 0;font-size:13.5px;display:flex}.studio-root .take .meta{color:var(--mut);font-size:12.5px}.studio-root .take .marks{color:var(--pink);font-size:12px;font-weight:600}.studio-root .take .dl{margin-left:auto}.studio-root .rec-hint{color:var(--mut);max-width:56ch;margin:10px 0 0;font-size:12px}.studio-root .pname{font-size:15px;font-weight:600}.studio-root .pname .loc{color:var(--mut);margin-left:8px;font-size:12.5px;font-weight:400}.studio-root .partner-grid{grid-template-columns:auto 1fr;gap:26px;margin-top:12px;display:grid}@media (width<=640px){.studio-root .partner-grid{grid-template-columns:1fr}}.studio-root .knob-zone{text-align:center}.studio-root .knob{border:1px solid var(--edge);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 38% 32%,#1d2536,#0d1320 70%);border-radius:50%;width:128px;height:128px;margin:4px auto 8px;position:relative;box-shadow:inset 0 2px 8px #0000008c}.studio-root .knob:active{cursor:grabbing}.studio-root .knob:focus-visible{outline:2px solid var(--pink);outline-offset:3px}.studio-root .knob .pointer{background:var(--pink);transform-origin:50% 100%;width:3px;height:48px;transform:translate(-50%, -100%) rotate(var(--angle,-120deg));border-radius:2px;transition:transform .22s cubic-bezier(.3,1.4,.5,1);position:absolute;top:50%;left:50%;box-shadow:0 0 8px #f5568d8c}.studio-root .knob.dragging .pointer{transition:none}.studio-root .tick{transform-origin:50% 74px;width:2px;height:7px;transform:translate(-50%, -74px) rotate(var(--a));background:#2c3852;position:absolute;top:50%;left:50%}.studio-root .knob-hint{color:#4a5468;margin-top:2px;font-size:11.5px}.studio-root .detents{justify-content:center;gap:4px;margin-top:10px;display:flex}.studio-root .detents button{border:1px solid var(--edge);background:var(--bg);min-width:40px;height:32px;color:var(--mut);font:inherit;cursor:pointer;font-variant-numeric:tabular-nums;border-radius:6px;padding:0 8px;font-size:12px;font-weight:600}.studio-root .detents button.active{background:var(--pink);border-color:var(--pink);color:#fff;box-shadow:0 0 14px #f5568d59}.studio-root .readout{color:var(--mut);min-height:2.8em;margin:4px 0 0;font-size:13.5px}.studio-root .readout b{color:var(--ink);font-weight:500}.studio-root .pstat{align-content:start;gap:12px;max-width:460px;display:grid}.studio-root .phealth{color:var(--mut);font-size:12.5px}.studio-root .seg{background:var(--bg);border:1px solid var(--edge);border-radius:8px;gap:3px;padding:3px;display:inline-flex}.studio-root .seg button{font:inherit;cursor:pointer;color:#9aa5b8;background:0 0;border:none;border-radius:5px;padding:6px 12px;font-size:12.5px;font-weight:600}.studio-root .seg button.active{background:var(--edge);color:var(--ink)}.studio-root .segnote{color:var(--mut);max-width:46ch;margin-top:10px;font-size:12.5px}.studio-root .temponote{color:#9aa5b8;background:var(--bg);border:1px solid var(--line);border-radius:7px;margin-top:10px;padding:9px 11px;font-size:12.5px}.studio-root .healthbar{border-top:1px solid var(--line);color:#9aa5b8;align-items:center;gap:10px;max-width:1080px;margin:0 auto;padding:12px 22px;font-size:13px;display:flex}.studio-root .dot{background:var(--good);border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 8px #3ad07f99}.studio-root .dot.idle{box-shadow:none;background:#2a3346}.studio-root .dot.warn{background:var(--warn);box-shadow:0 0 8px #e4b84b80}.studio-root .healthbar .toggle{color:var(--mut);font:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:12.5px}.studio-root .details{color:var(--mut);flex-wrap:wrap;gap:26px;max-width:1080px;margin:0 auto;padding:8px 22px 16px;font-size:12.5px;display:flex}.studio-root .details b{color:var(--ink);font-size:13.5px;font-weight:500;display:block}.studio-root .centrepane{max-width:560px;margin:0 auto;padding:46px 26px 54px}.studio-root .centrepane h2{letter-spacing:-.01em;text-wrap:balance;color:var(--ink);margin:0 0 8px;font-size:24px;font-weight:600}.studio-root .centrepane .sub{color:var(--mut);margin:0 0 18px;font-size:14px}.studio-root .centrepane p{color:#9aa5b8;font-size:14px;line-height:1.55}.studio-root .consent{background:var(--bg);border:1px solid var(--edge);color:#9aa5b8;border-radius:9px;margin:16px 0;padding:12px 14px;font-size:13px;line-height:1.55}.studio-root .consent b{color:var(--ink);font-weight:600}.studio-root .fineprint{color:var(--mut);margin-top:12px;font-size:12px}.studio-root .devrow{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;font-size:13.5px;display:flex}.studio-root .devrow .k{color:var(--mut);flex:none}.studio-root .meter{background:#1e2637;border-radius:3px;height:6px;margin:16px 0 6px;overflow:hidden}.studio-root .meter i{background:linear-gradient(90deg, var(--good), #cdd24b 85%, var(--warn));transform-origin:0;border-radius:3px;height:100%;transition:transform 80ms linear;display:block}.studio-root .pulse-row{align-items:center;gap:10px;margin:24px 0;display:flex}.studio-root .pulse-dot{background:var(--pink);border-radius:50%;width:10px;height:10px;animation:.9s infinite calpulse}.studio-root .pulse-dot:nth-child(2){animation-delay:.3s}.studio-root .pulse-dot:nth-child(3){animation-delay:.6s}@keyframes calpulse{0%,to{opacity:.25}50%{opacity:1}}.studio-root .patch{background:var(--bg);border:1px solid var(--edge);color:#9aa5b8;border-radius:9px;margin:16px 0;padding:14px 16px;font-size:13.5px;line-height:1.6}.studio-root .patch b{color:var(--ink);font-weight:600}.studio-root .invite-pane{border:1px solid var(--edge);background:var(--card);border-radius:10px;gap:10px;padding:16px 18px;display:grid}.studio-root .invite-pane .frow{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.studio-root .invite-pane .frow .k{color:var(--mut);min-width:96px}.studio-root .invite-pane input{flex:1;min-width:160px}.studio-root .linkbox{color:#9aa5b8;background:var(--bg);border:1px solid var(--line);word-break:break-all;border-radius:7px;padding:9px 11px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px}@media (prefers-reduced-motion:reduce){.studio-root *,.studio-root :before,.studio-root :after{transition:none!important;animation:none!important}}*{box-sizing:border-box}body{color:#d7dde4;background:#0d1117;margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace}.wrap{max-width:880px;margin:0 auto;padding:24px}h1{color:#fff;margin:0 0 4px;font-size:18px}.sub{color:#7d8590;margin-bottom:20px;font-size:12px}.sub a{color:#9ecbff}.panel{background:#161b22;border:1px solid #2d333b;border-radius:8px;margin-bottom:14px;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.row:last-child{margin-bottom:0}.label{color:#7d8590;text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;width:90px;font-size:11px}button{color:#d7dde4;font:inherit;cursor:pointer;background:#21262d;border:1px solid #363c44;border-radius:6px;padding:7px 14px;font-size:13px}button:hover{background:#2a313a}button:disabled{opacity:.45;cursor:default}button.go{background:#1a5c33;border-color:#2ea24f;padding:10px 26px;font-size:15px}button.go:hover{background:#217a41}button.stop{background:#5c1a1a;border-color:#a24f2e;padding:10px 26px;font-size:15px}input[type=number],select{color:#d7dde4;font:inherit;background:#0d1117;border:1px solid #363c44;border-radius:6px;padding:7px 8px}input[type=number]{width:80px}.status{text-align:center;grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.status .cell{background:#0d1117;border:1px solid #2d333b;border-radius:6px;padding:10px 6px}.status .v{color:#fff;font-variant-numeric:tabular-nums;font-size:20px}.status .k{color:#7d8590;text-transform:uppercase;letter-spacing:.08em;margin-top:2px;font-size:10px}.hint{color:#7d8590;font-size:12px;line-height:1.55}.pending{color:#e3b341;font-size:12px}.error{color:#f85149;font-size:12px}.pass{color:#2ea24f;font-weight:700}.fail{color:#f85149;font-weight:700}
