/* ── Games Widget ─────────────────────────────────────────────── */
.gw-section{position:relative;overflow:hidden;margin:32px 0}
.gw-party{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none;z-index:10;overflow:hidden}

/* Header */
.gw-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 24px 0}
.gw-header-left{display:flex;align-items:center;gap:12px}
.gw-icon{font-size:30px;line-height:1;flex-shrink:0}
.gw-title{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.3px}
.gw-subtitle{font-size:12px;color:var(--muted);margin-top:2px}
.gw-earned{display:none;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;background:rgba(165,243,196,.25);border:1.5px solid var(--accent);font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}

/* Tabs */
.gw-tabs{display:flex;gap:6px;padding:16px 24px;border-bottom:1px solid var(--border)}
.gw-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-radius:10px;font-size:11px;font-weight:600;cursor:pointer;color:var(--muted);background:var(--surface2);border:1.5px solid transparent;transition:all .15s;font-family:inherit;line-height:1.3}
.gw-tab:hover{border-color:var(--border);color:var(--text)}
.gw-tab.active{background:var(--accent);color:#000;border-color:transparent}
.gw-tab.is-locked{opacity:.55;cursor:not-allowed}
.gw-tab.is-locked:hover{border-color:transparent;color:var(--muted)}
.gw-tab-lock{font-size:11px;position:absolute;top:5px;right:6px;line-height:1}
.gw-tab{position:relative}
.gw-tab-emoji{font-size:20px;line-height:1;margin-bottom:1px}
.gw-tab-name{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.gw-tab-prize{font-size:15px;font-weight:900}

/* Body */
.gw-body{padding:20px 24px}
.gw-panel{display:none}
.gw-panel.active{display:block}

/* Game description */
.gw-game-desc{font-size:13px;color:var(--muted);margin-bottom:16px;line-height:1.5}

/* Stats row (4 cols for rush, 3 cols for others) */
.gw-stats-4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.gw-stats-3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.gw-stat{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 6px;text-align:center}
.gw-stat-label{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;margin-bottom:3px}
.gw-stat-val{font-size:17px;font-weight:800;color:var(--text);line-height:1}

/* Click Rush tap button */
.gw-rush-area{display:flex;justify-content:center;margin:12px 0 16px}
.gw-tap-btn{width:110px;height:110px;border-radius:50%;background:var(--accent);border:3px solid rgba(0,0,0,.12);font-size:20px;font-weight:900;cursor:pointer;color:#000;transition:transform .07s,box-shadow .07s;box-shadow:0 4px 20px rgba(165,243,196,.5);font-family:inherit;user-select:none;touch-action:none}
.gw-tap-btn:active,.gw-tap-btn.is-active{transform:scale(.92);box-shadow:0 1px 6px rgba(165,243,196,.3)}
.gw-tap-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}

/* Reaction Ten timer display */
.gw-reaction-display{font-size:68px;font-weight:900;color:var(--text);text-align:center;letter-spacing:-2px;margin:12px 0 16px;font-variant-numeric:tabular-nums;line-height:1}

/* Memory grid */
.gw-grid-wrap{display:flex;justify-content:center;margin:12px 0 16px}
.gw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:256px}
.gw-tile{width:56px;height:56px;border-radius:11px;background:var(--surface2);border:2px solid var(--border);cursor:pointer;transition:background .1s,border-color .1s;font-size:18px;font-weight:800;color:transparent;font-family:inherit;position:relative}
.gw-tile.is-preview{background:var(--accent);border-color:var(--accent);color:#000}
.gw-tile.is-hit{background:var(--success,#2D8A4E);border-color:var(--success,#2D8A4E);color:transparent}
.gw-tile.is-wrong{background:var(--danger,#C0392B);border-color:var(--danger,#C0392B);color:transparent}
.gw-tile.is-hint{background:var(--success,#2D8A4E);border-color:var(--success,#2D8A4E);color:transparent;box-shadow:0 0 0 3px rgba(45,138,78,.4)}
.gw-grid.is-preview .gw-tile:not(.is-preview){pointer-events:none;opacity:.5}

/* Start/action button */
.gw-action-btn{display:block;width:100%;padding:13px;border-radius:10px;border:none;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;text-align:center;transition:all .15s;background:var(--text);color:var(--bg)}
.gw-action-btn:hover{opacity:.87}
.gw-action-btn:disabled{background:var(--surface3,#DAD6D0);color:var(--muted);cursor:not-allowed}
[data-theme="dark"] .gw-action-btn{color:var(--bg)}

/* Note */
.gw-note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5;text-align:center;min-height:18px}

/* Win banner */
.gw-win-banner{display:none;margin:0 24px 20px;padding:14px 18px;border-radius:12px;background:rgba(165,243,196,.2);border:1.5px solid var(--accent);align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.gw-win-banner.show{display:flex}
.gw-win-text{display:flex;flex-direction:column;gap:3px}
.gw-win-amount{font-size:16px;font-weight:900;color:var(--text)}
.gw-win-hint{font-size:12px;color:var(--muted)}
.gw-win-btn{padding:10px 20px;border-radius:8px;border:none;background:var(--accent);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;color:#000;white-space:nowrap;transition:background .15s}
.gw-win-btn:hover{background:var(--accent-hover,#7EE8A8)}

/* Leaderboard */
.gw-board{margin-top:16px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.gw-board-title{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700;padding:8px 12px 6px;border-bottom:1px solid var(--border)}
.gw-board-row{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--border);transition:background .1s}
.gw-board-row:last-child{border-bottom:none}
.gw-board-row:hover{background:var(--surface3,#DAD6D0)}
.gw-board-medal{font-size:15px;flex-shrink:0;width:20px;text-align:center}
.gw-board-name{flex:1;font-size:12px;color:var(--text);font-weight:500;font-family:monospace;letter-spacing:.3px}
.gw-board-score{font-size:12px;font-weight:800;color:var(--text);white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:2px 7px}
/* First place highlight */
.gw-board-row:first-child{background:rgba(165,243,196,.12)}
.gw-board-row:first-child .gw-board-score{background:rgba(165,243,196,.3);border-color:var(--accent)}
.gw-board-row:first-child:hover{background:rgba(165,243,196,.2)}

/* Reaction timer result states */
.gw-reaction-display.is-win{color:var(--success,#2D8A4E)}
.gw-reaction-display.is-miss{color:var(--danger,#C0392B)}

/* Confetti */
.gw-confetti{position:absolute;top:-10px;font-size:20px;animation:gwFall 3.2s ease-in forwards}
@keyframes gwFall{
  0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:1}
  80%{opacity:1}
  100%{transform:translateY(500px) translateX(var(--gx,0px)) rotate(var(--gr,360deg));opacity:0}
}

/* Promo banner on service pages */
.gw-promo-bar{background:#1a1a1a;color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 44px;position:relative;line-height:1.4;flex-wrap:wrap}
.gw-promo-bar a{color:var(--accent);text-decoration:none;font-weight:700;white-space:nowrap}
.gw-promo-bar a:hover{opacity:.8}
.gw-promo-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:18px;cursor:pointer;color:#fff;line-height:1;padding:4px;opacity:.7}
.gw-promo-close:hover{opacity:1}
[data-theme="dark"] .gw-promo-bar{background:#252422;border-bottom:1px solid var(--border)}

/* Responsive */
@media(max-width:600px){
  .gw-header{padding:16px 16px 0}
  .gw-tabs{padding:12px 16px;gap:4px}
  .gw-body{padding:16px}
  .gw-win-banner{margin:0 16px 16px}
  .gw-tab{padding:8px 4px}
  .gw-tab-prize{font-size:13px}
  .gw-reaction-display{font-size:52px}
  .gw-stats-4{grid-template-columns:repeat(2,1fr)}
  .gw-grid{width:240px}
  .gw-tile{width:52px;height:52px}
}
