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

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: var(--fs-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

::selection { background: var(--gold-soft); color: var(--gold); }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-thumb { background: var(--line); }
::-webkit-scrollbar-track { background: var(--bg); }

:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

a { color: inherit; text-decoration: none; }
p a, li a { color: var(--teal); border-bottom: 1px solid rgba(54, 200, 160, .35); }
p a:hover, li a:hover { border-bottom-color: var(--teal); }

img, svg, canvas { max-width: 100%; display: block; }
ul, ol { list-style-position: inside; }

.skip-link {
  position: absolute; left: -999px; top: 0; z-index: 200;
  background: var(--gold); color: var(--bg); padding: .6rem 1rem;
  font-family: var(--mono); font-size: var(--fs-small);
}
.skip-link:focus { left: 0; }

/* Wide grid: content caps at --max, fluid gutters; sections themselves are full-bleed. */
.container { max-width: calc(var(--max) + 2 * var(--pad)); margin: 0 auto; padding: 0 var(--pad); }

.section { padding: var(--space-6) 0; border-bottom: 1px solid var(--line-soft); }
.section:last-of-type { border-bottom: none; }
.section--tint { background: var(--bg-elev); }

.full-bleed { width: 100vw; margin-left: calc(50% - 50vw); }

.kicker {
  font-family: var(--mono);
  font-size: var(--fs-micro);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-3);
  display: block;
  margin-bottom: var(--space-2);
}
.kicker .tick { color: var(--gold); }

h1, h2, h3 { font-weight: 600; letter-spacing: -.02em; line-height: 1.08; }
h1 { font-size: var(--fs-hero); max-width: 16ch; }
h2 { font-size: var(--fs-h2); max-width: 26ch; margin-bottom: var(--space-3); }
h3 { font-size: var(--fs-h3); margin-bottom: var(--space-1); }

.lead { font-size: 1.15rem; color: var(--text-2); max-width: 62ch; }
p { color: #C9D3E2; max-width: 68ch; margin-bottom: var(--space-2); }
p:last-child { margin-bottom: 0; }
.muted { color: var(--text-2); }

.kw-gold { color: var(--gold); } .kw-teal { color: var(--teal); }
.kw-coral { color: var(--coral); } .kw-blue { color: var(--blue); }
.mono { font-family: var(--mono); }
