/* v13.3.8.10.9 — Unified Game Quality Pass */
:root {
  --quality-glow: color-mix(in srgb, var(--brand) 24%, transparent);
  --quality-green: #47d690;
  --quality-gold: #f3ad3f;
  --quality-red: #ef476f;
}

.game-quality-ready .quality-surface {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--brand) 13%, var(--line));
  background:
    radial-gradient(circle at 84% 6%, color-mix(in srgb, var(--brand) 8%, transparent), transparent 34%),
    radial-gradient(circle at 8% 94%, color-mix(in srgb, #47d690 5%, transparent), transparent 30%),
    var(--surface);
  box-shadow: 0 18px 46px color-mix(in srgb, var(--text) 8%, transparent), inset 0 1px 0 rgba(255,255,255,.04);
}
.game-quality-ready .quality-surface::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 0 44%, rgba(255,255,255,.025) 50%, transparent 56%);
}

.game-quality-ready .smart-toolbar .stat-box,
.game-quality-ready .game-toolbar > div,
.game-quality-ready .game-best {
  position: relative;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--brand) 10%, var(--line));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}
.game-quality-ready .smart-toolbar .stat-box::after,
.game-quality-ready .game-toolbar > div::after,
.game-quality-ready .game-best::after {
  content: "";
  position: absolute;
  inset-inline: 13%;
  bottom: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--brand) 72%, #8ee4aa), transparent);
  opacity: .42;
}
.game-quality-ready .quality-value-pulse {
  animation: qualityValue .42s cubic-bezier(.2,.8,.25,1);
  color: color-mix(in srgb, var(--brand) 75%, var(--text));
  text-shadow: 0 0 18px var(--quality-glow);
}
.game-quality-ready .quality-status-ping { animation: qualityStatus .5s ease-out; }
.game-quality-ready .quality-press { animation: qualityPress .22s ease-out !important; }

.game-quality-ready .secondary-button,
.game-quality-ready .primary-button,
.game-quality-ready .arcade-control,
.game-quality-ready .maze-controls button {
  transition: transform .12s ease, border-color .15s ease, box-shadow .15s ease, filter .15s ease;
}
.game-quality-ready .secondary-button:hover,
.game-quality-ready .primary-button:hover,
.game-quality-ready .arcade-control:hover,
.game-quality-ready .maze-controls button:hover {
  box-shadow: 0 8px 18px color-mix(in srgb, var(--brand) 10%, transparent);
}

/* Canvas games */
.game-quality-ready .quality-canvas-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 22px;
  box-shadow: 0 20px 46px rgba(11,12,31,.16), inset 0 1px 0 rgba(255,255,255,.05);
}
.game-quality-ready .quality-canvas-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 54px rgba(5,5,20,.12), inset 0 1px 0 rgba(255,255,255,.06);
}
.game-quality-ready .quality-canvas {
  filter: saturate(1.055) contrast(1.018);
  transform: translateZ(0);
}

/* 2048 */
.game-quality-ready .board-2048 {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 18px 36px color-mix(in srgb, var(--brand) 12%, transparent);
}
.game-quality-ready .tile-2048 {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 5px 12px rgba(20,18,50,.08);
  text-shadow: 0 1px 0 rgba(255,255,255,.16);
}
.game-quality-ready .tile-2048[data-value="128"],
.game-quality-ready .tile-2048[data-value="256"],
.game-quality-ready .tile-2048[data-value="512"],
.game-quality-ready .tile-2048[data-value="1024"],
.game-quality-ready .tile-2048[data-value="2048"] { box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 8px 22px color-mix(in srgb, var(--brand) 22%, transparent); }
.game-quality-ready .tile-2048[data-value="2048"] { animation: qualityLegendary 1.6s ease-in-out infinite alternate; }

/* Logic boards */
.game-quality-ready .sudoku-grid,
.game-quality-ready .mines-board,
.game-quality-ready .hashi-board,
.game-quality-ready .slither-board,
.game-quality-ready .arrow-board {
  box-shadow: 0 18px 38px color-mix(in srgb, var(--text) 9%, transparent), inset 0 1px 0 rgba(255,255,255,.05);
}
.game-quality-ready .sudoku-cell,
.game-quality-ready .mine-cell,
.game-quality-ready .arrow-cell,
.game-quality-ready .hashi-island {
  transition: transform .12s ease, filter .14s ease, box-shadow .14s ease, background .14s ease;
}
.game-quality-ready .sudoku-cell:not(.is-fixed):hover,
.game-quality-ready .mine-cell:not(.is-open):hover,
.game-quality-ready .arrow-cell:hover,
.game-quality-ready .hashi-island:hover {
  filter: brightness(1.045);
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--brand) 25%, transparent);
}
.game-quality-ready .sudoku-cell.is-selected { box-shadow: inset 0 0 0 3px var(--brand), 0 0 18px var(--quality-glow); }
.game-quality-ready .mine-cell.is-open { animation: qualityReveal .22s ease-out; }
.game-quality-ready .mine-cell.is-mine { box-shadow: inset 0 0 18px color-mix(in srgb, var(--danger) 20%, transparent); }
.game-quality-ready .hashi-bridge::before,
.game-quality-ready .hashi-bridge::after,
.game-quality-ready .slither-edge.is-on::after { box-shadow: 0 0 8px color-mix(in srgb, var(--brand) 30%, transparent); }
.game-quality-ready .hashi-island.is-complete { box-shadow: 0 0 0 3px color-mix(in srgb, #25a765 16%, transparent), 0 6px 14px rgba(20,18,50,.08); }
.game-quality-ready .arrow-cell.is-free { box-shadow: 0 0 16px color-mix(in srgb, var(--brand) 14%, transparent); }

/* Chess + Checkers */
.game-quality-ready .chess-board,
.game-quality-ready .checkers-board {
  box-shadow: 0 24px 52px rgba(20,18,50,.17), inset 0 1px 0 rgba(255,255,255,.08);
}
.game-quality-ready .chess-cell,
.game-quality-ready .checkers-cell { transition: filter .14s ease, box-shadow .16s ease, transform .12s ease; }
.game-quality-ready .chess-cell:hover,
.game-quality-ready .checkers-cell.is-playable:hover { filter: brightness(1.06); }
.game-quality-ready .chess-piece { filter: drop-shadow(0 5px 4px rgba(0,0,0,.22)); transition: transform .14s ease, filter .14s ease; }
.game-quality-ready .chess-cell:hover .chess-piece { transform: translateY(-2px) scale(1.035); filter: drop-shadow(0 7px 5px rgba(0,0,0,.24)); }
.game-quality-ready .checker-piece { box-shadow: inset 0 -7px 0 rgba(0,0,0,.16), inset 0 3px 0 rgba(255,255,255,.19), 0 8px 16px rgba(0,0,0,.22); transition: transform .14s ease, box-shadow .14s ease; }
.game-quality-ready .checkers-cell:hover .checker-piece { transform: translateY(-2px) scale(1.03); box-shadow: inset 0 -7px 0 rgba(0,0,0,.16), inset 0 3px 0 rgba(255,255,255,.2), 0 11px 18px rgba(0,0,0,.24); }

/* Connect Four */
.game-quality-ready .connect-four-board { box-shadow: inset 0 1px 0 rgba(255,255,255,.2), inset 0 -14px 30px rgba(12,20,70,.14), 0 24px 50px rgba(29,31,72,.2); }
.game-quality-ready .connect-cell { transition: transform .1s ease, filter .14s ease; }
.game-quality-ready .connect-cell:hover { filter: brightness(1.04); transform: translateY(-1px); }
.game-quality-ready .connect-cell.is-last::before { box-shadow: 0 0 14px rgba(255,255,255,.38); }

/* Simon + Whack + Breakout */
.game-quality-ready .simon-stage { box-shadow: 0 24px 54px rgba(20,18,50,.19), inset 0 1px 0 rgba(255,255,255,.08); }
.game-quality-ready .simon-pad.is-lit { filter: brightness(1.9) saturate(1.18); }
.game-quality-ready .simon-center { box-shadow: 0 10px 28px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.08); }
.game-quality-ready .whack-board { box-shadow: 0 18px 42px color-mix(in srgb, var(--brand) 10%, transparent), inset 0 1px 0 rgba(255,255,255,.05); }
.game-quality-ready .whack-hole { box-shadow: inset 0 10px 14px rgba(0,0,0,.52), 0 5px 13px rgba(20,18,50,.09); }
.game-quality-ready .whack-cell.is-active .whack-target { filter: saturate(1.12); box-shadow: inset 0 4px 0 rgba(255,255,255,.32), 0 12px 22px rgba(67,31,20,.27); }
.game-quality-ready .breakout-stage { box-shadow: 0 24px 52px rgba(19,21,62,.2), inset 0 1px 0 rgba(255,255,255,.07); }

/* Words */
.game-quality-ready .word-stage { position: relative; }
.game-quality-ready .word-category { box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 7px 16px var(--quality-glow); }
.game-quality-ready .answer-slot { text-shadow: 0 6px 16px var(--quality-glow); transition: transform .14s ease; }
.game-quality-ready .letter-tile { box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 10px 22px color-mix(in srgb, var(--brand) 22%, transparent); transition: transform .12s ease, filter .14s ease, box-shadow .14s ease; }
.game-quality-ready .letter-tile:hover:not(:disabled) { transform: translateY(-3px); filter: brightness(1.06); box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 14px 26px color-mix(in srgb, var(--brand) 27%, transparent); }

/* Strategy */
.game-quality-ready .strategy-canvas-wrap { box-shadow: 0 20px 46px rgba(18,40,62,.2), inset 0 1px 0 rgba(255,255,255,.06); }
.game-quality-ready .strategy-dashboard .stat-box { box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 7px 16px rgba(20,18,50,.05); }

/* Home quick games */
.game-quality-ready .game-stage { box-shadow: 0 22px 52px rgba(20,18,50,.13), inset 0 1px 0 rgba(255,255,255,.045); }
.game-quality-ready .memory-card-inner { transition-duration: .34s; }
.game-quality-ready .memory-front { box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 10px 20px color-mix(in srgb, var(--brand) 14%, transparent); }
.game-quality-ready .memory-card.is-matched .memory-back { box-shadow: 0 0 22px color-mix(in srgb, #47d690 22%, transparent); }
.game-quality-ready .xo-cell { transition: transform .12s ease, border-color .14s ease, box-shadow .14s ease, background .14s ease; }
.game-quality-ready .xo-cell:hover:empty { transform: translateY(-2px); box-shadow: 0 8px 18px var(--quality-glow); }
.game-quality-ready .xo-cell.is-win { box-shadow: inset 0 0 0 2px color-mix(in srgb, #47d690 55%, transparent), 0 0 20px color-mix(in srgb, #47d690 20%, transparent); }
.game-quality-ready .reaction-zone { box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 18px 42px rgba(20,18,50,.15); }
.game-quality-ready .reaction-zone.is-ready { animation: qualityReady 1s ease-in-out infinite alternate; }

@keyframes qualityValue { 0%{transform:scale(1)} 42%{transform:scale(1.17)} 100%{transform:scale(1)} }
@keyframes qualityStatus { 0%{opacity:.45;transform:translateY(3px)} 45%{opacity:1;transform:translateY(0)} 100%{opacity:1} }
@keyframes qualityPress { 0%{transform:scale(1)} 48%{transform:scale(.965)} 100%{transform:scale(1)} }
@keyframes qualityReveal { 0%{transform:scale(.86);filter:brightness(1.12)} 100%{transform:scale(1);filter:none} }
@keyframes qualityLegendary { from{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 5px 18px rgba(255,142,46,.18)} to{box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 30px rgba(255,174,52,.38)} }
@keyframes qualityReady { from{box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 18px 42px rgba(20,18,50,.15)} to{box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 0 32px rgba(71,214,144,.24)} }

@media (hover:none) and (pointer:coarse) {
  .game-quality-ready .sudoku-cell:hover,
  .game-quality-ready .mine-cell:hover,
  .game-quality-ready .arrow-cell:hover,
  .game-quality-ready .hashi-island:hover,
  .game-quality-ready .chess-cell:hover,
  .game-quality-ready .checkers-cell:hover,
  .game-quality-ready .letter-tile:hover { transform:none; filter:none; }
}
@media (max-width:620px) {
  .game-quality-ready .quality-surface { box-shadow: 0 12px 30px rgba(20,18,50,.09), inset 0 1px 0 rgba(255,255,255,.03); }
  .game-quality-ready .quality-canvas-shell { box-shadow: 0 14px 32px rgba(11,12,31,.12); }
}
@media (prefers-reduced-motion: reduce) {
  .game-quality-ready .quality-value-pulse,
  .game-quality-ready .quality-status-ping,
  .game-quality-ready .quality-press,
  .game-quality-ready .mine-cell.is-open,
  .game-quality-ready .tile-2048[data-value="2048"],
  .game-quality-ready .reaction-zone.is-ready { animation:none !important; }
  .game-quality-ready * { scroll-behavior:auto !important; }
}

/* v13.3.8.10.10 — focused quality pass: racing, strategy, maze */
.game-quality-ready #road-canvas,
.game-quality-ready #strategy-canvas,
.game-quality-ready #maze-canvas {
  image-rendering: auto;
  touch-action: none;
}
/* v13.3.8.10.44.42 — Road Survival: give environment themes real visual room.
   Gameplay road remains 324 logical px; only the surrounding stage becomes wider. */
.game-quality-ready .arcade-canvas-wrap:has(#road-canvas) { width: min(600px, 100%); }

.game-quality-ready .arcade-canvas-wrap:has(#road-canvas) {
  border: 1px solid color-mix(in srgb, #6d4aff 24%, var(--line));
  box-shadow: 0 24px 56px rgba(13,18,38,.22), 0 0 0 1px rgba(255,255,255,.025) inset;
}
.game-quality-ready .strategy-canvas-wrap {
  border: 1px solid color-mix(in srgb, #3498db 22%, var(--line));
  overflow: hidden;
  border-radius: 22px;
}
.game-quality-ready .strategy-spawn:not(:disabled) {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 8px 22px color-mix(in srgb, var(--brand) 14%, transparent);
}
.game-quality-ready .maze-wrap {
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 24px 54px rgba(12,12,32,.20), inset 0 1px 0 rgba(255,255,255,.05);
  border: 1px solid color-mix(in srgb, var(--brand) 18%, var(--line));
}
.game-quality-ready .maze-canvas { display:block; }
@media (max-width:620px) {
  .game-quality-ready .arcade-canvas-wrap:has(#road-canvas),
  .game-quality-ready .strategy-canvas-wrap,
  .game-quality-ready .maze-wrap { box-shadow: 0 14px 34px rgba(12,12,32,.15); }
}
