/* Baseball */
.bb-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:20px;align-items:start}
@media (max-width:900px){.bb-wrap{grid-template-columns:1fr}}
.bb-diamond{width:100%;max-width:380px;display:block;margin:0 auto;filter:drop-shadow(0 12px 24px #0009)}
.bb-diamond .base{fill:#fff;transition:fill .3s}.bb-diamond .base.on{fill:var(--y)}
.bb-diamond .runner{animation:pop .4s}
@keyframes pop{from{transform:scale(0);transform-origin:center}}
.bb-call{font-size:20px;min-height:3em;text-align:center}
.good{color:#7ee6a8}.bad{color:#ff9b9b}
/* Bingo */
.bingo-wrap{max-width:760px;margin:0 auto}
.bingo-caller{background:#fff;color:#000;border-radius:12px;padding:14px 18px;border-left:8px solid var(--y);margin-bottom:12px;text-align:left}
.bingo-caller small{display:block;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:#666;font-size:13px}
.bingo-caller b{display:block;font-size:24px;line-height:1.2}
.bingo-caller b.big{font-family:Anton,sans-serif;font-size:56px;color:#000;font-weight:400}
.bingo-caller span{color:#555}
.bingo-caller.pop{animation:cpop .35s}
@keyframes cpop{from{transform:scale(.95);opacity:.3}}
.bingo-card{background:#000;border:3px solid var(--y);border-radius:12px;padding:8px}
.bingo-head{display:grid;grid-template-columns:repeat(5,1fr);text-align:center;font-family:Anton,sans-serif;font-size:32px;color:var(--y)}
.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.bingo-grid.four{grid-template-columns:repeat(4,1fr)}
.bcell{aspect-ratio:1/1;background:#fff;color:#000;border:0;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;cursor:pointer;position:relative;font-family:"Barlow Condensed",sans-serif;min-height:56px}
.bcell b{font-family:Anton,sans-serif;font-weight:400;font-size:clamp(13px,2.6vw,22px)}
.bcell small{font-size:clamp(9px,1.4vw,12px);line-height:1.05;text-align:center;color:#444}
.bcell.free{background:var(--y)}.bcell.free img{width:60%}
.bcell.on{background:#111;color:var(--y)}
.bcell.on small{color:#888}
.bcell.on:not(.free)::after{content:"";position:absolute;inset:12%;border-radius:50%;border:5px solid var(--y);opacity:.85;animation:pop .3s}
.bcell.win{box-shadow:0 0 0 4px #3dce7a;animation:glow 1s infinite alternate}
.bcell.gold{background:linear-gradient(135deg,#fff7c2,#ffd84d)}
.bcell.gold i{position:absolute;top:3px;right:5px;font-style:normal;font-weight:800;font-size:12px;background:#000;color:var(--y);border-radius:4px;padding:0 4px}
.bcell.sel{box-shadow:inset 0 0 0 4px #ff4fa3}
.bcell.on.gold{background:#111}
@keyframes glow{to{box-shadow:0 0 0 6px #3dce7a,0 0 20px #3dce7a}}
.bu-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:800px){.bu-board{grid-template-columns:1fr}}
.up .bingo-wrap,.bingo-wrap.up{max-width:1100px}
/* Jackpot */
.jp-wrap,.mvp-wrap,.byb-wrap{display:grid;grid-template-columns:minmax(220px,.6fr) minmax(0,1.4fr);gap:20px;align-items:start}
@media (max-width:800px){.jp-wrap,.mvp-wrap,.byb-wrap{grid-template-columns:1fr}}
.jp-jar{position:relative;width:180px;height:200px;margin:10px auto}
.jar-lid{width:120px;height:20px;margin:0 auto;background:var(--y);border-radius:6px}
.jar-body{position:relative;width:180px;height:180px;border:5px solid #ffffff88;border-top:0;border-radius:0 0 40px 40px;overflow:hidden;background:#ffffff0d}
.jt{position:absolute;bottom:8px;width:34px;height:18px;background:var(--y);border-radius:3px;transform:rotate(var(--r));animation:jdrop .6s ease-in both;box-shadow:0 0 0 2px #000 inset}
.jt:nth-child(3n){background:#fff}.jt:nth-child(4n){bottom:26px}.jt:nth-child(5n){bottom:44px}.jt:nth-child(7n){bottom:62px}.jt:nth-child(11n){bottom:80px}
@keyframes jdrop{from{transform:translateY(-200px) rotate(0)}}
.jp-mvp{text-align:center;color:#ddd}
.jp-draw{text-align:center;padding:20px}
.jp-draw h2{font-size:56px;color:var(--y)}
.jp-spin{position:relative;width:120px;height:120px;margin:20px auto;animation:rot 2s linear infinite}
.jp-spin i{position:absolute;left:50%;top:0;width:24px;height:14px;margin-left:-12px;background:var(--y);transform-origin:12px 60px;transform:rotate(calc(var(--i)*45deg));border-radius:2px}
@keyframes rot{to{transform:rotate(360deg)}}
/* MVP */
.mvp-crown{background:var(--y);color:#000;border-radius:12px;padding:14px;text-align:center;transform:skew(-4deg)}
.mvp-crown small{display:block;font-weight:800;letter-spacing:2px;text-transform:uppercase}
.mvp-crown b{font-family:Anton,sans-serif;font-size:44px;font-weight:400;display:block}
.mvp-board{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.mvp-board li,.rw-pos li{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;background:#111;border:1px solid #333;border-radius:8px;padding:8px 12px;transition:transform .3s}
.mvp-board li span,.rw-pos li span{font-family:Anton,sans-serif;color:var(--y);font-size:20px}
.mvp-board li em,.rw-pos li em{font-family:Anton,sans-serif;color:#fff;font-size:22px}
.mvp-board li.me,.rw-pos li.me{border-color:var(--y);background:#1d1a00}
/* Beat your best */
.byb-meter{position:relative;height:300px;width:130px;margin:0 auto;background:#111;border:3px solid #333;border-radius:14px;overflow:hidden}
.byb-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(0deg,#a97820,var(--y));transition:height .3s}
.byb-line{position:absolute;left:0;right:0;border-top:3px dashed #fff}
.byb-line span{position:absolute;right:4px;top:-22px;font-size:13px;font-weight:800;text-transform:uppercase}
.byb-meter b{position:absolute;inset:auto 0 10px;text-align:center;font-family:Anton,sans-serif;font-size:54px;font-weight:400;color:#fff;text-shadow:0 2px 8px #000}
.byb-meter.beat{border-color:var(--ok);box-shadow:0 0 30px #3dce7a66}
/* Store vs store */
.svs-score{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;text-align:center}
.svs-score .team{background:#111;border:2px solid #333;border-radius:12px;padding:12px}
.svs-score .team.me{border-color:var(--y)}
.svs-score small{display:block;text-transform:uppercase;letter-spacing:1px;font-weight:800;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.svs-score b{font-family:Anton,sans-serif;font-weight:400;font-size:54px;color:var(--y)}
.svs-score .them b{color:#fff}
.vs{font-family:Anton,sans-serif;font-size:34px;transform:skew(-8deg);color:var(--y)}
.svs-bar{height:16px;background:#fff;border-radius:999px;overflow:hidden;margin:12px 0}
.svs-bar i{display:block;height:100%;width:50%;background:var(--y);transition:width .4s}
.svs-note{color:#bbb;font-size:16px}
/* Tug of war */
.tow-field{position:relative;height:110px;background:linear-gradient(#1f8a45,#176b35);border-radius:12px;overflow:hidden;margin-bottom:6px}
.tow-line{position:absolute;top:0;bottom:0;width:4px;background:#fff}
.tow-line.l{left:12%}.tow-line.r{right:12%}
.tow-rope{position:absolute;left:0;right:0;top:50%;height:8px;margin-top:-4px;background:repeating-linear-gradient(90deg,#c8874b 0 10px,#a86a33 10px 20px);transition:transform .35s ease-out}
.tow-flag{position:absolute;left:50%;top:-24px;width:6px;height:56px;margin-left:-3px;background:var(--y)}
.tow-flag::after{content:"";position:absolute;left:6px;top:0;border-left:30px solid #ff4d6d;border-top:12px solid transparent;border-bottom:12px solid transparent}
.tow-team{position:absolute;top:-22px;font-size:34px}
.tow-team.them{left:2%;transform:scaleX(-1)}.tow-team.you{right:2%}
.tow-labels{display:flex;justify-content:space-between;font-weight:800;text-transform:uppercase;letter-spacing:1px}
.tow-labels b{color:var(--y)}
/* Raceway */
.rw-wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:16px}
.rw-track{grid-column:1/-1;max-width:640px;margin:0 auto;width:100%}
.rw-track circle{transition:cx .9s linear,cy .9s linear}
.rw-pos{list-style:none;margin:0;padding:0;display:grid;gap:6px}
#g-main .rw-wrap #q{grid-column:1/2;grid-row:2}
@media (max-width:800px){.rw-wrap{grid-template-columns:1fr}#g-main .rw-wrap #q{grid-column:auto;grid-row:auto}}
/* Streak */
.stk-wrap{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;align-items:center}
.stk-wrap #q{grid-column:1/-1}
.stk-flame{font-size:70px;transform:scale(var(--s,1));transition:transform .3s;filter:drop-shadow(0 0 12px #ff7a18)}
.stk-flame.hot{animation:flick .4s infinite alternate}
@keyframes flick{to{filter:drop-shadow(0 0 28px #ffdc00)}}
.stk-count b{font-family:Anton,sans-serif;font-weight:400;font-size:80px;color:var(--y);line-height:1}
.stk-count small{display:block;text-transform:uppercase;letter-spacing:2px;font-weight:800}
/* Tic tac toe */
.ttt-wrap{max-width:720px;margin:0 auto}
.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:340px;margin:0 auto}
.ttt-c{aspect-ratio:1/1;background:#111;border:3px solid #333;border-radius:12px;font-family:Anton,sans-serif;font-size:64px;color:var(--y);cursor:pointer;min-height:80px}
.ttt-c.o{color:#3ec6ff}
.ttt-c:not(:disabled):hover{border-color:var(--y)}
.ttt-c.win{background:#1d1a00;border-color:var(--ok)}
.ttt-msg{text-align:center;font-size:21px;font-weight:700;min-height:1.5em}
/* Passport */
.pp-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;align-items:start}
@media (max-width:860px){.pp-wrap{grid-template-columns:1fr}}
.pp-book{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:#1b1530;border:3px solid #7d5cff;border-radius:14px;padding:12px}
.pp-cover{grid-column:1/-1;display:flex;align-items:center;gap:10px;justify-content:center}
.pp-cover img{height:34px}.pp-cover b{font-family:Anton,sans-serif;font-weight:400;font-size:30px;text-transform:uppercase;color:var(--y)}
.pp-page{background:#f3eedd;color:#555;border-radius:6px;padding:8px;text-align:center;min-height:84px;display:grid;align-content:center;gap:2px}
.pp-page span{font-family:Anton,sans-serif;font-size:18px;color:#bbb}
.pp-page small{font-size:11px;line-height:1.05}
.pp-page.on span{color:#000}
.stamp{display:inline-block;font-style:normal;border:3px solid #c0392b;color:#c0392b;padding:2px 6px;border-radius:6px;transform:rotate(-10deg);font-family:Anton,sans-serif}
.pp-page.new .stamp{animation:stampin .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes stampin{from{transform:scale(2.4) rotate(-30deg);opacity:0}}
/* Mystery */
.ms-wrap{max-width:900px;margin:0 auto}
.ms-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:420px;margin:0 auto}
.ms-t{aspect-ratio:1/1;position:relative;border:0;background:transparent;perspective:600px;cursor:pointer;min-height:64px}
.ms-t span{position:absolute;inset:0;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;backface-visibility:hidden;transition:transform .5s}
.ms-t .back{background:linear-gradient(135deg,#7d5cff,#3a2a7a);color:#fff;font-family:Anton,sans-serif;font-size:36px;border:2px solid #9b6bff}
.ms-t .front{background:#fff;color:#000;transform:rotateY(180deg);font-size:22px}
.ms-t .front b{font-family:Anton,sans-serif;font-weight:400}
.ms-t.open .back{transform:rotateY(180deg)}.ms-t.open .front{transform:rotateY(360deg)}
.ms-t.star .front{background:var(--y)}
.ms-t:not(:disabled):not(.open) .back{box-shadow:0 0 0 3px var(--y)}
/* Spin */
.sp-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:start}
@media (max-width:860px){.sp-wrap{grid-template-columns:1fr}}
.sp-wheel{position:relative;max-width:380px;margin:0 auto;width:100%}
.sp-wheel svg{width:100%;display:block;filter:drop-shadow(0 10px 30px #000)}
.sp-ptr{position:absolute;left:50%;top:-6px;margin-left:-16px;border-left:16px solid transparent;border-right:16px solid transparent;border-top:30px solid var(--y);z-index:2;filter:drop-shadow(0 2px 2px #000)}
/* Blackjack */
.bj-table{max-width:820px;margin:0 auto}
.bj-row small{display:block;text-transform:uppercase;letter-spacing:2px;font-weight:800;color:#e6f5ec;margin:6px 0}
.bj-cards{display:flex;gap:8px;min-height:120px;flex-wrap:wrap}
.pc{width:80px;height:114px;background:#fff;color:#111;border-radius:8px;position:relative;box-shadow:0 6px 14px #0008;animation:deal .3s ease-out;display:flex;align-items:center;justify-content:center}
.pc b{position:absolute;top:4px;left:7px;font-family:Anton,sans-serif;font-weight:400;font-size:22px}
.pc b.b2{top:auto;left:auto;bottom:4px;right:7px;transform:rotate(180deg)}
.pc i{font-style:normal;font-size:40px}
.pc.red{color:#c0392b}
.pc.back{background:repeating-linear-gradient(45deg,#000 0 8px,#1a1a1a 8px 16px);border:3px solid var(--y)}
.pc.back img{width:56px}
@keyframes deal{from{transform:translateY(-40px) rotate(-8deg);opacity:0}}
.bj-msg{font-size:24px;min-height:1.5em;text-align:center;margin:12px 0}
.bj-acts{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:10px 0}
/* Tower */
.tw-wrap{max-width:560px;margin:0 auto}
.tw-stage{position:relative;height:min(62vh,520px);background:linear-gradient(#0b1a33,#000);border:2px solid #222;border-radius:12px;overflow:hidden;cursor:pointer;touch-action:manipulation;user-select:none}
.tw-inner{position:absolute;inset:0;transition:transform .3s}
.tw-b{position:absolute;height:26px;border-radius:3px;box-shadow:inset 0 -4px 0 #0003;display:flex;align-items:center;justify-content:center;overflow:hidden}
.tw-b span{font-family:Anton,sans-serif;font-size:14px;color:#000;letter-spacing:.5px}
.tw-b.base{background:#333}
.tw-hint{position:absolute;left:0;right:0;top:40%;text-align:center;font-family:Anton,sans-serif;font-size:34px;text-transform:uppercase;color:#ffffff66;pointer-events:none}
.tw-stage.flash{animation:fl .4s}
@keyframes fl{from{box-shadow:inset 0 0 60px var(--y)}}
.tw-stage.shake{animation:shake .4s}
/* Second chance */
.sc-wrap{max-width:820px;margin:0 auto}
.sc-opts{display:grid;gap:10px}
.sc-o small{font-size:18px;color:#eee}
