@keyframes draw-thread { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes float { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-10px) rotate(3deg); } }

.reveal-up, .reveal-left, .reveal-right, .reveal-scale, .stagger-item { opacity: 0; transition: opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal-up { transform: translateY(40px); }.reveal-left { transform: translateX(-40px); }.reveal-right { transform: translateX(40px); }.reveal-scale { transform: scale(.95); }.stagger-item { transform: translateY(28px); }
.is-revealed { opacity: 1; transform: none; }
.image-reveal { position: relative; overflow: hidden; }
.image-reveal::after { content: ""; position: absolute; z-index: 2; inset: 0; background: var(--cream); transform-origin: right; transition: transform 1.05s cubic-bezier(.75,0,.2,1); }
.atelier .image-reveal::after { background: #a94e3d; }
.image-reveal img { transform: scale(1.075); transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.image-reveal.is-revealed::after { transform: scaleX(0); }.image-reveal.is-revealed img { transform: scale(1); }
.hero-slide--static .hero-copy > * { animation: hero-in .8s both; }.hero-slide--static .hero-copy > *:nth-child(2) { animation-delay: .08s; }.hero-slide--static .hero-copy > *:nth-child(3) { animation-delay: .14s; }.hero-slide--static .hero-copy > *:nth-child(4) { animation-delay: .19s; }.hero-slide--static .hero-copy > *:nth-child(5) { animation-delay: .24s; }.hero-slide--static .hero-copy > *:nth-child(6) { animation-delay: .29s; }
.hero-slide--static .hero-main-image img { animation: hero-zoom 6s ease-out both; }
@keyframes hero-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes hero-zoom { from { transform: scale(1.05); } to { transform: scale(1); } }
