<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600">
<defs>
<pattern id="rain" width="56" height="72" patternUnits="userSpaceOnUse" patternTransform="rotate(17)">
<line x1="12" y1="-8" x2="12" y2="38" stroke="#8fa6b5" stroke-width="2.2" stroke-linecap="round" opacity="0.45"/>
<line x1="40" y1="26" x2="40" y2="64" stroke="#8fa6b5" stroke-width="1.5" stroke-linecap="round" opacity="0.3"/>
</pattern>
</defs>
<!-- sky -->
<rect width="800" height="600" fill="#182430"/>
<!-- storm clouds -->
<g fill="#101a22" opacity="0.85">
<ellipse cx="120" cy="38" rx="165" ry="38"/>
<ellipse cx="330" cy="72" rx="150" ry="30"/>
<ellipse cx="645" cy="42" rx="175" ry="36"/>
<ellipse cx="775" cy="88" rx="115" ry="26"/>
<ellipse cx="70" cy="140" rx="95" ry="22" opacity="0.7"/>
<ellipse cx="430" cy="130" rx="110" ry="20" opacity="0.6"/>
</g>
<!-- light beam -->
<g fill="#f2e6a4">
<polygon points="525,176 20,20 20,340" opacity="0.16"/>
<polygon points="525,176 20,95 20,265" opacity="0.25"/>
<polygon points="525,176 20,140 20,215" opacity="0.38"/>
<polygon points="525,176 800,105 800,255" opacity="0.14"/>
<polygon points="525,176 800,140 800,215" opacity="0.22"/>
</g>
<!-- lamp halo -->
<circle cx="525" cy="176" r="30" fill="#f2e6a4" opacity="0.18"/>
<circle cx="525" cy="176" r="18" fill="#f2e6a4" opacity="0.3"/>
<!-- sea -->
<rect x="0" y="440" width="800" height="160" fill="#2a3f52"/>
<rect x="0" y="436" width="800" height="3" fill="#8fa6b5" opacity="0.18"/>
<g fill="none" stroke="#8fa6b5" stroke-linecap="round">
<path d="M -20 502 q 25 -13 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0" stroke-width="3" opacity="0.4"/>
<path d="M -45 545 q 25 -11 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0" stroke-width="2.5" opacity="0.3"/>
<path d="M -10 588 q 25 -12 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0 t 50 0" stroke-width="3" opacity="0.35"/>
</g>
<!-- wind streaks -->
<g fill="none" stroke="#8fa6b5" stroke-width="3" stroke-linecap="round" opacity="0.4">
<path d="M 30 150 C 150 128, 260 160, 400 138"/>
<path d="M 60 235 C 180 215, 300 250, 450 228"/>
<path d="M 470 105 C 570 88, 680 112, 800 95"/>
<path d="M 560 300 C 650 288, 730 306, 810 292"/>
<path d="M 40 470 C 140 458, 230 476, 330 464" opacity="0.75"/>
<path d="M 660 370 C 720 360, 770 376, 820 366" opacity="0.75"/>
</g>
<!-- rocks -->
<path d="M 400 600 L 415 540 L 455 505 L 500 512 L 535 494 L 575 520 L 620 500 L 665 522 L 700 512 L 720 600 Z" fill="#101a22"/>
<path d="M 60 600 L 90 545 L 130 528 L 170 548 L 200 540 L 220 600 Z" fill="#101a22"/>
<g fill="none" stroke="#8fa6b5" stroke-width="3" stroke-linecap="round" opacity="0.5">
<path d="M 455 507 L 500 514 L 535 496"/>
<path d="M 620 502 L 665 524"/>
<path d="M 92 547 L 130 530 L 168 549"/>
</g>
<!-- crashing spray -->
<g fill="none" stroke="#8fa6b5" stroke-linecap="round">
<path d="M 380 562 Q 400 505 448 522" stroke-width="4" opacity="0.8"/>
<path d="M 690 524 q 16 -26 38 -20" stroke-width="3.5" opacity="0.7"/>
<path d="M 66 578 Q 108 514 168 550" stroke-width="4" opacity="0.8"/>
<path d="M 400 592 q 30 -12 60 0 t 60 0 t 60 0 t 60 0 t 60 0" stroke-width="3.5" opacity="0.5"/>
<path d="M 40 596 q 30 -12 60 0 t 60 0 t 60 0" stroke-width="3.5" opacity="0.5"/>
</g>
<g fill="#8fa6b5" opacity="0.85">
<circle cx="398" cy="512" r="3"/><circle cx="412" cy="499" r="2.4"/><circle cx="426" cy="508" r="2"/><circle cx="440" cy="514" r="2.5"/>
<circle cx="702" cy="498" r="3"/><circle cx="716" cy="490" r="2.3"/><circle cx="728" cy="502" r="2"/>
<circle cx="95" cy="545" r="2.6"/><circle cx="120" cy="528" r="3"/><circle cx="148" cy="540" r="2.4"/>
</g>
<!-- lighthouse -->
<polygon points="490,470 502,205 548,205 560,470" fill="#ece7d8"/>
<polygon points="492,417 558,417 555,364 495,364" fill="#101a22"/>
<polygon points="497,311 553,311 550,258 500,258" fill="#101a22"/>
<polygon points="483,495 567,495 560,470 490,470" fill="#101a22"/>
<path d="M 516 470 L 516 449 A 9 9 0 0 1 534 449 L 534 470 Z" fill="#101a22"/>
<rect x="521" y="434" width="9" height="15" fill="#f2e6a4" stroke="#101a22" stroke-width="2"/>
<rect x="521" y="330" width="9" height="13" fill="#f2e6a4" stroke="#101a22" stroke-width="2"/>
<rect x="490" y="193" width="70" height="12" rx="2" fill="#101a22"/>
<rect x="507" y="160" width="36" height="33" fill="#f2e6a4"/>
<g stroke="#101a22" stroke-width="2.5">
<line x1="518" y1="160" x2="518" y2="193"/>
<line x1="532" y1="160" x2="532" y2="193"/>
<line x1="507" y1="176" x2="543" y2="176"/>
</g>
<polygon points="501,160 549,160 525,130" fill="#101a22"/>
<line x1="525" y1="130" x2="525" y2="118" stroke="#101a22" stroke-width="3" stroke-linecap="round"/>
<circle cx="525" cy="115" r="3" fill="#101a22"/>
<circle cx="525" cy="176" r="7" fill="#f2e6a4"/>
<!-- rain over the whole scene -->
<rect width="800" height="600" fill="url(#rain)"/>
<!-- foreground gusts -->
<g stroke="#8fa6b5" stroke-linecap="round" opacity="0.55">
<line x1="130" y1="40" x2="104" y2="140" stroke-width="3"/>
<line x1="700" y1="200" x2="676" y2="292" stroke-width="3"/>
<line x1="350" y1="320" x2="328" y2="404" stroke-width="2.5"/>
<line x1="610" y1="420" x2="590" y2="496" stroke-width="2.5"/>
</g>
</svg>