/* Attila motion vocabulary. Existing palette, typography and layout remain owners. */
:root{--motion-ease:cubic-bezier(.22,.75,.25,1);--motion-fast:180ms;--motion-ui:320ms;--motion-reveal:620ms;--motion-accent:var(--gold-light,#f0d77b)}
/* Progressive enhancement: content is visible even when every script fails. */
.js .reveal,.js .ph-tile,.js .section-head.reveal h2,.js .inside-head.reveal h2,.js .global-box.reveal h2{opacity:1;transform:none;clip-path:none;transition-delay:0s}
html.hero-anim .hero-copy h1,html.hero-anim:not(.hero-anim-done) .hero-copy h1{opacity:1!important;visibility:visible!important}
.hero-copy h1 .w-inner{will-change:auto}
.js .reveal,.js .ph-tile{transition-property:background-color,border-color,color}
/* One owner for pointer movement; the actual cursor stays native. */
.motion-hover{position:relative;isolation:isolate;transition:transform var(--motion-ui) var(--motion-ease),border-color var(--motion-fast) ease}
.motion-hover[data-motion-hot=true]{transform:perspective(1000px) translateY(-2px) rotateX(var(--motion-rx,0deg)) rotateY(var(--motion-ry,0deg));border-color:var(--motion-accent)}
.motion-light{position:absolute;top:0;left:0;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(240,215,123,.065),transparent 70%);pointer-events:none;opacity:0;transform:translate3d(var(--motion-lx,0px),var(--motion-ly,0px),0);transition:opacity 180ms ease;z-index:-1}
[data-motion-hot=true]>.motion-light{opacity:1}
.motion-hover:focus-within{border-color:var(--motion-accent)}
.btn{transition:transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease}
.btn[data-motion-magnet=true]{transform:translate3d(var(--motion-bx,0px),var(--motion-by,0px),0)}
.btn .ico,.course-cta svg{transition:translate var(--motion-fast) var(--motion-ease)}
.btn:hover .ico,.btn:focus-visible .ico,.course-card:hover .course-cta svg{translate:2px 0}
.btn:active,.mb-btn:active,.nav-toggle:active{scale:.98}
:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--motion-accent);outline-offset:4px}
.nav-links a::after{transform-origin:left;transition:transform 220ms var(--motion-ease),opacity 220ms ease}
.site-header{transition:transform 260ms var(--motion-ease),background-color 260ms ease,border-color 260ms ease}
.site-header:focus-within{transform:none!important}
.motion-hover:focus-within{outline-offset:4px}
/* Pausable, understated ambient motion; no additional continuous canvas. */
.hero-card,.course-card.featured,.brand-img,.gallery-item img{animation:none!important}
.hero-aurora{animation-duration:36s}
.logo-marquee:focus-within .logo-track,.logo-marquee:hover .logo-track{animation-play-state:paused}
[data-motion-offscreen=true] *,[data-motion-offscreen=true] *::before,[data-motion-offscreen=true] *::after{animation-play-state:paused!important}
html[data-motion-paused=true] *,html[data-motion-paused=true] *::before,html[data-motion-paused=true] *::after{animation-play-state:paused!important}
#scrollProgress{width:100%;transform:scaleX(0);transform-origin:left;transition:opacity 180ms ease}
.network-reading-progress{display:none}
.motion-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--gold,#d4af37);transform:scaleX(0);transform-origin:left;z-index:110;pointer-events:none;opacity:0;transition:opacity 180ms ease}
.motion-progress.lit{opacity:.65}
.motion-count{font-variant-numeric:tabular-nums}
.motion-timeline::before{transform-origin:top;transition:scale 650ms var(--motion-ease)}
.motion-timeline[data-motion-entered=true] .rm-dot{animation:none;outline:1px solid rgba(212,175,55,.45);outline-offset:5px}
input,textarea,select{transition:border-color var(--motion-fast) ease,background-color var(--motion-fast) ease}
input:focus,textarea:focus,select:focus{border-color:var(--motion-accent)}
.invalid,[aria-invalid=true]{transition:border-color var(--motion-fast) ease}
.form-done,.modal-success,.form-submit-error:not(:empty){animation:motion-feedback 320ms var(--motion-ease) both}
form button[type=submit]{position:relative}
form button[type=submit]:disabled{cursor:progress}
form button[type=submit]:disabled::after{content:'';position:absolute;right:10px;width:10px;height:10px;border:1px solid currentColor;border-right-color:transparent;border-radius:50%;animation:motion-spin 850ms linear infinite}
details summary{transition:color 180ms ease,background-color 180ms ease}
details[open] summary{color:var(--motion-accent)}
@keyframes motion-feedback{from{opacity:.5;translate:0 4px}to{opacity:1;translate:0 0}}
@keyframes motion-spin{to{rotate:1turn}}
/* Original mobile header retained, with enough room for its menu hit target. */
@media(max-width:760px){
 .site-header .header-inner{gap:8px}.site-header .brand{gap:6px;min-width:0;flex-shrink:1}
 .site-header .brand-img{width:34px;height:34px}.site-header .brand-text b{font-size:16px}.site-header .brand-text i{font-size:7px;letter-spacing:.2em}
 .site-header .header-actions{margin-left:auto;flex-shrink:0}.site-header .header-actions .btn-primary{font-size:11px;padding:10px 12px}
 .site-header .nav-toggle{flex:none;width:44px;height:44px}.site-header .nav-toggle span{width:22px}
 .hero-aurora,.blob,.particle,.fx-aurora,.fx-aurora-2,.fx-beam,.live-dot,.rb-logo,.rm-dot{animation:none!important}
 .motion-hover[data-motion-hot=true]{transform:none}.motion-light{display:none}.btn[data-motion-magnet=true]{transform:none}
 .btn:active,.mb-btn:active{scale:.98}.gallery-item img{transform:none}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
 .reveal,.ph-tile,.hero-copy h1{opacity:1!important;transform:none!important;clip-path:none!important}
 .motion-hover[data-motion-hot=true],.btn[data-motion-magnet=true]{transform:none!important}
 .motion-light,.motion-progress,#scrollProgress,.cursor-spot,.pm-cursor,.cur-dot,.cur-ring{display:none!important}
 .btn:active,.mb-btn:active,.nav-toggle:active{scale:1}
}
html[data-motion-level=quiet] *,html[data-motion-level=quiet] *::before,html[data-motion-level=quiet] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-motion-level=quiet] .motion-light,html[data-motion-level=quiet] .motion-progress{display:none}
/* Experience enhancements inherit the existing scene layout and colors. */
.rail .bar>i{width:100%!important;transform:scaleX(var(--experience-progress,0));transform-origin:left}
.rail .dot{min-width:24px;min-height:24px;top:50%;translate:-50% -50%;background:transparent;border:0}
.rail .dot::after{content:'';position:absolute;inset:9px;border-radius:50%;background:currentColor;opacity:.4}
.rail .dot[aria-current=step]::after{opacity:1;box-shadow:0 0 0 3px rgba(212,175,55,.16)}
.rail .dot:focus-visible{outline:2px solid #f0d77b;outline-offset:0}
.cap.on>p,.cap.on>.k{animation:motion-feedback 420ms var(--motion-ease) both}
.cap.on>p{animation-delay:90ms}
.pkt.pk-flip{animation:motion-feedback 220ms var(--motion-ease)}
@view-transition{navigation:auto}
::view-transition-old(root){animation:motion-page-out 100ms ease both}
::view-transition-new(root){animation:motion-page-in 160ms ease both}
@keyframes motion-page-out{to{opacity:0}}
@keyframes motion-page-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.cap.on>p,.cap.on>.k,.pkt.pk-flip{animation:none}}
