/* Generated by build.py from site.html — edit that file, not this one. */
body { margin: 0; }
img { max-width: 100%; }
[hidden] { display: none !important; }

/* ============ TOKENS — dark is the default look ============ */
:root {
  color-scheme: dark;
  --ground:      #14181A;
  --ground-deep: #0F1213;
  --surface:     #1E2427;
  --surface-2:   #262D30;
  --line:        #333B3E;
  --line-soft:   #262D30;
  --text:        #EDEAE1;
  --text-dim:    #A3ABA6;
  --text-faint:  #79827D;
  --brass:       #D0A64A;
  --brass-deep:  #B98F33;
  --brass-wash:  rgba(208,166,74,.10);
  --sage:        #8B9782;
  --brick:       #C9694C;
  --panel-inv-bg:   #EDEAE1;
  --panel-inv-text: #14181A;
  --panel-inv-dim:  #565E58;
  --panel-inv-line: #C9C4B6;
  --btn-text:    #14181A;
  --shadow:      0 24px 60px -28px rgba(0,0,0,.85);
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    color-scheme: light;
    --ground:      #EFEDE5;
    --ground-deep: #E5E2D8;
    --surface:     #F7F5EF;
    --surface-2:   #EAE7DC;
    --line:        #CDC8B9;
    --line-soft:   #DCD8CB;
    --text:        #171B1C;
    --text-dim:    #555C57;
    --text-faint:  #7C837D;
    --brass:       #8A6614;
    --brass-deep:  #6E5210;
    --brass-wash:  rgba(138,102,20,.09);
    --sage:        #5F6B57;
    --brick:       #9A4227;
    --panel-inv-bg:   #191E20;
    --panel-inv-text: #EDEAE1;
    --panel-inv-dim:  #9AA29C;
    --panel-inv-line: #39413F;
    --btn-text:    #FAF8F2;
    --shadow:      0 22px 48px -30px rgba(23,27,28,.45);
  }
}
:root[data-theme="light"] {
  color-scheme: light;
  --ground:      #EFEDE5;
  --ground-deep: #E5E2D8;
  --surface:     #F7F5EF;
  --surface-2:   #EAE7DC;
  --line:        #CDC8B9;
  --line-soft:   #DCD8CB;
  --text:        #171B1C;
  --text-dim:    #555C57;
  --text-faint:  #7C837D;
  --brass:       #8A6614;
  --brass-deep:  #6E5210;
  --brass-wash:  rgba(138,102,20,.09);
  --sage:        #5F6B57;
  --brick:       #9A4227;
  --panel-inv-bg:   #191E20;
  --panel-inv-text: #EDEAE1;
  --panel-inv-dim:  #9AA29C;
  --panel-inv-line: #39413F;
  --btn-text:    #FAF8F2;
  --shadow:      0 22px 48px -30px rgba(23,27,28,.45);
}

/* ============ BASE ============ */
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--ground);
  color: var(--text);
  font-family: "Public Sans", ui-sans-serif, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 {
  font-family: Fraunces, "Iowan Old Style", Georgia, "Times New Roman", serif;
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -.018em;
  text-wrap: balance;
  margin: 0;
}
p { margin: 0; }
a { color: inherit; }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; border-radius: 2px; }

.wrap { width: 100%; max-width: 1120px; margin-inline: auto; padding-inline: 24px; }

.mono {
  font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  letter-spacing: .13em;
  text-transform: uppercase;
  font-weight: 500;
}
.tnum { font-variant-numeric: tabular-nums; }

/* ============ HEADER ============ */
.masthead {
  border-bottom: 1px solid var(--line-soft);
  background: var(--ground);
  background: color-mix(in srgb, var(--ground) 88%, transparent);
  position: sticky; top: 0; z-index: 20;
  backdrop-filter: blur(10px);
}
.masthead__in {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
  padding-block: 15px;
}
.brand { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; text-decoration: none; }
.brand__name {
  font-family: Fraunces, Georgia, serif;
  font-weight: 900; font-size: 21px; letter-spacing: -.01em;
  font-variation-settings: "opsz" 40;
}
.brand__name em { font-style: normal; color: var(--brass); }
.brand__loc { color: var(--text-faint); }
.masthead .callbtn { margin: 0; }

/* ============ BUTTONS ============ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 22px;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 600;
  text-decoration: none; border-radius: 2px; cursor: pointer;
  border: 1px solid transparent;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.btn--brass { background: var(--brass); color: var(--btn-text); border-color: var(--brass); }
.btn--brass:hover { background: var(--brass-deep); border-color: var(--brass-deep); }
.btn--ghost { background: transparent; color: var(--text); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--brass); color: var(--brass); }
.btn--block { width: 100%; padding-block: 15px; }

/* ============ HERO ============ */
.hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line-soft); }
/* plat-survey grid, faint */
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(to right, var(--line-soft) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line-soft) 1px, transparent 1px);
  background-size: 68px 68px;
  mask-image: radial-gradient(115% 88% at 12% 0%, #000 0%, transparent 72%);
  -webkit-mask-image: radial-gradient(115% 88% at 12% 0%, #000 0%, transparent 72%);
  opacity: .75;
}
.hero__in {
  position: relative;
  display: grid; grid-template-columns: 1.02fr .98fr; gap: 56px; align-items: start;
  padding-block: 68px 60px;
}
.eyebrow { color: var(--brass); display: block; }
.hero h1 {
  font-size: clamp(40px, 5.5vw, 65px);
  font-variation-settings: "opsz" 144;
  margin-block: 20px 0;
}
.hero h1 .thin { font-weight: 500; font-style: normal; color: var(--text-dim); display: block; }
.rule-brass { height: 2px; width: 84px; background: var(--brass); margin: 26px 0 24px; border: 0; }
.hero__lede { font-size: 17.5px; color: var(--text-dim); max-width: 56ch; }
.hero__lede strong { color: var(--text); font-weight: 600; }
.hero__cta { display: flex; gap: 12px; flex-wrap: wrap; margin-block-start: 30px; }

.pledges {
  display: flex; flex-wrap: wrap; gap: 0;
  margin-block-start: 34px;
  border-top: 1px solid var(--line-soft);
  padding-block-start: 18px;
}
.pledges li {
  list-style: none; padding-inline: 18px;
  border-left: 1px solid var(--line-soft);
  color: var(--text-dim);
}
.pledges li:first-child { padding-inline-start: 0; border-left: 0; }
.pledges b { color: var(--text); display: block; font-weight: 600; }

/* ============ FORM PANEL ============ */
.panel {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 3px;
  box-shadow: var(--shadow);
}
/* brass corner ticks — survey marker motif */
.panel::before, .panel::after {
  content: ""; position: absolute; width: 13px; height: 13px; pointer-events: none;
}
.panel::before { top: -1px; left: -1px; border-top: 2px solid var(--brass); border-left: 2px solid var(--brass); }
.panel::after { bottom: -1px; right: -1px; border-bottom: 2px solid var(--brass); border-right: 2px solid var(--brass); }
.panel__head {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 15px 22px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-2);
  color: var(--text-dim);
}
.panel__head .lot { color: var(--brass); }
.panel__body { padding: 24px 22px 26px; }

.field { display: block; margin-block-end: 15px; }
.field > span { display: block; color: var(--text-faint); margin-block-end: 7px; }
.field .req { color: var(--brass); }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.grid-2 .field { margin-block-end: 0; }
input, select, textarea {
  width: 100%; font: inherit; font-size: 15px;
  color: var(--text); background: var(--ground-deep);
  border: 1px solid var(--line); border-radius: 2px;
  padding: 11px 12px;
  transition: border-color .16s ease, background-color .16s ease;
}
select { appearance: none; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);
  background-position: calc(100% - 17px) calc(50% + 1px), calc(100% - 12px) calc(50% + 1px);
  background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
  padding-inline-end: 34px;
}
textarea { resize: vertical; min-height: 74px; }
input:focus, select:focus, textarea:focus { border-color: var(--brass); outline: none; background: var(--ground); }
input::placeholder, textarea::placeholder { color: var(--text-faint); }
.field-note { color: var(--text-faint); margin-block: 14px 0; line-height: 1.55; }
.field-note a { color: var(--brass); }
.form-actions { margin-block-start: 20px; }

/* dispatch (post-submit) */
.dispatch { display: none; }
.dispatch.is-sent .dispatch__fallback { display: none; }
.dispatch__check {
  width: 30px; height: 30px; border-radius: 50%;
  border: 2px solid var(--brass); color: var(--brass);
  display: none; align-items: center; justify-content: center;
  font-size: 15px; margin-block-end: 14px;
}
.dispatch.is-sent .dispatch__check { display: flex; }
.dispatch.is-on { display: block; }
form.is-off { display: none; }
.dispatch h3 { font-size: 22px; font-variation-settings: "opsz" 40; margin-block-end: 8px; }
.dispatch__lede { color: var(--text-dim); margin-block-end: 18px; }
.dispatch textarea { min-height: 168px; font-family: "IBM Plex Mono", monospace; font-size: 12.5px; line-height: 1.65; }
.dispatch__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-block-start: 14px; }
.dispatch__back { background: none; border: 0; color: var(--text-faint); padding: 0; margin-block-start: 16px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.dispatch__back:hover { color: var(--brass); }

/* ============ COUNTY STRIP ============ */
.strip {
  border-bottom: 1px solid var(--line-soft);
  background: var(--ground-deep);
}
.strip__in { overflow-x: auto; display: flex; align-items: center; gap: 0; padding-block: 14px; white-space: nowrap; }
.strip__label { color: var(--brass); padding-inline-end: 20px; }
.strip__item { color: var(--text-dim); padding-inline: 20px; border-left: 1px solid var(--line-soft); }

/* ============ SECTIONS ============ */
section { padding-block: 76px; }
.sec-head { max-width: 62ch; margin-block-end: 44px; }
.sec-head h2 { font-size: clamp(30px, 3.9vw, 42px); font-variation-settings: "opsz" 96; margin-block: 14px 0; }
.sec-head p { color: var(--text-dim); margin-block-start: 16px; font-size: 17px; }

/* ledger rows */
.ledger { border-top: 1px solid var(--line); }
.ledger__row {
  display: grid; grid-template-columns: 62px 1fr 1.35fr; gap: 28px;
  padding-block: 30px;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.ledger__idx { color: var(--brass); font-size: 13px; padding-block-start: 5px; }
.ledger__row h3 { font-size: 25px; font-variation-settings: "opsz" 40; }
.ledger__tag { color: var(--sage); margin-block-start: 9px; }
.ledger__row p { color: var(--text-dim); }
.ledger__row p + p { margin-block-start: 12px; }

/* timeline */
.track { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 3px; overflow: hidden; }
.track__step { background: var(--surface); padding: 26px 22px 28px; }
.track__day { color: var(--brass); display: block; }
.track__num {
  font-family: Fraunces, Georgia, serif; font-weight: 900; font-size: 30px;
  font-variation-settings: "opsz" 40; color: var(--text-faint);
  display: block; margin-block: 16px 10px; line-height: 1;
}
.track__step h3 { font-size: 18px; font-variation-settings: "opsz" 24; letter-spacing: -.005em; }
.track__step p { color: var(--text-dim); font-size: 14.5px; margin-block-start: 9px; }

/* spec columns */
.specs { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; }
.specs h3 { font-size: 20px; font-variation-settings: "opsz" 30; margin-block-end: 4px; }
.specs__sub { color: var(--text-faint); margin-block: 8px 20px; }
.specs ul { list-style: none; margin: 0; padding: 0; }
.specs li {
  position: relative;
  padding: 11px 0 11px 28px;
  border-top: 1px solid var(--line-soft);
  color: var(--text-dim);
}
.specs li::before {
  content: "—"; position: absolute; left: 0; top: 11px;
  color: var(--brass); font-family: "IBM Plex Mono", monospace;
  font-size: 12px; line-height: 2.1;
}
.specs--situations li::before { content: "!"; color: var(--brick); font-weight: 600; }
.specs li b { color: var(--text); font-weight: 600; }

/* inverted buyer panel */
.buyers {
  background: var(--panel-inv-bg); color: var(--panel-inv-text);
  border-radius: 3px; padding: 52px 46px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center;
}
.buyers h2 { font-size: clamp(28px, 3.4vw, 38px); font-variation-settings: "opsz" 96; margin-block: 14px 18px; }
.buyers .eyebrow { color: var(--brass); }
.buyers p { color: var(--panel-inv-dim); }
.buyers ol { list-style: none; margin: 0; padding: 0; counter-reset: b; }
.buyers ol li {
  counter-increment: b;
  position: relative;
  padding: 13px 0 13px 44px;
  border-top: 1px solid var(--panel-inv-line);
  color: var(--panel-inv-dim);
}
.buyers ol li::before {
  content: counter(b, decimal-leading-zero);
  position: absolute; left: 0; top: 13px;
  font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .08em;
  color: var(--brass); line-height: 2.3;
}
.buyers ol li b { color: var(--panel-inv-text); font-weight: 600; }
.buyers .btn--ghost { color: var(--panel-inv-text); border-color: var(--panel-inv-line); margin-block-start: 22px; }
.buyers .btn--ghost:hover { color: var(--brass); border-color: var(--brass); }

/* faq */
.faq { border-top: 1px solid var(--line); }
.faq__item { display: grid; grid-template-columns: .8fr 1.2fr; gap: 40px; padding-block: 28px; border-bottom: 1px solid var(--line); }
.faq__item h3 { font-size: 20px; font-variation-settings: "opsz" 30; }
.faq__item p { color: var(--text-dim); }
.faq__item p + p { margin-block-start: 11px; }

/* closing call band */
.band { border-block: 1px solid var(--line); background: var(--ground-deep); }
.band__in { display: flex; justify-content: space-between; align-items: center; gap: 34px; flex-wrap: wrap; padding-block: 48px; }
.band h2 { font-size: clamp(26px, 3.2vw, 36px); font-variation-settings: "opsz" 96; }
.band p { color: var(--text-dim); margin-block-start: 12px; max-width: 46ch; }
.band__cta { display: flex; gap: 12px; flex-wrap: wrap; }

/* footer */
footer { padding-block: 54px 60px; }
.foot__grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 40px; }
.foot__grid h4 { margin: 0 0 14px; color: var(--brass); font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; font-weight: 600; }
.foot__grid p, .foot__grid a { color: var(--text-dim); text-decoration: none; display: block; }
.foot__grid a:hover { color: var(--brass); }
.foot__contact a { font-size: 17px; color: var(--text); margin-block-end: 4px; }
.disclosure {
  margin-block-start: 42px; padding-block-start: 24px; border-top: 1px solid var(--line-soft);
  color: var(--text-faint); font-size: 13px; line-height: 1.7; max-width: 88ch;
}
.disclosure + .disclosure { margin-block-start: 14px; padding-block-start: 0; border: 0; }

/* ============ RESPONSIVE ============ */
@media (max-width: 940px) {
  .hero__in { grid-template-columns: 1fr; gap: 44px; padding-block: 52px 48px; }
  .track { grid-template-columns: 1fr 1fr; }
  .buyers { grid-template-columns: 1fr; gap: 34px; padding: 40px 30px; }
  .faq__item { grid-template-columns: 1fr; gap: 12px; }
  .ledger__row { grid-template-columns: 40px 1fr; }
  .ledger__row > div:last-child { grid-column: 2; }
}
@media (max-width: 620px) {
  section { padding-block: 56px; }
  .wrap { padding-inline: 18px; }
  .specs { grid-template-columns: 1fr; gap: 36px; }
  .track { grid-template-columns: 1fr; }
  .foot__grid { grid-template-columns: 1fr; gap: 30px; }
  .grid-2 { grid-template-columns: 1fr; }
  .dispatch__row { grid-template-columns: 1fr; }
  .pledges li { padding-inline: 0; border-left: 0; flex: 1 1 100%; padding-block: 5px; }
  .masthead .callbtn { display: none; }
  .btn { width: 100%; }
  .hero__cta .btn { width: auto; flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
