/* Crossing exposure — only what this analysis adds on top of the shared base.css
   (tokens, reset, nav, hero, section, #map, .grid/.card shell, footer). */

:root{
  /* time-in-roadway ramp — one hue, monotone lightness (longer exposure = darker).
     A cooler hue than the crossing-width page, so the two analyses stay distinct
     at a glance while using the same monotone-lightness construction. */
  --r1:#7fb0c9; --r2:#5590b4; --r3:#37709a; --r4:#28527a; --r5:#1b375a;
}

#map{height:560px}

/* legend */
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:16px;
  font-size:.82rem;color:var(--ink2)}
.ramp{display:flex;align-items:center;gap:0}
.ramp i{width:34px;height:12px;display:block}
.ramp .lab{font-family:var(--mono);font-size:.72rem;margin-left:8px;color:var(--ink2)}
.key{display:flex;align-items:center;gap:7px}
.key i{width:26px;height:0;display:block;border-top:3px solid var(--ink2)}
.key i.dash{border-top-style:dashed}
.key i.ref{border:0;height:11px;width:11px;border-radius:50%;background:transparent;
  box-shadow:inset 0 0 0 2.5px #2f8f6b}

/* cards: one per crossing */
.card{scroll-margin-top:20px}
.card.flash{animation:cardflash 1.8s ease-out}
@keyframes cardflash{
  0%,12%{box-shadow:0 0 0 3px var(--accent),var(--shadow)}
  100%{box-shadow:0 0 0 0 rgba(228,87,46,0),var(--shadow)}
}
.card h3{margin:0 0 3px;font-size:1rem;line-height:1.3}
.card .sub{font-family:var(--mono);font-size:.72rem;color:var(--ink2);
  letter-spacing:.02em;text-transform:uppercase;margin:0 0 10px}

/* the headline pair: distance and the time it buys you */
.figs{display:flex;align-items:baseline;gap:16px;margin:0 0 10px}
.figs b{font-family:var(--mono);font-size:1.5rem;font-weight:700;color:var(--ink);
  line-height:1}
.figs span{font-size:.76rem;color:var(--ink2)}

/* facts */
table.facts{width:100%;border-collapse:collapse;font-size:.82rem}
table.facts td{padding:4px 0;border-bottom:1px solid #f0ece4;vertical-align:middle}
table.facts tr:last-child td{border-bottom:0}
table.facts td:first-child{color:var(--ink2);width:9.5em}
table.facts td:last-child{text-align:right;font-weight:600;color:var(--ink)}

/* badges */
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.tag{font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  padding:2px 8px;border-radius:999px;background:#f0ece4;color:var(--ink2)}
.tag.none{background:#fbe4dc;color:#9b3211}
.tag.ref{background:#e0f0e8;color:#26694f}
.tag.warn{background:#fdf0d6;color:#8a5b12}
.tag.ok{background:#e4ecf6;color:#2b4a70}

.card .links{display:flex;gap:16px;margin-top:11px;padding-top:10px;border-top:1px solid #f0ece4}
.card .links a{color:var(--ink2);font-size:.75rem;font-weight:600;text-decoration:none;
  letter-spacing:.01em}
.card .links a:hover{color:var(--accent-d);text-decoration:underline}

/* methodology */
.method{color:var(--ink2)}
.method h2,.method h3{color:var(--ink)}
.method h3{margin:24px 0 6px;font-size:1rem}
.method p{max-width:72ch;margin:0 0 12px}

.note{color:var(--ink2);font-size:.88rem;max-width:72ch}

/* work-in-progress banner — honest about what is still unsettled */
.wip{background:#fdf0d6;border-bottom:1px solid #eddcb4}
.wip p{margin:0;padding:13px 0;color:#6d4a0d;font-size:.86rem;max-width:78ch;line-height:1.55}
.wip b{color:#5a3c08}
.wip-tag{display:inline-block;margin-left:9px;padding:2px 8px;border-radius:999px;
  background:#f3d99a;color:#6d4a0d;font-size:.62rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;vertical-align:middle}
