/* =========================================================
   QUORDLE — STYLESHEET
   Design tokens follow the brief's palette exactly:
   Primary #2563EB / Secondary #4F46E5 / Accent #22C55E
   Background #F8FAFC / Dark background #0F172A
   Typography: Outfit (display) + Inter (body/UI)
   ========================================================= */

:root{
  /* --- brand palette (from brief) --- */
  --primary:#2563EB;
  --secondary:#4F46E5;
  --accent:#22C55E;
  --bg:#F8FAFC;
  --bg-dark:#0F172A;

  /* --- supporting neutrals --- */
  --ink:#0F172A;
  --ink-soft:#334155;
  --muted:#64748B;
  --line:#E2E8F0;
  --white:#FFFFFF;
  --card:#FFFFFF;

  /* --- tile colors (standard, tuned to palette) --- */
  --tile-correct:#22C55E;
  --tile-present:#F5B93B;
  --tile-absent:#94A3B8;
  --tile-empty-border:#CBD5E1;

  /* --- gradients --- */
  --grad-primary: linear-gradient(135deg, var(--primary), var(--secondary));
  --grad-accent: linear-gradient(135deg, #22C55E, #16A34A);

  /* --- elevation --- */
  --shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 8px 24px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 20px 48px rgba(15, 23, 42, 0.14);
  --shadow-glow: 0 12px 32px rgba(37, 99, 235, 0.25);

  /* --- radius --- */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;

  /* --- type --- */
  --font-display: 'Outfit', 'Poppins', sans-serif;
  --font-body: 'Inter', 'Poppins', sans-serif;

  /* --- layout --- */
  --header-h: 76px;
  --container: 1220px;

  color-scheme: light;
}

[data-theme="dark"]{
  color-scheme: dark;
  --bg:#0B1222;
  --ink:#F1F5F9;
  --ink-soft:#CBD5E1;
  --muted:#8B98AC;
  --line:#1E293B;
  --card:#131C31;
  --white:#131C31;
  --tile-empty-border:#2A3651;
  --shadow-sm: 0 2px 10px rgba(0,0,0,0.35);
  --shadow-md: 0 10px 28px rgba(0,0,0,0.4);
  --shadow-lg: 0 24px 56px rgba(0,0,0,0.55);
}

/* =========================== RESET =========================== */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;}
img,svg{display:block;max-width:100%;}
ul{list-style:none;margin:0;padding:0;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);color:var(--ink);}
p{margin:0;color:var(--ink-soft);}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  transition:background-color .35s ease, color .35s ease;
}

.skip-link{
  position:absolute;left:-999px;top:auto;
  background:var(--primary);color:#fff;padding:10px 16px;border-radius:8px;z-index:999;
}
.skip-link:focus{left:12px;top:12px;}

:focus-visible{
  outline:3px solid var(--primary);
  outline-offset:2px;
}

.section-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}

.hidden{display:none !important;}

/* =========================== BUTTONS =========================== */
.btn{
  position:relative;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 28px;
  border-radius:14px;
  border:none;
  font-family:var(--font-display);
  font-weight:600;
  font-size:15px;
  letter-spacing:.2px;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.btn:active{transform:translateY(1px) scale(.98);}

.btn-primary{
  background:var(--grad-primary);
  color:#fff;
  box-shadow:var(--shadow-glow);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(37,99,235,.32);}

.btn-secondary{
  background:rgba(37,99,235,.1);
  color:var(--primary);
}
[data-theme="dark"] .btn-secondary{background:rgba(37,99,235,.18);color:#93B4FF;}
.btn-secondary:hover{transform:translateY(-2px);background:rgba(37,99,235,.16);}

.btn-ghost{
  background:var(--card);
  color:var(--ink);
  border:1.5px solid var(--line);
}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px);}

.btn-outline-light{
  background:transparent;
  color:#fff;
  border:1.5px solid rgba(255,255,255,.55);
}
.btn-outline-light:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);}

/* ripple */
.btn-ripple .ripple-circle{
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.55);
  transform:scale(0);
  animation:ripple .55s ease-out;
  pointer-events:none;
}
@keyframes ripple{to{transform:scale(3.2);opacity:0;}}

/* =========================== HEADER =========================== */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  height:var(--header-h);
  display:flex;
  align-items:center;
  backdrop-filter:blur(14px) saturate(160%);
  background:color-mix(in srgb, var(--bg) 82%, transparent);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s ease, background-color .35s ease;
}
.site-header.is-scrolled{box-shadow:var(--shadow-sm);}

.header-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.brand{display:flex;align-items:center;gap:10px;}
.brand-mark{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:2px;
  width:28px;height:28px;
}
.brand-mark span{border-radius:4px;}
.brand-mark span:nth-child(1){background:var(--accent);}
.brand-mark span:nth-child(2){background:var(--primary);}
.brand-mark span:nth-child(3){background:var(--primary);}
.brand-mark span:nth-child(4){background:var(--accent);}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--ink);}

.main-nav ul{display:flex;align-items:center;gap:28px;}
.nav-link{
  font-weight:500;
  font-size:15px;
  color:var(--ink-soft);
  position:relative;
  padding:6px 2px;
  transition:color .2s ease;
}
.nav-link::after{
  content:"";
  position:absolute;left:0;bottom:0;
  width:0%;height:2px;
  background:var(--grad-primary);
  transition:width .25s ease;
  border-radius:2px;
}
.nav-link:hover,.nav-link.is-active{color:var(--primary);}
.nav-link:hover::after,.nav-link.is-active::after{width:100%;}

.header-actions{display:flex;align-items:center;gap:10px;}
.icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:12px;
  border:1px solid var(--line);
  background:var(--card);
  color:var(--ink-soft);
  transition:all .2s ease;
}
.icon-btn:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px);}
.icon-moon{display:none;}
[data-theme="dark"] .icon-sun{display:none;}
[data-theme="dark"] .icon-moon{display:block;}

.mobile-only{display:none;}

/* =========================== HERO =========================== */
.hero{
  position:relative;
  padding:72px 0 96px;
  overflow:hidden;
}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-blob{
  position:absolute;
  border-radius:50%;
  filter:blur(60px);
  opacity:.35;
}
.blob-a{width:420px;height:420px;background:var(--primary);top:-140px;right:-100px;}
.blob-b{width:360px;height:360px;background:var(--accent);bottom:-160px;left:-120px;}
.hero-grid-lines{
  position:absolute;inset:0;
  background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:56px 56px;
  opacity:.35;
  mask-image:radial-gradient(circle at 50% 20%, black, transparent 70%);
}

.hero-inner{
  position:relative;
  z-index:1;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:56px;
  align-items:center;
}

.eyebrow{
  display:inline-block;
  font-size:13px;
  font-weight:600;
  letter-spacing:.4px;
  color:var(--primary);
  background:rgba(37,99,235,.1);
  padding:8px 14px;
  border-radius:999px;
  margin-bottom:18px;
  animation:fadeInUp .6s ease both;
}
[data-theme="dark"] .eyebrow{background:rgba(37,99,235,.2);}

.hero h1{
  font-size:clamp(36px, 5vw, 58px);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.5px;
  margin-bottom:20px;
  animation:fadeInUp .7s ease .05s both;
}
.text-gradient{
  background:var(--grad-primary);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero-lead{
  font-size:18px;
  max-width:520px;
  margin-bottom:32px;
  animation:fadeInUp .7s ease .1s both;
}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;animation:fadeInUp .7s ease .16s both;}
.hero-stats{
  display:flex;gap:32px;margin-top:44px;
  animation:fadeInUp .7s ease .22s both;
}
.hero-stats div{display:flex;flex-direction:column;}
.hero-stats strong{font-family:var(--font-display);font-size:26px;color:var(--primary);}
.hero-stats span{font-size:13px;color:var(--muted);}

@keyframes fadeInUp{
  from{opacity:0;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}

/* --- ambient signature board (auto-playing mini quordle) --- */
.hero-visual{display:flex;justify-content:center;}
.ambient-board{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  padding:22px;
  border-radius:28px;
  background:rgba(255,255,255,.6);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  backdrop-filter:blur(10px);
  animation:fadeInUp .8s ease .1s both;
}
[data-theme="dark"] .ambient-board{background:rgba(19,28,49,.6);}
.ambient-mini{
  display:grid;
  grid-template-rows:repeat(4, 1fr);
  gap:5px;
  padding:10px;
  background:var(--card);
  border-radius:14px;
  box-shadow:var(--shadow-sm);
}
.ambient-mini-row{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;}
.ambient-mini-tile{
  width:20px;height:20px;
  border-radius:5px;
  background:var(--tile-empty-border);
  opacity:.35;
  transition:background-color .3s ease, opacity .3s ease, transform .3s ease;
}
.ambient-mini-tile.correct{background:var(--tile-correct);opacity:1;transform:scale(1.04);}
.ambient-mini-tile.present{background:var(--tile-present);opacity:1;}
.ambient-mini-tile.absent{background:var(--tile-absent);opacity:.7;}

/* =========================== GAME SECTION =========================== */
.game-section{padding:36px 0 96px;}

.game-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:28px;
}
.mode-pills{
  display:flex;
  gap:8px;
  background:var(--card);
  border:1px solid var(--line);
  padding:6px;
  border-radius:14px;
  box-shadow:var(--shadow-sm);
  flex-wrap:wrap;
}
.pill{
  border:none;
  background:transparent;
  padding:10px 16px;
  border-radius:10px;
  font-weight:600;
  font-size:14px;
  color:var(--muted);
  transition:all .2s ease;
}
.pill:hover{color:var(--primary);}
.pill.is-active{background:var(--grad-primary);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.3);}

.game-status-line{
  display:flex;align-items:center;gap:10px;
  font-size:14px;color:var(--ink-soft);
  background:var(--card);
  border:1px solid var(--line);
  padding:10px 18px;
  border-radius:12px;
}
.game-status-line strong{color:var(--ink);}
.dot-sep{color:var(--line);}
#gameTimer{font-family:var(--font-display);font-weight:600;color:var(--primary);}

.game-layout{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:28px;
  align-items:start;
}

.boards-wrap{
  --pad:28px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:var(--pad);
  box-shadow:var(--shadow-md);
}

.boards-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  margin-bottom:28px;
}
.board{
  position:relative;
  border:1.5px solid var(--line);
  border-radius:var(--r-md);
  padding:14px;
  background:var(--bg);
  transition:border-color .3s ease, box-shadow .3s ease;
}
[data-theme="dark"] .board{background:#0E1728;}
.board.is-solved{border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,197,94,.15);}
.board.is-failed{border-color:#EF4444;box-shadow:0 0 0 3px rgba(239,68,68,.12);}

.board-badge{
  position:absolute;top:10px;right:10px;
  font-size:11px;font-weight:700;
  padding:4px 9px;border-radius:999px;
  background:var(--accent);color:#fff;
  opacity:0;transform:scale(.8);
  transition:all .25s ease;
}
.board.is-solved .board-badge{opacity:1;transform:scale(1);}
.board.is-failed .board-badge{opacity:1;transform:scale(1);background:#EF4444;}

.board-grid{
  display:grid;
  grid-template-rows:repeat(9, 1fr);
  gap:6px;
}
.board-row{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:6px;
}
.tile{
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--tile-empty-border);
  border-radius:8px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(14px, 2vw, 20px);
  color:var(--ink);
  background:var(--card);
  text-transform:uppercase;
  transition:transform .15s ease;
}
.tile.filled{border-color:var(--muted);transform:scale(1.03);}
.tile.flip{animation:tileFlip .5s ease forwards;}
.tile.correct{background:var(--tile-correct);border-color:var(--tile-correct);color:#fff;}
.tile.present{background:var(--tile-present);border-color:var(--tile-present);color:#fff;}
.tile.absent{background:var(--tile-absent);border-color:var(--tile-absent);color:#fff;}
.tile.hinted{box-shadow:0 0 0 3px rgba(37,99,235,.35);}

@keyframes tileFlip{
  0%{transform:rotateX(0);}
  50%{transform:rotateX(90deg);}
  51%{background-color:var(--tile-flip-color, var(--tile-absent));}
  100%{transform:rotateX(0);}
}

.tile.shake{animation:shake .4s ease;}
@keyframes shake{
  10%,90%{transform:translateX(-1px);}
  20%,80%{transform:translateX(2px);}
  30%,50%,70%{transform:translateX(-4px);}
  40%,60%{transform:translateX(4px);}
}

/* =========================== KEYBOARD =========================== */
.keyboard{
  display:flex;flex-direction:column;gap:8px;align-items:center;
  position:sticky;
  bottom:0;
  z-index:20;
  background:var(--card);
  padding:14px 4px 6px;
  margin:0 calc(-1 * var(--pad, 28px)) calc(-1 * var(--pad, 28px));
  border-top:1px solid var(--line);
  box-shadow:0 -8px 20px rgba(15,23,42,.06);
}
.kb-row{display:flex;gap:6px;justify-content:center;width:100%;}
.key{
  min-width:38px;
  height:52px;
  flex:1;
  max-width:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:8px;
  font-family:var(--font-display);
  font-weight:600;
  font-size:14px;
  color:var(--ink);
  transition:all .15s ease;
  user-select:none;
}
[data-theme="dark"] .key{background:#111B30;}
.key:hover{background:var(--line);}
.key:active,.key.pressed{transform:scale(.92);background:var(--primary);color:#fff;}
.key.key-wide{max-width:76px;font-size:12px;}
.key.correct{background:var(--tile-correct);border-color:var(--tile-correct);color:#fff;}
.key.present{background:var(--tile-present);border-color:var(--tile-present);color:#fff;}
.key.absent{background:var(--tile-absent);border-color:var(--tile-absent);color:#fff;opacity:.6;}

/* =========================== SIDE PANEL =========================== */
.game-side{display:flex;flex-direction:column;gap:18px;}
.side-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:20px;
  box-shadow:var(--shadow-sm);
}
.side-card h2{font-size:15px;margin-bottom:14px;}
.side-buttons{display:flex;flex-direction:column;gap:10px;}
.side-buttons .btn{width:100%;justify-content:space-between;padding:12px 16px;font-size:14px;}
.hint-count{background:var(--primary);color:#fff;font-size:11px;padding:2px 7px;border-radius:999px;}

.legend{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--ink-soft);}
.legend li{display:flex;align-items:center;gap:10px;}
.legend-swatch{width:18px;height:18px;border-radius:5px;display:inline-block;}
.legend-swatch.tile-correct{background:var(--tile-correct);}
.legend-swatch.tile-present{background:var(--tile-present);}
.legend-swatch.tile-absent{background:var(--tile-absent);}

.mini-list{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--ink-soft);}
.mini-list li{display:flex;justify-content:space-between;}

/* =========================== GENERIC SECTIONS =========================== */
section{padding:88px 0;}
.section-title{
  font-size:clamp(28px, 3.4vw, 40px);
  font-weight:700;
  text-align:center;
  margin-bottom:12px;
  letter-spacing:-.4px;
}
.section-lead{
  text-align:center;
  max-width:560px;
  margin:0 auto 48px;
  font-size:16px;
}

.how-section{background:var(--card);}

.steps-grid,.modes-grid,.why-grid,.tips-grid,.features-grid,.achievements-grid{
  display:grid;
  gap:22px;
}
.steps-grid{grid-template-columns:repeat(3, 1fr);}
.step-card{
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:28px;
  transition:transform .25s ease, box-shadow .25s ease;
}
[data-theme="dark"] .step-card{background:#0E1728;}
.step-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.step-icon{
  font-family:var(--font-display);
  font-weight:800;
  font-size:14px;
  color:#fff;
  background:var(--grad-primary);
  width:44px;height:44px;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:16px;
}
.step-card h3{font-size:18px;margin-bottom:8px;}
.step-card p{font-size:14.5px;}

.modes-grid{grid-template-columns:repeat(5, 1fr);}
.mode-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:26px 22px;
  text-align:center;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.mode-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--primary);}
.mode-glyph{font-size:30px;margin-bottom:14px;}
.mode-card h3{font-size:17px;margin-bottom:8px;}
.mode-card p{font-size:13.5px;}

.why-section{background:var(--card);}
.why-grid{grid-template-columns:repeat(4, 1fr);}
.why-card{
  padding:26px 20px;
  border-radius:var(--r-md);
  background:var(--bg);
  border:1px solid var(--line);
  transition:transform .25s ease, box-shadow .25s ease;
}
[data-theme="dark"] .why-card{background:#0E1728;}
.why-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.why-icon{font-size:26px;margin-bottom:12px;}
.why-card h3{font-size:16px;margin-bottom:6px;}
.why-card p{font-size:13.5px;}

.tips-grid{grid-template-columns:repeat(3, 1fr);}
.tip-card{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:22px;
  border-radius:var(--r-md);
  background:var(--card);
  border:1px solid var(--line);
  transition:transform .25s ease, box-shadow .25s ease;
}
.tip-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);}
.tip-num{
  flex-shrink:0;
  width:32px;height:32px;
  border-radius:50%;
  background:var(--grad-accent);
  color:#fff;
  font-family:var(--font-display);
  font-weight:700;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;
}
.tip-card p{font-size:14.5px;margin-top:4px;}

/* stats */
.stats-section{background:var(--bg-dark);}
.stats-section .section-title,.stats-section .section-lead{color:#fff;}
.stats-section .section-lead{color:#94A3B8;}
.stats-grid{grid-template-columns:repeat(6, 1fr);}
.stat-card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-md);
  padding:26px 16px;
  text-align:center;
}
.stat-number{
  display:block;
  font-family:var(--font-display);
  font-size:32px;
  font-weight:800;
  color:#fff;
  background:var(--grad-accent);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:6px;
}
.stat-label{font-size:12.5px;color:#94A3B8;}

/* achievements */
.achievements-grid{grid-template-columns:repeat(4, 1fr);}
.achievement-card{
  padding:24px 18px;
  text-align:center;
  border-radius:var(--r-md);
  background:var(--card);
  border:1px solid var(--line);
  opacity:.5;
  filter:grayscale(.6);
  transition:all .3s ease;
}
.achievement-card.unlocked{
  opacity:1;filter:none;
  border-color:var(--accent);
  box-shadow:0 8px 20px rgba(34,197,94,.15);
}
.ach-icon{font-size:30px;margin-bottom:10px;}
.achievement-card h3{font-size:15px;margin-bottom:6px;}
.achievement-card p{font-size:12.5px;}

/* features */
.features-grid{grid-template-columns:repeat(5, 1fr);}
.feature-card{
  padding:24px 18px;
  border-radius:var(--r-md);
  background:var(--card);
  border:1px solid var(--line);
  transition:transform .25s ease, box-shadow .25s ease;
}
.feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);}
.feature-card h3{font-size:15.5px;margin-bottom:6px;}
.feature-card p{font-size:13px;}

/* faq */
.faq-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.faq-item{
  border:1px solid var(--line);
  border-radius:var(--r-md);
  background:var(--card);
  overflow:hidden;
}
.faq-question{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 22px;
  background:none;border:none;
  font-family:var(--font-display);
  font-weight:600;
  font-size:15.5px;
  color:var(--ink);
}
.faq-caret{transition:transform .25s ease;flex-shrink:0;color:var(--primary);}
.faq-item.is-open .faq-caret{transform:rotate(180deg);}
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
  padding:0 22px;
}
.faq-item.is-open .faq-answer{padding-bottom:20px;}
.faq-answer p{font-size:14.5px;}

/* CTA */
.cta-section{
  background:var(--grad-primary);
  padding:90px 0;
}
.cta-inner{text-align:center;}
.cta-section h2{color:#fff;font-size:clamp(26px,3.5vw,38px);margin-bottom:14px;}
.cta-section p{color:rgba(255,255,255,.85);margin-bottom:32px;font-size:16px;}
.cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* =========================== FOOTER =========================== */
.site-footer{background:var(--bg-dark);color:#CBD5E1;padding:72px 0 0;}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:40px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-col h3{color:#fff;font-size:15px;margin-bottom:16px;}
.footer-col ul{display:flex;flex-direction:column;gap:10px;}
.footer-col a{color:#94A3B8;font-size:14px;transition:color .2s ease;}
.footer-col a:hover{color:var(--accent);}
.footer-brand p{color:#94A3B8;font-size:14px;margin:16px 0 20px;max-width:300px;}
.footer-brand .brand-name{color:#fff;}
.social-icons{display:flex;gap:10px;}
.social-icons a{
  width:36px;height:36px;border-radius:10px;
  background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  transition:background .2s ease;
}
.social-icons a:hover{background:var(--primary);}
.footer-bottom{padding:22px 0;text-align:center;font-size:13px;color:#64748B;}

/* =========================== SCROLL TOP =========================== */
.scroll-top{
  position:fixed;
  bottom:28px;right:28px;
  width:48px;height:48px;
  border-radius:50%;
  background:var(--grad-primary);
  color:#fff;
  border:none;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-glow);
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:all .3s ease;
  z-index:60;
}
.scroll-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto;}
.scroll-top:hover{transform:translateY(-3px);}

/* =========================== MODALS =========================== */
.modal-overlay[hidden]{
  display:none !important;
  pointer-events:none !important;
}
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(15,23,42,.6);
  backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  z-index:200;
  padding:20px;
  animation:fadeIn .25s ease;
}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
.modal-card{
  background:var(--card);
  border-radius:var(--r-lg);
  padding:36px;
  max-width:460px;
  width:100%;
  position:relative;
  box-shadow:var(--shadow-lg);
  animation:fadeInUp .3s ease;
  max-height:88vh;
  overflow-y:auto;
}
.modal-card h2{font-size:24px;margin-bottom:12px;}
.modal-close{
  position:absolute;top:16px;right:16px;
  width:34px;height:34px;
  border-radius:10px;
  border:1px solid var(--line);
  background:var(--bg);
  color:var(--ink-soft);
  font-size:20px;
  line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.modal-stats-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:14px;margin:20px 0;
}
.modal-stats-grid .stat-card{background:var(--bg);border:1px solid var(--line);}
.modal-stats-grid .stat-number{background:none;-webkit-background-clip:unset;background-clip:unset;color:var(--primary);}
.modal-actions{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap;}
.modal-note{margin-top:12px;font-size:13.5px;color:var(--accent);min-height:18px;}
.end-words{
  display:flex;flex-wrap:wrap;gap:8px;
  margin:16px 0 22px;
}
.end-word-chip{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:1px;
  background:var(--grad-accent);
  color:#fff;
  padding:8px 14px;
  border-radius:10px;
  font-size:13px;
  text-transform:uppercase;
}

/* =========================== CONFETTI =========================== */
.confetti-layer{
  position:fixed;inset:0;
  pointer-events:none;
  z-index:300;
  overflow:hidden;
}
.confetti-piece{
  position:absolute;
  top:-20px;
  width:9px;height:14px;
  opacity:.9;
  animation:confettiFall linear forwards;
}
@keyframes confettiFall{
  to{transform:translateY(110vh) rotate(540deg);opacity:0;}
}

/* =========================== TOAST =========================== */
.toast{
  position:fixed;
  bottom:28px;left:50%;
  transform:translate(-50%, 20px);
  background:var(--ink);
  color:#fff;
  padding:12px 22px;
  border-radius:999px;
  font-size:14px;
  font-weight:500;
  box-shadow:var(--shadow-lg);
  opacity:0;
  pointer-events:none;
  transition:all .3s ease;
  z-index:250;
}
.toast.is-visible{opacity:1;transform:translate(-50%, 0);}

/* =========================== REDUCED MOTION =========================== */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important;}
}

/* =========================== RESPONSIVE =========================== */
@media (max-width:1100px){
  .why-grid{grid-template-columns:repeat(2,1fr);}
  .features-grid{grid-template-columns:repeat(3,1fr);}
  .achievements-grid{grid-template-columns:repeat(4,1fr);}
  .modes-grid{grid-template-columns:repeat(3,1fr);}
  .stats-grid{grid-template-columns:repeat(3,1fr);}
}

@media (max-width:980px){
  .hero-inner{grid-template-columns:1fr;text-align:center;}
  .hero-lead{margin:0 auto 32px;}
  .hero-actions{justify-content:center;}
  .hero-stats{justify-content:center;}
  .game-layout{grid-template-columns:1fr;}
  .game-side{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:16px;
  }
  .steps-grid{grid-template-columns:repeat(2,1fr);}
  .tips-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:860px){
  .mobile-only{display:inline-flex;}
  .main-nav{
    position:fixed;
    top:var(--header-h);
    left:0;right:0;
    background:var(--card);
    border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-md);
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:all .25s ease;
  }
  .main-nav.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
  .main-nav ul{flex-direction:column;align-items:flex-start;padding:20px 24px;gap:16px;}
  .modes-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:720px){
  .section-title{margin-bottom:8px;}
  section{padding:64px 0;}
  .hero-visual{display:none;}
  .boards-grid{grid-template-columns:1fr;}
  .board-grid{grid-template-rows:repeat(9,1fr);}
  .tile{font-size:16px;}
  .game-side{grid-template-columns:1fr 1fr;}
  .why-grid,.features-grid,.achievements-grid,.stats-grid{grid-template-columns:repeat(2,1fr);}
  .steps-grid,.tips-grid,.modes-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;text-align:left;}
  .key{height:44px;min-width:28px;}
  .modal-stats-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:480px){
  .hero{padding:48px 0 64px;}
  .hero h1{font-size:32px;}
  .game-toolbar{flex-direction:column;align-items:stretch;}
  .mode-pills{justify-content:center;}
  .game-side{grid-template-columns:1fr;}
  .boards-wrap{--pad:16px;padding:var(--pad);}
  .key{min-width:24px;}
  .key.key-wide{max-width:56px;}
}

/* =========================================================
   LEGAL PAGES (Privacy / Terms / Cookies / Disclaimer)
   ========================================================= */
.legal-hero{
  padding:56px 0 40px;
  border-bottom:1px solid var(--line);
}
.breadcrumbs{
  display:flex;align-items:center;gap:8px;
  font-size:13px;color:var(--muted);margin-bottom:18px;
}
.breadcrumbs a{color:var(--primary);font-weight:600;}
.breadcrumbs a:hover{text-decoration:underline;}
.legal-hero h1{font-size:clamp(28px,4vw,40px);margin-bottom:10px;}
.legal-updated{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;color:var(--muted);
  background:var(--card);border:1px solid var(--line);
  padding:6px 14px;border-radius:999px;
}

.legal-layout{
  max-width:var(--container);margin:0 auto;padding:56px 24px 96px;
  display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start;
}
.legal-toc{
  position:sticky;top:calc(var(--header-h) + 24px);
  border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--card);padding:20px;
}
.legal-toc h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:14px;}
.legal-toc ul{display:flex;flex-direction:column;gap:10px;}
.legal-toc a{font-size:14px;color:var(--ink-soft);transition:color .2s ease, padding-left .2s ease;}
.legal-toc a:hover{color:var(--primary);padding-left:3px;}

.legal-content{max-width:760px;}
.legal-content section{padding:0 0 40px;border:none;scroll-margin-top:calc(var(--header-h) + 16px);}
.legal-content section:last-child{padding-bottom:0;}
.legal-content h2{font-size:22px;margin-bottom:14px;padding-top:8px;}
.legal-content h3{font-size:16px;margin:20px 0 8px;color:var(--ink);}
.legal-content p{margin-bottom:14px;font-size:15px;color:var(--ink-soft);}
.legal-content ul{margin-bottom:14px;padding-left:0;}
.legal-content ul li{
  position:relative;padding-left:22px;margin-bottom:8px;font-size:15px;color:var(--ink-soft);
}
.legal-content ul li::before{
  content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--primary);
}
.legal-content a{color:var(--primary);font-weight:600;}
.legal-content a:hover{text-decoration:underline;}
.legal-content strong{color:var(--ink);}
.legal-callout{
  background:var(--card);border:1px solid var(--line);border-left:4px solid var(--primary);
  border-radius:var(--r-sm);padding:16px 18px;margin-bottom:14px;font-size:14.5px;color:var(--ink-soft);
}
.legal-content table{width:100%;border-collapse:collapse;margin-bottom:16px;font-size:14px;}
.legal-content th,.legal-content td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink-soft);}
.legal-content th{color:var(--ink);font-family:var(--font-display);}

@media (max-width:920px){
  .legal-layout{grid-template-columns:1fr;}
  .legal-toc{position:static;}
}
