/* Shared scroll motion for the selected Classic site. */
.header{position:fixed;inset:0 0 auto;z-index:9999;background:transparent;box-shadow:none;transition:background-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}
.header .brand img{transition:filter .3s ease}
.header:not(.is-scrolled) .brand img{filter:brightness(0) invert(1)}
.header:not(.is-scrolled) .menu-toggle{color:#fff;border-color:rgba(255,255,255,.55)}
.header.is-scrolled{background:#fff;box-shadow:0 8px 28px rgba(15,15,15,.09);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.header.is-scrolled .brand img{filter:none}
.logo-strip{display:block;overflow:hidden;padding-left:0;padding-right:0;position:relative;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.logo-marquee-track{display:flex;align-items:center;width:max-content;gap:clamp(36px,5vw,88px);padding:12px clamp(36px,5vw,88px);animation:teg-logo-scroll 34s linear infinite;will-change:transform}
.logo-marquee-track:hover,.logo-marquee-track:focus-within{animation-play-state:paused}
.logo-marquee-track img{flex:0 0 auto;width:clamp(130px,13vw,205px);height:92px;object-fit:contain}
@keyframes teg-logo-scroll{to{transform:translateX(calc(-1 * var(--marquee-distance,50%)))}}

.motion-reveal{opacity:0;translate:0 42px;transition:opacity .8s cubic-bezier(.2,.7,.2,1),translate .9s cubic-bezier(.2,.7,.2,1)}
.motion-reveal.motion-visible{opacity:1;translate:0 0}
.motion-reveal[data-motion-delay="1"]{transition-delay:.08s}.motion-reveal[data-motion-delay="2"]{transition-delay:.16s}
.motion-parallax{--motion-shift:0px;translate:0 var(--motion-shift);scale:var(--motion-scale,1);will-change:translate,scale}
.inner-page{overflow:clip}
.story-image,.article,.inner-page .elementor-widget-image{overflow:clip}
.inner-page .inner-hero{background-position:center calc(50% + var(--motion-shift,0px))!important}

/* Keep pause and slide dots, remove the requested arrow buttons. */
.hero-prev,.hero-next{display:none!important}
.hero-controls{max-width:250px}

@media(max-width:800px){.logo-marquee-track{gap:38px;padding-inline:38px;animation-duration:25s}.logo-marquee-track img{width:128px;height:70px}.motion-reveal{translate:0 26px}}
@media(prefers-reduced-motion:reduce){.header,.header .brand img{transition:none}.logo-strip{mask-image:none;-webkit-mask-image:none}.logo-marquee-track{width:auto;animation:none;flex-wrap:wrap;justify-content:center}.logo-marquee-track [data-marquee-clone]{display:none}.motion-reveal{opacity:1;translate:none;transition:none}.motion-parallax{translate:none;scale:1}}

/* A layered hero exit and a held campus image give scroll a visible sense of depth. */
.hero-slider .hero-slides{transform:translateY(var(--hero-drift,0px)) scale(var(--hero-zoom,1));transform-origin:center;will-change:transform}
@media(min-width:801px) and (prefers-reduced-motion:no-preference){
 .story-parallax{min-height:130vh;align-items:start}
 .story-parallax .story-image{position:sticky;top:120px}
 .story-parallax .story-image img{height:min(68vh,680px)}
 .story-parallax .story-copy{padding-top:20vh;padding-bottom:20vh}
}
@media(prefers-reduced-motion:reduce){.hero-slider .hero-slides{transform:none;will-change:auto}}

/* Clip the enlarged hero to its own section, keeping purpose on solid white. */
.hero-slider{overflow:clip}
.design-classic .mission{position:relative;background:var(--white);isolation:isolate}
.design-classic .story{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.story-copy{min-width:0}
.scroll-word{display:inline;vertical-align:baseline}
@media(max-width:800px){.design-classic .story{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-word{transform:none!important;opacity:1!important;color:inherit!important}}

/* Each line owns a mask: moving letters cannot spill into adjacent lines. */
.heading-mask-line-mask{overflow:clip}
.heading-char{will-change:transform}
@media(prefers-reduced-motion:reduce){.heading-char{transform:none!important;will-change:auto}}

/* The footer retains its layout space; the page forms the opaque card above it. */
body.has-footer-reveal{isolation:isolate}
.has-footer-reveal>main{position:relative;z-index:1;background:var(--white,#fff);box-shadow:0 24px 48px -30px rgba(0,0,0,.45)}
.has-footer-reveal>.footer{position:sticky;bottom:0;z-index:0}
@media(prefers-reduced-motion:reduce){.has-footer-reveal>.footer{position:static}}
