@font-face { font-family: "Barlow Condensed"; src: url("../fonts/barlow-condensed-500.ttf") format("truetype"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("../fonts/barlow-condensed-600.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("../fonts/barlow-condensed-700.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("../fonts/barlow-condensed-800.ttf") format("truetype"); font-style: normal; font-weight: 800; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3-400.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3-500.ttf") format("truetype"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3-600.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3-700.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }

:root {
  --ain-blue-950: #142a4c;
  --ain-blue-800: #20385f;
  --ain-gold-500: #f1a313;
  --ain-ink: #17243a;
  --ain-paper: #f4f5f6;
  --ain-white: #fff;
  --ain-muted: #bdc7d6;
  --ain-body-font: "Source Sans 3", Arial, sans-serif;
  --ain-display-font: "Barlow Condensed", sans-serif;
  --ain-topbar-height: 86px;
  --ain-content-width: 1180px;
  --ain-gutter: 24px;
  --ain-section-space: 115px;
  --ain-motion: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; scroll-padding-top: var(--ain-topbar-height); }
body {
  overflow-x: hidden;
  margin: 0;
  color: var(--ain-ink);
  font: 17px/1.55 var(--ain-body-font);
}
body[data-menu-open] { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input { font: inherit; }

.ain-topbar {
  position: sticky;
  z-index: 50;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--ain-topbar-height);
  padding-inline: max(var(--ain-gutter), calc((100vw - var(--ain-content-width)) / 2));
  background: rgba(255,255,255,.97);
  box-shadow: 0 1px 0 rgba(20,42,76,.12);
  transition: height .3s, box-shadow .3s;
}
.ain-topbar[data-compact] { height: 74px; box-shadow: 0 8px 25px rgba(20,42,76,.12); }
.ain-topbar__emblem img { width: 150px; max-height: 72px; object-fit: contain; }
.ain-menu { display: flex; gap: 38px; }
.ain-menu a {
  position: relative;
  color: var(--ain-blue-800);
  font: 700 18px/1 var(--ain-display-font);
  letter-spacing: .035em;
  text-decoration: none;
  text-transform: uppercase;
}
.ain-menu a::after {
  position: absolute;
  right: 100%;
  bottom: -8px;
  left: 0;
  height: 3px;
  background: var(--ain-gold-500);
  content: "";
  transition: right .25s;
}
.ain-menu a:hover::after,
.ain-menu a[aria-current="true"]::after { right: 0; }
.ain-topbar__trigger { display: none; padding: 8px; border: 0; background: transparent; }
.ain-topbar__trigger span {
  display: block;
  width: 26px;
  height: 2px;
  margin: 5px;
  background: var(--ain-blue-800);
  transition: transform .25s, opacity .25s;
}

.campaign-intro {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100vw;
  overflow: hidden;
  color: var(--ain-white);
  background: var(--ain-blue-950);
}
.campaign-intro::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 41%;
  height: 5px;
  background: var(--ain-gold-500);
  content: "";
}
.campaign-intro__team {
  width: 100vw;
  max-width: 100vw;
  height: 480px;
  object-fit: cover;
  object-position: center 30%;
}
.campaign-intro__message {
  display: grid;
  grid-template: auto auto auto / minmax(0,1.35fr) minmax(320px,.65fr);
  column-gap: 70px;
  width: min(var(--ain-content-width), calc(100% - 48px));
  margin-inline: auto;
  padding-block: 45px 50px;
}
.campaign-intro__date {
  grid-area: 1 / 1;
  margin: 0 0 12px;
  font: 700 17px/1.2 var(--ain-display-font);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.campaign-intro__date span { padding-inline: 7px; color: var(--ain-gold-500); }
.campaign-intro h1 {
  grid-area: 2 / 1 / 4;
  max-width: 770px;
  margin: 0;
  font: 600 clamp(54px,5vw,72px)/.94 var(--ain-display-font);
  letter-spacing: -.015em;
  text-transform: uppercase;
}
.campaign-intro h1 em {
  position: relative;
  display: inline-block;
  color: var(--ain-gold-500);
  font-style: normal;
  font-weight: 800;
}
.campaign-intro h1 em::after {
  position: absolute;
  right: 0;
  bottom: -7px;
  left: 0;
  height: 5px;
  background: var(--ain-gold-500);
  content: "";
  transform: skew(-22deg) rotate(-1deg);
}
.campaign-intro__alliance {
  align-self: end;
  grid-area: 1 / 2;
  max-width: 620px;
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 600;
}
.campaign-intro__leaders { grid-area: 2 / 2; margin: 0 0 22px; font-size: 20px; }
.campaign-intro .campaign-action { align-self: start; justify-self: start; grid-area: 3 / 2; }

.campaign-action {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding: 14px 22px;
  border: 2px solid transparent;
  font: 800 18px/1.2 var(--ain-display-font);
  letter-spacing: .05em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .2s, background .2s, transform .2s;
}
.campaign-action:hover { transform: translateY(-2px); }
.campaign-action--gold { color: var(--ain-blue-950); background: var(--ain-gold-500); }
.campaign-action--gold:hover { background: var(--ain-white); }
.campaign-action span { font-size: 22px; line-height: 1; }

.slate-roster {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 75px;
  min-height: 92px;
  padding: 20px 30px;
  color: var(--ain-white);
  background: var(--ain-blue-800);
}
.slate-roster__line {
  display: flex;
  align-items: center;
  gap: 17px;
  margin: 0;
  font: 17px/1.25 var(--ain-display-font);
}
.slate-roster__line span {
  color: var(--ain-gold-500);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.slate-roster__line i { width: 4px; height: 4px; border-radius: 50%; background: var(--ain-gold-500); }

.support-wall {
  position: relative;
  overflow: hidden;
  padding-block: var(--ain-section-space);
  color: var(--ain-white);
  background: var(--ain-blue-950);
}
.support-wall::before {
  position: absolute;
  top: 85px;
  right: -210px;
  width: 380px;
  height: 380px;
  border: 2px solid rgba(241,163,19,.2);
  content: "";
  transform: rotate(45deg);
}
.support-wall__inner,
.larcher-letter__inner,
.campaign-book__layout,
.campaign-contact__columns,
.campaign-contact__baseline {
  width: min(var(--ain-content-width), calc(100% - 48px));
  margin-inline: auto;
}
.support-wall__masthead { position: relative; margin-bottom: 50px; scroll-margin-top: calc(var(--ain-topbar-height) + 18px); }
.support-wall__masthead p,
.larcher-letter__masthead > p,
.campaign-book__date {
  margin: 0 0 18px;
  color: var(--ain-gold-500);
  font: 700 15px/1.2 var(--ain-display-font);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.support-wall__masthead h2,
.larcher-letter__masthead h2 {
  margin: 0;
  font: 500 clamp(52px,7vw,88px)/.94 var(--ain-display-font);
  letter-spacing: -.015em;
  text-transform: uppercase;
}
.support-wall__masthead h2 strong,
.larcher-letter__masthead h2 strong { font-weight: 800; }
.support-wall__masthead > span,
.larcher-letter__masthead > span,
.campaign-book__rule { display: block; width: 110px; height: 6px; margin-top: 24px; background: var(--ain-gold-500); }
.support-wall__summary { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 28px; }
.support-wall__summary p { margin: 0; }
.support-wall__summary p:first-child {
  font: 600 26px/1.2 var(--ain-display-font);
  text-transform: uppercase;
}
.support-wall__summary strong { padding-right: 4px; color: var(--ain-gold-500); font-size: 40px; }
.support-wall__summary p:last-child { color: #cfd7e3; }
.support-ledger { color: var(--ain-ink); background: var(--ain-white); box-shadow: 0 25px 60px rgba(0,0,0,.2); }
.support-ledger__scroll { max-height: 650px; overflow-y: auto; scrollbar-color: var(--ain-gold-500) #e9edf2; }
.support-ledger table { width: 100%; border-collapse: collapse; }
.support-ledger thead { position: sticky; z-index: 2; top: 0; }
.support-ledger th {
  padding: 15px 18px;
  color: var(--ain-white);
  background: var(--ain-blue-800);
  font: 500 17px/1.2 var(--ain-display-font);
  letter-spacing: .07em;
  text-align: left;
  text-transform: uppercase;
}
.support-ledger th:first-child { width: 17%; }
.support-ledger th:nth-child(2) { width: 22%; }
.support-ledger td { padding: 15px 18px; border-bottom: 1px solid #e6e9ed; vertical-align: top; }
.support-ledger td:nth-child(2) { color: var(--ain-blue-800); font-weight: 700; }
.support-ledger tbody tr:hover { background: #fff9ed; }
.support-ledger__cards { display: none; }

.larcher-letter { padding-block: var(--ain-section-space); background: var(--ain-paper); }
.larcher-letter__masthead { position: relative; margin-bottom: 50px; }
.larcher-letter__masthead h2 { color: var(--ain-blue-800); }
.larcher-letter__layout { display: grid; grid-template-columns: minmax(0,1.85fr) minmax(280px,.75fr); gap: 80px; align-items: start; }
.larcher-letter__paper {
  padding: 55px 60px 45px;
  border-top: 6px solid var(--ain-blue-800);
  background: var(--ain-white);
  box-shadow: 0 15px 40px rgba(27,44,72,.08);
}
.larcher-letter__paper > p { margin: 0 0 20px; }
.larcher-letter__opening::first-letter {
  float: left;
  padding: 10px 9px 0 0;
  color: var(--ain-gold-500);
  font: 800 76px/.72 var(--ain-display-font);
}
.larcher-letter__signature { display: flex; align-items: flex-end; justify-content: flex-end; margin-top: 32px; }
.larcher-letter__signature img { width: 230px; height: 140px; object-fit: contain; }
.larcher-letter__signature p { min-width: 135px; margin: 0 0 15px; }
.larcher-letter__signature strong,
.larcher-letter__signature span { display: block; }
.larcher-letter__signature strong { color: var(--ain-blue-800); }
.larcher-letter__signature span { font-size: 15px; }
.larcher-letter__portrait { max-width: 100%; margin: 80px 0 0; }
.larcher-letter__portrait img { box-shadow: 18px 18px 0 var(--ain-gold-500); }
.larcher-letter__portrait figcaption { margin-top: 25px; color: #586579; font-style: italic; }

.campaign-book { position: relative; overflow: hidden; padding-block: var(--ain-section-space); color: var(--ain-white); background: var(--ain-blue-950); }
.campaign-book::after { position: absolute; right: 0; bottom: 0; width: 36%; height: 8px; background: var(--ain-gold-500); content: ""; }
.campaign-book__layout { display: grid; grid-template-columns: 1fr 1.15fr; gap: 100px; align-items: center; }
.campaign-book__cover { display: flex; justify-content: center; margin: 0; perspective: 900px; }
.campaign-book__cover a {
  display: flex;
  justify-content: center;
  transform: translate3d(0,0,0) rotateY(4deg) rotateZ(-1deg);
  transform-origin: center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
}
.campaign-book__cover img { width: min(100%,500px); box-shadow: 24px 25px 45px rgba(0,0,0,.4); }
.campaign-book__details h2 {
  margin: 0;
  font: 500 clamp(58px,7vw,90px)/.94 var(--ain-display-font);
  letter-spacing: -.015em;
  text-transform: uppercase;
}
.campaign-book__details h2 strong { color: var(--ain-gold-500); font-weight: 800; }
.campaign-book__details > p:not(.campaign-book__date) { max-width: 510px; margin: 36px 0 28px; font-size: 22px; }
.campaign-book__details small { display: block; margin-top: 13px; color: var(--ain-muted); letter-spacing: .1em; text-transform: uppercase; }

.campaign-contact { color: var(--ain-white); background: #1d355a; }
.campaign-contact__columns { display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: 60px; padding-block: 52px 45px; }
.campaign-contact__columns h2 {
  margin: 0 0 10px;
  color: var(--ain-gold-500);
  font: 800 17px/1.2 var(--ain-display-font);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.campaign-contact__columns p { margin: 0; }
.campaign-contact__columns a { overflow-wrap: anywhere; text-decoration: none; }
.campaign-contact__columns a:hover { color: var(--ain-gold-500); }
.campaign-contact__social { display: flex; align-items: center; gap: 12px; }
.campaign-contact__social a,
.campaign-contact__social span { color: var(--ain-gold-500); font-size: 24px; font-weight: 800; line-height: 1; }
.campaign-contact__social a:hover { color: var(--ain-white); }
.campaign-contact__social strong { font: 700 19px/1 var(--ain-display-font); }
.campaign-contact__baseline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  border-top: 1px solid rgba(255,255,255,.15);
  color: var(--ain-muted);
  font-size: 14px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.campaign-contact__baseline p { margin: 0; }
.campaign-contact__baseline button { padding: 8px 0; border: 0; color: var(--ain-muted); background: transparent; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.campaign-contact__baseline button:hover { color: var(--ain-gold-500); }

.legal-sheet {
  width: min(720px,calc(100% - 30px));
  max-height: 85vh;
  padding: 40px;
  border: 0;
  border-top: 7px solid var(--ain-gold-500);
  color: var(--ain-ink);
  box-shadow: 0 30px 90px rgba(0,0,0,.45);
}
.legal-sheet::backdrop { background: rgba(8,22,42,.78); }
.legal-sheet h2 { margin: 0 0 25px; color: var(--ain-blue-800); font: 600 42px/1 var(--ain-display-font); text-transform: uppercase; }
.legal-sheet h3 { margin: 23px 0 5px; color: var(--ain-blue-800); font: 700 19px/1.2 var(--ain-display-font); text-transform: uppercase; }
.legal-sheet p { margin: 0; }
.legal-sheet__close { position: absolute; top: 10px; right: 15px; border: 0; color: var(--ain-blue-800); background: transparent; font-size: 34px; cursor: pointer; }

[data-appear] { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
[data-appear][data-visible] { opacity: 1; transform: none; }

@keyframes book-forward {
  from { transform: translate3d(0,0,0) rotateY(4deg) rotateZ(-1deg); }
  to { transform: translate3d(0,-4px,12px) rotateY(0deg) rotateZ(0deg); }
}

@media (max-width: 980px) {
  :root { --ain-topbar-height: 76px; }
  .ain-topbar { height: var(--ain-topbar-height); }
  .ain-topbar__emblem img { width: 130px; }
  .ain-topbar__trigger { z-index: 3; display: block; cursor: pointer; }
  body[data-menu-open] .ain-topbar__trigger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body[data-menu-open] .ain-topbar__trigger span:nth-child(2) { opacity: 0; }
  body[data-menu-open] .ain-topbar__trigger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .ain-menu {
    position: fixed;
    z-index: 2;
    inset: var(--ain-topbar-height) 0 auto;
    flex-direction: column;
    gap: 0;
    padding: 18px 24px 28px;
    background: var(--ain-white);
    box-shadow: 0 15px 25px rgba(0,0,0,.12);
    transform: translateY(-130%);
    transition: transform .3s;
  }
  body[data-menu-open] .ain-menu { transform: none; }
  .ain-menu a { padding: 15px 5px; border-bottom: 1px solid #e4e8ed; font-size: 20px; }
  .ain-menu a::after { display: none; }
  .slate-roster { flex-direction: column; align-items: flex-start; gap: 14px; padding-left: max(30px,calc((100% - 700px)/2)); }
  .larcher-letter__layout { grid-template-columns: 1fr; gap: 45px; }
  .larcher-letter__portrait { max-width: 480px; margin-top: 0; }
  .campaign-book__layout { gap: 60px; }
  .campaign-contact__columns { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  :root { --ain-section-space: 80px; --ain-gutter: 16px; }
  body { font-size: 16px; }
  .ain-topbar { padding-inline: 16px; }
  .campaign-intro__team { width: 100vw; height: 300px; object-fit: cover; object-position: center 42%; }
  .campaign-intro__message { display: block; width: calc(100% - 32px); max-width: 100%; padding-block: 34px 45px; }
  .campaign-intro__date { max-width: 330px; margin-bottom: 14px; font-size: 12px; line-height: 1.35; }
  .campaign-intro h1 { max-width: 340px; margin-bottom: 24px; font-size: 46px; letter-spacing: -.025em; }
  .campaign-intro__alliance { max-width: 340px; margin-bottom: 10px; font-size: 18px; line-height: 1.35; }
  .campaign-intro__leaders { max-width: 340px; margin-bottom: 30px; font-size: 17px; line-height: 1.35; }
  .campaign-action { max-width: 100%; padding: 12px 16px; font-size: 17px; white-space: normal; }
  .slate-roster { padding: 24px 20px; }
  .slate-roster__line { flex-wrap: wrap; gap: 8px 12px; line-height: 1.25; }
  .slate-roster__line span { flex: 0 0 100%; }
  .slate-roster__line i { display: none; }
  .slate-roster__line strong:not(:last-child)::after { padding-left: 12px; color: var(--ain-gold-500); content: "·"; }
  .support-wall__inner,
  .larcher-letter__inner,
  .campaign-book__layout,
  .campaign-contact__columns,
  .campaign-contact__baseline { width: calc(100% - 32px); }
  .support-wall__masthead,
  .larcher-letter__masthead { margin-bottom: 35px; }
  .support-wall__masthead h2,
  .larcher-letter__masthead h2 { font-size: 54px; }
  .support-wall__summary { display: block; }
  .support-wall__summary p:first-child { font-size: 23px; }
  .support-wall__summary p:last-child { margin-top: 6px; }
  .support-ledger__scroll { max-height: 610px; }
  .support-ledger table { display: none; }
  .support-ledger__cards { display: block; }
  .support-ledger__card { padding: 16px; border-top: 1px solid #e2e6eb; }
  .support-ledger__card:first-child { border-top: 0; }
  .support-ledger__card strong { display: block; color: var(--ain-blue-800); font: 700 22px/1.2 var(--ain-display-font); }
  .support-ledger__card p { margin: 3px 0 0; color: #4e5a6c; line-height: 1.35; }
  .larcher-letter__paper { padding: 35px 24px 25px; }
  .larcher-letter__signature { display: block; }
  .larcher-letter__signature img { width: 210px; margin-left: auto; }
  .larcher-letter__signature p { text-align: right; }
  .larcher-letter__portrait { width: calc(100% - 18px); }
  .campaign-book__layout { grid-template-columns: 1fr; gap: 55px; }
  .campaign-book__cover img { width: 85%; }
  .campaign-book__details h2 { font-size: 60px; }
  .campaign-book__details > p:not(.campaign-book__date) { font-size: 19px; }
  .campaign-contact__columns { grid-template-columns: 1fr; gap: 32px; }
  .campaign-contact__baseline { display: block; padding-block: 22px; }
  .campaign-contact__baseline p span { display: block; }
  .campaign-contact__baseline button { margin-top: 10px; }
  .legal-sheet { padding: 32px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  [data-appear] { opacity: 1; transform: none; }
}
