/* TransitAI Core · site-specific styles (the home page route map). */
.route-map svg {
  width: 100%;
  overflow: visible;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
}
.route-map path {
  fill: none;
  stroke-width: 6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.route-map .in path { stroke: #3a3a3c; }
.route-map .out path { stroke: var(--accent); opacity: 0.85; }
.route-map .trunk { stroke: var(--ink); }
.route-map .stops circle { fill: var(--bg); stroke: #636366; stroke-width: 3; }
.route-map .core circle { fill: var(--bg); stroke: var(--ink); stroke-width: 4; }
.route-map .bus circle { fill: #fff; filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.8)); }
.route-map figcaption { text-align: center; margin-top: clamp(18px, 3vw, 32px); }

@media (prefers-reduced-motion: reduce) {
  .route-map .bus { display: none; }
}

/* Architecture section: the diagram and the field-classification tables. */
.diagram img { width: 100%; border-radius: var(--r-lg); background: #0b0b0d; }
.fields .panel { padding: clamp(14px, 2vw, 22px); overflow-x: auto; }
.fields table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: var(--t-small); line-height: 1.4; }
.fields th, .fields td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.fields th { color: var(--muted); font-weight: 500; }
.fields td:first-child { font: 0.8rem var(--mono); color: var(--ink); white-space: nowrap; }
.fields td:nth-child(2), .fields td:nth-child(3) { white-space: nowrap; }
.fields td:last-child { color: var(--ink-2); }
.c-crit { color: var(--accent); font-weight: 600; }
.c-imp { color: var(--ink-2); }
.c-info { color: var(--muted); }
.s-restricted { color: #ff9f0a; font-weight: 600; }
