/* #AsuBingo page */
.bingo{--bred:#d52b1e;--bblue:#0038a8;--bdeep:#00256e;--bnight:#06123a;--bgold:#fedf00;--bpaper:#f7f5f2;--bink:#0d1b3d}
.bingo-hero{background:var(--bdeep);color:#fff;padding:44px 16px 28px;text-align:center;position:relative;overflow:hidden}
.bingo-hero::before{content:"";position:absolute;inset:0 0 auto 0;height:10px;background:linear-gradient(var(--bred) 0 40%,#fff 40% 65%,var(--bblue) 65%)}
.bingo-tag{display:inline-block;font:700 15px/1 Inter,system-ui,sans-serif;letter-spacing:.06em;color:var(--bnight);background:var(--bgold);padding:8px 12px;border-radius:999px;transform:rotate(-2deg)}
.bingo-hero h1{font-family:Fraunces,Georgia,serif;font-weight:900;font-size:clamp(46px,11vw,92px);line-height:.95;margin:14px 0 10px;letter-spacing:-.01em;color:#fff}
.bingo-hero p{max-width:560px;margin:0 auto;font:500 18px/1.5 Inter,system-ui,sans-serif;color:#dfe5ff}
.bingo-wrap{max-width:640px;margin:0 auto;padding:22px 16px 8px}
.bingo-card{background:#fff;border-radius:22px;box-shadow:0 18px 40px rgba(6,18,58,.22),0 0 0 6px var(--bred);padding:16px 14px 14px;margin-top:-6px}
.bingo-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 4px 10px}
.bingo-head strong{font:900 24px/1 Fraunces,Georgia,serif;color:var(--bdeep)}
.bingo-head span{font:600 13px/1 Inter,system-ui,sans-serif;color:#5a6280;letter-spacing:.04em}
.bingo-letters{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:6px}
.bingo-letters b{font:900 26px/1.1 Fraunces,Georgia,serif;color:var(--bred);text-align:center}
#bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.sq{position:relative;aspect-ratio:1;border:0;border-radius:12px;background:var(--bpaper);color:var(--bink);font:700 clamp(10px,2.7vw,14px)/1.15 Inter,system-ui,sans-serif;padding:6px 4px;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:inset 0 0 0 2px #e6e2da;transition:transform .12s ease,background .2s ease;-webkit-tap-highlight-color:transparent}
.sq:hover{transform:translateY(-2px)}
.sq:focus-visible{outline:3px solid var(--bblue);outline-offset:2px}
.sq-t{position:relative;z-index:1;word-break:break-word;hyphens:auto}
.sq-stamp{position:absolute;inset:6%;display:flex;align-items:center;justify-content:center;color:var(--bred);opacity:0;z-index:2;pointer-events:none}
.sq-stamp .stamp{width:100%;height:100%}
.sq.on{background:#fff3c4;box-shadow:inset 0 0 0 2px #f1d675}
.sq.on .sq-t{opacity:.45}
.sq.on .sq-stamp{opacity:.88;animation:thunk .28s ease-out}
.sq.free{background:#25D366;color:#06331a;box-shadow:none;font-weight:800}
.sq.free .sq-t{opacity:1;display:flex;flex-direction:column;align-items:center;gap:3px}
.sq.free:not(.on){animation:pulse 2.2s ease-in-out infinite}
.sq.free .sq-stamp{opacity:0}
.sq.free.on .sq-stamp{opacity:.25;color:#06331a;animation:none}
.wa-ico{width:clamp(16px,4.5vw,24px);height:clamp(16px,4.5vw,24px)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}50%{box-shadow:0 0 0 7px rgba(37,211,102,0)}}
.b-wa{background:#25D366;color:#06331a}
.wa-bar{display:flex;align-items:center;gap:12px;background:#25D366;color:#06331a;border-radius:16px;padding:14px 16px;margin:16px 0 0;font:700 15px/1.35 Inter,system-ui,sans-serif}
.wa-bar .wa-ico{width:30px;height:30px;flex:none}
.wa-bar span{flex:1}
.wa-bar a{background:#06331a;color:#fff;text-decoration:none;border-radius:10px;padding:10px 12px;font:700 14px Inter,system-ui,sans-serif;white-space:nowrap}
.bingo-nudge{position:fixed;left:16px;right:16px;bottom:16px;z-index:65;max-width:520px;margin:0 auto;background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(6,18,58,.3),inset 0 0 0 3px #25D366;padding:16px;animation:up .25s ease-out}
.bingo-nudge[hidden]{display:none}
.bingo-nudge p{margin:0 0 12px;font:600 16px/1.45 Inter,system-ui,sans-serif;color:#0d1b3d}
.bingo-nudge .sheet-row a,.bingo-nudge .sheet-row button{flex:1;text-align:center;text-decoration:none;font:700 15px Inter,system-ui,sans-serif;border-radius:12px;padding:12px;border:0;cursor:pointer}
@keyframes thunk{0%{transform:scale(1.6);opacity:0}70%{transform:scale(.92)}100%{transform:scale(1)}}
.bingo-meter{margin:14px 4px 0}
.bingo-meter-track{height:10px;border-radius:999px;background:#ece8e0;overflow:hidden}
#bingo-bar{height:100%;width:0;background:linear-gradient(90deg,var(--bred),var(--bgold));transition:width .4s ease}
#bingo-progress{font:600 14px/1.4 Inter,system-ui,sans-serif;color:#3b4466;margin-top:6px;display:block}
.bingo-name{display:flex;gap:10px;align-items:center;margin:18px 0 0;font:600 15px Inter,system-ui,sans-serif;color:var(--bink)}
.bingo-name input{flex:1;min-width:0;font:600 16px Inter,system-ui,sans-serif;padding:10px 12px;border-radius:10px;border:2px solid #d9d4ca;background:#fff;color:var(--bink)}
.bingo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 4px}
.bingo-actions button,.bingo-actions a{font:700 15px/1.2 Inter,system-ui,sans-serif;border-radius:12px;padding:13px 12px;border:0;cursor:pointer;text-align:center;text-decoration:none}
.b-hot{background:var(--bred);color:#fff}
.b-blue{background:var(--bdeep);color:#fff}
.b-ghost{background:#fff;color:var(--bdeep);box-shadow:inset 0 0 0 2px var(--bdeep)}
.bingo-hint{font:500 14px/1.5 Inter,system-ui,sans-serif;color:#5a6280;margin:8px 2px 0}
.bingo-sheet{position:fixed;inset:0;background:rgba(6,18,58,.55);display:flex;align-items:flex-end;justify-content:center;z-index:60;padding:16px}
.bingo-sheet[hidden],.bingo-win[hidden]{display:none}
.sheet-box{background:#fff;border-radius:20px 20px 16px 16px;max-width:520px;width:100%;padding:22px 20px 18px;box-shadow:0 -10px 40px rgba(0,0,0,.25);animation:up .2s ease-out}
@keyframes up{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
#sheet-cat{font:700 12px/1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--bred)}
#sheet-text{font:700 22px/1.3 Fraunces,Georgia,serif;color:var(--bink);margin:10px 0 18px}
.sheet-row{display:flex;gap:10px}
.sheet-row button{flex:1;font:700 16px Inter,system-ui,sans-serif;border-radius:12px;padding:14px;border:0;cursor:pointer}
.bingo-win{position:fixed;inset:0;z-index:70;background:rgba(6,18,58,.7);display:flex;align-items:center;justify-content:center;padding:16px}
.win-box{background:var(--bdeep);color:#fff;border-radius:24px;max-width:460px;width:100%;padding:28px 22px 20px;text-align:center;box-shadow:0 0 0 6px var(--bred),0 20px 50px rgba(0,0,0,.4)}
#win-title{font:900 64px/1 Fraunces,Georgia,serif;color:var(--bgold);margin:0 0 10px;transform:rotate(-3deg)}
#win-text{font:500 17px/1.5 Inter,system-ui,sans-serif;color:#e5eaff;margin:0 0 18px}
.win-box .bingo-actions{margin-top:0}
.win-box .b-ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:80}
.bingo-rules{max-width:720px;margin:0 auto;padding:30px 16px 10px}
.bingo-rules h2{font:900 34px/1.1 Fraunces,Georgia,serif;color:var(--bdeep);margin:34px 0 12px}
.bingo-rules p,.bingo-rules li{font:400 17px/1.6 Inter,system-ui,sans-serif;color:var(--bink)}
.bingo-steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:12px}
.bingo-steps li{counter-increment:s;background:var(--bpaper);border-radius:14px;padding:14px 14px 14px 58px;position:relative}
.bingo-steps li::before{content:counter(s);position:absolute;left:14px;top:12px;width:32px;height:32px;border-radius:50%;background:var(--bred);color:#fff;font:900 18px/32px Fraunces,Georgia,serif;text-align:center}
.prize-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.prize{border-radius:16px;padding:16px;background:#fff;box-shadow:inset 0 0 0 2px #e6e2da}
.prize b{display:block;font:900 22px/1.1 Fraunces,Georgia,serif;color:var(--bred);margin-bottom:6px}
.prize span{font:500 16px/1.45 Inter,system-ui,sans-serif;color:var(--bink)}
.kaso{background:var(--bdeep);color:#fff;border-radius:20px;padding:22px 20px;margin-top:10px}
.kaso h2{color:var(--bgold);margin-top:0}
.kaso p{color:#e5eaff}
.hof{border:2px dashed #cfc8bb;border-radius:16px;padding:18px;text-align:center;color:#5a6280;font:600 16px/1.5 Inter,system-ui,sans-serif}
@media (max-width:420px){.bingo-letters b{font-size:22px}.bingo-card{padding:12px 10px}#bingo-grid,.bingo-letters{gap:4px}.sq{border-radius:9px;padding:4px 2px}}
@media (prefers-reduced-motion:reduce){.sq.free,.sq,.sq.on .sq-stamp,.sheet-box{animation:none;transition:none}}
.win-box .b-blue{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #25D366}

/* Email gate */
.bingo-gate{display:none}
.bingo-gated .bingo-gate{display:block;position:relative;z-index:1;margin:22px 0 0;background:#fff;border-radius:20px;box-shadow:0 18px 50px rgba(6,18,58,.35),0 0 0 4px var(--bgold);padding:20px 16px 12px;text-align:center}
.bingo-gated .bingo-actions,.bingo-gated .bingo-name,.bingo-gated .bingo-hint{display:none}
.bingo-gate h2{font:900 28px/1.1 Fraunces,Georgia,serif;color:var(--bdeep);margin:0 0 6px}
.bingo-gate p{font:500 15px/1.5 Inter,system-ui,sans-serif;color:#3b4466;margin:0 0 10px}
.bingo-gate small{display:block;font:500 12px/1.4 Inter,system-ui,sans-serif;color:#6a7190;margin-top:6px}
.bingo-gate .sendiio-form-default{max-width:100%!important}

/* Sparkles */
.bingo-hero h1 { position: relative; width: fit-content; margin-left: auto; margin-right: auto; }
.bingo-hero h1::before, .bingo-hero h1::after {
  content: ""; position: absolute; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fedf00' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E") no-repeat center / contain;
  animation: b-twinkle 2.4s ease-in-out infinite;
}
.bingo-hero h1::before { width: 34px; height: 34px; top: -14px; right: -34px; }
.bingo-hero h1::after  { width: 20px; height: 20px; bottom: 6px; left: -30px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E"); animation-delay: 1.2s; }
.bingo-hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fedf00' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fedf00' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 8% 30%, 92% 22%, 85% 78%, 14% 82%, 50% 12%;
  background-size: 12px 12px, 16px 16px, 10px 10px, 12px 12px, 8px 8px;
  opacity: .8;
  animation: b-drift 3.2s ease-in-out infinite;
}
.bingo-card { position: relative; }
.bingo-card::before, .bingo-card::after {
  content: ""; position: absolute; pointer-events: none; z-index: 3;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fedf00' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E") no-repeat center / contain;
  animation: b-twinkle 2.8s ease-in-out infinite;
}
.bingo-card::before { width: 30px; height: 30px; top: -20px; left: -18px; animation-delay: .4s; }
.bingo-card::after  { width: 22px; height: 22px; bottom: -16px; right: -14px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E"); animation-delay: 1.6s; }
@keyframes b-twinkle {
  0%, 100% { transform: scale(.2) rotate(0deg); opacity: 0; }
  45%      { transform: scale(1) rotate(45deg); opacity: 1; }
  60%      { transform: scale(.85) rotate(60deg); opacity: .9; }
}
@keyframes b-drift {
  0%, 100% { opacity: .35; transform: translateY(0); }
  50%      { opacity: .95; transform: translateY(-4px); }
}
/* a little burst when a square gets stamped */
.sq.on.pop::after {
  content: ""; position: absolute; top: -6px; right: -6px; width: 16px; height: 16px; z-index: 3; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fedf00' d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z'/%3E%3C/svg%3E") no-repeat center / contain;
  animation: b-pop .6s ease-out both;
}
.sq.free::after { display: none; }
@keyframes b-pop { 0% { transform: scale(0) rotate(0); opacity: 1; } 60% { transform: scale(1.2) rotate(40deg); opacity: 1; } 100% { transform: scale(0) rotate(90deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .bingo-hero h1::before, .bingo-hero h1::after, .bingo-hero::after,
  .bingo-card::before, .bingo-card::after, .sq.on.pop::after { animation: none !important; }
  .sq.on.pop::after { display: none; }
}
@media (max-width:640px){.bingo-hero::after{background-position:3% 14%,97% 10%,96% 93%,4% 95%,50% 4%}}
/* gate: navy, so nothing sits white on white; the form itself lives in the popup */
.bingo-gated .bingo-gate { background: #00256e; color: #fff; box-shadow: 0 18px 50px rgba(6,18,58,.35), 0 0 0 4px #fedf00; padding: 24px 18px 16px; }
.bingo-gate h2 { color: #fff; }
.bingo-gate p { color: #dfe5ff; }
.bingo-gate small { color: #9fb0e8; }
.bingo-gate small a { color: #fff; }
.bingo-gate .ab-btn { margin: 4px 0 10px; border: 0; cursor: pointer; }

/* Stamped squares stay readable: label sits on top of a softer stamp. */
.sq.on .sq-t{opacity:1;position:relative;z-index:3;font-weight:800;color:#0d1b3d;text-shadow:0 0 3px #fff3c4,0 0 6px #fff3c4,0 0 10px #fff3c4}
.sq.on .sq-stamp{opacity:.42}

/* Sample card is playable; the offer sits under it and glows after the third stamp */
.bingo-gate.is-ready{animation:gateglow 1.4s ease-in-out 2}
@keyframes gateglow{0%,100%{box-shadow:0 18px 50px rgba(6,18,58,.35),0 0 0 4px #fedf00}50%{box-shadow:0 18px 50px rgba(6,18,58,.35),0 0 0 10px #fedf00}}
@media (prefers-reduced-motion:reduce){.bingo-gate.is-ready{animation:none}}
