/* Recall — Simon-style memory sequence game */
#game-stage { display: flex; flex-direction: column; align-items: center; width: 100%; }

.sq-hud { width: 100%; max-width: 420px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.sq-hud .lbl { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.sq-val { font-size: 28px; font-weight: 900; line-height: 1.1; font-variant-numeric: tabular-nums; }
.sq-mode { font-size: 18px; color: var(--neon3); }

.sq-stage-wrap { position: relative; width: 100%; max-width: 420px; aspect-ratio: 1/1; }

/* 2x2 pad grid */
.sq-pads { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr;
  gap: 14px; padding: 6px; touch-action: manipulation; }
.sq-pad { border: none; cursor: pointer; touch-action: manipulation; transition: filter .08s, transform .08s, box-shadow .08s;
  filter: brightness(.4) saturate(.75); -webkit-tap-highlight-color: transparent; }
.sq-pad.p0 { background: #17c964; border-radius: 100% 0 0 0; }   /* green  — top-left */
.sq-pad.p1 { background: #ff3b5c; border-radius: 0 100% 0 0; }   /* red    — top-right */
.sq-pad.p2 { background: #ffd23f; border-radius: 0 0 0 100%; }   /* yellow — bottom-left */
.sq-pad.p3 { background: #3b82ff; border-radius: 0 0 100% 0; }   /* blue   — bottom-right */
.sq-pad.lit { filter: brightness(1.25) saturate(1.1); box-shadow: 0 0 34px currentColor; transform: scale(1.015); }
.sq-pad.p0.lit { color: #17c964; } .sq-pad.p1.lit { color: #ff3b5c; }
.sq-pad.p2.lit { color: #ffd23f; } .sq-pad.p3.lit { color: #3b82ff; }
.sq-pads.locked .sq-pad { cursor: default; }

/* center hub */
.sq-center { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 34%; height: 34%; border-radius: 50%; background: var(--bg2); border: 4px solid var(--border);
  display: flex; align-items: center; justify-content: center; z-index: 3; pointer-events: none;
  color: var(--muted); font-size: 30px; font-weight: 900; }

/* Overlay (start / game over) — class-toggled */
.sq-overlay { position: absolute; inset: 0; z-index: 5; display: none; align-items: center; justify-content: center;
  background: rgba(5,6,15,.84); border-radius: 16px; backdrop-filter: blur(2px); text-align: center; }
.sq-overlay.sq-show { display: flex; }
.sq-overlay-inner { padding: 20px; }
.sq-ov-title { font-size: 38px; font-weight: 900; color: var(--neon); text-shadow: 0 0 16px rgba(0,245,212,.5); margin: 0 0 6px; }
.sq-ov-title.lose { color: var(--neon2); text-shadow: 0 0 16px rgba(255,46,151,.5); }
.sq-ov-sub { color: var(--muted); margin: 0 0 16px; font-size: 16px; }
.sq-overlay .gbtn { margin: 4px; }

.sq-mode-row { display: inline-flex; background: var(--panel); border: 1px solid var(--border);
  border-radius: 12px; padding: 4px; gap: 4px; margin-bottom: 14px; }
.sq-seg-btn { background: none; border: none; color: var(--muted); font-family: inherit; font-size: 14px;
  font-weight: 600; padding: 8px 16px; border-radius: 9px; cursor: pointer; touch-action: manipulation; }
.sq-seg-btn.active { background: var(--neon3); color: #fff; }
.sq-mode-hint { color: var(--muted); font-size: 13px; margin: 0 0 14px; min-height: 18px; }

.sq-hide { display: none !important; }
.sq-msg { text-align: center; color: var(--muted); min-height: 22px; margin: 12px 0 0; font-size: 15px; font-weight: 600; }
.sq-msg.go { color: var(--neon); }
.sq-msg.watch { color: var(--warn); }
