
:root{--bg:#100B1F;--deep:#1A1033;--pv:#6C3BFF;--ep:#8B5CF6;--lav:#B69CFF;--mut:#A99DBF;--line:rgba(139,92,246,.22);color-scheme:dark;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:84px;height:auto}
body{margin:0;background:var(--bg);color:#fff;font:16px/1.6 Inter,system-ui,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Sora,sans-serif;line-height:1.12;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(2.3rem,6vw,4rem)}h2{font-size:clamp(1.7rem,4vw,2.6rem)}h3{font-size:1.1rem;letter-spacing:-.01em}
p{margin:0;color:var(--mut)}a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--lav);outline-offset:3px;border-radius:8px}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
section{padding:80px 0;position:relative}
.eyebrow{font:600 .75rem Sora;letter-spacing:.14em;text-transform:uppercase;color:var(--lav);margin-bottom:14px;display:block}
.head{max-width:680px;margin-bottom:44px}.head p{margin-top:14px}
.center{margin-inline:auto;text-align:center}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 24px;border-radius:12px;font:600 .95rem Sora;border:1px solid var(--line);background:transparent;color:#fff;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px);background:rgba(139,92,246,.12)}
.btn.pri{background:linear-gradient(135deg,var(--ep),var(--pv));border-color:transparent;box-shadow:0 8px 24px -8px rgba(108,59,255,.7)}
.btn.pri:hover{box-shadow:0 12px 30px -8px rgba(108,59,255,.9);background:linear-gradient(135deg,var(--ep),var(--pv))}
.card{background:linear-gradient(180deg,rgba(26,16,51,.9),rgba(26,16,51,.55));border:1px solid var(--line);border-radius:18px;padding:26px;transition:transform .25s,border-color .25s}
.card:hover{transform:translateY(-4px);border-color:rgba(182,156,255,.5)}
.grid{display:grid;gap:18px}
.logo{display:inline-flex;align-items:center;gap:.3em;font:600 1.35rem/1 Sora;letter-spacing:-.03em}
.logo svg{width:1.4em;height:1.4em}.logo b{font-weight:700;background:linear-gradient(90deg,var(--lav),var(--ep));-webkit-background-clip:text;background-clip:text;color:transparent}
.sym path{fill:none;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.c1{stroke:url(#g1)}.c2{stroke:var(--lav)}
/* nav */
header{position:fixed;inset:0 0 auto;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
header.scrolled{background:rgba(16,11,31,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.links{display:none;gap:30px;font-size:.92rem;color:var(--mut)}.links a:hover{color:#fff}
.acts{display:none;gap:10px;align-items:center}.acts .btn{min-height:40px;padding:0 18px}
.burger{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:none;color:#fff;cursor:pointer;display:grid;place-items:center}
.mobile{display:none;background:rgba(16,11,31,.97);border-bottom:1px solid var(--line);padding:8px 20px 20px}
.mobile.open{display:block}.mobile a,.mobile button.l{display:block;width:100%;text-align:left;padding:14px 4px;border:0;background:none;color:#fff;font:inherit;border-bottom:1px solid var(--line)}
.mobile .btn{margin-top:16px;width:100%}
@media(min-width:900px){.links,.acts{display:flex}.burger,.mobile{display:none!important}}
/* hero */
.hero{padding:140px 0 80px;background:radial-gradient(60% 50% at 80% 10%,rgba(108,59,255,.28),transparent 70%),radial-gradient(40% 40% at 5% 30%,rgba(139,92,246,.12),transparent 70%)}
.hero .grid{align-items:center;gap:48px}
.hero p.lead{font-size:1.1rem;margin:22px 0 30px;max-width:520px}
.hero h1 span,.grad{background:linear-gradient(90deg,var(--lav),var(--ep) 60%,var(--pv));-webkit-background-clip:text;background-clip:text;color:transparent}
.ctas{display:flex;gap:12px;flex-wrap:wrap}.trust{margin-top:22px;font-size:.85rem;color:var(--mut);display:flex;gap:8px;align-items:center}
.dot{width:8px;height:8px;border-radius:50%;background:var(--lav);display:inline-block}
@media(min-width:960px){.hero .grid{grid-template-columns:1fr 1.05fr}}
/* window */
.win{background:#140d28;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 30px 80px -30px rgba(108,59,255,.55)}
.wbar{display:flex;gap:6px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-size:.75rem;color:var(--mut)}
.wbar i{width:10px;height:10px;border-radius:50%;background:#2c1f50}.wbar span{margin-left:10px}
.wbody{padding:20px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.pill{font:600 .7rem Inter;padding:4px 10px;border-radius:99px;background:rgba(182,156,255,.14);color:var(--lav);border:1px solid rgba(182,156,255,.3);white-space:nowrap}
.pill.warn{background:rgba(169,157,191,.12);color:var(--mut);border-color:rgba(169,157,191,.3)}
.url{font:.82rem ui-monospace,Menlo,monospace;color:var(--lav);word-break:break-all}
.meter{height:6px;border-radius:9px;background:#241848;overflow:hidden;margin-top:6px}.meter i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--pv),var(--lav));width:var(--w)}
.mini{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}.mini small{font-size:.72rem;color:var(--mut);display:flex;justify-content:space-between}
.log{font:.76rem/1.9 ui-monospace,Menlo,monospace;color:var(--mut);background:#0d0819;border-radius:12px;padding:12px 14px;overflow-x:auto;white-space:nowrap}.log em{color:var(--lav);font-style:normal}
.demo{font-size:.72rem;color:var(--mut);margin-top:12px;text-align:center}
/* tech */
.tech{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.chip{display:flex;align-items:center;gap:10px;min-width:150px;padding:12px 18px;border:1px solid var(--line);border-radius:14px;background:rgba(26,16,51,.6);font:500 .95rem Sora}
.chip span{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font:700 .72rem Sora;background:linear-gradient(135deg,var(--ep),var(--pv))}
/* features */
.fgrid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(108,59,255,.18);border:1px solid var(--line);margin-bottom:18px;color:var(--lav);font:700 1rem Sora}
.card .row{align-items:flex-start;margin-bottom:0}.card h3{margin-bottom:8px}.card p{font-size:.93rem}
/* steps */
.steps{counter-reset:s;display:grid;gap:28px;position:relative;padding-left:30px}
.steps::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--pv),var(--lav))}
.step{position:relative}.step::before{content:"";position:absolute;left:-30px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:3px solid var(--ep)}
.step b{font:600 .8rem Sora;color:var(--lav);letter-spacing:.1em}.step h3{margin:6px 0}
@media(min-width:900px){.steps{grid-template-columns:repeat(3,1fr);padding:30px 0 0;gap:32px}
.steps::before{left:0;right:0;top:6px;bottom:auto;width:auto;height:2px}.step::before{left:0;top:-30px}}
/* students */
.uses{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:34px 0}
.panel{background:radial-gradient(70% 90% at 100% 0%,rgba(108,59,255,.22),transparent 70%),var(--deep);border:1px solid var(--line);border-radius:28px;padding:clamp(28px,5vw,56px)}
/* pricing */
.pgrid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));align-items:stretch}
.plan{display:flex;flex-direction:column;gap:16px}.plan.feat{border-color:var(--ep);background:linear-gradient(180deg,rgba(108,59,255,.22),rgba(26,16,51,.7))}
.price{font:700 1.9rem Sora;color:#fff}.price small{font:400 .8rem Inter;color:var(--mut)}
.plan ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;flex:1;font-size:.92rem;color:var(--mut)}
.plan li::before{content:"✓";color:var(--lav);margin-right:10px;font-weight:700}
.note{margin-top:20px;text-align:center;font-size:.82rem}
/* dashboard */
.dash{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin-bottom:18px}
.stat{background:rgba(26,16,51,.8);border:1px solid var(--line);border-radius:14px;padding:16px}.stat p{font-size:.75rem}.stat b{font:700 1.6rem Sora;display:block}
.dcols{display:grid;gap:18px}@media(min-width:900px){.dcols{grid-template-columns:1.4fr 1fr}}
.proj{display:grid;gap:12px}.pcard{background:rgba(26,16,51,.8);border:1px solid var(--line);border-radius:14px;padding:16px}
.dep{display:grid;gap:12px;font-size:.85rem}.dep div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px}.dep div:last-child{border:0}
/* faq */
.faq{max-width:780px;margin:0 auto;display:grid;gap:12px}
.q{border:1px solid var(--line);border-radius:14px;background:rgba(26,16,51,.6)}
.q button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;padding:18px 20px;background:none;border:0;color:#fff;font:600 1rem Sora;cursor:pointer;min-height:56px}
.q button::after{content:"+";font-size:1.4rem;color:var(--lav);transition:transform .25s}.q button[aria-expanded=true]::after{transform:rotate(45deg)}
.q div{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s}.q div.open{grid-template-rows:1fr}.q div p{overflow:hidden;padding:0 20px;font-size:.95rem}.q div.open p{padding-bottom:20px}
/* cta */
.final{margin:0 20px;border-radius:32px;text-align:center;padding:clamp(48px,8vw,96px) 20px;background:radial-gradient(60% 80% at 50% 0%,rgba(182,156,255,.35),transparent 70%),linear-gradient(135deg,var(--pv),#3a1d99 70%,var(--deep));border:1px solid rgba(182,156,255,.35)}
.final p{color:#e4dcff;max-width:560px;margin:18px auto 30px}.final .btn{background:#fff;color:#100B1F;border:0}
footer{border-top:1px solid var(--line);margin-top:80px;padding:56px 0 32px}
.fcols{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.fcols>div:first-child{grid-column:1/-1;max-width:340px}
.fcols h4{margin:0 0 12px;font:600 .8rem Sora;color:#fff}.fcols a{display:block;color:var(--mut);font-size:.9rem;padding:4px 0}.fcols a:hover{color:#fff}
.copy{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:.8rem}
dialog{background:var(--deep);color:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;max-width:420px;width:calc(100% - 40px)}
dialog::backdrop{background:rgba(16,11,31,.8)}dialog p{margin:10px 0 22px}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}

.svg-defs{position:absolute;width:0;height:0}.meter-fill-24{--w:24%}.meter-fill-41{--w:41%}.meter-fill-18{--w:18%}.meter-fill-30{--w:30%}.student-description{margin-top:14px;max-width:640px}.recent-title{margin-bottom:14px}.final-section{padding-top:0}.footer-logo-link{padding:0}.footer-description{margin-top:14px;font-size:.9rem}.footer-action,.footer-legal-action{all:unset;cursor:pointer;color:var(--mut);font-size:.9rem;padding:4px 0}.footer-legal-action{display:block}.dialog-submit{width:100%}.faq-question{font-size:inherit}.project-tech{font-size:.85rem;margin-top:6px}.muted{color:var(--mut)}
.pricing-head{margin-bottom:40px}.pricing-head .eyebrow{letter-spacing:.16em}.pricing-head h2{margin-top:14px}.pricing-head p{margin-top:12px}.pricing-gradient{background:linear-gradient(90deg,#a78bfa,#5cc7e8);-webkit-background-clip:text;background-clip:text;color:transparent}.pgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.plan{position:relative;gap:14px;padding:28px 24px 24px;min-height:402px;border-color:rgba(139,148,171,.2);background:linear-gradient(155deg,#17202f,#111824 80%)}.plan.feat{border-color:#7966f5;background:linear-gradient(155deg,#201f3b,#151b29 80%)}.plan h3{font-size:.91rem;letter-spacing:-.025em;white-space:nowrap}.plan>p{min-height:42px;font-size:.68rem;line-height:1.7}.plan .price{display:flex;align-items:baseline;gap:7px;border-top:1px solid rgba(169,157,191,.16);padding-top:19px;font-size:3rem;line-height:1;color:#f8fafc;letter-spacing:-.04em}.plan .price .currency{font-size:.95rem;align-self:flex-start;padding-top:5px;letter-spacing:0}.plan .price small{font-size:.62rem;letter-spacing:0}.plan ul{gap:12px;font-size:.68rem;color:#e2e8f0}.plan li::before{color:#34e3b0}.plan>.btn{width:100%;justify-content:space-between;min-height:44px;padding:0 16px;border-color:rgba(169,157,191,.3);font-size:.7rem}.plan>.btn span{font-size:1rem}.plan>.btn.pri{border-color:transparent}.popular-pill{position:absolute;top:-13px;left:50%;transform:translateX(-50%);padding:5px 14px;background:#7058ee;color:#fff;border:0;font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.plan.feat:hover{border-color:#a78bfa}.pricing-section .note{margin-top:20px;font-size:.62rem;color:#8f94a3}
@media(max-width:1000px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}}
@media(max-width:560px){.pgrid{grid-template-columns:1fr}.plan{min-height:unset}.plan h3{white-space:normal}.pricing-head h2{font-size:clamp(1.7rem,8vw,2.6rem)}}
