.rf { --rf: 255, 255, 255; --ember: 255, 255, 255; position: relative; display: inline-block; flex: none; vertical-align: middle; line-height: 0; }
.rf-box { position: absolute; }
.rf-box > * { position: absolute; display: block; }
.rf-art { left: 0; top: 0; width: 100%; height: 100%; overflow: visible; }

.rf-platinum { --rf: 79, 224, 210; }
.rf-diamond { --rf: 110, 200, 255; }
.rf-emerald { --rf: 63, 214, 127; }
.rf-champion { --rf: 255, 84, 64; --ember: 255, 176, 64; }
.rf-legend { --rf: 255, 206, 84; --ember: 255, 236, 150; }
.rf-god { --rf: 255, 232, 160; --ember: 150, 240, 255; }

.rf-glow { inset: -30%; border-radius: 50%; background: radial-gradient(closest-side, rgba(var(--rf), 0.55), rgba(var(--rf), 0.18) 55%, rgba(var(--rf), 0)); }
.rf-champion .rf-glow { inset: -40%; background: radial-gradient(closest-side, rgba(var(--rf), 0.7), rgba(var(--rf), 0.22) 55%, rgba(var(--rf), 0)); }
.rf-legend .rf-glow { inset: -74%; background: radial-gradient(closest-side, rgba(255, 252, 232, 0.95), rgba(var(--rf), 0.5) 32%, rgba(var(--rf), 0.14) 64%, rgba(var(--rf), 0)); }
.rf-god .rf-glow { inset: -100%; background: radial-gradient(closest-side, #fff, rgba(var(--rf), 0.7) 24%, rgba(127, 243, 255, 0.3) 52%, rgba(127, 243, 255, 0)); }
.rf-chip .rf-glow { inset: -14%; }
.rf-chip.rf-legend .rf-glow { inset: -32%; }
.rf-chip.rf-god .rf-glow { inset: -42%; }
.rf-big .rf-glow { animation: rf-breathe 3.6s ease-in-out infinite; }

.rf-rays { inset: -94%; -webkit-mask-image: radial-gradient(closest-side, #000 22%, rgba(0, 0, 0, 0)); mask-image: radial-gradient(closest-side, #000 22%, rgba(0, 0, 0, 0)); animation: rf-spin 30s linear infinite; }
.rf-god .rf-rays { inset: -104%; }
.rf-rays.b { inset: -80%; animation-duration: 44s; animation-direction: reverse; }
.rf-rays svg { display: block; width: 100%; height: 100%; }
.rf-chip .rf-rays { inset: -40%; animation-duration: 16s; }
.rf-chip.rf-god .rf-rays { inset: -46%; }
.rf-chip .rf-rays.b { inset: -34%; animation-duration: 22s; }

.rf-prism { inset: -18%; border-radius: 50%; background: conic-gradient(#ff9fd0, #ffd23f, #a6ffb5, #7ff3ff, #8fb8ff, #ff9fd0); -webkit-mask-image: radial-gradient(closest-side, rgba(0, 0, 0, 0) 78%, #000 83%, #000 93%, rgba(0, 0, 0, 0) 99%); mask-image: radial-gradient(closest-side, rgba(0, 0, 0, 0) 78%, #000 83%, #000 93%, rgba(0, 0, 0, 0) 99%); animation: rf-spin 7s linear infinite; }
.rf-chip .rf-prism { inset: -8%; }

.rf-aura { inset: -10%; border-radius: 50%; opacity: 0.4; background: radial-gradient(closest-side, rgba(var(--rf), 0) 58%, rgba(var(--rf), 0.9) 72%, rgba(var(--rf), 0)); animation: rf-pulse 2.4s ease-out infinite; }
.rf-aura.c { background: radial-gradient(closest-side, rgba(127, 243, 255, 0) 58%, rgba(127, 243, 255, 0.9) 72%, rgba(127, 243, 255, 0)); }
.rf-chip .rf-aura { inset: -4%; }

.rf-wing { top: 4%; width: 74%; height: 46.25%; animation: rf-flap 2.6s ease-in-out infinite; }
.rf-wing svg { display: block; width: 100%; height: 100%; overflow: visible; }
.rf-wing.l { left: -41.7%; transform-origin: 96.9% 70%; }
.rf-wing.r { right: -41.7%; transform-origin: 3.1% 70%; animation-name: rf-flop; }
.rf-wing.r svg { transform: scaleX(-1); }
.rf-wing.a { top: -10.75%; width: 100%; height: 62.5%; }
.rf-wing.l.a { left: -66.9%; rotate: 14deg; }
.rf-wing.r.a { right: -66.9%; rotate: -14deg; }
.rf-wing.b { top: 15%; width: 80%; height: 50%; }
.rf-wing.l.b { left: -47.5%; rotate: -14deg; }
.rf-wing.r.b { right: -47.5%; rotate: 14deg; }
.rf-wing.c { top: 37.75%; width: 60%; height: 37.5%; }
.rf-wing.l.c { left: -28.1%; rotate: -46deg; }
.rf-wing.r.c { right: -28.1%; rotate: 46deg; }

.rf-shine { inset: 0; overflow: hidden; clip-path: polygon(50% 10.4%, 84.4% 30.2%, 84.4% 69.8%, 50% 89.6%, 15.6% 69.8%, 15.6% 30.2%); }
.rf-shine::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0)); transform: translateX(-140%) skewX(-20deg); animation: rf-sweep 3.4s ease-in-out infinite; }
.rf-legend .rf-shine::before, .rf-god .rf-shine::before { animation-duration: 2.6s; }

.rf-spark { background: radial-gradient(closest-side, #fff 40%, rgb(var(--rf))); clip-path: polygon(50% 0, 59% 41%, 100% 50%, 59% 59%, 50% 100%, 41% 59%, 0 50%, 41% 41%); animation: rf-twinkle 2.4s ease-in-out infinite; }

.rf-ember { width: 9%; height: 64%; margin-left: -4.5%; transform-origin: 50% 100%; background: radial-gradient(closest-side, #fff 20%, rgb(var(--ember)) 50%, rgba(var(--ember), 0)) 50% 100% / 100% 14.1% no-repeat; animation: rf-rise 2.2s ease-out infinite; }

.rf-orbit { inset: -20%; animation: rf-spin 4.8s linear infinite; }
.rf-orbit.b { inset: -36%; animation-duration: 7.2s; animation-direction: reverse; }
.rf-orbit i { position: absolute; display: block; border-radius: 50%; background: radial-gradient(closest-side, #fff 30%, rgba(var(--rf), 0.9) 55%, rgba(var(--rf), 0)); }
.rf-orbit.b i { background: radial-gradient(closest-side, #fff 30%, rgba(127, 243, 255, 0.9) 55%, rgba(127, 243, 255, 0)); }
.rf-chip .rf-orbit { inset: -12%; }

.rf-halo { left: 16%; top: -46%; width: 68%; height: 20%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 250, 220, 0) 52%, #fffbe6 64%, #ffe17a 76%, rgba(255, 214, 90, 0)); animation: rf-bob 3.2s ease-in-out infinite; }
.rf-god .rf-halo { top: -58%; }
.rf-halo.b { left: 4%; top: -74%; width: 92%; height: 24%; opacity: 0.7; background: radial-gradient(closest-side, rgba(127, 243, 255, 0) 62%, #e9fdff 72%, rgba(127, 243, 255, 0.75) 82%, rgba(127, 243, 255, 0)); animation-delay: -1.6s; }

.rf-beam { left: 30%; width: 40%; top: -120%; height: 340%; border-radius: 50%; opacity: 0.8; background: radial-gradient(closest-side, rgba(255, 250, 225, 0.85), rgba(var(--rf), 0.3) 40%, rgba(var(--rf), 0)); animation: rf-beam 3.2s ease-in-out infinite; }
.rf-cross { inset: -110%; animation: rf-spin 24s linear infinite; }
.rf-cross i { position: absolute; display: block; left: 44%; top: 0; width: 12%; height: 100%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 255, 255, 0.9), rgba(127, 243, 255, 0.35) 40%, rgba(127, 243, 255, 0)); }
.rf-cross i + i { rotate: 90deg; }

.rf-burst { inset: -64%; border-radius: 50%; opacity: 0; background: radial-gradient(closest-side, rgba(255, 255, 255, 0.95), rgba(var(--rf), 0.5) 28%, rgba(var(--rf), 0) 54%, rgba(var(--rf), 0) 72%, rgba(var(--rf), 0.95) 80%, rgba(var(--rf), 0) 90%); animation: rf-burst 4.2s cubic-bezier(0.15, 0.7, 0.3, 1) infinite; }
.rf-glint { left: -30%; top: -35%; width: 160%; height: 160%; opacity: 0; background: radial-gradient(closest-side, #fff 10%, rgba(255, 255, 255, 0.6) 30%, rgba(255, 255, 255, 0) 70%); clip-path: polygon(50% 0, 54% 46%, 100% 50%, 54% 54%, 50% 100%, 46% 54%, 0 50%, 46% 46%); animation: rf-glint 4.2s ease-out infinite; }
.rf-god .rf-burst, .rf-god .rf-glint { animation-duration: 3.2s; }
.rf-big.rf-god .rf-box { animation: rf-float 3.6s ease-in-out infinite; }

@keyframes rf-spin { to { transform: rotate(360deg); } }
@keyframes rf-breathe { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes rf-pulse { 0% { transform: scale(0.72); opacity: 0; } 18% { opacity: 0.9; } 100% { transform: scale(1.5); opacity: 0; } }
@keyframes rf-flap { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(10deg); } }
@keyframes rf-flop { 0%, 100% { transform: rotate(6deg); } 50% { transform: rotate(-10deg); } }
@keyframes rf-sweep { 0% { transform: translateX(-140%) skewX(-20deg); } 45%, 100% { transform: translateX(270%) skewX(-20deg); } }
@keyframes rf-twinkle { 0%, 100% { transform: scale(0) rotate(0deg); opacity: 0; } 50% { transform: scale(1) rotate(45deg); opacity: 1; } }
@keyframes rf-rise { 0% { transform: translateY(0) scale(1); opacity: 0; } 15% { opacity: 1; } 100% { transform: translateY(-100%) scale(0.35); opacity: 0; } }
@keyframes rf-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16%); } }
@keyframes rf-burst { 0% { transform: scale(0.2); opacity: 0; } 4% { opacity: 1; } 36%, 100% { transform: scale(1.1); opacity: 0; } }
@keyframes rf-glint { 0% { transform: scale(0.1) rotate(-25deg); opacity: 0; } 5% { transform: scale(1) rotate(0deg); opacity: 1; } 32%, 100% { transform: scale(0.3) rotate(25deg); opacity: 0; } }
@keyframes rf-beam { 0%, 100% { transform: scaleX(0.7); opacity: 0.55; } 50% { transform: scaleX(1.1); opacity: 1; } }
@keyframes rf-float { 0%, 100% { transform: translateY(2%); } 50% { transform: translateY(-3%); } }

html[data-motion="lite"] .rf *, html[data-motion="lite"] .rf *::before { animation: none !important; }
html[data-motion="lite"] .rf-big:not(.fx-off) .rf-rays { animation: rf-spin 120s linear infinite !important; }
html[data-motion="lite"] .rf-burst, html[data-motion="lite"] .rf-glint { display: none; }
