/* TownSignal — brand rebuild. Foundation: tokens + base. */
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/sourceserif4-300.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/sourceserif4-400.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/sourceserif4-600.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibmplexmono-400.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibmplexmono-500.woff2) format('woff2');}

:root{
  --paper:#FAF9F6; --card:#FFFEFB; --wash:#F6F4EE;
  --rule:#E3E0D8; --rule-light:#EDEAE2; --border-card:#D8D4C9; --border-input:#CFCBC0;
  --ink:#1A1917; --body:#45423C; --muted:#55524B; --grey:#6B675E;
  --ink-rule:#3B3934; --ink-body:#A8A49B;
  --red:#B3122B; --red-hover:#8C0E22; --red-on-dark:#E0857F; --selection:#F2D4D9;
  --serif:'Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',monospace;
  --sans:'Helvetica Neue',Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:68px;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--body);font:400 16px/1.62 var(--sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;}
img,svg{display:block;max-width:100%;}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0;}
ul{list-style:none;padding:0;}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--ink);text-wrap:balance;}
p{text-wrap:pretty;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--selection);}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:100;}
.skip-link:focus{left:0;}
.container{max-width:1120px;margin:0 auto;padding:0 40px;}
.section{padding:88px 0;}
.hero{padding:84px 0 72px;}
.ground-paper{background:var(--paper);}
.ground-wash{background:var(--wash);}
.ground-card{background:var(--card);}
.ground-ink{background:var(--ink);color:var(--ink-body);}
.link-red{color:var(--red);transition:color 150ms ease;}
.link-red:hover{color:var(--red-hover);text-decoration:underline;text-underline-offset:3px;}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans);font-weight:500;line-height:1;border:1px solid transparent;border-radius:2px;cursor:pointer;text-decoration:none;transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease;}
.btn-red{background:var(--red);color:var(--paper);}
.btn-red:hover{background:var(--red-hover);}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--border-input);}
.btn-outline:hover{border-color:var(--ink);}
.btn-dark{background:var(--ink);color:var(--paper);}
.btn-dark:hover{background:var(--red);}

/* T1 header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,249,246,0.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);}
.site-header .container{display:flex;align-items:center;justify-content:space-between;min-height:68px;}
.brand{display:inline-flex;align-items:center;gap:11px;}
.brand .wordmark{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:-0.015em;color:var(--ink);}
.nav{display:flex;align-items:center;gap:28px;}
.nav-link{font-size:13.5px;color:var(--muted);transition:color 150ms ease;}
.nav-link:hover{color:var(--ink);}
.nav-cta{font-size:13.5px;padding:9px 16px;}

/* T2 hero */
.hero .container{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:24px;}
.hero-eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--red);}
.hero-h1{font-size:60px;line-height:1.04;letter-spacing:-0.025em;}
.hero-body{font-size:17px;line-height:1.6;color:var(--body);max-width:46ch;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
.hero-actions .btn{font-size:14.5px;}
.btn-hero-primary{padding:13px 22px;}
.btn-hero-secondary{padding:13px 18px;}
.hero-stamp{align-self:stretch;border-top:1px solid var(--rule);padding-top:18px;font-family:var(--mono);font-size:11.5px;line-height:1.85;color:var(--grey);}
.hero-alert{border:1px solid var(--border-card);background:var(--card);box-shadow:0 1px 2px rgba(26,25,23,0.04),0 12px 32px -18px rgba(26,25,23,0.18);}
.hero-alert__bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--wash);border-bottom:1px solid var(--rule);}
.hero-alert__bar span{font-family:var(--mono);font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--grey);}
.hero-alert__body{padding:26px 28px 28px;display:flex;flex-direction:column;gap:18px;}
.alert-juris{font-family:var(--mono);font-size:11px;letter-spacing:0.07em;color:var(--red);}
.alert-headline{font-size:25px;line-height:1.24;letter-spacing:-0.012em;color:var(--ink);}
.alert-field{display:flex;flex-direction:column;gap:6px;}
.alert-label{font-family:var(--mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--grey);}
.alert-item-text{font-size:14.5px;line-height:1.55;color:var(--body);}
.alert-verbatim{display:flex;flex-direction:column;gap:6px;border-left:2px solid var(--red);padding:2px 0 2px 18px;}
.alert-verbatim blockquote{font-family:var(--serif);font-size:17px;line-height:1.5;color:var(--ink);}
.alert-source{border-top:1px solid var(--rule);padding-top:16px;font-family:var(--mono);font-size:12px;color:var(--grey);}
.alert-source .alert-label{font-size:12px;}
.alert-source a{color:var(--red);transition:color 150ms ease;}
.alert-source a:hover{color:var(--red-hover);text-decoration:underline;text-underline-offset:3px;}

/* T3 verification band */
.verify{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:26px 0;}
.verify-text{font-family:var(--serif);font-size:19px;line-height:1.5;color:var(--body);}
.verify-strong{color:var(--ink);}

/* reusable section heading primitives (introduced T4) */
.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--red);}
.eyebrow--dark{color:var(--red-on-dark);}
.section-h2{font-size:40px;line-height:1.12;letter-spacing:-0.02em;}
/* T4 who it's for */
.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;}
.who-left{display:flex;flex-direction:column;align-items:flex-start;gap:20px;}
.who-para{font-size:16px;line-height:1.62;color:var(--body);max-width:48ch;}
.who-list-head{font-family:var(--mono);font-size:11.5px;letter-spacing:0.06em;color:var(--grey);border-bottom:1px solid var(--border-card);padding-bottom:12px;}
.who-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--rule);}
.who-name{font-size:14.5px;color:var(--ink);}
.who-signal{font-family:var(--mono);font-size:11.5px;color:var(--grey);text-align:right;}

/* T5 anatomy */
.anatomy-head{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:48px;}
.anatomy-intro{font-size:16px;line-height:1.62;color:var(--body);max-width:56ch;}
.anatomy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.anatomy-cell{background:var(--card);padding:26px 24px 30px;display:flex;flex-direction:column;gap:12px;}
.anatomy-num{font-family:var(--mono);font-size:11px;letter-spacing:0.07em;color:var(--red);}
.anatomy-title{font-family:var(--serif);font-size:21px;font-weight:400;color:var(--ink);}
.anatomy-body{font-size:14px;line-height:1.6;color:var(--muted);}

/* T6 standing rules (dark) */
.rules-head{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:48px;}
.rules-head .section-h2{color:var(--paper);}
.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 72px;}
.rule-item{border-top:1px solid var(--ink-rule);padding-top:20px;display:flex;flex-direction:column;gap:12px;}
.rule-title{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1.25;color:var(--paper);}
.rule-body{font-size:15px;line-height:1.62;color:var(--ink-body);max-width:44ch;}

/* T7 coverage */
.coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;}
.coverage-left{display:flex;flex-direction:column;align-items:flex-start;gap:20px;}
.coverage-body{font-size:16px;line-height:1.62;color:var(--body);max-width:48ch;}
.coverage-ask{font-size:16px;line-height:1.62;color:var(--body);}
.coverage-table{width:100%;border-collapse:collapse;border:1px solid var(--border-card);background:var(--card);}
.coverage-table th{font-family:var(--mono);font-weight:400;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--grey);text-align:left;background:var(--wash);padding:14px 22px;}
.coverage-table td{padding:15px 22px;border-bottom:1px solid var(--rule-light);vertical-align:middle;}
.cov-town{font-family:var(--serif);font-size:19px;color:var(--ink);}
.cov-detail{font-family:var(--mono);font-size:11.5px;color:var(--grey);}
.cov-next{border-bottom:none;font-family:var(--mono);font-size:11.5px;color:var(--grey);}

/* T8 pricing */
.pricing-head{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:40px;}
.pricing-intro{font-size:16px;line-height:1.62;color:var(--body);max-width:56ch;}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch;}
.price-card{display:flex;flex-direction:column;gap:18px;padding:28px 26px 26px;background:var(--card);border:1px solid var(--border-card);}
.price-card--featured{border-color:var(--red);}
.price-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.price-name{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);}
.price-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:0.07em;text-transform:uppercase;color:var(--red);}
.price-amount{display:flex;align-items:baseline;gap:6px;}
.price-num{font-family:var(--serif);font-size:38px;letter-spacing:-0.02em;color:var(--ink);}
.price-per{font-family:var(--mono);font-size:12px;color:var(--grey);}
.price-features{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--rule);padding-top:16px;}
.price-features li{font-size:14.5px;color:var(--body);}
.price-cta{margin-top:auto;justify-content:center;font-size:14px;padding:11px 16px;}

/* T9 faq */
.faq-grid{display:grid;grid-template-columns:300px 1fr;gap:72px;align-items:start;}
.faq-head{display:flex;flex-direction:column;align-items:flex-start;gap:16px;}
.faq-h2{font-size:36px;line-height:1.12;letter-spacing:-0.02em;}
.faq-item{border-top:1px solid var(--rule);padding:22px 0;display:flex;flex-direction:column;gap:10px;}
.faq-q{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--ink);}
.faq-a{font-size:15px;line-height:1.62;color:var(--muted);max-width:62ch;}

/* T10 closing cta */
.closing{padding:76px 0;}
.closing .container{display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px;}
.closing-h2{font-size:42px;line-height:1.1;letter-spacing:-0.022em;}
.closing-body{font-size:16px;line-height:1.62;color:var(--body);max-width:52ch;}
.closing-cta{font-size:14.5px;padding:14px 26px;}

/* T11 footer */
.site-footer{border-top:1px solid var(--rule);padding:44px 0 56px;}
.site-footer .container{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;}
.footer-left{display:flex;flex-direction:column;align-items:flex-start;gap:16px;}
.lockup-secondary{display:inline-flex;align-items:center;gap:10px;}
.wordmark-caps{font-family:var(--mono);font-size:11.5px;letter-spacing:0.34em;text-transform:uppercase;color:var(--ink);}
.footer-desc{font-size:13.5px;line-height:1.6;color:var(--grey);max-width:40ch;}
.footer-links{display:flex;gap:22px;flex-wrap:wrap;}
.footer-links a{font-size:13px;color:var(--grey);transition:color 150ms ease;}
.footer-links a:hover{color:var(--ink);}

/* T12 responsive */
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
@media (max-width:1023px){
  .container{padding:0 32px;}
  .section{padding:64px 0;}
  .hero{padding:64px 0 56px;}
  .closing{padding:64px 0;}
  .hero .container,.who-grid,.coverage-grid,.rules-grid,.faq-grid{grid-template-columns:1fr;gap:48px;}
  .anatomy-grid{grid-template-columns:1fr 1fr;}
  .pricing-grid{grid-template-columns:1fr;}
}
@media (max-width:767px){
  .container{padding:0 20px;}
  .hero-h1{font-size:40px;}
  .section-h2,.faq-h2,.closing-h2{font-size:30px;}
  .hero-body{font-size:16px;}
  .anatomy-grid{grid-template-columns:1fr;}
  .nav-link{display:none;}
  .btn{min-height:44px;}
}

/* T13 legal pages */
.legal-page{max-width:720px;margin:0 auto;padding:64px 40px 96px;}
.legal-page h1{font-size:42px;line-height:1.1;letter-spacing:-0.022em;margin-top:14px;}
.legal-updated{font-family:var(--mono);font-size:12px;color:var(--grey);margin-top:12px;}
.legal-page section{margin-top:40px;padding-top:32px;border-top:1px solid var(--rule);}
.legal-page section h2{font-size:24px;line-height:1.25;margin-bottom:14px;}
.legal-page section p{font-size:16px;line-height:1.7;color:var(--body);max-width:66ch;}
.legal-page section p + p{margin-top:14px;}
.legal-page a{color:var(--red);transition:color 150ms ease;}
.legal-page a:hover{color:var(--red-hover);text-decoration:underline;text-underline-offset:3px;}
@media (max-width:767px){.legal-page{padding:48px 20px 72px;}}

/* Task 1: single founding-member pricing card */
.pricing-single{max-width:440px;margin:0 auto;}
