/* COMPASS CLEANING — animations.css */
/* Scroll reveal is scoped to .js: if animations.js fails to load or is blocked,
   nothing is ever hidden. Content must never depend on JavaScript to be visible. */
.js [data-anim]{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,.8,.28,1),transform .7s cubic-bezier(.22,.8,.28,1)}
.js [data-anim="fade"]{transform:none}
.js [data-anim="left"]{transform:translateX(-26px)}
.js [data-anim="right"]{transform:translateX(26px)}
.js [data-anim="zoom"]{transform:scale(.965)}
.js [data-anim].is-in{opacity:1;transform:none}
[data-delay="1"]{transition-delay:.08s}
[data-delay="2"]{transition-delay:.16s}
[data-delay="3"]{transition-delay:.24s}
[data-delay="4"]{transition-delay:.32s}
[data-delay="5"]{transition-delay:.40s}

/* hero entrance */
.hero h1,.hero .hero__sub,.hero .btn-row,.hero .hero__seals,.hero .eyebrow{animation:rise .8s cubic-bezier(.22,.8,.28,1) both}
.hero .eyebrow{animation-delay:.05s}
.hero h1{animation-delay:.12s}
.hero .hero__sub{animation-delay:.2s}
.hero .btn-row{animation-delay:.28s}
.hero .hero__seals{animation-delay:.36s}
.hero__frame{animation:rise .9s .22s cubic-bezier(.22,.8,.28,1) both}
.float-card{animation:pop .6s cubic-bezier(.22,.8,.28,1) both}
.fc-1{animation-delay:.6s}.fc-2{animation-delay:.72s}.fc-3{animation-delay:.84s}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:none}}

/* compass rose needle + ring */
.rose-ring{transform-origin:50% 50%;animation:spin 64s linear infinite}
.rose-needle{transform-origin:50% 50%;animation:sway 9s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}

/* sparkle twinkle on eyebrow star */
.eyebrow::before{animation:tw 4.5s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.86)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js [data-anim]{opacity:1!important;transform:none!important}
}
