/* Visible live motion layer for the editorial homepage. Kept separate so legal pages remain untouched. */
:root{
  --ambient-a:rgba(37,99,235,.12);
  --ambient-b:rgba(14,165,233,.04);
  --ambient-c:rgba(99,102,241,.03);
}

body[data-tone="paper"]{--page-bg:#fbfbfa;--ambient-a:rgba(37,99,235,.12);--ambient-b:rgba(14,165,233,.035);--ambient-c:rgba(99,102,241,.024)}
body[data-tone="white"]{--page-bg:#ffffff;--ambient-a:rgba(37,99,235,.10);--ambient-b:rgba(14,165,233,.03);--ambient-c:rgba(99,102,241,.022)}
body[data-tone="ice"]{--page-bg:#f3f7ff;--ambient-a:rgba(37,99,235,.14);--ambient-b:rgba(56,189,248,.055);--ambient-c:rgba(99,102,241,.04)}
body[data-tone="mist"]{--page-bg:#f5f6f8;--ambient-a:rgba(37,99,235,.11);--ambient-b:rgba(125,211,252,.04);--ambient-c:rgba(99,102,241,.028)}

.ambient-field{
  z-index:0;
  overflow:hidden;
  opacity:.9;
  background:
    radial-gradient(ellipse 34% 30% at var(--mx) var(--my),var(--ambient-a) 0%,rgba(37,99,235,.045) 38%,transparent 76%),
    radial-gradient(circle at 16% 82%,var(--ambient-b),transparent 28%),
    radial-gradient(circle at 88% 64%,var(--ambient-c),transparent 27%);
  transition:background-color .9s ease,opacity .6s ease;
}
.ambient-field::before,.ambient-field::after{
  content:'';
  position:absolute;
  width:min(52vw,680px);
  aspect-ratio:1;
  border-radius:50%;
  filter:blur(72px);
  opacity:.34;
  will-change:transform;
  pointer-events:none;
}
.ambient-field::before{
  left:-18vw;
  top:12vh;
  background:radial-gradient(circle,rgba(37,99,235,.075),rgba(37,99,235,0) 70%);
  animation:ambient-drift-a 19s ease-in-out infinite alternate;
}
.ambient-field::after{
  right:-20vw;
  bottom:-10vh;
  background:radial-gradient(circle,rgba(56,189,248,.05),rgba(99,102,241,0) 72%);
  animation:ambient-drift-b 23s ease-in-out infinite alternate;
}
body>header,body>main,body>footer{position:relative;z-index:1}
.scroll-progress{z-index:220;height:3px;box-shadow:0 0 16px rgba(37,99,235,.18)}

/* Hero proportion correction. */
.hero-grid{
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:clamp(58px,6vw,96px);
  align-items:end;
}
.hero-copy{min-width:0;max-width:790px}
.hero h1{
  font-size:clamp(52px,5.35vw,80px);
  line-height:.95;
  max-width:790px;
  text-wrap:balance;
}
.hero h1 span{white-space:normal}
.hero h1 span:after{display:none}
.hero-lead{max-width:670px;font-size:18px;line-height:1.72;color:#566173}
.learning-card{min-width:0;align-self:end;padding-left:clamp(26px,2.2vw,38px)}

/* No custom cursor overlay. The normal cursor remains; only the background responds to it. */
.cursor-halo,.cursor-dot{display:none!important;visibility:hidden!important;opacity:0!important}

/* Readability pass. */
.eyebrow,.section-kicker,.mini-label{font-size:11px;letter-spacing:.14em}
.learning-card h2{font-size:31px;line-height:1.14}
.learning-intro{font-size:14px;line-height:1.7;max-width:380px}
.path-step{grid-template-columns:36px 1fr;gap:14px;padding:18px 0}
.step-number{font-size:10px}
.path-step strong{font-size:14px}
.path-step div span{font-size:12.5px;line-height:1.6;margin-top:5px}
.learning-link{font-size:12.5px;padding-top:19px}

.hero-facts strong{font-size:14px}
.hero-facts span{font-size:12px;line-height:1.5}

.trust-grid strong{font-size:15px}
.trust-grid p{font-size:13px;line-height:1.65}
.trust-index{font-size:10px}

.section-title-wrap p,.about-copy>p{font-size:16px;line-height:1.8}
.course-card h3{font-size:28px}
.course-card>p,.course-card-dark>p,.course-card-blue>p{font-size:14px;line-height:1.75}
.course-number{font-size:11px}
.course-level{font-size:10px}
.course-footer span,.course-card-dark .course-footer span,.course-card-blue .course-footer span{font-size:11px}

.about-location{font-size:11px}
.feature-row strong{font-size:14px}
.feature-row p{font-size:13px;line-height:1.7}
.feature-icon{font-size:10px}

.price-tier{font-size:11px}
.price-badge,.price-badge.popular{font-size:9px}
.price-card>p{font-size:14px;line-height:1.7}
.price-card li{font-size:13px;line-height:1.5;padding:12px 0}
.price-card li::before{content:none!important;display:none!important}
.price small{font-size:12px}
.trial-note{font-size:12px;line-height:1.6}

.contact-card>p{font-size:15px;line-height:1.75}
.contact-list span{font-size:11px}
.contact-list strong,.contact-list a{font-size:13px}
.contact-note{font-size:12px;line-height:1.6}
.form-intro span{font-size:11px}
.form-intro strong{font-size:24px}
.field label{font-size:12px}
.field input,.field select,.field textarea{font-size:14px}
.form-consent{font-size:12px;line-height:1.65}

.hero::after{
  content:'';
  position:absolute;
  inset:auto 0 0 0;
  height:34%;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(37,99,235,.015));
  animation:hero-breathe 10s ease-in-out infinite alternate;
}
.hero>.container{position:relative;z-index:1}

@keyframes ambient-drift-a{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(13vw,7vh,0) scale(1.08)}
  100%{transform:translate3d(7vw,20vh,0) scale(.96)}
}
@keyframes ambient-drift-b{
  0%{transform:translate3d(0,0,0) scale(.95)}
  50%{transform:translate3d(-11vw,-8vh,0) scale(1.08)}
  100%{transform:translate3d(-5vw,-20vh,0) scale(1)}
}
@keyframes hero-breathe{
  from{opacity:.2;transform:translateY(2%)}
  to{opacity:.65;transform:translateY(0)}
}

@media(max-width:1100px){
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:44px}
  .hero h1{font-size:clamp(48px,6vw,68px)}
}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:56px}
  .hero-copy{max-width:760px}
  .hero h1{max-width:760px}
  .learning-card{padding-left:0;border-left:0;border-top:1px solid var(--ed-line);padding-top:30px}
}

@media(max-width:780px){
  .ambient-field::before,.ambient-field::after{width:95vw;opacity:.28}
  .scroll-progress{height:2px}
  .hero h1{font-size:clamp(44px,13vw,64px);line-height:.97}
  .hero-lead{font-size:16px}
  .learning-intro{font-size:13.5px}
  .path-step strong{font-size:13.5px}
  .path-step div span{font-size:12px}
}

@media(prefers-reduced-motion:reduce){
  .ambient-field::before,.ambient-field::after,.hero::after{animation:none!important}
  .ambient-field{background:radial-gradient(ellipse 34% 30% at 75% 18%,rgba(37,99,235,.07),transparent 76%)}
}
