/* Plooshi — Learning Through Song & Play */
/* Fonts are self-hosted (SIL Open Font License) so text shows fast without a trip to Google */
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/baloo2.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/nunito.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --sky:#5ec8f2; --sky-d:#156fa0; --sky-l:#d8f2fd;
  --pink:#d81b72; --pink-d:#a8125a;
  --sun:#ffc93c; --sun-d:#f2a900;
  --mint:#6fdcae; --grape:#8b6cf0; --orange:#ff8a3d;
  --ink:#1d3260; --ink-2:#4a5a80;
  --cream:#fffaf0; --white:#fff;
  --radius:28px; --shadow:0 10px 0 rgba(29,50,96,.12), 0 18px 40px rgba(29,50,96,.12);
  --font-display:'Baloo 2', 'Comic Sans MS', system-ui, sans-serif;
  --font-body:'Nunito', system-ui, -apple-system, Segoe UI, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--cream);font-size:18px;line-height:1.55;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--pink-d)}
h1,h2,h3{font-family:var(--font-display);line-height:1.05;margin:0 0 .4em;letter-spacing:-.01em}
h1{font-size:clamp(2.6rem,7vw,5.2rem)}
h2{font-size:clamp(2rem,5vw,3.2rem)}
h3{font-size:1.4rem}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:4px solid var(--sun);outline-offset:3px;border-radius:12px}

/* ---------- Header ---------- */
.top{position:sticky;top:0;z-index:50;background:rgba(255,250,240,.88);backdrop-filter:blur(10px);border-bottom:3px dashed rgba(94,200,242,.45)}
.top .wrap{display:flex;align-items:center;gap:16px;height:76px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:1.9rem}
.logo img{width:50px;height:50px;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 0 var(--sky-d);transition:transform .3s}
.logo:hover img{transform:rotate(-12deg) scale(1.08)}
.logo span{color:var(--sky-d)} .logo span b{color:var(--pink)}
.nav{margin-left:auto;display:flex;gap:6px;align-items:center}
.nav a{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);text-decoration:none;padding:8px 14px;border-radius:999px;transition:background .2s,transform .2s}
.nav a:hover,.nav a[aria-current="page"]{background:var(--sky-l);transform:translateY(-2px)}
.nav a.cta{background:var(--pink);color:#fff;box-shadow:0 4px 0 var(--pink-d)}
.nav a.cta:hover{background:var(--pink);transform:translateY(-3px)}
.sound-btn{border:0;background:var(--sun);width:46px;height:46px;border-radius:50%;font-size:1.3rem;cursor:pointer;box-shadow:0 4px 0 var(--sun-d);flex:none}
.sound-btn[aria-pressed="false"]{background:#e5e1d8;box-shadow:0 4px 0 #c5c0b4}
.menu-btn{display:none;border:0;background:var(--sky);color:#fff;font-size:1.5rem;width:46px;height:46px;border-radius:14px;cursor:pointer;box-shadow:0 4px 0 var(--sky-d)}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{position:fixed;inset:76px 0 auto 0;flex-direction:column;background:var(--cream);padding:16px 20px 24px;gap:8px;border-bottom:4px solid var(--sky);transform:translateY(-120%);transition:transform .3s;align-items:stretch}
  .nav.open{transform:none}
  .nav a{font-size:1.3rem;text-align:center}
  .top .wrap{gap:10px}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:1.2rem;text-decoration:none;border:0;cursor:pointer;padding:14px 26px;border-radius:999px;color:#fff;background:var(--pink);box-shadow:0 6px 0 var(--pink-d);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-3px);box-shadow:0 9px 0 var(--pink-d)}
.btn:active{transform:translateY(4px);box-shadow:0 2px 0 var(--pink-d)}
.btn.blue{background:var(--sky-d);box-shadow:0 6px 0 #0f5580}
.btn.blue:hover{box-shadow:0 9px 0 #0f5580}
.btn.sun{background:var(--sun);color:var(--ink);box-shadow:0 6px 0 var(--sun-d)}
.btn.sun:hover{box-shadow:0 9px 0 var(--sun-d)}
.btn.white{background:#fff;color:var(--ink);box-shadow:0 6px 0 rgba(29,50,96,.2)}
.btn.sm{font-size:1rem;padding:10px 18px}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:radial-gradient(1200px 500px at 70% 0%, #bfeafd 0%, transparent 60%),linear-gradient(180deg,#e6f7fe 0%, var(--cream) 100%);padding:50px 0 90px}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;position:relative;z-index:2}
.hero h1 .w{display:inline-block;animation:bob 2.6s ease-in-out infinite}
.hero h1 .w:nth-child(2){animation-delay:.15s;color:var(--pink)}
.hero h1 .w:nth-child(3){animation-delay:.3s}
.hero h1 .w:nth-child(4){animation-delay:.45s;color:var(--sky-d)}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.eyebrow{display:inline-block;font-family:var(--font-display);font-weight:800;background:#fff;color:var(--pink);padding:6px 16px;border-radius:999px;box-shadow:0 4px 0 rgba(236,61,143,.25);margin-bottom:16px;font-size:1.05rem}
.hero p.lead{font-size:1.3rem;color:var(--ink-2);max-width:34ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:14px;margin:26px 0}
.stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.stat{background:#fff;border-radius:20px;padding:10px 18px;box-shadow:0 5px 0 rgba(29,50,96,.1);text-align:center;min-width:110px}
.stat b{display:block;font-family:var(--font-display);font-size:1.9rem;line-height:1;color:var(--sky-d)}
.stat:nth-child(2) b{color:var(--pink)} .stat:nth-child(3) b{color:#9a6200}
.stat small{font-weight:700;color:var(--ink-2)}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr;text-align:center}.hero p.lead{margin:0 auto}.hero .actions,.stats{justify-content:center}.hero{padding:10px 0 90px}
  .mascot-stage{order:-1;min-height:270px}.mascot{width:min(250px,64vw)}.bubble{font-size:1.05rem;right:4px}
  .stat{min-width:0;flex:1;padding:8px 10px}.stat b{font-size:1.5rem}}

/* Mascot */
.mascot-stage{position:relative;display:grid;place-items:center;min-height:420px}
.mascot{width:min(380px,80vw);cursor:pointer;filter:drop-shadow(0 20px 20px rgba(29,50,96,.18));transition:transform .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mascot .body{transform-origin:200px 360px;animation:squish 3s ease-in-out infinite}
@keyframes squish{0%,100%{transform:scale(1,1)}50%{transform:scale(1.03,.97)}}
.mascot.jump{animation:jump .7s cubic-bezier(.3,1.6,.5,1)}
@keyframes jump{0%{transform:translateY(0) scale(1)}30%{transform:translateY(-70px) scale(.95,1.08) rotate(-6deg)}60%{transform:translateY(0) scale(1.1,.88)}100%{transform:none}}
.mascot .lid{transform-origin:center;transform-box:fill-box;animation:blink 5s infinite}
@keyframes blink{0%,94%,100%{transform:scaleY(0)}96%{transform:scaleY(1)}}
.mascot.happy .mouth-o{display:none}.mascot .mouth-big{display:none}.mascot.happy .mouth-big{display:block}
.bubble{position:absolute;top:10px;right:0;background:#fff;font-family:var(--font-display);font-weight:800;font-size:1.3rem;padding:12px 18px;border-radius:24px;box-shadow:var(--shadow);transform:scale(0) rotate(-6deg);transform-origin:bottom left;transition:transform .3s cubic-bezier(.3,1.6,.5,1);max-width:220px}
.bubble.show{transform:scale(1) rotate(-3deg)}
.bubble::after{content:"";position:absolute;left:24px;bottom:-14px;border:14px solid transparent;border-top-color:#fff;border-bottom:0}
.tap-hint{position:absolute;bottom:6px;font-family:var(--font-display);font-weight:800;color:var(--sky-d);background:#fff;padding:6px 14px;border-radius:999px;animation:bob 1.8s infinite}
.note{position:absolute;pointer-events:none;font-size:2rem;animation:floatup 1.6s ease-out forwards;z-index:5}
@keyframes floatup{0%{opacity:0;transform:translate(0,0) scale(.5)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx,30px),-180px) rotate(30deg) scale(1.2)}}

/* floating clouds & bubbles */
.sky-deco{position:absolute;inset:0;pointer-events:none;z-index:1}
.cloud{position:absolute;background:#fff;border-radius:999px;opacity:.9;animation:drift linear infinite}
.cloud::before,.cloud::after{content:"";position:absolute;background:#fff;border-radius:50%}
.cloud::before{width:55%;height:160%;left:15%;bottom:20%}
.cloud::after{width:40%;height:120%;right:12%;bottom:30%}
@keyframes drift{from{transform:translateX(-30vw)}to{transform:translateX(130vw)}}
.wave{position:absolute;left:0;right:0;bottom:-1px;z-index:2;line-height:0}
.wave svg{width:100%;height:90px}

/* ---------- Sections ---------- */
section{padding:80px 0;position:relative}
.sec-head{text-align:center;max-width:720px;margin:0 auto 40px}
.sec-head p{color:var(--ink-2);font-size:1.15rem}
.tag{display:inline-block;font-family:var(--font-display);font-weight:800;font-size:1rem;padding:4px 14px;border-radius:999px;background:var(--sun);color:var(--ink);margin-bottom:12px;transform:rotate(-2deg)}
.bg-sky{background:var(--sky-l)}
.bg-pink{background:#ffe3f0}
.bg-sun{background:#fff3cf}
.bg-ink{background:var(--ink);color:#fff}
.bg-ink .sec-head p{color:#c9d5f0}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:28px}
.chip{font-family:var(--font-display);font-weight:700;font-size:1.05rem;border:3px solid var(--ink);background:#fff;color:var(--ink);padding:6px 16px;border-radius:999px;cursor:pointer;transition:transform .15s}
.chip:hover{transform:translateY(-2px) rotate(-1deg)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff}

/* Video cards */
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.card:hover{transform:translateY(-6px) rotate(-.6deg)}
.card:nth-child(even):hover{transform:translateY(-6px) rotate(.6deg)}
.vthumb{position:relative;aspect-ratio:16/9;background:var(--sky-l);cursor:pointer;border:0;padding:0;width:100%;display:block}
.vthumb img{width:100%;height:100%;object-fit:cover}
.vthumb .play{position:absolute;inset:0;margin:auto;width:70px;height:70px;border-radius:50%;background:var(--pink);display:grid;place-items:center;box-shadow:0 5px 0 var(--pink-d);transition:transform .2s}
.vthumb:hover .play{transform:scale(1.15)}
.vthumb .play::before{content:"";border-left:24px solid #fff;border-top:15px solid transparent;border-bottom:15px solid transparent;margin-left:6px}
.vthumb iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.card .body{padding:16px 20px 20px}
.card h3{font-size:1.3rem;margin-bottom:4px}
.card p{margin:0;color:var(--ink-2);font-size:.98rem}
.badge{display:inline-block;font-size:.8rem;font-weight:800;padding:2px 10px;border-radius:999px;background:var(--sky-l);color:var(--sky-d);margin-bottom:8px}

/* Featured player */
.feature{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:stretch;margin-bottom:40px}
.feature .vthumb{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);height:100%}
.listen{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}
.listen iframe{border:0;border-radius:16px;width:100%;flex:1;min-height:352px}
.platforms{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:860px){.feature{grid-template-columns:1fr}}

/* Printables */
.pgrid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.pcard{background:#fff;border-radius:24px;padding:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.3,1.6,.5,1);position:relative}
.pcard:hover{transform:translateY(-6px) rotate(-1deg)}
.pcard:nth-child(3n):hover{transform:translateY(-6px) rotate(1deg)}
.pcard .img{aspect-ratio:1024/791;border-radius:16px;overflow:hidden;background:#f2f2f2;border:3px solid var(--sky-l)}
.pcard img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.pcard:hover img{transform:scale(1.06)}
.pcard h3{font-size:1.2rem;margin:12px 4px 10px}
.pcard .row{display:flex;gap:8px;margin-top:auto}
.pcard .row .btn{flex:1;justify-content:center;font-size:.95rem;padding:9px 10px}
.fav{position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:50%;border:0;background:#fff;font-size:1.3rem;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.12);transition:transform .2s}
.fav:hover{transform:scale(1.15)}
.fav[aria-pressed="true"]{background:var(--pink)}
.searchbar{display:flex;gap:12px;max-width:640px;margin:0 auto 22px;flex-wrap:wrap;justify-content:center}
.searchbar input{flex:1;min-width:220px;font:inherit;font-size:1.15rem;padding:14px 22px;border-radius:999px;border:3px solid var(--ink);background:#fff;color:var(--ink)}
.count-line{text-align:center;color:var(--ink-2);font-weight:700;margin:-6px 0 22px}
.empty{text-align:center;font-family:var(--font-display);font-size:1.4rem;padding:40px}

/* Games teaser */
.games{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.game{border-radius:var(--radius);padding:28px;color:#fff;text-decoration:none;box-shadow:var(--shadow);position:relative;overflow:hidden;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.game:hover{transform:translateY(-8px) rotate(-1.5deg)}
.game .emo{font-size:4.5rem;position:absolute;top:16px;right:20px;transition:transform .4s}
.game:hover .emo{transform:rotate(20deg) scale(1.2)}
.game h3{font-size:1.7rem;margin:0}
.game p{margin:4px 0 0;opacity:.95}
.g1{background:linear-gradient(135deg,var(--pink),var(--orange))}
.g2{background:linear-gradient(135deg,var(--sky-d),var(--grape))}
.g3{background:linear-gradient(135deg,var(--mint),var(--sky-d))}
.g4{background:linear-gradient(135deg,var(--sun-d),var(--pink))}

/* Xylophone */
.xylo{display:flex;gap:10px;justify-content:center;align-items:flex-end;padding:20px;max-width:760px;margin:0 auto;touch-action:manipulation}
.bar{flex:1;border:0;border-radius:18px;cursor:pointer;color:#fff;font-family:var(--font-display);font-weight:800;font-size:1.5rem;display:flex;align-items:flex-end;justify-content:center;padding-bottom:14px;box-shadow:0 8px 0 rgba(0,0,0,.18);transition:transform .08s;-webkit-tap-highlight-color:transparent;position:relative}
.bar::before,.bar::after{content:"";position:absolute;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:rgba(255,255,255,.6)}
.bar::before{top:14px}.bar::after{bottom:52px}
.bar.hit,.bar:active{transform:translateY(6px) scale(.98);box-shadow:0 2px 0 rgba(0,0,0,.18)}
@media (max-width:600px){.xylo{gap:4px;padding:12px 0}.bar{font-size:1.15rem;border-radius:12px;min-width:0}}
.xylo-songs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}

/* Parents */
.parents{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.pbox{background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.18);border-radius:24px;padding:24px}
.pbox .i{font-size:2.4rem}
.pbox h3{color:var(--sun)}
.pbox p{color:#d7e1f7;margin:0}
.faq{max-width:820px;margin:40px auto 0}
.faq details{background:rgba(255,255,255,.08);border-radius:18px;padding:16px 22px;margin-bottom:12px}
.faq summary{font-family:var(--font-display);font-weight:800;font-size:1.25rem;cursor:pointer}
.faq p{color:#d7e1f7;margin:10px 0 0}

/* Newsletter */
.news{background:linear-gradient(135deg,var(--sky),var(--grape));border-radius:40px;padding:50px 30px;text-align:center;color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden}
.news h2{color:#fff}
.news form{display:flex;gap:12px;max-width:520px;margin:20px auto 0;flex-wrap:wrap;justify-content:center}
.news input{flex:1;min-width:220px;font:inherit;padding:14px 22px;border-radius:999px;border:0;font-size:1.1rem}
.news small{display:block;margin-top:12px;opacity:.9}

/* Footer */
footer{background:var(--ink);color:#c9d5f0;padding:60px 0 30px;margin-top:80px;position:relative}
footer::before{content:"";position:absolute;left:0;right:0;top:-40px;height:42px;background:radial-gradient(circle at 20px 0,transparent 21px,var(--ink) 22px) repeat-x;background-size:40px 42px;transform:scaleY(-1)}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
footer h2{color:#fff;font-size:1.2rem}
footer a{color:#c9d5f0;text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:var(--sun)}
footer .legal{border-top:1px solid rgba(255,255,255,.15);margin-top:40px;padding-top:20px;font-size:.9rem;text-align:center}
.socials{display:flex;gap:10px;margin-top:14px}
.socials a{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;padding:0}
.socials a:hover{background:var(--pink)}
.socials svg{width:22px;height:22px;fill:#fff}
@media (max-width:760px){footer .cols{grid-template-columns:1fr 1fr}}

/* Page hero (inner) */
.phero{background:linear-gradient(180deg,#e6f7fe,var(--cream));padding:50px 0 40px;text-align:center;position:relative;overflow:hidden}
.phero p{font-size:1.2rem;color:var(--ink-2);max-width:640px;margin:0 auto}
.crumbs{font-size:.95rem;margin-bottom:12px;color:var(--ink-2)}
.crumbs a{color:var(--ink-2)}

/* Games page */
.game-panel{background:#fff;border-radius:36px;box-shadow:var(--shadow);padding:30px;margin-bottom:40px}
.game-panel h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.game-panel .sub{color:var(--ink-2);margin-top:-6px}
.colorer{display:grid;grid-template-columns:1fr 220px;gap:24px;align-items:center}
.colorer svg{width:100%;max-width:440px;margin:0 auto;display:block;cursor:crosshair}
.colorer svg [data-fill]{transition:fill .25s}
.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.swatch{aspect-ratio:1;border-radius:50%;border:4px solid #fff;box-shadow:0 0 0 3px #e6e6e6;cursor:pointer;transition:transform .15s}
.swatch[aria-pressed="true"]{box-shadow:0 0 0 4px var(--ink);transform:scale(1.12)}
@media (max-width:700px){.colorer{grid-template-columns:1fr}.palette{grid-template-columns:repeat(8,1fr)}}
.memory{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:520px;margin:0 auto;perspective:800px}
.mcard{aspect-ratio:1;border:0;background:none;cursor:pointer;position:relative;transform-style:preserve-3d;transition:transform .45s;padding:0}
.mcard.flip,.mcard.done{transform:rotateY(180deg)}
.mcard .f,.mcard .b{position:absolute;inset:0;border-radius:18px;display:grid;place-items:center;backface-visibility:hidden;font-size:clamp(1.8rem,7vw,3rem)}
.mcard .f{background:linear-gradient(135deg,var(--sky),var(--grape));box-shadow:0 5px 0 rgba(0,0,0,.15)}
.mcard .f img{width:60%;height:auto;aspect-ratio:1;border-radius:50%;opacity:.95}
.mcard .b{background:#fff;border:4px solid var(--sky);transform:rotateY(180deg)}
.mcard.done .b{border-color:var(--mint);background:#effcf6}
.bubbles{position:relative;height:420px;background:linear-gradient(180deg,#bfeafd,#e6f7fe);border-radius:28px;overflow:hidden;touch-action:manipulation}
.bub{position:absolute;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;color:#fff;font-size:1.6rem;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9) 0 10%,transparent 11%),var(--c,var(--pink));box-shadow:inset 0 -6px 0 rgba(0,0,0,.12);animation:rise linear forwards;-webkit-tap-highlight-color:transparent}
@keyframes rise{from{transform:translateY(0)}to{transform:translateY(-560px)}}
.bub.pop{animation:pop .25s forwards}
@keyframes pop{to{transform:scale(1.8);opacity:0}}
.scorebar{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;margin:14px 0;font-family:var(--font-display);font-weight:800;font-size:1.3rem}
.scorebar .pill{background:var(--sun);padding:6px 16px;border-radius:999px}

/* Confetti */
.confetti{position:fixed;top:-20px;width:12px;height:18px;z-index:999;pointer-events:none;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s,transform .6s cubic-bezier(.3,1.4,.5,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- Articles, lyrics, printable detail, forms ---------- */
.prose{max-width:780px;margin:0 auto;background:#fff;border-radius:32px;padding:clamp(22px,5vw,48px);box-shadow:var(--shadow);font-size:1.12rem}
.prose h2{font-size:clamp(1.6rem,4vw,2.2rem);margin-top:1.4em;color:var(--sky-d)}
.prose h3,.prose h4{margin-top:1.3em;color:var(--pink-d)}
.prose img{border-radius:20px;height:auto;margin:16px auto}
.prose figure{margin:20px 0}
.prose ol,.prose ul{padding-left:1.4em}
.prose li{margin:.35em 0}
.prose ol li::marker{font-family:var(--font-display);font-weight:800;color:var(--pink)}
.prose .lead-img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-top:0}
.prose .wp-block-button__link{display:inline-block;background:var(--pink);color:#fff;font-family:var(--font-display);font-weight:800;padding:12px 24px;border-radius:999px;text-decoration:none;box-shadow:0 5px 0 var(--pink-d)}
.prose iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:20px;height:auto}
.print-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:26px;align-items:center;margin-bottom:24px}
.print-hero img{margin:0;border:4px solid var(--sky-l)}
.print-hero .small{font-size:.95rem;color:var(--ink-2)}
.print-hero .pn{font-weight:700}
@media (max-width:700px){.print-hero{grid-template-columns:1fr;text-align:center}}
.song-player{border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.lyrics{background:var(--sky-l);border-radius:24px;padding:20px 26px;font-size:1.2rem;line-height:1.75}
.lyrics p{margin:0 0 1em}
.lyric-list{columns:3 220px;gap:24px;max-width:960px;margin:0 auto;padding:0;list-style:none}
.lyric-list li{break-inside:avoid;margin-bottom:10px}
.lyric-list a{display:block;background:#fff;border-radius:16px;padding:10px 16px;font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);text-decoration:none;box-shadow:0 4px 0 rgba(29,50,96,.1);transition:transform .2s}
.lyric-list a:hover{transform:translateX(4px);color:var(--pink-d)}
.lyric-list li{display:flex;align-items:center;gap:6px}.lyric-list li a{flex:1}
.card-link{display:block;text-decoration:none;color:inherit}
.cform{display:grid;gap:16px;margin-top:24px}
.cform label{display:grid;gap:6px;font-weight:800}
.cform input,.cform textarea{font:inherit;padding:12px 16px;border-radius:16px;border:3px solid var(--sky-l);background:var(--cream);color:var(--ink)}
.cform input:focus,.cform textarea:focus{border-color:var(--sky)}
.cform .btn{justify-self:start}
.about-mascot{display:grid;place-items:center;position:relative}
.about-mascot .mascot{width:min(240px,60vw)}
.qa{background:var(--sky-l);border-radius:18px;padding:16px 22px;margin-bottom:12px}
.qa summary{font-family:var(--font-display);font-weight:800;font-size:1.2rem;cursor:pointer}
.qa p{margin:10px 0 0}
.tile{position:absolute;inset:0;display:grid;place-items:center;font-size:4.5rem}
.tile.t0{background:linear-gradient(135deg,#ffe3f0,#ffd1a1)}.tile.t1{background:linear-gradient(135deg,#d8f2fd,#c4b5fd)}
.tile.t2{background:linear-gradient(135deg,#fff3cf,#a8e063)}.tile.t3{background:linear-gradient(135deg,#d8f2fd,#6fdcae)}

/* ---------- Header extras ---------- */
.sticker-btn{display:inline-flex;align-items:center;gap:4px;height:46px;padding:0 14px;border-radius:999px;background:#fff;border:3px solid var(--sun);font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:var(--ink);text-decoration:none;flex:none;box-shadow:0 4px 0 var(--sun-d)}
.sticker-btn:hover{transform:translateY(-2px)}
.sticker-btn.bump{animation:bump .6s}
@keyframes bump{30%{transform:scale(1.35) rotate(-8deg)}60%{transform:scale(.95)}}
@media (max-width:860px){.sticker-btn{padding:0 10px}}

/* ---------- Song cards & song pages ---------- */
a.vthumb{display:block}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--pink-d)}
.song-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 6px}
.song-meta{color:var(--ink-2);font-weight:700;margin:6px 0 0}
.about-song p{margin:0 0 1em}

/* ---------- Toasts (sticker earned) ---------- */
.toast{position:fixed;left:50%;bottom:24px;z-index:1000;transform:translate(-50%,160%);background:#fff;border-radius:28px;padding:14px 22px 14px 14px;display:flex;align-items:center;gap:14px;box-shadow:0 14px 40px rgba(29,50,96,.3);border:4px solid var(--sun);transition:transform .45s cubic-bezier(.3,1.6,.5,1);max-width:92vw}
.toast.show{transform:translate(-50%,0)}
.toast .big{font-size:3rem;line-height:1;animation:spin 1s ease-out}
@keyframes spin{from{transform:rotate(-200deg) scale(.2)}to{transform:none}}
.toast b{display:block;font-family:var(--font-display);font-size:1.2rem}
.toast small{color:var(--ink-2);font-weight:700}

/* ---------- Sticker book ---------- */
.stickers{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px}
.sticker{background:#fff;border-radius:26px;padding:18px 12px;text-align:center;box-shadow:var(--shadow);position:relative}
.sticker .e{font-size:3.6rem;line-height:1.1;display:block;transition:transform .3s}
.sticker:hover .e{transform:scale(1.15) rotate(-8deg)}
.sticker b{display:block;font-family:var(--font-display);font-size:1.1rem;margin-top:8px}
.sticker small{display:block;color:var(--ink-2);font-size:.85rem;line-height:1.3;margin-top:4px}
.sticker.locked .e{filter:grayscale(1) brightness(1.6) contrast(.4);opacity:.45}
.sticker.locked b{color:#9aa3b8}
.sticker.got{border:4px solid var(--sun)}
.sticker.got::after{content:"✓";position:absolute;top:10px;right:12px;background:var(--mint);color:#fff;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800}
.progress{height:22px;background:#fff;border-radius:999px;overflow:hidden;box-shadow:inset 0 3px 0 rgba(0,0,0,.06);max-width:520px;margin:10px auto 0}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--sun),var(--pink));border-radius:999px;transition:width .6s}

/* ---------- Online coloring ---------- */
.color-app{display:grid;grid-template-columns:1fr 250px;gap:22px;align-items:start}
.canvas-wrap{background:#fff;border-radius:24px;padding:10px;box-shadow:var(--shadow);position:relative}
.canvas-wrap canvas{width:100%;height:auto;display:block;border-radius:14px;touch-action:manipulation;cursor:crosshair}
.canvas-wrap .loading{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:1.4rem}
.tools{background:#fff;border-radius:24px;padding:18px;box-shadow:var(--shadow);position:sticky;top:96px}
.tools .palette{grid-template-columns:repeat(5,1fr);gap:8px}
.tools .row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.tools .row2 .btn{justify-content:center;font-size:.95rem;padding:10px 8px}
.tool-on{outline:4px solid var(--ink);outline-offset:2px}
.current{display:flex;align-items:center;gap:10px;font-weight:800;margin-bottom:12px}
.current i{width:34px;height:34px;border-radius:50%;border:3px solid var(--ink);display:inline-block}
@media (max-width:820px){.color-app{grid-template-columns:1fr}.tools{position:static}.tools .palette{grid-template-columns:repeat(9,1fr)}}
.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.pick-grid a{background:#fff;border-radius:18px;padding:8px;box-shadow:0 5px 0 rgba(29,50,96,.1);text-decoration:none;color:var(--ink);font-weight:800;text-align:center;transition:transform .2s}
.pick-grid a:hover{transform:translateY(-4px) rotate(-1deg)}
.pick-grid img{border-radius:12px;aspect-ratio:1024/791;object-fit:cover;width:100%}
#print-art{display:none}
@media print{body *{visibility:hidden}#print-art,#print-art *{visibility:visible}#print-art{position:fixed;inset:0;display:block!important}#print-art img{width:100%}}

/* ---------- Freeze dance ---------- */
.dance-floor{position:relative;background:radial-gradient(circle at 50% 40%,#ffe3f0,#d8f2fd 60%,#c4b5fd);border-radius:28px;min-height:380px;display:grid;place-items:center;overflow:hidden}
.dance-floor .mascot{width:min(260px,60vw);position:relative;z-index:1}
.mascot.dance{animation:dance .46s ease-in-out infinite alternate}
@keyframes dance{0%{transform:rotate(-10deg) translateY(0) scale(1,1)}100%{transform:rotate(10deg) translateY(-26px) scale(1.04,.96)}}
.mascot.frozen{filter:saturate(.6) brightness(1.15) drop-shadow(0 0 18px #9be7ff)}
.freeze-word{position:absolute;z-index:2;font-family:var(--font-display);font-weight:800;font-size:clamp(3rem,12vw,6rem);color:#fff;-webkit-text-stroke:4px var(--sky-d);text-shadow:0 8px 0 var(--sky-d);opacity:0;transform:scale(.3);transition:all .25s cubic-bezier(.3,1.6,.5,1);pointer-events:none}
.freeze-word.show{opacity:1;transform:scale(1) rotate(-6deg)}
.disco{position:absolute;inset:-50%;pointer-events:none;opacity:0;transition:opacity .3s;background:conic-gradient(from 0deg,rgba(236,61,143,.22),rgba(94,200,242,.22),rgba(255,201,60,.22),rgba(111,220,174,.22),rgba(236,61,143,.22));animation:twirl 4s linear infinite}
.dance-floor.on .disco{opacity:1}
@keyframes twirl{to{transform:rotate(360deg)}}

/* ---------- Animal quiz ---------- */
.quiz-q{text-align:center;font-family:var(--font-display);font-size:clamp(1.6rem,5vw,2.4rem);margin:6px 0 18px}
.quiz-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:620px;margin:0 auto}
.quiz-opt{aspect-ratio:1;border:0;border-radius:28px;background:var(--sky-l);font-size:clamp(3.4rem,14vw,6rem);cursor:pointer;box-shadow:0 8px 0 rgba(29,50,96,.15);transition:transform .15s}
.quiz-opt:hover{transform:translateY(-4px)}
.quiz-opt.right{background:#d9f7ea;box-shadow:0 8px 0 var(--mint);animation:bump .6s}
.quiz-opt.wrong{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}
.quiz-fact{max-width:620px;margin:20px auto 0;background:var(--sky-l);border-radius:20px;padding:14px 20px;font-weight:700;text-align:center}
.quiz-fact[hidden]{display:none}

/* ---------- Dress up ---------- */
.dressup{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;align-items:center}
.dressup .mascot{width:min(300px,70vw);margin:0 auto;display:block}
.closet h3{margin:14px 0 8px;font-size:1.15rem}
.closet .opts{display:flex;flex-wrap:wrap;gap:8px}
.closet .opts button{width:58px;height:58px;border-radius:18px;border:3px solid var(--sky-l);background:#fff;font-size:1.8rem;cursor:pointer;transition:transform .15s;display:grid;place-items:center;padding:0}
.closet .opts button svg{width:44px;height:44px}
.closet .opts button:hover{transform:scale(1.08)}
.closet .opts button[aria-pressed="true"]{border-color:var(--pink);background:#ffe3f0}
@media (max-width:760px){.dressup{grid-template-columns:1fr}}

/* ---------- Sing-along overlay ---------- */
.karaoke{position:fixed;inset:0;z-index:900;background:linear-gradient(160deg,#2a1f6e,#1d3260 60%,#14224a);color:#fff;display:none;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.karaoke.open{display:flex}
.karaoke .mascot{width:110px;position:absolute;top:18px;left:18px}
.karaoke .close{position:absolute;top:18px;right:18px}
.k-lines{max-width:900px}
.k-line{font-family:var(--font-display);font-weight:800;line-height:1.2;transition:all .35s;margin:.25em 0}
.k-line.prev,.k-line.next{font-size:clamp(1.1rem,3vw,1.6rem);opacity:.4}
.k-line.now{font-size:clamp(2rem,7vw,4rem);color:var(--sun);text-shadow:0 6px 0 rgba(0,0,0,.25);animation:pop-in .4s}
@keyframes pop-in{from{transform:scale(.8);opacity:.3}}
.k-controls{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:34px}
.k-bar{width:min(600px,80vw);height:10px;border-radius:9px;background:rgba(255,255,255,.2);margin-top:24px;overflow:hidden}
.k-bar i{display:block;height:100%;background:var(--sun);transition:width .3s}

/* ---------- Read to me ---------- */
.read-btn{margin-bottom:16px}
.prose .reading{background:#fff3cf;border-radius:10px;box-shadow:0 0 0 6px #fff3cf}

/* ---------- Today's surprise ---------- */
.gift{display:block;margin:0 auto;border:0;background:none;cursor:pointer;font-size:7rem;line-height:1;animation:wiggle 1.6s ease-in-out infinite}
@keyframes wiggle{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg) scale(1.05)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}}
.surprise{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
.surprise[hidden]{display:none}
.surprise .card{animation:pop-in .5s backwards}
.surprise .card:nth-child(2){animation-delay:.12s}.surprise .card:nth-child(3){animation-delay:.24s}
.fact-card .vthumb{display:grid;place-items:center;font-size:5rem;background:linear-gradient(135deg,#fff3cf,#ffe3f0)}

/* ---------- Bedtime ---------- */
body.night{background:#0f1838;color:#e6ecff}
body.night .top{background:rgba(15,24,56,.9);border-bottom-color:rgba(255,255,255,.15)}
body.night .nav a,body.night .logo{color:#e6ecff}
body.night .nav a:hover,body.night .nav a[aria-current="page"]{background:rgba(255,255,255,.1)}
body.night .phero{background:transparent}
body.night .phero p,body.night .crumbs,body.night .crumbs a{color:#b9c4ea}
body.night .card,body.night .game-panel,body.night .listen{background:#1b2754;color:#e6ecff}
body.night .card p,body.night .game-panel .sub{color:#b9c4ea}
@media (max-width:860px){body.night .nav{background:#0f1838}}
.stars{position:fixed;inset:0;pointer-events:none;z-index:0}
.stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;animation:twinkle 3s ease-in-out infinite}
@keyframes twinkle{50%{opacity:.2;transform:scale(.6)}}
body.night main{position:relative;z-index:1}
.moon-stage{display:grid;place-items:center;position:relative;min-height:300px}
.mascot.sleepy .lid{animation:none;transform:scaleY(1)}
.mascot.sleepy .mouth-o{transform:scale(.6);transform-origin:200px 285px}
.mascot.sleepy .body{animation:breathe 4s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.04,.98)}}
.zzz{position:absolute;font-family:var(--font-display);font-weight:800;color:#c4b5fd;font-size:2rem;animation:zz 3s ease-out infinite;opacity:0}
@keyframes zz{0%{opacity:0;transform:translate(0,0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translate(60px,-120px) scale(1.4)}}
.timer-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:14px 0}
.timer-left{font-family:var(--font-display);font-size:2.2rem;text-align:center;color:var(--sun);min-height:1.3em}
.nightlight{position:fixed;inset:0;z-index:950;display:none;place-items:center;cursor:pointer;animation:glow 18s ease-in-out infinite alternate;background:radial-gradient(circle at 50% 45%,#8b6cf0 0%,#2a1f6e 45%,#05081a 100%)}
.nightlight.open{display:grid}
@keyframes glow{0%{filter:hue-rotate(0deg) brightness(.8)}50%{filter:hue-rotate(90deg) brightness(1)}100%{filter:hue-rotate(200deg) brightness(.75)}}
.nightlight p{position:absolute;bottom:24px;color:rgba(255,255,255,.6);font-weight:700}
.goodnight{position:fixed;inset:0;z-index:960;background:#05081a;color:#e6ecff;display:none;place-items:center;text-align:center;font-family:var(--font-display);font-size:clamp(2rem,6vw,3.4rem)}
.goodnight.open{display:grid}

/* ---------- Seasonal ---------- */
.season-banner[hidden]{display:none}
.season-banner .sec-head h2,.season-banner .sec-head p{color:#fff}
.season-deco{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.season-deco span{position:absolute;font-size:1.8rem;opacity:.85;animation:drift-down linear infinite}
@keyframes drift-down{from{transform:translateY(-60px) rotate(0)}to{transform:translateY(900px) rotate(360deg)}}
html[data-season="halloween"] .season-deco span{animation-name:flap}
@keyframes flap{0%{transform:translate(-15vw,0) scaleX(1)}25%{transform:translate(25vw,-30px) scaleX(.6)}50%{transform:translate(55vw,10px) scaleX(1)}75%{transform:translate(85vw,-20px) scaleX(.6)}100%{transform:translate(115vw,0) scaleX(1)}}
.mascot.sleepy [data-acc^="eyes"]{display:none!important}
.feature > *{min-width:0}
@media (max-width:420px){.logo{font-size:1.5rem;gap:6px}.logo img{width:42px;height:42px}.sticker-btn{height:42px;padding:0 9px;font-size:1rem}.sound-btn,.menu-btn{width:42px;height:42px}.top .wrap{gap:8px;padding:0 12px}}
.spotify-facade{flex:1;min-height:352px;border-radius:16px;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;background:linear-gradient(135deg,#1db954,#127a3a);color:#fff;padding:20px}
.spotify-facade p{margin:0;opacity:.9;font-weight:700}
.spotify-facade .btn{background:#fff;color:#127a3a;box-shadow:0 6px 0 rgba(0,0,0,.25)}
.listen iframe{min-height:352px}
.lead-text{font-size:1.25rem;font-weight:700;color:var(--ink)}
.quick-facts{background:var(--sky-l);border-radius:24px;padding:18px 22px;margin:20px 0 26px}
.quick-facts h2{margin-top:0;font-size:1.5rem}
.quick-facts dl{display:grid;gap:8px;margin:0}
.quick-facts dl div{display:grid;grid-template-columns:130px 1fr;gap:12px;background:#fff;border-radius:14px;padding:10px 14px}
.quick-facts dt{font-family:var(--font-display);font-weight:800;color:var(--sky-d)}
.quick-facts dd{margin:0}
@media (max-width:520px){.quick-facts dl div{grid-template-columns:1fr;gap:2px}}
.prose ol.facts li{padding:4px 0}
