/* James Monroe Residents — shared styles
   Layout idea: a lobby "program board" home page, and each topic as a slide deck you step through. */
:root{
  --paper:#f3f5f6;
  --surface:#ffffff;
  --ink:#13212b;
  --muted:#566670;
  --line:#d8dfe3;
  --river:#1d5d86;
  --deep:#0e3350;
  --river-soft:#e2eef5;
  --brass:#b97a1f;
  --brass-soft:#fbf0dd;
  --green:#2b7a57;
  --green-soft:#e0f1e8;
  --coral:#c9503a;
  --coral-soft:#fdebe7;
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --body:"Source Sans 3","Segoe UI",Arial,sans-serif;
  --radius:12px;
  --hl:#ffd38a;--ov:6,18,30;--deepbg:#0b2233;--ctl:rgba(19,33,43,.92);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0e161c;--surface:#15212a;--ink:#e5ecf0;--muted:#9babb5;--line:#283842;
    --river:#6fb3dd;--deep:#0b2233;--river-soft:#163041;--brass:#e3a74e;--brass-soft:#2f2513;
    --green:#67c99a;--green-soft:#142d24;--coral:#f08a76;--coral-soft:#3a1d18;color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0e161c;--surface:#15212a;--ink:#e5ecf0;--muted:#9babb5;--line:#283842;
  --river:#6fb3dd;--deep:#0b2233;--river-soft:#163041;--brass:#e3a74e;--brass-soft:#2f2513;
  --green:#67c99a;--green-soft:#142d24;--coral:#f08a76;--coral-soft:#3a1d18;color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-padding-top:76px;font-size:18px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.08rem;line-height:1.55}
a{color:var(--river)}
h1,h2,h3{font-family:var(--display);line-height:1.12;margin:0;text-wrap:balance}
p{margin:0}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* draft markers */
.draft-bar{display:none;background:var(--brass-soft);border-bottom:1px solid var(--brass);font-size:.9rem}
.draft-bar .wrap{padding-top:7px;padding-bottom:7px}
body.is-draft .draft-bar{display:block}
body.is-draft .confirm{background:linear-gradient(transparent 62%,rgba(185,122,31,.22) 62%);border-bottom:1px dashed var(--brass)}
body.is-draft .confirm::after{content:"confirm";font:700 .6rem var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--brass);margin-left:4px;vertical-align:super}

/* header */
.top{position:sticky;top:0;z-index:30;background:var(--surface);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:16px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.mark{width:36px;height:36px;border-radius:9px;background:var(--river);color:#fff;display:grid;place-items:center;font:800 .95rem var(--display)}
.brand b{font-family:var(--display);display:block;line-height:1.1}
.brand small{color:var(--muted);font-size:.78rem}
.topnav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.topnav a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem;padding:6px 10px;border-radius:7px}
.topnav a:hover,.topnav a[aria-current="page"]{background:var(--river-soft);color:var(--river)}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:6px 12px;font:600 .95rem var(--body);cursor:pointer}
@media (max-width:860px){.menu-btn{display:block}.topnav{display:none;width:100%;padding-bottom:10px}.topnav.open{display:flex}}

/* ---------- HOME ---------- */
.banner{position:relative;background:var(--deepbg);color:#fff;overflow:hidden}
.banner img{display:block;width:100%;height:clamp(300px,44vw,500px);object-fit:cover;object-position:center 62%}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--ov),.05),rgba(var(--ov),.25) 45%,rgba(var(--ov),.85))}
.banner-text{position:absolute;left:0;right:0;bottom:0;z-index:1;padding-bottom:30px}
.banner .kicker{font:700 .82rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--hl)}
.banner h1{font-size:clamp(2.1rem,5vw,3.6rem);font-weight:800;letter-spacing:-.02em;margin:6px 0 8px;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.banner p{color:#e4edf3;font-size:1.1rem;max-width:62ch}
.credit{position:absolute;right:10px;top:8px;z-index:2;font-size:.68rem;color:rgba(255,255,255,.8);background:rgba(0,0,0,.3);padding:2px 8px;border-radius:999px}
.credit a{color:inherit}

.ticker{background:var(--deep);color:#e8f1f7}
.ticker .wrap{display:flex;gap:18px;align-items:center;min-height:48px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.ticker b{font-family:var(--display);color:var(--hl);letter-spacing:.06em;font-size:.82rem;text-transform:uppercase}
.ticker a{color:#fff;font-weight:700}
.ticker .sep{opacity:.4}

section.block{padding:44px 0}
section.block + section.block{border-top:1px solid var(--line)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.sec-head h2{font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:800}
.sec-head p{color:var(--muted);max-width:64ch;margin-top:6px}
.eyebrow{font:700 .78rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--river)}
.link-more{font-weight:700;text-decoration:none;white-space:nowrap}

/* building facts */
.facts6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.facts6 div{background:var(--surface);padding:14px;display:grid;gap:2px}
.facts6 b{font:800 1.7rem var(--display);color:var(--river);font-variant-numeric:tabular-nums;line-height:1.1}
.facts6 span{font-size:.85rem;color:var(--muted)}
@media (max-width:860px){.facts6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:440px){.facts6{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* our building */
.ourbldg{display:grid;grid-template-columns:1fr 1.1fr;gap:36px;align-items:center}
@media (max-width:860px){.ourbldg{grid-template-columns:1fr}}
.bphoto{border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.bphoto img{display:block;width:100%;height:auto}
.bphoto figcaption{font-size:.78rem;color:var(--muted);padding:7px 12px}
.lead2{color:var(--muted);font-size:1.1rem;margin-top:10px;max-width:56ch}
.btnlink{display:inline-flex;padding:10px 16px;border-radius:9px;background:var(--river);color:#fff;font-weight:700;text-decoration:none}
.btnlink.alt{background:var(--surface);color:var(--river);border:1px solid var(--river)}
/* notices */
.notices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:900px){.notices{grid-template-columns:1fr}}
.notice{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--river);border-radius:var(--radius);padding:16px 18px;display:grid;gap:6px;align-content:start}
.notice.urgent{border-top-color:var(--coral)}
.notice.meeting{border-top-color:var(--brass)}
.notice .tag{justify-self:start;font:700 .7rem var(--body);letter-spacing:.08em;text-transform:uppercase;padding:2px 9px;border-radius:999px;background:var(--river-soft);color:var(--river)}
.notice.urgent .tag{background:var(--coral-soft);color:var(--coral)}
.notice.meeting .tag{background:var(--brass-soft);color:var(--brass)}
.notice .when{font-size:.85rem;color:var(--muted);font-weight:600}
.notice p{color:var(--muted);font-size:.95rem}

/* projects board */
.board{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}
@media (max-width:900px){.board{grid-template-columns:1fr}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.panel h3{font-size:1.05rem;margin-bottom:12px}
.prow{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;border-top:1px solid var(--line)}
.prow:first-of-type{border-top:0}
.prow b{font-weight:700}
.prow > span:not(.chip){color:var(--muted);font-size:.88rem;grid-column:1/-1}
.chip{display:inline-flex;align-items:center;gap:6px;font:700 .72rem var(--body);letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:999px;white-space:nowrap;align-self:start}
.chip.done{background:var(--green-soft);color:var(--green)}
.chip.now{background:var(--brass-soft);color:var(--brass)}
.chip.next{background:var(--river-soft);color:var(--river)}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.plan3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.yr{border-radius:10px;padding:14px;display:grid;gap:6px;align-content:start;min-height:150px}
.yr b{font:800 1.6rem var(--display)}
.yr p{font-size:.92rem}
.yr.done{background:var(--green-soft);color:var(--ink)}
.yr.done b{color:var(--green)}
.yr.now{background:var(--brass-soft)}
.yr.now b{color:var(--brass)}
.yr.next{background:var(--river-soft)}
.yr.next b{color:var(--river)}
@media (max-width:520px){.plan3{grid-template-columns:1fr}}

/* events */
.events{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:1000px){.events{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.events{grid-template-columns:1fr}}
.event{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.event .date{background:var(--deep);color:#fff;padding:12px 14px;display:flex;gap:10px;align-items:baseline}
.event .date b{font:800 1.7rem var(--display);line-height:1}
.event .date span{font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;color:var(--hl)}
.event:nth-child(4n+2) .date{background:var(--river)}
.event:nth-child(4n+3) .date{background:var(--green)}
.event:nth-child(4n+4) .date{background:var(--brass)}
.event .body{padding:12px 14px;display:grid;gap:4px;align-content:start}
.event .body p{color:var(--muted);font-size:.9rem}
.event .body a{font-weight:700;font-size:.9rem;text-decoration:none}

/* topic tiles */
.topics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:1000px){.topics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.topics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.topics{grid-template-columns:1fr}}
.topic{position:relative;display:grid;gap:8px;align-content:start;min-height:170px;padding:18px;border-radius:14px;text-decoration:none;color:#fff;overflow:hidden;transition:transform .15s ease, box-shadow .15s ease}
.topic:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(14,51,80,.22)}
.topic .ti{width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.18);display:grid;place-items:center}
.topic .ti svg{width:24px;height:24px}
.topic b{font:800 1.12rem var(--display)}
.topic span{font-size:.9rem;opacity:.9}
.topic em{font-style:normal;font-weight:700;font-size:.8rem;margin-top:auto;opacity:.95}
.t-river{background:linear-gradient(135deg,#1d5d86,#0e3350)}
.t-brass{background:linear-gradient(135deg,#c48a2c,#8a5a12)}
.t-green{background:linear-gradient(135deg,#2f8a62,#17553a)}
.t-coral{background:linear-gradient(135deg,#d35b43,#932f1f)}
.t-ink{background:linear-gradient(135deg,#2a3c49,#121d25)}
.t-sky{background:linear-gradient(135deg,#3f89b8,#1d5d86)}
.t-plum{background:linear-gradient(135deg,#6a4c93,#3e2a5c)}

.helpbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:800px){.helpbar{grid-template-columns:repeat(2,minmax(0,1fr))}}
.help{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:grid;gap:2px}
.help span{color:var(--muted);font-size:.88rem}
.help a{font:800 1.15rem var(--display);text-decoration:none}
.help.em{border-color:var(--coral);background:var(--coral-soft)}
.help.em a{color:var(--coral)}

footer{background:var(--surface);border-top:1px solid var(--line);padding:28px 0 36px}
footer .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}
@media (max-width:800px){footer .wrap{grid-template-columns:1fr}}
footer h3{font-size:.95rem;margin-bottom:8px}
footer p,footer li{color:var(--muted);font-size:.9rem}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:4px}
.fine{font-size:.82rem;color:var(--muted);margin-top:8px}

/* ---------- DECK ---------- */
body.deck-page{height:100%;overflow:hidden;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
body.deck-page.scroll-mode{overflow:auto;height:auto}
.deck{position:relative;flex:1;min-height:0}
.progress{position:absolute;left:0;top:0;height:4px;background:var(--brass);z-index:5;transition:width .35s ease}
.slide{position:absolute;inset:0;overflow:auto;display:flex;align-items:center;padding:44px 0 92px;opacity:0;visibility:hidden;transform:translateX(24px);transition:opacity .35s ease,transform .35s ease,visibility 0s linear .35s;background:var(--paper);color:var(--ink)}
.slide.active{opacity:1;visibility:visible;transform:none;transition:opacity .35s ease,transform .35s ease}
.slide.before{transform:translateX(-24px)}
.slide > .inner{width:100%;max-width:1160px;margin:auto;padding:0 28px}
body.scroll-mode .deck{flex:none}
body.scroll-mode .slide{position:relative;opacity:1;visibility:visible;transform:none;min-height:auto;padding:56px 0;border-bottom:1px solid var(--line)}
body.scroll-mode .controls,body.scroll-mode .progress{display:none}

/* slide themes */
.th-river{background:radial-gradient(1200px 600px at 85% 15%,#2a77a8 0%,#14476b 45%,#0b2a42 100%);color:#fff}
.th-brass{background:radial-gradient(1100px 600px at 85% 10%,#e2a948 0%,#b8791f 45%,#7d500f 100%);color:#fff}
.th-green{background:radial-gradient(1100px 600px at 85% 10%,#4aa67b 0%,#2b7a57 45%,#174a34 100%);color:#fff}
.th-coral{background:radial-gradient(1100px 600px at 85% 10%,#e57a61 0%,#c9503a 45%,#86281a 100%);color:#fff}
.th-ink{background:radial-gradient(1100px 600px at 85% 10%,#33495a 0%,#1b2a35 50%,#0d151b 100%);color:#fff}
.th-plum{background:radial-gradient(1100px 600px at 85% 10%,#8a6bb5 0%,#5e4289 45%,#352252 100%);color:#fff}
.th-light{background:var(--paper);color:var(--ink)}
.th-white{background:var(--surface);color:var(--ink)}
.th-photo{color:#fff;background:var(--deepbg)}
.th-photo .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.th-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--ov),.88) 0%,rgba(var(--ov),.55) 55%,rgba(var(--ov),.2) 100%);z-index:1}
.th-photo > .inner{position:relative;z-index:2}
.dark{color:#fff}
[class*="th-"]:not(.th-light):not(.th-white) .muted{color:rgba(255,255,255,.82)}
.slide .muted{color:var(--muted)}

/* slide typography */
.kick{font:700 .85rem var(--body);letter-spacing:.14em;text-transform:uppercase;opacity:.9;margin-bottom:12px;display:flex;gap:10px;align-items:center}
.kick::before{content:"";width:28px;height:3px;background:currentColor;border-radius:2px;opacity:.7}
.th-light .kick,.th-white .kick{color:var(--river)}
.s-h1{font-size:clamp(2.4rem,6.2vw,5rem);font-weight:800;letter-spacing:-.025em;line-height:1.02}
.s-h2{font-size:clamp(1.8rem,4vw,3rem);font-weight:800;letter-spacing:-.02em}
.s-lead{font-size:clamp(1.08rem,1.8vw,1.35rem);max-width:58ch;margin-top:16px;opacity:.95}
.s-meta{margin-top:26px;display:flex;gap:10px;flex-wrap:wrap}
.pill{display:inline-flex;gap:6px;align-items:center;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);font-weight:600;font-size:.92rem}
.th-light .pill,.th-white .pill{background:var(--surface);border-color:var(--line)}

/* grids inside slides */
.cards{display:grid;gap:16px;margin-top:28px}
.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.c3,.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.c2,.c3,.c4{grid-template-columns:1fr}}
.card{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:20px;display:grid;gap:8px;align-content:start}
.glass{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:14px;padding:20px;display:grid;gap:8px;align-content:start;backdrop-filter:blur(4px)}
.glass p,.card p{font-size:.98rem}
.card p{color:var(--muted)}
.card h3,.glass h3{font-size:1.12rem}
.ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--river-soft);color:var(--river)}
.glass .ic{background:rgba(255,255,255,.18);color:#fff}
.ic svg{width:26px;height:26px}
.ic.b{background:var(--brass-soft);color:var(--brass)}
.ic.g{background:var(--green-soft);color:var(--green)}
.ic.c{background:var(--coral-soft);color:var(--coral)}

/* big numbers */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-top:30px}
.stat{border-radius:14px;padding:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22)}
.th-light .stat,.th-white .stat{background:var(--surface);border-color:var(--line)}
.stat b{display:block;font:800 clamp(2.2rem,5vw,3.4rem) var(--display);line-height:1;font-variant-numeric:tabular-nums}
.th-light .stat b,.th-white .stat b{color:var(--river)}
.stat span{display:block;margin-top:8px;font-weight:600;opacity:.92}

/* steps */
.steps{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:12px;margin-top:30px;counter-reset:st}
@media (max-width:860px){.steps{grid-auto-flow:row}}
.step{position:relative;counter-increment:st;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:20px 18px 18px;display:grid;gap:6px;align-content:start}
.step::before{content:counter(st);width:36px;height:36px;border-radius:50%;background:var(--river);color:#fff;font:800 1rem var(--display);display:grid;place-items:center;margin-bottom:6px}
.step:nth-child(2)::before{background:var(--brass)}
.step:nth-child(3)::before{background:var(--green)}
.step:nth-child(4)::before{background:var(--coral)}
.step:nth-child(5)::before{background:var(--deep)}
.step b{font-family:var(--display);font-size:1.05rem}
.step p{color:var(--muted);font-size:.95rem}
.glass-steps .step{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22);color:#fff}
.glass-steps .step p{color:rgba(255,255,255,.85)}

/* split */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.split .s-lead{max-width:none}

/* tables */
.table{width:100%;border-collapse:collapse;background:var(--surface);color:var(--ink);border-radius:14px;overflow:hidden;font-variant-numeric:tabular-nums}
.tablewrap{overflow-x:auto;border-radius:14px;border:1px solid var(--line)}
.table th,.table td{padding:14px 18px;text-align:left;border-top:1px solid var(--line)}
.table thead th{border-top:0;background:var(--paper);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.table td.amt{text-align:right;font:800 1.35rem var(--display);color:var(--river);white-space:nowrap}
.table td small{display:block;color:var(--muted)}

/* big callout */
.callout{font:800 clamp(1.9rem,4.6vw,3.6rem) var(--display);letter-spacing:-.02em;line-height:1.1;max-width:22ch}
.callout em{font-style:normal;color:var(--hl)}
.th-light .callout em,.th-white .callout em{color:var(--brass)}

/* timeline */
.timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin-top:34px;position:relative}
.tl{position:relative;padding:34px 14px 0 0}
.tl::before{content:"";position:absolute;left:0;right:0;top:12px;height:4px;background:rgba(255,255,255,.3)}
.th-light .tl::before,.th-white .tl::before{background:var(--line)}
.tl::after{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;background:#fff;border:4px solid var(--green)}
.tl.now::after{border-color:var(--hl);background:var(--hl);box-shadow:0 0 0 6px rgba(255,211,138,.3)}
.tl.next::after{border-color:rgba(255,255,255,.6);background:transparent}
.th-light .tl.next::after,.th-white .tl.next::after{border-color:var(--river)}
.tl b{display:block;font:800 1.25rem var(--display)}
.tl span{display:block;font-size:.92rem;opacity:.88;margin-top:4px;padding-right:6px}

/* checklist */
.checklist{display:grid;gap:10px;margin-top:24px}
.checklist label{display:flex;gap:12px;align-items:flex-start;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}
.checklist input{width:20px;height:20px;margin-top:2px;accent-color:var(--green)}
.checklist label:has(input:checked){background:var(--green-soft);border-color:var(--green)}
.checklist label:has(input:checked) span{text-decoration:line-through;opacity:.7}
.meter{height:10px;border-radius:999px;background:rgba(255,255,255,.2);overflow:hidden;margin-top:14px}
.th-light .meter,.th-white .meter{background:var(--line)}
.meter i{display:block;height:100%;width:0;background:var(--green);transition:width .3s ease}

/* forms in slides */
.field label{display:block;font-weight:700;font-size:.92rem;margin-bottom:6px}
.field select,.field input{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink)}
.calc{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.result{margin-top:16px;border-radius:14px;padding:18px;background:var(--river-soft);display:grid;gap:4px}
.result .big{font:800 clamp(2.4rem,5vw,3.4rem) var(--display);color:var(--river);line-height:1}
.warn{color:var(--coral);font-weight:700;margin-top:10px;display:none}

/* search / A-Z */
.searchbox{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 18px;max-width:520px}
.searchbox input{flex:1;border:0;background:transparent;font:inherit;color:var(--ink);padding:8px 0;min-width:0}
.searchbox input:focus{outline:none}
.searchbox:focus-within{border-color:var(--river);box-shadow:0 0 0 3px var(--river-soft)}
.azlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;max-height:46vh;overflow:auto;padding-right:4px}
@media (max-width:760px){.azlist{grid-template-columns:1fr;max-height:none}}
.azlist details{background:var(--surface);border:1px solid var(--line);border-radius:12px}
.azlist summary{cursor:pointer;list-style:none;padding:12px 16px;font-weight:700;display:flex;justify-content:space-between;gap:10px}
.azlist summary::-webkit-details-marker{display:none}
.azlist summary::after{content:"+";color:var(--river);font-weight:800}
.azlist details[open] summary::after{content:"–"}
.azlist .body{padding:0 16px 14px;color:var(--muted)}

/* who handles what */
.picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.picker button{font:700 .95rem var(--body);padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;cursor:pointer}
.th-light .picker button,.th-white .picker button{border-color:var(--line);background:var(--surface);color:var(--ink)}
.picker button[aria-pressed="true"]{background:var(--hl);color:#13212b;border-color:var(--hl)}
.answer{margin-top:18px;background:var(--surface);color:var(--ink);border-radius:14px;padding:20px;display:grid;gap:6px;min-height:120px}
.answer b{font:800 1.4rem var(--display);color:var(--river)}
.answer a{font-weight:800}

/* map & photos in slides */
.mapframe{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.mapframe img{display:block;width:100%;height:auto}
.pin{position:absolute;transform:translate(-50%,-100%);background:var(--river);color:#fff;font:700 .8rem var(--body);padding:5px 10px;border-radius:8px;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.pin::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--river);border-bottom:0}
.pin.alt{background:var(--brass)}.pin.alt::after{border-top-color:var(--brass)}
.mapnote{font-size:.75rem;color:var(--muted);padding:7px 12px;border-top:1px solid var(--line)}
.photo{border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.2)}
.photo img{display:block;width:100%;height:auto;max-height:52vh;object-fit:cover}
.photo figcaption{font-size:.8rem;padding:7px 12px;background:rgba(0,0,0,.35);color:#fff}
figure{margin:0}

/* next-topic tiles at end of deck */
.nexts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}
@media (max-width:760px){.nexts{grid-template-columns:1fr}}
.nexts .topic{min-height:130px}

/* controls */
.controls{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:6px;background:var(--ctl);color:#fff;border-radius:999px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:calc(100% - 24px)}
.controls button{font:700 .9rem var(--body);background:transparent;color:#fff;border:0;border-radius:999px;padding:9px 14px;cursor:pointer;white-space:nowrap}
.controls button:hover{background:rgba(255,255,255,.12)}
.controls button:disabled{opacity:.35;cursor:default}
.controls .count{font-variant-numeric:tabular-nums;font-weight:700;padding:0 8px;min-width:58px;text-align:center;white-space:nowrap}
.dots{display:flex;gap:6px;padding:0 6px}
.dots button{width:9px;height:9px;padding:0;border-radius:50%;background:rgba(255,255,255,.35)}
.dots button[aria-current="true"]{background:var(--hl);width:22px;border-radius:999px}
@media (max-width:640px){.dots,.controls .ctext{display:none}}
.toc{position:fixed;right:16px;bottom:78px;z-index:21;width:min(340px,calc(100% - 32px));max-height:60vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.25);padding:10px;display:none}
.toc.open{display:block}
.toc h3{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 8px}
.toc ol{margin:0;padding:0;list-style:none;counter-reset:t}
.toc li button{counter-increment:t;display:flex;gap:10px;width:100%;text-align:left;background:none;border:0;padding:9px 8px;border-radius:8px;font:600 .95rem var(--body);color:var(--ink);cursor:pointer}
.toc li button::before{content:counter(t);color:var(--muted);font-variant-numeric:tabular-nums;min-width:18px}
.toc li button:hover,.toc li button[aria-current="true"]{background:var(--river-soft);color:var(--river)}
.hint{position:fixed;right:16px;top:72px;z-index:19;font-size:.78rem;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 10px}
@media (max-width:860px){.hint{display:none}}
@media print{.top,.controls,.toc,.hint,.progress,.draft-bar{display:none!important}body.deck-page{overflow:visible;height:auto}.slide{position:relative;opacity:1;visibility:visible;transform:none;page-break-after:always;min-height:auto}}

/* autoplay: per-slide timer bar + banner carousel */
.controls .play{background:rgba(255,211,138,.18);color:var(--hl)}
.timerbar{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--hl);border-radius:2px;opacity:.85}
body.tick .timerbar{animation:fill var(--dur,3000ms) linear forwards}
@keyframes fill{from{width:0}to{width:100%}}
.controls{overflow:hidden}
.banner .rot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;opacity:0;transition:opacity 1s ease}
.banner .rot.first{position:relative;display:block;height:clamp(300px,44vw,500px)}
.banner .rot.on{opacity:1}
.bctl{position:absolute;right:14px;bottom:14px;z-index:3;display:flex;gap:6px;align-items:center;background:rgba(0,0,0,.35);border-radius:999px;padding:5px 8px}
.bctl button{border:0;cursor:pointer}
.bctl #bannerPlay{background:transparent;color:#fff;font-size:.8rem;padding:2px 6px}
#bannerDots{display:flex;gap:6px}
#bannerDots button{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);padding:0}
#bannerDots button[aria-current="true"]{background:var(--hl);width:20px;border-radius:999px}
@media (max-width:640px){.bctl{bottom:auto;top:40px}}

/* colorful tile cards */
.tilecard{position:relative;border-radius:16px;padding:20px;color:#fff;display:grid;gap:8px;align-content:start;min-height:170px;box-shadow:0 10px 26px rgba(0,0,0,.18);overflow:hidden}
.tilecard .ic{background:rgba(255,255,255,.2);color:#fff}
.tilecard h3{font-size:1.12rem}
.tilecard p{font-size:.95rem;opacity:.92}
.yr-badge{position:absolute;right:14px;top:14px;font:800 .78rem var(--display);letter-spacing:.04em;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.35);padding:4px 10px;border-radius:999px}
.tilecard::after{content:"";position:absolute;right:-30px;bottom:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.08)}
.glass .ic.b{background:rgba(255,211,138,.25);color:var(--hl)}
.glass .ic.g{background:rgba(103,201,154,.25);color:#9ff0c6}
.glass .ic.c{background:rgba(240,138,118,.25);color:#ffb3a3}
.th-photo .glass{background:rgba(var(--ov),.62);border-color:rgba(255,255,255,.2)}

/* larger reading sizes */
.glass p,.card p{font-size:1.02rem}
.step p,.tilecard p{font-size:1rem}
.s-lead{font-size:clamp(1.15rem,1.9vw,1.45rem)}
.topnav a{font-size:.95rem}
.stat b.ph{font-size:clamp(1.3rem,1.9vw,1.6rem);white-space:nowrap;letter-spacing:-.01em}
.stats:has(b.ph){grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}

/* presentation banner */
.deckbar{color:#fff;flex:none;position:relative;z-index:4}
.deckbar .wrap{display:flex;align-items:center;gap:16px;min-height:62px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.deckbar .ti{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
.deckbar .ti svg{width:22px;height:22px}
.deckbar .dbt b{display:block;font:800 clamp(1.15rem,2vw,1.45rem) var(--display);line-height:1.1}
.dbk{display:block;font:700 .68rem var(--body);letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.deckbar .dbs{padding-left:16px;border-left:1px solid rgba(255,255,255,.3);min-width:0}
.deckbar .dbs b{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38ch}
.deckbar .dbn{margin-left:auto;text-align:right}
.deckbar .dbn a{color:#fff;font-weight:700;text-decoration:none;white-space:nowrap}
.deckbar .dbn a:hover{text-decoration:underline}
@media (max-width:760px){.deckbar .dbs,.deckbar .dbn{display:none}}

/* theme picker (draft only) */
.draft-bar .wrap{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.skinpick{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.82rem}
.skinpick b{font-weight:700}
.skinpick button{font:700 .8rem var(--body);border:1px solid rgba(0,0,0,.25);background:#fff;color:#222;border-radius:999px;padding:3px 10px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.skinpick button i{width:12px;height:12px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.2)}
.skinpick button[aria-pressed="true"]{background:#222;color:#fff;border-color:#222}
.skinpick .act{background:transparent;border-style:dashed}

/* building news */
.newsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:22px}
#homeWeek{margin-top:0}
.newsitem{position:relative;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:5px solid var(--green);border-radius:var(--radius);padding:16px 18px;display:grid;gap:6px;align-content:start}
.newsitem.st-now{border-left-color:var(--brass)}
.newsitem.st-next{border-left-color:var(--river)}
.newsitem.st-notice{border-left-color:var(--coral)}
.newsitem .ic{width:38px;height:38px}
.newsitem .ic svg{width:21px;height:21px}
.newsitem h3{font-size:1.02rem}
.newsitem p{color:var(--muted);font-size:.95rem}
.nst{position:absolute;right:12px;top:12px;font:700 .66rem var(--body);letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--green-soft);color:var(--green)}
.st-now .nst{background:var(--brass-soft);color:var(--brass)}
.st-next .nst{background:var(--river-soft);color:var(--river)}
.st-notice .nst{background:var(--coral-soft);color:var(--coral)}
.slide .newsgrid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.slide .newsitem{padding:14px 16px}
.slide .newsitem p{font-size:.9rem}
.newssrc{margin-top:14px;font-size:.85rem;color:var(--muted)}
.meetlist{display:grid;gap:12px;margin-top:22px}
.meet{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:14px;padding:16px 18px;display:grid;gap:3px}
.meet b{font:800 1.2rem var(--display)}
.meet small{opacity:.85}
.mwhen{justify-self:start;font:700 .72rem var(--body);letter-spacing:.08em;text-transform:uppercase;background:var(--hl);color:#13212b;padding:3px 10px;border-radius:999px;margin-bottom:4px}
.votecard{position:relative;margin-top:22px;background:var(--surface);color:var(--ink);border-radius:16px;padding:22px;display:grid;gap:8px;box-shadow:0 14px 34px rgba(0,0,0,.25)}
.votecard h3{font-size:1.5rem}
.votecard p{color:var(--muted)}
.votecard .ic{background:var(--green-soft);color:var(--green)}
.votecard .nst{position:static;justify-self:start;background:var(--coral-soft);color:var(--coral)}
.balrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.bal{display:grid;gap:2px;padding:10px 16px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);font-size:.9rem}
.bal b{font:800 1.05rem var(--display)}
.bal.st-done{background:rgba(103,201,154,.22);border-color:rgba(159,240,198,.55)}
.closure{display:none}
.closure.on{display:inline-flex;align-items:center;gap:8px;margin-top:14px;background:var(--coral);color:#fff;font-weight:700;padding:8px 14px;border-radius:999px}
.closure.on::before{content:"!";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;color:var(--coral);font-weight:800}
.pill-cd{background:var(--hl);color:#13212b;font-weight:800;font-size:.8rem;padding:2px 10px;border-radius:999px}
.slide .meetlist{gap:9px;margin-top:16px}
.slide .meet{padding:11px 16px}
.slide .meet b{font-size:1.08rem}
.slide .votecard{margin-top:16px}
.slide .balrow{margin-top:12px}
.slide .balrow + .cards{margin-top:16px}
.slide .balrow + .cards .glass{padding:14px 16px}
.slide .balrow + .cards .glass p{font-size:.9rem}
/* compact news slides */
.slide .meet{grid-template-columns:auto 1fr;column-gap:12px;row-gap:1px;padding:9px 16px;align-items:center}
.slide .meet .mwhen{grid-row:span 3;align-self:start;margin-top:2px}
.slide .meet small{font-size:.85rem}
.slide .balrow + .cards .ic{display:none}
.slide .newsgrid{margin-top:14px}
.slide .newsitem{gap:4px;padding:12px 15px}

/* ===================== Board meetings & presentations ===================== */
.fc-brass{--fc:#b97a1f}.fc-green{--fc:#2b7a57}.fc-river{--fc:#1d5d86}.fc-sky{--fc:#3f89b8}.fc-plum{--fc:#6a4c99}
.pagehead{background:linear-gradient(135deg,var(--deepbg),#1d3346);color:#fff;padding:46px 0 40px}
.pagehead .eyebrow{color:var(--hl)}
.pagehead h1{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800;margin-top:8px;letter-spacing:-.02em}
.pagehead p{max-width:64ch;margin-top:10px;opacity:.9;font-size:1.12rem}
.pagehead .crumbs{font-size:.92rem;opacity:.85;margin-bottom:6px}.pagehead .crumbs a{color:#fff}
/* next meeting */
.nextmeet{display:grid;grid-template-columns:1.1fr 1fr;gap:26px;align-items:start}
@media (max-width:900px){.nextmeet{grid-template-columns:1fr}}
.mcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 10px 26px rgba(0,0,0,.06)}
.mcard .when{font:800 1.5rem var(--display);margin-top:8px}
.mcard .how{color:var(--muted);margin-top:4px}
.mcard .cd{display:inline-block;margin-top:12px;background:var(--hl);color:#13212b;font-weight:800;padding:3px 12px;border-radius:999px;font-size:.85rem}
.agenda{list-style:none;margin:16px 0 0;padding:0;counter-reset:ag}
.agenda li{counter-increment:ag;display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}
.agenda li::before{content:counter(ag);width:26px;height:26px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center;font-weight:700;font-size:.8rem;color:var(--muted)}
.agenda li.v::before{background:var(--fc,var(--river));border-color:transparent;color:#fff}
.agenda a{font-weight:700;text-decoration:none}
.agenda .tagv{font:700 .7rem var(--body);letter-spacing:.06em;text-transform:uppercase;background:var(--brass-soft);color:var(--brass);padding:3px 9px;border-radius:999px;white-space:nowrap}
.mlist{display:grid;gap:10px}
.mrow{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.mrow .d{text-align:center;min-width:52px}.mrow .d b{display:block;font:800 1.5rem var(--display);line-height:1}.mrow .d span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.mrow small{color:var(--muted);display:block}
.howgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.howgrid .card{padding:18px}
/* presentation cards and library */
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.pcard{position:relative;display:grid;gap:8px;align-content:start;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-top:6px solid var(--fc,var(--river));border-radius:14px;padding:18px 20px 20px;text-decoration:none;transition:transform .15s,box-shadow .15s}
.pcard:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.1)}
.pcard .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pcard .fl{font:700 .72rem var(--body);letter-spacing:.07em;text-transform:uppercase;color:var(--fc)}
.pcard h3{font-size:1.15rem}
.pcard p{color:var(--muted);font-size:.95rem}
.pcard .foot{display:flex;justify-content:space-between;gap:8px;font-size:.88rem;color:var(--muted);margin-top:4px}
.pcard .foot b{color:var(--river)}
.imp{font:700 .7rem var(--body);letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.imp.i1{background:var(--coral-soft);color:var(--coral);border-color:transparent}
.imp.i2{background:var(--brass-soft);color:var(--brass);border-color:transparent}
.ost{font:700 .7rem var(--body);letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--river-soft);color:var(--river)}
.ost.ok{background:var(--green-soft);color:var(--green)}.ost.no{background:var(--coral-soft);color:var(--coral)}
.filters{display:grid;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:22px}
.frow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.frow > b{min-width:110px;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.frow button{font:600 .92rem var(--body);padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.frow button[aria-pressed="true"]{background:var(--river);border-color:var(--river);color:#fff}
.frow input,.frow select{font:inherit;font-size:.95rem;padding:7px 12px;border-radius:9px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.frow input{min-width:240px;flex:1}
.mgroup{margin-top:26px}.mgroup:first-child{margin-top:0}
.mgroup h3{font-size:1.15rem;margin-bottom:12px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.mgroup h3 small{font:600 .9rem var(--body);color:var(--muted)}
.pcount{color:var(--muted);font-size:.95rem;margin-bottom:12px}
/* slides: data presentations */
.slide .bignote{font-size:1rem;opacity:.9;margin-top:14px}
.ptable{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.95rem;margin-top:18px;background:var(--surface);color:var(--ink);border-radius:12px;overflow:hidden}
.ptable th,.ptable td{padding:8px 14px;text-align:right;border-top:1px solid var(--line)}
.ptable th:first-child,.ptable td:first-child{text-align:left}
.ptable thead th{border-top:0;background:var(--paper);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ptable tr.sub td:first-child{padding-left:30px;color:var(--muted)}
.ptable tr.tot td{font-weight:800;background:var(--river-soft)}
.ptable td.up{color:var(--green);font-weight:700}.ptable td.dn{color:var(--coral);font-weight:700}
.ptable td.dot{text-align:center;color:var(--river);font-size:.85rem;line-height:1}
.motions{display:grid;gap:12px;margin-top:22px;counter-reset:mo}
.motion{counter-increment:mo;display:grid;grid-template-columns:52px 1fr;gap:16px;align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:14px;padding:14px 18px}
.motion::before{content:counter(mo);width:44px;height:44px;border-radius:50%;background:var(--hl);color:#13212b;display:grid;place-items:center;font:800 1.3rem var(--display)}
.motion p{font-size:1.05rem}
.vbars{display:flex;align-items:flex-end;gap:14px;height:280px;margin-top:22px;padding:0 4px;border-bottom:2px solid rgba(255,255,255,.35)}
.th-light .vbars,.th-white .vbars{border-color:var(--line)}
.vb{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;height:100%;position:relative}
.vb .stack{display:flex;flex-direction:column-reverse;border-radius:8px 8px 0 0;overflow:hidden}
.vb i{display:block;background:var(--hl)}
.vb i.b2{background:rgba(255,255,255,.55)}
.th-light .vb i,.th-white .vb i{background:var(--river)}
.th-light .vb i.b2,.th-white .vb i.b2{background:var(--brass)}
.vb .val{text-align:center;font:800 1rem var(--display);margin-bottom:6px;white-space:nowrap}
.vb .lab{position:absolute;bottom:-30px;left:0;right:0;text-align:center;font-size:.85rem;opacity:.85;white-space:nowrap}
.vb.hi .val{color:var(--hl)}.th-light .vb.hi .val,.th-white .vb.hi .val{color:var(--river)}
.chartwrap{padding-bottom:34px}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem;margin-top:8px;opacity:.9}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:var(--hl)}
.legend i.b2{background:rgba(255,255,255,.55)}
.th-light .legend i,.th-white .legend i{background:var(--river)}.th-light .legend i.b2,.th-white .legend i.b2{background:var(--brass)}
.dbars{display:grid;gap:5px;margin-top:18px}
.dbar{display:grid;grid-template-columns:210px 1fr 1fr;gap:0;align-items:center;font-size:.92rem}
.dbar > span:first-child{text-align:right;padding-right:12px}
.dbar .neg,.dbar .pos{height:22px;display:flex;align-items:center}
.dbar .neg{justify-content:flex-end;border-right:2px solid var(--line)}
.dbar .neg i,.dbar .pos i{display:block;height:100%;border-radius:4px}
.dbar .neg i{background:var(--green)}.dbar .pos i{background:var(--brass)}
.dbar em{font-style:normal;font-weight:700;font-size:.85rem;padding:0 8px;white-space:nowrap}
.side3{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:center}
@media (max-width:900px){.side3{grid-template-columns:1fr}.dbar{grid-template-columns:130px 1fr 1fr}}
.sidebox{border-radius:14px;padding:20px;background:var(--surface);border:1px solid var(--line)}
.sidebox b.big{display:block;font:800 2.4rem var(--display);color:var(--river);line-height:1}
.sidebox p{color:var(--muted);margin-top:6px}
.sidebox + .sidebox{margin-top:12px}
[class*="th-"]:not(.th-light):not(.th-white) .sidebox{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25)}
[class*="th-"]:not(.th-light):not(.th-white) .sidebox b.big{color:var(--hl)}
[class*="th-"]:not(.th-light):not(.th-white) .sidebox p{color:rgba(255,255,255,.85)}
.checks{display:grid;gap:8px;margin-top:20px}
.checkrow{display:grid;grid-template-columns:34px 260px 1fr;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 16px}
.checkrow::before{content:"\2713";width:28px;height:28px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:800}
.checkrow span{color:var(--muted)}
@media (max-width:860px){.checkrow{grid-template-columns:34px 1fr}.checkrow span{grid-column:2}}
.mtl{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-top:26px;position:relative}
.mtl::before{content:"";position:absolute;left:0;right:0;top:40px;height:4px;background:rgba(255,255,255,.3);border-radius:2px}
.th-light .mtl::before,.th-white .mtl::before{background:var(--line)}
.mtl div{position:relative;text-align:center;padding-top:0}
.mtl div b{display:block;font:800 .95rem var(--display);height:30px}
.mtl div i{display:block;margin:4px auto 10px;width:18px;height:18px;border-radius:50%;background:var(--hl);border:3px solid #fff;position:relative;z-index:1}
.mtl div i.big{width:26px;height:26px;margin-top:0;margin-bottom:6px}
.mtl div span{display:block;font-size:.85rem;line-height:1.3}
.mtl div em{display:block;font-style:normal;font-weight:800;margin-top:4px}
@media (max-width:860px){.mtl{grid-template-columns:repeat(2,1fr)}.mtl::before{display:none}}
.prestag{display:inline-flex;gap:8px;flex-wrap:wrap;margin-top:18px}
/* board decks are data-dense: tighter type */
body[data-dense] .slide{padding:26px 0 84px}
body[data-dense] .s-h2{font-size:clamp(1.5rem,2.8vw,2.2rem)}
body[data-dense] .kick{margin-bottom:6px;font-size:.78rem}
body[data-dense] .ptable{margin-top:12px;font-size:.86rem}
body[data-dense] .ptable th,body[data-dense] .ptable td{padding:5px 12px}
body[data-dense] .motions{gap:8px;margin-top:14px}
body[data-dense] .motion{grid-template-columns:40px 1fr;padding:9px 14px;gap:12px}
body[data-dense] .motion::before{width:34px;height:34px;font-size:1.05rem}
body[data-dense] .motion p{font-size:.95rem;line-height:1.4}
body[data-dense] .stats{margin-top:18px;gap:12px}
body[data-dense] .stat{padding:14px}
body[data-dense] .stat b{font-size:clamp(1.8rem,3.6vw,2.6rem)}
body[data-dense] .stat span{font-size:.9rem;line-height:1.35}
body[data-dense] .bignote{font-size:.9rem;margin-top:10px}
body[data-dense] .checks{gap:6px;margin-top:14px}
body[data-dense] .checkrow{padding:7px 14px}
body[data-dense] .cards .glass,body[data-dense] .cards .card{padding:14px 16px}
body[data-dense] .cards .glass .ic,body[data-dense] .cards .card .ic{width:32px;height:32px;margin-bottom:6px}
body[data-dense] .cards p{font-size:.9rem}
body[data-dense] .dbars{gap:3px;margin-top:12px}
body[data-dense] .dbar{font-size:.85rem}
body[data-dense] .dbar .neg,body[data-dense] .dbar .pos{height:19px}
body[data-dense] .vbars{height:230px}
body[data-dense] .sidebox{padding:14px 16px}
body[data-dense] .sidebox b.big{font-size:1.9rem}
.ptable td{white-space:nowrap}
.ptable td:first-child{white-space:normal}
.ptable tr td:first-child:not(:only-child){min-width:7.5em}
body[data-dense] .ptable td{line-height:1.35}
/* Board meetings carousel */
.pill-hl{background:var(--hl)!important;color:#13212b!important;border-color:transparent!important;font-weight:800}
.agenda2{columns:2;column-gap:36px;margin-top:14px}
.agenda2 li{break-inside:avoid;padding:8px 0}
@media (max-width:860px){.agenda2{columns:1}}
.votegrid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:18px;gap:12px}
.votegrid .pcard{padding:14px 16px}
.votegrid .pcard h3{font-size:1rem}
.votegrid .pcard p{font-size:.85rem;line-height:1.4}
.focusgrid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-top:22px;gap:12px}
.focusgrid .pcard{padding:14px 16px}
.focusgrid .pcard h3{font-size:1.05rem}
/* lobby TV mode (?tv): no controls, no cursor, a clock in the header */
html.tv .draft-bar,html.tv .hint,html.tv .topnav,html.tv .menu-btn,html.tv .controls button,html.tv .toc{display:none!important}
html.tv .controls{pointer-events:none;padding:8px 16px}
html.tv.idle,html.tv.idle *{cursor:none!important}
html.tv .confirm{border:0!important}html.tv .confirm::after{display:none!important}
.tvclock{margin-left:auto;text-align:right;line-height:1.15}
.tvclock b{display:block;font:800 1.6rem var(--display)}
.tvclock span{font-size:.9rem;opacity:.8}
[data-skin="brownstone"] .tvclock{color:#f3ece4}
.votegrid .pcard p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.votegrid .pcard .meta{gap:4px}
/* home page: tour countdown */
.autostart{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:60;display:flex;gap:10px;align-items:center;background:var(--ctl);color:#fff;padding:10px 12px 10px 20px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.3);font-weight:600;white-space:nowrap}
.autostart b{color:var(--hl);font-variant-numeric:tabular-nums}
.autostart button,.autostart a{font:700 .9rem var(--body);border-radius:999px;padding:6px 14px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;cursor:pointer;text-decoration:none}
.autostart a{background:var(--hl);color:#13212b;border-color:transparent}
/* use the whole screen: type and page width grow with the window */
html{font-size:clamp(18px,calc(0.55vw + 11px),24px)}
.wrap{max-width:66rem}
.slide > .inner{max-width:66rem}
.wrap{max-width:min(94vw,84rem)}
.hint{display:none}
/* photo backdrops: a softened photo behind slides and sections, the theme color on top (about 70-85% cover) */
.sph{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;z-index:0;pointer-events:none;opacity:.32;filter:saturate(.75)}
.slide > .sph ~ .inner{position:relative;z-index:1}
.th-light > .sph,.th-white > .sph{opacity:.2;filter:grayscale(.55)}
section.ph{position:relative;overflow:hidden}
section.ph > .wrap{position:relative;z-index:1}
section.block.ph > .sph{opacity:.16;filter:grayscale(.5)}
.pagehead.ph > .sph{opacity:.35}
body.scroll-mode .slide{position:relative}
.th-light > .sph,.th-white > .sph{opacity:.17}
:is(.th-light,.th-white):has(> .sph) :is(.s-lead,.bignote,.muted){color:var(--ink);opacity:.88}
:is(.th-light,.th-white):has(> .sph) :is(.s-h2,.callout){text-shadow:0 1px 14px rgba(255,255,255,.55)}

/* lobby TV: the pointer hides only after a few idle seconds; moving the mouse shows it and an exit button */
.tvexit{position:fixed;right:18px;bottom:18px;z-index:80;display:none;font:700 .9rem var(--body);padding:8px 16px;border-radius:999px;border:0;background:var(--ctl);color:#fff;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.3)}
html.tv:not(.idle) .tvexit{display:block}
