*{margin:0;padding:0;box-sizing:border-box}
:root{--brand:#690000;--red:#d1122b;--red-soft:#ff6b78;--ink:#070304;--panel:#140a0c;--text:#f2e8e8;--dim:#c4b0b0;--line:#6b1620;--stage:clamp(240px,40vh,400px)}
html{background:var(--ink);scroll-behavior:smooth;scroll-padding-top:calc(var(--stage) + 12px)}
body{color:var(--text);font:17px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden;background:radial-gradient(120% 60% at 50% 0,#1a0709,var(--ink) 70%)}
a{color:inherit}
::selection{background:#690000;color:#fff1de}
/* the pointer: a drumstick. Its tip is the click point. Turn it off with the link in the footer. */
html[data-cursor="stick"],html[data-cursor="stick"] body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M2 2 L7 3 L29 25 Q31 28 28 29 Q25 30 23 28 L3 7 Z' fill='%23e8dccd' stroke='%23120708' stroke-width='1.4' stroke-linejoin='round'/%3E%3Ccircle cx='4' cy='4' r='3.6' fill='%23d1122b' stroke='%23120708' stroke-width='1.2'/%3E%3C/svg%3E") 3 3,auto}
html[data-cursor="stick"] a,html[data-cursor="stick"] button,html[data-cursor="stick"] summary,html[data-cursor="stick"] input[type=range],html[data-cursor="stick"] .frame{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M2 2 L7 3 L29 25 Q31 28 28 29 Q25 30 23 28 L3 7 Z' fill='%23ffffff' stroke='%23120708' stroke-width='1.4' stroke-linejoin='round'/%3E%3Ccircle cx='4' cy='4' r='4.6' fill='%23ff3a52' stroke='%23ffffff' stroke-width='1.4'/%3E%3C/svg%3E") 3 3,pointer}
/* the stage: the drum kit stays at the top while the page scrolls under it */
.stage{position:sticky;top:0;z-index:30;height:var(--stage);background:#0a0506;border-bottom:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.6)}
#kit{position:absolute;inset:0;width:100%;height:100%;display:block}
.bar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;gap:1rem;padding:.7rem 1rem;background:linear-gradient(180deg,rgba(7,3,4,.92),rgba(7,3,4,0))}
.logo{font-weight:800;letter-spacing:.28em;font-size:.8rem;text-decoration:none;color:#fff}
.bar nav{display:flex;gap:1.1rem}
.bar nav a{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:var(--dim);padding:.3rem 0;border-bottom:1px solid transparent}
.bar nav a:hover,.bar nav a.on{color:#fff;border-color:var(--red)}
.ctl{margin-left:auto;display:flex;align-items:center;gap:.7rem}
.snd{font:inherit;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--brand);border:1px solid #c0303a;border-radius:999px;padding:.45rem 1rem;min-height:40px;cursor:pointer}
.snd[aria-pressed=true]{background:#8a0a14;box-shadow:0 0 12px rgba(209,18,43,.6)}
.vol{display:flex;align-items:center;gap:.45rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.vol input{width:6.5rem;accent-color:#d1122b;min-height:40px}
.vol output{min-width:2.6rem;color:#fff;font-variant-numeric:tabular-nums}
.vol button{font:inherit;color:#fff;background:transparent;border:1px solid #6b1620;border-radius:3px;width:34px;height:34px;cursor:pointer}
.now{position:absolute;left:1rem;bottom:.6rem;z-index:2;font:600 .72rem ui-monospace,Consolas,monospace;letter-spacing:.14em;text-transform:uppercase;color:#ffb3ba;background:rgba(7,3,4,.7);padding:.25rem .6rem;border-radius:3px}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,.frame:focus-visible{outline:2px solid #fff;outline-offset:3px}
main{position:relative;z-index:10}
.screen{max-width:1080px;margin:0 auto;padding:4.5rem 1.3rem 3rem;display:flex;flex-direction:column;justify-content:center;min-height:70vh}
.eyebrow{font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--red-soft);margin-bottom:.9rem;font-weight:600}
h1{font-size:clamp(2.8rem,11vw,7rem);line-height:.9;font-weight:800;letter-spacing:-.02em;color:#fff}
h1 span{display:block;letter-spacing:.06em;font-weight:200;color:#ffe3e6;font-size:.62em}
h2{font-size:clamp(1.8rem,5vw,3rem);line-height:1.05;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#fff;margin-bottom:.8rem}
.lede{max-width:52ch;font-size:1.12rem;color:#eadbdb;margin:1.2rem 0 1.8rem}
.btn{display:inline-block;font:inherit;font-weight:700;text-decoration:none;color:#fff;background:linear-gradient(180deg,#8a0a0a,#690000);padding:.8rem 1.5rem;border-radius:3px;border:1px solid #c0303a;cursor:pointer;min-height:44px;transition:transform .2s,filter .2s}
.btn:hover{transform:translateY(-2px);filter:brightness(1.2)}
.btn.ghost{background:rgba(105,0,0,.25);border-color:#8a1a22}
.row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.quiet{color:var(--dim);font-size:.92rem;text-decoration:underline;text-underline-offset:3px}
.quiet:hover{color:#fff}
.grid,.records{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.2rem;margin-top:1.6rem}
.card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.3rem;border:1px solid var(--line);border-radius:4px;background:var(--panel);text-decoration:none;transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-4px);border-color:var(--red-soft)}
.card b{font-size:1.15rem;letter-spacing:.03em;color:#fff;padding-right:3.5rem}
.card span{color:#e0cfcf;font-size:.95rem}
.card.hero{grid-column:1/-1;flex-direction:row;align-items:center;gap:1.4rem;padding:1.6rem;border-color:var(--red-soft)}
.card.hero b{font-size:1.7rem}
.card.hero>div:last-child{display:flex;flex-direction:column;gap:.4rem}
.disc{flex:none;width:84px;height:84px;border-radius:50%;background:repeating-radial-gradient(circle,#0a0506 0 3px,#1c0a0e 3px 4px),conic-gradient(from 0deg,#d1122b,#2a0710,#ff6a3d,#1b0610,#d1122b);position:relative}
.disc::after{content:"";position:absolute;inset:38%;border-radius:50%;background:#d1122b;box-shadow:0 0 0 4px #0a0506}
.records .card{align-items:flex-start}
/* symbols: what a card is, explained on hover and focus */
.tags{position:absolute;top:.6rem;right:.6rem;display:flex;gap:.3rem}
.tag{position:relative;font-style:normal;display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;border:1px solid #8a2a34;border-radius:999px;background:#1b0b0e;font-size:.85rem;cursor:help}
.tag::after{content:attr(data-tip);position:absolute;right:0;top:calc(100% + 6px);width:max-content;max-width:min(17rem,70vw);padding:.5rem .65rem;border-radius:4px;background:#000;border:1px solid var(--red-soft);color:#fff;font-size:.78rem;line-height:1.4;font-weight:400;letter-spacing:0;text-transform:none;opacity:0;pointer-events:none;transform:translateY(-3px);transition:opacity .15s,transform .15s;z-index:5}
.tag:hover::after,.tag:focus-visible::after{opacity:1;transform:none}
.strip{display:flex;gap:.9rem;margin-top:1.6rem;overflow:hidden;padding:.9rem 0;border-top:6px solid #111;border-bottom:6px solid #111;background:repeating-linear-gradient(90deg,transparent 0 22px,#050203 22px 30px)}
.frame{flex:none;width:130px;height:92px;background:#1a0b0e;border:1px solid #3a2326;display:flex;align-items:center;justify-content:center;color:#c9a5aa;font:inherit;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;position:relative;cursor:pointer}
.frame:hover{border-color:var(--red-soft);color:#fff}
.frame.found{background:#2a1013;color:#ffe3e6}
.frame.found::after{content:"";position:absolute;right:6px;top:6px;width:6px;height:6px;border-radius:50%;background:var(--red)}
.found-count{margin-top:.8rem;font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
#toast{position:fixed;left:50%;bottom:54px;transform:translateX(-50%) translateY(20px);z-index:40;background:rgba(10,4,5,.96);border:1px solid var(--red-soft);color:#fff;padding:.7rem 1.1rem;border-radius:3px;font-size:.88rem;max-width:min(92vw,28rem);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
dialog#dino{background:#0a0405;color:#ffe3e6;border:1px solid var(--red-soft);border-radius:4px;padding:1.4rem 1.6rem;max-width:min(94vw,40rem)}
dialog#dino::backdrop{background:rgba(0,0,0,.8)}
dialog#dino pre{font:14px/1.15 ui-monospace,Consolas,monospace;color:#ff8a96;overflow:auto;margin:0 0 1rem}
dialog#dino button{font:inherit;color:#fff;background:transparent;border:1px solid rgba(255,255,255,.4);border-radius:3px;padding:.5rem 1rem;min-height:44px;cursor:pointer}
html.neg{filter:invert(1) hue-rotate(180deg)}
.end{text-align:center;align-items:center}
.end h2{font-size:clamp(2.6rem,10vw,6rem)}
footer{position:relative;z-index:10;text-align:center;color:var(--dim);font-size:.88rem;padding:2rem 1rem 4.5rem}
footer a,footer button{color:#ff8a96;text-decoration:none;font:inherit;background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
/* the little record deck that plays the page */
.deck{position:fixed;right:12px;bottom:12px;z-index:21;width:min(150px,28vw);padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 6px 14px rgba(0,0,0,.7))}
.deck svg{display:block;width:100%;height:auto;overflow:visible}
.deck .rec{transform-box:fill-box;transform-origin:center;animation:spin 2.4s linear infinite;animation-play-state:paused}
.deck[aria-pressed=true] .rec{animation-play-state:running}
.deck .arm{transition:transform 1.2s cubic-bezier(.35,.05,.25,1)}
.deck .tag2{position:absolute;left:0;right:0;bottom:-1.3rem;text-align:center;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
/* the mixing desk */
.mixer{width:min(100%,62rem);margin:1.4rem auto 0;padding:1.2rem;border:1px solid var(--line);border-radius:4px;background:var(--panel);text-align:left}
.mixer h3{font-size:.85rem;letter-spacing:.26em;text-transform:uppercase;color:#fff;margin-bottom:.2rem}
.mixer .say{font-size:.9rem;color:var(--dim);min-height:1.5em;margin-bottom:.9rem}
.stems{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.7rem}
.stem{display:flex;flex-direction:column;gap:.45rem;padding:.7rem .6rem;border:1px solid #4a141b;border-top:3px solid var(--hue,#d1122b);border-radius:3px;background:#0d0607}
.stem.off{opacity:.45}.stem.solo{box-shadow:0 0 0 1px var(--hue)}
.stem b{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#fff}
.stem small{color:var(--dim);font-size:.72rem;margin-top:-.3rem}
.sm{display:flex;gap:.4rem}
.stem button,.chips button{flex:1;font:inherit;font-size:.74rem;font-weight:800;letter-spacing:.08em;color:#f0dede;background:#2a0d12;border:1px solid #6b1620;border-radius:3px;padding:.3rem .5rem;min-height:40px;cursor:pointer}
.stem button[aria-pressed=true]{background:#8a0a14;color:#fff;border-color:#ff6b78}
.chips{display:flex;flex-wrap:wrap;gap:.3rem}
.chips button{flex:1 1 40%;min-height:34px;font-size:.7rem;font-weight:600}
.chips button[aria-pressed=false]{opacity:.5;text-decoration:line-through}
.stem input,.knobs input{width:100%;accent-color:#d1122b;min-height:40px}
.knobs{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:center;margin-top:1rem}
.knobs label{display:flex;align-items:center;gap:.6rem;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.knobs label input{width:9rem}.knobs output{min-width:7rem;color:#fff;letter-spacing:.04em;text-transform:none}
.expand{margin-top:1.1rem;text-align:center}
.mixer.idle .stems,.mixer.idle .knobs{opacity:.5}
button:disabled,input:disabled{cursor:not-allowed}
#mm{margin:1.4rem auto 0;width:min(100%,72rem);text-align:left}
#mm[hidden]{display:none}
/* how it was made + timeline */
.how{align-items:stretch;min-height:0;padding-top:4rem}
.how h2{font-size:clamp(1.6rem,4.4vw,2.6rem)}
.how .lede{max-width:62ch}
.tech{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem;margin:1.4rem 0 2.4rem}
.tech details{border:1px solid var(--line);border-radius:3px;background:var(--panel);padding:.2rem 1rem}
.tech summary{cursor:pointer;padding:.7rem 0;font-weight:700;color:#fff;list-style:none}
.tech summary::-webkit-details-marker{display:none}
.tech summary::after{content:"+";float:right;color:var(--red-soft)}
.tech details[open] summary::after{content:"\2212"}
.tech p{font-size:.92rem;color:#eadbdb;padding-bottom:.8rem}
.tech p a{color:#ff9aa5}
.tl{list-style:none;position:relative;margin:1.2rem 0 0;padding-left:1.4rem;border-left:2px solid #6b1620}
.tl li{position:relative;padding:0 0 1.15rem .4rem}
.tl li::before{content:"";position:absolute;left:-1.78rem;top:.45rem;width:.7rem;height:.7rem;border-radius:50%;background:#690000;border:2px solid var(--red-soft)}
.tl time{display:block;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red-soft)}
.tl b{color:#fff}.tl span{color:#e0cfcf;font-size:.95rem}.tl a{color:#fff;text-decoration:underline;text-decoration-color:#8a1a22;text-underline-offset:3px}
.tl-note{font-size:.85rem;color:var(--dim);max-width:62ch;margin-top:.4rem}
@media (max-width:700px){:root{--stage:clamp(210px,34vh,300px)}.bar nav{display:none}.vol input{width:4.5rem}.vol span{display:none}.deck{width:90px}.deck .tag2{display:none}.card.hero{flex-direction:column;align-items:flex-start}.screen{padding-top:3rem}.now{font-size:.62rem}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
