
:root {
  /* Matrix Networking's own palette, lifted off the live site:
     #6CB74F accent, #04262E headline, #7C8493 body, #F0FFCE light.
     Text weights darkened where theirs failed contrast - see --ink2/--accent-text. */
  --bg:#F8FAF6; --card:#FFFFFF; --ink:#04262E; --ink2:#515967;
  --muted:#5C6472; --faint:#6B7382; --line:#DFE5DC; --soft:#EEF2EA;
  --dark:#04262E; --on-dark:#F4F8F1; --dark-mute:#A8B4AE; --dark-line:#1E3A3F;
  --accent:#6CB74F; --accent-ink:#04262E; --accent-fill-hover:#5FA844;
  --accent-text:#3F7628; --accent-2:#356220; --tint:#F0FFCE; --mono-ink:#A9BCA0;
  --focus:#1F6FB2; --strip:#04262E; --strip-ink:#A8B4AE;
  --serif:Newsreader,Georgia,"Times New Roman",serif;
  --sans:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    --bg:#0A1A1E; --card:#10262B; --ink:#E9F1EC; --ink2:#C3D2C8;
    --muted:#9FB0A6; --faint:#889990; --line:#1E3A3F; --soft:#152E33;
    --dark:#04161A; --on-dark:#E9F1EC; --dark-mute:#94A79B; --dark-line:#1B3338;
    --accent:#6CB74F; --accent-ink:#04262E; --accent-fill-hover:#7CC55F;
    --accent-text:#8ED070; --accent-2:#A5DD8A; --tint:#14302A; --mono-ink:#4A6355;
    --focus:#7FB6E8; --strip:#04161A; --strip-ink:#94A79B;
  }
}
:root[data-theme="dark"] {
    --bg:#0A1A1E; --card:#10262B; --ink:#E9F1EC; --ink2:#C3D2C8;
  --muted:#9FB0A6; --faint:#889990; --line:#1E3A3F; --soft:#152E33;
  --dark:#04161A; --on-dark:#E9F1EC; --dark-mute:#94A79B; --dark-line:#1B3338;
  --accent:#6CB74F; --accent-ink:#04262E; --accent-fill-hover:#7CC55F;
  --accent-text:#8ED070; --accent-2:#A5DD8A; --tint:#14302A; --mono-ink:#4A6355;
  --focus:#7FB6E8; --strip:#04161A; --strip-ink:#94A79B;
}

*,*::before,*::after { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans);
  font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; }
[hidden] { display:none !important; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; letter-spacing:-.022em; margin:0;
  text-wrap:balance; }
p { margin:0; }
a { color:var(--accent-text); text-decoration:none; }
a:hover { color:var(--accent-2); }
:focus-visible { outline:3px solid var(--focus); outline-offset:2px; border-radius:3px; }
@media (prefers-reduced-motion:reduce) { *{animation:none!important;transition:none!important} }

.wrap { max-width:1120px; margin:0 auto; padding-inline:20px; }


.venue { margin:0; }
.venue img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover;
  border-radius:6px; border:1px solid var(--line); background:var(--soft); }
.venue figcaption { margin-top:8px; font-size:12.5px; color:var(--faint); }
.venue figcaption b { color:var(--muted); font-weight:600; }
.venue.tall img { aspect-ratio:4/3; }

/* about */
.pillars { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:30px;
  margin-top:38px; }
.pillar h3 { font-size:20px; padding-bottom:11px; border-bottom:2px solid var(--accent);
  display:inline-block; }
.pillar p { color:var(--muted); font-size:15.5px; margin-top:13px; }
.fees { margin-top:26px; border-top:2px solid var(--ink); max-width:560px; }
.fees div { display:flex; align-items:baseline; justify-content:space-between; gap:18px;
  padding-block:14px; border-bottom:1px solid var(--line); }
.fees dt { font-size:16px; }
.fees dt small { display:block; font-size:13.5px; color:var(--faint); margin-top:2px; }
.fees dd { margin:0; font-family:var(--serif); font-size:27px; line-height:1;
  font-variant-numeric:tabular-nums; flex:0 0 auto; }
.fees dd.free { color:var(--accent-text); }
.clock { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:2px;
  margin-top:26px; background:var(--line); border:1px solid var(--line); border-radius:6px;
  overflow:hidden; }
.clock div { background:var(--card); padding:20px 18px; }
.clock b { display:block; font-family:var(--serif); font-size:30px; line-height:1;
  font-variant-numeric:tabular-nums; }
.clock span { display:block; font-size:14.5px; color:var(--muted); margin-top:8px; }
.clock b .ph { display:inline-block; font-size:.6em; vertical-align:baseline; }
.source { font-size:13px; color:var(--faint); margin-top:16px; max-width:58ch; }
.team { list-style:none; margin:28px 0 0; padding:0; display:grid; gap:1px;
  grid-template-columns:repeat(auto-fit,minmax(215px,1fr));
  background:var(--line); border:1px solid var(--line); border-radius:6px;
  overflow:hidden; }
.team li { background:var(--card); padding:18px; }
.team li a { font-family:var(--serif); font-size:20px; display:block; }
.team li span { display:block; font-size:13.5px; color:var(--faint); margin-top:5px; }

/* news */
.ngrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:1px;
  list-style:none; margin:0; padding:0; background:var(--line);
  border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.ncard { background:var(--card); }
.ncard-hit { display:flex; flex-direction:column; gap:9px; height:100%;
  padding:24px 22px 22px; color:inherit; }
.ncard:hover { background:var(--soft); }
.nimg { display:block; width:calc(100% + 44px); max-width:none; margin:-24px -22px 8px;
  aspect-ratio:3/2; height:auto; object-fit:cover; background:var(--soft); }
.article-img { margin:28px 0 6px; }
.article-img img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover;
  border-radius:4px; background:var(--soft); }
.article-img figcaption { font-size:12.5px; color:var(--faint); margin-top:8px; }
.nkick { font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent-text); }
.nkick em { font-style:normal; color:var(--faint); }
.ntitle { font-size:22px; line-height:1.2; }
.nstand { font-size:14.5px; color:var(--ink2); }
.nby { font-size:12.5px; color:var(--faint); margin-top:auto; padding-top:10px; }
.article { max-width:68ch; padding-block:44px 64px; }
.article h1 { font-size:clamp(30px,5vw,48px); line-height:1.06; }
.prose p.slot { background:var(--tint); color:#2E5A1D; border-left:3px solid var(--accent);
  padding:14px 16px; border-radius:0 3px 3px 0; font-size:15.5px; }

/* honest little strip */
.strip { background:var(--strip); color:var(--strip-ink); font-size:12.5px; letter-spacing:.02em;
  padding:8px 20px; text-align:center; }
.strip b { color:var(--on-dark); font-weight:600; }

/* one-line notice under the header ("no lunch this week") */
.notice { background:var(--tint); color:var(--ink); border-bottom:1px solid var(--line);
  font-size:14.5px; line-height:1.45; padding:10px 0; margin:0; }
.notice .wrap { display:block; text-wrap:pretty; }

/* header */
.top { position:sticky; top:env(safe-area-inset-top,0px); z-index:20; background:var(--card);
  border-bottom:1px solid var(--line); }
.top .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding-block:14px; flex-wrap:wrap; }
.logo { display:flex; align-items:center; gap:11px; }
.logo-slot { width:132px; height:33px; border:1px dashed var(--faint); border-radius:2px;
  display:grid; place-items:center; font-size:9px; letter-spacing:.08em; color:var(--faint);
  text-transform:uppercase; flex:0 0 auto; }
.logo .word { font-family:var(--serif); font-size:21px; color:var(--ink); }
.logo-img { height:46px; width:auto; }
.nav { display:flex; align-items:center; gap:8px 20px; font-size:15px; flex-wrap:wrap; }
.nav a { color:var(--ink); padding-block:4px; }
/* phones: the six-item nav was wrapping to three rows inside a sticky header,
   eating a third of the screen. One scrolling row, and not sticky. */
@media (max-width:640px) {
  .top { position:static; }
  .top .wrap { padding-block:10px 8px; row-gap:8px; }
  .logo-img { height:38px; }
  .nav { flex-wrap:nowrap; overflow-x:auto; width:100%; gap:18px; font-size:14.5px;
    padding-bottom:4px; scrollbar-width:none; }
  .nav a { white-space:nowrap; flex:0 0 auto; }
  .nav .btn { padding:8px 14px; font-size:14px; }
}
.nav a[aria-current="page"] { border-bottom:2px solid var(--accent); }
.btn { background:var(--accent); color:var(--accent-ink) !important; padding:11px 20px;
  border-radius:3px; font-weight:600; font-size:15px; display:inline-block; }
.btn:hover { background:var(--accent-fill-hover); color:var(--accent-ink) !important; }
.btn.ghost { background:transparent; color:var(--ink) !important; border:1px solid var(--line); }
.btn.ghost:hover { border-color:var(--faint); background:transparent; }

.eyebrow { font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent-text); }

/* home hero */
.hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:48px;
  padding-block:64px 56px; align-items:start; }
.hero h1 { font-size:clamp(40px,7vw,74px); line-height:1.02; margin:22px 0 22px; }
.hero .lede { font-size:clamp(17px,2.2vw,20px); color:var(--ink2); max-width:32ch; }
.hero .sub { font-size:16px; color:var(--muted); max-width:36ch; margin-top:14px; }
@media (max-width:820px) { .hero { grid-template-columns:1fr; gap:32px; padding-block:40px 36px; } }

.next { background:var(--card); border:1px solid var(--line); border-radius:5px; overflow:hidden; }
.next-head { padding:26px 28px 22px; border-bottom:1px solid var(--soft); }
.next-head .when { font-family:var(--serif); font-size:30px; line-height:1.15; margin-top:14px; }
.next-body { padding:22px 28px; display:flex; flex-direction:column; gap:14px; }
.fact { display:flex; gap:13px; align-items:flex-start; font-size:15px; }
.fact svg { flex:0 0 auto; margin-top:3px; }
.fact b { display:block; font-weight:600; }
.fact span { color:var(--muted); }
.next-foot { padding:0 28px 26px; }
.next-foot .note { text-align:center; font-size:13.5px; color:var(--muted); margin-top:12px; }
.ph { background:var(--tint); color:#2E5A1D; padding:1px 6px; border-radius:2px;
  font-size:.84em; letter-spacing:.03em; white-space:nowrap; }

/* promise */
.band { background:var(--card); border-block:1px solid var(--line); padding-block:64px; }
.band h2 { font-size:clamp(28px,4vw,40px); line-height:1.14; }
.band .intro { color:var(--muted); font-size:17px; margin-top:14px; max-width:58ch; }
.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:36px;
  margin-top:44px; }
.step h3 { font-size:17.5px; font-family:var(--sans); font-weight:600; letter-spacing:0;
  margin:12px 0 6px; }
.step .n { font-family:var(--serif); font-size:40px; line-height:1; color:var(--accent-text); }
.step p { color:var(--muted); font-size:15.5px; }

.section { padding-block:60px; }
.section h2 { font-size:clamp(26px,3.6vw,38px); line-height:1.16; }
.section .intro { color:var(--muted); font-size:16.5px; margin-top:12px; max-width:56ch; }

.hills { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:44px; align-items:center; }
@media (max-width:760px) { .hills { grid-template-columns:1fr; gap:24px; } }

/* members */
.controls { display:flex; flex-direction:column; gap:14px; padding-bottom:26px; }
.search { display:flex; align-items:center; gap:10px; background:var(--card);
  border:1px solid var(--line); border-radius:4px; padding-inline:14px; min-height:50px; max-width:420px; }
.search input { border:0; outline:0; background:transparent; font:inherit; font-size:16px;
  color:var(--ink); width:100%; min-height:48px; }
.pills { display:flex; flex-wrap:wrap; gap:9px; margin:0; padding:0; list-style:none; }
.pill { font:inherit; font-size:14px; background:var(--card); color:var(--ink); cursor:pointer;
  border:1px solid var(--line); border-radius:100px; padding:9px 17px; min-height:40px; }
.pill:hover { border-color:var(--faint); }
.pill[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.count { font-size:14px; color:var(--muted); }

.mgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(285px,1fr)); gap:24px;
  list-style:none; margin:0; padding:0 0 40px; }
.mcard { background:var(--card); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.mcard:hover { border-color:var(--faint); }
.mcard-hit { display:flex; flex-direction:column; height:100%; color:inherit; }
.shot { aspect-ratio:4/5; background:var(--soft); display:grid; place-items:center;
  position:relative; overflow:hidden; }
.shot img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.shot.big { border-radius:6px; border:1px solid var(--line); }
.mono { font-family:var(--serif); font-size:58px; color:var(--mono-ink); letter-spacing:.02em; }
.shot.big .mono { font-size:86px; }
.mcard-body { padding:18px 20px 20px; display:flex; flex-direction:column; gap:11px; flex:1 1 auto; }
.nm { font-size:23px; line-height:1.15; }
.biz { font-size:14.5px; color:var(--accent-text); margin-top:3px; }
.tags { display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0; list-style:none; }
.tags.wide { gap:8px; }
.tag { border:1px solid var(--line); border-radius:100px; padding:4px 11px; font-size:12px;
  color:var(--muted); }
.bio { font-size:14.5px; color:var(--ink2); }
.ask { margin-top:auto; padding-top:13px; border-top:1px solid var(--soft); }
.ask-l { font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--faint); margin-bottom:5px; }
.ask-v { font-size:14px; color:var(--ink2); }
.ask-v.todo { color:var(--faint); font-style:italic; }
.empty { padding-block:30px 60px; color:var(--muted); font-size:17px; }

/* profile */
.back { display:inline-block; margin-block:26px 0; font-size:15px; }
.profile { display:grid; grid-template-columns:minmax(0,330px) minmax(0,1fr); gap:44px;
  padding-block:26px 60px; align-items:start; }
@media (max-width:760px) { .profile { grid-template-columns:minmax(0,1fr); gap:26px; } }
.profile h1 { font-size:clamp(30px,5vw,44px); line-height:1.08; margin-bottom:6px; }
.profile .role { font-size:18px; color:var(--ink2); margin-bottom:16px; }
.prose { margin-top:18px; display:flex; flex-direction:column; gap:13px; }
.prose p { font-size:16.5px; line-height:1.65; color:var(--ink2); max-width:62ch; }
.panel { background:var(--card); border:1px solid var(--line); border-radius:6px;
  padding:20px 22px; margin-top:22px; }
.panel h2 { font-size:19px; margin-bottom:11px; }
.rows { margin:0; }
.rows div { display:flex; gap:14px; padding-block:9px; border-bottom:1px solid var(--soft);
  font-size:15px; }
.rows div:last-child { border-bottom:0; }
.rows dt { flex:0 0 92px; color:var(--muted); }
.rows dd { margin:0; min-width:0; overflow-wrap:anywhere; }

/* visit */
.order { border-top:1px solid var(--line); margin-top:26px; }
.order > div { display:grid; grid-template-columns:104px minmax(0,1fr); gap:22px;
  padding-block:18px; border-bottom:1px solid var(--soft); align-items:start; }
.order .t { font-family:var(--serif); font-size:19px; color:var(--accent-text); }
.order b { display:block; font-size:16.5px; margin-bottom:3px; }
.order span { color:var(--muted); font-size:15px; }
@media (max-width:560px) { .order > div { grid-template-columns:1fr; gap:4px; } }
.qa { display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:22px 32px;
  margin-top:24px; }
.qa b { display:block; margin-bottom:4px; }
.qa p { color:var(--muted); font-size:15px; }
.split { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:44px;
  align-items:start; }
@media (max-width:900px) { .split { grid-template-columns:1fr; gap:30px; } }
.form { background:var(--card); border:1px solid var(--line); border-radius:6px;
  padding:24px; display:flex; flex-direction:column; gap:15px; }
.field { border:1px solid var(--line); border-radius:3px; background:var(--bg);
  padding:13px 15px; min-height:48px; color:var(--faint); font-size:15px; }
.opt { display:flex; align-items:center; gap:12px; border:1px solid var(--line);
  border-radius:3px; padding:13px 15px; min-height:48px; font-size:15px; }
.opt.on { border-color:var(--accent); background:var(--tint); box-shadow:inset 0 0 0 1px var(--accent); }
.dot { width:17px; height:17px; border-radius:50%; border:1px solid var(--faint); flex:0 0 auto; }
.opt.on .dot { border:5px solid var(--accent); background:var(--card); }
.lbl { font-size:13px; font-weight:600; }

/* expo */
.expo-hero { background:var(--dark); color:var(--on-dark); padding-block:34px; }
.expo-hero h1 { font-size:clamp(28px,5.5vw,40px); line-height:1.1; margin:16px 0 12px; }
.expo-hero p { color:var(--dark-mute); font-size:16.5px; max-width:44ch; }
.expo-hero .scanned { display:flex; align-items:center; gap:9px; font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent-2); }
.expo-hero .where { margin-top:18px; padding-top:16px; border-top:1px solid var(--dark-line);
  font-size:14.5px; }
.intents { display:flex; flex-direction:column; gap:10px; margin-top:18px; max-width:520px; }
.intent { display:flex; align-items:center; gap:14px; background:var(--card);
  border:1px solid var(--line); border-radius:6px; padding:14px 18px; min-height:62px; }
.intent.on { background:var(--tint); border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.intent b { display:block; font-size:16.5px; }
.intent small { display:block; color:var(--muted); font-size:13.5px; }
.intent.on small { color:var(--accent-2); }
.tick { width:24px; height:24px; border-radius:50%; border:1px solid var(--faint);
  background:var(--card); display:grid; place-items:center; flex:0 0 auto; }
.intent.on .tick { background:var(--accent); border-color:var(--accent); }
.dates { background:var(--card); border:1px solid var(--line); border-radius:6px;
  overflow:hidden; max-width:520px; margin-top:20px; }
.dates div { display:flex; justify-content:space-between; gap:12px; padding:13px 18px;
  border-bottom:1px solid var(--soft); }
.dates div:last-child { border-bottom:0; }
.dates .v { color:var(--muted); font-size:14px; }


/* ===== homepage, direction D: B's thesis + the faces + C's facts ===== */
.d-hero { background:var(--dark); color:var(--on-dark); padding-block:52px 34px; }
.d-top { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:28px 56px;
  align-items:end; }
@media (max-width:860px) { .d-top { grid-template-columns:minmax(0,1fr); } }
.d-eyebrow { font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:#A9DE88; }
.d-hero h1 { font-size:clamp(38px,5.4vw,68px); line-height:1.02; letter-spacing:-.03em;
  margin-top:18px; color:var(--on-dark); }
.d-lede { font-size:clamp(16.5px,1.7vw,18.5px); line-height:1.55; color:var(--dark-mute); }
.d-acts { display:flex; align-items:center; gap:14px 22px; flex-wrap:wrap; margin-top:22px; }
.d-link { color:var(--on-dark); font-weight:600; font-size:15px;
  border-bottom:1px solid var(--accent); padding-bottom:2px; }
.d-link:hover { color:#A9DE88; }
.d-faces { list-style:none; margin:40px 0 0; padding:0 0 4px; display:grid;
  grid-template-columns:repeat(13,minmax(0,1fr)); gap:10px; }
@media (max-width:900px) {
  .d-faces { display:flex; overflow-x:auto; scroll-snap-type:x proximity; gap:10px;
    padding-bottom:10px; }
  .d-faces li { flex:0 0 74px; scroll-snap-align:start; }
}
.d-face { display:block; color:var(--dark-mute); }
.d-shot { display:grid; place-items:center; position:relative; aspect-ratio:4/5; overflow:hidden;
  border-radius:3px; background:var(--dark-line); }
.d-shot img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .25s ease; }
.d-face:hover img { transform:scale(1.04); }
.d-mono { font-family:var(--serif); font-size:22px; color:var(--dark-mute); }
.d-fname { display:block; font-size:12px; margin-top:6px; text-align:center; }
.d-face:hover .d-fname { color:var(--on-dark); }

.d-facts { background:var(--accent); color:var(--accent-ink); }
.d-facts dl { margin:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); }
.d-facts dl > div { padding:20px 18px; border-left:1px solid rgba(4,38,46,.18); }
.d-facts dl > div:first-child { border-left:0; padding-left:0; }
.d-facts dt { font-family:var(--serif); font-size:clamp(19px,1.9vw,23px); line-height:1.1;
  font-variant-numeric:tabular-nums; }
.d-facts dd { margin:5px 0 0; font-size:13.5px; font-weight:500; }
@media (max-width:900px) {
  .d-facts dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .d-facts dl > div { border-left:0; padding:14px 0; border-top:1px solid rgba(4,38,46,.18); }
  .d-facts dl > div:nth-child(-n+2) { border-top:0; }
  .d-facts dl > div:last-child { grid-column:1 / -1; }
}

.d-claims { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:34px 40px;
  margin-top:34px; }
.d-claims h3 { font-size:22px; line-height:1.2; padding-top:16px; border-top:3px solid var(--accent); }
.d-claims p { color:var(--muted); font-size:15.5px; margin-top:10px; }

.d-where { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:30px 52px;
  align-items:center; }
@media (max-width:820px) { .d-where { grid-template-columns:minmax(0,1fr); } }
.d-where .intro + .intro { margin-top:14px; }
.d-headrow { display:flex; justify-content:space-between; align-items:baseline; gap:12px 24px;
  flex-wrap:wrap; margin-bottom:26px; }
.routes { margin-top:18px; font-size:13px; color:var(--dark-mute); }
.routes a { color:var(--on-dark); border-bottom:1px solid var(--dark-line); }
.route-note { background:var(--tint); color:#2E5A1D; font-size:13.5px; padding:10px 20px;
  text-align:center; }
.route-note a { font-weight:600; }

/* footer */
.foot { background:var(--dark); color:var(--dark-mute); padding-block:60px; margin-top:16px; }
.foot .cols { display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
  flex-wrap:wrap; }
.foot h2 { font-size:clamp(26px,4vw,42px); line-height:1.1; color:var(--on-dark); }
.foot p { color:var(--dark-mute); font-size:17px; margin-top:14px; max-width:28ch; }
.foot a.mail { color:var(--on-dark); font-size:18px; border-bottom:1px solid var(--accent);
  padding-bottom:3px; }
.foot .rule { margin-top:44px; padding-top:22px; border-top:1px solid var(--dark-line);
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:13.5px; }

/* =================================================================
   Production additions (real forms, real headings, clean URLs).
   Everything above came from the approved mockup unchanged.
   ================================================================= */
.skip { position:absolute; left:-9999px; top:0; }
.skip:focus { left:12px; top:12px; z-index:99; background:var(--card); padding:10px 14px;
  border-radius:3px; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.narrow { max-width:640px; }
.spacer { height:64px; }
.muted { color:var(--muted); }

.pagehead { padding-block:52px 34px; max-width:40ch; }
.pagehead h1 { font-size:clamp(34px,6vw,58px); line-height:1.04; margin:20px 0 18px; }
.pagehead .lede { max-width:42ch; color:var(--ink2); font-size:clamp(16.5px,2vw,19px); }
.h2-gap { margin-top:14px; }
.h-md { font-size:clamp(24px,3.4vw,34px); }
.h-sm { font-family:var(--serif); font-size:27px; font-weight:400; display:block; }
.btn-row { margin-top:22px; display:flex; gap:12px; flex-wrap:wrap; }
.more { font-weight:600; }
.aside { margin-top:14px; font-size:14px; color:var(--faint); max-width:60ch; }
.intro + .intro { margin-top:14px; }
.t-soft { font-size:15px !important; color:var(--faint) !important; }
.section.tight { padding-top:0; }
.split { padding-bottom:60px; }
.d-where.solo { grid-template-columns:minmax(0,1fr); max-width:760px; }
.foot-acts { display:flex; flex-direction:column; gap:16px; align-items:flex-start; }

.qa h3 { font-family:var(--sans); font-size:16px; font-weight:600; letter-spacing:0; margin-bottom:4px; }
.pillar h2 { font-size:20px; padding-bottom:11px; border-bottom:2px solid var(--accent); display:inline-block; }
.step h3 { margin-top:0; }
.clock.single { grid-template-columns:1fr; margin-top:6px; }
.nm { font-weight:400; }

/* forms */
fieldset { border:0; margin:0; padding:0; min-width:0; }
legend { padding:0; margin-bottom:10px; }
.form label { display:block; }
.form .lbl, .sendbox .lbl { display:block; margin-bottom:7px; }
.form-sub { display:block; font-size:14.5px; color:var(--muted); margin-top:6px; font-family:var(--sans); }
.form-note { margin-top:12px; font-size:13px; color:var(--muted); }
.pair { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
input.field, textarea.field { width:100%; font:inherit; font-size:16px; color:var(--ink);
  background:var(--bg); border:1px solid var(--line); border-radius:3px; padding:12px 14px;
  min-height:48px; }
textarea.field { resize:vertical; min-height:84px; }
input.field::placeholder, textarea.field::placeholder { color:var(--faint); }
input.field:focus, textarea.field:focus { outline:3px solid var(--focus); outline-offset:1px; border-color:transparent; }
button.btn { border:0; cursor:pointer; font-family:var(--sans); }
.btn-block { display:block; width:100%; text-align:center; }
.hp { position:absolute !important; left:-9999px; }

.opts { display:flex; flex-direction:column; gap:8px; }
.opt { cursor:pointer; }
.opt input, .intent input { position:absolute; opacity:0; width:1px; height:1px; }
.opt:has(input:checked) { border-color:var(--accent); background:var(--tint);
  box-shadow:inset 0 0 0 1px var(--accent); }
.opt:has(input:checked) .dot { border:5px solid var(--accent); background:var(--card); }
.opt:has(input:focus-visible), .intent:has(input:focus-visible) { outline:3px solid var(--focus); outline-offset:2px; }

.expo-body { padding-block:30px 60px; }
.intent { cursor:pointer; position:relative; }
.intent:has(input:checked) { background:var(--tint); border-color:var(--accent);
  box-shadow:inset 0 0 0 1px var(--accent); }
.intent:has(input:checked) .tick { background:var(--accent); border-color:var(--accent); }
.intent:has(input:checked) .tick::after { content:""; width:10px; height:6px;
  border-left:2.5px solid #04262E; border-bottom:2.5px solid #04262E; transform:rotate(-45deg) translate(1px,-1px); }
.intent:has(input:checked) small { color:var(--accent-2); }
.sendbox { background:var(--card); border:1px solid var(--line); border-radius:6px; padding:18px;
  margin-top:18px; max-width:520px; display:flex; flex-direction:column; gap:12px; }
.dates .d { font-weight:600; }

/* articles */
.article-body h2 { font-size:clamp(22px,3vw,28px); margin-top:14px; }
.article-body h3 { font-size:20px; margin-top:8px; }
.article-body ul { margin:0; padding-left:22px; color:var(--ink2); font-size:16.5px; line-height:1.65; }
.article .lede { margin-top:18px; font-size:clamp(17px,2.1vw,20px); color:var(--ink2); }
.byline { margin-top:30px; padding-top:18px; border-top:1px solid var(--line); font-size:14px; color:var(--faint); }
.slotcard .ncard-hit { background:var(--tint); }

/* placeholder chips only ever appear in preview builds */
.ph { display:inline; white-space:normal; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
@media (max-width:640px) { .nav .btn { display:none; } }
