112 lines
4.7 KiB
XML
112 lines
4.7 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" fill="none" role="img" aria-label="Soroush Asadi portrait">
|
|
<defs>
|
|
<radialGradient id="bg" cx="50%" cy="40%" r="60%">
|
|
<stop offset="0%" stop-color="#0f1b33"/>
|
|
<stop offset="60%" stop-color="#050a1a"/>
|
|
<stop offset="100%" stop-color="#020510"/>
|
|
</radialGradient>
|
|
<linearGradient id="rim" x1="0" y1="0" x2="400" y2="400" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#38bdf8"/>
|
|
<stop offset="50%" stop-color="#818cf8"/>
|
|
<stop offset="100%" stop-color="#e879f9"/>
|
|
</linearGradient>
|
|
<linearGradient id="face" x1="100" y1="120" x2="320" y2="360" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#1e293b"/>
|
|
<stop offset="100%" stop-color="#0f1b33"/>
|
|
</linearGradient>
|
|
<linearGradient id="hair" x1="120" y1="60" x2="280" y2="200" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#0f1b33"/>
|
|
<stop offset="100%" stop-color="#1e293b"/>
|
|
</linearGradient>
|
|
<linearGradient id="acc" x1="0" y1="0" x2="400" y2="0" gradientUnits="userSpaceOnUse">
|
|
<stop offset="0%" stop-color="#22d3ee"/>
|
|
<stop offset="100%" stop-color="#e879f9"/>
|
|
</linearGradient>
|
|
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
|
<feGaussianBlur stdDeviation="6" result="b"/>
|
|
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
|
|
</filter>
|
|
</defs>
|
|
|
|
<!-- backdrop -->
|
|
<circle cx="200" cy="200" r="200" fill="url(#bg)"/>
|
|
<!-- faint hex grid -->
|
|
<g stroke="rgba(56,189,248,0.08)" stroke-width="0.6" fill="none">
|
|
<path d="M40 200 L80 178 L120 200 L120 244 L80 266 L40 244 Z"/>
|
|
<path d="M280 200 L320 178 L360 200 L360 244 L320 266 L280 244 Z"/>
|
|
<path d="M160 80 L200 58 L240 80 L240 124 L200 146 L160 124 Z"/>
|
|
<path d="M160 280 L200 258 L240 280 L240 324 L200 346 L160 324 Z"/>
|
|
</g>
|
|
|
|
<!-- shoulders -->
|
|
<path d="M60 400 C 90 320, 150 290, 200 290 C 250 290, 310 320, 340 400 Z"
|
|
fill="url(#face)" stroke="rgba(56,189,248,0.25)" stroke-width="1"/>
|
|
|
|
<!-- collar accent -->
|
|
<path d="M170 320 L200 340 L230 320" stroke="url(#acc)" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
<circle cx="200" cy="345" r="2" fill="#38bdf8"/>
|
|
|
|
<!-- neck -->
|
|
<rect x="180" y="260" width="40" height="40" fill="url(#face)"/>
|
|
|
|
<!-- head -->
|
|
<ellipse cx="200" cy="190" rx="88" ry="100" fill="url(#face)"
|
|
stroke="url(#rim)" stroke-width="1.5"/>
|
|
|
|
<!-- hair (short, modern) -->
|
|
<path d="M118 178 C 118 110, 165 80, 200 80 C 235 80, 282 105, 282 178
|
|
C 282 168, 270 150, 240 144 C 235 130, 215 120, 200 120
|
|
C 180 120, 165 130, 155 148 C 140 152, 125 162, 118 178 Z"
|
|
fill="url(#hair)" stroke="rgba(56,189,248,0.3)" stroke-width="1"/>
|
|
|
|
<!-- brow -->
|
|
<path d="M152 192 Q 168 184 184 192" stroke="#cbd5e1" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
<path d="M216 192 Q 232 184 248 192" stroke="#cbd5e1" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
|
|
<!-- glasses frame -->
|
|
<g stroke="url(#rim)" stroke-width="2.2" fill="none" filter="url(#glow)">
|
|
<rect x="142" y="198" width="48" height="34" rx="8"/>
|
|
<rect x="210" y="198" width="48" height="34" rx="8"/>
|
|
<path d="M190 212 L210 212"/>
|
|
<path d="M142 208 L128 204"/>
|
|
<path d="M258 208 L272 204"/>
|
|
</g>
|
|
<!-- lens shimmer -->
|
|
<rect x="146" y="202" width="14" height="6" rx="2" fill="rgba(56,189,248,0.25)"/>
|
|
<rect x="214" y="202" width="14" height="6" rx="2" fill="rgba(56,189,248,0.25)"/>
|
|
|
|
<!-- nose -->
|
|
<path d="M200 222 L196 252 Q 200 258 204 252" stroke="#94a3b8" stroke-width="1.5" fill="none" stroke-linecap="round"/>
|
|
|
|
<!-- mouth (subtle confident line) -->
|
|
<path d="M180 268 Q 200 274 220 268" stroke="#cbd5e1" stroke-width="2" fill="none" stroke-linecap="round"/>
|
|
|
|
<!-- jaw highlight -->
|
|
<path d="M120 220 Q 135 280 200 295" stroke="rgba(56,189,248,0.18)" stroke-width="1" fill="none"/>
|
|
<path d="M280 220 Q 265 280 200 295" stroke="rgba(232,121,249,0.18)" stroke-width="1" fill="none"/>
|
|
|
|
<!-- floating tech nodes -->
|
|
<g fill="#e879f9">
|
|
<circle cx="60" cy="120" r="2"/>
|
|
<circle cx="340" cy="140" r="2"/>
|
|
<circle cx="50" cy="320" r="2"/>
|
|
<circle cx="350" cy="300" r="2"/>
|
|
</g>
|
|
<g fill="#22d3ee">
|
|
<circle cx="90" cy="80" r="1.5"/>
|
|
<circle cx="310" cy="90" r="1.5"/>
|
|
<circle cx="80" cy="280" r="1.5"/>
|
|
</g>
|
|
|
|
<!-- connecting wires -->
|
|
<g stroke="rgba(56,189,248,0.25)" stroke-width="0.7" fill="none">
|
|
<path d="M60 120 Q 100 150 130 200"/>
|
|
<path d="M340 140 Q 300 160 270 200"/>
|
|
<path d="M50 320 Q 110 310 160 290"/>
|
|
<path d="M350 300 Q 290 310 240 290"/>
|
|
</g>
|
|
|
|
<!-- outer rim -->
|
|
<circle cx="200" cy="200" r="198" stroke="url(#rim)" stroke-width="1.5" opacity="0.6"/>
|
|
</svg>
|