@keyframes pulse{50%{opacity:.5}}.lazy-image-skeleton{border-radius:var(--radius);background-color:hsl(var(--muted));aspect-ratio:1;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.lazy-image-fade-in{animation:.3s ease-in-out forwards fadeInImage}@keyframes fadeInImage{0%{opacity:.9}to{opacity:1}}.image-loading{background-color:hsl(var(--muted))}.image-loaded{transition-property:opacity;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s}.blur-up{animation:.4s ease-out forwards blurUp}@keyframes blurUp{0%{filter:blur(20px);opacity:.8}to{filter:blur();opacity:1}}img[loading=lazy]{display:block}@media (max-width:768px){img[data-lazy=true]{loading:lazy}img[data-quality-mobile=low]{image-rendering:-webkit-optimize-contrast}}@media (min-width:769px){img[data-priority=true]{loading:eager}}.lazy-image-container{background:hsl(var(--muted));position:relative;overflow:hidden}.lazy-image-wrapper{width:100%;height:auto;position:relative;overflow:hidden}.image-blur-bg{filter:blur(10px);opacity:.5;z-index:-1;position:absolute;inset:0}.image-aspect-ratio{aspect-ratio:1}.lazy-visible{animation:.3s ease-out lazyVisible}@keyframes lazyVisible{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
