A combination can now ship multiple versions of the same case: runs.<case-id> accepts an array, each extra variant naming its own file; the viewer grows a RUN 01/02 switcher and validation enforces distinct files plus a provenance note per variant. Integrated content, attributed to their authors: - Gemini 3.1 Pro + 3.5 Flash pelican runs from both PRs, shown as two variants each (PR #2's Google AI Studio runs first, PR #3's second) - Doubao Seed 2.0 Pro / Mini pelican runs (folders renamed to the dash-only convention) - GPT-5.5 Codex pelican run Co-authored-by: lpluma <liuyz2023@mails.jlu.edu.cn> Co-authored-by: XA2333 <97206278+XA2333@users.noreply.github.com>
492 lines
24 KiB
XML
492 lines
24 KiB
XML
<svg viewBox="0 0 1000 700" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<!-- Sky Gradient -->
|
|
<linearGradient id="skyGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
<stop offset="0%" stop-color="#4A90E2" />
|
|
<stop offset="40%" stop-color="#90C3E5" />
|
|
<stop offset="70%" stop-color="#FFDAB9" />
|
|
<stop offset="100%" stop-color="#FFB6C1" />
|
|
</linearGradient>
|
|
|
|
<!-- Sun Gradient -->
|
|
<radialGradient id="sunGrad" cx="50%" cy="50%" r="50%">
|
|
<stop offset="0%" stop-color="#FFFFFF" />
|
|
<stop offset="20%" stop-color="#FFF176" />
|
|
<stop offset="70%" stop-color="#FF8A65" />
|
|
<stop offset="100%" stop-color="#FF8A65" stop-opacity="0" />
|
|
</radialGradient>
|
|
|
|
<!-- Ocean Gradient -->
|
|
<linearGradient id="oceanGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
<stop offset="0%" stop-color="#005C99" />
|
|
<stop offset="50%" stop-color="#008B8B" />
|
|
<stop offset="100%" stop-color="#20B2AA" />
|
|
</linearGradient>
|
|
|
|
<!-- Sand Gradient -->
|
|
<linearGradient id="sandGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
<stop offset="0%" stop-color="#F4E0A0" />
|
|
<stop offset="30%" stop-color="#F4D090" />
|
|
<stop offset="100%" stop-color="#D2A660" />
|
|
</linearGradient>
|
|
|
|
<!-- Pelican Body Gradient -->
|
|
<linearGradient id="pelicanWhite" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
<stop offset="0%" stop-color="#FFFFFF" />
|
|
<stop offset="60%" stop-color="#F0F4F8" />
|
|
<stop offset="100%" stop-color="#B0C4DE" />
|
|
</linearGradient>
|
|
|
|
<linearGradient id="pelicanShade" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
<stop offset="0%" stop-color="#FFFFFF" />
|
|
<stop offset="100%" stop-color="#D1D9E6" />
|
|
</linearGradient>
|
|
|
|
<!-- Pouch Gradient (Vivid) -->
|
|
<linearGradient id="pouchGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
<stop offset="0%" stop-color="#FFD54F" />
|
|
<stop offset="40%" stop-color="#FFB300" />
|
|
<stop offset="75%" stop-color="#FF7043" />
|
|
<stop offset="100%" stop-color="#E53935" />
|
|
</linearGradient>
|
|
|
|
<!-- Beak Gradient -->
|
|
<linearGradient id="beakGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
<stop offset="0%" stop-color="#FFF59D" />
|
|
<stop offset="70%" stop-color="#FFD54F" />
|
|
<stop offset="90%" stop-color="#FFCA28" />
|
|
<stop offset="100%" stop-color="#BDBDBD" />
|
|
</linearGradient>
|
|
|
|
<!-- Bike Frame Gradient -->
|
|
<linearGradient id="frameGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
<stop offset="0%" stop-color="#FF5252" />
|
|
<stop offset="50%" stop-color="#E53935" />
|
|
<stop offset="100%" stop-color="#B71C1C" />
|
|
</linearGradient>
|
|
|
|
<!-- Drop Shadow for Realism -->
|
|
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
|
|
<feDropShadow dx="0" dy="15" stdDeviation="10" flood-color="#000" flood-opacity="0.3"/>
|
|
</filter>
|
|
<filter id="blurShadow">
|
|
<feGaussianBlur stdDeviation="15"/>
|
|
</filter>
|
|
|
|
<!-- Pattern for Sand Texture -->
|
|
<pattern id="sandTexture" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse">
|
|
<circle cx="5" cy="5" r="1" fill="#A0522D" opacity="0.15" />
|
|
<circle cx="25" cy="15" r="1.5" fill="#A0522D" opacity="0.1" />
|
|
<circle cx="15" cy="30" r="1" fill="#8B4513" opacity="0.2" />
|
|
<circle cx="35" cy="35" r="0.8" fill="#8B4513" opacity="0.15" />
|
|
</pattern>
|
|
</defs>
|
|
|
|
<!-- ================= BACKGROUND ================= -->
|
|
<!-- Sky -->
|
|
<rect x="0" y="0" width="1000" height="380" fill="url(#skyGrad)" />
|
|
|
|
<!-- Sun & Glow -->
|
|
<circle cx="850" cy="220" r="140" fill="url(#sunGrad)" />
|
|
<circle cx="850" cy="220" r="60" fill="#FFFFFF" opacity="0.8" filter="url(#blurShadow)" />
|
|
|
|
<!-- Distant Birds -->
|
|
<g fill="none" stroke="#886" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" opacity="0.6">
|
|
<path d="M 750,150 Q 760,135 770,150 Q 760,145 750,150" />
|
|
<path d="M 780,120 Q 785,110 790,120 Q 785,115 780,120" />
|
|
<path d="M 720,170 Q 732,150 745,170 Q 732,162 720,170" />
|
|
<path d="M 800,165 Q 810,155 820,165 Q 810,160 800,165" />
|
|
</g>
|
|
|
|
<!-- Clouds -->
|
|
<g fill="#FFFFFF" opacity="0.4" filter="url(#blurShadow)">
|
|
<path d="M 150,120 Q 180,90 220,120 Q 260,100 290,130 Q 320,120 340,150 L 120,150 Q 110,130 150,120 Z" />
|
|
<path d="M 550,80 Q 580,50 620,70 Q 660,60 680,90 Q 710,80 730,110 L 520,110 Q 510,90 550,80 Z" />
|
|
<path d="M 50,220 Q 80,190 120,210 Q 160,200 190,230 L 30,230 Q 20,210 50,220 Z" />
|
|
</g>
|
|
|
|
<!-- Ocean -->
|
|
<rect x="0" y="380" width="1000" height="150" fill="url(#oceanGrad)" />
|
|
|
|
<!-- Sun Reflections on Water -->
|
|
<g fill="#FFF59D" opacity="0.6">
|
|
<rect x="780" y="385" width="140" height="3" rx="1.5" />
|
|
<rect x="800" y="395" width="100" height="3" rx="1.5" />
|
|
<rect x="750" y="405" width="200" height="4" rx="2" />
|
|
<rect x="770" y="418" width="160" height="4" rx="2" opacity="0.4" />
|
|
<rect x="810" y="432" width="80" height="5" rx="2.5" opacity="0.3" />
|
|
<rect x="760" y="448" width="180" height="5" rx="2.5" opacity="0.2" />
|
|
<rect x="790" y="465" width="120" height="6" rx="3" opacity="0.15" />
|
|
<rect x="740" y="485" width="220" height="6" rx="3" opacity="0.1" />
|
|
</g>
|
|
|
|
<!-- Distant Sailboat -->
|
|
<g transform="translate(250, 360)">
|
|
<path d="M 10,20 L 30,20 L 25,25 L 12,25 Z" fill="#444" />
|
|
<path d="M 20,5 L 20,20 L 10,20 Z" fill="#FFF" opacity="0.9" />
|
|
<path d="M 22,3 L 22,20 L 32,20 Z" fill="#E0E0E0" opacity="0.8" />
|
|
</g>
|
|
|
|
<!-- Ocean Waves (Surf lines) -->
|
|
<g stroke="#FFFFFF" fill="none" stroke-linecap="round">
|
|
<path d="M -50,400 Q 50,410 150,400 T 350,400 T 550,400 T 750,400 T 950,400" stroke-width="2" opacity="0.3"/>
|
|
<path d="M 0,430 Q 120,445 240,430 T 480,430 T 720,430 T 960,430 T 1050,430" stroke-width="3" opacity="0.4"/>
|
|
<path d="M -20,460 Q 150,480 300,460 T 600,460 T 900,460 T 1050,460" stroke-width="4" opacity="0.5"/>
|
|
<path d="M 0,500 Q 200,520 400,500 T 800,500 T 1050,500" stroke-width="6" opacity="0.6"/>
|
|
<!-- Foamy bits -->
|
|
<path d="M 380,500 Q 400,490 420,500" stroke-width="8" opacity="0.8"/>
|
|
<path d="M 780,500 Q 800,490 820,500" stroke-width="8" opacity="0.8"/>
|
|
</g>
|
|
|
|
<!-- Sand -->
|
|
<path d="M 0,510 Q 250,480 500,520 T 1000,500 L 1000,700 L 0,700 Z" fill="url(#sandGrad)" />
|
|
<path d="M 0,510 Q 250,480 500,520 T 1000,500 L 1000,700 L 0,700 Z" fill="url(#sandTexture)" />
|
|
|
|
<!-- Shadow under the bike -->
|
|
<ellipse cx="480" cy="625" rx="280" ry="25" fill="#5C4033" opacity="0.4" filter="url(#blurShadow)" />
|
|
|
|
|
|
<!-- ================= BACK LAYER ELEMENTS ================= -->
|
|
<!-- Left Wing (Flapping Up / Cheering) -->
|
|
<g transform="translate(0, 0)">
|
|
<!-- Base shadow/depth wing -->
|
|
<path d="M 320,260 C 260,200 150,110 80,80 C 130,120 180,160 210,210 C 150,130 90,80 50,60 C 120,110 170,160 210,230 C 140,160 70,100 40,90 C 110,150 170,220 230,270 Z" fill="#9BA6B5" opacity="0.8"/>
|
|
<!-- Primary feathers -->
|
|
<path d="M 340,280 Q 200,150 100,50 Q 160,110 240,210 Z" fill="url(#pelicanWhite)" stroke="#D1D9E6" stroke-width="1"/>
|
|
<path d="M 330,285 Q 180,160 80,70 Q 150,130 230,230 Z" fill="url(#pelicanWhite)" stroke="#D1D9E6" stroke-width="1"/>
|
|
<path d="M 320,290 Q 160,170 60,90 Q 140,150 220,250 Z" fill="url(#pelicanWhite)" stroke="#D1D9E6" stroke-width="1"/>
|
|
<path d="M 310,295 Q 140,180 40,110 Q 130,170 210,270 Z" fill="url(#pelicanWhite)" stroke="#D1D9E6" stroke-width="1"/>
|
|
<!-- Wing Coverts (Upper wing overlap) -->
|
|
<path d="M 360,280 C 310,220 220,160 180,150 C 250,190 300,240 330,300 Z" fill="url(#pelicanShade)"/>
|
|
<path d="M 370,290 C 320,240 240,190 190,190 C 260,220 310,260 340,310 Z" fill="#FFFFFF"/>
|
|
</g>
|
|
|
|
<!-- Left Pedal & Crank (Background) -->
|
|
<g>
|
|
<!-- Left Crank -->
|
|
<line x1="450" y1="560" x2="420" y2="500" stroke="#777" stroke-width="10" stroke-linecap="round" />
|
|
<!-- Left Pedal -->
|
|
<rect x="395" y="495" width="50" height="12" rx="4" fill="#333" />
|
|
<rect x="400" y="490" width="40" height="22" rx="2" fill="none" stroke="#999" stroke-width="3" />
|
|
</g>
|
|
|
|
<!-- Pelican Left Leg (Background) -->
|
|
<g>
|
|
<!-- Thigh -->
|
|
<path d="M 360,370 C 390,380 410,430 400,470 C 380,460 350,400 360,370 Z" fill="#A0AEC0" />
|
|
<!-- Lower Leg -->
|
|
<line x1="400" y1="465" x2="420" y2="500" stroke="#E67E22" stroke-width="12" stroke-linecap="round" />
|
|
<!-- Webbed Foot -->
|
|
<path d="M 410,490 Q 430,480 450,495 Q 430,515 405,510 Z" fill="#D35400" />
|
|
</g>
|
|
|
|
|
|
<!-- ================= BICYCLE ================= -->
|
|
<!-- Spokes Pattern / Paths -->
|
|
<g stroke="#999" stroke-width="2" opacity="0.8">
|
|
<!-- Back Wheel Spokes -->
|
|
<path d="M 250,485 L 250,635 M 175,560 L 325,560
|
|
M 197,507 L 303,613 M 197,613 L 303,507
|
|
M 212,495 L 288,625 M 212,625 L 288,495
|
|
M 185,522 L 315,598 M 185,598 L 315,522" />
|
|
<!-- Front Wheel Spokes -->
|
|
<path d="M 700,485 L 700,635 M 625,560 L 775,560
|
|
M 647,507 L 753,613 M 647,613 L 753,507
|
|
M 662,495 L 738,625 M 662,625 L 738,495
|
|
M 635,522 L 765,598 M 635,598 L 765,522" />
|
|
</g>
|
|
|
|
<!-- Wheels (Tires & Rims) -->
|
|
<g fill="none">
|
|
<!-- Back Wheel -->
|
|
<!-- Inner Rim -->
|
|
<circle cx="250" cy="560" r="63" stroke="#A0A0A0" stroke-width="6" />
|
|
<!-- White Wall -->
|
|
<circle cx="250" cy="560" r="67" stroke="#F5F5DC" stroke-width="4" />
|
|
<!-- Outer Tire -->
|
|
<circle cx="250" cy="560" r="75" stroke="#2C3E50" stroke-width="12" />
|
|
|
|
<!-- Front Wheel -->
|
|
<!-- Inner Rim -->
|
|
<circle cx="700" cy="560" r="63" stroke="#A0A0A0" stroke-width="6" />
|
|
<!-- White Wall -->
|
|
<circle cx="700" cy="560" r="67" stroke="#F5F5DC" stroke-width="4" />
|
|
<!-- Outer Tire -->
|
|
<circle cx="700" cy="560" r="75" stroke="#2C3E50" stroke-width="12" />
|
|
</g>
|
|
|
|
<!-- Hubs -->
|
|
<circle cx="250" cy="560" r="12" fill="#CCC" stroke="#888" stroke-width="2" />
|
|
<circle cx="700" cy="560" r="12" fill="#CCC" stroke="#888" stroke-width="2" />
|
|
|
|
<!-- Fenders -->
|
|
<g fill="none" stroke="url(#frameGrad)" stroke-width="10" stroke-linecap="round">
|
|
<!-- Rear Fender -->
|
|
<path d="M 165,560 A 85,85 0 0,1 315,495" />
|
|
<!-- Front Fender -->
|
|
<path d="M 615,560 A 85,85 0 0,1 775,510" />
|
|
</g>
|
|
<!-- Fender struts -->
|
|
<g stroke="#A0A0A0" stroke-width="3" fill="none">
|
|
<line x1="250" y1="560" x2="180" y2="510" />
|
|
<line x1="700" y1="560" x2="760" y2="520" />
|
|
</g>
|
|
|
|
<!-- Chain & Chainring (Back part) -->
|
|
<line x1="250" y1="550" x2="450" y2="540" stroke="#444" stroke-width="4" />
|
|
<line x1="250" y1="570" x2="450" y2="580" stroke="#444" stroke-width="4" />
|
|
<circle cx="250" cy="560" r="10" fill="#666" />
|
|
|
|
<!-- Bicycle Frame -->
|
|
<g fill="none" stroke="url(#frameGrad)" stroke-width="12" stroke-linejoin="round" stroke-linecap="round" filter="url(#shadow)">
|
|
<!-- Chainstay -->
|
|
<line x1="250" y1="560" x2="450" y2="560" />
|
|
<!-- Seatstay -->
|
|
<line x1="250" y1="560" x2="380" y2="400" />
|
|
<!-- Seat Tube -->
|
|
<line x1="450" y1="560" x2="380" y2="400" />
|
|
<!-- Downtube -->
|
|
<line x1="450" y1="560" x2="650" y2="420" />
|
|
<!-- Top Tube (Curved for cruiser style) -->
|
|
<path d="M 380,400 Q 520,390 650,420" />
|
|
<!-- Fork -->
|
|
<line x1="650" y1="420" x2="700" y2="560" />
|
|
</g>
|
|
|
|
<!-- Frame Highlights (Glossy Effect) -->
|
|
<g fill="none" stroke="#FFFFFF" stroke-width="2" opacity="0.5" stroke-linecap="round">
|
|
<line x1="440" y1="555" x2="640" y2="415" />
|
|
<path d="M 390,400 Q 520,395 640,418" />
|
|
<line x1="655" y1="430" x2="695" y2="550" />
|
|
<line x1="260" y1="555" x2="440" y2="555" />
|
|
<line x1="440" y1="550" x2="385" y2="410" />
|
|
<line x1="260" y1="552" x2="375" y2="410" />
|
|
</g>
|
|
|
|
<!-- Seat Post & Saddle -->
|
|
<g>
|
|
<!-- Seat Post -->
|
|
<line x1="380" y1="400" x2="360" y2="350" stroke="#A0A0A0" stroke-width="10" stroke-linecap="round" />
|
|
<!-- Saddle Base -->
|
|
<path d="M 310,350 Q 360,330 390,350 Q 400,360 360,360 Q 330,360 310,350 Z" fill="#5C4033" filter="url(#shadow)" />
|
|
<path d="M 315,350 Q 360,335 385,350" stroke="#8B4513" stroke-width="2" fill="none" />
|
|
<!-- Saddle Springs -->
|
|
<circle cx="330" cy="365" r="4" fill="none" stroke="#A0A0A0" stroke-width="2" />
|
|
<circle cx="340" cy="365" r="4" fill="none" stroke="#A0A0A0" stroke-width="2" />
|
|
</g>
|
|
|
|
<!-- Head Tube & Stem & Handlebars -->
|
|
<g>
|
|
<!-- Head Tube -->
|
|
<line x1="650" y1="420" x2="635" y2="370" stroke="url(#frameGrad)" stroke-width="14" stroke-linecap="round" />
|
|
<!-- Stem -->
|
|
<line x1="635" y1="370" x2="625" y2="330" stroke="#A0A0A0" stroke-width="8" stroke-linecap="round" />
|
|
<line x1="625" y1="330" x2="640" y2="330" stroke="#A0A0A0" stroke-width="8" stroke-linecap="round" />
|
|
<!-- Handlebar Curve -->
|
|
<path d="M 640,330 Q 600,340 590,300 Q 580,260 650,270" fill="none" stroke="#D3D3D3" stroke-width="10" stroke-linecap="round" filter="url(#shadow)" />
|
|
<!-- Handlebar Highlight -->
|
|
<path d="M 640,328 Q 604,338 594,300 Q 584,264 645,268" fill="none" stroke="#FFF" stroke-width="2" opacity="0.6"/>
|
|
<!-- Handlebar Grip -->
|
|
<line x1="635" y1="270" x2="675" y2="275" stroke="#333" stroke-width="14" stroke-linecap="round" />
|
|
<!-- Grip Texture -->
|
|
<line x1="640" y1="265" x2="640" y2="280" stroke="#111" stroke-width="2" />
|
|
<line x1="650" y1="266" x2="650" y2="281" stroke="#111" stroke-width="2" />
|
|
<line x1="660" y1="267" x2="660" y2="283" stroke="#111" stroke-width="2" />
|
|
<line x1="670" y1="268" x2="670" y2="284" stroke="#111" stroke-width="2" />
|
|
</g>
|
|
|
|
|
|
<!-- ================= PELICAN (MAIN) ================= -->
|
|
<!-- Pelican Body -->
|
|
<g filter="url(#shadow)">
|
|
<!-- Main Body Oval / Teardrop -->
|
|
<path d="M 370,345 C 300,320 290,210 390,180 C 470,150 510,250 480,330 C 460,390 390,370 370,345 Z" fill="url(#pelicanWhite)" />
|
|
|
|
<!-- Body Highlights / Feather Textures -->
|
|
<path d="M 360,330 C 310,310 310,230 380,200 C 450,180 480,250 460,310 C 440,360 390,350 360,330 Z" fill="url(#pelicanShade)" opacity="0.4" />
|
|
|
|
<!-- Chest Fluff -->
|
|
<path d="M 450,220 Q 480,250 495,280 Q 510,310 475,340 Q 515,310 480,250 Q 500,230 450,220 Z" fill="#FFFFFF" opacity="0.7"/>
|
|
<path d="M 460,250 Q 500,280 470,320 Q 495,290 460,250 Z" fill="#FFFFFF" opacity="0.9"/>
|
|
</g>
|
|
|
|
<!-- Pelican Neck & Head -->
|
|
<g>
|
|
<!-- Neck -->
|
|
<path d="M 390,190 C 420,80 460,110 490,90 C 510,75 520,70 515,110 C 500,160 450,240 420,210 Z" fill="url(#pelicanWhite)" filter="url(#shadow)" />
|
|
<!-- Neck Shading -->
|
|
<path d="M 400,180 C 430,90 470,115 490,95 C 470,130 440,180 400,180 Z" fill="url(#pelicanShade)" opacity="0.6"/>
|
|
|
|
<!-- Head Tuft / Crest (Majestic) -->
|
|
<path d="M 490,85 Q 460,50 430,60 Q 460,70 450,85 Q 470,75 480,95 Z" fill="#FFF3CD" />
|
|
<path d="M 485,80 Q 450,40 410,50 Q 440,60 430,75 Q 460,65 470,85 Z" fill="#FFFFFF" />
|
|
<path d="M 495,90 Q 470,60 450,65 Q 475,80 485,100 Z" fill="#FFE082" opacity="0.8"/>
|
|
|
|
<!-- Head Base -->
|
|
<path d="M 470,95 C 480,70 520,70 525,100 C 530,120 500,125 480,115 Z" fill="#FFFFFF" />
|
|
|
|
<!-- Eye Mask (Pink/Yellow skin patch) -->
|
|
<path d="M 495,95 C 505,85 520,85 525,98 C 520,108 500,110 495,95 Z" fill="#F8BBD0" />
|
|
<path d="M 500,95 C 508,88 518,88 522,98 C 518,105 505,105 500,95 Z" fill="#FFF9C4" />
|
|
|
|
<!-- Eye -->
|
|
<circle cx="512" cy="96" r="5" fill="#FFFFFF" />
|
|
<circle cx="513" cy="96" r="3.5" fill="#87CEEB" />
|
|
<circle cx="514" cy="96" r="2" fill="#000000" />
|
|
<circle cx="514.5" cy="95" r="0.8" fill="#FFFFFF" /> <!-- Catchlight -->
|
|
</g>
|
|
|
|
<!-- Beak & Pouch (Vivid Centerpiece) -->
|
|
<g filter="url(#shadow)">
|
|
<!-- Pouch (Massive, hanging down) -->
|
|
<path d="M 520,110 C 510,210 590,320 670,270 C 730,230 760,160 765,145 Q 630,135 520,110 Z" fill="url(#pouchGrad)" opacity="0.95" />
|
|
|
|
<!-- Pouch Translucency / Veins / Folds -->
|
|
<path d="M 530,130 Q 560,250 640,260" stroke="#FF5722" stroke-width="2" fill="none" opacity="0.6"/>
|
|
<path d="M 550,135 Q 590,260 670,240" stroke="#E64A19" stroke-width="1.5" fill="none" opacity="0.5"/>
|
|
<path d="M 580,140 Q 630,260 700,210" stroke="#D84315" stroke-width="1" fill="none" opacity="0.4"/>
|
|
<path d="M 610,140 Q 670,240 730,180" stroke="#BF360C" stroke-width="1" fill="none" opacity="0.3"/>
|
|
|
|
<!-- Pouch Highlight (Sun glowing through) -->
|
|
<path d="M 600,250 C 670,250 730,200 755,145 Q 680,180 600,250 Z" fill="#FFF59D" opacity="0.3" />
|
|
|
|
<!-- Upper Mandible (Beak) -->
|
|
<path d="M 515,100 Q 640,115 770,135 Q 780,140 775,145 L 515,115 Z" fill="url(#beakGrad)" />
|
|
<!-- Beak Hook (Nail) -->
|
|
<path d="M 770,135 Q 785,138 780,150 Q 770,145 770,135 Z" fill="#9E9E9E" />
|
|
<!-- Beak Central Ridge Line -->
|
|
<path d="M 520,105 Q 640,122 770,140" fill="none" stroke="#F57F17" stroke-width="1.5" opacity="0.7"/>
|
|
<!-- Nostril -->
|
|
<ellipse cx="535" cy="108" rx="4" ry="1.5" fill="#5D4037" transform="rotate(-5 535 108)" />
|
|
<!-- Smile line separating top beak and pouch -->
|
|
<path d="M 515,115 Q 640,125 775,145" fill="none" stroke="#D84315" stroke-width="2" />
|
|
</g>
|
|
|
|
<!-- Right Wing (Holding Handlebar) -->
|
|
<g filter="url(#shadow)">
|
|
<!-- Shoulder/Upper Arm -->
|
|
<path d="M 390,230 C 430,250 460,290 465,310 C 500,310 580,290 640,280 C 645,290 635,300 620,310 C 550,330 450,350 400,290 C 370,270 370,240 390,230 Z" fill="url(#pelicanWhite)" />
|
|
|
|
<!-- Feather Layers on Wing (Vivid & Realistic) -->
|
|
<!-- Primary Flight Feathers wrapping grip -->
|
|
<path d="M 600,285 Q 640,280 660,295 Q 620,305 590,300 Z" fill="#E2E8F0" stroke="#CBD5E1" stroke-width="1"/>
|
|
<path d="M 580,290 Q 630,285 650,305 Q 610,315 570,305 Z" fill="#F1F5F9" stroke="#CBD5E1" stroke-width="1"/>
|
|
<path d="M 560,295 Q 620,290 640,315 Q 590,325 550,315 Z" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="1"/>
|
|
|
|
<!-- Secondary Feathers draping down -->
|
|
<path d="M 450,305 Q 500,340 550,320 Q 480,350 430,310 Z" fill="url(#pelicanShade)"/>
|
|
<path d="M 430,290 Q 480,340 530,320 Q 460,350 410,295 Z" fill="#FFFFFF"/>
|
|
<path d="M 410,270 Q 460,330 510,310 Q 440,340 390,280 Z" fill="#E2E8F0"/>
|
|
|
|
<!-- Coverts (Shoulder fluff) -->
|
|
<path d="M 380,240 C 420,250 450,280 460,300 C 420,290 390,260 375,250 Z" fill="#FFFFFF"/>
|
|
<path d="M 390,245 C 425,260 450,290 455,305 C 425,285 400,265 385,255 Z" fill="#F8FAFC"/>
|
|
</g>
|
|
|
|
|
|
<!-- ================= BIKE FRONT PARTS ================= -->
|
|
<g>
|
|
<!-- Chainring (Front Gear) -->
|
|
<circle cx="450" cy="560" r="28" fill="#555" stroke="#333" stroke-width="3" />
|
|
<circle cx="450" cy="560" r="20" fill="none" stroke="#999" stroke-width="2" stroke-dasharray="4,4" />
|
|
<!-- Chainring spokes -->
|
|
<line x1="450" y1="532" x2="450" y2="588" stroke="#999" stroke-width="3" />
|
|
<line x1="422" y1="560" x2="478" y2="560" stroke="#999" stroke-width="3" />
|
|
<line x1="430" y1="540" x2="470" y2="580" stroke="#999" stroke-width="3" />
|
|
<line x1="430" y1="580" x2="470" y2="540" stroke="#999" stroke-width="3" />
|
|
|
|
<!-- Chain Cover (Cruiser style element) -->
|
|
<path d="M 250,545 L 450,540 A 25,25 0 0,1 450,580 L 250,575 A 15,15 0 0,1 250,545 Z" fill="url(#frameGrad)" opacity="0.9" stroke="#B71C1C" stroke-width="2"/>
|
|
<path d="M 250,550 L 445,545" stroke="#FFF" stroke-width="1.5" opacity="0.5"/> <!-- Cover highlight -->
|
|
|
|
<!-- Right Crank -->
|
|
<line x1="450" y1="560" x2="480" y2="615" stroke="#BDBDBD" stroke-width="10" stroke-linecap="round" filter="url(#shadow)"/>
|
|
<line x1="450" y1="560" x2="480" y2="615" stroke="#FFF" stroke-width="2" stroke-linecap="round" opacity="0.7"/> <!-- Crank highlight -->
|
|
|
|
<!-- Right Pedal Base -->
|
|
<rect x="455" y="610" width="50" height="14" rx="4" fill="#333" filter="url(#shadow)"/>
|
|
<rect x="460" y="605" width="40" height="24" rx="2" fill="none" stroke="#999" stroke-width="3" />
|
|
</g>
|
|
|
|
<!-- ================= PELICAN RIGHT LEG ================= -->
|
|
<g filter="url(#shadow)">
|
|
<!-- Thigh (Foreground) -->
|
|
<path d="M 390,340 C 430,360 450,420 440,460 C 410,450 380,390 390,340 Z" fill="url(#pelicanShade)" />
|
|
<!-- Fluff overlapping thigh -->
|
|
<path d="M 380,340 C 420,360 440,400 430,420 C 400,410 370,360 380,340 Z" fill="#FFFFFF" />
|
|
|
|
<!-- Lower Leg -->
|
|
<line x1="435" y1="455" x2="475" y2="610" stroke="#F39C12" stroke-width="14" stroke-linecap="round" />
|
|
<!-- Leg Highlight -->
|
|
<line x1="433" y1="455" x2="473" y2="610" stroke="#F1C40F" stroke-width="4" stroke-linecap="round" />
|
|
<!-- Leg Joint (Knee/Ankle scale detail) -->
|
|
<line x1="430" y1="455" x2="445" y2="455" stroke="#D35400" stroke-width="3" />
|
|
<line x1="440" y1="475" x2="455" y2="475" stroke="#D35400" stroke-width="3" opacity="0.6"/>
|
|
<line x1="450" y1="515" x2="465" y2="515" stroke="#D35400" stroke-width="3" opacity="0.6"/>
|
|
|
|
<!-- Right Webbed Foot (Wrapping the pedal) -->
|
|
<path d="M 465,600 Q 490,590 515,605 Q 490,630 460,620 Z" fill="#E67E22" />
|
|
<path d="M 470,605 Q 490,595 510,605 Q 490,620 465,615 Z" fill="#F39C12" />
|
|
<!-- Toe nails / web lines -->
|
|
<path d="M 475,605 L 515,605" stroke="#D35400" stroke-width="2" />
|
|
<path d="M 470,610 L 505,615" stroke="#D35400" stroke-width="2" />
|
|
</g>
|
|
|
|
|
|
<!-- ================= FOREGROUND / VIVID DETAILS ================= -->
|
|
<!-- Palm Tree Fronds (Top Left Corner) -->
|
|
<g filter="url(#shadow)">
|
|
<!-- Branch 1 -->
|
|
<path d="M -20,-20 Q 150,50 300,120" fill="none" stroke="#556B2F" stroke-width="6" stroke-linecap="round"/>
|
|
<path d="M 20,0 Q 80,40 60,80 Q 90,40 100,20 Z" fill="#4CAF50" />
|
|
<path d="M 60,20 Q 120,60 100,100 Q 130,60 140,40 Z" fill="#388E3C" />
|
|
<path d="M 100,40 Q 160,80 140,120 Q 170,80 180,60 Z" fill="#4CAF50" />
|
|
<path d="M 140,60 Q 200,100 180,140 Q 210,100 220,80 Z" fill="#388E3C" />
|
|
<path d="M 180,80 Q 240,120 220,160 Q 250,120 260,100 Z" fill="#4CAF50" />
|
|
<path d="M 220,100 Q 280,140 260,180 Q 290,140 300,120 Z" fill="#388E3C" />
|
|
|
|
<!-- Branch 2 -->
|
|
<path d="M -20,20 Q 80,120 180,250" fill="none" stroke="#556B2F" stroke-width="5" stroke-linecap="round"/>
|
|
<path d="M 0,40 Q 40,100 20,130 Q 60,90 80,70 Z" fill="#2E7D32" />
|
|
<path d="M 30,70 Q 70,130 50,160 Q 90,120 110,100 Z" fill="#4CAF50" />
|
|
<path d="M 60,100 Q 100,160 80,190 Q 120,150 140,130 Z" fill="#2E7D32" />
|
|
<path d="M 90,130 Q 130,190 110,220 Q 150,180 170,160 Z" fill="#4CAF50" />
|
|
<path d="M 120,160 Q 160,220 140,250 Q 180,210 200,190 Z" fill="#2E7D32" />
|
|
</g>
|
|
|
|
<!-- Starfish on the beach (Bottom Right) -->
|
|
<g transform="translate(850, 620) rotate(15)" filter="url(#shadow)">
|
|
<polygon points="0,-20 5,-5 20,-5 8,5 12,20 0,10 -12,20 -8,5 -20,-5 -5,-5" fill="#FF7043" stroke="#E64A19" stroke-width="1.5" stroke-linejoin="round"/>
|
|
<!-- Starfish bumps -->
|
|
<circle cx="0" cy="0" r="1.5" fill="#FFF" opacity="0.6"/>
|
|
<circle cx="0" cy="-10" r="1" fill="#FFF" opacity="0.6"/>
|
|
<circle cx="10" cy="-3" r="1" fill="#FFF" opacity="0.6"/>
|
|
<circle cx="-10" cy="-3" r="1" fill="#FFF" opacity="0.6"/>
|
|
<circle cx="5" cy="10" r="1" fill="#FFF" opacity="0.6"/>
|
|
<circle cx="-5" cy="10" r="1" fill="#FFF" opacity="0.6"/>
|
|
</g>
|
|
|
|
<!-- Seashell (Bottom Left) -->
|
|
<g transform="translate(100, 640) rotate(-20)" filter="url(#shadow)">
|
|
<path d="M 0,0 C 15,-15 25,-10 30,0 C 25,10 15,15 0,0 Z" fill="#FFCCBC" stroke="#D84315" stroke-width="1" />
|
|
<!-- Shell ridges -->
|
|
<path d="M 5,-2 L 25,-2" stroke="#D84315" stroke-width="0.5" />
|
|
<path d="M 5,2 L 25,2" stroke="#D84315" stroke-width="0.5" />
|
|
<path d="M 8,-5 L 22,-5" stroke="#D84315" stroke-width="0.5" />
|
|
<path d="M 8,5 L 22,5" stroke="#D84315" stroke-width="0.5" />
|
|
</g>
|
|
|
|
<!-- Sea Grass / Reeds on the beach -->
|
|
<g stroke="#689F38" fill="none" stroke-linecap="round">
|
|
<path d="M 50,680 Q 40,650 60,630" stroke-width="3" />
|
|
<path d="M 55,680 Q 60,650 45,640" stroke-width="2" />
|
|
<path d="M 60,680 Q 75,660 70,635" stroke-width="2.5" />
|
|
|
|
<path d="M 920,680 Q 900,650 910,620" stroke-width="3" />
|
|
<path d="M 930,680 Q 940,660 950,630" stroke-width="2.5" />
|
|
<path d="M 940,680 Q 960,650 975,640" stroke-width="2" />
|
|
</g>
|
|
|
|
<!-- Ambient Light Overlay (Warm Golden Hour Glow) -->
|
|
<rect x="0" y="0" width="1000" height="700" fill="#FF9800" opacity="0.05" style="mix-blend-mode: overlay;" pointer-events="none"/>
|
|
</svg> |