@utility hero-glow{position: relative; overflow: hidden; background: radial-gradient(ellipse 60% 50% at 50% 0%, var(--primary) / 6%, transparent 70%);}@utility bg-grid-pattern{background-image: radial-gradient(circle, var(--border) 1px, transparent 1px); background-size: 24px 24px;}@utility text-gradient{background: linear-gradient(135deg, var(--primary), var(--accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;}@utility card-hover-lift{transition: transform .2s ease, box-shadow .2s ease; &:hover { transform: translateY(-2px); box-shadow: 0 8px 30px -12px var(--primary) / 15%; }}@utility gradient-top-border{position: relative; overflow: hidden; &::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--primary), var(--accent)); border-radius: 2px 2px 0 0; }}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@utility animate-marquee{animation: marquee 25s linear infinite;}@utility animate-marquee-slow{animation: marquee 40s linear infinite;}@utility glow-ring{box-shadow: 0 0 0 1px var(--border), 0 0 20px -5px var(--primary) / 20%;}@utility glow-ring-hover{transition: box-shadow .3s ease; &:hover { box-shadow: 0 0 0 1px var(--primary) / 30%, 0 0 30px -5px var(--primary) / 25%; }}@utility star-filled{color: oklch(79.5% .184 86.047); fill: oklch(79.5% .184 86.047);}@utility border-gradient-top{border-top: 1px solid transparent; border-image: linear-gradient(90deg, transparent, var(--border), transparent) 1;}@utility cta-gradient-bg{background: linear-gradient(135deg, var(--primary) / 5%, var(--accent) / 8%, transparent 60%);}@utility pulse-dot{position: relative; &::before { content: ""; position: absolute; inset: -2px; border-radius: 9999px; background: var(--primary); opacity: 0; animation: pulse-ring 2s cubic-bezier(.4, 0, .6, 1) infinite; }}@keyframes pulse-ring{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(2)}}@keyframes hero-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@utility hero-float-card{animation: hero-float 4s ease-in-out infinite;}@utility hero-float-card-delayed{animation: hero-float 4s ease-in-out 1.5s infinite;}
