/* E7 effect: rays. Library part (dev/components/effects), made 2026-10-13 by minion 3v2 from the Rulewell gift's aura
   (site styles/65-gift.css, .rw-gift__aura), the user: "make a lighter version of these rays, make their common aura
   much more smeared, make them twice shorter, and put them on the packs and pledge elements". Any element with the
   class rw-rays gets them behind it: milk-white rays at about half the gift's strength, reaching half as far (105% of
   the element, the gift's are 210%), turning once in 14 beats, over a common heart of light spread wide and soft.
   Crisp: soft only by gradient stops and a radial mask, no blur. Tokens: --rays-size (105%), --rays-a / --rays-b
   (the two ray inks), --rays-heart. Astro: a `rays` prop on any block, not its own component. Used by: Rulewell
   (the pack stack, the pledge stripe). */

.rw-rays{position:relative;isolation:isolate;
  --rays-a:rgba(255,250,246,.26);--rays-b:rgba(255,214,222,.16);--rays-heart:rgba(255,242,246,.3)}
/* the burst sits on the element's focal point, not its box (the user, 2026-10-14: "the rays are aligned to the centre of
   the card, not the centre of the face"): --rays-x / --rays-y, set by the owner (module.fund aims them at its title);
   the box's centre when unset */
.rw-rays::before,.rw-rays::after{content:"";position:absolute;left:var(--rays-x,50%);top:var(--rays-y,50%);aspect-ratio:1;translate:-50% -50%;z-index:-1;pointer-events:none}
/* the rays: the gift's pattern, lighter, half as long */
.rw-rays::before{width:var(--rays-size,105%);
  background:repeating-conic-gradient(from 0deg,var(--rays-a) 0deg 3deg,transparent 3deg 11deg,var(--rays-b) 11deg 13deg,transparent 13deg 22deg);
  -webkit-mask:radial-gradient(closest-side,#000 20%,rgba(0,0,0,.35) 48%,transparent 72%);mask:radial-gradient(closest-side,#000 20%,rgba(0,0,0,.35) 48%,transparent 72%);
  animation:rw-rays-turn calc(var(--rw-beat,4.5s) * 14) linear infinite}
/* the common aura: one heart of light under all the rays, spread far and soft (many stops, a long tail) */
.rw-rays::after{width:calc(var(--rays-size,105%) * .9);border-radius:50%;
  background:radial-gradient(closest-side,var(--rays-heart),color-mix(in srgb,var(--rays-heart) 70%,transparent) 22%,
    color-mix(in srgb,var(--rays-heart) 42%,transparent) 46%,color-mix(in srgb,var(--rays-heart) 18%,transparent) 70%,transparent 100%);
  animation:rw-rays-breathe calc(var(--rw-beat,4.5s) * 2) ease-in-out infinite}
@keyframes rw-rays-turn{to{rotate:360deg}}
@keyframes rw-rays-breathe{0%,100%{opacity:.7}50%{opacity:1}}
/* by day the milk-white is lost on the blush ground: the rays take the rose instead, fainter */
:root[data-rw-theme="light"] .rw-rays{--rays-a:color-mix(in srgb,var(--rose) 14%,transparent);--rays-b:color-mix(in srgb,var(--rose) 9%,transparent);
  --rays-heart:color-mix(in srgb,var(--rose) 12%,transparent)}
@media (prefers-reduced-motion:reduce){.rw-rays::before,.rw-rays::after{animation:none}}
@media print{.rw-rays::before,.rw-rays::after{display:none}}
