:root { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #eff2f6; background: #0e1420; color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; }
main { max-width: 1120px; margin: 60px auto; padding: 0 28px; }
header span { color: #fa931e; font-size: 11px; letter-spacing: .16em; font-weight: 650; }
h1 { font-size: clamp(28px, 4vw, 44px); letter-spacing: -.04em; margin: 12px 0 8px; }
header p, footer { color: #94a3b8; font-size: 13px; line-height: 1.6; }
.stage { margin-top: 28px; border: 1px solid #ffffff16; border-radius: 12px; overflow: hidden; }
.stage[data-background="navy"] { background: #101c32; }
.stage[data-background="light"] { background: #f3f5f6; }
.stage[data-background="checker"] { background: repeating-conic-gradient(#586575 0 25%, #465361 0 50%) 0 / 24px 24px; }
canvas { display: block; width: 100%; height: auto; }
.controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0; }
button, select { border: 1px solid #ffffff26; border-radius: 6px; background: #1b2738; color: #f3f5f6; padding: 9px 12px; font: inherit; font-size: 13px; }
button { cursor: pointer; }
button:hover { border-color: #fa931e; }
label { color: #aab7c9; font-size: 12px; }
label select { margin-left: 6px; }
.scrubber { display: flex; gap: 16px; align-items: center; }
input[type="range"] { flex: 1; min-width: 0; accent-color: #fa931e; }
output { font-size: 12px; font-variant-numeric: tabular-nums; color: #aab7c9; }
.beats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 24px 0; color: #bac4d3; font-size: 12px; }
.beats b { display: block; color: #fa931e; font-size: 11px; margin-bottom: 6px; letter-spacing: .08em; }
footer a { color: #d9e2ee; }
html.overlay, .overlay body { background: transparent; }
.overlay main { margin: 0; padding: 0; max-width: none; }
.overlay .stage { margin: 0; border: 0; border-radius: 0; background: transparent; }
.overlay header, .overlay .controls, .overlay .scrubber, .overlay .beats, .overlay footer { display: none; }
@media (max-width: 600px) { main { margin: 28px auto; padding: 0 16px; } .beats { grid-template-columns: repeat(2, 1fr); } }
