/* Games polish layer, Oct 2026: gold + navy treasure theme, fluid touch, full screen, responsive sizing. */
.gfx .g-stage,.gfx .g-bar{--gold1:#FFD54F;--gold2:#F5B800;--gold3:#B8860B}
/* Fast, forgiving touch: no double-tap zoom delay, no grey flash, clear pressed state */
.gfx .g-play button,.gfx .g-play .btn,.gfx .g-play select,.gfx .g-play input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.gfx .g-play .btn:active,.gfx .pad .btn:active,.gfx .b-piece:active,.gfx .w-keys button:active{transform:translateY(2px) scale(.97)}
.gfx .g-stage{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overflow:hidden;isolation:isolate}
/* Identity hero */
.g-hero{position:relative;display:flex;align-items:center;gap:1rem;margin:.6rem 0 .4rem;padding:1rem 1.2rem;border-radius:20px;color:#fff;overflow:hidden;
  background:url(../assets/games/bg-vault.svg) 0 0/160px,var(--vault-bg,linear-gradient(160deg,#0B2545,#13315c));border:3px solid #F5B800;box-shadow:0 10px 30px rgba(11,37,69,.25),inset 0 0 0 2px rgba(255,213,79,.35)}
.g-hero::after{content:"";position:absolute;inset:-40% -10% auto auto;width:60%;height:180%;background:radial-gradient(closest-side,rgba(255,213,79,.35),transparent);pointer-events:none;animation:gh-glow 6s ease-in-out infinite alternate}
@keyframes gh-glow{to{transform:translateX(-30%)}}
.g-hero-emb{flex:0 0 auto;width:84px;height:84px;background:center/contain no-repeat;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4));animation:gh-bob 3.5s ease-in-out infinite}
@keyframes gh-bob{50%{transform:translateY(-5px) rotate(-3deg)}}
.g-hero-txt{display:flex;flex-direction:column;gap:.2rem;position:relative;z-index:1}
.g-hero-txt b{font:700 1.5rem/1.15 "Playfair Display",Georgia,serif;background:linear-gradient(180deg,#FFF3B0,#FFC72C 55%,#F5B800);-webkit-background-clip:text;background-clip:text;color:transparent}
.g-hero-txt i{font-style:normal;font-size:1.05rem;color:#fdf6e3}
.g-chest-chip{position:relative;z-index:1;margin-left:auto;background:#FFC72C;color:#0B2545!important;font-weight:bold;text-decoration:none;border-radius:999px;padding:.55rem 1rem;min-height:48px;display:inline-flex;align-items:center;box-shadow:0 0 0 3px #fff,0 0 18px #FFD54F;animation:chip-pulse 2.4s ease-in-out infinite}
@keyframes chip-pulse{50%{box-shadow:0 0 0 3px #fff,0 0 30px #FFD54F}}
.g-hero-g2048 .g-hero-emb{background-image:url(../assets/games/em-g2048.svg)}.g-hero-blocks .g-hero-emb{background-image:url(../assets/games/em-blocks.svg)}
.g-hero-bubbles .g-hero-emb{background-image:url(../assets/games/em-bubbles.svg)}.g-hero-chicken .g-hero-emb{background-image:url(../assets/games/em-bag.svg)}
.g-hero-memory .g-hero-emb{background-image:url(../assets/games/em-crown.svg)}.g-hero-runner .g-hero-emb{background-image:url(../assets/games/em-coin.svg)}.g-hero-lane .g-hero-emb{background-image:url(../assets/games/em-coin.svg)}.g-hero-lane{background-image:url(../assets/games/bg-stars.svg),linear-gradient(160deg,#020c26,#0B2545 60%,#14306a)}.g-hero-runner{background-image:url(../assets/games/bg-stars.svg),linear-gradient(160deg,#020c26,#0B2545 55%,#3c3680)}
.g-hero-pong .g-hero-emb{background-image:url(../assets/games/em-pong.svg)}
.g-hero-pool .g-hero-emb{background-image:url(../assets/games/em-pool.svg)}.g-hero-shooter .g-hero-emb{background-image:url(../assets/games/em-shooter.svg)}
.g-hero-solitaire .g-hero-emb{background-image:url(../assets/games/em-solitaire.svg)}.g-hero-trivia .g-hero-emb{background-image:url(../assets/games/em-chest.svg)}
.g-hero-word .g-hero-emb{background-image:url(../assets/games/em-word.svg)}
.g-hero-blocks{background-image:url(../assets/games/bg-temple.svg),linear-gradient(160deg,#08202f,#0f4a3c)}
.g-hero-bubbles{background-image:url(../assets/games/bg-lagoon.svg),linear-gradient(160deg,#0B2545,#1D5F94)}
.g-hero-pong,.g-hero-memory{background-image:url(../assets/games/bg-palace.svg),linear-gradient(160deg,#14104a,#0B2545)}
.g-hero-shooter{background-image:url(../assets/games/bg-stars.svg),linear-gradient(#06142a,#0B2545)}
.g-hero-solitaire,.g-hero-pool{background-image:url(../assets/games/bg-baize.svg),linear-gradient(#0e3a2f,#0B2545)}
.g-hero-chicken{background-image:url(../assets/games/bg-rush.svg),linear-gradient(#1f4d2a,#0B2545)}
.g-hero-trivia{background-image:url(../assets/games/bg-quiz.svg),linear-gradient(#0B2545,#13315c)}
.g-hero-word{background-image:linear-gradient(160deg,rgba(11,37,69,.92),rgba(11,37,69,.75)),url(../assets/games/bg-map.svg)}
/* Stages: each game gets its own setting */
.gfx .g-stage{border:3px solid #F5B800;box-shadow:0 12px 34px rgba(11,37,69,.22),inset 0 0 0 2px rgba(255,213,79,.4);border-radius:20px}
.game-g2048 .g-stage{background:url(../assets/games/bg-vault.svg) 0 0/160px,#0B2545}
.game-blocks .g-stage{background:url(../assets/games/bg-temple.svg) 0 0/160px,#0c3a30}
.game-memory .g-stage{background:url(../assets/games/bg-gallery.svg) 0 0/160px,#13315c}
.game-word .g-stage{background:url(../assets/games/bg-map.svg) 0 0/160px,#f3e6c0;color:#0B2545}
.game-trivia .g-stage{background:url(../assets/games/bg-quiz.svg) 0 0/160px,#0B2545}
.game-solitaire .g-stage{background:url(../assets/games/bg-baize.svg) 0 0/160px,radial-gradient(circle at 50% 30%,#155446,#0e3a2f)}
.game-pong .g-stage{background:url(../assets/games/bg-court.svg) 0 0/160px,#0B2545}
.game-pool .g-stage{background:url(../assets/games/bg-baize.svg) 0 0/160px,#0B2545}
.game-shooter .g-stage,.game-bubbles .g-stage,.game-chicken .g-stage{background:url(../assets/games/bg-stars.svg) 0 0/160px,#06142a}
.gfx .g-stage .pad .btn{background:linear-gradient(180deg,#FFE58A,#F5B800);border-color:#B8860B;color:#0B2545}
.gfx .g-stage .pl-pow,.gfx .g-stage .pl-status{color:#fff}
/* Fx overlay, floating text, bumps, shakes */
.g-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:15}
.g-float{position:absolute;z-index:16;transform:translate(-50%,-50%);font:800 1.6rem Montserrat,Arial,sans-serif;color:#FFD54F;text-shadow:0 2px 0 #0B2545,0 0 10px rgba(0,0,0,.6);pointer-events:none;animation:g-float 1.1s ease-out forwards;white-space:nowrap}
.g-float.bad{color:#fff}
@keyframes g-float{0%{opacity:0;transform:translate(-50%,-30%) scale(.7)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-160%) scale(1)}}
#g-score{display:inline-block}#g-score.g-bump{animation:g-bump .35s ease-out}
@keyframes g-bump{40%{transform:scale(1.35);color:#B8860B}}
.g-shake{animation:g-shake .35s}
@keyframes g-shake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
/* Result card */
.gfx .g-result{background:linear-gradient(180deg,#fffdf3,#fff7d6);border:4px solid #F5B800;box-shadow:0 14px 40px rgba(11,37,69,.25);animation:res-in .45s cubic-bezier(.2,1.4,.4,1)}
@keyframes res-in{from{opacity:0;transform:translateY(16px) scale(.96)}}
.g-vaultgain{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:1.15rem;margin:.6rem 0;padding:.7rem;border-radius:12px;background:#0B2545;color:#fff}
.g-trophy{flex-basis:100%;font-weight:bold;color:#FFD54F}
.g-tie{margin-top:1rem;padding:1rem;border-radius:14px;background:linear-gradient(135deg,#0B2545,#13315c);color:#fff}
.g-tie-h{font-weight:bold;font-size:1.2rem;margin:0 0 .4rem;color:#FFD54F}.g-tie ul{list-style:none;padding:0;margin:0 0 .8rem;display:grid;gap:.35rem}
.g-tie li{display:flex;align-items:center;gap:.5rem}.g-tie li i{width:22px;height:22px;border-radius:50%;border:2px solid #fff;flex:0 0 auto}
/* Coins */
.coin-ico{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;background:url(../assets/games/em-coin.svg) center/contain no-repeat}.coin-ico.big{width:2.2rem;height:2.2rem}
.vault-pill{background:linear-gradient(180deg,#FFE58A,#F5B800)!important;color:#0B2545!important;border-color:#B8860B!important}
.games-nav .vault-pill{margin-left:auto}.games-nav .vault-pill+.dia-pill{margin-left:0}
/* Vault panel on hub */
.vault{position:relative;display:flex;gap:1.4rem;align-items:flex-start;margin-top:1.4rem;overflow:hidden;background:url(../assets/games/bg-vault.svg) 0 0/160px,var(--vault-bg,#0B2545)!important;color:#fff;border:4px solid #F5B800!important}
.vault h2{margin-top:0;color:#FFD54F}.vault h3{color:#FFD54F;font-size:1.2rem}
.vault-door{flex:0 0 auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,#13315c 0 38%,#F5B800 39% 44%,#0B2545 45% 62%,#B8860B 63% 70%,#FFD54F 71%);box-shadow:0 0 0 6px #0B2545,0 0 24px rgba(255,213,79,.6);position:relative;transition:transform 1.2s cubic-bezier(.3,1.3,.4,1)}
.vault-door span{position:absolute;inset:44%;background:#FFD54F;border-radius:50%;box-shadow:0 -34px 0 -2px #FFD54F,0 34px 0 -2px #FFD54F,34px 0 0 -2px #FFD54F,-34px 0 0 -2px #FFD54F}
.vault-open .vault-door{transform:rotate(300deg)}
.vault-body{flex:1;min-width:0}.vault-stats{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:1.2rem}.vault-stats strong{font-size:1.5rem;color:#FFD54F}
.vault-chest{font-size:1.2rem}.vault-chest:disabled{opacity:1;background:#13315c;color:#fff;border-color:#9AD0F5;cursor:default}
.vault-msg{font-weight:bold;font-size:1.15rem;color:#FFD54F;min-height:1.4em}
.vault-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.vset{min-height:84px;border-radius:12px;border:3px solid rgba(255,255,255,.4);color:#fff;text-align:left;padding:.6rem;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;font:inherit;touch-action:manipulation}
.vset b{font-size:1rem}.vset small{font-size:.85rem}.vset.on{border-color:#FFD54F;box-shadow:0 0 0 3px #FFD54F}.vset:disabled{filter:grayscale(.6) brightness(.7);cursor:not-allowed}
.vault-fine{font-size:.9rem;color:#dbe7f5;margin-bottom:0}
.rain-coin{position:absolute;top:-30px;width:28px;height:28px;background:url(../assets/games/em-coin.svg) center/contain no-repeat;animation:rain 1.6s ease-in forwards;pointer-events:none}
@keyframes rain{to{transform:translateY(420px) rotate(540deg);opacity:.2}}
@media(max-width:600px){.vault{flex-direction:column;align-items:center}.vault-door{width:90px;height:90px}.g-hero{padding:.8rem}.g-hero-emb{width:60px;height:60px}.g-hero-txt b{font-size:1.25rem}.g-chest-chip{margin-left:0}.g-hero{flex-wrap:wrap}}
/* Game cards on the hub: money art */
.gfx .gc-art,.games-grid .gc-art{border:3px solid #F5B800}
/* ---------- Responsive canvases ---------- */
.game-canvas{width:min(100%,calc(var(--ar,1) * var(--maxh,70dvh)));max-height:var(--maxh,70dvh);height:auto}
@supports not (height:1dvh){.game-canvas{width:min(100%,calc(var(--ar,1) * 70vh))}}
@media(orientation:landscape) and (max-height:560px){.gfx{--maxh:78dvh}.g-hero{display:none}.gfx .pad{margin-top:.4rem}.gfx .pad .btn{min-height:56px}}
/* ---------- Full screen (real Fullscreen API) and immersive fallback (iPhone Safari) ---------- */
.g-play.is-full{position:fixed;inset:0;z-index:9999;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;height:100vh;height:100dvh;width:100vw;
  background:url(../assets/games/bg-vault.svg) 0 0/160px,#0B2545;padding:max(.5rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));
  display:flex;flex-direction:column;gap:.4rem;--maxh:calc(100dvh - 230px)}
.g-play:fullscreen{width:100%;height:100%}
.g-play:-webkit-full-screen{width:100%;height:100%}
.g-play.is-full .g-bar{margin:0;padding:.5rem .7rem}.g-play.is-full .g-ctrls,.g-play.is-full .g-seedl{display:none}
.g-play.is-full .g-msg{color:#fff;margin:0}.g-play.is-full .g-stage{flex:1 0 auto;padding:.5rem}
.g-play.is-full .btns .btn{min-height:48px;padding:.4rem .8rem}
html.g-immersive-on,html.g-immersive-on body{overflow:hidden;height:100%}
.g-fsbtn{background:#0B2545!important;color:#FFD54F!important;border-color:#F5B800!important}
@media(orientation:landscape) and (max-height:560px){.g-play.is-full{--maxh:calc(100dvh - 120px)}.g-play.is-full .g-bar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.g-play.is-full .g-stats{font-size:1rem}}
/* ---------- 2048: gold bars in a vault ---------- */
.gfx .t-board{background:linear-gradient(160deg,#13315c,#0B2545);border:3px solid #B8860B;box-shadow:inset 0 4px 14px rgba(0,0,0,.5)}
.gfx .t-cell{background:rgba(154,208,245,.12);border:2px solid rgba(255,213,79,.18);color:#0B2545;transition:transform .12s ease}
.gfx .t-cell[data-v]{background:linear-gradient(180deg,#fff,#e8eef5);border-color:#9AD0F5;box-shadow:0 3px 0 rgba(0,0,0,.3)}
.gfx .t-cell[data-v="4"]{background:linear-gradient(180deg,#e6f4ff,#9AD0F5)}
.gfx .t-cell[data-v="8"]{background:linear-gradient(180deg,#FFF3C4,#FFE08A);border-color:#D4A017}
.gfx .t-cell[data-v="16"]{background:linear-gradient(180deg,#FFE58A,#FFD54F);border-color:#B8860B}
.gfx .t-cell[data-v="32"]{background:linear-gradient(180deg,#FFD54F,#F5B800);border-color:#8a6500}
.gfx .t-cell[data-v="64"]{background:linear-gradient(180deg,#1D5F94,#0B2545);color:#FFD54F;border-color:#FFD54F}
.gfx .t-cell[data-v="128"],.gfx .t-cell[data-v="256"],.gfx .t-cell[data-v="512"]{background:linear-gradient(160deg,#FFF3B0 0%,#FFC72C 40%,#B8860B 100%);color:#0B2545;border-color:#fff;box-shadow:0 0 14px rgba(255,213,79,.6),0 3px 0 #8a6500}
.gfx .t-cell[data-v="1024"],.gfx .t-cell[data-v="2048"],.gfx .t-cell.big{background:linear-gradient(160deg,#fff 0%,#FFD54F 30%,#F5B800 60%,#fff6c4 100%);color:#0B2545;border-color:#fff;box-shadow:0 0 26px #FFD54F}
.gfx .t-cell.new{animation:t-new .22s cubic-bezier(.2,1.5,.4,1)}.gfx .t-cell.merged{animation:t-merge .26s ease-out}
@keyframes t-new{from{transform:scale(.3);opacity:0}}@keyframes t-merge{50%{transform:scale(1.18)}}
.gfx .t-board.slide-left .t-cell[data-v]{animation:t-sl .1s ease-out}.gfx .t-board.slide-right .t-cell[data-v]{animation:t-sr .1s ease-out}.gfx .t-board.slide-up .t-cell[data-v]{animation:t-su .1s ease-out}.gfx .t-board.slide-down .t-cell[data-v]{animation:t-sd .1s ease-out}
@keyframes t-sl{from{transform:translateX(12%)}}@keyframes t-sr{from{transform:translateX(-12%)}}@keyframes t-su{from{transform:translateY(12%)}}@keyframes t-sd{from{transform:translateY(-12%)}}
/* ---------- Blocks: gold bricks in a jungle temple ---------- */
.gfx .b-board{background:rgba(8,32,47,.85);border:4px solid #F5B800;border-radius:8px;overflow:hidden}
.gfx .b-cell{border-color:rgba(255,213,79,.15)}.gfx .b-cell.box{background:rgba(255,213,79,.06)}.gfx .b-cell.r3{border-right-color:#B8860B}.gfx .b-cell.b3{border-bottom-color:#B8860B}
.gfx .b-cell.on{background:linear-gradient(160deg,#FFF3B0,#FFC72C 45%,#B8860B);box-shadow:inset 0 0 0 2px rgba(255,255,255,.6),inset -3px -3px 0 rgba(0,0,0,.25)}
.gfx .b-cell.ok{background:rgba(154,208,245,.75);box-shadow:inset 0 0 0 3px #fff}.gfx .b-cell.bad{background:rgba(255,255,255,.25);box-shadow:inset 0 0 0 3px #a30000}
.gfx .b-cell.clr{animation:b-clr .45s ease-out}@keyframes b-clr{0%{background:#fff;box-shadow:0 0 18px #FFD54F}100%{background:transparent}}
.gfx .b-cell.placed{animation:b-place .25s ease-out}@keyframes b-place{50%{transform:scale(.85)}}
.gfx .b-piece{background:rgba(11,37,69,.85);border-color:#B8860B;min-width:100px;min-height:100px}
.gfx .b-piece i.f{background:linear-gradient(160deg,#FFF3B0,#FFC72C 45%,#B8860B);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
/* ---------- Memory: 3D flipping treasure cards ---------- */
.gfx .m-board{perspective:900px}
.gfx .m-card{position:relative;background:none;border:0;padding:0;color:inherit;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.3,1.3,.5,1)}
.gfx .m-card .mf,.gfx .m-card .mb{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}
.gfx .m-card .mb{background:url(../assets/games/em-coin.svg) center/46% no-repeat,repeating-linear-gradient(45deg,var(--gt-back) 0 10px,#13315c 10px 16px);border:4px solid #F5B800;box-shadow:0 4px 0 rgba(0,0,0,.35)}
.gfx .m-card .mf{background:linear-gradient(180deg,#fffdf3,#fff3c4);border:4px solid #B8860B;transform:rotateY(180deg)}
.gfx .m-card .mf img{width:62%;height:auto}.gfx .m-card .mf .lbl{font-size:clamp(13px,2.6vw,18px);font-weight:bold;color:#0B2545;margin-top:.2rem}
.gfx .m-card.up,.gfx .m-card.done{transform:rotateY(180deg)}
.gfx .m-card.done .mf{border-color:#FFD54F;box-shadow:0 0 0 3px #0B2545,0 0 20px #FFD54F}.gfx .m-card.done{opacity:1;animation:m-match .5s .3s}
@keyframes m-match{50%{transform:rotateY(180deg) scale(1.1)}}
.gfx .m-card:focus-visible .mb,.gfx .m-card:focus-visible .mf{outline:4px solid #fff;outline-offset:2px}
/* ---------- Word: treasure map ---------- */
.gfx .w-cell{background:#fffdf3;border-color:#8a6500;color:#0B2545;border-radius:8px;transition:transform .1s}
.gfx .w-cell.typed{animation:w-pop .12s}@keyframes w-pop{50%{transform:scale(1.12)}}
.gfx .w-cell.c{background:#1D5F94;border-color:#0B2545;color:#fff}.gfx .w-cell.p{background:#FFC72C;border-color:#B8860B;color:#0B2545}.gfx .w-cell.a{background:#5a6b80;border-color:#3d4a5c;color:#fff}
.gfx .w-cell.flip{animation:w-flip .5s ease both}@keyframes w-flip{0%{transform:rotateX(0)}49%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}
.gfx .w-row.shake{animation:g-shake .35s}.gfx .w-row.win .w-cell{animation:w-win .6s ease both}@keyframes w-win{40%{transform:translateY(-14px)}}
.gfx .w-keys button{background:#fffdf3;border-color:#8a6500;color:#0B2545;min-height:58px}.gfx .w-keys .c{background:#1D5F94;color:#fff}.gfx .w-keys .p{background:#FFC72C;color:#0B2545}.gfx .w-keys .a{background:#5a6b80;color:#fff}
/* ---------- Trivia: treasure island quiz ---------- */
.gfx .tv{background:rgba(11,37,69,.88);color:#fff;border:3px solid #F5B800}
.gfx .tv .q{color:#fff}.gfx .tv .ans .btn{background:#fffdf3;color:#0B2545;border-color:#B8860B;transition:transform .12s,background .2s}
.gfx .tv .ans .btn:hover:not(:disabled){transform:translateX(6px)}
.gfx .tv .ans .btn.right{background:#0a6b2d;color:#fff;border-color:#fff;animation:m-match .4s}.gfx .tv .ans .btn.wrong{background:#a30000;color:#fff;border-color:#fff;animation:g-shake .35s}
.tv-chest{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:.3rem 0 .6rem}.tv-chest span{width:26px;height:26px;border-radius:50%;border:2px dashed rgba(255,213,79,.5)}
.tv-chest span.got{border:0;background:url(../assets/games/em-coin.svg) center/contain no-repeat;animation:t-new .3s cubic-bezier(.2,1.5,.4,1)}
.tv-prog{height:10px;border-radius:5px;background:rgba(255,255,255,.2);overflow:hidden}.tv-prog i{display:block;height:100%;background:linear-gradient(90deg,#FFD54F,#F5B800);transition:width .4s ease}
/* ---------- Solitaire: Pharaoh's treasury ---------- */
.gfx .card-c{box-shadow:0 2px 4px rgba(0,0,0,.35);border-color:#8a6500;transition:transform .12s ease,box-shadow .12s}
.gfx .card-c.down{background:url(../assets/games/em-coin.svg) center/50% no-repeat,repeating-linear-gradient(45deg,#0B2545 0 8px,#13315c 8px 12px);border:3px solid #F5B800}
.gfx .card-c:not(.down):hover{transform:translateY(-3px)}
.gfx .sol .slot{border-color:rgba(255,213,79,.55)}
.gfx .sol .found::after{color:#FFD54F;opacity:.6}
.gfx .card-c.drag{transform:scale(1.06) rotate(2deg);box-shadow:0 18px 30px rgba(0,0,0,.5)}
@media(prefers-reduced-motion:reduce){.g-hero::after,.g-hero-emb,.g-chest-chip{animation:none}}
.gfx .b-tray{touch-action:none}
/* Full screen on phones: compact button row so the board fits */
.g-play.is-full .g-bar .btns{display:flex!important;flex-wrap:wrap;gap:.4rem;flex-direction:row}
.g-play.is-full .g-bar .btns .btn{width:auto!important;flex:1 1 auto;margin:0}
.g-play.is-full [data-act="challenge"],.g-play.is-full .g-share,.g-play.is-full #g-challenge{display:none!important}
.g-play.is-full .g-bar{border-radius:0}
.g-play.is-full{--maxh:calc(100dvh - 230px)}
@media(orientation:landscape) and (max-height:560px){
.g-play.is-full .g-bar{flex-wrap:nowrap;padding:.25rem .5rem}.g-play.is-full .g-bar .btns{flex-wrap:nowrap}
.g-play.is-full .g-bar .btns .btn{min-height:40px;font-size:.95rem;padding:.2rem .6rem}
.g-play.is-full .g-msg,.g-play.is-full .g-stage>p{font-size:1rem;margin:.2rem 0}
.g-play.is-full .g-stage{padding:.25rem}.g-play.is-full{--maxh:calc(100dvh - 100px)}}
@media(orientation:landscape) and (max-height:560px){
.g-play.is-full .g-stats{flex-wrap:nowrap;align-items:center;gap:.6rem}.g-play.is-full .g-bar{min-height:0}
.g-play.is-full .g-stage{display:flex;flex-direction:column;align-items:center}
.g-play.is-full{--maxh:calc(100dvh - 130px)}}
@media(orientation:landscape) and (max-height:560px){
.g-play.is-full .g-stage{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem}
.g-play.is-full .g-stage>p,.g-play.is-full .g-stage>.g-hud{flex-basis:100%;text-align:center}
.g-play.is-full .g-stage>.pad{flex-direction:column;flex-wrap:nowrap;width:auto;max-width:200px;gap:.35rem;margin:0}
.g-play.is-full .g-stage>.pad .btn{min-height:44px}
.g-play.is-full{--maxh:calc(100dvh - 120px)}}
@media(orientation:landscape) and (max-height:560px){
.g-play.is-full .g-stage>.pad.pad-row{display:grid;grid-template-columns:1fr 1fr;max-width:230px}
.g-play.is-full .g-stage>.pad.pad-row>label,.g-play.is-full .g-stage>.pad.pad-row>input{grid-column:1/-1;margin:0}
.g-play.is-full .g-stage>.pad .btn{min-height:44px;padding:.2rem .5rem}}
.g-play.is-full>.g-bar,.g-play.is-full>.g-msg{flex-shrink:0}
.g-play.is-full canvas.game-canvas{width:min(100%,calc(var(--ar) * var(--maxh)))!important;max-width:100%;height:auto!important}
@media(orientation:landscape) and (max-height:560px){.g-play.is-full .g-stats{flex-wrap:wrap}.g-play.is-full .g-bar .btns .btn{white-space:nowrap}}
/* Simple controls: these games are played by touching the board itself, so the extra button pads are hidden (keyboard still works). */
.g-stage[data-game="chicken"] .pad,.g-stage[data-game="g2048"] .pad,.g-stage[data-game="pong"] .pad,.g-stage[data-game="shooter"] .pad,.g-stage[data-game="bubbles"] .pad,.g-stage[data-game="pool"] .pad{display:none!important}
.g-stage canvas.game-canvas{touch-action:none}
/* ---------- 21 Blackjack: Golden Palace Card Room (navy velvet + gold) ---------- */
.g-hero-blackjack .g-hero-emb{background-image:url(../assets/games/em-blackjack.svg)}
.g-hero-blackjack{background-image:url(../assets/games/bg-lounge.svg),linear-gradient(160deg,#14104a,#0B2545)}
.gc-blackjack{background:url(../assets/games/bg-lounge.svg) 0 0/80px,#0B2545}.gc-blackjack::before{content:"";position:absolute;inset:12% 30%;background:url(../assets/games/em-blackjack.svg) center/contain no-repeat}
.bj-free{display:inline-block;color:#0B2545;background:#FFE58A;border-radius:8px;padding:.05rem .45rem}
.game-blackjack .g-stage{padding:.6rem}
.bj-table{position:relative;border-radius:26px;padding:clamp(.7rem,2.5vw,1.4rem);background:radial-gradient(ellipse at 50% 35%,#1c4a8a 0,#123a73 40%,#0B2545 100%);border:6px solid #F5B800;box-shadow:inset 0 0 0 3px #0B2545,inset 0 0 0 5px rgba(245,184,0,.45),0 10px 30px rgba(0,0,0,.35);color:#fff;display:flex;flex-direction:column;gap:.55rem;align-items:center;overflow:hidden}
.bj-table::before{content:"";position:absolute;inset:0;background:url(../assets/games/bg-lounge.svg) 0 0/140px;opacity:.35;pointer-events:none}
.bj-table>*{position:relative}
.bj-side{width:100%;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.bj-lbl{font-size:clamp(1.1rem,3.5vw,1.4rem);font-weight:700;color:#FFE58A;display:flex;gap:.6rem;align-items:center}
.bj-tot{min-width:2.4em;text-align:center;background:#F5B800;color:#0B2545;border-radius:999px;padding:.05rem .65rem;font-size:1.25em}.bj-tot:empty{display:none}
.bj-hand{display:flex;justify-content:center;min-height:calc(var(--cw) * 1.4);--cw:clamp(64px,17vw,112px);flex-wrap:nowrap}
.bj-card{width:var(--cw);height:calc(var(--cw) * 1.4);margin-left:calc(var(--cw) * -.28);position:relative;perspective:600px;animation:bjIn .42s cubic-bezier(.2,.8,.3,1.2) both}
.bj-card:first-child{margin-left:0}
.bj-f,.bj-b{position:absolute;inset:0;border-radius:10px;backface-visibility:hidden;transition:transform .45s}
.bj-f{background:#fff;border:2px solid #B8860B;box-shadow:0 4px 10px rgba(0,0,0,.35);display:block}
.bj-f b{position:absolute;left:8%;top:4%;font:800 calc(var(--cw) * .34)/1 Arial,sans-serif}.bj-f i{position:absolute;left:10%;top:32%;font-style:normal;font-size:calc(var(--cw) * .26)}
.bj-f em{position:absolute;right:8%;bottom:4%;font-style:normal;font-size:calc(var(--cw) * .5);line-height:1}
.red .bj-f{color:#C8102E}.blk .bj-f{color:#0B2545}
.bj-b{background:repeating-linear-gradient(45deg,#0B2545 0 6px,#16386b 6px 12px);border:3px solid #F5B800;transform:rotateY(180deg)}
.bj-card.down .bj-f{transform:rotateY(180deg)}.bj-card.down .bj-b{transform:rotateY(0)}
@keyframes bjIn{from{transform:translate(40vw,-30vh) rotate(25deg);opacity:0}to{transform:none;opacity:1}}
.bj-res{min-height:1.6em;margin:0;font-size:clamp(1.15rem,3.8vw,1.6rem);font-weight:800;text-align:center}
.bj-res.win,.bj-res.bj{color:#FFD54F;animation:gbump .5s}.bj-res.bj{font-size:clamp(1.4rem,5vw,2rem);text-shadow:0 0 18px rgba(255,213,79,.8)}.bj-res.lose{color:#cfe3ff}.bj-res.push{color:#fff}
.bj-chipbox{display:flex;gap:1.2rem;font-size:1.15rem;background:rgba(0,0,0,.25);border-radius:999px;padding:.25rem 1rem}.bj-chipbox strong{color:#FFD54F}
.bj-betrow{display:flex;gap:.8rem}.bj-betrow[hidden]{display:none}
.bj-chip{width:64px;height:64px;border-radius:50%;border:4px dashed #0B2545;background:radial-gradient(circle,#FFE58A 0 45%,#F5B800 46%);color:#0B2545;font:800 1.2rem Arial;cursor:pointer;box-shadow:0 0 0 3px #F5B800,0 4px 8px rgba(0,0,0,.4);touch-action:manipulation}
.bj-chip[aria-pressed="true"]{transform:translateY(-6px);box-shadow:0 0 0 3px #fff,0 0 18px #FFD54F}.bj-chip:disabled{opacity:.35}
.bj-ctl{width:100%;display:flex;justify-content:center}.bj-ctl .btn.big{min-height:64px;font-size:1.4rem;min-width:min(260px,100%)}
.bj-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;width:100%;max-width:560px}.bj-acts[hidden]{display:none}.bj-acts .btn.big{min-width:0;padding:.3rem}
.bj-acts .btn:disabled{opacity:.4}
.bj-fine{margin:0;font-size:1rem;color:#FFE58A}
@media(orientation:landscape) and (max-height:560px){.bj-hand{--cw:clamp(48px,12vh,72px)}.bj-table{gap:.3rem;padding:.5rem}.bj-chip{width:48px;height:48px;font-size:1rem}.bj-ctl .btn.big{min-height:50px;font-size:1.15rem}}
.g-play.is-full .bj-table{max-height:calc(100dvh - 110px)}
@media (prefers-reduced-motion:reduce){.bj-card{animation:none}.bj-f,.bj-b{transition:none}}
.g-play.is-full .t-board{width:min(100%,var(--maxh,80dvh))!important;max-width:min(100%,var(--maxh,80dvh));margin:0 auto}
.g-play.is-full .bj-hand{--cw:min(clamp(52px,17vw,112px),11dvh)}
.g-play.is-full .bj-table{max-height:none}

/* Compact full-screen bar for every game */
.g-play.is-full .g-bar{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;padding:.35rem .6rem}
.g-play.is-full .g-stats{flex:0 0 auto;flex-wrap:nowrap!important;gap:.8rem;font-size:1.05rem}
.g-play.is-full .g-bar .btns{flex:1 1 260px;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:.35rem}
.g-play.is-full .g-bar .btns .btn{min-height:44px;font-size:.98rem;padding:.2rem .4rem;white-space:nowrap}
.g-play.is-full .g-msg{font-size:1rem;line-height:1.3;padding:0 .5rem}
.bj-chipbox span{white-space:nowrap}.bj-chipbox{gap:.9rem;flex-wrap:wrap;justify-content:center}
.bj-acts .btn.big{font-size:clamp(1.1rem,4.6vw,1.45rem)}
@media(orientation:landscape) and (max-height:560px){
.bj-table{display:grid;grid-template-columns:1fr auto;grid-auto-flow:dense;column-gap:1rem;row-gap:.25rem;align-items:center}
.bj-side{grid-column:1}.bj-res,.bj-chipbox,.bj-betrow,.bj-ctl,.bj-fine{grid-column:2}
.bj-side:nth-of-type(1){grid-row:1/3}.bj-side:nth-of-type(2){grid-row:3/6}
.bj-acts{grid-template-columns:1fr;max-width:200px}.bj-ctl .btn.big{min-width:180px}
.bj-hand{--cw:min(clamp(46px,12vh,80px),17dvh)!important}.bj-lbl{font-size:1rem}.bj-res{font-size:1.05rem;max-width:240px}}
/* Short landscape phones in full screen: controls in a slim left column, the board gets the full height */
@media(orientation:landscape) and (max-height:560px){
.g-play.is-full{display:grid!important;grid-template-columns:minmax(150px,20%) 1fr;grid-template-rows:auto 1fr;align-items:start;column-gap:.4rem}
.g-play.is-full>.g-bar{grid-column:1;grid-row:1;flex-direction:column!important;align-items:stretch;flex-wrap:nowrap}
.g-play.is-full>.g-msg{grid-column:1;grid-row:2;font-size:.95rem}
.g-play.is-full>.g-stage{grid-column:2;grid-row:1/3;align-self:stretch}
.g-play.is-full>.g-result{grid-column:1/-1}
.g-play.is-full .g-stats{flex-direction:column;gap:0;font-size:1rem}
.g-play.is-full .g-bar .btns{grid-template-columns:1fr 1fr;flex:0 0 auto}
.g-play.is-full .g-stage>p{font-size:.95rem}
}
.g-play.is-full .bj-fine{font-size:.85rem}.g-play.is-full .bj-chipbox{font-size:1rem;padding:.15rem .8rem}
.game-blackjack .g-play.is-full>.g-msg{display:none}
@media(orientation:landscape) and (max-height:560px){.g-play.is-full .g-bar .btns{grid-template-columns:1fr}.g-play.is-full .g-bar .btns .btn{min-height:40px;font-size:.95rem}
.g-play.is-full .bj-table{padding:.35rem .6rem;row-gap:.15rem}.g-play.is-full .bj-acts .btn.big{min-height:46px}}
.game-blackjack .g-stage{background:#0B2545}
.g-play.is-full .g-bar .btns{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}@media(orientation:landscape) and (max-height:560px){.g-play.is-full .g-bar .btns{grid-template-columns:1fr}}
.g-play.is-full .bj-hand{--cw:min(clamp(52px,17vw,112px),8.5dvh)}.g-play.is-full .bj-table{gap:.3rem}

/* Treasure Vault gifts: welcome celebration + guest daily claim (navy and gold) */
.vault-celebrate{position:fixed;inset:0;z-index:9999;background:rgba(11,37,69,.88);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1rem}
.vault-celebrate .rain-coin{width:40px;height:40px;animation-name:rainfull}
@keyframes rainfull{to{transform:translateY(110vh) rotate(720deg);opacity:.3}}
.vc-box{position:relative;z-index:1;background:#0B2545;border:4px solid #FFC72C;border-radius:20px;padding:2rem 1.5rem;max-width:34rem;text-align:center;color:#fff;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.vc-box h2{color:#FFD54F;font-size:clamp(1.7rem,4.5vw,2.4rem);line-height:1.25;margin:.4rem 0 .8rem}
.vc-box p{font-size:1.3rem;line-height:1.5;margin:0 0 1.2rem}
.vc-coin{width:96px;height:96px;margin:0 auto;background:url(../assets/games/em-coin.svg) center/contain no-repeat}
.vault-next{font-size:1.15rem;color:#9AD0F5;min-height:1.4em}.vault-nudge{font-size:1.2rem;background:#0B2545;border:2px solid #FFC72C;border-radius:10px;padding:.6rem .9rem;display:inline-block;position:relative;z-index:1}.vault .vault-nudge a,.vault-nudge a{color:#FFD54F;font-weight:bold;text-decoration:underline;opacity:1}
.su-gift{background:#0B2545;color:#FFD54F;border:3px solid #FFC72C;border-radius:12px;padding:.8rem 1rem;font-size:1.25rem;font-weight:bold;line-height:1.4}
/* ---- Full-screen fit fixes (Trivia, Memory, Word, Blackjack small phones) ---- */
@media (max-width:700px) and (orientation:portrait){
.g-play.is-full .g-bar{padding:.3rem .45rem!important;gap:.3rem!important}.g-play.is-full .g-stats,.g-play.is-full .g-stats strong{font-size:1rem!important}
.g-play.is-full .g-bar .btns{grid-template-columns:repeat(4,minmax(0,1fr))!important;flex-basis:100%}
.g-play.is-full .g-bar .btns .btn{min-height:42px;font-size:.88rem;white-space:normal;line-height:1.1;padding:.15rem .25rem}
.g-play.is-full .g-stats{width:100%;justify-content:center}}
.g-play.is-full .m-board{width:min(100%,calc(var(--maxh,70dvh) * .78));max-width:none;gap:8px}
.g-play.is-full .m-board.c5{width:min(100%,calc(var(--maxh,70dvh) * .95))}
.g-play.is-full .w-row{grid-template-columns:repeat(5,min(clamp(44px,14vw,72px),calc((var(--maxh,70dvh) - 230px) / 6.4)));gap:6px}
.g-play.is-full .w-grid{gap:6px}.g-play.is-full .w-keys{margin-top:.5rem}.g-play.is-full .w-keys button{min-height:50px}
.g-play.is-full .tv .q{font-size:clamp(1.1rem,4.4vw,1.35rem);margin:.3rem 0}
.g-play.is-full .tv .ans{gap:.45rem}.g-play.is-full .tv .ans .btn{min-height:50px;font-size:1.05rem;padding:.35rem .7rem}
.g-play.is-full .tv-chest{margin:.2rem 0}.g-play.is-full .tv-chest span{width:20px;height:20px}
.g-play.is-full .tv{padding:.6rem .8rem}
@media (max-height:700px) and (orientation:portrait){
.g-play.is-full .bj-hand{--cw:min(clamp(46px,15vw,90px),9dvh)}
.g-play.is-full .bj-chipbox{font-size:.92rem;gap:.6rem;padding:.1rem .6rem}
.g-play.is-full .bj-chip{width:46px;height:46px;font-size:.95rem}
.g-play.is-full .bj-ctl .btn.big{min-height:50px;font-size:1.15rem}.g-play.is-full .bj-acts .btn.big{min-height:50px}
.g-play.is-full .bj-fine{font-size:.8rem}.g-play.is-full .bj-lbl{font-size:1rem}.g-play.is-full .bj-res{font-size:1.05rem;min-height:1.3em}
.g-play.is-full .bj-table{padding:.4rem;gap:.2rem;border-width:4px}.game-blackjack .g-play.is-full .g-stage{padding:.3rem}}
.g-play.is-full .bj-chipbox{flex-wrap:nowrap}
@media (max-width:360px){.g-play.is-full .bj-chipbox{font-size:.85rem}}
@media (max-height:700px) and (orientation:portrait){.g-play.is-full .bj-hand{--cw:min(clamp(44px,15vw,90px),7dvh)}.g-play.is-full .bj-side{gap:.1rem}.g-play.is-full .bj-betrow{gap:.5rem}}
@media (max-height:700px) and (orientation:portrait){.g-play.is-full .bj-res{min-height:0}.g-play.is-full .bj-res:empty{display:none}.g-play.is-full .bj-fine{margin-top:-.1rem}.game-blackjack .g-play.is-full .g-stage{padding:.15rem}}
.vault-streak{background:#0B2545;border:2px solid #FFC72C;border-radius:12px;padding:.7rem 1rem;margin:.6rem 0;font-size:1.15rem;color:#fff}
.vs-bar{height:16px;background:#13315c;border:1px solid #9AD0F5;border-radius:8px;overflow:hidden;margin:.4rem 0}.vs-bar span{display:block;height:100%;background:linear-gradient(90deg,#B8860B,#FFD54F)}
.vs-fine{font-size:1rem;color:#9AD0F5;margin:.2rem 0 0}
.vc-dia{background:none;font-size:80px;line-height:96px}.vc-dia::before{content:"\1F48E"}
.g-play.is-full .b-board{width:min(100%,calc(var(--maxh,70dvh) - 150px));max-width:none}
.g-play.is-full .b-tray{margin-top:.4rem;gap:.6rem}
@media (max-height:860px) and (orientation:portrait){.g-play.is-full .tv-prog{display:none}.g-play.is-full .tv .ans .btn{min-height:46px;font-size:1rem;padding:.25rem .6rem}.g-play.is-full .tv>p:first-child{margin:0;font-size:.95rem}}
@media (max-height:700px) and (orientation:portrait){.g-play.is-full .tv-chest{display:none}.g-play.is-full .tv .q{font-size:1.05rem}.g-play.is-full .tv .ans{gap:.3rem}}
@media (max-height:820px) and (orientation:landscape) and (min-height:561px){.g-play.is-full .bj-hand{--cw:min(90px,9dvh)}.g-play.is-full .bj-table{gap:.25rem;padding:.5rem}.g-play.is-full .bj-ctl .btn.big{min-height:54px}}
@media (max-height:820px) and (orientation:landscape) and (min-height:561px){.g-play.is-full .bj-hand{--cw:min(84px,8dvh)}.g-play.is-full .bj-ctl .btn.big,.g-play.is-full .bj-acts .btn.big{min-height:50px;font-size:1.2rem}.g-play.is-full .bj-chip{width:52px;height:52px}.g-play.is-full .bj-res{min-height:1.2em}}
@media (max-height:860px) and (orientation:portrait){.g-play.is-full .tv .ans .btn:disabled:not(.right):not(.wrong){display:none}.g-play.is-full .tv>.btn.big{min-height:50px;font-size:1.1rem;padding:.3rem .8rem;width:100%}.g-play.is-full .tv>p.q+p.q,.g-play.is-full .tv .ans~p.q{font-size:1rem}}
@media (orientation:landscape) and (max-height:560px){.g-play.is-full .m-board{width:min(100%,calc(var(--maxh,70dvh) * .72))}}

/* ===== Shared full screen + minimal HUD (Oct 25 2026). Spec: one corner icon (#g-fs.g-fsicon), slim glass strip,
   secondary buttons in a Menu sheet (#g-menu), pseudo full screen fallback for iPhone (html.g-immersive-on). ===== */
.g-play{position:relative}
.g-fsicon{position:absolute;top:4px;right:4px;z-index:30;width:48px;height:48px;min-height:48px;padding:6px;margin:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#FFD54F;-webkit-tap-highlight-color:transparent}
.g-fsicon::before{content:"";position:absolute;inset:6px;border-radius:12px;background:rgba(11,37,69,.62);border:1px solid rgba(245,184,0,.75);box-shadow:0 2px 10px rgba(2,12,30,.35),inset 0 1px 0 rgba(255,229,138,.25);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s,border-color .15s}
.g-fsicon svg{position:relative;width:20px;height:20px}
.g-fsicon:hover::before{background:rgba(11,37,69,.85);border-color:#FFD54F}
.g-fsicon:focus-visible{outline:none}.g-fsicon:focus-visible::before{outline:3px solid #F3E5AB;outline-offset:2px}
.g-play:not(.is-full) .g-fsicon{top:calc(var(--g-fs-top,0px) + 4px)}
.g-menubtn{display:none!important}
/* Premium glass HUD (normal page) */
.gfx .g-play .g-bar.card{background:linear-gradient(180deg,rgba(19,49,92,.92),rgba(11,37,69,.92));border:1px solid rgba(245,184,0,.7);box-shadow:0 6px 18px rgba(2,12,30,.25),inset 0 1px 0 rgba(255,229,138,.2);color:#F3E5AB}
.gfx .g-play .g-stats>span{background:rgba(2,20,45,.45);border:1px solid rgba(245,184,0,.45);border-radius:999px;padding:.05rem .7rem;color:#F3E5AB;white-space:nowrap}
.gfx .g-play .g-stats>span[hidden],.gfx .g-play .g-stats>span.g-seedl[hidden]{display:none}
.gfx .g-play .g-stats strong{color:#FFD54F}
/* ---- Full screen layout: strip on top, board fills the rest ---- */
html.g-fs-on,html.g-fs-on body{overflow:hidden!important}
html.g-fs-on .btt,html.g-fs-on header.site,html.g-fs-on footer.site,html.g-fs-on .ai-fab,html.g-fs-on #ai-fab{display:none!important}
.g-play.is-full{display:flex!important;flex-direction:column!important;gap:.3rem!important;padding:max(.3rem,env(safe-area-inset-top)) max(.3rem,env(safe-area-inset-right)) max(.3rem,env(safe-area-inset-bottom)) max(.3rem,env(safe-area-inset-left))!important;overflow:hidden auto}
.g-play.is-full>.g-bar{order:-1;position:relative;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center;gap:.4rem;margin:0!important;min-height:48px;padding:.15rem 56px .15rem .4rem!important;border-radius:14px!important;background:rgba(11,37,69,.6)!important;border:1px solid rgba(245,184,0,.55)!important;box-shadow:0 4px 14px rgba(2,12,30,.3),inset 0 1px 0 rgba(255,229,138,.18)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#F3E5AB}
.g-play.is-full .g-stats{display:flex!important;flex:1 1 auto!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:.35rem!important;overflow:hidden;font-size:15px!important;line-height:1.2;min-width:0}
.g-play.is-full .g-stats>span{padding:.15rem .6rem;font-size:15px}.g-play.is-full .g-stats strong{font-size:16px!important}
.g-play.is-full .g-seedl{display:none!important}
.g-play.is-full .g-menubtn{display:inline-flex!important;align-items:center;gap:.3rem;flex:0 0 auto;min-height:48px!important;padding:.1rem .75rem!important;margin:0!important;font-size:15px!important;border-radius:999px!important;background:rgba(2,20,45,.55)!important;color:#FFD54F!important;border:1px solid rgba(245,184,0,.7)!important;box-shadow:none!important;width:auto!important}
.g-play.is-full .g-bar .btns{display:flex!important;flex:0 0 auto!important;flex-wrap:nowrap!important;gap:.35rem;margin:0;grid-template-columns:none!important}
.g-play.is-full .g-bar .btns>*{display:none!important}
.g-play.is-full .g-bar .btns>#g-pause{display:inline-flex!important;align-items:center;min-height:48px!important;padding:.1rem .75rem!important;font-size:15px!important;border-radius:999px!important;background:rgba(2,20,45,.55)!important;color:#FFD54F!important;border:1px solid rgba(245,184,0,.7)!important;box-shadow:none!important;flex:0 0 auto!important;width:auto!important}
.g-play.is-full.g-menu-open .g-bar .btns{position:absolute;top:calc(100% + 6px);right:52px;z-index:40;flex-direction:column!important;align-items:stretch;min-width:210px;max-width:calc(100vw - 70px);max-height:70dvh;overflow:auto;padding:.5rem;border-radius:16px;background:rgba(11,37,69,.94);border:1px solid rgba(245,184,0,.75);box-shadow:0 14px 34px rgba(2,12,30,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.g-play.is-full.g-menu-open .g-bar .btns>*{display:flex!important;align-items:center;justify-content:flex-start;min-height:48px!important;font-size:16px!important;padding:.3rem .9rem!important;border-radius:12px!important;margin:0!important;width:100%!important;white-space:nowrap}
.g-play.is-full.g-menu-open .g-bar .btns>#g-challenge{display:none!important}
.g-play.is-full .g-fsicon{position:absolute;top:max(.3rem,env(safe-area-inset-top));right:max(.3rem,env(safe-area-inset-right))}
.g-play.is-full>.g-msg{margin:0!important;padding:0 .4rem!important;font-size:15px!important;line-height:1.3;text-align:center;flex:0 0 auto}
.g-play.is-full>.g-msg:empty{display:none}
.g-play.is-full>.g-stage{flex:1 1 auto!important;min-height:0;padding:.25rem!important;border-width:1px!important;border-radius:14px}
.g-play.is-full canvas.game-canvas{width:min(100%,calc(var(--ar) * var(--maxh)))!important;height:auto!important;max-height:var(--maxh)}
.g-play.is-full>.g-result:not([hidden]){flex:0 0 auto}
@media(orientation:landscape) and (max-height:560px){
.g-play.is-full>.g-bar,.g-play.is-full>.g-msg,.g-play.is-full>.g-stage,.g-play.is-full>.g-result{grid-column:auto!important;grid-row:auto!important}
.g-play.is-full>.g-bar{min-height:44px}
}
.gfx .g-play:not(.is-full)>.g-bar{padding-right:56px}
@media(max-width:520px){.g-play.is-full .g-mlbl{display:none}.g-play.is-full .g-menubtn{padding:.1rem .9rem!important}.g-play.is-full .g-stats>span{padding:.15rem .45rem}.g-play.is-full>.g-bar{gap:.3rem;padding-left:.3rem!important}}
@media(orientation:landscape) and (max-height:560px){.g-play.is-full>.g-stage:is([data-game="solitaire"],[data-game="word"],[data-game="trivia"]){display:block!important}}
/* Short landscape phones: the slim HUD becomes a narrow glass rail on the left so the board gets the full height */
@media(orientation:landscape) and (max-height:560px){
.g-play.is-full{display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;column-gap:.35rem!important;row-gap:.3rem!important}
.g-play.is-full>.g-bar{grid-column:1!important;grid-row:1/3!important;flex-direction:column!important;align-items:stretch;align-self:start;width:132px;padding:.35rem!important;gap:.35rem}
.g-play.is-full .g-stats{flex-direction:column!important;flex:0 0 auto!important;gap:.3rem!important}
.g-play.is-full .g-stats>span{text-align:center}
.g-play.is-full .g-bar .btns{flex-direction:column!important}
.g-play.is-full .g-menubtn,.g-play.is-full .g-bar .btns>#g-pause{justify-content:center;width:100%!important}
.g-play.is-full .g-mlbl{display:inline!important}
.g-play.is-full.g-menu-open .g-bar .btns{top:0;left:calc(100% + 6px);right:auto;max-height:calc(100dvh - 20px)}
.g-play.is-full>.g-msg{grid-column:1/-1!important;grid-row:3!important}
.g-play.is-full>.g-stage{grid-column:2!important;grid-row:1/3!important}
.g-play.is-full>.g-result{grid-column:1/-1!important;grid-row:auto!important}
}
@media(orientation:landscape) and (max-height:560px){.g-play.is-full>.g-msg{grid-column:1!important;grid-row:2!important;width:132px;align-self:start;font-size:14px!important;text-align:left}}
.g-play.is-full .b-board{width:min(100%,var(--maxh,60dvh))!important}
@media(max-width:520px){.g-play.is-full .g-bar .btns>#g-pause{padding:.1rem .6rem!important}.g-play.is-full .g-menubtn{padding:.1rem .75rem!important}.g-play.is-full .g-stats{gap:.25rem!important}}
.g-play.is-full>.g-bar{z-index:35}
.g-play.is-full>.g-fsicon{z-index:45}
@media not all and (orientation:landscape) and (max-height:560px){.g-play.is-full>.g-stage:has(>canvas.game-canvas):not([data-game="chicken"]){display:flex!important;flex-direction:column;align-items:center;justify-content:center}}
/* Games that draw their own pause button on the canvas: no second Pause in the strip (still in the Menu sheet) */
.g-play.is-full:not(.g-menu-open):has(.rr-pause,.gl-pause,.pf-pause,.sr-pausebtn,.au-pause,.g-own-pause) .g-bar .btns>#g-pause{display:none!important}
/* Normal page: stats as one wrapping row of small pills instead of stacked boxes */
.gfx .g-play:not(.is-full) .g-stats{display:flex!important;flex-wrap:wrap;gap:.35rem .4rem!important;align-items:center}
.gfx .g-play:not(.is-full) .g-stats>span{font-size:1rem;padding:.1rem .65rem}.gfx .g-play:not(.is-full) .g-stats strong{font-size:1.1rem!important}
.gfx .g-play:not(.is-full) .g-stats>.g-seedl{font-size:.9rem;opacity:.9}
.g-play.is-full .w-row{grid-template-columns:repeat(5,min(clamp(44px,14vw,80px),calc((var(--maxh,70dvh) - 36px) / 6)))}
/* Second pass (Oct 25 2026): pool status is a slim glass caption in full screen */
.g-play.is-full .g-stage>.pl-status{font-size:15px!important;line-height:1.3;margin:0 auto .35rem;padding:.3rem .8rem;max-width:min(100%,640px);background:rgba(11,37,69,.62);border:1px solid rgba(245,184,0,.45);border-radius:999px;text-align:center;flex-shrink:0}
/* Second pass: blackjack table fills the stage; 2048 board centred in tall stages */
.g-play.is-full .g-stage[data-game="blackjack"]{display:flex;flex-direction:column}
.g-play.is-full .g-stage[data-game="blackjack"]>.bj-table{width:100%!important;max-width:none!important;flex:1 1 auto;min-height:0;align-content:center;justify-content:center}
.g-play.is-full .g-stage[data-game="g2048"]{display:flex;flex-direction:column;justify-content:center;align-items:center}
@media (max-width:520px){.g-bar .g-stats{gap:.3rem}.g-bar .g-stats>span{padding:.15rem .55rem}}
/* Second pass: brain games (pg-brain) keep their bar-below layout on the page, but in full screen use the same top strip as every other game so the Menu sheet opens on screen */
.pg-brain .g-play.is-full>.g-bar{order:-1!important;margin-top:0!important}
@media(orientation:landscape) and (max-height:560px){
.pg-brain .bk-panel{justify-content:safe center;overflow-y:auto;gap:.3rem;padding:.6rem 1rem}
.pg-brain .bk-panel .bk-title{font-size:clamp(1.5rem,8dvh,2.2rem);margin:0;line-height:1.1}
.pg-brain .bk-panel .bk-sub,.pg-brain .bk-panel .bk-tip,.pg-brain .bk-panel .bk-kicker{margin:0;font-size:16px;line-height:1.35}
.pg-brain .bk-panel .bk-sub{max-width:36rem}}
.pg-depths .g-play.is-full>.g-bar{order:-1!important;margin-top:0!important}
.g-play.is-full .g-stats{justify-content:safe center}
.pg-brain .bk-panel{justify-content:safe center;overflow-y:auto}
/* ===== Sound toggle (Oct 25 2026): small speaker icon beside the full screen icon, same 48px tap area, navy/gold ===== */
.g-play .g-sndicon,.g-play.is-full .g-sndicon{right:52px}
.g-play.is-full .g-sndicon{right:calc(max(.3rem,env(safe-area-inset-right)) + 48px)}
.g-sndicon[aria-pressed="false"]{color:#C9B37A}
.g-sndicon[aria-pressed="false"]::before{background:rgba(11,37,69,.45);border-color:rgba(245,184,0,.45)}
.g-musicbtn[disabled]{opacity:.55;cursor:not-allowed}
.g-sndicon.g-snd-solo{top:4px;right:4px;left:auto}
/* Icon corner fix (Oct 25 2026): sound + full screen icons sit side by side in the top-right; the strip reserves room for both so nothing overlaps */
.g-play.is-full>.g-bar{padding-right:calc(max(.3rem,env(safe-area-inset-right)) + 100px)!important}
.g-play.is-full.g-menu-open .g-bar .btns{right:104px}
.gfx .g-play:not(.is-full)>.g-bar{padding-right:106px}
.g-play:has(>.g-sndicon[hidden],>.g-sndicon.g-off) >.g-bar{padding-right:56px}
@media(orientation:landscape) and (max-height:560px){.g-play.is-full>.g-bar{padding-right:.35rem!important}.g-play.is-full.g-menu-open .g-bar .btns{right:auto}}
.pg-depths .g-play>.g-bar{padding-right:56px}.pg-depths .g-play.is-full>.g-bar{padding-right:calc(max(.3rem,env(safe-area-inset-right)) + 52px)!important}
/* Short HUD labels (Oct 25 2026): on narrow full screen strips and the landscape rail the label shrinks to a short symbol so the number always shows */
.g-lbl::after{content:none}
@media(max-width:520px){.g-play.is-full .g-stats .g-lbl{font-size:0!important;letter-spacing:0}.g-play.is-full .g-stats .g-lbl::after{content:attr(data-s) "\00a0";font-size:14px;opacity:.85}}
@media(orientation:landscape) and (max-height:560px){.g-play.is-full .g-stats .g-lbl{font-size:0!important}.g-play.is-full .g-stats .g-lbl::after{content:attr(data-s) "\00a0";font-size:14px;opacity:.85}}
.g-play.is-full .g-stats>span{flex:0 0 auto}
/* Narrow full screen strip: Pause becomes a round icon (text stays for screen readers); very narrow phones stack the stat pills */
@media(max-width:520px){.g-play.is-full .g-bar .btns>#g-pause{font-size:0!important;width:48px!important;min-width:48px;padding:0!important;justify-content:center}
.g-play.is-full .g-bar .btns>#g-pause::before{content:"\23F8\FE0E";font-size:18px;line-height:1}
.g-play.is-full .g-bar .btns>#g-pause[aria-pressed="true"]::before{content:"\25B6\FE0E"}
.g-play.is-full .g-stats>span{padding:.12rem .45rem!important}}
@media(max-width:430px){.g-play.is-full .g-stats{flex-direction:column!important;align-items:flex-start;gap:2px!important;justify-content:center!important}
.g-play.is-full .g-stats>span{font-size:13px!important;padding:0 .4rem!important;line-height:1.25}.g-play.is-full .g-stats strong{font-size:14px!important}}
@media(max-width:520px){.g-play.is-full .g-bar .btns>#g-pause::before{content:"";display:block;width:14px;height:16px;background:linear-gradient(90deg,#FFD54F 0 35%,transparent 35% 65%,#FFD54F 65%)}
.g-play.is-full .g-bar .btns>#g-pause[aria-pressed="true"]::before{content:"";background:#FFD54F;clip-path:polygon(10% 0,100% 50%,10% 100%)}}
@media(max-width:430px){.g-play.is-full .g-stats{overflow:visible!important}}
/* ---------- Word, Oct 25 2026: night treasure map (navy, champagne letters, gold accents; no cream paper) ---------- */
.game-word .g-stage{background:linear-gradient(160deg,rgba(11,37,69,.93),rgba(8,26,52,.96)),url(../assets/games/bg-map.svg) 0 0/160px,#0B2545!important;color:#F3E5AB}
.game-word .g-stage .w-msg,.game-word .g-stage p{color:#F3E5AB}
.gfx .w-cell{background:#10305A;border-color:rgba(232,200,120,.6);color:#F3E5AB;box-shadow:inset 0 1px 0 rgba(255,229,138,.12)}
.gfx .w-cell.typed,.gfx .w-cell.filled{border-color:#FFD54F}
.gfx .w-cell.c{background:#2F7FC9;border-color:#BFE0FF;color:#fff}
.gfx .w-cell.p{background:#FFC72C;border-color:#FFE9A8;color:#0B2545}
.gfx .w-cell.a{background:#3B4A5E;border-color:#56657A;color:#D6DCE4}
.gfx .w-keys button{background:#173D6B;border-color:rgba(245,184,0,.75);color:#F3E5AB;box-shadow:0 2px 0 rgba(2,12,30,.45)}
.gfx .w-keys button:hover{background:#1E4C83}
.gfx .w-keys .c{background:#2F7FC9;color:#fff;border-color:#BFE0FF}.gfx .w-keys .p{background:#FFC72C;color:#0B2545}.gfx .w-keys .a{background:#2A3748;color:#9AA6B5;border-color:#3d4a5c}
/* Pool cue picker dialog (js/pool-picker.js) */
dialog.pl-cue-dlg{background:linear-gradient(160deg,#0f2f57,#0B2545)!important;color:#F3E5AB!important;border:3px solid #D4A017;border-radius:16px;max-width:min(560px,94vw);padding:1.2rem 1.3rem}
dialog.pl-cue-dlg::backdrop{background:rgba(6,18,36,.7)}
.pl-cue-dlg h2,.pl-cue-dlg h3{color:#F3E5AB!important;margin:.2rem 0 .5rem}
.pl-cue-dlg .small{color:#E8DDB8!important}
.pl-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;margin-bottom:.6rem}
.pl-opt{display:flex;flex-direction:column;align-items:center;gap:.35rem;background:#123a68;color:#F3E5AB;border:2px solid rgba(212,160,23,.4);border-radius:12px;padding:.5rem;min-height:44px;cursor:pointer;font:inherit}
.pl-opt canvas{max-width:100%;height:auto}
.pl-opt.on{border-color:#FFC72C;box-shadow:0 0 0 2px rgba(255,199,44,.35)}
.pl-opt:focus-visible{outline:3px solid #FFC72C;outline-offset:2px}
