/* Modern minimal reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-height); /* offset anchors for sticky nav */
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  min-height: 100vh;
}

/* Temporary scaffolding: keep empty sections scrollable until populated in later phases */
main > section:empty {
  min-height: 65vh;
}

img, video, svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  line-height: var(--leading-tight);
}

button {
  cursor: pointer;
  background: none;
  border: none;
  font: inherit;
}

/* ------------------------------------------------------------------
   Starfield — fixed 1px dots behind all content.
   Invisible under the hero (covered by Earthrise photo).
   Visible in the dark sections below as you scroll.
   150 stars across 3 brightness tiers, all GPU-composited.
   ------------------------------------------------------------------ */
body::before {
  content:          '';
  position:         fixed;
  inset:            0;
  pointer-events:   none;
  z-index:          -1;
  width:            1px;
  height:           1px;
  border-radius:    50%;
  box-shadow:
    1309px 456px 0 0 rgba(232, 224, 208, 0.18),
    563px 1003px 0 0 rgba(232, 224, 208, 0.21),
    1508px 419px 0 0 rgba(232, 224, 208, 0.27),
    1116px 356px 0 0 rgba(232, 224, 208, 0.26),
    65px 122px 0 0 rgba(232, 224, 208, 0.19),
    476px 2069px 0 0 rgba(232, 224, 208, 0.26),
    1149px 814px 0 0 rgba(232, 224, 208, 0.28),
    1436px 2232px 0 0 rgba(232, 224, 208, 0.24),
    919px 2413px 0 0 rgba(232, 224, 208, 0.22),
    1780px 26px 0 0 rgba(232, 224, 208, 0.29),
    326px 2859px 0 0 rgba(232, 224, 208, 0.24),
    569px 636px 0 0 rgba(232, 224, 208, 0.21),
    1563px 1378px 0 0 rgba(232, 224, 208, 0.19),
    778px 396px 0 0 rgba(232, 224, 208, 0.23),
    704px 2472px 0 0 rgba(232, 224, 208, 0.22),
    88px 2988px 0 0 rgba(232, 224, 208, 0.24),
    255px 3985px 0 0 rgba(232, 224, 208, 0.31),
    161px 2261px 0 0 rgba(232, 224, 208, 0.22),
    1287px 2533px 0 0 rgba(232, 224, 208, 0.30),
    740px 2364px 0 0 rgba(232, 224, 208, 0.21),
    142px 187px 0 0 rgba(232, 224, 208, 0.27),
    1583px 1185px 0 0 rgba(232, 224, 208, 0.32),
    1751px 953px 0 0 rgba(232, 224, 208, 0.30),
    778px 1138px 0 0 rgba(232, 224, 208, 0.24),
    1708px 1494px 0 0 rgba(232, 224, 208, 0.20),
    727px 858px 0 0 rgba(232, 224, 208, 0.27),
    1437px 3836px 0 0 rgba(232, 224, 208, 0.28),
    146px 2495px 0 0 rgba(232, 224, 208, 0.27),
    1093px 2986px 0 0 rgba(232, 224, 208, 0.21),
    946px 1554px 0 0 rgba(232, 224, 208, 0.22),
    1310px 2818px 0 0 rgba(232, 224, 208, 0.26),
    1402px 1328px 0 0 rgba(232, 224, 208, 0.30),
    1589px 229px 0 0 rgba(232, 224, 208, 0.21),
    65px 3297px 0 0 rgba(232, 224, 208, 0.22),
    548px 271px 0 0 rgba(232, 224, 208, 0.21),
    1161px 3589px 0 0 rgba(232, 224, 208, 0.28),
    435px 2684px 0 0 rgba(232, 224, 208, 0.25),
    1316px 1879px 0 0 rgba(232, 224, 208, 0.20),
    285px 1010px 0 0 rgba(232, 224, 208, 0.28),
    1103px 1076px 0 0 rgba(232, 224, 208, 0.28),
    877px 3677px 0 0 rgba(232, 224, 208, 0.26),
    741px 898px 0 0 rgba(232, 224, 208, 0.32),
    283px 2087px 0 0 rgba(232, 224, 208, 0.25),
    1547px 192px 0 0 rgba(232, 224, 208, 0.30),
    313px 2570px 0 0 rgba(232, 224, 208, 0.20),
    1393px 1729px 0 0 rgba(232, 224, 208, 0.26),
    788px 1563px 0 0 rgba(232, 224, 208, 0.26),
    958px 2167px 0 0 rgba(232, 224, 208, 0.22),
    1133px 3525px 0 0 rgba(232, 224, 208, 0.31),
    1393px 2952px 0 0 rgba(232, 224, 208, 0.20),
    1099px 3075px 0 0 rgba(232, 224, 208, 0.22),
    1312px 1393px 0 0 rgba(232, 224, 208, 0.20),
    890px 647px 0 0 rgba(232, 224, 208, 0.24),
    1478px 3587px 0 0 rgba(232, 224, 208, 0.28),
    1025px 3120px 0 0 rgba(232, 224, 208, 0.21),
    217px 3565px 0 0 rgba(232, 224, 208, 0.27),
    1723px 2617px 0 0 rgba(232, 224, 208, 0.25),
    407px 626px 0 0 rgba(232, 224, 208, 0.23),
    330px 2209px 0 0 rgba(232, 224, 208, 0.31),
    1086px 3762px 0 0 rgba(232, 224, 208, 0.18),
    663px 2001px 0 0 rgba(232, 224, 208, 0.18),
    743px 3599px 0 0 rgba(232, 224, 208, 0.32),
    1652px 1259px 0 0 rgba(232, 224, 208, 0.21),
    493px 3596px 0 0 rgba(232, 224, 208, 0.26),
    161px 350px 0 0 rgba(232, 224, 208, 0.28),
    1671px 283px 0 0 rgba(232, 224, 208, 0.32),
    1090px 3136px 0 0 rgba(232, 224, 208, 0.20),
    1351px 1946px 0 0 rgba(232, 224, 208, 0.31),
    338px 1085px 0 0 rgba(232, 224, 208, 0.25),
    1242px 1733px 0 0 rgba(232, 224, 208, 0.32),
    1104px 3093px 0 0 rgba(232, 224, 208, 0.28),
    411px 2920px 0 0 rgba(232, 224, 208, 0.22),
    1375px 2661px 0 0 rgba(232, 224, 208, 0.23),
    1059px 1849px 0 0 rgba(232, 224, 208, 0.20),
    460px 262px 0 0 rgba(232, 224, 208, 0.23),
    1204px 2268px 0 0 rgba(232, 224, 208, 0.21),
    451px 29px 0 0 rgba(232, 224, 208, 0.19),
    1292px 241px 0 0 rgba(232, 224, 208, 0.21),
    64px 3521px 0 0 rgba(232, 224, 208, 0.23),
    1052px 974px 0 0 rgba(232, 224, 208, 0.22),
    994px 877px 0 0 rgba(232, 224, 208, 0.26),
    1481px 3831px 0 0 rgba(232, 224, 208, 0.30),
    1180px 1936px 0 0 rgba(232, 224, 208, 0.21),
    968px 3307px 0 0 rgba(232, 224, 208, 0.24),
    193px 397px 0 0 rgba(232, 224, 208, 0.27),
    725px 1734px 0 0 rgba(232, 224, 208, 0.24),
    1769px 2986px 0 0 rgba(232, 224, 208, 0.19),
    1338px 2646px 0 0 rgba(232, 224, 208, 0.19),
    824px 2982px 0 0 rgba(232, 224, 208, 0.23),
    1764px 447px 0 0 rgba(232, 224, 208, 0.21),
    389px 2196px 0 0 rgba(232, 224, 208, 0.43),
    864px 751px 0 0 rgba(232, 224, 208, 0.40),
    511px 3581px 0 0 rgba(232, 224, 208, 0.51),
    907px 3309px 0 0 rgba(232, 224, 208, 0.50),
    1127px 401px 0 0 rgba(232, 224, 208, 0.36),
    1107px 3424px 0 0 rgba(232, 224, 208, 0.35),
    191px 3794px 0 0 rgba(232, 224, 208, 0.48),
    484px 681px 0 0 rgba(232, 224, 208, 0.42),
    985px 875px 0 0 rgba(232, 224, 208, 0.50),
    120px 674px 0 0 rgba(232, 224, 208, 0.41),
    799px 1086px 0 0 rgba(232, 224, 208, 0.51),
    1607px 1863px 0 0 rgba(232, 224, 208, 0.40),
    1426px 3921px 0 0 rgba(232, 224, 208, 0.47),
    1604px 2276px 0 0 rgba(232, 224, 208, 0.46),
    996px 634px 0 0 rgba(232, 224, 208, 0.38),
    445px 3967px 0 0 rgba(232, 224, 208, 0.36),
    1506px 2220px 0 0 rgba(232, 224, 208, 0.36),
    642px 234px 0 0 rgba(232, 224, 208, 0.36),
    976px 2059px 0 0 rgba(232, 224, 208, 0.51),
    1087px 644px 0 0 rgba(232, 224, 208, 0.36),
    1040px 328px 0 0 rgba(232, 224, 208, 0.49),
    140px 2437px 0 0 rgba(232, 224, 208, 0.36),
    1765px 963px 0 0 rgba(232, 224, 208, 0.42),
    1166px 1008px 0 0 rgba(232, 224, 208, 0.45),
    81px 2536px 0 0 rgba(232, 224, 208, 0.36),
    1346px 2390px 0 0 rgba(232, 224, 208, 0.45),
    647px 3828px 0 0 rgba(232, 224, 208, 0.39),
    1371px 2933px 0 0 rgba(232, 224, 208, 0.40),
    543px 1621px 0 0 rgba(232, 224, 208, 0.37),
    1321px 1228px 0 0 rgba(232, 224, 208, 0.43),
    1539px 3832px 0 0 rgba(232, 224, 208, 0.36),
    938px 2544px 0 0 rgba(232, 224, 208, 0.52),
    204px 300px 0 0 rgba(232, 224, 208, 0.44),
    1036px 1086px 0 0 rgba(232, 224, 208, 0.37),
    714px 3608px 0 0 rgba(232, 224, 208, 0.36),
    500px 1513px 0 0 rgba(232, 224, 208, 0.40),
    897px 3415px 0 0 rgba(232, 224, 208, 0.44),
    619px 2505px 0 0 rgba(232, 224, 208, 0.52),
    1652px 2678px 0 0 rgba(232, 224, 208, 0.44),
    1367px 3346px 0 0 rgba(232, 224, 208, 0.44),
    1358px 424px 0 0 rgba(232, 224, 208, 0.51),
    275px 1083px 0 0 rgba(232, 224, 208, 0.37),
    219px 3040px 0 0 rgba(232, 224, 208, 0.44),
    557px 1154px 0 0 rgba(232, 224, 208, 0.45),
    1469px 1404px 0 0 rgba(232, 224, 208, 0.38),
    1298px 3493px 0 0 rgba(232, 224, 208, 0.62),
    1000px 1028px 0 0 rgba(232, 224, 208, 0.73),
    1732px 208px 0 0 rgba(232, 224, 208, 0.60),
    867px 3397px 0 0 rgba(232, 224, 208, 0.63),
    7px 1366px 0 0 rgba(232, 224, 208, 0.71),
    1304px 1072px 0 0 rgba(232, 224, 208, 0.61),
    904px 2259px 0 0 rgba(232, 224, 208, 0.70),
    1148px 39px 0 0 rgba(232, 224, 208, 0.60),
    1415px 3702px 0 0 rgba(232, 224, 208, 0.61),
    73px 3418px 0 0 rgba(232, 224, 208, 0.64),
    1131px 606px 0 0 rgba(232, 224, 208, 0.65),
    85px 1262px 0 0 rgba(232, 224, 208, 0.64),
    1630px 3982px 0 0 rgba(232, 224, 208, 0.73),
    732px 860px 0 0 rgba(232, 224, 208, 0.70),
    1365px 421px 0 0 rgba(232, 224, 208, 0.64);
}

/* ------------------------------------------------------------------
   Shared scroll-cue — in-flow arrow at the bottom of each section.
   Used by #video, #speech, #missions (hero uses its own absolute variant).
   ------------------------------------------------------------------ */
.scroll-cue {
  display:         flex;
  justify-content: center;
  padding:         var(--space-8) 0 var(--space-4);
  color:           var(--color-text-muted);
  text-decoration: none;
  animation:       scrollCueBounce 2.4s ease-in-out infinite;
}

.scroll-cue:hover,
.scroll-cue:focus-visible {
  color:   var(--color-accent);
  outline: none;
}

.scroll-cue__arrow {
  width:  20px;
  height: 20px;
}

@keyframes scrollCueBounce {
  0%, 100% { transform: translateY(0);    opacity: 0.4; }
  50%       { transform: translateY(6px); opacity: 1;   }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-cue { animation: none; opacity: 0.5; }
}
