/* Independent transforms keep the original postcard angles intact. */
.brand-emblem,.custom-logo{transform-origin:50% 90%;animation:tree-dance calc(5s / var(--motion-speed,1)) ease-in-out infinite}
.logo-glint{animation:christmas-twinkle calc(2.8s / var(--motion-speed,1)) ease-in-out infinite}
.hero-postcard{animation:card-float calc(7s / var(--motion-speed,1)) ease-in-out infinite}
.small-postcard{animation:card-float calc(6s / var(--motion-speed,1)) ease-in-out calc(-2s / var(--motion-speed,1)) infinite;--float-height:12px}
.postmark{animation:seal-sway calc(8s / var(--motion-speed,1)) ease-in-out infinite}
.hero-collage:before,.hero-collage:after{content:'✦';position:absolute;pointer-events:none;color:#bd8b32;font:36px Georgia;z-index:3;animation:christmas-twinkle calc(3.6s / var(--motion-speed,1)) ease-in-out infinite}
.hero-collage:before{left:-18px;top:12%}.hero-collage:after{right:8%;bottom:-35px;font-size:24px;animation-delay:calc(-1.8s / var(--motion-speed,1))}
.photo{position:relative;animation:album-breathe calc(8s / var(--motion-speed,1)) ease-in-out infinite}
.photo:nth-child(even){animation-delay:calc(-4s / var(--motion-speed,1))}
.photo:after{content:'✧';position:absolute;top:20px;right:25px;color:#fff1bc;font:40px Georgia;text-shadow:0 0 12px #b98930;pointer-events:none;animation:christmas-twinkle calc(4s / var(--motion-speed,1)) ease-in-out infinite}
.photo:nth-child(even):after{animation-delay:calc(-2s / var(--motion-speed,1))}
.photo:hover,.photo:focus-visible{animation-play-state:paused;box-shadow:0 15px 35px #443b3030}
.cup-star,.menu-star,.closing>span{display:inline-block;animation:seal-sway calc(6s / var(--motion-speed,1)) ease-in-out infinite}
.festive-lights{transform-origin:50% 0;animation:light-glow calc(3s / var(--motion-speed,1)) ease-in-out infinite,garland-sway calc(7s / var(--motion-speed,1)) ease-in-out infinite!important}
@keyframes tree-dance{0%,100%{rotate:-4deg;translate:0 0}50%{rotate:4deg;translate:0 -3px}}
@keyframes card-float{0%,100%{translate:0 0;rotate:-.6deg}50%{translate:0 calc(-1 * var(--float-height,9px));rotate:.6deg}}
@keyframes album-breathe{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes seal-sway{0%,100%{rotate:-6deg}50%{rotate:6deg}}
@keyframes christmas-twinkle{0%,100%{opacity:.35;scale:.7;rotate:-12deg}50%{opacity:1;scale:1.2;rotate:12deg}}
@keyframes garland-sway{0%,100%{rotate:-.25deg}50%{rotate:.25deg}}
body.motion-paused *,body.motion-paused *:before,body.motion-paused *:after{animation-play-state:paused!important;transition:none!important}
body[data-animation=off] *,body[data-animation=off] *:before,body[data-animation=off] *:after{animation:none!important}
body[data-animation=off] .hero-collage:before,body[data-animation=off] .hero-collage:after,body[data-animation=off] .photo:after{display:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.hero-collage:before,.hero-collage:after,.photo:after{display:none}}
