@font-face{font-family:League Spartan Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/league-spartan-vietnamese-wght-normal.COdtqR7n.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:League Spartan Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/league-spartan-latin-ext-wght-normal.DdUHL39C.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:League Spartan Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/league-spartan-latin-wght-normal.0z8Zi79b.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-ext-wght-normal.B5bTHO_g.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand:#1d49a7;--brand-deep:#163a86;--brand-ink:#1d49a7;--on-brand:#fff;--on-brand-muted:#dce5fa;--dark:#111;--on-dark:#fff;--on-dark-muted:#a9b0be;--bg:#f4f6fb;--surface:#fff;--ink:#111;--muted:#4a5263;--line:#d3d8e2;--error:#b42318;--error-on-brand:#ffd5cf;--display:"League Spartan Variable", "League Spartan", system-ui, sans-serif;--body:"Instrument Sans Variable", "Instrument Sans", system-ui, sans-serif;--display-weight:750;--radius:6px}*,:before,:after{box-sizing:border-box}:root{--ease-out:cubic-bezier(.23, 1, .32, 1)}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased;margin:0}img,svg,video{max-width:100%;display:block}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}:focus-visible{outline:3px solid var(--brand);outline-offset:3px}.blue :focus-visible,.hero :focus-visible,.dark :focus-visible,.featured :focus-visible{outline-color:#fff}h1,h2,h3{font-family:var(--display);font-weight:var(--display-weight);text-wrap:balance;margin:0}h2{letter-spacing:-.02em;font-size:clamp(2.5rem,6vw,4rem);line-height:.95}h3{letter-spacing:-.005em;font-size:1.375rem;line-height:1.1}p{text-wrap:pretty}.wrap{max-width:1200px;margin:0 auto;padding:0 20px}@media (width>=640px){.wrap{padding:0 32px}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}.skip{z-index:50;color:var(--ink);border-radius:var(--radius);background:#fff;padding:10px 16px;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.ribbon{background:var(--ink);color:#fff;text-align:center;margin:0;padding:8px 16px;font-size:.875rem}.site-header{z-index:20;background:var(--bg);color:var(--ink);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header.blue{background:var(--brand);color:#fff;border-bottom-color:#ffffff2e}.site-header .bar{justify-content:space-between;align-items:center;gap:16px;min-height:72px;display:flex}.brand{padding:6px 0;text-decoration:none;display:block}.logo{align-items:center;gap:10px;display:flex}.logo-mark{flex:none;width:40px;height:41px}.logo-word{font:700 .9375rem/.95 var(--display);letter-spacing:.07em;text-transform:uppercase;padding-top:3px}.site-nav{gap:30px;margin-left:auto;display:none}.site-nav a{padding:10px 0;font-weight:500;text-decoration:none}.headbtn{white-space:nowrap;background:var(--brand);color:#fff;border-radius:999px;align-items:center;min-height:44px;padding:0 16px;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.site-header.blue .headbtn{color:var(--brand);background:#fff}@media (width<=479px){.headbtn{display:none}}@media (width>=880px){.site-nav{display:flex}.headbtn{margin-left:12px}}.btn{font:600 1.0625rem/1 var(--body);cursor:pointer;white-space:nowrap;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:52px;padding:16px 26px;text-decoration:none;display:inline-flex}.btn.solid{background:var(--brand);color:#fff}.btn.white{color:var(--brand);background:#fff}.btn.outline{color:#fff;background:0 0;border-color:#fff9}.ctas{flex-wrap:wrap;gap:12px;display:flex}.textlink{color:var(--brand-ink);padding:10px 0;font-weight:600;display:inline-block}.btn,.headbtn{transition:transform .16s var(--ease-out), background-color .15s ease, border-color .15s ease}.btn:active,.headbtn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.site-nav a:hover{text-decoration:underline}.btn.solid:hover,.headbtn:hover{background:var(--brand-deep)}.site-header.blue .headbtn:hover,.btn.white:hover{background:var(--on-brand-muted)}.btn.outline:hover{border-color:#fff}}.hero{background:var(--brand);color:#fff;isolation:isolate;position:relative;overflow:hidden}.hero:before{content:"";z-index:-1;background:radial-gradient(closest-side,#ffffff1f,#0000);width:70vw;height:70vw;position:absolute;inset:-20% -10% auto auto}.hero-grid{gap:48px;padding-top:56px;display:grid}.hero h1{letter-spacing:-.035em;font-size:clamp(2.5rem,11.4vw,5.125rem);font-weight:800;line-height:.92}.hero h1 span{display:block}.hero h1 span+span{color:var(--on-brand-muted);margin-top:.06em}.hero-sub{color:var(--on-brand-muted);max-width:40ch;margin:28px 0 34px;font-size:1.1875rem;line-height:1.5}.stage{height:430px;margin:0 -20px;position:relative}.win{background:var(--ink);border-radius:12px 12px 0 0;width:640px;position:absolute;top:70px;left:26%;overflow:hidden;box-shadow:0 50px 100px -30px #0009}.win img{width:100%;height:auto}.win-bar{align-items:center;gap:6px;padding:10px 14px;display:flex}.win-bar i{background:#3a3a3a;border-radius:50%;width:10px;height:10px}.win-bar b{font:500 .8125rem/1 var(--body);color:var(--on-dark-muted);background:#222;border-radius:999px;margin-left:10px;padding:6px 14px}.handset{aspect-ratio:9/19;background:var(--ink);border-radius:32px;width:40%;max-width:210px;padding:7px;position:absolute;bottom:-60px;left:20px;box-shadow:0 40px 70px -20px #0009,inset 0 0 0 1.5px #333}.handset-screen{background:#fff;border-radius:26px;width:100%;height:100%;overflow:hidden}.handset-screen img{object-fit:cover;object-position:50% 0%;width:100%;height:100%}.pull{z-index:2;max-width:280px;color:var(--ink);background:#fff;border-radius:14px;margin:0;padding:18px 20px;position:absolute;top:0;right:20px;box-shadow:0 24px 50px -20px #00000073}.pull blockquote{font:600 1.125rem/1.3 var(--display);letter-spacing:-.005em;margin:0 0 10px}.pull figcaption{color:var(--muted);font-size:.875rem}@media (width<=639px){.stage{flex-direction:column;height:auto;margin:0;padding-bottom:56px;display:flex}.pull{order:-1;max-width:none;margin:0 0 24px;position:relative;inset:auto}.win{border-radius:12px;width:100%;position:relative;top:auto;left:auto}.win-bar b{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.stage .handset{border-radius:22px;width:30%;padding:5px;bottom:0;left:auto;right:14px}.stage .handset-screen{border-radius:18px}}@media (width>=640px){.stage{height:480px;margin:0 -32px 0 0}.handset{left:0}.pull{top:10px;left:46%;right:auto}}@media (width>=960px){.hero-grid{grid-template-columns:1fr 1.05fr;align-items:center;gap:24px;padding-top:80px}.hero-copy{padding-bottom:72px}.stage{align-self:end;height:640px;margin-right:calc(-1*max(32px,50vw - 568px))}.win{width:720px;top:120px;left:70px}.handset{width:210px;bottom:-30px;left:0}.pull{top:36px;left:250px}}@media (prefers-reduced-motion:no-preference){.win{animation:rise .9s var(--ease-out) .1s both}.handset{animation:rise .9s var(--ease-out) .28s both}.pull{animation:land .5s var(--ease-out) .9s both}@keyframes rise{0%{opacity:0;transform:translateY(70px)}}@keyframes land{0%{opacity:0;transform:translateY(12px)scale(.96)}}}.band{padding:88px 0}.band.white{background:var(--surface)}.band.dark{background:var(--dark);color:#fff}.band.blue{background:var(--brand);color:#fff}.band-head{gap:18px;margin-bottom:48px;display:grid}.lead{color:var(--muted);max-width:52ch;margin:0;font-size:1.1875rem;line-height:1.5}.dark .lead{color:var(--on-dark-muted)}@media (width>=960px){.band{padding:128px 0}.band-head{grid-template-columns:1.1fr 1fr;align-items:end;gap:48px;margin-bottom:64px}}#how{padding-bottom:104px}.case{overflow:hidden}.case-grid{gap:56px;display:grid}.case h2{margin-bottom:22px}.case-quote{border-left:3px solid var(--brand);margin:36px 0 28px;padding-left:22px}.case-quote blockquote{margin:0 0 14px}.case-quote p{color:#e7eaf0;max-width:54ch;margin:0;font-size:1.1875rem;line-height:1.55}.case-quote figcaption{color:var(--on-dark-muted)}.case-quote b,.textlink.light{color:#fff}.case-devices{grid-template-columns:repeat(3,1fr);align-items:start;gap:14px;display:grid}.case-devices .handset{width:auto;max-width:none;margin:0;animation:none;position:static}.case-devices .handset:nth-child(2){margin-top:48px}.case-devices .handset:nth-child(3){margin-top:18px}@media (width>=960px){.case-grid{grid-template-columns:.9fr 1.1fr;align-items:center;gap:72px}.case-devices{gap:22px}.case-devices .handset:nth-child(2){margin-top:96px}.case-devices .handset:nth-child(3){margin-top:36px}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.case-devices .handset{animation:linear both drift view();animation-range:cover}.case-devices .handset:nth-child(2){--drift:-70px}.case-devices .handset:nth-child(3){--drift:-30px}@keyframes drift{0%{transform:translateY(calc(var(--drift,-45px) * -1))}to{transform:translateY(var(--drift,-45px))}}}}.steps{counter-reset:step;gap:40px 32px;margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;border-top:2px solid var(--ink);align-content:start;gap:12px;padding-top:20px;display:grid}.steps li:before{content:counter(step);font:800 4rem/.8 var(--display);color:var(--brand-ink);margin-bottom:18px}.steps p{color:var(--muted);margin:0}@media (width>=640px){.steps{grid-template-columns:1fr 1fr}}@media (width>=1040px){.steps{grid-template-columns:repeat(4,1fr)}}.reviews-title{margin-bottom:48px}.reviews{gap:40px;display:grid}.review{border-top:2px solid var(--brand);align-content:start;gap:18px;margin:0;padding-top:22px;display:grid}.review blockquote{margin:0}.review p{margin:0;font-size:1.0625rem;line-height:1.6}.review figcaption{color:var(--muted)}.review b{color:var(--ink)}.review.big p{font:500 clamp(1.375rem, 2.4vw, 1.875rem)/1.3 var(--display);letter-spacing:-.01em}.reviews-note{color:var(--muted);margin:40px 0 0;font-size:.875rem}@media (width>=880px){.reviews{grid-template-columns:1.5fr 1fr;gap:40px 72px}.review.big{grid-row:span 2}}.included{gap:56px;display:grid}.included h2{max-width:13ch;margin-bottom:22px}.included-list{border-top:1px solid #333;margin:40px 0 0;padding:0;list-style:none;display:grid}.included-list li{border-bottom:1px solid #333;padding:16px 0 16px 34px;position:relative}.included-list li:before{content:"";border-bottom:2.5px solid #8fadee;border-left:2.5px solid #8fadee;width:14px;height:8px;position:absolute;top:23px;left:2px;transform:rotate(-45deg)}@media (width>=640px){.included-list{grid-template-columns:1fr 1fr;column-gap:32px}}.chat{place-self:center;gap:10px;width:100%;max-width:380px;display:grid}.msg{border-radius:18px;max-width:85%;margin:0;padding:12px 16px;font-size:1rem;line-height:1.4}.msg.them{color:#fff;background:#262626;border-bottom-left-radius:4px}.msg.me{background:var(--brand);color:#fff;border-bottom-right-radius:4px;justify-self:end}.chat-cap{color:var(--on-dark-muted);text-align:center;margin:6px 0 0;font-size:.875rem}@media (width>=960px){.included{grid-template-columns:1.4fr 1fr;gap:80px}}.plans{gap:20px;display:grid}.plan{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-content:start;gap:6px;padding:32px 28px;display:grid}.plan h3{font-size:1.75rem}.plan-fit{color:var(--muted);margin:0 0 18px}.plan-price{margin:0;font-weight:500}.plan-price .num{font:800 3.5rem/1 var(--display);letter-spacing:-.03em;margin-right:4px}.plan-setup{color:var(--muted);margin:4px 0 22px;font-size:.9375rem}.plan dl{border-top:1px solid var(--line);margin:0 0 28px}.plan dl div{border-bottom:1px solid var(--line);gap:2px;padding:12px 0;display:grid}.plan dt{color:var(--muted);font-size:.875rem}.plan dd{margin:0;font-weight:600}.plan .off dd{color:var(--muted);font-weight:400}.plan .btn{justify-self:start}.plan.featured{background:var(--brand);color:#fff;border-color:var(--brand)}.plan.featured .plan-fit,.plan.featured .plan-setup,.plan.featured dt{color:var(--on-brand-muted)}.plan.featured dl,.plan.featured dl div{border-color:#ffffff38}.plan-tag{color:var(--brand);background:#fff;border-radius:999px;justify-self:start;margin:0 0 6px;padding:4px 12px;font-size:.875rem;font-weight:600}@media (width<=959px){.plan.featured{order:-1}}@media (width>=960px){.plans{grid-template-columns:repeat(3,1fr);align-items:start}.plan.featured{margin-top:-24px;padding-top:40px;padding-bottom:40px}}.terms{max-width:76ch;color:var(--muted);gap:14px;margin-top:48px;display:grid}.terms p{margin:0}.terms strong{color:var(--ink)}.about{align-items:center;gap:40px;display:grid}.about-photo{aspect-ratio:4/5;border-radius:16px;max-width:460px;margin:0;overflow:hidden}.about-photo img{object-fit:cover;object-position:50% 30%;width:100%;height:100%}.about h2{max-width:12ch;margin-bottom:28px}.about-quote{font:600 clamp(1.375rem, 2.6vw, 1.875rem)/1.25 var(--display);letter-spacing:-.01em;max-width:28ch;margin:0 0 22px}.about-copy p:not(.about-quote){color:var(--on-brand-muted);max-width:56ch;margin:0;font-size:1.125rem}@media (width>=960px){.about{grid-template-columns:.85fr 1.15fr;gap:88px}}.faq-grid{gap:32px;display:grid}.faq{border-top:2px solid var(--ink)}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font:600 1.1875rem/1.35 var(--body);min-height:44px;padding:20px 40px 20px 0;list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font:400 1.75rem/1 var(--body);color:var(--brand-ink);transition:transform .2s var(--ease-out);position:absolute;top:14px;right:6px}.faq details[open] summary:after{transform:rotate(45deg)}.faq details p{color:var(--muted);max-width:64ch;margin:0 0 22px}@media (hover:hover) and (pointer:fine){.faq summary:hover{color:var(--brand-ink)}}@media (width>=960px){.faq-grid{grid-template-columns:1fr 1.6fr;gap:80px}}.form-grid{gap:40px;display:grid}.form-intro h2{max-width:9ch;margin-bottom:22px}.form-intro p{color:var(--on-brand-muted);max-width:40ch;margin:0 0 16px;font-size:1.1875rem;line-height:1.5}.form-intro a{color:#fff;font-weight:600}@media (width>=960px){.form-grid{grid-template-columns:1fr 1.25fr;gap:80px}}.form,.form .row{gap:18px;display:grid}@media (width>=600px){.form .row{grid-template-columns:1fr 1fr}}.form label{align-content:start;gap:6px;font-weight:600;display:grid}.form .opt{color:var(--on-brand-muted);font-weight:400}.form input,.form textarea{font:400 1.0625rem var(--body);color:var(--ink);background:#fff;border:2px solid #fff;border-radius:10px;width:100%;min-height:50px;padding:12px 14px}.form textarea{resize:vertical;min-height:110px}.form ::placeholder{color:#6b7280}.form input:focus,.form textarea:focus{outline-offset:2px;border-color:var(--ink);outline:3px solid #fff}.form [aria-invalid=true]{border-color:var(--error);outline:3px solid var(--error-on-brand);outline-offset:2px}.form .hint{color:var(--on-brand-muted);margin:-8px 0 0;font-size:.9375rem}.form .err{color:var(--error-on-brand);min-height:1.5em;margin:0;font-weight:600}.form .note{color:var(--on-brand-muted);margin:0;font-size:.9375rem}.form .note a{color:#fff}.hp{position:absolute;left:-10000px}.done{border-left:4px solid #fff;padding:6px 0 6px 20px}.done h3{margin-bottom:10px;font-size:2.25rem}.done p{color:var(--on-brand-muted);margin:0 0 8px}.done:not([hidden]){animation:done-in .25s var(--ease-out)}@keyframes done-in{0%{opacity:0;transform:translateY(8px)}}.prose{max-width:68ch;padding:56px 0 88px}.prose h1{letter-spacing:-.02em;margin-bottom:12px;font-size:clamp(2.5rem,7vw,4rem);line-height:.95}.prose h2{letter-spacing:0;margin:40px 0 8px;font-size:1.5rem;line-height:1.15}.prose .meta{color:var(--muted);margin-top:0}.prose li{margin-bottom:6px}.prose .ctas{margin-top:24px}.site-footer{background:var(--dark);color:var(--on-dark-muted);padding:72px 0 120px;font-size:.9375rem;overflow:hidden}.foot-word{font:800 clamp(2.5rem, 10.5vw, 9.5rem)/.85 var(--display);letter-spacing:.02em;text-transform:uppercase;color:#fff;white-space:nowrap;margin:0 0 56px}.site-footer .cols{gap:28px;display:grid}.site-footer b{color:#fff;font-weight:600}.site-footer p{margin:0 0 6px}.site-footer ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.site-footer a{color:#fff;min-height:44px;padding:10px 0;display:inline-block}.site-footer p:has(>a){margin:0}@media (width>=760px){.site-footer .cols{grid-template-columns:2fr 1fr 1fr}}@media (width>=880px){.site-footer{padding-bottom:56px}}.dock{z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));backdrop-filter:blur(10px);border-top:1px solid var(--line);transition:transform .25s var(--ease-out);background:#f4f6fbeb;display:grid;position:fixed;bottom:0;left:0;right:0}.dock[data-hidden]{transform:translateY(110%)}@media (width>=880px){.dock{display:none}}@media (prefers-reduced-motion:reduce){.btn,.headbtn,.dock,.faq summary:after{transition:none}.btn:active,.headbtn:active{transform:none}.done:not([hidden]){animation:none}}.schools-hero .wrap{padding-top:72px;padding-bottom:96px}.schools-hero h1{max-width:16ch}.schools-list li:before{content:none}.schools-list li{padding-top:24px}.schools-check p:not(.about-quote){color:var(--muted);font-size:1.125rem}.schools-check .ctas{margin:24px 0}@media (width>=1040px){.schools-list{grid-template-columns:repeat(3,1fr)}}
