.hero { position: relative; }
.hero-split { position: relative; z-index: 1; }
.energy-trace { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.22; }
.energy-trace path { fill:none; stroke-width:2; vector-effect:non-scaling-stroke; stroke-dasharray:1900; }
.trace-blue { stroke:#29abe2; animation:energy-draw 1.6s ease-out both; }
.trace-gold { stroke:#f5c400; animation:energy-draw 1.8s .15s ease-out both; }
.hero-title .title-line { display:block; color:inherit; animation:title-arrive .85s cubic-bezier(.16,1,.3,1) both; }
.hero-title .title-line:nth-child(2) { animation-delay:.14s; }
.hero-title .title-accent { color:var(--yellow-main); animation-delay:.28s; }
.hero-badge { animation:soft-arrive .7s .1s both; }
.hero-description { animation:soft-arrive .8s .35s both; }
.hero-actions { animation:soft-arrive .8s .48s both; }
.hero-carousel { animation:photo-arrive 1.1s .2s cubic-bezier(.16,1,.3,1) both; }
.motion-pending { opacity:0; translate:0 26px; scale:.985; }
.motion-ready { transition:opacity .75s ease, translate .85s cubic-bezier(.16,1,.3,1), scale .85s cubic-bezier(.16,1,.3,1); transition-delay:var(--motion-delay,0ms); }
.motion-ready.motion-visible { opacity:1; translate:0 0; scale:1; }
.motion-heading::after { content:''; display:block; width:62px; height:3px; margin-top:22px; background:linear-gradient(90deg,#29abe2 70%,#f5c400 70%); transform:scaleX(0); transform-origin:left; transition:transform .7s .15s ease; }
.motion-heading.motion-visible::after { transform:scaleX(1); }
@keyframes title-arrive { from { opacity:0; transform:translateY(24px); clip-path:inset(0 0 100% 0); } to { opacity:1; transform:none; clip-path:inset(0); } }
@keyframes soft-arrive { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes photo-arrive { from { opacity:0; transform:scale(.96); clip-path:inset(0 0 12% 0 round 18px); } to { opacity:1; transform:none; clip-path:inset(0 round 18px); } }
@keyframes energy-draw { from { stroke-dashoffset:1900; } to { stroke-dashoffset:0; } }
@media(prefers-reduced-motion:reduce) {
  .motion-pending,.motion-ready { opacity:1; translate:none; scale:none; transition:none; }
  .motion-heading::after { transform:none; transition:none; }
  .hero-title .title-line,.hero-badge,.hero-description,.hero-actions,.hero-carousel,.energy-trace path { animation:none; }
}
@media print { .motion-pending { opacity:1; translate:none; scale:none; } }
