@font-face{font-family:Anton;src:url('../assets/fonts/anton-400.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--bg:#090716;--ink:#fff9f1;--muted:#d9d0ec;--lime:#c6ff3a;--green:#46ff8d;--purple:#a944e9;--violet:#7541f5;--blue:#23e6ff;--gold:#f5c653;--pink:#ed4c96;--panel:#1a0f33}
*{box-sizing:border-box}[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100svh;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:radial-gradient(ellipse at 50% -10%,#5923a5 0%,#190c3b 34%,#0a0714 70%),var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#fff4ad88 1px,transparent 2px);background-size:25px 25px;opacity:.2}
body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(110deg,#00ff5520,transparent 30%,#fa42a820 75%,transparent),radial-gradient(circle at 98% 72%,#02d8ff18,transparent 35%)}
a{color:var(--gold)}
button{font:inherit;cursor:pointer;border:0;color:inherit;-webkit-tap-highlight-color:transparent;transition:transform .15s,filter .15s,opacity .15s}
button:active{transform:scale(.97)}button:disabled{opacity:.55;cursor:not-allowed}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
h1,h2,.cta,.sticker,.result strong,.wheel-hub{font-family:Anton,Impact,"Arial Narrow",sans-serif;font-weight:400}
.shell{position:relative;max-width:1440px;margin:0 auto;padding:16px max(28px,env(safe-area-inset-right)) 28px max(28px,env(safe-area-inset-left))}

.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;background:#0b0b1aba;border:1px solid #6b3cb7;border-radius:14px;box-shadow:0 0 25px #af30ef33}
.back-button{display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border-radius:10px;background:var(--lime);color:#17210d;font-weight:900;font-size:13px;letter-spacing:1px;text-decoration:none;box-shadow:0 3px 0 #6b9234,0 0 18px #c6ff3a55}
.back-button:hover{filter:brightness(1.08)}
.topbar-label{font-size:11px;letter-spacing:2px;color:var(--lime);font-weight:800;text-shadow:0 0 12px #66ff44}
.sound-button{padding:10px 12px;border-radius:10px;background:#271331;border:1px solid var(--gold);color:#ffeb97;font-size:11px;font-weight:900;letter-spacing:1px}

.hero{text-align:center;margin:18px auto 14px}
.eyebrow{color:var(--blue);font-weight:900;font-size:12px;letter-spacing:2.5px}
.hero h1{margin:8px auto 4px;font-size:clamp(40px,6vw,86px);line-height:1;letter-spacing:.5px;color:#f3fdff;text-shadow:3px 4px 0 #37066a,0 0 23px #b94eff,0 0 49px #7121db}
.hero h1 span{text-shadow:none;background:linear-gradient(#fff5a3,#f7ab20 60%,#ed551e);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 3px #d87418)}
.tagline{margin:6px 0 0;color:#d8ff8a;text-shadow:0 0 16px #48fa3c;font-weight:900;letter-spacing:2px}

.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);gap:18px;align-items:start}
.stage{position:relative;min-width:0;background:linear-gradient(145deg,#160d36cc,#0f0928e8);border:2px solid var(--purple);border-radius:26px;overflow:hidden;box-shadow:inset 0 0 90px #7900cc39,0 14px 48px #0009,0 0 30px #b63fff36;padding:18px 0 22px}
.stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,#27f9fc20,transparent 48%),repeating-linear-gradient(0deg,transparent 0 30px,#ffffff05 31px 32px);pointer-events:none}
.stage-stars{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#ffffff99 1px,transparent 2px);background-size:50px 49px;opacity:.4}
.wheel-wrap{position:relative;z-index:1;width:min(76%,660px);aspect-ratio:1;margin:14px auto 0;filter:drop-shadow(0 0 19px #d341ff88) drop-shadow(0 0 25px #10f7e044)}
.wheel-wrap canvas{display:block;width:100%;height:100%;touch-action:manipulation}
.pointer{position:absolute;top:-6px;left:50%;transform:translateX(-50%);z-index:2;width:0;height:0;border-left:20px solid transparent;border-right:20px solid transparent;border-top:44px solid var(--lime);filter:drop-shadow(0 0 12px var(--lime)) drop-shadow(0 3px 3px #000)}
.wheel-hub{position:absolute;inset:39%;display:grid;place-items:center;text-align:center;pointer-events:none;border:6px solid #edfe4b;border-radius:50%;background:radial-gradient(circle,#7639b3,#1c0a3d);color:#ffffb0;font-size:clamp(14px,2.4vw,30px);line-height:1;text-shadow:0 0 9px #fff43b;box-shadow:0 0 0 5px #170929,0 0 35px #dafe66}
.wheel-hub.win{background:radial-gradient(circle,#c6ff3a,#2c7d1d);color:#10220b;text-shadow:none}
.mascot{position:absolute;z-index:2;object-fit:cover;border:4px solid #dbad45;background:#160721;box-shadow:0 10px 30px #000a,0 0 25px #16fbab55;height:auto}
.mascot-left{width:20%;left:1.5%;bottom:11%;border-radius:24px 24px 60px 20px;transform:rotate(-8deg)}
.mascot-right{width:19%;right:1.5%;top:12%;border-radius:28px 28px 25px 60px;transform:rotate(8deg)}
.sticker{position:absolute;z-index:3;letter-spacing:1px;border-radius:999px;padding:9px 16px;font-size:16px}
.sticker-vip{left:2%;top:5%;color:#10220b;background:var(--lime);border:2px solid #fff4a0;box-shadow:0 0 25px #b9ff3aaa;transform:rotate(-8deg)}
.sticker-bag{right:2%;bottom:13%;background:#2d1457;border:2px solid #ffdf48;color:#ffe956;border-radius:12px;transform:rotate(8deg);box-shadow:0 0 20px #f7dc4988}
.ribbon{position:relative;z-index:3;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:16px auto 0}
.ribbon span{background:#210b47;border:1px solid var(--gold);color:#feefa8;padding:7px 13px;border-radius:999px;font-size:12px;font-weight:900;box-shadow:0 0 14px #a947fe55}

.panel{border:2px solid #c053ff;background:linear-gradient(150deg,#351654ef,#0d1129f5 70%);box-shadow:0 0 35px #822ce94d,0 20px 45px #000a;border-radius:24px;padding:20px}
.panel-art{display:block;width:100%;height:150px;object-fit:cover;object-position:center 33%;border-radius:16px;border:2px solid var(--gold);box-shadow:0 0 26px #f5c25044;margin-bottom:14px}
.kicker{color:#9dff42;font-size:11px;font-weight:900;letter-spacing:2px}
.panel h2{margin:6px 0;font-size:32px;line-height:1.05;color:#fff6af;text-shadow:2px 3px #6538a2;letter-spacing:.5px}
.panel p{margin:6px 0 10px;color:var(--muted);line-height:1.5;font-size:14px}
.field{display:block;margin:12px 0 6px;color:#abff8d;font-weight:800;font-size:12px;letter-spacing:1px}
.field small{color:#bcaccc;font-weight:600;letter-spacing:0}
input{width:100%;padding:14px 15px;border-radius:11px;border:2px solid #7b40c6;background:#09071d;color:#fff;font-size:16px;outline:none}
input:focus{border-color:#b8ff4a;box-shadow:0 0 15px #87fc5470}
input[aria-invalid=true]{border-color:var(--pink)}
.cta{width:100%;margin:16px 0 4px;padding:17px;border-radius:13px;font-size:26px;letter-spacing:1.5px;color:#1b1432;background:linear-gradient(120deg,#caff32,#46ff8d 42%,#fff176);border:2px solid #efffa7;box-shadow:0 4px 0 #278438,0 0 28px #41f9937a}
.cta:not(:disabled):hover{filter:brightness(1.08)}
.cta.stop{background:linear-gradient(120deg,#ff5fa2,#ed4c96 45%,#ff9d5c);border-color:#ffd0e6;color:#fff;box-shadow:0 4px 0 #8c1c55,0 0 32px #ed4c96aa;animation:pulse .7s ease-in-out infinite alternate}
@keyframes pulse{to{box-shadow:0 4px 0 #8c1c55,0 0 52px #ff5fa2}}
.timer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:12px;font-weight:800;letter-spacing:1px;color:#bdaecd}
.timer strong{color:#b6ff4e;font-size:26px;font-variant-numeric:tabular-nums}
.timer-track{height:8px;border-radius:9px;background:#0a0720;border:1px solid #5c3a92;overflow:hidden;margin-top:6px}
.timer-track div{height:100%;width:100%;background:linear-gradient(90deg,var(--lime),var(--blue));transform-origin:left;transform:scaleX(1)}
.status{min-height:44px;color:#ecff8b!important;font-weight:800}
.status.error{color:#ff9cc8!important}
.result{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;margin-top:6px;padding:16px;border-radius:16px;background:#241244;border:2px solid #bfff33;box-shadow:0 0 22px #bfff334c}
.result-label{font-weight:900;letter-spacing:1px}
.result strong{font-size:clamp(40px,7vw,54px);line-height:1.05;color:#e7ff5c;text-shadow:0 0 16px #7fff32;letter-spacing:1px}
.result-unit{font-weight:900;color:var(--gold);letter-spacing:2px}
.result-tag{margin:6px 0 4px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:1px;background:#4a1030;color:#ffb3d6;border:1px solid var(--pink)}
.result-tag.real{background:#173a12;color:#cfff9a;border-color:var(--lime)}
.subbtn{display:block;width:100%;margin:6px 0 0;padding:13px;border-radius:11px;text-align:center;text-decoration:none;font-weight:900;font-size:13px;letter-spacing:.6px;background:#372341;border:1px solid #745a80;color:#f6dca8}
.subbtn.gold{background:linear-gradient(100deg,#ffd746,#fd9a43);color:#25112b;border:2px solid #ffec87}
.subbtn.ghost{background:transparent;border:1px solid #8a60d0;color:#e9dcff}
.fine{font-size:11px!important;color:#bcaccc!important;margin-top:14px!important}

.prizes{margin:22px 0 0;padding:18px;border:2px solid #4b2d7d;border-radius:22px;background:#0f0a24d0}
.prizes h2{margin:0 0 12px;text-align:center;font-size:28px;color:var(--lime);letter-spacing:1px}
.prize-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}
.prize-list li{padding:7px 12px;border-radius:999px;font-weight:900;font-size:13px;font-variant-numeric:tabular-nums;color:#1d1230;border:1px solid #ffffff55}
.prize-list li.hit{outline:3px solid #fff;box-shadow:0 0 20px #fff}

.certificate-view{margin:22px auto 0;max-width:1000px;padding:16px;border:2px solid var(--gold);border-radius:22px;background:#140b2bf2;box-shadow:0 0 30px #f5c65340}
.cert-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cert-head h2{margin:0;font-size:26px;color:var(--gold);letter-spacing:1px}
.close-cert{width:40px;height:40px;border-radius:10px;background:#372341;border:1px solid #745a80;font-size:18px}
#cert-image{display:block;width:100%;height:auto;margin:12px 0;border-radius:10px}
.cert-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.cert-actions .subbtn{margin:0}

.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:22px auto 8px}
.gallery figure{margin:0;position:relative;border:2px solid #a45ef2;border-radius:15px;overflow:hidden;box-shadow:0 0 19px #ad37d649;background:#140d22;aspect-ratio:2.35}
.gallery img{width:100%;height:100%;object-fit:cover;object-position:center 43%}
.gallery figcaption{position:absolute;inset:auto 0 0;background:linear-gradient(transparent,#090716e8);font-size:12px;font-weight:900;letter-spacing:1px;color:#fff7a4;padding:18px 10px 7px;text-shadow:0 1px 4px #000}
.foot{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:18px;text-align:center;color:#c2abc8;font-size:13px}
.foot strong{font-family:Anton,Impact,sans-serif;font-weight:400;font-size:22px;letter-spacing:1px;color:var(--gold);text-shadow:0 0 14px #f5c65377}

/* Verify + admin pages */
.page-card{max-width:760px;margin:20px auto;padding:22px;border:2px solid #c053ff;border-radius:22px;background:linear-gradient(150deg,#351654ef,#0d1129f5 70%);box-shadow:0 0 35px #822ce94d}
.page-card h2{margin:0 0 8px;font-size:30px;color:#fff6af;letter-spacing:.5px}
.page-card p{color:var(--muted);line-height:1.55}
.row{display:flex;gap:8px;flex-wrap:wrap}.row>*{flex:1 1 200px}
.row .subbtn{margin-top:0;flex:0 0 auto;padding:14px 18px}
.verdict{margin-top:14px;padding:16px;border-radius:14px;border:2px solid #745a80;background:#1b1034}
.verdict.valid{border-color:var(--lime);background:#132a12}.verdict.redeemed{border-color:var(--gold);background:#2d2410}.verdict.bad{border-color:var(--pink);background:#33102a}
.verdict h3{margin:0 0 8px;font-family:Anton,Impact,sans-serif;font-weight:400;font-size:24px;letter-spacing:1px}
.verdict dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}.verdict dt{color:#bcaccc;font-size:12px;font-weight:800;letter-spacing:1px}.verdict dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid #3e2a63;vertical-align:top}th{color:#abff8d;font-size:11px;letter-spacing:1px}
.check{display:flex;gap:10px;align-items:flex-start;margin:14px 0 4px;font-weight:700;line-height:1.4}.check input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--lime)}
textarea{width:100%;min-height:110px;padding:12px;border-radius:11px;border:2px solid #7b40c6;background:#09071d;color:#fff;font:14px/1.5 system-ui,sans-serif}
.small-btn{padding:7px 10px;border-radius:8px;background:#4a1030;color:#ffb3d6;border:1px solid var(--pink);font-weight:800;font-size:12px}

@media(max-width:980px){.layout{grid-template-columns:1fr}.panel{max-width:680px;width:100%;margin:0 auto}.panel-art{height:170px}}
@media(max-width:720px){.shell{padding:10px max(12px,env(safe-area-inset-right)) 22px max(12px,env(safe-area-inset-left))}.topbar-label{display:none}.back-button{font-size:12px;padding:11px 12px}.hero{margin:12px auto 10px}.eyebrow{font-size:10px;letter-spacing:1.2px}.tagline{font-size:12px;letter-spacing:.6px}.stage{border-radius:18px;padding:12px 0 16px}.wheel-wrap{width:92%;margin:44px auto 0}.mascot-left{width:19%;bottom:15%;left:0;border-width:3px}.mascot-right{width:18%;right:0;top:3%;border-width:3px}.sticker{font-size:11px;padding:5px 9px}.sticker-vip{top:2%;left:1%}.sticker-bag{bottom:15%;right:1%}.ribbon{gap:6px;padding:0 6px}.ribbon span{font-size:10px;padding:5px 8px}.panel{padding:15px;border-radius:18px}.panel-art{height:130px}.panel h2{font-size:27px}.cta{font-size:23px}.gallery{grid-template-columns:repeat(2,1fr);gap:8px}.gallery figure{aspect-ratio:1.4}.gallery figure:last-child{display:none}.prize-list li{font-size:12px;padding:6px 9px}.page-card{padding:16px}}
@media(prefers-reduced-motion:reduce){.cta.stop{animation:none}}
@media print{body{background:#fff}body:before,body:after{display:none}.shell>*:not(.certificate-view){display:none!important}.certificate-view{display:block!important;border:0;box-shadow:none;background:#fff;padding:0;margin:0;max-width:none}.cert-head,.cert-actions{display:none!important}#cert-image{margin:0;border-radius:0}}
