:root{--bg:#0b0b10;--mag:#ff2e88;--amb:#ffb347;--ink:#efe6d8;--dim:#7d7686;--card:#14131b;--line:#26232f}
body{background:radial-gradient(ellipse at 20% -10%,#2a0f22 0%,transparent 50%),radial-gradient(ellipse at 100% 100%,#2a1a08 0%,transparent 45%),var(--bg);color:var(--ink);font-family:'DM Mono',monospace;min-height:100vh}
.disp{font-family:'Bebas Neue',sans-serif;letter-spacing:.04em}
.serif{font-family:'Fraunces',serif;font-style:italic}
.grain{pointer-events:none;position:fixed;inset:0;z-index:50;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:gr .4s steps(3) infinite}
@keyframes gr{0%{transform:translate(0,0)}50%{transform:translate(-8px,5px)}100%{transform:translate(4px,-6px)}}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px}
.chip{border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;font-size:.75rem;transition:.2s;cursor:pointer}
.chip:hover{border-color:var(--amb)}
.chip.on{background:var(--mag);border-color:var(--mag);color:#fff;box-shadow:0 0 18px #ff2e8866}
.go{background:linear-gradient(90deg,var(--mag),var(--amb));color:#140a0f;border-radius:14px;box-shadow:0 0 30px #ff2e8855;transition:.2s}
.go:hover{box-shadow:0 0 50px #ffb34788;transform:translateY(-1px)}
.go:disabled{opacity:.5;transform:none}
.btn{border:1px solid var(--line);border-radius:10px;padding:.4rem .7rem;font-size:.75rem;transition:.15s}
.btn:hover{border-color:var(--mag);color:#fff}
select,textarea,input[type=text]{background:#0e0d13;border:1px solid var(--line);border-radius:12px;color:var(--ink);outline:none}
textarea:focus,select:focus{border-color:var(--mag)}
input[type=range]{accent-color:var(--mag)}
.reel{animation:spin 3s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}
.flick{animation:fl 4s infinite}
@keyframes fl{0%,94%,100%{opacity:1}95%{opacity:.4}97%{opacity:.8}}
.rise{animation:rise .6s both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
.strip{background:repeating-linear-gradient(90deg,#000 0 6px,transparent 6px 14px)}
.clap{animation:clap .5s}
@keyframes clap{0%{transform:rotate(0)}40%{transform:rotate(-14deg)}100%{transform:rotate(0)}}
.pop{position:fixed;top:-20px;z-index:60;animation:fall 2.4s linear forwards;pointer-events:none}
@keyframes fall{to{transform:translateY(110vh) rotate(540deg)}}
.thumb{animation:rise .4s both}
::-webkit-scrollbar{height:6px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}