:root {
  color-scheme: light;
  --background: #f2efe7;
  --foreground: #171717;
  --muted: #5e5b54;
  --line: #171717;
  --soft-line: rgba(23, 23, 23, 0.25);
  --page-width: 72rem;
  --reading-width: 48rem;
}

* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  background: var(--background);
}

body {
  min-height: 100vh;
  margin: 0;
  background: var(--background);
  color: var(--foreground);
  font-family: Arial, Helvetica, sans-serif;
}

a {
  color: inherit;
  text-underline-offset: 0.2em;
}

a:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.7rem 1rem;
  background: var(--foreground);
  color: var(--background);
  transform: translateY(-150%);
}

.skip-link:focus {
  transform: translateY(0);
}

.site {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.site-header,
.site-footer {
  width: min(100% - 2rem, var(--page-width));
  margin-inline: auto;
}

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 1.25rem;
  border-bottom: 1px solid var(--soft-line);
}

.wordmark {
  display: inline-block;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-decoration: none;
  text-transform: uppercase;
}

.site-nav,
.footer-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.2rem;
}

.site-nav a,
.footer-links a {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.site-nav a:hover,
.footer-links a:hover {
  text-decoration: underline;
}

.site-main {
  display: grid;
  align-items: center;
  padding: clamp(3rem, 8vw, 7rem) 1rem;
}

.intro {
  width: min(100%, var(--page-width));
  margin-inline: auto;
}

.eyebrow {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

h1 {
  margin: 0;
  font-size: clamp(3rem, 9vw, 8rem);
  font-weight: 700;
  letter-spacing: -0.06em;
  line-height: 0.92;
}

.intro h1 {
  max-width: 12ch;
}

.rule {
  width: 100%;
  height: 2px;
  margin: clamp(2rem, 5vw, 4rem) 0 1.25rem;
  background: var(--line);
}

.status {
  margin: 0;
  color: var(--muted);
  font-size: clamp(1rem, 2vw, 1.35rem);
  line-height: 1.5;
}

.policy {
  width: min(100%, var(--reading-width));
  margin-inline: auto;
}

.policy h1 {
  max-width: 13ch;
  margin-bottom: 1rem;
  font-size: clamp(2.7rem, 7vw, 5.5rem);
}

.policy-meta {
  margin: 0 0 3rem;
  color: var(--muted);
  font-size: 0.9rem;
}

.policy h2 {
  margin: 2.5rem 0 0.7rem;
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  line-height: 1.2;
}

.policy p,
.policy li {
  font-size: 1.05rem;
  line-height: 1.72;
}

.policy ul {
  padding-left: 1.35rem;
}

.policy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-block: 2.5rem;
}

.policy-grid section {
  padding: 1.25rem;
  border: 1px solid var(--soft-line);
}

.policy-grid h2 {
  margin-top: 0;
}

.policy-grid p {
  margin-bottom: 0;
  font-size: 0.97rem;
}

.site-footer {
  padding-block: 1rem 1.25rem;
  border-top: 1px solid var(--soft-line);
  text-align: center;
}

.footer-links {
  justify-content: center;
  margin-bottom: 0.9rem;
}

.version {
  margin: 0;
  color: var(--muted);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 42rem) {
  .site-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .policy-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .intro,
  .policy {
    animation: appear 500ms ease-out both;
  }

  @keyframes appear {
    from {
      opacity: 0;
      transform: translateY(8px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

/* Gateway world map â€” version 07.30.26.12 */

.gateway {
  padding-block: clamp(1rem, 3vw, 2.5rem);
}

.world-entry {
  display: block;
  width: min(100%, 62rem);
  margin: clamp(2.4rem, 6vw, 4.5rem) auto 0;
  color: inherit;
  text-align: center;
  text-decoration: none;
}

.world-entry img {
  display: block;
  width: 100%;
  height: auto;
  opacity: 0.82;
  transition:
    opacity 180ms ease,
    transform 180ms ease;
}

.world-entry span {
  display: block;
  width: 100%;
  margin-top: 1rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
}

.world-entry:hover img,
.world-entry:focus-visible img {
  opacity: 1;
  transform: translateY(-2px);
}

.world-entry:hover span,
.world-entry:focus-visible span {
  text-decoration: none;
}

.welcome-page {
  width: min(100%, var(--reading-width));
}

.return-link {
  margin-top: 2rem;
  color: var(--muted);
  font-size: 0.9rem;
}

@media (prefers-reduced-motion: reduce) {
  .world-entry img {
    transition: none;
  }
}
/* BEGIN OWB WELCOME PORTRAIT */
.welcome-page {
  width: min(100%, var(--page-width));
}

.welcome-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.82fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
}

.welcome-copy {
  min-width: 0;
}

.welcome-portrait {
  margin: 0;
}

.welcome-portrait img {
  display: block;
  width: 100%;
  max-width: 22rem;
  height: auto;
  margin-inline: auto;

}

@media (max-width: 48rem) {
  .welcome-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .welcome-portrait img {
    max-width: 18rem;
  }
}
/* END OWB WELCOME PORTRAIT */

/* BEGIN OWB WELCOME BACKGROUND MATCH */
body.welcome-body,
body.welcome-body .site,
body.welcome-body .site-header,
body.welcome-body .site-main,
body.welcome-body .site-footer,
body.welcome-body .welcome-page,
body.welcome-body .welcome-layout,
body.welcome-body .welcome-portrait {
  background: #ffffff;
}

body.welcome-body .welcome-portrait img {
  background: #ffffff;
  mix-blend-mode: normal;
  filter: none;
  border: 0;
  box-shadow: none;
}
/* END OWB WELCOME BACKGROUND MATCH */

/* BEGIN OWB PORTRAIT EDGE FADE */
body.welcome-body .welcome-portrait {
  margin: 0;
  background: #ffffff;
}

body.welcome-body .welcome-portrait::after {
  content: none;
}

body.welcome-body .welcome-portrait img {
  display: block;
  background: #ffffff;

  -webkit-mask-image: radial-gradient(
    ellipse 72% 78% at 50% 40%,
    #000 0%,
    #000 54%,
    rgba(0, 0, 0, 0.92) 62%,
    rgba(0, 0, 0, 0.68) 72%,
    rgba(0, 0, 0, 0.30) 84%,
    transparent 100%
  );

  mask-image: radial-gradient(
    ellipse 72% 78% at 50% 40%,
    #000 0%,
    #000 54%,
    rgba(0, 0, 0, 0.92) 62%,
    rgba(0, 0, 0, 0.68) 72%,
    rgba(0, 0, 0, 0.30) 84%,
    transparent 100%
  );

  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}
/* END OWB PORTRAIT EDGE FADE */

/* BEGIN OWB PAGE TWO CONTENT */
.campaign-page {
  width: min(100%, var(--page-width));
  margin-inline: auto;
}

.campaign-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 22rem);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
}

.campaign-introduction {
  min-width: 0;
}

.campaign-introduction h1 {
  max-width: 13ch;
}

.campaign-summary {
  max-width: 39rem;
  margin: 1.5rem 0 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.65;
}

.campaign-declaration-time {
  max-width: 39rem;
  margin: 0.25rem 0 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.65;
}

.speech-player {
  max-width: 39rem;
  margin-top: clamp(2.25rem, 5vw, 3.5rem);
  padding-block: 1.5rem;
  border-block: 1px solid var(--soft-line);
}

.speech-player .eyebrow {
  margin-bottom: 0.65rem;
}

.speech-player h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  line-height: 1.1;
}

.speech-player audio {
  display: block;
  width: 100%;
  margin-top: 1rem;
}

.audio-note {
  margin: 1rem 0 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.55;
}

.campaign-portrait {
  align-self: center;
}

.written-statement {
  width: min(100%, var(--reading-width));
  margin: clamp(3.5rem, 8vw, 7rem) auto 0;
}

.written-statement h2 {
  margin: 0 0 2rem;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1;
}

.statement-copy {
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.78;
}

.statement-copy p {
  margin: 0 0 1.4rem;
}

@media (max-width: 48rem) {
  .campaign-hero {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .campaign-portrait {
    grid-row: 1;
  }

  .campaign-introduction {
    grid-row: 2;
  }

  .campaign-summary,
  .speech-player {
    max-width: none;
  }
}
/* END OWB PAGE TWO CONTENT */

/* BEGIN OWB READ-ALOUD RAIL */
.written-statement-layout {
  width: min(100%, var(--page-width));
  display: grid;
  grid-template-columns: minmax(15rem, 18rem) minmax(0, var(--reading-width));
  align-items: start;
  justify-content: center;
  gap: clamp(2rem, 5vw, 4.5rem);
  margin: clamp(3.5rem, 8vw, 7rem) auto 0;
}

.written-statement-content {
  min-width: 0;
}

.read-aloud-panel {
  position: sticky;
  top: 1.5rem;
  padding: 1.25rem;
  border: 1px solid var(--soft-line);
  background: #ffffff;
}

.written-statement .read-aloud-panel h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.15;
}

.read-aloud-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.read-aloud-controls button {
  min-height: 2.75rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--ink);
  font: inherit;
  cursor: pointer;
}

.read-aloud-controls button:hover,
.read-aloud-controls button:focus-visible {
  background: var(--ink);
  color: #ffffff;
}

.read-aloud-status,
.read-aloud-note,
.audio-status,
.audio-fallback {
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.5;
}

.read-aloud-status {
  margin: 1rem 0 0;
  font-weight: 700;
}

.read-aloud-note {
  margin: 0.75rem 0 0;
}

.audio-fallback {
  margin: 0.8rem 0 0;
}

.audio-status {
  margin: 0.5rem 0 0;
}

@media (max-width: 64rem) {
  .written-statement-layout {
    width: min(100%, var(--reading-width));
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .read-aloud-panel {
    position: static;
  }
}
/* END OWB READ-ALOUD RAIL */

/* BEGIN OWB WIRED PLAYERS */
.speech-player audio {
  display: block;
  width: 100%;
  margin-top: 1rem;
}

.player-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 1rem;
}

.player-buttons button {
  min-width: 5rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--ink);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.player-buttons button:hover,
.player-buttons button:focus-visible {
  background: var(--ink);
  color: #ffffff;
}

.player-buttons button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.player-status {
  min-height: 1.5em;
  margin: 0.8rem 0 0;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.5;
}

.audio-fallback,
.read-aloud-note {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.5;
}

.audio-fallback {
  margin: 0.75rem 0 0;
}

.read-aloud-note {
  margin: 0.75rem 0 0;
}
/* END OWB WIRED PLAYERS */

/* BEGIN OWB VOICE PICKER */
.voice-picker {
  margin: 1rem 0;
}

.voice-picker label {
  display: block;
  margin-bottom: 0.45rem;
  color: var(--ink);
  font-weight: 700;
}

.voice-picker select {
  width: 100%;
  min-height: 2.9rem;
  padding: 0.6rem 2.5rem 0.6rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: #ffffff;
  color: var(--ink);
  font: inherit;
  cursor: pointer;
}

.voice-picker select:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 2px;
}

#read-voice-note {
  margin: 0.5rem 0 0;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.45;
}
/* END OWB VOICE PICKER */

/* BEGIN OWB PORTRAIT SCALE */
.owb-candidate-portrait-scale {
  display: block;
  width: 135%;
  max-width: none;
  height: auto;
  margin-left: -17.5%;
  position: relative;
  z-index: 1;
}

@media (max-width: 720px) {
  .owb-candidate-portrait-scale {
    width: 125%;
    margin-left: -12.5%;
  }
}
/* END OWB PORTRAIT SCALE */

/* BEGIN OWB BLUE, WHITE, AND THIRTEEN STARS */
:root {
  --owb-navy: #172f50;
  --owb-blue: #172f50;
  --owb-bandage-white: #faf9f5;
  --owb-pure-white: #ffffff;
  --owb-soft-line: #c8c8c8;

  --ink: var(--owb-navy);
  --muted: #5e5b54;
  --line: var(--owb-soft-line);
  --paper: var(--owb-bandage-white);
}

html {
  background: var(--owb-bandage-white);
}

body {
  border-top: 4px solid var(--owb-navy);
  background-color: var(--owb-bandage-white);
  color: var(--owb-navy);
}

h1,
h2,
h3 {
  color: var(--owb-navy);
}

.eyebrow {
  color: var(--owb-blue);
}

a {
  color: var(--owb-blue);
  text-decoration-color: #172f50;
}

a:hover,
a:focus-visible {
  color: var(--owb-navy);
  text-decoration-color: currentColor;
}

button,
select,
audio {
  accent-color: var(--owb-navy);
}

.player-buttons button {
  border-color: var(--owb-navy);
}

.player-buttons button:first-child {
  background: var(--owb-navy);
  color: var(--owb-pure-white);
}

.player-buttons button:first-child:hover,
.player-buttons button:first-child:focus-visible {
  background: var(--owb-blue);
  border-color: var(--owb-blue);
}

.speech-player,
.read-aloud-panel {
  border-color: var(--owb-soft-line);
  box-shadow:
    0 12px 30px rgba(23, 47, 80, 0.06);
}

.voice-picker select {
  border-color: var(--owb-soft-line);
  background: var(--owb-pure-white);
}

.owb-thirteen-stars {
  display: grid;
  grid-template-columns: repeat(13, minmax(0, 1fr));
  align-items: center;
  gap: clamp(0.25rem, 1vw, 1rem);
  width: 100vw;
  max-width: none;
  margin:
    0
    0
    clamp(1.5rem, 3vw, 2.5rem)
    calc(50% - 50vw);
  padding:
    clamp(0.9rem, 1.8vw, 1.3rem)
    clamp(1rem, 4vw, 5rem);
  background: var(--owb-navy);
  border: 0;
  box-sizing: border-box;
}

.owb-thirteen-stars span {
  display: block;
  color: var(--owb-pure-white);
  font-size: clamp(1.2rem, 3vw, 2.75rem);
  line-height: 1;
  text-align: center;
}

hr {
  height: 1px;
  border: 0;
  background:
    linear-gradient(
      90deg,
      transparent,
      var(--owb-blue) 20% 80%,
      transparent
    );
}

.version,
footer {
  color: var(--muted);
}

::selection {
  background: var(--owb-navy);
  color: var(--owb-pure-white);
}
/* END OWB BLUE, WHITE, AND THIRTEEN STARS */

/* BEGIN OWB INTEGRATED STAR HEADER */
header:has(> .owb-thirteen-stars) {
  flex-wrap: wrap;
  overflow: visible;
}

header > .owb-thirteen-stars {
  flex: 0 0 100vw;
  grid-column: 1 / -1;
  order: 999;
  align-self: stretch;
}
/* END OWB INTEGRATED STAR HEADER */

/* BEGIN OWB ANNOUNCEMENT TRANSCRIPT 08.11.26.1 */
.transcript-rule {
  margin-top: clamp(3.5rem, 8vw, 7rem);
}

.announcement-transcript {
  margin-top: clamp(3.5rem, 8vw, 7rem);
}

.transcript-audio-panel {
  position: sticky;
  top: 1.5rem;
  padding: 1.25rem;
  border: 1px solid var(--owb-soft-line);
  background: var(--owb-pure-white);
  box-shadow:
    0 12px 30px rgba(23, 47, 80, 0.06);
}

.transcript-audio-panel h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.15;
}

.transcript-audio-link {
  margin: 0.8rem 0 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.5;
}

.announcement-transcript .written-statement-content > h2 {
  margin: 0 0 1.25rem;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1;
}

.transcript-introduction {
  margin: 0 0 2rem;
  color: var(--muted);
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.65;
}

.announcement-copy {
  max-width: var(--reading-width);
}

#spoken-address-title {
  scroll-margin-top: 1.5rem;
}

@media (max-width: 64rem) {
  .transcript-audio-panel {
    position: static;
  }
}
/* END OWB ANNOUNCEMENT TRANSCRIPT 08.11.26.1 */
/* BEGIN OWB SINGLE ANNOUNCEMENT PLAYER 08.11.26.2 */
.transcript-audio-panel audio {
  display: block;
  width: 100%;
  margin: 1rem 0 0;
}
/* END OWB SINGLE ANNOUNCEMENT PLAYER 08.11.26.2 */
/* BEGIN OWB CAMPAIGN NOTICE 08.11.26.5 */
.campaign-donation-notice {
  grid-column: 1 / -1;
  grid-row: auto;
  display: grid;
  grid-template-columns: minmax(8.5rem, 11rem) minmax(0, 1fr);
  align-items: start;
  gap: 1.25rem;
  width: 100%;
  padding: 1rem 1.1rem;
  border: 1px solid var(--owb-soft-line);
  border-left: 4px solid var(--owb-navy);
  background: var(--owb-pure-white);
  box-shadow:
    0 12px 30px rgba(23, 47, 80, 0.06);
  color: var(--owb-navy);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.5;
}

.campaign-donation-notice .eyebrow {
  margin: 0;
}

.campaign-donation-notice p:last-child {
  margin: 0;
}

@media (max-width: 48rem) {
  .campaign-donation-notice {
    grid-column: 1;
    grid-row: auto;
    display: block;
    padding: 1rem;
    font-size: 0.88rem;
  }

  .campaign-donation-notice .eyebrow {
    margin-bottom: 0.6rem;
  }
}
/* END OWB CAMPAIGN NOTICE 08.11.26.5 */

/* BEGIN OWB DISCLAIMER AND CONTACT BUTTON */
.campaign-disclaimer {
  max-width: 39rem;
  margin: 0.25rem 0 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  font-weight: 400;
  line-height: 1.65;
}

.candidate-contact-button {
  display: block;
  width: min(100%, 32rem);
  padding: 1rem 1.2rem;
  border: 2px solid #172f50;
  border-radius: 0.4rem;
  background: #172f50;
  color: #ffffff;
  text-align: center;
  text-decoration: none;
}

.candidate-contact-button:hover,
.candidate-contact-button:focus-visible {
  background: #172f50;
}

.candidate-contact-title,
.candidate-contact-button .candidate-contact-address {
  display: block;
  color: #ffffff;
}

.candidate-contact-title {
  font-size: 1.1rem;
  font-weight: 800;
}

.candidate-contact-button .candidate-contact-address {
  margin-top: 0.35rem;
  font-size: 0.9rem;
  overflow-wrap: anywhere;
}
/* END OWB DISCLAIMER AND CONTACT BUTTON */
/* BEGIN OWB SITEWIDE FOOTER DISCLOSURE */
.site-fec-disclaimer {
  margin: 0.75rem 0;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
}
/* END OWB SITEWIDE FOOTER DISCLOSURE */
/* BEGIN OWB ENTRANCE EMPHASIS */
.world-entry .world-entry-instruction {
  display: inline-block;
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  padding: 0.55rem clamp(0.9rem, 2vw, 1.4rem);
  border: 1px solid #172f50;
  border-radius: 0.35rem;
  background: #172f50;
  color: #ffffff;
  box-shadow: 0 0.25rem 0.7rem rgba(23, 47, 80, 0.1);
  font-size: clamp(1rem, 1.8vw, 1.35rem);
  font-weight: 750;
  line-height: 1.35;
}
/* END OWB ENTRANCE EMPHASIS */

/* BEGIN OWB FUNDRAISING STRIP 09.07.26.07 */

.owb-fundraising-strip {
  flex: 0 0 100%;
  order: 1000;
  width: 100%;
  padding: clamp(1rem, 2.4vw, 1.5rem) 0;
}

.owb-fundraising-inner {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.owb-fundraising-stat {
  min-width: 0;
  padding: 0.25rem clamp(0.75rem, 2vw, 1.5rem);
  text-align: center;
}

.owb-fundraising-stat + .owb-fundraising-stat {
  border-left: 1px solid var(--owb-soft-line);
}

.owb-fundraising-label {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--muted);
  font-size: clamp(0.68rem, 1vw, 0.78rem);
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-transform: uppercase;
}

.owb-fundraising-value {
  display: block;
  color: var(--owb-navy);
  font-size: clamp(1.25rem, 2.7vw, 2rem);
  font-weight: 800;
  line-height: 1.1;
}

.owb-fundraising-status {
  grid-column: 1 / -1;
  margin: 0.8rem 0 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.45;
  text-align: center;
}

/*
  Ordinary site pages begin naturally below the global header.
  The map gateway retains its special centered presentation.
*/

.site-main {
  align-items: start;
  padding: clamp(2.5rem, 5vw, 4.5rem) 1rem;
}

body.gateway-body .site-main {
  align-items: center;
  padding: clamp(3rem, 8vw, 7rem) 1rem;
}

@media (max-width: 42rem) {
  .owb-fundraising-inner {
    grid-template-columns: 1fr;
  }

  .owb-fundraising-stat {
    padding: 0.7rem 0.5rem;
  }

  .owb-fundraising-stat + .owb-fundraising-stat {
    border-left: 0;
    border-top: 1px solid var(--owb-soft-line);
  }

  .owb-fundraising-status {
    margin-top: 0.7rem;
  }
}

/* END OWB FUNDRAISING STRIP 09.07.26.07 */

/* BEGIN OWB FRONT DOOR 09.07.26.08 */

/*
  The gateway remains more spacious than ordinary pages,
  but begins naturally below the permanent fundraising header
  instead of being vertically centered in the remaining viewport.
*/

body.gateway-body .site-main {
  align-items: start;
  padding: clamp(4rem, 7vw, 6rem) 1rem;
}

.gateway-candidate {
  max-width: 46rem;
  margin: clamp(1.4rem, 3vw, 2rem) 0 0;
  color: var(--muted);
  line-height: 1.5;
}

.gateway-candidate-name {
  display: block;
  color: var(--owb-navy);
  font-size: clamp(1.2rem, 2.4vw, 1.65rem);
  font-weight: 800;
  letter-spacing: -0.02em;
}

.gateway-candidate-office {
  display: block;
  margin-top: 0.3rem;
  font-size: clamp(0.95rem, 1.5vw, 1.08rem);
  font-weight: 600;
}

@media (max-width: 42rem) {
  body.gateway-body .site-main {
    padding-top: 3rem;
  }
}

/* END OWB FRONT DOOR 09.07.26.08 */

/* BEGIN OWB STAR 48 09.07.26.09 */

.campaign-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.campaign-mark img {
  display: block;
  width: 100%;
  height: auto;
}

.gateway-mark {
  width: clamp(4.5rem, 9vw, 6.5rem);
  margin: clamp(1rem, 2vw, 1.35rem) 0 0;
}

.welcome-mark {
  width: clamp(4.25rem, 7vw, 5.25rem);
  margin: 0.85rem 0 0;
}

.welcome-mark img,
.gateway-mark img {
  filter: none;
}

.hero-mark-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.hero-mark-row .campaign-mark-caption {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

@media (max-width: 42rem) {
  .gateway-mark {
    width: 4.5rem;
  }

  .welcome-mark {
    width: 4rem;
  }

  .hero-mark-row .campaign-mark-caption {
    font-size: 0.76rem;
  }
}

/* END OWB STAR 48 09.07.26.09 */

/* BEGIN OWB STAR 48 PLACEMENT 09.07.26.10 */

/*
  Desktop gateway:
  introductory campaign identity on the left,
  large Star-48 campaign mark on the right.
*/

body.gateway-body .gateway {
  display: grid;
  grid-template-columns:
    minmax(0, 1.15fr)
    minmax(15rem, 0.85fr);
  column-gap: clamp(2rem, 7vw, 7rem);
  align-items: center;
}

body.gateway-body .gateway > .eyebrow {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
}

body.gateway-body .gateway > #site-title {
  grid-column: 1;
  grid-row: 2;
}

body.gateway-body .gateway > .gateway-candidate {
  grid-column: 1;
  grid-row: 3;
}

body.gateway-body .gateway > .gateway-mark {
  grid-column: 2;
  grid-row: 1 / 4;
  align-self: center;
  justify-self: center;
  width: min(100%, 22rem);
  margin: 0;
}

body.gateway-body .gateway > .rule,
body.gateway-body .gateway > .status,
body.gateway-body .gateway > .world-entry,
body.gateway-body .gateway > .gateway-actions {
  grid-column: 1 / -1;
}

body.gateway-body .gateway > .rule {
  margin-top: clamp(2rem, 4vw, 3.5rem);
}

.welcome-mark-fixed {
  display: block;
  width: clamp(5rem, 8vw, 6.5rem);
  margin: 1rem 0 0;
}

.welcome-mark-fixed img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 48rem) {
  body.gateway-body .gateway {
    grid-template-columns: 1fr;
  }

  body.gateway-body .gateway > .eyebrow,
  body.gateway-body .gateway > #site-title,
  body.gateway-body .gateway > .gateway-candidate,
  body.gateway-body .gateway > .gateway-mark {
    grid-column: 1;
  }

  body.gateway-body .gateway > .eyebrow {
    grid-row: auto;
  }

  body.gateway-body .gateway > #site-title {
    grid-row: auto;
  }

  body.gateway-body .gateway > .gateway-candidate {
    grid-row: auto;
  }

  body.gateway-body .gateway > .gateway-mark {
    grid-row: auto;
    justify-self: start;
    width: clamp(8rem, 34vw, 11rem);
    margin-top: 1.5rem;
  }
}

/* END OWB STAR 48 PLACEMENT 09.07.26.10 */

/* BEGIN OWB WELCOME STAR CENTER 09.07.26.11 */

/*
  Welcome hero desktop:
  candidate information | Star-48 | portrait
*/

body.welcome-body .campaign-hero {
  grid-template-columns:
    minmax(0, 1fr)
    minmax(8.5rem, 10.5rem)
    minmax(17rem, 20rem);

  column-gap: clamp(1.25rem, 3vw, 2.75rem);
  row-gap: clamp(2rem, 4vw, 3rem);
  align-items: center;
}

body.welcome-body .campaign-introduction {
  grid-column: 1;
  grid-row: 1;
}

body.welcome-body .welcome-mark-fixed {
  grid-column: 2;
  grid-row: 1;

  align-self: center;
  justify-self: center;

  width: clamp(8.5rem, 13vw, 10.5rem);
  margin: 0;
}

body.welcome-body .campaign-portrait-stack {
  grid-column: 3;
  grid-row: 1;
}

body.welcome-body .campaign-donation-notice {
  grid-column: 1 / -1;
  grid-row: 2;
}

@media (max-width: 48rem) {

  body.welcome-body .campaign-hero {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  body.welcome-body .campaign-portrait-stack {
    grid-column: 1;
    grid-row: 1;
  }

  body.welcome-body .campaign-introduction {
    grid-column: 1;
    grid-row: 2;
  }

  body.welcome-body .welcome-mark-fixed {
    grid-column: 1;
    grid-row: 3;

    justify-self: center;

    width: clamp(7.5rem, 28vw, 9.5rem);
    margin: 0.5rem 0;
  }

  body.welcome-body .campaign-donation-notice {
    grid-column: 1;
    grid-row: 4;
  }
}

/* END OWB WELCOME STAR CENTER 09.07.26.11 */

/* BEGIN OWB STAR 48 SOLID 09.07.26.12 */

/*
  Star-48 brand rule:

  Light field:
  navy star + white 48.

  Dark field:
  white star + navy 48.
*/

body.welcome-body .campaign-hero {
  grid-template-columns:
    minmax(0, 1fr)
    minmax(13rem, 15.5rem)
    minmax(17rem, 20rem);

  column-gap: clamp(1rem, 2.5vw, 2.25rem);
}

body.welcome-body .welcome-mark-fixed {
  width: clamp(13rem, 20vw, 15.5rem);
  max-width: 100%;
}

body.gateway-body .gateway > .gateway-mark {
  width: min(100%, 22rem);
}

@media (max-width: 64rem) and (min-width: 48.01rem) {

  body.welcome-body .campaign-hero {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(11rem, 13rem)
      minmax(15rem, 18rem);
  }

  body.welcome-body .welcome-mark-fixed {
    width: clamp(11rem, 18vw, 13rem);
  }
}

@media (max-width: 48rem) {

  body.welcome-body .campaign-hero {
    grid-template-columns: 1fr;
  }

  body.welcome-body .welcome-mark-fixed {
    width: clamp(10rem, 40vw, 13rem);
  }
}

/* END OWB STAR 48 SOLID 09.07.26.12 */

/* BEGIN OWB CONTACT STAR 48 09.07.26.17 */

.contact-title-row {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(12rem, 17rem);
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
  width: 100%;
}

.contact-title-copy {
  min-width: 0;
}

.contact-star-48 {
  width: clamp(12rem, 20vw, 17rem);
  justify-self: end;
  margin: 0;
}

.contact-star-48 img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 48rem) {

  .contact-title-row {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .contact-star-48 {
    width: clamp(8rem, 32vw, 11rem);
    justify-self: start;
  }
}

/* END OWB CONTACT STAR 48 09.07.26.17 */

/* BEGIN OWB STANDARD PAGE STAR 48 09.07.26.18 */

.owb-page-title-row {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(12rem, 17rem);
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
  width: 100%;
  margin-bottom: clamp(1.5rem, 4vw, 2.75rem);
}

.owb-page-title-copy {
  min-width: 0;
}

.owb-page-title-copy .eyebrow {
  margin-bottom: 1rem;
}

.owb-page-title-star {
  width: clamp(12rem, 20vw, 17rem);
  justify-self: end;
  margin: 0;
}

.owb-page-title-star img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 48rem) {

  .owb-page-title-row {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .owb-page-title-star {
    width: clamp(8rem, 32vw, 11rem);
    justify-self: start;
  }
}

/* END OWB STANDARD PAGE STAR 48 09.07.26.18 */

/* BEGIN OWB ARCHIVE CATALOG 09.07.26.21 */

.archive-index {
  width: min(100%, var(--page-width));
  margin: clamp(2.5rem, 6vw, 4.5rem) auto;
}

.archive-index > h2 {
  margin: 0 0 1rem;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.05;
}

.archive-index-introduction {
  max-width: 48rem;
  margin: 0 0 1.5rem;
  color: var(--muted);
  line-height: 1.65;
}

.archive-entry-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.archive-entry-card {
  display: flex;
  flex-direction: column;
  min-height: 12rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid var(--soft-line);
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
}

.archive-entry-card:hover,
.archive-entry-card:focus-visible {
  border-color: var(--owb-navy);
  background: var(--owb-navy);
  color: #ffffff;
}

.archive-entry-date {
  display: block;
  margin-bottom: 1rem;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.archive-entry-title {
  display: block;
  margin-bottom: 0.75rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  line-height: 1.1;
}

.archive-entry-meta {
  display: block;
  margin-top: auto;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
}

.archive-entry-card:hover .archive-entry-meta,
.archive-entry-card:focus-visible .archive-entry-meta {
  color: #ffffff;
}

.archive-item-date {
  margin: 0.5rem 0 1.5rem;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.archive-record-divider {
  width: min(100%, var(--page-width));
  margin: clamp(3rem, 7vw, 5rem) auto;
}

@media (max-width: 48rem) {

  .archive-entry-list {
    grid-template-columns: 1fr;
  }

  .archive-entry-card {
    min-height: 0;
  }
}

/* END OWB ARCHIVE CATALOG 09.07.26.21 */

/* BEGIN OWB MOBILE ACCESSIBILITY 09.08.26.01 */

@media (max-width: 48rem) {

  /*
    Compact mobile header.
    Removes the excessive vertical gap seen between the wordmark,
    navigation, and star field.
  */

  .site-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0 !important;
  }

  .site-header .wordmark {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    min-height: 2.75rem;
    margin: 0;
    padding: 0.35rem 0;
  }

  .site-header .site-nav {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.15rem 0.35rem !important;
    width: 100%;
    margin: 0.35rem 0 0.7rem !important;
    padding: 0 !important;
  }

  .site-header .site-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0.5rem 0.3rem;
  }

  /*
    Keep the thirteen-star banner directly beneath navigation.
  */

  .site-header > .owb-thirteen-stars {
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /*
    Compact fundraising presentation.
    Preserve all three statistics side-by-side on phones.
  */

  .owb-fundraising-strip {
    display: block !important;
    width: 100% !important;
    padding: 0.8rem 0 0.65rem !important;
  }

  .owb-fundraising-inner {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  .owb-fundraising-stat {
    min-width: 0 !important;
    padding: 0.2rem 0.35rem !important;
    text-align: center !important;
  }

  .owb-fundraising-stat + .owb-fundraising-stat {
    border-top: 0 !important;
    border-left: 1px solid var(--owb-soft-line) !important;
  }

  .owb-fundraising-label {
    margin-bottom: 0.3rem !important;
    font-size: clamp(0.56rem, 2.25vw, 0.68rem) !important;
    letter-spacing: 0.055em !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere;
  }

  .owb-fundraising-value {
    font-size: clamp(1.05rem, 5vw, 1.45rem) !important;
  }

  .owb-fundraising-status {
    grid-column: 1 / -1 !important;
    margin: 0.55rem 0 0 !important;
    padding: 0 0.5rem;
    font-size: 0.7rem !important;
    line-height: 1.4 !important;
    text-align: center !important;
  }
}

/* END OWB MOBILE ACCESSIBILITY 09.08.26.01 */

/* BEGIN OWB MOBILE FUNDRAISING FLEX FIX 09.08.26.02 */

@media (max-width: 48rem) {

  /*
    The mobile header uses flex-direction: column.

    A percentage flex-basis therefore applies to the vertical
    main axis. The fundraising strip inherited flex: 0 0 100%,
    which produced the empty mobile region.

    Reset the direct header child to intrinsic height, matching
    the established mobile correction used by the star banner.
  */

  .site-header {
    flex-wrap: nowrap !important;
  }

  .site-header > .owb-fundraising-strip {
    display: block !important;
    flex: 0 0 auto !important;
    order: 1000 !important;
    align-self: stretch !important;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0.8rem 0 0.65rem !important;

    visibility: visible !important;
    opacity: 1 !important;
  }

  .site-header > .owb-fundraising-strip
  .owb-fundraising-inner {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .site-header > .owb-fundraising-strip
  .owb-fundraising-stat,
  .site-header > .owb-fundraising-strip
  .owb-fundraising-label,
  .site-header > .owb-fundraising-strip
  .owb-fundraising-value,
  .site-header > .owb-fundraising-strip
  .owb-fundraising-status {
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* END OWB MOBILE FUNDRAISING FLEX FIX 09.08.26.02 */

/* BEGIN OWB HOME STAR REFLOW 09.08.26.03 */

@media (max-width: 48rem) {

  /*
    Preserve the large approved desktop gateway mark while
    preventing browser zoom / narrow reflow from allowing the
    home Star-48 to dominate the entire viewport.
  */

  body.gateway-body .gateway > .gateway-mark {
    width: clamp(10rem, 44vw, 12rem) !important;
    max-width: 12rem !important;

    justify-self: center !important;

    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* END OWB HOME STAR REFLOW 09.08.26.03 */

/* BEGIN OWB 404 STAR 09.08.26.06 */

body.not-found-page .site-main {
  overflow: hidden;
}

body.not-found-page .not-found-intro {
  position: relative;
  isolation: isolate;

  min-height: 26rem;

  display: flex;
  flex-direction: column;
  justify-content: center;

  overflow: hidden;
}

body.not-found-page .not-found-intro > *:not(.not-found-mark) {
  position: relative;
  z-index: 1;
}

body.not-found-page .not-found-mark {
  position: absolute;
  z-index: 0;

  top: 50%;
  right: clamp(-10rem, -7vw, -4rem);

  width: clamp(22rem, 46vw, 38rem);
  max-width: none;

  opacity: 1;

  transform:
    translateY(-50%)
    rotate(8deg);

  pointer-events: none;
  user-select: none;
}

body.not-found-page .not-found-mark img {
  width: 100%;
  height: auto;
}

@media (max-width: 48rem) {

  body.not-found-page .not-found-intro {
    min-height: 23rem;
  }

  body.not-found-page .not-found-mark {
    top: 54%;
    right: -6rem;

    width: clamp(18rem, 78vw, 25rem);

    opacity: 1;

    transform:
      translateY(-50%)
      rotate(8deg);
  }
}

@media (prefers-reduced-motion: reduce) {

  body.not-found-page .not-found-mark {
    transform:
      translateY(-50%)
      rotate(8deg);
  }
}

/* END OWB 404 STAR 09.08.26.06 */

/* BEGIN OWB LEGAL HUB 09.08.26.07 */

.legal-hub-intro {
  max-width: 66rem;
  margin-top: 1.25rem;
  font-size: 1.08rem;
  line-height: 1.7;
}

.legal-hub-section {
  margin-top: 2.75rem;
}

.legal-hub-section > h2 {
  margin-bottom: 0.45rem;
}

.legal-hub-section-intro {
  max-width: 62rem;
  margin-top: 0;
  color: var(--muted);
}

.legal-policy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.35rem;
}

.legal-policy-card {
  min-width: 0;
  padding: 1.35rem;

  border: 1px solid rgba(23, 47, 80, 0.22);
  border-radius: 0.45rem;

  background: rgba(255, 255, 255, 0.34);
}

.legal-policy-card h3 {
  margin: 0 0 0.55rem;
  font-size: 1.18rem;
}

.legal-policy-card h3 a {
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

.legal-policy-card p {
  margin: 0;
}

.legal-policy-card .legal-policy-link {
  display: inline-block;
  margin-top: 0.9rem;

  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.legal-notice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.35rem;
}

.legal-notice-card {
  min-width: 0;
  padding: 1.35rem;

  border-top: 0.22rem solid #172f50;
  background: rgba(23, 47, 80, 0.045);
}

.legal-notice-card h3 {
  margin-top: 0;
}

.legal-notice-card p:last-child {
  margin-bottom: 0;
}

.legal-hub-contact {
  padding-top: 1.25rem;
  border-top: 1px solid rgba(23, 47, 80, 0.22);
}

@media (max-width: 48rem) {

  .legal-policy-grid,
  .legal-notice-grid {
    grid-template-columns: 1fr;
  }

  .legal-hub-section {
    margin-top: 2.25rem;
  }

  .legal-policy-card,
  .legal-notice-card {
    padding: 1.15rem;
  }
}

/* END OWB LEGAL HUB 09.08.26.07 */
