:root{--navy:#172653;--gold:#f4c84e;--cream:#fffaf0;--ink:#263456;--muted:#737b8d;--blue:#dceffa}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#fffdf8;color:var(--navy);font-family:Nunito,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.announcement{height:30px;display:flex;justify-content:center;align-items:center;gap:10px;background:var(--navy);color:#ffe49a;font-size:9px;font-weight:900;letter-spacing:2px}.announcement span{color:#fff}.header{height:82px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;background:#fffdf8;position:sticky;top:0;z-index:30;border-bottom:1px solid #eee9dc}.brand{display:flex;align-items:center;gap:10px}.brand img{width:52px;height:52px;object-fit:contain}.brand b{display:block;font:800 20px 'Baloo 2',sans-serif;letter-spacing:1px;line-height:1}.brand small{display:block;font-size:8px;font-weight:900;letter-spacing:2px;margin-top:5px}.header nav{display:flex;align-items:center;gap:27px;font-size:12px;font-weight:900}.header nav a:hover{color:#c18d1c}.nav-cta{background:var(--gold);padding:13px 19px;border-radius:30px;box-shadow:0 4px 0 #d5a72f}.menu{display:none;border:0;background:none;font-size:25px;color:var(--navy)}.hero{min-height:660px;padding:82px 7% 55px;background:#fff7e6;position:relative;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.hero-copy{position:relative;z-index:2;max-width:570px}.eyebrow,.kicker{font-size:10px;font-weight:1000;letter-spacing:2px;color:#b88720}.eyebrow{display:inline-block;padding:10px 15px;border-radius:30px;background:white;border:1px solid #f1e3c2}.hero h1,.section h2{font:800 clamp(54px,7vw,90px)/.93 'Baloo 2',sans-serif;letter-spacing:-2px;margin:27px 0 20px}.hero h1 em,.section h2 em{font-style:normal;color:#dfa92e}.hero-copy>p,.section p{color:var(--muted);font-size:14px;line-height:1.9;max-width:470px}.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;gap:18px;padding:15px 22px;border-radius:30px;font-size:12px;font-weight:900;transition:.2s}.btn:hover{transform:translateY(-3px)}.primary{background:var(--navy);color:white;box-shadow:0 5px 0 #0c1735}.light{background:white;border:1px solid #e5ddca}.hero-note{display:flex;gap:12px;align-items:center;margin-top:38px;font-size:25px;color:#dcae3a}.hero-note b,.hero-note small{display:block}.hero-note b{font-size:11px;color:var(--navy)}.hero-note small{font-size:10px;color:var(--muted);margin-top:3px}.hero-art{position:relative;min-height:475px}.rainbow{position:absolute;width:310px;height:175px;border:22px solid #efbf4d;border-bottom:0;border-radius:180px 180px 0 0;top:58px;left:50%;transform:translateX(-50%);opacity:.7}.rainbow:before,.rainbow:after{content:"";position:absolute;border:18px solid #ed8790;border-bottom:0;border-radius:160px 160px 0 0;inset:17px 17px auto;height:120px}.rainbow:after{border-color:#74b9dd;inset:34px 34px auto;height:103px}.sun{position:absolute;right:8%;top:8px;width:75px;height:75px;background:var(--gold);clip-path:polygon(50% 0,62% 34%,100% 18%,74% 50%,100% 68%,62% 67%,51% 100%,37% 67%,0 76%,28% 48%,0 20%,40% 34%)}.characters{position:absolute;inset:120px 0 40px;display:flex;align-items:flex-end;justify-content:center}.mascot{position:relative;cursor:pointer;filter:drop-shadow(0 12px 8px #26395a22);transform-origin:bottom center;animation:bob 3s ease-in-out infinite;transition:filter .2s}.mascot svg{width:100%;height:100%;overflow:visible}.mascot b{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);background:#fff;padding:5px 9px;border-radius:20px;font-size:7px;letter-spacing:1px;white-space:nowrap;box-shadow:0 3px 12px #17265318}.mascot:focus-visible{outline:3px solid #e7ad2d;outline-offset:4px;border-radius:16px}.mascot:hover{filter:drop-shadow(0 15px 12px #26395a44)}.bobo{width:150px;height:180px;z-index:3}.teddy,.captain{width:116px;height:150px;margin-left:-20px}.sunshine{width:105px;height:145px;margin-left:-18px}.teddy{animation-delay:-.7s}.captain{animation-delay:-1.3s}.sunshine{animation-delay:-1.9s}.mascot.wave svg{animation:wave .6s ease-in-out 3}.speech{position:absolute;top:23px;left:50%;transform:translateX(-50%);z-index:4;background:#fff;border:2px solid #efc75b;border-radius:18px 18px 18px 4px;padding:11px 16px;white-space:nowrap;font:700 13px 'Baloo 2',sans-serif;box-shadow:0 7px 20px #17265315}.art-caption{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:2px;font-weight:1000;color:#9b7b3e;white-space:nowrap}.hero-strip{position:absolute;bottom:0;left:0;right:0;background:var(--navy);color:#f8d879;min-height:40px;display:flex;align-items:center;justify-content:space-around;font-size:8px;font-weight:900;letter-spacing:2px}.section{padding:100px 8%}.about{background:#fffdf8}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;margin-top:25px}.section h2{font-size:clamp(44px,5.2vw,66px);margin:18px 0}.two-col .lead{font-size:17px;color:#27365d;font-weight:800;line-height:1.7}.text-link{display:inline-block;margin-top:15px;padding-bottom:7px;border-bottom:2px solid var(--gold);font-size:12px;font-weight:900}.values{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:65px;padding:25px 20px;background:var(--navy);border-radius:16px;color:white}.values div{display:grid;grid-template-columns:32px 1fr;align-items:center;font-size:21px;color:var(--gold)}.values b{font-size:10px;letter-spacing:1px;color:white}.values small{grid-column:2;font-size:9px;color:#c8d0e0}.academics{background:#f0f7fb}.section-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:38px}.section-head>p{max-width:350px}.stages{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stage{position:relative;min-height:320px;padding:26px;border-radius:17px;transition:.25s}.stage:hover{transform:translateY(-7px);box-shadow:0 16px 30px #17265318}.stage>span{position:absolute;right:22px;top:15px;font:800 30px 'Baloo 2';opacity:.25}.stage>div{font-size:68px;text-align:center;padding:20px}.stage small,.contact-card>small,.address-card>small{font-size:8px;letter-spacing:1.7px;font-weight:1000}.stage h3{font:800 30px 'Baloo 2';margin:5px 0}.stage p{font-size:12px;min-height:65px}.stage>a{font-size:11px;font-weight:1000;border-bottom:1px solid #bd8a21;padding-bottom:5px}.nursery{background:#ffebd5}.stage.primary{background:#dceffa}.secondary{background:#e9e3fb}.life{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.life ul{list-style:none;padding:0;margin-top:28px}.life li{margin:19px 0;font-size:12px;font-weight:900}.life li small{display:block;color:var(--muted);font-weight:600;margin:4px 0 0 30px}.life-art{height:360px;border-radius:48% 52% 54% 46%;background:#fff1c8;display:grid;place-content:center;text-align:center;position:relative;overflow:hidden}.life-art:before,.life-art:after{content:"";position:absolute;border-radius:50%;background:#f4c84e;opacity:.5;width:180px;height:180px;right:-50px;top:-50px}.life-art:after{background:#a9d9ef;left:-50px;right:auto;top:auto;bottom:-55px}.life-art>span{font-size:45px;color:#c18d1c}.books{font-size:100px;z-index:1}.life-art>b{font-size:10px;letter-spacing:2px;z-index:1}.traditions{background:#f0f7fb}.tradition-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:35px}.tradition-grid article{padding:30px;border-radius:17px;min-height:260px;background:var(--navy);color:white}.tradition-grid article+article{background:#f8e8bd;color:var(--navy)}.tradition-grid small{font-size:8px;letter-spacing:2px;font-weight:1000;color:#f4c84e}.tradition-grid article+article small{color:#98701e}.tradition-grid h3{font:800 25px 'Baloo 2'}.tradition-grid p{font-size:13px;line-height:1.9;color:inherit}.declaration{margin-top:20px;padding:25px;border-radius:14px;background:var(--gold);text-align:center;font:800 28px 'Baloo 2'}.declaration small{display:block;font:900 8px Nunito;letter-spacing:1.5px;margin-top:10px;color:#5c4b27}.contact{text-align:center}.contact-intro>p{margin:0 auto}.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;text-align:left;margin-top:40px}.contact-card,.address-card{padding:32px;border-radius:18px}.contact-card{background:var(--navy);color:white}.contact-card>small{color:var(--gold)}.contact-card h3,.address-card h3{font:800 34px/1.05 'Baloo 2';margin:14px 0 22px}.contact-card>a:not(.btn){display:block;padding:14px 0;border-top:1px solid #ffffff2c;font-size:13px;font-weight:900}.contact-card .wa{color:var(--gold)}.address-card{background:#f8e8bd}.address-card>small{color:#98701e}.address-card p{font-size:13px;line-height:1.9;color:#5c5b60}.address-card .btn{margin-top:10px}footer{background:#111f43;color:white}.footer-top{display:flex;justify-content:space-between;align-items:center;padding:32px 7%}.footer-top p{font-size:12px;line-height:1.7;color:#c1c9d9}.footer-top>a:last-child{font-size:9px;font-weight:1000;letter-spacing:1.5px;color:var(--gold)}.footer-brand img{background:white;border-radius:50%;padding:2px}.footer-bottom{border-top:1px solid #ffffff25;padding:17px 7%;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:9px;color:#b9c2d5}.footer-bottom a{color:white;font-weight:1000;letter-spacing:1px;transition:color .2s}.footer-bottom a:hover{color:#42a5ff}.intro{position:fixed;inset:0;background:#111f43;z-index:100;display:grid;place-items:center;overflow:hidden;transition:opacity .7s,visibility .7s}.intro.hide{opacity:0;visibility:hidden;pointer-events:none}.intro-card{position:relative;z-index:2;text-align:center;color:white;padding:20px;animation:appear .8s both}.intro-card img{width:115px;height:115px;object-fit:contain;background:white;border-radius:50%;padding:5px;box-shadow:0 0 0 8px #f4c84e30}.intro-card>small{display:block;color:var(--gold);letter-spacing:3px;margin:20px 0 8px}.intro-card h2{font:800 clamp(34px,7vw,62px)/.95 'Baloo 2';margin:0}.intro-card h2 em{font-size:.43em;font-style:normal;color:var(--gold);letter-spacing:3px}.intro-card p{font-size:9px;letter-spacing:2px;color:#d5dced;margin:18px 0 24px}.intro-card button{border:0;border-radius:30px;padding:14px 23px;background:var(--gold);color:var(--navy);font-size:11px;font-weight:1000;cursor:pointer}.intro-card .skip{display:block;margin:14px auto 0;background:none;color:#b9c2d5;text-decoration:underline}.burst{position:absolute;color:var(--gold);font-size:70px;animation:twinkle 2s infinite}.burst.one{top:15%;left:16%}.burst.two{right:16%;bottom:17%;animation-delay:.7s;color:#ee8790}.confetti i{position:absolute;top:-20px;width:7px;height:13px;background:var(--c);left:var(--x);animation:fall var(--d) linear infinite;animation-delay:var(--delay)}.helper{position:fixed;z-index:25;right:16px;bottom:16px;background:white;border-radius:30px;padding:9px 13px;box-shadow:0 6px 24px #17265322;display:flex;gap:9px;align-items:center;font-size:10px;font-weight:900;opacity:0;transform:translateY(12px);transition:.3s;pointer-events:none}.helper.show{opacity:1;transform:none;pointer-events:auto}.helper span{color:#dba62d}.helper button{border:0;background:none;font-size:18px;cursor:pointer}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes wave{0%,100%{transform:rotate(0)}30%{transform:rotate(-8deg)}70%{transform:rotate(8deg)}}@keyframes twinkle{50%{transform:scale(1.35) rotate(25deg);opacity:.5}}@keyframes fall{to{top:110%;transform:translateX(35px) rotate(600deg)}}@keyframes appear{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:none}}
@media(max-width:900px){.header nav{gap:15px}.hero{padding-left:6%;padding-right:6%}.bobo{width:130px}.teddy,.captain{width:100px}.sunshine{width:90px}.section{padding:80px 6%}}
@media(max-width:680px){.announcement{font-size:7px;letter-spacing:1px}.header{height:70px;padding:0 5%}.brand img{width:44px;height:44px}.brand b{font-size:17px}.brand small{font-size:7px}.menu{display:block}.header nav{display:none;position:absolute;top:70px;left:0;right:0;background:#fffdf8;padding:16px 6% 22px;box-shadow:0 12px 20px #17265315;flex-direction:column;align-items:stretch;gap:0}.header nav.open{display:flex}.header nav a{padding:13px 4px}.header nav .nav-cta{text-align:center;margin-top:8px}.hero{display:flex;flex-direction:column;padding:50px 7% 55px;min-height:0}.hero h1{font-size:clamp(58px,16vw,80px)}.hero-art{min-height:350px;margin-top:10px}.rainbow{width:245px;height:135px;top:35px;border-width:16px}.rainbow:before{border-width:14px;inset:13px 13px auto;height:90px}.rainbow:after{border-width:13px;inset:26px 26px auto;height:77px}.characters{inset:95px -10px 35px}.bobo{width:120px;height:160px}.teddy,.captain{width:88px;height:125px;margin-left:-17px}.sunshine{width:78px;height:120px;margin-left:-17px}.speech{top:3px;font-size:10px;padding:8px 11px}.art-caption{font-size:7px}.hero-strip{font-size:6px;letter-spacing:.7px;min-height:36px}.section{padding:68px 7%}.two-col,.life{grid-template-columns:1fr;gap:16px}.section h2{font-size:50px}.values{grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}.section-head{display:block}.section-head>p{margin-top:14px}.stages{grid-template-columns:1fr;gap:14px}.stage{min-height:285px}.stage p{min-height:0}.life-art{height:290px;margin-top:10px}.tradition-grid,.contact-grid{grid-template-columns:1fr;gap:14px}.tradition-grid article{min-height:250px;padding:24px}.declaration{font-size:21px;padding:22px 15px}.declaration small{line-height:1.8}.contact-card,.address-card{padding:25px}.footer-top{display:grid;grid-template-columns:1fr auto;gap:15px}.footer-top p{grid-column:1;grid-row:2;margin:0}.footer-top>a:last-child{grid-column:2;grid-row:1/3}.footer-bottom{font-size:8px;line-height:1.8}.intro-card img{width:95px;height:95px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.intro{display:none!important}}

.stage.primary{background:#dceffa;color:var(--navy)}footer{background:#111f43;color:white}footer .footer-top{display:flex;justify-content:space-between;align-items:center;padding:32px 7%}footer .footer-top p{font-size:12px;line-height:1.7;color:#c1c9d9}footer .footer-top>a:last-child{font-size:9px;font-weight:1000;letter-spacing:1.5px;color:var(--gold)}footer .footer-brand img{background:white;border-radius:50%;padding:2px}footer .footer-bottom{border-top:1px solid #ffffff25;padding:17px 7%;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:9px;color:#b9c2d5}footer .footer-bottom a{color:white;font-weight:1000;letter-spacing:1px;transition:color .2s}footer .footer-bottom a:hover{color:#42a5ff}@media(max-width:680px){footer .footer-top{display:grid;grid-template-columns:1fr auto;gap:15px}footer .footer-top p{grid-column:1;grid-row:2;margin:0}footer .footer-top>a:last-child{grid-column:2;grid-row:1/3}}

/* Refined automatic welcome: the school crest sits inside a rotating gold orbit. */
.intro{background:radial-gradient(circle at 50% 42%,#243b75 0,#172653 48%,#0d1735 100%);transition:opacity .65s ease,visibility .65s ease}
.intro-glow{position:absolute;width:min(82vw,560px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#f4c84e20 0,transparent 68%);animation:introGlow 2.8s ease-in-out infinite}
.intro-card{width:min(92vw,620px);padding:24px 18px;animation:welcomeIn .7s both}
.crest-spinner{width:148px;height:148px;margin:0 auto 22px;position:relative;display:grid;place-items:center}
.crest-spinner img{width:94px;height:94px;object-fit:contain;border-radius:50%;background:#fff;padding:5px;position:relative;z-index:2;box-shadow:0 0 30px #f4c84e44}
.spinner-orbit{position:absolute;inset:1px;border:3px solid transparent;border-top-color:#f4c84e;border-right-color:#f4c84e;border-radius:50%;animation:crestSpin 1.25s linear infinite}
.spinner-orbit:after{content:"";position:absolute;width:10px;height:10px;background:#fff;border-radius:50%;top:12px;left:15px;box-shadow:0 0 14px #fff}
.spinner-orbit.orbit-two{inset:11px;border-width:2px;border-top-color:#8bd7f2;border-left-color:#8bd7f2;animation:crestSpinReverse 1.8s linear infinite}
.spinner-orbit.orbit-two:after{width:7px;height:7px;top:auto;bottom:8px;left:10px;background:#f7a5b0}
.intro-card>small{font-size:11px;letter-spacing:4px;margin:10px 0 8px;color:#f4c84e}
.intro-card h2{font-size:clamp(35px,7vw,58px);line-height:.98}
.intro-card h2 em{font-size:.48em;letter-spacing:2px;line-height:1.5;display:inline-block;margin-top:5px}
.intro-card p{font-size:10px;letter-spacing:2.2px;margin:18px 0 0}
.intro-loading{display:flex;justify-content:center;gap:6px;margin-top:22px}
.intro-loading i{width:6px;height:6px;border-radius:50%;background:#f4c84e;animation:loadingDot .8s ease-in-out infinite alternate}
.intro-loading i:nth-child(2){animation-delay:.18s}.intro-loading i:nth-child(3){animation-delay:.36s}
.roaming-mascots{position:fixed;inset:0;z-index:12;pointer-events:none;overflow:hidden}
.roaming-buddy{position:absolute;width:62px;height:76px;filter:drop-shadow(0 5px 5px #17265325);transform-origin:center bottom}
.roaming-buddy svg{width:100%;height:100%;overflow:visible}
.roam-bobo{left:2%;top:34%;animation:hopAcross 13s ease-in-out infinite}
.roam-teddy{right:3%;top:65%;animation:teddyWander 16s ease-in-out infinite}
.roam-captain{left:-90px;top:15%;width:66px;height:82px;animation:captainFlight 11s ease-in-out infinite}
.roam-captain:after{content:"";position:absolute;width:35px;height:45px;left:-22px;top:21px;background:linear-gradient(135deg,#ef5369 50%,transparent 52%);clip-path:polygon(100% 0,100% 100%,0 75%,35% 48%,0 0);transform-origin:right center;animation:capeFlutter .35s ease-in-out infinite alternate}
.roam-sunshine{right:4%;top:28%;width:54px;height:70px;animation:sunshineDance 12s ease-in-out infinite}
@keyframes crestSpin{to{transform:rotate(360deg)}}@keyframes crestSpinReverse{to{transform:rotate(-360deg)}}
@keyframes introGlow{50%{transform:scale(1.12);opacity:.55}}@keyframes welcomeIn{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes loadingDot{to{opacity:.25;transform:translateY(-5px)}}
@keyframes hopAcross{0%,100%{transform:translate(0,0) rotate(-5deg)}22%{transform:translate(12vw,-32px) rotate(8deg)}48%{transform:translate(26vw,12px) rotate(-7deg)}72%{transform:translate(12vw,-22px) rotate(6deg)}}
@keyframes teddyWander{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(-8vw,-28px) rotate(-12deg)}55%{transform:translate(-18vw,10px) rotate(8deg)}80%{transform:translate(-7vw,-18px) rotate(-8deg)}}
@keyframes captainFlight{0%{transform:translate(-5vw,0) rotate(-7deg)}22%{transform:translate(32vw,7vh) rotate(4deg)}48%{transform:translate(68vw,-2vh) rotate(-5deg)}72%{transform:translate(108vw,8vh) rotate(5deg)}100%{transform:translate(118vw,0) rotate(-4deg)}}
@keyframes capeFlutter{to{transform:rotate(13deg) skewY(8deg)}}
@keyframes sunshineDance{0%,100%{transform:translate(0,0) rotate(0)}30%{transform:translate(-9vw,35px) rotate(18deg)}65%{transform:translate(-15vw,-20px) rotate(-12deg)}}
@media(max-width:680px){.crest-spinner{width:130px;height:130px}.crest-spinner img{width:82px;height:82px}.roaming-buddy{width:43px;height:56px}.roam-captain{width:48px;height:62px;top:12%}.roam-sunshine{width:39px;height:53px}.roam-bobo{top:48%}.roam-teddy{top:73%}}
@media(prefers-reduced-motion:reduce){.roaming-mascots{display:none!important}.spinner-orbit,.intro-glow,.intro-loading i{animation:none!important}}
