:root{--bone:#f7f4ee;--sand:#e6dfd1;--ink:#14283a;--sea:#0f5667;--sea-pale:#dcecef;--coral:#b5523f;--muted:#52616a;--line:rgba(20,40,58,.16);--font-display:Fraunces,Georgia,serif;--font-body:Inter,Arial,sans-serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);--text-base:clamp(1rem,.95rem + .25vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bone);color:var(--ink);font:400 var(--text-base)/1.6 var(--font-body)}a{color:var(--sea);text-underline-offset:.18em}a:hover{color:var(--coral)}a:focus-visible{outline:3px solid var(--coral);outline-offset:3px}.shell{width:min(1160px,calc(100% - 2rem));margin:auto}.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:var(--space-3);z-index:10}.skip-link:focus{left:var(--space-3)}.ribbon{background:var(--ink);color:#fff;font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase}.ribbon .shell{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0}.masthead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-5) 0;border-bottom:1px solid var(--line)}.wordmark{font:600 clamp(1.35rem,1rem + 1.5vw,2.1rem)/1 var(--font-display);color:var(--ink);text-decoration:none}.wordmark strong{color:var(--coral)}nav{display:flex;flex-wrap:wrap;gap:var(--space-4)}nav a{font-size:var(--text-sm);font-weight:700;min-height:44px;display:grid;align-items:center}.hero{background:var(--sea-pale);padding:clamp(var(--space-12),8vw,var(--space-20)) 0;border-bottom:1px solid var(--line)}.breadcrumb{display:flex;gap:var(--space-2);font-size:var(--text-sm);margin:0 0 var(--space-8)}.eyebrow{margin:0 0 var(--space-2);font-weight:700;letter-spacing:.09em;text-transform:uppercase;font-size:var(--text-xs);color:var(--sea)}h1,h2{font-family:var(--font-display);line-height:1.12}h1{font-size:var(--text-2xl);margin:0;max-width:17ch}h2{font-size:var(--text-xl);margin:0}h3{font-size:var(--text-lg);line-height:1.25;margin:0}.dek{font-size:var(--text-lg);max-width:58ch;margin:var(--space-5) 0 0}.status{max-width:66ch;margin:var(--space-5) 0 0;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:700}.status.good{background:#e2eedf;color:#234f2d}.status.hold{background:#f6e6d4;color:#763d28;display:inline-block}.status-reason{max-width:72ch;font-size:var(--text-sm);margin:var(--space-2) 0}.page-grid{display:grid;gap:var(--space-10);padding:clamp(var(--space-10),6vw,var(--space-16)) 0}.content-column{min-width:0}.section{padding:var(--space-10) 0;border-top:1px solid var(--line)}.section-heading{display:grid;gap:var(--space-2);margin-bottom:var(--space-6)}.answer-grid{display:grid;gap:var(--space-4)}.answer-card,.town-card,.sidebar section,.item,.empty-state{background:#fffdf9;border:1px solid var(--line);padding:var(--space-5);box-shadow:0 1px 2px rgba(20,40,58,.05)}.answer-card p:last-child,.item p:last-child{margin-bottom:0}.answer-card.compact{max-width:72ch}.source-line{font-size:var(--text-xs);color:var(--muted)}.item-list{display:grid;gap:var(--space-3)}.item{border-left:0}.item .date{font-weight:700;color:var(--sea);margin:var(--space-2) 0}.official-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}.official-list article{padding:var(--space-4);background:var(--bone)}.official-list p{margin:var(--space-2) 0}.empty-state{border-style:dashed}.conflict{background:#fff1e6;border:1px solid #cf896b;padding:var(--space-5);margin-bottom:var(--space-8)}.conflict h2{font-size:var(--text-lg)}.sidebar{display:grid;align-content:start;gap:var(--space-4)}.sidebar h2{font-size:var(--text-lg)}.sidebar p{font-size:var(--text-sm)}.text-link{display:block;font-size:var(--text-sm);font-weight:700;margin-top:var(--space-3);min-height:44px}.sources-section{background:#e9e4da;padding:clamp(var(--space-10),6vw,var(--space-16)) 0}.sources-section h2{margin-bottom:var(--space-4)}.source-list{padding-left:var(--space-6);max-width:90ch}.source-list li{padding:var(--space-2) 0}.source-list span{display:block;font-size:var(--text-xs);color:var(--muted)}.site-footer{background:var(--ink);color:#e7edf0;padding:var(--space-8) 0;font-size:var(--text-sm)}.site-footer .shell{display:flex;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap}.site-footer p{margin:0}.site-footer a{color:#fff;margin-right:var(--space-4)}.directory-hero{background:var(--sea-pale)}.directory-grid{display:grid;gap:var(--space-5);padding:clamp(var(--space-10),6vw,var(--space-16)) 0}.town-card{display:flex;flex-direction:column;align-items:start}.town-card h2{font-size:var(--text-lg)}.town-card .text-link{margin-top:auto}@media(min-width:760px){.page-grid{grid-template-columns:minmax(0,1fr) 280px}.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.official-list{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1050px){.directory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.masthead{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.ribbon .shell{justify-content:flex-start}.ribbon span:last-child{display:none}.hero{padding:var(--space-10) 0}.shell{width:min(100% - 1.25rem,1160px)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Town fact pages. Append-only so the header, wordmark, and coral rules above stay put. */
body{overflow-x:clip}
.page-grid,.content-column,.item,.town-card,.answer-card,.quote,.source-line,.wall,.milton-note{min-width:0}
.quote,.source-line,.source-list a,.town-card p{overflow-wrap:anywhere}
.quote{margin:0 0 var(--space-4);padding:0 0 0 var(--space-4);border-left:3px solid var(--sea);font-size:var(--text-sm)}
.flag-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 var(--space-3)}
.flag{display:inline-block;padding:.2rem .5rem;font:700 var(--text-xs)/1.3 var(--font-body);background:#fff;border:1px solid var(--line)}
.flag-draft{background:#f6e6d4;color:#763d28;border-color:#e2c2ad}
.flag-ocr{background:var(--sea-pale);color:var(--sea);border-color:#b7d4d8}
.flag-year{background:#e9e4da;color:var(--ink)}
.flag-word{background:#fff1e6;color:#763d28;border-color:#e2c2ad}
.flag-type{background:var(--ink);color:#fff;border-color:var(--ink)}
.fact-links{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0}
.fact-links a,.fact-links span{overflow-wrap:anywhere}
.fact-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 .75rem;font-weight:700;background:var(--sea-pale)}
.milton-note,.wall{margin-top:var(--space-4)}
.wall{background:#fff1e6;border:1px solid #cf896b;padding:var(--space-4)}
.disclosure{margin:0 0 var(--space-4);font-size:var(--text-sm)}
.town-card p{max-width:62ch}
.directory-grid .town-card p,
.directory-grid .town-card .source-line{margin:0.15rem 0;line-height:1.35}
.directory-grid .town-card h2{margin:0 0 0.2rem}
.directory-grid .town-card .eyebrow{margin-bottom:0.15rem}
.stale-notice{margin:0.75rem 0;padding:0.75rem 1rem;background:#fff1e6;border:1px solid #cf896b;font-weight:700}
.wordmark strong{color:#d86c4e}
.hero + .page-grid{padding-top:0}
.hero + .page-grid .content-column > .section:first-child{border-top:0;padding-top:1.25rem}

/* Land-use docket counts and affiliate disclosure (2026-10-24) */
.docket-table{width:100%;border-collapse:collapse;margin:.75rem 0;font-variant-numeric:tabular-nums}
.docket-table caption{text-align:left;font-size:.9rem;margin-bottom:.4rem}
.docket-table th,.docket-table td{text-align:left;padding:.35rem .5rem;border-bottom:1px solid rgba(0,0,0,.12)}
.docket-table td:last-child{text-align:right}
.affiliate-disclosure{font-size:.85rem;font-style:italic;margin-top:.5rem}
