/* Additive homepage motion. Existing card and button transforms stay in style.css. */
.home .hero{isolation:isolate}
.home .motion-glow{position:absolute;z-index:-1;pointer-events:none;right:5%;top:20%;width:40%;height:65%;background:radial-gradient(ellipse,#ff640d19,transparent 68%);animation:motion-glow 22s ease-in-out infinite alternate}
.home .portrait:before{animation:motion-shape 26s ease-in-out infinite alternate}
.home .motion-halo{position:absolute;inset:4% 0 0;pointer-events:none;animation:motion-arrive 1s ease both}
.home .motion-halo svg{width:100%;height:100%;overflow:visible}
.home .motion-halo path{fill:none;stroke:var(--orange);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:90 1400;animation:motion-orbit 26s linear infinite}
.home .portrait img{pointer-events:none}
.home.motion-intro .portrait img{animation:motion-arrive 1s cubic-bezier(.2,.7,.2,1) .15s both}
.home.motion-intro .nameplate{animation:motion-arrive .7s ease .6s both}
.home .motion-line{display:inline-block}
.home.motion-intro .motion-line{animation:motion-line .8s cubic-bezier(.2,.7,.2,1) var(--delay) both}
.home .motion-reveal{opacity:0;translate:0 22px;transition:opacity .7s ease,translate .7s cubic-bezier(.2,.7,.2,1)}
.home .motion-reveal.motion-visible{opacity:1;translate:0 0}
.home .hero-bottom{align-items:center;gap:22px}
.home .motion-belt{flex:1;min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.home .motion-track{display:flex;width:max-content;animation:motion-belt 32s linear infinite}
.home .hero-bottom .motion-group{flex-shrink:0;padding-right:48px;white-space:nowrap;color:var(--ink)!important;max-width:none;text-align:left}
.home .motion-belt:hover .motion-track{animation-play-state:paused}
.home .motion-toggle{flex-shrink:0;border:1px solid #d6d7d2;border-radius:20px;padding:5px 10px;background:transparent;color:#55594f;font:10px Arial,sans-serif;cursor:pointer}
.home .motion-toggle:hover{border-color:var(--orange);color:var(--ink)}
.home .motion-sr{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home .principles{position:relative}
.home .motion-rail{position:absolute;left:0;top:-1px;width:100%;height:1px;overflow:visible}
.home .motion-rail:before{content:'';position:absolute;inset:0;background:var(--orange);transform-origin:left;animation:motion-draw 9s ease-in-out infinite}
.home .motion-rail>span{position:absolute;width:6px;height:6px;top:-2.5px;left:0;border-radius:50%;background:var(--orange);animation:motion-point 9s ease-in-out infinite}
.home .principles>div:not(.motion-rail) strong{animation:motion-stage 9s ease-in-out infinite}
.home .principles>div:nth-child(3) strong{animation-delay:3s}
.home .principles>div:nth-child(4) strong{animation-delay:6s}
.home .button>span,.home .text-link>span,.home .pill>span{display:inline-block;transition:translate .25s ease}
.home .text-link{position:relative}
.home .text-link:after{content:'';height:1px;position:absolute;left:0;right:0;top:-1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
@media(hover:hover) and (pointer:fine){
 .home .button:hover>span,.home .course:hover .button>span,.home .teaser:hover .text-link>span,.home .pill:hover>span{translate:3px -3px}
 .home .hero .button:hover>span{translate:3px 3px}
 .home .teaser:hover .text-link:after{transform:scaleX(1)}
}
.home.motion-paused .motion-glow,.home.motion-paused .portrait:before,.home.motion-paused .motion-halo path,.home.motion-paused .motion-track,.home.motion-paused .motion-rail:before,.home.motion-paused .motion-rail>span,.home.motion-paused .principles strong{animation-play-state:paused!important}
@keyframes motion-line{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes motion-arrive{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@keyframes motion-shape{from{border-radius:50% 50% 0 0}to{border-radius:43% 57% 0 0}}
@keyframes motion-orbit{from{stroke-dashoffset:0}to{stroke-dashoffset:-1490}}
@keyframes motion-glow{from{translate:-5% 0;opacity:.5}to{translate:5% -3%;opacity:1}}
@keyframes motion-belt{to{transform:translateX(-50%)}}
@keyframes motion-draw{0%{transform:scaleX(0)}75%,90%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@keyframes motion-point{0%,12%{left:0;opacity:1}40%{left:50%}72%,90%{left:100%;opacity:1}100%{left:100%;opacity:0}}
@keyframes motion-stage{0%,28%{color:var(--orange)}36%,100%{color:var(--ink)}}
@media(max-width:600px){
 .home .hero-bottom{flex-wrap:wrap;gap:10px 15px}
 .home .motion-belt{flex-basis:100%}
 .home .hero-bottom>span:last-of-type{text-align:left;max-width:none;margin-right:auto}
 .home .motion-glow{top:50%;width:80%;height:40%}
 .home .motion-halo{inset:1% 4% 0}
}
@media(prefers-reduced-motion:reduce){
 .home *,.home *:before,.home *:after{animation:none!important}
 .home .motion-reveal{opacity:1;translate:none;transition:none}
 .home .motion-line{translate:none;opacity:1}
 .home .motion-track{transform:none}
 .home .motion-toggle{display:none}
 .home .motion-rail>span{display:none}
}
