/* Astor Kids on the course template (v9.2.24). Same palette, type, hairlines and easing as the course pages.
   Kids rules: one item per line at every width, big tap targets (>=56px), generous type, no sound. */
body.kids-course{--kgap:var(--s3)}
body.kids-course .tools,body.kids-course #tocbtn .sub,body.kids-course #tocbtn .mono[aria-hidden],body.kids-course .cm-wrap,body.kids-course .endsec .links,body.kids-course .era-head .mono,body.kids-course .bi,body.kids-course .rank{display:none!important}
body.kids-course .crumb{font-size:15px;min-height:44px;display:inline-flex;align-items:center}
body.kids-course .intro h1{font-size:clamp(3.4rem,11vw,6.5rem)}
body.kids-course .intro .subtitle{font-size:clamp(1.4rem,3.4vw,1.9rem);color:var(--fg)}
body.kids-course .era-title{font-size:clamp(2.2rem,6vw,3.4rem)}
body.kids-course .era-hook{font-size:1.45rem;color:var(--fg)}
body.kids-course .bh{font-size:clamp(1.7rem,4.6vw,2.3rem);line-height:1.15}
body.kids-course .bp{font-size:1.4rem;line-height:1.45;color:var(--fg)}
body.kids-course .beat{margin-bottom:var(--s2)}
/* the activity block: same hairline card as course toys, centered in the reading column */
.kact{grid-column:2/4;justify-self:center;width:100%;max-width:38rem;box-sizing:border-box;margin:var(--s2) auto var(--s5);padding:var(--s4);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:14px;
 background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,transparent),color-mix(in srgb,var(--accent) 3%,transparent));box-shadow:0 1px 0 rgba(255,255,255,.03) inset,0 18px 40px -28px rgba(0,0,0,.8);display:flex;flex-direction:column;align-items:center;gap:var(--s3)}
@media (max-width:800px){.kact{grid-column:2;padding:var(--s3)}}
.kact-in{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--s3)}
.kshow{display:flex;flex-direction:column;align-items:center;gap:var(--s2);width:100%}
.kshow p{margin:0;font-size:1.6rem;line-height:1.3;text-align:center}
.kpic{width:112px;height:112px;display:block}
.kpic .f1,.kmouth .f1{fill:color-mix(in srgb,var(--accent) 22%,var(--bg-3));stroke:var(--accent);stroke-width:1.6}
.kpic .f2{fill:color-mix(in srgb,var(--accent) 40%,var(--bg-2));stroke:var(--accent);stroke-width:1.4}
.kpic .ln,.kmouth .ln{fill:none;stroke:var(--fg-2);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.kpic .ln0{fill:none;stroke:var(--rule-2);stroke-width:1.4}
.kpic .dk,.kmouth .dk{fill:#1a1416}
.kpic .tq,.kmouth .tq{fill:var(--tq)}
.kpic .tqln,.kmouth .tqln{fill:none;stroke:var(--tq);stroke-width:2;stroke-linecap:round}
.kmouth{margin:0}.kmouth svg{width:120px;height:120px;display:block}
.kmouth .ln2{fill:none;stroke:#1a1416;stroke-width:4;stroke-linecap:round}.kmouth .wt{fill:#f4efe6}
.kpip{width:72px;height:auto;display:block}
.kpipbig{width:180px;height:190px;overflow:visible}
.kpipbig svg{width:100%;height:100%;overflow:visible}
/* one per line */
.kopts,.kblend,.kbook,.kdotrow{display:flex;flex-direction:column;align-items:center;gap:var(--s2);width:100%}
.kopt,.kbtn{appearance:none;-webkit-appearance:none;font:inherit;color:var(--fg);min-height:64px;min-width:min(100%,15rem);padding:var(--s2) var(--s4);border:1px solid var(--rule-2);border-radius:12px;background:var(--bg-2);
 display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);cursor:pointer;transition:border-color .35s var(--ease),background .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease);box-shadow:0 1px 0 rgba(255,255,255,.04) inset}
.kopt:hover,.kbtn:hover{border-color:var(--accent);transform:translateY(-1px)}
.kopt:focus-visible,.kbtn:focus-visible{outline:2px solid var(--tq);outline-offset:3px}
.kopt .kpic{width:84px;height:84px}
.kopt.is-ok,.kbtn.is-ok{border-color:var(--tq);background:color-mix(in srgb,var(--tq) 16%,var(--bg-2))}
.kopt.is-no,.kbtn.is-no{animation:kno .45s var(--ease)}
@keyframes kno{20%{transform:translateX(-5px)}45%{transform:translateX(5px)}70%{transform:translateX(-3px)}}
.knum,.kbig{font-family:var(--mono);font-size:2.4rem;line-height:1;margin:0}
.ktap{position:relative}.ktap-n{font-family:var(--mono);font-size:1.6rem;min-width:1.2em}
.kl{font-family:Fraunces,Georgia,serif;font-size:2.6rem;min-width:6rem}
.kword{font-family:Fraunces,Georgia,serif;font-size:2.4rem!important}
.kline{font-family:Fraunces,Georgia,serif;font-size:2rem;margin:0}
.kdots{width:120px;height:auto}.kdots circle{fill:var(--accent)}
.kflash.is-hid{visibility:hidden;height:0;overflow:hidden}
.kdotrow svg{width:120px;height:auto}.kdotrow circle,.kdotrow rect{fill:var(--accent)}
.ktrace svg{width:200px;height:200px;display:block;touch-action:none;cursor:crosshair}
.kt-guide{fill:none;stroke:var(--rule-2);stroke-width:14;stroke-linecap:round;stroke-linejoin:round}
.kt-ink{fill:none;stroke:var(--tq);stroke-width:10;stroke-linecap:round;stroke-linejoin:round;transition:stroke-dashoffset .2s var(--ease)}
.kstar{width:40px;height:40px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round}
.is-ok .kstar,.kact-yay .kstar{fill:var(--tq);stroke:var(--tq)}
.kact-yay{display:flex;align-items:center;gap:var(--s2);margin:0;font-size:1.6rem;color:var(--fg)}
.kact-yay[hidden],.kact-next[hidden]{display:none}
.kact-next svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kact-next{min-width:5rem}
.kbeat{display:flex;flex-direction:column;align-items:center;gap:var(--s3)}
.kbeat-pip{animation:kbob 900ms cubic-bezier(.45,0,.55,1) infinite;transform-origin:50% 100%}
@keyframes kbob{0%,100%{transform:translateY(0) scale(1.04,.96)}50%{transform:translateY(-10px) scale(.98,1.02)}}
.kring{border-radius:50%;width:88px;height:88px;min-width:88px;padding:0}
/* the old game engine, restyled in Astor's hand */
.kact .kids-game{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--s3);text-align:center;font-size:1.3rem}
.kact .kids-gt,.kact .kids-prompt:empty,.kact .kids-hint,.kact .kids-src{display:none!important}
.kact .kids-chs,.kact .kids-btnrow,.kact .kids-row{display:flex;flex-direction:column;align-items:center;gap:var(--s2);width:100%}
.kact .kids-c,.kact .kids-btn,.kact .kids-swatch,.kact .kids-cell{appearance:none;font:inherit;color:var(--fg);min-height:64px;min-width:min(100%,15rem);padding:var(--s2) var(--s4);border:1px solid var(--rule-2);border-radius:12px;background:var(--bg-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);transition:border-color .35s var(--ease),background .35s var(--ease)}
.kact .kids-c:hover,.kact .kids-btn:hover{border-color:var(--accent)}
.kact .kids-ok{border-color:var(--tq)!important;background:color-mix(in srgb,var(--tq) 16%,var(--bg-2))!important}
.kact .kids-no{animation:kno .45s var(--ease)}
.kact .kids-big-num,.kact .kids-xl,.kact .kids-big{font-family:var(--mono);font-size:2.4rem;color:var(--fg)}
.kact .kids-vis svg,.kact .kids-c svg{max-width:100%;height:auto}
.kact .kids-vis{display:flex;flex-direction:column;align-items:center;gap:var(--s2)}
.kact svg circle:not([class]),.kact svg ellipse:not([class]){fill:var(--accent)}
.kact .kl-hair{stroke:var(--rule-2);fill:none}.kact .kl-pulse{fill:var(--accent)}
.kact .kl-bounce{fill:var(--tq);animation:klb 1s ease-in-out infinite alternate}@keyframes klb{to{transform:translateY(-40px)}}
.kact .kids-cheer,.kact .kids-stars{color:var(--tq);font-size:1.4rem}
.kact .kids-canvas{width:100%;max-width:26rem;min-height:260px;border:1px solid var(--rule-2);border-radius:12px;background:var(--bg-2)}
.kact .kids-anim{display:flex;flex-direction:column;align-items:center}
/* Pip (drawn SVG): never clipped, natural hop, full blink */
[data-kpip]{overflow:visible}
.kids-pip-body{animation:kids-hop 2.6s cubic-bezier(.45,0,.55,1) infinite;transform-box:fill-box;transform-origin:50% 100%}
.kids-pip-eye{animation:kids-blink 4.2s infinite;transform-box:fill-box;transform-origin:50% 50%}
.kids-pip-arm{animation:kids-wave 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:10% 90%}
@keyframes kids-hop{0%{transform:translateY(0) scale(1,1)}14%{transform:translateY(0) scale(1.035,.965)}44%{transform:translateY(-5%) scale(.975,1.025)}58%{transform:translateY(-5.6%) scale(.985,1.015)}78%{transform:translateY(0) scale(1.04,.96)}90%,100%{transform:translateY(0) scale(1,1)}}
@keyframes kids-blink{0%,92%,100%{transform:scaleY(1)}95%,97%{transform:scaleY(0)}}
@keyframes kids-wave{0%,100%{transform:rotate(0)}50%{transform:rotate(-8deg)}}
@media (prefers-reduced-motion:reduce){.kids-pip-body,.kids-pip-eye,.kids-pip-arm,.kbeat-pip,.kact .kl-bounce{animation:none!important}.kopt,.kbtn{transition:none}}
/* specificity guard against course.css element rules */
body .kact p.kbig,body .kact .knum{font-family:var(--mono)!important;font-size:2.4rem!important;line-height:1.1!important;margin:0!important;color:var(--fg)!important}
body .kact .kshow p,body .kact p.kword,body .kact p.kline{font-size:2rem!important;line-height:1.25!important;margin:0!important;color:var(--fg)!important;font-family:Fraunces,Georgia,serif!important;font-weight:300}
body .kact .kopt,body .kact .kbtn,body .kact .kids-c,body .kact .kids-btn{min-width:min(100%,16rem)!important;min-height:64px!important;font-size:1.5rem!important}
body .kact .kring{min-width:88px!important;width:88px!important;height:88px!important}
body .kact .kopt .knum{font-size:2.2rem!important}
body .kact .kact-yay span{font-size:1.6rem}
/* v9.2.27 kids fix: cards always show art + label (no reveal gate; kids home has no landing.js to add .in) */
.kids-home section.course .c-art .tex{clip-path:none!important;-webkit-clip-path:none!important}
.kids-home section.course .c-txt,.kids-home section.course .c-txt *{opacity:1!important;transform:none!important;visibility:visible!important}
/* clay Pip (raster): gentle bob only, no blink */
.kpipclay{width:180px;height:auto;margin:0 auto;display:block}
.kpipclay img{width:100%;height:auto;display:block;animation:kids-clay-bob 3.2s ease-in-out infinite;transform-origin:50% 100%}
@keyframes kids-clay-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.kpipclay img{animation:none}}
/* tapped / right / wrong states: original kids palette (v9.2.23 kids.css) */
body.kids-course .kopt.is-ok,body.kids-course .kbtn.is-ok,.kact .kids-ok{background:#c9f5d4!important;border-color:#3fbf5f!important;color:#2b2f4a!important;box-shadow:0 5px 0 #7fd393}
body.kids-course .kopt.is-no,body.kids-course .kbtn.is-no,.kact .kids-no{background:#ffe1e1!important;border-color:#ff6fa5!important;color:#2b2f4a!important}
.is-ok .kstar,.kact-yay .kstar{fill:#ffc93c;stroke:#ff8a3d}

/* v9.2.27: clay Pip mouth pictures for a, m, s, t (same frame for all four) */
.kmouth-pip{margin:0 auto 10px;width:min(320px,84vw);background:#fbf1e1;border-radius:22px;overflow:hidden;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent),0 8px 22px -12px rgba(0,0,0,.45)}
.kmouth-pip img{display:block;width:100%;height:auto}
/* v9.2.30 character animation */
.ka{position:relative}
.ka img,.ka video{width:100%;height:auto;display:block;animation:none!important;background:transparent}
.ka .ka-clip{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.kpipclay.ka{aspect-ratio:1/1}
.ka .ka-still{width:100%;height:100%;object-fit:contain}
.kpip-hdr{width:160px;aspect-ratio:1/1;cursor:pointer}

/* v9.2.30a: the kids site has one (light) mode only */
:root{color-scheme:only light}

/* v9.2.32 Science opener: predict, test, see (sink or float) */
.kp{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.kp-step{margin:0;font:700 12px/1 Nunito,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#9a8a6c}
.kp-q{margin:0;font:700 clamp(22px,4.6vw,30px)/1.2 "Fredoka Kids",Nunito,sans-serif;color:#2b2f4a}
.kp-stage{width:min(100%,420px)}.kp-tank{display:block;width:100%;height:auto;overflow:visible}
.kp-drop{transition:transform 1s cubic-bezier(.45,.05,.3,1)}
.kp-drop .kp-obj{animation:kpHover 1.6s ease-in-out infinite}
@keyframes kpHover{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.kp.is-rev.kp-float .kp-drop{transform:translate(160px,72px)}
.kp.is-rev.kp-float .kp-drop .kp-obj{animation:kpBob 1.8s ease-in-out 1s infinite}
.kp.is-rev.kp-sink .kp-drop{transform:translate(160px,182px);transition-duration:1.3s}
.kp.is-rev.kp-sink .kp-drop .kp-obj{animation:none}
@keyframes kpBob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(4px) rotate(3deg)}}
.kp-bub{animation:kpBub 2.4s ease-in infinite}@keyframes kpBub{0%{transform:translateY(0);opacity:0}20%{opacity:.7}100%{transform:translateY(-100px);opacity:0}}
.kp-wave{animation:kpWave 3s ease-in-out infinite}@keyframes kpWave{50%{transform:translateX(-6px)}}
.kp-opts{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:min(100%,420px)}
.kp-opt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px 14px;border:0;border-radius:24px;cursor:pointer;font:700 24px/1 "Fredoka Kids",Nunito,sans-serif;color:#1f4f7a;background:radial-gradient(120% 130% at 30% 15%,#fffdf7 0%,#fbf3e3 60%,#f1e4cb 100%);box-shadow:inset 0 2px 2px rgba(255,255,255,.95),inset 0 -3px 5px rgba(150,120,80,.16),0 6px 0 #e2d2b2,0 14px 20px -10px rgba(80,60,40,.4);transition:transform .12s}
.kp-opt:active{transform:translateY(4px)}.kp-opt:focus-visible{outline:3px solid #2fb5c9;outline-offset:4px}
.kp-mini{width:100%;max-width:150px;height:auto}
.kp-opt:disabled{cursor:default;opacity:.55}
.kp-opt.is-ans{opacity:1;box-shadow:0 0 0 4px #3fbf5f,0 6px 0 #e2d2b2}
.kp-opt.is-guess{opacity:.8}
.kp-say{min-height:1.4em;margin:4px 0 0;font:600 19px/1.45 Nunito,sans-serif;color:#2b2f4a;max-width:30em;position:relative}
.kp-say b{color:#1f6f78}
.kp-next{margin-top:4px}
@media (prefers-reduced-motion:reduce){.kp-drop,.kp-drop .kp-obj,.kp-bub,.kp-wave{animation:none!important;transition:opacity .3s!important}}
/* v9.2.33 distinct leaves for Same or different? */
.kleaves{display:flex;align-items:flex-end;justify-content:center;gap:clamp(16px,6vw,48px);flex-wrap:wrap}
.kleaves figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}
.kleaves svg{display:block;height:auto;max-width:42vw}
.kleaves figcaption{font:700 17px/1.2 "Fredoka Kids",Nunito,sans-serif;color:#2b2f4a}
