/* A light, playful motion layer. Content stays visible without JavaScript. */
@keyframes lv-arrive{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@keyframes lv-confetti{0%,100%{translate:0 0}50%{translate:4px -11px}}
@keyframes lv-spark{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes lv-select{from{translate:0 3px}to{translate:0 0}}

@media(prefers-reduced-motion:no-preference){
 .lv-enter{animation:lv-arrive 560ms cubic-bezier(.2,.7,.25,1) var(--lv-delay,0ms) both;will-change:opacity,translate}
 .lv-motion .hero-confetti i{animation:lv-confetti 7s ease-in-out infinite}
 .lv-motion .hero-confetti i:nth-child(2n){animation-duration:9s;animation-delay:-3s}
 .lv-motion .hero-confetti i:nth-child(3n){animation-duration:8s;animation-delay:-5s}
 .lv-motion .scene-spark,.lv-motion .scene-dash{animation:lv-spark 6s ease-in-out infinite}
 .lv-motion .scene-dash{animation-delay:-3s}
 .lv-ambient{animation-play-state:paused!important}
 .lv-ambient-running .lv-ambient{animation-play-state:running!important}
 .lv-document-hidden .lv-ambient{animation-play-state:paused!important}
 .lv-motion .button{transition:transform 180ms cubic-bezier(.2,.8,.3,1.2),box-shadow 180ms ease,background-color 180ms ease}
 .lv-motion :is(.filter-pills,.gallery-filters,.faq-topic-buttons,.explorer-tabs) button[aria-pressed="true"]{animation:lv-select 240ms ease-out}
}

@media(min-width:651px) and (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
 .lv-motion :is(.attraction-card,.category-tile,.explorer-results>a,.memory-strip>a,.occasion-grid>a,.event-world-grid>a,.collection-stat-grid>a,.gallery-grid>article){transition:transform 220ms cubic-bezier(.2,.7,.3,1),box-shadow 220ms ease}
 .lv-motion :is(.attraction-card,.category-tile,.explorer-results>a,.memory-strip>a,.occasion-grid>a,.event-world-grid>a,.collection-stat-grid>a,.gallery-grid>article):hover{transform:translateY(-5px);box-shadow:0 10px 0 #51306b20,0 16px 25px #51306b12}
 .lv-motion .card-link>span,.lv-motion .tile-arrow{transition:translate 180ms ease}
 .lv-motion .attraction-card:hover .card-link>span,.lv-motion .category-tile:hover .tile-arrow{translate:3px -3px}
}

@media(max-width:650px) and (prefers-reduced-motion:no-preference){
 .lv-enter{animation-duration:420ms}
 .lv-motion .hero-confetti i:nth-child(n+5){animation:none}
}
@media(prefers-reduced-motion:reduce){
 .lv-enter,.lv-ambient{animation:none!important;translate:none!important;will-change:auto}
 .lv-motion :is(.attraction-card,.category-tile,.explorer-results>a,.memory-strip>a,.occasion-grid>a,.event-world-grid>a,.collection-stat-grid>a,.gallery-grid>article){transition:none!important}
}
@media print{.lv-enter{animation:none!important;opacity:1!important;translate:none!important}}
