*{box-sizing:border-box}
:root{
  --bg:#0a0116; --panel:#150826; --line:#2c1650;
  --ink:#e6ddff; --muted:#9a85c9; --accent:#ff5cc8;
}
html{background:var(--bg)}
body{
  margin:0; min-height:100vh;
  background:radial-gradient(1100px 700px at 20% -10%,rgba(255,92,200,.12),transparent 55%),radial-gradient(900px 600px at 90% 10%,rgba(92,225,255,.08),transparent 55%),linear-gradient(180deg,#120625,var(--bg));
  color:var(--ink); font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;
  display:flex; flex-direction:column;
}
.back{margin:18px 24px 0;color:var(--muted);text-decoration:none;font-size:14px}
.back:hover{color:var(--ink)}
.head{max-width:1000px;width:100%;margin:0 auto;padding:8px 24px 0}
.eyebrow{letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--accent);margin:0 0 6px}
h1{margin:0;font-size:44px;letter-spacing:-.02em;line-height:1;background:linear-gradient(90deg,#fff,#ffb1e2 55%,#7de6ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{color:var(--muted);max-width:62ch;line-height:1.5;margin:10px 0 0}
.layout{max-width:1000px;width:100%;margin:0 auto;padding:20px 24px 28px;flex:1;display:grid;gap:16px}
.deck{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.grid-panel{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:stretch}
.voice-col{display:grid;grid-template-rows:repeat(8,1fr);gap:6px}
.voice-col button{
  border:1px solid var(--line);border-radius:9px;background:#1c0d33;color:var(--ink);
  font:600 10px/1 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em;
  cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:0 8px;
}
.voice-col button i{font-style:normal;font-size:9px;opacity:.6}
.voice-col button.on{box-shadow:inset 0 0 0 1px hsl(var(--h) 90% 62%/0.7),0 0 12px hsl(var(--h) 90% 60%/0.25)}
.voice-col button.off{opacity:.35}
.grid{display:grid;grid-template-columns:repeat(16,minmax(32px,1fr));gap:6px;touch-action:none}
.cell{
  appearance:none;border:1px solid #2e1750;border-radius:7px;background:#10051f;
  aspect-ratio:1/1;min-width:0;min-height:32px;cursor:pointer;padding:0;margin:0;
  transition:transform .06s ease,background .1s ease,box-shadow .1s ease;
}
.cell:focus-visible{outline:2px solid #fff;outline-offset:2px}
.cell.col4,.cell.col8,.cell.col12{border-left:2px solid #4a2a80}
.cell.active{
  background:hsl(var(--h) 92% 60%/0.9);
  box-shadow:0 0 14px hsl(var(--h) 92% 60%/0.8),inset 0 0 6px rgba(255,255,255,.55);
}
.cell.pulse{outline:1px solid rgba(255,255,255,.65);outline-offset:-1px}
.cell.hit{transform:scale(.86)}
.transport{display:grid;gap:10px;margin-top:14px}
.transport-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
button{
  border:1px solid var(--line);background:#1c0d33;color:var(--ink);
  padding:9px 13px;border-radius:10px;font:600 13px/1 system-ui;cursor:pointer;
}
button:hover{border-color:var(--accent)}
button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button.ghost{background:transparent}
button:not(.cell):not(.on)[aria-pressed="true"]{border-color:var(--accent);color:#ffd0ef;box-shadow:0 0 12px rgba(255,92,200,.35) inset}
label{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}
label span{min-width:34px;font-weight:600;color:var(--ink)}
label.preset span{color:var(--muted)}
input[type="range"]{accent-color:var(--accent);width:110px}
output{font:12px 'DM Mono',monospace;min-width:26px;color:var(--accent)}
select{background:#1c0d33;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:6px 8px;font:12px system-ui}
.voice-col button{min-height:44px}
.readout{font-size:13px;color:var(--muted);line-height:1.4;margin:12px 0 0}
.foot{
  display:flex;justify-content:space-between;gap:12px;
  padding:14px 24px 20px;color:var(--muted);font-size:13px;
  border-top:1px solid var(--line);max-width:1000px;width:100%;margin:0 auto;
}
.foot a{color:var(--muted);text-decoration:none}
.foot a:hover{color:var(--ink)}
@media(max-width:720px){
  h1{font-size:34px}
  .grid-panel{grid-template-columns:60px minmax(0,1fr);gap:6px}
  .grid{gap:3px}
  .cell{border-radius:4px}
  .voice-col{gap:3px}
}
@media(prefers-reduced-motion:reduce){
  .cell{transition:none}
}
.grid-scroll{overflow-x:auto;padding:3px;scrollbar-color:var(--accent) var(--panel)}
.grid-guide{display:flex;gap:8px 24px;flex-wrap:wrap;margin:0 0 14px;color:var(--muted);font-size:12px;line-height:1.6}
.grid-guide strong{color:var(--ink)}
.transport button,.transport select{min-height:44px}
a:focus-visible,input:focus-visible,select:focus-visible,.grid-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.readout{border-top:1px solid var(--line);padding-top:12px;min-height:48px}
@media(max-width:720px){
  .head{padding-inline:16px}.layout{padding:14px 12px 22px}.deck{padding:10px}
  .lede{font-size:14px}.voice-col button{padding:0 5px}.voice-col button i{display:none}
  .grid{grid-template-columns:repeat(16,36px)}.grid-guide{gap:3px;flex-direction:column}
  .transport-row label:not(.preset){flex:1 1 100%;justify-content:space-between}
  .transport-row input[type="range"]{flex:1;max-width:240px}.foot{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.cell.hit{transform:none}}
