:root{
  --sun:#FFC93C;
  --sky:#4EC5F1;
  --coral:#FF6B6B;
  --grass:#6BCB77;
  --plum:#3A2E5C;
  --cream:#FFF8EC;
  --ink:#2B2140;
  --shadow: 0 8px 0 rgba(58,46,92,0.18);
}
*{box-sizing:border-box;}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 10% 10%, #FFE9A8 0%, transparent 40%),
    radial-gradient(circle at 90% 20%, #BDEBFF 0%, transparent 45%),
    radial-gradient(circle at 50% 100%, #C9F5CE 0%, transparent 50%),
    var(--cream);
  font-family:'Nunito', sans-serif;
  color:var(--ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:24px 16px 60px;
}
h1{
  font-family:'Fredoka', sans-serif;
  font-size:clamp(2rem, 6vw, 3.2rem);
  margin:8px 0 2px;
  color:var(--plum);
  text-align:center;
  letter-spacing:0.5px;
}
.subtitle{
  font-weight:700;
  color:#7A6E9B;
  margin:0 0 22px;
  text-align:center;
  font-size:1.05rem;
}
.wobble{
  display:inline-block;
  animation: wob 2.4s ease-in-out infinite;
}
@keyframes wob{
  0%,100%{transform:rotate(-4deg);}
  50%{transform:rotate(4deg);}
}

.card{
  background:white;
  border-radius:28px;
  box-shadow: var(--shadow), 0 2px 24px rgba(58,46,92,0.08);
  padding:20px;
  max-width:640px;
  width:100%;
}

/* ---- Drawing screen ---- */
#drawScreen .toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-bottom:14px;
  justify-content:center;
}
.swatch{
  width:34px;height:34px;border-radius:50%;
  border:3px solid white;
  box-shadow:0 0 0 2px rgba(58,46,92,0.25);
  cursor:pointer;
  transition:transform .12s ease;
}
.swatch:hover{transform:scale(1.12);}
.swatch.active{box-shadow:0 0 0 3px var(--plum);}
#brushSize{
  width:100px;
  accent-color: var(--coral);
}
button{
  font-family:'Fredoka', sans-serif;
  font-weight:600;
  border:none;
  border-radius:16px;
  padding:10px 18px;
  font-size:1rem;
  cursor:pointer;
  transition:transform .08s ease, box-shadow .08s ease;
}
button:active{transform:translateY(3px); box-shadow:none !important;}
.btn-clear{
  background:#F1ECFF;
  color:var(--plum);
  box-shadow:0 4px 0 #D8CCF7;
}
.btn-play{
  background:var(--grass);
  color:white;
  box-shadow:0 5px 0 #4FA85B;
  font-size:1.15rem;
  padding:12px 26px;
}
.btn-secondary{
  background:var(--sky);
  color:white;
  box-shadow:0 4px 0 #2FA6D8;
}
canvas#drawCanvas{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  max-height:60vh;
  background:
    linear-gradient(45deg,#fafafa 25%,transparent 25%),
    linear-gradient(-45deg,#fafafa 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,#fafafa 75%),
    linear-gradient(-45deg,transparent 75%,#fafafa 75%);
  background-size:20px 20px;
  background-position:0 0,0 10px,10px -10px,-10px 0px;
  border-radius:18px;
  border:3px dashed #E4DBFF;
  touch-action:none;
  cursor:crosshair;
}
.play-row{
  display:flex;
  justify-content:center;
  margin-top:16px;
}
.hint{
  text-align:center;
  color:#9A8FBF;
  font-size:0.9rem;
  margin-top:8px;
  font-weight:700;
}

/* ---- Game picker ---- */
#pickScreen{display:none;}
.games-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:14px;
  margin:18px 0;
}
.game-card{
  background:var(--cream);
  border-radius:20px;
  padding:16px 12px;
  text-align:center;
  cursor:pointer;
  border:3px solid transparent;
  transition:transform .12s ease, border-color .12s ease;
}
.game-card:hover{transform:translateY(-4px); border-color:var(--sun);}
.game-card .emoji{font-size:2.4rem; display:block; margin-bottom:6px;}
.game-card .name{font-family:'Fredoka'; font-weight:600; color:var(--plum);}
.game-card .desc{font-size:0.82rem; color:#8A7FA8; margin-top:2px;}

.mini-preview{
  display:block;
  margin:0 auto 4px;
  border-radius:12px;
  background:#fff;
  border:2px solid #EEE6FF;
}

/* ---- Game screen ---- */
#gameScreen{display:none;}
.game-hud{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:10px;
  font-family:'Fredoka';
  font-weight:600;
  color:var(--plum);
}
.hud-pill{
  background:var(--sun);
  padding:6px 14px;
  border-radius:14px;
  box-shadow:0 3px 0 #E0AC1E;
}
canvas#gameCanvas{
  width:100%;
  aspect-ratio:3/4;
  max-height:65vh;
  border-radius:18px;
  display:block;
  touch-action:none;
}
.back-row{
  display:flex;
  gap:10px;
  justify-content:center;
  margin-top:14px;
}
.overlay-msg{
  position:relative;
}
.overlay-msg .msgbox{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  background:rgba(58,46,92,0.72);
  border-radius:18px;
  color:white;
  text-align:center;
  font-family:'Fredoka';
  gap:10px;
  padding:20px;
}
.msgbox.show{display:flex;}
.msgbox h2{margin:0; font-size:1.8rem;}
