Reorganize artifacts by model and harness
This commit is contained in:
1 parent
4027ba94c2
commit
a12017f31e
71 files changed
+95
-48
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,370 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="800" viewBox="0 0 1200 800" role="img" aria-labelledby="t">
|
||||
<title id="t">海边骑行的鹈鹕 · A pelican riding a bicycle by the sea</title>
|
||||
<defs>
|
||||
<linearGradient id="skyG" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="0" y2="420">
|
||||
<stop offset="0" stop-color="#2b7bc0"/>
|
||||
<stop offset=".45" stop-color="#7db9e2"/>
|
||||
<stop offset=".75" stop-color="#cfe7ef"/>
|
||||
<stop offset="1" stop-color="#ffe7c2"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="sunG" gradientUnits="userSpaceOnUse" cx="980" cy="128" r="150">
|
||||
<stop offset="0" stop-color="#fff9e0" stop-opacity=".95"/>
|
||||
<stop offset=".35" stop-color="#ffeab0" stop-opacity=".55"/>
|
||||
<stop offset="1" stop-color="#ffd98a" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="seaG" gradientUnits="userSpaceOnUse" x1="0" y1="418" x2="0" y2="612">
|
||||
<stop offset="0" stop-color="#0d5c86"/>
|
||||
<stop offset=".38" stop-color="#15799d"/>
|
||||
<stop offset=".7" stop-color="#2ba3ad"/>
|
||||
<stop offset="1" stop-color="#79dbc9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="wetG" gradientUnits="userSpaceOnUse" x1="0" y1="596" x2="0" y2="800">
|
||||
<stop offset="0" stop-color="#ecd8b2"/>
|
||||
<stop offset=".45" stop-color="#d9b88c"/>
|
||||
<stop offset="1" stop-color="#c69d70"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="frameG" gradientUnits="userSpaceOnUse" x1="420" y1="440" x2="770" y2="620">
|
||||
<stop offset="0" stop-color="#f25549"/>
|
||||
<stop offset=".55" stop-color="#d63a2e"/>
|
||||
<stop offset="1" stop-color="#aa241c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="seatG" gradientUnits="userSpaceOnUse" x1="474" y1="414" x2="550" y2="434">
|
||||
<stop offset="0" stop-color="#8a5a34"/>
|
||||
<stop offset="1" stop-color="#553318"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="pelB" gradientUnits="userSpaceOnUse" x1="450" y1="430" x2="660" y2="220">
|
||||
<stop offset="0" stop-color="#cfc4b5"/>
|
||||
<stop offset=".45" stop-color="#efe9dd"/>
|
||||
<stop offset="1" stop-color="#fffdf4"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="pouchG" gradientUnits="userSpaceOnUse" x1="720" y1="225" x2="790" y2="320">
|
||||
<stop offset="0" stop-color="#ffc987"/>
|
||||
<stop offset=".55" stop-color="#f99b44"/>
|
||||
<stop offset="1" stop-color="#ef7a26"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="billG" gradientUnits="userSpaceOnUse" x1="710" y1="190" x2="850" y2="260">
|
||||
<stop offset="0" stop-color="#f6cf9c"/>
|
||||
<stop offset="1" stop-color="#db8e4e"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="scarfG" gradientUnits="userSpaceOnUse" x1="500" y1="280" x2="600" y2="312">
|
||||
<stop offset="0" stop-color="#f25549"/>
|
||||
<stop offset="1" stop-color="#a02020"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="reflFade" gradientUnits="userSpaceOnUse" x1="0" y1="678" x2="0" y2="802">
|
||||
<stop offset="0" stop-color="#fff" stop-opacity=".55"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="vig" cx=".5" cy=".45" r=".75">
|
||||
<stop offset="0" stop-color="#0a1622" stop-opacity="0"/>
|
||||
<stop offset=".78" stop-color="#0a1622" stop-opacity="0"/>
|
||||
<stop offset="1" stop-color="#0a1622" stop-opacity=".22"/>
|
||||
</radialGradient>
|
||||
<mask id="reflMask">
|
||||
<rect x="250" y="678" width="760" height="130" fill="url(#reflFade)"/>
|
||||
</mask>
|
||||
<filter id="blur1"><feGaussianBlur stdDeviation="1"/></filter>
|
||||
<filter id="blur2"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
<filter id="blur4"><feGaussianBlur stdDeviation="4"/></filter>
|
||||
<filter id="blur6"><feGaussianBlur stdDeviation="6"/></filter>
|
||||
<filter id="ripple" x="-15%" y="-15%" width="130%" height="130%">
|
||||
<feTurbulence type="fractalNoise" baseFrequency="0.011 0.13" numOctaves="1" seed="7" result="n"/>
|
||||
<feDisplacementMap in="SourceGraphic" in2="n" scale="12" xChannelSelector="R" yChannelSelector="G"/>
|
||||
<feGaussianBlur stdDeviation="1.4"/>
|
||||
</filter>
|
||||
<filter id="grain">
|
||||
<feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="2" seed="3"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09 0.09 0.09 0 -0.02"/>
|
||||
</filter>
|
||||
<g id="wheel">
|
||||
<circle r="97" fill="none" stroke="#23262b" stroke-width="13"/>
|
||||
<circle r="97" fill="none" stroke="#3a3e45" stroke-width="2.5" stroke-dasharray="6 9" opacity=".55"/>
|
||||
<circle r="90" fill="none" stroke="#121417" stroke-width="1.6" opacity=".5"/>
|
||||
<circle r="84" fill="none" stroke="#ccd4da" stroke-width="5"/>
|
||||
<circle r="80" fill="none" stroke="#8d959c" stroke-width="1.2" opacity=".7"/>
|
||||
<g stroke="#b9c2c9" stroke-width="2" opacity=".9">
|
||||
<line x1="0" y1="-81" x2="0" y2="81"/>
|
||||
<line x1="0" y1="-81" x2="0" y2="81" transform="rotate(25.7)"/>
|
||||
<line x1="0" y1="-81" x2="0" y2="81" transform="rotate(51.4)"/>
|
||||
<line x1="0" y1="-81" x2="0" y2="81" transform="rotate(77.1)"/>
|
||||
<line x1="0" y1="-81" x2="0" y2="81" transform="rotate(102.9)"/>
|
||||
<line x1="0" y1="-81" x2="0" y2="81" transform="rotate(128.6)"/>
|
||||
<line x1="0" y1="-81" x2="0" y2="81" transform="rotate(154.3)"/>
|
||||
<line x1="0" y1="-84" x2="0" y2="-75" stroke="#6a7077" stroke-width="3.5"/>
|
||||
<animateTransform attributeName="transform" type="rotate" from="0" to="360" dur="0.85s" repeatCount="indefinite"/>
|
||||
</g>
|
||||
<circle r="11" fill="#9aa2a9" stroke="#5d646b" stroke-width="2"/>
|
||||
<circle r="4.5" fill="#3a3f44"/>
|
||||
</g>
|
||||
<g id="gull" fill="none" stroke="#46566a" stroke-width="3.5" stroke-linecap="round">
|
||||
<path d="M-16,0 Q-8,-9 0,-1 Q8,-9 16,0"/>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<!-- sky -->
|
||||
<rect x="0" y="0" width="1200" height="424" fill="url(#skyG)"/>
|
||||
<circle cx="980" cy="128" r="150" fill="url(#sunG)"/>
|
||||
<ellipse cx="980" cy="128" rx="95" ry="9" fill="#fff6d2" opacity=".45" filter="url(#blur4)"/>
|
||||
<circle cx="980" cy="128" r="33" fill="#fffdf0"/>
|
||||
<g filter="url(#blur4)" opacity=".95">
|
||||
<g>
|
||||
<ellipse cx="210" cy="108" rx="58" ry="26" fill="#fff"/>
|
||||
<ellipse cx="262" cy="116" rx="44" ry="20" fill="#fff"/>
|
||||
<ellipse cx="156" cy="118" rx="40" ry="18" fill="#fff"/>
|
||||
<ellipse cx="210" cy="128" rx="78" ry="12" fill="#dde8f0"/>
|
||||
<animateTransform attributeName="transform" type="translate" values="0 0; 26 0; 0 0" dur="56s" repeatCount="indefinite"/>
|
||||
</g>
|
||||
<g>
|
||||
<ellipse cx="668" cy="84" rx="46" ry="20" fill="#fff"/>
|
||||
<ellipse cx="710" cy="92" rx="34" ry="15" fill="#fff"/>
|
||||
<ellipse cx="630" cy="92" rx="30" ry="13" fill="#fff"/>
|
||||
<ellipse cx="668" cy="99" rx="60" ry="9" fill="#dde8f0"/>
|
||||
<animateTransform attributeName="transform" type="translate" values="0 0; -20 0; 0 0" dur="64s" repeatCount="indefinite"/>
|
||||
</g>
|
||||
</g>
|
||||
<ellipse cx="480" cy="388" rx="60" ry="8" fill="#fff" opacity=".32" filter="url(#blur2)"/>
|
||||
<ellipse cx="545" cy="398" rx="40" ry="6" fill="#fff" opacity=".22" filter="url(#blur2)"/>
|
||||
<g>
|
||||
<use href="#gull" transform="translate(262 160)" opacity=".85"/>
|
||||
<use href="#gull" transform="translate(330 128) scale(.7) rotate(-6)" opacity=".7"/>
|
||||
<use href="#gull" transform="translate(208 196) scale(.55) rotate(5)" opacity=".6"/>
|
||||
<animateTransform attributeName="transform" type="translate" values="0 0; 0 -5; 0 0" dur="4.6s" repeatCount="indefinite"/>
|
||||
</g>
|
||||
<path d="M0,420 L0,396 C50,388 110,386 170,394 C200,398 220,406 232,420 Z" fill="#93aec4" opacity=".5" filter="url(#blur2)"/>
|
||||
<rect x="0" y="419" width="1200" height="2" fill="#f6efd8" opacity=".45"/>
|
||||
|
||||
<!-- sea -->
|
||||
<path d="M0,420 L1200,420 L1200,598 C1040,606 880,612 640,606 C420,612 200,610 0,618 Z" fill="url(#seaG)"/>
|
||||
<path d="M0,520 C180,510 350,526 560,518 C780,510 990,524 1200,514 L1200,560 C990,568 780,556 560,562 C350,570 180,556 0,564 Z" fill="#3db4b2" opacity=".45"/>
|
||||
<path d="M0,564 C160,556 330,570 540,562 C760,554 980,568 1200,558 L1200,596 C1040,604 880,608 640,602 C420,608 200,606 0,614 Z" fill="#6fd2c4" opacity=".55"/>
|
||||
<path d="M0,492 C200,484 420,498 640,490 C860,482 1040,496 1200,488" fill="none" stroke="#e9fbf6" stroke-width="2" opacity=".35"/>
|
||||
<path d="M0,536 C220,528 440,542 660,534 C880,526 1060,540 1200,532" fill="none" stroke="#e9fbf6" stroke-width="2" opacity=".28"/>
|
||||
<path d="M0,578 C240,570 460,584 680,576 C900,568 1080,582 1200,574" fill="none" stroke="#f2fdf9" stroke-width="2" opacity=".25"/>
|
||||
<g stroke="#fff6d0" stroke-linecap="round">
|
||||
<line x1="944" y1="436" x2="1006" y2="436" stroke-width="3" opacity=".85"/>
|
||||
<line x1="930" y1="448" x2="1022" y2="448" stroke-width="3.5" opacity=".7"/>
|
||||
<line x1="952" y1="460" x2="1000" y2="460" stroke-width="2.5" opacity=".8"/>
|
||||
<line x1="926" y1="474" x2="1030" y2="474" stroke-width="3.5" opacity=".6"/>
|
||||
<line x1="946" y1="488" x2="1008" y2="488" stroke-width="3" opacity=".7"/>
|
||||
<line x1="936" y1="503" x2="1018" y2="503" stroke-width="3.5" opacity=".55"/>
|
||||
<line x1="956" y1="517" x2="998" y2="517" stroke-width="2.5" opacity=".65"/>
|
||||
<line x1="930" y1="532" x2="1024" y2="532" stroke-width="3.5" opacity=".5"/>
|
||||
<line x1="948" y1="548" x2="1010" y2="548" stroke-width="3" opacity=".55"/>
|
||||
<line x1="938" y1="564" x2="1020" y2="564" stroke-width="3.5" opacity=".45"/>
|
||||
<line x1="956" y1="580" x2="1002" y2="580" stroke-width="2.5" opacity=".5"/>
|
||||
<line x1="944" y1="594" x2="1014" y2="594" stroke-width="3" opacity=".4"/>
|
||||
<animate attributeName="opacity" values=".75;1;.75" dur="3.6s" repeatCount="indefinite"/>
|
||||
</g>
|
||||
<g opacity=".9">
|
||||
<path d="M1076,444 Q1090,452 1106,444 L1102,438 L1080,438 Z" fill="#3e4a55"/>
|
||||
<line x1="1091" y1="438" x2="1091" y2="404" stroke="#2e3840" stroke-width="1.5"/>
|
||||
<path d="M1091,406 L1091,436 L1072,436 Z" fill="#f8f3e6"/>
|
||||
<path d="M1094,410 L1094,436 L1110,438 Z" fill="#eee6d4"/>
|
||||
<line x1="1078" y1="456" x2="1104" y2="456" stroke="#3e4a55" stroke-width="3" opacity=".2" filter="url(#blur1)"/>
|
||||
</g>
|
||||
|
||||
<!-- beach -->
|
||||
<path d="M0,614 C220,608 440,610 660,602 C880,596 1050,600 1200,594 L1200,800 L0,800 Z" fill="url(#wetG)"/>
|
||||
<ellipse cx="600" cy="660" rx="560" ry="36" fill="#fff" opacity=".13" filter="url(#blur6)"/>
|
||||
<g stroke="#fff" stroke-linecap="round" filter="url(#blur2)">
|
||||
<line x1="180" y1="700" x2="500" y2="700" stroke-width="3" opacity=".12"/>
|
||||
<line x1="560" y1="724" x2="940" y2="724" stroke-width="3" opacity=".1"/>
|
||||
<line x1="300" y1="760" x2="580" y2="760" stroke-width="3" opacity=".08"/>
|
||||
</g>
|
||||
<path d="M0,613 Q50,605 100,611 Q150,616 200,609 Q250,601 300,608 Q350,614 400,607 Q450,599 500,605 Q550,612 600,603 Q650,596 700,601 Q750,608 800,599 Q850,592 900,598 Q950,605 1000,597 Q1050,590 1100,596 Q1150,602 1200,594" fill="none" stroke="#ffffff" stroke-width="6.5" opacity=".85" filter="url(#blur1)"/>
|
||||
<path d="M0,601 Q50,593 100,599 Q150,604 200,597 Q250,589 300,596 Q350,602 400,595 Q450,587 500,593 Q550,600 600,591 Q650,584 700,589 Q750,596 800,587 Q850,580 900,586 Q950,593 1000,585 Q1050,578 1100,584 Q1150,590 1200,582" fill="none" stroke="#ffffff" stroke-width="3" opacity=".4" stroke-dasharray="18 12" filter="url(#blur1)"/>
|
||||
<path d="M0,587 Q60,581 120,585 Q180,589 240,583 Q300,577 360,582 Q420,587 480,581 Q540,575 600,579 Q660,584 720,578 Q780,572 840,577 Q900,582 960,576 Q1020,570 1080,575 Q1140,580 1200,574" fill="none" stroke="#ffffff" stroke-width="2.5" opacity=".25" stroke-dasharray="8 14"/>
|
||||
<path d="M40,622 C120,616 210,624 300,620 C380,617 430,626 470,634 C430,648 340,656 250,652 C160,648 80,640 40,630 Z" fill="#ffffff" opacity=".18" filter="url(#blur2)"/>
|
||||
<path d="M0,800 L0,758 C180,742 400,768 640,780 C880,792 1060,786 1200,772 L1200,800 Z" fill="#f0d6a4"/>
|
||||
<path d="M0,758 C180,742 400,768 640,780 C880,792 1060,786 1200,772" fill="none" stroke="#f9e7bd" stroke-width="2" opacity=".6"/>
|
||||
<g stroke="#fff3cf" stroke-linecap="round" filter="url(#blur1)">
|
||||
<line x1="950" y1="616" x2="1008" y2="616" stroke-width="3" opacity=".25"/>
|
||||
<line x1="940" y1="634" x2="1016" y2="634" stroke-width="3" opacity=".16"/>
|
||||
<line x1="958" y1="652" x2="1000" y2="652" stroke-width="3" opacity=".1"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M1000,720 L1007,735 L1022,737 L1010,747 L1014,762 L1000,753 L986,762 L990,747 L978,737 L993,735 Z" fill="#e8845a" stroke="#c4663e" stroke-width="1.5" stroke-linejoin="round" transform="rotate(-15 1000 742)"/>
|
||||
<circle cx="1000" cy="742" r="1.6" fill="#c4663e"/>
|
||||
<circle cx="1006" cy="733" r="1.2" fill="#c4663e"/>
|
||||
<circle cx="994" cy="733" r="1.2" fill="#c4663e"/>
|
||||
<path d="M156,768 Q170,734 184,768 Q170,778 156,768 Z" fill="#f2e3c8" stroke="#c9ab7e" stroke-width="1.2"/>
|
||||
<path d="M170,774 L162,748 M170,774 L170,742 M170,774 L178,748" stroke="#c9ab7e" stroke-width="1" opacity=".8" fill="none"/>
|
||||
<ellipse cx="240" cy="712" rx="5" ry="3" fill="#b59a78" opacity=".8"/>
|
||||
<ellipse cx="268" cy="716" rx="3" ry="2" fill="#a98e6c" opacity=".8"/>
|
||||
<ellipse cx="1105" cy="756" rx="6" ry="4" fill="#b59a78" opacity=".8"/>
|
||||
<ellipse cx="1130" cy="762" rx="4" ry="2.5" fill="#a98e6c" opacity=".8"/>
|
||||
<ellipse cx="420" cy="752" rx="4" ry="2.5" fill="#b59a78" opacity=".7"/>
|
||||
</g>
|
||||
<rect x="0" y="600" width="1200" height="200" fill="#5b4424" filter="url(#grain)" opacity=".5"/>
|
||||
<path d="M-20,708 C140,702 300,692 424,681" fill="none" stroke="#a8835a" stroke-width="8" opacity=".45"/>
|
||||
<path d="M-20,708 C140,702 300,692 424,681" fill="none" stroke="#c4a47b" stroke-width="2.5" opacity=".7" stroke-dasharray="10 6"/>
|
||||
<g stroke="#fff" stroke-linecap="round">
|
||||
<line x1="252" y1="318" x2="348" y2="318" stroke-width="4" opacity=".15"/>
|
||||
<line x1="232" y1="352" x2="306" y2="352" stroke-width="3" opacity=".12"/>
|
||||
<line x1="270" y1="290" x2="330" y2="290" stroke-width="3" opacity=".1"/>
|
||||
</g>
|
||||
<ellipse cx="577" cy="683" rx="250" ry="13" fill="#4a3520" opacity=".28" filter="url(#blur6)"/>
|
||||
<ellipse cx="410" cy="682" rx="55" ry="8" fill="#3c2c1a" opacity=".3" filter="url(#blur4)"/>
|
||||
<ellipse cx="748" cy="682" rx="55" ry="8" fill="#3c2c1a" opacity=".3" filter="url(#blur4)"/>
|
||||
|
||||
<g id="subject">
|
||||
<!-- far side: pedal, leg, crank -->
|
||||
<rect x="511" y="511" width="34" height="10" rx="3" fill="#1a1d21"/>
|
||||
<ellipse cx="522" cy="428" rx="14" ry="22" fill="#d8cec0" transform="rotate(8 522 428)"/>
|
||||
<path d="M521,452 Q513,478 524,502" fill="none" stroke="#c97a2e" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M506,512 L527,498 L551,510 Q528,518 506,512 Z" fill="#cd7e30" stroke="#95571c" stroke-width=".8"/>
|
||||
<path d="M524,502 L540,509 M520,505 L532,511" stroke="#95571c" stroke-width="1" opacity=".7"/>
|
||||
<line x1="565" y1="582" x2="528" y2="516" stroke="#1d2125" stroke-width="8" stroke-linecap="round"/>
|
||||
<!-- wheels -->
|
||||
<use href="#wheel" transform="translate(425 578)"/>
|
||||
<use href="#wheel" transform="translate(762 578)"/>
|
||||
<circle cx="425" cy="578" r="15" fill="none" stroke="#6a7177" stroke-width="6"/>
|
||||
<circle cx="425" cy="578" r="18" fill="none" stroke="#545a60" stroke-width="2" stroke-dasharray="3 3"/>
|
||||
<!-- fenders -->
|
||||
<path d="M320.7,550.1 A108 108 0 0 1 529.3,550.1" fill="none" stroke="#f6efe0" stroke-width="11"/>
|
||||
<path d="M668.5,524 A108 108 0 0 1 863.5,541.1" fill="none" stroke="#f6efe0" stroke-width="11"/>
|
||||
<!-- chain -->
|
||||
<line x1="567" y1="553" x2="427" y2="564" stroke="#383d41" stroke-width="4" stroke-dasharray="5 3" opacity=".9"/>
|
||||
<path d="M427,592 C470,603 520,609 566,611" fill="none" stroke="#383d41" stroke-width="4" stroke-dasharray="5 3" opacity=".9"/>
|
||||
<!-- frame -->
|
||||
<line x1="565" y1="582" x2="425" y2="578" stroke="url(#frameG)" stroke-width="9" stroke-linecap="round"/>
|
||||
<line x1="518" y1="455" x2="427" y2="576" stroke="url(#frameG)" stroke-width="8" stroke-linecap="round"/>
|
||||
<line x1="565" y1="582" x2="518" y2="452" stroke="url(#frameG)" stroke-width="10" stroke-linecap="round"/>
|
||||
<path d="M736,486 C678,524 618,560 567,582" fill="none" stroke="url(#frameG)" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M519,454 C596,434 668,432 724,448" fill="none" stroke="url(#frameG)" stroke-width="10" stroke-linecap="round"/>
|
||||
<line x1="722" y1="442" x2="739" y2="489" stroke="#b32a20" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M739,489 C748,520 756,548 762,578" fill="none" stroke="url(#frameG)" stroke-width="9" stroke-linecap="round"/>
|
||||
<path d="M521,450 C596,430 668,428 722,444" fill="none" stroke="#ffd9c9" stroke-width="2.5" opacity=".35"/>
|
||||
<path d="M733,488 C676,525 620,560 570,581" fill="none" stroke="#ffd9c9" stroke-width="2.5" opacity=".3"/>
|
||||
<circle cx="739" cy="489" r="5" fill="#8a8f94"/>
|
||||
<!-- saddle, stem, bars -->
|
||||
<line x1="518" y1="452" x2="512" y2="430" stroke="#c9ced3" stroke-width="7"/>
|
||||
<circle cx="488" cy="436" r="4" fill="none" stroke="#b9bec3" stroke-width="2.5"/>
|
||||
<circle cx="506" cy="438" r="4" fill="none" stroke="#b9bec3" stroke-width="2.5"/>
|
||||
<path d="M474,428 C478,418 496,414 516,416 C536,414 548,418 550,424 C540,432 520,434 504,433 C490,433 478,432 474,428 Z" fill="url(#seatG)" stroke="#4a2d17" stroke-width="1"/>
|
||||
<line x1="724" y1="444" x2="714" y2="409" stroke="#2e3338" stroke-width="8" stroke-linecap="round"/>
|
||||
<path d="M714,409 C736,390 724,382 700,390 C690,394 686,398 684,402" fill="none" stroke="#d7dce0" stroke-width="7" stroke-linecap="round"/>
|
||||
<path d="M696,392 C688,396 685,399 684,403" fill="none" stroke="#6b4226" stroke-width="9" stroke-linecap="round"/>
|
||||
<circle cx="719" cy="396" r="5" fill="#e2c45a" stroke="#9a7c28" stroke-width="1"/>
|
||||
<circle cx="719" cy="396" r="1.2" fill="#9a7c28"/>
|
||||
<!-- basket + fish -->
|
||||
<line x1="738" y1="478" x2="772" y2="472" stroke="#565b60" stroke-width="4"/>
|
||||
<path d="M800,420 C802,408 810,398 820,402 C814,408 812,414 812,420 Z" fill="#7fa8c4" stroke="#54748c" stroke-width="1"/>
|
||||
<ellipse cx="760" cy="414" rx="10" ry="7" fill="#8fb4cc" stroke="#54748c" stroke-width="1"/>
|
||||
<circle cx="757" cy="412" r="1.5" fill="#2c3e4c"/>
|
||||
<path d="M748,420 L824,420 L814,474 L758,474 Z" fill="#c89a5e" stroke="#8f6234" stroke-width="2" stroke-linejoin="round"/>
|
||||
<path d="M751,433 L821,433 M753,446 L818,446 M755,459 L816,459" stroke="#8f6234" stroke-width="1.6" opacity=".7"/>
|
||||
<path d="M758,421 L764,473 M770,421 L774,473 M782,420 L784,474 M794,420 L794,473 M806,420 L804,473 M818,420 L812,472" stroke="#8f6234" stroke-width="1.3" opacity=".5"/>
|
||||
<line x1="744" y1="420" x2="828" y2="420" stroke="#9a6b38" stroke-width="8" stroke-linecap="round"/>
|
||||
<line x1="746" y1="417" x2="826" y2="417" stroke="#d9b074" stroke-width="2" opacity=".8"/>
|
||||
<!-- chainring -->
|
||||
<circle cx="565" cy="582" r="33" fill="none" stroke="#565c62" stroke-width="2" stroke-dasharray="4 3.5"/>
|
||||
<circle cx="565" cy="582" r="30" fill="none" stroke="#4c5258" stroke-width="8"/>
|
||||
<circle cx="565" cy="582" r="17" fill="none" stroke="#4c5258" stroke-width="3"/>
|
||||
<line x1="565" y1="565" x2="565" y2="599" stroke="#4c5258" stroke-width="3"/>
|
||||
<line x1="548" y1="582" x2="582" y2="582" stroke="#4c5258" stroke-width="3"/>
|
||||
<circle cx="565" cy="582" r="6" fill="#33383d"/>
|
||||
|
||||
<!-- pelican -->
|
||||
<path d="M592,316 C636,330 666,356 682,382 C688,392 692,398 696,402 C688,402 678,396 668,384 C648,362 616,338 592,322 Z" fill="#cfc5b6"/>
|
||||
<path d="M676,380 C690,388 698,394 702,400 C694,403 686,398 680,392 C676,388 674,384 676,380 Z" fill="#1f1d1b"/>
|
||||
<path d="M442,330 C412,316 382,310 352,314 C380,324 408,332 440,342 Z" fill="#efe8db"/>
|
||||
<path d="M444,346 C410,338 378,338 350,346 C380,354 412,356 442,358 Z" fill="#e4dccc"/>
|
||||
<path d="M444,360 C412,360 384,366 362,376 C390,380 418,374 444,370 Z" fill="#d8cfbe"/>
|
||||
<path d="M446,310 C486,282 548,278 592,300 C606,308 614,322 616,338 C618,362 606,388 584,402 C556,418 508,420 478,408 C450,396 436,372 436,348 C436,332 440,320 446,310 Z" fill="url(#pelB)" stroke="#c9bdae" stroke-width="1" stroke-opacity=".25"/>
|
||||
<ellipse cx="588" cy="352" rx="26" ry="40" fill="#f4dfae" opacity=".5" filter="url(#blur4)" transform="rotate(-18 588 352)"/>
|
||||
<path d="M468,412 Q510,426 552,414" fill="none" stroke="#6b5a44" stroke-width="6" opacity=".25" filter="url(#blur4)"/>
|
||||
<path d="M470,402 Q520,416 572,402" fill="none" stroke="#b9ab9a" stroke-width="8" opacity=".3" filter="url(#blur4)"/>
|
||||
<g fill="none" stroke="#d6cbbb" stroke-width="1.8" opacity=".65">
|
||||
<path d="M468,396 Q480,404 494,398 Q508,406 522,399 Q536,406 550,398"/>
|
||||
<path d="M478,382 Q490,390 504,384 Q518,392 532,385 Q546,392 560,384"/>
|
||||
<path d="M490,368 Q502,376 516,370 Q530,378 544,371"/>
|
||||
</g>
|
||||
<g fill="none" stroke="#e8e0d2" stroke-width="1.6" opacity=".7">
|
||||
<path d="M474,316 Q500,306 528,304 M462,330 Q488,320 516,318"/>
|
||||
</g>
|
||||
<ellipse cx="560" cy="396" rx="30" ry="24" fill="#f7f2e7" transform="rotate(-15 560 396)"/>
|
||||
<path d="M540,404 Q554,410 568,404 M536,392 Q550,398 564,392" fill="none" stroke="#d6cbbb" stroke-width="1.6" opacity=".6"/>
|
||||
<g>
|
||||
<path d="M590,300 C558,286 524,280 494,286 C506,296 522,302 540,306 C528,312 512,314 498,312 C516,322 548,324 572,316 C582,312 588,306 590,300 Z" fill="url(#scarfG)"/>
|
||||
<path d="M588,306 C570,314 550,318 532,320 C550,324 568,320 582,314 Z" fill="#b32a28"/>
|
||||
<animateTransform attributeName="transform" type="rotate" values="-2.5 590 302; 2 590 302; -2.5 590 302" dur="1.6s" repeatCount="indefinite"/>
|
||||
</g>
|
||||
<path d="M556,298 C600,256 628,232 658,198 C664,190 670,186 676,184 L690,224 C664,256 634,286 608,308 C596,318 582,320 572,316 C564,310 556,304 556,298 Z" fill="url(#pelB)"/>
|
||||
<path d="M560,296 C602,256 628,232 656,200" fill="none" stroke="#d8cec0" stroke-width="2" opacity=".55"/>
|
||||
<path d="M688,222 C662,254 634,284 608,306" fill="none" stroke="#ffe2a8" stroke-width="2.5" opacity=".7"/>
|
||||
<path d="M610,316 C616,336 614,362 600,386" fill="none" stroke="#ffe2a8" stroke-width="2.5" opacity=".6"/>
|
||||
<!-- bill + pouch -->
|
||||
<path d="M706,186 C758,202 810,228 851,251 C857,255 857,262 851,266 C806,244 758,228 710,214 C707,206 705,196 706,186 Z" fill="url(#billG)"/>
|
||||
<path d="M712,196 C762,210 812,233 848,254" fill="none" stroke="#b87844" stroke-width="1.6" opacity=".6"/>
|
||||
<path d="M710,189 C760,204 810,229 848,251" fill="none" stroke="#ffe3b0" stroke-width="2" opacity=".7"/>
|
||||
<line x1="722" y1="196" x2="740" y2="202" stroke="#9a6238" stroke-width="1.5" opacity=".6"/>
|
||||
<path d="M846,254 C853,256 855,262 849,266 C845,263 844,258 846,254 Z" fill="#c4452e"/>
|
||||
<path d="M714,214 C690,248 656,278 618,300 C640,314 690,320 744,316 C794,312 832,289 850,262 C802,242 758,226 714,214 Z" fill="url(#pouchG)"/>
|
||||
<path d="M706,238 C694,258 686,276 688,292 M718,242 C708,262 702,280 706,296" fill="none" stroke="#d96a28" stroke-width="2" opacity=".3"/>
|
||||
<path d="M710,218 C688,248 656,278 622,300" fill="none" stroke="#d4853a" stroke-width="2" opacity=".45"/>
|
||||
<path d="M712,213 C760,227 806,243 848,261" fill="none" stroke="#b97a44" stroke-width="2.5" opacity=".8"/>
|
||||
<path d="M622,302 C652,314 696,319 744,316 C794,312 830,290 846,266" fill="none" stroke="#ffd9a0" stroke-width="2" opacity=".75"/>
|
||||
<!-- head -->
|
||||
<circle cx="694" cy="200" r="28" fill="url(#pelB)"/>
|
||||
<path d="M678,183 C666,172 654,166 644,165 C654,173 662,181 669,190 Z" fill="#f6efe3"/>
|
||||
<path d="M674,192 C663,185 653,183 645,185 C654,190 662,196 668,202 Z" fill="#e9e0d0"/>
|
||||
<path d="M668,180 Q694,166 716,184" fill="none" stroke="#fff3cc" stroke-width="2" opacity=".6"/>
|
||||
<ellipse cx="701" cy="193" rx="9" ry="7" fill="#f2c98e" opacity=".8" transform="rotate(-12 701 193)"/>
|
||||
<circle cx="703" cy="192" r="4" fill="#2a2018"/>
|
||||
<circle cx="704.6" cy="190.6" r="1.3" fill="#fff" opacity=".95"/>
|
||||
<path d="M697,187 Q703,184.5 709,188.5" fill="none" stroke="#b89058" stroke-width="1.4"/>
|
||||
<path d="M578,292 L602,294 L594,316 Z" fill="#c93632" stroke="#8e1d1a" stroke-width="1"/>
|
||||
<!-- wing -->
|
||||
<path d="M556,308 C600,302 636,318 660,344" fill="none" stroke="#b5a896" stroke-width="5" opacity=".35" filter="url(#blur2)"/>
|
||||
<path d="M552,304 C604,296 646,316 670,348 C680,362 686,378 692,394 C686,398 678,396 672,388 C660,372 642,354 618,340 C596,328 570,318 552,304 Z" fill="#faf5ea" stroke="#d8cdbd" stroke-width=".8"/>
|
||||
<path d="M576,322 Q588,330 602,325 Q616,333 630,328 M596,338 Q610,346 624,341 Q638,349 652,344" fill="none" stroke="#d9d0c2" stroke-width="1.6" opacity=".65"/>
|
||||
<path d="M636,348 C656,366 672,384 682,400 C684,408 681,413 675,413 C666,403 654,388 642,371 C637,362 634,354 636,348 Z" fill="#36322d"/>
|
||||
<path d="M648,344 C672,360 690,378 700,394 C704,402 703,410 697,413 C687,404 675,390 663,374 C655,364 649,354 648,344 Z" fill="#26231f"/>
|
||||
<path d="M662,342 C684,354 700,368 710,382 C714,390 713,397 708,401 C698,391 686,377 672,362 C667,355 663,348 662,342 Z" fill="#1c1a17"/>
|
||||
<path d="M650,350 C668,366 684,382 696,398 M664,348 C682,362 696,376 706,390" fill="none" stroke="#cfc8bb" stroke-width="1" opacity=".35"/>
|
||||
<!-- near leg -->
|
||||
<path d="M566,426 Q592,520 598,622" fill="none" stroke="#ef9b40" stroke-width="11" stroke-linecap="round"/>
|
||||
<path d="M570,430 Q596,522 601,618" fill="none" stroke="#c87c2c" stroke-width="2.5" opacity=".45"/>
|
||||
<path d="M598,626 C590,634 584,640 582,646 L640,644 C622,634 608,628 598,626 Z" fill="#f6a649" stroke="#b86f24" stroke-width="1"/>
|
||||
<path d="M596,632 L622,643 M594,636 L610,644" stroke="#b86f24" stroke-width="1.2" opacity=".7"/>
|
||||
<path d="M640,644 q5,1 7,4" fill="none" stroke="#6b4216" stroke-width="1.5"/>
|
||||
<!-- near crank over leg -->
|
||||
<line x1="565" y1="582" x2="602" y2="648" stroke="#2e3338" stroke-width="9" stroke-linecap="round"/>
|
||||
<rect x="583" y="643" width="38" height="10" rx="3" fill="#16191c"/>
|
||||
<circle cx="602" cy="648" r="3" fill="#4a5056"/>
|
||||
</g>
|
||||
|
||||
<!-- reflection on wet sand -->
|
||||
<g opacity=".5" mask="url(#reflMask)" filter="url(#ripple)">
|
||||
<use href="#subject" transform="translate(0 1227.6) scale(1 -0.8)"/>
|
||||
</g>
|
||||
|
||||
<!-- kicked-up sand + drifting feather -->
|
||||
<g fill="#d9b787">
|
||||
<circle cx="388" cy="668" r="5" opacity=".7"/>
|
||||
<circle cx="372" cy="664" r="4" opacity=".7"/>
|
||||
<circle cx="358" cy="650" r="3" opacity=".6"/>
|
||||
<circle cx="404" cy="672" r="3.5" opacity=".6"/>
|
||||
<circle cx="346" cy="636" r="2.5" opacity=".45" filter="url(#blur1)"/>
|
||||
<circle cx="337" cy="622" r="2" opacity=".3" filter="url(#blur1)"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M336,452 C326,444 322,432 326,422 C330,430 336,440 342,448 C340,452 338,452 336,452 Z" fill="#f6f1e6"/>
|
||||
<path d="M338,450 C332,442 328,434 327,426" stroke="#d8d0c0" stroke-width="1" fill="none"/>
|
||||
<animateTransform attributeName="transform" type="translate" values="0 0; -18 30; 0 0" keyTimes="0; .5; 1" dur="6s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="0; .85; 0" keyTimes="0; .5; 1" dur="6s" repeatCount="indefinite"/>
|
||||
</g>
|
||||
|
||||
<!-- foreground palm fronds, defocused -->
|
||||
<g transform="translate(-12 -14)" filter="url(#blur1)" opacity=".97">
|
||||
<path d="M6,2 C96,4 192,18 286,58 C196,26 100,8 2,12 Z" fill="#1e5639"/>
|
||||
<path d="M2,6 C84,16 170,40 252,96 C172,56 84,26 -2,20 Z" fill="#17402d"/>
|
||||
<path d="M0,12 C70,26 150,58 224,128 C150,84 66,46 -4,30 Z" fill="#226044"/>
|
||||
<path d="M-2,18 C56,44 116,92 158,164 C108,108 52,58 -10,34 Z" fill="#163d2a"/>
|
||||
<path d="M-6,26 C30,62 64,118 80,190 C48,128 16,72 -16,42 Z" fill="#1d5034"/>
|
||||
<path d="M8,0 C70,-6 150,-2 220,18 C150,2 76,-2 6,8 Z" fill="#2a7050"/>
|
||||
<path d="M0,10 C80,22 160,52 224,124 M2,8 C84,18 170,42 250,94" fill="none" stroke="#0e2c1e" stroke-width="2" opacity=".5"/>
|
||||
</g>
|
||||
|
||||
<rect x="0" y="0" width="1200" height="800" fill="url(#vig)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 27 KiB |
File renamed without changes.
File renamed without changes.
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,437 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 640" width="960" height="640" role="img" aria-label="A pelican riding a bicycle along a seaside boardwalk at golden hour">
|
||||
<defs>
|
||||
<!-- Sky gradient: warm golden-hour seaside sky -->
|
||||
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#7ec4e8"/>
|
||||
<stop offset="0.45" stop-color="#aedcf0"/>
|
||||
<stop offset="0.75" stop-color="#fbe3b8"/>
|
||||
<stop offset="1" stop-color="#ffd9a0"/>
|
||||
</linearGradient>
|
||||
<!-- Sea gradient -->
|
||||
<linearGradient id="sea" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#2e8fb8"/>
|
||||
<stop offset="0.5" stop-color="#3aa3c4"/>
|
||||
<stop offset="1" stop-color="#6cc6d8"/>
|
||||
</linearGradient>
|
||||
<!-- Sand gradient -->
|
||||
<linearGradient id="sand" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#f2d9a8"/>
|
||||
<stop offset="1" stop-color="#e3bd82"/>
|
||||
</linearGradient>
|
||||
<!-- Boardwalk gradient -->
|
||||
<linearGradient id="boardwalk" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#c89b66"/>
|
||||
<stop offset="1" stop-color="#a87b4a"/>
|
||||
</linearGradient>
|
||||
<!-- Pelican body shading -->
|
||||
<linearGradient id="bodyShade" x1="0" y1="0" x2="0.6" y2="1">
|
||||
<stop offset="0" stop-color="#ffffff"/>
|
||||
<stop offset="0.6" stop-color="#f2ece2"/>
|
||||
<stop offset="1" stop-color="#d9cdb8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="wingShade" x1="0" y1="0" x2="0.3" y2="1">
|
||||
<stop offset="0" stop-color="#f7f2e8"/>
|
||||
<stop offset="0.7" stop-color="#e0d6c2"/>
|
||||
<stop offset="1" stop-color="#c4b69c"/>
|
||||
</linearGradient>
|
||||
<!-- Beak gradient -->
|
||||
<linearGradient id="beak" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#ffb24d"/>
|
||||
<stop offset="0.6" stop-color="#f8923a"/>
|
||||
<stop offset="1" stop-color="#e3702a"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="pouch" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#ffc97a"/>
|
||||
<stop offset="1" stop-color="#f09a48"/>
|
||||
</linearGradient>
|
||||
<!-- Sun glow -->
|
||||
<radialGradient id="sunGlow" cx="0.5" cy="0.5" r="0.5">
|
||||
<stop offset="0" stop-color="#fff6d8" stop-opacity="0.95"/>
|
||||
<stop offset="0.35" stop-color="#ffe9a8" stop-opacity="0.6"/>
|
||||
<stop offset="1" stop-color="#ffe9a8" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<!-- Bike frame metal -->
|
||||
<linearGradient id="frame" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0" stop-color="#e84855"/>
|
||||
<stop offset="1" stop-color="#b32638"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="cloudSoft" cx="0.5" cy="0.5" r="0.5">
|
||||
<stop offset="0" stop-color="#ffffff"/>
|
||||
<stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
|
||||
<!-- ====================== SKY ====================== -->
|
||||
<rect width="960" height="400" fill="url(#sky)"/>
|
||||
<circle cx="745" cy="138" r="120" fill="url(#sunGlow)"/>
|
||||
<circle cx="745" cy="138" r="42" fill="#fff3c4"/>
|
||||
<circle cx="745" cy="138" r="34" fill="#fffbe8"/>
|
||||
|
||||
<!-- Clouds -->
|
||||
<g fill="#ffffff" opacity="0.85">
|
||||
<ellipse cx="170" cy="95" rx="62" ry="17"/>
|
||||
<ellipse cx="205" cy="80" rx="44" ry="15"/>
|
||||
<ellipse cx="135" cy="82" rx="35" ry="12"/>
|
||||
</g>
|
||||
<g fill="#ffffff" opacity="0.7">
|
||||
<ellipse cx="480" cy="60" rx="50" ry="13"/>
|
||||
<ellipse cx="515" cy="48" rx="32" ry="11"/>
|
||||
</g>
|
||||
<g fill="#ffffff" opacity="0.6">
|
||||
<ellipse cx="860" cy="220" rx="46" ry="11"/>
|
||||
<ellipse cx="890" cy="208" rx="28" ry="9"/>
|
||||
</g>
|
||||
<ellipse cx="330" cy="150" rx="90" ry="26" fill="url(#cloudSoft)" opacity="0.8"/>
|
||||
|
||||
<!-- Distant gulls -->
|
||||
<g stroke="#5a6b78" stroke-width="2.4" fill="none" stroke-linecap="round">
|
||||
<path d="M 580 110 q 9 -9 18 0 q 9 -9 18 0"/>
|
||||
<path d="M 640 88 q 7 -7 14 0 q 7 -7 14 0"/>
|
||||
<path d="M 545 142 q 6 -6 12 0 q 6 -6 12 0"/>
|
||||
</g>
|
||||
|
||||
<!-- ====================== SEA ====================== -->
|
||||
<rect x="0" y="300" width="960" height="110" fill="url(#sea)"/>
|
||||
<!-- Horizon highlight -->
|
||||
<rect x="0" y="300" width="960" height="4" fill="#bfe8f2" opacity="0.8"/>
|
||||
<!-- Sun reflection path on water -->
|
||||
<g fill="#ffe9b0">
|
||||
<ellipse cx="745" cy="318" rx="58" ry="4" opacity="0.7"/>
|
||||
<ellipse cx="738" cy="330" rx="44" ry="3.6" opacity="0.6"/>
|
||||
<ellipse cx="752" cy="343" rx="50" ry="3.4" opacity="0.55"/>
|
||||
<ellipse cx="742" cy="356" rx="36" ry="3" opacity="0.5"/>
|
||||
<ellipse cx="748" cy="370" rx="42" ry="3" opacity="0.45"/>
|
||||
<ellipse cx="740" cy="384" rx="30" ry="2.6" opacity="0.4"/>
|
||||
</g>
|
||||
<!-- Wave glints -->
|
||||
<g stroke="#cdeef5" stroke-width="2.6" stroke-linecap="round" opacity="0.75" fill="none">
|
||||
<path d="M 50 326 q 16 -5 32 0"/>
|
||||
<path d="M 130 346 q 14 -4 28 0"/>
|
||||
<path d="M 235 322 q 18 -5 36 0"/>
|
||||
<path d="M 330 352 q 14 -4 28 0"/>
|
||||
<path d="M 420 330 q 16 -5 32 0"/>
|
||||
<path d="M 530 360 q 14 -4 28 0"/>
|
||||
<path d="M 620 336 q 15 -4 30 0"/>
|
||||
<path d="M 855 340 q 14 -4 28 0"/>
|
||||
<path d="M 90 372 q 15 -4 30 0"/>
|
||||
<path d="M 280 382 q 16 -5 32 0"/>
|
||||
<path d="M 480 388 q 14 -4 28 0"/>
|
||||
<path d="M 660 376 q 13 -4 26 0"/>
|
||||
</g>
|
||||
<!-- Sailboat -->
|
||||
<g>
|
||||
<path d="M 150 296 l 0 -34 l 22 32 z" fill="#fdfaf2"/>
|
||||
<path d="M 146 296 l 0 -26 l -14 24 z" fill="#f3e8d2"/>
|
||||
<path d="M 132 298 q 22 9 44 0 l -5 8 q -17 6 -34 0 z" fill="#c0392b"/>
|
||||
</g>
|
||||
|
||||
<!-- Surf foam where sea meets sand -->
|
||||
<path d="M 0 408 q 60 -10 120 0 t 120 0 t 120 0 t 120 0 t 120 0 t 120 0 t 120 0 t 120 0 V 424 H 0 Z" fill="#eaf7f5"/>
|
||||
<path d="M 0 414 q 80 -8 160 0 t 160 0 t 160 0 t 160 0 t 160 0 t 160 0 V 430 H 0 Z" fill="#f7ede0" opacity="0.9"/>
|
||||
|
||||
<!-- ====================== BEACH ====================== -->
|
||||
<rect x="0" y="420" width="960" height="100" fill="url(#sand)"/>
|
||||
<!-- sand speckles -->
|
||||
<g fill="#c79a5e" opacity="0.55">
|
||||
<circle cx="80" cy="450" r="2.2"/><circle cx="190" cy="470" r="1.8"/>
|
||||
<circle cx="300" cy="444" r="2"/><circle cx="420" cy="478" r="1.7"/>
|
||||
<circle cx="560" cy="452" r="2.1"/><circle cx="700" cy="468" r="1.8"/>
|
||||
<circle cx="840" cy="446" r="2"/><circle cx="910" cy="476" r="1.6"/>
|
||||
<circle cx="140" cy="488" r="1.6"/><circle cx="640" cy="486" r="1.7"/>
|
||||
</g>
|
||||
<!-- Starfish -->
|
||||
<g transform="translate(118 470) scale(0.9)" fill="#e76f51">
|
||||
<path d="M 0 -14 L 4 -4 L 14 -3 L 6 4 L 9 14 L 0 8 L -9 14 L -6 4 L -14 -3 L -4 -4 Z"/>
|
||||
<circle cx="0" cy="0" r="2.4" fill="#f4a261"/>
|
||||
</g>
|
||||
<!-- Seashells -->
|
||||
<g transform="translate(835 462)">
|
||||
<path d="M 0 0 a 11 11 0 0 1 22 0 z" fill="#f6e7d7"/>
|
||||
<path d="M 4 0 a 7 7 0 0 1 14 0" fill="none" stroke="#d8b394" stroke-width="1.6"/>
|
||||
<path d="M 11 -10 L 11 0" stroke="#d8b394" stroke-width="1.4"/>
|
||||
</g>
|
||||
<!-- Beach grass tuft -->
|
||||
<g stroke="#7da45c" stroke-width="3" stroke-linecap="round" fill="none">
|
||||
<path d="M 52 510 q -4 -26 -14 -38"/>
|
||||
<path d="M 56 510 q 0 -30 4 -42"/>
|
||||
<path d="M 60 510 q 6 -24 18 -34"/>
|
||||
</g>
|
||||
<g stroke="#8fb86d" stroke-width="3" stroke-linecap="round" fill="none">
|
||||
<path d="M 906 512 q -3 -22 -12 -32"/>
|
||||
<path d="M 910 512 q 2 -26 8 -36"/>
|
||||
</g>
|
||||
|
||||
<!-- ====================== BOARDWALK ====================== -->
|
||||
<rect x="0" y="520" width="960" height="120" fill="url(#boardwalk)"/>
|
||||
<g stroke="#8a6038" stroke-width="3">
|
||||
<line x1="0" y1="548" x2="960" y2="548"/>
|
||||
<line x1="0" y1="578" x2="960" y2="578"/>
|
||||
<line x1="0" y1="610" x2="960" y2="610"/>
|
||||
</g>
|
||||
<g stroke="#8a6038" stroke-width="2.4" opacity="0.85">
|
||||
<line x1="90" y1="520" x2="78" y2="548"/>
|
||||
<line x1="250" y1="520" x2="240" y2="548"/>
|
||||
<line x1="430" y1="520" x2="422" y2="548"/>
|
||||
<line x1="610" y1="520" x2="602" y2="548"/>
|
||||
<line x1="790" y1="520" x2="782" y2="548"/>
|
||||
<line x1="170" y1="548" x2="160" y2="578"/>
|
||||
<line x1="340" y1="548" x2="332" y2="578"/>
|
||||
<line x1="520" y1="548" x2="512" y2="578"/>
|
||||
<line x1="700" y1="548" x2="692" y2="578"/>
|
||||
<line x1="880" y1="548" x2="872" y2="578"/>
|
||||
<line x1="120" y1="578" x2="110" y2="610"/>
|
||||
<line x1="300" y1="578" x2="292" y2="610"/>
|
||||
<line x1="480" y1="578" x2="472" y2="610"/>
|
||||
<line x1="660" y1="578" x2="652" y2="610"/>
|
||||
<line x1="840" y1="578" x2="832" y2="610"/>
|
||||
</g>
|
||||
<!-- wood grain hints -->
|
||||
<g stroke="#9c7044" stroke-width="1.6" opacity="0.6" fill="none">
|
||||
<path d="M 30 534 q 50 3 100 0"/>
|
||||
<path d="M 560 562 q 60 4 120 0"/>
|
||||
<path d="M 200 596 q 70 3 140 0"/>
|
||||
<path d="M 720 534 q 55 3 110 0"/>
|
||||
</g>
|
||||
|
||||
<!-- ====================== SHADOW ====================== -->
|
||||
<ellipse cx="468" cy="566" rx="225" ry="17" fill="#5b3d22" opacity="0.30"/>
|
||||
|
||||
<!-- ====================== BICYCLE + PELICAN ====================== -->
|
||||
<g>
|
||||
<!-- ===== Rear wheel ===== -->
|
||||
<g transform="translate(330 510)">
|
||||
<circle r="58" fill="none" stroke="#2b2b2b" stroke-width="9"/>
|
||||
<circle r="58" fill="none" stroke="#1a1a1a" stroke-width="3" opacity="0.5"/>
|
||||
<circle r="49" fill="none" stroke="#b8b8b8" stroke-width="3"/>
|
||||
<g stroke="#9aa3a8" stroke-width="2">
|
||||
<line x1="0" y1="0" x2="46" y2="12"/>
|
||||
<line x1="0" y1="0" x2="-46" y2="-12"/>
|
||||
<line x1="0" y1="0" x2="12" y2="-46"/>
|
||||
<line x1="0" y1="0" x2="-12" y2="46"/>
|
||||
<line x1="0" y1="0" x2="40" y2="-26"/>
|
||||
<line x1="0" y1="0" x2="-40" y2="26"/>
|
||||
<line x1="0" y1="0" x2="26" y2="40"/>
|
||||
<line x1="0" y1="0" x2="-26" y2="-40"/>
|
||||
</g>
|
||||
<circle r="7.5" fill="#454545"/>
|
||||
<circle r="3.4" fill="#8d9499"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== Front wheel ===== -->
|
||||
<g transform="translate(610 510)">
|
||||
<circle r="58" fill="none" stroke="#2b2b2b" stroke-width="9"/>
|
||||
<circle r="58" fill="none" stroke="#1a1a1a" stroke-width="3" opacity="0.5"/>
|
||||
<circle r="49" fill="none" stroke="#b8b8b8" stroke-width="3"/>
|
||||
<g stroke="#9aa3a8" stroke-width="2">
|
||||
<line x1="0" y1="0" x2="44" y2="18"/>
|
||||
<line x1="0" y1="0" x2="-44" y2="-18"/>
|
||||
<line x1="0" y1="0" x2="18" y2="-44"/>
|
||||
<line x1="0" y1="0" x2="-18" y2="44"/>
|
||||
<line x1="0" y1="0" x2="36" y2="-31"/>
|
||||
<line x1="0" y1="0" x2="-36" y2="31"/>
|
||||
<line x1="0" y1="0" x2="31" y2="36"/>
|
||||
<line x1="0" y1="0" x2="-31" y2="-36"/>
|
||||
</g>
|
||||
<circle r="7.5" fill="#454545"/>
|
||||
<circle r="3.4" fill="#8d9499"/>
|
||||
</g>
|
||||
|
||||
<!-- motion speed lines behind -->
|
||||
<g stroke="#9fb6bf" stroke-width="4" stroke-linecap="round" opacity="0.55">
|
||||
<line x1="186" y1="462" x2="246" y2="462"/>
|
||||
<line x1="166" y1="492" x2="238" y2="492"/>
|
||||
<line x1="190" y1="522" x2="248" y2="522"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== Frame ===== -->
|
||||
<g stroke="url(#frame)" stroke-width="11" stroke-linecap="round" fill="none">
|
||||
<!-- chainstay -->
|
||||
<line x1="330" y1="510" x2="455" y2="505"/>
|
||||
<!-- seat tube -->
|
||||
<line x1="455" y1="505" x2="425" y2="408"/>
|
||||
<!-- seat stay -->
|
||||
<line x1="330" y1="510" x2="425" y2="408"/>
|
||||
<!-- top tube -->
|
||||
<line x1="425" y1="408" x2="572" y2="420"/>
|
||||
<!-- down tube -->
|
||||
<line x1="455" y1="505" x2="572" y2="420"/>
|
||||
<!-- head tube + fork -->
|
||||
<line x1="572" y1="420" x2="585" y2="392"/>
|
||||
<line x1="572" y1="420" x2="610" y2="510"/>
|
||||
</g>
|
||||
<!-- frame highlight -->
|
||||
<g stroke="#ff8c94" stroke-width="3" stroke-linecap="round" opacity="0.7" fill="none">
|
||||
<line x1="430" y1="404" x2="566" y2="416"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== Crank & chain ===== -->
|
||||
<circle cx="455" cy="505" r="17" fill="none" stroke="#3a3a3a" stroke-width="5"/>
|
||||
<circle cx="455" cy="505" r="6" fill="#3a3a3a"/>
|
||||
<g stroke="#4a4a4a" stroke-width="3.4" fill="none" opacity="0.9">
|
||||
<line x1="330" y1="498" x2="455" y2="488"/>
|
||||
<line x1="330" y1="522" x2="455" y2="521"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== Handlebar ===== -->
|
||||
<g stroke="#3a3a3a" stroke-width="8" stroke-linecap="round" fill="none">
|
||||
<path d="M 585 392 q 4 -22 26 -26"/>
|
||||
</g>
|
||||
<circle cx="611" cy="366" r="6.6" fill="#7a4a26"/>
|
||||
|
||||
<!-- Wicker basket on handlebar with a fish -->
|
||||
<g>
|
||||
<path d="M 622 380 l 46 0 l -7 34 l -32 0 z" fill="#c98f4e" stroke="#9c6a33" stroke-width="3"/>
|
||||
<g stroke="#9c6a33" stroke-width="2">
|
||||
<line x1="625" y1="390" x2="666" y2="390"/>
|
||||
<line x1="627" y1="400" x2="664" y2="400"/>
|
||||
<line x1="634" y1="381" x2="632" y2="413"/>
|
||||
<line x1="646" y1="381" x2="645" y2="413"/>
|
||||
<line x1="658" y1="381" x2="657" y2="413"/>
|
||||
</g>
|
||||
<!-- fish peeking out -->
|
||||
<g transform="translate(648 374) rotate(-18)">
|
||||
<ellipse cx="0" cy="0" rx="17" ry="7" fill="#79b5d6"/>
|
||||
<path d="M 14 0 l 11 -7 l -3 7 l 3 7 z" fill="#5d9cbf"/>
|
||||
<circle cx="-9" cy="-1.6" r="1.8" fill="#22303a"/>
|
||||
<path d="M -3 -6 q 4 6 0 12" stroke="#5d9cbf" stroke-width="1.6" fill="none"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- ===== Saddle ===== -->
|
||||
<line x1="425" y1="408" x2="418" y2="386" stroke="#3a3a3a" stroke-width="7"/>
|
||||
<path d="M 392 386 q 26 -11 54 -2 q -8 12 -26 12 q -20 0 -28 -10 z" fill="#54341c"/>
|
||||
<path d="M 396 384 q 22 -8 44 -2" stroke="#7a5230" stroke-width="2.4" fill="none"/>
|
||||
|
||||
<!-- ===================== PELICAN ===================== -->
|
||||
<!-- Far leg (behind body) to rear pedal position -->
|
||||
<g stroke="#d8862e" stroke-width="11" stroke-linecap="round" fill="none" opacity="0.85">
|
||||
<path d="M 430 430 q -8 36 14 56"/>
|
||||
</g>
|
||||
<!-- far webbed foot on up-pedal -->
|
||||
<g transform="translate(449 489)">
|
||||
<line x1="-14" y1="-1" x2="6" y2="-1" stroke="#3a3a3a" stroke-width="5"/>
|
||||
<path d="M -16 -8 l 26 0 l 9 9 l -36 0 z" fill="#d8862e" opacity="0.85"/>
|
||||
</g>
|
||||
|
||||
<!-- Tail feathers -->
|
||||
<path d="M 372 392 q -42 -2 -64 22 q 28 4 44 -2 q -18 12 -26 26 q 28 -4 46 -22 z" fill="url(#wingShade)" stroke="#b6a888" stroke-width="2"/>
|
||||
|
||||
<!-- Body -->
|
||||
<path d="M 372 386
|
||||
q -16 22 -6 44
|
||||
q 10 24 44 30
|
||||
q 36 6 64 -12
|
||||
q 24 -16 30 -44
|
||||
q 4 -22 -8 -36
|
||||
q -22 -22 -62 -16
|
||||
q -42 6 -62 34 z" fill="url(#bodyShade)" stroke="#c9bda6" stroke-width="2.5"/>
|
||||
|
||||
<!-- Belly shading -->
|
||||
<path d="M 386 442 q 30 18 64 4 q -28 22 -58 8 q -8 -5 -6 -12 z" fill="#cfc3ac" opacity="0.8"/>
|
||||
|
||||
<!-- Wing folded over body, slightly lifted as if balancing -->
|
||||
<path d="M 398 392
|
||||
q 38 -18 76 -6
|
||||
q 26 9 28 30
|
||||
q -10 22 -42 26
|
||||
q -34 4 -56 -12
|
||||
q -18 -14 -6 -38 z" fill="url(#wingShade)" stroke="#bfb29a" stroke-width="2.5"/>
|
||||
<!-- wing feather lines -->
|
||||
<g stroke="#b6a888" stroke-width="2.2" fill="none" stroke-linecap="round">
|
||||
<path d="M 420 398 q 36 -8 66 6"/>
|
||||
<path d="M 416 412 q 38 -6 70 8"/>
|
||||
<path d="M 420 426 q 34 -2 60 8"/>
|
||||
</g>
|
||||
<!-- wingtip dark feathers -->
|
||||
<path d="M 486 436 q 14 4 16 -6 q 10 12 -4 18 q -12 5 -12 -12 z" fill="#8e8270"/>
|
||||
|
||||
<!-- Neck: graceful S-curve leaning forward toward the bars -->
|
||||
<path d="M 470 380
|
||||
q -4 -42 24 -64
|
||||
q 22 -17 44 -12
|
||||
q 16 4 18 22
|
||||
q 2 18 -12 24
|
||||
q -16 8 -24 26
|
||||
q -7 16 -4 30
|
||||
q -22 12 -46 2
|
||||
q -4 -16 0 -28 z" fill="url(#bodyShade)" stroke="#c9bda6" stroke-width="2.5"/>
|
||||
|
||||
<!-- Head -->
|
||||
<circle cx="546" cy="318" r="29" fill="url(#bodyShade)" stroke="#c9bda6" stroke-width="2.5"/>
|
||||
<!-- head crest tuft -->
|
||||
<path d="M 528 296 q 6 -14 20 -16 q -4 8 -2 12 q 8 -8 18 -6 q -8 6 -10 12 q -14 -8 -26 -2 z" fill="#e8e0cf"/>
|
||||
|
||||
<!-- Eye -->
|
||||
<circle cx="558" cy="312" r="6.8" fill="#ffffff"/>
|
||||
<circle cx="560" cy="313" r="4.4" fill="#2c2418"/>
|
||||
<circle cx="561.6" cy="311.2" r="1.6" fill="#ffffff"/>
|
||||
<!-- eye ring (pelicans have bare orbital skin) -->
|
||||
<circle cx="558" cy="312" r="9.4" fill="none" stroke="#f0b86a" stroke-width="2.2"/>
|
||||
|
||||
<!-- ===== Beak with pouch (signature pelican feature) ===== -->
|
||||
<!-- gular pouch -->
|
||||
<path d="M 566 326
|
||||
q 36 10 64 34
|
||||
q 14 12 10 22
|
||||
q -6 12 -24 6
|
||||
q -28 -10 -46 -28
|
||||
q -12 -12 -12 -24 z" fill="url(#pouch)" stroke="#d97a2c" stroke-width="2.4"/>
|
||||
<!-- pouch crease lines -->
|
||||
<g stroke="#e08a3c" stroke-width="1.8" fill="none" opacity="0.8">
|
||||
<path d="M 574 336 q 28 12 52 34"/>
|
||||
<path d="M 570 346 q 22 12 40 28"/>
|
||||
</g>
|
||||
<!-- upper bill: long, flat, with hooked tip -->
|
||||
<path d="M 564 316
|
||||
q 48 8 88 34
|
||||
q 10 7 8 13
|
||||
q -2 6 -12 4
|
||||
q -46 -10 -86 -34
|
||||
q -8 -6 -6 -12 q 2 -5 8 -5 z" fill="url(#beak)" stroke="#cf6a24" stroke-width="2.4"/>
|
||||
<!-- bill ridge highlight -->
|
||||
<path d="M 572 320 q 42 9 78 31" stroke="#ffd08a" stroke-width="2.6" fill="none" stroke-linecap="round"/>
|
||||
<!-- hooked nail at bill tip -->
|
||||
<path d="M 656 360 q 8 2 6 9 q -7 3 -12 -3 z" fill="#c25a1e"/>
|
||||
|
||||
<!-- Nostril slit -->
|
||||
<line x1="580" y1="324" x2="596" y2="330" stroke="#b85a1e" stroke-width="2" stroke-linecap="round"/>
|
||||
|
||||
<!-- ===== Near wing-arm reaching to handlebar ===== -->
|
||||
<path d="M 452 398
|
||||
q 40 -4 86 -22
|
||||
q 26 -10 52 -12
|
||||
l 14 6
|
||||
q -2 10 -14 12
|
||||
q -36 8 -64 24
|
||||
q -34 18 -64 16
|
||||
q -16 -8 -10 -24 z" fill="#efe8d8" stroke="#c2b59c" stroke-width="2.4"/>
|
||||
<!-- wing-hand gripping bar -->
|
||||
<ellipse cx="603" cy="370" rx="13" ry="9.6" transform="rotate(-24 603 370)" fill="#e6dcc6" stroke="#bfb29a" stroke-width="2.2"/>
|
||||
|
||||
<!-- ===== Near leg pedaling (down stroke) ===== -->
|
||||
<path d="M 432 444 q 4 36 24 58 q 4 10 -4 16" stroke="#f0973a" stroke-width="13" stroke-linecap="round" fill="none"/>
|
||||
<!-- pedal (near, down position) -->
|
||||
<g transform="translate(462 524)">
|
||||
<line x1="-16" y1="0" x2="16" y2="0" stroke="#3a3a3a" stroke-width="6"/>
|
||||
<!-- near webbed foot -->
|
||||
<path d="M -18 -3 l 30 0 q 14 1 18 10 l -8 3 l -8 -4 l -6 5 l -8 -4 l -7 4 l -11 -5 z" fill="#f0973a" stroke="#d8771f" stroke-width="2"/>
|
||||
</g>
|
||||
<!-- crank arms connecting pedals -->
|
||||
<line x1="455" y1="505" x2="462" y2="524" stroke="#3a3a3a" stroke-width="6" stroke-linecap="round"/>
|
||||
<line x1="455" y1="505" x2="449" y2="488" stroke="#3a3a3a" stroke-width="6" stroke-linecap="round"/>
|
||||
|
||||
<!-- Jaunty red neckerchief fluttering in sea breeze -->
|
||||
<path d="M 506 348 q 16 12 36 8 q -10 14 -28 12 q -14 -2 -18 -12 q 4 -7 10 -8 z" fill="#d94f3d"/>
|
||||
<path d="M 506 352 q -22 4 -38 -6 q 4 16 22 20 q 12 2 18 -4 z" fill="#c0392b"/>
|
||||
<path d="M 468 346 q -14 -2 -22 -12 q -2 12 8 18 q 8 4 14 -2 z" fill="#d94f3d"/>
|
||||
|
||||
<!-- breeze lines off the scarf and tail -->
|
||||
<g stroke="#cfe6ec" stroke-width="3" stroke-linecap="round" fill="none" opacity="0.8">
|
||||
<path d="M 430 350 q -18 -4 -30 6"/>
|
||||
<path d="M 350 376 q -20 -2 -32 8"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- subtle foreground vignette of warm light -->
|
||||
<rect width="960" height="640" fill="#ff9d3f" opacity="0.04"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 19 KiB |
Reference in new issue
Block a user