:root {
  --navy: #0E2233;
  --deep: #071C2A;
  --ivory: #F7F4EC;
  --paper: #EFE9DD;
  --gold: #C9A24A;
  --gold-soft: #E3CB8A;
  --blue: #05668D;
  --lime: #A5BE00;
  --r-warmup: #7A6A2A;
  --r-retirement: #24527A;
  --r-unexpected: #B85A26;
  --r-home: #4D7A3A;
  --r-arrival: #0E2233;
  --ink: #0E2233;
  --ink-2: #3D4B57;
  --line: rgba(14, 34, 51, 0.14);
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--sans); color: var(--ink); background: var(--ivory); -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: var(--serif); font-weight: 700; letter-spacing: -0.01em; margin: 0; }
p { margin: 0; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
.mono { font-family: var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
mark.ph { background: rgba(201, 162, 74, 0.28); color: inherit; border-radius: 0.2em; padding: 0 0.15em; }
[hidden] { display: none !important; }

/* Highway signs (mile markers + EXIT). Highway green is used only here. */
:root { --hwy: #1E5B3A; }
.mm { display: inline-grid; place-items: center; background: var(--hwy); border-radius: 0.24em; padding: 0.12em; vertical-align: middle; line-height: 1; flex: none; }
.mm > span { display: grid; place-items: center; min-width: 1.25em; height: 1.5em; padding: 0 0.18em; border: 0.09em solid #fff; border-radius: 0.14em; color: #fff; font-family: var(--sans); font-weight: 700; letter-spacing: 0; text-transform: none; }
.mmlabel { display: inline-flex; align-items: center; gap: 0.5em; }
.exitsign { display: inline-flex; flex-direction: column; align-items: flex-end; font-family: var(--sans); font-weight: 700; color: #fff; letter-spacing: 0; text-transform: none; line-height: 1.05; }
.exitsign .tab { background: var(--hwy); border: 0.08em solid #fff; border-bottom: 0; border-radius: 0.28em 0.28em 0 0; padding: 0.22em 0.6em 0.16em; margin-right: 1.1em; box-shadow: 0 0 0 0.12em var(--hwy); position: relative; z-index: 1; font-size: 0.8em; }
.exitsign .panel { background: var(--hwy); border: 0.08em solid #fff; border-radius: 0.32em; box-shadow: 0 0 0 0.14em var(--hwy), 0 0.25em 0.8em rgba(0, 0, 0, 0.18); padding: 0.55em 1.1em 0.6em; display: flex; flex-direction: column; align-items: center; gap: 0.2em; text-align: center; margin-top: -0.08em; }
.exitsign .dest { font-size: 1em; }
.exitsign .val { font-size: 1.7em; }
.exitsign .sub { font-size: 0.6em; font-weight: 600; opacity: 0.9; }
