.contact, .markdown { padding-bottom: 45px; }
.weather-footer {
  --sky-x: 0px;
  --sky-y: 0px;
  --light-x: 50%;
  --light-y: 55%;
  --sky-brightness: 1.23;
  --veil: .46;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 510px;
  background: #d8e0e5;
  color: #334550;
  font-family: Geist, Arial, sans-serif;
}
.weather-sky { position: absolute; inset: -24px; z-index: -2; }
.weather-sky img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 65%;
  filter: saturate(.22) brightness(var(--sky-brightness));
  transform: translate(var(--sky-x), var(--sky-y)) scale(1.025);
  transition: transform 1.8s ease-out, filter .6s ease;
}
.weather-sky::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at var(--light-x) var(--light-y), #fff9, transparent 58%), #e5e9e9;
  opacity: var(--veil);
  transition: opacity .6s ease;
}
.weather-footer::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(to bottom, var(--paper, #faf8f3), #faf8f3e8 9%, #faf8f354 35%, transparent 58%, #e8ececa6);
}
.weather-inner { width: min(100% - 44px, 560px); margin: 0 auto; padding: 35px 0 27px; }
.weather-kicker { margin: 0 0 8px; font-size: 10px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: #67757d; }
.weather-footer h2 { margin: 0 0 10px; font: 400 32px/1.2 Georgia, 'Times New Roman', serif; letter-spacing: -.025em; }
.weather-note { max-width: 300px; margin: 0; font-size: 13px; line-height: 1.6; color: #4b5b64; }
.weather-controls { width: 190px; margin-top: 24px; }
.weather-controls label { display: block; font-size: 11px; color: #4b5b64; }
.weather-control-row { display: flex; align-items: center; gap: 10px; }
.weather-control-row span { font-size: 10px; color: #566771; }
.weather-light { width: 120px; min-width: 0; height: 28px; margin: 0; appearance: none; background: transparent; cursor: ew-resize; accent-color: #657e90; }
.weather-light::-webkit-slider-runnable-track { height: 2px; background: #6d81926b; border-radius: 2px; }
.weather-light::-moz-range-track { height: 2px; background: #6d81926b; border-radius: 2px; }
.weather-light::-webkit-slider-thumb { appearance: none; width: 12px; height: 12px; margin-top: -5px; border: 1px solid #758b9a; border-radius: 50%; background: #f7fafb; box-shadow: 0 1px 5px #637d9130; }
.weather-light::-moz-range-thumb { width: 10px; height: 10px; border: 1px solid #758b9a; border-radius: 50%; background: #f7fafb; }
.weather-light:focus-visible { outline: 2px solid #536d9d; outline-offset: 4px; border-radius: 4px; }
.weather-signoff { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-top: 190px; font-size: 10px; color: #415764; }
.weather-signoff p { margin: 0; color: inherit; }
.weather-word { font: italic 18px Georgia, 'Times New Roman', serif; }
.weather-definition { display: block; margin-top: 3px; font-size: 10px; font-style: normal; letter-spacing: .035em; }
.weather-location { text-align: right; }
@media (max-width: 640px) {
  .weather-inner { width: min(100% - 36px, 560px); }
  .weather-footer { min-height: 470px; }
  .weather-footer h2 { font-size: 29px; }
  .weather-signoff { margin-top: 150px; }
}
@media (prefers-reduced-motion: reduce) {
  .weather-sky img { transform: none; transition: none; }
  .weather-sky::after { transition: none; }
}
