/* =============================================
   KEYFRAMES
============================================= */
@keyframes pulse{
    0%,100%{transform:scale(1);opacity:1}
    50%{transform:scale(1.05);opacity:.7}
}
@keyframes loaderFill{
    0%{width:0}
    100%{width:100%}
}
@keyframes float{
    0%,100%{transform:translateY(0) rotate(var(--r,0deg))}
    50%{transform:translateY(-12px) rotate(var(--r,0deg))}
}
@keyframes floatLeaf{
    0%{transform:translateY(0) rotate(0deg);opacity:0}
    10%{opacity:var(--leaf-opacity,.08)}
    90%{opacity:var(--leaf-opacity,.08)}
    100%{transform:translateY(calc(100vh + 100px)) rotate(360deg);opacity:0}
}
@keyframes breathe{
    0%,100%{box-shadow:0 0 0 5px var(--green-200),0 0 0 10px rgba(88,129,87,.1),var(--shadow-lg)}
    50%{box-shadow:0 0 0 7px var(--green-200),0 0 0 14px rgba(88,129,87,.06),var(--shadow-lg)}
}
@keyframes fadeScale{
    from{opacity:0;transform:scale(.95)}
    to{opacity:1;transform:scale(1)}
}

/* =============================================
   APPLIED ANIMATIONS
============================================= */
.portrait-frame{animation:breathe 4s ease-in-out infinite}
.decor-leaf{animation:float 5s ease-in-out infinite}
.decor-leaf--hero-2{animation-delay:-2.5s;--r:45deg}

/* Floating leaf (generated by JS) */
.floating-leaf{position:absolute;top:-60px;pointer-events:none;animation:floatLeaf var(--leaf-dur,12s) linear infinite;animation-delay:var(--leaf-delay,0s);left:var(--leaf-x,50%);width:var(--leaf-size,30px);opacity:0}

/* Staggered reveal */
.therapy-cards-grid .therapy-card.reveal:nth-child(1){transition-delay:0s}
.therapy-cards-grid .therapy-card.reveal:nth-child(2){transition-delay:.08s}
.therapy-cards-grid .therapy-card.reveal:nth-child(3){transition-delay:.16s}
.therapy-cards-grid .therapy-card.reveal:nth-child(4){transition-delay:.24s}
.therapy-cards-grid .therapy-card.reveal:nth-child(5){transition-delay:.32s}
.therapy-cards-grid .therapy-card.reveal:nth-child(6){transition-delay:.4s}
