@font-face{font-family:Manrope;src:url('./manrope-latin.woff2') format('woff2');font-style:normal;font-weight:300 700;font-display:swap}
:root{--charcoal:#191716;--raised:#24201d;--red:#7e2f25;--ivory:#eee3d1;--paper:#e4d8c4;--ink:#2b211b;--bone:#b8a793;--butter:#b09474;--brass:#654c2c;--muted-ink:#594738;--line:rgba(176,148,116,.38);--radius:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:64px}body{margin:0;background:var(--charcoal);color:var(--ivory);font-family:Manrope,Arial,sans-serif;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}p,h1,h2,h3,figure{margin:0}h1,h2,h3{font-weight:400;letter-spacing:-.045em;line-height:1.12}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}a:focus-visible,input:focus-visible,button:focus-visible{outline:2px solid var(--butter);outline-offset:5px}::selection{background:var(--butter);color:var(--charcoal)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;z-index:20;top:-100px;left:16px;padding:10px 20px;background:var(--ivory);color:var(--ink)}.skip-link:focus{top:48px}
.study-strip{position:relative;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:0 28px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.015em;color:var(--bone)}.study-strip a{display:inline-flex;align-items:center;min-height:44px}.study-strip a:hover{color:var(--ivory)}
.page-shell{max-width:1600px;margin:auto;padding:20px 28px 0}.hero-cover{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);min-height:630px;display:flex;flex-direction:column;justify-content:space-between;background:var(--raised)}.hero-image{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;filter:sepia(.22) saturate(.78) contrast(1.02)}.hero-shade{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(25,23,22,.87),rgba(25,23,22,.42) 65%,rgba(25,23,22,.15)),linear-gradient(0deg,rgba(25,23,22,.8),transparent 70%,rgba(25,23,22,.25))}.site-header{display:grid;grid-template-columns:minmax(230px,1fr) minmax(320px,480px) minmax(60px,1fr);gap:24px;align-items:start;padding:32px 36px}.brand{display:inline-flex;align-items:center;width:260px;max-width:100%;min-height:44px}.wordmark{width:100%;height:auto;filter:invert(1) brightness(.8) sepia(.2) brightness(1.09)}.hero-copy{padding:38px 48px 64px}.eyebrow{font-size:11px;line-height:1.6;letter-spacing:.14em;text-transform:uppercase;margin-bottom:24px}.hero-copy h1{font-size:clamp(48px,5.7vw,86px);max-width:1050px;line-height:1.08;text-wrap:balance}.hero-deck{font-size:22px;margin-top:28px;color:var(--paper)}.image-note{font-size:9px;line-height:1.5;color:var(--bone);padding:0 36px 20px;text-align:right}
.introduction{display:grid;grid-template-columns:1fr 1fr;gap:84px;padding:78px 48px 92px;max-width:1340px;margin:auto}.introduction p{color:var(--bone);max-width:51ch}.introduction p+p{margin-top:24px}.introduction .intro-emphasis{color:var(--ivory);font-size:21px}

.closing{border-radius:var(--radius);overflow:hidden;background:var(--red);margin-top:76px}.closing-statement{padding:52px 48px;border-bottom:1px solid rgba(238,227,209,.3)}.closing-statement p{font-size:clamp(40px,5.2vw,74px);letter-spacing:-.045em;line-height:1.12}.signup-panel{display:grid;grid-template-columns:1fr 1.1fr;gap:72px;padding:54px 48px 64px}.signup-intro h2{font-size:36px;max-width:15ch}.signup-intro>p{font-size:16px;line-height:1.8;margin-top:26px;max-width:43ch}.preview-note{display:inline-block;color:var(--ivory);font-size:11px;line-height:1.6;padding:6px 10px;border:1px solid rgba(238,227,209,.45);border-radius:4px;margin-bottom:24px}.signup-form fieldset{border:0;padding:0;margin:0;min-width:0}.email-label,.town-field label{display:block;font-size:14px}.signup-form input[type=email],.signup-form input[type=text]{display:block;width:100%;min-height:52px;border:1px solid rgba(238,227,209,.6);border-radius:8px;background:rgba(25,23,22,.12);color:var(--ivory);padding:12px 14px;margin-top:9px;font-size:16px}.signup-form input:focus-visible{outline-color:var(--ivory)}.signup-form .interests{margin-top:28px}.interests legend{font-size:14px;line-height:1.7;max-width:100%}.field-hint{font-size:12px;line-height:1.6;margin-top:4px;color:var(--paper)}.interest-options{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin-top:18px}.interest-option{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.6;min-height:44px;cursor:pointer}.interest-option:first-child{grid-column:1/-1}.interest-option input{flex:0 0 18px;accent-color:var(--ivory);width:18px;height:18px;margin:2px 0 0}.town-field{margin-top:18px}.signup-submit{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid var(--paper);border-radius:40px;padding:10px 11px 10px 23px;margin-top:30px;min-height:52px;background:var(--ivory);color:var(--red);font-size:14px;font-weight:600;min-width:210px}.signup-submit span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--red);color:var(--ivory);font-size:20px}.signup-submit:disabled{cursor:not-allowed;background:var(--paper);border-color:var(--paper)}.signup-status{font-size:12px;margin-top:12px;line-height:1.6}.signup-status:empty{display:none}.site-footer{display:flex;justify-content:space-between;align-items:end;gap:24px;max-width:1600px;margin:auto;padding:56px 76px 34px}.site-footer .brand{width:270px}.site-footer p{font-size:11px;color:var(--bone);margin-top:8px}.privacy-pending{font-size:12px;color:var(--bone);display:flex;gap:10px;align-items:center}.privacy-pending small{font-size:9px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);border-radius:3px;padding:2px 5px}
@media(max-width:1100px){.site-header{grid-template-columns:220px minmax(0,1fr);gap:30px}.hero-copy{padding:40px 36px 52px}.hero-copy h1{font-size:64px}.introduction{gap:46px;padding:64px 36px 76px}.signup-panel{gap:38px;padding:42px 36px}.closing-statement{padding:42px 36px}.signup-intro h2{font-size:32px}.site-footer{padding-left:64px;padding-right:64px}}
@media(max-width:760px){.study-strip{padding:0 18px;font-size:10px}.study-detail{display:none}.page-shell{padding:12px 16px 0}.hero-cover{min-height:0}.site-header{grid-template-columns:1fr;gap:26px;padding:26px 24px 18px}.brand{width:240px}.hero-copy{padding:32px 24px 44px}.hero-copy h1{font-size:clamp(40px,7.8vw,58px);line-height:1.1;text-wrap:initial}.eyebrow{font-size:10px;margin-bottom:22px}.hero-deck{font-size:18px;margin-top:26px}.image-note{padding:0 24px 18px;text-align:left;font-size:8px}.introduction{grid-template-columns:1fr;gap:24px;padding:42px 16px 64px}.introduction p{font-size:16px;max-width:none;line-height:1.8}.introduction p+p{margin-top:18px}.introduction .intro-emphasis{font-size:18px}.closing{margin-top:52px}.closing-statement{padding:34px 24px}.closing-statement p{font-size:43px;max-width:9ch}.signup-panel{grid-template-columns:1fr;gap:36px;padding:34px 24px 38px}.signup-intro h2{font-size:31px;max-width:16ch}.signup-intro>p{font-size:16px;margin-top:22px}.interest-options{gap:8px 18px}.site-footer{align-items:start;flex-direction:column;padding:38px 32px 30px;gap:24px}.site-footer .brand{width:240px}}
@media(max-width:380px){.page-shell{padding:10px 10px 0}.site-header{padding:22px 20px 14px}.brand{width:220px}.hero-copy{padding:28px 20px 38px}.hero-copy h1{font-size:38px}.hero-deck{font-size:17px}.hero-copy h1 br{display:none}.image-note{padding-left:20px;padding-right:20px}.introduction{padding-left:10px;padding-right:10px}.closing-statement{padding:30px 20px}.signup-panel{padding:30px 20px}.signup-intro h2{font-size:28px}.interest-options{grid-template-columns:1fr}.interest-option:first-child{grid-column:auto}.site-footer{padding-left:28px;padding-right:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Homepage election ticker occupies the former horizontal navigation slot. */
.site-header {
  display: grid;
  grid-template-columns: minmax(220px,1fr) minmax(360px,520px) minmax(100px,1fr);
  align-items: start;
  gap: 28px;
  padding: 30px 36px 16px;
}
.site-header>.brand { grid-column: 1; grid-row: 1; margin-top: 12px; }
.election-countdown { grid-column: 2; grid-row: 1; min-width: 0; text-align: center; color: #f6f5ee; }
.countdown-face { display: grid; width: 75%; margin-inline: auto; grid-template-columns: 1.35fr repeat(3,minmax(0,1fr)); gap: 12px; align-items: start; }
.countdown-unit { display: flex; flex-direction: column; min-width: 0; }
.countdown-number { font-size: clamp(33.75px,3.6vw,49.5px); font-weight: 300; line-height: 1.08; letter-spacing: -.06em; font-variant-numeric: tabular-nums; white-space: nowrap; text-shadow: 0 1px 15px rgba(0,0,0,.2); }
.countdown-label { margin-top: 6px; font-size: 6.75px; line-height: 1.4; text-transform: uppercase; letter-spacing: .23em; color: #eceee4; }
.countdown-caption { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 8px; }
.countdown-message { margin: 0; font-size: 13px; line-height: 1.5; font-weight: 400; color: #f2f1e9; }
.countdown-toggle { display: inline-flex; justify-content: center; align-items: center; flex: 0 0 40px; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(239,238,232,.2); border-radius: 50%; background: rgba(13,18,12,.14); color: #f2f1e9; font-size: 13px; }
.countdown-toggle:hover,.countdown-toggle[aria-pressed=true] { background: rgba(239,238,232,.16); border-color: rgba(239,238,232,.5); }
.countdown-fallback { font-size: 13px; line-height: 1.7; text-transform: uppercase; letter-spacing: .1em; margin: 0; }
.countdown-fallback time { font-size: 25px; text-transform: none; letter-spacing: -.03em; }
@media (max-width: 1100px) and (min-width: 901px) {
  .site-header { grid-template-columns: 200px minmax(0,1fr) 90px; gap: 20px; padding-left: 30px; padding-right: 30px; }
  .countdown-number { font-size: 37.5px; }
  .countdown-caption { gap: 4px; }
  .countdown-message { font-size: 12px; }
  .countdown-face { gap: 7.5px; }
}
@media (max-width: 900px) {
  .site-header { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 24px 24px 12px; }
  .site-header>.brand { margin-top: 0; align-self: center; }
  .election-countdown { grid-column: 1/-1; grid-row: 2; justify-self: center; width: min(100%,500px); }
  .countdown-number { font-size: clamp(30px,5.7vw,45px); }
  .countdown-face { gap: 10.5px; }
  .countdown-caption { margin-top: 10px; }
  .countdown-message { font-size: 13px; }
}
@media (max-width: 420px) {
  .site-header { padding: 20px 20px 10px; gap: 25px 12px; }
  .countdown-face { gap: 6.75px; }
  .countdown-number { font-size: clamp(26.25px,8.025vw,33px); }
  .countdown-label { font-size: 6px; letter-spacing: .18em; margin-top: 4.5px; }
  .countdown-message { font-size: 12px; text-align: left; }
  .countdown-caption { margin-top: 10px; justify-content: space-between; gap: 10px; }
  .countdown-toggle { flex-basis: 40px; }
}
.election-countdown,.countdown-number,.countdown-label,.countdown-message{color:var(--ivory)}
.countdown-toggle{background:rgba(25,23,22,.36);color:var(--ivory);border-color:var(--butter);cursor:pointer}
.countdown-toggle:hover,.countdown-toggle[aria-pressed=true]{background:var(--red);border-color:var(--ivory);color:var(--ivory)}






/* Eight independent scrolling sections, using Version A's spacious vision layout. */
.invitations{padding:16px 12px 0;color:var(--ivory)}
.invitations-heading{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start;padding:42px 0 58px}
.invitations-index{font-size:12px;line-height:1.7;letter-spacing:.04em;color:var(--bone);padding-top:9px}
.invitations-heading h2{font-size:clamp(32px,3.2vw,46px);line-height:1.15;max-width:20ch;font-weight:400}
.invitation-block{display:grid;grid-template-columns:.8fr 1.2fr;grid-template-rows:auto 1fr;gap:40px 80px;min-height:610px;padding:100px 0;border-top:1px solid rgba(176,148,116,.2);scroll-margin-top:24px}
.invitation-label{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:14px;align-self:start}
.invitation-number{font-size:13px;line-height:1.5;letter-spacing:.04em;color:var(--bone)}
.invitation-label p{font-size:18px;line-height:1.5;color:var(--ivory)}
.invitation-copy{grid-column:2;grid-row:1/3;min-width:0;align-self:start}
.invitation-copy h3{font-size:clamp(34px,3.7vw,54px);font-weight:300;letter-spacing:-.045em;line-height:1.2;max-width:23ch;text-wrap:balance}
.invitation-copy h3 strong{font-weight:650}
.invitation-body{font-size:18px;line-height:1.85;color:var(--bone);margin-top:34px;max-width:55ch}
.invitation-block .begin-line{grid-column:1;grid-row:2;align-self:end;max-width:34ch;margin:0;padding:0;border:0;font-size:14px;line-height:1.8;color:var(--bone)}
.invitation-block .begin-line strong{display:block;font-size:11px;font-weight:500;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;color:var(--ivory);margin-bottom:12px}
@media(max-width:1100px){
  .invitations-heading,.invitation-block{column-gap:50px;grid-template-columns:.8fr 1.2fr}
  .invitation-block{min-height:590px;padding:86px 0}
  .invitation-copy h3{font-size:39px}
  .invitation-body{font-size:17px}
  .invitation-block .begin-line{max-width:30ch;font-size:13px}
}
@media(max-width:760px){
  .invitations{padding:12px 16px 0}
  .invitations-heading{grid-template-columns:1fr;gap:18px;padding:22px 0 38px}
  .invitations-index{padding:0;font-size:11px}
  .invitations-heading h2{font-size:34px;max-width:18ch}
  .invitation-block{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:32px;min-height:0;padding:58px 0 64px}
  .invitation-label{grid-column:1;grid-row:1;gap:10px}
  .invitation-number{font-size:12px}
  .invitation-label p{font-size:17px}
  .invitation-copy{grid-column:1;grid-row:2}
  .invitation-copy h3{font-size:35px;max-width:23ch;text-wrap:initial}
  .invitation-body{font-size:16px;line-height:1.8;margin-top:24px;max-width:none}
  .invitation-block .begin-line{grid-column:1;grid-row:3;max-width:none;padding-top:24px;border-top:1px solid rgba(176,148,116,.25);font-size:15px;line-height:1.8}
  .invitation-block .begin-line strong{font-size:10px;margin-bottom:10px}
}
@media(max-width:380px){
  .invitations{padding-left:14px;padding-right:14px}
  .invitations-heading h2{font-size:31px}
  .invitation-copy h3{font-size:31px}
  .invitation-block{padding:48px 0 54px;gap:28px}
}
