/* lightweight animations: only transform/opacity, nothing runs constantly except the banner */
.loader{position:fixed;inset:0;z-index:100;background:var(--green);display:grid;place-items:center;transition:opacity .5s,visibility .5s}
.loader.done{opacity:0;visibility:hidden}
.loader b{color:#e9d9a8;font:600 1.2rem 'Cormorant Garamond',serif;letter-spacing:.25em;animation:fadeUp .8s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}}
main,footer,.nav{position:relative;z-index:2}
.stage{position:relative;aspect-ratio:4/5;transition:transform .2s ease-out}
.hero-img{perspective:1000px}
.stage img{position:absolute;object-fit:cover;border-radius:18px;border:6px solid #fffaf0;aspect-ratio:auto;box-shadow:0 20px 30px -18px rgba(0,0,0,.5)}
.stage .s1{inset:0 12% 10% 0;width:88%;height:90%;border-radius:200px 200px 18px 18px;transform:translateZ(30px)}
.stage .s2{width:44%;height:36%;right:0;top:8%;transform:translateZ(90px) rotate(6deg)}
.stage .s3{width:46%;height:38%;left:6%;bottom:0;transform:translateZ(120px) rotate(-5deg)}
.ring{display:none}
h1 .w{display:inline-block;overflow:hidden;vertical-align:top}
h1 .w span{display:inline-block;transform:translateY(110%);animation:rise .8s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes rise{to{transform:none}}
.hero-txt>*{animation:fadeUp .7s both}.hero-txt>:nth-child(3){animation-delay:.5s}.hero-txt>:nth-child(4){animation-delay:.6s}
.hero-img{animation:fadeUp .9s .2s both}
.strip{display:block;overflow:hidden;white-space:nowrap;padding:0}
.strip .track{display:inline-flex;gap:60px;padding:14px 0;animation:marq 30s linear infinite;will-change:transform}
@keyframes marq{to{transform:translateX(-50%)}}
.rv{opacity:0;transform:translateY(24px);transition:opacity .5s ease-out,transform .5s ease-out}
.rv.in{opacity:1;transform:none}
.card{transition:transform .2s ease-out,border-color .2s}
.card:hover{transform:translateY(-6px)}
.ph img{transition:none}
.card .btn::before{display:none}
.modal{animation:fade .2s both}.sheet{animation:pop .3s ease-out both}
@keyframes fade{from{opacity:0}}@keyframes pop{from{opacity:0;transform:translateY(30px) scale(.97)}}
#mainImg{transition:transform .12s ease-out;cursor:grab}
.hint{font-size:.72rem;margin-top:8px;text-align:center}
.fab::before{display:none}
.chip{transition:.2s}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.loader{display:none}}
