:root{--black:#080a0e;--panel:#171922;--gold:#ffc943;--ivory:#fff4c7;--muted:#b9bac5;font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;color:white;background:var(--black)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -20%,#49341b,transparent 50%),#080a0e}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:var(--gold)}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 clamp(16px,3vw,55px);border-bottom:1px solid #ffffff23;background:#0b0d13ec}.brand{font-weight:950;letter-spacing:.07em;font-size:clamp(17px,2vw,26px)}.brand em{font-style:normal;color:var(--gold)}.micro{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.tag{border:1px solid #bc8d3677;color:#ffe08e;border-radius:99px;padding:8px 12px;font-size:11px;font-weight:800;letter-spacing:.09em}.layout{max-width:1280px;padding:26px 20px 70px;margin:auto}.heading h1{margin:6px 0;font-weight:950;font-size:clamp(32px,4vw,52px)}.heading p{color:var(--muted);margin:0 0 22px;line-height:1.55}.columns{display:grid;grid-template-columns:minmax(290px,1fr) minmax(400px,1.4fr);gap:20px}.card{border:1px solid #ffffff1f;border-radius:20px;background:linear-gradient(160deg,#20222b,#11131a);padding:24px;box-shadow:0 20px 45px #0006}.card h2{font-size:21px;margin:0 0 15px}.card h3{font-size:16px;margin:24px 0 8px}.field{display:grid;gap:8px;margin:12px 0;color:#eee;font-size:13px;font-weight:700}.field input,.field select{width:100%;background:#0b0d14;border:1px solid #666977;color:#fff;border-radius:10px;padding:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#2b2d36;border:1px solid #595a64;color:#fff;border-radius:11px;font-weight:850;padding:12px 17px;text-decoration:none}.btn.primary{background:linear-gradient(135deg,#fff0a9,#ffbf29);border-color:#ffe59a;color:#181006;box-shadow:0 0 19px #f9b62840}.btn.block{width:100%}.btn:hover:not(:disabled){filter:brightness(1.15)}.actions{display:flex;flex-wrap:wrap;gap:9px}.divider{border:0;border-top:1px solid #ffffff24;margin:22px 0}.box{border:1px solid #75603566;border-radius:12px;background:#221c14;padding:15px;margin:12px 0}.box.ok{background:#123425;border-color:#276244}.box.bad{background:#411b22;border-color:#874050}.box b{color:#ffe19a}.muted,.caption{color:var(--muted);font-size:13px;line-height:1.55}.code{background:#090b11;border:1px dashed #b98e38;border-radius:10px;padding:18px;text-align:center;font-size:clamp(20px,3vw,30px);font-weight:900;color:#ffe29b;letter-spacing:.13em}.numbers{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}.num{aspect-ratio:1;border-radius:7px;border:1px solid #59535a;background:#292b36;color:#fff;font-weight:850;min-width:0}.num[data-chosen="true"]{background:linear-gradient(135deg,#fff5b6,#ffbb25);color:#1b1409;box-shadow:0 0 18px #ffce5488}.num[data-special="true"]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.num:disabled{opacity:.55}.status{min-height:32px;color:#ffe0a5;font-size:14px;margin:12px 0}.receipt{font-size:18px;line-height:1.55;color:#ffe19b}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{border:1px solid #ffffff2a;border-radius:12px;padding:13px;background:#11141d}.stat strong{display:block;color:var(--gold);font-size:28px}.stat small{color:var(--muted)}.hidden{display:none!important}.rule{border:1px solid #705722;padding:12px;background:#272116;border-radius:12px;color:#e6d4aa;font-size:12px;line-height:1.5}.tv{height:calc(100vh - 70px);min-height:660px;position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(16px,2vw,35px);background:radial-gradient(ellipse at 50% 45%,#65401f 0%,#231822 33%,#07080e 80%)}.tv:before{content:"";position:absolute;inset:-25%;z-index:-1;pointer-events:none;background:repeating-conic-gradient(from 10deg at 50% 45%,transparent 0 11deg,#ffce5e09 11.5deg 12deg,transparent 13deg 24deg);animation:beams 34s linear infinite}.tv:after{content:"";pointer-events:none;position:absolute;inset:12px;border:1px solid #e7b54d55;border-radius:24px;box-shadow:inset 0 0 65px #ffce4e15,0 0 30px #e9a92a33}.tv-head{text-align:center;z-index:1}.eyebrow{color:#ffe3a0;letter-spacing:.37em;text-transform:uppercase;font-size:clamp(10px,1vw,16px);font-weight:900}.tv-head h1{font-size:clamp(55px,7vw,108px);letter-spacing:-.07em;line-height:1;margin:10px 0 2px;text-shadow:0 0 46px #f5b62977}.tv-head h1 span{color:var(--gold)}.sub{color:#ffdf98;letter-spacing:.19em;text-transform:uppercase;font-size:clamp(10px,1vw,15px);font-weight:800}.tv-core{width:100%;flex:1;min-height:0;display:flex;justify-content:center;align-items:center;position:relative}.wheel-shell{height:min(61vh,660px);width:min(61vh,660px);max-width:91vw;max-height:91vw;position:relative;filter:drop-shadow(0 0 30px #ffce4a88)}.wheel-shell:before{content:"";position:absolute;inset:-20px;border:5px solid #e3b24e;border-radius:50%;box-shadow:0 0 18px #ffdc7c,0 0 52px #ffd04490,inset 0 0 35px #f4bf4266;background:repeating-conic-gradient(#ffd778 0 2deg,#6d4913 2deg 5deg,#d29a3c 5deg 7deg);animation:halo 15s linear infinite}.wheel-shell:after{content:"";position:absolute;inset:-5px;border:9px solid #342512;border-radius:50%;pointer-events:none;box-shadow:inset 0 0 0 3px #ffebad,0 0 0 5px #9d752d}.wheel-disc{position:absolute;inset:7px;border-radius:50%;background:conic-gradient(from -30deg,#ffdf75 0deg 60deg,#172437 60deg 120deg,#bf861f 120deg 180deg,#1e2f47 180deg 240deg,#f9bd40 240deg 300deg,#7e4556 300deg 360deg);box-shadow:inset 0 0 55px #0009;transition:transform 6.2s cubic-bezier(.13,.83,.16,1);will-change:transform}.wheel-disc:after{content:"";position:absolute;inset:2%;border-radius:50%;box-shadow:inset 0 0 0 2px #fff4bb55,inset 0 0 45px #fff8b723;pointer-events:none}.wheel-label{position:absolute;left:50%;top:50%;font-size:clamp(11px,1.5vw,19px);font-weight:1000;line-height:1.05;text-align:center;width:25%;text-shadow:0 2px 2px #0009;transform:translate(-50%,-50%);color:#fff}.wheel-label.dark{color:#16171d;text-shadow:none}.hub{position:absolute;inset:38%;z-index:3;border-radius:50%;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#211508;background:radial-gradient(circle,#fff9db,#f7b928 65%,#a16b12);box-shadow:0 0 0 5px #fff1ba,0 0 0 10px #221408,0 0 35px #ffe28a;font-size:clamp(21px,3vw,36px);font-weight:950}.hub small{color:#684a12;font-size:10px;letter-spacing:.14em}.pointer{position:absolute;z-index:6;top:-27px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:22px solid transparent;border-right:22px solid transparent;border-top:49px solid #fff2b0;filter:drop-shadow(0 7px 5px #000)}.bulbs{position:absolute;inset:-14px;pointer-events:none;z-index:5}.bulb{position:absolute;width:10px;height:10px;background:#fff6b6;border-radius:50%;box-shadow:0 0 12px #fff39c,0 0 25px #ffcf4b;animation:blink 1.1s alternate infinite}.bulb:nth-child(even){animation-delay:-.55s}.tv-foot{text-align:center;z-index:1;display:flex;flex-direction:column;gap:8px}.tv-status{font-size:clamp(17px,2.1vw,30px);font-weight:900;letter-spacing:.08em}.tv-note{color:#e3c78a;font-size:clamp(10px,1vw,13px);letter-spacing:.08em}.tv-preview{background:#0b0d13c9;border:1px solid #dfb655aa;border-radius:999px;padding:10px 20px;color:#ffe5a9;font-weight:850;min-height:42px}.tv-overlay{z-index:20;position:absolute;inset:0;background:radial-gradient(circle at center,#554026f0,#0d0c11f8 65%);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:15px;padding:25px}.tv-overlay .wow{font-size:clamp(32px,5vw,70px);font-weight:1000;color:#fff0bf;text-shadow:0 0 48px #ffd064}.tv-overlay .prize{font-size:clamp(35px,6vw,86px);font-weight:1000;color:#ffc837;text-shadow:0 0 46px #ffca5688}.tv-overlay p{font-size:clamp(14px,1.5vw,24px);color:#e6d6b0}.tv-overlay.count .wow{font-size:clamp(95px,20vw,240px)}.tv-demo{position:absolute;right:16px;bottom:14px;z-index:8;color:#fae1a1;font-size:11px;letter-spacing:.11em}.error-panel{max-width:780px;margin:20vh auto;padding:25px}.smalllink{color:#ffe3a5;font-size:13px}@keyframes blink{to{opacity:.4;box-shadow:0 0 7px #ffcf4b}}@keyframes halo{to{transform:rotate(360deg)}}@keyframes beams{to{transform:rotate(360deg)}}@media (max-width:850px){.columns{grid-template-columns:1fr}.tv{min-height:620px}.wheel-shell{height:min(68vw,480px);width:min(68vw,480px)}.wheel-label{font-size:clamp(9px,2vw,14px)}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* V7 premium theatre + larger prize wheel */
.tv{padding:12px 18px;background:radial-gradient(ellipse at 50% 58%,#49301d,#111014 52%,#030405 100%)}
.tv-head h1{font-size:clamp(40px,5.9vh,78px);margin:5px 0 1px}.tv-core{padding-top:14px}
.wheel-shell{height:min(69vh,76vw,850px);width:min(69vh,76vw,850px);max-width:none;max-height:none;filter:drop-shadow(0 0 20px #eec16c70) drop-shadow(0 24px 28px #000b)}
.wheel-shell:before{animation:none;background:repeating-conic-gradient(#f6d79b 0 1.5deg,#583713 2deg 4deg,#b88644 4deg 6deg);border-color:#b7853d}
.wheel-disc{background:conic-gradient(from -30deg,#f5cd82 0deg 60deg,#17181c 60deg 120deg,#bd8535 120deg 180deg,#15171b 180deg 240deg,#e9b65c 240deg 300deg,#201c1b 300deg 360deg);box-shadow:inset 0 0 84px #0008,inset 0 0 22px #fff3b938}
.hub{color:#ddba72;background:radial-gradient(circle at 34% 24%,#3b3022,#080a0c 63%,#2b1d11);box-shadow:0 0 0 5px #efcc82,0 0 0 11px #25180d,0 0 28px #d9ab6c}
.bulb{background:radial-gradient(circle at 25% 25%,#fff,#f5c978 60%,#99641f);box-shadow:0 0 12px #ffebaa,0 0 19px #e6a242}.tv-foot{gap:5px}.tv-note{font-size:10px}
@media(max-height:740px){.wheel-shell{width:min(64vh,70vw);height:min(64vh,70vw)}}


/* V7.1: adapt wheel to TV stage; stop overlapping the header/footer */
.tv{height:calc(100dvh - 70px);min-height:0;align-items:stretch;justify-content:normal;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:8px;padding:clamp(12px,1.7vh,20px) 18px}
.tv-head{grid-row:1;align-self:start;z-index:7;line-height:1.06}
.official-logo{width:min(25vw,300px);height:auto;max-height:clamp(42px,7vh,72px);object-fit:contain;margin:0 auto 3px}
.tv-head h1{font-size:clamp(36px,5.3vh,72px);line-height:1;margin:1px 0 2px}
.tv-core{grid-row:2;align-self:stretch;min-height:0;min-width:0;padding:0;display:flex;align-items:center;justify-content:center}
.wheel-shell{aspect-ratio:1;flex:0 0 auto;min-width:0;max-width:none;max-height:none;width:var(--wheel-size,520px)!important;height:var(--wheel-size,520px)!important}
.tv-foot{grid-row:3;align-self:end;position:relative;z-index:7;gap:4px;padding:0 0 1px}
.tv-status{font-size:clamp(16px,1.65vw,25px);line-height:1.15}.tv-preview{min-height:32px;padding:5px 20px}.tv-note{font-size:9px}
.tv-demo{right:19px;bottom:12px;opacity:.6;font-size:8px}
@media(max-width:750px){.tv{padding:12px 10px;gap:8px}.official-logo{width:min(48vw,255px)}.tv-head h1{font-size:clamp(32px,5.1vh,56px)}.tv-status{font-size:clamp(13px,3vw,21px)}.tv-demo{display:none}}


/* V8 LIVE STAGE: ambient, high-definition motion while waiting for visitors. */
.tv{--stage-gold:#f5c269;background:
radial-gradient(ellipse at 50% 47%,#573819 0%,transparent 47%),
radial-gradient(ellipse at 14% 62%,#2b1b13 0%,transparent 40%),
radial-gradient(ellipse at 85% 65%,#231b20 0%,transparent 42%),#07070a}
.tv::before{animation:beams 42s linear infinite,stageBreath 6s ease-in-out infinite alternate}
.tv-head{animation:titleFloat 5.5s ease-in-out infinite alternate}
.tv-head h1{text-shadow:0 2px 14px #111,0 0 32px #c88d315e}
.tv-core::before,.tv-core::after{content:"";position:absolute;pointer-events:none;z-index:0;left:50%;top:50%;width:min(90vh,90vw);height:min(90vh,90vw);border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,transparent 46%,#e4a53710 64%,transparent 73%);animation:auraPulse 4.5s ease-in-out infinite}
.tv-core::after{animation-delay:-2.3s;opacity:.6}
.wheel-shell{z-index:2}
.wheel-shell::before{animation:rimShimmer 11s linear infinite}
.wheel-shell .wheel-disc::before{content:"";position:absolute;inset:0;z-index:1;border-radius:50%;pointer-events:none;background:linear-gradient(108deg,transparent 19%,#fff7c114 38%,transparent 48%,transparent 63%,#ffffff0d 78%,transparent 85%);mix-blend-mode:screen;animation:polishSweep 9s ease-in-out infinite}
.wheel-shell .hub{animation:hubGleam 5s ease-in-out infinite alternate}
.wheel-shell .bulb:nth-child(3n){animation-duration:1.7s}.wheel-shell .bulb:nth-child(4n){animation-duration:2.2s}
.pointer{animation:pointerGlow 2.8s ease-in-out infinite alternate}
.tv-status{transition:opacity .3s,transform .3s;text-shadow:0 0 18px #ffcf783b}
.tv-preview{transition:border-color .4s,box-shadow .4s;box-shadow:0 0 15px #ffbe3933}
.tv.is-spinning .wheel-disc::before{animation:none}
.tv.is-spinning .tv-head,.tv.is-spinning .hub,.tv.is-spinning .pointer{animation:none}
.tv.is-spinning .wheel-shell{filter:drop-shadow(0 0 31px #f9c35b90) drop-shadow(0 28px 34px #000b)}
.tv.is-spinning .tv-preview{border-color:#ffdb8f}
.tv.live-ready .tv-preview{box-shadow:0 0 24px #ffc94d55}
.tv-foot{min-height:75px}
@keyframes titleFloat{from{filter:drop-shadow(0 0 0px #ffc75415)}to{filter:drop-shadow(0 0 13px #ffc75435)}}
@keyframes stageBreath{from{opacity:.48}to{opacity:.95}}
@keyframes auraPulse{0%,100%{opacity:.26;transform:translate(-50%,-50%) scale(.92)}50%{opacity:.75;transform:translate(-50%,-50%) scale(1.11)}}
@keyframes rimShimmer{0%,100%{filter:brightness(.93)}50%{filter:brightness(1.18)}}
@keyframes polishSweep{0%{transform:rotate(-28deg);opacity:.2}50%{transform:rotate(15deg);opacity:.9}100%{transform:rotate(-28deg);opacity:.2}}
@keyframes hubGleam{from{box-shadow:0 0 0 5px #efcc82,0 0 0 11px #25180d,0 0 23px #d9ab6c}to{box-shadow:0 0 0 5px #ffdf9f,0 0 0 11px #25180d,0 0 48px #ffcc74}}
@keyframes pointerGlow{from{filter:drop-shadow(0 7px 5px #000) drop-shadow(0 0 3px #ffda75)}to{filter:drop-shadow(0 7px 5px #000) drop-shadow(0 0 13px #ffda75)}}
@media(prefers-reduced-motion:reduce){.tv:before,.tv-core:before,.tv-core:after,.wheel-shell:before,.wheel-disc:before,.hub,.pointer,.tv-head{animation:none!important}}
