:root{
--teal:#08a7c8;--teal2:#007e9f;--blue:#086a91;--dark:#17384c;
--green:#6dbb45;--green2:#3d9c57;--yellow:#f5c842;--yellow2:#ffdf67;
--cyan:#dff8ff;--mint:#eaf8df;--purple:#7359c9;--pink:#ef6d99;
--orange:#f49a43;--cream:#fff9dc;--white:#fff;--muted:#637987;
--shadow:0 22px 55px rgba(20,73,91,.12)
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Nunito",sans-serif;color:var(--dark);line-height:1.6;background:#fff;overflow-x:hidden}
h1,h2,h3,h4,.word-logo,.btn,.class-card,.package-card{font-family:"Baloo 2",sans-serif}
a{text-decoration:none;color:inherit}button,input,select{font:inherit}button{cursor:pointer}
.container{width:min(1180px,92%);margin:auto}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}

/* text-only logo */
.site-header{position:sticky;top:0;z-index:2000;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-bottom:1px solid #dceef2}
.nav-wrap{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.word-logo{display:flex;flex-direction:column;line-height:.9;letter-spacing:1px}
.logo-top{font-size:1.65rem;font-weight:1000;color:var(--teal);text-shadow:1px 1px 0 #bfeef5}
.logo-bottom{font-family:"Nunito";font-size:.58rem;letter-spacing:1.7px;font-weight:1000;color:var(--green2);margin-top:7px}
.main-nav{display:flex;align-items:center;gap:3px;background:#f1fbfd;border:1px solid #d7edf1;padding:6px;border-radius:999px;box-shadow:0 8px 25px rgba(22,77,93,.06)}
.main-nav a{font-size:.82rem;font-weight:1000;padding:9px 10px;border-radius:999px;transition:.25s}
.main-nav a:hover{background:#fff;color:var(--teal2);box-shadow:0 5px 14px rgba(18,77,93,.09)}
.register-nav{border:0;border-radius:999px;padding:10px 15px;background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;font-weight:1000;box-shadow:0 8px 18px rgba(8,167,200,.27);transition:.25s}
.register-nav:hover{transform:translateY(-2px)}
.menu-toggle{display:none;border:0;background:#eaf9fc;color:var(--blue);font-size:1.5rem;padding:8px 12px;border-radius:13px}

/* hero */
.hero{position:relative;min-height:680px;display:flex;align-items:center;overflow:hidden;background:
radial-gradient(circle at 86% 20%,rgba(245,200,66,.3),transparent 23%),
radial-gradient(circle at 10% 88%,rgba(109,187,69,.2),transparent 27%),
linear-gradient(135deg,#f0fcff,#fff 54%,#fffced)}
.hero-pattern{position:absolute;inset:0;opacity:.28;background-image:radial-gradient(#08a7c8 1px,transparent 1px);background-size:30px 30px}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;position:relative;z-index:2}
.welcome-pill,.eyebrow{display:inline-flex;align-items:center;font-size:.72rem;letter-spacing:1.1px;font-weight:1000;color:var(--teal2)}
.welcome-pill{padding:9px 14px;border-radius:999px;background:#fff;border:1px solid #d5eef3;box-shadow:0 8px 22px rgba(20,74,90,.08);margin-bottom:18px}
.hero h1{font-size:clamp(3.2rem,6vw,5.2rem);line-height:.92;letter-spacing:-2px;margin-bottom:20px}
.hero h1 span{color:var(--teal2);position:relative}
.hero h1 span:after{content:"";position:absolute;left:3px;right:5px;bottom:-5px;height:8px;border-radius:50%;background:var(--yellow);z-index:-1}
.hero-copy>p{max-width:630px;color:var(--muted);font-size:1.06rem}.hero-copy b{color:var(--teal2)}
.hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.hero-tags span{background:#fff;border:1px solid #dceef2;border-radius:12px;padding:7px 10px;font-size:.8rem;font-weight:1000;box-shadow:0 6px 16px rgba(20,75,91,.06)}
.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:13px 22px;font-size:1rem;font-weight:1000;transition:.25s}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(21,76,93,.16)}
.btn-primary{color:#fff;background:linear-gradient(135deg,var(--teal),var(--blue));box-shadow:0 11px 25px rgba(8,167,200,.28)}
.btn-outline{background:#fff;border:2px solid #cce7ed;color:var(--blue)}
.btn-white{background:#fff;color:var(--teal2)}
.hero-art{height:490px;position:relative}.sun{position:absolute;right:6%;top:10px;font-size:4.6rem;animation:sunspin 10s linear infinite}.cloud{position:absolute;font-size:3.5rem;opacity:.8;animation:cloudmove 10s ease-in-out infinite}.cloud1{left:0;top:55px}.cloud2{right:26%;top:105px;animation-delay:1.5s}.bird{position:absolute;font-size:1.5rem;animation:birdfly 5s ease-in-out infinite}.bird1{left:18%;top:125px}.bird2{left:34%;top:75px;animation-delay:1.2s}
.tree-scene{position:absolute;left:50%;bottom:15px;transform:translateX(-50%);width:320px;height:390px;animation:treesway 4s ease-in-out infinite}.tree-crown{position:absolute;font-size:13rem;left:20px;top:0;filter:drop-shadow(0 18px 16px rgba(42,114,59,.14))}.tree-trunk{position:absolute;font-size:10rem;left:86px;top:135px}.tree-fruit{position:absolute;font-size:2rem;background:#fff;border-radius:50%;width:54px;height:54px;display:grid;place-items:center;box-shadow:0 8px 16px rgba(20,75,91,.13);animation:fruitbob 2.8s ease-in-out infinite}.f1{left:40px;top:90px}.f2{left:155px;top:70px;animation-delay:.5s}.f3{left:215px;top:125px;animation-delay:1s}.f4{left:90px;top:145px;animation-delay:1.5s}.tree-child{position:absolute;font-size:3.1rem;bottom:0;animation:kidjump 2.5s infinite ease-in-out}.child1{left:15px}.child2{right:5px;animation-delay:1s}
.hero-card{position:absolute;background:#fff;border:2px solid #e1f1f3;border-radius:18px;padding:10px 13px;box-shadow:0 14px 30px rgba(22,78,93,.12);display:flex;flex-direction:column;font-size:.75rem;animation:cardfloat 3.5s ease-in-out infinite}.hero-card b{color:var(--teal2);font-size:1rem}.hero-card small{color:var(--muted);font-weight:800}.hc1{left:0;top:190px}.hc2{right:0;top:230px;animation-delay:.8s}.hc3{left:12px;bottom:65px;animation-delay:1.5s}
.hero-bubble{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);border:2px solid rgba(8,167,200,.1);animation:bubble 7s ease-in-out infinite}.hb1{width:70px;height:70px;right:4%;top:34%}.hb2{width:35px;height:35px;left:46%;top:8%;animation-delay:1s}.hb3{width:55px;height:55px;left:2%;bottom:12%;animation-delay:2s}

/* ribbon */
.colour-ribbon{background:linear-gradient(90deg,var(--teal2),var(--teal),var(--green2));color:#fff;overflow:hidden;padding:11px 0;font-weight:1000;letter-spacing:.8px}.ribbon-track{display:flex;width:max-content;gap:55px;animation:marquee 28s linear infinite}.ribbon-track span{white-space:nowrap}

/* general sections */
.section{padding:100px 0}.section-heading{text-align:center;max-width:780px;margin:0 auto 48px}.section-heading h2{font-size:clamp(2.4rem,4.7vw,3.6rem);line-height:1.02;margin:8px 0 12px}.section-heading h2 span{color:var(--teal2)}.section-heading p{color:var(--muted);font-size:1rem}

/* olympiads */
.olympiad-section{background:#fff}
.olympiad-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.olympiad-card{min-height:335px;border-radius:32px;padding:25px 23px;position:relative;overflow:hidden;border:1px solid rgba(20,77,93,.1);box-shadow:0 14px 35px rgba(22,77,93,.09);transition:.4s;transition-delay:var(--delay)}
.olympiad-card:hover{transform:translateY(-13px) rotate(-1deg);box-shadow:0 28px 55px rgba(22,77,93,.16)}
.olympiad-card.cyan{background:linear-gradient(150deg,#dcf9ff,#fff)}.olympiad-card.green{background:linear-gradient(150deg,#e8f8de,#fff)}.olympiad-card.yellow{background:linear-gradient(150deg,#fff7ce,#fff)}.olympiad-card.blue{background:linear-gradient(150deg,#e5f3fa,#fff)}
.card-stars{position:absolute;right:18px;top:12px;color:rgba(255,255,255,.85);font-size:1.1rem;animation:twinkle 1.8s infinite}.kid-mascot{position:absolute;right:13px;bottom:7px;font-size:4.2rem;animation:kidfloat 3s infinite ease-in-out}.olympiad-icon{width:74px;height:74px;background:#fff;border-radius:24px;display:grid;place-items:center;font-size:2.4rem;box-shadow:0 10px 22px rgba(20,77,93,.09);animation:iconbounce 2.6s infinite}.olympiad-code{margin-top:16px;font-weight:1000;color:var(--teal2);letter-spacing:1.4px}.olympiad-card h3{font-size:1.35rem;line-height:1.1;margin:3px 0 10px}.olympiad-card p{color:#637987;font-size:.88rem;max-width:245px;min-height:74px}.card-bottom{position:absolute;left:23px;bottom:21px;right:23px;display:flex;justify-content:space-between;font-weight:1000;color:var(--teal2)}.card-bottom b{font-size:1.5rem;animation:arrowmove 1.5s infinite}.card-wave{position:absolute;left:-15%;right:-15%;bottom:-55px;height:110px;border-radius:50%;background:rgba(255,255,255,.7)}

/* subjects */
.subjects-section{background:linear-gradient(180deg,#f5fcfd,#fff)}
.subject-stage{min-height:620px;position:relative;display:grid;place-items:center}
.subject-centre{width:170px;height:170px;border-radius:50%;background:#fff;border:10px solid #dff5e4;box-shadow:0 20px 50px rgba(40,101,70,.12);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;z-index:3;animation:centerpulse 3s infinite}.subject-centre:first-letter{font-size:2.4rem}.subject-centre strong{font-size:1rem;line-height:1}.subject-centre small{font-size:.62rem;color:var(--muted);font-weight:900;margin-top:5px}.subject-orbit{position:absolute;border:2px dashed #c9e9e7;border-radius:50%;animation:orbitspin 25s linear infinite}.orbit1{width:380px;height:380px}.orbit2{width:560px;height:560px;border-color:#d9eecf;animation-direction:reverse;animation-duration:35s}
.subject-card{position:absolute;width:245px;min-height:180px;background:#fff;border-radius:27px;padding:20px;border:2px solid #e6eff1;box-shadow:0 15px 35px rgba(20,77,93,.1);overflow:hidden;transition:.35s}.subject-card:hover{transform:scale(1.05) rotate(-2deg);box-shadow:0 25px 50px rgba(20,77,93,.15)}
.subject-1{top:8%;left:4%}.subject-2{top:2%;right:4%}.subject-3{bottom:5%;right:10%}.subject-4{bottom:2%;left:10%}
.subject-card.purple{background:linear-gradient(145deg,#f3efff,#fff);border-color:#e2d9ff}.subject-card.cyan{background:linear-gradient(145deg,#e6faff,#fff);border-color:#d1f0f6}.subject-card.green{background:linear-gradient(145deg,#eef9e7,#fff);border-color:#d8eccd}.subject-card.yellow{background:linear-gradient(145deg,#fff8d7,#fff);border-color:#f4e6a4}.subject-card.pink{background:linear-gradient(145deg,#fff0f5,#fff);border-color:#f7d8e3}
.subject-card-top{display:flex;justify-content:space-between;align-items:center}.subject-icon{width:55px;height:55px;background:#fff;border-radius:17px;display:grid;place-items:center;font-size:1.9rem;box-shadow:0 8px 17px rgba(20,77,93,.08);animation:iconbounce 3s infinite}.subject-number{font-size:.7rem;color:#9aadb6;font-weight:1000}.subject-card h3{font-size:1.2rem;margin-top:12px}.subject-card p{font-size:.79rem;color:var(--muted);font-weight:800}.subject-stars{font-size:.7rem;color:var(--yellow);margin-top:10px;letter-spacing:2px}.subject-blob{position:absolute;width:100px;height:100px;border-radius:50%;right:-45px;bottom:-50px;background:rgba(255,255,255,.65)}

/* classes */
.classes-section{background:linear-gradient(180deg,#fff,#fffbea)}
.class-playground{min-height:520px;border-radius:45px;position:relative;overflow:hidden;background:linear-gradient(#dff8ff 0 70%,#bce58f 70%);padding:75px 25px 105px;box-shadow:var(--shadow)}
.play-sun{position:absolute;right:35px;top:20px;font-size:4.7rem;animation:sunspin 9s linear infinite}.play-cloud{position:absolute;font-size:3.7rem;opacity:.85;animation:cloudmove 10s infinite}.pc1{left:5%;top:45px}.pc2{left:48%;top:15px;animation-delay:1.4s}.rainbow{position:absolute;right:15%;top:120px;font-size:5rem;animation:rainbowfloat 4s infinite}
.class-grid{position:relative;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:960px;margin:auto}
.class-card{border:0;background:#fff;border-radius:27px;min-height:155px;padding:15px 10px;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;box-shadow:0 13px 28px rgba(47,97,67,.14);transition:.35s;animation:classin .65s both;animation-delay:calc(var(--i)*80ms)}.class-card:hover{transform:translateY(-12px) rotate(-2deg);box-shadow:0 24px 45px rgba(47,97,67,.2)}.class-number{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#fff0a7,#ffd454);border:6px solid #fff;font-size:2rem;font-weight:1000;box-shadow:0 7px 18px rgba(226,171,39,.24);animation:ballbounce 2.5s infinite}.class-card strong{font-size:1rem;margin-top:6px}.class-card small{font:800 .7rem "Nunito";color:var(--muted)}.mini-icons{font-size:.7rem;margin-top:6px}.class-sparkle{position:absolute;top:8px;right:10px;color:var(--teal);animation:twinkle 1.8s infinite}.ground{position:absolute;left:-5%;right:-5%;bottom:-40px;height:120px;background:#a8dc7e;border-radius:50% 50% 0 0}.play-kids{position:absolute;z-index:7;bottom:8px;left:50%;transform:translateX(-50%);font-size:2.2rem;white-space:nowrap;animation:kidswiggle 3s infinite}

/* puzzle */
.puzzle-section{background:#f4fbfc}
.puzzle-slider{position:relative;max-width:1030px;margin:auto;padding:0 55px}
.puzzle-window{overflow:hidden;border-radius:35px;box-shadow:var(--shadow)}
.puzzle-track{display:flex;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.puzzle-slide{min-width:100%;min-height:385px;padding:40px 50px;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;background:linear-gradient(120deg,#0a8eaa,#63c54f);position:relative;overflow:hidden;color:#fff}.puzzle-slide:nth-child(2){background:linear-gradient(120deg,#08779d,#7359c9)}.puzzle-slide:nth-child(3){background:linear-gradient(120deg,#ef9a40,#ef6d99)}.puzzle-slide:nth-child(4){background:linear-gradient(120deg,#4b9f63,#0a8eaa)}
.puzzle-slide:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.1);right:-80px;top:-120px}.puzzle-number{font-weight:1000;letter-spacing:1.5px;color:#efffff}.puzzle-left h3{font-size:2.8rem;line-height:1;margin:9px 0}.puzzle-left p{font-size:1.05rem;opacity:.92}.puzzle-btn{margin-top:24px;border:0;border-radius:999px;padding:11px 18px;background:#fff;color:var(--blue);font-weight:1000;box-shadow:0 9px 20px rgba(0,0,0,.12)}.puzzle-board{height:270px;position:relative;background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.25);border-radius:30px;display:grid;place-items:center;overflow:hidden}.puzzle-kid{font-size:6.2rem;position:absolute;bottom:-7px;left:16px;animation:kidjump 2.2s infinite}.puzzle-bubbles{display:grid;grid-template-columns:repeat(2,90px);gap:13px;margin-left:105px;transform:rotate(-4deg)}.puzzle-bubbles span{width:90px;height:90px;background:#fff;color:var(--dark);border-radius:23px;display:grid;place-items:center;font-size:2.2rem;box-shadow:0 10px 18px rgba(0,0,0,.1);animation:tilepop 2.5s infinite}.puzzle-bubbles span:nth-child(2){animation-delay:.3s}.puzzle-bubbles span:nth-child(3){animation-delay:.6s}.puzzle-bubbles span:nth-child(4){animation-delay:.9s}.puzzle-bubbles .question{background:var(--yellow);font-size:2.4rem}.thinking{position:absolute;right:16px;top:15px;font-size:2rem;animation:cardfloat 2.5s infinite}
.slider-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:47px;height:47px;border-radius:50%;border:0;background:#fff;color:var(--teal2);font-size:2.3rem;line-height:1;box-shadow:0 10px 22px rgba(20,77,93,.16)}.slider-arrow:hover{transform:translateY(-50%) scale(1.08)}.prev{left:0}.next{right:0}.slider-dots{display:flex;justify-content:center;gap:7px;margin-top:18px}.slider-dots button{width:9px;height:9px;border-radius:50%;border:0;background:#b8d9de}.slider-dots button.active{width:27px;border-radius:10px;background:var(--teal)}

/* packages */
.packages-section{background:linear-gradient(180deg,#fff,#f8fcfa)}
.package-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:930px;margin:auto;align-items:stretch}
.package-card{position:relative;background:#fff;border-radius:35px;padding:31px;box-shadow:0 18px 45px rgba(24,79,91,.1);border:2px solid #e0edf0;overflow:hidden;transition:.35s}.package-card:hover{transform:translateY(-10px);box-shadow:0 28px 58px rgba(24,79,91,.16)}.package-card.starter{border-color:#bfe7ed}.package-card.premium{border-color:#7fcdb5;background:linear-gradient(160deg,#fff,#f7fff6)}.package-top{display:flex;justify-content:space-between;align-items:center}.package-label{font:1000 .72rem "Nunito";letter-spacing:1.4px;color:var(--teal2);background:#e7f9fc;border-radius:999px;padding:7px 10px}.premium .package-label{background:#eaf8df;color:var(--green2)}.package-emoji{font-size:2.5rem;animation:iconbounce 2.7s infinite}.package-card h3{font-size:2rem;line-height:1;margin:15px 0 4px}.package-subtitle{color:var(--muted);font:700 .82rem "Nunito"}.price{display:flex;align-items:baseline;gap:12px;margin:18px 0 2px}.price del{font:800 1.2rem "Nunito";color:#9babb3}.price strong{font-size:3.3rem;line-height:1;color:var(--teal2)}.premium .price strong{color:var(--green2)}.price-save{display:inline-block;background:#fff2c7;color:#8c6a00;padding:4px 9px;border-radius:999px;font:1000 .72rem "Nunito"}.package-features{list-style:none;margin:22px 0}.package-features li{padding:8px 0;border-bottom:1px dashed #e1eaec;font:800 .9rem "Nunito"}.package-features .yes{color:#3f7653}.package-features .no{color:#9aa8ad}.package-btn{width:100%;padding:13px;border-radius:15px;font:1000 1.05rem "Baloo 2";transition:.25s}.package-btn.outline{border:2px solid var(--teal);background:#fff;color:var(--teal2)}.package-btn.filled{border:0;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;box-shadow:0 11px 23px rgba(61,156,87,.25)}.package-btn:hover{transform:translateY(-3px)}.popular-badge{position:absolute;right:20px;top:19px;background:var(--yellow);color:#725600;padding:6px 10px;border-radius:999px;font:1000 .65rem "Nunito";animation:badgepulse 2s infinite}.package-note{max-width:930px;margin:22px auto 0;background:#eefaff;border:1px solid #d4edf3;border-radius:17px;padding:13px 17px;display:flex;gap:10px;align-items:center;color:#4c6874;font-size:.86rem}.package-note span{font-size:1.3rem}

/* fun practice */
.fun-practice-section{padding-top:45px;background:linear-gradient(180deg,#f8fcfc,#fff)}
.fun-practice-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;align-items:stretch}
.fun-card{grid-column:span 2;position:relative;display:flex;align-items:center;gap:15px;min-height:145px;padding:20px;border-radius:25px;border:2px solid transparent;box-shadow:0 14px 32px rgba(20,77,93,.08);overflow:hidden;transition:.3s}
.fun-card:nth-child(4){grid-column:2 / span 2}
.fun-card:nth-child(5){grid-column:4 / span 2}
.fun-card:hover{transform:translateY(-7px) rotate(-1deg);box-shadow:0 22px 42px rgba(20,77,93,.14)}
.fun-card:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-42px;bottom:-50px;background:rgba(255,255,255,.6)}
.fun-purple{background:linear-gradient(135deg,#f4efff,#fff);border-color:#e4d8ff}
.fun-cyan{background:linear-gradient(135deg,#e7fbff,#fff);border-color:#cceff5}
.fun-yellow{background:linear-gradient(135deg,#fff8d9,#fff);border-color:#f3e4a0}
.fun-green{background:linear-gradient(135deg,#eef9e7,#fff);border-color:#d5ebc9}
.fun-pink{background:linear-gradient(135deg,#fff0f6,#fff);border-color:#f5d8e5}
.fun-icon{width:65px;height:65px;flex:0 0 65px;display:grid;place-items:center;border-radius:20px;background:#fff;font-size:2rem;box-shadow:0 8px 18px rgba(20,77,93,.1);animation:iconbounce 3s infinite}
.fun-card-content{position:relative;z-index:2}
.fun-tag{font-size:.6rem;font-weight:1000;letter-spacing:1px;color:#78909a}
.fun-card h3{margin:3px 0 3px;font-size:1.15rem}
.fun-card p{font-size:.73rem;color:var(--muted);font-weight:700;line-height:1.35;margin:0}
.fun-arrow{position:absolute;right:15px;top:13px;font-size:1.35rem;font-weight:1000;color:var(--teal);z-index:2;transition:.25s}
.fun-card:hover .fun-arrow{transform:translateX(4px)}
/* package subjects */
.package-subjects{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0 8px}
.package-subjects span{padding:5px 9px;border-radius:999px;background:#f1faf8;border:1px solid #d7eee9;color:#48736d;font:800 .67rem "Nunito"}
.package-card.premium .package-subjects span{background:#f1f9ed;border-color:#d9ebd0;color:#47714d}

/* CTA/footer */
.register-cta{padding:70px 0;background:linear-gradient(135deg,var(--blue),var(--teal),var(--green2));color:#fff;overflow:hidden}.cta-box{display:flex;align-items:center;justify-content:space-between;gap:25px;position:relative;z-index:2}.cta-box .eyebrow{color:#e9ffff}.cta-box h2{font-size:clamp(2rem,4vw,3rem);line-height:1;margin:7px 0}.cta-box p{opacity:.9}.cta-decoration{font-size:2.5rem;white-space:nowrap;animation:stardance 3s infinite}.footer{background:#12384a;color:#b8d0d8;padding-top:55px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:35px;padding-bottom:42px}.footer-logo{font:1000 1.7rem "Baloo 2";color:#53d0e5;letter-spacing:1px}.footer h3,.footer h4{color:#fff}.footer h3{margin:5px 0}.footer h4{margin-bottom:13px}.footer a,.footer button{display:block;color:#b8d0d8;background:none;border:0;text-align:left;margin:6px 0;font-size:.85rem}.footer a:hover,.footer button:hover{color:#fff}.footer-bottom{text-align:center;border-top:1px solid rgba(255,255,255,.1);padding:16px;font-size:.78rem}

/* modal */
.modal{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-overlay{position:absolute;inset:0;background:rgba(13,42,55,.7);backdrop-filter:blur(7px)}.modal-card{position:relative;z-index:2;width:min(680px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:31px;padding:28px;box-shadow:0 35px 100px rgba(0,0,0,.25);animation:modalin .3s}.modal-close{position:absolute;right:15px;top:12px;width:39px;height:39px;border:0;border-radius:50%;background:#eef8fa;color:var(--blue);font-size:1.7rem}.register-head{display:flex;gap:14px;align-items:center;padding-right:38px;margin-bottom:20px}.register-icon{width:62px;height:62px;border-radius:19px;display:grid;place-items:center;background:#e7f9fc;font-size:2rem}.register-head h2{font-size:1.75rem;line-height:1.05}.register-head p{color:var(--muted);font-size:.82rem;margin-top:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group.full{grid-column:1/-1}.form-group label{font-size:.82rem;font-weight:900}.form-group label span{color:#e65770}.form-group input,.form-group select{padding:11px 12px;border:2px solid #e2edf0;border-radius:13px;background:#fbfdfe;outline:0;color:var(--dark);transition:.2s}.form-group input:focus,.form-group select:focus{border-color:#6bcddd;box-shadow:0 0 0 4px rgba(8,167,200,.1)}.form-group input.valid{border-color:#4cbf6b;background:#f4fff6}.form-group input.invalid{border-color:#ef6177;background:#fff5f6}.match-message{min-height:17px;font-size:.72rem;font-weight:900}.match-message.good{color:#2da65b}.match-message.bad{color:#df5069}.register-message{display:none;margin-top:14px;padding:10px 12px;border-radius:12px;font-size:.82rem;font-weight:800}.register-message.error{display:block;background:#fff0f2;color:#d54460}.submit-register{width:100%;margin-top:14px;border:0;border-radius:14px;padding:13px;background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;font:1000 1.05rem "Baloo 2";box-shadow:0 10px 22px rgba(8,167,200,.24)}.submit-register:disabled{opacity:.65}.submit-loader{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-left:8px}.submit-register.loading .submit-loader{display:inline-block}.success-panel{display:none;text-align:center;padding:20px}.success-panel.show{display:block}.success-confetti{font-size:3rem;animation:kidjump 1.4s infinite}.success-panel h2{font-size:2rem;color:var(--teal2)}.success-panel p{color:var(--muted)}.registration-number{display:inline-block;background:#e7f9fc;color:var(--teal2);padding:7px 14px;border-radius:999px;font-weight:1000;margin:10px}.qr-wrap{width:190px;height:190px;margin:10px auto;padding:10px;border:3px dashed #a8dce5;border-radius:17px;display:grid;place-items:center}.qr-note{font-size:.75rem!important;margin-bottom:13px}

/* loader */
.page-loader{position:fixed;inset:0;z-index:9000;background:#fff;display:grid;place-items:center;align-content:center;gap:6px;transition:.5s}.page-loader.hide{opacity:0;visibility:hidden}.loader-tree{font-size:4rem;animation:treesway 1.7s infinite}.page-loader strong{font:1000 1.2rem "Baloo 2";color:var(--teal2)}.page-loader span{font-size:.75rem;color:var(--muted)}

/* animations */
@keyframes marquee{to{transform:translateX(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sunspin{to{transform:rotate(360deg)}}@keyframes cloudmove{0%,100%{transform:translateX(0)}50%{transform:translateX(35px)}}@keyframes birdfly{0%,100%{transform:translate(0,0)}50%{transform:translate(25px,-12px)}}@keyframes treesway{0%,100%{transform:translateX(-50%) rotate(-1deg)}50%{transform:translateX(-50%) rotate(1deg)}}@keyframes fruitbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes kidjump{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes cardfloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}@keyframes bubble{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-20px) scale(1.08)}}@keyframes twinkle{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes iconbounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes kidfloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}@keyframes arrowmove{0%,100%{transform:translateX(0)}50%{transform:translateX(7px)}}@keyframes centerpulse{0%,100%{box-shadow:0 20px 50px rgba(40,101,70,.12),0 0 0 0 rgba(109,187,69,.2)}50%{box-shadow:0 20px 50px rgba(40,101,70,.12),0 0 0 16px rgba(109,187,69,0)}}@keyframes orbitspin{to{transform:rotate(360deg)}}@keyframes rainbowfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes classin{from{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:none}}@keyframes ballbounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes kidswiggle{0%,100%{transform:translateX(-50%)}50%{transform:translateX(-50%) translateY(-5px)}}@keyframes tilepop{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.06) rotate(2deg)}}@keyframes badgepulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes stardance{0%,100%{transform:rotate(-3deg) scale(1)}50%{transform:rotate(3deg) scale(1.08)}}@keyframes modalin{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}

@media(max-width:1050px){
.main-nav a{padding:8px 7px;font-size:.76rem}.olympiad-grid{grid-template-columns:repeat(2,1fr)}.subject-card{width:220px}.subject-1{left:0}.subject-2{right:0}.subject-3{right:4%}.subject-4{left:4%}.fun-card{grid-column:span 2}.fun-card:nth-child(4),.fun-card:nth-child(5){grid-column:span 2}.footer-grid{grid-template-columns:2fr 1fr 1fr}
}
@media(max-width:800px){
.nav-wrap{min-height:70px}.logo-top{font-size:1.35rem}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:75px;left:4%;right:4%;border-radius:22px;flex-direction:column;align-items:stretch;padding:10px;background:#fff;box-shadow:0 22px 50px rgba(20,75,91,.18)}.main-nav.open{display:flex}.main-nav a{text-align:center}.register-nav{margin-top:5px}.hero{padding:70px 0}.hero-grid{grid-template-columns:1fr}.hero-art{height:420px}.section{padding:75px 0}.subject-stage{min-height:900px}.subject-card{position:absolute;width:210px}.subject-1{top:2%;left:0}.subject-2{top:2%;right:0}.subject-3{bottom:5%;right:0}.subject-4{bottom:5%;left:0}.orbit2{width:500px;height:500px}.puzzle-slide{grid-template-columns:1fr;padding:35px}.puzzle-slide{min-height:570px}.puzzle-board{height:250px}.package-grid{grid-template-columns:1fr;max-width:560px}.fun-practice-grid{grid-template-columns:1fr 1fr}.fun-card,.fun-card:nth-child(4),.fun-card:nth-child(5){grid-column:span 1}.cta-box{flex-direction:column;align-items:flex-start}.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
.logo-bottom{font-size:.48rem}.hero h1{font-size:3rem}.hero-art{height:350px}.tree-scene{transform:translateX(-50%) scale(.82);transform-origin:bottom}.hero-card{font-size:.65rem}.hc1{left:0;top:160px}.hc2{right:0;top:205px}.hc3{left:0;bottom:25px}.olympiad-grid{grid-template-columns:1fr}.class-grid{grid-template-columns:repeat(2,1fr);gap:12px}.class-playground{padding:55px 12px 100px}.class-card{min-height:145px}.puzzle-slider{padding:0 38px}.puzzle-slide{padding:28px 22px;min-height:560px}.puzzle-left h3{font-size:2.3rem}.puzzle-bubbles{grid-template-columns:repeat(2,70px);margin-left:75px}.puzzle-bubbles span{width:70px;height:70px;font-size:1.7rem}.slider-arrow{width:39px;height:39px}.package-card{padding:24px}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}.modal-card{padding:22px 17px}.register-icon{display:none}.fun-practice-grid{grid-template-columns:1fr}.fun-card,.fun-card:nth-child(4),.fun-card:nth-child(5){grid-column:1}.footer-grid{grid-template-columns:1fr}
}


/* =========================================================
   MOBILE RESPONSIVE ENHANCEMENTS
   ========================================================= */

/* Prevent accidental horizontal scrolling on small screens */
html { overflow-x: hidden; }
body { overflow-x: hidden; }
img, svg, video, canvas { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }

/* Better tap targets */
@media (max-width: 800px) {
    .container {
        width: min(100% - 28px, 1180px);
    }

    .site-header {
        position: sticky;
    }

    .nav-wrap {
        gap: 12px;
    }

    .word-logo {
        min-width: 0;
    }

    .logo-top {
        font-size: clamp(1.15rem, 6vw, 1.45rem);
        white-space: nowrap;
    }

    .logo-bottom {
        font-size: clamp(.38rem, 2vw, .48rem);
        letter-spacing: 1px;
        white-space: nowrap;
    }

    .menu-toggle {
        flex: 0 0 auto;
        min-width: 46px;
        min-height: 44px;
        display: grid;
        place-items: center;
        cursor: pointer;
    }

    .main-nav {
        top: calc(100% + 8px);
        left: 14px;
        right: 14px;
        max-height: calc(100vh - 90px);
        overflow-y: auto;
        gap: 4px;
    }

    .main-nav a,
    .main-nav .register-nav {
        min-height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .hero {
        min-height: auto;
        padding: 58px 0 40px;
    }

    .hero-grid {
        gap: 22px;
    }

    .hero-copy {
        text-align: center;
    }

    .welcome-pill {
        margin-bottom: 14px;
    }

    .hero h1 {
        font-size: clamp(2.7rem, 12vw, 4rem);
        letter-spacing: -1.5px;
    }

    .hero-copy > p {
        font-size: .96rem;
        margin-inline: auto;
    }

    .hero-tags,
    .hero-buttons {
        justify-content: center;
    }

    .hero-buttons .btn {
        min-height: 46px;
    }

    .hero-art {
        width: 100%;
        max-width: 480px;
        margin: 0 auto;
    }

    /* Subject cards should form a clean mobile list instead of relying
       on the large desktop orbit. */
    .subject-stage {
        min-height: auto;
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 10px 0;
    }

    .subject-orbit {
        display: none;
    }

    .subject-centre {
        width: 125px;
        height: 125px;
        border-width: 7px;
        margin: 0 auto 6px;
    }

    .subject-card,
    .subject-1,
    .subject-2,
    .subject-3,
    .subject-4 {
        position: relative;
        inset: auto;
        width: 100%;
        min-height: 0;
        padding: 17px;
    }

    .subject-card h3 {
        margin-top: 9px;
    }

    .class-playground {
        border-radius: 28px;
    }

    .class-grid {
        width: 100%;
    }

    .puzzle-slider {
        max-width: 100%;
    }

    /* Registration modal */
    .modal {
        padding: 8px;
        align-items: flex-end;
    }

    .modal-card {
        width: 100%;
        max-width: 680px;
        max-height: calc(100dvh - 16px);
        border-radius: 24px 24px 14px 14px;
        padding: 20px 16px calc(18px + env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .modal-close {
        position: sticky;
        float: right;
        z-index: 4;
        right: auto;
        top: 0;
        margin: -4px -2px 0 auto;
        width: 42px;
        height: 42px;
        display: grid;
        place-items: center;
    }

    .register-head {
        clear: both;
        padding-right: 0;
        gap: 10px;
        margin: 4px 36px 18px 0;
        align-items: flex-start;
    }

    .register-icon {
        width: 52px;
        height: 52px;
        min-width: 52px;
        border-radius: 15px;
        font-size: 1.7rem;
    }

    .register-head h2 {
        font-size: clamp(1.35rem, 6vw, 1.7rem);
    }

    .register-head p {
        font-size: .78rem;
        line-height: 1.35;
    }

    .form-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .form-group.full {
        grid-column: auto;
    }

    .form-group {
        min-width: 0;
    }

    .form-group label {
        font-size: .84rem;
    }

    /* 16px prevents iOS Safari from zooming into fields. */
    .form-group input,
    .form-group select {
        width: 100%;
        min-height: 48px;
        box-sizing: border-box;
        font-size: 16px;
        padding: 11px 13px;
        border-radius: 12px;
    }

    .submit-register {
        min-height: 50px;
        font-size: 1rem;
        margin-bottom: 2px;
        position: sticky;
        bottom: 0;
        z-index: 3;
    }

    .success-panel {
        padding: 10px 2px 4px;
    }

    .success-panel h2 {
        font-size: 1.65rem;
    }

    .qr-wrap {
        width: 174px;
        height: 174px;
    }

    .qr-wrap canvas,
    .qr-wrap img {
        max-width: 100%;
        height: auto;
    }
}

@media (max-width: 560px) {
    .container {
        width: min(100% - 22px, 1180px);
    }

    .section {
        padding: 58px 0;
    }

    .section-heading {
        margin-bottom: 30px;
    }

    .section-heading h2 {
        font-size: clamp(2rem, 10vw, 2.7rem);
    }

    .olympiad-card {
        min-height: 290px;
        padding: 22px 19px;
    }

    .olympiad-card p {
        min-height: 60px;
    }

    .class-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .class-card {
        min-width: 0;
    }

    .puzzle-slide {
        min-height: 0;
    }

    .package-card {
        width: 100%;
        box-sizing: border-box;
    }

    .fun-practice-grid {
        grid-template-columns: 1fr;
    }

    .cta-box {
        padding: 25px 20px;
        border-radius: 24px;
    }

    .footer-grid {
        gap: 28px;
    }

    .modal-card {
        padding-left: 14px;
        padding-right: 14px;
    }

    .register-head {
        margin-right: 32px;
    }

    .register-icon {
        display: grid;
    }

    .submit-register {
        font-size: .96rem;
    }
}

@media (max-width: 380px) {
    .logo-bottom {
        letter-spacing: .6px;
    }

    .hero h1 {
        font-size: 2.55rem;
    }

    .class-grid {
        grid-template-columns: 1fr;
    }

    .class-card {
        min-height: 125px;
    }

    .register-icon {
        display: none;
    }

    .register-head {
        margin-right: 30px;
    }

    .register-head h2 {
        font-size: 1.3rem;
    }
}

/* Respect devices that do not have hover capability. */
@media (hover: none) {
    .btn:hover,
    .olympiad-card:hover,
    .subject-card:hover {
        transform: none;
        box-shadow: inherit;
    }
}
