:root {
  --navy: #111111;
  --navy-dim: #000000;
  --teal: #C41E3A;
  --teal-dim: #9E1730;
  --bg: #F6F6F6;
  --bg-2: #EEEEEE;
  --surface: #ffffff;
  --ink: #111111;
  --ink-dim: #5A5A5A;
  --line: #E2E2E2;
  --surface-2: #F4F4F4;
  --bad: #b42318;
  --bad-bg: #fde8e3;
  --radius: 18px;
  --tap: 56px;
  --font: "Segoe UI", system-ui, -apple-system, sans-serif;
  --wrap: 760px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--teal-dim); }
a:hover { color: var(--navy); }
button, input, select, textarea { font: inherit; color: inherit; }
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 2px;
}

.skip {
  position: absolute;
  left: 12px;
  top: -40px;
  background: var(--navy);
  color: #fff;
  padding: 8px 12px;
  z-index: 50;
  font-weight: 700;
}
.skip:focus { top: 12px; }

.top {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.top-inner {
  max-width: 1120px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "brand cta"
    "nav nav";
  align-items: center;
  gap: 8px 20px;
  padding: calc(14px + env(safe-area-inset-top, 0px)) 24px 12px;
}
.brand {
  grid-area: brand;
  display: flex;
  min-width: 0;
  text-decoration: none;
}
.brand img {
  width: min(420px, 82vw);
  height: auto;
}
.top .btn.top-access {
  grid-area: cta;
  width: auto;
  min-height: 44px;
  padding: 0 18px;
  flex: none;
  font-size: 14px;
  justify-self: end;
}
.top nav {
  grid-area: nav;
  display: flex;
  gap: 4px 20px;
  flex-wrap: wrap;
}
.top nav a {
  color: var(--navy);
  text-decoration: none;
  font-size: 15px;
  font-weight: 650;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
}
.top nav a:hover { color: var(--teal-dim); }
.top nav a[aria-current="page"] {
  color: var(--teal-dim);
  box-shadow: inset 0 -2px 0 var(--teal);
}

main {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 24px 56px;
}

.hero {
  background: var(--navy);
  color: #fff;
  padding: 48px 24px 56px;
}
.hero.page { padding: 40px 24px 48px; }
.hero-inner {
  max-width: var(--wrap);
  margin: 0 auto;
}
.hero h1 {
  margin: 0 0 16px;
  font-size: clamp(34px, 6vw, 52px);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: #fff;
  max-width: 16ch;
}
.hero.page h1 { max-width: 18ch; }
.hero .lede {
  color: #d0d0d0;
  margin-bottom: 28px;
  font-size: 18px;
  line-height: 1.45;
  max-width: 36rem;
}
.hero .eyebrow {
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--teal);
}
.hero-fine {
  margin: 16px 0 0;
  font-size: 14px;
  color: #b8b8b8;
  max-width: 36rem;
}
.hero .btn.primary {
  background: #fff;
  color: var(--navy);
}
.hero .btn.primary:hover {
  background: var(--bg);
  color: var(--navy);
}
.lede, .intro {
  margin: 0 0 24px;
  color: var(--ink-dim);
  font-size: 16px;
  max-width: 38rem;
}
#goals, #goal-1, #goal-2, #goal-3, #goal-4, #loop, #honest, #access, #jobs, #who, #taught, #straight, #why, #always {
  scroll-margin-top: 140px;
}

.ask-form {
  display: grid;
  gap: 12px;
  margin: 8px 0 0;
  max-width: 38rem;
}
.ask-form label {
  display: grid;
  gap: 8px;
  font-size: 13px;
  font-weight: 650;
  color: #fff;
}
.ask-form input,
.ask-form select {
  width: 100%;
  min-height: var(--tap);
  border: 0;
  border-radius: 14px;
  padding: 12px 16px;
  background: #fff;
  color: var(--navy);
}
.ask-row {
  display: grid;
  gap: 12px;
}
.ask-row .btn { width: 100%; }
.ask-result {
  margin-top: 20px;
  padding: 20px;
  border-radius: var(--radius);
  background: #1c1c1c;
  color: #eee;
  max-width: 38rem;
}
.ask-result h3 {
  margin: 0 0 8px;
  font-size: 18px;
  color: #fff;
}
.ask-result p { margin: 0 0 12px; color: #c8c8c8; font-size: 15px; }
.ask-result p:last-child { margin-bottom: 0; }
.ask-result .ask-trade {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--teal);
}
.ask-result .ask-donot { color: #f0c7c0; }
.ask-result.nogo-hit { background: #3a1410; }
.ask-result a { color: #fff; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--tap);
  padding: 0 24px;
  border-radius: 14px;
  text-decoration: none;
  font-weight: 700;
  border: 0;
  cursor: pointer;
}
.btn.primary {
  background: var(--navy);
  color: #fff;
}
.btn.primary:hover { background: var(--navy-dim); color: #fff; }
button.btn { width: 100%; }

.block {
  padding: 36px 0;
  border-top: 1px solid var(--line);
}
.block h2 {
  margin: 0 0 16px;
  font-size: 24px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--navy);
}
.block h3 {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 700;
  color: var(--navy);
}

.intro.last { margin-bottom: 0; }
.more {
  font-weight: 650;
  text-decoration: none;
}

.jobs {
  list-style: none;
  margin: 0;
  padding: 0;
}
.jobs li {
  display: grid;
  gap: 4px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  max-width: 38rem;
}
.jobs li:first-child { border-top: 0; padding-top: 0; }
.jobs strong { color: var(--navy); font-size: 18px; letter-spacing: -0.02em; }
.jobs span { color: var(--ink-dim); font-size: 15px; }
.jobs + .intro.last { margin-top: 16px; }

.who-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px;
}
.who-list li {
  color: var(--ink-dim);
  font-size: 15px;
  max-width: 38rem;
}
.who-list strong {
  display: block;
  color: var(--navy);
  margin-bottom: 4px;
  font-size: 17px;
}

.nogo {
  background: var(--bad-bg);
  color: var(--bad);
  border-radius: var(--radius);
  padding: 20px;
  margin: 0 0 32px;
}
.block + .nogo { margin-top: 0; }
main > .nogo:first-child { margin-top: 32px; }
.nogo h2 {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.2;
  color: var(--bad);
}
.nogo p {
  margin: 0;
  color: var(--bad);
  font-size: 15px;
  max-width: 38rem;
}

.steps {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: step;
}
.steps li {
  padding: 16px 0 16px 36px;
  position: relative;
  border-top: 1px solid var(--line);
  color: var(--ink-dim);
  font-size: 15px;
}
.steps li:first-child { border-top: 0; padding-top: 0; }
.steps strong {
  display: block;
  color: var(--navy);
  margin-bottom: 4px;
  font-size: 17px;
}
.steps li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: 16px;
  color: var(--teal-dim);
  font-weight: 700;
}
.steps li:first-child::before { top: 0; }

.goal-index {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}
.goal-index li { margin: 0; }
.goal-index a {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 12px;
  align-items: center;
  min-height: 44px;
  padding: 8px 0;
  text-decoration: none;
  color: var(--navy);
  font-weight: 650;
  font-size: 16px;
  border-top: 1px solid var(--line);
}
.goal-index li:first-child a { border-top: 0; }
.goal-index a:hover { color: var(--teal-dim); }
.goal-index .n {
  color: var(--teal-dim);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.goal {
  padding: 32px 0;
  border-top: 1px solid var(--line);
}
.goal-num {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--teal-dim);
}
.goal h2 {
  margin: 0 0 16px;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--navy);
}
.goal p {
  margin: 0 0 16px;
  color: var(--ink-dim);
  font-size: 15px;
  max-width: 38rem;
}
.goal p.close { margin-bottom: 0; color: var(--ink); }
.goal blockquote {
  margin: 0;
  padding: 0 0 0 16px;
  border-left: 3px solid var(--teal);
}
.goal blockquote p {
  margin: 0;
  color: var(--navy);
  font-size: 16px;
  font-weight: 650;
}

.loop-list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
}
.loop-list li {
  padding: 12px 0 12px 24px;
  position: relative;
  border-top: 1px solid var(--line);
  color: var(--ink);
  font-size: 16px;
}
.loop-list li:first-child { border-top: 0; padding-top: 0; }
.loop-list li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--teal-dim);
  font-weight: 700;
}

.split {
  display: grid;
  gap: 24px;
  margin-bottom: 16px;
}
.split p {
  margin: 0;
  color: var(--ink-dim);
  font-size: 15px;
}

.not-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.not-list li {
  padding: 12px 0 12px 24px;
  position: relative;
  border-top: 1px solid var(--line);
  color: var(--ink-dim);
  font-size: 15px;
}
.not-list li:first-child { border-top: 0; }
.not-list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--teal);
  font-weight: 700;
}

.access-form {
  display: grid;
  gap: 16px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px;
}
.access-form label {
  display: grid;
  gap: 8px;
  font-weight: 650;
  font-size: 14px;
  color: var(--navy);
}
.hint { font-weight: 400; color: var(--ink-dim); }
.access-form input,
.access-form select,
.access-form textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  background: var(--bg);
}
.fine { margin: 0; font-size: 13px; color: var(--ink-dim); }
.form-status { margin: 0; font-size: 14px; font-weight: 650; color: var(--navy); }
.form-status.err { color: #b42318; }

.foot {
  background: var(--navy);
  color: #b8b8b8;
  padding: 40px 24px calc(28px + env(safe-area-inset-bottom, 0px));
}
.foot-inner {
  max-width: 1120px;
  margin: 0 auto;
}
.foot-brand {
  display: inline-flex;
  margin-bottom: 20px;
}
.foot-brand img {
  width: min(280px, 70vw);
  height: auto;
  filter: invert(1);
}
.foot p { margin: 0 0 8px; max-width: 38rem; font-size: 14px; }
.foot a { color: #fff; }
.foot a:hover { color: var(--teal); }
.foot nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  margin: 0 0 20px;
}
.foot nav a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  font-weight: 650;
  text-decoration: none;
  color: #fff;
}
.foot-copy {
  margin-top: 16px;
  color: #8a8a8a;
}

@media (min-width: 880px) {
  .top-inner {
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "brand nav cta";
  }
  .top nav {
    justify-content: center;
  }
  .hero h1 { max-width: 18ch; }
  .split { grid-template-columns: 1fr 1fr; }
  .ask-row {
    grid-template-columns: 1fr auto;
    align-items: end;
  }
  .ask-row .btn { width: auto; min-width: 160px; }
}

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