/* SmartBaby — playful kids theme. Big targets, rounded everything, bright & friendly.
   Shared by the landing + every game page. Mobile-first (kids play on phones/tablets). */
:root{
  --sky:#7cc6ff; --sky-2:#aee0ff;
  --sun:#ffd23f; --coral:#ff7a59; --grass:#46d39a; --grape:#9b6bff; --pink:#ff6fae;
  --ink:#2b2350; --ink-2:#5b5480; --white:#ffffff;
  --card:#ffffff; --shadow:0 10px 0 rgba(43,35,80,.12), 0 18px 40px -16px rgba(43,35,80,.45);
  --radius:26px;
  --font:'Fredoka','Baloo 2',system-ui,'Segoe UI Rounded',-apple-system,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:var(--font); color:var(--ink); min-height:100vh;
  background:linear-gradient(180deg,var(--sky) 0%,var(--sky-2) 40%,#eaf7ff 100%);
  background-attachment:fixed; overflow-x:hidden;
}
img{max-width:100%}
button{font-family:inherit}

/* Top bar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px clamp(14px,4vw,32px)}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:clamp(22px,5vw,30px);color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.logo .blob{width:44px;height:44px;border-radius:50% 50% 50% 14px;background:linear-gradient(135deg,var(--sun),var(--coral));display:grid;place-items:center;font-size:24px;box-shadow:0 6px 0 rgba(43,35,80,.12)}
.logo b{color:var(--coral)}
.iconbtn{width:50px;height:50px;border-radius:18px;border:none;background:var(--white);box-shadow:0 6px 0 rgba(43,35,80,.12);font-size:24px;cursor:pointer;display:grid;place-items:center;transition:transform .12s}
.iconbtn:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(43,35,80,.12)}
.bar-actions{display:flex;gap:10px}

/* Landing */
.wrap{max-width:960px;margin:0 auto;padding:0 clamp(14px,4vw,24px) 40px}
.hero{text-align:center;padding:8px 0 22px}
.hero h1{font-size:clamp(30px,8vw,56px);margin:.2em 0 .15em;line-height:1.05}
.hero p{font-size:clamp(16px,4vw,21px);color:var(--ink-2);margin:0 auto;max-width:30ch;font-weight:500}
.hero .mascots{font-size:clamp(40px,12vw,72px);margin-bottom:-6px;filter:drop-shadow(0 8px 0 rgba(43,35,80,.10))}

.games-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,4vw,22px);margin-top:14px}
@media(min-width:680px){.games-grid{grid-template-columns:repeat(3,1fr)}}
.game-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  text-decoration:none;color:var(--ink);background:var(--card);border-radius:var(--radius);padding:26px 16px 22px;
  box-shadow:var(--shadow);transition:transform .15s cubic-bezier(.2,.8,.2,1)}
.game-card:hover{transform:translateY(-6px) rotate(-1deg)}
.game-card:active{transform:translateY(2px)}
.game-card .emoji{font-size:clamp(46px,12vw,64px);line-height:1}
.game-card .name{font-weight:700;font-size:clamp(16px,4.4vw,20px);text-align:center}
.game-card .ribbon{position:absolute;top:12px;right:-2px;background:var(--grass);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:10px 0 0 10px;box-shadow:0 4px 0 rgba(43,35,80,.12)}
.game-card.c1{background:linear-gradient(160deg,#fff,#fff4d6)}
.game-card.c2{background:linear-gradient(160deg,#fff,#ffe3da)}
.game-card.c3{background:linear-gradient(160deg,#fff,#e3f8ee)}
.game-card.soon{opacity:.7;filter:saturate(.6)}

/* Funnel to Demha Future */
.funnel{margin-top:30px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;text-align:center}
.funnel p{margin:0;font-weight:600;color:var(--ink-2);font-size:16px}
.btn-fun{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--grape),var(--pink));color:#fff;
  text-decoration:none;font-weight:700;font-size:16px;padding:13px 22px;border-radius:16px;box-shadow:0 6px 0 rgba(43,35,80,.18);transition:transform .12s}
.btn-fun:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(43,35,80,.18)}

footer{text-align:center;padding:26px 16px 36px;color:var(--ink-2);font-weight:500;font-size:14px}
footer a{color:var(--ink);font-weight:700;text-decoration:none}

/* ---- Game shell ---- */
.game{max-width:720px;margin:0 auto;padding:4px clamp(14px,4vw,24px) 40px;text-align:center}
.prompt{font-size:clamp(20px,5.5vw,30px);font-weight:700;margin:6px 0 16px;min-height:1.4em}
.prompt .big{font-size:clamp(40px,12vw,72px);display:block;line-height:1.1}
.stage{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(16px,5vw,30px);margin-bottom:18px}
.objects{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;font-size:clamp(34px,9vw,52px);min-height:90px}
.objects span{animation:pop .3s both}
.options{display:grid;gap:clamp(10px,3vw,16px)}
.options.cols3{grid-template-columns:repeat(3,1fr)}
.options.cols4{grid-template-columns:repeat(2,1fr)}
@media(min-width:520px){.options.cols4{grid-template-columns:repeat(4,1fr)}}
.opt{border:none;cursor:pointer;background:var(--white);border-radius:20px;box-shadow:0 7px 0 rgba(43,35,80,.14);
  font-size:clamp(28px,8vw,44px);font-weight:700;padding:18px 6px;color:var(--ink);transition:transform .1s;min-height:74px;display:grid;place-items:center}
.opt:active{transform:translateY(5px);box-shadow:0 2px 0 rgba(43,35,80,.14)}
.opt.num{background:linear-gradient(160deg,#fff,#fff4d6)}
.opt.right{background:var(--grass)!important;color:#fff;animation:cheer .4s}
.opt.wrong{background:var(--coral)!important;color:#fff;animation:shake .35s}
.opt.swatch{min-height:84px}
.controls{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:6px}
.bigbtn{border:none;cursor:pointer;font-weight:700;font-size:18px;padding:14px 26px;border-radius:18px;color:#fff;
  background:linear-gradient(135deg,var(--coral),var(--pink));box-shadow:0 6px 0 rgba(43,35,80,.18);transition:transform .12s}
.bigbtn.alt{background:linear-gradient(135deg,var(--sky),var(--grape))}
.bigbtn:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(43,35,80,.18)}

/* progress stars */
.stars{font-size:26px;letter-spacing:4px;margin:2px 0 12px;min-height:30px}

/* memory grid */
.mem{display:grid;gap:clamp(8px,2.5vw,14px);justify-content:center;margin:0 auto;max-width:520px}
.mem.g3{grid-template-columns:repeat(3,1fr)}
.mem.g4{grid-template-columns:repeat(4,1fr)}
.mcard{aspect-ratio:1;border:none;cursor:pointer;border-radius:18px;background:linear-gradient(160deg,var(--grape),var(--pink));
  box-shadow:0 6px 0 rgba(43,35,80,.18);font-size:clamp(28px,9vw,46px);display:grid;place-items:center;transition:transform .12s,background .2s;color:#fff}
.mcard.up{background:var(--white)}
.mcard.up .back{display:none}
.mcard:not(.up) .face{display:none}
.mcard .back{font-size:clamp(24px,7vw,38px)}
.mcard.done{visibility:hidden}
.mcard:active{transform:translateY(4px)}

/* win overlay */
.win{position:fixed;inset:0;display:none;place-items:center;background:rgba(43,35,80,.45);z-index:50;padding:20px}
.win.show{display:grid;animation:fade .25s}
.win .panel{background:#fff;border-radius:30px;padding:30px 26px;text-align:center;box-shadow:var(--shadow);max-width:340px;animation:pop .35s}
.win .panel .face{font-size:64px}
.win .panel h2{margin:8px 0 4px;font-size:30px}
.win .panel p{margin:0 0 18px;color:var(--ink-2);font-weight:600}

#confetti{position:fixed;inset:0;pointer-events:none;z-index:60}

@keyframes pop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes cheer{0%{transform:scale(1)}40%{transform:scale(1.15)}100%{transform:scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
