/* animations.css — keyframes, transitions, reveal animations */
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(143,154,111,.5)}70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
@keyframes scroll{to{transform:translateX(-50%)}}
@keyframes mfade{from{opacity:0}to{opacity:1}}
@keyframes mrise{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}

/* reveal — base is VISIBLE; JS arms it, so content never gets stuck hidden */
.rv{transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.rv.armed{transform:translateY(30px);opacity:0}
.d1{transition-delay:.08s}
.d2{transition-delay:.16s}
.d3{transition-delay:.24s}
.d4{transition-delay:.32s}

/* hero fades/lifts away as the page scrolls into the first project */
.hero{transition:opacity .15s linear}