:root{
  --ink:#10201C; --ink2:#33453F; --ink3:#6B7C76;
  --ground:#EDF0ED; --paper:#FFFFFF; --line:#D3DAD6; --line2:#E4E9E6;
  --pine:#175E48; --pine-dk:#0E4535; --pine-lt:#E6F0EC;
  --river:#2C6C8C; --signal:#B8471C; --signal-lt:#FBEDE7; --gold:#C9922B;
  --ami30:#123F63; --ami50:#2C6C8C; --ami60:#3F8F80; --ami80:#74A85C; --amimkt:#98A5A0;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --disp:'Archivo','Inter',-apple-system,'Segoe UI',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --pad:clamp(20px,5vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{animation-duration:.01ms !important;transition-duration:.01ms !important}}
body{font-family:var(--sans);background:var(--ground);color:var(--ink);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;line-height:1.1}
a{color:var(--pine);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2.5px solid var(--signal);outline-offset:2px;border-radius:2px}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}

/* ---------- Data / utility type ---------- */
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}

/* ---------- Header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:1px solid var(--line)}
.hdr-in{max-width:1280px;margin:0 auto;padding:0 var(--pad);display:flex;align-items:center;gap:28px;height:66px}
.brand{display:flex;align-items:baseline;gap:10px;flex-shrink:0}
.brand-mark{font-family:var(--disp);font-weight:800;font-size:24px;letter-spacing:-.045em;color:var(--pine)}
.brand-sub{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);max-width:130px;line-height:1.3;display:none}
@media(min-width:1080px){.brand-sub{display:block}}
.nav{display:flex;gap:2px;margin-left:auto;align-items:center}
.nav button{font-size:13.5px;font-weight:500;padding:7px 12px;border-radius:5px;color:var(--ink2)}
.nav button:hover{background:var(--ground)}
.nav button.on{background:var(--pine-lt);color:var(--pine-dk);font-weight:600}
.signin{margin-left:10px;background:var(--pine);color:#fff;padding:8px 15px;border-radius:5px;font-size:13.5px;font-weight:600}
.signin:hover{background:var(--pine-dk)}
.burger{display:none;margin-left:auto;padding:8px;border-radius:5px}
.burger:hover{background:var(--ground)}
@media(max-width:900px){.nav{display:none}.nav.open{display:flex;position:absolute;top:66px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px var(--pad) 18px;gap:2px}.nav.open button{text-align:left;padding:11px 12px}.burger{display:block}}

.wrap{max-width:1280px;margin:0 auto;padding:0 var(--pad)}
.view{display:none}
.view.on{display:block}

/* ---------- Hero ---------- */
.hero{background:var(--paper);border-bottom:1px solid var(--line);padding:clamp(40px,7vw,76px) 0 0}
.hero-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
@media(min-width:1000px){.hero-grid{grid-template-columns:1.45fr .85fr;gap:56px}}
.hero h1{font-size:clamp(34px,5.6vw,62px);font-weight:800;letter-spacing:-.035em;margin:14px 0 0}
.hero h1 em{font-style:normal;color:var(--pine);border-bottom:5px solid var(--gold);padding-bottom:2px}
.hero-lede{font-size:clamp(16px,2vw,19px);color:var(--ink2);margin-top:20px;max-width:52ch}
.hero-src{margin-top:16px;font-size:12px;color:var(--ink3);font-family:var(--mono)}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;padding-bottom:44px}
.btn{padding:11px 19px;border-radius:6px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:7px;border:1px solid transparent}
.btn-p{background:var(--pine);color:#fff}.btn-p:hover{background:var(--pine-dk);text-decoration:none}
.btn-s{background:var(--paper);color:var(--ink);border-color:var(--line)}.btn-s:hover{border-color:var(--ink3);text-decoration:none}
.btn-sig{background:var(--signal);color:#fff}.btn-sig:hover{filter:brightness(.92)}
.btn-gh{background:none;color:var(--ink2);border-color:var(--line)}.btn-gh:hover{background:var(--ground)}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* next meeting card */
.nextmtg{background:var(--ink);color:#E9EEEC;border-radius:9px;padding:24px;margin-bottom:44px}
.nextmtg .eyebrow{color:#8FA8A0}
.nextmtg-date{font-family:var(--mono);font-size:40px;font-weight:600;letter-spacing:-.03em;line-height:1;margin:12px 0 4px;color:#fff}
.nextmtg-mo{font-family:var(--mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.nextmtg dl{margin-top:20px;padding-top:18px;border-top:1px solid #2C403A;display:grid;grid-template-columns:auto 1fr;gap:9px 16px;font-size:13.5px}
.nextmtg dt{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8FA8A0;padding-top:2px}
.nextmtg dd{color:#E9EEEC}
.nextmtg .btn{margin-top:20px;width:100%;justify-content:center}

/* ---------- Sections ---------- */
.sec{padding:clamp(44px,6vw,76px) 0;border-bottom:1px solid var(--line)}
.sec-hd{max-width:64ch;margin-bottom:34px}
.sec-hd h2{font-size:clamp(24px,3.4vw,36px);margin:10px 0 0;font-weight:700}
.sec-hd p{color:var(--ink2);margin-top:12px;font-size:16px}
.pagehd{padding:clamp(32px,5vw,54px) 0 0}
.pagehd h1{font-size:clamp(28px,4.4vw,46px);font-weight:800;margin:10px 0 0}
.pagehd p{color:var(--ink2);margin-top:12px;font-size:16.5px;max-width:62ch}

/* who's in the room */
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.room{background:var(--paper);padding:20px}
.room h4{font-size:14.5px;font-weight:700;margin-bottom:5px}
.room p{font-size:13px;color:var(--ink3);line-height:1.5}
.room .n{font-family:var(--mono);font-size:11px;color:var(--gold);font-weight:600;letter-spacing:.08em}

/* pillar cards */
.pillars{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:780px){.pillars{grid-template-columns:repeat(3,1fr)}}
.pillar{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:24px;border-top:4px solid var(--pine)}
.pillar h3{font-size:17px;margin:10px 0 8px}
.pillar p{font-size:14px;color:var(--ink2)}

/* ---------- Meetings ---------- */
.tbl{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:14px}
.tbl th{text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink3);font-weight:600;padding:12px 16px;background:var(--ground);border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:14px 16px;border-bottom:1px solid var(--line2);vertical-align:top}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:#FAFBFA}
.tbl .dt{font-family:var(--mono);font-weight:500;white-space:nowrap}
.doclink{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:500;padding:4px 9px;border:1px solid var(--line);border-radius:5px;background:var(--paper)}
.doclink:hover{border-color:var(--pine);background:var(--pine-lt);text-decoration:none}
.doclink.na{color:var(--ink3);border-style:dashed;pointer-events:none;opacity:.65}
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- Map ---------- */
.maplayout{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:1040px){.maplayout{grid-template-columns:212px 1fr}}
.ladder{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:16px;align-self:start;position:sticky;top:86px}
@media(max-width:1039px){.ladder{position:static}}
.ladder h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink3);font-weight:600;margin-bottom:4px}
.ladder .hint{font-size:11.5px;color:var(--ink3);margin-bottom:12px;line-height:1.45}
.rungs{display:flex;flex-direction:column;gap:3px}
@media(max-width:1039px){.rungs{flex-direction:row;flex-wrap:wrap}}
.rung{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:5px;border:1.5px solid transparent;width:100%;text-align:left;transition:background .12s}
.rung:hover{background:var(--ground)}
.rung.on{border-color:var(--ink);background:var(--ground)}
.rung .sw{width:13px;height:24px;border-radius:2px;flex-shrink:0}
.rung .lb{font-family:var(--mono);font-size:11.5px;font-weight:600;line-height:1.25}
.rung .ct{font-family:var(--mono);font-size:10.5px;color:var(--ink3)}
.ladder-foot{margin-top:14px;padding-top:13px;border-top:1px solid var(--line2)}
.ladder-foot .btn{width:100%;justify-content:center;font-size:13px;padding:9px}

.mapbox{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.mapbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--ground)}
.mapbar .cnt{font-family:var(--mono);font-size:12px;color:var(--ink2);font-weight:500}
.mapbar select,.mapbar input{padding:6px 9px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;background:var(--paper)}
.mapbar input{min-width:150px}
.banner{display:flex;gap:9px;align-items:flex-start;padding:10px 16px;background:#FEF7E8;border-bottom:1px solid #EBD9AC;font-size:12.5px;color:#6B4E12}
.banner b{font-weight:600}
svg.mapsvg{display:block;width:100%;height:auto;background:#F3F6F4;touch-action:pan-y}
.pin{cursor:pointer}
.pin circle.hit{fill:transparent}
.pin .dot{stroke:#fff;stroke-width:2.5;transition:r .12s}
.pin:hover .dot,.pin.sel .dot{stroke-width:3.5}
.pin.dim{opacity:.16}
.riverlbl{font-family:var(--mono);font-size:12px;fill:#7FA6BC;letter-spacing:.22em;font-weight:500}
.strlbl{font-family:var(--mono);font-size:9.5px;fill:#93A39D;letter-spacing:.06em}
.hoodlbl{font-family:var(--sans);font-size:10.5px;fill:#A6B3AE;letter-spacing:.1em;text-transform:uppercase;font-weight:600}

/* project cards */
.plist{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-top:none}
@media(min-width:660px){.plist{grid-template-columns:1fr 1fr}}
.pcard{background:var(--paper);padding:15px 17px;border-left:4px solid var(--amimkt);text-align:left;transition:background .12s}
.pcard:hover{background:#FAFBFA}
.pcard.sel{background:var(--pine-lt)}
.pcard h4{font-size:14.5px;font-weight:700;margin-bottom:3px;letter-spacing:-.01em}
.pcard .addr{font-family:var(--mono);font-size:11.5px;color:var(--ink3);margin-bottom:9px}
.pcard .meta{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-family:var(--mono);font-size:10.5px;font-weight:500;padding:2.5px 7px;border-radius:3px;background:var(--ground);color:var(--ink2);white-space:nowrap}
.chip.ami{color:#fff}
.chip.st-complete{background:var(--pine-lt);color:var(--pine-dk)}
.chip.st-under_construction{background:#FDF0E4;color:#8A4A12}
.chip.st-predevelopment{background:#EAF0F5;color:#2C5A7A}
.chip.st-proposed{background:var(--ground);color:var(--ink3)}

/* ---------- Resources ---------- */
.rescats{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:820px){.rescats{grid-template-columns:1fr 1fr}}
.rescat{background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.rescat h3{font-size:15px;padding:15px 20px;border-bottom:1px solid var(--line);background:var(--ground);display:flex;align-items:center;gap:9px}
.rescat h3 .n{font-family:var(--mono);font-size:11px;color:var(--ink3);font-weight:500;margin-left:auto}
.reslist{display:flex;flex-direction:column}
.resitem{padding:14px 20px;border-bottom:1px solid var(--line2);display:block}
.resitem:last-child{border-bottom:none}
.resitem:hover{background:#FAFBFA;text-decoration:none}
.resitem .t{font-weight:600;font-size:14px;color:var(--pine);display:flex;align-items:center;gap:6px}
.resitem .d{font-size:12.5px;color:var(--ink3);margin-top:3px;line-height:1.45}

/* ---------- Forms ---------- */
.formcard{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:clamp(22px,3.5vw,34px)}
.field{margin-bottom:16px}
.field label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);font-weight:600;margin-bottom:6px}
.field label .req{color:var(--signal)}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:var(--paper);font-size:14.5px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--pine);outline:none;box-shadow:0 0 0 3px var(--pine-lt)}
.field textarea{min-height:78px;resize:vertical;font-family:var(--sans)}
.field .help{font-size:12px;color:var(--ink3);margin-top:5px}
.row2{display:grid;grid-template-columns:1fr;gap:0 14px}
@media(min-width:620px){.row2{grid-template-columns:1fr 1fr}}
.row3{display:grid;grid-template-columns:1fr;gap:0 14px}
@media(min-width:620px){.row3{grid-template-columns:1fr 1fr 1fr}}
.checks{display:flex;flex-wrap:wrap;gap:7px}
.chk{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;cursor:pointer;background:var(--paper);font-family:var(--mono)}
.chk:hover{border-color:var(--ink3)}
.chk input{width:auto;margin:0;accent-color:var(--pine)}
.chk.on{border-color:var(--pine);background:var(--pine-lt);color:var(--pine-dk);font-weight:500}
.note{padding:12px 15px;border-radius:6px;font-size:13.5px;line-height:1.5;margin-bottom:18px}
.note-ok{background:var(--pine-lt);color:var(--pine-dk);border:1px solid #BFDDD1}
.note-info{background:#EAF0F5;color:#20506D;border:1px solid #C6D8E4}
.note-warn{background:var(--signal-lt);color:#8A3313;border:1px solid #EFC9B7}

/* ---------- Modal / drawer ---------- */
.scrim{position:fixed;inset:0;background:rgba(16,32,28,.55);z-index:100;display:none;align-items:center;justify-content:center;padding:18px;overflow-y:auto}
.scrim.on{display:flex}
.modal{background:var(--paper);border-radius:10px;width:100%;max-width:520px;max-height:92vh;overflow-y:auto;box-shadow:0 22px 60px rgba(0,0,0,.3)}
.modal.wide{max-width:760px}
.modal-hd{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px;position:sticky;top:0;background:var(--paper);z-index:2}
.modal-hd h3{font-size:18px;flex:1}
.modal-hd p{font-size:13px;color:var(--ink3);margin-top:4px}
.modal-bd{padding:24px}
.x{padding:5px;border-radius:5px;color:var(--ink3);line-height:0}
.x:hover{background:var(--ground);color:var(--ink)}

/* ---------- Facilitator console ---------- */
.console{position:fixed;inset:0;background:var(--ground);z-index:90;display:none;flex-direction:column}
.console.on{display:flex}
.con-hd{background:var(--ink);color:#fff;padding:0 var(--pad);display:flex;align-items:center;gap:16px;height:60px;flex-shrink:0}
.con-hd .cm{font-family:var(--disp);font-weight:800;font-size:17px;letter-spacing:-.03em}
.con-hd .who{margin-left:auto;display:flex;align-items:center;gap:11px;font-size:13px;color:#B9C7C2}
.rolebadge{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:3px;font-weight:600}
.rolebadge.owner{background:var(--gold);color:#3A2A05}
.rolebadge.facilitator{background:#2C403A;color:#9FC0B4}
.con-tabs{background:var(--paper);border-bottom:1px solid var(--line);padding:0 var(--pad);display:flex;gap:2px;overflow-x:auto;flex-shrink:0}
.con-tabs button{padding:13px 14px;font-size:13.5px;font-weight:500;color:var(--ink2);border-bottom:2.5px solid transparent;white-space:nowrap}
.con-tabs button.on{color:var(--pine-dk);border-bottom-color:var(--pine);font-weight:600}
.con-tabs button .badge{font-family:var(--mono);font-size:10px;background:var(--signal);color:#fff;border-radius:9px;padding:1px 6px;margin-left:6px;font-weight:600}
.con-bd{flex:1;overflow-y:auto;padding:26px var(--pad) 60px}
.con-in{max-width:1120px;margin:0 auto}
.con-in h2{font-size:22px;margin-bottom:6px}
.con-in .sub{color:var(--ink3);font-size:14px;margin-bottom:22px}
.qcard{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:18px 20px;margin-bottom:12px}
.qcard.pending{border-left:4px solid var(--signal)}
.qcard-hd{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.qcard-hd h4{font-size:15.5px}
.qcard .by{font-family:var(--mono);font-size:11.5px;color:var(--ink3);margin-top:3px}
.qcard .acts{margin-left:auto;display:flex;gap:7px}
.qcard .acts .btn{padding:7px 13px;font-size:13px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px 18px;margin-top:15px;padding-top:14px;border-top:1px solid var(--line2)}
.dgrid dt{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:2px}
.dgrid dd{font-size:13.5px;font-weight:500}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:26px}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:16px 18px}
.stat .v{font-family:var(--mono);font-size:29px;font-weight:600;letter-spacing:-.03em;line-height:1}
.stat .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-top:7px}
.empty{background:var(--paper);border:1px dashed var(--line);border-radius:8px;padding:38px 24px;text-align:center;color:var(--ink3)}
.empty h4{font-size:15px;color:var(--ink);margin-bottom:6px}
.empty p{font-size:13.5px;max-width:40ch;margin:0 auto}

/* ---------- Footer ---------- */
.ftr{background:var(--ink);color:#9FB0AA;padding:44px 0 30px;font-size:13.5px}
.ftr-grid{display:grid;grid-template-columns:1fr;gap:28px}
@media(min-width:760px){.ftr-grid{grid-template-columns:1.6fr 1fr 1fr}}
.ftr h5{font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:#6E827B;margin-bottom:11px;font-weight:600}
.ftr a{color:#C6D3CE;display:block;margin-bottom:7px}
.ftr a:hover{color:#fff}
.ftr .bm{font-family:var(--disp);font-weight:800;font-size:22px;color:#fff;letter-spacing:-.04em;margin-bottom:9px}
.ftr-btm{margin-top:34px;padding-top:20px;border-top:1px solid #2C403A;font-size:12px;color:#6E827B;display:flex;flex-wrap:wrap;gap:12px}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(140%);background:var(--ink);color:#fff;padding:13px 22px;border-radius:7px;font-size:14px;z-index:200;transition:transform .25s cubic-bezier(.3,1.2,.5,1);box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:90vw}
.toast.on{transform:translateX(-50%) translateY(0)}
.srhide{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* ---------- added for the live version ---------- */
.setupbar{background:#7A2E12;color:#FFE8DE;padding:12px 0;font-size:13.5px;display:none}
.setupbar.on{display:block}
.setupbar code{font-family:var(--mono);background:rgba(0,0,0,.28);padding:2px 6px;border-radius:3px}
.skel{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:34px;text-align:center;color:var(--ink3);font-size:14px}
.errbox{background:var(--signal-lt);border:1px solid #EFC9B7;color:#8A3313;border-radius:8px;padding:16px 18px;font-size:14px}
.errbox b{display:block;margin-bottom:4px}
.spin{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp .6s linear infinite;vertical-align:-2px;margin-right:7px}
@keyframes sp{to{transform:rotate(360deg)}}
.btn .spin{margin-right:6px}
.authnote{font-size:13px;color:var(--ink3);margin-top:14px;line-height:1.5}
.memberbox{text-align:center;padding:8px 0}
.memberbox h4{font-size:16px;margin-bottom:8px}
.memberbox p{font-size:14px;color:var(--ink2);margin-bottom:18px}
