:root {
  --bg: #f1d9a8;
  --ink: #3a2433;
  --rust: #a8461f;
  --ochre: #d9973f;
  --teal: #3f7f8c;
  --muted: #6b4a3f;
  --rule: rgba(58, 36, 51, .22);
  --narrow: "Bahnschrift", "DIN Alternate", "Arial Narrow", "Roboto Condensed", "PingFang SC", "Microsoft YaHei", sans-serif;
  --sans: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #21161f;
    --ink: #f3dfb8;
    --rust: #ee8a5a;
    --ochre: #e9b060;
    --teal: #7fc0cc;
    --muted: #cdb08d;
    --rule: rgba(243, 223, 184, .2);
    color-scheme: dark;
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font: 17px/1.75 var(--sans);
  overflow-x: hidden;
}
a { color: inherit; }
:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }

.top {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 20px;
  padding: 18px clamp(16px, 4vw, 56px);
}
.brand { display: flex; gap: 10px; align-items: center; text-decoration: none; font-family: var(--narrow); font-weight: 700; font-size: 22px; letter-spacing: .04em; }
.where { margin: 0; color: var(--muted); font-size: 15px; }

.ground {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  grid-template-areas: "copy earth" "dial earth";
  gap: 24px clamp(20px, 4vw, 56px);
  padding: clamp(20px, 5vw, 56px) clamp(16px, 4vw, 56px);
  align-items: end;
}
.ground-copy { grid-area: copy; align-self: start; }
h1 {
  font-family: var(--narrow);
  font-weight: 700;
  font-size: clamp(34px, 5.4vw, 68px);
  line-height: 1.12;
  letter-spacing: -.01em;
  margin: 0 0 .5em;
}
.ground-copy p { margin: 0; color: var(--muted); max-width: 26em; }
#earth {
  grid-area: earth;
  display: block; width: 100%; aspect-ratio: 5 / 4; height: auto;
  border-radius: 50% 50% 8px 8px / 18% 18% 8px 8px;
}
.dial { grid-area: dial; display: grid; grid-template-columns: auto 1fr auto; gap: 6px 14px; align-items: center; }
.dial label { font-weight: 700; }
.dial output { font-family: var(--narrow); font-size: 40px; font-weight: 700; color: var(--rust); font-variant-numeric: tabular-nums; min-width: 3ch; text-align: right; }
input[type=range] { width: 100%; accent-color: var(--teal); }
.say { grid-column: 1 / -1; margin: 0; min-height: 3.5em; color: var(--muted); }

.forecast, .kit { max-width: 860px; padding: clamp(40px, 7vw, 88px) clamp(16px, 4vw, 56px) 0; }
h2 { font-family: var(--narrow); font-weight: 700; font-size: clamp(26px, 4vw, 40px); margin: 0 0 24px; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
thead th { font-size: 14px; color: var(--muted); font-weight: 400; }
tbody th { font-weight: 700; white-space: nowrap; }
td:nth-child(2) { font-family: var(--narrow); font-size: 22px; color: var(--rust); font-variant-numeric: tabular-nums; white-space: nowrap; }
.kit dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 10px 28px; }
.kit dt { font-weight: 700; }
.kit dd { margin: 0; color: var(--muted); }

.foot { padding: 90px clamp(16px, 4vw, 56px) 40px; color: var(--muted); font-size: 15px; }

@media (max-width: 820px) {
  .ground { grid-template-columns: minmax(0, 1fr); grid-template-areas: "copy" "earth" "dial"; }
}
@media (max-width: 480px) {
  .kit dl { grid-template-columns: 1fr; gap: 0; }
  .kit dd { margin-bottom: 12px; }
  th, td { padding-right: 8px; }
}
