/* Shared Magic Card glow, preserving existing card content and layout. */
.magic-card{position:relative;--magic-x:50%;--magic-y:50%}
.magic-glow{position:absolute;inset:0;display:block!important;border-radius:inherit;pointer-events:none;z-index:2;opacity:0;background:radial-gradient(320px circle at var(--magic-x) var(--magic-y),#d5b57e26, #72d4cb16 35%,transparent 70%);box-shadow:inset 0 0 0 1px #d5b57e55;transition:opacity .3s}
@media(hover:hover){.magic-card:hover>.magic-glow{opacity:1}}
.magic-card:focus-within>.magic-glow{opacity:1}
/* Animated perimeter for buttons and action links. */
@property --rainbow-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.rainbow-action{position:relative;isolation:isolate;border-radius:9px;transition:box-shadow .2s}
a.rainbow-action{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;text-decoration:none}
.rainbow-action::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:1;background:conic-gradient(from var(--rainbow-angle),#d5b57e,#a85892,#8576ca,#72d4cb,#d5b57e);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:xor;opacity:.7;animation:rainbow-perimeter 7s linear infinite}
.rainbow-action:hover::before,.rainbow-action:focus-visible::before{opacity:1}
.rainbow-action:hover{box-shadow:0 0 18px #a8589220}
.rainbow-action:focus-visible{outline:2px solid #72d4cb;outline-offset:5px}
.rainbow-action:disabled{opacity:.5}
.rainbow-action:disabled::before{animation:none}
summary.rainbow-action{padding:10px 14px}
@keyframes rainbow-perimeter{to{--rainbow-angle:360deg}}
.animation-paused .rainbow-action::before{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.rainbow-action::before{animation:none}.magic-glow,.rainbow-action{transition:none}}
@media(forced-colors:active){.magic-glow,.rainbow-action::before{display:none}.rainbow-action{outline:1px solid ButtonText}}
