:root{--red:#c8102e;--cream:#fff6e0;--brown:#5a2a14;--gold:#ffd54a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%}body{min-height:100vh;min-height:100dvh;color:var(--brown);background:radial-gradient(at 50% 38%,#e0001b 0%,#a30016 42%,#3d0009 88%,#240005 100%) fixed;margin:0;font-family:Nunito,system-ui,-apple-system,sans-serif;overflow-x:hidden}.backdrop{z-index:0;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.land{width:100%;height:34vh;position:absolute;bottom:0;left:0}.flake{opacity:.9;will-change:transform;background:#fff;border-radius:50%;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-14px}.flake.f0{animation-name:fall0}.flake.f1{animation-name:fall1}.flake.f2{animation-name:fall2}.star{background:#ffe9a8;border-radius:50%;animation:3s ease-in-out infinite twinkle;position:absolute;box-shadow:0 0 8px 1px #ffe9a8}.bokeh{background:radial-gradient(circle,rgba(255,190,110,.28),rgba(255,190,110,0) 70%);border-radius:50%;animation:14s ease-in-out infinite alternate drift;position:absolute}@keyframes fall0{to{transform:translate(-40px,108vh)}}@keyframes fall1{to{transform:translateY(108vh)}}@keyframes fall2{to{transform:translate(40px,108vh)}}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.7)}50%{opacity:1;transform:scale(1.3)}}@keyframes drift{to{transform:translate(30px,-40px)scale(1.15)}}h1{font-family:Mountains of Christmas,Comic Sans MS,cursive;font-size:2.2rem;color:var(--red);text-shadow:0 2px #fff;margin:0 0 8px;font-size:max(2rem,min(9vw,2.6rem));line-height:1}h1 small{letter-spacing:.12em;text-transform:uppercase;color:var(--brown);opacity:.75;margin-top:6px;font-family:Nunito,sans-serif;font-size:.95rem;font-weight:800;display:block}h2{color:var(--red);margin:0;font-family:Mountains of Christmas,cursive}.lead{margin:10px 0 4px;font-size:1.1rem;font-weight:700}.hint{opacity:.8;margin:8px 0;font-size:.85rem}.err{color:#b3001b;font-weight:700}.okmsg{color:#12703a;font-weight:800}input,textarea,button{width:100%;font:inherit;-webkit-appearance:none;appearance:none;touch-action:manipulation;border-radius:16px;margin-top:12px}input,textarea{color:var(--brown);background:#fff;border:3px solid #e8c77a;outline:none;padding:14px;font-size:1.1rem}input:focus,textarea:focus{border-color:var(--red);box-shadow:0 0 0 4px rgba(200,16,46,.18)}button{border:3px solid var(--gold);cursor:pointer;color:#fff;background:#c8102e;background:linear-gradient(#ff3b57, var(--red));padding:14px;font-size:1.2rem;font-weight:800;transition:transform .1s,box-shadow .1s;box-shadow:0 5px #8c0a20,0 8px 14px rgba(0,0,0,.3)}button:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #8c0a20}button:disabled{opacity:.55;cursor:default}.card{z-index:2;text-align:center;background:var(--cream);background:radial-gradient(circle at 18% 20%, rgba(245,214,150,.5) 0, rgba(245,214,150,.5) 14px, rgba(245,214,150,0) 15px), radial-gradient(circle at 85% 70%, rgba(245,214,150,.45) 0, rgba(245,214,150,.45) 18px, rgba(245,214,150,0) 19px), var(--cream);border:7px solid var(--red);border-radius:28px;width:92%;max-width:420px;margin:0 auto;padding:22px;position:relative;box-shadow:inset 0 0 0 3px #ff5a6e,0 14px 40px rgba(0,0,0,.45),0 0 60px rgba(255,60,80,.35)}.card.admin{margin-top:4vh;margin-bottom:4vh}.status{text-align:left;margin:12px 0 0;padding:0;list-style:none}.ask{border:2px dashed var(--red);background:#fff;border-radius:14px;margin-top:12px;padding:10px}.ask p{margin:0 0 4px}.mute{z-index:40;border:2px solid var(--gold);background:rgba(255,246,224,.92);border-radius:50%;width:46px;height:46px;margin:0;padding:0;font-size:1.3rem;position:fixed;top:10px;right:10px;box-shadow:0 3px 8px rgba(0,0,0,.3)}.login{z-index:2;min-height:100vh;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:16px;display:flex;position:relative}.peek{z-index:1;width:70vw;max-width:270px;margin-bottom:-24px;animation:.8s cubic-bezier(.2,1.4,.4,1) both rise;position:relative}.peek:before{content:"";padding-top:68.18%;display:block}.peek svg{width:100%;height:100%;position:absolute;top:0;left:0}.login .card{animation:.6s ease-out both rise}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}.stage{z-index:2;min-height:100vh;flex-direction:column;align-items:center;min-height:100dvh;padding:12px 12px 28px;animation:.6s ease-out both rise;display:flex;position:relative}.stage>*+*{margin-top:12px}.machine{filter:drop-shadow(0 18px 24px rgba(0,0,0,.45));position:relative}.cab{width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.reel{background:#fffaf0;border-radius:8px;width:53.91%;height:17.67%;position:absolute;top:47.33%;left:23.04%;overflow:hidden}.reel:after{content:"";pointer-events:none;background:linear-gradient(#fffaf0 0%,rgba(255,250,240,.15) 30%,rgba(255,250,240,.15) 70%,#fffaf0 100%);position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 7px 9px -3px rgba(0,0,0,.45),inset 0 -7px 9px -3px rgba(0,0,0,.45)}.reel.won{box-shadow:0 0 0 3px var(--gold), 0 0 24px 6px rgba(255,213,74,.9);animation:.7s ease-in-out infinite alternate glowpulse}.strip{position:absolute;top:0;bottom:0;left:0;right:0}.sym{white-space:nowrap;color:#a3101f;justify-content:center;align-items:center;height:50%;padding:0 2%;font-family:Mountains of Christmas,Comic Sans MS,cursive;font-weight:700;display:flex;position:absolute;top:50%;left:0;right:0}.go{border-radius:12px;border-radius:calc(var(--u,3.8px) * 3);width:36.96%;height:9%;font-family:Mountains of Christmas,Comic Sans MS,cursive;font-size:20px;font-weight:700;font-size:calc(var(--u,3.8px) * 5.6);letter-spacing:.05em;color:#8c0a20;background:linear-gradient(#fff0a0,#f5b62a 55%,#d4900a);border:3px solid #8a5a08;margin:0;padding:0;position:absolute;top:73.83%;left:31.52%;box-shadow:0 4px #8a5a08,0 8px 12px rgba(0,0,0,.4)}.go.ready{animation:1.1s ease-in-out infinite pulse}.go:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #8a5a08}.bin{width:0;height:0;position:absolute;top:89.7%;left:50%}.bulbs{filter:drop-shadow(0 0 4px rgba(255,220,120,.9))}.bulbs circle{animation:1.4s ease-in-out infinite glow}.machine.run .bulbs circle{animation-duration:.5s}.machine.win .bulbs circle{animation-duration:.25s}.santa{animation:3s ease-in-out infinite bob}.machine.win .santa{animation:.45s ease-out 4 hop}.wave,.swing,.cane{transform-origin:0 0}.wave{animation:1s ease-in-out infinite alternate wave}.swing{animation:3s ease-in-out infinite alternate swing}.cane{cursor:pointer;transition:transform .6s cubic-bezier(.3,1.4,.5,1)}.cane.pull{transition-duration:.28s;transform:rotate(150deg)}.under{text-align:center;width:94%;max-width:440px}.under>*+*{margin-top:8px}.pill{text-align:center;border:3px solid var(--red);background:rgba(255,246,224,.96);border-radius:16px;margin:0;padding:10px 14px;font-weight:700;box-shadow:0 6px 14px rgba(0,0,0,.3)}.pill.err{color:#b3001b}.link{width:auto;box-shadow:none;background:rgba(0,0,0,.25);border:0;border-radius:999px;margin:8px 0 0;padding:6px 14px;font-size:.95rem;display:inline-block}.winbox{text-align:center;background:var(--cream);border:6px solid var(--red);border-radius:24px;width:94%;max-width:440px;padding:16px 18px 20px;animation:.7s cubic-bezier(.2,1.6,.4,1) both pop;box-shadow:inset 0 0 0 3px #ff5a6e,0 14px 40px rgba(0,0,0,.45)}.congrats{font-family:Mountains of Christmas,Comic Sans MS,cursive;font-size:2.2rem;font-weight:700;color:var(--red);text-shadow:0 2px #fff;font-size:max(2rem,min(9vw,2.6rem));animation:1s ease-in-out infinite alternate wiggle}.result{font-family:Mountains of Christmas,Comic Sans MS,cursive;font-size:2rem;font-weight:700;color:var(--red);background:linear-gradient(#fff8cf,#ffe27a);border:3px dashed #d49b12;border-radius:18px;margin:8px 0;padding:14px 10px;font-size:max(1.9rem,min(8vw,2.5rem));line-height:1.1}.burst{pointer-events:none;z-index:30;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.bb{will-change:transform;border-radius:50%;position:absolute;top:0;left:0;box-shadow:0 4px 8px rgba(0,0,0,.35)}.bb:before{content:"";background:linear-gradient(90deg,#b8740a,#ffe27a,#b8740a);border-radius:2px;width:30%;height:18%;position:absolute;top:-14%;left:35%}.bb:after{content:"";border:2px solid #d9a21b;border-bottom:0;border-radius:50% 50% 0 0;width:16%;height:20%;position:absolute;top:-32%;left:42%}@keyframes glow{0%,to{opacity:.4}50%{opacity:1}}@keyframes bob{50%{transform:translateY(-3px)}}@keyframes hop{50%{transform:translateY(-22px)}}@keyframes wave{0%{transform:rotate(-8deg)}to{transform:rotate(14deg)}}@keyframes swing{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes pulse{50%{transform:scale(1.06);box-shadow:0 4px #8a5a08,0 0 20px 4px rgba(255,213,74,.85)}}@keyframes glowpulse{to{box-shadow:0 0 0 3px var(--gold), 0 0 34px 10px #ffd54a}}@keyframes pop{0%{opacity:0;transform:scale(.3)rotate(-5deg)}}@keyframes wiggle{0%{transform:rotate(-2deg)scale(1)}to{transform:rotate(2deg)scale(1.05)}}.lite .machine,.lite .bulbs{filter:none}.lite .santa,.lite .swing{animation:none}.lite .star{animation-duration:6s}@media (prefers-reduced-motion:reduce){.flake,.bokeh,.santa,.wave,.swing,.go.ready{animation:none}}.pin{text-align:center;letter-spacing:.5em;text-indent:.5em;-webkit-text-security:disc;font-size:2rem}
