261 lines
16 KiB
XML
261 lines
16 KiB
XML
<svg viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg" width="400" height="400">
|
|
<defs>
|
|
<!-- Blade Gradients: Amethyst (0°) -->
|
|
<linearGradient id="g0_F1" x1="20" y1="17" x2="-30" y2="160" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#A78BFA"><animate attributeName="stop-color" values="#A78BFA;#C4B5FD;#A78BFA" dur="5s" repeatCount="indefinite"/></stop>
|
|
<stop offset="100%" stop-color="#8B5CF6"><animate attributeName="stop-color" values="#8B5CF6;#A78BFA;#8B5CF6" dur="5s" repeatCount="indefinite"/></stop>
|
|
</linearGradient>
|
|
<linearGradient id="g0_F2" x1="40" y1="0" x2="140" y2="60" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#8B5CF6"/><stop offset="100%" stop-color="#5B21B6"/>
|
|
</linearGradient>
|
|
|
|
<!-- Blade Gradients: Sapphire (60°) -->
|
|
<linearGradient id="g1_F1" x1="20" y1="17" x2="-30" y2="160" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#93C5FD"><animate attributeName="stop-color" values="#93C5FD;#BFDBFE;#93C5FD" dur="5.5s" repeatCount="indefinite"/></stop>
|
|
<stop offset="100%" stop-color="#3B82F6"/>
|
|
</linearGradient>
|
|
<linearGradient id="g1_F2" x1="40" y1="0" x2="140" y2="60" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#3B82F6"/><stop offset="100%" stop-color="#1D4ED8"/>
|
|
</linearGradient>
|
|
|
|
<!-- Blade Gradients: Emerald (120°) -->
|
|
<linearGradient id="g2_F1" x1="20" y1="17" x2="-30" y2="160" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#6EE7B7"><animate attributeName="stop-color" values="#6EE7B7;#A7F3D0;#6EE7B7" dur="6s" repeatCount="indefinite"/></stop>
|
|
<stop offset="100%" stop-color="#10B981"/>
|
|
</linearGradient>
|
|
<linearGradient id="g2_F2" x1="40" y1="0" x2="140" y2="60" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#10B981"/><stop offset="100%" stop-color="#047857"/>
|
|
</linearGradient>
|
|
|
|
<!-- Blade Gradients: Amber (180°) -->
|
|
<linearGradient id="g3_F1" x1="20" y1="17" x2="-30" y2="160" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#FCD34D"><animate attributeName="stop-color" values="#FCD34D;#FDE68A;#FCD34D" dur="4.8s" repeatCount="indefinite"/></stop>
|
|
<stop offset="100%" stop-color="#F59E0B"/>
|
|
</linearGradient>
|
|
<linearGradient id="g3_F2" x1="40" y1="0" x2="140" y2="60" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#F59E0B"/><stop offset="100%" stop-color="#B45309"/>
|
|
</linearGradient>
|
|
|
|
<!-- Blade Gradients: Rose (240°) -->
|
|
<linearGradient id="g4_F1" x1="20" y1="17" x2="-30" y2="160" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#F9A8D4"><animate attributeName="stop-color" values="#F9A8D4;#FBCFE8;#F9A8D4" dur="5.2s" repeatCount="indefinite"/></stop>
|
|
<stop offset="100%" stop-color="#EC4899"/>
|
|
</linearGradient>
|
|
<linearGradient id="g4_F2" x1="40" y1="0" x2="140" y2="60" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#EC4899"/><stop offset="100%" stop-color="#BE185D"/>
|
|
</linearGradient>
|
|
|
|
<!-- Blade Gradients: Indigo (300°) -->
|
|
<linearGradient id="g5_F1" x1="20" y1="17" x2="-30" y2="160" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#A5B4FC"><animate attributeName="stop-color" values="#A5B4FC;#C7D2FE;#A5B4FC" dur="5.8s" repeatCount="indefinite"/></stop>
|
|
<stop offset="100%" stop-color="#6366F1"/>
|
|
</linearGradient>
|
|
<linearGradient id="g5_F2" x1="40" y1="0" x2="140" y2="60" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#6366F1"/><stop offset="100%" stop-color="#4338CA"/>
|
|
</linearGradient>
|
|
|
|
<!-- Cycling Prismatic Core Gradient -->
|
|
<linearGradient id="prismatic" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
<stop offset="0%" stop-color="#8B5CF6"><animate attributeName="stop-color" values="#8B5CF6;#3B82F6;#10B981;#F59E0B;#EC4899;#8B5CF6" dur="8s" repeatCount="indefinite"/></stop>
|
|
<stop offset="25%" stop-color="#3B82F6"><animate attributeName="stop-color" values="#3B82F6;#10B981;#F59E0B;#EC4899;#8B5CF6;#3B82F6" dur="8s" repeatCount="indefinite"/></stop>
|
|
<stop offset="50%" stop-color="#10B981"><animate attributeName="stop-color" values="#10B981;#F59E0B;#EC4899;#8B5CF6;#3B82F6;#10B981" dur="8s" repeatCount="indefinite"/></stop>
|
|
<stop offset="75%" stop-color="#F59E0B"><animate attributeName="stop-color" values="#F59E0B;#EC4899;#8B5CF6;#3B82F6;#10B981;#F59E0B" dur="8s" repeatCount="indefinite"/></stop>
|
|
<stop offset="100%" stop-color="#EC4899"><animate attributeName="stop-color" values="#EC4899;#8B5CF6;#3B82F6;#10B981;#F59E0B;#EC4899" dur="8s" repeatCount="indefinite"/></stop>
|
|
</linearGradient>
|
|
|
|
<!-- Warm inner glow halo for the orb -->
|
|
<radialGradient id="warmHalo" cx="50%" cy="50%" r="50%">
|
|
<stop offset="0%" stop-color="#FCD34D" stop-opacity="0.4"><animate attributeName="stop-color" values="#FCD34D;#F59E0B;#FCD34D" dur="4s" repeatCount="indefinite"/></stop>
|
|
<stop offset="60%" stop-color="#F59E0B" stop-opacity="0.1"/>
|
|
<stop offset="100%" stop-color="#F59E0B" stop-opacity="0"/>
|
|
</radialGradient>
|
|
|
|
<!-- Soft glow filter for the orb -->
|
|
<filter id="softGlow" x="-60%" y="-60%" width="220%" height="220%">
|
|
<feGaussianBlur stdDeviation="8" result="blur"/>
|
|
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
</filter>
|
|
|
|
<!-- Outer aura for transparent bg -->
|
|
<radialGradient id="outerAura" cx="50%" cy="50%" r="50%">
|
|
<stop offset="0%" stop-color="#8B5CF6" stop-opacity="0.08"><animate attributeName="stop-color" values="#8B5CF6;#3B82F6;#10B981;#F59E0B;#EC4899;#8B5CF6" dur="10s" repeatCount="indefinite"/></stop>
|
|
<stop offset="70%" stop-color="#8B5CF6" stop-opacity="0.03"/>
|
|
<stop offset="100%" stop-color="#8B5CF6" stop-opacity="0"/>
|
|
</radialGradient>
|
|
|
|
<!-- Filters -->
|
|
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
|
|
<feGaussianBlur stdDeviation="6" result="blur"/>
|
|
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
</filter>
|
|
<filter id="coreGlow" x="-50%" y="-50%" width="200%" height="200%">
|
|
<feGaussianBlur stdDeviation="12" result="blur"/>
|
|
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
</filter>
|
|
<filter id="shimmer" x="-50%" y="-50%" width="200%" height="200%">
|
|
<feGaussianBlur stdDeviation="3" result="blur"/>
|
|
<feMerge><feMergeNode in="blur"/><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
</filter>
|
|
<filter id="wideGlow" x="-80%" y="-80%" width="260%" height="260%">
|
|
<feGaussianBlur stdDeviation="18" result="blur"/>
|
|
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
</filter>
|
|
</defs>
|
|
|
|
<!-- Subtle breathing aura (replaces dark bg) -->
|
|
<circle cx="200" cy="200" r="190" fill="url(#outerAura)">
|
|
<animate attributeName="r" values="175;195;175" dur="6s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- The Iris — slow continuous rotation -->
|
|
<g transform="translate(200, 200)">
|
|
<animateTransform attributeName="transform" type="rotate" from="0" to="360" dur="90s" repeatCount="indefinite" additive="sum"/>
|
|
|
|
<!-- Amethyst Blade (0°) with shimmer -->
|
|
<g transform="rotate(0)" style="mix-blend-mode: screen;">
|
|
<path d="M 40,0 L -30,160 L 140,60 Z" fill="url(#g0_F2)" fill-opacity="0.80" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.4" stroke-linejoin="round">
|
|
<animate attributeName="fill-opacity" values="0.75;0.90;0.75" dur="4s" repeatCount="indefinite"/>
|
|
</path>
|
|
<path d="M 40,0 L 20,34.641 L -30,160 Z" fill="url(#g0_F1)" fill-opacity="0.95" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.6" stroke-linejoin="round">
|
|
<animate attributeName="fill-opacity" values="0.90;1;0.90" dur="4s" repeatCount="indefinite"/>
|
|
</path>
|
|
<!-- Edge shimmer -->
|
|
<line x1="40" y1="0" x2="-30" y2="160" stroke="#fff" stroke-width="1" opacity="0">
|
|
<animate attributeName="opacity" values="0;0.6;0" dur="5s" begin="0s" repeatCount="indefinite"/>
|
|
</line>
|
|
</g>
|
|
|
|
<!-- Sapphire Blade (60°) -->
|
|
<g transform="rotate(60)" style="mix-blend-mode: screen;">
|
|
<path d="M 40,0 L -30,160 L 140,60 Z" fill="url(#g1_F2)" fill-opacity="0.80" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.4" stroke-linejoin="round">
|
|
<animate attributeName="fill-opacity" values="0.75;0.90;0.75" dur="4.5s" repeatCount="indefinite"/>
|
|
</path>
|
|
<path d="M 40,0 L 20,34.641 L -30,160 Z" fill="url(#g1_F1)" fill-opacity="0.95" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.6" stroke-linejoin="round"/>
|
|
<line x1="40" y1="0" x2="-30" y2="160" stroke="#fff" stroke-width="1" opacity="0">
|
|
<animate attributeName="opacity" values="0;0.6;0" dur="5s" begin="0.83s" repeatCount="indefinite"/>
|
|
</line>
|
|
</g>
|
|
|
|
<!-- Emerald Blade (120°) -->
|
|
<g transform="rotate(120)" style="mix-blend-mode: screen;">
|
|
<path d="M 40,0 L -30,160 L 140,60 Z" fill="url(#g2_F2)" fill-opacity="0.80" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.4" stroke-linejoin="round">
|
|
<animate attributeName="fill-opacity" values="0.75;0.90;0.75" dur="5s" repeatCount="indefinite"/>
|
|
</path>
|
|
<path d="M 40,0 L 20,34.641 L -30,160 Z" fill="url(#g2_F1)" fill-opacity="0.95" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.6" stroke-linejoin="round"/>
|
|
<line x1="40" y1="0" x2="-30" y2="160" stroke="#fff" stroke-width="1" opacity="0">
|
|
<animate attributeName="opacity" values="0;0.6;0" dur="5s" begin="1.66s" repeatCount="indefinite"/>
|
|
</line>
|
|
</g>
|
|
|
|
<!-- Amber Blade (180°) -->
|
|
<g transform="rotate(180)" style="mix-blend-mode: screen;">
|
|
<path d="M 40,0 L -30,160 L 140,60 Z" fill="url(#g3_F2)" fill-opacity="0.80" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.4" stroke-linejoin="round">
|
|
<animate attributeName="fill-opacity" values="0.75;0.90;0.75" dur="4.2s" repeatCount="indefinite"/>
|
|
</path>
|
|
<path d="M 40,0 L 20,34.641 L -30,160 Z" fill="url(#g3_F1)" fill-opacity="0.95" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.6" stroke-linejoin="round"/>
|
|
<line x1="40" y1="0" x2="-30" y2="160" stroke="#fff" stroke-width="1" opacity="0">
|
|
<animate attributeName="opacity" values="0;0.6;0" dur="5s" begin="2.5s" repeatCount="indefinite"/>
|
|
</line>
|
|
</g>
|
|
|
|
<!-- Rose Blade (240°) -->
|
|
<g transform="rotate(240)" style="mix-blend-mode: screen;">
|
|
<path d="M 40,0 L -30,160 L 140,60 Z" fill="url(#g4_F2)" fill-opacity="0.80" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.4" stroke-linejoin="round">
|
|
<animate attributeName="fill-opacity" values="0.75;0.90;0.75" dur="4.8s" repeatCount="indefinite"/>
|
|
</path>
|
|
<path d="M 40,0 L 20,34.641 L -30,160 Z" fill="url(#g4_F1)" fill-opacity="0.95" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.6" stroke-linejoin="round"/>
|
|
<line x1="40" y1="0" x2="-30" y2="160" stroke="#fff" stroke-width="1" opacity="0">
|
|
<animate attributeName="opacity" values="0;0.6;0" dur="5s" begin="3.33s" repeatCount="indefinite"/>
|
|
</line>
|
|
</g>
|
|
|
|
<!-- Indigo Blade (300°) -->
|
|
<g transform="rotate(300)" style="mix-blend-mode: screen;">
|
|
<path d="M 40,0 L -30,160 L 140,60 Z" fill="url(#g5_F2)" fill-opacity="0.80" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.4" stroke-linejoin="round">
|
|
<animate attributeName="fill-opacity" values="0.75;0.90;0.75" dur="4.3s" repeatCount="indefinite"/>
|
|
</path>
|
|
<path d="M 40,0 L 20,34.641 L -30,160 Z" fill="url(#g5_F1)" fill-opacity="0.95" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.6" stroke-linejoin="round"/>
|
|
<line x1="40" y1="0" x2="-30" y2="160" stroke="#fff" stroke-width="1" opacity="0">
|
|
<animate attributeName="opacity" values="0;0.6;0" dur="5s" begin="4.16s" repeatCount="indefinite"/>
|
|
</line>
|
|
</g>
|
|
|
|
<!-- THE KALEIDOSCOPE CORE: Prismatic Orb -->
|
|
<g filter="url(#coreGlow)">
|
|
<!-- Warm inner glow halo -->
|
|
<circle r="38" fill="url(#warmHalo)">
|
|
<animate attributeName="r" values="36;40;36" dur="4s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- Main pulsing prismatic orb -->
|
|
<circle r="38" fill="url(#prismatic)" filter="url(#softGlow)">
|
|
<animate attributeName="r" values="36;42;36" dur="3s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- Subtle breathing outer ring -->
|
|
<circle r="32" fill="none" stroke="#ffffff" stroke-width="1" opacity="0.4">
|
|
<animate attributeName="r" values="30;35;30" dur="3.2s" repeatCount="indefinite"/>
|
|
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="3.2s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- Specular highlight 1 (upper left) -->
|
|
<circle cx="-10" cy="-12" r="10" fill="white" opacity="0.25" filter="url(#glow)">
|
|
<animate attributeName="opacity" values="0.15;0.4;0.15" dur="4s" repeatCount="indefinite"/>
|
|
<animate attributeName="r" values="9;12;9" dur="4s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- Specular highlight 2 (lower right) -->
|
|
<circle cx="8" cy="10" r="6" fill="white" opacity="0.18" filter="url(#glow)">
|
|
<animate attributeName="opacity" values="0.1;0.28;0.1" dur="3.5s" repeatCount="indefinite"/>
|
|
<animate attributeName="r" values="5;7;5" dur="3.5s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- Specular highlight 3 (top) -->
|
|
<circle cx="0" cy="-15" r="5" fill="white" opacity="0.2">
|
|
<animate attributeName="opacity" values="0.12;0.32;0.12" dur="3.8s" repeatCount="indefinite"/>
|
|
<animate attributeName="r" values="4;6;4" dur="3.8s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- Pulsing center refraction point -->
|
|
<circle r="5" fill="#ffffff" filter="url(#glow)" opacity="0.9">
|
|
<animate attributeName="r" values="4;6.5;4" dur="2s" repeatCount="indefinite"/>
|
|
<animate attributeName="opacity" values="0.8;1;0.8" dur="2s" repeatCount="indefinite"/>
|
|
</circle>
|
|
</g>
|
|
|
|
<!-- Outer core edge with pulse (circular) -->
|
|
<circle r="38" fill="none" stroke="#ffffff" stroke-width="1.2" opacity="0.8">
|
|
<animate attributeName="opacity" values="0.6;1;0.6" dur="3s" repeatCount="indefinite"/>
|
|
<animate attributeName="r" values="38;42;38" dur="3s" repeatCount="indefinite"/>
|
|
</circle>
|
|
|
|
<!-- Orbiting light motes -->
|
|
<g filter="url(#shimmer)">
|
|
<circle r="2" fill="#A78BFA" opacity="0">
|
|
<animateMotion dur="7s" repeatCount="indefinite" path="M0,-155 A155,155 0 1 1 -0.1,-155"/>
|
|
<animate attributeName="opacity" values="0;0.9;0;0;0" dur="7s" repeatCount="indefinite"/>
|
|
</circle>
|
|
<circle r="1.5" fill="#3B82F6" opacity="0">
|
|
<animateMotion dur="9s" repeatCount="indefinite" path="M0,-140 A140,140 0 1 0 -0.1,-140"/>
|
|
<animate attributeName="opacity" values="0;0;0.8;0;0" dur="9s" repeatCount="indefinite"/>
|
|
</circle>
|
|
<circle r="1.5" fill="#10B981" opacity="0">
|
|
<animateMotion dur="6s" repeatCount="indefinite" path="M0,-165 A165,165 0 1 1 -0.1,-165"/>
|
|
<animate attributeName="opacity" values="0;0.7;0;0.5;0" dur="6s" repeatCount="indefinite"/>
|
|
</circle>
|
|
<circle r="2" fill="#F59E0B" opacity="0">
|
|
<animateMotion dur="11s" repeatCount="indefinite" path="M0,-130 A130,130 0 1 0 -0.1,-130"/>
|
|
<animate attributeName="opacity" values="0;0;0;0.9;0" dur="11s" repeatCount="indefinite"/>
|
|
</circle>
|
|
<circle r="1" fill="#EC4899" opacity="0">
|
|
<animateMotion dur="8s" repeatCount="indefinite" path="M0,-150 A150,150 0 1 1 -0.1,-150"/>
|
|
<animate attributeName="opacity" values="0;0.8;0;0;0.6;0" dur="8s" repeatCount="indefinite"/>
|
|
</circle>
|
|
<circle r="1.5" fill="#fff" opacity="0">
|
|
<animateMotion dur="5s" repeatCount="indefinite" path="M0,-120 A120,120 0 1 0 -0.1,-120"/>
|
|
<animate attributeName="opacity" values="0;1;0;0;0" dur="5s" repeatCount="indefinite"/>
|
|
</circle>
|
|
</g>
|
|
</g>
|
|
</svg>
|