/* WFEO website concept B, "Engineering, worldwide" (Clearview, 13 Oct 2026).
   Light, editorial, map-led. Keeps WFEO's logo, navy #0E1C41 and link blue #115578; teal #65AAB2 is
   decoration only (2.64:1 on white). Type: Fraunces (headings) + Public Sans (text), SIL OFL, self-hosted.
   Region colours are WFEO-blue-anchored and each >= 4.09:1 against the grey of non-member land. */

@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url(../files/fraunces-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url(../files/fraunces-600-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:500;font-display:swap;src:url(../files/fraunces-500i.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:500;font-display:swap;src:url(../files/fraunces-500i-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(../files/publicsans.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(../files/publicsans-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --ink:#16181d; --muted:#5b6169; --line:#dcd8ce; --line-2:#c9c4b8;
  --paper:#f6f4ef; --white:#fff;
  --navy:#0e1c41; --blue:#115578; --teal:#65aab2;
  --illus-ink:#6b4500; --illus-bg:#fff8eb; --illus-line:#a46a00;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Public Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --wrap:76rem; --gutter:1rem;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.6;overflow-wrap:break-word}
img,svg{max-width:100%}
img{height:auto;display:block}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0 0 .5em;color:var(--navy);letter-spacing:-.01em}
h1{font-size:clamp(2.25rem,1.5rem + 3.2vw,4rem)}
h2{font-size:clamp(1.5rem,1.25rem + 1.1vw,2.125rem)}
h3{font-size:1.25rem}
h4{font-family:var(--sans);font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
p,ul,ol,dl{margin:0 0 1rem}
a{color:var(--blue);text-decoration-thickness:.07em;text-underline-offset:.2em}
a:hover{text-decoration-thickness:.14em}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
main:focus{outline:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:46rem}
.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{position:absolute;left:.5rem;top:-10rem;z-index:100;background:var(--navy);color:#fff;padding:.6rem 1rem;font-weight:600}
.skip:focus{top:.5rem}
.small{font-size:.9375rem}
.muted{color:var(--muted)}
.ext{font-size:.8em;margin-left:.15em;text-decoration:none;display:inline-block}
.kicker{font-family:var(--sans);font-size:.8125rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
.lede{font-size:clamp(1.125rem,1.05rem + .35vw,1.3125rem);line-height:1.5;color:var(--ink)}
.source{font-size:.875rem;color:var(--muted);border-top:1px solid var(--line);padding-top:.5rem;margin-top:1.25rem}
.source a{color:var(--muted)}
.illus{display:inline-block;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--illus-ink);background:var(--illus-bg);border:1px dashed var(--illus-line);padding:.05rem .45rem;border-radius:2px;vertical-align:.1em}
.illus-box{border:1px dashed var(--illus-line);background:var(--illus-bg);padding:1rem 1.25rem;margin:1rem 0}
.illus-box h2,.illus-box h3{margin-top:.5rem}
.illus-box>:last-child{margin-bottom:0}
.finding{border-left:4px solid var(--navy);background:var(--paper);padding:.9rem 1.1rem;margin:1.5rem 0}
.finding p{margin:0}
.btn{display:inline-block;background:var(--navy);color:#fff;font-weight:600;text-decoration:none;padding:.65rem 1.1rem;border:2px solid var(--navy);border-radius:2rem;line-height:1.3;font-family:var(--sans);font-size:1rem;cursor:pointer;max-width:100%;overflow-wrap:anywhere}
.btn:hover{background:#fff;color:var(--navy)}
.btn.ghost{background:#fff;color:var(--navy)}
.btn.ghost:hover{background:var(--paper)}

/* ribbon + masthead */
.ribbon{background:var(--ink);color:#fff;font-size:.875rem;line-height:1.4}
.ribbon .wrap{padding-top:.35rem;padding-bottom:.35rem}
.ribbon p{margin:0}
.ribbon a{color:#fff;font-weight:600}
.ribbon .rib-more a{font-weight:400}
.ribbon :focus-visible{outline-color:#fff}
.masthead{border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:20}
.bar .wrap{display:flex;align-items:center;gap:.75rem 1.5rem;padding-top:.6rem;padding-bottom:.6rem;flex-wrap:wrap}
.brand{flex:0 0 auto;display:block;border-radius:3px;overflow:hidden}
.brand img{width:10.5rem}
.quick{flex:1 1 auto}
.quick ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.quick a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.9375rem;padding:.35rem 0;border-bottom:2px solid transparent}
.quick a:hover,.quick a[aria-current]{border-bottom-color:var(--navy);color:var(--navy)}
.bar-end{display:flex;align-items:center;gap:.5rem 1rem;margin-left:auto;flex-wrap:wrap}
.bar-link{font-size:.9375rem;font-weight:600;color:var(--blue)}
.explore-btn{display:inline-flex;align-items:center;gap:.5rem;font:600 .9375rem var(--sans);color:#fff;background:var(--navy);border:2px solid var(--navy);border-radius:2rem;padding:.45rem .95rem;cursor:pointer;min-height:2.75rem}
.explore-btn svg{width:1rem;height:1rem}
.explore-btn[aria-expanded="true"]{background:#fff;color:var(--navy)}
.explore{background:var(--paper);border-top:1px solid var(--line)}
.js .explore:not(.open){display:none}
.explore .wrap{padding-top:1.5rem;padding-bottom:1.25rem}
.ex-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1.25rem 2rem}
.ex-h{font-family:var(--sans);font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.5rem}
.explore ul{list-style:none;margin:0;padding:0}
.explore li{border-top:1px solid var(--line)}
.explore li a{display:block;padding:.4rem 0;color:var(--ink);text-decoration:none;font-weight:500}
.explore li a:hover,.explore li a[aria-current]{color:var(--blue);text-decoration:underline}
.ex-lang{font-size:.9375rem;margin:1.25rem 0 0;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
@media (max-width:63.99rem){.quick{display:none}}
@media (max-width:40rem){.bar-link{display:none}.brand img{width:8.75rem}.rib-more{display:none}}

/* page head + sections */
.pagehead{padding:clamp(2rem,1.2rem + 3vw,4rem) 0 clamp(1.25rem,1rem + 1vw,2rem);border-bottom:1px solid var(--line)}
.pagehead h1{max-width:20ch}
.pagehead .lede{max-width:44rem;margin-bottom:0}
.section{padding:clamp(2rem,1.4rem + 2.5vw,4rem) 0}
.paper{background:var(--paper)}
.sec-head{max-width:44rem;margin-bottom:1.5rem}
.split{display:grid;gap:2rem 3rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:56rem){.split{grid-template-columns:1fr 1fr}.split.wide-left{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
.side>*:first-child{margin-top:0}
.plain{list-style:none;padding:0}
.ticks{list-style:none;padding:0}
.ticks li{position:relative;padding-left:1.5rem;margin-bottom:.5rem}
.ticks li::before{content:"";position:absolute;left:0;top:.6em;width:.7rem;height:.7rem;border-radius:50%;border:2px solid var(--teal)}

/* hero */
.hero{padding:clamp(2.5rem,1.5rem + 4vw,5rem) 0 1.5rem}
.hero h1{font-size:clamp(2.75rem,1.4rem + 6vw,6rem);line-height:1;margin-bottom:1.25rem}
.hero h1 em{font-style:italic;font-weight:500;color:var(--blue)}
.hero .lede{max-width:40rem}

/* atlas (map) */
.atlas{padding-bottom:3rem}
.atlas-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.5rem 2rem;margin-bottom:.75rem}
.atlas-top h2{margin:0}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.875rem}
.legend li{display:flex;align-items:center;gap:.4rem}
.sw{display:inline-block;width:.9rem;height:.9rem;border-radius:2px;background:var(--c)}
.sw-intl{background:#aeb6c0}.sw-none{background:#e3e6eb;border:1px solid #c5cad2}
.map-fig{margin:0 0 1.25rem;background:#f3f6f8;overflow:hidden;contain:paint;border:1px solid var(--line);padding:.5rem}
.map-fig figcaption{font-size:.875rem;color:var(--muted);padding:.5rem .25rem 0}
.atlas-map{display:block;width:100%;height:auto}
.atlas-map .c{fill:#e3e6eb;stroke:#fff;stroke-width:.6px;vector-effect:non-scaling-stroke;stroke-linejoin:round;transition:fill-opacity .2s}
.atlas-map .r-africa{fill:#b4461a}.atlas-map .r-americas{fill:#115578}.atlas-map .r-arab-region{fill:#8a6100}
.atlas-map .r-asia-pacific{fill:#2f7d32}.atlas-map .r-europe{fill:#6d3f8f}.atlas-map .r-intl{fill:#aeb6c0}
.atlas-map .dot{stroke:#fff;stroke-width:1px;vector-effect:non-scaling-stroke}
.is-interactive [data-iso]{cursor:pointer}
.is-interactive [data-iso]:hover{stroke:var(--ink);stroke-width:1.5px}
.atlas-map [data-iso].is-on{stroke:var(--ink);stroke-width:2.2px}
.atlas-map[data-active] [data-iso]{fill-opacity:.28}
.atlas-map[data-active="africa"] .r-africa,.atlas-map[data-active="americas"] .r-americas,.atlas-map[data-active="arab-region"] .r-arab-region,
.atlas-map[data-active="asia-pacific"] .r-asia-pacific,.atlas-map[data-active="europe"] .r-europe{fill-opacity:1}
.region-map .atlas-map{max-height:32rem}
.atlas-ui{display:grid;gap:1.5rem 2.5rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:56rem){.atlas-ui{grid-template-columns:19rem minmax(0,1fr)}}
.mini-h{font-family:var(--sans);font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.6rem}
.rbtns{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.5rem}
.rbtn{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line-2);border-left:.5rem solid var(--c);padding:.6rem .85rem;font:inherit;color:var(--ink);cursor:pointer;border-radius:2px}
.rbtn:hover{background:var(--paper)}
.rbtn[aria-pressed="true"]{background:var(--paper);border-color:var(--ink);border-left-color:var(--c);box-shadow:inset 0 0 0 1px var(--ink)}
.rbtn-name{display:block;font-family:var(--serif);font-weight:600;font-size:1.1875rem;color:var(--navy)}
.rbtn-n{display:block;font-size:.875rem;color:var(--muted)}
.panel-hint{color:var(--muted);border:1px dashed var(--line-2);padding:1rem}
.rpanel-head{border-bottom:1px solid var(--line);margin-bottom:.75rem}
.rpanel-head h3{font-size:1.5rem;margin-bottom:.25rem}
.cty-list{columns:2 18rem;column-gap:2rem}
@media (max-width:40rem){.cty-list,.cty-rows,.orgs.cols{columns:1}}
.cty{break-inside:avoid;border-bottom:1px solid var(--line)}
.cty summary{display:flex;justify-content:space-between;gap:1rem;padding:.45rem .25rem;cursor:pointer;font-weight:600;list-style-position:inside}
.cty summary::-webkit-details-marker{color:var(--muted)}
.cty summary span:first-child{flex:1}
.cty[open] summary{color:var(--blue)}
.cty.is-on{background:var(--paper)}
.cnt{font-weight:400;color:var(--muted);font-size:.875rem}
.orgs{list-style:none;padding:0;margin:0 0 .75rem}
.org{padding:.45rem 0 .45rem .75rem;border-left:2px solid var(--line)}
.org+.org{margin-top:.25rem}
.org-name{margin:0;font-weight:600;line-height:1.35}
.org-meta{margin:0;font-size:.875rem;color:var(--muted)}
.note{margin:.15rem 0 0;font-size:.8125rem;color:var(--muted);font-style:italic}
.orgs.cols{columns:2 20rem;column-gap:2rem}
.orgs.cols .org{break-inside:avoid}
.figures{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:1rem 2rem;border-top:2px solid var(--navy);padding-top:1rem}
.figures li{font-size:.9375rem;color:var(--muted);line-height:1.35}
.figures b{display:block;font-family:var(--serif);font-weight:600;font-size:clamp(2.25rem,1.8rem + 1.5vw,3.25rem);color:var(--navy);line-height:1}
.figures.stack{grid-template-columns:1fr;margin-top:0}

/* committee hosts */
.hb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1.5rem 2rem}
.hb{border-top:.35rem solid var(--c);padding-top:.75rem}
.hb h3{font-size:1.375rem}
.hb ul,.hosted{list-style:none;padding:0;margin:0}
.hb li,.hosted li{padding:.5rem 0;border-bottom:1px solid var(--line)}
.hb-ac{display:inline-block;font:600 .75rem var(--sans);letter-spacing:.05em;color:var(--navy);border:1px solid var(--navy);padding:0 .35rem;border-radius:2px;margin-right:.25rem;vertical-align:.1em}
p.hb-ac{margin:0 0 .4rem}
.hb-host{display:block;font-size:.875rem;color:var(--muted)}
.hosted .chips{display:block;margin-top:.35rem}

/* SDG chips, squares, tiles */
.chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:.25rem 0}
.chip{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 .3rem;background:var(--c);color:var(--t);font:700 .9375rem var(--sans);border-radius:2px}
.chip.sm{min-width:1.6rem;height:1.6rem;font-size:.8125rem}
.sq-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,3.5rem),1fr));gap:.4rem;align-content:start}
.sq{display:flex;align-items:flex-end;aspect-ratio:1;background:var(--c);color:var(--t);text-decoration:none;padding:.35rem .45rem;font:600 1.375rem var(--serif);border-radius:2px}
.sq:hover{outline:3px solid var(--ink);outline-offset:1px}
.tiles{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,10.5rem),1fr));gap:.5rem}
.tile{display:flex;flex-direction:column;gap:.25rem;min-height:9.5rem;background:var(--c);color:var(--t);text-decoration:none;padding:.75rem;border-radius:2px;height:100%}
.tile:hover .tile-t{text-decoration:underline}
.tile-n{font:600 2.25rem/1 var(--serif)}
.tile-t{font-weight:700;line-height:1.25;font-size:.9375rem;flex:1}
.tile-m{font-size:.8125rem;font-weight:600}
.goal{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:1rem;padding:1.5rem 0;border-top:1px solid var(--line-2);scroll-margin-top:1rem}
.goal-badge{width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;background:var(--c);color:var(--t);font:600 1.625rem var(--serif);border-radius:2px}
.goal h3{font-size:1.5rem}
.goal-cols{display:grid;gap:.5rem 2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:48rem){.goal-cols{grid-template-columns:1fr 1.4fr}}
.goal-cols ul li{margin-bottom:.4rem}
.acts li{font-size:.9375rem}
.yr{display:inline-block;font:600 .8125rem var(--sans);color:var(--muted);min-width:3.2rem}
.sdg-filter{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:1rem 0 .25rem}
.sdg-filter label{font-weight:600}
select,input[type=search],input[type=email],input[type=password]{font:inherit;color:var(--ink);background:#fff;border:2px solid #6e747c;border-radius:3px;padding:.5rem .65rem;max-width:100%;min-height:2.75rem}
.count{font-weight:600;margin:.75rem 0}
.bcards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1rem}
.bcard{border:1px solid var(--line-2);padding:1rem;background:#fff}
.bcard h3{font-size:1.1875rem}
.linklist li{padding:.4rem 0;border-bottom:1px solid var(--line)}

/* committee page */
.goal-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.5rem}
.goal-list li{display:flex;gap:.75rem;align-items:flex-start;border:1px solid var(--line);padding:.5rem}
.gl-n{flex:0 0 2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--c);color:var(--t);font:600 1.25rem var(--serif)}
.subs{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:1rem}
.subs li{border-top:3px solid var(--teal);padding-top:.5rem}
.subs h3{font-size:1.0625rem}
.members-area{border:1px solid var(--line-2);padding:1rem 1.25rem;margin-top:2rem;background:var(--paper)}
.facts{border-top:2px solid var(--navy);padding-top:.75rem}
.facts dt{font-size:.8125rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.facts dd{margin:0 0 .75rem}

/* strategic plan */
.pull{margin:0 0 2rem;padding:0;border:0}
.pull p{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.5rem,1.2rem + 1.4vw,2.25rem);line-height:1.25;color:var(--navy);margin-bottom:.5rem}
.pull footer{font-size:.9375rem;color:var(--muted)}
.so-list{list-style:none;padding:0;counter-reset:none;display:grid;gap:0}
.so-list li{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:baseline;padding:.75rem 0;border-top:1px solid var(--line);font-family:var(--serif);font-size:clamp(1.125rem,1rem + .6vw,1.5rem);color:var(--navy);line-height:1.3}
.so-n{flex:0 0 3.5rem;font:600 .875rem var(--sans);letter-spacing:.06em;color:var(--muted)}
.so-big{list-style:none;padding:0}
.so-big li{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1rem;padding:1.25rem 0;border-top:1px solid var(--line-2)}
.so-big .so-n{font:600 2rem/1 var(--serif);color:var(--teal);-webkit-text-stroke:0}
.so-big .so-n{color:var(--navy);font-size:1.625rem;white-space:nowrap}
.outcomes{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.75rem 1.5rem}
.outcomes li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.5rem;align-items:baseline;border-top:1px solid var(--line);padding-top:.5rem;line-height:1.35}
.oc-n{flex:0 0 1.75rem;font:600 1.375rem var(--serif);color:var(--navy)}
.table-wrap{overflow-x:auto;position:relative;border:1px solid var(--line-2);background:#fff;margin:1rem 0}
table{border-collapse:collapse;width:100%;font-size:.9375rem}
caption{text-align:left;font-weight:600;padding:.6rem .75rem}
th,td{border-top:1px solid var(--line);padding:.45rem .6rem;text-align:left;vertical-align:top}
thead th{background:var(--paper)}
.matrix th[scope=col]{text-align:center;min-width:2rem}
.matrix td{position:relative;text-align:center;color:var(--navy);font-size:1.125rem;line-height:1}
.matrix td.on{background:#e8f1f4}
.matrix th[scope=row]{min-width:16rem;font-weight:500}
.sp{display:inline-block;font:600 .75rem var(--sans);color:#fff;background:var(--navy);padding:.05rem .35rem;border-radius:2px;margin-right:.25rem}
abbr[title]{text-decoration:none}

/* editions timeline */
.lanes fieldset{border:0;padding:0;margin:0}
.lanes legend{font-weight:600;margin-bottom:.4rem}
.lanes ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.lanes li{display:flex;align-items:center;gap:.4rem}
.lanes input{width:1.25rem;height:1.25rem;accent-color:var(--navy)}
.lane-sw{display:inline-block;width:.85rem;height:.85rem;border-radius:50%;margin-right:.35rem;vertical-align:-.05em}
.lane-wed{--c:#2c6a72}.lane-hack{--c:#a33a1d}.lane-awards{--c:#8a6100}.lane-fed{--c:#0e1c41}
.lane-sw{background:var(--c)}
.timeline{list-style:none;padding:0;margin:1rem 0 0;border-left:2px solid var(--line-2)}
.yr-row{position:relative;padding:0 0 1.5rem 1.5rem;scroll-margin-top:1rem}
.yr-row::before{content:"";position:absolute;left:-.5rem;top:.6rem;width:.9rem;height:.9rem;border-radius:50%;background:#fff;border:2px solid var(--navy)}
.yr-row.next::before{background:var(--navy)}
.yr-h{font-size:clamp(1.75rem,1.5rem + 1vw,2.5rem);margin-bottom:.4rem;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem}
.yr-flag{font:600 .75rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--navy);padding:.15rem .5rem;border-radius:1rem}
.evs{list-style:none;padding:0;margin:0}
.ev{display:grid;grid-template-columns:minmax(0,10.5rem) minmax(0,1fr);gap:.25rem 1rem;padding:.5rem 0;border-top:1px solid var(--line)}
@media (max-width:36rem){.ev{grid-template-columns:minmax(0,1fr)}}
.lane-tag{justify-self:start;font:600 .75rem/1.3 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--c);padding:.2rem .5rem;border-radius:2px;height:max-content}
.yr-index ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.yr-index a{display:inline-block;padding:.2rem .5rem;border:1px solid var(--line-2);text-decoration:none;font-weight:600;font-size:.9375rem;border-radius:2px}
.yr-index a:hover{background:var(--paper)}
.side-box{border-top:2px solid var(--navy);padding-top:1rem;margin-top:2rem}
.side-box img{max-width:min(100%,14rem);margin-bottom:1rem}

/* pairs, people, tags */
.pair{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr))}
.pcard{border-top:3px solid var(--navy);padding-top:1rem;scroll-margin-top:1rem}
.illus-box.wide{margin-top:2rem}
.people{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.25rem 1.5rem}
.people li{padding:.5rem 0;border-bottom:1px solid var(--line)}
.people b{display:block}
.people span{font-size:.9375rem;color:var(--muted)}
.rtag{display:inline-block;font:600 .75rem/1.4 var(--sans);color:#fff;background:var(--c);padding:.1rem .45rem;border-radius:2px;text-decoration:none;margin:0 .25rem}
.rtag:hover{text-decoration:underline}
.rtag.plain{background:var(--paper);color:var(--ink);border:1px solid var(--line-2)}
.toc ul{list-style:none;padding:0;border-top:2px solid var(--navy)}
.toc li{border-bottom:1px solid var(--line)}
.toc a{display:block;padding:.45rem 0}
.partner-list li{padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.9375rem}

/* region pages */
.region-nav{border-bottom:1px solid var(--line);background:var(--paper)}
.region-nav ul{list-style:none;margin:0;padding:.5rem 0;display:flex;flex-wrap:wrap;gap:.35rem 1.25rem}
.region-nav a{display:inline-block;padding:.3rem 0;font-weight:600;color:var(--ink);text-decoration:none;border-bottom:3px solid transparent}
.region-nav a:hover{border-bottom-color:var(--c)}
.region-nav a[aria-current]{border-bottom-color:var(--c);color:var(--navy)}
.cty-rows{list-style:none;padding:0;columns:2 20rem;column-gap:2.5rem}
.cty-row{break-inside:avoid;padding:.5rem 0 .25rem;scroll-margin-top:1rem}
.cty-row h3{font-size:1.125rem;margin-bottom:.35rem}
.evlist{list-style:none;padding:0}
.evlist li{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:.25rem 1rem;padding:.5rem 0;border-top:1px solid var(--line)}
@media (max-width:36rem){.evlist li{grid-template-columns:minmax(0,1fr)}}
.ev-d{font-weight:600;color:var(--muted);font-size:.9375rem}

/* calendar + news */
.cal{list-style:none;padding:0}
.cal li{display:grid;grid-template-columns:minmax(0,9.5rem) minmax(0,1fr);gap:.25rem 1rem;padding:.55rem 0;border-top:1px solid var(--line-2)}
@media (max-width:36rem){.cal li{grid-template-columns:minmax(0,1fr)}}
.cal time{font-weight:700;color:var(--navy)}
.cal.past time{color:var(--muted)}
.news-mini{list-style:none;padding:0}
.news-mini li{padding:.6rem 0;border-top:1px solid var(--line-2)}
.news-mini h3,.news-list h3{font-family:var(--sans);font-size:1.0625rem;font-weight:600;line-height:1.35;margin:.15rem 0}
.news-mini time,.news-list time{font-size:.875rem;color:var(--muted);font-weight:600}
.where{margin:0;font-size:.875rem;color:var(--muted)}
.news-list{list-style:none;padding:0}
.news-list li{padding:1rem 0;border-top:1px solid var(--line-2)}
.news-list p{margin:.25rem 0 0}

/* finder */
.finder label[for=q]{display:block;font-weight:600;font-family:var(--serif);font-size:1.375rem;color:var(--navy);margin-bottom:.35rem}
.finder-row{display:flex;gap:.5rem;flex-wrap:wrap}
.finder-row input{flex:1 1 14rem;font-size:1.125rem}
.fchips{border:0;padding:0;margin:1rem 0 0}
.fchips legend{font-weight:600;margin-bottom:.4rem}
.fchips ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}
.fchip{font:600 .9375rem var(--sans);background:#fff;color:var(--ink);border:2px solid var(--line-2);border-left:.45rem solid var(--c,var(--muted));border-radius:2rem;padding:.35rem .8rem;cursor:pointer;min-height:2.5rem}
.fchip[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.results .org{padding:.6rem 0 .6rem .75rem}
.none{border:1px dashed var(--line-2);padding:1rem}
.note-box{margin-top:2rem;border-top:2px solid var(--navy);padding-top:1rem}
.note-box h2{font-size:1.25rem}

/* portal */
.signin-card{border:1px solid var(--line-2);padding:1.25rem 1.5rem;background:#fff}
.signin label{display:block;font-weight:600;margin:.75rem 0 .25rem}
.signin input{width:100%}
.signin .btn{margin-top:1rem}
.notice{background:var(--paper);border-left:4px solid var(--navy);padding:.75rem 1rem;font-size:.9375rem}
.status{font-weight:600;color:var(--navy);min-height:1.5rem;margin-top:1rem}

/* footer: keep the bottom-right corner clear for the host's badge */
.foot{background:var(--ink);color:#e9eaee;padding:2.5rem 0 7rem;margin-top:0}
.foot a{color:#fff}
.foot :focus-visible{outline-color:#fff}
.foot h2{font-family:var(--sans);font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;color:#c4c8d0;margin-bottom:.5rem}
.foot ul{list-style:none;padding:0}
.foot li{padding:.15rem 0}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:1.5rem 2rem}
.foot-name{font-family:var(--serif);font-size:1.25rem;color:#fff;line-height:1.25}
.foot-note{font-size:.875rem;color:#c4c8d0;border-top:1px solid #3a3e47;padding-top:1rem;margin-top:1rem;max-width:52rem}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.atlas-map .c[data-iso]{fill:CanvasText}.chip,.tile,.sq,.goal-badge,.gl-n,.lane-tag,.rtag{border:1px solid CanvasText}}

@media (max-width:30rem){.goal-list li{flex-direction:column}.goal{grid-template-columns:minmax(0,1fr)}.so-big li{grid-template-columns:minmax(0,1fr)}.matrix th[scope=row]{min-width:11rem}}
.dot-mark{display:inline-block;width:.75rem;height:.75rem;border-radius:50%;border:.375rem solid var(--navy)}
