:root{--bg:#07080c;--bg-lift:#0d0f17;--panel:#ffffff07;--line:#ffffff16;--line-strong:#ffffff2b;--ink:#e9edf7;--dim:#7b849b;--accent:#b8ff3c;--scope-line:#7cf6d2;--radius:10px;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:radial-gradient(120% 80% at 50% -10%, #14182a 0%, transparent 60%), radial-gradient(90% 60% at 92% 8%, #b8ff3c12 0%, transparent 55%), var(--bg);min-height:100dvh;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;padding:0 clamp(.75rem,3vw,2rem) 3rem;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}:where(button,input,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.topbar nav{justify-content:space-between;align-items:baseline;gap:1rem;max-width:70rem;margin:0 auto;padding:1rem 0 .25rem;display:flex}.wordmark{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--dim);font-size:.7rem}.source{font-family:var(--mono);letter-spacing:.12em;color:var(--dim);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;font-size:.7rem}.source:hover{color:var(--accent)}.instrument{flex-direction:column;gap:clamp(.9rem,2.2vw,1.4rem);max-width:70rem;margin:0 auto;display:flex}.masthead{padding-top:clamp(.5rem,2vw,1.25rem)}h1{letter-spacing:-.045em;background:linear-gradient(96deg, var(--ink) 18%, var(--accent) 130%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.4rem,9vw,4.2rem);font-weight:800;line-height:.94}.tagline{max-width:34rem;color:var(--dim);margin:.5rem 0 0;font-size:.95rem}.scope{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#7cf6d20d,#0000 70%),#05060a;width:100%;height:clamp(52px,9vw,76px);display:block}.hint{color:var(--dim);margin:0;font-size:.92rem;transition:opacity .5s,transform .5s}.hint strong{color:var(--ink);font-weight:600}.hint[data-dismissed=true]{opacity:0;pointer-events:none;transform:translateY(-4px)}kbd{border:1px solid var(--line-strong);background:var(--bg-lift);min-width:1.5rem;color:var(--ink);font-family:var(--mono);text-align:center;border-bottom-width:2px;border-radius:5px;margin:0 .1rem;padding:.05rem .3rem;font-size:.76rem;display:inline-block}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:clamp(.7rem,2vw,1.1rem)}.panel h2{font-family:var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--dim);margin:0 0 .75rem;font-size:.66rem;font-weight:600}.grid{flex-direction:column;gap:clamp(3px,.7vw,6px);display:flex}.lane{grid-template-columns:minmax(2.5rem,3.4rem) 1fr;align-items:center;gap:clamp(4px,1vw,10px);display:grid}.lane-name{color:var(--dim);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.3rem 0;font-size:clamp(.6rem,1.6vw,.7rem);transition:color .14s}.lane-name:hover,.lane-name:active{color:hsl(var(--hue) 95% 66%)}.steps{grid-template-columns:repeat(16,minmax(0,1fr));gap:clamp(2px,.55vw,5px);display:grid}.step{aspect-ratio:1;border:1px solid var(--line);cursor:pointer;touch-action:none;background:#ffffff04;border-radius:4px;min-height:15px;padding:0;transition:background-color 90ms,border-color 90ms}.step[data-beat=true]{border-color:var(--line-strong);background:#ffffff0b}.step[data-playing=true]{background:#ffffff21}.step[aria-pressed=true]{border-color:hsl(var(--hue) 90% 60%);background:hsl(var(--hue) 88% 55%);box-shadow:0 0 10px -1px hsl(var(--hue) 90% 55% / .6)}.step[aria-pressed=true][data-playing=true]{background:hsl(var(--hue) 100% 74%)}.step[data-hit=true]{animation:.24s ease-out hit}@keyframes hit{0%{filter:brightness(2.4);transform:scale(1.3)}to{filter:brightness();transform:scale(1)}}.pads{grid-template-columns:repeat(auto-fit,minmax(clamp(52px,9vw,92px),1fr));gap:clamp(4px,1vw,8px);display:grid}.pad{border:1px solid var(--line-strong);min-height:clamp(58px,11vw,84px);color:var(--ink);cursor:pointer;touch-action:none;background:linear-gradient(#ffffff0d,#ffffff03);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;transition:background-color 80ms,transform 80ms,box-shadow .12s;display:flex}.pad:hover{border-color:#b8ff3c66}.pad[data-held=true]{border-color:var(--accent);background:linear-gradient(#b8ff3c6b,#b8ff3c24);transform:translateY(2px);box-shadow:0 0 22px -4px #b8ff3cbf}.pad-key{font-family:var(--mono);letter-spacing:.06em;font-size:clamp(.95rem,2.4vw,1.2rem);font-weight:600}.pad-note{font-family:var(--mono);letter-spacing:.12em;color:var(--dim);font-size:.62rem}.pad[data-held=true] .pad-key,.pad[data-held=true] .pad-note{color:#07080c}.transport{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.key-action,.action{border:1px solid var(--line-strong);color:var(--ink);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:#ffffff0a;border-radius:999px;align-items:center;gap:.5rem;padding:.55rem 1.05rem;font-size:.74rem;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.action:hover{color:var(--accent);border-color:#b8ff3c80}.key-action{border-color:var(--accent);background:var(--accent);color:#07080c;font-weight:700}.key-action:hover{background:#cbff6d;border-color:#cbff6d}.key-action .glyph{border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:10px solid;width:0;height:0}.key-action[aria-pressed=true] .glyph{background:linear-gradient(90deg,currentColor 0 3.5px,#0000 3.5px 6.5px,currentColor 6.5px);border:0;width:10px;height:12px}.dials{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.85rem clamp(.9rem,2.5vw,1.6rem);display:grid}.dial{grid-template-columns:1fr auto;align-items:baseline;gap:.15rem .6rem;margin:0;display:grid}.dial-wide{grid-column:span 2}.dial label,.dial output{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;font-size:.66rem}.dial label{color:var(--dim)}.dial output{color:var(--accent);text-align:right;font-variant-numeric:tabular-nums}.dial input{grid-column:1/-1}.dial-wide label{color:var(--ink)}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:#ffffff24;border-radius:999px;height:4px}input[type=range]::-moz-range-track{background:#ffffff24;border-radius:999px;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:0;border-radius:50%;width:16px;height:16px;margin-top:-6px;box-shadow:0 0 12px -2px #b8ff3ce6}input[type=range]::-moz-range-thumb{background:var(--accent);border:0;border-radius:50%;width:16px;height:16px;box-shadow:0 0 12px -2px #b8ff3ce6}@media (width<=30rem){.dial-wide{grid-column:span 1}.lane{grid-template-columns:2.3rem 1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
