:root{color:#e0e0e0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg:#1a1a1a;--surface:#2d2d2d;--surface-strong:#3a3a3a;--line:#555;--text:#e0e0e0;--muted:#999;--green:#fa0;--amber:#fc0;--cyan:#4ad;--danger:#f44;--deck-credit-h:.5rem;--deck-shell-pad:.5625rem;--deck-shell-pad-live:.375rem;--deck-grid-gap:.1875rem;--deck-grid-gap-live:.125rem;--deck-toolbar-idle:6rem;--deck-toolbar-live:2.75rem;--deck-height:calc(var(--deck-shell-pad) + var(--deck-toolbar-idle) + var(--deck-grid-gap) + var(--deck-credit-h));--deck-height-live:calc(var(--deck-shell-pad-live) + var(--deck-toolbar-live) + var(--deck-grid-gap-live) + var(--deck-credit-h));--live-header:1.6rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-raster:0 2px 4px #0000004d, inset 0 1px #ffffff1a;--shadow-glow:0 0 12px #fa06;--glass:#1a1a1ab8;--glass-border:#ffaa0024;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", "Roboto Mono", monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);background:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:radial-gradient(120% 80% at 50% -10%,#ffaa0012,#0000 55%),linear-gradient(#252525 0%,#1a1a1a 100%);min-width:320px;min-height:100svh;margin:0}button,input,select,textarea{font:inherit}input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{font-size:max(1rem,16px)}button{cursor:pointer;touch-action:manipulation;border:0}.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}.splash-screen{z-index:10000;background:#0a0a0a;position:fixed;inset:0;overflow:hidden}.splash-screen__image{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.onepager{flex-direction:column;width:min(1120px,100%);min-height:100svh;margin:0 auto;display:flex}.site-hero{text-align:center;flex:none}.site-title{color:var(--text);letter-spacing:.14em;text-align:center;text-transform:uppercase;flex:none;margin:0;font-size:clamp(.82rem,2.4vw,.98rem);font-weight:800;line-height:1.1}.site-tagline{color:var(--muted);letter-spacing:.04em;margin:4px 0 0;font-size:clamp(.62rem,1.8vw,.72rem);font-weight:500;line-height:1.35}.site-tagline a{color:var(--amber);text-decoration:none}.site-tagline a:hover{text-decoration:underline}.seo-fallback{color:#e0e0e0;max-width:40rem;margin:2rem auto;padding:0 1rem;font-family:system-ui,sans-serif;line-height:1.5}.seo-fallback a{color:#fa0}.site-title__accent{color:var(--green)}.onepager--idle{height:100svh;padding:max(6px, env(safe-area-inset-top)) 10px calc(var(--deck-height) + env(safe-area-inset-bottom));gap:6px;overflow:hidden}.onepager--live{height:100svh;padding:max(4px, env(safe-area-inset-top)) 6px calc(var(--deck-height-live) + env(safe-area-inset-bottom));gap:4px;overflow:hidden}.onepager--live .site-footer{display:none}.site-footer{flex:none;padding:0 2px 2px}.site-legal{color:var(--muted);align-items:center;gap:4px;font-size:.68rem;display:inline-flex}.site-legal a{color:var(--amber);text-decoration:none}.site-legal a:hover{text-decoration:underline}.site-legal--compact{font-size:.58rem}.site-footer .site-legal{justify-content:center;margin-top:2px}.idle-strip{border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-raster);flex:none;gap:6px;padding:8px;display:grid}.app-header{min-height:0;padding-top:max(4px, env(safe-area-inset-top));justify-content:flex-end;align-items:center;gap:12px;display:flex}.app-header--live{min-height:var(--live-header);justify-content:space-between;padding-bottom:2px}.latency-badge{color:var(--text);border:1px solid var(--line);border-radius:var(--radius-md);font-variant-numeric:tabular-nums;box-shadow:var(--shadow-raster);background:linear-gradient(#3a3a3a 0%,#2d2d2d 100%);align-items:baseline;gap:6px;margin:0;padding:4px 8px;display:inline-flex}.latency-badge__label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.58rem;font-weight:700}.latency-badge strong{font-size:.72rem;font-weight:800}.latency-badge--warmup strong{color:var(--muted)}.latency-badge--partial strong{color:var(--amber)}.latency-badge--full strong{color:#9dff8a}.latency-panel{gap:12px;display:grid}.latency-panel__hero{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.latency-panel__eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 2px;font-size:.68rem;font-weight:700}.latency-panel__value{color:var(--amber);font-variant-numeric:tabular-nums;margin:0;font-size:clamp(1.6rem,5vw,2.2rem);font-weight:800;line-height:1.1}.latency-panel__sub{color:var(--muted);margin:4px 0 0;font-size:.72rem}.latency-panel__badge{border-radius:var(--radius-sm);border:1px solid var(--line);letter-spacing:.06em;text-transform:uppercase;flex:none;padding:4px 8px;font-size:.62rem;font-weight:800}.latency-panel__badge--warmup{color:var(--muted)}.latency-panel__badge--partial{color:var(--amber);border-color:#ffaa0059}.latency-panel__badge--full{color:#8dffb0;border-color:#8dffb059}.latency-panel__actions{gap:6px;display:grid}.latency-panel__copy{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font:inherit;cursor:pointer;background:#ffffff0a;justify-self:start;padding:8px 14px;font-size:.78rem;font-weight:700}.latency-panel__copy:disabled{opacity:.45;cursor:not-allowed}.latency-panel__copy:not(:disabled):hover{color:var(--amber);border-color:#ffaa0073}.latency-panel__musician{color:var(--text);margin:0;font-size:.92rem;line-height:1.4}.latency-panel__tech{border-top:1px solid var(--line);padding-top:10px}.latency-panel__tech>summary{cursor:pointer;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:700}.latency-panel__tech[open]>summary{color:var(--text);margin-bottom:10px}.latency-panel__actions-hint{margin:0}.latency-panel__output-hint{border-radius:10px;margin:0;padding:10px 12px;font-size:.84rem;line-height:1.35}.latency-panel__output-hint--caution{color:#fc6;background:#ffaa001f}.latency-panel__output-hint--warning{color:#ffb09a;background:#ff5a3c24}.audio-output-banner{border-radius:12px;justify-content:space-between;align-items:flex-start;gap:10px;margin:0 0 10px;padding:10px 12px;font-size:.82rem;line-height:1.35;display:flex}.audio-output-banner--caution{color:#ffe0a3;background:#ffaa0024}.audio-output-banner--warning{color:#ffc2b0;background:#ff5a3c29}.audio-output-banner__text{flex:1;margin:0}.audio-output-banner__dismiss{min-width:44px;min-height:36px;color:inherit;letter-spacing:.04em;text-transform:uppercase;background:#00000040;border:1px solid #ffffff2e;border-radius:999px;flex:none;padding:6px 12px;font-size:.75rem}@media (width<=720px){.audio-output-banner{z-index:5;position:sticky;bottom:0}}.latency-panel__path{color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-md);letter-spacing:.04em;text-transform:uppercase;background:#00000038;flex-wrap:wrap;gap:4px 6px;padding:8px 10px;font-size:.62rem;font-weight:700;display:flex}.latency-panel__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.latency-panel__grid div{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff08;padding:8px}.latency-panel__grid dt{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.62rem;font-weight:700}.latency-panel__grid dd{font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:.78rem;font-weight:700}.latency-panel__table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.72rem}.latency-panel__table th,.latency-panel__table td{text-align:left;border-bottom:1px solid #55555573;padding:6px 4px}.latency-panel__table thead th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.62rem}.latency-panel__table tbody th{font-weight:600}.app-header__live{color:var(--text);border:1px solid var(--line);border-radius:var(--radius-md);text-transform:uppercase;box-shadow:var(--shadow-raster);background:linear-gradient(#3a3a3a 0%,#2d2d2d 100%);align-items:center;gap:6px;padding:4px 8px;font-size:.58rem;font-weight:800;display:inline-flex}.app-header__live-dot{background:var(--green);width:7px;height:7px;box-shadow:var(--shadow-glow);animation:live-pulse 2.4s var(--ease-out) infinite;border-radius:50%}.app-header__preset{color:var(--muted)}@keyframes live-pulse{0%,to{opacity:1;box-shadow:var(--shadow-glow);transform:scale(1)}50%{opacity:.55;transform:scale(.92);box-shadow:0 0 4px #fa03}}.stage{border-radius:var(--radius-lg);box-shadow:var(--shadow-raster);background:#1f1f1f;border:1px solid #444;min-height:0;position:relative;overflow:hidden}.stage--idle{min-height:0;box-shadow:var(--shadow-raster), inset 0 0 0 1px #ffaa000d}.stage--live:before,.stage--idle:before{content:"";z-index:4;pointer-events:none;border-radius:calc(var(--radius-md) - 2px);opacity:.65;border:1px solid #ffaa001f;position:absolute;inset:8px}.onepager--idle .stage{flex-direction:column;flex:auto;display:flex}.stage--live{border-radius:var(--radius-md);min-height:0;box-shadow:var(--shadow-raster), 0 0 calc(12px + var(--stage-glow,0) * 28px) rgba(255, 170, 0, calc(var(--stage-glow,0) * .22));flex:auto;transition:box-shadow .12s linear}.onepager--live .stage{flex:auto;min-height:0}.stage__camera-shell{flex:auto;width:100%;height:100%;min-height:0;position:relative}.stage--live .stage__camera-shell{height:100%;min-height:100%}.stage__hud-overlay{z-index:5;pointer-events:none;position:absolute;top:6px;left:6px;right:6px}.stage__hand-monitors{z-index:4;pointer-events:none;grid-template-columns:1fr 1fr;gap:4px;max-height:56px;display:grid;position:absolute;bottom:6px;left:6px;right:6px}.camera-view{width:100%;height:100%;min-height:inherit;background:#050607;position:relative;overflow:hidden}.camera-view--live:after{content:"";z-index:2;pointer-events:none;background:radial-gradient(#0000 54%,#00000052 100%);position:absolute;inset:0}.camera-view__stage{position:absolute;inset:0;transform:scaleX(-1)}.camera-view__stage.is-dimmed{opacity:.16}.camera-view__video,.camera-view__overlay{object-fit:cover;object-position:center center;width:100%;height:100%;position:absolute;inset:0}.camera-view__overlay{z-index:1}.camera-view__placeholder{z-index:2;text-align:center;background:radial-gradient(circle at 50% 42%,#ffaa0014,#0000 38%),linear-gradient(#1a1a1a26,#1a1a1aeb),repeating-linear-gradient(90deg,#ffaa000a 0 1px,#0000 1px 28px),repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 24px);place-items:center;padding:20px;display:grid;position:absolute;inset:0}.camera-view__placeholder-inner{border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c0c0e9e;border:1px solid #ffaa0038;gap:14px;width:min(92%,26rem);padding:18px 16px;display:grid;box-shadow:0 10px 36px #00000073,inset 0 1px #ffffff0d}.camera-view__placeholder-eyebrow{color:var(--green);letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:clamp(.62rem,2.4vw,.72rem);font-weight:800}.camera-view__placeholder-hero{color:var(--text);letter-spacing:.02em;text-wrap:balance;text-shadow:0 0 28px #ffaa002e;margin:0;font-size:clamp(1.35rem,6.2vw,2rem);font-weight:850;line-height:1.08}.camera-view__placeholder-lead{color:#b8b8b8;text-wrap:balance;margin:0;font-size:clamp(.82rem,3.1vw,.96rem);line-height:1.45}.camera-view__placeholder-signals{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.camera-view__placeholder-signals li{color:var(--text);border-radius:var(--radius-md);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:linear-gradient(#3a3a3af2 0%,#2a2a2af2 100%);border:1px solid #ffaa0047;align-items:center;gap:6px;padding:6px 10px;font-size:clamp(.68rem,2.6vw,.76rem);font-weight:700;display:inline-flex}.camera-view__placeholder-signals span{color:var(--green);font-size:.92em}.camera-view__meter{z-index:3;flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex;position:absolute;top:8px;right:8px}.camera-view__meter span{color:#1a1a1a;border-radius:var(--radius-sm);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;box-shadow:var(--shadow-raster);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#fa0 0%,#c80 100%);border:1px solid #fc0;padding:4px 8px;font-size:.58rem;font-weight:800}.camera-view__meter span.is-active{color:#fff;background:linear-gradient(#4ad 0%,#28a 100%);border-color:#6cf}.hand-feedback-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08090bc7;gap:4px;padding:6px;display:grid}.hand-feedback-card--compact{gap:2px;padding:3px}.hand-feedback-card--compact .hand-feedback-card__head{display:none}.hand-feedback-card--compact .hand-feedback-card__canvas{aspect-ratio:16/9;max-height:36px}.hand-feedback-card--compact .hand-feedback-card__message{display:none}.hand-feedback-card--ok{border-color:#ffaa008c;box-shadow:0 0 10px #ffaa001f}.hand-feedback-card--warn{border-color:#ffbe55a6}.hand-feedback-card--missing{border-color:#ff6b6b8c}.hand-feedback-card__head{justify-content:space-between;align-items:center;gap:4px;display:flex}.hand-feedback-card__role,.hand-feedback-card__hand{letter-spacing:.05em;text-transform:uppercase;font-size:.58rem;font-weight:800}.hand-feedback-card__role--left{color:var(--cyan)}.hand-feedback-card__role--right{color:var(--green)}.hand-feedback-card__hand{color:var(--muted)}.hand-feedback-card__canvas{aspect-ratio:4/3;background:#050607;width:100%;display:block}.hand-feedback-card__message{color:var(--text);margin:0;font-size:.58rem;font-weight:700;line-height:1.2}.hand-feedback-card--ok .hand-feedback-card__message{color:var(--green)}.hand-feedback-card--warn .hand-feedback-card__message{color:var(--amber)}.hand-feedback-card--missing .hand-feedback-card__message{color:var(--danger)}.play-guide.play-guide--idle{border:1px solid #555555a6;border-left:2px solid var(--green);border-radius:var(--radius-md);min-height:44px;box-shadow:var(--shadow-raster);background:linear-gradient(90deg,#ffaa0012,#0000 42%),linear-gradient(#2d2d2d 0%,#252525 100%);justify-content:space-between;align-items:center;gap:8px;padding:4px 8px 4px 10px;display:flex}.play-guide{border-radius:var(--radius-lg);box-shadow:var(--shadow-raster);background:linear-gradient(#2d2d2d 0%,#252525 100%);border:1px solid #444;padding:10px 12px}.play-guide__title{color:var(--green);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.68rem}.play-guide__info-btn{color:#c9cbcf;width:44px;height:44px;box-shadow:var(--shadow-raster);background:linear-gradient(#4a4a4a 0%,#3a3a3a 100%);border:1px solid #555;border-radius:50%;padding:0;font-size:.68rem;font-style:italic;font-weight:800;line-height:1}.play-guide__info-btn:hover,.play-guide__info-btn:focus-visible,.play-guide__info-btn.is-active{color:var(--green);border-color:var(--green);box-shadow:var(--shadow-glow)}.play-guide__info-backdrop{z-index:25;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;border:0;margin:0;padding:0;position:fixed;inset:0}.play-guide__info-panel{z-index:26;left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:calc(var(--deck-height) + env(safe-area-inset-bottom) + 8px);max-height:min(58svh, calc(100svh - var(--deck-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#2d2d2df7 0%,#1f1f26fa 100%);border:1px solid #ffaa0038;align-content:start;gap:8px;padding:10px 12px 12px;display:grid;position:fixed;overflow:auto;box-shadow:0 16px 40px #00000080}.play-guide__info-head{z-index:1;background:linear-gradient(#2d2d2dfa 70%,#2d2d2d00);justify-content:space-between;align-items:center;gap:8px;margin:-2px 0 0;padding:2px 0 6px;display:flex;position:sticky;top:0}.play-guide__info-head h2{color:var(--text);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.78rem}.play-guide__info-close{min-width:44px;min-height:44px;color:var(--muted);border-radius:var(--radius-sm);background:#ffffff08;border:1px solid #555;flex:none;padding:0;font-size:1.1rem;line-height:1}.play-guide__info-close:hover,.play-guide__info-close:focus-visible{color:var(--green);border-color:#ffaa0073}.play-guide__info-panel .play-guide__lead{color:var(--muted);margin:0;font-size:.78rem;line-height:1.4}.play-guide__info-cards{gap:6px}.play-guide__info-panel .gesture-card{gap:2px;padding:8px 9px}.play-guide__info-panel .gesture-card strong{font-size:.78rem}.play-guide__info-panel .gesture-card small{font-size:.68rem;line-height:1.35}.play-guide__lead{color:var(--muted);margin:0;font-size:.88rem;line-height:1.45}.gesture-cards{grid-template-columns:1fr;gap:8px;display:grid}.gesture-card{border-radius:var(--radius-md);box-shadow:var(--shadow-raster);transition:border-color .16s var(--ease-out), box-shadow .16s var(--ease-out);background:linear-gradient(135deg,#ffaa000d,#0000 55%),linear-gradient(#3a3a3a 0%,#2d2d2d 100%);border:1px solid #555;gap:3px;padding:10px;display:grid}.gesture-card:hover{border-color:#ffaa0059;box-shadow:0 0 14px #ffaa0014}.gesture-card__label{color:var(--green);letter-spacing:.06em;text-transform:uppercase;font-size:.66rem;font-weight:800}.gesture-card strong{color:var(--text);font-size:.86rem}.gesture-card small{color:var(--muted);font-size:.72rem}.field-hint{color:var(--muted);text-transform:none;letter-spacing:0;font-size:.68rem}.calibration-panel__toggle span{gap:2px;display:grid}.calibration-panel__toggle small{color:var(--muted);text-transform:none;letter-spacing:0;font-size:.72rem}.calibration-panel__advanced{border-top:1px solid var(--line);padding-top:10px}.calibration-panel__advanced summary{color:var(--muted);text-transform:uppercase;cursor:pointer;font-size:.78rem;font-weight:700}.calibration-panel__advanced-body{gap:12px;margin-top:12px;display:grid}.midi-panel{border-top:1px solid var(--line);gap:12px;padding-top:12px;display:grid}.midi-panel__lead{margin:0}.midi-panel__body,.midi-panel__channels{gap:12px;display:grid}.midi-panel__mapping{margin:0}.midi-panel__status{letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:700}.midi-panel__status--connected{color:var(--green)}.recording-library{gap:14px;display:grid}.recording-library__capture,.recording-library__list{gap:10px;display:grid}.recording-library__capture-head,.recording-library__list-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.recording-library__title{margin:0;font-size:.92rem}.recording-library__timer{color:#f88;font-variant-numeric:tabular-nums;margin:0;font-size:.82rem;font-weight:700}.recording-library__controls{flex-wrap:wrap;gap:8px;display:flex}.recording-library__primary,.recording-library__ghost,.recording-library__danger{border-radius:var(--radius-md);letter-spacing:.05em;text-transform:uppercase;min-height:38px;padding:0 14px;font-size:.72rem;font-weight:700}.recording-library__primary{color:#111;background:linear-gradient(#ffd46b,#fa0);border:1px solid #c80}.recording-library__ghost{color:var(--text);border:1px solid var(--line);background:#3a3a3a}.recording-library__danger{color:#ffd0d0;background:#402020;border:1px solid #7a3030}.recording-library__warning,.recording-library__error{margin:0;font-size:.72rem}.recording-library__error{color:#f88}.recording-library__count{color:var(--muted);font-size:.72rem}.recording-card{border:1px solid var(--line);border-radius:var(--radius-md);background:#ffffff08;grid-template-columns:88px 1fr;gap:10px;padding:10px;display:grid}.recording-card__wave{border-radius:var(--radius-sm);background:#00000040;grid-template-columns:repeat(6,1fr);align-items:end;gap:2px;min-height:64px;padding:4px;display:grid}.recording-card__wave span{min-height:4px;height:calc(10% + var(--bar-level,.2) * 90%);background:linear-gradient(#4ad,#fa0);border-radius:2px 2px 0 0;display:block}.recording-card__body{gap:6px;display:grid}.recording-card__title{color:var(--text);font:inherit;text-align:left;background:0 0;border:0;margin:0;padding:0;font-weight:700}.recording-card__meta{color:var(--muted);margin:0;font-size:.68rem}.recording-card__actions{flex-wrap:wrap;gap:6px;display:flex}.recording-card__action{min-height:28px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);letter-spacing:.04em;text-transform:uppercase;background:#3a3a3a;padding:0 10px;font-size:.62rem;font-weight:700}.recording-card__action--danger{color:#ffb0b0}.recording-card__rename{gap:6px;display:flex}.recording-card__rename input{min-width:0;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);background:#222;flex:1;padding:6px 8px}.recording-card__trim{gap:8px;display:grid}.midi-panel__status--disconnected,.midi-panel__status--permission-denied{color:var(--amber)}.midi-panel__status--unsupported,.midi-panel__status--idle{color:var(--muted)}.midi-panel--input{margin-top:4px}.midi-panel__learn{border-top:1px solid var(--line);gap:10px;padding-top:10px;display:grid}.midi-panel__learn-title{text-transform:uppercase;color:var(--muted);margin:0;font-size:.78rem;font-weight:700}.midi-panel__learn-active{color:var(--amber);margin:0;font-size:.82rem}.midi-panel__learn-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.midi-panel__learn-row strong{font-size:.86rem;display:block}.midi-panel__learn-row .text-button.is-active{color:var(--amber);background:#ffaa0026;border-color:#fa06}.midi-panel__advanced{border-top:1px solid var(--line);padding-top:8px}.midi-panel__advanced>summary{cursor:pointer;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:700;list-style-position:outside}.midi-panel__advanced[open]>summary{color:var(--text);margin-bottom:8px}.midi-panel__advanced .midi-panel__cc-map{border-top:none;padding-top:0}.midi-panel__cc-map{border-top:1px solid var(--line);gap:8px;padding-top:10px;display:grid}.midi-panel__cc-map-title{text-transform:uppercase;color:var(--muted);margin:0;font-size:.78rem;font-weight:700}.midi-panel__cc-row,.midi-panel__gesture-row{align-items:center;gap:8px;display:grid}.midi-panel__cc-row{grid-template-columns:minmax(0,1fr) auto}.midi-panel__gesture-row{grid-template-columns:auto minmax(0,1.4fr) auto auto}.midi-panel__cc-enable{align-items:center;gap:8px;margin:0;display:flex}.midi-panel__cc-number{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;margin:0;font-size:.8rem;display:flex}.midi-panel__cc-number input,.midi-panel__cc-number select,.midi-panel__gesture-row>select{width:4.2rem;min-width:0}.midi-panel__gesture-row>select{width:100%}.midi-panel__cc-feel{gap:8px;margin-top:4px;display:grid}@media (width<=720px){.midi-panel__gesture-row{grid-template-columns:auto minmax(0,1fr)}.midi-panel__gesture-row .midi-panel__cc-number{justify-content:flex-start}}.performance-deck__midi{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;margin:0;padding:0 2px;font-size:.72rem;font-weight:700}.performance-deck__midi--connected{color:var(--green)}.performance-deck__midi--disconnected,.performance-deck__midi--permission-denied{color:var(--amber)}.performance-deck__midi-toggles{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.performance-deck__midi-toggle{border:1px solid color-mix(in srgb, var(--text) 18%, transparent);background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--muted);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:.68rem;font-weight:700}.performance-deck__midi-toggle.is-active{border-color:color-mix(in srgb, var(--green) 55%, transparent);color:var(--green)}.performance-deck{z-index:20;padding:6px 12px calc(3px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#101010f0;border-top:1px solid #3a3a3a;gap:3px;display:grid;position:fixed;bottom:0;left:0;right:0}.performance-deck:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffaa0080,#0000);height:1px;position:absolute;top:0;left:10%;right:10%}.performance-deck--live{padding:4px 8px calc(2px + env(safe-area-inset-bottom));gap:2px}.performance-deck__toolbar{align-items:center;gap:6px;display:flex}.performance-deck--live .performance-deck__toolbar{gap:4px}.performance-deck__primary{color:#1a1a1a;border-radius:var(--radius-md);letter-spacing:.06em;text-transform:uppercase;min-height:54px;box-shadow:var(--shadow-raster), 0 0 18px #ffaa001f;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out);background:linear-gradient(#ffc44d 0%,#fa0 42%,#c80 100%);border:1px solid #fc0;font-size:.82rem;font-weight:850;position:relative;overflow:hidden}.performance-deck__primary:not(:disabled):after{content:"";opacity:0;transition:opacity .18s var(--ease-out);pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffffff2e 50%,#0000 65%);position:absolute;inset:0}.performance-deck__primary:not(:disabled):hover:after,.performance-deck__primary:not(:disabled):focus-visible:after{opacity:1}.performance-deck__primary:active:not(:disabled){transform:scale(.98)}.performance-deck__primary--stop{color:var(--text);background:linear-gradient(#4a4a4a 0%,#3a3a3a 100%);border-color:#666}.performance-deck:not(.performance-deck--live) .performance-deck__toolbar{flex-wrap:wrap}.performance-deck:not(.performance-deck--live) .performance-deck__primary{flex:100%;width:100%;min-height:46px}.performance-deck:not(.performance-deck--live) .performance-deck__ghost{flex:1}.performance-deck--live .performance-deck__primary{min-height:var(--deck-toolbar-live);flex:none;min-width:58px;padding:0 12px;font-size:.62rem}.performance-deck--live .performance-deck__ghost{min-height:var(--deck-toolbar-live);flex:none;min-width:44px;padding:0 8px;font-size:.58rem}.onepager--live .app-header{flex:none;justify-content:flex-end;padding-top:0}.performance-deck__primary:disabled{opacity:.7;cursor:wait}.performance-deck__ghost{color:#c9cbcf;border-radius:var(--radius-md);letter-spacing:.04em;text-transform:uppercase;min-height:44px;box-shadow:var(--shadow-raster);background:linear-gradient(#4a4a4a 0%,#3a3a3a 100%);border:1px solid #555;flex:1;font-size:.72rem;font-weight:700}.performance-deck__credit{color:#9999996b;letter-spacing:.32em;text-align:center;text-transform:lowercase;transform-origin:50%;width:auto;margin:0;font-size:.46rem;font-weight:600;line-height:1;transform:scaleX(1.12)}.performance-deck__meta{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.performance-deck__legal{margin-left:auto}.performance-deck__record-status{color:#f77;letter-spacing:.08em;text-align:center;text-transform:uppercase;margin:0;font-size:.62rem;font-weight:700}.performance-deck__ghost--rec.is-active,.performance-deck__ghost--rec:focus-visible{color:#ffd0d0;border-color:#ff5a5a8c;box-shadow:0 0 10px #ff464640}.tune-warning{color:var(--amber)}.play-guide__steps{color:var(--muted);gap:6px;margin:8px 0 0;padding-left:1rem;font-size:.86rem;display:grid}.play-guide__steps strong{color:var(--text)}.play-guide--live{padding:8px 12px}.play-guide--compact{margin-top:auto}.play-guide__warning,.play-guide__ok{margin:0;font-size:.82rem;font-weight:700}.play-guide__warning{color:var(--amber)}.play-guide__ok{color:var(--green)}.preset-chips{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.preset-chips::-webkit-scrollbar{display:none}.preset-chips button{color:#c9cbcf;border-radius:var(--radius-md);letter-spacing:.04em;text-transform:uppercase;min-height:40px;box-shadow:var(--shadow-raster);background:linear-gradient(#4a4a4a 0%,#3a3a3a 100%);border:1px solid #555;flex:none;padding:0 14px;font-size:.72rem;font-weight:800;transition:transform .12s,box-shadow .12s,background .12s}.preset-chips button:active{transform:scale(.98)}.preset-chips button.is-active{color:#1a1a1a;box-shadow:var(--shadow-glow), inset 0 1px #ffffff4d;background:linear-gradient(#fa0 0%,#c80 100%);border-color:#fc0}.preset-chips--sheet button{min-height:44px}.duo-presets{gap:12px;display:grid}.duo-presets--inline{gap:4px}.duo-presets__row--inline{grid-template-columns:auto 1fr;align-items:center;gap:6px;display:grid}.duo-presets__row--inline .duo-presets__label{width:12px;font-size:.62rem}.duo-presets__row--inline .preset-chips button{min-height:36px;padding:0 10px;font-size:.62rem}.duo-presets__row--inline:first-child .duo-presets__label{color:var(--cyan)}.duo-presets__row--inline:nth-child(2) .duo-presets__label{color:var(--green)}.duo-presets__row{gap:6px;display:grid}.duo-presets__label{color:var(--muted);text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}.setup-sheet{z-index:20;left:20px;bottom:calc(var(--deck-height) + env(safe-area-inset-bottom) + 8px);width:min(420px,100% - 40px);max-height:min(70svh, calc(100svh - var(--deck-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--glass-border);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px 16px 0 0;gap:12px;padding:14px 16px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 16px 40px #00000080}.setup-sheet__label,.section-title p{color:var(--green);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.72rem}.setup-sheet__close{min-width:44px;min-height:44px;color:var(--muted);border-radius:var(--radius-sm);background:#ffffff08;border:1px solid #555;padding:0;font-size:1.1rem;line-height:1;position:absolute;top:12px;right:12px}.setup-sheet__close:hover,.setup-sheet__close:focus-visible{color:var(--green);border-color:#ffaa0073}.setup-sheet__preview-grid{gap:12px;display:grid}.setup-sheet__preview-channel{border:1px solid var(--line);background:#ffffff05;gap:10px;padding:10px;display:grid}.setup-sheet__preview-label{color:var(--muted);text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700}.setup-sheet__preview-value{color:var(--text);margin:0;font-size:.82rem;font-weight:700}.setup-sheet__preview-value.is-muted{color:var(--muted)}.setup-sheet__preview-value.is-active{color:var(--green)}.setup-sheet__preview-value.is-warn{color:var(--amber)}.setup-sheet__preview-value.is-error{color:var(--danger)}.setup-sheet__backdrop{z-index:30;opacity:0;pointer-events:none;background:#0000008c;border:0;margin:0;padding:0;transition:opacity .18s;position:fixed;inset:0}.setup-sheet__backdrop.is-open{opacity:1;pointer-events:auto}.setup-sheet{z-index:40;max-height:90svh;padding:8px 14px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(#313131 0%,#1a1a22 100%);border-top:1px solid #ffaa0047;flex-direction:column;gap:0;transition:transform .22s;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%);box-shadow:0 -16px 48px #0000008c}.setup-sheet.is-open{transform:translateY(0)}.setup-sheet__handle{background:linear-gradient(90deg, transparent, var(--green), transparent);opacity:.65;border-radius:999px;flex-shrink:0;width:42px;height:4px;margin:4px auto 8px}.setup-sheet__header,.section-title{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:10px;display:flex}.setup-sheet__header h2{color:var(--text);letter-spacing:.02em;margin:0;font-size:1.05rem}.setup-sheet__subtitle{color:var(--muted);text-transform:none;letter-spacing:0;margin:4px 0 0;font-size:.76rem;line-height:1.35}.setup-sheet__close,.text-button{min-height:32px;color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:8px;padding:0 10px}.setup-sheet__body{scrollbar-width:thin;flex:1;min-height:0;padding:2px 2px 12px;overflow-y:auto}.setup-sheet__footer{flex-shrink:0;gap:8px;padding-top:10px;display:grid}@media (width>=760px){.setup-sheet{border:1px solid var(--line);border-radius:16px 16px 0 0;width:min(460px,100% - 40px);left:auto;right:20px}}.setup-sheet__section,.calibration-panel{gap:12px;display:grid}.calibration-panel--sheet{background:0 0;border:0;padding:0}.calibration-panel__warning{color:var(--amber);background:#ffbe5514;border:1px solid #ffbe5559;margin:0;padding:10px 12px;font-size:.84rem}.setup-sheet__apply{color:#1a1a1a;letter-spacing:.04em;text-transform:uppercase;min-height:46px;box-shadow:var(--shadow-raster);background:linear-gradient(#fa0 0%,#c80 100%);border:1px solid #fc0;border-radius:12px;font-weight:800}.tune-panel{gap:12px;display:grid}.tune-panel__stack{gap:10px;display:grid}.tune-panel__context{color:#ffffff8c;letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:.78rem}.tune-nav{z-index:2;background:linear-gradient(#313131 70%,#31313100);grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:4px 0 8px;display:grid;position:sticky;top:0}.tune-nav__button{color:#ffffffb8;text-align:left;background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;gap:2px;min-height:52px;padding:8px 6px;display:grid}.tune-nav__label{letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:800}.tune-nav__desc{color:#ffffff73;text-transform:none;letter-spacing:0;font-size:.62rem;line-height:1.25}.tune-nav__button.is-active{color:#1a1a1a;background:linear-gradient(#fc4 0%,#e6a000 100%);border-color:#ffd46b;box-shadow:0 4px 14px #ffaa0038}.tune-nav__button.is-active .tune-nav__desc{color:#1a1a1a9e}.tune-card{background:#ffffff08;border:1px solid #ffffff12;border-radius:14px;gap:10px;padding:12px;display:grid}.tune-card__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.tune-card__title{color:#ffffffeb;letter-spacing:.02em;margin:0;font-size:.88rem;font-weight:700}.tune-card__badge{color:#ffd46b;letter-spacing:.06em;text-transform:uppercase;background:#ffaa0014;border:1px solid #ffd46b59;border-radius:999px;padding:3px 8px;font-size:.64rem;font-weight:700}.tune-card__lead{color:#ffffffad;margin:0;font-size:.84rem;line-height:1.45}.tune-card__body{gap:12px;display:grid}.tune-quick-hint{color:#ffffffc7;background:#0000002e;border-radius:10px;margin:0;padding:8px 10px;font-size:.82rem;line-height:1.4}.tune-field{color:#ffffff8c;letter-spacing:.05em;text-transform:uppercase;gap:6px;font-size:.72rem;display:grid}.tune-fieldset{border:1px solid #ffffff1a;border-radius:10px;min-inline-size:0;margin:10px 0 0;padding:10px 12px}.tune-fieldset legend{color:#ffffff8c;letter-spacing:.06em;text-transform:uppercase;padding:0 4px;font-size:.68rem}.tune-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tune-toggle{color:#ffffff8c;text-transform:uppercase;background:#00000024;border:1px solid #ffffff12;border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px;font-size:.72rem;display:grid}.tune-toggle--inline{background:0 0;border:0;grid-template-columns:auto 1fr;padding:8px 0}.tune-toggle input{accent-color:var(--green);margin-top:3px}.tune-toggle strong{color:#ffffffe6;text-transform:none;font-size:.78rem;display:block}.tune-toggle small{color:#ffffff7a;text-transform:none;letter-spacing:0;margin-top:2px;font-size:.68rem;display:block}.tune-preview-grid{gap:10px;display:grid}.tune-preview-channel{background:#00000029;border-radius:12px;gap:10px;padding:10px;display:grid}.tune-preview-channel__label{color:var(--green);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.72rem}.tune-reset-button{color:#ffffffd1;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:10px;justify-self:start;min-height:36px;padding:0 14px}.donate-panel--hero{background:linear-gradient(145deg,#ffaa0024 0%,#ffffff08 72%);border:1px solid #ffaa0047;border-radius:16px;padding:14px}.donate-panel--status{background:#b8ff6214;border:1px solid #b8ff6247;border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.donate-panel__status-icon{color:#1a1a1a;background:#b8ff62;border-radius:999px;place-items:center;width:34px;height:34px;font-size:1rem;font-weight:800;display:grid}.donate-panel__status-copy strong{color:#d8ffb0;font-size:.92rem;display:block}.donate-panel__status-copy p{color:#ffffffad;margin:4px 0 0;font-size:.8rem;line-height:1.4}.donate-panel__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.donate-panel__eyebrow{color:#ffd46bd1;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.68rem}.donate-panel__title{color:#fff;margin:4px 0 0;font-size:1.02rem}.donate-panel__presets{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.donate-panel__preset{color:#ffffffd1;background:#0003;border:1px solid #ffffff1a;border-radius:10px;min-height:38px;font-weight:700}.donate-panel__preset.is-active{color:#1a1a1a;background:#ffd46b;border-color:#fc0}.drum-pin-map{gap:8px;display:grid}.drum-pin-map__hand{grid-template-columns:52px repeat(4,minmax(0,1fr));align-items:center;gap:6px;display:grid}.drum-pin-map__label{color:#ffffff8c;letter-spacing:.05em;text-transform:uppercase;font-size:.68rem;font-weight:700}.drum-pin-map__pad{color:#ffffff61;text-align:center;background:#ffffff0a;border-radius:8px;padding:6px 4px;font-size:.62rem;line-height:1.2}.drum-pin-map__pad.is-active{color:#1a1a1a;background:linear-gradient(#8fdfff 0%,#4db8e8 100%);font-weight:700}.drum-panel__test{color:#ffd46b;letter-spacing:.04em;text-transform:uppercase;background:#ffaa001a;border:1px solid #ffaa0047;border-radius:8px;min-height:30px;padding:0 10px;font-size:.72rem;font-weight:700}.drum-panel__pad-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.drum-panel__pad-head span{color:#ffffff7a;margin-top:2px;font-size:.72rem;display:block}.midi-panel--embedded .midi-panel{background:#ffffff08;border:1px solid #ffffff12;border-radius:14px;margin-top:0;padding:12px}.midi-panel--embedded .midi-panel--input{margin-top:0}.visitor-counter--compact{color:#ffffff73;text-align:center;letter-spacing:.02em;margin:0;font-size:.68rem}.range-control{gap:8px;display:grid}.range-control__header{color:var(--muted);text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:12px;font-size:.78rem;display:flex}.range-control output{color:var(--text);font-variant-numeric:tabular-nums;font-weight:800}.range-control input{width:100%;accent-color:var(--green)}.hand-selectors{gap:10px;display:grid}.hand-selectors label,.toggle-row{color:var(--muted);text-transform:uppercase;gap:6px;font-size:.78rem;display:grid}select{min-height:44px;color:var(--text);background:var(--surface-strong);border:1px solid var(--line);padding:0 12px}.privacy-footer{color:var(--muted);margin:0;font-size:.68rem}.privacy-footer a{color:#ffaa00b8;text-decoration:none}.privacy-footer a:hover,.privacy-footer a:focus-visible{color:var(--green);text-decoration:underline}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.app-header__live-dot{animation:none}.stage--live{transition:none}}@media (width>=480px){.gesture-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=760px){:root{--deck-toolbar-idle:5.75rem;--deck-toolbar-live:1.875rem}.onepager--idle{padding-inline:16px}.onepager--live{padding-inline:12px}.performance-deck{width:min(1120px,100%);left:50%;transform:translate(-50%)}.performance-deck:not(.performance-deck--live) .performance-deck__ghost{min-height:40px}.duo-presets__row--inline .preset-chips button{min-height:28px;padding:0 8px}.tune-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.tune-toggle-grid{grid-template-columns:1fr}.drum-pin-map__hand{grid-template-columns:44px repeat(2,minmax(0,1fr))}.drum-pin-map__hand .drum-pin-map__pad:nth-child(n+4){grid-column:span 1}.setup-sheet{border:1px solid var(--line);border-radius:16px 16px 0 0;width:min(460px,100% - 40px);left:auto;right:20px}}.drum-panel,.donate-panel{gap:12px;display:grid}.donate-panel:not(.donate-panel--hero):not(.donate-panel--status),.drum-panel:not(.drum-panel--embedded){border-top:1px solid #ffffff14;margin-top:18px;padding-top:18px}.donate-panel__hero-lead{color:#ffffffe0;margin:0;font-size:.94rem;line-height:1.55}.donate-panel__hero-lead strong{color:#ffd46b;font-weight:700}.drum-panel__pads{gap:10px;display:grid}.drum-panel__pads-title{text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c;margin:0;font-size:.82rem}.drum-panel__pad{background:#ffffff0a;border-radius:12px;gap:8px;padding:10px 12px;display:grid}.drum-panel__pad.is-locked{opacity:.72}.drum-panel__pad-controls{gap:8px;display:grid}.donate-panel__amount{gap:6px;display:grid}.donate-panel__checkout{color:#fff;cursor:pointer;background:#0070ba;border:0;border-radius:999px;min-height:42px;font-weight:700}.donate-panel__checkout:disabled{opacity:.55;cursor:not-allowed}.donate-panel__error{color:#ff8f8f;margin:0;font-size:.88rem}.donate-panel__dev{justify-self:start}.visitor-counter{background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;gap:10px;padding:12px;display:grid}.visitor-counter__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.visitor-counter__head p{color:var(--green);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:.82rem}.visitor-counter__badge{color:#ffffff73;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.visitor-counter__loading{color:#ffffff9e;margin:0;font-size:.86rem}.visitor-counter__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.visitor-counter__metric{background:#0000002e;border-radius:10px;gap:2px;padding:10px;display:grid}.visitor-counter__metric strong{color:#ffd46b;font-variant-numeric:tabular-nums;font-size:1.35rem;line-height:1.1}.visitor-counter__metric span{color:#ffffffd1;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700}.visitor-counter__metric small{color:#ffffff7a;font-size:.68rem}.visitor-counter__hint{margin:0}.performance-hud{border-radius:var(--radius-lg);box-shadow:var(--shadow-raster);background:linear-gradient(#2d2d2d 0%,#252525 100%);border:1px solid #444;gap:8px;padding:10px 12px;display:grid}.performance-hud__readout{gap:4px;display:grid}.performance-hud--overlay{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:3px;padding:5px 7px;box-shadow:0 4px 18px #00000061,inset 0 1px #ffffff0a}.performance-hud__duo-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.performance-hud__midi{color:#b8ff62d1;letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:.68rem;font-weight:700}.performance-hud__channel{transition:opacity .14s var(--ease-out);background:0 0;border:0;grid-template-columns:auto 1fr;grid-template-areas:"tag note""tag meta""meter meter";align-items:center;gap:0 6px;padding:2px 4px;display:grid}.performance-hud__channel--muted{opacity:.45}.performance-hud__channel-tag{width:16px;height:16px;color:var(--muted);font-family:var(--font-mono);text-align:center;text-transform:uppercase;opacity:.9;border:1px solid;border-radius:3px;grid-area:tag;place-items:center;font-size:.56rem;font-weight:800;display:grid}.performance-hud__channel--left .performance-hud__channel-tag{color:var(--cyan)}.performance-hud__channel--right .performance-hud__channel-tag{color:var(--green)}.performance-hud__channel-head{display:none}.performance-hud__note{color:var(--text);font-family:var(--font-mono);grid-area:note;margin:0;font-size:.82rem;font-weight:800;line-height:1}.performance-hud__meta{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;grid-area:meta;margin:0;font-size:.58rem;font-weight:700}.performance-hud__channel .signal-visualizer--slim{grid-area:meter;margin:2px 0}.performance-hud__pan{background:#ffffff0f;border-radius:999px;height:3px;position:relative}.performance-hud__pan:before,.performance-hud__pan:after{content:"";background:#ffffff2e;width:1px;height:5px;position:absolute;top:50%;transform:translateY(-50%)}.performance-hud__pan:before{left:0}.performance-hud__pan:after{right:0}.performance-hud__pan-dot{background:var(--green);width:5px;height:5px;transition:left 90ms linear, background .12s var(--ease-out);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 6px #ffaa008c}.performance-hud__channel--left .performance-hud__pan-dot{background:var(--cyan);box-shadow:0 0 6px #44aadd73}.performance-hud__channel--right .performance-hud__pan-dot{background:var(--green)}.performance-hud__meters{grid-area:meter;gap:2px;margin-top:2px;display:grid}.performance-hud__meter{background:#ffffff12;border-radius:999px;height:3px;position:relative;overflow:hidden}.performance-hud__meter>span{border-radius:inherit;background:linear-gradient(90deg,#28a,#fa0);height:100%;transition:width 90ms linear;display:block}.performance-hud__channel--left .performance-hud__meter>span{background:linear-gradient(90deg,#28a,#4ad)}.performance-hud__channel--right .performance-hud__meter>span{background:linear-gradient(90deg,#c80,#fc0)}.performance-hud__note{color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-shadow:0 0 calc(10px * var(--note-pulse,0)) rgba(255, 170, 0, calc(var(--note-pulse,0) * .55));grid-area:note;margin:0;font-size:.82rem;font-weight:800;line-height:1;transition:text-shadow 90ms linear}.performance-hud__meta{color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-wrap:wrap;grid-area:meta;gap:4px;font-size:.56rem;font-weight:600;display:flex}.performance-hud__divider{opacity:.5}.performance-hud__status{color:var(--amber)}.signal-visualizer{position:relative;overflow:hidden}.signal-visualizer--slim,.signal-visualizer--slim .signal-visualizer__bars{height:42px}.signal-visualizer__bars{grid-template-columns:repeat(9,1fr);align-items:end;gap:5px;height:170px;display:grid}.signal-visualizer__bars span{min-height:8px;height:calc((12% + var(--pitch) * 58%) * var(--bar-level,var(--volume)));opacity:calc(.28 + var(--bar-level,var(--volume)) * .72);transform:scaleY(calc(.5 + var(--timbre)));transform-origin:bottom;background:linear-gradient(#4ad,#fa0,#c80);border-radius:3px 3px 1px 1px;transition:height 70ms linear,opacity 70ms linear,transform .12s}.performance-deck .start-status{border-radius:var(--radius-sm);gap:6px;padding:4px 8px;font-size:.68rem}.start-status{border:1px solid var(--line);background:#111318f2;gap:8px;margin:0;padding:10px 12px;display:grid}.start-status--loading{color:var(--muted);align-items:center;gap:10px;display:flex}.start-status__spinner{border:2px solid #b8ff6240;border-top-color:var(--green);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}.start-status--error p{color:var(--danger);margin:0}.start-status__retry{min-height:40px;color:var(--text);background:var(--surface-strong);border:1px solid var(--line)}
