:root{
  --bg1:#2E7D3E; --bg2:#1B5A2B; --bg3:#123F1E;
  --accent:#FFD23F; --ink:#12361A; --shadow:#0B2E14; --muted:#E4F2E7;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  min-height:100%;
  background:radial-gradient(circle at 50% 42%,var(--bg1) 0%,var(--bg2) 55%,var(--bg3) 100%) fixed,var(--bg3);
  color:#fff;font-family:'Archivo Black',system-ui,sans-serif;
  -webkit-tap-highlight-color:transparent;overflow-x:hidden;
}
.wrap{max-width:520px;margin:0 auto;padding:24px 16px 28px;min-height:100svh;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
h1{font-family:'Anton',Impact,sans-serif;font-weight:400;font-size:clamp(40px,11.5vw,68px);white-space:nowrap;line-height:1;letter-spacing:1px;text-shadow:0 4px 0 var(--shadow)}
.sub{font-size:clamp(17px,4.8vw,22px);color:var(--accent);text-shadow:0 3px 0 var(--shadow);line-height:1.15}
.hint{font-family:system-ui,sans-serif;font-weight:700;font-size:16px;color:var(--muted);display:flex;align-items:center;gap:8px}
.hint svg{animation:bob 1.2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(5px)}}

.grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px}
.cell{position:relative;aspect-ratio:1/0.92;border:0;background:none;cursor:pointer;padding:0;touch-action:manipulation}
.cell:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:12px}
.hat{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(0,0,0,.35));transition:transform .6s cubic-bezier(.2,.8,.2,1.2),opacity .4s;z-index:2;pointer-events:none}
.num{position:absolute;top:2%;right:4%;width:34%;aspect-ratio:1;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 4px 0 var(--shadow);display:flex;align-items:center;justify-content:center;font-family:'Anton',sans-serif;font-size:clamp(20px,6.5vw,32px);color:var(--ink);z-index:3;transition:opacity .3s}
.gift{position:absolute;left:50%;bottom:-6%;width:96%;transform:translateX(-50%) scale(.6);opacity:0;z-index:1;transition:transform .5s .25s cubic-bezier(.2,.8,.2,1.4),opacity .3s .25s;pointer-events:none}
.glow{position:absolute;left:50%;top:55%;width:150%;aspect-ratio:1;transform:translate(-50%,-50%) scale(.3);border-radius:50%;background:radial-gradient(circle,rgba(255,232,140,.9) 0%,rgba(255,210,63,.35) 38%,rgba(255,210,63,0) 68%);opacity:0;transition:opacity .4s .2s,transform .6s .2s;z-index:0;pointer-events:none}
.idle .cell{animation:wiggle 3.2s ease-in-out infinite}
.idle .cell:nth-child(2n){animation-delay:.4s}.idle .cell:nth-child(3n){animation-delay:.8s}
@keyframes wiggle{0%,86%,100%{transform:rotate(0)}90%{transform:rotate(-4deg)}94%{transform:rotate(4deg)}}
.picked .cell{animation:none;cursor:default}
.picked .cell:not(.on) .hat,.picked .cell:not(.on) .num{opacity:.35}
.cell.on{z-index:5}.cell.on .hat{transform:translate(30%,-70%) rotate(-22deg) scale(.85)}
.cell.on .num{opacity:0}
.cell.on .gift{transform:translateX(-50%) scale(1);opacity:1}
.cell.on .glow{opacity:1;transform:translate(-50%,-50%) scale(1)}

.result{width:100%;display:none;flex-direction:column;align-items:center;gap:12px;background:rgba(11,46,20,.55);border:2px solid rgba(255,255,255,.18);border-radius:20px;padding:20px 16px;opacity:0;transform:translateY(16px);transition:opacity .4s,transform .4s}
.result.show{display:flex}
.result.in{opacity:1;transform:none}
.result h2{font-family:'Anton',sans-serif;font-weight:400;font-size:clamp(34px,10vw,46px);line-height:1;color:var(--accent);text-shadow:0 3px 0 var(--shadow)}
.result p{font-family:system-ui,sans-serif;font-weight:600;font-size:17px;line-height:1.35;color:#fff}
.cta{display:block;width:100%;background:var(--accent);color:var(--ink);text-decoration:none;border-radius:16px;padding:18px 16px;font-size:clamp(20px,6vw,26px);line-height:1;box-shadow:0 6px 0 var(--shadow);animation:pulse 1.6s ease-in-out infinite}
.cta:active{transform:translateY(4px);box-shadow:0 2px 0 var(--shadow)}
@keyframes pulse{50%{transform:scale(1.03)}}

.legal{margin-top:auto;font-family:system-ui,sans-serif;font-size:12px;line-height:1.45;color:rgba(228,242,231,.75);max-width:440px}
.legal a{color:inherit}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:50}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
