.bingo-page{--bingo-orange:#ff8a1f;--bingo-purple:#7b3fe4;display:grid;gap:18px;color:#f4ecff;min-width:0}
.bingo-hero{padding:28px 24px;border-radius:16px;overflow:hidden;border:1px solid rgba(255,138,31,.35);
  background:linear-gradient(90deg,rgba(13,10,20,.94),rgba(13,10,20,.5)),url('bingo-images/banner.webp') center/cover,#140d22}
.bingo-hero h2{margin:4px 0 8px;font-size:clamp(26px,4vw,38px);color:var(--bingo-orange);text-shadow:0 0 18px rgba(255,138,31,.45)}
.bingo-kicker{margin:0;letter-spacing:.18em;font-size:12px;color:#c9a6ff}
.bingo-window{margin:8px 0 0;font-weight:600}
.bingo-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:18px;align-items:start}
.bingo-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px;border-radius:16px;border:1px solid rgba(123,63,228,.45);
  background:linear-gradient(rgba(13,10,20,.5),rgba(13,10,20,.8)),url('bingo-images/board.webp') center/cover,#120b1e}
.bingo-tile{position:relative;aspect-ratio:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:8px;border-radius:12px;border:1px solid rgba(255,138,31,.4);color:inherit;font:inherit;text-align:center;cursor:pointer;overflow:hidden}
.bingo-tile.is-hidden{background:url('bingo-images/pumpkin.webp') center/cover,#2a1505;transition:transform .15s ease,box-shadow .15s ease}
.bingo-tile.is-hidden:not(:disabled):hover,.bingo-tile.is-hidden:not(:disabled):focus-visible{transform:translateY(-2px);
  box-shadow:0 0 0 2px var(--bingo-orange),0 0 22px rgba(255,138,31,.55);outline:none}
.bingo-tile:disabled{cursor:default;opacity:1}
.bingo-tile.is-hidden:disabled{filter:saturate(.7) brightness(.75)}
.bingo-tile.is-open,.bingo-tile.is-done{background:linear-gradient(rgba(20,12,34,.68),rgba(20,12,34,.86)),url('bingo-images/revealed.webp') center/cover,#1b1230}
.bingo-tile.is-open{box-shadow:inset 0 0 0 2px var(--bingo-orange)}
.bingo-tile.is-line{box-shadow:0 0 0 2px #b98cff,0 0 24px rgba(185,140,255,.6)}
.bingo-number{font-size:clamp(18px,3vw,28px);font-weight:800;color:#fff3e6;text-shadow:0 2px 6px #000}
.bingo-quest{position:relative;z-index:1;font-size:clamp(11px,1.4vw,14px);font-weight:600;line-height:1.3;overflow-wrap:anywhere;color:#fff7ee;
  text-shadow:0 1px 3px #000,0 0 8px rgba(0,0,0,.9)}
.bingo-tile progress{width:80%;height:8px;accent-color:var(--bingo-orange)}
.bingo-count{font-size:12px;color:#ffd2a6}
.bingo-stamp{position:absolute;right:6px;bottom:6px;width:42%;aspect-ratio:1;background:url('bingo-images/stamp.webp') center/contain no-repeat;font-size:0}
.bingo-side{display:grid;gap:10px;min-width:0}
.bingo-side h3{margin:8px 0 0}
.bingo-score{margin:0;font-size:18px;font-weight:700;color:var(--bingo-orange)}
.bingo-status{margin:0;font-weight:600}
.bingo-reset{padding:14px;border:1px solid var(--bingo-orange);border-radius:10px;display:grid;gap:10px;background:#211827}
.bingo-reset p,.bingo-reset h3{margin:0}.bingo-reset button{min-height:44px;padding:10px 12px;border:1px solid #ffb66f;border-radius:8px;background:#39233e;color:#fff7ee;font:inherit;cursor:pointer}
.bingo-reset button:focus-visible{outline:3px solid #ffb66f;outline-offset:3px}.bingo-reset button:disabled{opacity:.6;cursor:wait}
.bingo-reset-confirmation,.bingo-reset-used{color:#ffd2a6;font-weight:600}
.bingo-warning{margin:0;color:#ffb35c}
.bingo-rewards{display:grid;gap:6px;margin:0}
.bingo-rewards div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.bingo-rewards dt{color:#c9a6ff}
.bingo-rewards dd{margin:0}
.bingo-awards{margin:0;padding-left:18px;display:grid;gap:4px}
@media (max-width:860px){.bingo-layout{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.bingo-hero{padding:20px 16px}.bingo-board{gap:6px;padding:8px}.bingo-tile{padding:4px;border-radius:9px;gap:3px}.bingo-quest{font-size:10px}.bingo-count{font-size:10px}
  .bingo-stamp{right:3px;bottom:3px;width:30%;opacity:.85}}
