/* Forge No Ads Games — high-fidelity responsive visual pass.
   Pure presentational enhancement: no game rules, payments, hit tests or positioning changed.
   Shared across the approved 150-game catalog; genre-specific renderers remain authoritative. */
:root {
  --forge-vc-gold:#efd097;
  --forge-vc-ivory:#fff7e8;
  --forge-vc-night:#08111d;
  --forge-vc-edge:rgba(244,210,144,.55);
  --forge-vc-shadow:0 2px 0 rgba(255,246,217,.24),0 8px 0 rgba(8,12,20,.45),0 23px 38px rgba(0,0,0,.38),0 38px 70px rgba(0,0,0,.18);
}
#home {background:radial-gradient(ellipse at 50% 0%,rgba(93,144,163,.2),transparent 52%),radial-gradient(ellipse at 8% 30%,rgba(193,137,74,.12),transparent 36%),linear-gradient(150deg,#0a1624,#111d2a 45%,#050b14);}
#home .forge-brand {isolation:isolate}
#home .forge-title {color:#fff6dd;text-shadow:0 1px 0 #d9b779,0 3px 1px #865f36,0 10px 23px rgba(0,0,0,.66);-webkit-font-smoothing:antialiased}
#home .forge-promise li {border-color:rgba(255,226,163,.3);box-shadow:inset 0 1px rgba(255,255,255,.18),0 9px 22px rgba(0,0,0,.18)}
#home .grid {gap:clamp(12px,1.5vw,22px)}
#home .card {
  isolation:isolate;
  border:1px solid var(--forge-vc-edge);
  border-radius:clamp(16px,1.6vw,24px);
  background:linear-gradient(150deg,#fffaf1 0%,#f0e4ce 46%,#cbdae0 100%);
  box-shadow:var(--forge-vc-shadow);
  color:#18232c;
  overflow:hidden;
}
#home .card::before {
  background:linear-gradient(132deg,rgba(255,255,255,.68),transparent 37%,transparent 72%,rgba(59,56,54,.12));
}
#home .card::after {
  content:"";position:absolute;inset:3px;border:1px solid rgba(255,255,255,.52);
  border-radius:inherit;pointer-events:none;z-index:0;
}
#home .card > * {position:relative;z-index:1}
#home .card h2 {font-weight:900;letter-spacing:-.017em;color:#1a2b35;text-wrap:balance}
#home .card p,#home .card small {color:#42515c}
#home .card .mini {
  position:relative;overflow:hidden;border:1px solid rgba(255,246,220,.65);
  color:#fff4d1;
  background:radial-gradient(ellipse at 23% 17%,rgba(255,255,255,.45),transparent 44%),linear-gradient(145deg,#3f7580 0%,#263b57 56%,#121a35 100%);
  box-shadow:inset 1px 2px 3px rgba(255,255,255,.4),inset -5px -8px 12px rgba(0,0,0,.32),0 4px 0 rgba(27,37,51,.44),0 12px 15px rgba(0,0,0,.21);
  text-shadow:0 2px 3px rgba(0,0,0,.6);
}
#home .card .mini::after {
  content:"";position:absolute;inset:5%;border-radius:inherit;
  background:linear-gradient(125deg,rgba(255,255,255,.23),transparent 40%);
  pointer-events:none;
}
#home .card:is([data-go="chess"],[data-go="checkers"],[data-go="go"],[data-go="backgammon"],[data-go="gomoku"]) .mini {
  background:radial-gradient(ellipse at 28% 20%,#e6ca92,#b8814e 43%,#543326 83%,#322129);
}
#home .card:is([data-go="solitaire"],[data-go="freecell"],[data-go="spider"],[data-go="blackjack"],[data-go="holdem"]) .mini {
  background:radial-gradient(ellipse at 24% 12%,#85ad9a,#235b48 47%,#0a2b2a 95%);
}
#home .card:is([data-go="snake"],[data-go="brick"],[data-go="frontline"],[data-go="blocks"],[data-go="match"]) .mini {
  background:radial-gradient(ellipse at 24% 13%,#7ec6dc,#3955b4 43%,#271e54 91%);
}
#home .card:is([data-go="sudoku"],[data-go="words"],[data-go="cross"],[data-go="kenken"],[data-go="g2048"],[data-go="mines"]) .mini {
  background:radial-gradient(ellipse at 24% 12%,#ffe6ac,#c29862 45%,#67513c 98%);
  color:#24202a;text-shadow:0 1px 1px rgba(255,255,255,.4);
}
#home .h-pick,#home .h-cont,#home .cat-tile {
  border-color:rgba(233,205,151,.35);
  box-shadow:inset 0 1px rgba(255,255,255,.25),0 4px 0 rgba(11,19,27,.3),0 14px 27px rgba(0,0,0,.2);
}
#home .h-search,#home .h-chip {box-shadow:inset 0 1px rgba(255,255,255,.25),0 6px 16px rgba(0,0,0,.11)}
#home :is(button,a,input,select):focus-visible,
#play :is(button,a,input,select,[tabindex]):focus-visible {outline:3px solid #f1bf70!important;outline-offset:3px}
#play .bar {
  border-bottom:1px solid rgba(235,203,136,.28);
  background:linear-gradient(115deg,rgba(11,26,39,.97),rgba(29,47,62,.96));
  color:#f8ead0;box-shadow:inset 0 1px rgba(255,255,255,.1),0 8px 24px rgba(0,0,0,.19);
}
#play .wrap {isolation:isolate}
#stage {--forge-interact-glow:rgba(253,205,115,.28)}
#stage .tk-board,#stage .tk-felt {
  border-color:rgba(228,192,119,.5);
  box-shadow:inset 0 1px rgba(255,255,255,.28),0 14px 34px rgba(0,0,0,.31);
}
#stage .tk-card {
  -webkit-font-smoothing:antialiased;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.09));
}
#stage .tk-card:not(.back) {
  background-image:linear-gradient(144deg,rgba(255,255,255,.58),transparent 40%,rgba(183,158,114,.07))!important;
}
#stage .tk-die {filter:drop-shadow(0 2px 3px rgba(0,0,0,.17))}
#stage .tk-cell,#stage .gcell,#stage .c2048,#stage .mcell,
#stage .bcell,#stage .xcell,#stage .ncell {
  -webkit-font-smoothing:antialiased;
  font-variant-numeric:tabular-nums;
}
#stage :is(.tk-card,.tk-die,.tk-cell,.gcell,.c2048,.mcell,.bcell,.ncell):focus-visible {
  outline:3px solid #e8a94d!important;outline-offset:2px;
}
#stage :is(canvas,.f3d-canvas,.fg3d-canvas) {image-rendering:auto;max-width:100%}
#stage canvas {max-height:none}
#stage .tk-btn,#tools button {
  border:1px solid rgba(249,225,170,.42);
  box-shadow:inset 0 1px rgba(255,255,255,.35),0 3px 0 rgba(13,17,24,.26),0 8px 13px rgba(0,0,0,.11);
}
@media(hover:hover) and (pointer:fine) {
  #home .card:hover {border-color:#f2d899;box-shadow:inset 0 1px rgba(255,255,255,.73),0 12px 0 rgba(10,16,24,.4),0 26px 45px rgba(0,0,0,.4)}
  #stage :is(.tk-btn,#tools button):hover {filter:brightness(1.06)}
}
@media(max-width:600px) {
  #home .grid{gap:10px}
  #home .card {border-radius:15px;box-shadow:inset 0 1px rgba(255,255,255,.52),0 3px 0 rgba(10,17,25,.38),0 10px 17px rgba(0,0,0,.22)}
  #home .card::after{inset:2px}
  #stage .tk-card{filter:none}
}
@media(prefers-reduced-motion:reduce) {
  #home .card,#home .h-pick,#home .h-cont,
  #stage .tk-card,#stage .tk-cell,#stage .tk-btn {animation:none!important;transition:none!important}
  #home .card:hover {transform:none!important}
}
@media(forced-colors:active) {
  #home .card,#stage .tk-card,#stage .tk-btn {border:1px solid CanvasText}
  #home .card::after {display:none}
}

/* Contain mobile Word Search intrinsic control and label sizing without shrinking game targets. */
@media(max-width:480px){
  #stage .ws3.ws-box{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow-x:clip}
  #stage .ws3 .ws-bar,#stage .ws3 .ws-list,#stage .ws3 .ws-prog{width:100%;max-width:100%;min-width:0;box-sizing:border-box;flex-wrap:wrap}
  #stage .ws3 .ws-bar > *,#stage .ws3 .ws-list > *{min-width:0;max-width:100%;box-sizing:border-box}
  #stage .ws3 .ws-sel select{width:auto;min-width:0;max-width:min(190px,46vw)}
  #stage .ws3 .ws-seg{flex-wrap:wrap;justify-content:center;max-width:100%}
  #stage .ws3 .ws-seg button{min-width:0;padding-inline:9px}
  #stage .ws3 .ws-sheet{max-width:100%;overflow-x:auto}
}
