:root{--velvet:#7a0f1c;--velvet2:#4a0710;--stage:#121212;--gold:#f5c542;--paper:#fdf8ec}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(ellipse at top,#2a0a10 0%,var(--stage) 60%);color:#f3e9d2;font-family:'Bricolage Grotesque',sans-serif;min-height:100vh;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
background:repeating-linear-gradient(90deg,rgba(122,15,28,.55) 0 18px,rgba(74,7,16,.7) 18px 36px);
-webkit-mask:linear-gradient(90deg,#000 0,transparent 9%,transparent 91%,#000 100%);mask:linear-gradient(90deg,#000 0,transparent 9%,transparent 91%,#000 100%)}
.grain{position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
#spot{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,rgba(245,197,66,.10),transparent 65%);transform:translate(-50%,-50%);left:50%;top:30%}
@media (hover:none){#spot{display:none}}
#root{position:relative;z-index:2}
.display{font-family:'Alfa Slab One',serif;letter-spacing:.02em}
.mono{font-family:'Courier Prime',monospace}
.marquee{position:relative;background:var(--velvet);border:6px solid var(--gold);border-radius:18px;box-shadow:0 0 40px rgba(245,197,66,.25),inset 0 0 30px rgba(0,0,0,.5)}
.bulbs{position:absolute;inset:-3px;display:flex;justify-content:space-between;pointer-events:none}
.bulb{width:11px;height:11px;border-radius:50%;background:#fff3c4;box-shadow:0 0 8px #ffd25a;animation:blink 1.2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
.ticket{position:relative;background:var(--gold);color:var(--stage);padding:.5rem 1.2rem;font-family:'Alfa Slab One';border-radius:6px;transition:transform .2s;-webkit-mask:radial-gradient(circle 7px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 7px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat}
.ticket.off{background:#3a3226;color:#c9b98f}
.ticket:hover{transform:translateY(-3px) rotate(-1deg)}
.panel{background:rgba(18,18,18,.82);border:2px solid #3b2a1a;border-radius:16px;box-shadow:6px 6px 0 #000}
.gcard{background:#1d1716;border:2px solid #3b2a1a;border-radius:12px;transition:all .25s cubic-bezier(.3,1.6,.5,1);cursor:pointer}
.gcard:hover{transform:translateY(-3px)}
.gcard.main{border-color:var(--gold);transform:rotate(-2deg) scale(1.04);box-shadow:0 0 25px rgba(245,197,66,.45);background:#2b2014}
.gcard.mash{border-color:#e85a6a;transform:rotate(2deg);box-shadow:0 0 18px rgba(232,90,106,.4)}
.chip{background:#2b2014;border:1px solid var(--gold);border-radius:999px}
.btn{background:#2a2220;border:2px solid #4b3a2a;border-radius:10px;padding:.4rem .8rem;transition:all .15s;box-shadow:3px 3px 0 #000}
.btn:hover{background:#3a2c22;transform:translate(-1px,-1px);box-shadow:4px 4px 0 #000}
.btn:active{transform:translate(2px,2px);box-shadow:0 0 0 #000}
.btn:disabled{opacity:.4}
.inp{background:#0d0b0b;border:2px solid #3b2a1a;border-radius:10px;padding:.55rem .75rem;color:#f3e9d2;width:100%;outline:none}
.inp:focus{border-color:var(--gold)}
.clap{position:relative;background:var(--stage);border:4px solid #f3e9d2;border-radius:10px;font-family:'Alfa Slab One';color:#fff;padding:1.6rem 2.5rem .9rem;box-shadow:6px 6px 0 var(--velvet)}
.clap::before{content:"";position:absolute;left:-4px;right:-4px;top:-22px;height:22px;border:4px solid #f3e9d2;border-radius:6px 6px 0 0;transform-origin:left bottom;transform:rotate(-12deg);background:repeating-linear-gradient(-45deg,#fff 0 14px,#121212 14px 28px);transition:transform .15s}
.clap.snap::before{transform:rotate(0)}
.clap:hover{background:#1f0508}
.paper{background:var(--paper);color:#1c1a17;border-radius:4px;box-shadow:0 20px 50px rgba(0,0,0,.6);background-image:linear-gradient(transparent 31px,rgba(122,15,28,.06) 32px);background-size:100% 32px}
.cork{background:#a0703f;background-image:radial-gradient(rgba(0,0,0,.15) 1px,transparent 1.5px);background-size:7px 7px;border-radius:14px;border:10px solid #5a3a1c}
.index{background:#fffdf5;color:#222;background-image:linear-gradient(transparent 26px,#9ec5e8 27px);background-size:100% 27px;box-shadow:3px 4px 0 rgba(0,0,0,.35)}
.rise{animation:rise .6s both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
input[type=range]{accent-color:var(--gold)}
.confetti{position:fixed;top:-10px;width:9px;height:14px;z-index:60;pointer-events:none;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}