/* One motion system: reveal wrappers, photo layers and gallery images own separate transforms. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.profile .content{width:100%;max-width:420px;margin-inline:auto}
.profile h2.profile-name{font-family:Georgia,'Times New Roman',serif;font-size:clamp(23px,5.8vw,28px);font-weight:400;font-style:normal;color:var(--cream);line-height:1.4;letter-spacing:0;text-align:center;text-wrap:balance;margin:0 auto 8px}
.profile-name .name-tail{display:inline;white-space:nowrap;font:inherit;color:inherit;letter-spacing:inherit;vertical-align:baseline}
.profile .label{margin-bottom:18px}.profile p{line-height:1.9}.profile .rule{margin:22px auto}
.cover::before,.cover::after{content:none}.cover>.frame,.fixed>.frame{display:none}
.cover{transform-origin:center;transition:opacity 1.1s var(--motion-ease),transform 1.1s var(--motion-ease),visibility 1.1s}
.cover.out{opacity:0;visibility:hidden;transform:perspective(1200px) translateZ(-24px);pointer-events:none}
.cover-inner{transition:opacity .9s var(--motion-ease),transform 1.1s var(--motion-ease)}
.cover.out .cover-inner{opacity:0;transform:translateY(-8px)}
body.opened .main{animation:none}
.photo-depth{position:absolute;inset:-24px 0;z-index:-1;pointer-events:none;transform:translateY(var(--photo-y,0px))}
.photo-depth>.photo{height:100%;transform:scale(1.04);transition:transform 1.1s var(--motion-ease);object-position:center 35%}
.photo-depth.photo-seen>.photo{transform:scale(1)}
.page>.content{z-index:2}
.reveal{opacity:1;transform:none;transform-origin:center bottom;transition:opacity .85s var(--motion-ease),transform .85s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.enhanced .reveal:not(.seen){opacity:0;transform:perspective(1200px) translateY(24px) rotateX(3deg)}
.enhanced .reveal.seen{opacity:1;transform:none}
.enhanced .reveal.seen>.motion-detail{animation:detail-in .85s var(--motion-ease) both;animation-delay:var(--detail-delay,0ms)}
@keyframes detail-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.enhanced .reveal.seen>.rule{animation:rule-in 1s var(--motion-ease) both}
@keyframes rule-in{from{transform:scaleX(0)}to{transform:none}}
body.opened #home .content>*{animation:detail-in 1.1s var(--motion-ease) both;animation-delay:var(--detail-delay,0ms)}
.event,.bank{box-shadow:0 15px 35px #16080c22}.event:hover,.bank:hover{box-shadow:0 15px 35px #16080c22}
.gallery-grid{perspective:1200px}.gallery-item{min-width:0;aspect-ratio:3/4}.gallery-item:nth-child(5n+1){grid-column:span 2;aspect-ratio:4/3}
.gallery-grid .gallery-item button{display:block;width:100%;height:100%;aspect-ratio:auto;transition:transform .55s var(--motion-ease);transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}
.gallery-grid img{transition:transform .7s var(--motion-ease)}
@media(hover:hover) and (pointer:fine){.gallery-grid button:hover img{transform:scale(1.02)}}
.btn:active{transform:scale(.98)}
.botanical-depth{position:absolute;inset:-12px 0;pointer-events:none;z-index:0;overflow:hidden;transform:translateY(var(--ornament-y,0px))}
.botanical-depth svg{position:absolute;width:clamp(100px,30%,180px);height:280px;color:var(--gold);opacity:.14;transform-origin:50% 100%;animation:botanical-sway 12s ease-in-out infinite alternate;animation-play-state:paused}
.botanical-depth svg:first-child{left:-32px;bottom:5%}.botanical-depth svg:last-child{right:-36px;top:5%;rotate:180deg;animation-delay:-5s}
@keyframes botanical-sway{from{transform:rotate(-5deg)}to{transform:rotate(-3deg)}}
.dove-layer{z-index:1}.dove,.cover .dove{left:3%;top:10%;width:62px;height:auto;opacity:.65;animation:edge-float 10s ease-in-out infinite alternate;animation-play-state:paused}
.dove.two,.cover .dove.two{left:auto;right:3%;top:18%;width:50px;opacity:.45;animation-delay:-4s;animation-duration:13s}
.dove.two>svg{transform:scaleX(-1)}.dove svg{display:block;width:100%}.dove .wing{animation-duration:4s;animation-play-state:paused}
@keyframes edge-float{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-8px) rotate(1deg)}}
.motion-visible .dove,.motion-visible .wing,.motion-visible .botanical-depth svg{animation-play-state:running}
.cover.out .dove,.cover.out .wing{animation-play-state:paused}
.lovebirds{position:relative;width:156px;height:82px;margin:0 auto 18px}.lovebird{position:absolute;top:10px;width:96px}.lovebird.left{left:-2px;transform:rotate(-7deg)}.lovebird.right{right:-2px;transform:scaleX(-1) rotate(-7deg)}.lovebird svg{width:100%;display:block}.love-heart{position:absolute;width:15px;height:15px;left:calc(50% - 7.5px);top:5px;color:var(--gold)}
.ambient-motes{display:none}
dialog[open]{animation:light-in .3s var(--motion-ease)}dialog[open]::backdrop{animation:backdrop-in .3s ease}dialog.closing-light{animation:light-out .22s ease both}dialog.closing-light::backdrop{animation:backdrop-in .22s ease reverse both}
@keyframes light-in{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes light-out{to{opacity:0;transform:scale(.98)}}@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
body.motion-paused *,body.motion-paused *::before,body.motion-paused *::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.enhanced .reveal:not(.seen),.reveal,.motion-detail{opacity:1!important;transform:none!important}.photo-depth,.photo-depth>.photo,.botanical-depth,.gallery-grid button,.gallery-grid img{transform:none!important}.cover.out{transform:none;opacity:0}}
