
html {
  -webkit-font-smoothing: antialiased;
}

.hero-label {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.sort-row label,
.ff-origins-title,
.sort-controls label,
.scatter-title,
.hm-legend-title,
.hm-sum-l,
.hm-sort-caption {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
  color: var(--text3);
}

.rp-help summary {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.rp-eyebrow:not(.rp-eyebrow--tagline) {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.sample-kpi-label,
.kpi-label {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.preview-card-title {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
}

.roi-table th {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
}

.gap-hl-title {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
}

.journey-node-title {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.toolbar-note {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.sum-doc .sum-section-title,
.sum-doc .sum-prepared-label {
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
}

.sum-doc .table th {
  font-size: var(--crt-cat-fs);
  letter-spacing: var(--crt-cat-ls);
  font-weight: var(--crt-cat-fw);
}

.props-label {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

#class-analysis .ca-chart-rail-label {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
  color: var(--text3);
}

#class-analysis .ca-region-callout-title.is-prompt {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

#class-analysis .ca-sort-row label,
.ca-sort-row label {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
  color: var(--text-muted);
}

.pick-sel-hdr {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.chip-box-title:not(.chip-title-fw) {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.chip-box-title.chip-title-fw {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.35;
}

.rm-badge {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
  color: var(--text3);
}

.fw-card-cat {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
  color: var(--text3);
}

.results-count {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
  color: var(--text3);
}

#class-analysis .ca-results-count,
.ca-results-count {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
  color: var(--text-muted);
}

.sum-doc .sum-kpi-label {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.ca-inp-row label {
  font-family: var(--mono);
  font-size: var(--crt-cat-fs);
  font-weight: var(--crt-cat-fw);
  letter-spacing: var(--crt-cat-ls);
  text-transform: uppercase;
}

.tab-btn {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.sort-btn,
.view-btn {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.fw-add-btn {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.tag {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.pick-chip {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.chip {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

#class-analysis .ca-region-chip,
.ca-region-chip {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

#class-analysis .ca-sort-btn,
.ca-sort-btn {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.chip-e,
.chip-t {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.ff-region-filters .ff-reg-btn {
  font-family: var(--outfit);
  font-size: var(--crt-pill-fs);
  font-weight: var(--crt-pill-fw);
}

.ff-region-filters .ff-reg-btn.active {
  font-weight: 600;
}

.tab-btn.active,
.sort-btn.active,
.view-btn.active {
  font-weight: 600;
}

#class-analysis .ca-sort-btn.active,
.ca-sort-btn.active {
  font-weight: 600;
}

.fw-card,
.kpi-card,
.hm-sum-card,
.neighbor-card,
.journey-time-card,
.prev-stat,
.hrs-card,
.mc-box {
  transition:
    transform var(--crt-dur-motion) var(--crt-ease-smooth),
    box-shadow var(--crt-dur-motion) ease,
    border-color var(--crt-dur-motion) ease;
}

.fw-card:hover,
.fw-card:focus-within,
.kpi-card:hover,
.hm-sum-card:hover,
.neighbor-card:hover,
.neighbor-card:focus-within,
.journey-time-card:hover,
.prev-stat:hover,
.hrs-card:hover,
.mc-box:hover {
  transform: translateY(var(--crt-lift-card));
  box-shadow: var(--crt-shadow-card-hover-a), var(--crt-shadow-card-hover-b);
  border-color: rgba(245, 167, 0, var(--crt-alpha-amber-35));
}

@keyframes crt-line-flow {
  from { background-position: 0% 50%; }
  to   { background-position: 200% 50%; }
}
:root {
  --crt-line-flow-duration: 12s;
}

.kpi-card::before,
.fw-card-accent,
.gap-fuse-inner::before,
.prev-stat::before,
.sum-kpi::before {
  background-image: linear-gradient(
    90deg,
    rgba(74, 158, 255, 0.55) 0%,
    rgba(245, 167, 0, 0.65) 25%,
    rgba(74, 158, 255, 0.55) 50%,
    rgba(245, 167, 0, 0.65) 75%,
    rgba(74, 158, 255, 0.55) 100%
  ) !important;
  background-size: 200% 100% !important;
  background-repeat: no-repeat !important;
  background-position: 0% 50%;
  animation: none;
}

.fw-card-top-bar,
.ca-fw-card-top-bar {
  --crt-topbar-radius: calc(var(--r2) - 1px);
  --crt-topbar-inset-x: 2px;
  --crt-topbar-inset-y: 1px;
  position: absolute;
  top: var(--crt-topbar-inset-y);
  left: var(--crt-topbar-inset-x);
  right: var(--crt-topbar-inset-x);
  height: 2px !important;
  border-radius: calc(var(--crt-topbar-radius) - 1px) calc(var(--crt-topbar-radius) - 1px) 0 0;
  overflow: hidden;
}
.ca-fw-card-top-bar {
  --crt-topbar-radius: calc(var(--radius-lg) - 1px);
  --crt-topbar-inset-x: 2px;
  --crt-topbar-inset-y: 1px;
}
.fw-card-top-bar::after,
.ca-fw-card-top-bar::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
    90deg,
    rgba(74, 158, 255, 0.55) 0%,
    rgba(245, 167, 0, 0.65) 25%,
    rgba(74, 158, 255, 0.55) 50%,
    rgba(245, 167, 0, 0.65) 75%,
    rgba(74, 158, 255, 0.55) 100%
  );
  background-size: 220% 100%;
  background-repeat: no-repeat;
  background-position: 0% 50%;
}

.hm-sum-card,
.hrs-card,
.neighbor-card,
.mc-box {
  position: relative;
  overflow: hidden;
}
.hm-sum-card::before,
.hrs-card::before,
.neighbor-card::before,
.mc-box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background-image: linear-gradient(
    90deg,
    rgba(74, 158, 255, 0.55) 0%,
    rgba(245, 167, 0, 0.65) 25%,
    rgba(74, 158, 255, 0.55) 50%,
    rgba(245, 167, 0, 0.65) 75%,
    rgba(74, 158, 255, 0.55) 100%
  );
  background-size: 200% 100%;
  background-repeat: no-repeat;
  background-position: 0% 50%;
  pointer-events: none;
}

.kpi-card:hover::before,
.fw-card:hover .fw-card-accent,
.fw-card:focus-within .fw-card-accent,
.fw-card:hover .fw-card-top-bar::after,
.fw-card:focus-within .fw-card-top-bar::after,
.gap-fuse-outer:hover .gap-fuse-inner::before,
.gap-fuse-inner:hover::before,
.hm-sum-card:hover::before,
.hrs-card:hover::before,
.mc-box:hover::before,
.neighbor-card:hover::before,
.neighbor-card:focus-within::before,
.prev-stat:hover::before,
.ca-fw-card:hover .ca-fw-card-top-bar::after,
.ca-fw-card:focus-within .ca-fw-card-top-bar::after,
.sum-kpi:hover::before {
  animation: crt-line-flow var(--crt-line-flow-duration) linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .fw-card:hover,
  .fw-card:focus-within,
  .kpi-card:hover,
  .hm-sum-card:hover,
  .neighbor-card:hover,
  .neighbor-card:focus-within,
  .journey-time-card:hover,
  .prev-stat:hover,
  .hrs-card:hover,
  .mc-box:hover {
    transform: none;
  }
  .kpi-card::before,
  .fw-card-accent,
  .gap-fuse-inner::before,
  .prev-stat::before,
  .fw-card-top-bar::after,
  .ca-fw-card-top-bar::after,
  .sum-kpi::before {
    animation: none;
  }
}
