:root{--yellow:#ffc92e;--black:#1a1c1e;--light:#f5f5f5;--muted:rgba(0,0,0,.42)}
*{box-sizing:border-box}
html,body{width:100%;height:100%;overflow:hidden}
body{margin:0;height:100dvh;font-family:Poppins,system-ui,sans-serif;color:#fff;background:linear-gradient(180deg,#2b2d31 0%,#202226 52%,#17191c 100%)}
.app{height:100dvh;width:min(900px,100%);margin:0 auto;padding:14px;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden}
h1{margin:12px 0 4px;font-size:clamp(1.8rem,7vw,3.6rem);line-height:.95;font-weight:900;text-transform:uppercase}.hero p{margin:0;color:rgba(255,255,255,.58);font-weight:700}
.wheel-card{position:relative;align-self:stretch;display:grid;place-items:center;background:#25272b;border:1px solid rgba(255,255,255,.08);border-radius:28px;padding:30px 14px 24px;box-shadow:0 24px 70px rgba(0,0,0,.28);overflow:hidden;min-height:0}.wheel-card:before{content:"";position:absolute;inset:14px;border:1px solid rgba(255,201,46,.16);border-radius:22px;pointer-events:none}
.wheel-wrap{position:relative;width:min(92vw,calc(100dvh - 70px),740px);aspect-ratio:1;margin:0 auto;display:grid;place-items:center}.pointer{position:absolute;left:50%;top:7px;z-index:4;transform:translateX(-50%);width:0;height:0;border-left:23px solid transparent;border-right:23px solid transparent;border-top:43px solid var(--yellow);filter:drop-shadow(0 6px 8px rgba(0,0,0,.22))}
.wheel{width:100%;height:100%;display:block;border-radius:50%;border:12px solid var(--black);background:#25272b;box-shadow:inset 0 0 0 9px #2f3237,0 18px 42px rgba(0,0,0,.2);transform:rotate(0deg);transition:transform 5.2s cubic-bezier(.12,.72,.08,1);cursor:pointer}
.wheel.spinning{cursor:wait}
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.72);z-index:20}.modal.open{display:flex}.modal-card{width:min(430px,100%);background:#25272b;color:#fff;border:1px solid rgba(255,201,46,.18);border-radius:24px;padding:30px 24px;text-align:center;box-shadow:0 28px 90px rgba(0,0,0,.45);animation:pop .34s ease both}.confetti{color:var(--yellow);font-size:2rem;font-weight:900}.modal h2{margin:8px 0 8px;font-size:2rem;text-transform:uppercase}.modal p{margin:0;color:rgba(255,255,255,.62);font-weight:700}#prizeText{display:block;margin:14px 0 20px;font-size:1.45rem;color:var(--black);text-transform:uppercase;background:var(--yellow);border-radius:14px;padding:12px}.modal button{border:0;background:var(--yellow);color:var(--black);border-radius:999px;padding:13px 18px;font-weight:900;cursor:pointer}
@keyframes pop{from{opacity:0;transform:scale(.9) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:520px){.app{padding:10px}.wheel-card{padding-top:24px}.wheel-wrap{width:min(94vw,calc(100dvh - 58px))}.wheel{border-width:9px}}
