/* One orchestrated moment: the hero paint stroke draws in on load. */
.draw path{stroke-dasharray:1600;stroke-dashoffset:1600;animation:draw 1.6s cubic-bezier(.65,0,.35,1) .2s forwards}
.draw path:nth-child(2){animation-delay:.45s}
.draw path:nth-child(3){animation-delay:.7s}
@keyframes draw{to{stroke-dashoffset:0}}
.hero-media .frame{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.float-card{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.fc-1{animation-delay:.6s}.fc-2{animation-delay:.8s}.fc-3{animation-delay:1s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .draw path{stroke-dashoffset:0}
  html{scroll-behavior:auto}
}

/* ---------- header logo hover: pop-out zoom ---------- */
@media (hover:hover) and (pointer:fine){
  .brand{position:relative;z-index:5;transform-origin:left center;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
  .brand::before{content:"";position:absolute;inset:-8px -14px;border-radius:18px;background:#FBFCFE;
    box-shadow:0 22px 40px -14px rgba(2,18,40,.55),0 0 0 1px rgba(200,16,27,.14);opacity:0;transform:scale(.92);
    transition:opacity .3s ease,transform .5s cubic-bezier(.34,1.56,.64,1);z-index:-1}
  .brand img{transition:filter .4s ease}
  .brand:hover,.brand:focus-visible{transform:scale(1.38) translateY(20px)}
  .brand:hover::before,.brand:focus-visible::before{opacity:1;transform:scale(1)}
  .brand:hover img{filter:saturate(1.15)}
}
@media (prefers-reduced-motion:reduce){
  .brand,.brand::before{transition:none}
  .brand:hover,.brand:focus-visible{transform:none}
}
