
:root{--navy:#071c33;--deep:#041222;--forest:#153f34;--gold:#d5a348;--cream:#f7f2e8;--paper:#fffdf8;--slate:#5c6b7b;--line:#d9e1ea;--blue:#0d4b73;--green:#2f7d55;--red:#9b3b3b;--shadow:0 20px 50px rgba(7,28,51,.16)}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#162033;background:var(--cream);line-height:1.55} a{color:inherit} .wrap{max-width:1180px;margin:0 auto;padding:0 1rem}
.nav{position:sticky;top:0;z-index:50;background:rgba(7,28,51,.94);backdrop-filter:blur(18px);color:white;border-bottom:1px solid rgba(255,255,255,.12)}.navin{height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative}.brand{font-weight:900;letter-spacing:.02em;font-size:1.05rem}.brand span{color:var(--gold)}.links{display:flex;align-items:center;gap:.9rem;font-weight:700;font-size:.9rem}.links a{text-decoration:none;color:#dbe6f1}.links a:hover{color:white}.menu-toggle{display:none;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:white;border-radius:999px;padding:.58rem .82rem;font-weight:900;font-size:.9rem;cursor:pointer}.menu-toggle-lines,.menu-toggle-lines:before,.menu-toggle-lines:after{display:block;width:18px;height:2px;background:currentColor;border-radius:999px;content:""}.menu-toggle-lines{position:relative}.menu-toggle-lines:before,.menu-toggle-lines:after{position:absolute;left:0}.menu-toggle-lines:before{top:-6px}.menu-toggle-lines:after{top:6px}.nav.open .menu-toggle-lines{background:transparent}.nav.open .menu-toggle-lines:before{top:0;transform:rotate(45deg)}.nav.open .menu-toggle-lines:after{top:0;transform:rotate(-45deg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border-radius:999px;padding:.78rem 1.05rem;text-decoration:none;font-weight:850;border:2px solid transparent;cursor:pointer}.btn.gold{background:var(--gold);color:#071c33}.btn.dark{background:var(--navy);color:white}.btn.light{border-color:rgba(255,255,255,.36);color:white}.btn.outline{border-color:var(--navy);color:var(--navy)}
.hero{position:relative;min-height:680px;display:flex;align-items:center;color:white;overflow:hidden;background:var(--navy)}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,18,34,.88),rgba(7,28,51,.70),rgba(21,63,52,.38)),url('assets/alpine-mountains-cloudy-snow-grass.jpg') center/cover no-repeat;transform:scale(1.02);pointer-events:none}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 25%,rgba(213,163,72,.2),transparent 30%);pointer-events:none}.hero .wrap{position:relative;z-index:1}.eyebrow{color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem}.hero h1{font-size:clamp(2.6rem,7vw,5.7rem);line-height:.95;margin:.7rem 0;max-width:850px;letter-spacing:-.05em}.hero p{font-size:1.22rem;color:#dbe7f2;max-width:720px}.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.6rem 0}.glass{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);box-shadow:0 18px 48px rgba(0,0,0,.25);backdrop-filter:blur(18px);border-radius:24px}.hero-card{max-width:590px;padding:1rem;margin-top:1.5rem}.mini-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.65rem}.mini{padding:.75rem;border-radius:16px;background:rgba(255,255,255,.09)}.mini b{display:block;color:white}.mini span{display:block;color:#c8d6e6;font-size:.84rem}
section{padding:4rem 0}.section-title{font-size:clamp(2rem,4vw,3.4rem);line-height:1;margin:0 0 .8rem;color:var(--navy);letter-spacing:-.04em}.lead{font-size:1.12rem;color:var(--slate);max-width:820px}.page-updated{display:inline-block;margin:.5rem 0 1.2rem;padding:.34rem .62rem;border-radius:999px;background:#e9eef6;color:#36516a;font-weight:900;font-size:.78rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.6rem}.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:1.25rem;box-shadow:var(--shadow)}.card h3{margin:.1rem 0 .5rem;color:var(--navy);font-size:1.25rem}.card p{color:#455568;margin:.4rem 0}.tag{display:inline-block;border-radius:999px;padding:.23rem .5rem;background:#e9eef6;color:#36516a;font-weight:800;font-size:.72rem;margin:.1rem}.tag.gold{background:#fff0bf;color:#6d4700}.tag.green{background:#e1f4e9;color:#23613c}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:1.5rem;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:24px;padding:1.3rem;box-shadow:var(--shadow)}.dark-section{background:linear-gradient(135deg,var(--navy),#0e344e);color:white}.dark-section .section-title{color:white}.dark-section .lead{color:#cbd8e6}.dark-section .card{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);box-shadow:none}.dark-section .card h3{color:white}.dark-section .card p{color:#d7e2ee}
.board{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));align-items:start;gap:.8rem;overflow-x:auto;padding:.4rem 0 1rem}.lane{background:#f8fafc;border:1px solid var(--line);border-radius:18px;min-height:330px}.board-empty{grid-column:1/-1;background:#f8fafc;border:1px dashed var(--line);border-radius:18px;padding:2.2rem;text-align:center;color:#708093;font-size:.92rem}.lane h3{margin:0;padding:.75rem;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--navy)}.count{float:right;color:#708093}.bcard{background:white;border:1px solid #dce3ec;border-radius:15px;margin:.65rem;padding:.75rem;box-shadow:0 8px 20px rgba(20,36,60,.07)}.bcard.active{border:2px solid var(--gold);box-shadow:0 0 0 3px rgba(213,163,72,.12)}.bcard.last-meeting{border-left:4px solid var(--gold)}.bcard h4{font-size:.9rem;margin:.25rem 0;color:#142235}.bcard p{font-size:.78rem;color:#536477;margin:.3rem 0}.statusline{font-size:.73rem;color:#5d4300;background:#fff8df;border:1px solid #ecd48a;border-radius:10px;padding:.32rem .45rem;margin:.35rem 0}.after-note{font-size:.72rem;color:#536477;background:#f4f7fb;border-left:3px solid var(--gold);border-radius:10px;padding:.45rem .55rem;margin:.45rem 0}.source{font-size:.7rem;color:#738295;border-top:1px solid #edf2f7;padding-top:.35rem;margin-top:.35rem;word-break:break-word}.notice{border-radius:16px;background:#fff8df;border:1px solid #ecd48a;color:#5d4300;padding:1rem}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.footer{padding:2rem 0;background:var(--deep);color:#cbd5e1}.footer a{color:white}
.about-photo-row{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;margin-bottom:1rem}.candidate-photo{width:190px;max-width:42vw;border-radius:18px;border:3px solid var(--gold);box-shadow:0 18px 40px rgba(0,0,0,.35)}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat-card{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:1.15rem;text-align:center}.stat-card .number{font-size:2rem;font-weight:950;color:var(--gold);line-height:1}.stat-card .label{font-size:.86rem;color:#d7e2ee;margin-top:.35rem}.whereillbe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.5rem}.where-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-left:4px solid var(--gold);border-radius:18px;padding:1rem}.where-card .date{color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.where-card h3{margin:.25rem 0;color:white}.where-card p{margin:.2rem 0;color:#cbd8e6;font-size:.9rem}.where-card .caveat{color:#ffd98a;background:rgba(255,179,0,.12);border:1px solid rgba(255,179,0,.35);border-radius:10px;padding:.35rem .55rem;font-weight:600}.contact-actions{display:flex;gap:1rem;flex-wrap:wrap}.btn.big{font-size:1.05rem;padding:1rem 1.35rem;min-width:190px}
.where-card .where-note{margin-top:.65rem;padding-top:.6rem;border-top:1px solid rgba(255,255,255,.14);color:#dbe7f2}
@media(max-width:850px){.menu-toggle{display:inline-flex}.links{display:none;position:absolute;left:1rem;right:1rem;top:72px;z-index:60;flex-direction:column;align-items:stretch;gap:.25rem;background:rgba(7,28,51,.98);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:.65rem;box-shadow:0 18px 45px rgba(0,0,0,.34)}.nav.open .links{display:flex}.links a{padding:.82rem .95rem;border-radius:14px;background:rgba(255,255,255,.05)}.links a.btn.gold{margin-top:.25rem;color:#071c33;background:var(--gold)}.cards,.split,.form-grid{grid-template-columns:1fr}.hero{min-height:620px}.mini-row{grid-template-columns:1fr}.board{grid-template-columns:1fr;align-items:start}.lane{min-height:auto}.about-stats{grid-template-columns:1fr 1fr}.contact-actions{flex-direction:column}.btn.big{width:100%}.candidate-photo{width:150px}}

/* Town issue card resource block */
.resources{margin:.7rem 0 .55rem;padding:.65rem;border:1px solid #dbe4ef;border-radius:14px;background:#fff}.resources strong{display:block;margin-bottom:.45rem;color:#071c33;font-size:.82rem}.resource-list{display:flex;flex-wrap:wrap;gap:.35rem}.resource-pill{display:inline-flex;align-items:center;gap:.18rem;border:1px solid #c8d6e4;border-radius:999px;padding:.28rem .48rem;background:#f8fafc;color:#173653;text-decoration:none;font-size:.74rem;font-weight:850;line-height:1.15}.resource-pill:hover{background:#edf4fb}.resource-pill.pending{color:#66788c;background:#f1f5f9;border-style:dashed}.resource-time{color:#8a5b07;font-variant-numeric:tabular-nums}

.agenda-detail{margin:.65rem 0;padding:.62rem .7rem;border:1px solid #dbe4ef;border-radius:14px;background:#fbfdff;font-size:.73rem;color:#415266}.agenda-detail>strong{display:block;color:#071c33;font-size:.82rem;margin-bottom:.35rem}.detail-row{margin:.32rem 0}.detail-row strong{color:#173653}.detail-row ul{margin:.28rem 0 0 1rem;padding:0}.detail-row li{margin:.18rem 0}
.source-location{margin:.65rem 0;padding:.58rem .68rem;border:1px solid #ecd48a;border-radius:14px;background:#fff8df;font-size:.72rem;color:#5d4300}.source-location>strong{display:block;color:#5d4300;font-size:.82rem;margin-bottom:.35rem}.location-row{margin:.28rem 0}.location-row strong{color:#3f2f00}

.card-tags-bottom{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.65rem;padding-top:.55rem;border-top:1px solid #e2e8f0}

/* Upcoming Town Council meeting banner */
.meeting-notice{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.4rem 0 .8rem;padding:1.05rem 1.15rem;border:1px solid #e3b4b4;border-left:6px solid var(--red);border-radius:18px;background:#fff7f7;box-shadow:0 12px 28px rgba(7,28,51,.08)}.meeting-notice-kicker{display:block;color:#862f2f;font-size:.74rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.meeting-notice h3{margin:.18rem 0 .12rem;color:var(--navy);font-size:1.22rem}.meeting-notice p{margin:.15rem 0;color:#415266}.meeting-notice.canceled h3:after{content:" — CANCELED";color:var(--red);font-weight:950}
.meeting-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.4rem 0 .8rem;padding:1.05rem 1.15rem;border:1px solid #ecd48a;border-left:6px solid var(--gold);border-radius:18px;background:linear-gradient(135deg,#fff8df,#fffdf8);box-shadow:0 12px 28px rgba(7,28,51,.08)}
.meeting-banner-kicker{display:block;color:#7a5700;font-size:.74rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.meeting-banner h3{margin:.18rem 0 .12rem;color:var(--navy);font-size:1.32rem}.meeting-banner p{margin:.15rem 0;color:#415266}.meeting-banner-status{font-size:.86rem}.meeting-banner-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem;min-width:max-content}
@media(max-width:700px){.meeting-notice,.meeting-banner{align-items:flex-start;flex-direction:column}.meeting-banner-links{justify-content:flex-start;min-width:0}}
