  /* Sun: same two-layer build; the back layer breathes out as a corona */
  .sun-track {
    transform: translate(calc(0.00vw + 100.00% + 140.0px), 10.00vh);
    animation-name: sun-travel;
  }
  /* The sun is drawn as a radiant burst on a canvas four times its size,
     centred on it, so the glow and rays spill out into the sky. */
  .sun { background: none; }
  .sun canvas {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 400%;
    height: 400%;
    max-width: none;
    translate: -50% -50%;
    pointer-events: none;
  }
  .sun::before {
    display: none;
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--sun-glow);
    z-index: -1;
    animation: sun-corona 9.2s linear infinite alternate;
  }
  @keyframes sun-corona {
    0%   { transform: scale(.95); box-shadow: 0 0 10px var(--sun-glow); }
    50%  { transform: scale(1.1); box-shadow: 0 0 20px var(--sun-glow), 0 0 110px 24px var(--sun-haze); }
    100% { transform: scale(.95); box-shadow: 0 0 10px var(--sun-glow); }
  }
  @keyframes sun-travel {
    0.00% { transform: translate(calc(0.00vw + 100.00% + 140.0px), 10.00vh); }
    50.00% { transform: translate(calc(-0.00vw + 100.00% + 140.0px), 10.00vh); }
    52.08% { transform: translate(calc(-4.17vw + 95.83% + 129.2px), 8.40vh); }
    54.17% { transform: translate(calc(-8.33vw + 91.67% + 118.3px), 6.94vh); }
    56.25% { transform: translate(calc(-12.50vw + 87.50% + 107.5px), 5.62vh); }
    58.33% { transform: translate(calc(-16.67vw + 83.33% + 96.7px), 4.44vh); }
    60.42% { transform: translate(calc(-20.83vw + 79.17% + 85.8px), 3.40vh); }
    62.50% { transform: translate(calc(-25.00vw + 75.00% + 75.0px), 2.50vh); }
    64.58% { transform: translate(calc(-29.17vw + 70.83% + 64.2px), 1.74vh); }
    66.67% { transform: translate(calc(-33.33vw + 66.67% + 53.3px), 1.11vh); }
    68.75% { transform: translate(calc(-37.50vw + 62.50% + 42.5px), 0.62vh); }
    70.83% { transform: translate(calc(-41.67vw + 58.33% + 31.7px), 0.28vh); }
    72.92% { transform: translate(calc(-45.83vw + 54.17% + 20.8px), 0.07vh); }
    75.00% { transform: translate(calc(-50.00vw + 50.00% + 10.0px), 0.00vh); }
    77.08% { transform: translate(calc(-54.17vw + 45.83% + -0.8px), 0.07vh); }
    79.17% { transform: translate(calc(-58.33vw + 41.67% + -11.7px), 0.28vh); }
    81.25% { transform: translate(calc(-62.50vw + 37.50% + -22.5px), 0.62vh); }
    83.33% { transform: translate(calc(-66.67vw + 33.33% + -33.3px), 1.11vh); }
    85.42% { transform: translate(calc(-70.83vw + 29.17% + -44.2px), 1.74vh); }
    87.50% { transform: translate(calc(-75.00vw + 25.00% + -55.0px), 2.50vh); }
    89.58% { transform: translate(calc(-79.17vw + 20.83% + -65.8px), 3.40vh); }
    91.67% { transform: translate(calc(-83.33vw + 16.67% + -76.7px), 4.44vh); }
    93.75% { transform: translate(calc(-87.50vw + 12.50% + -87.5px), 5.62vh); }
    95.83% { transform: translate(calc(-91.67vw + 8.33% + -98.3px), 6.94vh); }
    97.92% { transform: translate(calc(-95.83vw + 4.17% + -109.2px), 8.40vh); }
    100.00% { transform: translate(calc(-100.00vw + 0.00% + -120.0px), 10.00vh); }
  }
