
:root{
  --bg:#f7f7fb;
  --card:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --accent:#2563eb;
  --accent-2:#10b981;
  --radius:18px;
  --shadow:0 8px 24px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:var(--bg);color:var(--text);}
a{color:var(--accent);text-decoration:none}
header{
  position:sticky;top:0;z-index:10;background:var(--card);
  box-shadow:var(--shadow);
}
nav{max-width:1100px;margin:0 auto;display:flex;gap:16px;align-items:center;padding:12px 16px}
nav img.logo{height:40px;width:auto;border-radius:8px}
nav a.link{padding:8px 12px;border-radius:10px;font-weight:600}
nav a.active, nav a.link:hover{background:#eef2ff}
main{max-width:1100px;margin:24px auto;padding:0 16px}
.section{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}
.grid{display:grid;gap:16px}
.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
h1{font-size:clamp(24px,3vw,36px);margin:0 0 12px}
h2{font-size:clamp(18px,2.2vw,26px);margin:0 0 8px}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px 12px;border-bottom:1px solid #e5e7eb;text-align:left}
.badge{display:inline-block;padding:4px 10px;background:#eef2ff;border-radius:999px;font-size:12px;margin-right:6px}
.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
button,.btn{
  background:var(--accent);color:#fff;border:none;border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer;
  box-shadow:0 4px 14px rgba(37,99,235,.25);
}
button.secondary{background:var(--accent-2)}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
code.inline{background:#f1f5f9;padding:2px 6px;border-radius:8px}
.footer{color:var(--muted);font-size:14px;margin:24px auto 40px;max-width:1100px;padding:0 16px}
.notice{padding:12px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc}
.hidden{display:none}
/* Game areas */
#gameContainer{min-height:360px}
/* Memory */
.memory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:12px}
.memory-card{background:#e5e7eb;border-radius:14px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;font-weight:800;font-size:18px}
.memory-card img{width:80%;height:auto;display:block}
.memory-card.revealed{outline:3px solid var(--accent)}
/* Quiz */
.quiz-card{display:flex;flex-direction:column;gap:12px}
.quiz-options{display:grid;gap:10px}
.quiz-options button{justify-content:flex-start}
.success{color:#065f46}
.error{color:#b91c1c}
