/* =============================================================
   animations.css — Green Graphic
   ============================================================= */

@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}

/* Scroll reveal */
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal].d1{transition-delay:.08s}
[data-reveal].d2{transition-delay:.16s}
[data-reveal].d3{transition-delay:.24s}
[data-reveal].d4{transition-delay:.32s}
[data-reveal].d5{transition-delay:.40s}

/* reveal variants */
[data-reveal="left"]{transform:translateX(-36px)}
[data-reveal="right"]{transform:translateX(36px)}
[data-reveal="left"].in,[data-reveal="right"].in{transform:none}
[data-reveal="scale"]{transform:scale(.94);opacity:0}
[data-reveal="scale"].in{transform:none;opacity:1}

/* page load fade */
.page-fade{animation:fadeIn .5s ease}

/* nav link underline */
.nav-menu>li>a{position:relative}
.nav-menu>li>a:not(.active)::after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:2px;background:var(--green-soft);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav-menu>li>a:not(.active):hover::after{transform:scaleX(1)}

/* image hover kenburns for split media */
.kb img{transition:transform 8s ease}
.kb:hover img{transform:scale(1.08)}

/* loader spinner */
.spin{width:20px;height:20px;border:2px solid rgba(245,241,230,.4);border-top-color:var(--cream);border-radius:50%;animation:spin .7s linear infinite}

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