.photo-frame{position:relative;overflow:hidden}
.photo-frame>img{width:100%;height:100%;display:block;object-fit:cover}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.75,.25,1)}
.reveal.visible{opacity:1;transform:none}
.hero-art>img{animation:heroZoom 12s ease-in-out infinite alternate}
.sun{animation:float 4.2s ease-in-out infinite}
.cloud{animation:cloudFloat 5.5s ease-in-out infinite}
.rainbow{animation:float 4.8s ease-in-out infinite reverse}
.benefits article,.program-grid article,.group{transition:transform .35s ease,box-shadow .35s ease}
.benefits article:hover,.program-grid article:hover{transform:translateY(-7px)}
.group:hover{transform:translateY(-7px);box-shadow:0 14px 30px #2a669016}
.btn{transition:transform .25s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px #149bd542}
.gallery figure{height:300px;border-radius:28px;position:relative;overflow:hidden;margin:0;background:#e8f5fb}
.gallery figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.gallery figure:hover img{transform:scale(1.055)}
.gallery figcaption{position:absolute;left:16px;right:16px;bottom:16px;padding:12px 16px;border-radius:16px;background:#ffffffe8;backdrop-filter:blur(8px);font-size:18px;font-weight:900}
@keyframes float{50%{transform:translateY(-10px) rotate(4deg)}}
@keyframes cloudFloat{50%{transform:translate(8px,-8px) rotate(-3deg)}}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.045)}}
@media(max-width:900px){.gallery>figure:first-child{grid-column:1/-1}}
@media(max-width:560px){.gallery>figure:first-child{grid-column:auto}.gallery figure{height:220px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero-art>img,.sun,.cloud,.rainbow{animation:none}.gallery figure img,.btn,.group,.benefits article,.program-grid article{transition:none}}
