:root{--shiny-cta-bg:hsla(var(--card-hsl)/1);--shiny-cta-bg-subtle:hsla(var(--border-hsl)/0.8);--shiny-cta-fg:hsla(var(--primary-hsl)/1);--shiny-cta-highlight:hsla(var(--secondary-hsl)/1);--shiny-cta-highlight-subtle:hsla(var(--accent-hsl)/1)}@property --gradient-angle{syntax:"<angle>";initial-value:0deg;inherits:false}@property --gradient-angle-offset{syntax:"<angle>";initial-value:0deg;inherits:false}@property --gradient-percent{syntax:"<percentage>";initial-value:5%;inherits:false}@property --gradient-shine{syntax:"<color>";initial-value:hsla(0,0%,100%,.8);inherits:false}.shimmer{--animation:gradient-angle linear infinite;--duration:12s;--shadow-size:2px;isolation:isolate;position:relative;overflow:hidden;cursor:pointer;outline-offset:4px;border:1px solid transparent;border-radius:360px;color:var(--shiny-cta-fg);background:linear-gradient(var(--shiny-cta-bg),var(--shiny-cta-bg)) padding-box,conic-gradient(from calc(var(--gradient-angle) - var(--gradient-angle-offset)),transparent,var(--shiny-cta-highlight) var(--gradient-percent),var(--gradient-shine) calc(var(--gradient-percent) * 2),var(--shiny-cta-highlight) calc(var(--gradient-percent) * 3),transparent calc(var(--gradient-percent) * 4)) border-box;box-shadow:inset 0 0 0 1px var(--shiny-cta-bg-subtle);&:after,&:before,span:before{content:"";pointer-events:none;position:absolute;inset-inline-start:50%;inset-block-start:50%;translate:-50% -50%;z-index:-1}&:active{translate:0 1px}}.shimmer:before{--size:calc(100% - var(--shadow-size) * 3);--position:2px;--space:calc(var(--position) * 2);width:var(--size);height:var(--size);background:radial-gradient(circle at var(--position) var(--position),#fff calc(var(--position) / 4),transparent 0) padding-box;background-size:var(--space) var(--space);background-repeat:space;-webkit-mask-image:conic-gradient(from calc(var(--gradient-angle) + 45deg),#000,transparent 10% 90%,#000);mask-image:conic-gradient(from calc(var(--gradient-angle) + 45deg),#000,transparent 10% 90%,#000);border-radius:inherit;opacity:.4;z-index:-1}.shimmer:after{--animation:shimmer linear infinite;width:100%;aspect-ratio:1;background:linear-gradient(-50deg,transparent,var(--shiny-cta-highlight),transparent);-webkit-mask-image:radial-gradient(circle at bottom,transparent 40%,#000);mask-image:radial-gradient(circle at bottom,transparent 40%,#000);opacity:.6}.shimmer span{z-index:1;&:before{--size:calc(100% + 1rem);width:var(--size);height:var(--size);box-shadow:inset 0 -1ex 2rem 4px var(--shiny-cta-highlight);opacity:0}}.shimmer{--transition:800ms cubic-bezier(0.25,1,0.5,1);transition:var(--transition);transition-property:--gradient-angle-offset,--gradient-percent,--gradient-shine;&,&:after,&:before{animation:var(--animation) var(--duration),var(--animation) calc(var(--duration) / .4) reverse paused;animation-composition:add}span:before{transition:opacity var(--transition);animation:calc(var(--duration) * 1.5) breathe linear infinite}}.shimmer:is(:hover,:focus-visible){--gradient-percent:20%;--gradient-angle-offset:95deg;--gradient-shine:var(--shiny-cta-highlight-subtle);&,&:after,&:before{animation-play-state:running}span:before{opacity:1}}@keyframes gradient-angle{to{--gradient-angle:360deg}}@keyframes shimmer{to{rotate:1turn}}@keyframes breathe{0%,to{scale:1}50%{scale:1.2}}