@font-face{font-family:'Fredoka';font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/fredoka-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/fredoka-latin.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-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/nunito-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/nunito-latin.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{--green:#3E8E41;--green-d:#2C6B30;--forest:#1E4A2A;--forest-d:#163821;--cream:#FFFBF3;--cream2:#FFF3DF;--ink:#24322A;--ink2:#4C5A51;--berry:#E5426F;--orange:#FF8A1F;--sun:#FFC734;--sky:#38A6E8;--lilac:#8C6FE0;--c1:#DCF0D2;--c2:#D6ECFA;--c3:#FFE2CA;--c4:#FFDCE7;--c5:#FFF0B8;--c6:#E8E0FA;--r:24px;--shadow:0 10px 30px rgba(30,74,42,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.6 Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--green-d)}
h1,h2,h3,.display{font-family:Fredoka,"Baloo 2",system-ui,sans-serif;font-weight:700;line-height:1.05;margin:0 0 .4em;color:var(--forest);letter-spacing:-.01em}
h2{font-size:clamp(34px,5vw,58px)}
h3{font-size:clamp(22px,2.4vw,28px)}
p{margin:0 0 1em}
section[id],[id].anchor{scroll-margin-top:80px}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.kicker{display:inline-block;font:600 15px/1.2 Fredoka,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--berry);margin-bottom:12px}
.lead{font-size:clamp(18px,1.6vw,20px);color:var(--ink2);max-width:640px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 14px;border-radius:8px;z-index:100}.skip:focus{left:8px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 18px/1 Fredoka,system-ui,sans-serif;padding:16px 28px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;min-height:52px;text-align:center}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(2px)}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.btn-green{background:var(--green);color:#fff;box-shadow:0 6px 0 var(--green-d)}
.btn-sun{background:var(--sun);color:var(--forest);box-shadow:0 6px 0 #D9A21A}
.btn-white{background:#fff;color:var(--forest);box-shadow:0 6px 0 #D8E3D3}
.btn-berry{background:var(--berry);color:#fff;box-shadow:0 6px 0 #B52B53}
.btn-sm{font-size:17px;padding:12px 20px;min-height:46px}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,251,243,.94);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid rgba(30,74,42,.08)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.logo img{height:52px;width:auto}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font:600 17px/1 Fredoka,system-ui,sans-serif;color:var(--forest);text-decoration:none;padding:8px 0;border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current]{border-bottom-color:var(--sun)}
.nav .btn{padding:12px 20px;min-height:46px;color:#fff;border:0}
.burger{display:none;width:48px;height:48px;border:0;border-radius:14px;background:var(--c1);cursor:pointer;align-items:center;justify-content:center}
.burger span,.burger span::before,.burger span::after{display:block;width:22px;height:3px;border-radius:2px;background:var(--forest);position:relative;content:""}
.burger span::before{position:absolute;top:-7px}.burger span::after{position:absolute;top:7px}
#mnav{display:none}
@media (max-width:960px){.nav{display:none}.burger{display:flex}
 #mnav.open{display:block;position:fixed;inset:72px 0 auto 0;background:var(--cream);padding:12px 20px 24px;box-shadow:0 20px 40px rgba(0,0,0,.12);z-index:49}
 #mnav a{display:block;font:600 22px/1 Fredoka,system-ui,sans-serif;color:var(--forest);text-decoration:none;padding:16px 4px;border-bottom:1px solid rgba(30,74,42,.1)}
 #mnav .btn{margin-top:16px;width:100%;color:#fff;border:0}}
/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#BFE6FB 0%,#DDF2FD 45%,#FFF6DE 100%);padding:56px 0 120px}
.hero .wrap{display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:24px;position:relative;z-index:2}
.hero h1{font-size:clamp(44px,5.2vw,74px);margin-bottom:18px}
.hero h1 em{font-style:normal;color:var(--green);display:block}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--sun);color:var(--forest);font:700 15px/1.2 Fredoka,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:9px 16px;border-radius:999px;margin-bottom:20px}
.ctas{display:flex;flex-wrap:wrap;gap:16px;margin:26px 0 22px}
.price-note{display:flex;align-items:center;gap:10px;color:var(--ink2);font-size:16px}
.price-note b{color:var(--forest)}
@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-16px) rotate(1deg)}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-12px) rotate(4deg)}}
.hill{position:absolute;left:0;right:0;bottom:-2px;z-index:1;height:110px;background:var(--cream);clip-path:ellipse(75% 100% at 50% 100%)}
@media (max-width:860px){.hero{padding:20px 0 90px}.hero .wrap{grid-template-columns:1fr;gap:18px}.visual{order:-1;margin:6px 0 4px}.hero h1{font-size:44px}.ctas .btn{flex:1 1 100%}}
/* trust strip */
.trust{background:var(--forest);color:#fff}
.trust ul{list-style:none;padding:18px 20px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 34px;max-width:1200px;margin:0 auto}
.trust li{display:flex;align-items:center;gap:10px;font:600 16px/1.3 Fredoka,system-ui,sans-serif}
.trust .ic{width:30px;height:30px;border-radius:50%;background:var(--sun);color:var(--forest);display:inline-flex;align-items:center;justify-content:center;font-size:16px;flex:none}
/* sections */
.sec{padding:88px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.sec-head p{margin:0}
/* friends rail */
.friends{background:linear-gradient(180deg,var(--cream) 0%,#F4FAEF 100%)}
.rail-wrap{position:relative}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,260px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 20px 26px;margin:0 -20px;scrollbar-width:thin;overscroll-behavior-x:contain}
.fcard{scroll-snap-align:start;border-radius:var(--r);padding:18px 18px 20px;position:relative;box-shadow:0 6px 0 rgba(30,74,42,.08);transition:transform .2s ease;display:flex;flex-direction:column;min-height:400px}
.fcard:hover{transform:translateY(-6px) rotate(-1deg)}
.fcard:nth-child(6n+1){background:var(--c1)}.fcard:nth-child(6n+2){background:var(--c2)}.fcard:nth-child(6n+3){background:var(--c3)}.fcard:nth-child(6n+4){background:var(--c4)}.fcard:nth-child(6n+5){background:var(--c5)}.fcard:nth-child(6n+6){background:var(--c6)}
.fcard .pic{height:210px;display:flex;align-items:center;justify-content:center}
.fcard .pic img{max-height:200px;width:auto;transition:transform .3s ease}
.fcard:hover .pic img{transform:scale(1.06) rotate(3deg)}
.fcard h3{font-size:24px;margin:10px 0 2px}
.fcard .where{font:600 16px/1.3 Nunito,sans-serif;color:var(--ink2);margin-bottom:10px}
.fcard .fact{font-size:16px;line-height:1.45;color:var(--ink);background:rgba(255,255,255,.7);border-radius:16px;padding:10px 12px;margin-top:auto;display:none}
.fcard.show .fact{display:block}
.fcard .flip{margin-top:auto;align-self:flex-start;background:#fff;border:0;border-radius:999px;padding:10px 16px;font:600 16px/1 Fredoka,system-ui,sans-serif;color:var(--forest);cursor:pointer;min-height:44px}
.fcard.show .flip{margin-top:10px}
.rail-btn{position:absolute;top:44%;z-index:3;width:54px;height:54px;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow);font:700 24px/1 Fredoka,sans-serif;color:var(--forest);cursor:pointer}
.rail-btn.prev{left:-12px}.rail-btn.next{right:-12px}
@media (max-width:760px){.rail-btn{display:none}.rail{grid-auto-columns:76%}}
/* books */
.books{background:#fff}
.bk-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.bk{background:var(--cream);border-radius:20px;padding:12px 12px 16px;display:flex;flex-direction:column;box-shadow:0 4px 0 rgba(30,74,42,.06);position:relative}
.bk img{border-radius:12px;aspect-ratio:2/3;object-fit:cover;width:100%;background:#eee}
.bk .no{font:600 15px/1 Fredoka,sans-serif;color:var(--berry);margin:12px 0 4px;letter-spacing:.06em;text-transform:uppercase}
.bk h3{font-size:19px;line-height:1.15;margin:0 0 4px}
.bk .ct{font-size:15px;color:var(--ink2);margin:0 0 12px}
.bk .btn{margin-top:auto;width:100%}
.bk .ribbon{position:absolute;top:-10px;left:-8px;background:var(--sun);color:var(--forest);font:700 15px/1 Fredoka,sans-serif;padding:8px 12px;border-radius:999px;transform:rotate(-6deg);box-shadow:0 3px 0 #D9A21A}
.alt-buy{display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:30px;align-items:center;font-size:17px}
@media (max-width:1100px){.bk-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.bk-grid{grid-template-columns:repeat(2,1fr);gap:14px}.bk h3{font-size:17px}.bk .btn{font-size:16px;padding:12px 10px}}
/* shop by need */
.need{background:var(--cream2)}
.need-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ncard{background:#fff;border-radius:var(--r);padding:20px;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.ncard .tag{align-self:flex-start;font:700 15px/1 Fredoka,sans-serif;padding:8px 12px;border-radius:999px;margin-bottom:12px}
.ncard img{border-radius:14px;aspect-ratio:3/4;object-fit:cover;object-position:top;width:100%;margin-bottom:14px}
.ncard h3{font-size:22px}
.ncard p{font-size:16px;color:var(--ink2)}
.price{font:700 22px/1 Fredoka,sans-serif;color:var(--forest);margin:4px 0 14px}
.price s{font-size:17px;color:var(--ink2);font-weight:500;margin-left:6px}
.ncard .btn{margin-top:auto}
@media (max-width:1000px){.need-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.need-grid{grid-template-columns:1fr}}
/* watch & play */
.play{background:linear-gradient(135deg,#2B6CB0 0%,#38A6E8 100%);color:#fff}
.play h2,.play h3{color:#fff}.play .kicker{color:var(--sun)}.play .lead{color:#EAF6FF}
.play-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:stretch}
.video{position:relative;border-radius:var(--r);overflow:hidden;background:#163821;aspect-ratio:16/9;box-shadow:0 20px 40px rgba(0,0,0,.25)}
.video button{all:unset;cursor:pointer;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 70% 40%,#5FB86A 0%,#2C6B30 70%)}
.video button img{position:absolute;height:86%;width:auto;left:6%;bottom:0;object-fit:contain}
.video .pl{position:relative;z-index:2;margin-left:38%;display:flex;flex-direction:column;align-items:center;gap:12px;font:600 20px/1.2 Fredoka,sans-serif;color:#fff;text-align:center}
.video .pl i{width:84px;height:84px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(255,255,255,.25);animation:pulse 2.4s ease-in-out infinite}
.video .pl i::after{content:"";border-left:26px solid var(--green);border-top:16px solid transparent;border-bottom:16px solid transparent;margin-left:6px}
@keyframes pulse{0%,100%{box-shadow:0 0 0 8px rgba(255,255,255,.25)}50%{box-shadow:0 0 0 18px rgba(255,255,255,.1)}}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tiles{display:grid;gap:16px}
.tile{display:flex;gap:16px;align-items:center;background:rgba(255,255,255,.14);border-radius:20px;padding:16px;text-decoration:none;color:#fff;transition:background .2s}
.tile:hover{background:rgba(255,255,255,.24)}
.tile img{width:72px;height:72px;object-fit:contain;flex:none}
.tile b{display:block;font:600 21px/1.2 Fredoka,sans-serif}
.tile span{font-size:16px;color:#EAF6FF}
@media (max-width:860px){.play-grid{grid-template-columns:1fr}.video .pl{margin-left:30%}}
/* teachers */
.teach-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}
.checks{list-style:none;padding:0;margin:0 0 24px}
.checks li{padding-left:38px;position:relative;margin-bottom:12px}
.checks li::before{content:"✓";position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--c1);color:var(--green-d);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:15px}
.teach-card{background:var(--c6);border-radius:var(--r);padding:26px;display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center}
.teach-card img{border-radius:12px;aspect-ratio:2/3;object-fit:cover}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}
@media (max-width:860px){.teach-grid{grid-template-columns:1fr}.teach-card{grid-template-columns:110px 1fr;padding:18px}.btn-row .btn{flex:1 1 100%}}
/* founder */
.founder{background:#fff}
.founder .box{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center;background:var(--cream);border-radius:var(--r);padding:30px}
.founder .box img{width:180px}
@media (max-width:700px){.founder .box{grid-template-columns:1fr;text-align:left}.founder .box img{width:130px}}
/* club */
.club{background:var(--green);color:#fff;position:relative;overflow:hidden}
.club h2{color:#fff}.club .lead{color:#EFFBEA}.club .kicker{color:var(--sun)}
.club .wrap{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:30px}
.club .perks{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;padding:0;list-style:none}
.club .perks li{background:rgba(255,255,255,.16);border-radius:999px;padding:8px 14px;font-weight:700;font-size:16px}
.club .art{display:flex;justify-content:center;gap:0}
.club .art img{width:46%;max-width:170px;animation:bob 5s ease-in-out infinite}.club .art img+img{animation-delay:-2s;margin-left:-18px}
@media (max-width:760px){.club .wrap{grid-template-columns:1fr}.club .art{order:-1}.club .btn{width:100%}}
/* faq */
.faq-list{max-width:860px}
details{background:#fff;border-radius:18px;margin-bottom:12px;box-shadow:0 3px 0 rgba(30,74,42,.06)}
summary{cursor:pointer;list-style:none;padding:20px 56px 20px 22px;font:600 19px/1.3 Fredoka,sans-serif;color:var(--forest);position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:var(--c1);display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1}
details[open] summary::after{content:"–"}
details .ans{padding:0 22px 20px;color:var(--ink2)}
/* footer */
.ftr{background:var(--forest-d);color:#DDEBDD;padding:60px 0 100px}
.ftr .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:30px}
.ftr h3{color:#fff;font-size:20px;margin-bottom:12px}
.ftr a{color:#DDEBDD;text-decoration:none;display:inline-block;padding:6px 0;font-size:16px}
.ftr a:hover{color:#fff;text-decoration:underline}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr .flogo{background:#fff;border-radius:16px;padding:10px 14px;display:inline-block;margin-bottom:14px}
.ftr .flogo img{height:48px;width:auto}
.social{display:flex;gap:12px;margin-top:12px}
.social a{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;padding:0}
.social a:hover{background:var(--green)}
.social svg{width:22px;height:22px;fill:#fff}
.legal{border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:20px;font-size:15px;color:#B9CDB9}
@media (max-width:860px){.ftr .cols{grid-template-columns:1fr 1fr}.ftr .cols>div:first-child{grid-column:1/-1}}
/* sticky mobile CTA */
.sticky{display:none}
@media (max-width:760px){.sticky{display:flex;position:fixed;left:12px;right:12px;bottom:12px;/* Wix badge gone on premium (Oct 20 go-live) */z-index:40;justify-content:center;align-items:center;gap:10px;background:var(--green);color:#fff;font:600 18px/1 Fredoka,sans-serif;text-decoration:none;padding:16px;border-radius:999px;box-shadow:0 6px 0 var(--green-d),0 10px 30px rgba(0,0,0,.2);transition:transform .3s}
 .sticky.hide{transform:translateY(calc(100% + 100px));visibility:hidden}}
/* reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}}
/* shop page */
.shop-hero{background:linear-gradient(180deg,#DDF2FD 0%,var(--cream) 100%);padding:52px 0 30px}
.shop-hero .wrap{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.shop-hero img{width:220px;animation:float 6s ease-in-out infinite}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 26px}
.filters a{border:2px solid var(--green);background:#fff;color:var(--green-d);font:600 17px/1.2 Fredoka,sans-serif;padding:12px 18px;border-radius:999px;min-height:46px;text-decoration:none;display:inline-flex;align-items:center}
.filters a:hover{background:var(--green);color:#fff}
.pgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.pgrid.three{grid-template-columns:repeat(3,minmax(0,300px))}
.pcard{background:#fff;border-radius:var(--r);padding:14px 14px 18px;display:flex;flex-direction:column;box-shadow:var(--shadow);position:relative}
.pcard[hidden]{display:none}
.pcard img{border-radius:14px;aspect-ratio:2/3;object-fit:cover;width:100%;margin-bottom:12px;background:#f2f2f2}
.pcard h3{font-size:19px;line-height:1.2;margin:0 0 6px}
.pcard .meta{font-size:15px;color:var(--ink2);margin-bottom:8px}
.pcard .btn{margin-top:auto;width:100%}
.pcard .badge{position:absolute;top:22px;left:22px;background:var(--berry);color:#fff;font:700 15px/1 Fredoka,sans-serif;padding:7px 11px;border-radius:999px}
.pay-note{display:flex;flex-wrap:wrap;gap:10px 24px;background:#fff;border-radius:18px;padding:16px 20px;margin:0 0 26px;font-size:16px;box-shadow:0 3px 0 rgba(30,74,42,.06)}
.pay-note span{display:flex;gap:8px;align-items:center}
@media (max-width:1100px){.pgrid{grid-template-columns:repeat(3,1fr)}.pgrid.three{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.pgrid,.pgrid.three{grid-template-columns:repeat(2,1fr);gap:14px}.pcard h3{font-size:17px}.pcard .btn{font-size:16px;padding:12px 8px}.shop-hero .wrap{grid-template-columns:1fr}.shop-hero img{width:150px;justify-self:center;order:-1}}
@media (max-width:380px){.pgrid,.pgrid.three,.bk-grid{grid-template-columns:1fr}}

@media (max-width:600px){.trust ul{display:grid;grid-template-columns:1fr;justify-content:start;gap:10px;padding:18px 24px}}

/* hero visual: kids & globe + Sojourner orbit */
.visual{position:relative}
.photo{border-radius:32px;overflow:hidden;box-shadow:0 24px 50px rgba(30,74,42,.22);border:6px solid #fff;aspect-ratio:1036/1024;background:#cfe8f7}
.photo img{width:100%;height:100%;object-fit:cover}
.orbit{position:absolute;left:-9%;top:-6%;width:36%;z-index:3;animation:orbit 14s ease-in-out infinite;filter:drop-shadow(0 12px 14px rgba(30,74,42,.25));pointer-events:none}
.orbit img{width:100%;height:auto}
@keyframes orbit{0%{transform:translate(0,0) rotate(-4deg)}25%{transform:translate(22%,-10%) rotate(2deg)}50%{transform:translate(48%,-2%) rotate(5deg)}75%{transform:translate(20%,12%) rotate(0deg)}100%{transform:translate(0,0) rotate(-4deg)}}
@media (max-width:860px){.photo{border-width:4px;border-radius:24px}.orbit{width:34%;left:-2%;top:-4%}}
/* friend cards open profile */
.fcard{cursor:pointer}
.fcard .meet{margin-top:auto;align-self:flex-start;background:#fff;border-radius:999px;padding:10px 16px;font:600 16px/1 Fredoka,system-ui,sans-serif;color:var(--forest)}
.fcard .fopen{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;border-radius:var(--r);cursor:pointer}
.fcard .fopen:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.fgrid .fcard{min-height:340px}.fgrid .fcard .pic{height:180px}.fgrid .fcard .pic img{max-height:170px}
.fgrid .fcard[hidden]{display:none}
.fsearch{display:block;margin-top:18px;max-width:460px}
.fsearch span{display:block;font:600 16px/1.3 Fredoka,sans-serif;color:var(--forest);margin-bottom:6px}
.fsearch input{width:100%;font:400 18px/1.2 Nunito,sans-serif;padding:14px 18px;border-radius:999px;border:2px solid var(--green);background:#fff;color:var(--ink)}
.fcount{color:var(--ink2);font-size:16px}
@media (max-width:560px){.fgrid{grid-template-columns:repeat(2,1fr);gap:12px}.fgrid .fcard{min-height:290px;padding:12px}.fgrid .fcard .pic{height:140px}.fgrid .fcard .pic img{max-height:130px}.fgrid .fcard h3{font-size:19px}.fgrid .fcard .meet{font-size:15px;padding:9px 12px}}
/* profile dialog */
dialog#profile{border:0;padding:0;border-radius:28px;width:min(920px,calc(100% - 32px));max-height:calc(100% - 48px);background:var(--cream);color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:auto;overscroll-behavior:contain}
dialog#profile::backdrop{background:rgba(22,56,33,.55)}
.pf{display:grid;grid-template-columns:300px 1fr;position:relative}
.pf-art{background:var(--c1);display:flex;align-items:center;justify-content:center;padding:30px;position:sticky;top:0;align-self:start;min-height:100%}
.pf-art img{max-height:300px;width:auto}
.pf-body{padding:34px 34px 28px}
.pf-where{font:700 16px/1.2 Fredoka,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--berry);margin:0 0 6px}
#pf-name{font-size:clamp(30px,4vw,44px);margin:0 0 14px}
#pf-content p{font-size:17px;line-height:1.6}
#pf-content .pf-title{font:600 20px/1.3 Fredoka,sans-serif;color:var(--forest)}
.pf-box{border-radius:18px;padding:14px 16px;margin:0 0 14px}
.pf-box b{display:block;font:600 16px/1.2 Fredoka,sans-serif;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.pf-lang{background:#FFF0B8}.pf-lang b{color:#8A5A00}
.pf-nutri{background:#DCF0D2}.pf-nutri b{color:var(--green-d)}
.pf-fun{background:#D6ECFA}.pf-fun b{color:#1F5F8B}
.pf-know{background:#fff}.pf-know b{color:var(--berry)}
#pf-content .pf-slogan{font-style:italic;color:var(--forest);font-weight:700}
.pf-close{position:absolute;top:12px;right:12px;z-index:5;width:48px;height:48px;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow);font:700 30px/1 Fredoka,sans-serif;color:var(--forest);cursor:pointer}
.pf-nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
body.modal-open{overflow:hidden}
@media (max-width:700px){dialog#profile{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;margin:0}
 .pf{grid-template-columns:1fr}.pf-art{position:relative;padding:22px 20px 10px;min-height:0}.pf-art img{max-height:190px}.pf-body{padding:16px 20px 28px}.pf-nav .btn{flex:1 1 100%}}

@media (min-width:600px) and (max-width:860px){.visual{max-width:460px;margin-left:auto;margin-right:auto;width:100%}}
/* ---- round 5: footer follow row, club line, share row, quiz, contact ---- */
.ftr .follow{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--green);border-radius:28px;padding:26px 30px;margin-bottom:18px;color:#fff}
.ftr .follow h2{color:#fff;font-size:clamp(28px,3.4vw,40px);margin:0 0 4px}
.ftr .follow p{margin:0;color:#EAF6E6;font-size:17px}
.follow-icons{display:flex;gap:12px;flex-wrap:wrap}
.ftr .fi{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--forest);border-radius:999px;padding:10px 18px 10px 12px;font:600 17px/1 Fredoka,system-ui,sans-serif;text-decoration:none;min-height:52px;box-shadow:0 5px 0 rgba(0,0,0,.18);transition:transform .15s}
.ftr .fi:hover{color:var(--forest);text-decoration:none;transform:translateY(-2px)}
.ftr .fi svg{width:30px;height:30px;fill:currentColor;border-radius:50%;padding:5px;color:#fff}
.fi-youtube svg{background:#E62117}.fi-instagram svg{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF)}.fi-tiktok svg{background:#111}.fi-facebook svg{background:#1877F2}
.ftr .clubline{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:2px dashed rgba(255,255,255,.28);border-radius:20px;padding:16px 22px;margin-bottom:36px;font-size:17px}
.ftr .clubline b{color:#fff}
.ftr .clubline .btn{color:var(--forest);padding:12px 22px}
.ftr .clubline .btn:hover{color:var(--forest);text-decoration:none}
@media (max-width:700px){.ftr .follow{padding:22px 18px}.follow-icons{display:grid;grid-template-columns:1fr 1fr;width:100%}.ftr .fi{justify-content:flex-start}.ftr .clubline .btn{width:100%}}
.pf-share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:22px 0 4px}
.pf-msg{font-weight:700;color:var(--green-d);font-size:16px}
/* home quiz band */
.quizband{padding-top:10px}
.qz{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:center;background:linear-gradient(135deg,#FFE7F0,#FFF3C9);border-radius:36px;padding:38px 44px}
.qz h2{font-size:clamp(32px,4.4vw,52px)}
.qz-art{display:flex;justify-content:center;align-items:flex-end}
.qz-art img{width:34%;height:auto;margin:0 -3%;filter:drop-shadow(0 10px 14px rgba(0,0,0,.15))}
.qz-art img:nth-child(2){width:40%;position:relative;z-index:1}
@media (max-width:860px){.qz{grid-template-columns:1fr;padding:26px 20px;gap:12px;text-align:center}.qz .btn{width:100%}.qz-art img{width:30%}.qz-art img:nth-child(2){width:36%}}
/* quiz page */
.quizpage{background:linear-gradient(180deg,#DDF2FD 0%,var(--cream) 70%);padding:40px 0 70px;min-height:70vh}
.qcard{max-width:760px;margin:0 auto;background:#fff;border-radius:32px;padding:34px 36px;box-shadow:0 20px 50px rgba(30,74,42,.12);text-align:center}
.qcard h1{font-size:clamp(36px,5vw,58px)}
.qcard .qz-art{margin-top:22px}
.qprog{display:flex;align-items:center;gap:14px;font:600 16px Fredoka,sans-serif;color:var(--ink2);margin-bottom:16px}
.qprog .bar{flex:1;height:12px;background:#EEF4EA;border-radius:999px;overflow:hidden}.qprog .bar i{display:block;height:100%;width:0;background:var(--green);transition:width .3s}
#qtext{font-size:clamp(26px,3.6vw,38px);outline:none}
.qopts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.qopt{display:flex;align-items:center;gap:14px;text-align:left;background:var(--cream2);border:3px solid transparent;border-radius:22px;padding:16px 18px;min-height:76px;font:600 19px/1.25 Fredoka,system-ui,sans-serif;color:var(--forest);cursor:pointer;transition:transform .12s,border-color .12s}
.qopt:hover{border-color:var(--sun);transform:translateY(-2px)}
.qopt .e{font-size:34px;line-height:1}
.qback{background:none;border:0;color:var(--ink2);font:600 17px Fredoka,sans-serif;margin-top:18px;cursor:pointer;padding:10px;min-height:44px}
.qres{display:grid;grid-template-columns:minmax(0,440px) 1fr;gap:40px;align-items:center;max-width:1080px;margin:0 auto}
.qres-card img{width:100%;height:auto;border-radius:24px;box-shadow:0 20px 50px rgba(30,74,42,.22);display:block}
.qres-txt h2{font-size:clamp(40px,5vw,64px);outline:none}
.qwhere{font:800 17px Nunito,sans-serif;color:var(--berry);letter-spacing:.06em;text-transform:uppercase;margin:-6px 0 10px}
.qres .btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
@media (max-width:860px){.qcard{padding:24px 18px;border-radius:26px}.qopts{grid-template-columns:1fr}.qres{grid-template-columns:1fr;gap:20px}.qres-card{max-width:290px;margin:0 auto;width:100%}.qres-txt{text-align:center}.qres .btn-row,.qres .pf-share{justify-content:center}.qres .btn-row .btn{flex:1 1 100%}}
/* contact form */
.cform{max-width:760px;margin:0 auto;background:#fff;border-radius:28px;padding:30px;box-shadow:0 16px 40px rgba(30,74,42,.1);display:grid;gap:16px}
.cform label{display:grid;gap:6px;font:600 17px Fredoka,sans-serif;color:var(--forest)}
.cform input,.cform select,.cform textarea{font:400 17px Nunito,system-ui,sans-serif;padding:14px 16px;border:2px solid #D8E3D3;border-radius:16px;background:var(--cream);color:var(--ink);width:100%;box-sizing:border-box}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:3px solid var(--sky);border-color:var(--sky)}
.cform .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .fine{margin:0;color:var(--ink2);font-size:15px}
.cform .btn{justify-self:start}
.cmsg{margin:0;font-weight:700;min-height:1.4em}.cmsg.ok{color:var(--green-d)}.cmsg.err{color:#B3261E}
@media (max-width:700px){.cform{padding:20px 16px}.cform .row2{grid-template-columns:1fr}.cform .btn{width:100%}}

/* ---- launch prep: coming-soon + Garden Club ---- */
.buys{margin-top:auto;display:grid;gap:10px}
.buys .btn{margin-top:0!important;width:100%;color:var(--forest)}
.buys .btn-sun,.buys .btn-white{color:var(--forest)}
.soon{display:flex;gap:6px;align-items:flex-start;font:600 15px/1.25 Fredoka,sans-serif;color:var(--berry);margin:2px 0 12px}
.ncard .soon,.teach-card .soon{font-size:16px}
.gcform{display:grid;gap:12px;max-width:560px}
.gcform .gc-row{display:grid;grid-template-columns:1fr 1.3fr;gap:12px}
.gcform label{display:grid;gap:6px;font:600 16px Fredoka,sans-serif;color:var(--forest)}
.gcform label i{font-style:normal;font-weight:500;opacity:.8}
.gcform input{font:400 17px Nunito,system-ui,sans-serif;padding:13px 15px;border:2px solid #D8E3D3;border-radius:16px;background:#fff;color:var(--ink);width:100%;box-sizing:border-box;min-width:0}
.gcform input:focus{outline:3px solid var(--sky);border-color:var(--sky)}
.gcform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gcform .btn{justify-self:start;margin-top:4px}
.gcform .gc-fine{margin:0;font-size:14px;color:var(--ink2)}
.gcform.dark label{color:#fff}
.gcform.dark .gc-fine{color:#EFFBEA}
.gcform.dark .gc-msg.ok{color:var(--sun)}
.gcform.dark .gc-msg.err{color:#FFE0DC}
.soon-band{display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:center;background:var(--c5);border-radius:var(--r);padding:26px 28px;margin:0 0 22px;box-shadow:0 3px 0 rgba(30,74,42,.06)}
.soon-band h2{font-size:clamp(24px,2.8vw,32px);margin:4px 0 8px}
.soon-band p{margin:0;font-size:16px;color:var(--ink2)}
.soon-band .sb-txt p{margin:0}
#gcdlg{border:0;border-radius:28px;padding:0;max-width:min(520px,calc(100vw - 24px));width:100%;box-shadow:0 30px 80px rgba(0,0,0,.3);background:var(--cream)}
#gcdlg::backdrop{background:rgba(22,56,33,.55)}
.gcd{position:relative;padding:28px 26px 22px;text-align:left}
.gcd img{width:84px;height:auto;float:right;margin:40px 0 6px 10px}
.gcd h2{font-size:30px;margin:4px 0 8px}
.gcd .kicker{margin:0;color:var(--berry)}
.gcd-lead{font-size:16px;color:var(--ink2);margin:0 0 14px}
.gcd .gcform{clear:both}
.gcd-amz{margin:14px 0 0;font-size:15px}
.gcd .pf-close{position:absolute;top:10px;right:12px;z-index:2}
@media (max-width:860px){.soon-band{grid-template-columns:1fr;padding:22px 18px}}
@media (max-width:560px){.gcform .gc-row{grid-template-columns:1fr}.gcform .btn{width:100%;justify-self:stretch}.gcd{padding:24px 18px 18px}.gcd h2{font-size:26px}}
/* ---- play: passport + food challenge ---- */
[hidden]{display:none!important}
.buys .btn{font-size:16px;padding:12px 10px}
.pf-play{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0}
.pf-play .btn{flex:1 1 180px}
.playband{padding-top:10px}
.play-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pcard2{display:grid;grid-template-columns:42% 1fr;gap:18px;align-items:center;border-radius:32px;padding:26px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .15s}
.pcard2:hover{transform:translateY(-4px)}
.pc-pass{background:linear-gradient(135deg,#D6ECFA,#E8E0FA)}
.pc-chal{background:linear-gradient(135deg,#FFE2CA,#FFF0B8)}
.pc-art{display:flex;justify-content:center;align-items:center;min-width:0}
.pc-art img{width:100%;height:auto;filter:drop-shadow(0 10px 14px rgba(0,0,0,.15))}
.pc-chal .pc-art img{width:58%;margin:0 -6%}
.pc-tag{display:inline-block;font:700 15px/1 Fredoka,sans-serif;background:#fff;color:var(--berry);padding:8px 12px;border-radius:999px;margin-bottom:10px}
.pcard2 h3{font-size:clamp(24px,2.4vw,30px);margin:0 0 6px;color:var(--forest)}
.pcard2 p{font-size:16px;color:var(--ink2);margin:0 0 14px}
.play-hero .safe-note,.safe-note{font-size:15px;color:var(--ink2);margin:10px 0 0}
.play-hero img{width:300px}
.pp-top{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;align-items:center;background:#fff;border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow)}
.pp-count{font:700 26px/1.1 Fredoka,sans-serif;color:var(--forest);margin:0 0 10px}
.pp-prog .bar{height:16px;background:#EEF4EA;border-radius:999px;overflow:hidden}
.pp-prog .bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--sun));transition:width .5s}
.pp-badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.pp-badges li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:var(--cream2);border-radius:18px;padding:10px 6px;opacity:.6;min-width:0}
.pp-badges li.on{opacity:1;background:#FFF0B8;box-shadow:0 3px 0 #D9A21A}
.pp-badges .bi{font-size:28px;line-height:1}
.pp-badges b{display:block;font:600 15px/1.15 Fredoka,sans-serif;color:var(--forest)}
.pp-badges small{display:block;font-size:14px;color:var(--ink2)}
.pp-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 6px}
.pp-h{font-size:clamp(26px,3vw,34px);margin:26px 0 14px}
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.pp-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:3px dashed #D8E3D3;border-radius:22px;padding:12px 8px 10px;cursor:pointer;font:inherit;color:var(--ink);min-width:0;transition:transform .12s,border-color .12s}
.pp-cell:hover{transform:translateY(-3px);border-color:var(--sun)}
.pp-cell img{width:78%;height:auto;aspect-ratio:1;object-fit:contain;filter:grayscale(.85) opacity(.55)}
.pp-cell canvas{width:92%;height:auto;aspect-ratio:1}
.pp-cell.got{border-style:solid;border-color:#C9E7BD;background:#FBFFF7}
.pp-q{position:absolute;top:10px;right:12px;font:700 18px/1 Fredoka,sans-serif;color:var(--ink2);background:var(--cream2);border-radius:50%;width:30px;height:30px;display:grid;place-items:center}
.pp-cap b{display:block;font:600 16px/1.1 Fredoka,sans-serif;color:var(--forest)}
.pp-cap small{display:block;font-size:14px;color:var(--ink2);line-height:1.2}
.pp-cap{text-align:center;max-width:100%;overflow-wrap:anywhere}
.pp-two{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.pp-panel{background:#fff;border-radius:var(--r);padding:26px;box-shadow:var(--shadow);min-width:0}
.pp-panel h2{font-size:clamp(26px,3vw,34px);margin:4px 0 8px}
.pp-field{display:grid;gap:6px;font:600 16px Fredoka,sans-serif;color:var(--forest);margin:12px 0 4px}
.pp-field i{font-style:normal;font-weight:500;opacity:.8}
.pp-field input{font:400 17px Nunito,system-ui,sans-serif;padding:13px 15px;border:2px solid #D8E3D3;border-radius:16px;background:var(--cream);width:100%;box-sizing:border-box}
.pp-field input[aria-invalid=true]{border-color:#B3261E}
.sh-prev{margin-top:14px}
.sh-prev img{width:100%;max-width:360px;height:auto;border-radius:18px;box-shadow:var(--shadow);display:block;margin:0 auto}
#cert-prev img{max-width:100%}
.cert-teaser{width:140px;height:auto;display:block;margin:10px auto 0;opacity:.85}
.pp-fine{font-size:15px;color:var(--ink2);text-align:center;max-width:820px;margin:0 auto}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--green-d);text-decoration:underline;cursor:pointer;min-height:44px}
#ppdlg{border:0;border-radius:28px;padding:0;max-width:min(860px,calc(100vw - 24px));width:100%;max-height:calc(100vh - 24px);box-shadow:0 30px 80px rgba(0,0,0,.3);background:var(--cream)}
#ppdlg::backdrop{background:rgba(22,56,33,.55)}
.pv{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;padding:30px;position:relative}
.pv-art{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:22px;padding:14px;min-width:0}
.pv-art img,.pv-art canvas{width:100%;max-width:320px;height:auto;aspect-ratio:1}
.pv-art canvas.thunk{animation:thunk .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes thunk{0%{transform:scale(1.6) rotate(-12deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
.pv-body h2{font-size:clamp(28px,3.4vw,38px);margin:0 0 12px}
.pv-hello{background:#E8E0FA;border-radius:18px;padding:14px 16px;margin:0 0 12px}
.pv-hello b{display:block;font:600 16px/1.2 Fredoka,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#4F3AA0}
.pv-word{font:700 clamp(26px,3vw,34px)/1.2 Fredoka,sans-serif;color:var(--forest);margin:6px 0 4px;overflow-wrap:anywhere}
.pv-say{margin:0;font-size:16px;color:var(--ink2)}
.pv-msg{font:600 17px/1.3 Fredoka,sans-serif;color:var(--green-d);min-height:1.3em;margin:10px 0 0}
.pv-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:10px;font-weight:700;align-items:center}
.pv-links a{min-height:44px;display:inline-flex;align-items:center}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:2147483000}
.chc{display:grid;grid-template-columns:.85fr 1.15fr;gap:28px;background:#fff;border-radius:32px;padding:28px;box-shadow:var(--shadow);scroll-margin-top:90px}
.chc-art{position:relative;background:linear-gradient(135deg,#FFE7F0,#FFF3C9);border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;min-width:0}
.chc-art img{width:100%;max-width:300px;height:auto}@media (max-width:560px){.chc-art img{max-width:200px}}
.chc-tag{position:absolute;top:14px;left:14px;background:var(--berry);color:#fff;font:700 15px/1 Fredoka,sans-serif;padding:8px 12px;border-radius:999px}
.chc-week{font:600 16px Fredoka,sans-serif;color:var(--ink2);margin:8px 0 0}
.chc-body h2{font-size:clamp(28px,3.4vw,40px);margin:0 0 14px}
.pf-fun{background:var(--c5)}.pf-know{background:var(--c1)}
.ch-note{background:#FFE0DC;border-radius:16px;padding:12px 14px;font-size:16px;color:#7A1F16;margin:0 0 10px}
.ch-allergy{font-size:15px;color:var(--ink2);margin:0 0 14px}
.ch-q{font:700 22px Fredoka,sans-serif;color:var(--forest);margin:4px 0 0}
.ch-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}
.ch-opts .qopt{flex-direction:column;justify-content:center;text-align:center;gap:6px;padding:12px 8px}
.ch-msg{font:600 18px/1.35 Fredoka,sans-serif;color:var(--green-d);margin:6px 0 0}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.ch-cell{position:relative;background:#fff;border:3px solid transparent;border-radius:20px;padding:10px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;font:inherit;min-width:0}
.ch-cell img{width:70%;height:auto;aspect-ratio:1;object-fit:contain;filter:grayscale(.6) opacity(.75)}
.ch-cell.got img{filter:none}
.ch-cell.wk{border-color:var(--sun)}
.ch-cell .cap{font:600 14px/1.15 Fredoka,sans-serif;color:var(--forest);text-align:center;overflow-wrap:anywhere}
.ch-cell .stk{position:absolute;top:4px;right:6px;font-size:28px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}
.ch-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:16px;font-size:16px;color:var(--ink2)}
@media (max-width:960px){.pp-top{grid-template-columns:1fr}.pp-two{grid-template-columns:1fr}}
@media (max-width:860px){.play-hero img{width:150px!important}.play-cards{grid-template-columns:1fr}.chc{grid-template-columns:1fr;padding:20px}.pv{grid-template-columns:1fr;padding:22px 18px}.pv-art{max-width:260px;margin:0 auto;width:100%}.play-hero img{width:220px}}
@media (max-width:560px){.pcard2{grid-template-columns:1fr;text-align:center;padding:20px}.pcard2 .btn{width:100%}.pc-art{max-width:260px;margin:0 auto}.pp-badges{grid-template-columns:repeat(3,1fr)}.pp-grid{grid-template-columns:repeat(2,1fr)}.ch-grid{grid-template-columns:repeat(3,1fr)}.ch-opts .qopt{min-height:84px;font-size:17px}.pp-actions .btn{flex:1 1 100%}.pp-panel{padding:20px 16px}}
@media (prefers-reduced-motion:reduce){.pv-art canvas.thunk{animation:none}.pcard2,.pp-cell{transition:none}}
.morelink{display:inline-block;padding:12px 0;font-weight:700}

/* ---- videos lead (Oct 20) ---- */
.nav .btn-watch{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.hdr-watch{display:none;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;background:var(--green);color:#fff;font:600 16px/1 Fredoka,system-ui,sans-serif;text-decoration:none;box-shadow:0 3px 0 var(--green-d);margin-left:auto}
.hdr-watch span{font-size:12px}
@media (max-width:960px){.hdr-watch{display:inline-flex}.hdr .wrap{gap:10px}}
@media (max-width:1180px) and (min-width:961px){.nav{gap:18px}.nav a{font-size:16px}.nav .btn{padding:12px 16px}}
@media (max-width:370px){.hdr-watch{padding:0 12px;font-size:15px}.logo img{height:44px}}
.yt-note a{display:inline-flex;align-items:center;gap:8px;color:var(--forest);text-decoration:none;padding:6px 0}
.yt-note a:hover b{text-decoration:underline}
.yt-dot{display:inline-flex;align-items:center;justify-content:center;width:26px;height:18px;border-radius:5px;background:#E62117;color:#fff;font-size:10px}
.videos{background:linear-gradient(180deg,#FFF6DE 0%,#FFFBF3 100%);padding-top:56px}
.vfeat{max-width:880px;margin:0 auto}
.vplayer button{background:#163821}
.vplayer .vthumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;left:0;bottom:auto}
.vplay{position:relative;z-index:2;width:86px;height:86px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(255,255,255,.35),0 10px 30px rgba(0,0,0,.3)}
.vplay i{display:block;border-left:28px solid #E62117;border-top:17px solid transparent;border-bottom:17px solid transparent;margin-left:7px}
.vplay.sm{width:48px;height:48px;box-shadow:0 0 0 6px rgba(255,255,255,.35)}
.vplay.sm i{border-left-width:16px;border-top-width:10px;border-bottom-width:10px;margin-left:4px}
.video button:hover .vplay,.video button:focus-visible .vplay{transform:scale(1.08)}
.vdur{position:absolute;right:10px;bottom:10px;z-index:2;background:rgba(0,0,0,.75);color:#fff;font:700 13px/1 Nunito,sans-serif;padding:5px 7px;border-radius:6px}
.vnow{text-align:center;margin:14px 0 0;color:#4C5A51}
.vnow-k{display:inline-block;font:700 12px/1 Fredoka,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--berry,#E5426F);margin-right:6px}
.vgrid{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px}
.vthumbbtn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:8px;width:100%;border-radius:16px;padding:6px;background:#fff;box-shadow:0 4px 14px rgba(30,74,42,.1);border:3px solid transparent}
.vthumbbtn[aria-current=true]{border-color:var(--sun)}
.vthumbbtn:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.vt-img{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border-radius:11px;overflow:hidden;background:#163821}
.vt-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vt-img .vdur{right:6px;bottom:6px;font-size:11px;padding:3px 5px}
.vt-t{font:600 14px/1.25 Fredoka,sans-serif;color:var(--forest);padding:0 4px 4px}
.vctas{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:28px}
.btn-yt{background:#E62117;color:#fff;box-shadow:0 5px 0 #A3150F}
.btn-yt:hover{background:#C91B12;color:#fff}
.vfine{text-align:center;font-size:14px;color:#6A776E;margin:14px 0 0}
.tiles-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:1180px){.vgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:860px){.vgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tiles-row{grid-template-columns:1fr}.videos{padding-top:40px}.vplay{width:70px;height:70px}}
@media (max-width:420px){.vctas .btn{width:100%;justify-content:center}}
.vgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px;max-width:880px;margin-left:auto;margin-right:auto}
.vt-img .vplay.sm{width:44px;height:44px;opacity:.92}
.vt-t{font-size:15px}
@media (max-width:860px){.vgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}.vt-t{font-size:14px}}
/* ---- simplified homepage (Oct 20) ---- */
.hero2{padding:48px 0 110px}
.hero2 h1{font-size:clamp(40px,4.6vw,66px);line-height:1.05;margin-bottom:22px}
.hero2 h1 em.rainbow{display:inline;background:linear-gradient(90deg,#E5426F 0%,#F28C28 22%,#E9B10B 42%,#3E8E41 62%,#2D8FD5 80%,#7A4FD0 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.btn-xl{font-size:22px;padding:20px 36px;min-height:64px;box-shadow:0 6px 0 var(--green-d),0 14px 30px rgba(46,125,50,.28)}
.btn-lg{font-size:20px;padding:18px 32px}
.hero-sub{margin:16px 0 0;font-size:17px}
.hero-sub a{color:var(--forest);font-weight:700;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:8px 0}
.hero-credit{margin:10px 0 0;font-size:14px;color:#4C5A51}
@media (max-width:860px){.hero2{padding:18px 0 80px}.hero2 .visual{order:0;max-width:420px;margin:4px auto 0}.hero2 h1{font-size:38px}.hero2 .ctas .btn{flex:1 1 100%}}
.mini-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.h2-sm{font-size:clamp(28px,3.4vw,40px)}
.pv-share{margin:6px 0 4px}
@media (max-width:860px){.play-cards{grid-template-columns:1fr}}
@media (min-width:861px){#games .play-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* homepage: compact row of friend faces */
#friends .rail{grid-auto-columns:150px;gap:14px}
#friends .fcard{padding:12px 10px 14px;align-items:center;text-align:center;border-radius:24px}
#friends .fcard .pic{height:118px}
#friends .fcard .pic img{max-height:112px}
#friends .fcard h3{font-size:17px;margin:6px 0 0;line-height:1.15}
#friends .fcard .where{font-size:13px;margin:2px 0 0}
#friends .fcard .meet{display:none}
@media (max-width:600px){#friends .rail{grid-auto-columns:128px}#friends .fcard .pic{height:100px}#friends .fcard .pic img{max-height:96px}}
#friends .fcard{min-height:0}#friends .rail-btn{top:38%}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* homepage: small "Hug a friend" plush photo band */
.hugband{padding:34px 0 40px;background:#FFFBF3}
.hug-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:14px}
.hug-head h2{font-size:clamp(26px,3vw,34px);margin:0}
.hug-head p{margin:0;font-size:16px;color:#4C5A51}
.hug-row{list-style:none;margin:0 -20px;padding:4px 20px 12px;display:grid;grid-auto-flow:column;grid-auto-columns:150px;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;overscroll-behavior-x:contain}
.hug-row li{scroll-snap-align:start}
.hug-row a{display:block;text-decoration:none;color:var(--forest);text-align:center}
.hug-row img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:22px;box-shadow:0 6px 16px rgba(30,74,42,.14);transition:transform .2s ease}
.hug-row a:hover img{transform:translateY(-4px) rotate(-1deg)}
.hug-row span{display:block;font:600 14px/1.2 Fredoka,sans-serif;margin-top:8px;padding-bottom:2px}
.pc-quiz .pc-art img{width:58%;margin:0 -6%}
/* ===== quick wins (Oct 20) ===== */
.photo picture,.orbit picture{display:block;width:100%;height:100%}
.vnow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px}
.vnow p{margin:0}
.vsub{padding:10px 18px;min-height:44px;font-size:16px}
.vend{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center;background:rgba(22,56,33,.9);color:#fff}
.vend-t{font:700 clamp(24px,3.4vw,34px)/1.1 Fredoka,sans-serif;margin:0}
.vend-s{margin:0 0 6px;font-size:17px;color:#E6F3E6}
.vend .btn-white{color:var(--forest)}
@media (max-width:420px){.vend{gap:8px}.vend-s{display:none}.vend .btn{padding:12px 18px;font-size:16px}}
.qsub-row{margin:16px 0 0}
.fotw{display:inline-flex;align-items:center;gap:12px;margin-top:14px;background:#fff;border-radius:999px;padding:6px 18px 6px 6px;text-decoration:none;color:var(--forest);box-shadow:0 5px 0 #E8DFC8,0 8px 18px rgba(30,74,42,.08);max-width:100%;min-height:56px}
.fotw img{width:48px;height:48px;object-fit:contain;border-radius:50%;background:#FFF3C9;flex:none}
.fotw-t{display:flex;flex-direction:column;min-width:0;font:600 16px/1.2 Fredoka,sans-serif}
.fotw-t b{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--berry)}
.fotw-t span{overflow-wrap:anywhere}
.fotw-go{font:700 20px Fredoka,sans-serif;margin-left:auto}
.fotw:hover{transform:translateY(-2px)}
.streak{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:4px 0 0;background:#FFF3C9;border-radius:18px;padding:12px 16px;font-size:17px;color:var(--forest)}
.streak .sk-e{font-size:30px;line-height:1}
.streak b{font-family:Fredoka,sans-serif;font-weight:700}
.ch-next{font:600 15px/1.3 Fredoka,sans-serif;color:var(--forest);background:#fff;border-radius:999px;padding:8px 14px;margin:10px 0 0;text-align:center}
/* friend pages */
.crumbs{display:flex;gap:8px;align-items:center;font:600 15px Fredoka,sans-serif;color:var(--ink2);margin-bottom:12px;flex-wrap:wrap}
.crumbs a{color:var(--forest);padding:6px 0}
.fp-hero .wrap{display:block}
.fp-grid{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:36px;align-items:center}
.fp-art{background:radial-gradient(circle at 50% 45%,#fff 0%,#FFF3C9 60%,#FFE1EC 100%);border-radius:36px;padding:24px;display:flex;justify-content:center;box-shadow:var(--shadow)}
.fp-hero .fp-art img{width:100%;max-width:260px;height:auto;animation:float 6s ease-in-out infinite}
.fp-txt h1{font-size:clamp(40px,5.4vw,66px);margin:0 0 8px}
.fp-lead{font:600 20px/1.35 Fredoka,sans-serif;color:var(--forest);margin:0 0 14px}
.fp-hello{max-width:560px}.fp-word{display:block;font:700 30px/1.2 Fredoka,"Noto Sans",sans-serif;color:var(--forest);overflow-wrap:anywhere}.fp-say{display:block;font-size:16px;color:var(--ink2);margin-top:2px}
.fp-acts{margin-top:14px}
.fp-story{padding-top:36px}
.fp-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:40px;align-items:start}
.fp-main p{font-size:18px;line-height:1.6;max-width:680px}
.fp-main .pf-slogan{font-style:italic;color:var(--forest);font-weight:700}
.fp-side{display:grid;gap:22px;position:sticky;top:90px}
.fp-vid h2{margin-bottom:12px}.fp-vid .vfine{font-size:14px;color:var(--ink2);margin:10px 0}
.fp-quiz{display:flex;gap:14px;align-items:center;background:#fff;border-radius:24px;padding:16px;box-shadow:var(--shadow)}
.fp-quiz img{width:72px;height:auto;flex:none}.fp-quiz b{font:700 20px Fredoka,sans-serif;color:var(--forest)}.fp-quiz p{margin:2px 0 8px;font-size:15px}
.fp-pn{padding:10px 0 60px}.fp-pn .wrap{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}
@media (max-width:860px){.fp-grid{grid-template-columns:1fr;gap:18px}.fp-art{max-width:260px;margin:0 auto;padding:16px}.fp-hero .fp-art img{max-width:200px}.fp-txt{text-align:center}.fp-hello{text-align:left;margin:0 auto}.fp-cols{grid-template-columns:1fr}.fp-side{position:static}.fp-pn .wrap{justify-content:center}.fp-pn .btn{flex:1 1 100%}.fp-acts .btn{flex:1 1 100%}}
/* quiz share landing */
.ql-card{max-width:980px;display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:36px;align-items:center;text-align:left}
.ql-art img{width:100%;height:auto;border-radius:22px;box-shadow:0 16px 40px rgba(30,74,42,.2);display:block}
.ql-txt h1{font-size:clamp(34px,4.6vw,56px);margin:4px 0 12px}
.ql-txt .btn-xl{margin-top:10px}
@media (max-width:860px){.ql-card{grid-template-columns:1fr;gap:16px;text-align:center}.ql-art{max-width:220px;margin:0 auto}.ql-txt .btn-xl{width:100%}}
.vend button.vend-again{all:unset;position:static;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:var(--forest);padding:12px 20px;border-radius:999px;font:600 17px/1 Fredoka,system-ui,sans-serif;box-shadow:0 6px 0 #D8E3D3;cursor:pointer;min-height:46px;box-sizing:border-box}
.vend button.vend-again:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
/* homepage: 71 kids-with-plush carousel (Oct 20) */
.hugband{padding:34px 0 40px;background:#FFFBF3;overflow:hidden}
.hug-head{align-items:baseline}
.hug-head p.hug-note{font-size:14px;color:#6A776E}
.hug-car{position:relative;max-width:1320px;margin:0 auto}
.hug-row{margin:0;padding:4px 20px 14px;grid-auto-columns:150px;grid-auto-flow:column!important;grid-template-columns:none!important;overflow-x:auto!important;scroll-padding:0 20px}
.hug-row img{background:#EAF3E4}
.hug-btn{position:absolute;top:calc(50% - 34px);z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--forest);font:700 26px/1 Fredoka,sans-serif;box-shadow:0 4px 14px rgba(30,74,42,.2);cursor:pointer;display:none}
.hug-btn.prev{left:8px}.hug-btn.next{right:8px}
.hug-btn:focus-visible,.hug-pause:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.hug-pause{display:block;margin:4px auto 0;border:0;background:none;color:#4C5A51;font:600 14px/1 Nunito,sans-serif;cursor:pointer;padding:8px 12px;border-radius:999px}
.hug-pause:hover{background:#EEF4EA}
.hug-car.is-auto .hug-row{scroll-snap-type:none;scrollbar-width:none}
.hug-car.is-auto .hug-row::-webkit-scrollbar{display:none}
@media (min-width:1024px){.hug-row{grid-auto-columns:180px;gap:16px;padding:4px 64px 14px;scroll-padding:0 64px}.hug-btn{display:block}}
/* creator: about-page portrait + homepage strip */
.founder .box img.creator-photo{width:300px;max-width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:28px;box-shadow:0 10px 26px rgba(30,74,42,.16);border:6px solid #fff}
@media (max-width:700px){.founder .box img.creator-photo{width:260px;margin:0 auto}}
.creator-strip{padding:18px 0 22px;background:#fff}
.creator-strip a{display:flex;align-items:center;justify-content:center;gap:14px;text-decoration:none;color:var(--forest);font:500 15px/1.35 Nunito,sans-serif;max-width:620px;margin:0 auto}
.creator-strip img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 25%;box-shadow:0 3px 10px rgba(30,74,42,.18);flex:none}
.creator-strip b{display:inline-block;color:var(--green);font-weight:700;white-space:nowrap}
.creator-strip a:hover b{text-decoration:underline}
/* games.html: "All our songs" list (Oct 20) */
.songs{background:#FFFBF3}
.songs .sec-head{align-items:center}
.songs-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.song .video{box-shadow:0 8px 20px rgba(30,74,42,.16);border-radius:18px}
.song h3{font-size:18px;line-height:1.25;margin:12px 0 4px}
.song p{margin:0;font-size:15px;line-height:1.45;color:#4C5A51}
.songs .vfine{margin-top:22px}
@media (max-width:1100px){.songs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.songs-grid{grid-template-columns:1fr;gap:20px}}
/* ===== passport v2 (Oct 20): globe + rubber stamps ===== */
.pc-stamps{position:relative;width:100%;aspect-ratio:6/5}
.pc-stamps .pc-globe{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 10px 14px rgba(0,0,0,.12))}
.pc-art .pc-stamps img{filter:none}
.ink-stamp{--ink:#C8324F;position:absolute;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:rgba(255,253,247,.94);color:var(--ink);transform:rotate(var(--r,-8deg));border-radius:50%;box-shadow:0 4px 10px rgba(30,74,42,.18)}
.ink-stamp::before{content:"";position:absolute;inset:0;border-radius:inherit;border:3px solid var(--ink);box-shadow:inset 0 0 0 3px rgba(255,253,247,.94),inset 0 0 0 4.5px var(--ink);
 -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.9'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.9'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}
.ink-stamp.rect{border-radius:12px;aspect-ratio:1/1.05}
.ink-stamp img{width:62%!important;height:auto;margin-top:-6%;position:relative}
.ink-stamp b{font:700 clamp(9px,1.1vw,13px)/1 Fredoka,sans-serif;letter-spacing:.06em;position:relative;margin-top:1px}
.ink-stamp i{font:700 clamp(7px,.85vw,10px)/1 Fredoka,sans-serif;font-style:normal;position:relative;margin-top:2px;opacity:.9}
.pc-stamps.arm .ink-stamp{opacity:0;transform:rotate(var(--r)) scale(1.9) translateY(-14px)}
.pc-stamps.arm.stamped .ink-stamp{animation:stampPop .55s cubic-bezier(.2,1.5,.35,1) var(--d,0s) both}
@keyframes stampPop{0%{opacity:0;transform:rotate(var(--r)) scale(1.9) translateY(-14px)}50%{opacity:1;transform:rotate(var(--r)) scale(.9,.82)}70%{transform:rotate(var(--r)) scale(1.07,.97)}85%{transform:rotate(var(--r)) scale(.98,1.03)}100%{opacity:1;transform:rotate(var(--r)) scale(1)}}
@media (max-width:560px){.ink-stamp b{font-size:10px}.ink-stamp i{font-size:8px}}
/* passport page globe + progress ring */
.pp-top{grid-template-columns:auto 1fr 1.3fr}
.pp-globe{position:relative;width:224px;display:flex;flex-direction:column;align-items:center}
.pp-globe canvas{width:190px;height:190px;margin:17px}
.pp-ring{position:absolute;top:0;left:0;width:224px;height:224px;transform:rotate(-90deg)}
.pp-ring circle{fill:none;stroke-width:7}
.pp-ring-bg{stroke:#EEF4EA}
.pp-ring-fg{stroke:#FFC734;stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3;transition:stroke-dashoffset .8s cubic-bezier(.3,1.3,.5,1)}
.pp-ring-t{margin:-6px 0 0;font:600 15px/1.2 Fredoka,sans-serif;color:var(--forest)}
.pp-ring-t b{font-size:22px;color:#E5426F}
@media (max-width:960px){.pp-top{grid-template-columns:1fr}.pp-globe{margin:0 auto}}
.pp-cell canvas{width:96%}
.pp-cell.just canvas{animation:slam .6s cubic-bezier(.2,1.5,.35,1) both}
.pv-art{position:relative}
.pv-art canvas.thunk{animation:slam .62s cubic-bezier(.2,1.5,.35,1) both}
@keyframes slam{0%{opacity:0;transform:translateY(-48px) scale(1.9) rotate(-14deg)}45%{opacity:1;transform:translateY(0) scale(1.06,.8) rotate(2deg)}62%{transform:scale(.95,1.06) rotate(-1deg)}80%{transform:scale(1.02,.98)}100%{opacity:1;transform:none}}
.pv-burst{position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;border-radius:50%;border:6px solid rgba(255,199,52,.0);transform:translate(-50%,-50%) scale(.6);pointer-events:none}
.pv-burst.go{animation:burst .7s ease-out .26s both}
@keyframes burst{0%{border-color:rgba(255,199,52,.85);transform:translate(-50%,-50%) scale(.7);opacity:1}100%{border-color:rgba(229,66,111,0);transform:translate(-50%,-50%) scale(1.35);opacity:0}}
@media (prefers-reduced-motion:reduce){.pc-stamps.arm .ink-stamp{opacity:1;transform:rotate(var(--r))}.pc-stamps.arm.stamped .ink-stamp,.pp-cell.just canvas,.pv-art canvas.thunk,.pv-burst.go{animation:none}.pp-ring-fg{transition:none}}
.pc-pass .pc-art{width:100%}
.pc-stamps{max-width:360px;margin:0 auto}
@media (max-width:560px){.pc-pass .pc-art{max-width:300px}}
.pc-pass{overflow:hidden}
/* ===== Quiz + food challenge v2 (Oct 20) ===== */
.qfan{position:relative;height:250px;width:100%;max-width:420px;margin:0 auto}
.qf-card{position:absolute;left:50%;bottom:16px;width:122px;height:160px;margin-left:-61px;background:var(--bg);border:5px solid #fff;border-radius:20px;box-shadow:0 10px 22px rgba(30,74,42,.18);display:flex;align-items:center;justify-content:center;transform-origin:50% 100%;transform:translateX(calc(var(--i) * 64px - 96px)) rotate(var(--r));transition:transform .65s cubic-bezier(.34,1.56,.64,1) calc(var(--i)*90ms),opacity .3s calc(var(--i)*90ms)}
.qf-card img{width:94px;height:94px;object-fit:contain}
.qf-card:nth-child(3),.qf-card:nth-child(4){z-index:1}.qf-card:nth-child(1),.qf-card:nth-child(4){bottom:4px}
.qf-q{position:absolute;left:50%;bottom:0;z-index:3;width:132px;height:172px;margin-left:-66px;background:linear-gradient(150deg,#8C6FE0,#E5426F 70%,#FF8A1F);border:6px solid #fff;border-radius:24px;box-shadow:0 16px 30px rgba(140,40,90,.3);display:grid;place-items:center;transition:transform .6s cubic-bezier(.34,1.7,.64,1) .45s,opacity .3s .45s}
.qf-q b{font:700 118px/1 Fredoka,sans-serif;color:#fff;text-shadow:0 6px 0 rgba(0,0,0,.16)}
.qf-q::after{content:"";position:absolute;inset:8px 8px auto auto;width:44%;height:30%;border-radius:50%;background:rgba(255,255,255,.28);transform:rotate(30deg)}
.qf-sp{position:absolute;font-style:normal;color:#FFC734;font-size:28px;text-shadow:0 2px 0 rgba(0,0,0,.08)}.qf-sp.s1{left:6%;top:12%}.qf-sp.s2{right:6%;top:4%;font-size:22px;color:#E5426F}.qf-sp.s3{right:14%;bottom:46%;font-size:18px;color:#38A6E8}
.qfan.arm:not(.in) .qf-card{transform:translateX(0) rotate(0) scale(.4);opacity:0}.qfan.arm:not(.in) .qf-q{transform:scale(.2) rotate(-30deg);opacity:0}
@media (prefers-reduced-motion:no-preference){.qfan.in .qf-q b{display:inline-block;animation:qfWig 2.6s ease-in-out 1.2s infinite}.qf-sp{animation:qfTw 1.8s ease-in-out infinite}.qf-sp.s2{animation-delay:.6s}.qf-sp.s3{animation-delay:1.2s}}
@keyframes qfWig{0%,70%,100%{transform:rotate(0)}76%{transform:rotate(-14deg) scale(1.08)}84%{transform:rotate(12deg) scale(1.08)}92%{transform:rotate(-5deg)}}
@keyframes qfTw{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.5) rotate(45deg);opacity:.5}}
.qfan-pg{margin-top:18px}
@media (max-width:480px){.qfan{height:206px}.qf-card{width:100px;height:132px;margin-left:-50px;transform:translateX(calc(var(--i) * 50px - 75px)) rotate(var(--r))}.qf-card img{width:76px;height:76px}.qf-q{width:110px;height:144px;margin-left:-55px}.qf-q b{font-size:96px}}
/* quiz: bouncy answers + friend progress */
.qopt{min-height:92px;font-size:21px;border-radius:26px;border-width:3px;box-shadow:0 6px 0 rgba(30,74,42,.13);transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,border-color .18s}
.qopts .qopt:nth-child(4n+1){background:#FFE7F0}.qopts .qopt:nth-child(4n+2){background:#E3F4DA}.qopts .qopt:nth-child(4n+3){background:#FFF3C9}.qopts .qopt:nth-child(4n+4){background:#E2F1FB}
.qopt .e{font-size:44px;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.qopt:hover{transform:translateY(-3px) rotate(-.6deg);border-color:var(--sun);box-shadow:0 9px 0 rgba(30,74,42,.13)}.qopt:hover .e{transform:scale(1.18) rotate(-8deg)}
.qopt:active{transform:scale(.95,.9);box-shadow:0 2px 0 rgba(30,74,42,.13)}
.qopt.picked{border-color:var(--green);animation:qPick .26s ease-out}
@media (prefers-reduced-motion:no-preference){#qopts .qopt{animation:qIn .5s cubic-bezier(.34,1.56,.64,1) var(--d,0ms) both}#qopts .qopt.picked{animation:qPick .26s ease-out}}
@keyframes qIn{0%{opacity:0;transform:scale(.6) translateY(16px)}70%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:none}}
@keyframes qPick{0%{transform:scale(1)}35%{transform:scale(.9,.84)}70%{transform:scale(1.06,1.04)}100%{transform:scale(1)}}
.qprog{align-items:flex-end}.qtrack{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.qprog .bar{height:14px;background:#EEF4EA}.qprog .bar i{background:linear-gradient(90deg,#3E8E41,#8BC34A,#FFC734);transition:width .5s cubic-bezier(.34,1.56,.64,1)}
.qicons{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between}
.qicons li{width:38px;height:38px;border-radius:50%;background:#fff;border:3px solid #E4ECE0;display:grid;place-items:center;filter:grayscale(1);opacity:.55;transform:scale(.85);transition:all .35s cubic-bezier(.34,1.56,.64,1)}
.qicons img{width:30px;height:30px;object-fit:contain}
.qicons li.done{filter:none;opacity:1;border-color:var(--green)}.qicons li.on{filter:none;opacity:1;transform:scale(1.18);border-color:var(--sun);box-shadow:0 0 0 4px rgba(255,199,52,.3)}
@media (prefers-reduced-motion:no-preference){.qicons li.on{animation:qHop 1.2s ease-in-out infinite}}
@keyframes qHop{0%,100%{transform:scale(1.18) translateY(0)}50%{transform:scale(1.18) translateY(-4px)}}
.qfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.qfoot .qback{margin-top:0}.qfoot .qback[hidden]+.snd-btn{margin-left:auto}
/* quiz reveal */
.qrv-card{text-align:center;overflow:hidden}.qrv-k{font:700 clamp(28px,4vw,40px) Fredoka,sans-serif;color:var(--forest);margin:0 0 16px}
.qrv-slot{position:relative;width:210px;height:210px;margin:0 auto;border-radius:50%;background:radial-gradient(circle,#fff 55%,#FFF3C9);border:8px solid #FFC734;box-shadow:inset 0 0 0 6px #fff,0 12px 30px rgba(229,66,111,.25);display:grid;place-items:center;overflow:hidden}
.qrv-slot img{width:150px;height:150px;object-fit:contain;position:relative;z-index:1}
.qrv-slot img.tk{animation:qTk .11s ease-out}
@keyframes qTk{0%{transform:translateY(-45%);filter:blur(2px)}100%{transform:none;filter:none}}
.qrv-burst{position:absolute;inset:-30%;background:repeating-conic-gradient(#FFE07A 0 10deg,#fff 10deg 20deg);opacity:0;transition:opacity .3s}
.qreveal.won .qrv-burst{opacity:1;animation:qSpin 6s linear infinite}.qreveal.won .qrv-slot{animation:qWin .6s cubic-bezier(.34,1.7,.64,1);border-color:#E5426F}.qreveal.won .qrv-slot img{animation:none;transform:scale(1.12)}
.qrv-n{font:700 clamp(30px,5vw,46px) Fredoka,sans-serif;color:#E5426F;margin:14px 0 0;min-height:1.2em}
@keyframes qSpin{to{transform:rotate(360deg)}}
@keyframes qWin{0%{transform:scale(.8)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
/* quiz result: big friend art */
.qres-card{position:relative;display:grid;place-items:center}
.qres-card .qr-rays{position:absolute;width:112%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(rgba(255,199,52,.45) 0 9deg,rgba(255,255,255,0) 9deg 18deg),radial-gradient(circle,#FFF3C9,#FFE7F0 70%);-webkit-mask:radial-gradient(circle,#000 50%,transparent 71%);mask:radial-gradient(circle,#000 50%,transparent 71%)}
.qres-card img{position:relative;width:100%;max-width:380px;border-radius:0;box-shadow:none;filter:drop-shadow(0 16px 20px rgba(30,74,42,.25))}
@media (prefers-reduced-motion:no-preference){.qres-card .qr-rays{animation:qSpin 30s linear infinite}.qres.enter .qres-card img{animation:qBig .8s cubic-bezier(.34,1.56,.64,1)}.qres.enter .qres-txt>*{animation:qUp .5s ease-out both}.qres.enter .qres-txt>:nth-child(2){animation-delay:.08s}.qres.enter .qres-txt>:nth-child(3){animation-delay:.16s}.qres.enter .qres-txt>:nth-child(4){animation-delay:.24s}.qres.enter .qres-txt>:nth-child(n+5){animation-delay:.32s}}
@keyframes qBig{0%{transform:scale(.3) rotate(-12deg);opacity:0}60%{transform:scale(1.1) rotate(4deg);opacity:1}100%{transform:none}}
@keyframes qUp{0%{opacity:0;transform:translateY(14px)}100%{opacity:1;transform:none}}
.qres-boxes{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;margin:6px 0 4px;text-align:left}.qres-boxes .pf-box{margin:0}
.qhello{background:#FFE7F0}.qhello b{color:#B42A55}.qh-w{display:block;font:700 28px/1.2 Fredoka,sans-serif;color:#E5426F;overflow-wrap:anywhere}
@media (max-width:560px){.qres-boxes{grid-template-columns:1fr}}
/* homepage challenge card: plate */
.pc-chal .cp-art{position:relative}
.cplate{position:relative;width:100%;max-width:340px;margin:0 auto;padding-top:16%}.cp-svg{display:block;width:100%;height:auto}
.pc-chal .cp-art img.cp-food{position:absolute;left:28%;bottom:22%;width:44%;height:auto;margin:0;filter:drop-shadow(0 10px 8px rgba(0,0,0,.18));transform-origin:50% 100%}
.cp-badge{position:absolute;left:50%;bottom:-4%;transform:translateX(-50%) rotate(-3deg);white-space:nowrap;background:#E5426F;color:#fff;font:600 16px Fredoka,sans-serif;padding:7px 14px;border-radius:999px;box-shadow:0 4px 0 #B42A55;max-width:96%;overflow:hidden;text-overflow:ellipsis}
.cp-badge b{font-weight:700}
.cplate.arm:not(.in) .cp-food{opacity:0;transform:translateY(-120%)}.cplate.arm:not(.in) .cp-badge{opacity:0;transform:translateX(-50%) scale(.3)}
@media (prefers-reduced-motion:no-preference){.cplate.in .cp-food{animation:cpDrop .9s cubic-bezier(.3,.6,.4,1) both,cpBob 2.4s ease-in-out 1.6s infinite}.cplate.in .cp-badge{animation:cpBadge .5s cubic-bezier(.34,1.7,.64,1) .7s both}}
@keyframes cpDrop{0%{transform:translateY(-130%);opacity:0}45%{transform:translateY(0) scale(1.12,.8);opacity:1}62%{transform:translateY(-16%) scale(.95,1.06)}80%{transform:translateY(0) scale(1.05,.93)}100%{transform:none}}
@keyframes cpBob{0%,100%{transform:none}50%{transform:translateY(-6%) rotate(-3deg)}}
@keyframes cpBadge{0%{opacity:0;transform:translateX(-50%) scale(.3) rotate(-20deg)}100%{opacity:1;transform:translateX(-50%) rotate(-3deg)}}
/* challenge page: meter, stickers */
.ch-top{display:grid;grid-template-columns:auto 1fr auto;gap:10px 18px;align-items:center;background:#fff;border-radius:24px;padding:14px 20px;margin:0 0 18px;box-shadow:0 10px 26px rgba(30,74,42,.08)}
.ch-top .ch-next{margin:0;font-size:16px}.ch-top .streak{grid-column:1/-1;margin:0}
.ch-mt{margin:0 0 6px;font:600 17px Fredoka,sans-serif;color:var(--forest)}.ch-mt b{color:#E5426F;font-size:22px}
.ch-dots{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.ch-dots li{width:28px;height:28px;border-radius:50%;border:3px dashed #D9C9A8;display:grid;place-items:center;font-size:14px}
.ch-dots li.on{border:3px solid #fff;background:linear-gradient(145deg,#FFC734,#FF8A1F);box-shadow:0 2px 5px rgba(0,0,0,.18)}.ch-dots li.on::after{content:"★";color:#fff}
@media (prefers-reduced-motion:no-preference){.ch-dots li.on{animation:qWin .5s cubic-bezier(.34,1.7,.64,1)}}
@media (max-width:700px){.ch-top{grid-template-columns:1fr;text-align:center;justify-items:center}}
.ch-bigstk{position:absolute;top:44px;right:12px;width:110px;height:110px;border-radius:26%;background:#fff;padding:7px;box-shadow:0 6px 14px rgba(0,0,0,.2);transform:rotate(9deg);z-index:2}
.ch-bigstk img{width:100%;height:100%;object-fit:contain;border-radius:22%;background:radial-gradient(circle at 40% 35%,#FFF7D6,#FFE0A3)}
.ch-bigstk b{position:absolute;right:-10px;bottom:-10px;font-size:40px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.ch-bigstk::after,.ch-cell .sk::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.75) 0 16%,rgba(255,255,255,0) 38%,rgba(255,255,255,0) 70%,rgba(255,255,255,.35) 85%,rgba(255,255,255,0));pointer-events:none}
.ch-bigstk::before,.ch-cell.got .sk::before{content:"";position:absolute;right:0;bottom:0;width:26%;height:26%;background:linear-gradient(315deg,rgba(0,0,0,0) 48%,#E8E8E8 50%,#fff 72%);border-top-left-radius:40%;box-shadow:-2px -2px 4px rgba(0,0,0,.14);z-index:2}
.ch-bigstk.slap{animation:stkSlap .6s cubic-bezier(.3,.7,.4,1)}
@keyframes stkSlap{0%{transform:scale(2.6) rotate(-25deg);opacity:0}45%{transform:scale(.82,1.18) rotate(9deg);opacity:1}62%{transform:scale(1.18,.84) rotate(9deg)}80%{transform:scale(.96,1.05) rotate(9deg)}100%{transform:rotate(9deg)}}
.ch-cell .sk{position:relative;display:block;width:76%;aspect-ratio:1;border-radius:24%;border:3px dashed #D9C9A8;padding:4px}
.ch-cell .sk img{width:100%;height:100%;object-fit:contain;filter:grayscale(1) opacity(.4)}
.ch-cell.got .sk{border:0;padding:6px;background:#fff;box-shadow:0 4px 8px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.04);transform:rotate(var(--rot,0deg))}
.ch-cell.got .sk img{filter:none;border-radius:20%;background:radial-gradient(circle at 40% 35%,#FFF7D6,#FFE0A3)}
.ch-cell.got{background:#FFFDF6}.ch-cell .stk{z-index:3}
.ch-cell.slap .sk{animation:cellSlap .6s cubic-bezier(.3,.7,.4,1) .15s both}
@keyframes cellSlap{0%{transform:scale(2.2) rotate(-30deg);opacity:0}45%{transform:scale(.8,1.2) rotate(var(--rot));opacity:1}62%{transform:scale(1.2,.82) rotate(var(--rot))}80%{transform:scale(.95,1.05) rotate(var(--rot))}100%{transform:rotate(var(--rot))}}
@media (prefers-reduced-motion:reduce){.ch-bigstk.slap,.ch-cell.slap .sk,#qopts .qopt,.qopt.picked,.qrv-slot img.tk,.qreveal.won .qrv-slot,.qreveal.won .qrv-burst{animation:none!important}.qf-card,.qf-q{transition:none}}
.ch-top .snd-btn{grid-row:1;grid-column:3}.ch-top .streak{grid-row:2}
@media (max-width:700px){.ch-top .snd-btn,.ch-top .streak{grid-row:auto;grid-column:auto}}
