/* Layout and motion rules shared by the public pages. */
html { scroll-padding-top:84px; }
section[id] { scroll-margin-top:0; }
body main > section {
  min-height:100vh; min-height:100svh; width:100%; box-sizing:border-box;
  display:flex; flex-direction:column; justify-content:center;
  padding-block:100px !important; overflow:clip;
}
body main > section.hero { padding-top:140px !important; padding-bottom:72px !important; }
body main > section > .wrap { flex-shrink:0; }
body main > .hairline { display:none; }
body main > section.overview-block { gap:30px; }
.overview-block .featured-section { padding:0; }
.overview-block .trust { padding-block:20px; }
.overview-block .tools { padding-block:24px; }
.overview-block .feature-card { max-width:1120px; margin:auto; }
.hero .hero-meta { margin-bottom:0; }
.program { transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.scroll-progress { position:fixed; z-index:80; top:0; left:0; height:3px; width:100%; background:#9b8cff; transform:scaleX(0); transform-origin:left; pointer-events:none; }
/* Content stays visible if JS or the animation API is unavailable. */
[data-motion] { will-change:auto; }
.motion-word { display:inline-block; max-width:100%; overflow-wrap:anywhere; vertical-align:baseline; }
.number-a11y { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.count-value { display:inline-block; font-variant-numeric:tabular-nums; }
.hero-meta strong { min-width:2ch; }
.portrait { isolation:isolate; }
body main > #mentor { padding-block:110px !important; }
.hero-art img { transition:none; }
.hero-art { animation:art-float 8s ease-in-out infinite; animation-play-state:paused; }
.hero-art[data-loop-visible="true"] { animation-play-state:running; }
.tools-track { animation-play-state:paused; }
.tools-track[data-loop-visible="true"] { animation-play-state:running; }
@keyframes art-float { 0%,100% { translate:0 0; } 50% { translate:0 -5px; } }
.program:hover,.wcard:hover,.fields-grid a:hover,.portrait:hover { transform:none !important; }
.program:hover,.wcard:hover { box-shadow:0 18px 30px -24px #5145e855; }
.program,.wcard,.fields-grid a { transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease; }
.reveal,.reveal.in { opacity:1; transform:none; transition:none; }
.faq summary::after { transition:transform .25s ease; }
.portrait { transition:none; }
.mentor .portrait-frame { width:min(100%,360px); max-width:360px; justify-self:center; }
.mentor .portrait { height:420px; aspect-ratio:auto; }
.mentor .portrait img { object-position:center 20%; }
@media(max-width:800px) {
  .mentor .portrait-frame { width:min(100%,290px); margin-inline:12px; }
  .mentor .portrait { height:340px; }
}
@media(max-width:800px) {
  body main > section { padding-block:92px !important; }
  .hero-art { max-width:460px; }
  .programs { gap:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .hero-art { transform:none; }
}
