/* Blizzard snow overlay for nodrugs.space
   Credit: adapted from the "Blizzard" CodePen by mark_sottek
   https://codepen.io/mark_sottek/pen/01a1ba26-e7e0-785f-92a6-7300681acf89
   The pen's navy sky and "Blizzard" title/caption are omitted so this
   can sit over the existing space theme. Flake tiles are precomputed
   SVGs. CSS random() only varies speed, tilt, and tile offset when the
   browser supports it; otherwise the static defaults below apply, and
   /snow.js randomizes the same custom properties on load.
*/


/* Combined background stack: stars, nebula, vignette, snow, and terrain.
   Blur and opacity are applied ONCE on this wrapper so the browser blurs
   a single composited layer instead of re-filtering every animated child
   each frame. Content (.wrap, main, #app, headings) stays outside and sharp.
   Chosen values: blur(14px), opacity 0.3 (12px / 0.28 on small screens).
   Wrapper is oversized (inset + scale 1.05) so the blur doesn't leave a dark halo at the viewport edges. */
#bg-fx {
  position: fixed;
  inset: -7%;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  opacity: 0.3;
  filter: blur(14px);
  transform: scale(1.05);
  transform-origin: center center;
}

@media (max-width: 700px) {
  #bg-fx { opacity: 0.28; filter: blur(12px); }
}

.nd-snow {
  --snow-opacity: .7;
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0; /* above #stars/.nebula/.vignette (DOM order); behind .wrap (z-index: 1) */
  overflow: visible;
}

/* Keep real page content above the flakes on pages without a .wrap stacking context. */
body > .wrap,
body > main,
body > #app {
  position: relative;
  z-index: 1;
}

.nd-snow__far,
.nd-snow__near {
  position: fixed;
  left: -35vh;
  right: -35vh;
  bottom: -35vw;
  pointer-events: none;
  opacity: var(--snow-opacity);
  rotate: var(--snow-tilt);
  will-change: transform;
  animation:
    snow-blizzard-fall var(--snow-speed) linear infinite,
    snow-blizzard-sway var(--snow-sway) ease-in-out infinite alternate;
}

/* far layer: small flakes, slower */
.nd-snow__far {
  --snow-tile: 400px;
  --snow-speed: 16s;
  --snow-sway: 11s;
  --snow-tilt: -28deg;
  top: calc(-35vw - 400px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 400 400'%3E%3Cdefs%3E%3CradialGradient id='f' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='1'/%3E%3Cstop offset='0.55' stop-color='%23fff' stop-opacity='0.85'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cellipse cx='152.4' cy='92.3' rx='0.8' ry='2.2' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='231.2' cy='276.1' rx='1.1' ry='3' fill='url(%23f)' opacity='0.50'/%3E%3Cellipse cx='292.6' cy='230.6' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='335.7' cy='175.8' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.41'/%3E%3Cellipse cx='289.3' cy='67' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.60'/%3E%3Cellipse cx='23.8' cy='313.7' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.70'/%3E%3Cellipse cx='336.4' cy='86.3' rx='1.3' ry='3.3' fill='url(%23f)' opacity='0.64'/%3E%3Cellipse cx='50' cy='268' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='275.5' cy='392' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.48'/%3E%3Cellipse cx='248' cy='243.3' rx='0.8' ry='2.2' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='338.6' cy='120.6' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='162.9' cy='265.3' rx='1.1' ry='2.8' fill='url(%23f)' opacity='0.51'/%3E%3Cellipse cx='8.7' cy='54' rx='1.1' ry='2.8' fill='url(%23f)' opacity='0.64'/%3E%3Cellipse cx='170.3' cy='297.8' rx='1.1' ry='2.9' fill='url(%23f)' opacity='0.70'/%3E%3Cellipse cx='262' cy='128.7' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.38'/%3E%3Cellipse cx='15.8' cy='345' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.65'/%3E%3Cellipse cx='43.7' cy='264.2' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='262.2' cy='299.8' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.52'/%3E%3Cellipse cx='339.4' cy='384.7' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.52'/%3E%3Cellipse cx='293.4' cy='272' rx='1' ry='2.7' fill='url(%23f)' opacity='0.53'/%3E%3Cellipse cx='387.1' cy='110.4' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='110.8' cy='359' rx='1' ry='2.5' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='151.9' cy='354' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.64'/%3E%3Cellipse cx='85.7' cy='65.7' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.42'/%3E%3Cellipse cx='266.6' cy='25.7' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.58'/%3E%3Cellipse cx='62.1' cy='131.6' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='47.4' cy='-1' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.64'/%3E%3Cellipse cx='47.4' cy='399' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.64'/%3E%3Cellipse cx='221' cy='199.1' rx='1.5' ry='3.8' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='328.8' cy='11.9' rx='1.2' ry='3' fill='url(%23f)' opacity='0.73'/%3E%3Cellipse cx='255.3' cy='205.2' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.42'/%3E%3Cellipse cx='291.1' cy='313.5' rx='0.8' ry='2' fill='url(%23f)' opacity='0.55'/%3E%3Cellipse cx='238.1' cy='140.8' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='362.5' cy='123.1' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.69'/%3E%3Cellipse cx='244.8' cy='331.8' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.46'/%3E%3Cellipse cx='235' cy='121.3' rx='1.3' ry='3.5' fill='url(%23f)' opacity='0.63'/%3E%3Cellipse cx='95.6' cy='200.1' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.44'/%3E%3Cellipse cx='73' cy='189.7' rx='0.8' ry='2' fill='url(%23f)' opacity='0.55'/%3E%3Cellipse cx='376' cy='330.4' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.68'/%3E%3Cellipse cx='286.6' cy='283.3' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.65'/%3E%3Cellipse cx='78.2' cy='321.2' rx='1' ry='2.5' fill='url(%23f)' opacity='0.50'/%3E%3Cellipse cx='68.9' cy='347' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.70'/%3E%3Cellipse cx='205.5' cy='59.4' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='10.8' cy='329.4' rx='0.9' ry='2.4' fill='url(%23f)' opacity='0.36'/%3E%3Cellipse cx='306.5' cy='290.8' rx='1' ry='2.6' fill='url(%23f)' opacity='0.42'/%3E%3Cellipse cx='210.8' cy='234.6' rx='1.3' ry='3.3' fill='url(%23f)' opacity='0.55'/%3E%3Cellipse cx='227.1' cy='288.3' rx='0.9' ry='2.2' fill='url(%23f)' opacity='0.42'/%3E%3Cellipse cx='193.8' cy='301.7' rx='1.3' ry='3.5' fill='url(%23f)' opacity='0.69'/%3E%3Cellipse cx='175.6' cy='285.5' rx='0.8' ry='2' fill='url(%23f)' opacity='0.51'/%3E%3Cellipse cx='26.7' cy='334.1' rx='1.5' ry='3.9' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='301' cy='148.9' rx='1.3' ry='3.5' fill='url(%23f)' opacity='0.38'/%3E%3Cellipse cx='148.2' cy='140.3' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.42'/%3E%3Cellipse cx='63.7' cy='35.8' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.48'/%3E%3Cellipse cx='361.2' cy='125.2' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.43'/%3E%3Cellipse cx='361' cy='389.5' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.63'/%3E%3Cellipse cx='358.5' cy='365.7' rx='1.5' ry='3.8' fill='url(%23f)' opacity='0.46'/%3E%3Cellipse cx='340' cy='311.9' rx='1' ry='2.5' fill='url(%23f)' opacity='0.42'/%3E%3Cellipse cx='359.9' cy='189' rx='1.1' ry='2.9' fill='url(%23f)' opacity='0.70'/%3E%3Cellipse cx='193.5' cy='101' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='109' cy='276.8' rx='1.4' ry='3.7' fill='url(%23f)' opacity='0.45'/%3E%3Cellipse cx='325.1' cy='301.5' rx='1.1' ry='2.9' fill='url(%23f)' opacity='0.43'/%3E%3Cellipse cx='266' cy='112.6' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.69'/%3E%3Cellipse cx='108.2' cy='37' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.75'/%3E%3Cellipse cx='122.1' cy='162' rx='1.1' ry='3' fill='url(%23f)' opacity='0.65'/%3E%3Cellipse cx='4.9' cy='259.2' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='165.9' cy='377.7' rx='1.1' ry='2.8' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='15.2' cy='81.1' rx='0.9' ry='2.4' fill='url(%23f)' opacity='0.50'/%3E%3Cellipse cx='69.2' cy='168.4' rx='0.8' ry='2' fill='url(%23f)' opacity='0.58'/%3E%3Cellipse cx='385.2' cy='342.9' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.74'/%3E%3Cellipse cx='291.4' cy='253.7' rx='1.1' ry='2.8' fill='url(%23f)' opacity='0.38'/%3E%3Cellipse cx='357.3' cy='358.5' rx='1.3' ry='3.5' fill='url(%23f)' opacity='0.63'/%3E%3Cellipse cx='325.1' cy='383.4' rx='1.5' ry='3.8' fill='url(%23f)' opacity='0.66'/%3E%3Cellipse cx='6.5' cy='378.9' rx='1.2' ry='3' fill='url(%23f)' opacity='0.53'/%3E%3Cellipse cx='172.4' cy='108.2' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.60'/%3E%3Cellipse cx='247' cy='34.6' rx='1.4' ry='3.7' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='345.9' cy='215' rx='1' ry='2.6' fill='url(%23f)' opacity='0.54'/%3E%3Cellipse cx='148.2' cy='382.2' rx='1.4' ry='3.7' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='207.9' cy='204.4' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.47'/%3E%3Cellipse cx='73.6' cy='394' rx='0.9' ry='2.4' fill='url(%23f)' opacity='0.46'/%3E%3Cellipse cx='196.9' cy='35.3' rx='1.1' ry='2.9' fill='url(%23f)' opacity='0.41'/%3E%3Cellipse cx='331.7' cy='32.7' rx='1.3' ry='3.5' fill='url(%23f)' opacity='0.46'/%3E%3Cellipse cx='315.2' cy='320.3' rx='1.5' ry='3.8' fill='url(%23f)' opacity='0.42'/%3E%3Cellipse cx='393.9' cy='59.2' rx='1' ry='2.6' fill='url(%23f)' opacity='0.35'/%3E%3Cellipse cx='197.6' cy='32.8' rx='1.1' ry='3' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='312.7' cy='259.1' rx='0.8' ry='2' fill='url(%23f)' opacity='0.74'/%3E%3Cellipse cx='145.9' cy='379.8' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.47'/%3E%3Cellipse cx='379.1' cy='298.8' rx='0.8' ry='2.2' fill='url(%23f)' opacity='0.53'/%3E%3Cellipse cx='216.9' cy='100.7' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.38'/%3E%3Cellipse cx='203.8' cy='166.3' rx='1' ry='2.5' fill='url(%23f)' opacity='0.54'/%3E%3Cellipse cx='138.6' cy='154.5' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.41'/%3E%3Cellipse cx='38.2' cy='178.8' rx='0.9' ry='2.4' fill='url(%23f)' opacity='0.54'/%3E%3Cellipse cx='343.9' cy='378.5' rx='1.4' ry='3.5' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='92.3' cy='138.5' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.47'/%3E%3Cellipse cx='104.2' cy='95.9' rx='1' ry='2.5' fill='url(%23f)' opacity='0.73'/%3E%3Cellipse cx='206.1' cy='359.9' rx='1.1' ry='2.9' fill='url(%23f)' opacity='0.65'/%3E%3Cellipse cx='268' cy='237' rx='1.4' ry='3.7' fill='url(%23f)' opacity='0.59'/%3E%3Cellipse cx='201.4' cy='91.8' rx='0.8' ry='2' fill='url(%23f)' opacity='0.52'/%3E%3Cellipse cx='162.5' cy='52.2' rx='1.5' ry='3.8' fill='url(%23f)' opacity='0.36'/%3E%3Cellipse cx='176.6' cy='98.7' rx='1' ry='2.7' fill='url(%23f)' opacity='0.68'/%3E%3Cellipse cx='385.5' cy='159.4' rx='1.3' ry='3.3' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='116.1' cy='158.7' rx='1' ry='2.7' fill='url(%23f)' opacity='0.68'/%3E%3Cellipse cx='121.3' cy='358.6' rx='0.8' ry='2.2' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='252.3' cy='13.6' rx='1' ry='2.5' fill='url(%23f)' opacity='0.68'/%3E%3Cellipse cx='160.8' cy='22.9' rx='1.1' ry='2.8' fill='url(%23f)' opacity='0.57'/%3E%3Cellipse cx='187.8' cy='168.4' rx='1.5' ry='3.8' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='177.7' cy='178.7' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.45'/%3E%3Cellipse cx='192.8' cy='304.2' rx='0.8' ry='2' fill='url(%23f)' opacity='0.41'/%3E%3Cellipse cx='20.3' cy='267.9' rx='1.3' ry='3.5' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='248' cy='12.7' rx='1' ry='2.6' fill='url(%23f)' opacity='0.53'/%3E%3Cellipse cx='134.7' cy='100.1' rx='1' ry='2.6' fill='url(%23f)' opacity='0.44'/%3E%3Cellipse cx='28' cy='228.5' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.52'/%3E%3Cellipse cx='160.7' cy='324.1' rx='1.3' ry='3.3' fill='url(%23f)' opacity='0.53'/%3E%3Cellipse cx='2.4' cy='284.7' rx='1.3' ry='3.3' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='396.2' cy='196.7' rx='1' ry='2.6' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='41.9' cy='250.6' rx='0.8' ry='2.1' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='244.8' cy='273.9' rx='0.8' ry='2.2' fill='url(%23f)' opacity='0.63'/%3E%3Cellipse cx='377.2' cy='394.3' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.41'/%3E%3Cellipse cx='309.7' cy='70.9' rx='1.5' ry='3.9' fill='url(%23f)' opacity='0.36'/%3E%3Cellipse cx='6.7' cy='160.7' rx='0.8' ry='2' fill='url(%23f)' opacity='0.73'/%3E%3Cellipse cx='372.1' cy='103.9' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.49'/%3E%3Cellipse cx='327.3' cy='49.8' rx='1.5' ry='3.8' fill='url(%23f)' opacity='0.53'/%3E%3Cellipse cx='94.4' cy='178' rx='0.7' ry='1.8' fill='url(%23f)' opacity='0.36'/%3E%3Cellipse cx='189.9' cy='238.5' rx='1.5' ry='3.9' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='134.4' cy='104.6' rx='0.7' ry='1.9' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='279.8' cy='105.8' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.63'/%3E%3Cellipse cx='255.7' cy='180.8' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='303.3' cy='74.3' rx='1.1' ry='2.8' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='380.7' cy='202.1' rx='1.1' ry='2.8' fill='url(%23f)' opacity='0.38'/%3E%3Cellipse cx='25.7' cy='107.4' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.44'/%3E%3Cellipse cx='302' cy='257.2' rx='0.9' ry='2.4' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='333.8' cy='12.5' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.65'/%3E%3Cellipse cx='386.6' cy='132.9' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.67'/%3E%3Cellipse cx='121.2' cy='310.1' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.73'/%3E%3Cellipse cx='165.8' cy='43.7' rx='1.1' ry='2.9' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='365.5' cy='302.5' rx='1.1' ry='3' fill='url(%23f)' opacity='0.69'/%3E%3Cellipse cx='340.2' cy='244.8' rx='0.9' ry='2.4' fill='url(%23f)' opacity='0.35'/%3E%3Cellipse cx='234.5' cy='5.3' rx='1' ry='2.6' fill='url(%23f)' opacity='0.75'/%3E%3Cellipse cx='103.3' cy='275.6' rx='1.3' ry='3.3' fill='url(%23f)' opacity='0.48'/%3E%3Cellipse cx='240.7' cy='354.3' rx='1.3' ry='3.3' fill='url(%23f)' opacity='0.48'/%3E%3Cellipse cx='397.9' cy='268.3' rx='0.9' ry='2.3' fill='url(%23f)' opacity='0.67'/%3E%3Cellipse cx='313.5' cy='351' rx='1.4' ry='3.6' fill='url(%23f)' opacity='0.67'/%3E%3Cellipse cx='156.4' cy='302.4' rx='1.3' ry='3.4' fill='url(%23f)' opacity='0.68'/%3E%3Cellipse cx='86' cy='394.6' rx='1.2' ry='3' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='206.8' cy='312.2' rx='1.2' ry='3.1' fill='url(%23f)' opacity='0.47'/%3E%3Cellipse cx='196.2' cy='328.6' rx='0.9' ry='2.4' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='292.7' cy='315.2' rx='1.1' ry='2.9' fill='url(%23f)' opacity='0.63'/%3E%3Cellipse cx='254.2' cy='166.1' rx='0.7' ry='1.8' fill='url(%23f)' opacity='0.57'/%3E%3Cellipse cx='276.1' cy='221.9' rx='1' ry='2.7' fill='url(%23f)' opacity='0.57'/%3E%3Cellipse cx='41.9' cy='257.7' rx='0.8' ry='2' fill='url(%23f)' opacity='0.40'/%3E%3Cellipse cx='31.8' cy='381' rx='1.4' ry='3.7' fill='url(%23f)' opacity='0.60'/%3E%3Cellipse cx='375.1' cy='83.8' rx='1.2' ry='3.2' fill='url(%23f)' opacity='0.54'/%3E%3C/svg%3E") repeat 0 0 / 400px 400px;
}

/* near layer: bigger flakes, faster */
.nd-snow__near {
  --snow-tile: 700px;
  --snow-speed: 11s;
  --snow-sway: 8s;
  --snow-tilt: -30deg;
  top: calc(-35vw - 700px);
  opacity: calc(var(--snow-opacity) * .45);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='700' viewBox='0 0 700 700'%3E%3Cdefs%3E%3CradialGradient id='f' cx='.5' cy='.5' r='.5'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='1'/%3E%3Cstop offset='0.55' stop-color='%23fff' stop-opacity='0.85'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cellipse cx='447.6' cy='17.5' rx='1.9' ry='6.1' fill='url(%23f)' opacity='0.59'/%3E%3Cellipse cx='515.5' cy='473.7' rx='2.8' ry='9.1' fill='url(%23f)' opacity='0.53'/%3E%3Cellipse cx='295.3' cy='20.9' rx='1.8' ry='5.8' fill='url(%23f)' opacity='0.70'/%3E%3Cellipse cx='18.6' cy='139.2' rx='2.5' ry='7.9' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='154.3' cy='412.5' rx='2.7' ry='8.7' fill='url(%23f)' opacity='0.50'/%3E%3Cellipse cx='564.1' cy='488.7' rx='2' ry='6.4' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='670' cy='235.6' rx='1.6' ry='5.2' fill='url(%23f)' opacity='0.54'/%3E%3Cellipse cx='593.2' cy='422.6' rx='2.7' ry='8.7' fill='url(%23f)' opacity='0.79'/%3E%3Cellipse cx='375.4' cy='681.2' rx='2.1' ry='6.6' fill='url(%23f)' opacity='0.72'/%3E%3Cellipse cx='580.6' cy='433' rx='2.8' ry='8.9' fill='url(%23f)' opacity='0.73'/%3E%3Cellipse cx='493.2' cy='32.1' rx='1.8' ry='5.9' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='55.9' cy='163' rx='1.7' ry='5.3' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='445' cy='255.4' rx='2.1' ry='6.6' fill='url(%23f)' opacity='0.58'/%3E%3Cellipse cx='186.9' cy='655.7' rx='2.5' ry='7.9' fill='url(%23f)' opacity='0.74'/%3E%3Cellipse cx='119.8' cy='510.4' rx='1.7' ry='5.6' fill='url(%23f)' opacity='0.65'/%3E%3Cellipse cx='692.7' cy='448' rx='2.3' ry='7.5' fill='url(%23f)' opacity='0.77'/%3E%3Cellipse cx='590' cy='543.2' rx='1.8' ry='5.9' fill='url(%23f)' opacity='0.51'/%3E%3Cellipse cx='220.8' cy='187.4' rx='1.8' ry='5.8' fill='url(%23f)' opacity='0.88'/%3E%3Cellipse cx='613.5' cy='220.3' rx='2.5' ry='7.9' fill='url(%23f)' opacity='0.66'/%3E%3Cellipse cx='640.2' cy='321.2' rx='1.9' ry='6.1' fill='url(%23f)' opacity='0.60'/%3E%3Cellipse cx='393' cy='183.9' rx='2.4' ry='7.6' fill='url(%23f)' opacity='0.86'/%3E%3Cellipse cx='279.6' cy='153.5' rx='3' ry='9.6' fill='url(%23f)' opacity='0.70'/%3E%3Cellipse cx='63.6' cy='33' rx='1.7' ry='5.3' fill='url(%23f)' opacity='0.75'/%3E%3Cellipse cx='554.5' cy='295.5' rx='1.6' ry='5.1' fill='url(%23f)' opacity='0.65'/%3E%3Cellipse cx='-2.7' cy='370.4' rx='3' ry='9.5' fill='url(%23f)' opacity='0.84'/%3E%3Cellipse cx='697.3' cy='370.4' rx='3' ry='9.5' fill='url(%23f)' opacity='0.84'/%3E%3Cellipse cx='8' cy='504.5' rx='2.5' ry='8.1' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='186.8' cy='448.7' rx='1.7' ry='5.3' fill='url(%23f)' opacity='0.67'/%3E%3Cellipse cx='317.6' cy='667.7' rx='2.8' ry='9' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='350.4' cy='125.1' rx='2.9' ry='9.2' fill='url(%23f)' opacity='0.85'/%3E%3Cellipse cx='208.9' cy='447.3' rx='2.4' ry='7.7' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='533.8' cy='377.6' rx='2.7' ry='8.5' fill='url(%23f)' opacity='0.71'/%3E%3Cellipse cx='0.4' cy='226.9' rx='1.5' ry='4.9' fill='url(%23f)' opacity='0.87'/%3E%3Cellipse cx='700.4' cy='226.9' rx='1.5' ry='4.9' fill='url(%23f)' opacity='0.87'/%3E%3Cellipse cx='615.1' cy='582.2' rx='2' ry='6.3' fill='url(%23f)' opacity='0.52'/%3E%3Cellipse cx='614.6' cy='662.9' rx='1.6' ry='5.2' fill='url(%23f)' opacity='0.69'/%3E%3Cellipse cx='48.4' cy='532.4' rx='2.6' ry='8.5' fill='url(%23f)' opacity='0.55'/%3E%3Cellipse cx='332.7' cy='384.9' rx='1.9' ry='6.1' fill='url(%23f)' opacity='0.85'/%3E%3Cellipse cx='296.2' cy='148.3' rx='2.3' ry='7.4' fill='url(%23f)' opacity='0.79'/%3E%3Cellipse cx='140.8' cy='218.2' rx='3' ry='9.6' fill='url(%23f)' opacity='0.76'/%3E%3Cellipse cx='306.7' cy='362.3' rx='1.7' ry='5.4' fill='url(%23f)' opacity='0.59'/%3E%3Cellipse cx='236.7' cy='411.8' rx='1.8' ry='5.9' fill='url(%23f)' opacity='0.59'/%3E%3Cellipse cx='49.7' cy='441.8' rx='1.8' ry='5.9' fill='url(%23f)' opacity='0.86'/%3E%3Cellipse cx='601.7' cy='49.6' rx='1.9' ry='5.9' fill='url(%23f)' opacity='0.77'/%3E%3Cellipse cx='150' cy='92.6' rx='2.9' ry='9.3' fill='url(%23f)' opacity='0.73'/%3E%3Cellipse cx='330.9' cy='549.2' rx='2.7' ry='8.7' fill='url(%23f)' opacity='0.58'/%3E%3Cellipse cx='67.9' cy='301.7' rx='2.1' ry='6.8' fill='url(%23f)' opacity='0.69'/%3E%3Cellipse cx='510.4' cy='471.4' rx='3' ry='9.5' fill='url(%23f)' opacity='0.54'/%3E%3Cellipse cx='281.8' cy='237.5' rx='2.8' ry='8.9' fill='url(%23f)' opacity='0.60'/%3E%3Cellipse cx='133.1' cy='314' rx='2.1' ry='6.8' fill='url(%23f)' opacity='0.61'/%3E%3Cellipse cx='174.9' cy='646.3' rx='2.2' ry='6.9' fill='url(%23f)' opacity='0.84'/%3E%3Cellipse cx='385.2' cy='35.4' rx='3' ry='9.6' fill='url(%23f)' opacity='0.83'/%3E%3Cellipse cx='678.3' cy='648.5' rx='2.8' ry='8.9' fill='url(%23f)' opacity='0.57'/%3E%3Cellipse cx='339.9' cy='149.6' rx='2.1' ry='6.7' fill='url(%23f)' opacity='0.52'/%3E%3Cellipse cx='265.3' cy='689.7' rx='1.9' ry='6.1' fill='url(%23f)' opacity='0.81'/%3E%3Cellipse cx='318.5' cy='296.1' rx='2.9' ry='9.4' fill='url(%23f)' opacity='0.90'/%3E%3Cellipse cx='389' cy='502.9' rx='1.7' ry='5.5' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='678.1' cy='405.4' rx='2.3' ry='7.4' fill='url(%23f)' opacity='0.80'/%3E%3Cellipse cx='40' cy='408.9' rx='2.3' ry='7.2' fill='url(%23f)' opacity='0.84'/%3E%3Cellipse cx='110.2' cy='672.5' rx='1.6' ry='5.2' fill='url(%23f)' opacity='0.57'/%3E%3Cellipse cx='416.5' cy='472.6' rx='1.9' ry='5.9' fill='url(%23f)' opacity='0.55'/%3E%3Cellipse cx='623.2' cy='172.4' rx='2.4' ry='7.7' fill='url(%23f)' opacity='0.75'/%3E%3Cellipse cx='293.5' cy='408.6' rx='2.3' ry='7.3' fill='url(%23f)' opacity='0.87'/%3E%3Cellipse cx='143' cy='501.3' rx='1.9' ry='5.9' fill='url(%23f)' opacity='0.66'/%3E%3Cellipse cx='470.2' cy='210' rx='2' ry='6.3' fill='url(%23f)' opacity='0.80'/%3E%3Cellipse cx='50.8' cy='320.8' rx='3' ry='9.6' fill='url(%23f)' opacity='0.90'/%3E%3Cellipse cx='51.3' cy='149.2' rx='1.9' ry='6.1' fill='url(%23f)' opacity='0.87'/%3E%3Cellipse cx='616.6' cy='615.5' rx='2.1' ry='6.6' fill='url(%23f)' opacity='0.56'/%3E%3Cellipse cx='583.6' cy='492.5' rx='2.4' ry='7.7' fill='url(%23f)' opacity='0.89'/%3E%3Cellipse cx='457.8' cy='5.5' rx='2.7' ry='8.7' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='457.8' cy='705.5' rx='2.7' ry='8.7' fill='url(%23f)' opacity='0.62'/%3E%3Cellipse cx='464.4' cy='657.3' rx='1.7' ry='5.4' fill='url(%23f)' opacity='0.55'/%3E%3Cellipse cx='74.9' cy='387.3' rx='1.9' ry='6.1' fill='url(%23f)' opacity='0.74'/%3E%3C/svg%3E") repeat 0 0 / 1100px 1100px;
}

@keyframes snow-blizzard-fall {
  to { transform: translateY(var(--snow-tile)); }
}
@keyframes snow-blizzard-sway {
  from { translate: -18px 0; }
  to   { translate: 18px 0; }
}

/* random(): a new storm on every page load, when the browser supports it */
@supports (animation-duration: random(1s, 2s)) {
  .nd-snow__far {
    --snow-speed: random(14s, 20s);
    --snow-sway: random(8s, 14s);
    --snow-tilt: calc(random(20deg, 34deg) * sign(random(-1, 1)));
    background-position: random(0px, 400px) random(0px, 400px);
  }
  .nd-snow__near {
    --snow-speed: random(9s, 15s);
    --snow-sway: random(7s, 11s);
    --snow-tilt: calc(random(22deg, 36deg) * sign(random(-1, 1)));
    background-position: random(0px, 700px) random(0px, 700px);
  }
}

/* Lighter on small screens: drop the near layer and ease opacity. */
@media (max-width: 700px) {
  .nd-snow { --snow-opacity: .6; }
  .nd-snow__near { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .nd-snow { display: none !important; }
}
