.tgg{--g:#72ff2f;--blue:#17aee6;--dark:#031019;--panel:#08283a;--line:#16617e;font-family:Inter,Segoe UI,Arial,sans-serif;background:linear-gradient(145deg,#031019,#071923);color:#f7fbfd;border:1px solid #126080;border-radius:20px;overflow:hidden;box-shadow:0 25px 70px #07140b24}.tgg *{box-sizing:border-box}.tgg button{font:inherit}.tgg-head{min-height:76px;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;padding:10px 18px;background:#04121e;border-bottom:2px solid #1182ae}.tgg-brand{display:flex;align-items:center;gap:11px}.tgg-chip{width:43px;height:43px;display:grid;place-items:center;border:3px solid var(--g);border-radius:9px;color:var(--g);font-size:27px;box-shadow:0 0 22px #72ff2f33}.tgg-brand strong{font-size:22px}.tgg-brand small{display:block;letter-spacing:4px;font-size:9px}.tgg-tagline{text-align:center}.tgg-tagline strong{display:block;color:var(--g);font-size:15px}.tgg-tagline span{color:#adbdc7;font-size:10px}.tgg-rewards-btn{justify-self:end;border:1px solid #2f7d9a;background:#0a2638;color:#fff;border-radius:999px;padding:10px 14px;cursor:pointer}.tgg-win-count{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:5px;border-radius:50%;background:var(--g);color:#07110b}.tgg-home{padding:28px}.tgg-intro{text-align:center;max-width:720px;margin:0 auto 24px}.tgg-intro>span{color:var(--g);font-weight:900;font-size:11px;letter-spacing:.14em}.tgg-intro h2{font-size:38px;margin:8px 0}.tgg-intro p{color:#b3c5ce;line-height:1.6}.tgg-game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1200px;margin:auto}.tgg-game-card{min-height:260px;border:1px solid #1b6685;border-radius:18px;background:linear-gradient(150deg,#0a3045,#071c2a);color:#fff;padding:20px;cursor:pointer;text-align:left;box-shadow:0 14px 35px #0003;transition:.18s}.tgg-game-card:not(.coming):hover{transform:translateY(-4px);border-color:var(--g);box-shadow:0 16px 40px #0005,0 0 18px #72ff2f22}.tgg-game-card strong,.tgg-game-card span,.tgg-game-card em{display:block}.tgg-game-card strong{font-size:18px;margin-top:14px}.tgg-game-card span{font-size:11px;color:#a9bdc8;margin-top:5px}.tgg-game-card em{margin-top:18px;color:var(--g);font-style:normal;font-weight:900;font-size:11px}.tgg-game-card.coming{opacity:.48;cursor:default}.tgg-card-fan{height:115px;display:flex;align-items:center;justify-content:center}.tgg-card-fan i{width:66px;height:94px;display:grid;place-items:center;background:#fff;color:#111;border-radius:8px;border:2px solid #9aa5aa;font-size:35px;font-style:normal;box-shadow:0 7px 20px #0006}.tgg-card-fan i:nth-child(1){transform:rotate(-13deg) translateX(18px)}.tgg-card-fan i:nth-child(2){color:#d51e34;z-index:2}.tgg-card-fan i:nth-child(3){transform:rotate(13deg) translateX(-18px)}.tgg-memory-icon{display:grid;grid-template-columns:55px 55px;gap:6px;justify-content:center}.tgg-memory-icon i{height:55px;display:grid;place-items:center;border-radius:8px;background:#07141c;border:2px solid var(--g);font-style:normal;color:var(--g);font-size:22px}.tgg-coming-num{height:115px;display:grid;place-items:center;color:var(--g);font-size:44px;font-weight:1000}.tgg-game-view{padding:14px}.tgg-gamebar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:10px}.tgg-gamebar>strong{text-align:center;font-size:20px}.tgg-gamebar>div{text-align:right}.tgg-gamebar button{border:1px solid #236985;border-radius:8px;background:#0c2b3c;color:#fff;padding:9px 12px;cursor:pointer}.tgg-game-host{min-height:590px;border:1px solid #175979;border-radius:14px;background:#0a4a2c;padding:14px;overflow:auto}.tgg-rewards{position:fixed;inset:0;background:#000b;z-index:999999;display:grid;place-items:center;padding:18px}.tgg-rewards[hidden],.tgg-toast[hidden],.tgg-game-view[hidden]{display:none}.tgg-rewards-card{position:relative;width:min(560px,96vw);max-height:90vh;overflow:auto;background:#071c29;border:1px solid #2680a3;border-radius:18px;padding:24px}.tgg-close-rewards{position:absolute;right:13px;top:9px;border:0;background:transparent;color:#fff;font-size:30px;cursor:pointer}.tgg-rewards-card h2{margin:0;color:var(--g)}.tgg-progress-summary{margin:18px 0;padding:14px;border-radius:10px;background:#0b293b}.tgg-tier-list{display:grid;gap:8px}.tgg-tier{padding:12px;border:1px solid #245d76;border-radius:9px}.tgg-tier.done{border-color:var(--g)}.tgg-tier b{color:var(--g)}.tgg-earned h3{margin-bottom:8px}.tgg-coupon{padding:12px;margin:7px 0;border:1px dashed var(--g);border-radius:9px;background:#06150f}.tgg-coupon code{font-size:18px;color:#fff}.tgg-toast{position:fixed;z-index:1000000;right:18px;bottom:18px;max-width:350px;padding:15px 18px;border-radius:11px;background:#0d3b26;border:1px solid var(--g);color:#fff;box-shadow:0 15px 45px #0008}.tgg-solitaire{min-width:780px;max-width:1150px;margin:auto}.sol-top{display:grid;grid-template-columns:86px 86px 1fr repeat(4,86px);gap:12px;align-items:start;margin-bottom:22px}.sol-tableau{display:grid;grid-template-columns:repeat(7,86px);gap:14px;justify-content:center}.sol-pile{position:relative;width:86px;min-height:118px;border:1px dashed #ffffff55;border-radius:8px}.sol-stock,.sol-waste,.sol-foundation{width:86px;height:118px}.sol-gap{min-width:30px}.sol-card{position:absolute;width:86px;height:118px;border-radius:8px;border:1px solid #939da3;background:#fff;color:#111;padding:6px;font-weight:900;box-shadow:0 3px 10px #0007;cursor:pointer;user-select:none}.sol-card.red{color:#cf1734}.sol-card.back{background:repeating-linear-gradient(45deg,#112d1b 0 8px,#69d72d 8px 10px,#153522 10px 17px);border:4px solid #eef5ee;color:#fff;display:grid;place-items:center}.sol-card.back:after{content:'TG';display:grid;place-items:center;width:42px;height:42px;margin:auto;border:2px solid var(--g);border-radius:9px;background:#06140ce8;color:#fff;font-size:15px;line-height:1;font-weight:1000;letter-spacing:0;box-shadow:inset 0 0 0 3px #0d2a17,0 0 0 1px #001}.sol-card.selected{outline:4px solid #ffda47;transform:translateY(-4px)}.sol-rank{font-size:20px;line-height:1}.sol-suit{font-size:24px;line-height:1}.sol-center{display:grid;place-items:center;height:75px;font-size:32px}.sol-foundation-label{position:absolute;inset:0;display:grid;place-items:center;color:#ffffff40;font-size:36px}.sol-help{color:#e5f5e8;font-size:11px;margin:10px auto 0;max-width:900px;text-align:center}.tgg-memory{max-width:760px;margin:auto}.memory-stats{display:flex;justify-content:center;gap:25px;margin-bottom:15px;font-weight:800}.memory-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.mem-card{aspect-ratio:1/1;border:0;border-radius:11px;background:#0d2130;color:#12202a;font-size:30px;cursor:pointer;box-shadow:inset 0 0 0 2px #56e925;position:relative;display:grid;place-items:center}.mem-card:before{content:'TG';color:var(--g);font-size:11px;font-weight:1000;letter-spacing:.1em;position:absolute;inset:0;display:grid;place-items:center}.mem-card.flipped,.mem-card.matched{background:#f4f7f8;color:#12202a;box-shadow:none}.mem-card.flipped:before,.mem-card.matched:before{display:none}.mem-card.matched{background:#caffb2}.memory-message{text-align:center;margin-top:18px;font-size:18px;color:#fff;font-weight:800}@media(max-width:1100px){.tgg-game-grid{grid-template-columns:repeat(2,1fr)}.tgg-head{grid-template-columns:1fr auto}.tgg-tagline{display:none}}@media(max-width:720px){.tgg{border-radius:10px}.tgg-home{padding:16px}.tgg-game-grid{grid-template-columns:1fr 1fr;gap:10px}.tgg-game-card{min-height:220px;padding:14px}.tgg-gamebar{grid-template-columns:1fr 1fr}.tgg-gamebar>strong{grid-column:1/-1;grid-row:1;text-align:center;margin-bottom:8px}.tgg-game-host{padding:8px;min-height:500px}.tgg-solitaire{transform-origin:top left}.memory-grid{grid-template-columns:repeat(4,1fr)}.tgg-head{padding:8px 10px}.tgg-brand strong{font-size:17px}.tgg-chip{width:35px;height:35px;font-size:20px}.tgg-rewards-btn{font-size:11px}}

.mem-card .mem-face{display:none;line-height:1}.mem-card.flipped .mem-face,.mem-card.matched .mem-face{display:block}

.tgg-gamebar .tgg-back{justify-self:start;width:auto!important;min-width:0!important;max-width:max-content;display:inline-flex;align-items:center;white-space:nowrap;padding:8px 12px}
@media(max-width:640px){.tgg-gamebar{grid-template-columns:auto 1fr auto!important;gap:8px}.tgg-gamebar>strong{grid-column:2!important;grid-row:1!important;margin:0!important;font-size:16px}.tgg-gamebar>div{grid-column:3;grid-row:1}.tgg-gamebar .tgg-back{grid-column:1;grid-row:1}}


/* v0.2.0 mobile width safety + new game layouts */
.tgg{width:100%;max-width:100%;min-width:0;overflow:hidden}
.tgg-head,.tgg-home,.tgg-game-view,.tgg-game-host,.tgg-game-grid,.tgg-game-card{min-width:0;max-width:100%}
.tgg-home,.tgg-game-view{width:100%;overflow:hidden}
.tgg-game-host{width:100%;overflow:hidden}
.tgg-game-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.tgg-game-card{width:100%;overflow:hidden}
.tgg-game-card strong,.tgg-game-card span{overflow-wrap:anywhere}
.tgg-rewards-btn{max-width:100%;white-space:nowrap}
.tgg-gamebar{min-width:0;width:100%}
.tgg-gamebar>*{min-width:0}
.tgg-gamebar>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tgg-gamebar>div button{white-space:nowrap}

/* 2048 */
.tgg-2048{width:min(560px,100%);margin:auto}
.g2048-stats{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;font-weight:800}
.g2048-board{width:100%;aspect-ratio:1/1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px;border-radius:12px;background:#0a2a36;touch-action:none}
.g2048-tile{display:grid;place-items:center;border-radius:9px;background:#153647;color:#fff;font-size:clamp(20px,7vw,42px);font-weight:1000}
.g2048-tile.v2{background:#dfe8d9;color:#213128}.g2048-tile.v4{background:#cfe9ae;color:#213128}.g2048-tile.v8{background:#9ee86d}.g2048-tile.v16{background:#7edc50}.g2048-tile.v32{background:#5ec43d}.g2048-tile.v64{background:#46a92d}.g2048-tile.v128,.g2048-tile.v256,.g2048-tile.v512,.g2048-tile.v1024,.g2048-tile.v2048{background:#72ff2f;color:#07110b}
.g2048-help{text-align:center;margin-top:10px;font-size:12px}

/* Tic Tac Toe */
.tgg-ttt{width:min(520px,100%);margin:auto;text-align:center}
.ttt-status{margin-bottom:12px;font-weight:800}.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;width:min(430px,100%);margin:auto}
.ttt-board button{aspect-ratio:1/1;border:1px solid #3b7087;border-radius:12px;background:#0b2637;color:#fff;font-size:clamp(36px,12vw,72px);font-weight:1000}
.ttt-board button.x{color:#72ff2f}.ttt-board button.o{color:#42bfff}.ttt-note{margin-top:12px;font-size:12px}

/* Connect Four */





/* Snake */
.tgg-snake{width:min(650px,100%);margin:auto;text-align:center}.snake-stats{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:12px;font-weight:800}
.tgg-snake canvas{display:block;width:min(100%,500px);height:auto;aspect-ratio:1/1;margin:auto;border:1px solid #1f704f;border-radius:10px;background:#061b13}
.snake-controls{margin:10px auto 0;display:grid;justify-content:center;gap:5px}.snake-controls>button,.snake-controls div button{width:54px;height:42px;border:1px solid #2b6d89;border-radius:8px;background:#0b293b;color:#fff;font-weight:900}.snake-controls div{display:flex;gap:5px}.snake-status{margin-top:9px;font-size:12px}

/* Launcher icons */
.tgg-ttt-icon,.tgg-memory-icon{display:grid;grid-template-columns:1fr 1fr;gap:5px;height:120px;margin-bottom:16px}
.tgg-ttt-icon i{display:grid;place-items:center;border:2px solid var(--g);border-radius:10px;background:#06161f;font-style:normal;font-size:34px;color:#fff}
.tgg-connect-icon,.tgg-snake-icon{height:120px;display:grid;place-items:center;margin-bottom:16px;border-radius:12px;background:#06161f;border:2px solid #2a7895;font-size:28px;color:var(--g)}

@media(max-width:900px){
 .tgg-game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
 .tgg{width:100%;max-width:100%;border-left:0;border-right:0;border-radius:0}
 .tgg-head{grid-template-columns:minmax(0,1fr) auto;padding:8px;gap:8px}
 .tgg-brand{min-width:0}.tgg-brand strong{font-size:15px}.tgg-brand small{font-size:8px}
 .tgg-rewards-btn{padding:8px 9px;font-size:10px}
 .tgg-home{padding:10px}
 .tgg-intro h2{font-size:24px}
 .tgg-game-grid{grid-template-columns:1fr;gap:10px}
 .tgg-game-card{min-height:0;padding:12px}
 .tgg-card-fan,.tgg-memory-icon,.tgg-ttt-icon,.tgg-connect-icon,.tgg-snake-icon{height:90px;margin-bottom:10px}
 .tgg-game-view{padding:8px}
 .tgg-gamebar{grid-template-columns:auto minmax(0,1fr) auto!important;gap:6px}
 .tgg-gamebar>strong{font-size:14px}
 .tgg-gamebar button{padding:7px 8px;font-size:11px}
 .tgg-game-host{padding:6px;min-height:420px}
 .memory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .mem-card{font-size:24px}
 .tgg-toast{left:8px;right:8px;bottom:8px;max-width:none}
 .tgg-rewards{padding:8px}.tgg-rewards-card{width:100%;max-width:100%;padding:18px}
 .sol-help{font-size:10px}
}
@media(max-width:380px){
 .tgg-head{grid-template-columns:1fr}.tgg-rewards-btn{justify-self:start}
 .tgg-gamebar{grid-template-columns:auto 1fr!important}
 .tgg-gamebar>strong{display:none}
 .tgg-gamebar>div{grid-column:2!important;justify-self:end}
 .memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* v0.2.1 — Memory Match: larger, colorful face icons */
.mem-card .mem-face{
  display:none;
  width:100%;
  height:100%;
  place-items:center;
  font-size:clamp(34px,7vw,58px);
  line-height:1;
  text-align:center;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  filter:drop-shadow(0 2px 2px #0003);
}
.mem-card.flipped .mem-face,
.mem-card.matched .mem-face{display:grid}
@media(max-width:640px){
  .mem-card .mem-face{font-size:clamp(32px,12vw,52px)}
}

/* v0.2.2 — Tech Guru website light-theme integration */
.tgg{
 --g:#66d62c;
 --g-dark:#3da812;
 --ink:#151b20;
 --muted:#66727a;
 --line:#d8e1e5;
 --panel:#ffffff;
 --soft:#f4f7f8;
 --soft-green:#f0faeb;
 background:#f7f9fa!important;
 color:var(--ink)!important;
 border-color:#d9e2e6!important;
 box-shadow:0 12px 36px #1d2b3312;
}
.tgg-head{background:#fff!important;border-bottom-color:var(--g)!important;color:var(--ink)!important}
.tgg-brand strong,.tgg-brand small{color:var(--ink)!important}
.tgg-chip{background:#fff!important;color:var(--g-dark)!important;border-color:var(--g)!important}
.tgg-rewards-btn{background:var(--g)!important;color:#10200b!important;border-color:var(--g-dark)!important}
.tgg-home{background:#f7f9fa!important}
.tgg-intro h2,.tgg-intro p{color:var(--ink)!important}
.tgg-game-card{background:#fff!important;border-color:#d8e1e5!important;color:var(--ink)!important;box-shadow:0 5px 16px #17252d12}
.tgg-game-card:hover{border-color:var(--g)!important;box-shadow:0 8px 22px #3da81220}
.tgg-game-card strong,.tgg-game-card span{color:var(--ink)!important}
.tgg-game-card span{color:var(--muted)!important}
.tgg-game-card em{background:var(--soft-green)!important;color:var(--g-dark)!important;border-color:#bfe6aa!important}
.tgg-game-card.coming{background:#f0f3f4!important}
.tgg-coming-num,.tgg-connect-icon,.tgg-snake-icon,.tgg-ttt-icon i,.tgg-memory-icon i{background:var(--soft-green)!important;border-color:#b9e6a2!important;color:var(--g-dark)!important}
.tgg-game-view{background:#f7f9fa!important}
.tgg-gamebar{background:#fff!important;border-color:#d8e1e5!important;color:var(--ink)!important}
.tgg-gamebar>strong{color:var(--ink)!important}
.tgg-gamebar button,.tgg-back{background:#fff!important;color:var(--ink)!important;border-color:#cbd7dc!important}
.tgg-gamebar button:hover,.tgg-back:hover{border-color:var(--g)!important;color:var(--g-dark)!important}
.tgg-game-host{background:#eef3f1!important;border-color:#d2ddda!important;color:var(--ink)!important}

/* Solitaire keeps a traditional green felt play surface, but uses the site's brighter palette. */
.tgg-game-host:has(.tgg-solitaire){background:#198b4d!important;border-color:#157641!important}
.tgg-solitaire,.tgg-solitaire .sol-help{color:#fff!important}

/* Memory */
.memory-stats,.memory-message{color:var(--ink)!important}
.mem-card{background:#fff!important;box-shadow:inset 0 0 0 2px var(--g)!important;color:var(--ink)!important}
.mem-card:before{color:var(--g-dark)!important}
.mem-card.flipped{background:#fff!important}.mem-card.matched{background:#dff7d3!important}

/* 2048 */
.g2048-stats,.g2048-help{color:var(--ink)!important}
.g2048-board{background:#dfe7e3!important}
.g2048-tile{background:#cbd7d2!important;color:#26332d!important}
.g2048-tile.v2{background:#f5f7f2!important}.g2048-tile.v4{background:#e2f3d7!important}.g2048-tile.v8{background:#c4eeaa!important}.g2048-tile.v16{background:#a7e782!important}.g2048-tile.v32{background:#88df60!important}.g2048-tile.v64{background:#6bd63f!important}.g2048-tile.v128,.g2048-tile.v256,.g2048-tile.v512,.g2048-tile.v1024,.g2048-tile.v2048{background:var(--g)!important;color:#10200b!important}

/* Tic-Tac-Toe and Connect Four */
.ttt-status,.ttt-note,.c4-status,
.ttt-board button{background:#fff!important;border-color:#ccd9de!important;color:var(--ink)!important}
.ttt-board button.x{color:var(--g-dark)!important}.ttt-board button.o{color:#287ba5!important}



/* Snake */
.snake-stats,.snake-status{color:var(--ink)!important}
.tgg-snake canvas{border-color:#a8c9b7!important}
.snake-controls>button,.snake-controls div button{background:#fff!important;color:var(--ink)!important;border-color:#bdcdd4!important}

/* Rewards and messages */
.tgg-rewards{background:#1721268f!important}
.tgg-rewards-card{background:#fff!important;color:var(--ink)!important;border-color:#d5e0e4!important;box-shadow:0 20px 60px #0003}
.tgg-close-rewards{color:var(--ink)!important}
.tgg-rewards-card h2,.tgg-tier b{color:var(--g-dark)!important}
.tgg-progress-summary,.tgg-tier{background:#f4f7f8!important;color:var(--ink)!important;border-color:#d9e2e6!important}
.tgg-tier.done{background:var(--soft-green)!important;border-color:var(--g)!important}
.tgg-coupon{background:#f5fbf2!important;border-color:var(--g)!important;color:var(--ink)!important}
.tgg-coupon code{color:var(--ink)!important}
.tgg-toast{background:#fff!important;color:var(--ink)!important;border-color:var(--g)!important;box-shadow:0 12px 36px #0002}

/* Small-screen arcade remains light edge-to-edge. */
@media(max-width:640px){
 .tgg{background:#f7f9fa!important}
 .tgg-game-host{background:#eef3f1!important}
}

/* v0.2.3 — Snake D-pad alignment */
.snake-controls{display:grid!important;grid-template-columns:repeat(3,54px);grid-template-rows:42px 42px;gap:5px;justify-content:center!important}
.snake-controls>button[data-d="up"]{grid-column:2;grid-row:1}
.snake-controls>div{display:contents!important}
.snake-controls div button[data-d="left"]{grid-column:1;grid-row:2}
.snake-controls div button[data-d="down"]{grid-column:2;grid-row:2}
.snake-controls div button[data-d="right"]{grid-column:3;grid-row:2}


/* v0.3.0 — Puzzle + learning expansion */
.tgg-sudoku-icon,.tgg-word-icon,.tgg-math-icon,.tgg-rps-icon{
 height:90px;display:grid;place-items:center;margin-bottom:10px;border-radius:12px;
 background:#f0faeb;border:1px solid #bfe6aa;color:#3da812;font-weight:1000;font-size:28px;text-align:center;
}

/* Sudoku */
.tgg-sudoku{width:min(560px,100%);margin:auto;text-align:center;color:#151b20}
.sudoku-status{margin-bottom:10px;font-weight:800}
.sudoku-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));width:min(520px,100%);margin:auto;border:3px solid #202b31;background:#202b31;gap:1px}
.sudoku-grid button{aspect-ratio:1/1;border:0;background:#fff;color:#1b2429;font-size:clamp(15px,4.8vw,28px);font-weight:700;padding:0}
.sudoku-grid button:nth-child(3n){border-right:2px solid #202b31}
.sudoku-grid button:nth-child(9n){border-right:0}
.sudoku-grid button:nth-child(n+19):nth-child(-n+27),
.sudoku-grid button:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #202b31}
.sudoku-grid button.given{background:#edf1f3;color:#111;font-weight:1000}
.sudoku-grid button.selected{box-shadow:inset 0 0 0 3px #66d62c;background:#f3fdef}
.sudoku-grid button.wrong{color:#c72c35;background:#fff1f2}
.sudoku-numbers{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;margin:12px auto 0;width:min(520px,100%)}
.sudoku-numbers button{border:1px solid #cbd7dc;background:#fff;color:#151b20;border-radius:7px;padding:9px 0;font-weight:900}

/* Word Search */
.tgg-wordsearch{width:min(720px,100%);margin:auto;text-align:center;color:#151b20}
.ws-words{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin-bottom:10px}
.ws-words span{padding:5px 8px;border-radius:999px;background:#fff;border:1px solid #ccd8dd;font-size:11px;font-weight:900}
.ws-words span.found{background:#dff7d3;border-color:#66d62c;text-decoration:line-through}
.ws-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;width:min(650px,100%);margin:auto;touch-action:none;user-select:none}
.ws-grid button{aspect-ratio:1/1;border:1px solid #d2dce0;background:#fff;color:#151b20;padding:0;font-size:clamp(11px,3vw,20px);font-weight:1000;border-radius:4px}
.ws-grid button.found{background:#bff0a7;border-color:#66d62c}
.ws-status{margin-top:10px;font-weight:800}

/* Quick Math */
.tgg-math{width:min(620px,100%);margin:auto;text-align:center;color:#151b20}
.math-score{font-size:14px;font-weight:800;margin-bottom:16px}
.math-question{font-size:clamp(42px,12vw,76px);font-weight:1000;margin:12px 0 20px}
.math-answers{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.math-answers button{min-height:70px;border:1px solid #c9d7dc;background:#fff;color:#151b20;border-radius:12px;font-size:28px;font-weight:1000}
.math-answers button.correct{background:#dff7d3;border-color:#66d62c}.math-answers button.wrong{background:#ffe1e3;border-color:#d84d59}
.math-status{margin-top:12px;font-weight:800}

/* RPS */
.tgg-rps{width:min(620px,100%);margin:auto;text-align:center;color:#151b20}
.rps-score{font-size:20px;font-weight:900;margin-bottom:16px}
.rps-faceoff{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:12px auto 20px}
.rps-faceoff span{font-size:clamp(54px,16vw,90px)}.rps-faceoff i{font-style:normal;font-weight:1000;color:#6d7a81}
.rps-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rps-buttons button{border:1px solid #cbd8dd;background:#fff;border-radius:12px;padding:14px 8px;font-size:38px}
.rps-buttons button small{display:block;font-size:11px;text-transform:capitalize;color:#4f5e66;font-weight:900;margin-top:4px}
.rps-status{margin-top:14px;font-weight:800}

@media(max-width:640px){
 .sudoku-numbers{grid-template-columns:repeat(5,1fr)}
 .ws-grid{gap:1px}
 .math-answers button{min-height:58px;font-size:24px}
 .rps-buttons button{font-size:32px}
}

/* v0.3.1 — Arcade launcher RPS icon layout */
.tgg-rps-icon{
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:14px;
  white-space:nowrap;
  line-height:1;
  font-size:34px!important;
}
@media(max-width:640px){
  .tgg-rps-icon{gap:10px;font-size:30px!important}
}

/* v0.3.2 — Game focus mode */
.tgg.tgg-playing{scroll-margin-top:12px}
.tgg.tgg-playing .tgg-game-view{width:100%;margin:0 auto}
.tgg.tgg-playing .tgg-game-host{margin-left:auto;margin-right:auto}

/* v0.3.3 — Word Search mouse/pointer selection */
.ws-grid,.ws-grid *{-webkit-user-select:none!important;user-select:none!important;-webkit-user-drag:none!important}
.ws-grid{cursor:crosshair}
.ws-grid button{cursor:crosshair;touch-action:none}

/* v0.3.4 — hide only the theme Arcade hero while a game is open; keep Rewards/header visible */
body.tgg-game-active .tg-arcade-hero{display:none!important}
body.tgg-game-active .tg-arcade-game-section{padding-top:12px!important}
.tgg.tgg-playing>.tgg-head{display:grid!important}

/* v0.3.5 — clearance below sticky site header when Arcade hero is hidden */
body.tgg-game-active .tg-arcade-game-section{
  padding-top:clamp(28px,4vw,48px)!important;
  scroll-margin-top:110px;
}
body.tgg-game-active .tgg{
  margin-top:12px!important;
  scroll-margin-top:110px!important;
}
@media(max-width:782px){
  body.tgg-game-active .tg-arcade-game-section{padding-top:28px!important;scroll-margin-top:92px}
  body.tgg-game-active .tgg{margin-top:8px!important;scroll-margin-top:92px!important}
}

/* v0.3.6 — Official Tech Guru Arcade logo */
.tgg-brand{display:flex!important;align-items:center!important;min-width:0}
.tgg-arcade-logo{display:block;width:auto;height:58px;max-width:240px;object-fit:contain;object-position:left center}
@media(max-width:640px){.tgg-arcade-logo{height:46px;max-width:190px}}
@media(max-width:380px){.tgg-arcade-logo{height:40px;max-width:165px}}


/* v0.4.0 — Large family-game expansion */
.tgg-mini-icon{
  height:90px;display:grid;place-items:center;margin-bottom:10px;border-radius:12px;
  background:#f0faeb;border:1px solid #bfe6aa;color:#3da812;font-size:30px;font-weight:900
}
.game-status{margin-top:12px;text-align:center;font-weight:800;color:#39464d;min-height:24px}

/* Mines */
.mines-head{text-align:center;font-weight:900;margin-bottom:10px}.mines-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;width:min(560px,100%);margin:auto}
.mines-grid button{aspect-ratio:1/1;border:1px solid #bfcdd3;background:#dfe7e9;font-weight:900}.mines-grid button.open{background:#fff}

/* Word games */
.word-game{width:min(650px,100%);margin:auto;text-align:center}.wg-score{font-weight:900}.wg-word,.wg-letters{font-size:clamp(34px,10vw,60px);font-weight:1000;letter-spacing:.14em;margin:24px 0}.wg-input{font-size:20px;padding:10px;border:1px solid #bdcbd1;border-radius:8px;max-width:70%}.wg-submit{padding:11px 16px;margin-left:7px;border:0;border-radius:8px;background:#66d62c;font-weight:900}.wg-found{margin-top:14px;color:#3da812;font-weight:800}

/* Simon */
.simon-wrap{text-align:center;width:min(560px,100%);margin:auto}.simon-status{font-weight:900;margin-bottom:10px}.simon-pad{display:grid;grid-template-columns:1fr 1fr;gap:10px}.simon-pad button{aspect-ratio:1/1;border:0;border-radius:18px;opacity:.65}.simon-pad button:nth-child(1){background:#e44}.simon-pad button:nth-child(2){background:#4b4}.simon-pad button:nth-child(3){background:#48e}.simon-pad button:nth-child(4){background:#ec3}.simon-pad button.on{opacity:1;filter:brightness(1.45);transform:scale(.97)}.simon-start{margin-top:12px;padding:10px 20px;border:0;border-radius:8px;background:#66d62c;font-weight:900}

/* Sliding / Jigsaw */
.slide-grid,.jigsaw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:min(520px,100%);margin:auto}.slide-grid button,.jigsaw-grid button{aspect-ratio:1/1;border:1px solid #c6d2d7;border-radius:8px;font-size:clamp(28px,10vw,54px);font-weight:1000;background:#fff}.slide-grid .blank{visibility:hidden}.jigsaw-grid button{background-image:linear-gradient(135deg,#66d62c 0 24%,#fff 24% 48%,#48a7d2 48% 72%,#172126 72%);background-size:300% 300%;font-size:0}.jigsaw-grid button.selected{outline:4px solid #66d62c}

/* Bubble / Match3 / Block */
.bubble-score,.m3-head,.block-head{text-align:center;font-weight:900;margin-bottom:10px}.bubble-grid,.match3-grid,.block-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;width:min(580px,100%);margin:auto}.bubble-grid button{aspect-ratio:1/1;border:0;border-radius:50%}.bubble-grid .b0{background:#ff6262}.bubble-grid .b1{background:#4b9dff}.bubble-grid .b2{background:#66d62c}.bubble-grid .b3{background:#ffd24d}.bubble-grid .b4{background:#a76cff}.bubble-grid .empty{visibility:hidden}
.match3-grid{grid-template-columns:repeat(8,1fr)}.match3-grid button,.block-grid button{aspect-ratio:1/1;border:1px solid #d2dde1;border-radius:7px}.gem.g0{background:#ff6262}.gem.g1{background:#4b9dff}.gem.g2{background:#66d62c}.gem.g3{background:#ffd24d}.gem.g4{background:#a76cff}.gem.g5{background:#ff8b38}.gem.selected{outline:4px solid #172126}.block-grid{grid-template-columns:repeat(8,1fr)}.block-grid button{background:#fff}.block-grid button.filled{background:#66d62c}.block-controls{text-align:center;margin-top:10px}.block-controls button{padding:8px 14px}

/* Canvas games */
.tgg-canvas-wrap{margin:auto;text-align:center}.tgg-canvas-wrap canvas{display:block;border:1px solid #c5d2d6;border-radius:10px;background:#f7f9fa;touch-action:none}.canvas-note{margin-top:8px;font-weight:800}.road-controls,.maze-controls{margin:10px auto;display:grid;justify-content:center;gap:4px}.road-controls>button,.road-controls div button,.maze-controls>button,.maze-controls div button{width:54px;height:40px}.road-controls>button,.maze-controls>button{margin:auto}.road-controls div,.maze-controls div{display:flex;gap:4px}

/* Maze */
.maze-grid{display:grid;grid-template-columns:repeat(15,1fr);width:min(600px,100%);aspect-ratio:1/1;margin:auto;background:#172126}.maze-grid span{display:block}.maze-grid .wall{background:#172126}.maze-grid .path{background:#fff}.maze-grid .player{background:#48a7d2}.maze-grid .goal{background:#66d62c}

/* Quiz games */
.tgg-quiz{width:min(700px,100%);margin:auto;text-align:center}.quiz-head{display:flex;justify-content:space-between;gap:10px;font-weight:900;margin-bottom:18px}.quiz-question{font-size:clamp(22px,5vw,34px);font-weight:900;margin:18px 0}.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quiz-options button{min-height:58px;border:1px solid #c7d4d9;background:#fff;border-radius:9px;padding:10px;font-weight:800}.quiz-options button.correct{background:#dff7d3;border-color:#66d62c}.quiz-options button.wrong{background:#ffe1e3;border-color:#d84d59}.quiz-status{margin-top:12px;font-weight:800}

@media(max-width:760px){
 .fc-cols{grid-template-columns:repeat(4,1fr);row-gap:10px}.fc-col{min-height:310px}.spider-cols{grid-template-columns:repeat(5,1fr);row-gap:10px}.spider-col{min-height:300px}
 .trick-table{grid-template-columns:repeat(2,1fr)}.bubble-grid,.match3-grid{gap:2px}.quiz-options{grid-template-columns:1fr}
}
@media(max-width:480px){
 .mines-grid{gap:1px}.mines-grid button{font-size:10px}.wg-input{max-width:62%;font-size:16px}
}


/* v0.4.1 — full arcade audit: responsive stage + branded game polish */
.tgg-game-view{
  padding:clamp(6px,1.5vw,12px)!important;
}
.tgg-gamebar{
  position:relative;
  z-index:4;
  margin-bottom:8px!important;
  padding:7px 9px;
  border:1px solid #d9e4e8!important;
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#f7faf8)!important;
  box-shadow:0 4px 14px rgba(23,37,45,.07);
}
.tgg-gamebar:after{
  content:"";
  position:absolute;
  left:14px;right:14px;bottom:-1px;height:2px;
  background:linear-gradient(90deg,transparent,var(--g),transparent);
}
.tgg-game-host{
  min-height:0!important;
  width:100%!important;
  max-width:100%!important;
  padding:clamp(10px,1.7vw,16px)!important;
  overflow:hidden!important;
  border:1px solid #d7e2e5!important;
  border-radius:18px!important;
  color:var(--ink)!important;
  background:
    radial-gradient(circle at 8% 0%,rgba(102,214,44,.11),transparent 27%),
    radial-gradient(circle at 95% 100%,rgba(72,167,210,.09),transparent 25%),
    linear-gradient(180deg,#fff,#f4f8f6)!important;
  box-shadow:0 12px 30px rgba(23,37,45,.09),inset 0 1px 0 #fff;
}
.tgg-game-host>*{max-width:100%;box-sizing:border-box}
.tgg-game-host button{font-family:inherit}
.tgg-win-banner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:2px 10px;
  align-items:center;
  width:min(680px,100%);
  margin:0 auto 12px;
  padding:10px 13px;
  border:1px solid #9bd77f;
  border-radius:12px;
  background:linear-gradient(135deg,#effce9,#fff);
  box-shadow:0 5px 16px rgba(61,168,18,.14);
  color:#20311a;
}
.tgg-win-banner b{
  grid-row:1/3;
  display:grid;place-items:center;
  min-width:58px;height:42px;
  border-radius:9px;
  background:var(--g);
  color:#10200b;
  font-size:14px;
  letter-spacing:.06em;
}
.tgg-win-banner span{font-weight:900}
.tgg-win-banner small{color:#5c6c57}

/* common arcade HUD styling */
.memory-stats,.g2048-stats,.snake-stats,.sudoku-status,.ws-words,.math-score,.rps-score,
.spider-info,.trick-score,.gf-score,.crazy-top,.mines-head,.puzzle-hud,.bubble-score,.m3-head,
.block-top,.quiz-head,.fc-top{
  border-radius:11px;
}
.memory-stats,.g2048-stats,.snake-stats,.puzzle-hud,.bubble-score,.m3-head,.block-head{
  padding:8px 11px;
  background:#fff;
  border:1px solid #d9e4e8;
  box-shadow:0 3px 10px rgba(23,37,45,.05);
}
.game-status,.snake-status,.memory-message,.g2048-help,.c4-note,.ws-status,.math-status,.rps-status{
  color:#53636b!important;
  font-size:13px;
}

/* keep primary boards inside the visible game stage */
.tgg-2048{width:min(480px,100%,calc(100dvh - 250px))!important}
.g2048-board{width:100%!important;box-shadow:inset 0 0 0 1px #c9d6d2,0 8px 22px rgba(23,37,45,.08)}


.tgg-snake{width:min(520px,100%)!important}
.tgg-snake canvas{
  width:min(430px,100%,calc(100dvh - 335px))!important;
  box-shadow:0 8px 24px rgba(9,44,28,.16);
}
.tgg-sudoku{width:min(520px,100%,calc(100dvh - 215px))!important}
.sudoku-grid{width:100%!important;box-shadow:0 8px 20px rgba(23,37,45,.08)}
.tgg-wordsearch{width:min(620px,100%)!important}
.ws-grid{
  width:min(500px,100%,calc(100dvh - 245px))!important;
  box-shadow:0 8px 20px rgba(23,37,45,.07);
}
.tgg-math,.tgg-rps{width:min(560px,100%)!important}

/* memory games: 24 cards now fit desktop and phone without giant scrolling */
.tgg-memory{width:min(560px,100%)!important}
.memory-grid{
  width:min(520px,100%)!important;
  margin:8px auto!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:6px!important;
}
.mem-card{
  aspect-ratio:1/1!important;
  min-height:0!important;
  border-radius:10px!important;
  box-shadow:inset 0 0 0 2px #bfe7ad,0 3px 8px rgba(23,37,45,.06)!important;
}
.mem-card:before{
  content:"TG"!important;
  width:64%;height:52%;
  margin:auto;
  border:1px solid #b8dfaa;
  border-radius:8px;
  background:#f4fced;
}
.mem-card .mem-face{font-size:clamp(24px,5vw,42px)!important}

/* Mines */
.mines-grid{
  width:min(470px,100%,calc(100dvh - 215px))!important;
  border:1px solid #c4d1d6;
  border-radius:10px;
  padding:5px;
  background:#e8eef0;
  box-shadow:0 8px 20px rgba(23,37,45,.08);
}
.mines-grid button{border-radius:5px!important}

/* puzzle family */
.puzzle-shell{width:min(500px,100%);margin:auto}
.puzzle-hud{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.slide-grid,.jigsaw-grid{
  width:min(450px,100%,calc(100dvh - 220px))!important;
  margin:auto!important;
  gap:7px!important;
}
.slide-grid button{
  border:1px solid #cbd8dd!important;
  color:#152229;
  background:
    radial-gradient(circle at 78% 20%,rgba(102,214,44,.18),transparent 28%),
    linear-gradient(145deg,#fff,#edf3f0)!important;
  box-shadow:0 5px 12px rgba(23,37,45,.08);
}
.slide-grid button.tile{position:relative}
.slide-grid button.tile:after{
  content:"";
  position:absolute;left:12%;right:12%;bottom:7%;
  height:3px;border-radius:999px;background:var(--g);
}
.jigsaw-grid button{
  position:relative;
  border:2px solid #fff!important;
  border-radius:10px!important;
  overflow:hidden;
  background-image:
    radial-gradient(circle at 30% 32%,rgba(255,255,255,.88) 0 8%,transparent 9%),
    linear-gradient(135deg,#66d62c 0 31%,#42a8d3 31% 64%,#263942 64% 100%)!important;
  background-size:300% 300%!important;
  box-shadow:0 4px 12px rgba(23,37,45,.12);
}
.jigsaw-piece.piece-0{background-position:0% 0%!important}.jigsaw-piece.piece-1{background-position:50% 0%!important}.jigsaw-piece.piece-2{background-position:100% 0%!important}
.jigsaw-piece.piece-3{background-position:0% 50%!important}.jigsaw-piece.piece-4{background-position:50% 50%!important}.jigsaw-piece.piece-5{background-position:100% 50%!important}
.jigsaw-piece.piece-6{background-position:0% 100%!important}.jigsaw-piece.piece-7{background-position:50% 100%!important}.jigsaw-piece.piece-8{background-position:100% 100%!important}
.jigsaw-piece span{
  position:absolute;left:7px;top:6px;
  display:grid;place-items:center;
  width:25px;height:25px;border-radius:50%;
  background:rgba(255,255,255,.9);
  color:#172126;font-size:11px;font-weight:1000;
  box-shadow:0 2px 5px rgba(0,0,0,.15);
}
.jigsaw-piece.selected{outline:4px solid #ffcc3a!important;transform:scale(.97)}

/* color puzzle games */
.bubble-grid,.match3-grid,.block-grid{
  width:min(470px,100%,calc(100dvh - 220px))!important;
  margin:auto!important;
  padding:6px;
  border:1px solid #d0dde1;
  border-radius:13px;
  background:#f0f4f5;
  box-shadow:0 8px 20px rgba(23,37,45,.08);
}
.bubble-grid button{box-shadow:inset 0 -5px 10px rgba(0,0,0,.11),inset 0 4px 6px rgba(255,255,255,.45)}
.match3-grid button{border-radius:9px!important;box-shadow:inset 0 -5px 8px rgba(0,0,0,.08),0 2px 5px rgba(23,37,45,.08)}
.block-game{width:min(500px,100%);margin:auto}
.block-top{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-bottom:8px}
.block-head{display:flex;gap:14px;align-items:center;justify-content:space-between;min-width:150px}
.next-piece{
  display:grid;grid-template-columns:auto auto;align-items:center;gap:8px;
  padding:6px 8px;border:1px solid #d6e2e5;border-radius:10px;background:#fff;
}
.next-piece small{font-size:9px;font-weight:1000;letter-spacing:.08em;color:#66757b}
.block-preview{
  display:grid;grid-template-columns:repeat(4,9px);grid-template-rows:repeat(4,9px);gap:2px;
  width:max-content;
}
.block-preview i{display:block;border-radius:2px;background:#edf1f2}
.block-preview i.on{background:var(--g);box-shadow:inset 0 -2px 3px rgba(0,0,0,.1)}
.block-grid{grid-template-columns:repeat(8,1fr)!important}
.block-grid button.filled{background:linear-gradient(145deg,#78e23e,#4fb723)!important;box-shadow:inset 0 -4px 6px rgba(0,0,0,.1)}
.block-actions{text-align:center;margin-top:7px}
.block-actions button{
  border:1px solid #c8d6da;background:#fff;border-radius:9px;
  padding:8px 14px;font-weight:900;color:#33434a;
}

/* Simon */
.simon-wrap{width:min(430px,100%,calc(100dvh - 210px))!important}
.simon-pad{gap:8px!important}
.simon-pad button{box-shadow:inset 0 -12px 18px rgba(0,0,0,.13),0 5px 15px rgba(23,37,45,.1)}

/* Canvas games all scale to fit without page-length boards */
.tgg-canvas-wrap{
  
}
.tgg-canvas-wrap canvas{
  border:1px solid #cbd9dd!important;
  box-shadow:0 9px 24px rgba(23,37,45,.11);
}
.road-controls,.maze-controls{margin:7px auto!important}
.road-controls>button,.road-controls div button,.maze-controls>button,.maze-controls div button{
  border:1px solid #c7d5da;background:#fff;color:#172126;border-radius:8px;font-weight:900
}

/* Maze */
.maze-grid{
  width:min(450px,100%,calc(100dvh - 275px))!important;
  border:5px solid #25373e;
  border-radius:9px;
  overflow:hidden;
  box-shadow:0 9px 22px rgba(23,37,45,.13);
}

/* quizzes / learning games */
.tgg-quiz{
  width:min(640px,100%)!important;
  padding:clamp(5px,1vw,10px);
}
.quiz-question{
  margin:12px 0!important;
  padding:12px;
  border-radius:12px;
  background:linear-gradient(135deg,#f1fbeC,#fff);
  border:1px solid #d4e7ca;
}
.quiz-options button{
  transition:transform .12s,border-color .12s,box-shadow .12s;
  box-shadow:0 3px 9px rgba(23,37,45,.05);
}
.quiz-options button:not(:disabled):hover{transform:translateY(-2px);border-color:var(--g);box-shadow:0 5px 13px rgba(61,168,18,.13)}

/* launcher polish */
.tgg-game-card{
  position:relative;
  border-radius:16px!important;
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease!important;
}
.tgg-game-card:before{
  content:"";
  position:absolute;left:14px;right:14px;top:0;height:3px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,transparent,var(--g),transparent);
  opacity:.6;
}
.tgg-game-card:hover:before{opacity:1}
.tgg-mini-icon,.tgg-sudoku-icon,.tgg-word-icon,.tgg-math-icon,.tgg-rps-icon,
.tgg-snake-icon,.tgg-connect-icon,.tgg-coming-num{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 5px 12px rgba(61,168,18,.08);
}

@media(max-width:760px){
  .tgg-game-host{padding:9px!important}
  .memory-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
  .mem-card .mem-face{font-size:clamp(22px,8vw,34px)!important}
  .fc-cols{grid-template-columns:repeat(8,minmax(0,1fr))!important;row-gap:0!important}
  .fc-col{height:clamp(300px,45dvh,360px)!important}
  .spider-cols{grid-template-columns:repeat(10,minmax(0,1fr))!important;row-gap:0!important}
  .spider-col{height:clamp(295px,44dvh,350px)!important}
  .fc-card{font-size:clamp(7px,2.1vw,10px)!important}
  .spider-card{font-size:clamp(6px,1.8vw,9px)!important}
  .fc-slot,.fc-foundation{width:clamp(34px,10vw,48px)!important;height:54px!important}
  .trick-hand,.gf-hand,.crazy-hand,.dom-hand{max-height:130px}
  .quiz-question{font-size:clamp(18px,5vw,25px)!important}
}
@media(max-width:430px){
  .tgg-game-view{padding:4px!important}
  .tgg-gamebar{padding:5px 6px!important}
  .tgg-game-host{padding:7px!important;border-radius:14px!important}
  .game-status{font-size:11px!important;margin-top:7px!important}
  .memory-grid{width:min(336px,100%)!important}
  .fc-top{gap:5px!important}
  .fc-free,.fc-found{gap:2px!important}
  .fc-slot,.fc-foundation{width:36px!important;height:48px!important;font-size:7px!important}
  .fc-col{height:330px!important}
  .spider-col{height:325px!important}
  .spider-info{font-size:11px}
  .spider-deal{padding:6px 8px!important;font-size:10px}
  .mines-grid{width:min(340px,100%,calc(100dvh - 215px))!important}
  .slide-grid,.jigsaw-grid{width:min(340px,100%,calc(100dvh - 215px))!important}
  .bubble-grid,.match3-grid,.block-grid{width:min(340px,100%,calc(100dvh - 215px))!important}
  .tgg-canvas-wrap{}
  .maze-grid{width:min(340px,100%,calc(100dvh - 275px))!important}
}

/* v0.4.1 audit finishing passes */
.tgg-sudoku{width:min(460px,100%,calc(100dvh - 290px))!important}
.block-game{width:min(440px,100%)!important}
.block-grid{width:min(420px,100%,calc(100dvh - 300px))!important}

@media(max-height:650px) and (max-width:760px){
  .memory-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:3px!important}
  .mem-card .mem-face{font-size:clamp(18px,6vw,28px)!important}
  .memory-stats{padding:5px 8px!important;font-size:11px}
  .memory-message{margin-top:5px!important;font-size:11px!important}
}


/* v0.4.2 — illustrated Tech Match games + 3D tabletop games */
.quiz-art{
  width:min(420px,92%);
  margin:4px auto 8px;
  border:1px solid #d8e4e7;
  border-radius:16px;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 0%,rgba(102,214,44,.12),transparent 45%),
    linear-gradient(180deg,#fff,#f3f8f5);
  box-shadow:0 10px 24px rgba(23,37,45,.09);
}
.quiz-art img{
  display:block;
  width:100%;
  max-height:min(220px,28dvh);
  object-fit:contain;
}
.tgg-quiz:has(.quiz-art:not([hidden])) .quiz-question{
  margin-top:8px!important;
  font-size:clamp(18px,4vw,27px)!important;
}
.tgg-quiz:has(.quiz-art:not([hidden])) .quiz-options{
  gap:7px!important;
}
.tgg-quiz:has(.quiz-art:not([hidden])) .quiz-options button{
  min-height:48px!important;
}

/* tabletop atmosphere shared by chess and checkers */
.tgg-game-host:has(.tgg-chess),
  background:
    radial-gradient(ellipse at 50% 105%,rgba(102,214,44,.14),transparent 35%),
    linear-gradient(180deg,#fbfdfc 0 38%,#e7eeea 38% 42%,#c9d6d0 42% 100%)!important;
  perspective:1100px;
  padding-bottom:clamp(20px,4vw,34px)!important;
}
.tgg-game-host:has(.tgg-chess):before,
  content:"";
  display:block;
  width:min(460px,86%);
  height:16px;
  margin:0 auto -9px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(17,30,25,.18),transparent 70%);
  filter:blur(4px);
}

/* 3D robot chess */
.tgg-chess{
  width:min(500px,96%,calc(100dvh - 235px))!important;
  aspect-ratio:1/1;
  border:7px solid #36463f!important;
  border-radius:14px!important;
  overflow:visible!important;
  background:#45554d;
  transform:perspective(950px) rotateX(16deg);
  transform-origin:50% 100%;
  transform-style:preserve-3d;
  box-shadow:
    0 28px 38px rgba(23,37,45,.24),
    0 8px 0 #26342e,
    inset 0 0 0 2px rgba(255,255,255,.26)!important;
}
.tgg-chess button{
  position:relative;
  overflow:visible;
  transform-style:preserve-3d;
}
.tgg-chess .light{
  background:
    linear-gradient(135deg,rgba(255,255,255,.68),transparent 45%),
    #dfe8df!important;
}
.tgg-chess .dark{
  background:
    linear-gradient(135deg,rgba(255,255,255,.14),transparent 46%),
    #6c8174!important;
}
.tgg-chess button:after{
  content:"";
  position:absolute;
  left:18%;right:18%;bottom:8%;
  height:11%;
  border-radius:50%;
  background:rgba(12,24,19,.25);
  filter:blur(2px);
  pointer-events:none;
}
.robot-chess-piece{
  position:relative;
  z-index:2;
  display:block;
  width:112%;
  height:112%;
  max-width:none;
  object-fit:contain;
  transform:translate(-6%,-18%) rotateX(-12deg) translateZ(18px);
  transform-origin:50% 100%;
  filter:drop-shadow(0 6px 3px rgba(13,27,21,.32));
  pointer-events:none;
}
.tgg-chess .move{
  box-shadow:inset 0 0 0 4px #72df3d, inset 0 0 18px rgba(102,214,44,.5)!important;
}
.tgg-chess button:hover .robot-chess-piece{
  filter:drop-shadow(0 8px 4px rgba(13,27,21,.38)) brightness(1.04);
}

/* 3D checkers across-the-table view */
  width:min(500px,96%,calc(100dvh - 235px))!important;
  border:7px solid #5a4331!important;
  border-radius:14px!important;
  overflow:visible!important;
  transform:perspective(950px) rotateX(18deg);
  transform-origin:50% 100%;
  transform-style:preserve-3d;
  box-shadow:
    0 30px 40px rgba(23,37,45,.25),
    0 9px 0 #3c2c20,
    inset 0 0 0 2px rgba(255,255,255,.24)!important;
}
  background:linear-gradient(135deg,#f1e9d7,#d9cdb7)!important;
}
  background:linear-gradient(135deg,#80654d,#5f4735)!important;
}
.checker{
  width:66%!important;
  height:66%!important;
  position:relative;
  z-index:2;
  border:3px solid rgba(255,255,255,.24);
  transform:rotateX(-13deg) translateZ(12px);
  box-shadow:
    inset 0 5px 7px rgba(255,255,255,.35),
    inset 0 -7px 9px rgba(0,0,0,.25),
    0 7px 0 rgba(16,26,22,.35),
    0 11px 12px rgba(15,24,20,.24)!important;
}
.checker.p1{
  background:radial-gradient(circle at 35% 28%,#b7ff92,#66d62c 47%,#359b13 100%)!important;
  color:#16320d!important;
}
.checker.p2{
  background:radial-gradient(circle at 35% 28%,#7e9cac,#354b56 50%,#1e2d34 100%)!important;
  color:#fff!important;
}
  box-shadow:inset 0 0 0 4px #8cf25a,inset 0 0 16px rgba(102,214,44,.5)!important;
}

/* Space Crosser cabinet */
.tgg-game-host:has(.space-controls){
  background:
    radial-gradient(circle at 50% -15%,rgba(91,141,255,.20),transparent 42%),
    linear-gradient(180deg,#f8fbfd,#edf3f7)!important;
}
.tgg-game-host:has(.space-controls) .tgg-canvas-wrap{
  
}
.tgg-game-host:has(.space-controls) canvas{
  border:4px solid #243845!important;
  border-radius:18px!important;
  box-shadow:
    0 18px 30px rgba(18,32,46,.22),
    0 0 0 1px rgba(102,214,44,.4),
    inset 0 0 0 1px rgba(255,255,255,.2)!important;
}
.space-controls button{
  background:linear-gradient(180deg,#fff,#eaf0f2)!important;
  border-color:#b7c9d0!important;
  box-shadow:0 4px 0 #a4b6bd,0 6px 10px rgba(23,37,45,.12);
}
.space-controls button:active{
  transform:translateY(3px);
  box-shadow:0 1px 0 #a4b6bd;
}

@media(max-width:600px){
  .quiz-art{width:min(340px,95%)}
  .quiz-art img{max-height:180px}
    width:min(340px,96%,calc(100dvh - 225px))!important;
    border-width:5px!important;
  }
  .robot-chess-piece{
    width:118%;
    height:118%;
    transform:translate(-8%,-19%) rotateX(-12deg) translateZ(12px);
  }
  .checker{border-width:2px}
}
@media(max-height:650px){
  .quiz-art img{max-height:130px}
  .quiz-question{padding:8px!important}
    width:min(360px,94%,calc(100dvh - 205px))!important;
  }
}


/* v0.4.4 — chess/checkers board row-collapse fix */
.tgg-chess,
  display:grid!important;
  grid-template-columns:repeat(8,minmax(0,1fr))!important;
  grid-template-rows:repeat(8,minmax(0,1fr))!important;
}
.tgg-chess button,
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  overflow:visible!important;
}
.tgg-chess .robot-chess-piece{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:112%!important;
  height:112%!important;
  transform:translate(-50%,-59%) rotateX(-12deg) translateZ(18px)!important;
}
@media(max-width:600px){
  .tgg-chess .robot-chess-piece{
    width:118%!important;
    height:118%!important;
    transform:translate(-50%,-60%) rotateX(-12deg) translateZ(12px)!important;
  }
}


/* v0.4.5 — easier chess selection and accurate tap targets */
.tgg-chess button{
  cursor:pointer!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent!important;
}
.tgg-chess button.own-piece{
  box-shadow:inset 0 0 0 2px rgba(102,214,44,.10);
}
.tgg-chess button.own-piece:hover{
  box-shadow:inset 0 0 0 3px rgba(102,214,44,.42),inset 0 0 16px rgba(102,214,44,.15)!important;
}
.tgg-chess button.selected-piece{
  box-shadow:
    inset 0 0 0 5px #66d62c,
    inset 0 0 22px rgba(102,214,44,.55)!important;
  z-index:5;
}
.tgg-chess button.move{
  position:relative;
  cursor:pointer!important;
}
.tgg-chess button.move:before{
  content:"";
  position:absolute;
  z-index:6;
  left:50%;top:50%;
  width:32%;height:32%;
  transform:translate(-50%,-50%) rotateX(-10deg);
  border-radius:50%;
  background:rgba(102,214,44,.72);
  border:2px solid rgba(255,255,255,.9);
  box-shadow:0 0 0 3px rgba(61,168,18,.20),0 4px 10px rgba(22,48,15,.25);
  pointer-events:none;
}
.tgg-chess button.move:has(.robot-chess-piece):before{
  width:76%;height:76%;
  background:rgba(255,204,58,.18);
  border:4px solid #ffcc3a;
  box-shadow:inset 0 0 18px rgba(255,204,58,.28),0 0 0 3px rgba(255,255,255,.55);
}
.tgg-chess button.move:after{
  opacity:.10!important;
}
.tgg-chess button.selected-piece .robot-chess-piece{
  filter:drop-shadow(0 8px 4px rgba(13,27,21,.38)) drop-shadow(0 0 8px rgba(102,214,44,.55))!important;
}
@media(max-width:600px){
  .tgg-chess button.move:before{
    width:40%;height:40%;
  }
  .tgg-chess button.move:has(.robot-chess-piece):before{
    width:82%;height:82%;
  }
}


/* v0.4.6 — Alien Crosser progression HUD */
.alien-hud{
  width:min(500px,100%);
  margin:0 auto 8px;
  padding:9px 11px;
  border:1px solid #cfdbdf;
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#f3f7f8);
  box-shadow:0 4px 12px rgba(23,37,45,.07);
}
.alien-hud>div:first-child{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.alien-hud b{
  color:#172126;
  letter-spacing:.08em;
  font-size:12px;
}
.alien-hud span{
  font-size:12px;
  color:#53646c;
}
.alien-hud strong{
  color:var(--g-dark);
  font-size:15px;
}
.alien-progress{
  height:7px;
  margin:7px 0 5px;
  border-radius:999px;
  overflow:hidden;
  background:#e3eaed;
}
.alien-progress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#66d62c,#48a7d2);
  box-shadow:0 0 8px rgba(102,214,44,.35);
  transition:width .3s ease;
}
.alien-difficulty{
  display:block;
  text-align:right;
  color:#6a777d;
  font-size:10px;
  font-weight:800;
}


/* v0.5.0 — new 3D arcade expansion */
.arcade-controls,
.skee-controls,
.bowl-controls{
  width:min(620px,100%);
  margin:9px auto 0;
  display:flex;
  gap:7px;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
}
.arcade-controls button,
.skee-controls button,
.bowl-controls button{
  border:1px solid #bfd0d6;
  border-radius:10px;
  background:linear-gradient(180deg,#fff,#eaf1f3);
  color:#172126;
  min-width:64px;
  min-height:42px;
  padding:8px 12px;
  font-weight:900;
  box-shadow:0 4px 0 #aebfc5,0 6px 12px rgba(23,37,45,.12);
  touch-action:manipulation;
}
.arcade-controls button:active,
.skee-controls button:active,
.bowl-controls button:active{
  transform:translateY(3px);
  box-shadow:0 1px 0 #aebfc5;
}
.alien-shooter-controls button[data-a="fire"]{
  background:linear-gradient(180deg,#9cf56f,#61cf2c);
  border-color:#4fac22;
  color:#16320c;
}
.skee-controls input,
.bowl-controls input{
  width:min(175px,38vw);
  accent-color:#66d62c;
}
.tgg-game-host:has(.alien-shooter-controls),
.tgg-game-host:has(.skee-controls),
.tgg-game-host:has(.bowl-controls),
.tgg-game-host:has(.race-controls){
  background:
    radial-gradient(circle at 50% -10%,rgba(72,167,210,.18),transparent 38%),
    linear-gradient(180deg,#f8fbfd,#eef4f6)!important;
}
.tgg-game-host:has(.alien-shooter-controls) .tgg-canvas-wrap,
.tgg-game-host:has(.skee-controls) .tgg-canvas-wrap,
.tgg-game-host:has(.bowl-controls) .tgg-canvas-wrap,
.tgg-game-host:has(.race-controls) .tgg-canvas-wrap{
  
}
.tgg-game-host:has(.race-controls) canvas,
.tgg-game-host:has(.alien-shooter-controls) canvas,
.race-controls button[data-r="gas"]{
  background:linear-gradient(180deg,#9cf56f,#61cf2c);
  border-color:#4fac22;
}
.race-controls button[data-r="brake"]{
  background:linear-gradient(180deg,#ffd8dc,#ff8f99);
  border-color:#e8707a;
}
.tgg-game-host:has(.bowl-controls) canvas,
.tgg-game-host:has(.skee-controls) canvas{
  border-radius:18px!important;
  box-shadow:0 16px 28px rgba(23,37,45,.15)!important;
}
.tgg-game-host:has(.bowl-controls) .canvas-note,
.tgg-game-host:has(.skee-controls) .canvas-note{
  font-weight:900;
  color:#46565e;
}
@media(max-width:520px){
  .arcade-controls,
  .skee-controls,
  .bowl-controls{gap:5px}
  .arcade-controls button,
  .skee-controls button,
  .bowl-controls button{
    min-height:38px;
    padding:6px 8px;
    font-size:11px;
  }
  .skee-controls input,.bowl-controls input{width:120px}
}
@media(max-height:650px){
  .tgg-game-host:has(.alien-shooter-controls) .tgg-canvas-wrap,
  .tgg-game-host:has(.skee-controls) .tgg-canvas-wrap,
  .tgg-game-host:has(.bowl-controls) .tgg-canvas-wrap,
  .tgg-game-host:has(.race-controls) .tgg-canvas-wrap{
    
  }
}

/* v0.5.0 viewport fit follow-up */
.tgg-game-host:has(.space-controls) .tgg-canvas-wrap{
  
}
@media(max-height:650px){
  .tgg-game-host:has(.space-controls) .tgg-canvas-wrap{
    
  }
  }

.tgg-game-host:has(.space-controls) .tgg-canvas-wrap{
  
}
@media(max-height:650px){
  .tgg-game-host:has(.space-controls) .tgg-canvas-wrap{
    
  }
  }

@media(max-height:650px) and (max-width:430px){
  .tgg-game-host:has(.space-controls) .tgg-canvas-wrap{}
  .alien-hud{padding:6px 8px!important;margin-bottom:5px!important}
  .alien-progress{margin:4px 0 3px!important}
}


/* v0.5.1 — Brick Breaker overhaul */
.tgg-game-host:has(.brick-controls){
  background:
    radial-gradient(circle at 50% -10%,rgba(102,214,44,.12),transparent 36%),
    linear-gradient(180deg,#f8fbfd,#edf4f5)!important;
}
.tgg-game-host:has(.brick-controls) .tgg-canvas-wrap{
  
}
.tgg-game-host:has(.brick-controls) canvas{
  border:4px solid #243845!important;
  border-radius:18px!important;
  box-shadow:0 18px 30px rgba(18,32,46,.22),0 0 0 1px rgba(102,214,44,.24)!important;
}
.brick-hud{
  width:min(670px,100%);
  margin:0 auto 8px;
  padding:8px 10px;
  border:1px solid #d3e0e4;
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#f4f8f7);
  box-shadow:0 4px 12px rgba(23,37,45,.07);
}
.brick-hud>div:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.brick-hud>div:first-child>b{
  font-size:12px;
  letter-spacing:.08em;
  color:#18242a;
}
.brick-hud>div:first-child span{
  font-size:11px;
  color:#617078;
}
.brick-hud>div:first-child strong{
  font-size:15px;
  color:var(--g-dark);
}
.brick-meters{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  margin-top:6px;
}
.brick-meters span{
  display:flex;
  justify-content:space-between;
  gap:5px;
  padding:5px 7px;
  border:1px solid #dde6e9;
  border-radius:8px;
  background:#fff;
  font-size:10px;
  color:#66757c;
}
.brick-meters b{color:#223139}
.brick-power{
  margin-top:6px;
  min-height:22px;
  padding:5px 8px;
  border-radius:8px;
  background:#eef8ea;
  color:#3b5a2e;
  font-size:10px;
  font-weight:800;
  text-align:center;
}
.brick-controls button[data-b="launch"]{
  background:linear-gradient(180deg,#a8f67d,#64d12f);
  border-color:#4cac21;
  color:#16320d;
  min-width:100px;
}
@media(max-width:620px){
  .brick-meters{grid-template-columns:repeat(2,1fr)}
  .tgg-game-host:has(.brick-controls) .tgg-canvas-wrap{
    
  }
}
@media(max-height:650px){
  .brick-hud{padding:5px 7px;margin-bottom:5px}
  .brick-meters{margin-top:4px;gap:4px}
  .brick-meters span{padding:3px 5px}
  .brick-power{margin-top:4px;padding:3px 6px}
  .tgg-game-host:has(.brick-controls) .tgg-canvas-wrap{
    
  }
}


/* v0.5.2 — Guru Putt-Putt 3D course expansion */
.tgg-game-host:has(.tgg-game-title){ }
.tgg-game-host:has(canvas) .canvas-note{line-height:1.35}
.tgg-game-host:has(.tgg-canvas-wrap) canvas{touch-action:none}
.tgg-game-host:has(.tgg-canvas-wrap) .canvas-note{margin-left:auto;margin-right:auto}
.tgg-game-host:has(.tgg-canvas-wrap) canvas[width="720"]{
  border-radius:18px!important;
}


/* v0.5.3 — global arcade audio + Alien Skee-Ball repair */
.tgg-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.tgg-sound-btn{
  width:42px;
  height:42px;
  border:1px solid #d2dfe3;
  border-radius:11px;
  background:linear-gradient(180deg,#fff,#f0f5f6);
  box-shadow:0 3px 8px rgba(23,37,45,.07);
  cursor:pointer;
  font-size:18px;
}
.tgg-sound-btn:hover{border-color:#93d875}
.skee-hud{
  width:min(620px,100%);
  margin:0 auto 8px;
  display:grid;
  grid-template-columns:1fr repeat(3,auto);
  gap:8px;
  align-items:center;
  padding:8px 10px;
  border:1px solid #d1dfe4;
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#f4f8f8);
  box-shadow:0 4px 12px rgba(23,37,45,.07);
}
.skee-hud>b{
  color:#18272f;
  font-size:12px;
  letter-spacing:.08em;
}
.skee-hud span{
  padding:4px 7px;
  border-radius:8px;
  background:#eef4f5;
  color:#627178;
  font-size:10px;
}
.skee-hud strong{color:#2d9c19;font-size:13px}
.skee-controls label{
  display:grid;
  gap:2px;
  font-size:9px;
  font-weight:900;
  color:#5d6e76;
  text-align:center;
}
.tgg-game-host:has(.skee-hud) .tgg-canvas-wrap{
  
}
.tgg-game-host:has(.skee-hud) canvas{
  border:4px solid #233845!important;
  border-radius:18px!important;
  box-shadow:0 17px 30px rgba(18,32,46,.20),0 0 0 1px rgba(72,167,210,.25)!important;
}
@media(max-width:560px){
  .tgg-head-actions{gap:5px}
  .tgg-sound-btn{width:38px;height:38px}
  .skee-hud{grid-template-columns:1fr 1fr;gap:5px}
  .skee-hud>b{grid-column:1/-1;text-align:center}
  .tgg-game-host:has(.skee-hud) .tgg-canvas-wrap{
    
  }
}
@media(max-height:650px){
  .skee-hud{padding:5px 7px;margin-bottom:5px}
  .tgg-game-host:has(.skee-hud) .tgg-canvas-wrap{
    
  }
}


/* v0.5.4 — Alien Putt-Putt cosmic cabinet */
.tgg-game-host:has(.tgg-game-title){ }
.tgg-game-host:has(canvas) .canvas-note{
  text-shadow:0 1px 0 #fff;
}


/* v0.5.6 — modern Match Three overhaul */
.modern-match3{
  width:min(650px,100%);
  margin:auto;
}
.modern-match3 .m3-head{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  gap:8px;
  align-items:stretch;
  margin-bottom:10px;
  padding:0!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
}
.m3-scorecard,.m3-stat,.m3-progress{
  border:1px solid #d5e2e6;
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#f3f7f8);
  box-shadow:0 4px 12px rgba(23,37,45,.07);
}
.m3-scorecard,.m3-stat{
  min-width:88px;
  padding:7px 10px;
  display:grid;
  align-content:center;
  text-align:center;
}
.m3-scorecard small,.m3-stat small,.m3-progress small{
  font-size:8px;
  font-weight:1000;
  letter-spacing:.08em;
  color:#6b7a81;
}
.m3-scorecard strong{
  color:#2c9e16;
  font-size:19px;
  line-height:1.05;
}
.m3-stat strong{
  color:#213139;
  font-size:18px;
  line-height:1.05;
}
.m3-progress{
  padding:7px 10px;
  min-width:160px;
}
.m3-progress>span{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center;
  font-size:10px;
  color:#34454d;
}
.m3-progress>span b{font-size:11px}
.m3-progress>span em{
  font-style:normal;
  color:#2d9c18;
  font-weight:900;
}
.m3-progress>i{
  display:block;
  height:7px;
  margin:5px 0 4px;
  overflow:hidden;
  border-radius:999px;
  background:#e1e9ec;
}
.m3-progress>i>u{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#66d62c,#48a7d2,#a879ff);
  box-shadow:0 0 10px rgba(102,214,44,.35);
  text-decoration:none;
  transition:width .28s ease;
}

.m3-stage{
  position:relative;
  width:min(520px,100%,calc(100dvh - 285px));
  margin:auto;
  padding:10px;
  border:1px solid #cad7dc;
  border-radius:22px;
  background:
    radial-gradient(circle at 50% 0%,rgba(102,214,44,.10),transparent 34%),
    linear-gradient(145deg,#23353e,#14242c);
  box-shadow:
    0 18px 32px rgba(20,34,41,.22),
    inset 0 1px 0 rgba(255,255,255,.14),
    0 0 0 1px rgba(102,214,44,.12);
  overflow:hidden;
}
.m3-stage:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(135deg,rgba(255,255,255,.055),transparent 25%),
    radial-gradient(circle at 50% 115%,rgba(72,167,210,.18),transparent 42%);
}
.m3-grid-glow{
  position:absolute;
  inset:12%;
  border-radius:40%;
  background:rgba(102,214,44,.11);
  filter:blur(30px);
  pointer-events:none;
}
.modern-match3 .match3-grid{
  position:relative;
  z-index:2;
  width:100%!important;
  display:grid;
  grid-template-columns:repeat(8,1fr);
  gap:5px!important;
  padding:0!important;
  border:0!important;
  border-radius:14px;
  background:transparent!important;
  box-shadow:none!important;
}
.modern-match3 .match3-grid button{
  position:relative;
  aspect-ratio:1/1;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:15px!important;
  overflow:visible;
  background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.025))!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -5px 10px rgba(0,0,0,.13),
    0 4px 6px rgba(3,14,18,.18)!important;
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;
}
.modern-match3 .match3-grid button:hover{
  transform:translateY(-2px) scale(1.035);
  filter:brightness(1.08);
  z-index:8;
}
.modern-match3 .match3-grid button.selected{
  outline:3px solid #fff!important;
  box-shadow:
    0 0 0 4px #66d62c,
    0 0 24px rgba(102,214,44,.52),
    inset 0 -5px 10px rgba(0,0,0,.13)!important;
  transform:scale(1.08);
  z-index:12;
}
.gem-sprite{
  position:absolute;
  inset:11%;
  display:grid;
  place-items:center;
  border-radius:32%;
  transform:translateZ(8px);
  transform-style:preserve-3d;
  box-shadow:
    inset 0 7px 10px rgba(255,255,255,.48),
    inset 0 -11px 13px rgba(0,0,0,.20),
    0 8px 8px rgba(0,0,0,.23);
}
.gem-sprite:before{
  content:"";
  position:absolute;
  inset:9% 16% 48%;
  border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.84),rgba(255,255,255,.08));
  filter:blur(.3px);
}
.gem-sprite>b{
  position:relative;
  z-index:2;
  font-size:clamp(18px,4.5vw,32px);
  line-height:1;
  color:rgba(255,255,255,.95);
  text-shadow:0 2px 3px rgba(0,0,0,.18);
}
.modern-gem.g0 .gem-sprite{background:linear-gradient(145deg,#ff9aa2,#ef4656 58%,#9d1f2d)}
.modern-gem.g1 .gem-sprite{background:linear-gradient(145deg,#87c8ff,#338de8 58%,#1456a8)}
.modern-gem.g2 .gem-sprite{background:linear-gradient(145deg,#b7ff8f,#66d62c 58%,#2d9510)}
.modern-gem.g3 .gem-sprite{background:linear-gradient(145deg,#ffe982,#f5c835 58%,#bd8a12)}
.modern-gem.g4 .gem-sprite{background:linear-gradient(145deg,#d1a9ff,#9b61ed 58%,#6231a8)}
.modern-gem.g5 .gem-sprite{background:linear-gradient(145deg,#ffc07c,#ff8439 58%,#bb4817)}

.gem-eye{
  position:absolute;
  z-index:3;
  top:39%;
  width:8%;
  aspect-ratio:1/1;
  min-width:2px;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 -1px 1px rgba(0,0,0,.25);
  opacity:.88;
}
.gem-eye:after{
  content:"";
  position:absolute;
  width:45%;height:45%;
  left:36%;top:33%;
  border-radius:50%;
  background:#172126;
}
.gem-eye.e1{left:34%}.gem-eye.e2{right:34%}

.modern-gem:hover .gem-eye:after{left:46%}
.gem-power{
  position:absolute;
  z-index:5;
  right:-8%;
  bottom:-8%;
  width:38%;
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,255,255,.95);
  border-radius:50%;
  background:#182832;
  color:#fff;
  font-size:clamp(10px,2.4vw,17px);
  font-style:normal;
  font-weight:1000;
  box-shadow:0 4px 8px rgba(0,0,0,.35),0 0 12px currentColor;
}
.special.row .gem-power,.special.col .gem-power{background:#2574bd;color:#b9e2ff}
.special.bomb .gem-power{background:#c84726;color:#ffd49c}
.special.nova .gem-power{
  background:conic-gradient(#ff6575,#ffd24d,#66d62c,#48a7d2,#a879ff,#ff6575);
  color:#fff;
  animation:novaSpin 2.3s linear infinite;
}
@keyframes novaSpin{to{transform:rotate(360deg)}}

.modern-gem.swapping{animation:gemSwap .14s ease both}
@keyframes gemSwap{
  45%{transform:scale(.88) rotate(-4deg)}
  100%{transform:scale(1.03)}
}
.modern-gem.burst .gem-sprite{
  animation:gemBurst .24s ease forwards;
}
.modern-gem.burst:before,
.modern-gem.burst:after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:12%;height:12%;
  border-radius:50%;
  background:#fff;
  box-shadow:
    -24px -10px 0 #66d62c,
    22px -15px 0 #48a7d2,
    -15px 22px 0 #ffd24d,
    24px 17px 0 #ff6575;
  animation:spriteParticles .25s ease forwards;
  z-index:20;
}
.modern-gem.burst:after{transform:rotate(45deg);animation-delay:.025s}
@keyframes gemBurst{
  0%{transform:scale(1);filter:brightness(1)}
  48%{transform:scale(1.22);filter:brightness(1.8)}
  100%{transform:scale(.18);filter:brightness(2);opacity:0}
}
@keyframes spriteParticles{
  from{transform:translate(-50%,-50%) scale(.55);opacity:1}
  to{transform:translate(-50%,-50%) scale(1.6);opacity:0}
}
.modern-gem:not(.burst) .gem-sprite{
  animation:gemIdle 2.8s ease-in-out infinite;
  animation-delay:calc((var(--combo,1) + 1) * -.14s);
}
@keyframes gemIdle{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-2px) rotate(.6deg)}
}

.m3-legend{
  width:min(540px,100%);
  margin:9px auto 4px;
  display:flex;
  justify-content:center;
  gap:6px;
  flex-wrap:wrap;
}
.m3-legend span{
  display:flex;
  gap:4px;
  align-items:center;
  padding:4px 7px;
  border:1px solid #d9e3e6;
  border-radius:999px;
  background:#fff;
  color:#596970;
  font-size:9px;
  font-weight:800;
}
.m3-legend i{
  width:20px;height:20px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#213139;
  color:#fff;
  font-style:normal;
  font-weight:1000;
}

@media(max-width:620px){
  .modern-match3 .m3-head{
    grid-template-columns:1fr 1fr;
  }
  .m3-progress{grid-column:1/-1;grid-row:2}
  .m3-scorecard,.m3-stat{min-width:0;padding:5px 7px}
  .m3-scorecard strong,.m3-stat strong{font-size:15px}
  .m3-stage{width:min(390px,100%,calc(100dvh - 320px))}
  .modern-match3 .match3-grid{gap:3px!important}
}
@media(max-height:650px){
  .modern-match3 .m3-head{gap:4px;margin-bottom:5px}
  .m3-scorecard,.m3-stat,.m3-progress{padding:4px 6px}
  .m3-stage{width:min(320px,100%,calc(100dvh - 260px))}
  .m3-legend{margin-top:5px}
  .m3-legend span{font-size:7px;padding:2px 5px}
}

@media(max-height:650px) and (max-width:430px){
  .modern-match3 .m3-head{grid-template-columns:1fr 1fr!important}
  .modern-match3 .m3-progress{grid-column:1/-1!important;padding:3px 5px!important}
  .m3-scorecard,.m3-stat{padding:3px 5px!important}
  .m3-scorecard small,.m3-stat small,.m3-progress small{font-size:6px!important}
  .m3-scorecard strong,.m3-stat strong{font-size:13px!important}
  .m3-stage{width:min(275px,100%)!important;padding:6px!important;border-radius:16px!important}
  .modern-match3 .match3-grid{gap:2px!important}
  .m3-legend{display:none!important}
  .modern-match3 .game-status{margin-top:4px!important;font-size:9px!important}
}


/* v0.5.7 — reward identity record */
.tgg-reward-identity{
  position:fixed;
  inset:0;
  z-index:1000002;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(12,24,29,.68);
  backdrop-filter:blur(7px);
}
.tgg-reward-identity[hidden]{display:none!important}
.tgg-identity-card{
  width:min(460px,100%);
  padding:24px;
  border:1px solid #d5e2e6;
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 0%,rgba(102,214,44,.14),transparent 34%),
    linear-gradient(180deg,#fff,#f5f9f7);
  box-shadow:0 28px 60px rgba(8,21,27,.32);
  text-align:center;
  color:#1d2b32;
}
.tgg-identity-badge{
  width:62px;
  height:62px;
  margin:-5px auto 10px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(145deg,#a8f67d,#5cca29);
  box-shadow:0 10px 22px rgba(61,168,18,.20),inset 0 1px 0 rgba(255,255,255,.6);
  font-size:30px;
}
.tgg-identity-card h2{margin:4px 0 7px;font-size:25px}
.tgg-identity-card>p{margin:0 auto 16px;max-width:390px;color:#586970;font-size:13px;line-height:1.5}
.tgg-identity-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  text-align:left;
}
.tgg-identity-form label{
  display:grid;
  gap:5px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
  color:#52636a;
}
.tgg-identity-form input{
  width:100%;
  box-sizing:border-box;
  min-height:44px;
  padding:9px 11px;
  border:1px solid #c7d5da;
  border-radius:10px;
  background:#fff;
  color:#172126;
  font:inherit;
  font-size:15px;
  outline:none;
}
.tgg-identity-form input:focus{
  border-color:#66d62c;
  box-shadow:0 0 0 3px rgba(102,214,44,.16);
}
.tgg-identity-form button{
  grid-column:1/-1;
  min-height:46px;
  border:1px solid #4cad21;
  border-radius:11px;
  background:linear-gradient(180deg,#9cf56f,#61ce2d);
  color:#17330c;
  font-weight:1000;
  cursor:pointer;
  box-shadow:0 5px 0 #449f1f,0 8px 16px rgba(61,168,18,.16);
}
.tgg-identity-form button:active{transform:translateY(3px);box-shadow:0 2px 0 #449f1f}
.tgg-identity-form button:disabled{opacity:.65;cursor:wait}
.tgg-identity-error{
  grid-column:1/-1;
  padding:8px 10px;
  border-radius:8px;
  background:#ffe6e8;
  color:#a12e39;
  font-size:11px;
  font-weight:800;
}
.tgg-identity-card>small{
  display:block;
  margin-top:13px;
  color:#78878d;
  font-size:9px;
  line-height:1.4;
}
.tgg-reward-name{
  color:#2d9718;
  font-size:12px;
  font-weight:900;
}
@media(max-width:520px){
  .tgg-identity-card{padding:18px}
  .tgg-identity-form{grid-template-columns:1fr}
  .tgg-identity-form button,.tgg-identity-error{grid-column:1}
}

/* v0.5.8 — Alien Skee-Ball/* v0.5.8 — Alien Skee-Ball visible power/direction timing meters */
.skee-skill{
  width:min(620px,100%);
  margin:8px auto 8px;
  padding:10px;
  border:1px solid #cfdde2;
  border-radius:14px;
  background:linear-gradient(180deg,#ffffff,#eef4f6);
  box-shadow:0 5px 14px rgba(23,37,45,.08);
}
.skill-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:7px;
}
.skill-row b{
  color:#1d2c33;
  font-size:11px;
  letter-spacing:.09em;
}
.skill-row span{
  color:#52646c;
  font-size:11px;
  font-weight:800;
}
.skill-meter{
  position:relative;
  height:28px;
  overflow:visible;
  border:2px solid #243b46;
  border-radius:999px;
  background:
    linear-gradient(90deg,#3a7bb6 0 22%,#66d62c 22% 68%,#ffb34d 68% 84%,#ff6575 84% 100%);
  box-shadow:
    inset 0 3px 7px rgba(0,0,0,.22),
    0 3px 8px rgba(23,37,45,.12);
}
.skill-fill{
  position:absolute;
  left:0;top:0;bottom:0;
  width:50%;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(255,255,255,.40));
  box-shadow:inset -2px 0 0 rgba(255,255,255,.82);
  pointer-events:none;
}
.skill-target{
  position:absolute;
  top:3px;
  bottom:3px;
  left:72%;
  width:12%;
  transform:translateX(-50%);
  border:2px solid #fff;
  border-radius:999px;
  box-shadow:0 0 0 2px rgba(23,37,45,.28),0 0 12px rgba(255,255,255,.72);
  pointer-events:none;
}
.skill-needle{
  position:absolute;
  z-index:8;
  top:-7px;
  bottom:-7px;
  left:50%;
  width:5px;
  transform:translateX(-50%);
  border-radius:999px;
  background:#fff;
  box-shadow:0 0 0 2px #172a33,0 0 12px rgba(255,255,255,.92);
  text-decoration:none;
  pointer-events:none;
}
.skill-needle:before{
  content:"";
  position:absolute;
  left:50%;top:-8px;
  transform:translateX(-50%);
  width:0;height:0;
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-top:9px solid #172a33;
}
.skill-zone{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  color:rgba(255,255,255,.80);
  font-size:7px;
  font-weight:1000;
  letter-spacing:.06em;
  pointer-events:none;
}
.skill-zone.low{left:10px}
.skill-zone.high{right:10px}
.skill-direction-labels{
  display:none;
  justify-content:space-between;
  margin:4px 6px 0;
  color:#65767e;
  font-size:8px;
  font-weight:900;
  letter-spacing:.06em;
}
.skee-skill.direction-mode .skill-meter{
  background:linear-gradient(90deg,#ff6575 0%,#ffb34d 24%,#66d62c 43%,#66d62c 57%,#ffb34d 76%,#ff6575 100%);
}
.skee-skill.direction-mode .skill-fill{display:none}
.skee-skill.direction-mode .skill-direction-labels{display:flex}
.skee-skill.direction-mode .skill-zone{display:none}
.skee-action{
  display:block;
  width:min(300px,100%);
  min-height:46px;
  margin:9px auto 0;
  border:1px solid #4bab22;
  border-radius:12px;
  background:linear-gradient(180deg,#a5f779,#62cf2e);
  color:#17340d;
  font-weight:1000;
  box-shadow:0 5px 0 #449c20,0 8px 14px rgba(61,168,18,.14);
  cursor:pointer;
  touch-action:none;
}
.skee-action:active{
  transform:translateY(3px);
  box-shadow:0 2px 0 #449c20;
}
.skee-action:disabled{
  opacity:.60;
  cursor:default;
}
@media(max-width:560px){
  .skee-skill{padding:8px}
  .skill-meter{height:25px}
  .skill-row span{font-size:9px}
}

/* v0.5.9 — photographic Cable Match / Parts Match */
.tgg-quiz .quiz-art{
  background:#111820!important;
  border-color:#c8d5da!important;
  box-shadow:0 12px 24px rgba(17,31,38,.15)!important;
}
.tgg-quiz .quiz-art img{
  width:100%!important;
  height:min(235px,29dvh)!important;
  max-height:none!important;
  object-fit:contain!important;
  background:linear-gradient(145deg,#f9fbfb,#e7edef);
}

/* v0.5.9 — Skee-Ball skill meter viewport fit */
.tgg-game-host:has(.skee-hud) .tgg-canvas-wrap{
  
}
@media(max-width:560px){
  .tgg-game-host:has(.skee-hud) .tgg-canvas-wrap{
    
  }
}
@media(max-height:650px) and (max-width:430px){
  .skee-hud{padding:4px 6px!important;margin-bottom:4px!important}
  .skee-skill{padding:5px 6px!important;margin:4px auto!important}
  .skill-row{margin-bottom:4px!important}
  .skill-meter{height:22px!important}
  .skee-action{min-height:36px!important;margin-top:5px!important}
  .tgg-game-host:has(.skee-hud) .tgg-canvas-wrap{
    
  }
}


/* v0.6.0 — Alien Invasion power-up HUD */
.alien-invasion-hud{
  width:min(620px,100%);
  margin:0 auto 8px;
  display:grid;
  grid-template-columns:auto auto auto 1fr;
  gap:6px;
  align-items:center;
}
.alien-invasion-hud>span,
.alien-invasion-hud>strong{
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:5px 8px;
  border:1px solid #d4e0e4;
  border-radius:9px;
  background:linear-gradient(180deg,#fff,#f2f7f8);
  color:#5a6970;
  font-size:9px;
  box-shadow:0 3px 8px rgba(23,37,45,.06);
}
.alien-invasion-hud b{color:#23343c;font-size:13px;margin-left:4px}
.alien-invasion-hud>strong{
  color:#2f7d20;
  font-size:10px;
  text-align:center;
}
@media(max-width:560px){
  .alien-invasion-hud{grid-template-columns:repeat(3,1fr)}
  .alien-invasion-hud>strong{grid-column:1/-1}
}
@media(max-height:650px){
  .alien-invasion-hud{margin-bottom:4px}
  .alien-invasion-hud>span,.alien-invasion-hud>strong{min-height:26px;padding:3px 5px}
}


/* v0.7.0 — Little Learners preschool / kindergarten suite */
.tgg-game-card.kid-card{
  position:relative;
  background:
    radial-gradient(circle at 85% 10%,rgba(255,221,91,.24),transparent 26%),
    radial-gradient(circle at 8% 88%,rgba(72,167,210,.14),transparent 30%),
    linear-gradient(180deg,#fff,#f6fbf4)!important;
  border-color:#cfe6c5!important;
}
.tgg-game-card.kid-card:before{
  content:"LITTLE LEARNERS";
  position:absolute;
  top:8px;right:8px;
  padding:3px 6px;
  border-radius:999px;
  background:#e9f8e3;
  color:#388b20;
  font-size:7px;
  font-weight:1000;
  letter-spacing:.08em;
}
.tgg-game-card.kid-card em{
  background:linear-gradient(180deg,#a2f177,#65cf32)!important;
  color:#17340d!important;
}
.kid-game{
  width:min(720px,100%);
  margin:auto;
  padding:12px;
  border:1px solid #d7e5da;
  border-radius:20px;
  background:
    radial-gradient(circle at 10% 5%,rgba(255,221,91,.18),transparent 26%),
    radial-gradient(circle at 90% 8%,rgba(72,167,210,.13),transparent 24%),
    linear-gradient(180deg,#fff,#f7fbf5);
  box-shadow:0 14px 28px rgba(29,50,35,.08);
}
.kid-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:7px;
}
.kid-top>div:first-child{
  display:grid;
  gap:1px;
}
.kid-top small{
  color:#5fa044;
  font-size:8px;
  font-weight:1000;
  letter-spacing:.11em;
}
.kid-top b{
  color:#20312a;
  font-size:clamp(20px,5vw,31px);
  line-height:1.05;
}
.kid-score{
  min-width:74px;
  padding:7px 10px;
  border:1px solid #d8e5dd;
  border-radius:14px;
  background:#fff;
  text-align:center;
  box-shadow:0 4px 10px rgba(27,49,34,.06);
}
.kid-score strong{
  font-size:24px;
  color:#51b329;
}
.kid-score span{
  color:#738179;
  font-size:11px;
}
.kid-progress{
  height:9px;
  overflow:hidden;
  margin-bottom:10px;
  border-radius:999px;
  background:#e6eee8;
}
.kid-progress i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#66d62c,#ffd64f,#48a7d2);
  transition:width .25s ease;
}
.kid-prompt{
  display:grid;
  grid-template-columns:48px 1fr;
  align-items:center;
  gap:9px;
  padding:8px 10px;
  border-radius:14px;
  background:#eef8ea;
}
.kid-listen{
  width:44px;height:44px;
  border:1px solid #c8ddc1;
  border-radius:13px;
  background:linear-gradient(180deg,#fff,#e8f5e3);
  font-size:21px;
  cursor:pointer;
  box-shadow:0 3px 7px rgba(32,65,27,.08);
}
.kid-prompt>div{
  color:#25372f;
  font-size:clamp(18px,4vw,25px);
  font-weight:900;
}
.kid-visual{
  min-height:150px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:4px;
  padding:10px;
  text-align:center;
}
.kid-big-letter{
  width:115px;height:115px;
  display:grid;
  place-items:center;
  border-radius:28px;
  background:linear-gradient(145deg,#b4fa90,#65d331);
  color:#18390d;
  font-size:78px;
  font-weight:1000;
  line-height:1;
  box-shadow:inset 0 5px 9px rgba(255,255,255,.55),0 10px 18px rgba(66,140,37,.14);
}
.kid-visual small{
  color:#64736b;
  font-size:13px;
  font-weight:800;
}
.counting-pile{
  width:min(500px,100%);
  display:flex;
  justify-content:center;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  padding:8px;
}
.counting-pile span{
  font-size:clamp(31px,8vw,54px);
  filter:drop-shadow(0 5px 4px rgba(0,0,0,.10));
}
.kid-shape{
  font-size:clamp(90px,23vw,150px);
  line-height:1;
  text-shadow:0 10px 12px rgba(38,63,47,.13);
}
.shape-circle{color:#48a7d2}.shape-square{color:#66d62c}.shape-triangle{color:#ffb34d}.shape-rectangle{color:#a879ff}.shape-star{color:#f5cb37}.shape-heart{color:#ef6375}.shape-diamond{color:#39baa5}.shape-oval{color:#d079cf}
.kid-color-orb{
  width:145px;height:145px;
  border-radius:50%;
  background:
    radial-gradient(circle at 30% 22%,#fff,rgba(255,255,255,.38) 13%,transparent 25%),
    var(--kidcolor);
  box-shadow:inset 0 -18px 24px rgba(0,0,0,.18),0 14px 24px rgba(25,46,34,.18);
}
.kid-pattern,.kid-school{
  padding:14px 18px;
  border:1px solid #dde6e0;
  border-radius:18px;
  background:#fff;
  color:#273830;
  font-size:clamp(30px,8vw,56px);
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 7px 16px rgba(31,50,39,.07);
}
.kid-pattern b{
  display:inline-grid;
  place-items:center;
  min-width:55px;
  color:#65bc3b;
}
.kid-word-pic{
  display:grid;
  gap:5px;
  place-items:center;
  font-size:100px;
  filter:drop-shadow(0 7px 6px rgba(0,0,0,.10));
}
.kid-word-pic small{
  padding:4px 9px;
  border-radius:999px;
  background:#fff;
  color:#31433a;
  font-size:18px;
  box-shadow:0 3px 8px rgba(0,0,0,.06);
}
.kid-answers{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:2px auto 8px;
  width:min(620px,100%);
}
.kid-answers button{
  min-height:64px;
  padding:10px 12px;
  border:2px solid #d3dfd7;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f0f6f2);
  color:#26362f;
  font-size:clamp(17px,4vw,23px);
  font-weight:1000;
  cursor:pointer;
  box-shadow:0 5px 0 #c4d2c9,0 8px 13px rgba(31,51,39,.07);
  touch-action:manipulation;
  transition:transform .1s ease,box-shadow .1s ease;
}
.kid-answers button:hover{
  transform:translateY(-2px);
  border-color:#96d67c;
}
.kid-answers button:active{
  transform:translateY(3px);
  box-shadow:0 2px 0 #c4d2c9;
}
.kid-answers button.correct{
  border-color:#4fae29!important;
  background:linear-gradient(180deg,#c9ffae,#78db49)!important;
  color:#17370e!important;
  animation:kidCorrect .45s ease;
}
.kid-answers button.wrong{
  border-color:#e98c95!important;
  background:#ffe8ea!important;
  animation:kidWrong .28s ease;
}
@keyframes kidCorrect{50%{transform:scale(1.06) rotate(-1deg)}}
@keyframes kidWrong{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.kid-feedback{
  min-height:32px;
  padding:7px 10px;
  border-radius:11px;
  background:#f2f6f3;
  color:#64746b;
  font-size:12px;
  font-weight:800;
  text-align:center;
}
@media(max-width:520px){
  .kid-game{padding:8px;border-radius:15px}
  .kid-visual{min-height:115px;padding:6px}
  .kid-big-letter{width:90px;height:90px;font-size:62px}
  .kid-color-orb{width:105px;height:105px}
  .kid-word-pic{font-size:76px}
  .kid-answers{gap:6px}
  .kid-answers button{min-height:54px;padding:7px;font-size:16px}
}
@media(max-height:650px){
  .kid-top{margin-bottom:4px}
  .kid-progress{margin-bottom:5px;height:6px}
  .kid-prompt{padding:5px 7px}
  .kid-listen{width:36px;height:36px;font-size:18px}
  .kid-visual{min-height:82px;padding:3px}
  .kid-big-letter{width:70px;height:70px;font-size:48px}
  .kid-color-orb{width:75px;height:75px}
  .kid-word-pic{font-size:58px}
  .kid-pattern,.kid-school{font-size:25px;padding:8px 10px}
  .counting-pile span{font-size:28px}
  .kid-answers button{min-height:45px}
}


/* v0.8.0 — searchable arcade browser, thumbnail library, community feedback */
.tgg-browser-tools{
  display:grid;
  grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(145px,.7fr));
  gap:9px;
  align-items:center;
  margin:0 0 8px;
  padding:10px;
  border:1px solid #d9e4e7;
  border-radius:15px;
  background:linear-gradient(180deg,#fff,#f4f8f9);
  box-shadow:0 5px 14px rgba(23,37,45,.06);
}
.tgg-search-wrap{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 11px;
  border:1px solid #cbd8dd;
  border-radius:11px;
  background:#fff;
}
.tgg-search-wrap>span{
  color:#569f3a;
  font-size:24px;
  line-height:1;
}
.tgg-search-wrap input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:#1d2b32;
  font:inherit;
}
.tgg-browser-tools select{
  min-height:44px;
  border:1px solid #cbd8dd;
  border-radius:11px;
  padding:0 34px 0 10px;
  background:#fff;
  color:#304149;
  font:inherit;
  font-size:12px;
  font-weight:800;
}
.tgg-community-actions{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.tgg-community-actions button{
  min-height:38px;
  padding:7px 12px;
  border:1px solid #c9d7dc;
  border-radius:10px;
  background:linear-gradient(180deg,#fff,#edf3f5);
  color:#2e414a;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 3px 7px rgba(23,37,45,.06);
}
.tgg-community-actions .tgg-request-game{
  border-color:#8fd570;
  background:linear-gradient(180deg,#eaffdf,#c9f4b6);
  color:#2d681b;
}
.tgg-community-actions .tgg-report-bug{
  border-color:#efb9bd;
  background:linear-gradient(180deg,#fff3f4,#ffe1e4);
  color:#9a3741;
}
.tgg-filter-summary{
  min-height:20px;
  margin:0 2px 8px;
  color:#67777e;
  font-size:10px;
  font-weight:800;
}

.tgg-game-card{
  overflow:hidden!important;
}
.tgg-thumb{
  position:relative;
  width:calc(100% + 24px);
  margin:-12px -12px 9px;
  aspect-ratio:16/9;
  overflow:hidden;
  border-bottom:1px solid rgba(22,42,50,.10);
  background:#172733;
}
.tgg-thumb:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 47%,rgba(6,19,26,.48));
}
.tgg-thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .22s ease,filter .22s ease;
}
.tgg-game-card:hover .tgg-thumb img{
  transform:scale(1.045);
  filter:saturate(1.08) brightness(1.04);
}
.tgg-thumb-age,.tgg-thumb-reward{
  position:absolute;
  z-index:2;
  bottom:6px;
  padding:3px 6px;
  border-radius:999px;
  backdrop-filter:blur(5px);
  font-size:7px;
  font-weight:1000;
  letter-spacing:.04em;
  box-shadow:0 2px 5px rgba(0,0,0,.18);
}
.tgg-thumb-age{
  left:6px;
  color:#fff;
  background:rgba(10,30,39,.78);
}
.tgg-thumb-reward{
  right:6px;
  color:#20310e;
  background:rgba(210,255,181,.92);
}
.tgg-game-card>.tgg-card-fan,
.tgg-game-card>.tgg-memory-icon,
.tgg-game-card>.tgg-coming-num,
.tgg-game-card>.tgg-ttt-icon,
.tgg-game-card>.tgg-connect-icon,
.tgg-game-card>.tgg-snake-icon,
.tgg-game-card>.tgg-sudoku-icon,
.tgg-game-card>.tgg-word-icon,
.tgg-game-card>.tgg-math-icon,
.tgg-game-card>.tgg-rps-icon,
.tgg-game-card>.tgg-mini-icon{
  display:none!important;
}
.tgg-game-card[hidden]{display:none!important}

.tgg-feedback-modal{
  position:fixed;
  inset:0;
  z-index:1000005;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(8,20,27,.70);
  backdrop-filter:blur(8px);
}
.tgg-feedback-modal[hidden]{display:none!important}
.tgg-feedback-card{
  position:relative;
  width:min(590px,100%);
  max-height:min(760px,92dvh);
  overflow:auto;
  padding:22px;
  border:1px solid #d4e1e5;
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 0%,rgba(102,214,44,.12),transparent 30%),
    linear-gradient(180deg,#fff,#f5f9f7);
  color:#213139;
  box-shadow:0 26px 64px rgba(5,18,25,.34);
}
.tgg-feedback-close{
  position:absolute;
  right:12px;top:10px;
  width:36px;height:36px;
  border:0;
  border-radius:50%;
  background:#edf3f4;
  color:#4c5e66;
  font-size:24px;
  cursor:pointer;
}
.tgg-feedback-icon{
  width:58px;height:58px;
  display:grid;
  place-items:center;
  margin:0 auto 8px;
  border-radius:17px;
  background:linear-gradient(145deg,#b9fa99,#65d331);
  box-shadow:0 8px 18px rgba(61,168,18,.16);
  font-size:28px;
}
.tgg-feedback-card h2{
  margin:3px 0 5px;
  text-align:center;
}
.tgg-feedback-intro{
  margin:0 auto 15px;
  max-width:470px;
  color:#63737a;
  font-size:12px;
  text-align:center;
  line-height:1.5;
}
.tgg-feedback-form{
  display:grid;
  gap:10px;
}
.tgg-feedback-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.tgg-feedback-form label{
  display:grid;
  gap:5px;
  color:#53646b;
  font-size:10px;
  font-weight:900;
  letter-spacing:.04em;
}
.tgg-feedback-form label small{
  font-weight:700;
  letter-spacing:0;
}
.tgg-feedback-form input,
.tgg-feedback-form select,
.tgg-feedback-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #c8d6da;
  border-radius:10px;
  padding:9px 10px;
  background:#fff;
  color:#1c2b32;
  font:inherit;
  font-size:14px;
  outline:none;
}
.tgg-feedback-form input,
.tgg-feedback-form select{min-height:42px}
.tgg-feedback-form textarea{resize:vertical;min-height:115px}
.tgg-feedback-form input:focus,
.tgg-feedback-form select:focus,
.tgg-feedback-form textarea:focus{
  border-color:#66d62c;
  box-shadow:0 0 0 3px rgba(102,214,44,.14);
}
.tgg-feedback-submit{
  min-height:45px;
  border:1px solid #4ba721;
  border-radius:11px;
  background:linear-gradient(180deg,#a2f377,#62ce2f);
  color:#18340e;
  font-weight:1000;
  cursor:pointer;
  box-shadow:0 5px 0 #459d21,0 8px 14px rgba(61,168,18,.14);
}
.tgg-feedback-submit:disabled{opacity:.65;cursor:wait}
.tgg-feedback-error{
  padding:8px 10px;
  border-radius:9px;
  background:#ffe5e8;
  color:#a0313b;
  font-size:11px;
  font-weight:800;
}
.tgg-feedback-note{
  display:block;
  margin-top:12px;
  color:#7b898f;
  font-size:9px;
  text-align:center;
}

@media(max-width:900px){
  .tgg-browser-tools{
    grid-template-columns:1fr 1fr;
  }
  .tgg-search-wrap{grid-column:1/-1}
}
@media(max-width:560px){
  .tgg-browser-tools{
    grid-template-columns:1fr;
    gap:6px;
    padding:7px;
  }
  .tgg-search-wrap{grid-column:auto}
  .tgg-community-actions{
    grid-column:auto;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .tgg-community-actions button{font-size:10px;padding:6px}
  .tgg-feedback-row{grid-template-columns:1fr}
  .tgg-feedback-card{padding:18px 14px}
  .tgg-thumb{width:calc(100% + 18px);margin:-9px -9px 7px}
}


/* v0.8.2 — thumbnail clarity + Little Learners badge correction */
.tgg-thumb img{
  image-rendering:auto!important;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.tgg-thumb-reward.learning{
  color:#174369!important;
  background:rgba(218,241,255,.95)!important;
}

@media(max-width:560px){
  }
@media(max-height:650px) and (max-width:430px){
  }

@media(max-height:650px) and (max-width:430px){
  .tgg-quiz{padding-bottom:4px!important}
  .tgg-quiz .quiz-art img{height:min(145px,24dvh)!important}
  .tgg-quiz .quiz-options{gap:4px!important}
  .tgg-quiz .quiz-options button{min-height:36px!important;padding:5px 7px!important;font-size:10px!important}
  .tgg-quiz .quiz-head{margin-bottom:4px!important}
}


/* v0.9.0 — Tank Battle */
.tank-hud{
  width:min(700px,100%);
  margin:0 auto 7px;
  display:grid;
  grid-template-columns:repeat(5,auto) minmax(160px,1fr);
  gap:5px;
  align-items:center;
}
.tank-hud>span,.tank-hud>strong{
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:4px 7px;
  border:1px solid #d3dfe2;
  border-radius:9px;
  background:linear-gradient(180deg,#fff,#edf3f4);
  color:#607078;
  font-size:8px;
  font-weight:900;
  letter-spacing:.05em;
  box-shadow:0 3px 8px rgba(21,38,45,.06);
}
.tank-hud b{
  margin-left:4px;
  color:#26383f;
  font-size:12px;
  letter-spacing:0;
}
.tank-hud>strong{
  color:#397327;
  font-size:9px;
  text-align:center;
}
.tank-controls{
  width:min(700px,100%);
  margin:6px auto 0!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  gap:16px!important;
}
.tank-dpad{
  display:grid;
  justify-items:center;
  gap:3px;
}
.tank-dpad>button,.tank-dpad span button{
  width:48px;
  height:40px;
  min-width:0!important;
  padding:0!important;
  font-size:17px!important;
}
.tank-dpad span{
  display:flex;
  gap:3px;
}
.tank-fire{
  width:100px;
  height:84px!important;
  border-radius:50%!important;
  background:
    radial-gradient(circle at 35% 28%,#fff7b8 0 8%,#ffb849 25%,#d85c34 58%,#732b24 100%)!important;
  border:4px solid #47201c!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:1000!important;
  box-shadow:0 6px 0 #391814,0 10px 18px rgba(93,44,22,.22)!important;
}
.tank-fire:active{
  transform:translateY(4px);
  box-shadow:0 2px 0 #391814!important;
}
.tgg-game-host:has(.tank-controls){
  background:
    radial-gradient(circle at 50% -10%,rgba(102,214,44,.12),transparent 38%),
    linear-gradient(180deg,#f6f9f5,#edf2ee)!important;
}
.tgg-game-host:has(.tank-controls) .tgg-canvas-wrap{
  
}
.tgg-game-host:has(.tank-controls) canvas{
  border:4px solid #27372f!important;
  border-radius:17px!important;
  box-shadow:0 16px 28px rgba(20,35,29,.20),0 0 0 1px rgba(102,214,44,.20)!important;
}
@media(max-width:650px){
  .tank-hud{grid-template-columns:repeat(3,1fr)}
  .tank-hud>strong{grid-column:1/-1}
  .tank-controls{gap:10px!important}
  .tgg-game-host:has(.tank-controls) .tgg-canvas-wrap{
    
  }
}
@media(max-height:650px) and (max-width:430px){
  .tank-hud{margin-bottom:3px;gap:3px}
  .tank-hud>span,.tank-hud>strong{min-height:23px;padding:2px 4px;font-size:7px}
  .tank-hud b{font-size:9px}
  .tank-controls{margin-top:3px!important}
  .tank-dpad>button,.tank-dpad span button{width:38px;height:31px;font-size:13px!important}
  .tank-fire{width:68px;height:66px!important;font-size:11px!important}
  .tgg-game-host:has(.tank-controls) .tgg-canvas-wrap{
    
  }
}


/* v0.9.1 — Artillery Tanks */
.artillery-hud{
  width:min(740px,100%);
  margin:0 auto 6px;
  display:grid;
  grid-template-columns:repeat(6,auto) minmax(150px,1fr);
  gap:5px;
  align-items:center;
}
.artillery-hud>span,.artillery-hud>strong{
  min-height:31px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:4px 7px;
  border:1px solid #d4e0e3;
  border-radius:9px;
  background:linear-gradient(180deg,#fff,#edf3f5);
  color:#607079;
  font-size:8px;
  font-weight:900;
  letter-spacing:.05em;
  box-shadow:0 3px 8px rgba(22,39,47,.06);
}
.artillery-hud b{margin-left:4px;color:#26383f;font-size:12px;letter-spacing:0}
.artillery-hud>strong{color:#397328;font-size:9px;text-align:center}
.artillery-weaponbar{
  width:min(740px,100%);
  margin:0 auto 7px;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:5px;
}
.artillery-weaponbar button{
  position:relative;
  min-width:0;
  min-height:68px;
  padding:6px 5px;
  border:1px solid #cedade;
  border-radius:11px;
  background:linear-gradient(180deg,#fff,#eff4f5);
  color:#34464e;
  cursor:pointer;
  box-shadow:0 3px 7px rgba(19,36,43,.05);
}
.artillery-weaponbar button.selected{
  border-color:#66d62c;
  box-shadow:0 0 0 2px rgba(102,214,44,.18),0 5px 12px rgba(72,144,39,.10);
  background:linear-gradient(180deg,#f4ffef,#e7f8df);
}
.artillery-weaponbar button:disabled{opacity:.48;cursor:default}
.artillery-weaponbar span{
  display:block;
  font-size:18px;
  line-height:1;
  margin-bottom:3px;
}
.artillery-weaponbar b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:8px;
}
.artillery-weaponbar em{
  position:absolute;
  top:5px;right:6px;
  min-width:18px;
  padding:2px 4px;
  border-radius:999px;
  background:#25363d;
  color:#fff;
  font-size:7px;
  font-style:normal;
  font-weight:900;
}
.artillery-weaponbar small{
  display:block;
  margin-top:3px;
  color:#7b898f;
  font-size:6px;
  line-height:1.15;
}
.artillery-controls{
  width:min(740px,100%);
  margin:6px auto 0!important;
  display:flex!important;
  justify-content:center;
  align-items:center;
  gap:12px!important;
}
.artillery-aim{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:4px;
}
.artillery-aim button{
  min-width:112px!important;
  min-height:36px!important;
  font-size:9px!important;
}
.artillery-fire{
  min-width:118px!important;
  min-height:78px!important;
  border-radius:18px!important;
  border:3px solid #5e2b1b!important;
  background:
    radial-gradient(circle at 32% 24%,#fff7c0 0 8%,#ffbd54 24%,#d96b3a 58%,#6b2f22 100%)!important;
  color:#fff!important;
  font-size:17px!important;
  font-weight:1000!important;
  box-shadow:0 6px 0 #4b2118,0 10px 18px rgba(91,49,25,.18)!important;
}
.artillery-fire:active{transform:translateY(4px);box-shadow:0 2px 0 #4b2118!important}
.tgg-game-host:has(.artillery-controls){
  background:
    radial-gradient(circle at 50% -10%,rgba(72,167,210,.12),transparent 40%),
    linear-gradient(180deg,#f5f8fa,#edf2f4)!important;
}
.tgg-game-host:has(.artillery-controls) .tgg-canvas-wrap{
  
}
.tgg-game-host:has(.artillery-controls) canvas{
  border:4px solid #263942!important;
  border-radius:17px!important;
  box-shadow:0 16px 30px rgba(20,37,47,.20),0 0 0 1px rgba(72,167,210,.18)!important;
}
@media(max-width:720px){
  .artillery-hud{grid-template-columns:repeat(3,1fr)}
  .artillery-hud>strong{grid-column:1/-1}
  .artillery-weaponbar{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .artillery-weaponbar button{min-height:58px}
  .artillery-weaponbar small{display:none}
  .tgg-game-host:has(.artillery-controls) .tgg-canvas-wrap{
    
  }
}
@media(max-width:480px){
  .artillery-weaponbar{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
  .artillery-weaponbar button{min-height:50px;padding:4px}
  .artillery-weaponbar span{font-size:15px}
  .artillery-aim button{min-width:84px!important;height:31px!important}
  .artillery-fire{min-width:78px!important;min-height:68px!important;font-size:13px!important}
}
@media(max-height:650px) and (max-width:430px){
  .artillery-hud{gap:2px;margin-bottom:3px}
  .artillery-hud>span,.artillery-hud>strong{min-height:22px;padding:2px 3px;font-size:6px}
  .artillery-hud b{font-size:8px}
  .artillery-weaponbar{margin-bottom:3px}
  .artillery-weaponbar button{min-height:42px}
  .artillery-controls{margin-top:3px!important}
  .artillery-aim button{min-width:70px!important;height:27px!important;font-size:7px!important}
  .artillery-fire{min-width:65px!important;min-height:58px!important;font-size:11px!important}
  .tgg-game-host:has(.artillery-controls) .tgg-canvas-wrap{
    
  }
}


/* v0.9.7 Learning Lab */
.tgg-learning-panel{width:min(760px,100%);margin:0 auto;padding:18px;border:1px solid #dbe6e9;border-radius:22px;background:linear-gradient(180deg,#fff,#f4f8f9);box-shadow:0 16px 38px rgba(24,50,58,.12);text-align:center}
.learn-title{font-size:clamp(22px,4vw,36px);font-weight:950;color:#17262b;margin-bottom:12px}.learn-status{margin-top:12px;font-weight:850;color:#4d6269}.typing-lesson{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:12px;background:#e9f8e6;color:#24432b}.typing-target,.sight-word,.ninja-question{font-size:clamp(34px,8vw,70px);font-weight:950;letter-spacing:.04em;margin:18px 0;color:#17262b}.typing-target span.typed-ok{color:#20a900}.typing-target span.typed-bad{color:#d22;text-decoration:underline}.typing-input{width:min(520px,95%);font-size:24px;font-weight:850;text-align:center;padding:12px;border:3px solid #b8c9ce;border-radius:14px;outline:none}.typing-input:focus{border-color:#20b900;box-shadow:0 0 0 4px rgba(32,185,0,.12)}.typing-stats{margin:10px;font-weight:850}.typing-keyboard{display:grid;gap:5px;margin:14px auto 0}.typing-keyboard>div{display:flex;justify-content:center;gap:4px}.typing-keyboard span{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;background:#26363c;color:#fff;font-weight:900;box-shadow:0 3px 0 #10191d}.typing-keyboard span.active{background:#20b900;transform:translateY(2px);box-shadow:0 1px 0 #0b6d00}.defender-hud{display:flex;justify-content:space-around;gap:8px;flex-wrap:wrap}.defender-sky{height:min(46vh,380px);min-height:260px;position:relative;overflow:hidden;margin:12px 0;border-radius:18px;background:radial-gradient(circle at 30% 20%,#33466b,#08121e 58%,#030609);border:4px solid #1b2d35}.defender-sky:before{content:'✦  ·  ✧   ·   ✦  · ✧  ·  ✦';position:absolute;inset:10px;color:#fff8;font-size:28px;letter-spacing:22px}.fall-word{position:absolute;z-index:2;padding:6px 10px;border-radius:9px;background:#e7ffdf;color:#0e3912;font-size:22px;font-weight:950;box-shadow:0 0 18px #6cff69}.defender-base{position:absolute;bottom:8px;left:0;right:0;color:#8cff76;font-weight:950;letter-spacing:.08em}.sight-options,.ninja-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:560px;margin:auto}.sight-options button,.ninja-options button{min-height:62px;border:0;border-radius:14px;background:#172a31;color:#fff;font-size:22px;font-weight:950;box-shadow:0 5px 0 #071116}.sight-options button:hover,.ninja-options button:hover{background:#20a900}.ninja-score{font-weight:900;color:#53686f}@media(max-width:480px){.tgg-learning-panel{padding:10px;border-radius:14px}.typing-keyboard span{width:27px;height:30px;font-size:11px}.typing-lesson{font-size:11px}.defender-sky{min-height:230px}.sight-options button,.ninja-options button{min-height:50px;font-size:17px}}


/* v0.9.8 — visible category tabs + consistent tile labels */
.tgg-category-tabs{
  display:flex;gap:7px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;
  margin:0 0 9px;padding:2px 1px 7px;
}
.tgg-category-tabs button{
  flex:0 0 auto;min-height:37px;padding:7px 12px;border:1px solid #ccdadd;border-radius:999px;
  background:linear-gradient(180deg,#fff,#eff4f5);color:#445960;font-size:10px;font-weight:950;cursor:pointer;
  box-shadow:0 3px 7px rgba(20,39,47,.05);
}
.tgg-category-tabs button:hover{border-color:#9fc7ad;background:#f5fff0}
.tgg-category-tabs button.active{
  border-color:#64c83a;background:linear-gradient(180deg,#dffff0,#bff2a8);color:#255d19;
  box-shadow:0 0 0 2px rgba(102,214,44,.12),0 4px 10px rgba(62,145,34,.10);
}
.tgg-thumb-badges{
  position:absolute;z-index:2;right:6px;bottom:6px;display:flex;gap:4px;align-items:center;justify-content:flex-end;
}
.tgg-thumb-badge{
  padding:3px 6px;border-radius:999px;backdrop-filter:blur(5px);font-size:7px;font-weight:1000;
  letter-spacing:.04em;box-shadow:0 2px 5px rgba(0,0,0,.18);white-space:nowrap;
}
.tgg-thumb-badge.learning{color:#174369;background:rgba(218,241,255,.95)}
.tgg-thumb-badge.reward{color:#20310e;background:rgba(210,255,181,.92)}
.tgg-thumb-badge.play-only{color:#fff;background:rgba(53,65,71,.88)}
/* Retire the old single combined badge so older cached markup doesn't clash. */
.tgg-thumb-reward{display:none!important}
@media(max-width:560px){
  .tgg-category-tabs{margin-bottom:6px;padding-bottom:5px}
  .tgg-category-tabs button{min-height:34px;padding:6px 10px;font-size:9px}
  .tgg-thumb-badge{font-size:6px;padding:3px 5px}
}




/* v0.9.10 — audited light-theme arcade browser controls */
.tgg-category-tabs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin:0 0 10px;
  padding:0;
}

/* IMPORTANT: target the actual existing markup directly.
   The category buttons do not require a special class. */
.tgg-category-tabs > button{
  -webkit-appearance:none!important;
  appearance:none!important;
  flex:0 0 auto;
  min-height:38px!important;
  margin:0!important;
  padding:8px 14px!important;
  border:1px solid #d3e0e4!important;
  border-radius:999px!important;
  outline:0!important;
  background:linear-gradient(180deg,#ffffff 0%,#f4f8f9 100%)!important;
  color:#43555d!important;
  font-family:inherit!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  text-shadow:none!important;
  box-shadow:
    0 2px 5px rgba(24,43,51,.045),
    inset 0 1px 0 rgba(255,255,255,.98)!important;
  cursor:pointer;
  transition:
    transform .12s ease,
    border-color .16s ease,
    background .16s ease,
    color .16s ease,
    box-shadow .16s ease;
}
.tgg-category-tabs > button:hover{
  transform:translateY(-1px);
  border-color:#b7d9a9!important;
  background:linear-gradient(180deg,#ffffff,#eef9e9)!important;
  color:#2e681d!important;
  box-shadow:0 5px 12px rgba(71,128,44,.09)!important;
}
.tgg-category-tabs > button.active,
.tgg-category-tabs > button[aria-selected="true"]{
  border-color:#83cf62!important;
  background:linear-gradient(180deg,#efffe7 0%,#d9f5cb 100%)!important;
  color:#2c6819!important;
  box-shadow:
    0 0 0 2px rgba(102,214,44,.10),
    0 4px 10px rgba(72,143,37,.09)!important;
}

/* Search/filter surface */
.tgg-browser-tools{
  position:relative;
  display:grid!important;
  grid-template-columns:minmax(290px,1.7fr) repeat(3,minmax(165px,.72fr))!important;
  gap:10px!important;
  align-items:center!important;
  margin:0 0 8px!important;
  padding:12px!important;
  border:1px solid #d8e4e7!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#ffffff 0%,#f7fafb 100%)!important;
  box-shadow:
    0 9px 24px rgba(23,40,47,.06),
    inset 0 1px 0 rgba(255,255,255,.98)!important;
}
.tgg-browser-tools:before{
  content:"";
  position:absolute;
  left:20px;
  right:20px;
  top:-1px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(102,214,44,.24),transparent);
  pointer-events:none;
}

.tgg-search-wrap{
  min-height:48px!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:0 14px!important;
  border:1px solid #cbd9dd!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:
    inset 0 1px 2px rgba(29,48,56,.025),
    0 2px 6px rgba(23,40,47,.035)!important;
}
.tgg-search-wrap > span{
  color:#62bd37!important;
  font-size:21px!important;
}
.tgg-search-wrap input{
  width:100%!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:#2f4149!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:700!important;
}
.tgg-search-wrap input::placeholder{
  color:#7d8e95!important;
  opacity:1!important;
}

.tgg-browser-tools select{
  -webkit-appearance:auto;
  appearance:auto;
  min-height:48px!important;
  margin:0!important;
  border:1px solid #cbd9dd!important;
  border-radius:14px!important;
  padding:0 13px!important;
  background:#fff!important;
  color:#42545c!important;
  font-family:inherit!important;
  font-size:11px!important;
  font-weight:900!important;
  outline:0!important;
  box-shadow:
    inset 0 1px 2px rgba(29,48,56,.025),
    0 2px 6px rgba(23,40,47,.035)!important;
}
.tgg-browser-tools select:hover,
.tgg-browser-tools select:focus{
  border-color:#a8ce98!important;
  box-shadow:
    0 0 0 3px rgba(102,214,44,.09),
    0 2px 8px rgba(23,40,47,.04)!important;
}

.tgg-community-actions{
  grid-column:1/-1!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:9px!important;
  margin-top:1px!important;
}
.tgg-community-actions > button{
  -webkit-appearance:none!important;
  appearance:none!important;
  min-height:42px!important;
  margin:0!important;
  padding:8px 14px!important;
  border-radius:12px!important;
  font-family:inherit!important;
  font-size:10px!important;
  font-weight:1000!important;
  line-height:1!important;
  cursor:pointer;
  box-shadow:0 3px 8px rgba(23,40,47,.05)!important;
}
.tgg-community-actions .tgg-request-game{
  border:1px solid #99dc7c!important;
  background:linear-gradient(180deg,#f3ffed,#dff7d2)!important;
  color:#2e6f1d!important;
}
.tgg-community-actions .tgg-report-bug{
  border:1px solid #edc2c6!important;
  background:linear-gradient(180deg,#fff8f8,#ffebed)!important;
  color:#a13d47!important;
}
.tgg-community-actions > button:hover{
  transform:translateY(-1px);
  filter:brightness(1.01);
}

.tgg-filter-summary{
  min-height:18px!important;
  margin:0 2px 9px!important;
  color:#66777e!important;
  font-size:9px!important;
  font-weight:800!important;
}

/* Keep Learning / Rewards / Play Only badges on one visual system. */
.tgg-thumb-badges{
  position:absolute!important;
  z-index:3!important;
  right:6px!important;
  bottom:6px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:4px!important;
}
.tgg-thumb-badge{
  padding:3px 6px!important;
  border-radius:999px!important;
  font-size:7px!important;
  font-weight:1000!important;
  letter-spacing:.03em!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  backdrop-filter:blur(5px);
  box-shadow:0 2px 5px rgba(0,0,0,.16)!important;
}
.tgg-thumb-badge.learning{
  border:1px solid rgba(111,181,218,.22)!important;
  background:rgba(218,241,255,.96)!important;
  color:#174369!important;
}
.tgg-thumb-badge.reward{
  border:1px solid rgba(92,171,51,.20)!important;
  background:rgba(210,255,181,.95)!important;
  color:#20310e!important;
}
.tgg-thumb-badge.play-only{
  border:1px solid rgba(255,255,255,.16)!important;
  background:rgba(53,65,71,.91)!important;
  color:#fff!important;
}
.tgg-thumb-reward{display:none!important}

@media(max-width:1000px){
  .tgg-browser-tools{
    grid-template-columns:1fr 1fr!important;
  }
  .tgg-search-wrap{grid-column:1/-1!important}
}
@media(max-width:640px){
  .tgg-category-tabs{
    flex-wrap:nowrap!important;
    gap:6px!important;
    overflow-x:auto!important;
    overscroll-behavior-inline:contain;
    padding-bottom:5px!important;
    scrollbar-width:thin;
  }
  .tgg-category-tabs > button{
    min-height:35px!important;
    padding:7px 11px!important;
    font-size:9px!important;
  }
  .tgg-browser-tools{
    grid-template-columns:1fr!important;
    gap:7px!important;
    padding:9px!important;
    border-radius:15px!important;
  }
  .tgg-search-wrap{grid-column:auto!important;min-height:45px!important}
  .tgg-browser-tools select{min-height:45px!important}
  .tgg-community-actions{
    grid-column:auto!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  .tgg-community-actions > button{
    min-height:40px!important;
    padding:7px 8px!important;
    font-size:9px!important;
  }
  .tgg-thumb-badge{font-size:6px!important;padding:3px 5px!important}
}


/* v1.0 — Fun Lab / Learning Lab, content ratings, expanded arcade */
.tgg-lab-switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:0 0 11px;
}
.tgg-lab-switch>button{
  appearance:none;
  min-height:74px;
  padding:10px 14px;
  border:1px solid #d4e1e5;
  border-radius:17px;
  background:linear-gradient(180deg,#fff,#f4f8f9);
  color:#40535b;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  column-gap:10px;
  text-align:left;
  cursor:pointer;
  box-shadow:0 5px 14px rgba(22,40,48,.05);
}
.tgg-lab-switch>button>span{
  grid-row:1/3;
  align-self:center;
  font-size:30px;
}
.tgg-lab-switch>button>b{
  align-self:end;
  font-size:15px;
  font-weight:1000;
}
.tgg-lab-switch>button>small{
  align-self:start;
  margin-top:2px;
  color:#778990;
  font-size:9px;
  font-weight:800;
}
.tgg-lab-switch>button.active{
  border-color:#86d269;
  background:linear-gradient(180deg,#f5fff0,#e3f8d9);
  color:#2b6819;
  box-shadow:0 0 0 2px rgba(102,214,44,.10),0 7px 16px rgba(60,125,34,.08);
}
.tgg-lab-switch>button[data-lab-tab="learning"].active{
  border-color:#91cfe8;
  background:linear-gradient(180deg,#f5fcff,#e3f5fd);
  color:#1e5d79;
  box-shadow:0 0 0 2px rgba(84,180,222,.10),0 7px 16px rgba(55,115,145,.08);
}

.tgg-content-rating{
  position:absolute;
  z-index:3;
  left:6px;
  bottom:6px;
  max-width:45%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:3px 6px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:999px;
  background:rgba(34,48,55,.88);
  color:#fff;
  font-size:6px;
  font-weight:1000;
  letter-spacing:.04em;
  backdrop-filter:blur(5px);
  box-shadow:0 2px 5px rgba(0,0,0,.16);
}
.tgg-thumb-age{
  background:rgba(255,255,255,.94)!important;
  color:#364850!important;
  border:1px solid rgba(34,57,68,.10)!important;
}

.reward-shooter-controls,
.vehicle-controls,
.platform-controls,
.lander-controls{
  display:flex!important;
  justify-content:center;
  gap:8px!important;
  margin-top:7px!important;
}
.reward-shooter-controls button,
.vehicle-controls button,
.platform-controls button,
.lander-controls button{
  min-width:92px!important;
  min-height:42px!important;
  border:1px solid #cbdadd!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,#fff,#edf3f4)!important;
  color:#33474f!important;
  font-weight:1000!important;
  box-shadow:0 4px 9px rgba(22,40,48,.06)!important;
}
.reward-shooter-controls button:nth-child(2),
.vehicle-controls button:nth-child(2),
.platform-controls button:nth-child(2),
.lander-controls button:nth-child(2){
  border-color:#8fd66f!important;
  background:linear-gradient(180deg,#efffe7,#d9f5cb)!important;
  color:#2d6c19!important;
}
.tower-shop{
  width:min(720px,100%);
  margin:7px auto 0;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px;
}
.tower-shop button{
  min-height:38px;
  padding:7px 11px;
  border:1px solid #cbdadd;
  border-radius:11px;
  background:linear-gradient(180deg,#fff,#edf3f4);
  color:#34474f;
  font-size:9px;
  font-weight:950;
  cursor:pointer;
}
.tower-shop button[data-wave]{
  border-color:#8fd66f;
  background:linear-gradient(180deg,#efffe7,#d9f5cb);
  color:#2d6c19;
}
.typing-race-track,.math-race-track{
  position:relative;
  height:128px;
  margin:12px auto;
  max-width:680px;
  border:1px solid #cddadd;
  border-radius:18px;
  overflow:hidden;
  background:
    repeating-linear-gradient(90deg,transparent 0 52px,rgba(255,255,255,.55) 52px 56px),
    linear-gradient(180deg,#dce7e8 0 49%,#879ca3 49% 51%,#dce7e8 51%);
}
.typing-race-car,.math-race-car{
  position:absolute;
  left:2%;
  font-size:29px;
  transition:left .28s ease;
}
.typing-race-car.player,.math-race-car.player{top:18px}
.typing-race-car.cpu,.math-race-car.cpu{bottom:18px}
.typing-race-finish,.math-race-finish{
  position:absolute;
  right:2%;
  top:35px;
  font-size:38px;
}
.tgg-game-card[hidden]{display:none!important}

@media(max-width:640px){
  .tgg-lab-switch{gap:7px}
  .tgg-lab-switch>button{min-height:62px;padding:8px 10px;border-radius:14px}
  .tgg-lab-switch>button>span{font-size:24px}
  .tgg-lab-switch>button>b{font-size:12px}
  .tgg-lab-switch>button>small{font-size:7px}
  .tgg-content-rating{font-size:5.5px;max-width:48%}
  .reward-shooter-controls button,.vehicle-controls button,.platform-controls button,.lander-controls button{min-width:72px!important;min-height:38px!important;font-size:9px!important}
}

/* Visual Playground Overhaul v1.1 */
.tgg{--play-green:#66d62c;--play-blue:#48b7e8;--play-ink:#17262d}.tgg-game-card{border-radius:18px!important;overflow:hidden;transform:translateZ(0);transition:transform .16s ease,box-shadow .16s ease}.tgg-game-card:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 15px 30px rgba(25,49,58,.15)!important}.tgg-thumb{aspect-ratio:16/9;background:radial-gradient(circle at 30% 20%,#eaffdf,#dff3f8 45%,#d8e5e8);overflow:hidden}.tgg-thumb img{width:100%;height:100%;object-fit:cover;image-rendering:auto}.tgg-thumb-badge.reward{background:#fff1a8!important;color:#735500!important;border:1px solid #e4c74f!important}.tgg-learning-panel{position:relative;overflow:hidden;background:linear-gradient(145deg,#f8fff4,#eefaff)!important;border:1px solid #cce2e8!important;border-radius:24px!important;box-shadow:0 18px 45px rgba(28,62,76,.11)!important}.tgg-learning-panel:before{content:'';position:absolute;width:240px;height:240px;border-radius:50%;right:-110px;top:-120px;background:radial-gradient(circle,#66d62c33,transparent 68%);pointer-events:none}.learn-title{font-size:clamp(22px,4vw,38px)!important;font-weight:1000!important;letter-spacing:-.04em;color:#19333d!important;text-shadow:0 2px 0 #fff}.typing-keyboard{padding:18px!important;background:linear-gradient(#24353d,#142329)!important;border-radius:22px!important;box-shadow:inset 0 2px 0 #ffffff22,0 15px 25px #15252c22!important}.typing-keyboard span{min-width:34px!important;min-height:34px!important;border-radius:8px!important;background:linear-gradient(#fff,#dce7ea)!important;border:0!important;box-shadow:0 5px 0 #9fb0b7,0 7px 9px #0004!important;transition:.08s}.typing-keyboard span.active{transform:translateY(4px)!important;box-shadow:0 1px 0 #2d7d15!important;background:linear-gradient(#9df56e,#66d62c)!important;color:#17320d!important}.typing-target{font-size:clamp(30px,7vw,62px)!important;padding:18px!important;border-radius:18px;background:#fff;box-shadow:0 9px 24px #19333d16}.typing-input{border:3px solid #b8d8e3!important;border-radius:14px!important;font-size:24px!important;box-shadow:inset 0 2px 8px #18313a10!important}.money-scene,.clock-stage{position:relative;z-index:1;padding:18px;border-radius:22px;background:linear-gradient(180deg,#dff5ff,#f8fff4);border:1px solid #c4e1e9}.money-register{text-align:center;font-weight:1000;letter-spacing:.08em;color:#24454f;background:#fff;border-radius:12px;padding:10px;box-shadow:0 6px 16px #19333d12}.money-currency{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;padding:28px 8px}.currency-art{display:grid;place-items:center;font-weight:1000;box-shadow:0 8px 14px #1c343d26}.currency-art.dollar{width:145px;height:64px;border-radius:8px;background:linear-gradient(135deg,#dfead0,#a7c490);border:3px double #56734b;color:#2d4b28;font-size:25px}.currency-art:not(.dollar){width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#d8d8d8 38%,#8f979a);border:4px double #70797c;color:#3b474b;font-size:17px}.money-question,.clock-question{text-align:center;font-size:22px;font-weight:950;color:#19333d;margin:8px}.money-options,.clock-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:560px;margin:auto}.money-options button,.clock-options button{padding:15px;border:0;border-radius:14px;background:#fff;color:#19333d;font-weight:1000;font-size:18px;box-shadow:0 6px 0 #c6d7dc,0 8px 16px #17303a18;cursor:pointer}.analog-clock{position:relative;width:min(330px,78vw);aspect-ratio:1;margin:8px auto 24px;border-radius:50%;background:radial-gradient(circle,#fff 0 64%,#e7f3f6 65% 72%,#243b45 73% 77%,#66d62c 78% 81%,#fff 82%);box-shadow:0 18px 35px #17303a28,inset 0 0 25px #17303a18}.analog-clock span{position:absolute;inset:11px;text-align:center;font-size:19px;font-weight:1000;color:#213942;transform:rotate(calc(var(--i)*30deg))}.analog-clock span{padding-top:6px}.clock-hour,.clock-minute{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;border-radius:999px;z-index:2}.clock-hour{width:10px;height:27%;background:#263c45}.clock-minute{width:6px;height:37%;background:#48a7d2}.clock-pin{position:absolute;z-index:3;left:50%;top:50%;width:18px;height:18px;border-radius:50%;background:#66d62c;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #fff}.tgg-sound-btn:after{content:' SFX';font-size:9px;font-weight:900}.tgg-rewards-btn{background:linear-gradient(#fff8c9,#ffe277)!important;color:#6b5100!important;border-color:#e4c44b!important}


/* v1.1.2 runtime/navigation + Brick Master desktop sizing */
.tgg-gamebar{position:sticky;top:0;z-index:50;pointer-events:auto!important}
.tgg-gamebar button{position:relative;z-index:51;pointer-events:auto!important}
.brick-master-desktop-host{padding:10px!important;overflow:visible!important}
.brick-master-desktop-host .tgg-canvas-wrap{margin:0 auto!important}
.brick-master-desktop-host canvas{width:100%!important;height:auto!important;max-height:none!important}
@media(min-width:900px){.tgg-game-view:has(.brick-master-desktop-host){width:100%!important;max-width:1260px!important;margin:0 auto}.brick-master-desktop-host .tgg-canvas-wrap{}}
@media(max-width:899px){.brick-master-desktop-host .tgg-canvas-wrap{}}

/* v1.1.2 final Brick Master desktop canvas */
body .tgg .tgg-game-view .tgg-game-host.brick-master-desktop-host .tgg-canvas-wrap{}
body .tgg .tgg-game-view .tgg-game-host.brick-master-desktop-host .tgg-canvas-wrap canvas{}


/* v1.2.0 — REAL ASSET PACK AUDIT: every game receives an actual Kenney pack visual layer */
.tgg-game-host{position:relative;isolation:isolate}
.tgg-game-host.tgg-asset-skinned{background:linear-gradient(145deg,#f8fbfc,#edf5f7)!important;border-color:#c7dce3!important;overflow:hidden}
.tgg-game-host.tgg-asset-skinned>*:not(.tgg-asset-decor):not(.tgg-asset-credit-chip){position:relative;z-index:2}
.tgg-asset-decor{position:absolute!important;z-index:0!important;right:-30px;top:18px;width:clamp(110px,20vw,250px);height:clamp(90px,22vh,220px);object-fit:contain;opacity:.13;filter:saturate(.95) drop-shadow(0 10px 18px rgba(20,48,58,.18));pointer-events:none!important;user-select:none}
.tgg-pack-space .tgg-asset-decor,.tgg-pack-tanks .tgg-asset-decor,.tgg-pack-racing .tgg-asset-decor{opacity:.20}
.tgg-pack-platformer .tgg-asset-decor{width:min(340px,34vw);height:210px;object-position:right top;opacity:.16}
.tgg-pack-board .tgg-asset-decor,.tgg-pack-runes .tgg-asset-decor,.tgg-pack-sports .tgg-asset-decor,.tgg-pack-minigolf .tgg-asset-decor{width:min(390px,38vw);height:220px;opacity:.095}
.tgg-asset-credit-chip{position:absolute!important;z-index:8!important;right:8px;bottom:7px;max-width:46%;padding:4px 7px;border:1px solid #d8e2e5;border-radius:999px;background:rgba(255,255,255,.88);color:#61737a;font-size:6px;font-weight:900;letter-spacing:.03em;pointer-events:none;backdrop-filter:blur(5px)}
.tgg-pack-thumb{object-fit:contain!important;padding:10px!important;background:radial-gradient(circle at 50% 45%,#fafffc,#dbe8ec)!important}
.tgg-pack-name{position:absolute;left:7px;top:7px;z-index:3;padding:3px 7px;border-radius:999px;background:rgba(12,35,44,.80);color:#fff;font-size:6px;font-weight:1000;letter-spacing:.04em;backdrop-filter:blur(5px)}

/* Sci-fi chess uses actual Kenney Space Shooter ship sprites as the six piece classes. */
.robot-chess-piece.kenney-space-chess{width:74%!important;height:74%!important;object-fit:contain!important;filter:drop-shadow(0 5px 4px rgba(0,0,0,.35))!important;transition:transform .12s ease,filter .12s ease}
.robot-chess-piece.kenney-space-chess.team-1{filter:hue-rotate(82deg) saturate(1.45) brightness(1.12) drop-shadow(0 5px 4px rgba(0,0,0,.35))!important}
.robot-chess-piece.kenney-space-chess.team-2{filter:hue-rotate(188deg) saturate(.85) brightness(.72) drop-shadow(0 5px 4px rgba(0,0,0,.42))!important}
.tgg-chess button:hover .kenney-space-chess,.tgg-chess button.selected-piece .kenney-space-chess{transform:translateY(-4px) scale(1.08)}

/* Checkers keeps the game rules but replaces the plain flat disc layer with Board Game Pack artwork crop. */
.kenney-checker{overflow:hidden!important;position:relative!important;display:grid!important;place-items:center!important}
.kenney-checker img{position:absolute;width:420px;height:auto;max-width:none;left:50%;top:50%;transform:translate(-24%,-15%);opacity:.95;filter:saturate(1.3) contrast(1.05)}
.kenney-checker.p2 img{filter:hue-rotate(170deg) saturate(1.1) brightness(.72)}
.kenney-checker b{position:relative;z-index:2;color:#fff;font-size:14px;text-shadow:0 1px 4px #000}

/* Learning Lab: Kenney character art is now part of the actual game scene, not just thumbnails. */
.tgg-learning-panel{padding-right:clamp(18px,16vw,150px)!important;min-height:340px}
.tgg-pack-platformer .tgg-learning-panel:after{content:'';position:absolute;right:8px;bottom:16px;width:clamp(92px,15vw,150px);height:150px;background-image:url('https://raw.githubusercontent.com/ETdoFresh/kenney.nl/master/kenney_platformercharacters/PNG/Player/player_tilesheet.png');background-size:500% auto;background-position:0 0;background-repeat:no-repeat;filter:drop-shadow(0 10px 8px rgba(25,50,60,.17));opacity:.96;pointer-events:none}
.kenney-learning-mascot{position:absolute;right:9px;bottom:18px;width:145px;height:145px;object-fit:cover;object-position:left top;z-index:3;filter:drop-shadow(0 10px 8px rgba(25,50,60,.18));pointer-events:none}

@media(max-width:640px){
 .tgg-asset-decor{width:105px;height:90px;right:-18px;top:10px;opacity:.10}
 .tgg-asset-credit-chip{font-size:5px;max-width:60%}
 .tgg-learning-panel{padding-right:16px!important;padding-bottom:105px!important}
 .tgg-pack-platformer .tgg-learning-panel:after,.kenney-learning-mascot{width:95px;height:95px;right:8px;bottom:8px}
}

/* v1.2.1 Brick Master internal overhaul */
.brick-master-overhaul{background:#07131f!important;border-color:#173f52!important;padding:8px!important;overflow:visible!important}
.brick-master-overhaul .tgg-canvas-wrap{margin:0 auto!important;background:#07131f!important;border-radius:16px;box-shadow:0 20px 55px rgba(7,28,39,.28)}
.brick-master-overhaul canvas{width:100%!important;height:auto!important;max-height:none!important;display:block;border-radius:14px}
@media(max-width:899px){.brick-master-overhaul .tgg-canvas-wrap{}}


/* v1.2.3 — Connect Four board rebuild */
.tgg-c4-real{width:min(780px,100%);margin:0 auto;padding:8px 10px 16px;color:#253941;text-align:center}
.c4-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:700px;margin:0 auto 10px;padding:9px 12px;border:1px solid #d6e1e5;border-radius:14px;background:#fff;box-shadow:0 5px 14px rgba(20,42,51,.06)}
.c4-turn{display:flex;align-items:center;gap:8px;text-align:left}.c4-turn strong{display:block;font-size:13px;font-weight:1000;line-height:1.05}.c4-turn small{display:block;margin-top:2px;color:#7a8b92;font-size:8px;font-weight:850}.c4-turn-dot{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 3px 5px #fff8,0 2px 5px #0002}.c4-turn-dot.player{background:linear-gradient(145deg,#b8ff8f,#66d62c 55%,#2f7c17)}.c4-turn-dot.cpu{background:linear-gradient(145deg,#ffe29d,#f5a623 58%,#a85d0c)}
.c4-score{display:flex;gap:6px}.c4-score span{min-width:58px;padding:5px 8px;border-radius:9px;background:#f2f6f7;color:#788990;font-size:7px;font-weight:1000}.c4-score b{display:block;margin-top:1px;color:#253941;font-size:14px}
.c4-stage{padding:12px 0 0;border-radius:26px;background:radial-gradient(ellipse at 50% 78%,rgba(50,80,94,.08),transparent 60%)}
.c4-machine{position:relative;width:min(690px,94vw);margin:0 auto;padding-top:54px;perspective:1000px;transform-origin:50% 78%;transition:transform .12s ease}.c4-machine.c4-thump{transform:translateY(2px)}
.c4-preview-track{position:absolute;z-index:8;top:0;left:6.6%;right:6.6%;height:55px;border:1px solid #c7d3d8;border-bottom-color:#a8b7bd;border-radius:18px 18px 7px 7px;background:linear-gradient(180deg,#f6f8f9,#dce4e7);box-shadow:inset 0 2px 0 #fff,0 5px 10px rgba(30,49,57,.10)}
.c4-preview-track:after{content:"";position:absolute;left:5%;right:5%;bottom:8px;height:5px;border-radius:99px;background:#bcc8cd;box-shadow:inset 0 2px 2px #98a8af}
.c4-preview-chip,.c4-piece{--chip:#66d62c;--dark:#2f7d16;border-radius:50%;background:radial-gradient(circle at 32% 23%,#fff 0 3%,#ffffff88 4%,transparent 10%),radial-gradient(circle at 45% 40%,color-mix(in srgb,var(--chip),#fff 18%) 0 42%,var(--chip) 43% 66%,var(--dark) 82%,#162b0e 100%);box-shadow:inset 0 -8px 12px #0003,inset 0 5px 7px #fff5,0 7px 10px #0003;border:2px solid #ffffffc0}.c4-preview-chip.cpu,.c4-piece.cpu{--chip:#f7ad2d;--dark:#a75a0a}
.c4-preview-chip{position:absolute;z-index:9;left:50%;bottom:9px;width:clamp(30px,6.9vw,54px);aspect-ratio:1;transform:translateX(-50%);transition:left .15s ease,opacity .15s}.c4-preview-chip i,.c4-piece i{position:absolute;inset:13%;border-radius:50%;border:1px solid #ffffff50;box-shadow:inset 0 2px 7px #0002}
.c4-board-shell{position:relative;z-index:4;width:100%;aspect-ratio:7/6.02;border-radius:25px 25px 15px 15px;filter:drop-shadow(0 18px 18px rgba(23,43,52,.20));overflow:visible}
.c4-board-back{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(145deg,#0d365d,#061f3a 60%,#04172b);box-shadow:inset 0 7px 12px #ffffff10,inset 0 -10px 18px #0006}
.c4-pieces,.c4-hole-grid,.c4-column-buttons{position:absolute;inset:4.7% 5.05% 5.5%}.c4-pieces{z-index:2;overflow:visible}.c4-hole-grid{z-index:3;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);pointer-events:none}.c4-hole{position:relative}.c4-hole:before{content:"";position:absolute;inset:7.5%;border-radius:50%;background:radial-gradient(circle,transparent 0 54%,#0c619c 55% 66%,#084b7a 67% 77%,#0e73af 78% 83%,#06416d 84% 100%);box-shadow:inset 0 3px 4px #ffffff38,0 2px 3px #00203888}.c4-hole:after{content:"";position:absolute;inset:15%;border-radius:50%;box-shadow:inset 0 7px 10px #0006,inset 0 -2px 4px #ffffff12}
.c4-piece{position:absolute;left:calc((var(--col) + .5) * 14.285714%);top:calc((var(--row) + .5) * 16.666667%);width:11.35%;aspect-ratio:1;transform:translate(-50%,calc(-50% - (var(--row) + 1) * 120%));transition:transform calc(.28s + var(--row)*.05s) cubic-bezier(.19,.76,.26,1.08),opacity .25s,filter .2s}.c4-piece.settled{transform:translate(-50%,-50%)}.c4-piece.winner{z-index:6;animation:c4Pulse .55s ease-in-out infinite alternate}.c4-piece.dim{opacity:.38;filter:saturate(.6)}.c4-piece.drain{transition:transform .72s cubic-bezier(.56,.02,.98,.45),opacity .55s!important;transform:translate(-50%,calc(760% + var(--row)*18%)) rotate(24deg)!important;opacity:.18}@keyframes c4Pulse{to{transform:translate(-50%,-50%) scale(1.11);filter:brightness(1.18) drop-shadow(0 0 7px #fff)}}
.c4-board-gloss{position:absolute;z-index:4;left:2.2%;right:2.2%;top:2%;height:20%;border-radius:22px 22px 45% 45%;background:linear-gradient(180deg,#ffffff22,transparent);pointer-events:none}
.c4-column-buttons{z-index:5;display:grid;grid-template-columns:repeat(7,1fr)}.c4-column-buttons button{appearance:none;border:0;background:transparent;cursor:pointer;position:relative}.c4-column-buttons button:before{content:"";position:absolute;left:21%;right:21%;top:-9px;height:4px;border-radius:99px;background:transparent;transition:.12s}.c4-column-buttons button:hover:before,.c4-column-buttons button:focus-visible:before{background:#78df45;box-shadow:0 0 8px #66d62c}.c4-column-buttons button.pressed:before{height:7px;background:#fff}
.c4-release-gate{position:relative;z-index:6;width:105%;height:35px;margin:-2px -2.5% 0;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-radius:5px 5px 16px 16px;background:linear-gradient(180deg,#0d6298,#08456f);border:1px solid #063a5f;box-shadow:inset 0 3px 4px #ffffff20,0 8px 10px #1a303922}.c4-release-gate span{width:37%;height:7px;border-radius:99px;background:#032c4a;box-shadow:inset 0 2px 3px #001827}.c4-release-gate i{width:44px;height:16px;border-radius:8px;background:linear-gradient(#dfe7ea,#adbcc2);border:1px solid #80959d;box-shadow:inset 0 2px 0 #fff,0 2px 3px #0003;transition:.22s}.c4-gate-open .c4-release-gate i{transform:translateY(8px) rotateX(55deg);background:#84979e}
.c4-feet{position:relative;height:42px;z-index:1}.c4-feet span{position:absolute;top:-1px;width:64px;height:42px;background:linear-gradient(90deg,#063a61,#0f628e,#063553);clip-path:polygon(17% 0,83% 0,100% 100%,0 100%)}.c4-feet span:first-child{left:10%}.c4-feet span:last-child{right:10%}
.c4-win .c4-board-shell{animation:c4WinShell .5s ease-in-out 2}@keyframes c4WinShell{50%{filter:drop-shadow(0 18px 22px rgba(102,214,44,.28));transform:scale(1.005)}}
.c4-bottom{display:flex;align-items:center;justify-content:center;gap:10px;min-height:42px}.c4-note{font-size:9px;font-weight:800;color:#6f8188}.c4-play-again{appearance:none;border:1px solid #8fd66f;border-radius:10px;padding:8px 13px;background:linear-gradient(#efffe7,#d9f5cb);color:#2d681b;font-size:8px;font-weight:1000;cursor:pointer;opacity:0;transform:translateY(4px);transition:.2s}.c4-play-again.show{opacity:1;transform:none}
@media(max-width:640px){.tgg-c4-real{padding:2px 0 10px}.c4-topbar{padding:7px 8px;margin-bottom:5px}.c4-machine{width:min(95vw,600px);padding-top:44px}.c4-preview-track{height:46px}.c4-preview-chip{bottom:7px}.c4-release-gate{height:29px}.c4-release-gate i{width:34px;height:13px}.c4-feet{height:29px}.c4-feet span{width:46px;height:30px}.c4-note{font-size:7.5px;max-width:72%}}


/* v1.3.0 — KayKit Board Game Bits tabletop rebuild */
.tgg-game-host.tgg-pack-kaykit{background:radial-gradient(circle at 50% 20%,#2f7b55 0,#15543b 40%,#0a3628 100%)!important;position:relative;box-shadow:inset 0 0 0 2px rgba(255,255,255,.05),inset 0 -28px 60px rgba(0,0,0,.18)}
.tgg-game-host.tgg-pack-kaykit:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,rgba(255,255,255,.035),transparent 28%,rgba(0,0,0,.045) 62%,transparent);mix-blend-mode:screen}
.tgg-game-host.tgg-pack-kaykit>.tgg-asset-decor.kaykit-decor{width:52px!important;height:52px!important;object-fit:contain!important;opacity:.34!important;right:12px!important;top:10px!important;left:auto!important;filter:drop-shadow(0 4px 5px #0005)}
.tgg-pack-kaykit .tgg-asset-credit-chip{background:#092b20dd!important;border-color:#75ff5d55!important;color:#ddffd5!important}

/* Tic-Tac-Toe — physical KayKit tokens with X/O identifiers. */
.kaykit-ttt-piece{position:relative;width:86%;height:86%;display:grid;place-items:center}
.kaykit-ttt-piece img{position:absolute;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 5px rgba(0,0,0,.28));transform:translateY(-2px)}
.kaykit-ttt-piece b{position:relative;z-index:2;color:#fff;font-size:.62em;text-shadow:0 2px 4px #000;font-weight:1000}
.tgg-pack-kaykit .ttt-board{padding:12px;border-radius:20px;background:linear-gradient(145deg,#b98b56,#8b5f32);box-shadow:0 15px 30px #0004,inset 0 0 0 5px #5f3d20}
.tgg-pack-kaykit .ttt-board button{background:#e8c89f!important;border:2px solid #7a512d!important;box-shadow:inset 0 2px 8px #fff7!important}

/* Connect Four — the machine remains, but pieces are now KayKit tabletop tokens. */
.kaykit-c4-chip{position:absolute;inset:3%;width:94%;height:94%;object-fit:contain;z-index:3;filter:drop-shadow(0 4px 3px rgba(0,0,0,.34))}
.c4-preview-chip .kaykit-c4-chip{inset:-7%;width:114%;height:114%}
.tgg-pack-kaykit .c4-piece>i,.tgg-pack-kaykit .c4-preview-chip>i{opacity:.12!important}

/* Dominoes — every pip combination comes directly from the KayKit OBJ pack. */
.tgg-pack-kaykit .tgg-domino{width:min(980px,100%)}
.tgg-pack-kaykit .dom-chain{min-height:132px;background:linear-gradient(145deg,#7c5735,#5a3a22)!important;border:5px solid #3d2717!important;box-shadow:inset 0 6px 16px #0005,0 10px 22px #0003;gap:0!important;align-items:center!important}
.kaykit-domino-chain{display:inline-grid!important;place-items:center!important;background:transparent!important;border:0!important;padding:0!important;margin:-4px!important;min-width:70px}
.kaykit-domino-chain img{width:76px;height:116px;object-fit:contain;filter:drop-shadow(0 5px 4px #0005)}
.kaykit-domino-btn{width:82px!important;height:118px!important;padding:3px!important;background:transparent!important;border:0!important;position:relative!important;cursor:pointer}
.kaykit-domino-btn img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px #0005);transition:.15s}
.kaykit-domino-btn span{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);font-size:9px;background:#ffffffd9;color:#222;border-radius:999px;padding:1px 5px}
.kaykit-domino-btn:hover:not(:disabled) img{transform:translateY(-7px) scale(1.04)}
.kaykit-domino-btn:disabled{opacity:.38}

@media(max-width:720px){
 .kaykit-domino-chain{min-width:52px}.kaykit-domino-chain img{width:58px;height:88px}.kaykit-domino-btn{width:62px!important;height:92px!important}
 .tgg-pack-kaykit .dom-chain{min-height:102px}
}


/* v1.3.2 — exact asset mapping. Checkers uses KayKit token models; chess uses real chess symbols because this KayKit pack contains no chess-piece models. */
.kaykit-checkers-stage,.kaykit-chess-stage{width:min(700px,100%);margin:auto;display:grid;gap:10px;position:relative}
.kaykit-board-hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:linear-gradient(180deg,#263229,#17211b);color:#fff;box-shadow:0 8px 18px #0003}
.kaykit-board-hud>strong{font-size:clamp(15px,3vw,22px);letter-spacing:.16em}.kaykit-board-hud>div{display:flex;align-items:center;gap:7px;min-width:0}.kaykit-board-hud>div:last-child{justify-content:flex-end}.kaykit-board-hud img{width:34px;height:24px;object-fit:contain;filter:drop-shadow(0 3px 2px #0005)}.kaykit-board-hud b{font-size:12px;letter-spacing:.08em}.kaykit-board-hud small{font-size:9px;opacity:.65}.kaykit-side-id{align-items:center}
.kaykit-checkers-board,.kaykit-chess-board{display:grid;grid-template-columns:repeat(8,1fr);width:min(600px,100%,calc(100dvh - 240px));aspect-ratio:1/1;margin:auto;padding:10px;gap:0;background:#55351f;border:10px solid #3c2517;border-radius:16px;box-shadow:0 18px 34px #0005,inset 0 0 0 2px #bc8e58;transform:none!important;overflow:visible}
.kaykit-board-square{position:relative;border:0!important;border-radius:0!important;padding:0!important;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;isolation:isolate;touch-action:manipulation;cursor:pointer;box-shadow:inset 0 0 0 1px #00000016!important}
.kaykit-board-square.light{background:#ead0a4!important}.kaykit-board-square.dark{background:#805637!important}
.kaykit-board-square:before{content:"";position:absolute;inset:10%;border-radius:50%;opacity:0;transform:scale(.6);transition:.15s;z-index:0}.kaykit-board-square.legal:before{opacity:1;transform:scale(1);background:radial-gradient(circle,#8cff55bd 0 24%,#5bd52266 27% 48%,transparent 51%);box-shadow:0 0 14px #66d62c}.kaykit-board-square.selected{z-index:5;box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 7px #66d62c!important}.kaykit-board-square:hover{z-index:4}
/* Exact KayKit checkers token: no flags, pawns, buildings, or meeples. */
.kaykit-checker-piece{position:relative;width:76%;height:76%;display:grid;place-items:center;z-index:2;transition:.15s;filter:drop-shadow(0 5px 3px #0005)}.kaykit-checker-piece img{position:absolute;left:50%;top:50%;width:100%;height:auto;max-width:none;transform:translate(-50%,-50%);object-fit:contain}.kaykit-checker-piece .king-stack{display:none}.kaykit-checker-piece.is-king img:first-child{transform:translate(-50%,-42%)}.kaykit-checker-piece.is-king .king-stack{display:block;transform:translate(-50%,-64%) scale(.92)}.kaykit-board-square:hover .kaykit-checker-piece{transform:scale(1.05)}
/* Chess: the supplied KayKit pack does not include King/Queen/Rook/Bishop/Knight models, so do not substitute unrelated assets. */
.kaykit-chess-piece{position:relative;width:88%;height:88%;z-index:2;display:grid;place-items:center;transition:.15s}.kaykit-chess-piece b{display:grid;place-items:center;width:88%;height:88%;font-family:"Segoe UI Symbol","Noto Sans Symbols 2","Arial Unicode MS",serif;font-size:clamp(27px,6.7vw,58px);line-height:1;font-weight:400;transform:translateY(-1%);filter:drop-shadow(0 5px 2px #0005)}.kaykit-chess-piece.team-1 b{color:#20e58c;-webkit-text-stroke:1px #063d2c}.kaykit-chess-piece.team-2 b{color:#ff5565;-webkit-text-stroke:1px #5b111a}.kaykit-board-square:hover .kaykit-chess-piece,.kaykit-board-square.selected .kaykit-chess-piece{transform:translateY(-3px) scale(1.06)}
.chess-hud-piece{display:inline-grid;place-items:center;width:30px;height:30px;font:400 29px/1 "Segoe UI Symbol","Noto Sans Symbols 2",serif}.chess-hud-piece.player{color:#20e58c}.chess-hud-piece.cpu{color:#ff5565}
.kaykit-capture-rack{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kaykit-capture-rack>div{min-height:48px;padding:6px 9px;border-radius:10px;background:#f1f4f1;border:1px solid #d3ded3;display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}.kaykit-capture-rack b{font-size:10px;white-space:nowrap}.kaykit-capture-rack span{display:flex;align-items:center;min-width:0;overflow:hidden;gap:1px}.captured-chess-piece{font:400 24px/1 "Segoe UI Symbol","Noto Sans Symbols 2",serif;filter:drop-shadow(0 2px 1px #0003)}.captured-chess-piece.team-1{color:#20e58c}.captured-chess-piece.team-2{color:#ff5565}
.kaykit-board-rules{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 9px;color:#51605a;font-size:10px;font-weight:700}.kaykit-board-rules i{font-style:normal;color:#66d62c}.kaykit-checkers-stage .game-status,.kaykit-chess-stage .game-status{text-align:center;font-weight:900;min-height:22px}
@media(max-width:560px){.kaykit-board-hud{padding:5px 7px}.kaykit-board-hud img{width:28px;height:20px}.kaykit-checkers-board,.kaykit-chess-board{width:min(100%,calc(100dvh - 220px));border-width:7px;padding:5px;border-radius:12px}.kaykit-capture-rack{grid-template-columns:1fr}.kaykit-board-rules{font-size:8px}.kaykit-checker-piece{width:78%;height:78%}.kaykit-chess-piece b{font-size:clamp(22px,8vw,45px)}}


/* v1.3.3 — canonical playing-card system. The old text/KayKit/Kenney card layers were removed. */
.tgg-real-card-fan i{background-color:transparent!important;background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;border:0!important;color:transparent!important;box-shadow:0 7px 18px #0004!important}
.tgg-card-art{padding:0!important;background-color:transparent!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;border:0!important;color:transparent!important;text-shadow:none!important;box-shadow:none!important;overflow:visible!important}
.tgg-card-face{aspect-ratio:500/726!important}
.tgg-card-back{aspect-ratio:500/726!important;border-radius:8px!important;border:3px solid #f7fbf8!important;background-color:#0a3427!important;background-image:linear-gradient(45deg,#ffffff0d 25%,transparent 25% 75%,#ffffff0d 75%),linear-gradient(135deg,#123f34,#071e18)!important;background-size:14px 14px!important;box-shadow:inset 0 0 0 2px #66d62c,0 4px 10px #0003!important;display:grid!important;place-items:center!important}
.tgg-card-back:after{content:'TG';display:grid;place-items:center;width:52%;aspect-ratio:1;border:2px solid #66d62c;border-radius:9px;background:#071b15;color:#fff;font:1000 15px/1 Inter,Segoe UI,sans-serif;box-shadow:inset 0 0 0 3px #0d3124}
.tgg-game-host:has(.tgg-solitaire),.tgg-game-host:has(.tgg-freecell),.tgg-game-host:has(.tgg-spider),.tgg-game-host:has(.tgg-trick),.tgg-game-host:has(.gofish-table),.tgg-game-host:has(.tgg-crazy){background:radial-gradient(ellipse at 50% 18%,#17734f,#07533d 52%,#063c2e 100%)!important;border-color:#0d6d4d!important;color:#fff!important;overflow:hidden!important}

/* Klondike */
.tgg-solitaire{min-width:780px;width:780px;margin:auto}.sol-top{grid-template-columns:92px 92px 1fr repeat(4,92px);gap:12px;margin-bottom:18px}.sol-tableau{grid-template-columns:repeat(7,92px);gap:14px}.sol-pile,.sol-stock,.sol-waste,.sol-foundation{width:92px;min-height:134px;height:134px;border-color:#ffffff4a}.sol-card{width:92px;height:auto;min-height:0;border-radius:7px;cursor:pointer;filter:drop-shadow(0 4px 5px #0005)}.sol-card.selected{outline:4px solid #d6ff41!important;outline-offset:2px;transform:translateY(-5px)}.sol-foundation-label{color:#ffffff5c;font-size:38px}.sol-help{color:#def4e8!important;font-weight:700}

/* FreeCell */
.tgg-freecell{width:min(1000px,100%);margin:auto}.fc-top{display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}.fc-free,.fc-found{display:grid;grid-template-columns:repeat(4,minmax(56px,74px));gap:7px}.fc-slot,.fc-foundation{width:74px;aspect-ratio:500/726;border:1px dashed #ffffff70;border-radius:8px;background:#ffffff13;color:#e8f6ee;display:grid;place-items:center;font-size:11px;font-weight:1000}.fc-slot.tgg-card-face,.fc-foundation.tgg-card-face{background-color:transparent!important;border:0!important}.fc-cols{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}.fc-col{position:relative;height:465px;border:1px solid #ffffff25;border-radius:9px;background:#ffffff0a}.fc-card{position:absolute;left:5%;width:90%;height:auto;aspect-ratio:500/726;filter:drop-shadow(0 3px 4px #0005);cursor:pointer}.fc-card:hover{transform:translateY(-3px);z-index:4}.tgg-freecell .game-status{color:#ddf3e7!important}

/* Spider */
.tgg-spider{width:min(1120px,100%);margin:auto}.spider-info{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;margin-bottom:10px;background:#ffffffed;color:#17352a;border-radius:10px}.spider-deal{border:1px solid #9bb9ac;background:#fff;border-radius:8px;padding:8px 12px;font-weight:900}.spider-cols{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.spider-col{position:relative;height:455px;border:1px solid #ffffff22;border-radius:8px;background:#ffffff0a}.spider-card{position:absolute;left:5%;width:90%;height:auto;aspect-ratio:500/726;filter:drop-shadow(0 3px 4px #0005);cursor:pointer}.spider-card.selected{outline:4px solid #d6ff41!important;outline-offset:1px;z-index:6}.tgg-spider .game-status{color:#ddf3e7!important}

/* Hearts / Spades */
.tgg-trick{width:min(930px,100%);margin:auto;text-align:center}.trick-score{font-weight:1000;color:#fff;margin-bottom:8px}.trick-table{height:310px;position:relative;border:1px solid #ffffff25;border-radius:48%;background:radial-gradient(ellipse,#23906455,transparent 67%)}.trick-seat{position:absolute;width:118px;height:150px;display:flex;flex-direction:column;align-items:center;gap:3px;color:#dff4e7;font-size:9px;font-weight:1000}.trick-seat-2{top:5px;left:50%;transform:translateX(-50%)}.trick-seat-0{bottom:4px;left:50%;transform:translateX(-50%)}.trick-seat-1{right:9%;top:50%;transform:translateY(-50%)}.trick-seat-3{left:9%;top:50%;transform:translateY(-50%)}.trick-played-card{width:78px;height:auto;aspect-ratio:500/726;filter:drop-shadow(0 6px 7px #0005)}.trick-hand{display:flex;justify-content:center;align-items:flex-end;gap:0;margin:8px auto 0;min-height:130px;overflow:visible}.mini-card{width:76px;height:auto;aspect-ratio:500/726;margin-left:-25px;position:relative;cursor:pointer;filter:drop-shadow(0 4px 4px #0004);transition:.12s}.mini-card:first-child{margin-left:0}.mini-card:hover:not(:disabled),.mini-card:focus-visible:not(:disabled){transform:translateY(-14px);z-index:12}.mini-card:disabled{opacity:.42;filter:grayscale(.45) drop-shadow(0 3px 3px #0003);cursor:not-allowed}.tgg-trick .game-status{color:#dff4e7!important}

/* Go Fish */
.gofish-table{width:min(980px,100%);min-height:575px;margin:auto;padding:4px 10px 12px;color:#fff;display:grid;grid-template-rows:auto 116px minmax(160px,1fr) auto 150px auto;gap:5px}.gf-opponent-label,.gf-player-label{text-align:center;color:#e6f5ed;font-size:10px;font-weight:1000;letter-spacing:.06em}.gf-player-label span{display:block;color:#a8c9b9;font-size:8px;letter-spacing:0;margin-top:2px}.gf-opponent-hand,.gf-player-hand{display:flex;justify-content:center;align-items:flex-end;overflow:visible}.gf-card-back{width:72px;aspect-ratio:500/726;margin-left:-38px;border:3px solid #eef7f2;border-radius:8px;background:linear-gradient(45deg,#ffffff0c 25%,transparent 25% 75%,#ffffff0c 75%),linear-gradient(135deg,#163f35,#081f19);background-size:13px 13px;display:grid;place-items:center;color:#72ff2f;font-size:9px;font-weight:1000;text-align:center;box-shadow:0 6px 10px #0005}.gf-card-back:first-child{margin-left:0}.gf-center{display:grid;grid-template-columns:1fr 100px 150px 1fr;gap:13px;align-items:center;padding:10px 18px;border:1px solid #ffffff20;border-radius:48%;background:radial-gradient(ellipse,#2d986b55,transparent 68%)}.gf-deck{width:78px!important;aspect-ratio:500/726;border:3px solid #eef7f2!important;border-radius:8px!important;background:linear-gradient(45deg,#ffffff0c 25%,transparent 25% 75%,#ffffff0c 75%),linear-gradient(135deg,#163f35,#081f19)!important;background-size:13px 13px!important;color:#72ff2f!important;display:grid!important;place-items:center!important;font-size:9px!important;font-weight:1000!important;box-shadow:6px 6px 0 #041a13aa,0 8px 14px #0004!important;position:relative}.gf-deck em{position:absolute;bottom:5px;right:5px;background:#fff;color:#17352a;border-radius:999px;padding:2px 6px;font-size:9px;font-style:normal}.gf-table-card{display:grid;place-items:center;align-content:center;gap:5px;color:#e0f0e7;font-size:10px}.gf-floating-card{width:82px;height:auto;aspect-ratio:500/726;filter:drop-shadow(0 7px 8px #0005)}.gf-table-card.good .gf-floating-card{outline:4px solid #78f044;outline-offset:2px}.gf-books{text-align:center;color:#dff4e8}.gf-books small{font-size:8px;letter-spacing:.04em}.gf-books div{display:flex;justify-content:center;flex-wrap:wrap;gap:2px}.gf-books i{font-style:normal;color:#8df55e}.gf-statusbar{display:flex;justify-content:center;gap:14px;align-items:center;color:#dff4e8;font-size:10px}.gf-statusbar .game-status{margin:0!important;color:#dff4e8!important}.gf-player-hand{min-height:145px}.gf-playing-card{width:82px;height:auto;aspect-ratio:500/726;margin-left:-30px;position:relative;cursor:pointer;filter:drop-shadow(0 6px 6px #0005);transition:.12s;touch-action:manipulation}.gf-playing-card:first-child{margin-left:0}.gf-playing-card:hover,.gf-playing-card:focus-visible{transform:translateY(-17px);z-index:20}.gf-playing-card *{pointer-events:none}

/* Crazy Eights */
.tgg-crazy{width:min(900px,100%);margin:auto;text-align:center;display:grid;justify-items:center;gap:10px}.crazy-top{display:grid;justify-items:center;gap:5px;color:#fff;font-weight:900}.crazy-discard{width:100px;height:auto;aspect-ratio:500/726;filter:drop-shadow(0 8px 8px #0005)}.crazy-meta{font-size:11px;color:#dff4e8}.crazy-hand{display:flex;justify-content:center;align-items:flex-end;gap:0;min-height:140px;overflow:visible!important;max-height:none!important}.tgg-crazy .mini-card{width:82px;margin-left:-28px}.tgg-crazy .mini-card:first-child{margin-left:0}.crazy-draw{border:1px solid #9bb9ac;background:#fff;color:#17352a;border-radius:9px;padding:9px 15px;font-weight:1000}.tgg-crazy .game-status{color:#dff4e8!important}

@media(max-width:760px){.fc-free,.fc-found{grid-template-columns:repeat(4,minmax(42px,56px))}.fc-slot,.fc-foundation{width:56px}.fc-col,.spider-col{height:390px}.trick-table{height:260px}.trick-seat-1{right:3%}.trick-seat-3{left:3%}.mini-card{width:62px;margin-left:-25px}.gf-center{grid-template-columns:1fr 74px 105px 1fr;padding:7px 5px}.gf-playing-card{width:68px;margin-left:-28px}.gf-card-back{width:58px;margin-left:-33px}.gofish-table{grid-template-rows:auto 94px minmax(135px,1fr) auto 125px auto;min-height:510px}.tgg-crazy .mini-card{width:68px;margin-left:-27px}}
@media(max-width:520px){.trick-hand,.gf-player-hand,.crazy-hand{justify-content:flex-start;overflow-x:auto!important;overflow-y:visible!important;padding:14px 8px 3px}.mini-card,.gf-playing-card,.tgg-crazy .mini-card{flex:0 0 58px;width:58px;margin-left:-21px}.mini-card:first-child,.gf-playing-card:first-child,.tgg-crazy .mini-card:first-child{margin-left:0}.gf-center{grid-template-columns:46px 54px 82px 46px}.gf-books small{font-size:6px}.gf-statusbar{display:grid;gap:2px;text-align:center}.trick-seat{width:82px;height:115px}.trick-played-card{width:58px}.trick-seat-1{right:1%}.trick-seat-3{left:1%}}

/* Spider gameplay polish */
.spider-info>div{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.spider-stock-count{font-size:10px;color:#60756b;font-weight:800}.spider-deal:disabled{opacity:.45;cursor:not-allowed}.spider-card.tgg-card-back{border-width:2px!important}.spider-card.selected{outline:3px solid #f2cb38!important;outline-offset:1px;filter:drop-shadow(0 3px 4px #0005) drop-shadow(0 0 6px #f2cb38aa)}

/* Halloween card theme — animated bats + corner props. */
.tgg-game-host.tgg-holiday-halloween{
  position:relative;isolation:isolate;overflow:hidden!important;
  background:
    radial-gradient(circle at 14% 12%,rgba(255,132,31,.10),transparent 24%),
    radial-gradient(ellipse at 50% 18%,#4b245e,#1f183a 46%,#091d1c 100%)!important;
  border-color:#8a4aa5!important;
  box-shadow:inset 0 0 80px #ff7a161c,0 16px 34px #0003!important;
}
.tgg-game-host.tgg-holiday-halloween>*:not(.tgg-holiday-layer){position:relative;z-index:2}
.tgg-game-host.tgg-holiday-halloween:after{
  content:'';position:absolute;inset:0;z-index:39;pointer-events:none;border-radius:inherit;
  box-shadow:inset 0 0 0 2px #ff8a2b44,inset 0 0 72px #742a8a44;
}
.tgg-holiday-layer{position:absolute!important;inset:0!important;z-index:55!important;overflow:hidden!important;pointer-events:none!important;border-radius:inherit!important}
.tgg-holiday-sprite{position:absolute!important;z-index:56!important;display:block!important;visibility:visible!important;opacity:1;pointer-events:none!important;user-select:none!important}
.tgg-holiday-art{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 8px 8px #000a);pointer-events:none!important}

/* Bat flock: independent speeds/heights, always matching the direction of travel. */
.tgg-holiday-sprite.bat{left:-110px;width:74px;height:50px;animation:tggBatFlightRight 13s linear infinite}
.tgg-holiday-sprite.bat-a{top:9%;animation-duration:11s}
.tgg-holiday-sprite.bat-b{top:22%;width:58px;height:40px;animation-delay:-4s;animation-duration:15s}
.tgg-holiday-sprite.bat-c{top:34%;width:46px;height:32px;animation-delay:-9s;animation-duration:18s}

/* Larger desktop corner props. Keep the right prop clear of the Repair Tech bubble. */
.tgg-holiday-sprite.pumpkin{left:18px;bottom:14px;width:164px;height:164px;animation:tggHalloweenBob 2.4s ease-in-out infinite alternate}
.tgg-holiday-sprite.skeleton{bottom:6px;width:185px;height:185px;animation:tggHalloweenBob 3.2s ease-in-out infinite alternate-reverse}
.tgg-holiday-sprite.skeleton-safe-right{right:240px}

@keyframes tggBatFlightRight{
  0%{transform:translateX(0) translateY(0) rotate(-5deg)}
  24%{transform:translateX(31vw) translateY(-18px) rotate(2deg)}
  49%{transform:translateX(64vw) translateY(9px) rotate(-2deg)}
  74%{transform:translateX(97vw) translateY(-20px) rotate(3deg)}
  100%{transform:translateX(132vw) translateY(4px) rotate(-3deg)}
}
33%,65%{background-position-x:50%}
  66%,100%{background-position-x:100%}
}
@keyframes tggHalloweenBob{from{transform:translateY(0);filter:drop-shadow(0 6px 6px #0009) drop-shadow(0 0 4px #ff7a1644)}to{transform:translateY(-9px);filter:drop-shadow(0 8px 8px #0009) drop-shadow(0 0 16px #ff7a1677)}}

@media(min-width:1500px){
 .tgg-holiday-sprite.pumpkin{width:184px;height:184px}
 .tgg-holiday-sprite.skeleton{width:205px;height:205px}
 .tgg-holiday-sprite.skeleton-safe-right{right:270px}
}
@media(max-width:1100px){
 .tgg-holiday-sprite.pumpkin{width:112px;height:112px}
 .tgg-holiday-sprite.skeleton{width:128px;height:128px}
 .tgg-holiday-sprite.skeleton-safe-right{right:170px}
}
@media(max-width:700px){
 .tgg-holiday-sprite.bat{width:48px;height:34px}.tgg-holiday-sprite.bat-b{width:40px;height:28px}.tgg-holiday-sprite.bat-c{width:34px;height:24px}
 .tgg-holiday-sprite.pumpkin{left:8px;bottom:7px;width:64px;height:64px}
 .tgg-holiday-sprite.skeleton{right:96px;bottom:4px;width:76px;height:76px}
}
@media(prefers-reduced-motion:reduce){
 .tgg-holiday-sprite{animation:none!important}
 .tgg-holiday-sprite.bat-a{left:8%;top:8%}.tgg-holiday-sprite.bat-b{left:28%;top:18%}.tgg-holiday-sprite.bat-c{left:70%;top:30%}
}

/* Mines: intentionally clean. Do not inject a Kenney/Rune preview image behind the board. */
.tgg-game-host.tgg-pack-clean{background:linear-gradient(145deg,#f8fbfc,#edf5f7)!important;border-color:#c7dce3!important}
.tgg-game-host.tgg-pack-clean .tgg-asset-decor,.tgg-game-host.tgg-pack-clean .tgg-asset-credit-chip{display:none!important}



/* v1.4.5 — unified desktop playfield sizing audit
   One responsive system owns active-game sizing. Canvas width is calculated in
   JavaScript after reserving the visible HUD/score/status space. */
.tgg-game-view:not([hidden]){width:100%!important;max-width:100%!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
.tgg-game-view:not([hidden]) .tgg-gamebar{flex:0 0 auto!important}
.tgg-game-view:not([hidden]) .tgg-game-host{flex:1 1 auto!important;min-height:0!important}
.tgg.tgg-playing .tgg-head{display:none!important}
.tgg.tgg-playing .tgg-game-view:not([hidden]){position:fixed!important;inset:0!important;z-index:99990!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:100dvh!important;margin:0!important;padding:6px!important;background:#f4f8f6!important;box-sizing:border-box!important}
.tgg-game-host.tgg-layout-responsive{width:100%;min-width:0;max-width:none}
.tgg-game-host.tgg-layout-responsive:not(.tgg-has-canvas){overflow:auto!important;overscroll-behavior:contain}
.tgg-game-host.tgg-has-canvas{min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;align-items:stretch!important}
.tgg-game-host.tgg-has-canvas>.tgg-canvas-wrap{flex:0 0 auto!important;width:var(--tgg-canvas-width,100%)!important;max-width:none!important;min-width:0!important;margin:0 auto!important;text-align:center!important}
.tgg-game-host.tgg-has-canvas>.tgg-canvas-wrap>canvas{display:block!important;width:100%!important;height:auto!important;max-width:none!important;max-height:none!important;margin:0 auto!important;object-fit:contain!important}
.tgg-game-host.tgg-has-canvas>.tgg-canvas-wrap>.canvas-note{width:100%!important;max-width:none!important;min-height:20px;margin:6px auto 0!important;line-height:1.25!important}
.tgg-desktop-keys{flex:0 0 auto;margin:5px auto 0;max-width:1100px;padding:5px 10px;border:1px solid #cbd8dc;border-radius:999px;background:#fff;color:#4d6269;font-size:11px;font-weight:850;text-align:center;box-shadow:0 3px 10px rgba(27,54,65,.05)}
@media(min-width:900px){
 .tgg.tgg-playing .tgg-game-view:not([hidden]){padding:8px!important}
 .tgg.tgg-playing .tgg-gamebar{margin-bottom:6px!important;padding:6px 8px!important}
 .tgg.tgg-playing .tgg-game-host{padding:8px!important}
 .tgg-game-host.tgg-desktop-button-game .arcade-controls,.tgg-game-host[data-game="roadcrosser"] .road-controls.space-controls{display:none!important}
 .tgg-game-host.tgg-has-canvas>.tgg-canvas-wrap{align-self:center!important}
}
@media(max-width:899px){
 .tgg-desktop-keys{display:none!important}
 .tgg-game-host.tgg-has-canvas{overflow:auto!important;display:block!important}
 .tgg-game-host.tgg-has-canvas>.tgg-canvas-wrap{width:min(100%,700px)!important;max-width:100%!important}
 .tgg-game-host.tgg-has-canvas>.tgg-canvas-wrap>canvas{width:100%!important;height:auto!important}
}
@media(min-width:1200px){.tgg-game-host.tgg-layout-responsive:not(.tgg-has-canvas)>:first-child{margin-left:auto;margin-right:auto}}


/* v1.4.6 — desktop action-game scale correction.
   The JS owns the exact width; these rules prevent older per-game sizing from re-capping it. */
@media(min-width:900px){
 .tgg-game-host[data-game="artillerytanks"]{padding:6px 10px!important}
 .tgg-game-host[data-game="artillerytanks"]>.tgg-canvas-wrap,
 .tgg-game-host[data-game="tankbattle"]>.tgg-canvas-wrap{max-width:none!important}
 .tgg-game-host[data-game="artillerytanks"]>.tgg-canvas-wrap>canvas,
 .tgg-game-host[data-game="tankbattle"]>.tgg-canvas-wrap>canvas{max-width:none!important;width:100%!important;height:auto!important}
 .tgg-game-host[data-game="artillerytanks"] .artillery-hud,
 .tgg-game-host[data-game="artillerytanks"] .artillery-weaponbar{width:min(1180px,100%)!important}
 .tgg-game-host[data-game="artillerytanks"] .artillery-hud{margin-bottom:4px!important}
 .tgg-game-host[data-game="artillerytanks"] .artillery-weaponbar{margin-bottom:4px!important}
}


/* v1.4.8 — scoreboard-safe desktop scaling. The canvas may grow only inside the
   height remaining after all visible HUD/score/status siblings. */
@media(min-width:900px){
 .tgg-game-host.tgg-has-canvas{justify-content:flex-start!important}
 .tgg-game-host.tgg-has-canvas>.tgg-canvas-wrap{margin:0 auto!important}
 .tgg-game-host[data-game="artillerytanks"] .artillery-hud,
 .tgg-game-host[data-game="artillerytanks"] .artillery-weaponbar,
 .tgg-game-host[data-game="tankbattle"] .tank-hud{flex:0 0 auto!important}
}

/* v1.5.0 Cat Defense */
.cat-defense-hud{width:min(960px,100%);display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;margin:0 auto 8px;position:relative;z-index:3}
.cat-defense-hud span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid #cddbd5;border-radius:12px;background:#f7fbf9;color:#26343b;font:800 12px/1.1 Inter,Arial,sans-serif;box-shadow:0 4px 12px rgba(15,50,40,.08)}
.cat-defense-hud b{font-size:15px;color:#17683f}
.cat-defense-panel{width:min(960px,100%);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:8px auto 0;position:relative;z-index:3}
.cat-defense-panel button{border:1px solid #bad0c4;border-radius:12px;background:#fff;padding:10px 14px;min-height:46px;color:#22342d;font:800 12px/1.15 Inter,Arial,sans-serif;box-shadow:0 4px 12px rgba(15,50,40,.08);cursor:pointer}
.cat-defense-panel button b{display:block;margin-top:3px;color:#5f776b;font-size:11px}
.cat-defense-panel button:hover{transform:translateY(-1px);border-color:#66d62c}
.cat-defense-panel .cat-defense-wave{background:#66d62c;border-color:#4eaf22;color:#0b3318;font-size:13px;min-width:150px}
.tgg-game-host[data-game="catdefense"] .tgg-canvas-wrap{border-radius:18px;overflow:hidden;box-shadow:0 12px 34px rgba(10,40,32,.18)}
@media(max-width:700px){.cat-defense-hud{grid-template-columns:repeat(2,1fr)}.cat-defense-hud span{padding:8px 10px}.cat-defense-panel button{flex:1 1 42%;padding:9px 8px}.cat-defense-panel .cat-defense-wave{flex-basis:100%}}

/* v1.5.1 — Alphabet Bounce / Little Learners */
.alphabet-bounce-game{max-width:1040px;margin:0 auto}
.alphabet-bounce-stage{min-height:360px;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:18px;align-items:stretch;padding:18px;margin:8px 0;border-radius:28px;background:linear-gradient(180deg,#ecfbff,#fff8e8);border:2px solid #bfe8df;box-shadow:inset 0 0 40px rgba(71,192,170,.1)}
.alphabet-letter-choice{position:relative;border:3px solid #d7ece7;border-radius:28px;background:#fff;min-height:290px;padding:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 24px rgba(24,91,74,.11);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;overflow:hidden}
.alphabet-letter-choice:hover{transform:translateY(-5px) scale(1.02);border-color:#66d62c;box-shadow:0 16px 30px rgba(24,91,74,.16)}
.alphabet-letter-choice img{display:block;width:auto;height:235px;max-width:100%;object-fit:contain;filter:drop-shadow(0 8px 5px rgba(30,70,70,.15));user-select:none;pointer-events:none}
.alphabet-letter-choice span{position:absolute;right:12px;bottom:10px;width:38px;height:38px;border-radius:50%;background:#163c34;color:white;display:grid;place-items:center;font:900 20px/1 Arial,sans-serif}
.alphabet-letter-choice.correct{border-color:#62d535;background:#f4ffef;animation:alphabetCorrect .45s ease both}
.alphabet-letter-choice.wrong{border-color:#ff7777;background:#fff5f5;animation:alphabetWrong .35s ease both}
.alphabet-letter-choice img.is-bouncing{transform-origin:50% 100%}
.alphabet-finish{font:900 82px/1.05 Inter,Arial,sans-serif;text-align:center;color:#3cb76b;padding:45px 10px}.alphabet-finish span{font-size:52px}
.alphabet-bounce-game .kid-prompt strong{font-size:1.4em;color:#34a85f}.alphabet-bounce-game .kid-prompt b{color:#7b5598}
@keyframes alphabetCorrect{50%{transform:translateY(-12px) scale(1.05)}100%{transform:none}}
@keyframes alphabetWrong{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}100%{transform:none}}
@media(max-width:850px){.alphabet-bounce-stage{grid-template-columns:repeat(2,1fr);min-height:0;gap:10px;padding:10px}.alphabet-letter-choice{min-height:180px;padding:10px}.alphabet-letter-choice img{height:150px}}
@media(max-width:480px){.alphabet-bounce-stage{gap:7px;padding:7px}.alphabet-letter-choice{min-height:142px;border-radius:18px}.alphabet-letter-choice img{height:116px}.alphabet-letter-choice span{width:30px;height:30px;font-size:16px}.alphabet-finish{font-size:55px}}


/* v1.5.2 Pixel Quest */
.pixel-quest-hud{width:min(1100px,100%);display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:8px;margin:0 auto 8px;position:relative;z-index:3}
.pixel-quest-hud span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 13px;border:1px solid #c7d7d1;border-radius:11px;background:#f8fbfa;color:#24342e;font:900 12px/1.1 Inter,Arial,sans-serif;box-shadow:0 3px 10px rgba(20,45,36,.08)}
.pixel-quest-hud b{font-size:15px;color:#258b47}.pixel-quest-controls{justify-content:center;gap:12px;margin-top:7px}.pixel-quest-controls button{min-width:72px}.pixel-quest-controls .pq-jump{min-width:120px;background:#66d62c;color:#0b3318;border-color:#4caf22;font-weight:900}
.tgg-game-host[data-game="pixelquest"] .tgg-canvas-wrap{background:#16242b;border-color:#31515d;box-shadow:0 8px 24px rgba(9,29,35,.18)}
@media(max-width:700px){.pixel-quest-hud{grid-template-columns:repeat(2,1fr)}.pixel-quest-hud span{padding:7px 9px}.pixel-quest-controls button{min-width:66px}}

/* v1.5.5 Cat Defense campaign overhaul */
.cat-defense-hud-v2{grid-template-columns:repeat(5,minmax(105px,1fr));gap:7px}
.cat-defense-panel-v2{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));gap:7px;align-items:stretch}
.cat-defense-panel-v2 button{min-height:48px;padding:8px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;white-space:normal}
.cat-defense-panel-v2 button small{font-size:10px;color:#63776d;font-weight:800}
.cat-defense-panel-v2 button b{margin:0;font-size:11px}
.cat-defense-panel-v2 .cat-defense-wave{grid-column:span 2;min-width:0;background:#66d62c;border-color:#4eaf22;color:#0b3318}
.cat-defense-panel-v2 .cat-defense-reset{background:#f7f8f8;color:#68736e;border-style:dashed}
@media(min-width:1200px){
  .tgg-game-host[data-game="catdefense"] .cat-defense-hud-v2,.tgg-game-host[data-game="catdefense"] .cat-defense-panel-v2{width:min(1180px,100%)}
}
@media(max-width:900px){.cat-defense-hud-v2{grid-template-columns:repeat(3,1fr)}.cat-defense-panel-v2{grid-template-columns:repeat(3,1fr)}.cat-defense-panel-v2 .cat-defense-wave{grid-column:span 2}}
@media(max-width:620px){.cat-defense-hud-v2{grid-template-columns:repeat(2,1fr)}.cat-defense-panel-v2{grid-template-columns:repeat(2,1fr)}.cat-defense-panel-v2 .cat-defense-wave{grid-column:1/-1}.cat-defense-panel-v2 .cat-defense-reset{grid-column:1/-1}}
\n\n/* v1.6.3 — Survival RPG styles only; Arcade landing hero is theme-owned. */
/* v1.6.0 — Survival RPG preview + featured/newest landing hero */\n\n\n\n\n\n\n.tgg-coming-pill{display:inline-flex;background:#8be26f;color:#11250f;font-weight:900;letter-spacing:.12em;font-size:12px;padding:8px 12px;border-radius:999px}\n\n.tgg-feature-play{border:0;border-radius:12px;padding:13px 19px;font-weight:900;background:#85e969;color:#10220d;cursor:pointer}.tgg-feature-play:disabled{opacity:.85;cursor:default}\n\n.tgg-newest-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px;color:#fff}.tgg-newest-head span{font-size:10px;letter-spacing:.16em;color:#79dd68;font-weight:900}.tgg-newest-head strong{font-size:18px}\n.tgg-newest-grid button:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.04) 62%)}\n.tgg-survival-card{position:relative;overflow:hidden}.tgg-survival-card .tgg-card-thumb{width:100%;height:150px;object-fit:cover;border-radius:12px;margin-bottom:10px}.tgg-survival-card.is-coming-soon{opacity:1;cursor:default}.tgg-survival-card.is-coming-soon em{background:#8be26f!important;color:#10220d!important}\n.tgg-survival-dev{width:min(1180px,100%);margin:0 auto}.surv-hud{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:9px}.surv-hud span{background:#18241d;border:1px solid #33463a;color:#f4fff6;border-radius:10px;padding:7px 10px;font-weight:800}.surv-canvas{display:block;width:100%;height:auto;max-height:calc(100vh - 230px);background:#356b3c;border:2px solid #314d37;border-radius:16px;image-rendering:pixelated;box-shadow:0 16px 38px rgba(0,0,0,.28)}.surv-note{margin-top:9px;color:#d8e4da;font-size:13px;text-align:center}.tgg-game-card[disabled]{pointer-events:none}\n@media(max-width:900px){}\n@media(max-width:560px){}\n\n\n

/* v1.7.0 — Survival RPG engine build 2: scrolling world, inventory, crafting, building, persistent state */
.surv-v2{width:min(1220px,100%);margin:0 auto}.surv-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.surv-v2 .surv-hud{margin:0;display:flex;gap:6px;flex-wrap:wrap}.surv-v2 .surv-hud span,.surv-event{background:#142319;border:1px solid #385341;color:#f3fff5;border-radius:9px;padding:7px 9px;font-weight:800;font-size:13px}.surv-event{color:#caffb9;min-width:190px;text-align:center}.surv-stage-wrap{position:relative}.surv-v2 .surv-canvas{width:100%;max-height:calc(100vh - 270px);min-height:430px;object-fit:contain;background:#315f39}.surv-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px}.surv-toolbar button{border:1px solid #354f3c;background:#16251b;color:#f5fff5;border-radius:9px;padding:8px 11px;font-weight:800;cursor:pointer}.surv-toolbar button:hover{border-color:#73db68;background:#203728}.surv-toolbar kbd{background:#0d1610;border:1px solid #425b48;border-radius:5px;padding:1px 4px;margin-left:5px}.surv-save-state{margin-left:auto;color:#9db6a3;font-size:12px;font-weight:700}.surv-panel{position:absolute;right:14px;top:14px;width:min(380px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;background:rgba(14,24,17,.97);border:1px solid #4b6b52;border-radius:14px;padding:12px;z-index:12;box-shadow:0 16px 45px rgba(0,0,0,.42);color:#f4fff5}.surv-panel[hidden],.surv-cabin-interior[hidden]{display:none!important}.surv-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:18px}.surv-panel-head button{border:0;background:#283d2d;color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:20px}.surv-inv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.surv-inv-grid div{background:#1e3224;border:1px solid #34503b;border-radius:9px;padding:8px;display:flex;justify-content:space-between;gap:8px;text-transform:capitalize}.surv-recipe-list,.surv-build-list{display:grid;gap:8px}.surv-recipe-list button,.surv-build-list button{display:grid;text-align:left;gap:3px;border:1px solid #385742;background:#1c3022;color:#f6fff7;border-radius:10px;padding:10px;cursor:pointer}.surv-recipe-list button:hover:not(:disabled),.surv-build-list button:hover:not(:disabled){border-color:#79e46a;background:#26452e}.surv-recipe-list button:disabled,.surv-build-list button:disabled{opacity:.48;cursor:not-allowed}.surv-recipe-list small,.surv-build-list small{color:#c8dccb}.surv-recipe-list em,.surv-build-list em{color:#85e96f;font-style:normal;font-size:11px;font-weight:800}.surv-cabin-interior{position:absolute;inset:0;z-index:15;display:grid;place-items:center;background:radial-gradient(circle at center,#735237 0 28%,#39291e 29% 100%);border-radius:16px;color:#fff}.surv-cabin-interior>div{background:rgba(25,16,10,.92);border:2px solid #b88350;border-radius:15px;padding:28px;text-align:center;max-width:420px}.surv-cabin-interior strong{font-size:26px}.surv-cabin-interior button{margin:6px;border:1px solid #b88350;background:#704624;color:#fff;padding:10px 14px;border-radius:9px;font-weight:800;cursor:pointer}.surv-note span{color:#a9bea9}@media(max-width:760px){.surv-v2 .surv-canvas{min-height:0;max-height:none}.surv-event{width:100%}.surv-save-state{width:100%;margin-left:0}.surv-toolbar button{flex:1 1 42%}.surv-panel{right:8px;top:8px;width:calc(100% - 16px)}}

/* TG Game Engine launch + pause system */
.tgg-game-actions{display:flex;gap:8px;justify-content:flex-end}.tgg-launch-overlay,.tgg-pause-overlay{position:absolute;inset:0;z-index:900;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#0d2936 0,#06141d 48%,#02080d 100%);border-radius:14px;overflow:hidden}.tgg-game-view{position:relative;min-height:620px}.tgg-launch-stage{width:min(720px,88vw);min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;text-align:center}.tgg-launch-stage img{display:block;max-width:min(620px,80vw);max-height:250px;width:auto;height:auto;object-fit:contain}.tgg-loading-line{width:min(420px,65vw);height:5px;border-radius:10px;background:#ffffff18;overflow:hidden}.tgg-loading-line i{display:block;height:100%;width:35%;background:#72ff2f;box-shadow:0 0 18px #72ff2f;animation:tggLoadSweep 1s ease-in-out infinite}.tgg-built-with{font-size:13px;font-weight:900;letter-spacing:.18em;color:#b9c7ce}.tgg-launch-start,.tgg-pause-card button{border:1px solid #72ff2f!important;background:#0b2818!important;color:#fff!important;border-radius:999px!important;padding:13px 30px!important;font-weight:900!important;cursor:pointer;box-shadow:0 0 24px #72ff2f22}.tgg-launch-start:hover,.tgg-pause-card button:hover{background:#72ff2f!important;color:#07110b!important}.tgg-pause-overlay{background:#02080de8;backdrop-filter:blur(7px)}.tgg-pause-card{width:min(420px,85vw);padding:38px;text-align:center;border:1px solid #72ff2f66;border-radius:22px;background:#071923;box-shadow:0 24px 70px #000a}.tgg-pause-card strong{display:block;font-size:28px;letter-spacing:.08em;margin-bottom:24px}.tgg-is-paused .tgg-game-host{pointer-events:none}.tgg-engine-tag{position:sticky;top:6px;z-index:80;margin:0 0 8px auto;width:max-content;max-width:100%;height:30px;padding:4px 9px 4px 5px;display:flex;align-items:center;gap:7px;border:1px solid #72ff2f55;border-radius:999px;background:#06140de8;color:#dfffd1;font-size:10px;font-weight:900;letter-spacing:.04em;box-shadow:0 5px 18px #0005}.tgg-engine-tag img{width:36px;height:20px;object-fit:contain}.tgg-gamebar .tgg-pause-game{border-color:#72ff2f66}@keyframes tggLoadSweep{0%{transform:translateX(-110%)}100%{transform:translateX(300%)}}@media(max-width:720px){.tgg-launch-stage{min-height:330px}.tgg-launch-stage img{max-height:180px}.tgg-game-actions{gap:5px}.tgg-gamebar button{padding:8px 9px}.tgg-engine-tag{position:relative;top:auto}}

/* v1.7.2 — loading-logo path + contrast fix */
.tgg-launch-logo-card{display:flex;align-items:center;justify-content:center;width:min(660px,82vw);min-height:170px;padding:22px 28px;border-radius:22px;background:#fff;border:1px solid #dce8df;box-shadow:0 18px 60px #0008,0 0 0 1px #72ff2f22;box-sizing:border-box}
.tgg-launch-logo-card img{display:block!important;max-width:100%!important;max-height:220px!important;width:auto!important;height:auto!important;object-fit:contain!important;opacity:1!important;visibility:visible!important}
@media(max-width:720px){.tgg-launch-logo-card{width:min(92vw,580px);min-height:125px;padding:16px 18px}.tgg-launch-logo-card img{max-height:150px!important}}

/* v1.8.0 — Survival RPG Build 3: equipment, magic, camps and dungeons */
.surv-v3{width:min(1240px,100%);margin:0 auto}.surv-v3 .surv-canvas{width:100%;max-height:calc(100vh - 278px);min-height:430px;object-fit:contain;background:#315f39}.surv-v3 .surv-panel h4{margin:14px 0 8px;color:#bff6ae;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.surv-equip-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:8px}.surv-equip-grid div{background:#17271d;border:1px solid #3a5a43;border-radius:9px;padding:8px;display:flex;justify-content:space-between;gap:8px}.surv-equip-grid span{color:#a9c6af}.surv-spell-list{display:grid;gap:7px}.surv-spell-list>div{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#171e20;border:1px solid #38464c;border-radius:9px;padding:9px;color:#879397}.surv-spell-list>div.known{border-color:#69cf73;background:#193021;color:#effff0}.surv-spell-list span{font-size:11px;color:#9db0a2}.surv-v3 .surv-note{max-width:1050px;margin:8px auto 0}.surv-v3 .surv-hud span:nth-child(2){border-color:#3b6880;background:#172b35;color:#cff2ff}
@media(max-width:760px){.surv-v3 .surv-canvas{min-height:0;max-height:none}.surv-equip-grid{grid-template-columns:1fr}.surv-v3 .surv-hud span{font-size:11px;padding:6px 7px}}


/* v1.11.0 — TG Game Engine world-object / build placement framework */
.surv-v4{width:min(1240px,100%);margin:0 auto}.surv-v4 .surv-canvas{width:100%;max-height:calc(100vh - 278px);min-height:430px;object-fit:contain;background:#315f39;touch-action:none}.surv-v4 .surv-note{max-width:1080px;margin:8px auto 0}
.surv-v4 .surv-equip-grid button{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#17271d;border:1px solid #3a5a43;color:#f4fff5;border-radius:9px;padding:9px;cursor:pointer;font:inherit}.surv-v4 .surv-equip-grid button:hover{border-color:#7bde68}.surv-v4 .surv-equip-grid button.equipped{border-color:#86ee70;box-shadow:0 0 0 2px rgba(134,238,112,.15) inset;background:#203c27}.surv-v4 .surv-equip-grid button.equipped:after{content:'EQUIPPED';font-size:9px;letter-spacing:.08em;color:#86ee70;font-weight:900}
.surv-v4 .surv-cabin-interior{position:absolute;inset:0;z-index:15;display:grid;place-items:center;background:rgba(8,11,9,.94);border-radius:16px;padding:12px}.surv-v4 .surv-cabin-room{position:relative;width:min(100%,920px);padding:0!important;background:transparent!important;border:0!important;max-width:none!important}.surv-v4 .surv-cabin-canvas{display:block;width:100%;height:auto;max-height:calc(100vh - 250px);image-rendering:pixelated;border:2px solid #89633e;border-radius:14px;background:#211b1a;box-shadow:0 18px 55px rgba(0,0,0,.5)}.surv-v4 .surv-cabin-actions{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;background:rgba(25,16,10,.9);border:1px solid #b88350;border-radius:12px;padding:9px 12px;min-width:min(92%,620px)}.surv-v4 .surv-cabin-actions strong{font-size:16px}.surv-v4 .surv-cabin-actions span{color:#d8c3aa;font-size:12px}.surv-v4 .surv-cabin-actions button{margin:0;border:1px solid #b88350;background:#704624;color:#fff;padding:8px 11px;border-radius:8px;font-weight:800;cursor:pointer}
@media(max-width:760px){.surv-v4 .surv-canvas{min-height:0;max-height:none}.surv-v4 .surv-cabin-actions{position:static;transform:none;margin-top:8px;min-width:0}.surv-v4 .surv-cabin-canvas{max-height:none}}
\n/* v1.16.0 — TG Game Engine Survival UI + stations + ranching */
.surv-v4 .surv-panel{background:#2b1d13f7;border:3px solid #79502d;box-shadow:0 0 0 2px #c89555 inset,0 20px 50px #0008;color:#fff7de;image-rendering:pixelated}.surv-v4 .surv-panel-head{background:#2e8d66;border:2px solid #8bd7a4;margin:-12px -12px 12px;padding:8px 10px;color:white}.surv-v4 .surv-panel-head button{background:#183e2f;border:1px solid #8bd7a4}.surv-v4 .surv-panel h4{color:#f0d6a0}.surv-inv-grid{grid-template-columns:repeat(4,minmax(70px,1fr));gap:7px}.surv-item-card{position:relative;min-height:82px;border:2px solid #9a6b3e!important;background:#ead09a!important;color:#2a1a10!important;border-radius:3px!important;padding:5px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;image-rendering:pixelated}.surv-item-card.usable{cursor:pointer;box-shadow:0 0 0 2px #47a16f inset}.surv-item-icon{width:42px;height:42px;display:grid;place-items:center}.surv-item-icon img{max-width:42px;max-height:42px;object-fit:contain;image-rendering:pixelated}.surv-item-name{font-size:10px;text-transform:capitalize;line-height:1.05}.surv-item-card b{position:absolute;right:5px;bottom:3px;background:#302016;color:#fff;border-radius:9px;padding:1px 5px;font-size:10px}.surv-equip-grid button img{width:36px;height:36px;object-fit:contain;image-rendering:pixelated}.surv-spell-list>div{display:grid;grid-template-columns:36px 1fr auto}.surv-spell-list img{width:32px;height:32px;object-fit:contain;image-rendering:pixelated}.surv-job-list{display:grid;gap:6px}.surv-job-list button{display:flex;justify-content:space-between;gap:10px;background:#1f3325;color:#fff;border:1px solid #5d7e65;border-radius:7px;padding:8px;cursor:pointer}.surv-empty{padding:12px;color:#cdbb9d;font-size:12px}.surv-spellbar{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:11;display:flex;gap:8px;padding:7px 10px;background:#19130fe6;border:2px solid #8b6137;border-radius:8px;box-shadow:0 5px 20px #0008}.spell-slot{width:56px;height:56px;border:2px solid #6e5033;background:#39291f;border-radius:5px;display:grid;place-items:center;position:relative;cursor:not-allowed}.spell-slot.known{border-color:#57bb78;cursor:pointer;background:#18291e}.spell-slot img{width:42px;height:42px;object-fit:contain;image-rendering:pixelated}.spell-slot kbd{position:absolute;right:2px;bottom:2px;background:#111;color:white;border-radius:3px;padding:1px 3px;font-size:9px}.spell-lock{font-size:22px;opacity:.55}.surv-v4 .surv-canvas{min-height:500px}.surv-toolbar{padding-right:8px}.surv-note{opacity:.75}@media(max-width:760px){.surv-inv-grid{grid-template-columns:repeat(3,1fr)}.surv-spellbar{bottom:8px}.spell-slot{width:48px;height:48px}.spell-slot img{width:36px;height:36px}}

/* v1.17.0 — TG Game Engine top-down character selection/controller */
.surv-character-select{position:absolute;inset:0;z-index:35;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,rgba(42,112,72,.86),rgba(8,18,14,.97));backdrop-filter:blur(3px);border-radius:16px}.surv-character-select[hidden]{display:none}.surv-char-panel{width:min(900px,92%);background:#111c17;border:1px solid #3a5c49;border-radius:22px;padding:24px;box-shadow:0 24px 60px rgba(0,0,0,.5);color:#eefcf2}.surv-char-kicker{font-size:11px;font-weight:900;letter-spacing:.18em;color:#7fe76b}.surv-char-panel h2{margin:5px 0 4px;font-size:32px}.surv-char-panel>p{margin:0 0 18px;color:#b8cbbf}.surv-char-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.surv-char-card{border:2px solid #2a4034;background:#17251d;color:#fff;border-radius:16px;padding:14px;cursor:pointer;display:grid;justify-items:center;gap:4px;transition:.18s}.surv-char-card:hover,.surv-char-card.selected{border-color:#7fe76b;transform:translateY(-2px);box-shadow:0 0 0 3px rgba(127,231,107,.12)}.surv-char-card img{width:128px;height:128px;object-fit:cover;object-position:left top;image-rendering:pixelated}.surv-char-card strong{font-size:18px}.surv-char-card span{color:#8fe67e;font-weight:800}.surv-char-card small{color:#9db0a3}.surv-char-start{display:block;margin:20px auto 0;border:0;border-radius:12px;padding:13px 24px;background:#76e45c;color:#10220d;font-size:16px;font-weight:900;cursor:pointer}.surv-char-start:disabled{opacity:.4;cursor:not-allowed}.spell-glyph{display:grid;place-items:center;width:100%;height:100%;font-size:28px;color:var(--spell);text-shadow:0 0 12px var(--spell)}@media(max-width:760px){.surv-char-grid{grid-template-columns:1fr}.surv-char-card{grid-template-columns:84px 1fr;text-align:left;justify-items:start}.surv-char-card img{grid-row:1/4;width:84px;height:84px}.surv-char-panel{max-height:92%;overflow:auto}}


/* v1.21.0 — TG Game Engine RPG base UI + jewelry */
.surv-v4 .surv-panel{background:#ead6a5 url('../survival-rpg/ui-rpg/panel_parchment.png') repeat!important;color:#2c1c10!important;border:4px solid #6c4427!important;border-radius:4px!important;box-shadow:0 0 0 2px #d1a365 inset,0 18px 44px #0008!important;image-rendering:pixelated}
.surv-v4 .surv-panel-head{background:#59bd83 url('../survival-rpg/ui-rpg/panel_green.png') repeat!important;color:#102318!important;border:2px solid #1d6d4c!important;border-radius:2px!important;text-shadow:0 1px #b9f2ce;margin:-12px -12px 10px!important}
.surv-v4 .surv-panel-head button{background:#6a4328!important;border:2px solid #b98953!important;border-radius:2px!important}
.surv-v4 .surv-panel h4{color:#52321d!important;border-bottom:2px solid #9f7347;padding-bottom:4px}
.surv-toolbar button,.surv-v4 .surv-recipe-list button,.surv-v4 .surv-build-list button,.surv-v4 .surv-job-list button{border-radius:3px!important;border:2px solid #254d39!important;background:#58be82!important;color:#12271b!important;box-shadow:inset 0 0 0 2px #83daa3!important;text-shadow:0 1px #b8efca!important;image-rendering:pixelated}
.surv-toolbar button:hover,.surv-v4 .surv-recipe-list button:hover:not(:disabled),.surv-v4 .surv-build-list button:hover:not(:disabled){background:#6fd197!important}
.surv-stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:4px 0 12px}.surv-stat-strip span{display:flex;align-items:center;justify-content:center;gap:4px;background:#6b452b;color:#fff1c8;border:2px solid #a77a4b;padding:6px 3px;font-size:11px}.surv-stat-strip b{color:#9ef0b8}
.surv-jewelry-equipped{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px}.surv-jewel-slot{min-height:72px;background:#8a633f;border:2px solid #5d3c25;padding:5px;text-align:center;text-transform:capitalize;color:#f7e5b9}.surv-jewel-slot>span{font-size:10px;font-weight:900;display:block;margin-bottom:4px}.surv-jewel-slot em{opacity:.6;font-size:11px}.surv-jewel-slot button{width:100%;border:0;background:#ead4a1;color:#382317;display:grid;grid-template-columns:34px 1fr;gap:2px;text-align:left;align-items:center;padding:4px;cursor:pointer}.surv-jewel-slot img{width:32px;height:32px;image-rendering:pixelated;grid-row:1/3}.surv-jewel-slot small{font-size:8px;color:#6c4a2f}.surv-jewelry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;max-height:260px;overflow:auto;padding-right:2px}.surv-jewel-card{display:grid;grid-template-columns:42px 1fr;gap:2px 6px;align-items:center;text-align:left;background:#e7c98e;border:2px solid #8c653c;color:#2d1b10;padding:5px;cursor:pointer;min-height:58px}.surv-jewel-card img{width:40px;height:40px;grid-row:1/4;image-rendering:pixelated}.surv-jewel-card strong{font-size:11px}.surv-jewel-card span,.surv-jewel-card small{font-size:9px;color:#684729}.surv-jewel-card.tier-3{border-color:#3e79b5}.surv-jewel-card.tier-4{border-color:#8855b8}.surv-jewel-card.tier-5{border-color:#c59127;box-shadow:0 0 8px #f2c859aa}.surv-jewel-card.equipped{outline:3px solid #47a16f;outline-offset:-3px}
.surv-v4 .surv-inv-grid{background:#9a7048;padding:6px;border:2px solid #68472d}.surv-v4 .surv-item-card{background:#ead8a5!important;border-color:#765334!important}
.surv-spellbar{border-radius:3px!important;background:#6b482eeb!important;border:3px solid #c1955e!important}.spell-slot{border-radius:2px!important;background:#c9a06a!important;border-color:#6a4529!important}.spell-slot.known{background:#28543a!important;border-color:#68c88d!important}
@media(max-width:760px){.surv-jewelry-grid{grid-template-columns:1fr}.surv-jewelry-equipped{grid-template-columns:1fr}.surv-stat-strip{grid-template-columns:repeat(2,1fr)}}


/* v1.22.0 — readable RPG UI + sealed prefab building pass */
.surv-v4 .surv-panel{
  right:18px!important;top:18px!important;width:min(500px,calc(100% - 36px))!important;
  max-height:calc(100% - 36px)!important;padding:16px!important;
  background:linear-gradient(rgba(248,231,187,.96),rgba(239,211,153,.96)),url('../survival-rpg/ui-rpg/panel_parchment.png') repeat!important;
  color:#24160c!important;border:5px solid #674025!important;
  box-shadow:0 0 0 3px #d6a968 inset,0 18px 50px #000b!important;
  font-size:14px!important;line-height:1.32!important
}
.surv-v4 .surv-panel-head{margin:-16px -16px 14px!important;padding:10px 12px!important;font-size:20px!important;font-weight:900!important;background:#4fb778!important;color:#102318!important;text-shadow:none!important}
.surv-v4 .surv-panel-head button{width:34px!important;height:34px!important;color:#fff!important;font-weight:900!important;font-size:22px!important}
.surv-v4 .surv-panel h4{font-size:15px!important;margin:14px 0 8px!important;color:#3b2414!important;border-bottom:3px solid #8d6038!important;letter-spacing:.02em}
.surv-stat-strip{gap:7px!important;margin:4px 0 14px!important}.surv-stat-strip span{min-height:38px!important;font-size:13px!important;background:#51351f!important;color:#fff4d4!important;border-color:#ba8952!important}.surv-stat-strip b{font-size:14px!important;color:#b9ffd0!important}
.surv-jewelry-equipped{gap:8px!important}.surv-jewel-slot{min-height:88px!important;padding:7px!important;background:#6f4b2f!important;color:#fff0c7!important;border:3px solid #4e311d!important}.surv-jewel-slot>span{font-size:12px!important}.surv-jewel-slot button{grid-template-columns:42px 1fr!important;padding:7px!important;background:#f1d9a1!important;color:#29170b!important}.surv-jewel-slot img{width:40px!important;height:40px!important}.surv-jewel-slot small{font-size:10px!important;color:#51351f!important}.surv-jewel-slot em{font-size:12px!important;color:#f6dfb7!important}
.surv-jewelry-grid{gap:8px!important;max-height:310px!important}.surv-jewel-card{grid-template-columns:52px 1fr!important;min-height:72px!important;padding:8px!important;background:#f3dda8!important;border-width:3px!important;color:#26160b!important}.surv-jewel-card img{width:50px!important;height:50px!important}.surv-jewel-card strong{font-size:13px!important;color:#201108!important}.surv-jewel-card span,.surv-jewel-card small{font-size:11px!important;color:#57371f!important;line-height:1.25!important}
.surv-v4 .surv-inv-grid{gap:8px!important;padding:8px!important;background:#7a5334!important;border-width:3px!important}.surv-item-card{min-height:96px!important;padding:8px!important}.surv-item-icon,.surv-item-icon img{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important}.surv-item-name{font-size:12px!important;font-weight:800!important;color:#27170c!important}.surv-item-card b{font-size:11px!important;padding:2px 6px!important}
.surv-equip-grid button{font-size:12px!important;min-height:54px!important}.surv-recipe-list button,.surv-build-list button,.surv-job-list button{font-size:13px!important;padding:10px!important}.surv-recipe-list small,.surv-build-list small{font-size:11px!important;color:#223a2b!important}.surv-recipe-list em,.surv-build-list em{font-size:11px!important;color:#173e27!important}
@media(max-width:760px){.surv-v4 .surv-panel{right:6px!important;top:6px!important;width:calc(100% - 12px)!important;max-height:calc(100% - 12px)!important;padding:12px!important}.surv-v4 .surv-panel-head{margin:-12px -12px 12px!important}.surv-jewelry-grid{grid-template-columns:1fr!important}.surv-inv-grid{grid-template-columns:repeat(3,1fr)!important}}
/* Survival Build 14: cooking + readability */
.surv-v4 .surv-cook-help{margin:0 0 10px;color:#3c2919;font-weight:700;font-size:13px;line-height:1.35}
.surv-cook-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.surv-cook-list button{display:grid;grid-template-columns:58px 1fr;grid-template-rows:auto auto auto;gap:2px 9px;align-items:center;text-align:left;padding:10px;border:3px solid #765334;background:#f0d9a5;color:#2a190e;cursor:pointer;box-shadow:inset 0 0 0 2px #f7e7bd;image-rendering:pixelated}
.surv-cook-list button:disabled{opacity:.45;cursor:not-allowed}.surv-cook-list button:hover:not(:disabled){background:#f8e8bd}
.surv-cook-list img{grid-row:1/4;width:52px;height:52px;object-fit:contain;image-rendering:pixelated}.surv-cook-list strong{font-size:14px}.surv-cook-list small{font-size:11px;color:#54341e}.surv-cook-list em{font-size:10px;color:#2b6b42;font-style:normal;font-weight:800}
@media(max-width:760px){.surv-cook-list{grid-template-columns:1fr}}

/* v1.24.0 — villages, trading and interactive chest inventory */
.surv-market-grid,.surv-chest-grid{display:grid;gap:9px}.surv-market-help,.surv-chest-help{margin:2px 0 12px;color:#4a301c;font-weight:800}.surv-market-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;background:#f2dba5;border:3px solid #815a36;padding:9px}.surv-market-row div{display:grid}.surv-market-row strong{font-size:14px}.surv-market-row small{font-size:11px;color:#604126}.surv-market-row button{border:2px solid #2e5c41;background:#5bc087;color:#132b1d;font-weight:900;padding:8px;cursor:pointer}.surv-market-row button:disabled{opacity:.4;cursor:not-allowed}.surv-chest-grid{grid-template-columns:repeat(3,1fr)}.surv-chest-item{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;align-items:center;gap:2px 7px;padding:9px;background:#f1d69b;border:3px solid #7b5230;color:#2b190d;text-align:left;cursor:pointer}.surv-chest-item span{grid-row:1/3;width:46px;height:46px;display:grid;place-items:center;font-size:26px}.surv-chest-item img{max-width:44px;max-height:44px;image-rendering:pixelated}.surv-chest-item strong{font-size:13px}.surv-chest-item small{font-size:11px;color:#6a4628}@media(max-width:700px){.surv-market-row{grid-template-columns:1fr 1fr}.surv-market-row div{grid-column:1/-1}.surv-chest-grid{grid-template-columns:repeat(2,1fr)}}
/* v1.24.5 — chest jewelry identity + item icon cleanup */
.surv-chest-item.surv-chest-jewelry{grid-template-columns:56px 1fr;min-height:78px}.surv-chest-item.surv-chest-jewelry span{width:54px;height:54px}.surv-chest-item.surv-chest-jewelry img{max-width:52px;max-height:52px}.surv-chest-item.surv-chest-jewelry small{line-height:1.25}.surv-chest-item.tier-3{border-color:#3e79b5}.surv-chest-item.tier-4{border-color:#8855b8}.surv-chest-item.tier-5{border-color:#c59127;box-shadow:0 0 7px #f2c85988}
/* v1.25 class combat UI */
.surv-classbar .spell-slot.selected{outline:3px solid #fff1a8!important;box-shadow:0 0 0 2px #6d4d27 inset,0 0 14px #ffe47a99!important;transform:translateY(-3px)}
.surv-classbar{gap:5px!important}.surv-classbar .spell-slot{width:52px;height:52px}
.surv-weapon-picker{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;background:none!important;border:0!important;padding:0!important}.surv-weapon-picker button{min-width:0!important;flex-direction:column!important;text-align:center!important}.surv-weapon-picker button img{width:44px!important;height:44px!important}.surv-weapon-picker button span{font-size:10px!important;color:#eef8ef!important}.surv-weapon-picker button b{font-size:9px!important}
@media(max-width:760px){.surv-classbar .spell-slot{width:43px;height:43px}.surv-weapon-picker{grid-template-columns:repeat(3,1fr)}}


/* v1.25.3 — class ability hotbar containment fix */
.surv-classbar .spell-slot{
  position:relative!important;
  overflow:hidden!important;
  display:block!important;
  box-sizing:border-box!important;
  padding:0!important;
  isolation:isolate;
}
.surv-classbar .spell-slot .spell-action-icon{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:40px!important;
  height:40px!important;
  max-width:calc(100% - 10px)!important;
  max-height:calc(100% - 10px)!important;
  object-fit:contain!important;
  image-rendering:pixelated;
  z-index:1!important;
  pointer-events:none!important;
  margin:0!important;
}
.surv-classbar .spell-slot .spell-action-icon.locked{
  opacity:.42!important;
  filter:saturate(.45) brightness(.72);
}
.surv-classbar .spell-slot .spell-lock{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  z-index:3!important;
  margin:0!important;
  line-height:1!important;
  pointer-events:none!important;
}
.surv-classbar .spell-slot kbd{
  z-index:4!important;
  pointer-events:none!important;
}
.surv-classbar .spell-slot.selected{
  overflow:hidden!important;
}
@media(max-width:760px){
  .surv-classbar .spell-slot .spell-action-icon{
    width:33px!important;
    height:33px!important;
  }
}

/* v1.25.5 skill progression */
.surv-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 14px}
.surv-skill-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 11px;border:2px solid rgba(96,54,31,.55);background:rgba(255,236,190,.86);color:#3a2114;font-size:12px}
.surv-skill-row strong{font-size:13px}
.surv-skill-row span{font-weight:700;white-space:nowrap}
@media(max-width:760px){.surv-skill-grid{grid-template-columns:1fr}}

/* v1.26.0 baked character loadout UI */
.surv-shield-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:6px 0 12px}
.surv-shield-picker button,.surv-weapon-picker button{overflow:hidden}
.surv-shield-picker img{width:52px;height:52px;object-fit:contain;image-rendering:pixelated}
.surv-no-equip{display:flex;min-height:52px;align-items:center;justify-content:center;font-weight:800}
.surv-equip-grid h5{margin:8px 0 5px;font-size:13px;text-transform:uppercase;letter-spacing:.04em}


/* v1.26.2 single-source hero chooser */
.surv-char-card{min-width:0}
.surv-char-portrait{width:100%;height:146px;display:flex;align-items:flex-end;justify-content:center;overflow:visible}
.surv-char-card .surv-char-portrait img{width:145px;height:145px;object-fit:contain;object-position:center bottom;image-rendering:pixelated}
@media(max-width:760px){
  .surv-char-card .surv-char-portrait{grid-row:1/4;width:90px;height:90px}
  .surv-char-card .surv-char-portrait img{width:88px;height:88px}
}

/* v1.26.3 — authoritative Survival viewport rules */
.tgg-survival-dev,.surv-v2,.surv-v3,.surv-v4{
  width:calc(100vw - 28px)!important;
  max-width:none!important;
  margin-left:50%!important;
  transform:translateX(-50%)!important;
}
.surv-stage-wrap{width:100%!important}
.surv-v4 .surv-canvas,.surv-v3 .surv-canvas,.surv-v2 .surv-canvas,.surv-canvas{
  display:block!important;
  width:100%!important;
  height:auto;
  max-height:none!important;
  min-height:0!important;
  object-fit:fill!important;
  box-sizing:border-box;
}
@media(max-width:760px){
  .tgg-survival-dev,.surv-v2,.surv-v3,.surv-v4{width:100%!important;margin-left:0!important;transform:none!important}
}
