:root{--gold:gold;--red:#e63946;--dark:#0e0718;--card-bg:#120528eb;--text:#f8fafc;--text-muted:#9a8ab0}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--dark);color:var(--text);background-image:radial-gradient(at 15% 40%,#7800c840 0%,#0000 55%),radial-gradient(at 85% 60%,#c8003c2e 0%,#0000 55%),radial-gradient(at 50% 0,#ff96001a 0%,#0000 50%);min-height:100vh;font-family:Roboto Mono,Fira Code,monospace}#confetti-canvas{pointer-events:none;z-index:999;position:fixed;inset:0}#app{flex-direction:column;align-items:center;max-width:680px;min-height:100vh;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex}header{text-align:center;width:100%;margin-bottom:1.5rem}.title-lights{justify-content:center;gap:14px;padding:6px 0;display:flex}.light{border-radius:50%;width:11px;height:11px;display:inline-block}.light:nth-child(odd){background:var(--gold);animation:1.2s ease-in-out infinite blink-gold}.light:nth-child(2n){background:var(--red);animation:1.2s ease-in-out .6s infinite blink-red}@keyframes blink-gold{0%,to{opacity:1;box-shadow:0 0 8px 2px var(--gold)}50%{opacity:.15;box-shadow:none}}@keyframes blink-red{0%,to{opacity:1;box-shadow:0 0 8px 2px var(--red)}50%{opacity:.15;box-shadow:none}}h1{color:var(--gold);letter-spacing:2px;text-shadow:0 0 20px #ffd700e6,0 0 45px #ffa50080,3px 3px #7a3800,4px 4px #4a2000;padding:.3rem 0;font-family:Boogaloo,Arial Black,sans-serif;font-size:clamp(1.8rem,5.5vw,3rem);line-height:1.1;animation:2.5s ease-in-out infinite title-glow}@keyframes title-glow{0%,to{text-shadow:0 0 20px #ffd700e6,0 0 45px #ffa50080,3px 3px #7a3800,4px 4px #4a2000}50%{text-shadow:0 0 30px gold,0 0 70px #ffc800b3,3px 3px #7a3800,4px 4px #4a2000}}.subtitle{color:#c8a8ff;letter-spacing:1px;margin-top:.25rem;font-family:Boogaloo,sans-serif;font-size:1.05rem}main{justify-content:center;width:100%;display:flex}.wheel-container{flex-direction:column;align-items:center;width:100%;display:flex}.wheel-wrapper{margin-bottom:1.25rem;position:relative}.pointer{color:var(--gold);z-index:10;text-shadow:0 0 14px gold,0 2px 5px #000;font-size:2.2rem;line-height:1;position:absolute;top:0;left:50%;transform:translate(-50%)}#wheel{box-shadow:0 0 0 5px var(--gold), 0 0 0 8px #ff8c0066, 0 0 35px #ffd7004d, 0 20px 50px #000000e6;border-radius:50%;display:block}.btn-spin{color:#fff;letter-spacing:4px;text-transform:uppercase;cursor:pointer;text-shadow:0 1px 4px #0009;background:linear-gradient(175deg,#ff4b5a 0%,#c0222e 55%,#8a1520 100%);border:none;border-bottom:5px solid #5c0a10;border-radius:.65rem;margin-bottom:1.25rem;padding:.9rem 2.8rem;font-family:Boogaloo,sans-serif;font-size:1.4rem;transition:transform 80ms,border-bottom-width 80ms,box-shadow .15s;box-shadow:0 6px 25px #c81e2880,inset 0 1px #ffffff26}.btn-spin:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 35px #e6323cb3,inset 0 1px #ffffff26}.btn-spin:active:not(:disabled){border-bottom-width:2px;transform:translateY(3px)}.btn-spin:disabled{opacity:.55;cursor:not-allowed}.winner-preview{border:2px solid var(--gold);background:#000;border-radius:.75rem;justify-content:center;align-items:center;margin-bottom:.9rem;padding:.6rem;display:flex;box-shadow:0 0 20px #ffd70026,inset 0 0 30px #000c}#winner-canvas{display:block}.winner-name{color:var(--gold);text-align:center;text-shadow:0 0 15px #ffd70080;margin-bottom:.75rem;font-family:Boogaloo,sans-serif;font-size:1.7rem}.specs{width:100%;max-width:310px;color:var(--text-muted);grid-template-columns:1fr 1fr;gap:.35rem 2.5rem;margin-bottom:1rem;font-size:.75rem;display:grid}.spec-row{border-bottom:1px solid #ffffff0a;justify-content:space-between;padding-bottom:3px;display:flex}.spec-row span:last-child{color:var(--gold);font-weight:700}.result-code{color:#00e676;word-break:break-all;text-align:center;background:#000;border:1px solid #ffd7002e;border-radius:.5rem;width:100%;margin-bottom:1rem;padding:.7rem .9rem;font-family:Roboto Mono,monospace;font-size:.7rem}.button-group{justify-content:center;gap:.75rem;width:100%;display:flex}.btn-secondary{color:var(--gold);cursor:pointer;letter-spacing:.5px;background:#1e0e38;border:1px solid #ffd7004d;border-radius:.45rem;flex:1;max-width:200px;padding:.55rem 1rem;font-family:Boogaloo,sans-serif;font-size:.95rem;transition:background .15s,border-color .15s,box-shadow .15s}.btn-secondary:hover{border-color:var(--gold);background:#2c1550;box-shadow:0 0 12px #ffd70033}.modal-overlay{z-index:500;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000d1;justify-content:center;align-items:center;animation:.2s overlay-in;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--card-bg);border:2px solid #ffd70059;border-radius:1.25rem;flex-direction:column;align-items:center;width:calc(100vw - 2rem);max-width:420px;max-height:90vh;padding:2rem 2rem 1.75rem;animation:.25s cubic-bezier(.34,1.56,.64,1) modal-in;display:flex;position:relative;overflow-y:auto;box-shadow:0 0 0 1px #ffd7001a,0 0 40px #ffd7001f,0 30px 60px #000000e6}@keyframes modal-in{0%{opacity:0;transform:scale(.85)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}#modal-content{flex-direction:column;align-items:center;width:100%;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:.35rem;padding:.25rem .4rem;font-size:1.2rem;line-height:1;transition:color .15s,background .15s;position:absolute;top:.75rem;right:.85rem}.modal-close:hover{color:var(--text);background:#ffffff14}footer{color:#ffffff38;text-align:center;margin-top:auto;padding-top:2rem;font-family:Boogaloo,sans-serif;font-size:1rem}
