/* Magic UI animation keyframes — verbatim from apps/www/styles/globals.css @theme block */
@keyframes blink-cursor{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes aurora{0%{background-position:0% 50%;transform:rotate(-5deg) scale(0.9)}25%{background-position:50% 100%;transform:rotate(5deg) scale(1.1)}50%{background-position:100% 50%;transform:rotate(-3deg) scale(0.95)}75%{background-position:50% 0%;transform:rotate(3deg) scale(1.05)}100%{background-position:0% 50%;transform:rotate(-5deg) scale(0.9)}}
@keyframes background-position-spin{0%{background-position:top center}100%{background-position:bottom center}}
@keyframes gradient{to{background-position:var(--bg-size,300%) 0}}
@keyframes meteor{0%{transform:rotate(var(--angle)) translateX(0);opacity:1}70%{opacity:1}100%{transform:rotate(var(--angle)) translateX(-500px);opacity:0}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(calc(-100% - var(--gap)))}}
@keyframes marquee-vertical{from{transform:translateY(0)}to{transform:translateY(calc(-100% - var(--gap)))}}
@keyframes spin-around{0%{transform:translateZ(0) rotate(0)}15%,35%{transform:translateZ(0) rotate(90deg)}65%,85%{transform:translateZ(0) rotate(270deg)}100%{transform:translateZ(0) rotate(360deg)}}
@keyframes ripple{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(0.9)}}
@keyframes rippling{0%{opacity:1}100%{transform:scale(2);opacity:0}}
@keyframes shimmer-slide{to{transform:translate(calc(100cqw - 100%),0)}}
@keyframes line{0%{mask-position-x:0%}100%{mask-position-x:100%}}
@keyframes shiny-text{0%,90%,100%{background-position:calc(-100% - var(--shiny-width)) 0}30%,60%{background-position:calc(100% + var(--shiny-width)) 0}}
@keyframes orbit{0%{transform:rotate(calc(var(--angle) * 1deg)) translateY(calc(var(--radius) * 1px)) rotate(calc(var(--angle) * -1deg))}100%{transform:rotate(calc(var(--angle) * 1deg + 360deg)) translateY(calc(var(--radius) * 1px)) rotate(calc((var(--angle) * -1deg) - 360deg))}}
@keyframes shine{0%{background-position:0% 0%}50%{background-position:100% 100%}to{background-position:0% 0%}}
@keyframes mui-pulse{0%,100%{box-shadow:0 0 0 0 var(--pulse-color,oklch(from var(--bg) l c h / 0.5))}50%{box-shadow:0 0 0 var(--distance) var(--pulse-color,oklch(from var(--bg) l c h / 0.5))}}
@keyframes pulse-ripple{0%{box-shadow:0 0 0 0 oklch(from var(--pulse-color,var(--bg)) l c h / 1)}100%{box-shadow:0 0 0 var(--distance) oklch(from var(--pulse-color,var(--bg)) l c h / 0)}}
@keyframes rainbow{0%{background-position:0%}100%{background-position:200%}}
@keyframes line-shadow{0%{background-position:0 0}100%{background-position:100% -100%}}
@keyframes mui-ping{75%,100%{transform:scale(2);opacity:0}}
@keyframes grid{0%{transform:translateY(-50%)}100%{transform:translateY(0)}}
@keyframes word-rotate-in{from{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}
@keyframes blur-fade-in{from{opacity:0;filter:blur(6px);transform:translateY(6px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
@keyframes border-beam{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes dot-glow{0%,100%{opacity:0.4;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}
@keyframes list-pop{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
