:root{--bg:#fffaf0;--ink:#2d2a5e;--mute:#625f8f;--cy:#2196F3;--vi:#7B3FE4;--sun:#FFC800;--co:#FF4D4D;--gr:#43B047;--or:#FF8A00;--in:#4B4ACF;--line:rgba(45,42,94,.12);--rb:linear-gradient(90deg,#FF4D4D,#FF8A00,#FFC800,#43B047,#2196F3,#4B4ACF,#7B3FE4);--f1:'Fredoka',sans-serif;--f2:'Nunito',sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--f2);font-size:17px;line-height:1.65;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--vi);outline-offset:3px}
h1,h2,h3{font-family:var(--f1);line-height:1.1;font-weight:600}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
section{padding:110px 0}
h2{font-size:clamp(34px,6vw,64px);max-width:900px}
.grad{background:var(--rb);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{color:var(--mute);font-size:clamp(18px,2vw,21px);max-width:620px;margin-top:18px}
.btn{display:inline-block;padding:14px 30px;border-radius:99px;font:600 17px var(--f1);transition:transform .15s,box-shadow .15s}
.btn.p{background:var(--co);color:#fff;box-shadow:0 5px 0 #c23232}
.btn.g{background:#fff;border:3px solid var(--vi);color:var(--vi);box-shadow:0 5px 0 rgba(123,63,228,.35)}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(3px);box-shadow:none}
#stats{background:#fff6cc}#highlights{background:#e6f4ff}#lab{background:#e8f8e6}#live{background:#f1e8ff}#faq{background:#fff0e0}#visit{background:#ffe9ea}

.boot{position:fixed;inset:0;background:var(--bg);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:opacity .7s,visibility .7s}
.boot.off{opacity:0;visibility:hidden}
.boot .bar{width:min(320px,70vw);height:14px;background:#fff;border:3px solid var(--ink);border-radius:14px;overflow:hidden}
.boot .bar i{display:block;height:100%;background:var(--rb);transition:width .25s}
.boot p{color:var(--mute);min-height:26px}
.boot b{font:700 48px var(--f1)}

.top{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(14px);background:rgba(255,250,240,.85);border-bottom:3px solid transparent;border-image:var(--rb) 1}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.top nav{display:flex;gap:28px;font-weight:700;color:var(--mute)}
.top nav a:hover,.top nav a.on{color:var(--vi)}
.logo{font:700 26px var(--f1);color:var(--vi)}
.prog{position:absolute;bottom:-3px;left:0;height:4px;background:var(--ink);width:0}
.top .btn{padding:8px 20px;font-size:15px;box-shadow:0 3px 0 #c23232}

.hero{min-height:100vh;display:flex;align-items:center;text-align:center;padding:120px 0 80px;overflow:hidden;background:radial-gradient(circle at 15% 20%,#ffe6a8,transparent 38%),radial-gradient(circle at 85% 30%,#cfe9ff,transparent 40%),radial-gradient(circle at 50% 100%,#e5d4ff,transparent 45%),var(--bg)}
#cv{position:absolute;inset:0;width:100%;height:100%}
.hero .wrap{position:relative;z-index:2}
.hero small{display:inline-block;background:#fff;border:3px solid var(--sun);border-radius:99px;padding:6px 18px;font-weight:700}
.hero h1{font-size:clamp(50px,10vw,128px);margin:24px 0 20px}
.hero .lede{margin:0 auto 32px}
.hero .cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:56px}
.stats div{padding:34px 22px;border-radius:30px;color:#fff;text-align:center}
.stats div:nth-child(1){background:var(--co);box-shadow:0 7px 0 #c23232}
.stats div:nth-child(2){background:var(--or);box-shadow:0 7px 0 #c46a00}
.stats div:nth-child(3){background:var(--gr);box-shadow:0 7px 0 #2f7d33}
.stats div:nth-child(4){background:var(--cy);box-shadow:0 7px 0 #1272c2}
.stats b{display:block;font:700 clamp(40px,5vw,64px) var(--f1)}

.vision{display: flex;gap:10px; flex-wrap: wrap; margin: auto}
.vision div{text-align: center}

.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:40px 0 24px}
.tabs button{padding:10px 24px;border-radius:99px;border:3px solid var(--cy);background:#fff;font:600 17px var(--f1);color:var(--cy);transition:.2s}
.tabs button.on{background:var(--cy);color:#fff;transform:scale(1.06)}
.panel{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;min-height:360px;background:#fff;border:4px solid var(--cy);border-radius:40px;padding:44px;animation:pin .5s;box-shadow:0 8px 0 rgba(33,150,243,.3)}
@keyframes pin{from{opacity:0;transform:scale(.97)}}
.panel h3{font-size:clamp(28px,4vw,44px)}
.panel p{color:var(--mute);margin-top:14px}
.panel ul{list-style:none;margin-top:18px;display:grid;gap:8px;font-weight:700}
.panel li::before{content:"★ ";color:var(--sun)}
.orb{aspect-ratio:1;max-width:340px;justify-self:center;width:100%;border-radius:50%;display:grid;place-items:center;font-size:clamp(70px,11vw,130px);background:radial-gradient(circle at 30% 28%,#fff,var(--c) 75%);box-shadow:0 10px 0 rgba(0,0,0,.12);animation:bob 3s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-10px)}}

.lab{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;margin-top:50px;align-items:center}
.age{font:700 clamp(64px,12vw,150px) var(--f1);background:var(--rb);-webkit-background-clip:text;background-clip:text;color:transparent}
input[type=range]{width:100%;accent-color:var(--gr);height:36px}
.skills{display:grid;gap:16px;background:#fff;padding:30px;border-radius:32px;border:4px solid var(--gr)}
.skill i{display:block;height:16px;background:#e8f8e6;border-radius:16px;overflow:hidden;margin-top:6px}
.skill i b{display:block;height:100%;background:var(--rb);border-radius:16px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.skill>span{display:flex;justify-content:space-between;font-weight:700}

.feed{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}
.cam{aspect-ratio:16/10;border-radius:28px;border:5px solid #fff;box-shadow:0 8px 0 rgba(123,63,228,.25);position:relative;overflow:hidden;background:linear-gradient(160deg,#fff,#dcc9ff);padding:14px;display:flex;flex-direction:column;justify-content:space-between;font-weight:700}
.cam .rec{position:relative;align-self:flex-start;background:var(--co);color:#fff;border-radius:99px;padding:2px 12px;font-size:13px}
.cam .rec::before{content:"● ";animation:bl 1.2s infinite}
@keyframes bl{50%{opacity:.2}}
.cam em{position:relative;font-style:normal;color:var(--ink);font-size:14px}
.cam .kids{position:absolute;inset:0}
.cam .kids i{position:absolute;width:26px;height:26px;border-radius:50%;background:var(--c);border:3px solid #fff;animation:wd 7s ease-in-out infinite alternate}
@keyframes wd{to{transform:translate(var(--x),var(--y))}}

.faq{margin-top:44px;max-width:780px;display:grid;gap:14px}
.faq>div{background:#fff;border:3px solid var(--or);border-radius:26px;padding:0 26px}
.faq button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:20px 0;font:600 20px var(--f1);text-align:left}
.faq .a{max-height:0;overflow:hidden;color:var(--mute);transition:max-height .35s}
.faq .a p{padding-bottom:20px}
.faq .open .a{max-height:220px}
.faq .open .pl{transform:rotate(45deg)}
.pl{transition:.3s;color:var(--or);font-size:30px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:44px;max-width:760px}
.form .full{grid-column:1/-1}
.form label{display:block;font-weight:700;margin-bottom:6px}
.form input,.form select,.form textarea{width:100%;padding:14px 16px;border-radius:18px;border:3px solid var(--line);background:#fff}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--vi);outline:none}
.form .bad input,.form .bad select{border-color:var(--co)}
.form .err{color:#c23232;font-size:14px;font-weight:700;display:none}
.form .bad .err{display:block}
.ok{padding:40px;border:4px solid var(--gr);border-radius:32px;margin-top:44px;max-width:760px;background:#fff}
footer{background:var(--ink);color:#fff;padding:36px 0;border-top:8px solid transparent;border-image:var(--rb) 1}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}
.rv.in{opacity:1;transform:none}

@media(max-width:860px){.top nav{display:none}.stats{grid-template-columns:1fr 1fr}.panel,.lab{grid-template-columns:1fr}.panel{padding:28px}.feed{grid-template-columns:1fr}.form{grid-template-columns:1fr}section{padding:76px 0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}

[hidden]{display:none!important}
.stage h3{margin-top:18px;font-size:28px}
.cam .kids i:nth-child(1){left:20%;top:30%;--x:30px;--y:-12px}
.cam .kids i:nth-child(2){left:45%;top:48%;--x:-42px;--y:2px;animation-delay:-2s}
.cam .kids i:nth-child(3){left:70%;top:66%;--x:54px;--y:16px;animation-delay:-4s}
/* highlights carousel */
.car{margin-top:40px}
.frame{position:relative;padding:0 68px}
.viewport{overflow:hidden;padding:12px 0;touch-action:pan-y;user-select:none}
.track{display:flex;gap:28px;transition:transform .55s cubic-bezier(.65,0,.25,1);will-change:transform}
.track.jump,.track.jump .panel{transition:none}
.car .panel{flex:0 0 74%;animation:none;opacity:.4;transform:scale(.92);transition:opacity .55s,transform .55s;border-color:var(--c)}
.car .panel.cur{opacity:1;transform:none}
.arr{position:absolute;top:50%;margin-top:-28px;z-index:2;width:56px;height:56px;border-radius:50%;background:var(--cy);color:#fff;font:600 34px/1 var(--f1);box-shadow:0 5px 0 #1272c2;transition:transform .15s}
.arr.prev{left:0}.arr.next{right:0}
.arr:hover{transform:translateY(-2px)}
.arr:active{transform:translateY(3px);box-shadow:none}
.ctl{display:flex;justify-content:center;margin-top:10px}
.dots{display:flex;gap:10px}
.dots button{width:14px;height:14px;border-radius:99px;background:#fff;border:3px solid var(--cy);transition:.3s}
.dots .on{width:44px;background:var(--cy)}
@media(max-width:860px){.frame{padding:0}.track{gap:14px}.car .panel{flex-basis:80%}.arr{width:44px;height:44px;margin-top:-22px;font-size:28px}.arr.prev{left:4px}.arr.next{right:4px}}
/* programs deck */
#programs{background:#fde8f4}
.deck{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px;align-items:start}
.pcard{display:block;width:100%;background:#fff;border:4px solid var(--c);border-radius:30px;padding:30px 18px;text-align:center;box-shadow:0 7px 0 color-mix(in srgb,var(--c) 40%,transparent);transition:transform .15s}
.pcard:hover{transform:translateY(-4px)}
.pname{display:block;font:600 22px var(--f1);color:var(--c)}
.pbody{display:none;text-align:left}
.deck.open{grid-template-columns:repeat(3,1fr)}
.pcard.on{grid-column:1/-1;grid-row:1;justify-self:center;width:min(100%,780px);padding:40px;text-align:left;cursor:default}
.pcard.on:hover{transform:none}
.pcard.on .pname{font-size:clamp(32px,5vw,50px)}
.pcard.on .pbody{display:block;margin-top:16px}
.pbadge{display:inline-block;background:var(--c);color:#fff;border-radius:99px;padding:3px 16px;font:600 15px var(--f1)}
.soon{display:inline-block;border:3px solid var(--co);color:var(--co);border-radius:99px;padding:0 12px;font:600 14px var(--f1)}
.pdesc{display:block;margin-top:14px;font-size:19px;color:var(--mute)}
.pres{display:block;margin-top:14px;font-weight:800;font-size:18px;color:var(--c)}
.daycare{margin-top:36px;background:var(--ink);color:#fff;border-radius:32px;padding:30px 36px;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.daycare h3{font-size:26px}
.daycare p{color:#d9d6f5;margin-top:6px;max-width:560px}
@media(max-width:860px){.deck{grid-template-columns:1fr 1fr}.deck.open{grid-template-columns:repeat(3,1fr);gap:10px}.deck.open .pcard:not(.on){padding:20px 8px}.deck.open .pcard:not(.on) .pname{font-size:15px}.pcard.on{padding:26px}}
/* features orbit */
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes spin{to{transform:rotate(360deg)}}
#features{background:#e3f1ff}
.orbit{--r:clamp(104px,30vw,230px);--s:76px;position:relative;width:calc(var(--r)*2 + var(--s));height:calc(var(--r)*2 + var(--s));margin:0}
.orbit::before{content:"";position:absolute;left:50%;top:50%;width:calc(var(--r)*2);height:calc(var(--r)*2);margin:calc(var(--r)*-1) 0 0 calc(var(--r)*-1);border:3px dashed rgba(45,42,94,.2);border-radius:50%}
.ring{position:absolute;inset:0;animation:spin 48s linear infinite}
.orbit.paused .ring,.orbit.paused .ico{animation-play-state:paused}
.fitem{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2);border-radius:50%;transform:rotate(var(--a)) translateX(var(--r)) rotate(calc(var(--a)*-1));transition:--a .8s cubic-bezier(.3,.8,.3,1),opacity .4s}
.fitem.out{opacity:0;pointer-events:none}
.ico,.dico{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--b);color:var(--c);border:4px solid var(--c);box-shadow:0 5px 0 color-mix(in srgb,var(--c) 40%,transparent)}
.ico{animation:spin 48s linear infinite reverse;transition:scale .2s}
.fitem:hover .ico{scale:1.15}
.ico svg,.dico svg{width:46%;height:46%}
.ftext{display:none}
.hub{position:absolute;left:50%;top:50%;width:clamp(96px,26vw,150px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:6px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--rb) border-box;display:grid;place-items:center;overflow:hidden;text-align:center;font:600 14px/1.2 var(--f1);color:var(--mute)}
.hub img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.fcard{display:flex;align-items:center;gap:22px;margin:0;background:#fff;border:4px solid var(--c);border-radius:32px;padding:26px 30px;box-shadow:0 8px 0 color-mix(in srgb,var(--c) 35%,transparent)}
.dico{flex:none;width:88px;height:88px}
.ftxt{font:600 clamp(20px,3vw,26px)/1.3 var(--f1);flex:1}
.fclose{flex:none;width:40px;height:40px;border-radius:50%;background:var(--bg);font-size:26px;line-height:1}
@media(max-width:560px){.orbit{--s:58px}.fcard{padding:20px;gap:14px}.dico{width:64px;height:64px}}
.fgrid{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center;margin-top:50px}
@media(max-width:860px){.fgrid{grid-template-columns:1fr;gap:36px;justify-items:center}.fgrid .fcard{width:100%}}
/* facilities train */
#facilities{background:#fff;padding-bottom:80px}
.train{position:relative;overflow:hidden;width:100%;min-height:640px;margin-top:40px}
.wagon{position:absolute;left:0;top:0;width:min(var(--w,210px),86vw);min-height:92px;display:flex;align-items:center;justify-content:center;text-align:center;background:#fff;padding:22px 18px;border-radius:22px;border-top:7px solid var(--c);box-shadow:0 4px 18px rgba(45,42,94,.15);will-change:transform}
.wname{font:600 20px/1.2 var(--f1);color:var(--ink)}
.wagon.big{display:block;text-align:left;padding:20px 22px;border-top:0;border-left:7px solid var(--c)}
.wagon.big .wname{display:block;font-size:22px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chips>span{font:700 14px/1.2 var(--f2);padding:5px 12px;border-radius:99px;border:2px solid var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--ink)}
.st{color:#D98A00}
.train.static{display:flex;flex-wrap:wrap;gap:16px;padding:0 24px;overflow:visible;min-height:0}
.train.static .wagon{position:relative}