:root{
  --ivory:#FBF7EF;
  --ivory-2:#F3EDE1;
  --ink:#241609;
  --ink-2:#5A4433;
  --brand:#551D02;
  --brand-deep:#3E1F08;
  --terra:#A3391A;
  --terra-dark:#872F13;
  --terra-light:#E8A87C;
  --ok:#2C6B3F;
  --warn:#8A5B00;
  --no:#A32014;
  --unk:#6E6355;
  --line:#D9CEB8;
  --border:#948668;
  --max:1160px;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:76px}
body{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.08;letter-spacing:-.022em}
h1{font-size:clamp(40px,5.3vw,68px);line-height:1.01;letter-spacing:-.035em}
h2{font-size:clamp(29px,3.5vw,43px)}
h3{font-size:clamp(20px,1.8vw,24px);line-height:1.2}
p{max-width:64ch}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
.narrow{max-width:820px}
section{padding:clamp(46px,5vw,68px) 0}
.band{background:var(--ivory-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dark{background:var(--brand);color:var(--ivory)}
.dark p{color:rgba(251,247,239,.86)}
.eyebrow{display:block;margin-bottom:14px;color:var(--terra);font-size:12.5px;font-weight:700;letter-spacing:.19em;text-transform:uppercase}
.dark .eyebrow{color:var(--terra-light)}
.sec-head{max-width:760px;margin-bottom:clamp(26px,3.2vw,40px)}
.sec-head h2{max-width:22ch}
.sec-head p{margin-top:13px;color:var(--ink-2);font-size:18px}
.dark .sec-head p{color:rgba(251,247,239,.82)}
.skip{position:absolute;left:-9999px;background:var(--ink);color:#fff;padding:12px 18px;z-index:200}
.skip:focus{left:8px;top:8px}

/* Shared navigation */
header.site{position:sticky;top:0;z-index:70;background:rgba(251,247,239,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr{max-width:var(--max);margin:0 auto;padding:10px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.brand{display:flex;align-items:center;gap:9px;min-height:44px;color:var(--ink);text-decoration:none}
.brand svg{width:24px;height:24px}
.brand .wm{font-family:var(--serif);font-weight:700;font-size:19px}
.desktop-nav{display:flex;align-items:center;gap:21px}
.desktop-nav a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;color:var(--ink-2);font-size:14.5px;font-weight:500;text-decoration:none;white-space:nowrap}
.desktop-nav a:hover,.desktop-nav a[aria-current="page"]{color:var(--ink)}
.desktop-nav a[aria-current="page"]{font-weight:700}
.desktop-nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}
.desktop-nav a:hover::after,.desktop-nav a[aria-current="page"]::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:9px}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--ink);cursor:pointer;align-items:center;justify-content:center;font-size:22px}
.mobnav{display:none;border-top:1px solid var(--line);background:var(--ivory)}
.mobnav.open{display:block}
.mobnav a{display:block;padding:14px 22px;border-bottom:1px solid var(--line);color:var(--ink);font-weight:500;text-decoration:none}

/* Buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 23px;border:2px solid transparent;border-radius:6px;font-size:16px;font-weight:700;text-decoration:none;cursor:pointer;transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(62,31,8,.1)}
.btn-primary{background:var(--terra);border-color:var(--terra);color:#fff}
.btn-primary:hover{background:var(--terra-dark);border-color:var(--terra-dark)}
.btn-secondary{background:transparent;border-color:var(--border);color:var(--ink)}
.btn-secondary:hover{background:rgba(36,22,9,.04);border-color:var(--ink)}
.dark .btn-secondary{border-color:rgba(251,247,239,.6);color:var(--ivory)}
.text-link{color:var(--terra);font-weight:700;text-decoration-thickness:1px;text-underline-offset:4px;display:inline-flex;align-items:center;min-height:44px}
.cta-row{display:flex;gap:11px;flex-wrap:wrap;margin-top:26px}

/* Homepage */
.hero{padding:clamp(58px,8vw,108px) 0 clamp(48px,6vw,82px)}
.hero-copy{max-width:830px}
.hero h1{max-width:13ch}
.hero .lead{max-width:58ch;margin-top:22px;color:var(--ink-2);font-size:clamp(18px,1.65vw,21px);line-height:1.55}
.evidence-intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(28px,5vw,70px);align-items:end;margin-bottom:34px}
.evidence-intro h2{max-width:17ch}
.evidence-intro p{color:var(--ink-2);font-size:18px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.stat{padding:24px 24px 25px 0}
.stat+.stat{border-left:1px solid var(--line);padding-left:24px}
.stat .v{font-family:var(--serif);font-size:clamp(31px,3.2vw,42px);font-weight:700;line-height:1;letter-spacing:-.028em}
.stat .n{margin-top:9px;font-size:15.5px;font-weight:700}
.stat .d{margin-top:7px;color:var(--ink-2);font-size:13.5px;line-height:1.45}
.stat .src{margin-top:9px;color:var(--unk);font-size:12px}
.stat .src a{color:var(--terra)}
.preview-shell{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.preview-row{display:grid;grid-template-columns:1.25fr 1fr minmax(0,13rem);gap:18px;align-items:center;padding:17px 4px;border-bottom:1px solid var(--line)}
.preview-row:last-child{border-bottom:0}
.preview-head{padding-top:10px;padding-bottom:10px;color:var(--ink-2);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.product{font-weight:700}
.product small{display:block;color:var(--ink-2);font-size:13px;font-weight:400}
.category{color:var(--ink-2);font-size:14.5px}
.status{display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;border:1px solid;border-radius:100px;padding:5px 11px;font-size:13px;font-weight:700;line-height:1.25;text-wrap:balance}
.status::before{content:"";flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:currentColor}
.status.ok{color:var(--ok);background:rgba(44,107,63,.08);border-color:rgba(44,107,63,.4)}
.status.some,.status.partial{color:var(--warn);background:rgba(138,91,0,.08);border-color:rgba(138,91,0,.4)}
/* "Not listed by provider" is a sourced absence from a published language list.
   It is deliberately not the same pill as a verified "Not supported". */
.status.notlisted{color:var(--brand);background:rgba(94,48,15,.07);border-color:rgba(94,48,15,.4)}
.status.none{color:var(--no);background:rgba(163,32,20,.08);border-color:rgba(163,32,20,.4)}
.status.unknown{color:var(--unk);background:rgba(110,99,85,.07);border-color:rgba(110,99,85,.45)}
.preview-action{margin-top:24px}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(251,247,239,.22);border:1px solid rgba(251,247,239,.22)}
.pillar{background:var(--brand);padding:clamp(26px,3vw,36px)}
.pillar .num{display:inline-flex;margin-bottom:36px;color:var(--terra-light);font-family:var(--serif);font-size:18px;font-weight:700}
.pillar h3{color:var(--ivory);font-size:24px}
.pillar p{margin-top:10px;color:rgba(251,247,239,.82);font-size:15.5px;line-height:1.55}
.work-list{border-top:1px solid var(--border)}
.work-row{display:grid;grid-template-columns:minmax(0,13rem) 1fr auto;gap:24px;align-items:start;padding:19px 0;border-bottom:1px solid var(--line)}
.work-row{transition:background .18s,padding-left .18s,padding-right .18s}
.work-row:hover{background:rgba(255,255,255,.48);padding-left:10px;padding-right:10px}
.work-row .label{color:var(--terra);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.work-row h3,.work-row h4{font-size:21px}
.work-row p{margin-top:6px;color:var(--ink-2);font-size:15px}
/* A grid item stretches to fill its cell by default, and this pill is fully
   rounded, so without align-self and width it inflates into a large oval the
   height of the whole row. Both properties are load-bearing. */
.phase{display:inline-flex;align-items:center;align-self:start;justify-self:start;width:max-content;
  border:1px solid var(--border);border-radius:100px;padding:4px 11px;
  color:var(--ink-2);font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.coming{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;margin-top:32px;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.coming h3{font-size:22px}
.coming p{margin-top:6px;color:var(--ink-2);font-size:15px}
.action-split{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.action-path{background:var(--ivory);color:var(--ink);padding:clamp(28px,4vw,46px)}
/* .action-path carries its own light background, so it must reset the inherited
   colour when nested inside .dark - otherwise it renders ivory text on ivory. */
.dark .action-path,.dark .action-path h2,.dark .action-path h3{color:var(--ink)}
.dark .action-path p{color:var(--ink-2)}
.dark .action-path .btn-secondary{color:var(--ink);border-color:var(--border)}
.dark .action-path .btn-secondary:hover{color:var(--ink);border-color:var(--ink);background:rgba(36,22,9,.05)}
.action-path h2{font-size:clamp(27px,3vw,38px)}
.action-path p{margin-top:12px;color:var(--ink-2);font-size:17px}

/* Page headers */
.page-head{padding:clamp(44px,5.4vw,72px) 0 clamp(30px,4vw,50px)}
.page-head h1{max-width:15ch}
.page-head p{margin-top:18px;color:var(--ink-2);font-size:19px;max-width:57ch}
.page-note{display:flex;gap:12px;padding:17px 18px;border:1px solid var(--border);background:var(--ivory-2);color:var(--ink-2);font-size:14.5px}

/* Full tracker */
.tracker-tools{display:flex;align-items:end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px}
.filter-field{display:grid;gap:6px;flex:1 1 240px;min-width:0;max-width:100%;overflow:hidden}
.filter-field label{font-size:13px;font-weight:700}
.filter-field select{width:100%;min-width:0;max-width:100%;height:46px;padding:0 40px 0 12px;text-overflow:ellipsis;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:15px}
.checkline{display:flex;align-items:center;gap:9px;min-height:46px;color:var(--ink-2);font-size:14.5px}
/* A 20px checkbox is under the 44px minimum, so the whole label is the target. */
.checkline{position:relative;padding:4px 0}
.checkline input{width:22px;height:22px;accent-color:var(--terra)}
.checkline::after{content:"";position:absolute;inset:-6px -4px}
.checkline input{position:relative;z-index:1}
.tracker-list{border-top:1px solid var(--border)}
.tracker-item{border-bottom:1px solid var(--line)}
.tracker-item summary{display:grid;grid-template-columns:1.25fr 1fr minmax(0,13rem) 2rem;gap:18px;align-items:center;min-height:72px;padding:14px 4px;cursor:pointer;list-style:none}
.tracker-item summary::-webkit-details-marker{display:none}
.tracker-item summary::after{content:"+";font-family:var(--serif);font-size:24px;text-align:center}
.tracker-item[open] summary::after{content:"−"}
/* Every finding is rendered as the same eight-part card: product, capability,
   status, result, impact, source, date checked, limitation. The labels are part
   of the argument, so they stay visible rather than being implied by order. */
.tracker-detail{display:grid;gap:14px;padding:2px 4px 24px;max-width:760px;color:var(--ink-2);font-size:15px}
.card-block{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:start}
.card-block dt{color:var(--ink);font-size:12.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;line-height:1.5}
.card-block dd{margin:0;line-height:1.55}
.card-block dd a{color:var(--terra);font-weight:700}
.card-block .checked{display:block;margin-top:4px;color:var(--unk);font-size:12.5px}
.tracker-count{margin-bottom:6px;color:var(--ink-2);font-size:14px}
.empty-state{padding:26px 0;color:var(--ink-2)}

/* Resources */
.resource-list{border-top:1px solid var(--border)}
.resource-row{display:grid;grid-template-columns:1fr 130px 1.2fr auto;gap:24px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}
.resource-row{transition:background .18s,padding-left .18s,padding-right .18s}
.resource-row:hover{background:rgba(255,255,255,.62);padding-left:10px;padding-right:10px}
.resource-row:hover h3{color:var(--terra)}
.resource-row h3{font-size:20px}
.resource-type{color:var(--terra);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.resource-desc{color:var(--ink-2);font-size:14.5px}
.resource-meta{color:var(--unk);font-size:13px;text-align:right}
.guide-band{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:30px 0;border-top:2px solid var(--terra);border-bottom:2px solid var(--terra)}
.guide-band p{margin-top:8px;color:var(--ink-2)}

/* About */
.team-section+.team-section{margin-top:36px}
.group-label{margin-bottom:13px;color:var(--ink-2);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.profile-list{border-top:1px solid var(--border)}
.profile{display:grid;grid-template-columns:150px 220px 1fr;gap:28px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line)}
.profile{transition:background .18s,padding-left .18s,padding-right .18s}
.profile:hover{background:rgba(255,255,255,.5);padding-left:10px;padding-right:10px}
.profile img{width:150px;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--border);border-radius:6px}
.portrait-placeholder{display:flex;align-items:center;justify-content:center;width:150px;aspect-ratio:1/1;border:1px solid var(--line);border-radius:6px;background:var(--ivory-2);color:var(--brand);font-family:var(--serif);font-size:32px;font-weight:700}
.profile .role{margin-top:5px;color:var(--terra);font-size:14px;font-weight:700}
.profile p{color:var(--ink-2);font-size:15px}

/* Work page */
.campaign-statement{max-width:850px;padding:clamp(32px,5vw,58px) 0}
.campaign-statement h2{font-size:clamp(36px,5vw,60px)}
.campaign-statement p{margin-top:18px;font-size:19px}
.featured-live{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid var(--border)}
.featured-live iframe{width:100%;min-height:330px;border:0}
.featured-copy{padding:28px}
.featured-copy p{margin-top:10px;color:var(--ink-2)}
.library{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.library-item{padding:20px;border-top:2px solid var(--terra);background:var(--ivory-2);text-decoration:none}
.library-item p{margin-top:7px;color:var(--ink-2);font-size:14.5px}

/* Get involved
   One column, one panel. The seven-item role picker that used to sit above the
   fields pushed the first input 1220px down the page on a 390px phone; it is a
   single native select now, so the form starts on the first screen. */
.involve-form{display:block;max-width:620px;margin:0 auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.form-panel{padding:clamp(26px,3.4vw,38px);border:1px solid var(--border);background:#fff;box-shadow:0 20px 55px rgba(62,31,8,.07)}
.form-title{font-size:clamp(25px,3vw,32px)}
.form-sub{margin-top:8px;color:var(--ink-2);font-size:15px}
.form-fields{display:grid;gap:15px;margin-top:22px}
.form-panel .btn[type=submit]{width:100%;min-height:52px}
form{display:grid;gap:16px}
.field{display:grid;gap:6px}
.field label{font-size:14px;font-weight:700}
.field .opt{color:var(--ink-2);font-weight:400}
.field input,.field select,.field textarea{width:100%;height:50px;padding:0 12px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
.field select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 8%27%3E%3Cpath d=%27M1 1.5 6 6.5 11 1.5%27 fill=%27none%27 stroke=%27%235A4433%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px}
.field textarea{height:auto;min-height:92px;padding:11px 12px;line-height:1.5;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(163,57,26,.22)}
/* Location and message are genuinely optional, so they start collapsed and the
   form reads as three fields instead of five. */
.optional-block{border:1px solid var(--line);border-radius:6px;background:var(--ivory)}
.optional-block summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;cursor:pointer;font-size:14.5px;font-weight:600;list-style:none}
.optional-block summary::-webkit-details-marker{display:none}
.optional-block summary::after{content:"+";color:var(--terra);font-size:21px;font-weight:400;line-height:1}
.optional-block[open] summary::after{content:"\2212"}
.optional-label{flex:1}
.opt-badge{color:var(--ink-2);font-weight:400}
.optional-fields{display:grid;gap:14px;padding:2px 14px 15px}
.consent{position:relative;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;min-height:48px;padding:12px 13px;border:1px solid var(--border);background:var(--ivory-2)}
.consent input{width:22px;height:22px;accent-color:var(--terra)}
.consent label{font-size:14.5px;line-height:1.45;cursor:pointer}
/* A 22px checkbox is below the 44px target minimum, so the label is stretched
   over the whole row: the entire block is the tap target. */
.consent label::before{content:"";position:absolute;inset:0}
.privacy{color:var(--ink-2);font-size:13px;line-height:1.5}
.form-error{padding:11px 13px;border:1px solid var(--no);background:#FCEFEA;color:#8A2408;font-size:14px;font-weight:600}
.form-error a{color:#8A2408}
.done{padding:24px;border:2px solid var(--ok);background:#fff}
.done p{margin-top:6px;color:var(--ink-2)}

/* Footer */
footer{padding:34px 0 28px;border-top:1px solid var(--line);background:var(--ivory-2)}
.foot{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:start}
.foot-brand{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.foot-brand svg{width:21px;height:21px}
.foot-brand span{font-family:var(--serif);font-size:17px;font-weight:700}
.foot p{color:var(--ink-2);font-size:14px}
.foot-nav{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end}
.foot-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2);font-size:14px;text-decoration:none;min-width:44px;justify-content:center}
.foot-nav a:hover{color:var(--ink)}
.socials{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}
.socials a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;color:var(--terra);font-size:13.5px;font-weight:700;text-decoration:none}
.socials a:hover{text-decoration:underline;text-underline-offset:3px}
.copyright{margin-top:20px;padding-top:15px;border-top:1px solid var(--line);color:var(--ink-2);font-size:13px}

/* Restrained motion keeps pages responsive without changing their content. */
/* Only sections that start below the fold get this class, and site.js never
   applies it to anything already on screen. Nothing above the fold, and no page
   heading, is ever rendered at low opacity while the page loads. */
.motion-ready{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
@media(prefers-reduced-motion:reduce){.motion-ready{opacity:1;transform:none}}
.motion-ready.is-visible{opacity:1;transform:none}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--terra);outline-offset:3px;border-radius:3px}
::selection{background:rgba(163,57,26,.2)}

@media(max-width:1040px){
  .desktop-nav{display:none}
  .menu-btn{display:flex}
}
@media(max-width:860px){
  .evidence-intro{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .stat{padding:21px 0}
  .stat+.stat{border-left:0;border-top:1px solid var(--line);padding-left:0}
  .pillars,.action-split{grid-template-columns:1fr}
  .work-row{grid-template-columns:1fr auto;gap:8px 18px}
  .work-row .label{grid-column:1/-1}
  .coming,.guide-band{grid-template-columns:1fr}
  .resource-row{grid-template-columns:1fr auto;gap:7px 16px}
  .resource-desc{grid-column:1/-1}
  .resource-meta{grid-column:2;grid-row:1;text-align:right}
  .profile{grid-template-columns:110px 1fr;gap:20px}
  .profile img,.portrait-placeholder{width:110px}
  .profile>p{grid-column:1/-1}
  .featured-live{grid-template-columns:1fr}
  .library{grid-template-columns:1fr}
}
@media(max-width:640px){
  body{font-size:16px}
  section{padding:48px 0}
  .hdr{padding:8px 16px}
  .wrap{padding:0 17px}
  .header-actions>.btn{display:none}
  .hero{padding-top:48px}
  .preview-row,.tracker-item summary{grid-template-columns:1fr auto;gap:6px 12px}
  .preview-head{display:none}
  .preview-row .category,.tracker-item summary .category{grid-column:1}
  /* In the stacked mobile summary the status sits in an auto-sized grid area, so
     max-content width has nothing to resolve against. Cap it explicitly. */
  .preview-row .status,.tracker-item summary .status{grid-column:2;grid-row:1/3;width:auto;max-width:9.5rem}
  .dir-item summary .dir-led{max-width:9.5rem;white-space:normal;text-align:center}
  .tracker-item summary::after{grid-column:1/-1;text-align:left;font-size:18px}
  .card-block{grid-template-columns:1fr;gap:4px}
  .work-row{grid-template-columns:1fr}
  .phase{justify-self:start}
  .action-path{padding:28px 22px}
  .resource-row{grid-template-columns:1fr}
  .resource-meta{grid-column:1;grid-row:auto;text-align:left}
  .profile{grid-template-columns:1fr}
  .profile img,.portrait-placeholder{width:100%;max-width:180px}
  .form-panel{padding:23px 18px}
  .involve-section{padding-top:40px}
  .foot{grid-template-columns:1fr}
  .foot-nav{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Inline source links sat at 14px tall; pad them to a usable target without
   breaking the inline flow of the source line. */
.source a{display:inline-block;padding:8px 2px;line-height:1.2}


/* ===================================================================
   Additions: impact section, tracker cards, participation paths,
   privacy prose, 404. Everything reuses the existing tokens.
   =================================================================== */

.hero-industry{margin-top:18px}
.hero-industry a{font-size:15px}
.sec-lead,.sec-head p{margin-top:12px;color:var(--ink-2);font-size:17px;max-width:62ch}
.page-scope{margin-top:14px;color:var(--ink-2);font-size:15.5px;max-width:64ch}
.evidence-note{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);color:var(--ink-2);font-size:14px;max-width:78ch}

/* --- Human impact. Deliberately not a card grid: alternating rows with a
   small diagram built from the interface people actually meet. --- */
.impact{background:var(--brand-deep);color:var(--ivory)}
.impact .eyebrow{color:#E7B893}
.impact h2,.impact h3{color:var(--ivory)}
.impact p{color:rgba(251,247,239,.82)}
.impact-list{display:grid;gap:34px;margin-top:34px}
.impact-item{display:grid;grid-template-columns:300px 1fr;gap:34px;align-items:center;
  padding-top:30px;border-top:1px solid rgba(251,247,239,.2)}
.impact-item:first-child{padding-top:0;border-top:0}
.impact-copy h3{font-size:clamp(21px,2.3vw,27px)}
.impact-copy p{margin-top:11px;font-size:16px;max-width:60ch}
.impact-line{margin-top:14px;color:var(--ivory);font-family:var(--serif);font-size:17px;font-weight:600;
  padding-left:15px;border-left:3px solid var(--terra)}
.impact-close{margin-top:38px;padding-top:24px;border-top:1px solid rgba(251,247,239,.2);
  color:var(--ivory);font-family:var(--serif);font-size:clamp(20px,2.4vw,27px);letter-spacing:-.02em;text-wrap:balance}

.impact-figure{padding:20px;border:1px solid rgba(251,247,239,.24);background:rgba(251,247,239,.06)}
.cap-track{display:flex;align-items:center;gap:8px;padding:9px 0}
.cap-track+.cap-track{border-top:1px solid rgba(251,247,239,.16)}
.cap-lang{width:56px;color:rgba(251,247,239,.72);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.cap-bar{height:11px;border-radius:2px;flex:1}
.cap-bar.auto{background:rgba(251,247,239,.66)}
.cap-bar.empty{background:repeating-linear-gradient(90deg,rgba(251,247,239,.26) 0 5px,transparent 5px 10px)}
.cap-tag{width:62px;text-align:right;font-size:11px;font-weight:700;color:rgba(251,247,239,.7)}
.cap-tag.manual{color:#F0A882}
.search-demo{display:flex;align-items:baseline;gap:11px;padding:11px 13px;border:1px solid rgba(251,247,239,.24);background:rgba(251,247,239,.05)}
.search-demo.out{margin-top:9px;border-color:rgba(240,168,130,.5)}
.search-label{color:rgba(251,247,239,.62);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.search-said{color:var(--ivory);font-family:var(--serif);font-size:19px}
.search-heard{color:#F0A882;font-family:var(--serif);font-size:19px;text-decoration:line-through;text-decoration-thickness:1px}
.lang-menu{display:grid;gap:2px}
.lang-menu span{padding:9px 12px;background:rgba(251,247,239,.08);color:var(--ivory);font-size:14.5px}
.lang-menu span.off{color:rgba(251,247,239,.62);background:transparent;border:1px dashed rgba(251,247,239,.4)}

/* --- Tracker --- */
.coverage{padding-top:30px;padding-bottom:30px}
.coverage-stats{display:flex;flex-wrap:wrap;gap:24px 44px;align-items:flex-start}
.cstat{display:grid;gap:3px}
.cv{font-family:var(--serif);font-size:clamp(26px,3vw,36px);font-weight:600;letter-spacing:-.03em;line-height:1}
.cn{color:var(--ink-2);font-size:13px;font-weight:600;letter-spacing:.04em}
.coverage-note{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-2);font-size:14.5px}
.tracker-tools{display:flex;flex-wrap:wrap;gap:16px 22px;align-items:end;margin-bottom:20px}
.tracker-tools .checkline{flex:1 1 100%}
.tracker-count{margin-bottom:8px;color:var(--ink-2);font-size:14px}
.list-foot{margin-top:20px;color:var(--ink-2);font-size:14px}
.prod-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:38px;height:38px;
  border:1px solid var(--border);border-radius:8px;background:var(--ivory-2);
  color:var(--brand);font-family:var(--serif);font-size:13px;font-weight:700;letter-spacing:.02em}
.product{display:flex;align-items:center;gap:12px}
.prod-text{display:block;min-width:0}
.card-summary{margin-bottom:16px;color:var(--ink);font-size:16px;max-width:70ch}
.cap-list{list-style:none;display:grid;gap:0;margin-bottom:18px;border-top:1px solid var(--line)}
.cap-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.cap-name{font-size:15px;font-weight:600}
.cap-row>.status{flex-shrink:0}
.cap-name small{display:block;color:var(--unk);font-size:12px;font-weight:400}
.card-blocks{display:grid;gap:13px}
.status.exp{color:var(--brand);background:rgba(94,48,15,.07);border-color:rgba(94,48,15,.42)}
.method-lead{margin-top:16px;color:var(--ink-2);font-size:17px;max-width:64ch}
#methodology h3{margin-top:30px;font-size:20px}
.method-detail{margin-top:28px;border:1px solid var(--border);background:#fff}
.method-detail summary{display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:52px;padding:0 17px;cursor:pointer;font-size:15px;font-weight:700;list-style:none}
.method-detail summary::-webkit-details-marker{display:none}
.method-detail summary::after{content:"+";color:var(--terra);font-size:21px;font-weight:400}
.method-detail[open] summary::after{content:"\2212"}
.method-body{padding:2px 17px 20px;color:var(--ink-2);font-size:15px}
.method-body h4{margin-top:18px;font-size:16px;color:var(--ink)}
.method-body ol,.method-body ul{margin-top:9px;padding-left:19px;display:grid;gap:6px}
.method-body p{margin-top:9px;max-width:70ch}

/* --- Participation paths --- */
.paths-title{font-size:clamp(24px,2.8vw,33px);margin-bottom:24px}
.path-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.path{padding:24px;background:var(--ivory)}
.path h3{font-size:19px}
.path ul{margin-top:12px;padding-left:18px;display:grid;gap:7px;color:var(--ink-2);font-size:15px}
.path .text-link{display:inline-block;margin-top:15px;font-size:14.5px}
.field-hint{color:var(--ink-2);font-size:13px}
.next-steps{margin-top:14px;padding-left:19px;display:grid;gap:9px;color:var(--ink-2);font-size:15px}
.next-steps strong{color:var(--ink)}
.email-only{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;
  padding:26px;border:1px solid var(--border);background:#fff}
.email-only p{margin-top:10px;color:var(--ink-2);font-size:15px}
.email-row{display:grid;grid-template-columns:1fr auto;gap:11px;align-items:end}
.email-row .btn{min-height:50px}
.done-inline{margin-top:12px;padding:12px 14px;border:2px solid var(--ok);background:#fff;font-weight:600}

/* --- Progress, privacy prose, 404 --- */
.progress-item .phase{margin-top:3px}
.progress-item .phase[data-state="done"]{color:var(--ok);border-color:rgba(44,107,63,.45);background:rgba(44,107,63,.07)}
.progress-item .phase[data-state="ongoing"]{color:var(--warn);border-color:rgba(138,91,0,.45);background:rgba(138,91,0,.07)}
.progress-list{list-style:none;display:grid;gap:0;margin-top:26px;border-top:1px solid var(--border)}
.progress-item{display:grid;grid-template-columns:8rem 1fr;gap:22px;padding:19px 0;border-bottom:1px solid var(--line)}
.progress-item h3{font-size:19px}
.progress-item p{margin-top:6px;color:var(--ink-2);font-size:15px}
.prose h2{margin-top:34px;font-size:clamp(21px,2.3vw,27px)}
.prose h2:first-child{margin-top:0}
.prose p{margin-top:12px;color:var(--ink-2);font-size:16.5px;max-width:68ch}
.prose strong{color:var(--ink)}
.notfound-links{display:grid;gap:1px;background:var(--border);border:1px solid var(--border)}
.notfound-link{display:grid;gap:4px;padding:19px 20px;background:var(--ivory);text-decoration:none}
.notfound-link:hover{background:#fff}
.notfound-link strong{font-family:var(--serif);font-size:19px;color:var(--ink)}
.notfound-link span{color:var(--ink-2);font-size:14.5px}
.notfound-note{margin-top:20px;color:var(--ink-2);font-size:14.5px}

/* --- Footer --- */
.foot{grid-template-columns:1.35fr 1fr}
.foot-about p{max-width:56ch}
.foot-contact{margin-top:11px}
.foot-contact a{color:var(--terra);font-weight:700}
.foot-links{display:grid;gap:18px;justify-items:end;align-content:start}
.socials{display:flex;flex-wrap:wrap;align-items:center;gap:5px 14px}
.socials>span{color:var(--ink-2);font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.copyright{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between;align-items:center}
.copyright a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink-2)}

@media(max-width:860px){
  .impact-item{grid-template-columns:1fr;gap:22px}
  .path-grid,.email-only{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr}
  .foot-links{justify-items:start}
  .coverage-stats{gap:26px}
}
@media(max-width:640px){
  .coverage-stats{flex-direction:column;gap:14px}
  .cstat{grid-template-columns:auto 1fr;display:grid;gap:10px;align-items:baseline}
  .progress-item{grid-template-columns:1fr;gap:9px}
  .email-row{grid-template-columns:1fr}
  .cap-row{flex-direction:column;align-items:flex-start;gap:7px}
  .prod-mark{width:34px;height:34px;font-size:12px}
}


/* --- Igbo Technology Directory ---------------------------------------------
   Same card mechanics as the tracker, deliberately different signals: the
   directory says who built a thing, not whether it works. --- */
.dir-item{border-bottom:1px solid var(--line)}
.dir-item summary{display:grid;grid-template-columns:1.2fr 1fr 12rem 2rem;gap:18px;align-items:center;
  min-height:66px;padding:13px 4px;cursor:pointer;list-style:none}
.dir-item summary::-webkit-details-marker{display:none}
.dir-item summary::after{content:"+";font-family:var(--serif);font-size:23px;text-align:center;color:var(--ink-2)}
.dir-item[open] summary::after{content:"\2212"}
.dir-item summary:hover{background:rgba(255,255,255,.5)}
.dir-name{font-weight:700;min-width:0}
.dir-name small{display:block;color:var(--ink-2);font-size:13px;font-weight:400}
.dir-cat{color:var(--ink-2);font-size:14.5px}
.dir-led{display:inline-flex;align-items:center;width:max-content;padding:4px 11px;border:1px solid rgba(163,57,26,.45);
  border-radius:100px;background:rgba(163,57,26,.07);color:var(--terra);font-size:12px;font-weight:700;white-space:nowrap}
.dir-led.muted{border-color:var(--line);background:transparent;color:var(--unk);font-weight:600}
.dir-detail{padding:2px 4px 22px;max-width:780px}
.dir-what{margin-bottom:14px;color:var(--ink);font-size:16px}
.dir-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px}
.dir-links a{color:var(--terra);font-weight:700}
.dir-links .dot{color:var(--unk)}
.dir-links .checked{flex:1 1 100%}
.start-list{margin-top:22px;padding-left:20px;display:grid;gap:13px;color:var(--ink-2);font-size:16px}
.start-list strong{color:var(--ink)}

@media(max-width:860px){
  .dir-item summary{grid-template-columns:1fr auto;gap:7px 14px}
  .dir-cat{grid-column:1}
  .dir-led{grid-column:2;grid-row:1/3;justify-self:end}
  .dir-item summary::after{grid-column:1/-1;text-align:left;font-size:18px}
}


/* --- Video and updates -----------------------------------------------------
   Nothing autoplays. Shorts are thumbnail links rather than embeds, so no
   YouTube code loads until the visitor chooses to watch. --- */
.video-layout{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(22px,3vw,38px);align-items:start}
.video-frame{position:relative;aspect-ratio:16/9;border:1px solid var(--border);background:var(--ink);overflow:hidden}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-main h3{margin-top:16px;font-size:clamp(19px,2vw,23px)}
.video-main p{margin-top:9px;color:var(--ink-2);font-size:15.5px}
.video-main .text-link{margin-top:6px}
/* A 9:16 thumbnail in a wide card leaves dead space beside it, so the short cards
   run horizontally: portrait thumbnail left, title and meta right. */
.video-shorts{display:grid;gap:16px;align-content:start}
.video-shorts .short-card{grid-template-columns:104px 1fr;grid-template-rows:auto auto;
  column-gap:14px;row-gap:2px;align-items:center;padding:14px}
.video-shorts .short-thumb{grid-row:1/3;max-height:none;align-self:stretch}
.video-shorts .short-card strong{align-self:end}
.video-shorts .short-card .short-meta{align-self:start}
.short-card,.watch-card{display:grid;gap:7px;padding:12px;border:1px solid var(--border);background:var(--ivory);text-decoration:none}
.short-card:hover,.watch-card:hover{background:#fff}
.short-card strong,.watch-card strong{font-family:var(--serif);font-size:16.5px;line-height:1.25;color:var(--ink)}
.short-meta,.watch-meta{color:var(--ink-2);font-size:13px}
.short-thumb,.watch-thumb{position:relative;display:block;overflow:hidden;background:var(--ink)}
.short-thumb{aspect-ratio:9/16;max-height:230px}
.watch-thumb{aspect-ratio:16/9}
.watch-thumb.short{aspect-ratio:9/16;max-height:260px}
.short-thumb img,.watch-thumb img{width:100%;height:100%;object-fit:cover}
.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;
  background:rgba(36,22,9,.72);border:2px solid rgba(251,247,239,.9)}
.play::after{content:"";position:absolute;left:52%;top:50%;transform:translate(-50%,-50%);
  border-left:13px solid #FBF7EF;border-top:8px solid transparent;border-bottom:8px solid transparent}
.short-card:hover .play,.watch-card:hover .play{background:var(--terra)}
.video-more{margin-top:24px}

.update-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.update{padding:24px;background:var(--ivory)}
.update h3{font-size:19px}
.update p{margin-top:10px;color:var(--ink-2);font-size:15px}
.update .text-link{margin-top:10px}
.update-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(22px,3vw,34px);align-items:start}
.update-card{display:grid;gap:0}
.update-card h3{margin-top:16px;font-size:clamp(19px,1.9vw,22px)}
.update-card p{margin-top:10px;color:var(--ink-2);font-size:15.5px}
.update-card .cta-row{margin-top:18px}
.update-portrait{width:100%;max-width:200px;border:1px solid var(--border);border-radius:6px}
.update-extra{margin-top:12px}
.update-pending{margin-top:12px;padding:11px 13px;border:1px dashed var(--border);background:var(--ivory-2);
  color:var(--ink-2);font-size:14px}

.watch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.watch-card.wide{grid-column:span 3}
.watch-more{margin-top:22px;color:var(--ink-2);font-size:15px}

.idea-list{display:grid;gap:11px;padding-left:20px;color:var(--ink-2);font-size:16px;max-width:70ch}
.idea-list strong{color:var(--ink)}
.idea-note{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-2);font-size:14.5px}
.page-head.compact{padding-bottom:clamp(20px,2.6vw,32px)}
.stat .arrow{color:var(--terra)}
.done h2{font-size:clamp(23px,2.6vw,30px)}

@media(min-width:861px){
  .watch-card.wide{grid-column:span 3;display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:center}
  .watch-card.wide .watch-thumb{grid-row:span 2}
  .watch-card.wide strong{align-self:end;font-size:19px}
  .watch-card.wide .watch-meta{align-self:start}
}
@media(max-width:860px){
  .video-layout{grid-template-columns:1fr}
  .video-shorts{grid-template-columns:1fr 1fr}
  .update-list{grid-template-columns:1fr}
  .watch-grid{grid-template-columns:1fr 1fr}
  .watch-card.wide{grid-column:span 2}
}
@media(max-width:640px){
  .video-shorts,.watch-grid{grid-template-columns:1fr}
  .video-shorts .short-card{grid-template-columns:88px 1fr}
  .watch-card.wide{grid-column:span 1}
  .short-thumb,.watch-thumb.short{max-height:300px}
}


/* --- Third pass: hero media, start-here paths, findings, updates -----------
   Borders are spent selectively now. Update lists and start cards are
   borderless so they read differently from the tracker and directory rows. --- */
p,.lead,.sec-head p,.prose p{max-width:65ch}

.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,58px);align-items:center}
.hero-copy{max-width:none}
.hero h1{max-width:15ch}
.hero .lead{max-width:52ch}
.hero-media{position:relative;display:block;overflow:hidden;border:1px solid var(--border);background:var(--ink)}
.hero-media img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.hero-media .play{width:60px;height:60px}
.hero-media .play::after{border-left-width:17px;border-top-width:10px;border-bottom-width:10px}
.hero-media-label{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;
  background:linear-gradient(to top,rgba(36,22,9,.9),rgba(36,22,9,0));
  color:#FBF7EF;font-size:13.5px;font-weight:600}
.hero-media:hover .play{background:var(--terra)}

/* Start here: no boxes, just a rule and generous space */
.start-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;background:transparent;border:0}
.start-card{display:grid;gap:6px;min-width:0;padding:22px 26px 22px 0;border-top:1px solid var(--line);text-decoration:none}
.start-card:hover strong{color:var(--terra)}
.start-card strong{font-family:var(--serif);font-size:20px;line-height:1.2;color:var(--ink)}
.start-card span{color:var(--ink-2);font-size:15px}
.start-note{justify-self:start;max-width:100%;padding:3px 9px;border-radius:100px;background:rgba(163,57,26,.09);
  color:var(--terra);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}

/* Tracker headline findings */
.finding-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.finding{display:grid;gap:9px;align-content:start;padding:22px;border-top:3px solid var(--terra);
  background:var(--ivory-2);text-decoration:none}
.finding:hover{background:#fff}
.finding strong{font-family:var(--serif);font-size:19px;line-height:1.2;color:var(--ink)}
.finding span:last-child{color:var(--ink-2);font-size:15px}

/* Homepage action cards */
.do-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.do-card{display:grid;gap:6px;align-content:start;padding:20px;border:1px solid var(--border);
  background:var(--ivory);text-decoration:none}
.do-card:hover{background:#fff;border-color:var(--ink)}
.do-card strong{font-family:var(--serif);font-size:18px;line-height:1.2}
.do-card span{color:var(--ink-2);font-size:14.5px}

/* Updates: borderless list, so it reads as news rather than another card grid */
.update-list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;background:transparent;border:0}
.update{padding:20px 0 0;background:transparent;border-top:2px solid var(--ink)}
.update h3{font-size:20px;line-height:1.22}
.update h3 a{text-decoration:none}
.update h3 a:hover{color:var(--terra)}
.update p{margin-top:8px;color:var(--ink-2);font-size:15px}
.update-date{display:block;margin-bottom:8px;color:var(--terra);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.update-date:empty{display:none}
.update-all{margin-top:26px}
.update-media{display:block}
.update-card .update-date{margin-bottom:6px}

/* Updates page entries */
.entry{padding-bottom:40px;margin-bottom:40px;border-bottom:1px solid var(--line)}
.entry:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.entry h2{margin-bottom:18px;font-size:clamp(24px,2.8vw,34px)}
.entry p{margin-top:14px;color:var(--ink-2);font-size:16.5px}
.entry .video-frame{margin-bottom:4px}
.entry-portrait{width:180px;border:1px solid var(--border);border-radius:6px}
.entry-media{display:block;max-width:230px}
.entry-share{margin-top:16px;font-size:14px}

.filter-field.grow{flex:2 1 260px}
.filter-field input[type=search]{width:100%;min-width:0;height:46px;padding:0 12px;border:1px solid var(--border);
  border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:15px}
.filter-field input[type=search]:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(163,57,26,.22)}
.btn-reset{min-height:46px;padding:0 15px;border:1px solid var(--border);border-radius:6px;background:transparent;
  color:var(--ink);font:inherit;font-size:14.5px;font-weight:700;cursor:pointer}
.btn-reset:hover{border-color:var(--ink);background:rgba(36,22,9,.04)}
.back-to-top{margin-top:18px}
.dir-permalink{color:var(--terra);font-weight:700}

/* Sticky campaign button once the hero is out of view */
.sticky-join{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;display:none}
.sticky-join .btn{width:100%;box-shadow:0 10px 30px rgba(62,31,8,.28)}
.sticky-join.show{display:block}

@media(max-width:1040px){
  .do-grid{grid-template-columns:repeat(2,1fr)}
  .finding-grid{grid-template-columns:1fr}
}
@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .start-grid{grid-template-columns:1fr}
  .start-card{padding-right:0}
  .update-list{grid-template-columns:1fr;gap:22px}
}
@media(max-width:640px){
  .do-grid{grid-template-columns:1fr}
  .cta-row{flex-direction:column;align-items:stretch}
  .cta-row .btn{width:100%}
  .entry-portrait{width:140px}
  .sticky-join.show{display:block}
}
@media(min-width:641px){.sticky-join{display:none!important}}

/* Team portraits use the same responsive square frame as existing profiles. */
.profile-portrait{position:relative;width:150px;aspect-ratio:1/1;overflow:hidden;border:1px solid var(--border);border-radius:6px}
.profile .profile-portrait img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;border:0;border-radius:0}
/* Crop the source photograph's white border within the portrait frame. */
.profile .profile-portrait-udochi img{object-position:center 35%}
.profile .profile-portrait-vladislava img{position:absolute;left:-8%;top:-8%;width:116%;height:116%;object-position:center 33%}
@media(max-width:860px){.profile-portrait{width:110px}}
@media(max-width:640px){.profile-portrait{width:100%;max-width:180px}}

/* Strategic content additions inherit the original editorial design system. */
[hidden]{display:none!important}
.section-lead{font-size:clamp(17px,1.8vw,21px);color:var(--ink-2);margin:20px 0 28px;max-width:70ch}
.stack-path{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));list-style:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:34px}
.stack-path li{position:relative;padding:25px 12px 25px 0;font-family:var(--serif);font-size:clamp(18px,2vw,25px);font-weight:600}
.stack-path li:not(:last-child)::after{content:'→';position:absolute;right:18px;color:var(--terra)}
.illustration-note,.finding-breakdown{font-size:13px;color:var(--ink-2)}
.illustration-note{margin-top:20px}
.coverage-stats{margin-bottom:28px}
.finding-number{font-family:var(--serif);font-size:43px;line-height:1.2;color:var(--ink);margin-top:10px}
.finding-number small{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-2)}
.finding-action{margin-top:auto;font-weight:700;color:var(--terra);font-size:14px}
.finding-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.finding-breakdown{padding-top:12px;border-top:1px solid var(--line);margin-top:10px}
.pillar .text-link,.dark .text-link{color:var(--ivory);margin-top:12px}
.asks-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.asks-grid article{border-top:1px solid var(--border);padding-top:22px}
.asks-grid article>span{color:var(--terra);font-family:var(--serif);display:block;margin-bottom:18px}
.asks-grid p{font-size:16px;color:var(--ink-2);margin-top:14px}
.community-story{display:grid;grid-template-columns:230px minmax(0,1fr);gap:34px;padding:30px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--line)}
.community-story>img{width:230px;height:230px;object-fit:cover;border-radius:6px}
.community-story h3{font-size:30px}.community-story p{margin-top:14px;color:var(--ink-2)}
.story-person{font-size:14px;font-weight:700}.community-story blockquote{border-left:3px solid var(--terra);padding:15px 20px;margin-top:20px;font-family:var(--serif);font-size:24px}
.story-invitation{margin-top:28px}.story-invitation p{margin-top:12px;color:var(--ink-2)}
.audience-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.audience-grid .start-card{height:100%}
.priority-list{list-style:none;counter-reset:priorities;border-top:1px solid var(--border)}
.priority-list li{counter-increment:priorities;display:grid;grid-template-columns:44px minmax(200px,.8fr) 1.3fr;gap:22px;border-bottom:1px solid var(--line);padding:23px 0}
.priority-list li::before{content:'0' counter(priorities);font-family:var(--serif);color:var(--terra);font-size:23px}
.priority-list strong{font-family:var(--serif);font-size:22px;line-height:1.3}.priority-list span{color:var(--ink-2);font-size:16px}
.evidence-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;gap:24px;border-top:1px solid var(--border);margin:24px 0}
.evidence-path li{padding-top:22px}.evidence-path strong{font-family:var(--serif);font-size:22px;display:block;line-height:1.2}.evidence-path span{display:block;margin-top:12px;font-size:15px;color:var(--ink-2)}
.success-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.success-grid p{margin-top:12px;color:var(--ink-2)}
.about-intro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;color:var(--ink-2)}
.ecosystem{list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:32px;padding:25px 0;border-block:1px solid var(--line);font-size:14px;font-weight:700}
.ecosystem li:not(:last-child)::after{content:'→';margin-left:15px;color:var(--terra)}
.company-control{max-width:320px;margin-bottom:15px}.company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.company-card{background:var(--ivory);border:1px solid var(--line);border-radius:6px;padding:22px;min-width:0}.company-card h3{font-size:22px}.company-card ul{list-style:none;margin-top:15px}
.company-card li{padding:11px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.company-card li>span:first-child{min-width:0}.company-card .status{font-size:11px;flex-shrink:0;max-width:52%;padding:5px 7px}
.company-card .text-link{font-size:13px;margin-top:12px}
.product-ask{background:var(--ivory-2);border-left:3px solid var(--terra);padding:22px;margin:24px 0}.product-ask h3{font-size:23px}.product-ask p{margin-top:10px}
.card-actions{display:flex;gap:25px;flex-wrap:wrap;margin-top:22px;font-size:14px}
.tracker-tools{align-items:end;flex-wrap:wrap}.tracker-tools .filter-field{min-width:170px;flex:1 1 170px}.tracker-tools .grow{flex:2 1 260px}.tracker-tools .checkline{flex:1 1 100%}
.tracker-detail,.dir-detail{overflow-wrap:anywhere}.tracker-item,.dir-item{scroll-margin-top:90px}
.builder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.builder-card{border:1px solid var(--line);border-radius:6px;padding:26px;display:flex;flex-direction:column;background:rgba(255,255,255,.35)}
.builder-card h3{font-size:24px}.builder-card p{font-size:15px;color:var(--ink-2);margin-top:14px}.builder-card ul{list-style:none;margin-top:20px}.builder-card li{padding:10px 0;border-top:1px solid var(--line)}.builder-card li a{font-size:15px;font-weight:700;text-underline-offset:4px;display:inline-block;min-height:30px}.builder-card small{display:block;color:var(--ink-2);font-size:12px}.builder-card>.text-link{margin-top:auto;padding-top:18px;font-size:14px}
.directory-totals{display:flex;flex-wrap:wrap;gap:14px 26px;margin-bottom:26px;color:var(--ink-2);font-size:14px}
.canonical-evidence{font-size:14px;margin:10px 0}
.contribution-form fieldset{border:0;min-width:0;display:grid;gap:22px}.form-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.form-fields>fieldset,.form-fields>.form-pair{grid-column:1/-1}.form-fields .field{min-width:0}.field input,.field textarea,.field select{max-width:100%}
.form-error a{font-weight:700}.privacy{overflow-wrap:anywhere}.contribution-form .consent label{font-size:14px}
@media(max-width:1040px){.company-grid,.builder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-nav{gap:15px}}
@media(max-width:860px){.asks-grid{grid-template-columns:1fr;gap:24px}.asks-grid article{display:grid;grid-template-columns:35px 1fr;gap:0 15px}.asks-grid p{grid-column:2}.stack-path{grid-template-columns:repeat(3,minmax(0,1fr))}.stack-path li:nth-child(3)::after{display:none}.community-story{grid-template-columns:180px minmax(0,1fr)}.community-story>img{width:180px;height:180px}.priority-list li{grid-template-columns:35px 1fr}.priority-list span{grid-column:2}.evidence-path{grid-template-columns:repeat(2,minmax(0,1fr))}.about-intro{grid-template-columns:1fr;gap:20px}}
@media(max-width:640px){.company-grid,.builder-grid,.success-grid,.form-pair{grid-template-columns:1fr}.community-story{grid-template-columns:1fr;gap:20px}.community-story>img{width:160px;height:160px}.community-story h3{font-size:26px}.stack-path li{font-size:19px;padding:18px 8px 18px 0}.stack-path li:not(:last-child)::after{right:6px}.evidence-path{gap:18px}.evidence-path strong{font-size:20px}.company-card{padding:20px}.company-card li{font-size:14px}.company-card .status{font-size:12px}.ecosystem{display:block}.ecosystem li{padding:10px 0}.ecosystem li:not(:last-child)::after{content:'↓';display:block;margin:10px 0 0}.audience-grid{grid-template-columns:1fr}.builder-card{padding:22px}.tracker-tools .filter-field{flex-basis:100%}.card-actions{gap:8px}.coverage-stats{gap:20px}.hero .cta-row .btn{font-size:15px}.form-pair{gap:22px}}

.company-explorer>summary{font-weight:700;cursor:pointer;padding:18px 0;min-height:48px;color:var(--terra)}
.company-explorer[open]>summary{margin-bottom:20px}
.quick-jumps{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px!important}

/* On phones, optional detail opens on demand so key results appear sooner. */
.tracker-more{display:contents}.tracker-more>summary{display:none}.extra-filters{display:contents}
.builder-card{display:block}.builder-card>summary{cursor:pointer;min-height:44px}.builder-card>summary h3{display:inline}.builder-content{padding-top:4px}.builder-content>.text-link{font-size:14px;margin-top:15px}
@media(min-width:641px){.builder-card>summary{list-style:none;pointer-events:none}.builder-card>summary::-webkit-details-marker{display:none}}
@media(max-width:640px){.tracker-more{display:block;width:100%;border-block:1px solid var(--line)}.tracker-more>summary{display:list-item;cursor:pointer;color:var(--terra);font-weight:700;font-size:15px;min-height:48px;padding:12px 0}.extra-filters{display:grid;gap:18px;padding:12px 0 18px}.builder-card{padding:20px}.builder-card>summary h3{font-size:21px}.builder-grid{gap:12px}.builder-card>summary{min-height:24px}.builder-content{padding-top:10px}.builder-card>summary::marker{color:var(--terra)}body:has(.sticky-join){padding-bottom:90px}}

.availability-note{padding:15px 18px;background:var(--ivory-2);border-left:3px solid var(--warn);margin-bottom:20px;font-size:14px}.unavailable-link{font-size:13px;color:var(--ink-2)}

/* Advocacy update: reuse the existing editorial components. */
.advocacy-pillars{grid-template-columns:repeat(3,minmax(0,1fr))}.advocacy-pillars .pillar{padding:26px}.advocacy-pillars .pillar h3{font-size:27px}
.community-proof{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:stretch}.discussion-card{display:flex;flex-direction:column;align-items:flex-start;padding:32px;background:var(--brand);color:var(--ivory);text-decoration:none;border-radius:6px}.discussion-card .eyebrow{color:var(--terra-light)}.discussion-card h3{font-size:clamp(25px,2.5vw,34px);max-width:22ch}.discussion-play{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--ivory);border-radius:50%;margin:8px 0 25px}.discussion-watch{font-size:14px;margin-top:28px;font-weight:700}.discussion-card:hover{background:var(--brand-deep)}
.community-voices article{border-top:1px solid var(--border);padding:20px 0}.community-voices article:last-child{padding-bottom:0}.community-voices h3{font-size:20px}.community-voices p{color:var(--ink-2);font-size:17px;margin-top:10px}.community-source{max-width:none;font-size:12px}
.campaign-goal{font-family:var(--serif);font-size:clamp(22px,2.5vw,29px);line-height:1.3;max-width:45ch}.product-team-path{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:30px;margin-top:28px;border-top:1px solid var(--border)}.product-team-path p{color:var(--ink-2);margin-top:12px;max-width:60ch}.product-team-path>a{flex-shrink:0}.audience-grid .start-card .text-link{justify-self:start;font-size:15px}.audience-grid .start-card p{font-size:15px;color:var(--ink-2)}
.campaign-work .work-row{grid-template-columns:45px 1fr minmax(120px,190px)}.campaign-work p{margin-top:10px;color:var(--ink-2)}.progress-metrics{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:20px}.progress-metric{border-top:1px solid var(--border);padding:20px 0;display:grid;gap:8px;min-width:200px}.progress-metric>strong{font-family:var(--serif);font-size:40px}.progress-metric>span{font-size:15px}.progress-metric .text-link{font-size:14px}
.advocacy-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.advocacy-path li{line-height:1.5}.moved-home-detail section{padding:30px 0}.moved-home-detail .wrap{padding:0 20px}.tracker-questions{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:22px}.tracker-questions .text-link{font-size:16px}
@media(max-width:860px){.advocacy-pillars{grid-template-columns:repeat(2,minmax(0,1fr))}.community-proof{grid-template-columns:1fr;gap:24px}.campaign-work .work-row{grid-template-columns:30px minmax(0,1fr)}.campaign-work .work-row>.label{grid-column:1;grid-row:1}.campaign-work .work-row>div,.campaign-work .work-row>.text-link{grid-column:2}.product-team-path{align-items:flex-start;flex-direction:column;gap:12px}.advocacy-path{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.advocacy-pillars{grid-template-columns:1fr}.discussion-card{padding:25px}.community-voices article{padding:18px 0}.advocacy-path{grid-template-columns:1fr}.campaign-work .work-row{gap:12px}.moved-home-detail .wrap{padding:0 12px}.tracker-questions{gap:4px 15px}}

/* Final refinement: existing typography, fewer labels, room for real voices. */
.community-voices blockquote{margin:0}.community-voices blockquote p{font-family:var(--serif);font-size:clamp(24px,2.2vw,30px);line-height:1.4;color:var(--ink);margin:0}.community-voices article>p{margin-top:0}.community-voices h3{font-family:var(--sans);font-size:13px;margin-top:16px;line-height:1.6}.voice-context{font-weight:400;color:var(--ink-2)}.campaign-statement{font-family:var(--serif);font-size:clamp(28px,3.4vw,42px);line-height:1.3;max-width:31ch;margin:0 0 28px}.campaign-actions,.why-igbo-copy{max-width:780px}.campaign-actions p,.why-igbo-copy p{padding:17px 0;border-bottom:1px solid var(--line);margin:0;font-size:18px;line-height:1.6}.campaign-actions a{font-weight:700}.contribution-routes{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.contribution-routes{grid-template-columns:1fr}}

/* Grouped footer, using the existing palette and type. */
.foot{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:48px}.footer-groups{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:26px}.footer-group{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.footer-group h2{font-family:var(--sans);font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px;line-height:1.5}.footer-group a{font-size:14px;line-height:1.5;min-height:36px;display:flex;align-items:center;color:var(--ink-2);text-decoration:none}.footer-group a:hover{text-decoration:underline}.footer-group .footer-join{font-weight:700;color:var(--terra)}.footer-signoff{padding-top:26px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}#udochi .entry-portrait{aspect-ratio:1;object-fit:cover;object-position:center 30%}@media(max-width:1000px){.foot{grid-template-columns:1fr}.footer-groups{max-width:760px}}@media(max-width:640px){.footer-groups{grid-template-columns:1fr;gap:26px}.footer-group a{min-height:40px}.foot{gap:30px}}

/* Everyday uses lead into the existing product disclosures. */
.tracker-usecases{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.tracker-usecases a{display:inline-flex;padding:10px 15px;border:1px solid var(--border);border-radius:4px;text-decoration:none;font-size:14px;font-weight:600}.tracker-usecases a[aria-current="true"],.tracker-usecases a:hover{background:var(--brand);color:var(--ivory)}.tracker-questions{margin-top:16px}.tracker-questions .text-link{font-size:14px}.tracker-group{margin:32px 0}.tracker-group>h3{font-size:24px;border-bottom:2px solid var(--line);padding-bottom:14px}.tracker-item summary{grid-template-columns:minmax(140px,1fr) minmax(0,1.4fr) minmax(0,180px) 24px}.feature-question{font-size:15px;line-height:1.5;color:var(--ink-2)}.feature-proof{display:block;font-size:13px;line-height:1.55;margin-top:8px;color:var(--ink-2)}.feature-proof a{display:inline}.feature-proof .checked{display:block;font-size:11px}.live-research{padding:20px;margin-top:20px;border:1px solid var(--line);border-radius:4px}.live-research h4{font-size:18px}.live-research p{font-size:14px;margin-top:8px}.technical-products>summary{font-size:20px;font-weight:600}.technical-products{margin-top:32px}.technical-products .tracker-group{margin-top:15px}.tracker-group .cap-row{align-items:start}@media(max-width:640px){.tracker-usecases{display:grid;grid-template-columns:1fr 1fr}.tracker-usecases a{padding:10px;font-size:13px}.tracker-item summary{grid-template-columns:minmax(0,1fr) auto;gap:10px}.tracker-item summary .feature-question{grid-column:1/-1;grid-row:2}.tracker-item summary .status{grid-column:2;grid-row:1;max-width:120px;white-space:normal}.tracker-item summary::after{grid-row:3}.tracker-item .product{min-width:0}.prod-mark{flex-shrink:0}}

.tracker-head h1{max-width:24ch;font-size:clamp(34px,4.5vw,56px)}.tracker-head{padding-top:40px}.tracker-head+.section{padding-top:32px}

.tracker-more{display:block}.tracker-more>summary{display:list-item;cursor:pointer;color:var(--terra);font-weight:700;font-size:14px;min-height:44px;padding:12px 8px}.tracker-more[open]{flex-basis:100%;order:6;border-block:1px solid var(--line)}.extra-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:12px 0 18px}.extra-filters>.checkline{grid-column:1/-1}@media(max-width:640px){.tracker-more{width:100%}.extra-filters{grid-template-columns:1fr}}

/* Nonprofit positioning: retain the existing typography and profile frames. */
.about-purpose{margin-top:36px;padding-top:30px;border-top:1px solid var(--border)}.about-purpose h2{font-size:clamp(24px,3vw,32px);margin-bottom:18px}.about-purpose p+p{margin-top:14px}.team-section>h3.group-label{font-family:var(--sans);line-height:1.6}

/* Evidence review: retain existing layout and portrait sizing. */
.method-statuses dt{font-weight:700;margin-top:1rem}.method-statuses dd{margin:0.3rem 0 1rem}.feature-proof{overflow-wrap:anywhere}.status.tested{background:#e5eee6;color:#244d32}.status.reported{background:#f8ebcb;color:#694b16}.volunteer-invite{margin-top:2rem}.cap-row>.status{white-space:normal;max-width:13rem;text-align:center}.tracker-item>summary>.status{white-space:normal;text-align:center}.company-card li{gap:1rem}.company-card .status{white-space:normal;text-align:center}
@media(max-width:640px){.cap-row{flex-direction:column;flex-wrap:nowrap;align-items:flex-start}.cap-row>.cap-name{flex:0 1 auto;max-width:100%}.cap-row>.status{max-width:100%}.tracker-item>summary>.status{max-width:10rem}}

/* ===================================================================
   September 2026 story pass. Human problem first, campaign given room,
   evidence kept plain. Typography and whitespace do most of the work;
   borders are thin rules, not boxes. Reuses the existing tokens.
   =================================================================== */
.status.unclear{color:var(--unk);background:rgba(110,99,85,.07);border-color:rgba(110,99,85,.45)}
.hero .lead-close{margin-top:14px;color:var(--ink);font-weight:600}
.hero-media-label{font-size:13px;line-height:1.4}

/* Human problem */
.problem-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;border-top:1px solid var(--border)}
.problem{padding-top:20px}
.problem h3{font-size:22px}
.problem p{margin-top:8px;color:var(--ink-2);font-size:16px;line-height:1.55}
.voices{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px;margin-top:46px}
.voice{margin:0;padding-left:20px;border-left:3px solid var(--terra)}
.voice blockquote{margin:0}
.voice blockquote p{font-family:var(--serif);font-size:clamp(21px,2.1vw,26px);line-height:1.35;color:var(--ink)}
.voice figcaption{margin-top:10px;color:var(--ink-2);font-size:14px;font-weight:600}
.voice-source{grid-column:1/-1;font-size:15px}

/* Campaign manifesto */
.manifesto{background:var(--brand);color:var(--ivory);padding:clamp(72px,10vw,140px) 0}
.manifesto-line{max-width:20ch;font-family:var(--serif);font-weight:600;font-size:clamp(34px,5.2vw,68px);line-height:1.08;letter-spacing:-.03em;color:var(--ivory);text-wrap:balance}
.manifesto-body{max-width:60ch;margin-top:clamp(36px,5vw,60px);margin-left:auto}
.manifesto-kicker{font-family:var(--serif);font-size:clamp(22px,2.4vw,28px);font-weight:600;color:var(--terra-light);margin-bottom:12px}
.manifesto p{color:rgba(251,247,239,.88);font-size:18px}
.manifesto .text-link,.dark .text-link{color:var(--ivory)}
.btn-light{background:var(--ivory);border-color:var(--ivory);color:var(--brand)}
.btn-light:hover{background:#fff;border-color:#fff}
.demand-lines{list-style:none;display:grid;gap:clamp(10px,1.6vw,18px)}
.demand-lines li{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3.6vw,48px);line-height:1.15;letter-spacing:-.025em;color:var(--ivory);max-width:26ch}
.dark-aside{margin-top:22px;font-size:15px}
.dark-aside a{color:var(--ivory);font-weight:700}

/* Tracker preview on the homepage */
.preview-caps{border-top:1px solid var(--border)}
.preview-cap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.9fr);gap:24px;align-items:center;padding:18px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.preview-cap:hover{background:rgba(255,255,255,.55)}
.pc-name strong{display:block;font-family:var(--serif);font-size:21px;font-weight:600}
.pc-name small,.pc-count small{display:block;color:var(--ink-2);font-size:14px;font-weight:400}
.pc-bar{display:flex;height:12px;border-radius:2px;overflow:hidden;background:var(--ivory-2)}
.pc-bar i{display:block;min-width:0}
.pc-bar i.ok{background:var(--ok)}
.pc-bar i.none{background:var(--no)}
.pc-bar i.unclear{background:repeating-linear-gradient(90deg,#B9AE9C 0 6px,#D9CEB8 6px 10px)}
.pc-count{font-weight:700;font-size:15px}
.preview-key{margin-top:18px;color:var(--ink-2);font-size:15px}
.preview-updated{padding-top:10px;color:var(--unk);font-size:13px}

/* What TokataHQ does */
.does-list{list-style:none;counter-reset:does;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.does-list li{counter-increment:does;padding-top:18px;border-top:2px solid var(--brand)}
.does-list li::before{content:"0" counter(does);display:block;margin-bottom:14px;color:var(--terra);font-family:var(--serif);font-size:18px;font-weight:700}
.does-list h3{font-size:clamp(23px,2.3vw,28px)}
.does-list p{margin-top:10px;color:var(--ink-2);font-size:16.5px}
.does-ask{margin-top:40px;font-family:var(--serif);font-size:clamp(20px,2.1vw,25px);line-height:1.4;max-width:46ch;color:var(--ink)}

/* Existing ecosystem */
.ecosystem-block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:start}
.ecosystem-block h2{max-width:16ch}
.ecosystem-block p{margin-top:16px;color:var(--ink-2);font-size:17px}
.ecosystem-names{list-style:none;border-top:1px solid var(--border)}
.ecosystem-names li{display:grid;gap:2px;padding:15px 0;border-bottom:1px solid var(--line)}
.ecosystem-names a{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--ink);text-decoration-thickness:1px;text-underline-offset:4px}
.ecosystem-names a:hover{color:var(--terra)}
.ecosystem-names span{color:var(--ink-2);font-size:15px}

/* Recent activity */
.activity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-bottom:12px}
.activity-item{display:grid;gap:8px;align-content:start;text-decoration:none;color:var(--ink)}
.activity-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;margin-bottom:6px}
.activity-item .update-date{margin:0}
.activity-item strong{font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.25}
.activity-item:hover strong{color:var(--terra)}

/* Next actions */
.next-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;border-top:1px solid var(--border)}
.next-list a{display:grid;gap:4px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.next-list strong{font-family:var(--serif);font-size:22px;font-weight:600}
.next-list strong::after{content:" →";color:var(--terra)}
.next-list span{color:var(--ink-2);font-size:15.5px}
.next-list a:hover strong{color:var(--terra)}

/* Campaign page */
.campaign-head h1{max-width:18ch}
.steps{list-style:none;counter-reset:steps;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;border-top:1px solid var(--border)}
.steps li{counter-increment:steps;display:grid;gap:8px;padding-top:18px;align-content:start}
.steps li::before{content:counter(steps);color:var(--terra);font-family:var(--serif);font-size:30px;font-weight:700;line-height:1}
.steps strong{font-family:var(--serif);font-size:20px;line-height:1.25}
.steps span{color:var(--ink-2);font-size:15.5px}
.steps a{color:var(--terra);font-weight:700}
.asks-measure{margin-top:36px;font-family:var(--serif);font-size:clamp(20px,2vw,24px);max-width:48ch}
.watch-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.discussion-thumb{aspect-ratio:9/16;max-height:260px;display:flex;align-items:flex-end;padding:18px;background:var(--brand)}
.discussion-q{font-family:var(--serif);font-size:19px;line-height:1.25;color:var(--ivory);font-weight:600}

/* About */
.insight-title{font-size:clamp(26px,3vw,36px);margin-bottom:18px}
.insight{font-size:clamp(18px,1.8vw,21px);color:var(--ink);line-height:1.55}
.insight+.insight{margin-top:16px}
.approach{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;border-top:1px solid var(--border)}
.approach>div{padding-top:18px}
.approach h3{font-size:22px}
.approach p{margin-top:8px;color:var(--ink-2);font-size:16px}
.approach a{color:var(--terra);font-weight:700}
.profile h4{font-size:clamp(20px,1.8vw,24px);line-height:1.2}
.profile:hover{background:transparent;padding-left:0;padding-right:0}
.contact-line{margin-top:22px;color:var(--ink-2);font-size:15px}
.contact-line a{color:var(--terra);font-weight:700}
.pillar .text-link{font-size:15px}

/* Tracker legend */
.legend{margin-top:28px;padding:22px 0 6px;border-top:1px solid var(--border);border-bottom:1px solid var(--line);max-width:900px}
.legend-title{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:14px}
.legend-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px}
.legend-list>div{display:grid;grid-template-columns:9.5rem 1fr;gap:12px;align-items:start}
.legend-list dd{margin:0;color:var(--ink-2);font-size:15px;line-height:1.5}
.page-head .legend-list dd{margin:0;font-size:15px}
.evidence-tag{display:inline-block;font-size:12.5px;font-weight:600;color:var(--ink-2);line-height:1.3}
dt>.evidence-tag{padding:5px 10px;border:1px dashed var(--border);border-radius:100px;color:var(--ink)}
.status-cell{display:grid;gap:5px;justify-items:start}
.unknown-why{margin-top:18px}
.unknown-why summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--terra);font-weight:700;font-size:15px}
.unknown-why p{margin:4px 0 8px;font-size:15.5px;color:var(--ink-2)}
.legend-more{margin-top:0}
.page-head .legend-more{margin-top:0}

/* Resources */
.builder-help{margin-top:22px;color:var(--ink-2);font-size:15.5px}

/* Updates: editorial stories, alternating media */
.story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);align-items:start;padding:clamp(34px,4vw,52px) 0;border-top:1px solid var(--line)}
.story:first-child{border-top:0;padding-top:0}
.story-media img{width:100%;border-radius:4px;object-fit:cover}
.story .portrait-crop{aspect-ratio:1/1;object-position:center 30%;max-width:420px}
.story-media{display:block;position:relative}
.story-thumb{max-width:300px}
.story h2{font-size:clamp(24px,2.7vw,34px);line-height:1.12}
.story p{margin-top:14px;color:var(--ink-2);font-size:16.5px}
.story-dek{font-family:var(--serif);font-size:clamp(19px,1.9vw,23px)!important;color:var(--ink)!important;line-height:1.4}
.story-lead{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.story-lead h2{font-size:clamp(28px,3.4vw,44px)}
.story-video{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.story .cta-row{align-items:center}

/* Volunteering */
.volunteer-areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;border-top:1px solid var(--border)}
.volunteer-areas>div{padding-top:18px}
.volunteer-areas dt{font-family:var(--serif);font-size:21px;font-weight:600}
.volunteer-areas dd{margin:8px 0 0;color:var(--ink-2);font-size:15.5px}
.unpaid-note{font-weight:700;color:var(--ink)}

@media(max-width:1040px){
  .problem-list,.volunteer-areas,.steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  .voices,.ecosystem-block,.story,.story-lead,.story-video,.legend-list{grid-template-columns:1fr}
  .does-list,.approach,.activity{grid-template-columns:1fr;gap:26px}
  .preview-cap{grid-template-columns:1fr 1fr;gap:10px 18px}
  .pc-bar{grid-column:1/-1;grid-row:2}
  .next-list{grid-template-columns:1fr}
  .watch-grid{grid-template-columns:1fr 1fr}
  .activity-item{grid-template-columns:120px 1fr;column-gap:16px;align-items:center}
  .activity-item img{grid-row:1/3;margin:0}
  .story .portrait-crop{max-width:260px}
  .story-lead .story-media img{max-width:360px}
}
@media(max-width:640px){
  .problem-list,.volunteer-areas,.steps,.watch-grid{grid-template-columns:1fr;gap:18px}
  .manifesto-body{margin-left:0}
  .manifesto p{font-size:17px}
  .legend-list>div{grid-template-columns:1fr;gap:6px}
  .preview-cap{grid-template-columns:1fr}
  .pc-bar{grid-row:auto}
  .activity-item{grid-template-columns:96px 1fr}
  .activity-item strong{font-size:17px}
  .story-thumb{max-width:220px}
  .voices{margin-top:34px}
  .status-cell{justify-items:end;text-align:right}
  .cta-row .text-link{justify-content:center}
}
@media(max-width:640px){.tracker-item summary .status-cell{grid-column:2;grid-row:1;max-width:140px}.tracker-item summary .status-cell .status{max-width:100%}}
.status-cell .status{grid-column:auto!important;grid-row:auto!important}
.manifesto .manifesto-line{max-width:20ch;font-family:var(--serif);font-weight:600;font-size:clamp(34px,5.2vw,68px);line-height:1.08;letter-spacing:-.03em;color:var(--ivory)}
.manifesto .manifesto-kicker{font-family:var(--serif);font-size:clamp(22px,2.4vw,28px);font-weight:600;color:var(--terra-light);margin-bottom:12px}
h1,h2,h3{text-wrap:balance}
.dark h2+p{margin-top:14px}
.discussion-q{font-size:15px}
@media(max-width:860px){.story:not(.story-video) .story-media{max-width:280px}.story-lead .story-media{max-width:340px}}
.activity-item img,.story-media img{background:var(--ivory-2)}

/* ===================================================================
   Speech-recognition focus pass (Sept 2026): feature-level tracker,
   community testing, company advocacy. Same tokens and type.
   =================================================================== */
.status.notfound{color:var(--terra-dark);background:rgba(135,47,19,.08);border-color:rgba(135,47,19,.45)}
.pc-bar i.notfound{background:var(--terra-dark)}
.tracker-tagline{font-family:var(--serif);font-size:clamp(19px,2vw,23px)!important;color:var(--ink)!important;margin-top:14px!important}
.tracker-head .cta-row{margin-top:22px}
.legend-evidence{margin-top:16px!important;font-size:15px!important}
.legend-list>div{grid-template-columns:13rem 1fr}
.evidence-tag.tested,.evidence-tag.community{color:var(--ink)}
.status-cell small{max-width:15rem}
.group-blurb{margin:10px 0 4px;color:var(--ink-2);font-size:15px}
.tracker-group>h3{margin-bottom:0}
.tracker-group .tracker-item:first-of-type{border-top:0}
.row-note{color:var(--ink);font-size:16px;max-width:70ch}
.row-facts{display:grid;gap:8px;margin:14px 0 0;font-size:14px}
.row-facts>div{display:grid;grid-template-columns:11rem 1fr;gap:12px}
.row-facts dt{font-weight:700;color:var(--ink)}
.row-facts dd{margin:0;color:var(--ink-2)}
.row-facts a{color:var(--terra);font-weight:700}
.row-test{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:20px;padding:16px 18px;background:var(--ivory-2);border-radius:6px}
.row-test p{margin:0;color:var(--ink);font-size:15px}
.ask-cost{font-size:15px;color:var(--ink-2)}
.row-others h4{font-family:var(--sans);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:4px 0 8px}
.row-others ul{list-style:none;border-top:1px solid var(--line)}
.row-others li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.row-others .status{font-size:12px;padding:3px 9px;flex-shrink:0}
.other-caps{margin-top:40px;padding-top:28px;border-top:2px solid var(--border)}
.other-title{font-size:26px}
.test-asks{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;border-top:1px solid var(--border)}
.test-asks a{display:grid;gap:6px;height:100%;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.test-asks strong{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.3}
.test-asks span{color:var(--ink-2);font-size:14.5px}
.test-asks em{font-style:normal;font-weight:700;color:var(--terra);font-size:14.5px}
.test-asks em::after{content:" →"}
.test-asks a:hover strong{color:var(--terra)}
.test-asks-compact{grid-template-columns:1fr}
.test-note{margin-top:18px;color:var(--ink-2);font-size:15px}
.test-block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:start}
.test-block p{margin-top:14px;color:var(--ink-2);font-size:17px}
.focus-head{max-width:820px;margin-bottom:34px}
.focus-head h2{font-size:clamp(32px,4.2vw,52px);line-height:1.06}
.focus-lead{margin-top:18px;font-size:clamp(17px,1.7vw,20px);color:var(--ink);line-height:1.55;max-width:62ch}
.problem-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.does-four{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.does-four h3{font-size:clamp(20px,1.9vw,23px)}
.activity-graphic{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;border-radius:4px;background:var(--brand);color:var(--ivory);font-family:var(--serif);font-size:44px;font-weight:700;margin-bottom:6px}
.builder-line{margin-top:22px;color:var(--ink-2);font-size:15px}
.builder-line .text-link{min-height:0;display:inline}
.gi-jump{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.gi-jump a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--border);border-radius:4px;text-decoration:none;font-size:15px;font-weight:600;color:var(--ink)}
.gi-jump a:hover{background:var(--brand);border-color:var(--brand);color:var(--ivory)}
.start-note-inline{display:block;margin-top:6px;font-style:normal;font-weight:700;color:var(--terra);font-size:13px}
.test-intro{color:var(--ink-2);font-size:15px}
.test-context{padding:12px 14px;border-left:3px solid var(--terra);background:var(--ivory);font-size:14.5px;color:var(--ink)}
.choice-group{border:0;padding:0;margin:0;display:grid;gap:10px}
.choice-group legend{font-size:14px;font-weight:700;margin-bottom:8px;padding:0}
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.choices label{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:15px;cursor:pointer}
.choices input{width:20px;height:20px;accent-color:var(--terra)}
.choices label:has(input:checked){border-color:var(--terra);box-shadow:0 0 0 2px rgba(163,57,26,.2)}
.evidence-uploads{display:grid;gap:12px;padding:16px;border:1px dashed var(--border);border-radius:6px}
.field-label{font-size:14px;font-weight:700}
.field input[type=file]{height:auto;padding:10px;font-size:14px}
.demand-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,56px)}
.demand-label{display:block;margin-bottom:14px;color:var(--terra-light);font-size:12.5px;font-weight:700;letter-spacing:.19em;text-transform:uppercase}
.manifesto .demand-line{font-family:var(--serif);font-weight:600;font-size:clamp(26px,2.8vw,36px);line-height:1.15;letter-spacing:-.02em;color:var(--ivory)}
.demand-three p+p{margin-top:14px;font-size:16px}
.scatter{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;border-top:1px solid var(--border);max-width:980px}
.scatter li{padding:18px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(19px,1.9vw,23px);line-height:1.35}
.scatter-turn{margin-top:28px;font-size:18px;color:var(--ink-2);max-width:60ch}
.together{margin-top:40px;padding:clamp(24px,3vw,36px);background:var(--ivory-2);border-left:3px solid var(--brand);max-width:900px}
.together h3{font-size:clamp(23px,2.4vw,30px)}
.together p{margin-top:12px;color:var(--ink-2);font-size:17px}
.together a{color:var(--terra);font-weight:700}
.together .together-close{font-family:var(--serif);font-size:20px;color:var(--ink)}
.story-graphic{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:4/3;max-width:420px;border-radius:4px;background:var(--brand);color:var(--ivory);font-family:var(--serif)}
.story-graphic span{font-size:64px;font-weight:700;line-height:1}
.story-graphic small{margin-top:8px;font-size:22px;color:var(--terra-light)}
@media(max-width:1040px){.does-four{grid-template-columns:repeat(2,minmax(0,1fr))}.test-asks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.problem-three,.demand-three,.test-block,.scatter{grid-template-columns:1fr}.test-asks{grid-template-columns:1fr}.legend-list>div{grid-template-columns:1fr;gap:6px}.row-facts>div{grid-template-columns:1fr;gap:2px}.activity-graphic{grid-row:1/3;margin:0;font-size:28px}.story-graphic{max-width:280px}}
@media(max-width:640px){.does-four{grid-template-columns:1fr}.choices{grid-template-columns:1fr}.row-test{flex-direction:column;align-items:stretch}.row-test .btn{width:100%}.status-cell small{max-width:9rem}}
.status.notfound{color:var(--warn);background:rgba(138,91,0,.08);border-color:rgba(138,91,0,.45)}
.pc-bar i.notfound{background:#B07A12}
@media(min-width:641px){.tracker-item summary{grid-template-columns:minmax(140px,1fr) minmax(0,1.25fr) minmax(0,15.5rem) 24px}}

/* ===================================================================
   Clarity pass (Sept 2026): one story, fewer competing actions.
   =================================================================== */
.hero-focus{margin-top:18px;padding-left:14px;border-left:3px solid var(--brand);font-size:17px;color:var(--ink);max-width:48ch}
.hero-focus span{font-weight:700}
.focus-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,72px);align-items:center}
.focus-grid h2{font-size:clamp(30px,3.8vw,46px);line-height:1.08}
.focus-grid p{margin-top:16px;font-size:17px;color:var(--ink-2)}
.focus-grid .focus-note{color:var(--ink);font-family:var(--serif);font-size:clamp(18px,1.8vw,21px);line-height:1.4}
.asr-flow{margin:0;display:grid;justify-items:center;gap:8px;text-align:center}
.asr-step{padding:12px 20px;border:1px solid var(--border);border-radius:6px;background:var(--ivory);font-family:var(--serif);font-size:20px;font-weight:600}
.asr-core{background:var(--brand);border-color:var(--brand);color:var(--ivory)}
.asr-core small{display:block;font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;color:var(--terra-light)}
.asr-arrow{color:var(--terra);font-size:22px;line-height:1}
.asr-outputs{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.asr-outputs li{padding:6px 12px;border:1px solid var(--line);border-radius:100px;background:var(--ivory);font-size:14px;font-weight:600}
.asr-flow figcaption{margin-top:10px;color:var(--ink-2);font-size:14.5px;max-width:34ch}
.matters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;border-top:1px solid var(--border)}
.matters>div{padding:20px 0;border-bottom:1px solid var(--line)}
.matters dt{font-family:var(--serif);font-size:22px;font-weight:600}
.matters dd{margin:8px 0 0;color:var(--ink-2);font-size:16px;max-width:52ch}
.manifesto .manifesto-body p+p{margin-top:16px}
.how-steps{list-style:none;counter-reset:how;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}
.how-steps li{counter-increment:how;padding-top:16px;border-top:2px solid var(--brand)}
.how-steps li::before{content:counter(how);display:block;margin-bottom:10px;color:var(--terra);font-family:var(--serif);font-size:30px;font-weight:700;line-height:1}
.how-steps h3{font-size:clamp(19px,1.7vw,22px)}
.how-steps p{margin-top:8px;color:var(--ink-2);font-size:15.5px}
.preview-latest{color:var(--ink)!important}
.ask-list{list-style:none;border-top:1px solid var(--border);max-width:760px}
.ask-list li{padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(19px,2vw,23px)}
.action-tier{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:4px}
.btn-large{min-height:56px;padding:14px 28px;font-size:17px}
.asks-full{list-style:none;counter-reset:ask;border-top:1px solid var(--border);max-width:900px}
.asks-full li{counter-increment:ask;display:grid;grid-template-columns:3rem 1fr;gap:4px 18px;padding:24px 0;border-bottom:1px solid var(--line)}
.asks-full li::before{content:counter(ask);grid-row:1/3;color:var(--terra);font-family:var(--serif);font-size:30px;font-weight:700;line-height:1}
.asks-full h3{font-size:clamp(22px,2.3vw,28px)}
.asks-full p{color:var(--ink-2);font-size:16.5px}
.press-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,4vw,56px)}
.press-grid h3{font-size:20px;margin-bottom:10px}
.press-boiler{font-size:16.5px;color:var(--ink);padding:16px 18px;background:var(--ivory-2);border-left:3px solid var(--brand)}
.press-grid p+p{margin-top:12px}
.press-grid a{color:var(--terra);font-weight:700}
.press-links{list-style:none;display:grid;gap:10px;font-size:15.5px}
.effort-list{list-style:none;display:grid;gap:0;margin-top:22px;border-top:1px solid var(--border)}
.effort-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.effort-list strong{font-family:var(--serif);font-size:20px;font-weight:600}
.effort-list span{color:var(--ink-2);font-size:14px;white-space:nowrap}
.effort-list a:hover strong{color:var(--terra)}
.gi-builders{margin-top:16px!important;font-size:15px!important}
.row-facts>div{grid-template-columns:9rem 1fr}
.row-how{margin-top:12px}
.row-how>summary{cursor:pointer;min-height:40px;display:flex;align-items:center;color:var(--terra);font-weight:700;font-size:14px}
@media(max-width:1040px){.how-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.focus-grid,.press-grid{grid-template-columns:1fr}.matters{grid-template-columns:1fr}.how-steps{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.how-steps{grid-template-columns:1fr}.action-tier{flex-direction:column;align-items:stretch}.action-tier .text-link{justify-content:center}.effort-list a{flex-direction:column;align-items:flex-start;gap:2px}.asks-full li{grid-template-columns:2rem 1fr}.row-facts>div{grid-template-columns:1fr}}
.legend-compact{margin:18px 0 26px;padding:16px 0 4px;max-width:none}
.legend-compact .legend-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px}
.legend-compact .legend-list>div{grid-template-columns:1fr;gap:6px}
.legend-compact .legend-list dd{font-size:13.5px}
.legend-compact .unknown-why{margin-top:8px}
.results-questions{margin-top:0}
@media(max-width:860px){.legend-compact .legend-list{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.legend-compact .legend-list{grid-template-columns:1fr}}
