.engine-prize-row,.engine-entry{border-top:1px solid var(--line);padding:20px 0;margin-top:12px}.engine-entry h3{margin-bottom:4px}.engine-entry a:not(.button){text-decoration:underline}.engine-finalise{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.engine-finalise .button,.engine-entry .button{margin-top:14px}.bingo-card{width:100%;max-width:440px;table-layout:fixed;border-collapse:separate;border-spacing:6px;margin:16px auto}.bingo-card th,.bingo-card td{text-align:center;padding:12px 2px;border:0;border-radius:9px;white-space:normal}.bingo-card th{background:var(--bingo-primary,#006b64);color:var(--bingo-on-primary,#fff);font-size:20px;font-weight:700}.bingo-card td{background:#f0f3f0;border:2px solid #dce4df;color:#17382f;font-size:clamp(16px,4vw,24px);font-weight:700;position:relative}.bingo-card td.called{background:var(--bingo-primary,#006b64);border-color:var(--bingo-primary,#006b64);color:var(--bingo-on-primary,#fff)}.bingo-mark{display:none;font-size:10px;position:absolute;right:4px;top:1px}.called .bingo-mark{display:inline}.bingo-latest{font-size:18px}.bingo-latest strong{font-size:30px}.bingo-called{line-height:1.9;overflow-wrap:anywhere}.bingo-experience{max-width:600px;margin:14px auto}.engine-entry dl{line-height:1.8}.engine-entry dd{margin-left:18px}.engine-entry textarea{max-width:100%}@media(max-width:500px){.bingo-card{border-spacing:3px}.bingo-card td{padding:12px 1px}.bingo-card th{font-size:17px}.engine-entry .button{white-space:normal}}
.bingo-ball-stage{height:204px;display:grid;place-items:center;overflow:hidden;isolation:isolate}.bingo-ball{--ball-colour:#006b64;display:grid;place-items:center;width:152px;height:152px;border-radius:50%;background:radial-gradient(circle at 30% 23%,#ffffffb8 0,transparent 30%),radial-gradient(circle at 40% 35%,var(--ball-colour) 35%,#12332e 100%);box-shadow:inset -9px -12px 17px #0004,inset 4px 4px 12px #fff6,0 17px 18px -12px #123d3255;position:relative}.bingo-ball[data-letter="I"]{--ball-colour:#2259a5}.bingo-ball[data-letter="N"]{--ball-colour:#b60078}.bingo-ball[data-letter="G"]{--ball-colour:#8245c0}.bingo-ball[data-letter="O"]{--ball-colour:#b96a00}.bingo-ball-face{display:flex;flex-direction:column;justify-content:center;align-items:center;width:98px;height:98px;background:#fffdf5;border-radius:50%;border:4px solid #ffffff88;box-shadow:inset 0 2px 7px #0002;color:#123d32;line-height:1.1}.bingo-ball-face span{font-size:15px;letter-spacing:.12em;font-weight:800}.bingo-ball-face strong{font-size:48px;font-variant-numeric:tabular-nums}.bingo-ball.is-revealing{animation:bingo-ball-reveal .9s cubic-bezier(.22,.7,.3,1) both}.bingo-call-caption{text-align:center;margin:0 0 14px}.bingo-timer{text-align:center;min-height:26px;font-weight:600}.bingo-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:16px 0}.bingo-control [name="call_interval"]{max-width:110px}.bingo-control>form{text-align:center}.bingo-replay{text-align:center;border:1px solid var(--line);padding:16px;border-radius:12px;margin:16px 0}.bingo-replay select{width:auto;max-width:100%;margin-left:8px}.bingo-replay[hidden]{display:none}.bingo-buttons .button{white-space:normal}.bingo-control .muted{font-size:13px;line-height:1.6}@keyframes bingo-ball-reveal{0%{transform:translateX(-135px) translateY(-55px) rotate(-150deg) scale(.55);opacity:0}55%{transform:translateX(10px) translateY(6px) rotate(12deg) scale(1.06);opacity:1}78%{transform:translateY(-9px) rotate(-3deg)}100%{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.bingo-ball.is-revealing{animation:none}}@media(max-width:500px){.bingo-ball-stage{height:184px}.bingo-ball{width:138px;height:138px}.bingo-buttons .button{flex:1 1 135px}}
.bingo-ball.is-in-transit{visibility:hidden}.bingo-ball.bingo-travelling-ball{position:fixed;left:0;top:0;margin:0;z-index:1000;pointer-events:none;transform-origin:center;will-change:transform,opacity}.bingo-card td.bingo-landing{animation:bingo-cell-land .65s ease-out}.bingo-admin-shortcuts .button{margin:6px 6px 0 0}.bingo-replay{scroll-margin-top:16px}@keyframes bingo-cell-land{0%{box-shadow:0 0 0 0 #00b8a6a6;filter:brightness(1.6)}100%{box-shadow:0 0 0 14px #00b8a600;filter:brightness(1)}}@media(prefers-reduced-motion:reduce){.bingo-card td.bingo-landing{animation:none}}
.bingo-card-stage{position:relative;max-width:440px;margin:16px auto;isolation:isolate}.bingo-card-stage .bingo-card{margin:0}.bingo-number,.bingo-card .bingo-mark{position:relative;z-index:2}.bingo-card .bingo-mark{position:absolute}.bingo-themed .bingo-card td.bingo-winning-cell{background:var(--bingo-accent,#b60078);border-color:var(--bingo-accent,#b60078);color:var(--bingo-on-accent,#fff)}.bingo-win-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}.bingo-win-lines line{stroke:var(--bingo-on-accent,#fff);stroke-width:5;stroke-linecap:round;opacity:.38}.bingo-completion{border:2px solid var(--bingo-accent,#b60078);border-radius:14px;padding:18px;margin:18px 0;text-align:center;background:#fff;color:#17382f}.bingo-completion strong{font-size:clamp(22px,5vw,30px);line-height:1.2}.bingo-completion p{margin:10px 0 0;font-size:14px}.bingo-completion.is-winner{background:var(--bingo-accent,#b60078);color:var(--bingo-on-accent,#fff)}.bingo-completion[hidden],[data-bingo-custom-colours][hidden]{display:none}.bingo-pattern{text-align:center;font-size:13px}.bingo-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3;border-radius:12px}.bingo-confetti i{position:absolute;top:8%;left:var(--piece-x);height:12px;width:7px;background:var(--bingo-accent,#b60078);animation:bingo-confetti-fall 1.7s ease-out var(--piece-delay) both}.bingo-confetti i:nth-child(3n){background:var(--bingo-primary,#006b64)}.bingo-confetti i:nth-child(3n + 1){background:#ffd948}.bingo-card-stage.is-celebrating .bingo-winning-cell{animation:bingo-win-pulse .65s ease-out 3}.bingo-colour-sample{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.bingo-colour-sample>*{padding:14px 18px;border-radius:8px;background:#f0f3f0;color:#17382f}.bingo-colour-sample strong,.bingo-colour-sample .sample-marked{background:var(--bingo-primary,#006b64);color:var(--bingo-on-primary,#fff)}.bingo-colour-sample .sample-winner{background:var(--bingo-accent,#b60078);color:var(--bingo-on-accent,#fff)}[data-bingo-custom-colours] input[type=color]{width:100%;height:48px;padding:4px;cursor:pointer}@keyframes bingo-confetti-fall{0%{transform:translateY(-30px) rotate(0);opacity:0}15%{opacity:1}100%{transform:translate(var(--piece-drift),340px) rotate(430deg);opacity:0}}@keyframes bingo-win-pulse{0%,100%{transform:scale(1)}50%{transform:scale(.94);box-shadow:0 0 0 3px var(--bingo-accent,#b60078)}}@media(prefers-reduced-motion:reduce){.bingo-card-stage.is-celebrating .bingo-winning-cell,.bingo-confetti i{animation:none}.bingo-confetti{display:none}}

.bingo-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px}.bingo-fan-card{min-width:0;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}.bingo-card-grid .bingo-experience{margin:0 auto}.bingo-card-grid .bingo-ball-stage{height:120px}.bingo-card-grid .bingo-ball{width:94px;height:94px}.bingo-card-grid .bingo-ball-face{width:64px;height:64px;border-width:3px}.bingo-card-grid .bingo-ball-face strong{font-size:30px}.bingo-card-grid .bingo-ball-face span{font-size:11px}.bingo-fan-card h3{margin:0 0 6px}.bingo-fan-card .bingo-completion strong{font-size:23px}.bingo-fan-card .bingo-card td{font-size:clamp(14px,3vw,22px)}
.fan-bingo-controls{padding:1.2rem;margin:1.2rem 0 1.6rem;border:1px solid var(--border,#dbe5df);border-radius:14px;background:var(--surface-soft,#f4f8f5)}
.fan-bingo-controls h3{margin-top:0}.fan-bingo-controls select{max-width:16rem}.fan-bingo-controls .bingo-buttons{justify-content:flex-start;margin-top:1rem}.fan-bingo-controls .bingo-timer{font-weight:700;min-height:1.5em}.fan-bingo-controls .muted{font-size:.85rem}
