/* GENERATED from product/design-tokens.json by site/styles/site.css.ts. */
:root {
  --color-primary: #38BDF8;
  --color-primaryPressed: #0EA5E9;
  --color-primaryMuted: #38BDF833;
  --color-onPrimary: #04121C;
  --color-surface: #07090D;
  --color-surfaceRaised: #12161D;
  --color-surfaceOverlay: #1A1F28;
  --color-surfaceSunken: #04060A;
  --color-scrim: #000000B3;
  --color-border: #263041;
  --color-borderStrong: #3A465C;
  --color-focusRing: #7DD3FC;
  --color-textPrimary: #F2F5F9;
  --color-textSecondary: #9AA7B8;
  --color-textTertiary: #67748A;
  --color-textOnScrim: #FFFFFF;
  --color-danger: #EF4444;
  --color-warning: #F59E0B;
  --color-success: #22C55E;
  --color-info: #38BDF8;
  --color-radarBackground: #05070A;
  --color-radarGrid: #1B2431;
  --color-radarRing: #2A3849;
  --color-radarAzimuthSpoke: #1B2431;
  --color-radarSiteMarker: #F2F5F9;
  --color-radarSelection: #FFFFFF;
  --color-radarStationMarker: #7E8FA6;
  --color-radarStationMarkerSelected: #38BDF8;
  --color-radarStationLabel: #B7C2D2;
  --color-radarStationLabelHalo: #05070ACC;
  --color-radarScaleBar: #9AA7B8;
  --color-radarRangeFolded: #77007D;
  --color-radarNoData: #00000000;
  --color-basemapCoastline: #3C4C63;
  --color-basemapLake: #2E3E55;
  --color-basemapBorderNational: #4C5F7C;
  --color-basemapBorderSubnational: #314055;
  --color-basemapRoadInterstate: #5C4B37;
  --color-basemapRoadUsHighway: #42372A;
  --color-basemapPlaceDot: #6B7A90;
  --color-basemapPlaceLabel: #9AA7B8;
  --color-basemapPlaceLabelHalo: #05070ACC;
  --color-xsectionBackdrop: #04060A;
  --color-xsectionUnsampled: #1B2431;
  --color-xsectionSampledNoEcho: #0C1017;
  --color-xsectionBeamPath: #3A465C;
  --color-xsectionAxis: #263041;
  --color-xsectionGround: #67748A;
  --color-arReticle: #38BDF8;
  --color-arFootprint: #38BDF866;
  --color-arGround: #0EA5E933;
  --color-arAltitudeTick: #9AA7B8;
  --color-arOutline: #38BDF84D;
  --color-arHorizon: #9AA7B899;
  --color-alertRingTornado: #FF1D1D;
  --color-alertRingSevere: #FFC400;
  --color-alertRingFlashFlood: #00E06A;
  --color-alertRingFlood: #2DD4BF;
  --color-alertRingSnowSquall: #22D3EE;
  --color-alertRingMarine: #FF8A3D;
  --color-alertRingOther: #9AA7B8;
  --color-alertRingCasing: #05070ACC;
  --color-alertRingSelected: #FFFFFF;
  --space-xxs: 2px;
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 40px;
  --space-xxl: 64px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --type-display: 34px;
  --type-title: 28px;
  --type-headline: 20px;
  --type-body: 15px;
  --type-label: 13px;
  --type-caption: 12px;
  --type-mono: 12px;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --line-tight: 1.15;
  --line-normal: 1.35;
  --line-loose: 1.5;
  --border-hairline: 1px;
  --border-thin: 1.5px;
  --border-thick: 2px;
  --opacity-disabled: 0.35;
  --opacity-muted: 0.6;
  --opacity-overlay: 0.7;
  --opacity-full: 1;
  --size-touchTarget: 44px;
  --size-controlHeight: 44px;
  --size-chipHeight: 32px;
  --size-iconSm: 16px;
  --size-iconMd: 24px;
  --size-iconLg: 32px;
  --size-colorBarThickness: 12px;
  --size-timelineHeight: 56px;
  --size-sheetGrabber: 36px;
  --size-chartHeight: 220px;
  --size-xsectionPanelHeight: 200px;
  --size-xsectionAxisGutter: 34px;
  --size-planThumbWidth: 56px;
  --size-planThumbHeight: 56px;
  --size-cellRowHeight: 64px;
  --size-cellSwatch: 12px;
  --size-cellMarkerRadius: 18px;
  --size-controlLabelWidth: 76px;
  --size-controlValueWidth: 44px;
  --size-actionMaxWidth: 220px;
  --size-progressMaxWidth: 180px;
  --size-canvasChromeInset: 120px;
  --size-stationMarkerRadius: 3.5px;
  --size-stationMarkerHitRadius: 22px;
  --size-scaleBarMaxWidth: 120px;
  --size-scaleBarThickness: 2px;
  --motion-instant: 0;
  --motion-fast: 120;
  --motion-normal: 220;
  --motion-slow: 360;
  --motion-sheet: 280;
  --motion-easing: cubic-bezier(0.2, 0.0, 0.0, 1.0);
  --motion-loopEndHoldMs: 1200;
  --motion-sweepFadeMs: 400;
  --motion-loopPrepareSpinnerDelayMs: 120;
  --site-color-pageBackground: #07090D;
  --site-color-heroGlow: #38BDF81A;
  --site-color-link: #7DD3FC;
  --site-color-linkVisited: #7DD3FC;
  --site-color-linkHover: #BAE6FD;
  --site-color-ctaBackground: #38BDF8;
  --site-color-ctaText: #04121C;
  --site-color-ctaDisabledBackground: #12161D;
  --site-color-ctaDisabledText: #9AA7B8;
  --site-color-ctaDisabledBorder: #3A465C;
  --site-color-rule: #1B2431;
  --site-color-footerBackground: #04060A;
  --site-container-textMaxWidth: 640px;
  --site-container-figureMaxWidth: 800px;
  --site-container-pageMaxWidth: 1120px;
  --site-container-gutter: 24px;
  --site-container-gutterWide: 40px;
  --site-type-hero: 56px;
  --site-type-heroNarrow: 34px;
  --site-type-sectionHeading: 28px;
  --site-type-subhead: 20px;
  --site-type-body: 17px;
  --site-type-lede: 20px;
  --site-type-caption: 14px;
  --site-type-figureAttribution: 12px;
  --site-type-nav: 15px;
  --site-line-hero: 1.05;
  --site-line-heading: 1.15;
  --site-line-body: 1.55;
  --site-measure-sectionGapY: 96px;
  --site-measure-sectionGapYNarrow: 56px;
  --site-measure-blockGapY: 24px;
  --site-measure-figureGapY: 16px;
  --site-phone-bezelWidth: 10;
  --site-phone-bezelRadius: 44;
  --site-phone-bezelColor: #1A1F28;
  --site-phone-bezelHighlight: #3A465C;
  --site-phone-screenRadius: 36;
  --site-phone-maxScreenWidth: 340;
  --site-focus-ringWidth: 2;
  --site-focus-ringOffset: 2;
  --site-focus-ringColor: #7DD3FC;
  --site-motion-link: 120ms;
  --site-motion-cta: 120ms;
  --site-motion-easing: cubic-bezier(0.2, 0.0, 0.0, 1.0);
  --site-phone-bezel: 10px;
  --site-phone-bezelRadius: 44px;
  --site-phone-screenRadius: 36px;
  --site-phone-maxScreenWidth: 340px;
  --site-focus-ring: 2px;
  --site-focus-offset: 2px;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--site-color-pageBackground);
  color: var(--color-textPrimary);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: var(--site-type-body);
  line-height: var(--site-line-body);
  font-weight: var(--weight-regular);
}

a { color: var(--site-color-link); text-decoration-thickness: var(--border-hairline); text-underline-offset: var(--space-xs); transition: color var(--site-motion-link) var(--site-motion-easing); }
a:visited { color: var(--site-color-linkVisited); }
a:hover { color: var(--site-color-linkHover); }

:focus-visible {
  outline: var(--site-focus-ring) solid var(--site-focus-ringColor);
  outline-offset: var(--site-focus-offset);
  border-radius: var(--radius-xs);
}

.skip {
  position: absolute;
  left: var(--space-sm);
  top: calc(var(--space-sm) * -10);
  z-index: 10;
  padding: var(--space-sm) var(--space-md);
  background: var(--color-surfaceRaised);
  color: var(--color-textPrimary);
  border-radius: var(--radius-sm);
  text-decoration: none;
}
.skip:focus { top: var(--space-sm); }

.wrap {
  width: 100%;
  max-width: var(--site-container-pageMaxWidth);
  margin: 0 auto;
  padding-inline: var(--site-container-gutter);
}

/* ---------------------------------------------------------------- header */

.site-header {
  border-bottom: var(--border-hairline) solid var(--site-color-rule);
  background: var(--color-surfaceSunken);
}
.site-header .wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-md);
  min-height: var(--size-controlHeight);
  padding-block: var(--space-md);
}
.wordmark {
  font-size: var(--site-type-subhead);
  font-weight: var(--weight-semibold);
  color: var(--color-textPrimary);
  text-decoration: none;
  margin-right: auto;
}
.site-nav { display: flex; flex-wrap: wrap; gap: var(--space-md); font-size: var(--site-type-nav); }
.site-nav a { text-decoration: none; }
.site-nav a[aria-current="page"] { color: var(--color-textPrimary); }

/* ------------------------------------------------------------------- cta */

.cta {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-xxs);
  padding: var(--space-sm) var(--space-lg);
  min-height: var(--size-controlHeight);
  justify-content: center;
  border-radius: var(--radius-pill);
  font-size: var(--site-type-nav);
  font-weight: var(--weight-semibold);
  text-decoration: none;
  background: var(--site-color-ctaBackground);
  color: var(--site-color-ctaText);
  transition: background var(--site-motion-cta) var(--site-motion-easing);
}
.cta:hover { color: var(--site-color-ctaText); background: var(--color-primaryPressed); }
.cta--pre {
  background: var(--site-color-ctaDisabledBackground);
  color: var(--site-color-ctaDisabledText);
  border: var(--border-hairline) solid var(--site-color-ctaDisabledBorder);
}
.cta__platform { font-size: var(--type-caption); font-weight: var(--weight-regular); opacity: var(--opacity-muted); }

/* ------------------------------------------------------------------ page */

main { display: block; }
section { padding-block: var(--site-measure-sectionGapYNarrow); }
section + section { border-top: var(--border-hairline) solid var(--site-color-rule); }

h1, h2, h3 { margin: 0 0 var(--space-md); font-weight: var(--weight-semibold); line-height: var(--site-line-heading); }
h1 { font-size: var(--site-type-heroNarrow); line-height: var(--site-line-hero); }
h2 { font-size: var(--site-type-sectionHeading); }
h3 { font-size: var(--site-type-subhead); }
p { margin: 0 0 var(--site-measure-blockGapY); max-width: var(--site-container-textMaxWidth); }
p:last-child { margin-bottom: 0; }

.eyebrow {
  font-size: var(--site-type-caption);
  color: var(--color-textSecondary);
  margin-bottom: var(--space-sm);
}
.lede { font-size: var(--site-type-lede); color: var(--color-textPrimary); }
.subhead { font-size: var(--site-type-subhead); color: var(--color-textSecondary); }
.note { font-size: var(--site-type-caption); color: var(--color-textSecondary); }
.statement { font-size: var(--site-type-lede); }

.hero { position: relative; }
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(80% 60% at 50% 0%, var(--site-color-heroGlow), transparent);
  pointer-events: none;
}
.hero > * { position: relative; }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-md); align-items: center; margin-top: var(--site-measure-blockGapY); }

.strip { display: grid; gap: var(--site-measure-blockGapY); margin-top: var(--site-measure-blockGapY); }
.card {
  background: var(--color-surfaceRaised);
  border: var(--border-hairline) solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
}
.card h3 { margin-bottom: var(--space-sm); }
.card p { color: var(--color-textSecondary); margin-bottom: var(--space-md); }

.feeds { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-sm); max-width: var(--site-container-textMaxWidth); }
.feeds li {
  border: var(--border-hairline) solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  background: var(--color-surfaceRaised);
}
.feeds .host { display: block; font-size: var(--type-caption); color: var(--color-textSecondary); }

/* ---------------------------------------------------------------- figure */

figure { margin: var(--site-measure-figureGapY) 0 0; max-width: var(--site-container-figureMaxWidth); }
figure img { display: block; width: 100%; height: auto; border-radius: var(--radius-md); background: var(--color-radarBackground); }
figcaption { margin-top: var(--space-sm); }
.fig__caption { display: block; font-size: var(--site-type-caption); color: var(--color-textSecondary); }
/* textSecondary rather than textTertiary, and that is an accessibility
   decision rather than a taste one: at type.figureAttribution this line is
   small text, so it is checked at the 4.5:1 ratio, and textTertiary on
   pageBackground is 4.21:1. The attribution is the one line on this site that
   is legally load-bearing; it does not get to be the hardest to read. */
.fig__attribution { display: block; font-size: var(--site-type-figureAttribution); color: var(--color-textSecondary); margin-top: var(--space-xxs); }
.fig__timestamp { display: block; font-size: var(--site-type-caption); color: var(--color-textSecondary); font-variant-numeric: tabular-nums; }

.fig--pending .fig__frame {
  border: var(--border-thin) dashed var(--color-borderStrong);
  border-radius: var(--radius-md);
  background: var(--color-radarBackground);
  padding: var(--space-lg);
  min-height: var(--size-chartHeight);
  display: flex;
  align-items: center;
}
.fig__pending {
  margin: 0;
  font-size: var(--site-type-caption);
  color: var(--color-textSecondary);
  max-width: var(--site-container-textMaxWidth);
}

.phone {
  max-width: var(--site-phone-maxScreenWidth);
  padding: var(--site-phone-bezel);
  border-radius: var(--site-phone-bezelRadius);
  background: var(--site-phone-bezelColor);
  box-shadow: 0 0 0 var(--border-hairline) var(--site-phone-bezelHighlight), var(--space-xs) var(--space-sm) var(--space-xl) var(--color-scrim);
}
.phone .fig__frame, .phone img { border-radius: var(--site-phone-screenRadius); overflow: hidden; }
.phone.fig--pending .fig__frame { min-height: var(--size-chartHeight); }

/* ----------------------------------------------------------- sequence */

.seq__controls { display: flex; gap: var(--space-sm); align-items: center; margin-top: var(--space-sm); }
.seq__controls button {
  min-height: var(--size-chipHeight);
  min-width: var(--size-chipHeight);
  padding-inline: var(--space-sm);
  border-radius: var(--radius-sm);
  border: var(--border-hairline) solid var(--color-border);
  background: var(--color-surfaceRaised);
  color: var(--color-textPrimary);
  font: inherit;
  font-size: var(--type-label);
}
.seq__frame { display: none; }
.seq__frame[data-current] { display: block; }

/* ---------------------------------------------------------------- footer */

.site-footer {
  background: var(--site-color-footerBackground);
  border-top: var(--border-hairline) solid var(--site-color-rule);
  padding-block: var(--space-xl);
  font-size: var(--site-type-caption);
  color: var(--color-textSecondary);
}
.site-footer nav { display: flex; flex-wrap: wrap; gap: var(--space-md); margin-bottom: var(--space-md); }
.site-footer p { margin-bottom: var(--space-xs); max-width: none; }
.footer__attribution { color: var(--color-textSecondary); }

/* ------------------------------------------------------------ responsive */

@media (min-width: 768px) {
  h1 { font-size: var(--site-type-hero); }
  section { padding-block: var(--site-measure-sectionGapY); }
  .wrap { padding-inline: var(--site-container-gutterWide); }
  .strip { grid-template-columns: repeat(3, 1fr); }
  .hero__grid { display: grid; grid-template-columns: 1fr auto; gap: var(--space-xl); align-items: center; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; }
}
