/* Shared styles for Sadie's World games */
:root{
  --pink:#ff8fc8; --pink-d:#ff5fae; --lemon:#ffe27a; --mint:#7fe0c0; --sky:#7cc8ff; --lilac:#b79cff; --purple:#8a5cf6;
  --ink:#5a3a7a; --rainbow:linear-gradient(90deg,#ff7eb6,#ffa86b,#ffe066,#7ee0a8,#6cc6ff,#b38bff);
  --theme:#ff8fc8; --theme-d:#e2378f;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{
  font-family:'Fredoka',system-ui,sans-serif;color:var(--ink);line-height:1.4;
  background:
    radial-gradient(circle at 10% 20%,#ffe3f3 0,transparent 40%),
    radial-gradient(circle at 90% 30%,#e3ecff 0,transparent 40%),
    radial-gradient(circle at 30% 85%,#e4fff3 0,transparent 40%),
    #fdf5ff;
  -webkit-tap-highlight-color:transparent;
}
button{font-family:inherit;color:inherit;cursor:pointer}
.topbar{
  position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 16px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);
  border-bottom:4px solid transparent;border-image:var(--rainbow) 1;
}
.back,.mute{
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:700;font-size:1.05rem;
  padding:10px 18px;border-radius:999px;background:#fff;border:3px solid #ffd1ea;color:var(--ink);
  transition:transform .15s, background .15s;white-space:nowrap;
}
.back:hover,.mute:hover{transform:translateY(-2px);background:#fff0f8}
.topbar h1{font-size:clamp(1.15rem,3.2vw,1.8rem);font-weight:700;text-align:center;
  background:linear-gradient(90deg,#ff4f9e,#ff8a3d,#e0a800,#2fbf7f,#2f9cf0,#8a5cf6);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{
  display:inline-block;border:0;text-decoration:none;font-weight:700;font-size:1.25rem;color:#fff;
  padding:14px 32px;border-radius:999px;background:linear-gradient(135deg,var(--theme),var(--theme-d));
  box-shadow:0 6px 0 rgba(0,0,0,.18);transition:transform .12s, box-shadow .12s;touch-action:manipulation;
}
.btn:hover{transform:translateY(-3px) scale(1.03)}
.btn:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.18)}
.btn.small{font-size:1.05rem;padding:10px 22px}
.btn.ghost{background:#fff;color:var(--theme-d);border:3px solid var(--theme)}
.btn.sel{outline:4px solid var(--lemon);outline-offset:2px}
.wrap{max-width:1000px;margin:0 auto;padding:16px}
.hud{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:6px 0 12px}
.pill{background:#fff;border-radius:999px;padding:8px 18px;font-weight:700;font-size:1.15rem;box-shadow:0 4px 0 #f0d8ff}
/* Overlay (instructions / win) */
.overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;
  background:rgba(253,240,255,.72);backdrop-filter:blur(4px)}
.overlay[hidden]{display:none}
.overlay .card{position:relative;z-index:2}
.overlay .burst{z-index:1}
.card{background:#fff;border-radius:32px;padding:28px 26px;max-width:520px;width:100%;text-align:center;
  box-shadow:0 10px 0 #ffd1ea,0 20px 40px rgba(180,100,200,.25);border:4px solid #ffe3f3;animation:pop .35s cubic-bezier(.3,1.6,.6,1)}
@keyframes pop{from{transform:scale(.7);opacity:0}}
.card .big{font-size:4rem;line-height:1.1}
.card h2{font-size:2rem;margin:6px 0}
.card p,.card li{font-size:1.2rem}
.card ul{list-style:none;margin:12px 0 18px;display:grid;gap:8px;text-align:left}
.card li{background:#fff6fb;border-radius:16px;padding:8px 14px}
.card .row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:14px}
/* Sparkle celebration */
.burst{position:fixed;z-index:80;pointer-events:none;font-size:28px;animation:burst 1.6s ease-out forwards}
@keyframes burst{
  0%{transform:translate(0,0) scale(.3) rotate(0);opacity:1}
  100%{transform:translate(var(--dx),var(--dy)) scale(1.2) rotate(360deg);opacity:0}
}
.pop-score{position:absolute;pointer-events:none;font-weight:700;font-size:1.4rem;color:var(--theme-d);animation:rise .8s ease-out forwards;z-index:5}
@keyframes rise{to{transform:translateY(-40px);opacity:0}}
@media (max-width:600px){
  .topbar{padding:8px 10px}
  .back,.mute{padding:8px 12px;font-size:.95rem}
  .back .txt{display:none}
}
@media (prefers-reduced-motion:reduce){.burst{animation-duration:.01s}}
