/* ==========================================================================
   The Round by Kuma Partners · theround.kuma.partners
   Design system mirrored from kuma.partners.

   01  Fonts (self-hosted woff2, no third-party requests)
   02  Tokens
   03  Base & typography
   04  Layout, section strips, eyebrows
   05  Buttons & pills
   06  Header & collapsible navigation
   07  Hero (navy radial)
   07b Fact strip (#glance)
   08  Operating architecture: 2 x 2 touchpoints, ledger anchor, terminal
       (Charter drawer list styles follow)
   10  Facilitation Engine: split header, connected pipeline
   11  Standards of fit: bilateral governance compact
   12  Membership terms (navy spec sheet)
   12b FAQ
   13  Footer
   14  Application drawer & form fields
   15  Member Portal modal & ledger
   16  Motion: scroll reveal & stagger
   17  Responsive (1100 / 1024 / 960 / 640)
   17b Mobile layer (< 768px only)
   18  Reduced motion & print

   House rules
   - Every border is 1px solid. Never 2px or 3px.
   - Radii: 2px everywhere, 4px modals, 16px top corners on mobile sheets.
   - No card shadows, no pills: hairlines, whitespace and mono tags.
   - Section cadence: navy hero, cream facts, paper cadence, cream
     facilitation, paper fit, navy terms, paper FAQ, cream footer.
   ========================================================================== */

/* ---------- 01 Fonts ---------- */
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:600; font-display:swap; src:url('assets/fonts/montserrat-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:700; font-display:swap; src:url('assets/fonts/montserrat-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Montserrat'; font-style:normal; font-weight:800; font-display:swap; src:url('assets/fonts/montserrat-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'Montserrat'; font-style:italic; font-weight:400; font-display:swap; src:url('assets/fonts/montserrat-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'Lato'; font-style:normal; font-weight:300; font-display:swap; src:url('assets/fonts/lato-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Lato'; font-style:normal; font-weight:400; font-display:swap; src:url('assets/fonts/lato-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Lato'; font-style:normal; font-weight:700; font-display:swap; src:url('assets/fonts/lato-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Lato'; font-style:italic; font-weight:400; font-display:swap; src:url('assets/fonts/lato-latin-400-italic.woff2') format('woff2');}

/* ---------- 02 Tokens ---------- */
:root{
  /* Colour */
  --navy:#0B1523;
  --navy-rgb:11,21,35;
  --navy-hover:#16283D;
  --teal:#1D6F8A;
  --teal-rgb:29,111,138;
  --teal-hover:#185C73;
  --teal-on-dark:#8DB7C5;
  --cream:#F8F9FA;          /* soft architectural cream */
  --paper:#FDFDFC;          /* warm canvas paper, the default light surface */
  --white:#FFFFFF;          /* drawers, modals, inputs */
  --ink:#111827;            /* high-contrast charcoal */
  --muted:#5A6D7C;          /* slate for secondary copy */
  --hairline-color:rgba(0,0,0,.08);
  --hairline-dark:rgba(255,255,255,.12);
  --on-dark:#F8F9FA;
  --on-dark-muted:rgba(248,249,250,.72);

  /* Surfaces */
  --navy-radial:radial-gradient(120% 85% at 50% 0%, #16283D 0%, #0B1523 100%);
  --card-border:rgba(0,0,0,.07);
  --card-sheen:none;        /* editorial system: no drop shadows on cards */
  --card-lift:none;
  --card-bg:#FFFFFF;        /* flat, no gradient sheen */
  --navy-focal-shadow:none;
  --card-transition:border-color .4s var(--ease-reveal);

  /* Status */
  --status-progress:#1D6F8A;
  --status-actionable:#8A5F1C;
  --status-actionable-bg:#F6F0E4;
  --status-completed:#0B1523;
  --danger:#9B3B2E;

  /* Type */
  --font-head:'Montserrat', Arial, sans-serif;
  --font-body:'Lato', Arial, sans-serif;
  --font-mono:ui-monospace, SFMono-Regular, 'JetBrains Mono', Menlo, Consolas, monospace;

  /* Shape */
  --hairline:1px;
  --radius-xs:2px;
  --radius-sm:2px;
  --radius-md:2px;
  --radius-lg:4px;
  --radius-pill:999px;
  /* Understated edge softening for the cadence cards, ledger anchor and terminal */
  --radius-card:8px;
  --radius-anchor:10px;
  --radius-inset:6px;
  --shadow-ambient:0 4px 16px rgba(15,23,42,.04);
  --shadow-ambient-hover:0 8px 24px rgba(15,23,42,.07);
  --shadow-anchor:0 16px 40px -8px rgba(11,21,35,.3);

  /* Layout */
  --max:1120px;
  --gutter:32px;
  --section-y:96px;
  --header-h:76px;

  /* Motion */
  --ease-reveal:cubic-bezier(.16,1,.3,1);
  --dur-reveal:650ms;
  --dur-collapse:350ms;
}

/* ---------- 03 Base & typography ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--header-h) + 8px);}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-weight:400; font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
body.is-locked{overflow:hidden;}

h1,h2,h3,h4{font-family:var(--font-head); color:var(--navy); margin:0 0 .5em; text-wrap:balance;}
h1{font-size:3.1rem; font-weight:700; line-height:1.08; letter-spacing:-.02em;}
h2{font-size:2.05rem; font-weight:700; line-height:1.18; letter-spacing:-.018em;}
h3{font-size:1.16rem; font-weight:700; line-height:1.3; letter-spacing:-.012em;}
h4{font-size:1rem; font-weight:600; line-height:1.3;}
p{margin:0 0 1em;}
a{color:var(--teal);}
img,svg{max-width:100%;}
button,input,textarea,select{font:inherit;}
[hidden]{display:none !important;}
:focus-visible{outline:1px solid var(--teal); outline-offset:3px; box-shadow:0 0 0 3px rgba(var(--teal-rgb),.18); border-radius:var(--radius-xs);}

.subhead,.quote{font-family:var(--font-head); font-style:italic; font-weight:400; color:var(--teal);}

.visually-hidden{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
.skip-link{position:fixed; top:-60px; left:16px; z-index:400; background:var(--navy); color:#fff; padding:10px 16px; border-radius:var(--radius-xs); text-decoration:none; font-weight:700; transition:top .2s ease;}
.skip-link:focus{top:12px;}

/* ---------- 04 Layout, strips, eyebrows ---------- */
.wrap{max-width:var(--max); margin:0 auto; padding:0 var(--gutter);}
section{padding:var(--section-y) 0;}
[id]{scroll-margin-top:calc(var(--header-h) + 8px);}

.bg-white{background:var(--paper);}
.bg-cream{background:var(--cream); border-top:var(--hairline) solid var(--hairline-color); border-bottom:var(--hairline) solid var(--hairline-color);}
.bg-navy{background:var(--navy); background-image:var(--navy-radial); color:var(--on-dark);}
.bg-navy h2,.bg-navy h3{color:#fff;}

.eyebrow{
  display:flex; align-items:center; gap:12px; margin:0 0 18px;
  font-family:var(--font-body); font-weight:700; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--navy);
}
.eyebrow::before{content:""; display:inline-block; flex-shrink:0; width:28px; height:3px; background:var(--teal); border-radius:2px;}
.eyebrow--sm{font-size:.72rem; margin-bottom:10px; gap:10px;}
.bg-navy .eyebrow{color:var(--on-dark);}

.section-head{max-width:760px; margin-bottom:56px;}
.lede{font-size:1.12rem; font-weight:400; color:var(--muted); max-width:680px; margin:0;}
.bg-navy .lede{color:var(--on-dark-muted);}

/* ---------- 05 Buttons & pills ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:700; font-size:.92rem; line-height:1.2; letter-spacing:.01em; white-space:nowrap;
  padding:14px 26px; border-radius:var(--radius-xs); text-decoration:none; cursor:pointer;
  border:var(--hairline) solid transparent;
  transition:background-color .25s var(--ease-reveal), color .25s var(--ease-reveal), border-color .25s var(--ease-reveal), transform .15s var(--ease-reveal);
}
.btn:active{transform:translateY(1px);}
.btn-sm{padding:10px 18px; font-size:.84rem;}
.btn-block{width:100%;}
.btn-primary{background:var(--navy); color:#fff; border-color:var(--navy);}
.btn-primary:hover{background:var(--navy-hover); border-color:var(--navy-hover);}
.btn-secondary{background:transparent; color:var(--navy); border-color:var(--navy);}
.btn-secondary:hover{background:var(--navy); color:#fff;}
.btn[disabled]{opacity:.6; cursor:progress;}
.btn-link{
  display:inline-block; font-family:var(--font-body); font-weight:700; font-size:.95rem; color:var(--navy); text-decoration:none;
  border-bottom:var(--hairline) solid rgba(var(--navy-rgb),.3); padding-bottom:2px; transition:color .2s ease, border-color .2s ease;
}
.btn-link:hover{color:var(--teal); border-bottom-color:var(--teal);}

/* On navy surfaces the conversion button takes the teal highlight */
.bg-navy .btn-primary{background:var(--teal); border-color:var(--teal);}
.bg-navy .btn-primary:hover{background:var(--teal-hover); border-color:var(--teal-hover);}
.bg-navy .btn-link{color:#fff; border-bottom-color:rgba(255,255,255,.35);}
.bg-navy .btn-link:hover{color:var(--teal-on-dark); border-bottom-color:var(--teal-on-dark);}

.badge-pill{
  display:inline-flex; align-items:center; gap:12px; margin-bottom:28px; padding:0;
  font-family:var(--font-mono); font-weight:400; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal);
}
.badge-pill::before{content:""; flex-shrink:0; width:20px; height:1px; background:currentColor;}
.bg-navy .badge-pill{color:var(--teal-on-dark);}

/* ---------- 06 Header & collapsible navigation ---------- */
header.site{
  position:sticky; top:0; z-index:100;
  background:rgba(248,249,250,.9);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:var(--hairline) solid var(--hairline-color);
  transition:box-shadow .25s ease;
}
header.site.is-scrolled{box-shadow:0 8px 24px -20px rgba(var(--navy-rgb),.35);}
.nav{display:flex; align-items:center; justify-content:space-between; gap:24px; height:var(--header-h);}

.brand-lockup{display:inline-flex; align-items:center; gap:14px; text-decoration:none; flex-shrink:0;}
.brand-logo{height:25px; width:auto; display:block; object-fit:contain;}
.brand-fallback{display:none; font-family:var(--font-head); font-weight:700; font-size:.9rem; letter-spacing:.12em; text-transform:uppercase; color:var(--navy); white-space:nowrap;}
.brand-lockup.is-logo-missing .brand-logo{display:none;}
.brand-lockup.is-logo-missing .brand-fallback{display:inline-block;}
.brand-divider{color:var(--hairline-color); font-family:var(--font-body); font-weight:300; font-size:1.3rem; line-height:1; user-select:none;}
.sub-brand{font-family:var(--font-head); font-weight:700; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--teal); white-space:nowrap;}

/* Desktop: panel wrappers are transparent to layout */
.nav-panel,.nav-panel-inner{display:contents;}
.nav-links{display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0;}
.nav-links a{
  position:relative; display:inline-block; padding:6px 0; white-space:nowrap; text-decoration:none;
  font-family:var(--font-body); font-weight:400; font-size:.92rem; color:var(--navy); transition:color .2s ease;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--teal);
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease-reveal);
}
.nav-links a:hover,.nav-links a.is-current{color:var(--teal);}
.nav-links a:hover::after,.nav-links a.is-current::after{transform:scaleX(1);}
.nav-links .nav-drawer-actions{display:none;}
.nav-actions{display:flex; align-items:center; gap:20px; flex-shrink:0;}
/* Understated member entry, left of the primary CTA */
.nav-signin{font-family:var(--font-body); font-weight:400; font-size:13px; line-height:1.2; color:var(--navy-hover); text-decoration:none; white-space:nowrap; transition:color .2s ease;}
.nav-signin:hover,.nav-signin:focus-visible{color:var(--teal);}
.nav-links .nav-drawer-signin{display:none;}
.nav-toggle{display:none; background:none; border:var(--hairline) solid transparent; padding:8px; margin:-8px; cursor:pointer; color:var(--navy); border-radius:var(--radius-xs);}
.nav-toggle svg{width:24px; height:24px; display:block;}
.nav-scrim{position:fixed; inset:0; top:var(--header-h); background:rgba(var(--navy-rgb),.28); z-index:90;}

/* ---------- 07 Hero ---------- */
.hero{padding-block:clamp(4.5rem, 8vw, 7.5rem) clamp(3rem, 6vw, 5rem); border-top:none;}
.brk-responsive{display:inline;}
.hero h1{max-width:22ch; font-size:clamp(2.4rem, 4.8vw, 4.2rem); color:#fff;}
.hero .subhead{font-size:1.25rem; line-height:1.55; max-width:680px; margin-bottom:40px; color:var(--teal-on-dark);}
.hero-ctas{display:flex; align-items:center; gap:28px; flex-wrap:wrap;}

/* ---------- 07b Fact strip: executive scan (#glance) ----------
   Six hairline cells with mono index tags (01 // Cohort ... 06 // Governance).
   3 x 2 on desktop, one column below 768px. */
.section-facts{padding-block:clamp(2.5rem, 5vw, 4rem);}
.facts{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  border-top:var(--hairline) solid var(--hairline-color); border-bottom:var(--hairline) solid var(--hairline-color);
}
.fact-cell{display:flex; flex-direction:column; gap:6px; padding:2.25rem 2rem; border-right:var(--hairline) solid var(--hairline-color);}
.fact-cell:nth-child(3n){border-right:none;}
.fact-cell:nth-child(n+4){border-top:var(--hairline) solid var(--hairline-color);}
.fact-meta{margin-bottom:4px; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal);}
.fact-title{margin:0; font-family:var(--font-head); font-weight:700; font-size:1.15rem; line-height:1.3; letter-spacing:-.015em; color:var(--navy); font-variant-numeric:tabular-nums;}
.fact-desc{margin:0; font-size:.92rem; line-height:1.45; color:var(--muted);}

/* ---------- 08 Operating architecture: 2 x 2 touchpoints + ledger anchor ---------- */
.cadence-touchpoints-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:2rem; margin-bottom:2.5rem;}
.cadence-card{
  display:flex; flex-direction:column; overflow:hidden; isolation:isolate; /* isolation keeps the zooming photo clipped to the curve in Safari */
  background:#FFFFFF; border:var(--hairline) solid rgba(15,23,42,.08); border-radius:var(--radius-card);
  box-shadow:var(--shadow-ambient);
  transition:transform .2s ease, box-shadow .2s ease;
}
.cadence-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-ambient-hover);}
.cadence-media{position:relative; width:100%; aspect-ratio:16 / 9; overflow:hidden; background:var(--navy); border-bottom:var(--hairline) solid rgba(15,23,42,.07); border-radius:calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px) 0 0;}
.cadence-media picture{display:block; width:100%; height:100%;}
.cadence-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s cubic-bezier(.16,1,.3,1), filter .4s cubic-bezier(.16,1,.3,1);}
.cadence-card:hover .cadence-media img{transform:scale(1.03); filter:contrast(1.04) saturate(1.04);}
/* Card 3 (Catalonia masia): porch, poolside terrace and greenery in frame */
.cadence-card:nth-child(3) .cadence-media img{object-position:center 60%;}
/* Card 4 (Costa Brava offsite): keep the table, the sailboat canvas and the room in frame */
.cadence-card:nth-child(4) .cadence-media img{object-position:center 35%;}
.cadence-content{display:flex; flex-direction:column; flex-grow:1; padding:2rem;}
.cadence-meta{margin-bottom:8px; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal);}
.cadence-title{margin:0 0 12px; font-size:1.3rem; line-height:1.25; letter-spacing:-.015em; color:var(--navy);}
.cadence-desc{flex-grow:1; margin:0 0 24px; font-size:.94rem; line-height:1.6; color:rgba(17,24,39,.78);}
.cadence-footer-tag{margin:0; padding-top:14px; border-top:var(--hairline) solid var(--hairline-color); font-family:var(--font-mono); font-size:.7rem; line-height:1.5; letter-spacing:.02em; text-transform:none; color:var(--muted);}

/* Card 05: full-width ledger anchor on the navy radial */
.ledger-anchor-span{
  background:var(--navy); background-image:var(--navy-radial); color:var(--on-dark);
  border:var(--hairline) solid rgba(255,255,255,.1); border-radius:var(--radius-anchor); overflow:hidden;
  box-shadow:var(--shadow-anchor);
  padding:clamp(2.5rem, 5vw, 4rem);
}
.ledger-span-grid{display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:clamp(2.5rem, 5vw, 4.5rem); align-items:center;}
.meta-eyebrow-dark{margin:0 0 12px; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-on-dark);}
.ledger-span-title{margin:0 0 16px; font-size:clamp(1.6rem, 2.5vw, 2.1rem); line-height:1.15; letter-spacing:-.02em; color:#fff;}
.ledger-span-desc{margin:0 0 28px; font-size:.98rem; line-height:1.65; color:var(--on-dark-muted);}
.ledger-charter-quote{margin:0 0 32px; padding:2px 0 2px 20px; border-left:var(--hairline) solid var(--teal-on-dark);}
.ledger-charter-quote p{margin:0 0 8px; font-family:var(--font-body); font-style:italic; font-size:1rem; line-height:1.6; color:rgba(255,255,255,.88);}
.ledger-charter-quote cite{font-family:var(--font-mono); font-style:normal; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(248,249,250,.6);}
.ledger-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px;}
.btn-link-light,.btn-link-dim{
  padding:0 0 2px; background:none; border:none; border-bottom:var(--hairline) solid rgba(255,255,255,.35); cursor:pointer; text-align:left;
  font-family:var(--font-body); font-weight:700; font-size:.92rem; color:#fff; transition:color .25s var(--ease-reveal), border-color .25s var(--ease-reveal);
}
.btn-link-light:hover{border-bottom-color:#fff;}
.btn-link-dim{color:var(--teal-on-dark); border-bottom-color:rgba(141,183,197,.35);}
.btn-link-dim:hover{color:#fff; border-bottom-color:#fff;}

/* Terminal telemetry (illustrative entries) */
.telemetry-terminal{background:rgba(11,21,35,.85); border:var(--hairline) solid rgba(255,255,255,.1); border-radius:var(--radius-inset); overflow:hidden; padding:1.75rem;}
.terminal-header{display:flex; align-items:center; gap:8px; padding-bottom:16px; margin-bottom:20px; border-bottom:var(--hairline) solid rgba(255,255,255,.1);}
.terminal-dot{flex-shrink:0; width:7px; height:7px; border-radius:50%; background:var(--teal-on-dark);}
.terminal-title{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-on-dark);}
.terminal-entry{padding-bottom:20px; margin-bottom:20px; border-bottom:var(--hairline) solid rgba(255,255,255,.08);}
.terminal-entry:last-of-type{border-bottom:none; padding-bottom:0; margin-bottom:0;}
.terminal-meta{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.04em; text-transform:uppercase;}
.meta-sector{color:rgba(248,249,250,.6);}
.meta-status{flex-shrink:0; white-space:nowrap;}
.status-active{color:var(--teal-on-dark);}
.status-pending{color:#D97706;}
.terminal-commitment{margin:0 0 8px; font-family:var(--font-body); font-weight:700; font-size:.95rem; line-height:1.45; color:#fff;}
.terminal-sub{display:flex; justify-content:space-between; flex-wrap:wrap; gap:4px 16px; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.02em; color:rgba(248,249,250,.6);}
.terminal-footer{margin:20px 0 0; padding-top:14px; border-top:var(--hairline) solid rgba(255,255,255,.08); font-family:var(--font-mono); font-size:.64rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(248,249,250,.42);}

/* Annual membership inclusions summary (all-inclusive seat inventory) */
.membership-inclusions-card{
  margin-top:2rem; padding:clamp(2rem, 4vw, 3rem);
  background:#FFFFFF; border:var(--hairline) solid rgba(15,23,42,.08); border-radius:var(--radius-card);
  box-shadow:0 4px 20px rgba(15,23,42,.04);
}
.inclusions-header{margin-bottom:2rem;}
.inclusions-eyebrow{display:block; margin-bottom:8px; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal);}
.inclusions-title{margin:0 0 8px; font-size:clamp(1.4rem, 2.5vw, 1.85rem); line-height:1.2; letter-spacing:-.018em; color:var(--navy);}
.inclusions-subtitle{margin:0; max-width:640px; font-size:.95rem; line-height:1.55; color:var(--muted);}
.inclusions-grid{
  list-style:none; margin:0; padding:1.5rem 0;
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.5rem 2.5rem;
  border-top:var(--hairline) solid rgba(15,23,42,.06); border-bottom:var(--hairline) solid rgba(15,23,42,.06);
}
.inclusion-item{display:flex; align-items:flex-start; gap:.85rem;}
.inclusion-item.full-width{grid-column:1 / -1;}
.inclusion-check{flex-shrink:0; font-weight:700; font-size:1rem; line-height:1.4; color:var(--teal);}
.inclusion-item strong{display:block; margin-bottom:3px; font-family:var(--font-head); font-weight:700; font-size:.95rem; letter-spacing:-.01em; color:var(--navy);}
.inclusion-item p{margin:0; font-size:.88rem; line-height:1.5; color:var(--muted);}
.inclusions-footer{margin:1.5rem 0 0; text-align:center; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);}

/* The Round Charter drawer (shares .drawer-overlay / .drawer with the application) */
.charter-list{list-style:none; margin:0 0 24px; padding:0;}
.charter-item{display:grid; grid-template-columns:36px 1fr; gap:12px; padding:16px 0; border-top:var(--hairline) solid var(--hairline-color);}
.charter-item:last-child{border-bottom:var(--hairline) solid var(--hairline-color);}
.charter-num{font-family:var(--font-mono); font-size:.78rem; color:var(--teal); padding-top:3px;}
.charter-k{margin:0 0 4px; font-family:var(--font-head); font-weight:700; font-size:.98rem; line-height:1.3; color:var(--navy);}
.charter-item p{margin:0; font-size:.95rem; color:rgba(26,26,26,.82);}
.charter-privacy{
  margin:0 0 24px; padding:14px 0 0; border-top:var(--hairline) solid var(--hairline-color);
  font-size:.84rem; color:var(--muted);
}

/* ---------- 10 Facilitation Engine: split header + connected pipeline ---------- */
.protocol-header{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:clamp(2rem, 5vw, 4.5rem); align-items:end; margin-bottom:4rem;}
.protocol-header h2{margin-bottom:18px;}
.protocol-subhead{margin:0; max-width:640px; font-size:1.05rem; line-height:1.65; color:var(--muted);}
.protocol-stat-box{padding-left:24px; border-left:var(--hairline) solid var(--teal);}
.stat-number{display:block; margin-bottom:10px; font-family:var(--font-head); font-weight:700; font-size:2.2rem; line-height:1; letter-spacing:-.02em; color:var(--navy); font-variant-numeric:tabular-nums;}
.stat-label{display:block; font-size:.92rem; line-height:1.5; color:var(--muted);}

/* One continuous hairline runs across all four steps (gap 0, padding instead),
   with a teal node marking the start of each step. */
.protocol-pipeline{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:0;}
.protocol-step{display:flex; flex-direction:column; padding-right:2rem;}
.protocol-step:last-child{padding-right:0;}
.step-line{position:relative; margin-bottom:14px; padding-top:18px; border-top:var(--hairline) solid rgba(var(--navy-rgb),.16);}
.protocol-step:not(:last-child) .step-line{margin-right:-2rem;}
.step-line::before{content:""; position:absolute; left:0; top:-4px; width:7px; height:7px; background:var(--teal);}
.step-num{font-family:var(--font-mono); font-size:.75rem; letter-spacing:.05em; color:var(--teal);}
.step-category{display:block; margin-bottom:8px; font-family:var(--font-mono); font-weight:400; font-size:.72rem; letter-spacing:.02em; text-transform:none; color:var(--muted);}
.step-title{min-height:3rem; margin:0 0 12px; font-size:1.15rem; line-height:1.3; letter-spacing:-.012em; color:var(--navy);}
.step-desc{flex-grow:1; margin:0 0 24px; font-size:.92rem; line-height:1.55; color:rgba(17,24,39,.75);}
.step-tag{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.02em; text-transform:none; color:var(--teal);}

/* ---------- 11 Standards of fit: bilateral governance compact ---------- */
.fit-grid{
  --fit-gutter:clamp(2rem, 5vw, 4.5rem);
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0;
  padding-bottom:3.5rem; border-bottom:var(--hairline) solid var(--hairline-color);
}
.fit-column{display:flex; flex-direction:column;}
.fit-admit{padding-right:var(--fit-gutter);}
.fit-exclude{padding-left:var(--fit-gutter); border-left:var(--hairline) solid var(--hairline-color);}
.fit-column-header{margin-bottom:20px;}
.fit-status-tag{display:block; margin-bottom:10px; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;}
.tag-admit{color:var(--teal);}
.tag-exclude{color:var(--danger);}
.fit-column h3{margin:0; font-size:clamp(1.4rem, 2.2vw, 1.85rem); line-height:1.2; letter-spacing:-.018em; color:var(--navy);}
.fit-hero-text{margin:0 0 28px; font-family:var(--font-head); font-weight:700; font-size:1.05rem; line-height:1.5; letter-spacing:-.01em; color:var(--navy);}
.fit-specs{list-style:none; margin:0; padding:0; border-top:var(--hairline) solid var(--hairline-color);}
.fit-specs li{padding:16px 0; border-bottom:var(--hairline) solid var(--hairline-color); font-size:.94rem; line-height:1.55; color:var(--muted);}
.fit-specs li:last-child{border-bottom:none; padding-bottom:0;}
.fit-specs li strong{font-weight:700; color:var(--navy);}
.fit-guarantee-strip{--fit-gutter:clamp(2rem, 5vw, 4.5rem); display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0; margin:0; padding-top:2.5rem;}
.guarantee-item:first-child{padding-right:var(--fit-gutter);}
.guarantee-item + .guarantee-item{padding-left:calc(var(--fit-gutter) + 1px);}
.guarantee-item{display:flex; flex-direction:column; gap:6px;}
.guarantee-label{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal);}
.guarantee-value{margin:0; font-size:.94rem; line-height:1.55; color:var(--muted);}

/* ---------- 12 Membership terms (navy) ---------- */
.terms-grid{
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:0; margin:0;
  border-top:var(--hairline) solid var(--hairline-dark); border-bottom:var(--hairline) solid var(--hairline-dark);
}
.term-card{display:flex; flex-direction:column; padding:30px 28px 30px 0;}
.term-card + .term-card{padding-left:28px; border-left:var(--hairline) solid var(--hairline-dark);}
.term-card dt{font-family:var(--font-mono); font-weight:400; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-on-dark); margin-bottom:16px;}
.term-card dd{margin:0;}
.term-value{font-family:var(--font-head); font-weight:700; font-size:2rem; line-height:1.12; letter-spacing:-.02em; color:#fff; font-variant-numeric:tabular-nums; margin-bottom:14px !important;}
.term-value--text{font-size:1.35rem; font-weight:700; line-height:1.25; letter-spacing:-.015em; color:#FFFFFF; overflow-wrap:break-word; hyphens:auto;}
.term-unit{font-family:var(--font-body); font-weight:400; font-size:.95rem; color:var(--on-dark-muted);}
.term-detail{font-size:.92rem; line-height:1.6; color:var(--on-dark-muted); margin-top:auto !important;}
.terms-cta{display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:44px;}
.terms-cta-note{margin:0; font-family:var(--font-mono); font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--teal-on-dark);}

/* ---------- 12b FAQ (mirrors #faq on kuma.partners) ---------- */
.faq-layout{display:grid; grid-template-columns:minmax(260px,320px) 1fr; gap:64px; align-items:start;}
.faq-intro{position:sticky; top:calc(var(--header-h) + 28px);}
.faq-intro .eyebrow{margin-bottom:14px; align-items:flex-start;}
.faq-intro .eyebrow::before{margin-top:.6em;}
.faq-intro h2{margin-bottom:14px;}
.faq-intro-sub{font-size:.95rem; font-weight:400; color:var(--muted); line-height:1.6; margin:0;}
.faq-sidebar-cta{margin-top:2rem; padding-top:1.5rem; border-top:var(--hairline) solid var(--hairline-color);}
.faq-cta-label{margin:0 0 8px; font-size:.95rem; color:var(--muted);}
.faq-cta-link{
  display:inline-block; padding:0; background:none; border:none; cursor:pointer; text-align:left;
  font-family:var(--font-head); font-weight:700; font-size:1.05rem; line-height:1.35; letter-spacing:-.01em; color:var(--navy);
  transition:color .25s var(--ease-reveal);
}
.faq-cta-link:hover{color:var(--teal);}
.faq-cta-link .arrow{display:inline-block; transition:transform .25s var(--ease-reveal);}
.faq-cta-link:hover .arrow{transform:translateX(4px);}

.faq-item{border-top:var(--hairline) solid var(--hairline-color);}
.faq-h{margin:0; font-size:inherit; font-weight:inherit; line-height:inherit; text-wrap:pretty;}
.faq-question{
  width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:22px 4px;
  display:flex; align-items:center; gap:18px;
  font-family:var(--font-head); font-weight:600; font-size:1.02rem; line-height:1.35; color:var(--navy);
  transition:color .2s ease;
}
.faq-question:hover{color:var(--teal);}
.faq-num{flex-shrink:0; width:24px; font-family:var(--font-mono); font-weight:400; font-size:.74rem; color:var(--teal);}
.faq-q-text{flex:1;}
.faq-question .icon{
  flex-shrink:0; width:22px; height:22px; border:var(--hairline) solid var(--teal); border-radius:50%; color:var(--teal);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-body); font-weight:400; font-size:1rem; line-height:1;
  transition:transform .25s ease, background-color .2s ease, color .2s ease;
}
.faq-item.open .faq-question .icon{transform:rotate(45deg); background:var(--teal); color:#fff;}
.faq-answer{display:grid; grid-template-rows:1fr;}
.faq-answer-inner{overflow:hidden; min-height:0;}
.faq-answer p{margin:0; padding:0 4px 24px 46px; font-size:.96rem; max-width:720px; color:rgba(26,26,26,.82);}

.faq-extended{display:grid; grid-template-rows:1fr;}
.faq-extended-inner{overflow:hidden; min-height:0;}
.faq-toggle{
  display:none; align-items:center; justify-content:center; gap:6px; width:100%;
  background:none; border:none; border-top:var(--hairline) solid var(--hairline-color); cursor:pointer;
  font-family:var(--font-body); font-weight:700; font-size:.86rem; color:var(--navy);
  padding:22px 4px 4px; transition:color .2s ease;
}
.faq-toggle:hover{color:var(--teal);}
.faq-toggle .arrow{display:inline-block;}

/* Collapsed states only apply with JS, so every answer stays readable without it.
   visibility keeps collapsed content out of the tab order. */
.js .faq-answer{grid-template-rows:0fr; transition:grid-template-rows .3s ease;}
.js .faq-answer-inner{visibility:hidden; transition:visibility 0s linear .3s;}
.js .faq-item.open .faq-answer{grid-template-rows:1fr;}
.js .faq-item.open .faq-answer-inner{visibility:visible; transition:none;}
.js .faq-extended{grid-template-rows:0fr; transition:grid-template-rows .35s ease;}
.js .faq-extended-inner{visibility:hidden; transition:visibility 0s linear .35s;}
.js .faq-extended.open{grid-template-rows:1fr;}
.js .faq-extended.open .faq-extended-inner{visibility:visible; transition:none;}
.js .faq-toggle{display:flex;}

@media (max-width:860px){
  .faq-layout{grid-template-columns:1fr; gap:0;}
  .faq-intro{position:static; margin-bottom:32px;}
}
@media (max-width:640px){
  .faq-question{gap:12px; font-size:.97rem;}
  .faq-num{display:none;}
  .faq-answer p{padding-left:4px;}
}

/* ---------- 13 Footer ---------- */
footer.site{background:var(--cream); border-top:var(--hairline) solid var(--hairline-color); padding:72px 0 36px;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px;}
.footer-blurb{margin:18px 0 10px; max-width:300px; font-size:.92rem; color:var(--muted);}
.footer-email{color:var(--teal); font-size:.92rem; text-decoration:none;}
.footer-email:hover{text-decoration:underline; text-underline-offset:3px;}
.footer-h{margin:0 0 16px; font-family:var(--font-body); font-weight:700; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--navy);}
.footer-grid ul{list-style:none; margin:0; padding:0;}
.footer-grid li{margin-bottom:10px;}
.footer-grid li a,.footer-link-btn{background:none; border:none; padding:0; cursor:pointer; font-family:var(--font-body); font-size:.92rem; color:var(--ink); text-decoration:none; text-align:left; transition:color .2s ease;}
.footer-grid li a:hover,.footer-link-btn:hover{color:var(--teal);}
.footer-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:8px 24px; padding-top:24px; border-top:var(--hairline) solid var(--hairline-color); font-family:var(--font-mono); font-size:.72rem; color:var(--muted);}
.footer-locations{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; color:var(--muted); white-space:nowrap;}

/* ---------- 14 Application drawer & form fields ---------- */
.drawer-overlay{
  position:fixed; inset:0; z-index:200; display:flex; justify-content:flex-end;
  background:rgba(var(--navy-rgb),.5); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  animation:fadeIn .25s ease;
}
.drawer{
  width:min(520px, 100%); height:100%; display:flex; flex-direction:column;
  background:var(--white); border-left:var(--hairline) solid var(--hairline-color);
  box-shadow:-30px 0 60px -40px rgba(var(--navy-rgb),.5);
  animation:drawerIn 450ms var(--ease-reveal);
}
.drawer:focus{outline:none; box-shadow:-30px 0 60px -40px rgba(var(--navy-rgb),.5);}
.drawer-head{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:28px 32px 20px; border-bottom:var(--hairline) solid var(--hairline-color);}
.drawer-head h2{font-size:1.5rem; margin:0;}
.drawer-body{flex:1; overflow-y:auto; padding:24px 32px 36px;}
.drawer-sub{font-size:.94rem; color:var(--muted); margin-bottom:26px;}
@keyframes drawerIn{from{transform:translateX(40px); opacity:0;}to{transform:none; opacity:1;}}

.field{display:flex; flex-direction:column; gap:6px; margin-bottom:20px; min-width:0;}
/* Field labels in mono caps, matching the site's metadata system */
.field > label,.label-row label{font-family:var(--font-mono); font-weight:700; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--navy);}
.label-row{display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
.label-optional{font-family:var(--font-mono); font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.field input,.field textarea,.field select{
  width:100%; font-family:var(--font-body); font-size:1rem; font-weight:400; color:var(--ink);
  background:var(--white); border:var(--hairline) solid var(--hairline-color); border-radius:var(--radius-xs);
  padding:12px 14px; -webkit-appearance:none; appearance:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field textarea{resize:vertical; min-height:120px; line-height:1.6;}
/* Compact two-line inflection point */
.field textarea#apply-challenge{min-height:64px; max-height:120px; line-height:1.45;}
.field input:hover,.field textarea:hover,.field select:hover{border-color:rgba(var(--navy-rgb),.3);}
.field input:focus,.field textarea:focus,.field select:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(var(--teal-rgb),.14);}
.field input::placeholder,.field textarea::placeholder{color:rgba(26,26,26,.38);}
.field.is-invalid input,.field.is-invalid textarea,.field.is-invalid select{border-color:var(--danger);}
.select-shell{position:relative;}
.select-shell select{padding-right:40px; cursor:pointer;}
.select-chevron{position:absolute; right:14px; top:50%; width:16px; height:16px; transform:translateY(-50%); pointer-events:none; color:var(--navy);}
.field-hint{font-size:.8rem; color:var(--muted);}
.field-error{font-size:.8rem; color:var(--danger);}
.field-error:empty{display:none;}
.field--check{display:grid; grid-template-columns:auto 1fr; gap:4px 12px; align-items:start;}
.field--check input{position:relative; width:18px; height:18px; padding:0; margin-top:3px; border-radius:var(--radius-xs); cursor:pointer;}
.field--check input:checked{background:var(--navy); border-color:var(--navy);}
.field--check input:checked::after{content:""; position:absolute; left:5px; top:1px; width:5px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);}
.field--check label{font-family:var(--font-body); text-transform:none; letter-spacing:0; font-weight:400; font-size:.88rem; color:var(--muted); line-height:1.5;}
.field--check label a{color:var(--teal);}
.field--check .field-error{grid-column:2;}
.form-status{margin:10px 0 0; font-size:.88rem; color:var(--muted);}
.form-status:empty{display:none;}
.form-status.is-error{color:var(--danger);}
.form-success{text-align:center; padding:48px 12px; color:var(--teal);}
.form-success h3{margin-top:16px;}
.form-success p{margin:0; color:var(--muted);}
.form-success:focus{outline:none;}

/* Privacy line under the candidate review submit button */
.form-privacy{margin:14px 0 0; font-size:.78rem; line-height:1.5; color:var(--muted); text-align:center;}

/* ---------- 15 Shared close button, keyframes & toast ----------
   (The member ledger has its own page: see section 19.) */
.modal-close{
  flex-shrink:0; width:40px; height:40px; border-radius:var(--radius-xs);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  background:none; border:var(--hairline) solid transparent; color:var(--navy);
}
.modal-close:hover{background:var(--cream); border-color:var(--hairline-color);}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes modalIn{from{opacity:0; transform:translateY(24px);}to{opacity:1; transform:none;}}

.toast{
  position:fixed; left:50%; bottom:28px; z-index:320; transform:translateX(-50%); max-width:calc(100vw - 32px);
  background:var(--navy); color:#fff; padding:12px 20px; border-radius:var(--radius-md); font-size:.9rem;
  box-shadow:0 20px 40px -20px rgba(var(--navy-rgb),.6); animation:modalIn .35s var(--ease-reveal);
}

/* ---------- 16 Motion: scroll reveal & stagger ----------
   Hidden states only apply once JS has tagged <html class="js">,
   so content stays visible without JavaScript. */
.js .reveal-on-scroll{
  opacity:0; transform:translateY(24px);
  transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal);
}
.js .reveal-on-scroll.is-visible{opacity:1; transform:translateY(0);}

.js .reveal-stagger > *{
  opacity:0; transform:translateY(24px);
  transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal);
}
.js .reveal-stagger.is-visible > *{opacity:1; transform:translateY(0);}
.js .reveal-stagger > *:nth-child(1){transition-delay:0ms;}
.js .reveal-stagger > *:nth-child(2){transition-delay:90ms;}
.js .reveal-stagger > *:nth-child(3){transition-delay:180ms;}
.js .reveal-stagger > *:nth-child(4){transition-delay:270ms;}
.js .reveal-stagger > *:nth-child(n+5){transition-delay:360ms;}
.js .reveal-stagger.is-settled > *{transition-delay:0ms;}

/* ---------- 17 Responsive ---------- */

/* Navigation collapses into a panel (grid-template-rows 0fr -> 1fr) */
@media (max-width:1100px){
  .nav-toggle{display:inline-flex;}
  .nav-actions{display:none;}
  .nav-panel{
    display:grid; grid-template-rows:0fr;
    position:absolute; top:100%; left:0; right:0; z-index:95;
    background:var(--cream); border-bottom:var(--hairline) solid transparent;
    visibility:hidden;
    transition:grid-template-rows var(--dur-collapse) ease, visibility 0s linear var(--dur-collapse), border-color var(--dur-collapse) ease;
  }
  .nav-panel.is-open{
    grid-template-rows:1fr; visibility:visible; border-bottom-color:var(--hairline-color);
    transition:grid-template-rows var(--dur-collapse) ease, border-color var(--dur-collapse) ease;
  }
  .nav-panel-inner{display:block; min-height:0; overflow:hidden;}
  .nav-links{flex-direction:column; align-items:stretch; gap:0; max-width:var(--max); margin:0 auto; padding:8px var(--gutter) 28px;}
  .nav-links li{border-bottom:var(--hairline) solid var(--hairline-color);}
  .nav-links a{display:block; padding:16px 0; font-size:1.02rem;}
  .nav-links a::after{display:none;}
  .nav-links .nav-drawer-signin{display:block;}
  .nav-links .nav-drawer-actions{display:block; padding-top:20px; border-bottom:none;}

}

/* Tablet */
@media (max-width:1024px){
  .terms-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
  .protocol-pipeline{grid-template-columns:repeat(2, minmax(0,1fr)); row-gap:48px;}
  .protocol-step:nth-child(2n){padding-right:0;}
  .protocol-step:nth-child(2n) .step-line{margin-right:0;}
  .term-card:nth-child(odd){padding-left:0; border-left:none;}
  .term-card:nth-child(n+3){border-top:var(--hairline) solid var(--hairline-dark);}
  .footer-grid{grid-template-columns:1fr 1fr 1fr;}
  .footer-grid > div:first-child{grid-column:1 / -1;}
}

@media (max-width:960px){
  :root{--header-h:66px; --gutter:24px; --section-y:80px;}
  h1{font-size:2.55rem;}
  h2{font-size:1.8rem;}
  .hero{padding:88px 0 80px;}
  .ledger-span-grid{grid-template-columns:1fr;}
  .cadence-content{padding:1.75rem 1.5rem;}

}

@media (max-width:640px){
  :root{--gutter:16px; --section-y:64px;}
  body{font-size:16px;}
  h1{font-size:2.05rem;}
  .brk-responsive{display:none;}
  .btn{white-space:normal; text-align:center;}
  .hero{padding:64px 0 60px;}
  .hero .subhead{font-size:1.1rem;}
  .hero-ctas{flex-direction:column; align-items:flex-start; gap:22px;}
  .badge-pill{font-size:.66rem; letter-spacing:.06em; line-height:1.5; align-items:flex-start;}
  .badge-pill::before{margin-top:.75em; width:14px;}
  .brand-logo{height:21px;}
  .brand-lockup{gap:9px;}
  .brand-divider{font-size:1.05rem;}
  .sub-brand{font-size:.66rem; letter-spacing:.14em;}
  .section-head{margin-bottom:40px;}
  .terms-grid{grid-template-columns:1fr;}
  .terms-cta{flex-direction:column; align-items:stretch; text-align:center;}
  .footer-grid{grid-template-columns:1fr 1fr;}

  .drawer-head{padding:20px 20px 16px;}
  .drawer-body{padding:20px 20px 28px;}

}

/* ---------- 17b Mobile refactor (< 768px only) ----------
   Everything below is scoped to max-width:767px so the desktop
   and tablet view (>= 768px) is untouched. Placed after the older
   640px rules so it wins on equal specificity. */
.mobile-swipe-hint{display:none;}

@media (max-width:767px){
  /* One 1.25rem side gutter for every section below 768px */
  :root{--gutter:1.25rem;}

  /* Hero: primary CTA above the fold (side padding comes from the container gutter) */
  .hero{padding-block:92px 40px;}
  #hero-title{font-size:clamp(1.85rem, 7.5vw, 2.25rem); line-height:1.15; margin-bottom:12px;}
  .hero .subhead{font-size:1.02rem; line-height:1.5; margin-bottom:22px;}
  .hero-ctas{flex-direction:column; align-items:stretch; width:100%; gap:12px;}
  .hero-ctas .btn-primary{width:100%; min-height:48px; justify-content:center; text-align:center;}
  .hero-ctas .btn-link{align-self:center; display:inline-flex; align-items:center; min-height:44px; padding-bottom:0; text-align:center;
    border-bottom:none; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; text-decoration-color:rgba(255,255,255,.35);}

  /* Fact strip: one column, hairline between cells */
  .section-facts{padding-block:32px;}
  .facts{grid-template-columns:minmax(0,1fr);}
  .fact-cell,.fact-cell:nth-child(n+4){padding:1.25rem 0; gap:4px; border-right:none; border-top:var(--hairline) solid var(--hairline-color);}
  .fact-cell:first-child{border-top:none;}
  .fact-title{font-size:1.02rem;}
  .fact-desc{font-size:.88rem;}

  /* Cadence: horizontal snap carousel */
  .cadence-touchpoints-grid{
    display:flex; gap:16px; margin-bottom:0; overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
    padding:8px var(--gutter) 24px; margin:0 calc(-1 * var(--gutter));
    scroll-padding:0 var(--gutter); scrollbar-width:none; -ms-overflow-style:none;
  }
  .cadence-touchpoints-grid::-webkit-scrollbar{display:none;}
  :root{--radius-anchor:8px;} /* cards stay 8px and the terminal 6px; the anchor tightens from 10px */
  .cadence-card{flex:0 0 85vw; max-width:340px; scroll-snap-align:center;}
  .cadence-content{padding:1.5rem 1.25rem 1.75rem;}
  .cadence-title{font-size:1.15rem;}
  .mobile-swipe-hint{
    display:block; margin:4px 0 0; text-align:center;
    font-size:.75rem; letter-spacing:.04em; color:#64748B;
    transition:opacity var(--dur-collapse, .3s) ease;
  }
  .mobile-swipe-hint.is-dismissed{opacity:0;}

  /* Card 05 ledger anchor: stacked, terminal status on its own row */
  .ledger-anchor-span{margin-top:28px; padding:2rem 1.25rem;}
  .ledger-span-grid{gap:2rem;}
  .telemetry-terminal{padding:14px 12px;}
  .terminal-meta{flex-direction:column-reverse; align-items:flex-start; gap:6px;}
  .terminal-commitment{font-size:.88rem; line-height:1.4;}
  .terminal-sub{flex-direction:column;}

  /* Inclusions summary: one column */
  .inclusions-grid{grid-template-columns:minmax(0,1fr); gap:1.25rem;}

  /* Facilitation Engine: stacked header, pipeline as a snap carousel */
  .protocol-header{grid-template-columns:minmax(0,1fr); gap:2rem; margin-bottom:2.5rem;}
  .protocol-pipeline{
    display:flex; gap:0; overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
    padding:4px var(--gutter) 8px; margin:0 calc(-1 * var(--gutter));
    scroll-padding:0 var(--gutter); scrollbar-width:none;
  }
  .protocol-pipeline::-webkit-scrollbar{display:none;}
  .protocol-step,.protocol-step:nth-child(2n){flex:0 0 78vw; max-width:300px; padding-right:1.25rem; scroll-snap-align:start;}
  .protocol-step:not(:last-child) .step-line{margin-right:-1.25rem;}
  .step-title{min-height:0;}

  /* Standards of fit: stacked columns, divider turns horizontal */
  .fit-grid,.fit-guarantee-strip{grid-template-columns:minmax(0,1fr);}
  .fit-admit,.guarantee-item:first-child{padding-right:0;}
  .fit-exclude{padding:2.5rem 0 0; margin-top:2.5rem; border-left:none; border-top:var(--hairline) solid var(--hairline-color);}
  .guarantee-item + .guarantee-item{padding:1.5rem 0 0;}

  /* Terms: compact 2 x 2 spec sheet. Gap stays 0 so the hairline dividers
     run unbroken; the 10px breathing room comes from cell padding. */
  .terms-grid{grid-template-columns:repeat(2, minmax(0,1fr)); gap:0;}
  .term-card,.term-card + .term-card{padding:16px 10px 16px 0;}
  .term-card:nth-child(even){padding-left:10px; border-left:var(--hairline) solid var(--hairline-dark);}
  .term-card:nth-child(odd){border-left:none;}
  .term-card:nth-child(n+3){border-top:var(--hairline) solid var(--hairline-dark);}
  .term-value,.term-value--text{font-size:1.1rem; line-height:1.2; margin-bottom:6px !important;}
  .term-detail{font-size:.78rem; line-height:1.35; padding-top:10px;}

  /* Drawers as bottom sheets */
  .drawer-overlay{justify-content:stretch; align-items:flex-end;}
  .drawer{
    width:100%; height:92vh; height:92dvh; max-height:92dvh;
    border-left:none; border-top:var(--hairline) solid var(--hairline-color);
    border-radius:16px 16px 0 0; overflow:hidden;
    box-shadow:0 -24px 60px -30px rgba(var(--navy-rgb),.55);
    animation:sheetIn 420ms var(--ease-reveal);
  }
  .drawer:focus{box-shadow:0 -24px 60px -30px rgba(var(--navy-rgb),.55);}
  .drawer-body{padding-bottom:calc(28px + env(safe-area-inset-bottom)); -webkit-overflow-scrolling:touch; overscroll-behavior:contain;}


  /* Touch targets and iOS zoom prevention */
  .modal-close{width:44px; height:44px;}
  .field input,.field textarea,.field select{font-size:16px;}

  @keyframes sheetIn{from{transform:translateY(100%);}to{transform:translateY(0);}}
}


/* ---------- 17b Standards of fit, refined (25 Oct 2026) ----------
   Each criterion: label on its own line, one short sentence beneath, so
   the column scans as six labels instead of a wall of "Label: sentence".
   The two base items become quiet kuma-style cards. */
.fit-specs li strong{display:block; margin-bottom:3px; font-size:.95rem; letter-spacing:-.005em;}
.fit-guarantee-strip{gap:20px; padding-top:2.75rem;}
.guarantee-item,
.guarantee-item:first-child,
.guarantee-item + .guarantee-item{padding:22px 24px; background:linear-gradient(180deg, #FFFFFF 0%, #F9FAFB 100%); border:var(--hairline) solid rgba(11,21,35,.08); border-radius:8px; box-shadow:0 4px 16px rgba(15,23,42,.04);}
.guarantee-item{gap:8px;}
@media (min-resolution:2dppx), (-webkit-min-device-pixel-ratio:2){
  .guarantee-item,.guarantee-item:first-child,.guarantee-item + .guarantee-item{border-color:transparent; box-shadow:0 0 0 .5px rgba(11,21,35,.16), 0 4px 16px rgba(15,23,42,.04);}
}
@media (max-width:860px){
  .fit-guarantee-strip{gap:14px; padding-top:2rem;}
  .guarantee-item,.guarantee-item:first-child,.guarantee-item + .guarantee-item{padding:18px 20px;}
}

/* ---------- 17c Hero photograph (28 Oct 2026, centred with veil; see note below) ----------
   Desktop: text on clean dark navy on the left; the photograph fills the
   right side and fades in softly, so no face ever sits behind the text.
   Phones: the photograph runs behind the text under a lighter overlay.
   Decorative only: the text carries the meaning. */
.hero{position:relative; isolation:isolate; overflow:hidden; background-image:radial-gradient(ellipse 100% 80% at 20% 0%, #17324B 0%, #0B1523 75%);}
/* Revised 28 Oct: full-width photo, centred, at 60% over the navy with a
   light overall softening; .hero-veil adds a blur that is strongest behind
   the text and gone by the middle; ::after adds fine grain and a bottom
   fade so the generated image reads less clean. */
.hero::before{content:""; position:absolute; inset:-8px; z-index:-3;
  background-image:url('assets/photos/hero-peer-board-wide.jpg');
  background-image:image-set(url('assets/photos/hero-peer-board-wide.webp') type('image/webp'), url('assets/photos/hero-peer-board-wide.jpg') type('image/jpeg'));
  background-size:cover; background-position:50% 42%; background-repeat:no-repeat;
  opacity:.6; filter:blur(1px) saturate(.82);}
.hero-veil{position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:linear-gradient(90deg, rgba(11,21,35,.82) 0%, rgba(11,21,35,.62) 32%, rgba(11,21,35,.18) 62%, rgba(11,21,35,.08) 100%);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  -webkit-mask-image:linear-gradient(90deg, #000 0%, #000 30%, rgba(0,0,0,.45) 48%, transparent 64%);
  mask-image:linear-gradient(90deg, #000 0%, #000 30%, rgba(0,0,0,.45) 48%, transparent 64%);}
.hero::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    linear-gradient(90deg, rgba(11,21,35,.35) 0%, rgba(11,21,35,0) 55%),
    linear-gradient(0deg, rgba(11,21,35,.55) 0%, rgba(11,21,35,0) 38%);
  background-size:160px 160px, auto, auto;
  opacity:1;}
.hero-inner{position:relative;}
@media (max-width:767px){
  .hero-veil{display:none;}
  .hero::before{inset:0; opacity:1; filter:none; -webkit-mask-image:none; mask-image:none;
    background-image:url('assets/photos/hero-peer-board-mobile.jpg');
    background-image:image-set(url('assets/photos/hero-peer-board-mobile.webp') type('image/webp'), url('assets/photos/hero-peer-board-mobile.jpg') type('image/jpeg'));
    background-position:center 55%;}
  .hero::after{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(180deg, rgba(11,21,35,.72) 0%, rgba(11,21,35,.8) 45%, rgba(11,21,35,.9) 100%); background-size:160px 160px, auto;}
}
@media print{
  .hero::before,.hero::after,.hero-veil{display:none;}
}

/* Header button: an outline while the hero's own button is on screen,
   solid navy once the hero has scrolled away. One clear action at a time. */
header.site .nav-cta{transition:background-color .25s ease, color .25s ease, border-color .25s ease;}
header.site:not(.is-past-hero) .nav-cta{background:transparent; color:var(--navy); border-color:rgba(11,21,35,.28);}
header.site:not(.is-past-hero) .nav-cta:hover{background:var(--navy); color:#fff; border-color:var(--navy);}

/* ---------- 19 Member accountability ledger (ledger.html) ----------
   Gateway on the navy radial, dashboard on paper. Radii 6 to 8px only. */
body.ledger-page{background:var(--paper);}
body.ledger-page[data-state="gate"]{background:var(--navy); background-image:var(--navy-radial); min-height:100vh;}

/* Gateway */
.ledger-gate{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:32px 20px;}
.gate-card{width:100%; max-width:440px; padding:40px 36px; color:var(--on-dark); background:#16283D; border:var(--hairline) solid rgba(255,255,255,.1); border-radius:8px; box-shadow:0 24px 48px -24px rgba(0,0,0,.5);}




.gate-eyebrow{margin:0 0 12px; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-on-dark);}
.gate-title{margin:0 0 10px; font-size:1.65rem; line-height:1.2; letter-spacing:-.02em; color:#fff;}
.gate-sub{margin:0 0 28px; font-size:.95rem; line-height:1.55; color:var(--on-dark-muted);}











.gate-error{min-height:1.4em; margin:0 0 14px; font-size:.86rem; line-height:1.45; color:#E8A598;}
.gate-submit{width:100%; padding:13px 18px; border:var(--hairline) solid var(--teal); border-radius:6px; background:var(--teal); color:#fff; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.95rem; transition:background-color .2s ease, border-color .2s ease;}
.gate-submit:hover{background:var(--teal-hover); border-color:var(--teal-hover);}
.gate-submit:disabled{opacity:.7; cursor:progress;}
.gate-foot{margin:24px 0 0; padding-top:18px; border-top:var(--hairline) solid rgba(255,255,255,.08); font-size:.82rem; line-height:1.55; color:rgba(255,255,255,.62);}
.gate-help{margin:10px 0 0; font-size:.82rem; line-height:1.55; color:rgba(255,255,255,.55);}
.gate-help a{color:var(--teal-on-dark);}







/* Dashboard frame */
.ledger-wrap{max-width:var(--max); margin:0 auto; padding:0 var(--gutter);}
.ledger-top{background:rgba(248,249,250,.92); border-bottom:var(--hairline) solid var(--hairline-color);}
.ledger-top-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; height:64px;}
.ledger-brand{display:inline-flex; align-items:center; gap:12px; text-decoration:none;}
.ledger-brand-logo{height:23px; width:auto; display:block;}
.ledger-brand-divider{color:var(--hairline-color); font-size:1.2rem;}
.ledger-brand-sub{font-family:var(--font-head); font-weight:700; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--teal);}



/* Facilitator console strip (admin role only) */
.admin-strip{background:#16283D; color:var(--on-dark); border-bottom:var(--hairline) solid rgba(255,255,255,.1);}
.admin-strip-inner{display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; padding-top:12px; padding-bottom:12px;}

.admin-switch{display:flex; align-items:center; gap:8px;}
.admin-switch span{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.04em; color:rgba(255,255,255,.7);}
.admin-switch select{padding:7px 32px 7px 10px; font-family:var(--font-body); font-size:.86rem; color:#fff; background-color:rgba(255,255,255,.06); border:var(--hairline) solid rgba(255,255,255,.18); border-radius:6px; cursor:pointer; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238DB7C5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; background-size:13px;}
.admin-switch select option{color:var(--navy); background:#fff;}
.admin-links{display:flex; flex-wrap:wrap; gap:8px 20px; margin-left:auto;}
.admin-links a{font-family:var(--font-body); font-weight:700; font-size:.82rem; color:#fff; text-decoration:none; border-bottom:var(--hairline) solid rgba(255,255,255,.3);}
.admin-links a:hover{color:var(--teal-on-dark); border-bottom-color:var(--teal-on-dark);}
.ledger-signout{padding:8px 14px; background:#fff; border:var(--hairline) solid rgba(15,23,42,.14); border-radius:6px; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.85rem; color:var(--navy); transition:border-color .2s ease, color .2s ease;}
.ledger-signout:hover{border-color:var(--teal); color:var(--teal);}

.ledger-hero{padding:48px 0 64px; background:var(--navy); background-image:var(--navy-radial); color:var(--on-dark);}
.ledger-eyebrow{margin:0 0 12px; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-on-dark);}
.ledger-cohort-title{margin:0 0 10px; font-size:clamp(1.8rem, 3vw, 2.4rem); line-height:1.12; letter-spacing:-.02em; color:#fff;}
.ledger-cohort-title:focus,.ledger-cohort-title:focus-visible{outline:none; box-shadow:none;}
.ledger-session{margin:0 0 20px; font-family:var(--font-mono); font-size:.76rem; letter-spacing:.02em; color:rgba(255,255,255,.7);}
.ledger-session:empty{display:none;}


.ledger-sample{margin:12px 0 0; font-size:.84rem; color:#D9B47A;}

/* Quick stats */
.ledger-stats{position:relative; z-index:1; margin-top:-32px;}
.stats-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; margin:0;}
.stat{padding:20px 22px; background:#fff; border:var(--hairline) solid rgba(15,23,42,.08); border-radius:8px; box-shadow:var(--shadow-ambient);}
.stat dt{margin-bottom:6px; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.stat dd{margin:0; font-family:var(--font-head); font-weight:700; font-size:2rem; line-height:1.1; letter-spacing:-.02em; color:var(--navy); font-variant-numeric:tabular-nums;}
.stat-unit{margin-left:2px; font-size:1.1rem; color:var(--muted);}

/* Active ledger */
.ledger-board{margin-top:44px;}
.board-head{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px;}
.board-title{margin:0; font-size:1.3rem; letter-spacing:-.015em; color:var(--navy);}





.board-count{margin:14px 0 12px; font-family:var(--font-mono); font-size:.72rem; color:var(--muted);}
.board-table-shell{background:#fff; border:var(--hairline) solid rgba(15,23,42,.08); border-radius:8px; overflow:hidden; box-shadow:var(--shadow-ambient);}
.board-table{width:100%; border-collapse:collapse; font-size:.93rem;}
.board-table th{padding:12px 18px; text-align:left; white-space:nowrap; background:var(--cream); border-bottom:var(--hairline) solid var(--hairline-color); font-family:var(--font-mono); font-weight:400; font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.board-table td{padding:18px; border-bottom:var(--hairline) solid var(--hairline-color); vertical-align:top;}
.board-table tbody tr:last-child td{border-bottom:none;}
.board-table tbody tr:hover{background:#FBFCFC;}
.cell-member{min-width:170px;}
.cell-member-role{display:block; font-family:var(--font-head); font-weight:700; font-size:.92rem; color:var(--navy);}
.cell-member-context{display:block; margin-top:3px; font-size:.8rem; color:var(--muted);}
.cell-commitment{max-width:420px; line-height:1.55; color:var(--ink);}
.cell-partner{font-size:.88rem; color:var(--ink);}
.cell-date{white-space:nowrap;}
.cell-date-value{display:block; font-family:var(--font-mono); font-size:.82rem; color:var(--ink);}



.status-tag{display:inline-flex; align-items:center; padding:4px 9px; border:var(--hairline) solid transparent; border-radius:6px; white-space:nowrap; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.02em;}
.status-tag--active{color:var(--teal); background:rgba(var(--teal-rgb),.08); border-color:rgba(var(--teal-rgb),.28);}
.status-tag--in-review{color:#8A5F1C; background:#F6F0E4; border-color:rgba(138,95,28,.28);}
.status-tag--executed{color:var(--muted); background:#F1F3F5; border-color:rgba(15,23,42,.12);}
.board-empty{margin:16px 0 0; font-size:.92rem; color:var(--muted);}

/* Session logger */
.ledger-logger{margin-top:44px; margin-bottom:64px;}
.logger-card{padding:28px; background:#fff; border:var(--hairline) solid rgba(15,23,42,.08); border-radius:8px; box-shadow:var(--shadow-ambient);}
.logger-head{margin-bottom:22px;}
.logger-sub{margin:6px 0 0; max-width:640px; font-size:.92rem; line-height:1.55; color:var(--muted);}
.logger-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px 20px;}
.logger-field{display:flex; flex-direction:column; gap:6px; min-width:0;}
.logger-field--wide{grid-column:1 / -1;}
.logger-field label{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--navy);}
.logger-field input,.logger-field select,.logger-field textarea{width:100%; padding:10px 12px; font-family:var(--font-body); font-size:.95rem; color:var(--ink); background:#fff; border:var(--hairline) solid rgba(15,23,42,.16); border-radius:6px; transition:border-color .2s ease, box-shadow .2s ease;}
.logger-field textarea{min-height:64px; resize:vertical; line-height:1.45;}
.logger-field select{appearance:none; -webkit-appearance:none; padding-right:36px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1523' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:14px;}
.logger-field input:focus,.logger-field select:focus,.logger-field textarea:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(var(--teal-rgb),.14);}
.logger-field [aria-invalid="true"]{border-color:var(--danger);}
.logger-actions{display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; margin-top:20px;}
.logger-submit{padding:12px 22px; background:var(--teal); color:#fff; border:var(--hairline) solid var(--teal); border-radius:6px; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.92rem; transition:background-color .2s ease;}
.logger-submit:hover{background:var(--teal-hover); border-color:var(--teal-hover);}
.logger-submit:disabled{opacity:.7; cursor:progress;}
.logger-status{margin:0; font-size:.88rem; color:var(--teal);}
.logger-status.is-error{color:var(--danger);}
.logger-session{margin-top:24px; padding-top:18px; border-top:var(--hairline) solid var(--hairline-color);}
.logger-session-title{margin:0 0 8px; font-family:var(--font-mono); font-weight:400; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.logger-session-list{list-style:none; margin:0; padding:0;}
.logger-session-item{padding:10px 0; border-bottom:var(--hairline) solid var(--hairline-color);}
.logger-session-item:last-child{border-bottom:none;}
.logger-session-commitment{display:block; font-size:.92rem; color:var(--navy);}
.logger-session-meta{display:block; margin-top:3px; font-family:var(--font-mono); font-size:.7rem; color:var(--muted);}

.ledger-foot{border-top:var(--hairline) solid var(--hairline-color); padding:24px 0 40px;}
.ledger-foot-inner{display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 24px; font-family:var(--font-mono); font-size:.72rem; color:var(--muted);}
.ledger-back{font-family:var(--font-body); font-weight:700; font-size:.88rem; color:var(--navy); text-decoration:none;}
.ledger-back:hover{color:var(--teal);}

/* Gateway (Netlify Identity widget opens from the button) */
.gate-overline{margin:0 0 28px; font-family:var(--font-head); font-weight:700; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#fff;}
.gate-help{margin:10px 0 0; font-size:.82rem; line-height:1.55; color:rgba(255,255,255,.55);}
.gate-help a{color:var(--teal-on-dark);}

/* Top utility bar */
.ledger-utility{display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:10px 14px; min-width:0;}
.cohort-pill select{padding:7px 32px 7px 12px; font-family:var(--font-body); font-weight:700; font-size:.84rem; color:var(--navy); background-color:#fff; border:var(--hairline) solid rgba(15,23,42,.16); border-radius:6px; cursor:pointer; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1523' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; background-size:13px;}
.cohort-pill select:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(var(--teal-rgb),.14);}
.cohort-pill.is-static select{padding-right:12px; background-image:none; cursor:default; opacity:1; color:var(--navy); background-color:var(--cream);}
.chatham-tag{display:inline-flex; align-items:center; gap:7px; padding:6px 10px; font-family:var(--font-mono); font-size:.7rem; color:var(--teal); background:rgba(var(--teal-rgb),.07); border:var(--hairline) solid rgba(var(--teal-rgb),.24); border-radius:6px; white-space:nowrap;}
.chatham-dot{width:6px; height:6px; border-radius:50%; background:currentColor;}
.ledger-account-email{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:220px; font-family:var(--font-mono); font-size:.74rem; color:var(--muted);}

/* Facilitator admin strip */
.admin-badge{display:inline-flex; align-items:center; padding:5px 10px; font-family:var(--font-mono); font-size:.7rem; color:#0B1523; background:var(--teal-on-dark); border-radius:6px;}
.admin-hint{margin:0; font-size:.8rem; color:rgba(255,255,255,.7);}

/* Notices */
.ledger-notice{margin:12px 0 0; font-size:.86rem; color:#D9B47A;}
.admin-save{min-height:1.3em; margin:12px 0 0; font-family:var(--font-mono); font-size:.74rem; color:var(--teal);}
.admin-save.is-error{color:var(--danger);}

/* Filter pills */
.filter-pills{display:flex; flex-wrap:wrap; gap:8px;}
.filter-pill{padding:7px 14px; font-family:var(--font-body); font-weight:700; font-size:.84rem; color:var(--navy); background:#fff; border:var(--hairline) solid rgba(15,23,42,.14); border-radius:6px; cursor:pointer; transition:background-color .2s ease, border-color .2s ease, color .2s ease;}
.filter-pill:hover{border-color:var(--teal); color:var(--teal);}
.filter-pill.is-active{background:var(--navy); border-color:var(--navy); color:#fff;}

/* Countdown badge and admin status control */
.countdown-badge{display:inline-flex; margin-top:6px; padding:2px 7px; font-family:var(--font-mono); font-size:.68rem; color:var(--teal); background:rgba(var(--teal-rgb),.07); border:var(--hairline) solid rgba(var(--teal-rgb),.22); border-radius:6px; white-space:nowrap;}
.countdown-badge.is-soon{color:#8A5F1C; background:#F6F0E4; border-color:rgba(138,95,28,.28);}
.countdown-badge.is-overdue{color:var(--danger); background:#FBEFED; border-color:rgba(155,59,46,.28);}
.status-select{padding:5px 28px 5px 9px; font-family:var(--font-mono); font-size:.72rem; border:var(--hairline) solid transparent; border-radius:6px; cursor:pointer; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6D7C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 8px center; background-size:12px;}
.status-select--active{color:var(--teal); background-color:rgba(var(--teal-rgb),.08); border-color:rgba(var(--teal-rgb),.28);}
.status-select--in-review{color:#8A5F1C; background-color:#F6F0E4; border-color:rgba(138,95,28,.28);}
.status-select--executed{color:var(--muted); background-color:#F1F3F5; border-color:rgba(15,23,42,.12);}
.status-select:disabled{opacity:.6; cursor:progress;}

/* Ledger schema 2: name and role, progress, cost of inaction, exposure */
.stats-grid--four{grid-template-columns:repeat(4, minmax(0,1fr));}
.stat--exposure dd{font-size:1.65rem;}
.cell-member-name{display:block; font-family:var(--font-head); font-weight:700; font-size:.92rem; color:var(--navy);}
.commitment-stack{display:grid; gap:8px;}
.commitment-text{font-weight:600; color:var(--ink);}
.inaction-callout{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; font-size:.82rem; line-height:1.5; color:var(--muted);}
.exposure-tag{display:inline-flex; align-items:center; padding:2px 7px; font-family:var(--font-mono); font-size:.7rem; color:var(--navy); background:var(--cream); border:var(--hairline) solid rgba(15,23,42,.12); border-radius:6px; white-space:nowrap; font-variant-numeric:tabular-nums;}
.inaction-text{flex:1 1 200px; min-width:0;}

.progress-tag{display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border:var(--hairline) solid transparent; border-radius:6px; white-space:nowrap; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.02em;}
.progress-tag--not-started{color:var(--muted); background:transparent; border-color:rgba(15,23,42,.15);}
.progress-tag--50{color:#8A5F1C; background:#F6F0E4; border-color:rgba(138,95,28,.28);}
.progress-tag--75{color:#fff; background:#1D6F8A; border-color:#1D6F8A;}
.progress-tag--complete{color:#fff; background:#475569; border-color:#475569;}
.progress-check{font-weight:700; line-height:1;}
.progress-select{padding:5px 28px 5px 9px; font-family:var(--font-mono); font-size:.72rem; border:var(--hairline) solid transparent; border-radius:6px; cursor:pointer; appearance:none; -webkit-appearance:none; background-repeat:no-repeat; background-position:right 8px center; background-size:11px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6D7C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");}
.progress-select--not-started{color:var(--muted); background-color:#fff; border-color:rgba(15,23,42,.15);}
.progress-select--50{color:#8A5F1C; background-color:#F6F0E4; border-color:rgba(138,95,28,.28);}
.progress-select--75{color:#fff; background-color:#1D6F8A; border-color:#1D6F8A;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");}
.progress-select--complete{color:#fff; background-color:#475569; border-color:#475569;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");}
.progress-select:focus{outline:none; box-shadow:0 0 0 3px rgba(var(--teal-rgb),.18);}
.progress-select:disabled{opacity:.6; cursor:progress;}
.progress-select option{color:var(--ink); background:#fff;}

.inaction-block{margin:22px 0 0; padding:18px 18px 20px; border:var(--hairline) solid rgba(15,23,42,.12); border-radius:8px; background:var(--cream);}
.inaction-title{padding:0 6px; margin-left:-6px; font-family:var(--font-head); font-weight:700; font-size:.95rem; color:var(--navy);}
.inaction-copy{margin:4px 0 16px; max-width:640px; font-size:.86rem; line-height:1.55; color:var(--muted);}
.currency-input{position:relative;}
.currency-symbol{position:absolute; left:12px; top:50%; transform:translateY(-50%); font-family:var(--font-mono); font-size:.9rem; color:var(--muted); pointer-events:none;}
.logger-field .currency-input input{padding-left:28px; font-variant-numeric:tabular-nums;}
.editor-inaction{margin:4px 0 0; padding:16px 16px 18px; display:grid; gap:14px; border:var(--hairline) solid rgba(255,255,255,.1); border-radius:8px; background:rgba(11,21,35,.45);}
.editor-inaction-title{padding:0 6px; margin-left:-6px; font-family:var(--font-head); font-weight:700; font-size:.92rem; color:#fff;}
.editor-inaction-copy{margin:0; font-size:.82rem; line-height:1.55; color:rgba(255,255,255,.66);}
.currency-input--dark .currency-symbol{color:var(--teal-on-dark);}
.editor-field .currency-input input{padding-left:28px; font-variant-numeric:tabular-nums;}

/* Commitments table proportions (14 Oct 2026)
   Narrative columns (hard call, cost of inaction) take the free width; data
   columns are fixed and compact. Widths include 8px padding each side,
   which gives a 16px gap between columns. */
body.ledger-page .ledger-wrap{max-width:1320px;}
.board-table-shell{overflow-x:auto;}
.board-table{table-layout:fixed; width:100%; min-width:1040px;}
body:not(.is-admin) .board-table{min-width:965px;}
.board-table th,.board-table td{padding:14px 8px; vertical-align:top;}
.board-table th:first-child,.board-table td:first-child{padding-left:18px;}
.board-table th:last-child,.board-table td:last-child{padding-right:18px;}
.board-table th{white-space:normal; vertical-align:bottom; line-height:1.35;}
.col-member{width:120px;}
.col-hard-call{width:27%;}
body:not(.is-admin) .col-hard-call{width:31%;}
.col-impact{width:95px;}
.col-inaction{width:auto;}
.col-partner{width:95px;}
.col-date{width:105px;}
.col-progress{width:115px;}
.col-actions{width:85px;}
body:not(.is-admin) .col-actions{width:0;}
body:not(.is-admin) .board-table th:nth-last-child(2),
body:not(.is-admin) .board-table td.cell-progress{padding-right:18px;}

.cell-member{min-width:0; max-width:none;}
.cell-member-name{font-weight:600; overflow-wrap:anywhere;}
.cell-member-context{font-size:.78rem; line-height:1.4; overflow-wrap:anywhere;}
.cell-commitment{min-width:0; max-width:none;}
.commitment-text{font-size:.92rem; line-height:1.5;}
.cell-exposure{white-space:nowrap;}
.exposure-figure{display:inline-flex; align-items:center; padding:3px 7px; font-family:var(--font-mono); font-size:.72rem; color:var(--navy); background:var(--cream); border:var(--hairline) solid rgba(15,23,42,.12); border-radius:6px; font-variant-numeric:tabular-nums;}
.cell-inaction{min-width:0; max-width:none; font-size:.84rem; line-height:1.5; color:var(--muted);}
.cell-inaction.is-empty .inaction-text{font-style:italic; opacity:.7;}
.cell-partner{font-size:.86rem; overflow-wrap:anywhere;}
.cell-date{white-space:normal;}
.cell-date .cell-date-value{display:block; white-space:nowrap;}
.cell-date .countdown-badge{margin-top:6px;}

/* Compact progress pill */
.cell-progress .progress-select{width:100%; max-width:100%; padding:4px 20px 4px 7px; font-family:var(--font-body); font-size:.74rem; font-weight:600; line-height:1.3; background-position:right 6px center; background-size:10px; border-radius:6px; text-overflow:ellipsis;}
.cell-progress .progress-tag{max-width:100%; padding:3px 7px; font-size:.68rem; white-space:normal;}
.progress-select--not-started{border-color:rgba(11,21,35,.22);}

/* Actions: tight vertical stack */
.cell-actions{white-space:normal;}
.cell-actions .row-action{display:block; width:100%; margin:0 0 6px; padding:4px 0; text-align:center; font-size:.74rem;}

/* Three-line clamp with a quiet more / less toggle */
.clamp-text{display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.clamp-text.expanded{display:block; -webkit-line-clamp:unset; line-clamp:none; overflow:visible;}
.text-toggle-btn{display:inline-block; margin-top:4px; padding:0; border:none; background:none; cursor:pointer; font-family:var(--font-body); font-size:.74rem; font-weight:600; color:var(--teal); text-decoration:underline; text-underline-offset:2px; text-decoration-color:rgba(var(--teal-rgb),.35);}
.text-toggle-btn:hover{color:var(--navy); text-decoration-color:currentColor;}
.text-toggle-btn:focus-visible{outline:2px solid var(--teal); outline-offset:2px; border-radius:6px;}

/* Restricted cohort access (member chose a cohort outside their assignment) */
body.is-restricted .ledger-stats,
body.is-restricted .ledger-board,
body.is-restricted .ledger-logger{display:none;}
.restricted-wrap{position:relative; z-index:1; margin-top:-36px; margin-bottom:96px;}
.restricted-card{max-width:620px; padding:32px 32px 30px; background:#16283D; color:#fff; border:var(--hairline) solid rgba(255,255,255,.1); border-radius:8px; box-shadow:var(--shadow-ambient);}
.restricted-eyebrow{margin:0 0 10px; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-on-dark);}
.restricted-title{margin:0 0 10px; font-size:1.35rem; line-height:1.25; color:#fff;}
.restricted-title:focus,.restricted-title:focus-visible{outline:none; box-shadow:none;}
.restricted-copy{margin:0 0 22px; font-size:.95rem; line-height:1.6; color:rgba(255,255,255,.75);}
.restricted-return{min-height:44px; padding:11px 20px; border:var(--hairline) solid var(--teal); border-radius:6px; background:var(--teal); color:#fff; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.92rem; transition:background-color .2s ease, border-color .2s ease;}
.restricted-return:hover{background:var(--teal-hover); border-color:var(--teal-hover);}
.restricted-return:focus-visible{outline:2px solid var(--teal-on-dark); outline-offset:3px;}

.ledger-build{font-family:var(--font-mono); font-size:.66rem; color:var(--muted); opacity:.75;}

/* Facilitator editor: add, edit and delete commitments (admin only) */
.admin-col{display:none;}
body.is-admin .admin-col{display:table-cell;}
.admin-add{padding:7px 14px; border:var(--hairline) solid var(--teal); border-radius:6px; background:var(--teal); color:#fff; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.82rem; transition:background-color .2s ease, border-color .2s ease;}
.admin-add:hover{background:var(--teal-hover); border-color:var(--teal-hover);}
.admin-add:focus-visible{outline:2px solid var(--teal-on-dark); outline-offset:3px;}
.admin-banner{margin:0 0 14px; padding:10px 14px; font-size:.86rem; line-height:1.45; color:var(--teal); background:rgba(var(--teal-rgb),.07); border:var(--hairline) solid rgba(var(--teal-rgb),.24); border-radius:6px;}
.admin-banner.is-error{color:#9A3412; background:rgba(217,119,6,.08); border-color:rgba(217,119,6,.3);}
.cell-actions{white-space:nowrap;}
.row-action{display:inline-block; margin:0 6px 6px 0; padding:5px 10px; border:var(--hairline) solid rgba(15,23,42,.16); border-radius:6px; background:#fff; color:var(--navy); cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.76rem; transition:border-color .2s ease, color .2s ease;}
.row-action:hover{border-color:var(--teal); color:var(--teal);}
.row-action--danger:hover{border-color:#B45309; color:#B45309;}
.row-action:focus-visible{outline:2px solid var(--teal); outline-offset:2px;}

body.editor-open{overflow:hidden;}
.editor-overlay{position:fixed; inset:0; z-index:90; background:rgba(11,21,35,.72); opacity:0; transition:opacity .25s ease;}
.editor-overlay.is-open{opacity:1;}
.editor-drawer{position:fixed; top:0; right:0; bottom:0; z-index:91; width:min(460px,100%); display:flex; flex-direction:column; background:#16283D; color:#fff; border-left:var(--hairline) solid rgba(255,255,255,.1); border-radius:8px 0 0 8px; box-shadow:-24px 0 48px -24px rgba(0,0,0,.5); transform:translateX(100%); transition:transform .35s cubic-bezier(.16,1,.3,1);}
.editor-drawer.is-open{transform:translateX(0);}
.editor-form{display:flex; flex-direction:column; height:100%;}
.editor-head{padding:28px 28px 18px; border-bottom:var(--hairline) solid rgba(255,255,255,.08);}
.editor-eyebrow{margin:0 0 10px; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-on-dark);}
.editor-title{margin:0; font-size:1.35rem; line-height:1.25; letter-spacing:-.01em; color:#fff;}
.editor-cohort{margin:6px 0 0; font-size:.86rem; color:rgba(255,255,255,.62);}
.editor-body{flex:1; overflow-y:auto; display:grid; align-content:start; gap:18px; padding:22px 28px;}
.editor-row{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px;}
.editor-field{display:grid; gap:7px; position:relative;}
.editor-field label{font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.62);}
.editor-field input,.editor-field select,.editor-field textarea{width:100%; min-height:44px; padding:10px 13px; border:var(--hairline) solid rgba(255,255,255,.16); border-radius:6px; background-color:#0B1523; color:#fff; font-family:var(--font-body); font-size:.95rem; line-height:1.45; color-scheme:dark; transition:border-color .2s ease, box-shadow .2s ease;}
.editor-field textarea{resize:vertical; min-height:104px;}
.editor-field select{appearance:none; -webkit-appearance:none; padding-right:36px; cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238DB7C5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center;}
.editor-field select option{background:#0B1523; color:#fff;}
.editor-field input::placeholder,.editor-field textarea::placeholder{color:rgba(255,255,255,.34);}
.editor-field input:focus,.editor-field select:focus,.editor-field textarea:focus{outline:none; border-color:var(--teal-on-dark); box-shadow:0 0 0 3px rgba(141,183,197,.2);}
.editor-field [aria-invalid="true"]{border-color:#E8A598;}
.editor-count{justify-self:end; font-family:var(--font-mono); font-size:.66rem; color:rgba(255,255,255,.45);}
.editor-error{min-height:1.3em; margin:0; font-size:.86rem; line-height:1.45; color:#E8A598;}
.editor-actions{display:flex; align-items:center; gap:14px; padding:18px 28px 24px; border-top:var(--hairline) solid rgba(255,255,255,.08);}
.editor-save,.confirm-delete{min-height:44px; padding:11px 20px; border:var(--hairline) solid var(--teal); border-radius:6px; background:var(--teal); color:#fff; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.92rem; transition:background-color .2s ease, border-color .2s ease;}
.editor-save:hover{background:var(--teal-hover); border-color:var(--teal-hover);}
.confirm-delete{background:#B45309; border-color:#B45309;}
.confirm-delete:hover{background:#92400E; border-color:#92400E;}
.editor-save:disabled,.confirm-delete:disabled{opacity:.7; cursor:default;}
.editor-cancel{padding:8px 4px; border:none; background:none; color:rgba(255,255,255,.72); cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.9rem; border-radius:6px;}
.editor-cancel:hover{color:#fff;}
.editor-save:focus-visible,.confirm-delete:focus-visible,.editor-cancel:focus-visible{outline:2px solid var(--teal-on-dark); outline-offset:3px;}
.confirm-dialog{position:fixed; top:50%; left:50%; z-index:91; width:min(440px,calc(100% - 32px)); padding:26px 26px 4px; background:#16283D; color:#fff; border:var(--hairline) solid rgba(255,255,255,.1); border-radius:8px; box-shadow:0 24px 48px -24px rgba(0,0,0,.5); transform:translate(-50%,-48%); opacity:0; transition:opacity .2s ease, transform .25s cubic-bezier(.16,1,.3,1);}
.confirm-dialog.is-open{opacity:1; transform:translate(-50%,-50%);}
.confirm-text{margin:12px 0 10px; font-size:.92rem; line-height:1.55; color:rgba(255,255,255,.78);}
.confirm-dialog .editor-actions{padding:14px 0 22px; border-top:none;}
@media (prefers-reduced-motion:reduce){
  .editor-drawer,.editor-overlay,.confirm-dialog{transition:none;}
}

@media (max-width:767px){
  .ledger-top-inner{height:auto; padding-top:12px; padding-bottom:12px; flex-wrap:wrap;}
  .ledger-utility{justify-content:flex-start; width:100%;}
  .ledger-account-email{max-width:160px;}
  .gate-card{padding:32px 22px;}
  .ledger-account-email{display:none;}
  .admin-links{margin-left:0;}
  .ledger-hero{padding:36px 0 56px;}
  .stats-grid{gap:8px;}
  .stat{padding:14px 12px;}
  .stat dt{font-size:.58rem; letter-spacing:.04em;}
  .stat dd{font-size:1.5rem;}
  .board-table thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}
  .board-table,.board-table tbody,.board-table tr,.board-table td{display:block; width:100%;}
  .board-table tr{padding:16px; border-bottom:var(--hairline) solid var(--hairline-color);}
  .board-table tbody tr:last-child{border-bottom:none;}
  .board-table td{display:grid; grid-template-columns:110px minmax(0,1fr); gap:2px 10px; padding:5px 0; border:none;}
  .board-table td::before{content:attr(data-label); padding-top:2px; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.04em; text-transform:uppercase; color:var(--muted);}
  .board-table td > *{min-width:0;}
  .cell-member{min-width:0;}
  .cell-member-role,.cell-member-name,.cell-member-context,.cell-date-value,.countdown-badge{grid-column:2;}
  .cell-date{white-space:normal;}
  .status-tag,.status-select,.countdown-badge,.progress-tag,.progress-select{justify-self:start;}
  .stats-grid--four{grid-template-columns:repeat(2, minmax(0,1fr));}
  .stat--exposure dd{font-size:1.3rem;}
  .inaction-block{padding:14px 14px 16px;}
  .logger-field .currency-input input{font-size:16px;}
  .board-table,body.is-admin .board-table,body:not(.is-admin) .board-table{min-width:0; table-layout:auto;}
  .board-table colgroup{display:none;}
  .board-table th:first-child,.board-table td:first-child,.board-table th:last-child,.board-table td:last-child{padding-left:0; padding-right:0;}
  .board-table td{padding:5px 0;}
  .cell-progress .progress-select{width:auto;}
  .board-table td.cell-commitment,.board-table td.cell-inaction{align-items:start;}
  .text-toggle-btn{grid-column:2; justify-self:start;}
  .board-table-shell{overflow-x:visible;}
  .cell-commitment,.cell-inaction{min-width:0; max-width:none;}
  .exposure-figure{justify-self:start;}
  .restricted-wrap{margin-top:-28px; margin-bottom:64px;}
  .restricted-card{padding:24px 20px;}
  .restricted-return{width:100%;}
  .cell-actions{width:auto;}
  .cell-member{max-width:none;}
  .cell-actions .row-action{display:inline-block; width:auto; margin:0; padding:6px 14px; font-size:.8rem; min-height:36px;}
  .logger-card{padding:22px 18px;}
  .logger-grid{grid-template-columns:minmax(0,1fr);}
  .logger-field input,.logger-field select,.logger-field textarea{font-size:16px;}
  .logger-submit{width:100%;}
  body.is-admin .admin-col{display:flex;}
  .board-table td.cell-actions{display:flex; flex-wrap:wrap; gap:8px; padding-top:10px;}
  .board-table td.cell-actions::before{display:none;}
  .row-action{margin:0; min-height:36px;}
  .editor-drawer{width:calc(100% - 12px);}
  .editor-head{padding:22px 18px 14px;}
  .editor-body{padding:18px;}
  .editor-actions{padding:14px 18px 20px;}
  .editor-row{grid-template-columns:minmax(0,1fr);}
  .editor-field input,.editor-field select,.editor-field textarea{font-size:16px;}
}

/* ---------- 19b Ledger views: hard calls and session asks (20 Oct 2026) ----------
   A segmented switch under the cohort title flips between two views of the
   same cohort. Obsidian on the navy hero, teal accents, radii 6 to 8px. */
.view-switch{display:inline-flex; flex-wrap:wrap; gap:4px; margin:4px 0 0; padding:4px; background:rgba(5,11,20,.55); border:var(--hairline) solid rgba(255,255,255,.12); border-radius:8px; box-shadow:inset 0 1px 0 rgba(255,255,255,.04);}
.view-tab{display:inline-flex; align-items:center; gap:10px; min-height:40px; padding:8px 16px; border:var(--hairline) solid transparent; border-radius:6px; background:transparent; color:rgba(255,255,255,.7); cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.88rem; line-height:1.2; transition:background-color .2s ease, color .2s ease, border-color .2s ease;}
.view-tab:hover{color:#fff; background:rgba(255,255,255,.05);}
.view-tab.is-active{background:#fff; border-color:#fff; color:var(--navy);}
.view-tab:focus-visible{outline:2px solid var(--teal-on-dark); outline-offset:2px;}
.view-tab-count{display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-width:30px; height:22px; padding:0 7px; border-radius:6px; background:rgba(255,255,255,.12); color:#fff; font-family:var(--font-mono); font-weight:400; font-size:.72rem; line-height:1; text-align:center; font-variant-numeric:tabular-nums;}
.view-tab-count:empty{display:none;}
.view-tab.is-active .view-tab-count{background:var(--teal); color:#fff;}
.ledger-hero .ledger-notice{margin-top:16px;}
body.is-restricted .view-switch,
body.is-restricted .ledger-view{display:none;}


/* Cohort exchange: ask cards with peer responses (20 Oct 2026) */
.exchange-sub{margin:6px 0 0; max-width:620px; font-size:.9rem; line-height:1.5; color:var(--muted);}
.exchange-list{list-style:none; margin:0; padding:0; display:grid; gap:14px;}
.ask-card{padding:22px 24px 18px; background:#fff; border:var(--hairline) solid rgba(15,23,42,.08); border-left:3px solid rgba(var(--teal-rgb),.55); border-radius:8px; box-shadow:var(--shadow-ambient);}
.exchange-item--answered .ask-card{border-left-color:var(--teal);}
.exchange-item--connected .ask-card{border-left-color:var(--navy);}
.exchange-item--archived .ask-card{border-left-color:rgba(15,23,42,.18); background:#FBFCFC;}
.ask-card-head{display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:10px 16px;}
.ask-who{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; min-width:0;}
.ask-who-name{font-family:var(--font-head); font-weight:700; font-size:.98rem; color:var(--navy);}
.ask-who-role{font-size:.84rem; color:var(--muted);}
.ask-who-date{font-family:var(--font-mono); font-size:.68rem; color:var(--muted);}
.ask-tags{display:flex; flex-wrap:wrap; align-items:center; gap:6px;}
.ask-card-text{margin:12px 0 0; max-width:880px; font-size:1rem; line-height:1.55; color:var(--ink);}
.ask-card-text:focus{outline:none;}
.exchange-item--archived .ask-card-text{color:var(--muted);}

.ask-cat{display:inline-flex; align-items:center; padding:3px 8px; border:var(--hairline) solid transparent; border-radius:6px; white-space:nowrap; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.02em;}
.ask-cat--contact{color:var(--teal); background:rgba(var(--teal-rgb),.08); border-color:rgba(var(--teal-rgb),.28);}
.ask-cat--question{color:var(--navy); background:#EEF1F5; border-color:rgba(11,21,35,.18);}
.ask-cat--opportunity{color:#8A5F1C; background:#F6F0E4; border-color:rgba(138,95,28,.28);}
.ask-cat--resource{color:#475569; background:#F1F3F5; border-color:rgba(71,85,105,.24);}

.ask-status{display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border:var(--hairline) solid transparent; border-radius:6px; white-space:nowrap; font-family:var(--font-body); font-weight:600; font-size:.74rem; line-height:1.35;}
.ask-status--open{color:var(--teal); background:#fff; border-color:rgba(var(--teal-rgb),.45);}
.ask-status--answered{color:#fff; background:var(--teal); border-color:var(--teal);}
.ask-status--connected{color:#fff; background:var(--navy); border-color:var(--navy);}
.ask-status--archived{color:var(--muted); background:#F1F3F5; border-color:rgba(15,23,42,.12);}

/* Responses thread */
.reply-count{margin:18px 0 8px; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted);}
.reply-list{list-style:none; margin:0; padding:0 0 0 16px; border-left:var(--hairline) solid var(--hairline-color); display:grid; gap:14px;}
.reply{position:relative;}
.reply::before{content:""; position:absolute; left:-20px; top:7px; width:7px; height:7px; border-radius:50%; background:#fff; border:var(--hairline) solid rgba(var(--teal-rgb),.6);}
.reply--connection::before{background:var(--navy); border-color:var(--navy);}
.reply-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px;}
.reply-type{padding:1px 7px; border-radius:6px; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.03em;}
.reply-type--answer{color:var(--teal); background:rgba(var(--teal-rgb),.08);}
.reply-type--connection{color:#fff; background:var(--navy);}
.reply-name{font-weight:700; font-size:.88rem; color:var(--navy);}
.reply-role{font-size:.8rem; color:var(--muted);}
.reply-date{font-family:var(--font-mono); font-size:.66rem; color:var(--muted);}
.reply-text{margin:4px 0 0; max-width:820px; font-size:.92rem; line-height:1.55; color:var(--ink); white-space:pre-line;}
.reply-tools{display:flex; gap:14px; margin-top:4px;}

/* Footer: call to action and facilitator tools */
.ask-card-foot{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; margin-top:16px; padding-top:14px; border-top:var(--hairline) solid var(--hairline-color);}
.reply-cta{min-height:36px; padding:0 16px; border:var(--hairline) solid var(--teal); border-radius:6px; background:var(--teal); color:#fff; cursor:pointer; font-family:var(--font-body); font-weight:700; font-size:.84rem; transition:background-color .2s ease, border-color .2s ease, color .2s ease;}
.reply-cta:hover{background:var(--teal-hover); border-color:var(--teal-hover);}
.reply-cta--quiet{background:#fff; color:var(--teal); border-color:rgba(var(--teal-rgb),.45);}
.reply-cta--quiet:hover{background:rgba(var(--teal-rgb),.07); color:var(--teal); border-color:var(--teal);}
.reply-cta:focus-visible{outline:2px solid var(--teal); outline-offset:2px;}
.ask-archived-note{margin:0; font-size:.84rem; font-style:italic; color:var(--muted);}
.ask-admin{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-left:auto;}
.ask-admin .row-action{margin:0;}
.ask-status-select{height:32px; padding:0 28px 0 10px; font-family:var(--font-body); font-weight:600; font-size:.78rem; color:var(--navy); background-color:#fff; border:var(--hairline) solid rgba(15,23,42,.18); border-radius:6px; cursor:pointer; appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1523' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 8px center; background-size:11px;}
.ask-status-select:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(var(--teal-rgb),.14);}
.ask-status-select:disabled{opacity:.6; cursor:progress;}
.text-action{padding:0; border:none; background:none; cursor:pointer; font-family:var(--font-body); font-weight:600; font-size:.78rem; color:var(--teal); text-decoration:underline; text-underline-offset:2px; text-decoration-color:rgba(var(--teal-rgb),.35);}
.text-action:hover{color:var(--navy); text-decoration-color:currentColor;}
.text-action--danger:hover{color:#B45309;}
.text-action:focus-visible{outline:2px solid var(--teal); outline-offset:2px; border-radius:6px;}

/* Inline response box */
.reply-form{margin-top:14px; padding:18px; background:var(--cream); border:var(--hairline) solid rgba(15,23,42,.1); border-radius:8px;}
.reply-form-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px 20px; margin-bottom:14px;}
.reply-kind{margin:0; padding:0; border:none; display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px;}
.reply-kind legend{width:100%; margin-bottom:6px; padding:0; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--navy);}
.reply-kind-option{position:relative; display:inline-flex;}
.reply-kind-option input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer;}
.reply-kind-option span{display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border:var(--hairline) solid rgba(15,23,42,.16); border-radius:6px; background:#fff; font-weight:700; font-size:.84rem; color:var(--navy); transition:background-color .2s ease, border-color .2s ease, color .2s ease;}
.reply-kind-option input:checked + span{background:var(--navy); border-color:var(--navy); color:#fff;}
.reply-kind-option input:focus-visible + span{outline:2px solid var(--teal); outline-offset:2px;}
.reply-form .logger-field textarea{min-height:84px;}
.reply-form-actions{display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-top:12px;}
.reply-form-actions .logger-submit{padding:10px 18px;}

/* Ask intake: lean three-field card */
.ask-intake .logger-card{border-top:3px solid var(--teal);}
.ask-count{align-self:flex-end; font-family:var(--font-mono); font-size:.66rem; color:var(--muted);}

@media (max-width:767px){
  .view-switch{display:flex; width:100%;}
  .view-tab{flex:1 1 0; justify-content:center; gap:6px; padding:8px 8px; font-size:.8rem; text-align:center;}
  .view-tab-count{min-width:26px; height:20px; padding:0 5px;}
  .ask-card{padding:18px 16px 14px;}
  .ask-card-head{flex-direction:column;}
  .ask-card-text{font-size:.96rem;}
  .reply-list{padding-left:14px;}
  .reply::before{left:-18px;}
  .ask-card-foot{flex-direction:column; align-items:stretch;}
  .reply-cta{width:100%; min-height:44px;}
  .ask-admin{margin-left:0;}
  .reply-form{padding:14px;}
  .reply-form-grid{grid-template-columns:minmax(0,1fr);}
  .reply-form .logger-field input,.reply-form .logger-field textarea{font-size:16px;}
  .reply-form-actions .logger-submit{width:100%;}
}

/* ---------- 19c Ledger header, refined (20 Oct 2026) ----------
   One cohort picker (top bar), quiet status text, account grouped with
   sign out, and a slim single-row facilitator strip. Controls 36px. */
.ledger-top-inner{height:60px;}
.ledger-utility{gap:8px 20px; flex-wrap:nowrap;}
.cohort-pill select{height:36px; padding:0 32px 0 12px; font-size:.86rem;}
.chatham-tag{padding:0; background:none; border:none; font-family:var(--font-body); font-weight:600; font-size:.8rem; letter-spacing:0; color:var(--muted);}
.chatham-dot{color:var(--teal); background:var(--teal); box-shadow:0 0 0 3px rgba(var(--teal-rgb),.15);}
.ledger-account{display:inline-flex; align-items:center; gap:12px; padding-left:20px; border-left:var(--hairline) solid var(--hairline-color);}
.ledger-account-email{font-family:var(--font-body); font-size:.82rem; color:var(--ink);}
.ledger-signout{height:36px; padding:0 14px; font-size:.84rem;}

.admin-strip{background:#0F1E2F; border-bottom:var(--hairline) solid rgba(255,255,255,.08);}
.admin-strip-inner{flex-wrap:nowrap; gap:16px; min-height:52px; padding-top:8px; padding-bottom:8px;}
.admin-badge{gap:7px; padding:4px 10px; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--teal-on-dark); background:rgba(141,183,197,.1); border:var(--hairline) solid rgba(141,183,197,.3); white-space:nowrap;}
.admin-badge::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;}
.admin-hint{flex:1; min-width:0; font-size:.82rem; color:rgba(255,255,255,.6);}
.admin-add{height:36px; padding:0 16px; font-size:.84rem; white-space:nowrap;}

@media (max-width:1024px){
  .chatham-tag{display:none;}
}
@media (max-width:767px){
  .ledger-top-inner{height:auto;}
  .ledger-utility{flex-wrap:wrap; gap:10px;}
  .ledger-account{margin-left:auto; padding-left:0; border-left:none;}
  .admin-strip-inner{flex-wrap:wrap; gap:10px 12px;}
  .admin-hint{display:none;}
  .admin-add{margin-left:auto;}
}

/* ---------- 19d InfoVault and the three-part switch (20 Oct 2026) ---------- */
.view-tab-short{display:none;}

.vault-search input{width:min(320px, 100%); height:40px; padding:0 12px 0 34px; font-family:var(--font-body); font-size:.9rem; color:var(--ink); background:#fff; border:var(--hairline) solid rgba(15,23,42,.16); border-radius:6px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6D7C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:11px center; background-size:15px;}
.vault-search input:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(var(--teal-rgb),.14);}
.vault-filters{margin-top:16px;}

.vault-grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px;}
.vault-card{height:100%; display:flex; flex-direction:column; padding:20px 22px 16px; background:#fff; border:var(--hairline) solid rgba(15,23,42,.08); border-radius:8px; box-shadow:var(--shadow-ambient); transition:border-color .2s ease;}
.vault-card:hover{border-color:rgba(var(--teal-rgb),.35);}
.vault-card-top{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.vault-host{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:var(--font-mono); font-size:.66rem; color:var(--muted);}
.vault-cat{display:inline-flex; align-items:center; padding:3px 8px; border:var(--hairline) solid transparent; border-radius:6px; white-space:nowrap; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.02em;}
.vault-cat--book{color:var(--navy); background:#EEF1F5; border-color:rgba(11,21,35,.18);}
.vault-cat--podcast{color:#8A5F1C; background:#F6F0E4; border-color:rgba(138,95,28,.28);}
.vault-cat--framework{color:var(--teal); background:rgba(var(--teal-rgb),.08); border-color:rgba(var(--teal-rgb),.28);}
.vault-cat--article{color:#475569; background:#F1F3F5; border-color:rgba(71,85,105,.24);}
.vault-cat--tool{color:#fff; background:var(--navy); border-color:var(--navy);}
.vault-title{margin:12px 0 0; font-size:1.06rem; line-height:1.35; letter-spacing:-.01em; color:var(--navy); overflow-wrap:anywhere;}
.vault-link{color:var(--navy); text-decoration:none; background-image:linear-gradient(currentColor, currentColor); background-size:0 1px; background-position:0 100%; background-repeat:no-repeat; transition:color .2s ease, background-size .25s ease;}
.vault-link:hover{color:var(--teal); background-size:100% 1px;}
.vault-link:focus-visible{outline:2px solid var(--teal); outline-offset:3px; border-radius:6px;}
.vault-link-arrow{font-family:var(--font-body); font-size:.9em; color:var(--teal);}
.vault-source{margin:4px 0 0; font-size:.86rem; font-style:italic; color:var(--muted);}
.vault-signal{flex:1; margin:12px 0 0; font-size:.92rem; line-height:1.55; color:var(--ink);}
.vault-signal-label{display:block; margin-bottom:3px; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--teal);}
.vault-card-foot{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 12px; margin-top:14px; padding-top:12px; border-top:var(--hairline) solid var(--hairline-color);}
.vault-by{margin:0; font-size:.8rem; color:var(--muted);}
.vault-by strong{font-weight:700; color:var(--navy);}
.vault-admin{display:flex; gap:8px;}
.vault-admin .row-action{margin:0;}

.vault-kind{margin:0 0 18px; padding:0; border:none; display:flex; flex-wrap:wrap; gap:8px;}
.vault-kind legend{width:100%; margin-bottom:8px; padding:0; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--navy);}
.field-optional{margin-left:6px; font-family:var(--font-body); font-size:.72rem; letter-spacing:0; text-transform:none; color:var(--muted);}

@media (max-width:1100px){
  .view-tab{padding:8px 12px;}
}
@media (max-width:900px){
  .vault-grid{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:767px){
  .view-tab{position:relative;}
  .view-tab-label{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
  .view-tab-short{display:inline;}
  .view-tab{padding:8px 6px; font-size:.82rem;}
  .vault-search{width:100%;}
  .vault-search input{width:100%; font-size:16px;}
  .vault-card{padding:18px 16px 14px;}
  .vault-kind .reply-kind-option span{min-height:44px;}
}

/* ---------- 19e Refinement: hairlines and motion (20 Oct 2026) ----------
   On high-density screens a 1px line is two physical pixels and reads
   heavy. The ledger draws true hairlines there; standard screens keep 1px. */
@media (min-resolution:2dppx), (-webkit-min-device-pixel-ratio:2){
  body.ledger-page{--hairline:.5px;}
}
/* Chrome still rounds half-pixel borders up to 1px, so lines are also
   lighter: they read finer in every browser. :where() keeps specificity
   low, so hover, focus, active and error states still win. */
body.ledger-page{--hairline-color:rgba(15,23,42,.065); --line-soft:rgba(15,23,42,.065); --line-control:rgba(15,23,42,.11);}
:where(body.ledger-page) .stat,
:where(body.ledger-page) .board-table-shell,
:where(body.ledger-page) .logger-card,
:where(body.ledger-page) .vault-card,
:where(body.ledger-page) .reply-form{border-color:var(--line-soft);}
:where(body.ledger-page) .ask-card{border-top-color:var(--line-soft); border-right-color:var(--line-soft); border-bottom-color:var(--line-soft);}
:where(body.ledger-page) .board-table th,
:where(body.ledger-page) .board-table td{border-bottom-color:rgba(15,23,42,.055);}
:where(body.ledger-page) .filter-pill,
:where(body.ledger-page) .row-action,
:where(body.ledger-page) .ledger-signout,
:where(body.ledger-page) .cohort-pill select,
:where(body.ledger-page) .logger-field input,
:where(body.ledger-page) .logger-field select,
:where(body.ledger-page) .logger-field textarea,
:where(body.ledger-page) .vault-search input,
:where(body.ledger-page) .ask-status-select,
:where(body.ledger-page) .reply-kind-option span,
:where(body.ledger-page) .progress-select--not-started,
:where(body.ledger-page) .exposure-figure{border-color:var(--line-control);}
:where(body.ledger-page) .filter-pill.is-active{border-color:var(--navy);}
:where(body.ledger-page) .countdown-badge{border-color:rgba(var(--teal-rgb),.16);}
:where(body.ledger-page) .stat,
:where(body.ledger-page) .board-table-shell,
:where(body.ledger-page) .ask-card,
:where(body.ledger-page) .vault-card,
:where(body.ledger-page) .logger-card{box-shadow:0 1px 2px rgba(15,23,42,.03), 0 8px 24px -12px rgba(15,23,42,.06);}
body.ledger-page .ask-card{border-left-width:2px;}
body.ledger-page .ask-intake .logger-card{border-top-width:2px;}
body.ledger-page .view-tab:focus-visible,
body.ledger-page .filter-pill:focus-visible{outline-width:1.5px;}

/* Scroll reveal: a short, soft ease in; plays once per item. */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .6s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms), transform .75s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms);}
.reveal.is-in{opacity:1; transform:none;}
.ledger-stats .stat.reveal{transform:translateY(10px);}

/* Switching views: the new panel settles in. */
@keyframes ledgerViewIn{from{opacity:0; transform:translateY(6px);}to{opacity:1; transform:none;}}
.ledger-view:not([hidden]){animation:ledgerViewIn .35s cubic-bezier(.16,1,.3,1);}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.is-in{opacity:1; transform:none; transition:none;}
  .ledger-view:not([hidden]){animation:none;}
}

/* Line breaks members type in asks and signals are kept. */
.ask-card-text,.vault-signal{white-space:pre-line;}

/* ---------- 19f Ledger on phones (20 Oct 2026) ----------
   Mobile only; the desktop layout is untouched. Thumb-sized targets
   (44px), 16px text in every field and select (stops iPhone zoom on tap),
   filter pills as one swipeable row, and a full-width editor. */
@media (max-width:767px){
  /* Top bar and facilitator strip: cohort picker and sign out share
     one row at every width */
  .ledger-utility{flex-wrap:nowrap;}
  .cohort-pill{flex:1 1 auto; min-width:0; max-width:240px;}
  .cohort-pill select{width:100%; height:44px; font-size:16px; text-overflow:ellipsis;}
  .ledger-account{flex:0 0 auto;}
  .ledger-signout{height:44px; padding:0 16px;}
  .admin-add{height:44px; padding:0 16px;}

  /* View switch */
  .view-tab{min-height:44px; white-space:nowrap;}

  /* Filters: one row you can swipe, instead of two or three wrapped rows */
  .board-head{flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:12px;}
  .filter-pills{min-width:0;}
  .filter-pills{flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; scrollbar-width:none;
    margin-left:calc(-1 * var(--gutter)); margin-right:calc(-1 * var(--gutter)); padding:2px var(--gutter); scroll-padding:0 var(--gutter);}
  .filter-pills::-webkit-scrollbar{display:none;}
  .filter-pill{flex:0 0 auto; min-height:44px; padding:0 16px; white-space:nowrap;}
  .vault-filters{margin-top:4px;}

  /* Row and card actions */
  .row-action,
  .cell-actions .row-action{min-height:44px; padding:0 18px;}
  .board-table td.cell-actions{gap:10px; padding-top:12px;}
  .cell-progress .progress-select{min-height:44px; padding:8px 30px 8px 12px; font-size:16px; background-position:right 10px center;}
  .ask-status-select{height:44px; padding:0 32px 0 12px; font-size:16px;}
  /* Facilitator controls on an ask: status across, Edit and Delete below */
  .ask-admin{display:grid; grid-template-columns:1fr 1fr; gap:10px; width:100%;}
  .ask-admin .ask-status-select{grid-column:1 / -1; width:100%;}
  .ask-admin .row-action:only-child{grid-column:1 / -1;}
  .vault-admin{gap:10px;}
  .text-action{display:inline-flex; align-items:center; min-height:44px; padding:0 2px; font-size:.86rem;}
  .reply-tools{gap:20px; margin-top:0;}
  .reply-form-actions .text-action{justify-content:center; width:100%;}
  .text-toggle-btn{min-height:32px; padding:6px 0; font-size:.8rem;}
  .reply-kind-option span{min-height:44px; padding:0 16px;}

  /* Fields */
  .vault-search input{height:44px;}
  .logger-field input,.logger-field select{min-height:48px;}

  /* Footer link */
  .ledger-back{display:inline-flex; align-items:center; min-height:44px;}

  /* Editor drawer: full width, square edge, actions always reachable */
  .editor-drawer{width:100%; border-radius:0; border-left:none;}
  .editor-actions{position:sticky; bottom:0; background:#16283D;}
  .editor-save{flex:1;}
  .confirm-dialog .editor-actions{position:static; background:none;}
  .confirm-delete{flex:1;}
}
@media (max-width:360px){
  .view-tab{padding:8px 4px; gap:4px; font-size:.76rem;}
  .view-tab-count{min-width:22px; height:18px; padding:0 4px; font-size:.64rem;}
  .board-table td{grid-template-columns:92px minmax(0,1fr);}
  .ledger-cohort-title{font-size:1.6rem;}
  .stat dd{font-size:1.3rem;}
  .stat--exposure dd{font-size:1.1rem;}
}

/* ---------- 19g Ledger in the kuma.partners system (20 Oct 2026) ----------
   Tokens, surfaces and buttons follow kuma.partners (styles.css, 19 Oct
   2026): chalk #F4F6F8, slate #5F7380, teal on dark #4FB3CF, 8% navy
   hairlines, Apple-style vertical luminance ramps, the ambient radial on
   dark sections, white-to-#F9FAFB cards, navy primary buttons.
   Ledger only; the public page keeps its own styles. */
body.ledger-page{
  --cream:#F4F6F8;
  --muted:#5F7380;
  --teal-on-dark:#4FB3CF;
  --hairline-color:rgba(11,21,35,.08);
  --line-soft:rgba(11,21,35,.08);
  --line-control:rgba(11,21,35,.14);
  --hl:rgba(11,21,35,.1);
  --navy-radial:radial-gradient(ellipse 100% 60% at 50% 0%, #17324B 0%, #0B1523 85%);
  --card-surface:linear-gradient(180deg, #FFFFFF 0%, #F9FAFB 100%);
  --card-sheen:0 4px 16px rgba(15,23,42,.04);
  background:linear-gradient(180deg, #F4F6F8 0%, #EEF2F6 48%, #F8F9FA 100%);
}
body.ledger-page .ledger-top{background:rgba(244,246,248,.9); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);}
body.ledger-page .ledger-hero{background:var(--navy-radial);}
body.ledger-page .admin-strip{background:#0B1523;}

/* Surfaces: white easing to chalk, soft contact shadow */
:where(body.ledger-page) .stat,
:where(body.ledger-page) .logger-card,
:where(body.ledger-page) .ask-card,
:where(body.ledger-page) .vault-card{background:var(--card-surface); box-shadow:var(--card-sheen);}
:where(body.ledger-page) .board-table-shell{background:#fff; box-shadow:var(--card-sheen);}
:where(body.ledger-page) .board-table th{background:#F7F9FA;}
:where(body.ledger-page) .reply-form{background:#F4F6F8;}
:where(body.ledger-page) .vault-card:hover,
:where(body.ledger-page) .ask-card:hover{box-shadow:0 8px 24px rgba(15,23,42,.07);}

/* Primary buttons on light surfaces: kuma navy (teal stays on dark
   surfaces: facilitator strip, drawers, dialogs) */
:where(body.ledger-page) .logger-submit,
:where(body.ledger-page) .reply-cta:not(.reply-cta--quiet){background:var(--navy); border-color:var(--navy); color:#fff;}
:where(body.ledger-page) .logger-submit:hover,
:where(body.ledger-page) .reply-cta:not(.reply-cta--quiet):hover{background:#16283D; border-color:#16283D;}
:where(body.ledger-page) .reply-cta--quiet{color:var(--navy); border-color:var(--line-control);}
:where(body.ledger-page) .reply-cta--quiet:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
:where(body.ledger-page) .ask-intake .logger-card{border-top-color:var(--navy);}

/* True hairlines on high-density screens. Chrome rounds borders below
   1px up to a full point, but draws a half-pixel shadow as one device
   pixel. So the border goes transparent (layout unchanged) and a 0.5px
   shadow draws the line. Hover, focus, active and error states set a
   real border colour with higher specificity and still show. */
@media (min-resolution:2dppx), (-webkit-min-device-pixel-ratio:2){
  :where(body.ledger-page) .stat,
  :where(body.ledger-page) .logger-card,
  :where(body.ledger-page) .vault-card,
  :where(body.ledger-page) .board-table-shell{border-color:transparent; box-shadow:0 0 0 .5px rgba(11,21,35,.16), var(--card-sheen);}
  :where(body.ledger-page) .ask-card{border-top-color:transparent; border-right-color:transparent; border-bottom-color:transparent; box-shadow:0 0 0 .5px rgba(11,21,35,.16), var(--card-sheen);}
  :where(body.ledger-page) .ask-intake .logger-card{border-color:transparent; box-shadow:inset 0 2px 0 var(--navy), 0 0 0 .5px rgba(11,21,35,.16), var(--card-sheen);}
  :where(body.ledger-page) .reply-form{border-color:transparent; box-shadow:0 0 0 .5px rgba(11,21,35,.14);}
  :where(body.ledger-page) .vault-card:hover,
  :where(body.ledger-page) .ask-card:hover{box-shadow:0 0 0 .5px rgba(11,21,35,.22), 0 8px 24px rgba(15,23,42,.07);}

  :where(body.ledger-page) .filter-pill,
  :where(body.ledger-page) .row-action,
  :where(body.ledger-page) .ledger-signout,
  :where(body.ledger-page) .cohort-pill select,
  :where(body.ledger-page) .logger-field input,
  :where(body.ledger-page) .logger-field select,
  :where(body.ledger-page) .logger-field textarea,
  :where(body.ledger-page) .vault-search input,
  :where(body.ledger-page) .ask-status-select,
  :where(body.ledger-page) .reply-kind-option span,
  :where(body.ledger-page) .progress-select--not-started,
  :where(body.ledger-page) .reply-cta--quiet{border-color:transparent; box-shadow:0 0 0 .5px rgba(11,21,35,.28);}
  :where(body.ledger-page) .filter-pill.is-active,
  :where(body.ledger-page) .reply-kind-option input:checked + span{box-shadow:none;}

  :where(body.ledger-page) .exposure-figure,
  :where(body.ledger-page) .ask-cat,
  :where(body.ledger-page) .vault-cat,
  :where(body.ledger-page) .countdown-badge,
  :where(body.ledger-page) .ask-status--open,
  :where(body.ledger-page) .ask-status--archived{border-color:transparent; box-shadow:0 0 0 .5px rgba(11,21,35,.22); box-shadow:0 0 0 .5px color-mix(in srgb, currentColor 45%, transparent);}
  :where(body.ledger-page) .exposure-figure{box-shadow:0 0 0 .5px rgba(11,21,35,.22);}
  :where(body.ledger-page) .vault-cat--tool,
  :where(body.ledger-page) .ask-status--answered,
  :where(body.ledger-page) .ask-status--connected{box-shadow:none;}

  /* Dividers */
  :where(body.ledger-page) .board-table th,
  :where(body.ledger-page) .board-table td{border-bottom-color:transparent; box-shadow:inset 0 -.5px 0 rgba(11,21,35,.14);}
  :where(body.ledger-page) .board-table tbody tr:last-child td{box-shadow:none;}
  :where(body.ledger-page) .ask-card-foot,
  :where(body.ledger-page) .vault-card-foot,
  :where(body.ledger-page) .logger-session{border-top-color:transparent; box-shadow:inset 0 .5px 0 rgba(11,21,35,.14);}
  :where(body.ledger-page) .reply-list{border-left-color:transparent; box-shadow:inset .5px 0 0 rgba(11,21,35,.18);}
  :where(body.ledger-page) .ledger-top{border-bottom-color:transparent; box-shadow:inset 0 -.5px 0 rgba(11,21,35,.14);}
  :where(body.ledger-page) .view-switch{border-color:transparent; box-shadow:0 0 0 .5px rgba(255,255,255,.2), inset 0 1px 0 rgba(255,255,255,.04);}
}
@media (max-width:767px){
  :where(body.ledger-page) .board-table td{box-shadow:none;}
}

/* ---------- 19h Facilitator or member view (20 Oct 2026) ---------- */
.mode-switch{display:inline-flex; flex:0 0 auto; gap:2px; padding:3px; border:var(--hairline) solid rgba(255,255,255,.16); border-radius:8px; background:rgba(255,255,255,.04);}
.mode-option{min-height:30px; padding:0 12px; border:none; border-radius:6px; background:transparent; color:rgba(255,255,255,.66); cursor:pointer; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; transition:background-color .2s ease, color .2s ease;}
.mode-option:hover{color:#fff;}
.mode-option.is-active{background:rgba(79,179,207,.16); color:#fff; box-shadow:inset 0 0 0 1px rgba(79,179,207,.45);}
.mode-option:focus-visible{outline:2px solid var(--teal-on-dark); outline-offset:2px;}
body.is-preview .admin-strip{background:#1C1A12; border-bottom-color:rgba(217,180,122,.35);}
body.is-preview .mode-option.is-active{background:rgba(217,180,122,.16); box-shadow:inset 0 0 0 1px rgba(217,180,122,.55);}
body.is-preview .admin-hint{color:#D9B47A;}
@media (max-width:767px){
  .mode-option{min-height:40px;}
  body.is-preview .admin-hint{display:block; flex-basis:100%; order:3; font-size:.78rem;}
  .admin-strip-inner{flex-wrap:wrap;}
}

/* ---------- 18 Reduced motion & print ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none !important; transition:none !important;}
  .js .reveal-on-scroll,.js .reveal-stagger > *{opacity:1; transform:none;}
}

@media print{
  .reveal{opacity:1 !important; transform:none !important;}
  header.site,.nav-scrim,.hero-ctas,.terms-cta,.drawer-overlay,.toast{display:none !important;}
  section{padding:32px 0;}
  .bg-navy{background:#fff; color:var(--ink);}
  .hero h1,.bg-navy .badge-pill,.hero .subhead{color:var(--navy);}
  .bg-navy h2,.term-value{color:var(--navy);}
  .js .reveal-on-scroll,.js .reveal-stagger > *{opacity:1; transform:none;}
}


/* ---------- 17d Fact strip: floating cards with icons (28 Oct 2026) ----------
   Overrides 07b. Six kuma cards pulled up over the bottom of the hero on
   desktop. Icon tile leads, the mono tracker sits top right. Hairlines are
   0.5px box-shadows (Chrome rounds 0.5px borders up to 1px). Phones get
   compact rows with the icon on the left and no overlap. */
.hero{padding-bottom:calc(clamp(3rem, 6vw, 5rem) + 64px);}
.section-facts{position:relative; z-index:2; display:flow-root; padding-block:0 clamp(3rem, 6vw, 5rem); border-top:none;}
.facts{
  margin-top:-64px; gap:20px; border:none;
  grid-template-columns:repeat(3, minmax(0,1fr));
}
.fact-cell,.fact-cell:nth-child(3n),.fact-cell:nth-child(n+4){
  position:relative; gap:8px; padding:1.75rem 1.75rem 1.9rem;
  border:none; border-radius:14px;
  background:linear-gradient(180deg, #FFFFFF 0%, #F9FAFB 100%);
  box-shadow:0 0 0 .5px rgba(11,21,35,.10), 0 1px 2px rgba(11,21,35,.04), 0 12px 32px -12px rgba(11,21,35,.16);
}
.js .reveal-stagger > .fact-cell{
  transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal), box-shadow .25s ease;
}
.js .reveal-stagger.is-settled > .fact-cell{
  transition:opacity .25s ease, transform .25s ease, box-shadow .25s ease;
}
@media (hover:hover){
  .fact-cell:hover,
  .js .reveal-stagger.is-visible > .fact-cell:hover{
    transform:translateY(-2px);
    box-shadow:0 0 0 .5px rgba(var(--teal-rgb),.55), 0 2px 4px rgba(11,21,35,.05), 0 18px 40px -14px rgba(11,21,35,.22);
  }
  .fact-cell:hover .fact-icon{background:var(--teal); color:#fff;}
}
.fact-top{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px;}
.fact-icon{
  flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:12px;
  background:rgba(var(--teal-rgb),.09); color:var(--teal);
  box-shadow:inset 0 0 0 .5px rgba(var(--teal-rgb),.18);
  transition:background-color .25s ease, color .25s ease;
}
.fact-icon svg{display:block;}
.fact-top .fact-meta{margin:2px 0 0; font-size:.66rem; color:var(--muted); letter-spacing:.1em;}
.fact-title{font-size:1.25rem; font-weight:700; letter-spacing:-.02em;}
.fact-desc{font-size:.93rem; line-height:1.5;}

@media (min-width:768px) and (max-width:1023px){
  .facts{grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px;}
}
@media (max-width:767px){
  .hero{padding-bottom:clamp(3rem, 6vw, 5rem);}
  .section-facts{padding-block:28px 36px; border-top:var(--hairline) solid var(--hairline-color);}
  .facts{margin-top:0; gap:10px; grid-template-columns:minmax(0,1fr);}
  .fact-cell,.fact-cell:nth-child(3n),.fact-cell:nth-child(n+4),.fact-cell:first-child{
    display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:14px; row-gap:2px;
    padding:1rem 1.1rem; border-radius:12px;
  }
  .fact-top{display:contents;}
  .fact-icon{grid-column:1; grid-row:1 / span 3; align-self:start;}
  .fact-top .fact-meta{grid-column:2; grid-row:1; margin:0;}
  .fact-title{grid-column:2; grid-row:2; font-size:1.05rem;}
  .fact-desc{grid-column:2; grid-row:3; font-size:.88rem;}
}
@media print{
  .facts{margin-top:0;}
  .fact-cell{box-shadow:none; border:1px solid #ccc;}
}
