:root{--ink:#040a1a;--navy:#0a1733;--cyan:#19e3f7;--blue:#2d6bff;--mist:#eaf1fc;--text:#0b1a3a;--muted:#566789;--soft:#a9b9da;--grad:linear-gradient(100deg,var(--cyan),var(--blue));--grad2:linear-gradient(100deg,#19e3f7,#2d6bff,#19e3f7);--head:'Sora',system-ui,sans-serif;--body:'Figtree',system-ui,sans-serif}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font:400 1.05rem/1.65 var(--body);color:var(--text);background:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%}a{color:inherit;text-decoration:none}ul{list-style:none;padding:0}
h1,h2,h3{font-family:var(--head);line-height:1.1;letter-spacing:-.025em}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
.shell{width:min(1180px,100% - 48px);margin-inline:auto}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:12px;top:12px;z-index:99;background:#fff;padding:8px 14px;border-radius:8px}
/* header */
.site-header{position:fixed;inset:0 0 auto;z-index:50;background:rgba(4,10,26,.62);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.08)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:72px}
.primary-nav{display:flex;align-items:center;gap:30px;font-weight:600;font-size:.95rem;color:#c9d6f2}
.primary-nav a:not(.button){position:relative;padding:4px 0;transition:color .2s}
.primary-nav a:not(.button):hover{color:#fff}
.primary-nav a:not(.button)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.primary-nav a:not(.button):hover::after{transform:scaleX(1)}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;align-items:center}
.nav-toggle span{width:22px;height:2px;background:#fff;border-radius:2px}
/* buttons */
.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:14px;font-weight:700;font-size:1rem;border:1px solid transparent;cursor:pointer;overflow:hidden;transition:transform .25s,box-shadow .25s,background .25s;font-family:var(--body)}
.button-small{padding:10px 18px;font-size:.9rem;border-radius:12px;background:rgba(25,227,247,.12);border-color:rgba(25,227,247,.4);color:#fff}
.button-small:hover{background:var(--grad);color:var(--ink)}
.button-primary,.button-submit{background:var(--grad);color:#031024;box-shadow:0 10px 30px -6px rgba(25,227,247,.55),inset 0 1px 0 rgba(255,255,255,.5)}
.button-primary::before,.button-submit::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s}
.button-primary:hover::before,.button-submit:hover::before{transform:translateX(120%)}
.button-primary:hover,.button-submit:hover{transform:translateY(-3px);box-shadow:0 18px 40px -8px rgba(45,107,255,.7)}
.button-secondary{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(8px)}
.button-secondary:hover{background:rgba(255,255,255,.14);transform:translateY(-3px)}
.button-submit{width:100%;margin-top:6px}.button:disabled{opacity:.7;cursor:wait}
/* eyebrow */
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border-radius:99px;font-size:.85rem;font-weight:700;letter-spacing:.01em;margin-bottom:22px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#d8e4ff;backdrop-filter:blur(8px)}
.eyebrow-dark{background:rgba(45,107,255,.1);border-color:rgba(45,107,255,.25);color:#1b50d8}
.eyebrow-light{background:rgba(25,227,247,.08);border-color:rgba(25,227,247,.28);color:var(--cyan)}
.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 0 rgba(25,227,247,.7);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(25,227,247,0)}100%{box-shadow:0 0 0 0 rgba(25,227,247,0)}}
/* hero */
.hero{position:relative;padding:150px 0 40px;overflow:hidden;color:#fff;background:radial-gradient(900px 500px at 50% -5%,rgba(45,107,255,.38),transparent 70%),radial-gradient(600px 400px at 90% 40%,rgba(25,227,247,.16),transparent 70%),var(--ink)}
.hero-mesh{position:absolute;inset:0;pointer-events:none}
#net{position:absolute;inset:0;width:100%;height:100%;opacity:.85}
.hero-mesh::after{content:"";position:absolute;left:-30%;right:-30%;bottom:-8%;height:55%;background:linear-gradient(rgba(25,227,247,.22) 1px,transparent 1px) 0 0/70px 70px,linear-gradient(90deg,rgba(25,227,247,.22) 1px,transparent 1px) 0 0/70px 70px;transform:perspective(500px) rotateX(62deg);transform-origin:bottom;mask-image:linear-gradient(to top,#000,transparent 85%);animation:floor 6s linear infinite}
@keyframes floor{to{background-position:0 70px,70px 0}}
.hero-copy{position:relative;text-align:center;max-width:920px}
.hero h1{font-size:clamp(2.7rem,7vw,5.6rem);font-weight:800;letter-spacing:-.04em;margin-bottom:26px;text-shadow:0 10px 50px rgba(4,10,26,.8)}
.hero h1 span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 28px rgba(25,227,247,.35))}
.hero-lead{max-width:680px;margin:0 auto 36px;color:var(--soft);font-size:1.18rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-bottom:34px}
.trust-row{display:flex;flex-wrap:wrap;gap:12px 26px;justify-content:center;color:#c3d2f1;font-size:.93rem;font-weight:600}
.trust-row i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(25,227,247,.16);color:var(--cyan);font-size:.72rem;margin-right:6px}
/* 3D product stage */
.hero-product{position:relative;max-width:1120px;margin-top:72px;padding-bottom:150px;perspective:2000px}
.product-halo{position:absolute;inset:8% 4% 0;background:radial-gradient(closest-side,rgba(45,107,255,.55),rgba(25,227,247,.18) 60%,transparent);filter:blur(50px)}
.stage{position:relative;transform-style:preserve-3d;transform:rotateX(14deg) scale(.96);will-change:transform}
.ring{position:absolute;left:50%;top:100%;width:min(1320px,128%);aspect-ratio:1;border-radius:50%;border:2px solid transparent;border-top-color:var(--cyan);border-bottom-color:rgba(45,107,255,.55);box-shadow:0 0 40px rgba(25,227,247,.25);animation:orbit 16s linear infinite;pointer-events:none}
.ring-b{top:96%;width:min(1080px,104%);border-top-color:var(--blue);border-bottom-color:rgba(25,227,247,.45);animation-duration:22s;animation-direction:reverse}
@keyframes orbit{from{transform:translate(-50%,-50%) translateZ(-90px) rotateX(76deg) rotateZ(0)}to{transform:translate(-50%,-50%) translateZ(-90px) rotateX(76deg) rotateZ(360deg)}}
.browser-frame{position:relative;border-radius:20px;overflow:hidden;background:#0a1430;border:1px solid rgba(255,255,255,.18);box-shadow:0 70px 120px -30px rgba(0,0,0,.8),0 0 0 1px rgba(25,227,247,.12),0 0 90px -10px rgba(45,107,255,.5)}
.browser-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.14),transparent 35%);pointer-events:none}
.browser-frame img{display:block;width:100%;height:auto}
.browser-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;font-size:.8rem;font-weight:600;color:#8fa3cc;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08)}
.browser-dots{display:flex;gap:7px}.browser-dots i{width:11px;height:11px;border-radius:50%;background:#ff6b81}.browser-dots i:nth-child(2){background:#ffb547}.browser-dots i:nth-child(3){background:#2fe08f}
.live-chip{display:inline-flex;align-items:center;gap:7px;color:#2fe08f}.live-chip i{width:8px;height:8px;border-radius:50%;background:#2fe08f;animation:pulse 2s infinite}
.float-stat{position:absolute;display:flex;align-items:center;gap:12px;padding:14px 20px 14px 14px;border-radius:18px;background:rgba(10,23,51,.72);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(14px);box-shadow:0 30px 60px -15px rgba(0,0,0,.7);transform:translateZ(110px);animation:bob 6s ease-in-out infinite}
.float-stat strong{display:block;font-family:var(--head);font-size:.95rem}.float-stat small{color:var(--soft);font-size:.82rem}
.stat-one{left:-34px;bottom:12%}.stat-two{right:-30px;top:20%;animation-delay:-3s}
.stat-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:.9rem}
.stat-icon.cyan{background:rgba(25,227,247,.18);color:var(--cyan)}.stat-icon.green{background:rgba(47,224,143,.18);color:#2fe08f}
@keyframes bob{50%{transform:translateZ(110px) translateY(-14px)}}
/* marquee */
.signal-strip{overflow:hidden;background:var(--ink);border-block:1px solid rgba(255,255,255,.08);padding:22px 0}
.signal-track{display:flex;width:max-content;animation:marquee 45s linear infinite}
.signal-strip:hover .signal-track{animation-play-state:paused}
.signal-track>div{display:flex;align-items:center;gap:30px;padding-right:30px}
.signal-track span{font-family:var(--head);font-weight:700;font-size:1.05rem;color:#8da2cd;white-space:nowrap}
.signal-track i{width:7px;height:7px;border-radius:2px;background:var(--grad);transform:rotate(45deg)}
@keyframes marquee{to{transform:translateX(-50%)}}
/* sections */
.section{position:relative;padding:116px 0}
.section-heading h2{font-size:clamp(2rem,4.2vw,3.3rem);font-weight:800;margin-bottom:20px}
.section-heading p{color:var(--muted);font-size:1.1rem;max-width:560px}
.section-heading.centered{text-align:center;max-width:760px;margin:0 auto 64px}.centered p{margin-inline:auto}
.text-link{display:inline-flex;gap:8px;margin-top:26px;font-weight:700;color:#1b50d8;transition:gap .25s}.text-link:hover{gap:14px}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--delay,0s),transform .8s cubic-bezier(.2,.7,.2,1) var(--delay,0s)}
.reveal.is-visible{opacity:1;transform:none}
.reveal.done{transition:transform .25s ease-out,border-color .3s,box-shadow .3s;transition-delay:0s}
/* roles */
.roles{background:linear-gradient(180deg,var(--mist),#f6f9ff)}
.roles-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.roles .section-heading{position:sticky;top:120px}
.role-stack{display:grid;gap:22px;perspective:1200px}
.role-card{--c:#2d6bff;position:relative;background:#fff;border-radius:26px;padding:32px;border:1px solid rgba(11,26,58,.07);box-shadow:0 30px 60px -28px rgba(20,50,120,.35),0 2px 0 rgba(255,255,255,.9) inset;overflow:hidden;transform-style:preserve-3d}
.role-card::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--c)}
.role-card:hover{box-shadow:0 40px 80px -30px color-mix(in srgb,var(--c) 55%,transparent)}
.role-teacher{--c:#0fb9cc;margin-left:36px}.role-parent{--c:#8b5cf6;margin-left:72px}
.role-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.role-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--c);color:#fff;font:800 1.3rem var(--head);box-shadow:0 14px 26px -8px var(--c)}
.role-number{font:800 2.4rem var(--head);color:rgba(11,26,58,.08)}
.role-card h3{font-size:1.4rem;margin-bottom:8px}.role-card p{color:var(--muted)}
.role-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.role-tags span{padding:6px 14px;border-radius:99px;font-size:.82rem;font-weight:700;background:color-mix(in srgb,var(--c) 11%,#fff);color:var(--c)}
/* features */
.capabilities{background:radial-gradient(800px 500px at 15% 0,rgba(45,107,255,.25),transparent 70%),radial-gradient(700px 500px at 100% 100%,rgba(25,227,247,.14),transparent 70%),var(--navy);color:#fff;overflow:hidden}
.capability-glow{position:absolute;left:50%;top:-200px;width:700px;height:700px;translate:-50% 0;background:radial-gradient(closest-side,rgba(25,227,247,.16),transparent);animation:drift 12s ease-in-out infinite alternate}
@keyframes drift{to{translate:-30% 80px}}
.capabilities .section-heading p{color:var(--soft)}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;perspective:1400px}
.feature-card{--c:#4d8dff;--gx:50%;--gy:0%;position:relative;padding:30px;border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.1);overflow:hidden;transform-style:preserve-3d}
.feature-card::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--gx) var(--gy),color-mix(in srgb,var(--c) 32%,transparent),transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}
.feature-card::after{content:"";position:absolute;left:30px;top:0;width:56px;height:3px;border-radius:0 0 4px 4px;background:var(--c);box-shadow:0 0 18px var(--c)}
.feature-card:hover{border-color:color-mix(in srgb,var(--c) 55%,transparent)}.feature-card:hover::before{opacity:1}
.feature-blue{--c:#4d8dff}.feature-green{--c:#2fe08f}.feature-violet{--c:#a78bfa}.feature-amber{--c:#ffb547}.feature-red{--c:#ff6b81}.feature-cyan{--c:#19e3f7}
.feature-code{display:block;font:800 .9rem var(--head);color:var(--c);margin-bottom:16px}
.feature-card h3{font-size:1.22rem;margin-bottom:10px}.feature-card p{color:var(--soft);font-size:.98rem;margin-bottom:18px}
.feature-card li{position:relative;padding-left:22px;font-size:.9rem;font-weight:600;color:#dbe6ff;margin-top:6px}
.feature-card li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;border-radius:3px;background:var(--c);rotate:45deg;opacity:.9}
/* communication */
.communication{background:linear-gradient(180deg,#f6f9ff,var(--mist))}
.communication-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:center}
.mobile-visual{position:relative;display:grid;place-items:center;perspective:1500px;padding:30px 0}
.phone-glow{position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,rgba(45,107,255,.45),rgba(25,227,247,.2) 60%,transparent);filter:blur(30px);animation:drift 9s ease-in-out infinite alternate}
.phone-frame{position:relative;width:min(300px,72vw);padding:11px;border-radius:46px;background:linear-gradient(145deg,#2a3c6e,#0a1430);box-shadow:0 60px 90px -30px rgba(10,23,51,.7),0 0 0 2px #394b7e,inset 0 0 0 1px rgba(255,255,255,.2);transform:rotateY(-16deg) rotateX(5deg) rotateZ(2deg);transition:transform .25s ease-out;animation:hover3d 7s ease-in-out infinite alternate}
@keyframes hover3d{to{translate:0 -14px}}
.phone-frame img{display:block;width:100%;height:auto;border-radius:36px}
.phone-speaker{position:absolute;top:18px;left:50%;translate:-50% 0;width:70px;height:6px;border-radius:9px;background:#0a1430;z-index:2}
.mobile-note{position:absolute;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:16px;background:#fff;box-shadow:0 24px 50px -14px rgba(20,50,120,.5);font-size:.88rem;animation:bob2 6s ease-in-out infinite}
.mobile-note span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(25,227,247,.2);color:#0aa3b5;font-size:.7rem}
.note-chat{left:-6%;top:22%}.note-alert{right:-8%;bottom:20%;animation-delay:-3s}.note-alert span{background:rgba(47,224,143,.2);color:#18a866}
@keyframes bob2{50%{translate:0 -12px}}
.communication .section-heading p{max-width:none}
.channel-list{display:grid;gap:14px;margin-top:34px}
.channel-list article{display:flex;gap:18px;padding:20px 22px;border-radius:20px;background:#fff;border:1px solid rgba(11,26,58,.07);box-shadow:0 18px 40px -26px rgba(20,50,120,.4);transition:transform .3s,box-shadow .3s}
.channel-list article:hover{transform:translateX(10px);box-shadow:0 24px 50px -24px rgba(45,107,255,.5)}
.channel-list article>span{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--grad);color:#031024;font:800 .85rem var(--head)}
.channel-list h3{font-size:1.1rem;margin-bottom:4px}.channel-list p{font-size:.95rem;color:var(--muted);margin:0}
/* outcomes */
.outcomes{background:var(--ink);padding:100px 0}
.outcomes-card{position:relative;display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center;padding:64px;border-radius:36px;color:#fff;overflow:hidden;background:linear-gradient(135deg,#0d2260,#0a1733 60%);border:1px solid rgba(255,255,255,.14)}
.outcomes-card::before{content:"";position:absolute;width:900px;height:900px;left:50%;top:50%;margin:-450px;background:conic-gradient(from 0deg,transparent 0 60%,rgba(25,227,247,.28),transparent 85%);animation:spin 14s linear infinite}
.outcomes-card::after{content:"";position:absolute;inset:2px;border-radius:34px;background:linear-gradient(135deg,#0c1f57,#091531 60%)}
.outcomes-card>*{position:relative;z-index:1}
@keyframes spin{to{rotate:360deg}}
.outcomes h2{font-size:clamp(2rem,4vw,3.1rem);font-weight:800}
.outcome-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.outcome-metrics article{padding:24px 18px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);text-align:center}
.outcome-metrics strong{display:block;font:800 clamp(2.2rem,4vw,3.3rem)/1 var(--head);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:8px}
.outcome-metrics span{font-size:.9rem;color:var(--soft)}
/* contact */
.contact{background:linear-gradient(180deg,var(--mist),#f6f9ff)}
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
.contact-copy h2{font-size:clamp(2rem,4vw,3.1rem);font-weight:800;margin-bottom:18px}.contact-copy>p{color:var(--muted);font-size:1.1rem;max-width:520px}
.contact-methods{display:grid;gap:14px;margin-top:34px}
.contact-methods a{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:20px;background:#fff;border:1px solid rgba(11,26,58,.07);box-shadow:0 18px 40px -28px rgba(20,50,120,.4);transition:transform .3s,box-shadow .3s}
.contact-methods a:hover{transform:translateY(-4px) translateX(4px);box-shadow:0 26px 50px -24px rgba(45,107,255,.55)}
.contact-methods small{display:block;color:var(--muted);font-size:.8rem}.contact-methods strong{font-family:var(--head);font-size:1.02rem}
.contact-methods div{flex:1}.contact-methods i{font-style:normal;color:#1b50d8;font-weight:800}
.contact-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--grad);color:#031024;font-weight:800}
.form-card{position:relative;padding:36px;border-radius:30px;background:#fff;border:1px solid rgba(11,26,58,.06);box-shadow:0 60px 100px -40px rgba(20,50,120,.5);transform:perspective(1600px) rotateY(-3deg)}
.form-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;border-radius:30px 30px 0 0;background:var(--grad)}
.form-heading{margin-bottom:22px}.form-heading span{display:block;font:800 1.45rem var(--head)}.form-heading i{font-style:normal;font-size:.88rem;color:var(--muted)}
form label{display:block;margin-bottom:16px}form label span{display:block;font-size:.84rem;font-weight:700;margin-bottom:6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
input,select,textarea{width:100%;font:inherit;font-size:.97rem;padding:13px 15px;border-radius:13px;border:1.5px solid #d6e0f2;background:#f4f8fe;color:var(--text);transition:border-color .2s,box-shadow .2s,background .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(45,107,255,.15)}
textarea{resize:vertical}.form-trap{position:absolute;left:-9999px}
.form-status{margin-top:14px;font-weight:600;font-size:.92rem}.form-status.is-success{color:#12935a}.form-status.is-error{color:#d63a52}.form-status a{text-decoration:underline}
.form-note{margin-top:12px;font-size:.8rem;color:var(--muted)}
/* footer */
.site-footer{background:var(--ink);color:#fff;padding:64px 0 28px;border-top:1px solid rgba(255,255,255,.08)}
.footer-top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-bottom:40px}.footer-top p{color:var(--soft);margin-top:14px}
.footer-links{display:flex;flex-wrap:wrap;gap:12px 28px;font-weight:600;color:#c3d2f1;align-self:center}.footer-links a:hover{color:var(--cyan)}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);color:#7d92bd;font-size:.88rem}
.floating-whatsapp{position:fixed;right:22px;bottom:22px;z-index:40;display:flex;align-items:center;gap:10px;padding:13px 20px;border-radius:99px;background:linear-gradient(135deg,#2fe08f,#12b56a);color:#032314;font-weight:800;box-shadow:0 16px 36px -8px rgba(18,181,106,.7);transition:transform .25s}
.floating-whatsapp:hover{transform:translateY(-4px) scale(1.04)}
/* responsive */
/* live effects */
.progress{position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:var(--grad);transform:scaleX(0);transform-origin:left;box-shadow:0 0 14px var(--cyan)}
.primary-nav a.active:not(.button){color:#fff}.primary-nav a.active:not(.button)::after{transform:scaleX(1)}
.hero-mesh{transform:translateY(calc(var(--sy,0)*.16px));will-change:transform}
.cursor-glow{position:fixed;left:0;top:0;z-index:45;width:520px;height:520px;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(closest-side,rgba(45,140,255,.14),transparent)}
.hero h1 span.split{background:none;filter:none}
.hero h1 .w{display:inline-block;animation:wordIn .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*110ms + 150ms)}
.hero h1 span.split .w{background:var(--grad2);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:wordIn .9s cubic-bezier(.2,.8,.2,1) both,shine 5s linear infinite;animation-delay:calc(var(--i)*110ms + 150ms),0s}
@keyframes wordIn{from{opacity:0;transform:translateY(.7em) rotateX(-70deg) scale(.9);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes shine{to{background-position:-220% 0}}
.live-feed{position:absolute;left:50%;bottom:46px;translate:-50% 0;height:60px;width:300px;pointer-events:none;z-index:3}
.toast{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 10px;border-radius:16px;background:rgba(10,23,51,.82);border:1px solid rgba(25,227,247,.3);backdrop-filter:blur(14px);box-shadow:0 20px 40px -12px rgba(0,0,0,.7),0 0 30px -6px rgba(25,227,247,.35);color:#fff;animation:toast 3.4s cubic-bezier(.2,.8,.2,1) forwards}
.toast strong{font:700 .92rem var(--head);flex:1}.toast em{font-style:normal;font-size:.75rem;color:var(--soft)}
.toast .stat-icon{width:34px;height:34px}.toast .stat-icon.blue{background:rgba(77,141,255,.2);color:#6ea8ff}
@keyframes toast{0%{opacity:0;transform:translateY(24px) scale(.92)}12%,82%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-18px) scale(.96)}}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:rip .7s ease-out forwards;pointer-events:none}
@keyframes rip{to{transform:scale(1);opacity:0}}
.floating-whatsapp::before{content:"";position:absolute;inset:0;border-radius:99px;border:2px solid #2fe08f;animation:ping 2.4s ease-out infinite;pointer-events:none}
@keyframes ping{to{transform:scale(1.5,1.7);opacity:0}}
.feature-card::after{animation:edge 3.2s ease-in-out infinite alternate}
@keyframes edge{to{width:calc(100% - 60px)}}
.role-icon{animation:iconfloat 4s ease-in-out infinite alternate}.role-teacher .role-icon{animation-delay:-1.3s}.role-parent .role-icon{animation-delay:-2.6s}
@keyframes iconfloat{to{transform:translateY(-6px) rotate(-5deg)}}
.contact-symbol{transition:transform .4s}.contact-methods a:hover .contact-symbol{transform:rotateY(180deg) scale(1.1)}
.section-heading h2,.contact-copy h2{background:linear-gradient(90deg,currentColor 40%,var(--blue),currentColor 60%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:titleSweep 7s ease-in-out infinite}
.capabilities .section-heading h2{background-image:linear-gradient(90deg,#fff 40%,var(--cyan),#fff 60%)}
.roles h2,.communication h2,.contact-copy h2{background-image:linear-gradient(90deg,#0b1a3a 40%,#2d6bff,#0b1a3a 60%)}
@keyframes titleSweep{0%,30%{background-position:100% 0}70%,100%{background-position:0 0}}
@media(max-width:1020px){.feature-grid{grid-template-columns:repeat(2,1fr)}.roles-layout,.communication-grid,.contact-grid,.outcomes-card{grid-template-columns:1fr;gap:44px}.roles .section-heading{position:static}.outcomes-card{padding:40px 28px}.form-card{transform:none}}
@media(max-width:820px){.nav-toggle{display:flex}.primary-nav{position:absolute;top:72px;left:16px;right:16px;display:none;flex-direction:column;align-items:stretch;gap:6px;padding:16px;border-radius:20px;background:rgba(10,23,51,.97);border:1px solid rgba(255,255,255,.14)}.primary-nav.is-open{display:flex}.primary-nav a{padding:12px}.primary-nav .button{margin-top:6px}.float-stat{display:none}.hero{padding-top:120px}.hero-product{margin-top:48px}.section{padding:80px 0}}
@media(max-width:620px){.feature-grid,.field-row,.outcome-metrics{grid-template-columns:1fr}.role-teacher,.role-parent{margin-left:0}.floating-whatsapp strong{display:none}.floating-whatsapp{padding:15px}.note-chat{left:0}.note-alert{right:0}.form-card{padding:26px 20px}.hero-actions .button{width:100%}}

.feature-card,.role-card,.phone-frame{touch-action:pan-y}

/* ===== Responsive hardening ===== */
html{overflow-x:clip;-webkit-text-size-adjust:100%}
body{overflow-x:clip;min-width:320px}
.section,.hero,.site-footer{overflow-x:clip}
img,video,canvas{max-width:100%}
.contact-grid>*,.roles-layout>*,.communication-grid>*,.outcomes-card>*,.field-row>*{min-width:0}
.contact-methods div{min-width:0}
.contact-methods strong,.contact-copy p,.footer-bottom span,.form-status{overflow-wrap:anywhere}
.header-inner{gap:12px}
@media(max-width:1020px){.note-chat{left:2%}.note-alert{right:2%}.stat-two{right:-10px}.stat-one{left:-10px}}
@media(max-width:820px){.shell{width:min(1180px,100% - 40px)}.header-inner{height:64px}.primary-nav{top:64px}.footer-top,.footer-bottom{flex-direction:column;align-items:flex-start;gap:14px}.footer-links{flex-wrap:wrap;gap:12px 20px}}
@media(max-width:480px){.shell{width:calc(100% - 32px)}body{font-size:1rem}.hero{padding-top:104px}.contact-methods a{padding:14px;gap:12px}.contact-methods strong{font-size:.95rem}.role-card,.feature-card{padding:24px}.form-card{padding:22px 16px}.browser-bar span:nth-child(2){display:none}.trust-row{flex-direction:column;align-items:flex-start;gap:8px}.mobile-note{font-size:.8rem;padding:10px 14px}.outcomes-card{padding:32px 20px}.button{padding:14px 20px}}
@media(max-width:360px){.brand-logo{max-width:46vw!important}.hero h1{font-size:clamp(1.9rem,10vw,2.4rem)}}
@media(hover:none){.button-primary:hover,.button-submit:hover,.button-secondary:hover,.channel-list article:hover,.contact-methods a:hover{transform:none}}
@media(max-width:1200px){.stat-one{left:0}.stat-two{right:0}}
