/*
Theme Name: ESOK Fieldnote
Theme URI: https://esok.or.ke
Author: Environmental Society of Kenya
Author URI: https://esok.or.ke
Description: The website theme of the Environmental Society of Kenya (ESOK) — a field-document design system: paper, forest-green ink, ochre survey accents, Fraunces headlines and mono field annotations. Includes the full page silo, custom post types for projects, programmes, insights and events, an AJAX form layer, and a generative contour-map hero.
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.7
License: GPL v2 or later
Text Domain: esok
Tags: block-patterns, editor-style, custom-colors, custom-menu, translation-ready
*/

:root{
  --paper:#F3EFE3;--paper-hi:#F8F4E9;--paper-2:#EAE3D0;
  --ink:#1D2B20;--ink-2:#45523F;
  --green:#2C5B31;--deep:#16241A;--deep-2:#111C13;
  --ochre:#C67A2B;--ochre-ink:#96570F;--rust:#A34227;
  --cream:#F1ECDC;--cream-mut:#A3B09A;
  --line:rgba(29,43,32,.15);--line-2:rgba(29,43,32,.42);
  --line-cream:rgba(241,236,220,.18);--line-cream-2:rgba(241,236,220,.4);
  --serif:'Fraunces',Georgia,serif;--sans:'Archivo',sans-serif;--mono:'IBM Plex Mono',monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.locked,body.menu{overflow:hidden}
::selection{background:var(--ochre);color:var(--paper)}
:focus-visible{outline:2px solid var(--ochre-ink);outline-offset:3px}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
svg.lucide{width:1em;height:1em;stroke-width:1.75}
[id]{scroll-margin-top:105px}
body::before{content:"";position:fixed;inset:0;z-index:95;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E")}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--paper-2)}
::-webkit-scrollbar-thumb{background:rgba(29,43,32,.35);border-radius:5px}

/* helpers */
.wrap{width:min(1240px,calc(100% - 3rem));margin-inline:auto}
.mono{font-family:var(--mono)}
.eyebrow{display:flex;align-items:center;gap:.8rem;font:500 11px var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ochre-ink)}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--ochre)}
.h2{font:500 clamp(1.9rem,4.1vw,3.15rem)/1.06 var(--serif);letter-spacing:-.017em;max-width:22ch}
.h1{font:500 clamp(2.4rem,5vw,3.9rem)/1.05 var(--serif);letter-spacing:-.02em}
h1 em,h2 em,h3 em,.band em{font-style:italic;color:var(--ochre-ink)}
.band em{color:var(--ochre)}
.lede{font-size:clamp(1.03rem,1.55vw,1.22rem);line-height:1.7;color:var(--ink-2);max-width:64ch}
.sec{padding:clamp(4.2rem,9vw,7.2rem) 0}
.sec-tight{padding:clamp(3rem,6vw,4.6rem) 0}
.sec-alt{background:var(--paper-2)}
.band{background:var(--deep);color:var(--cream)}
.band .eyebrow{color:var(--ochre)}
.band .lede,.band p{color:var(--cream-mut)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2.5rem;margin-bottom:clamp(2.2rem,5vw,3.4rem)}
.sec-head .h2{max-width:20ch}
.sec-head .aside-link{flex:none;margin-bottom:.4rem}
.arrow-link{display:inline-flex;align-items:center;gap:.5rem;font:500 14px var(--sans);color:var(--ink);border-bottom:1px solid var(--line-2);padding-bottom:3px;transition:.3s;white-space:nowrap}
.arrow-link svg{width:14px;height:14px;transition:transform .35s var(--ease)}
.arrow-link:hover{color:var(--ochre-ink);border-color:var(--ochre-ink)}
.arrow-link:hover svg{transform:translate(3px,-3px)}
.band .arrow-link{color:var(--cream);border-color:var(--line-cream-2)}
.band .arrow-link:hover{color:var(--ochre);border-color:var(--ochre)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ochre);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(198,122,43,.5)}70%{box-shadow:0 0 0 9px rgba(198,122,43,0)}100%{box-shadow:0 0 0 0 rgba(198,122,43,0)}}
html.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}
html.js [data-reveal].on{opacity:1;transform:none}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:.9rem 1.5rem;font:500 14px var(--sans);letter-spacing:.01em;transition:background .3s,color .3s,border-color .3s;flex:none}
.btn svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.btn:hover{background:var(--green);border-color:var(--green);color:var(--paper)}
.btn:hover svg{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-sm{padding:.58rem 1.05rem;font-size:13px}
.btn-ochre{background:var(--ochre);border-color:var(--ochre);color:#241708}
.btn-ochre:hover{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.band .btn{background:var(--ochre);border-color:var(--ochre);color:#241708}
.band .btn:hover{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.band .btn-ghost{background:transparent;color:var(--cream);border-color:var(--line-cream-2)}
.band .btn-ghost:hover{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.btn[disabled]{opacity:.5;cursor:progress}

/* header */
.hdr{position:fixed;inset:0 0 auto;z-index:50;background:rgba(243,239,227,.9);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);border-bottom:1px solid transparent;transition:border-color .35s}
.hdr.scrolled{border-bottom-color:var(--line)}
.hdr-in{display:flex;align-items:center;height:78px;transition:height .35s}
.hdr.scrolled .hdr-in{height:64px}
.logo{display:flex;align-items:center;gap:.72rem}
.logo .mark-img{width:56px;height:auto;flex:none;transition:height .35s,width .35s}
.hdr.scrolled .logo .mark-img{width:46px}
.logo-uploaded img{max-height:60px;width:auto;display:block;transition:max-height .35s}
.hdr.scrolled .logo-uploaded img{max-height:48px}
.nav{display:flex;gap:.15rem;margin-left:auto}
.nav li{display:flex;align-items:center}
.nav a{position:relative;padding:.55rem .82rem;font:500 13.5px var(--sans);color:var(--ink-2);transition:color .3s}
.nav a::after{content:"";position:absolute;left:.82rem;right:.82rem;bottom:.12rem;height:1.5px;background:var(--ochre-ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover{color:var(--ink)}
.nav a:hover::after{transform:scaleX(1)}
.nav .current-menu-item>a,.nav .current_page_item>a,.nav li.current>a{color:var(--ink)}
.nav .current-menu-item>a::after,.nav .current_page_item>a::after,.nav li.current>a::after{transform:scaleX(1)}
.hdr .btn{margin-left:1.2rem}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line-2);border-radius:50%;flex-direction:column;align-items:center;justify-content:center;gap:5px;margin-left:auto}
.burger span{width:17px;height:1.5px;background:var(--ink);transition:.35s var(--ease)}
body.menu .burger span:first-child{transform:translateY(3.25px) rotate(45deg)}
body.menu .burger span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:45;background:var(--paper);transform:translateY(-102%);transition:transform .55s var(--ease);display:flex;flex-direction:column;padding:120px 24px 34px;overflow:auto}
body.menu .mmenu{transform:none}
.mm-links{counter-reset:mm}
.mm-links a{display:flex;align-items:baseline;gap:1.1rem;padding:.85rem 0;border-bottom:1px solid var(--line);font:500 clamp(1.6rem,6.5vw,2.2rem) var(--serif);letter-spacing:-.01em}
.mm-links a::before{counter-increment:mm;content:counter(mm,decimal-leading-zero);font:500 11px var(--mono);color:var(--ochre-ink);letter-spacing:.12em}
.mm-foot{margin-top:auto;padding-top:2rem;display:flex;flex-direction:column;gap:1rem}
.mm-foot .mono{font:500 11px var(--mono);letter-spacing:.14em;color:var(--ink-2)}

/* page hero */
.phero{position:relative;padding:172px 0 60px;border-bottom:1px solid var(--line);overflow:hidden}
.phero .rings{position:absolute;right:-70px;top:-50px;width:360px;height:360px;color:var(--ink);opacity:.5;pointer-events:none}
.phero .rings path{fill:none;stroke:currentColor;stroke-width:.55}
.phero h1{max-width:16ch;margin-top:1.4rem}
.phero .lede{margin-top:1.4rem}
.pmeta{display:flex;flex-wrap:wrap;gap:.6rem 2.2rem;margin-top:2.6rem;padding-top:1.2rem;border-top:1px solid var(--line);font:500 10.5px var(--mono);letter-spacing:.18em;color:var(--ink-2)}

/* front hero */
.hero{position:relative;min-height:min(94vh,880px);display:flex;align-items:center;padding:158px 0 96px;overflow:hidden}
#contours{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.anno{position:absolute;font:500 9.5px var(--mono);letter-spacing:.16em;color:var(--ink-2);z-index:2}
.anno.a1{top:112px;right:4.5%}
.anno.a2{bottom:118px;right:4.5%}
.hero-grid{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:4rem;align-items:end;width:min(1240px,calc(100% - 3rem));margin-inline:auto}
.chip-status{display:inline-flex;align-items:center;gap:.6rem;font:500 10.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line-2);padding:.5rem .9rem;margin-bottom:1.8rem}
.hero h1{font:500 clamp(2.7rem,6.3vw,4.9rem)/1.02 var(--serif);letter-spacing:-.022em;max-width:13ch}
.hero-lede{margin-top:1.7rem;max-width:56ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.4rem}
.hero-meta{position:relative;z-index:3;display:flex;justify-content:space-between;gap:1rem;margin-top:4.5rem;padding-top:1rem;border-top:1px solid var(--line);font:500 9.5px var(--mono);letter-spacing:.2em;color:var(--ink-2)}
.sheet{position:relative;border:1px solid var(--line-2);background:rgba(243,239,227,.78);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:1.35rem 1.5rem 1.1rem}
.sheet-top{display:flex;justify-content:space-between;align-items:center;font:500 9.5px var(--mono);letter-spacing:.18em;color:var(--ink-2);padding-bottom:.85rem;border-bottom:1px solid var(--line)}
.sheet-top .live{display:flex;align-items:center;gap:.5rem;color:var(--ochre-ink)}
.sheet dl>div{display:grid;grid-template-columns:110px 1fr;justify-content:start;gap:1rem;padding:.68rem 0;border-bottom:1px solid var(--line)}
.sheet dl>div:last-child{border-bottom:none}
.sheet dt{font:500 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);padding-top:.15rem}
.sheet dd{font:500 12px var(--mono);letter-spacing:.04em}
.sheet dd.st{display:flex;align-items:center;gap:.55rem;color:var(--ochre-ink)}

/* marquees */
.ticker{background:var(--deep);color:var(--cream);overflow:hidden;padding:.9rem 0}
.ticker-track{display:flex;width:max-content;animation:tick 32s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
.tgroup{display:flex}
.tick-item{display:flex;align-items:center;gap:1.7rem;padding-right:1.7rem;font:500 11px var(--mono);letter-spacing:.24em;white-space:nowrap}
.tick-item::after{content:"";width:6px;height:6px;background:var(--ochre);transform:rotate(45deg);flex:none}
.partners{overflow:hidden;border-block:1px solid var(--line);background:var(--paper-2);padding:1.5rem 0}
.partners-track{display:flex;width:max-content;animation:tick 46s linear infinite reverse}
.partners:hover .partners-track{animation-play-state:paused}
.pt-item{display:flex;align-items:center;gap:2.6rem;padding-right:2.6rem;font:500 12px var(--mono);letter-spacing:.18em;color:var(--ink-2);white-space:nowrap}
.pt-item::after{content:"";width:5px;height:5px;border:1px solid var(--ochre-ink);transform:rotate(45deg);flex:none}

/* index lists */
.idx{border-top:1px solid var(--line-2)}
.idx-row{border-bottom:1px solid var(--line)}
.idx-head{display:grid;grid-template-columns:76px minmax(0,1fr) auto 38px;align-items:center;gap:1.2rem;width:100%;text-align:left;padding:1.45rem 0;cursor:pointer}
.idx-num{font:500 13px var(--mono);color:var(--ink-2);transition:color .3s}
.idx-name{font:500 clamp(1.2rem,2.5vw,1.85rem) var(--serif);letter-spacing:-.012em;transition:transform .45s var(--ease)}
.idx-tag{font:500 10px var(--mono);letter-spacing:.22em;color:var(--ink-2)}
.idx-ic{width:36px;height:36px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;transition:.35s}
.idx-ic svg{width:15px;height:15px;transition:transform .4s var(--ease)}
.idx-row:hover .idx-num{color:var(--ochre-ink)}
.idx-row:hover .idx-name{transform:translateX(8px)}
.idx-row.open .idx-ic{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.idx-row.open .idx-ic svg{transform:rotate(45deg)}
.idx-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.idx-row.open .idx-body{grid-template-rows:1fr}
.idx-body>div{overflow:hidden}
.idx-body p{max-width:64ch;padding:0 0 1.8rem 96px;color:var(--ink-2)}
.vrow{display:grid;grid-template-columns:64px 240px minmax(0,1fr);gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.vrow .n{font:500 12px var(--mono);color:var(--ochre-ink)}
.vrow b{font:500 1.3rem var(--serif);letter-spacing:-.01em}
.vrow p{color:var(--ink-2);font-size:15px;max-width:60ch}

/* pillars & photos */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:0}
.pillar{padding-right:3.2rem}
.pillar+.pillar{border-left:1px solid var(--line);padding-left:3.2rem;padding-right:0}
.p-lab{font:500 10.5px var(--mono);letter-spacing:.24em;color:var(--ochre-ink);margin-bottom:1.1rem}
.pillar h3{font:500 clamp(1.5rem,2.4vw,1.95rem) var(--serif);letter-spacing:-.014em}
.pillar>p{color:var(--ink-2);margin:1rem 0 1.6rem;max-width:52ch}
.pillar ul li{position:relative;padding:.42rem 0 .42rem 1.5rem;font-size:15px;color:var(--ink-2)}
.pillar ul li::before{content:"";position:absolute;left:0;top:1.05em;width:12px;height:1.5px;background:var(--ochre-ink)}
.photo{position:relative;overflow:hidden;background:var(--ink);margin-top:2rem}
.photo img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:grayscale(1) sepia(.28) contrast(1.05) brightness(.96);transition:transform .8s var(--ease)}
.photo:hover img{transform:scale(1.045)}
figcaption{font:500 9px var(--mono);letter-spacing:.2em;color:var(--ink-2);padding:.7rem 0 0}
.pillar .arrow-link{margin-top:1.6rem}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2.4rem 3rem}
.stat{border-top:1px solid var(--line-cream-2);padding-top:1.3rem}
.stat b{display:block;font:500 clamp(2.5rem,4.4vw,3.8rem)/1 var(--serif);color:var(--cream);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat span{display:block;font:500 10.5px var(--mono);letter-spacing:.18em;color:var(--cream-mut);margin-top:.75rem;text-transform:uppercase}
.stats-note{margin-top:3rem;font:500 9.5px var(--mono);letter-spacing:.16em;color:var(--cream-mut)}

/* featured & journal */
.feat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:center}
.meta-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 1.7rem}
.mchip{font:500 10px var(--mono);letter-spacing:.14em;border:1px solid var(--line-2);padding:.45rem .8rem;color:var(--ink-2)}
.feat-copy .lede{max-width:56ch}
.jgrid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.jfeat{cursor:pointer;text-align:left;width:100%;display:block}
.jfeat .photo{margin-bottom:1.6rem}
.jr-meta{font:500 10px var(--mono);letter-spacing:.18em;color:var(--ochre-ink)}
.jfeat h3{font:500 clamp(1.45rem,2.4vw,1.9rem) var(--serif);letter-spacing:-.014em;margin:.7rem 0 .8rem;transition:color .3s}
.jfeat:hover h3{color:var(--ochre-ink)}
.jfeat p{color:var(--ink-2);max-width:58ch}
.jfeat .arrow-link{margin-top:1.3rem}
.jlist{border-top:1px solid var(--line-2)}
.jr{display:grid;grid-template-columns:104px minmax(0,1fr) 40px;gap:1.5rem;align-items:center;width:100%;text-align:left;padding:1.35rem 0;border-bottom:1px solid var(--line);cursor:pointer;transition:padding .35s var(--ease)}
.jr:hover{padding-left:10px}
.jr-date{font:500 10px var(--mono);letter-spacing:.14em;color:var(--ink-2)}
.jr-main b{display:block;font:500 1.12rem var(--serif);letter-spacing:-.01em;transition:color .3s}
.jr:hover .jr-main b{color:var(--ochre-ink)}
.jr-main i{display:block;font:500 9.5px var(--mono);letter-spacing:.16em;color:var(--ink-2);font-style:normal;margin-top:.3rem}
.jr-arr{width:34px;height:34px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;color:var(--ink-2);transition:.3s;flex:none}
.jr:hover .jr-arr{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.jr-arr svg{width:14px;height:14px}

/* cta */
.cta-band{padding:clamp(4.5rem,9vw,7.5rem) 0}
.cta-band h2{font:500 clamp(2rem,4.6vw,3.6rem)/1.08 var(--serif);letter-spacing:-.02em;max-width:18ch;color:var(--cream)}
.cta-band .lede{margin:1.5rem 0 2.4rem}
.cta-actions{display:flex;flex-wrap:wrap;gap:1rem}

/* footer */
footer{background:var(--deep-2);color:var(--cream);position:relative;z-index:2}
.ft-top{display:grid;grid-template-columns:1.35fr .8fr .9fr 1.25fr;gap:3rem;padding:clamp(3.5rem,7vw,5.5rem) 0 3.5rem}
.ft-brand .ft-mark{width:64px;height:auto;color:var(--cream)}
.ft-word{font:500 clamp(3rem,6vw,4.4rem)/1 var(--serif);letter-spacing:.01em;margin:1.1rem 0 .8rem}
.ft-brand>p{color:var(--cream-mut);font-size:14.5px;max-width:30ch}
.socs{display:flex;flex-direction:column;gap:.55rem;margin-top:1.8rem}
.socs .soc{display:inline-flex;align-items:center;gap:.5rem;font:500 12px var(--mono);letter-spacing:.14em;color:var(--cream-mut);transition:color .3s}
.socs .soc:hover{color:var(--ochre)}
.socs svg{width:13px;height:13px}
.ft-col h5{font:500 10px var(--mono);letter-spacing:.24em;color:var(--ochre);text-transform:uppercase;margin-bottom:1.3rem}
.ft-col a{display:block;padding:.32rem 0;color:var(--cream-mut);font-size:14.5px;transition:color .3s}
.ft-col a:hover{color:var(--cream)}
.news label{display:block;font:500 10px var(--mono);letter-spacing:.2em;color:var(--cream-mut);margin-bottom:1rem}
.news-row{display:flex;gap:.7rem}
.news input{flex:1;background:transparent;border:1px solid var(--line-cream-2);color:var(--cream);padding:.85rem 1rem;font:400 14px var(--sans);min-width:0}
.news input::placeholder{color:rgba(163,176,154,.7)}
.news input:focus{outline:none;border-color:var(--ochre)}
.news .btn{padding:.7rem .95rem}
.news small{display:block;margin-top:1rem;color:var(--cream-mut);font-size:12px}
.ft-bot{border-top:1px solid var(--line-cream);padding:1.5rem 0;display:flex;flex-wrap:wrap;gap:.8rem 2.5rem;justify-content:space-between;font:500 9.5px var(--mono);letter-spacing:.16em;color:var(--cream-mut)}

/* explorers */
.explorer{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2rem,4vw,3.2rem);align-items:start}
.cat-list{display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.cat-btn{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;text-align:left;padding:1.02rem 1rem;border-bottom:1px solid var(--line);border-left:2px solid transparent;transition:.3s;cursor:pointer}
.cat-btn .n{font:500 11px var(--mono);color:var(--ink-2)}
.cat-btn .t{font:500 1rem var(--sans)}
.cat-btn .f{font:500 10px var(--mono);color:var(--ink-2);letter-spacing:.04em}
.cat-btn:hover{background:rgba(29,43,32,.045)}
.cat-btn.on{background:rgba(29,43,32,.055);border-left-color:var(--ochre)}
.cat-btn.on .n{color:var(--ochre-ink)}
.cat-panel{display:none;border:1px solid var(--line-2);background:var(--paper-hi);padding:clamp(1.6rem,3.4vw,2.6rem)}
.cat-panel.on{display:block}
.cat-panel.swap{animation:panelIn .45s var(--ease)}
@keyframes panelIn{from{opacity:0;transform:translateY(10px)}}
.cat-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-bottom:1.1rem;border-bottom:1px solid var(--line);margin-bottom:1.4rem}
.post{font:500 10.5px var(--mono);letter-spacing:.2em;color:var(--paper);background:var(--green);padding:.4rem .75rem}
.fee{font:500 13px var(--mono);letter-spacing:.05em;color:var(--ochre-ink)}
.cat-panel h3{font:500 clamp(1.5rem,2.6vw,2rem) var(--serif);letter-spacing:-.015em}
.cat-for{color:var(--ink-2);margin:.9rem 0 1.8rem;max-width:62ch}
.cat-cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.mini{font:500 10px var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.85rem}
.ticks li{position:relative;padding:.34rem 0 .34rem 1.45rem;font-size:14.5px;color:var(--ink-2)}
.ticks li::before{content:"";position:absolute;left:0;top:.95em;width:8px;height:4.5px;border-left:1.5px solid var(--ochre-ink);border-bottom:1.5px solid var(--ochre-ink);transform:rotate(-45deg)}
.ticks.x li::before{border:none;width:9px;height:1.5px;background:var(--ink-2);top:1.05em;transform:none}
.cat-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 3.5rem}
.grid2 li{position:relative;padding:.8rem 0 .8rem 2.1rem;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--ink-2)}
.grid2 li b{color:var(--ink);font-weight:500}
.grid2 li::before{content:"";position:absolute;left:0;top:1.42em;width:9px;height:5px;border-left:1.5px solid var(--ochre-ink);border-bottom:1.5px solid var(--ochre-ink);transform:rotate(-45deg)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2.2rem}
.steps.three{grid-template-columns:repeat(3,1fr)}
.steps.five{grid-template-columns:repeat(5,1fr)}
.step{border-top:1px solid var(--line-2);padding-top:1.2rem}
.step .sn{font:500 11px var(--mono);letter-spacing:.18em;color:var(--ochre-ink)}
.step b{display:block;font:500 1.18rem var(--serif);margin:.6rem 0 .5rem;letter-spacing:-.01em}
.step p{font-size:14px;color:var(--ink-2)}

/* forms */
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.6rem}
.fgrid .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:.45rem}
.field label{font:500 10.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.field input,.field select,.field textarea{background:var(--paper);border:1px solid var(--line-2);padding:.85rem 1rem;font:400 15px var(--sans);color:var(--ink);width:100%;transition:border-color .3s}
.field textarea{min-height:140px;resize:vertical}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231D2B20' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ochre-ink)}
.fmsg{display:none;font:500 11px var(--mono);letter-spacing:.08em;color:var(--rust)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--rust)}
.field.bad .fmsg{display:block}
.form-card{background:var(--paper-hi);border:1px solid var(--line-2);padding:clamp(1.8rem,3.6vw,2.8rem)}
.form-card.flash{animation:flash 1.4s var(--ease)}
@keyframes flash{0%,100%{box-shadow:0 0 0 0 rgba(198,122,43,0)}30%{box-shadow:0 0 0 5px rgba(198,122,43,.5)}}
.form-note{font:500 11px var(--mono);letter-spacing:.06em;color:var(--ink-2);margin-top:1.2rem;line-height:1.8}

/* tables */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;min-width:640px}
.tbl th{font:500 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);text-align:left;padding:.85rem .9rem;border-bottom:1px solid var(--line-2)}
.tbl td{padding:1rem .9rem;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink-2);vertical-align:middle}
.td-b{font:500 1.05rem var(--serif);color:var(--ink);letter-spacing:-.01em}
.td-m{font:500 12px var(--mono);letter-spacing:.04em;white-space:nowrap}

/* faq */
.faq{border-top:1px solid var(--line-2)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:1.2rem;align-items:center;width:100%;text-align:left;padding:1.15rem 0;cursor:pointer}
.faq-q b{font:500 clamp(1.05rem,2vw,1.3rem) var(--serif);letter-spacing:-.012em;transition:color .3s}
.faq-q:hover b{color:var(--ochre-ink)}
.faq-ic{width:32px;height:32px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;transition:.35s}
.faq-ic svg{width:13px;height:13px;transition:transform .4s var(--ease)}
.faq-item.open .faq-ic{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.faq-item.open .faq-ic svg{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden}
.faq-a p{padding:0 0 1.6rem;color:var(--ink-2);max-width:66ch}

/* programmes */
.fchips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.2rem}
.fchip{padding:.52rem 1rem;border:1px solid var(--line-2);border-radius:999px;font:500 12.5px var(--sans);color:var(--ink-2);transition:.3s;cursor:pointer}
.fchip:hover:not(.on){border-color:var(--ink);color:var(--ink)}
.fchip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.prog{border-bottom:1px solid var(--line)}
.prog:first-child{border-top:1px solid var(--line-2)}
.prog.hide{display:none}
.prog-head{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:1.4rem;align-items:center;width:100%;text-align:left;padding:1.35rem 0;cursor:pointer}
.prog-meta{font:500 10px var(--mono);letter-spacing:.18em;color:var(--ochre-ink)}
.prog-title{display:block;font:500 clamp(1.15rem,2.2vw,1.55rem) var(--serif);letter-spacing:-.012em;margin-top:.4rem;transition:transform .4s var(--ease)}
.prog-head:hover .prog-title{transform:translateX(8px)}
.prog-ic{width:34px;height:34px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;transition:.35s}
.prog-ic svg{width:14px;height:14px;transition:transform .4s var(--ease)}
.prog.open .prog-ic{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.prog.open .prog-ic svg{transform:rotate(180deg)}
.prog-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.prog.open .prog-body{grid-template-rows:1fr}
.prog-body>div{overflow:hidden}
.prog-body p{max-width:68ch;padding-bottom:1rem;color:var(--ink-2)}
.tags{display:flex;flex-wrap:wrap;gap:.55rem;padding-bottom:1.7rem}
.tag{font:500 10px var(--mono);letter-spacing:.1em;border:1px solid var(--line-2);padding:.4rem .7rem;color:var(--ink-2)}
.evt{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:1.6rem;align-items:center;padding:1.25rem 0;border-bottom:1px solid var(--line)}
.evt:first-of-type{border-top:1px solid var(--line-2)}
.evt-date{text-align:center;border:1px solid var(--line-2);padding:.65rem .4rem;background:var(--paper-hi)}
.evt-date b{display:block;font:500 1.55rem/1 var(--serif)}
.evt-date span{font:500 9px var(--mono);letter-spacing:.16em;color:var(--ink-2)}
.evt-info h4{font:500 1.12rem var(--serif);letter-spacing:-.01em}
.evt-info p{font:500 11px var(--mono);letter-spacing:.1em;color:var(--ink-2);margin-top:.35rem}

/* projects */
.stages{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem}
.stage{border-left:1px solid var(--line-2);padding-left:1.3rem}
.stage .sn{font:500 11px var(--mono);letter-spacing:.18em;color:var(--ochre-ink)}
.stage b{display:block;font:500 1.2rem var(--serif);letter-spacing:-.012em;margin:.55rem 0 .5rem}
.stage p{font-size:13.5px;color:var(--ink-2)}
.pj-list{display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.pj-btn{display:grid;grid-template-columns:12px minmax(0,1fr);gap:1.1rem;align-items:start;text-align:left;padding:1.15rem 1rem;border-bottom:1px solid var(--line);border-left:2px solid transparent;transition:.3s;cursor:pointer}
.pj-dot{width:10px;height:10px;border-radius:50%;margin-top:7px}
.pj-names b{display:block;font:500 1.06rem var(--serif);letter-spacing:-.01em}
.pj-names i{display:block;font:500 9.5px var(--mono);letter-spacing:.14em;color:var(--ink-2);font-style:normal;margin-top:.3rem}
.pj-btn:hover{background:rgba(29,43,32,.045)}
.pj-btn.on{background:rgba(29,43,32,.055);border-left-color:var(--ochre)}
.pj-panel{display:none;border:1px solid var(--line-2);background:var(--paper-hi);padding:clamp(1.6rem,3.4vw,2.6rem)}
.pj-panel.on{display:block}
.pj-panel.swap{animation:panelIn .45s var(--ease)}
.pj-kind{font:500 10px var(--mono);letter-spacing:.2em;color:var(--ochre-ink)}
.pj-panel h3{font:500 clamp(1.45rem,2.6vw,2rem) var(--serif);letter-spacing:-.015em;margin:.55rem 0 .3rem}
.pj-loc{font:500 11px var(--mono);letter-spacing:.14em;color:var(--ink-2)}
.pipe{display:flex;align-items:flex-start;margin:1.8rem 0 2rem}
.pipe-node{display:flex;flex-direction:column;align-items:center;gap:.55rem;width:76px;flex:none}
.pipe-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--line-2);transition:.4s}
.pipe-node.done .pipe-dot{background:var(--ink);border-color:var(--ink)}
.pipe-node.now .pipe-dot{background:var(--ochre);border-color:var(--ochre);box-shadow:0 0 0 5px rgba(198,122,43,.2)}
.pipe-lab{font:500 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);text-align:center}
.pipe-node.now .pipe-lab{color:var(--ochre-ink)}
.pipe-seg{flex:1;height:1.5px;background:var(--line);margin-top:6px;position:relative;overflow:hidden}
.pipe-seg::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.pipe-seg.done::after{transform:scaleX(1)}
.pj-panel .desc{color:var(--ink-2);max-width:70ch}
.pj-metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin:1.8rem 0}
.pm{padding:1.15rem 1.1rem}
.pm+.pm{border-left:1px solid var(--line)}
.pm b{display:block;font:500 clamp(1.2rem,2vw,1.6rem)/1.1 var(--serif);letter-spacing:-.015em}
.pm span{display:block;font:500 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:.5rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.3rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .75rem;border:1px solid var(--line-2);border-radius:999px;font:500 10.5px var(--mono);letter-spacing:.05em;color:var(--ink-2)}
.chip svg{width:13px;height:13px;color:var(--ochre-ink)}
.sdg{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.sdg span{font:500 9.5px var(--mono);letter-spacing:.1em;background:rgba(44,91,49,.1);color:var(--green);padding:.35rem .6rem}
.pj-cta{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.fin-row{display:grid;grid-template-columns:56px 58px minmax(0,1fr);gap:1.6rem;align-items:start;padding:1.7rem 0;border-bottom:1px solid var(--line)}
.fin-row:first-child{border-top:1px solid var(--line-2)}
.fin-num{font:500 12px var(--mono);color:var(--ochre-ink);padding-top:.5rem}
.fin-ic{width:52px;height:52px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center}
.fin-ic svg{width:20px;height:20px}
.fin-row b{font:500 1.3rem var(--serif);letter-spacing:-.012em;display:block}
.fin-row p{color:var(--ink-2);margin-top:.5rem;max-width:72ch}
.pmx-cols{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.ilist{display:grid;grid-template-columns:1fr 1fr;gap:0 3.5rem;margin-top:2.6rem}
.irow{display:grid;grid-template-columns:44px minmax(0,1fr);gap:1.1rem;padding:1.25rem 0;border-bottom:1px solid var(--line-cream)}
.irow .n{font:500 11px var(--mono);color:var(--ochre);padding-top:.25rem}
.irow b{font:500 1.12rem var(--serif);letter-spacing:-.01em;color:var(--cream)}
.irow p{font-size:14px;color:var(--cream-mut);margin-top:.35rem}
.nextlist{counter-reset:nn;margin-top:1.2rem}
.nextlist li{counter-increment:nn;position:relative;padding:.6rem 0 .6rem 2.2rem;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink-2)}
.nextlist li::before{content:counter(nn,decimal-leading-zero);position:absolute;left:0;top:.75rem;font:500 10px var(--mono);color:var(--ochre-ink);letter-spacing:.1em}

/* about */
.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2.5rem,5vw,5rem)}
.split-aside{position:sticky;top:110px;align-self:start}
.facts{border-top:1px solid var(--line-2)}
.facts div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.facts dt{font:500 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.facts dd{font:500 12px var(--mono)}
.prose p{color:var(--ink-2);margin-bottom:1.4rem;max-width:66ch}
.prose p.first::first-letter{font:500 3.6rem/0.85 var(--serif);color:var(--ink);float:left;padding:.35rem .7rem 0 0}
.prose h2{font:500 1.7rem var(--serif);letter-spacing:-.012em;margin:2.4rem 0 .9rem}
.prose h3{font:500 1.3rem var(--serif);letter-spacing:-.01em;margin:2rem 0 .7rem}
.prose blockquote{font:500 italic clamp(1.25rem,2.6vw,1.6rem)/1.35 var(--serif);border-left:3px solid var(--ochre);padding:.4rem 0 .4rem 1.6rem;margin:1.8rem 0;color:var(--ink)}
.prose ul,.prose ol{color:var(--ink-2);margin:0 0 1.4rem 1.3rem;max-width:66ch}
.prose li{margin-bottom:.4rem}
.prose a{color:var(--ochre-ink);text-decoration:underline;text-underline-offset:.15em}
.prose strong{color:var(--ink);font-weight:600}
.prose img{max-width:100%;height:auto}
.prose figure{margin:1.8rem 0}
.prose figcaption{font:500 10px var(--mono);letter-spacing:.1em;color:var(--ink-2);margin-top:.5rem}
.prog-prose,.pj-panel .desc.prose{max-width:none}
.prog-prose p,.pj-panel .desc.prose p{margin-bottom:1rem}
.tl{border-left:1px solid var(--line-2);margin-left:5px}
.tl-row{position:relative;padding:0 0 2.2rem 2.2rem}
.tl-row:last-child{padding-bottom:.4rem}
.tl-row::before{content:"";position:absolute;left:-5.5px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink)}
.tl-year{font:500 12px var(--mono);letter-spacing:.16em;color:var(--ochre-ink)}
.tl-row p{margin-top:.35rem;max-width:58ch;color:var(--ink-2)}
.vm{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.vm .big{font:500 clamp(1.7rem,3.2vw,2.5rem)/1.2 var(--serif);letter-spacing:-.015em;color:var(--cream);max-width:20ch}
.vm .lede{margin-top:0}
.fives{display:flex;flex-wrap:wrap;border-top:1px solid var(--line-cream-2);margin-top:3rem}
.fives span{flex:1 1 200px;display:flex;gap:.8rem;align-items:baseline;padding:1.15rem 1.3rem;border-bottom:1px solid var(--line-cream-2);border-right:1px solid var(--line-cream-2);font:500 10.5px var(--mono);letter-spacing:.16em;color:var(--cream-mut);text-transform:uppercase}
.fives span b{color:var(--ochre);font-weight:500}
.off{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:1.15rem 0;border-bottom:1px solid var(--line)}
.off:first-of-type{border-top:1px solid var(--line-2)}
.mono-av{width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font:500 1.05rem var(--serif);letter-spacing:.02em}
.off-name{font:500 1.1rem var(--serif);letter-spacing:-.01em}
.off-role{display:block;font:500 9.5px var(--mono);letter-spacing:.18em;color:var(--ochre-ink);margin-top:.3rem}
.off-aff{font:500 11px var(--mono);letter-spacing:.06em;color:var(--ink-2);text-align:right}
.com{display:grid;grid-template-columns:220px minmax(0,1fr);gap:1.4rem;padding:.85rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.com b{font:500 1.05rem var(--serif);letter-spacing:-.01em}
.com p{font-size:13.5px;color:var(--ink-2)}
.pull{font:500 italic clamp(1.25rem,2.6vw,1.7rem)/1.4 var(--serif);border-left:3px solid var(--ochre);padding:.4rem 0 .4rem 1.6rem;margin:2.4rem 0;max-width:46ch;color:var(--ink)}
.pull cite{display:block;font:500 10px var(--mono);letter-spacing:.2em;color:var(--ink-2);font-style:normal;margin-top:1rem}
.plate{border:1px solid var(--line-2);background:var(--paper-hi);padding:1.6rem}
.plate svg{width:100%;height:auto;display:block}
.plate-cap{display:flex;justify-content:space-between;gap:1rem;font:500 9px var(--mono);letter-spacing:.18em;color:var(--ink-2);margin-top:1rem;flex-wrap:wrap}

/* ELP modules */
.mods{border-top:1px solid var(--line-2)}
.mod-row{display:grid;grid-template-columns:80px minmax(0,1fr);gap:1.8rem;padding:1.7rem 0;border-bottom:1px solid var(--line)}
.mod-n{font:500 1.7rem/1 var(--serif);color:var(--ochre-ink);padding-top:.2rem}
.mod-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1.8rem;align-items:baseline}
.mod-top b{font:500 clamp(1.15rem,2.2vw,1.45rem) var(--serif);letter-spacing:-.014em}
.mod-when{font:500 9.5px var(--mono);letter-spacing:.16em;color:var(--ink-2)}
.mod-row p{margin-top:.65rem;color:var(--ink-2);max-width:64ch}

/* publication / desk rows */
.pub{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:1.25rem 0;border-bottom:1px solid var(--line)}
.pub:first-of-type{border-top:1px solid var(--line-2)}
.pub b{font:500 1.12rem var(--serif);letter-spacing:-.01em}
.pub i{display:block;font:500 9.5px var(--mono);letter-spacing:.16em;color:var(--ink-2);font-style:normal;margin-top:.35rem}

/* press */
.boiler{border:1px solid var(--line-2);background:var(--paper-hi);padding:1.8rem 1.7rem;position:relative;font-size:14.5px;line-height:1.8;color:var(--ink-2);max-width:72ch}
.boiler .bt{position:absolute;top:-9px;left:1.4rem;background:var(--paper-hi);padding:0 .6rem;font:500 9px var(--mono);letter-spacing:.22em;color:var(--ochre-ink)}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2.5rem,5vw,4.5rem);align-items:start}
.info-card{border:1px solid var(--line-2);background:var(--paper-hi)}
.info-block{display:grid;grid-template-columns:44px minmax(0,1fr);gap:1.2rem;padding:1.3rem 1.5rem;border-bottom:1px solid var(--line);align-items:start}
.info-block:last-child{border-bottom:none}
.info-ic{width:38px;height:38px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;color:var(--ochre-ink)}
.info-ic svg{width:16px;height:16px}
.info-block h4{font:500 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.4rem}
.info-block p,.info-block a{font-size:15px;color:var(--ink);line-height:1.6}
.info-block a:hover{color:var(--ochre-ink)}

/* toasts */
#toasts{position:fixed;right:1.4rem;bottom:1.4rem;z-index:85;display:flex;flex-direction:column;gap:.7rem;max-width:min(380px,calc(100vw - 2.8rem))}
.toast{display:flex;gap:.85rem;align-items:flex-start;background:var(--deep);color:var(--cream);border-left:3px solid var(--ochre);padding:1rem 1.2rem;font:400 13.5px/1.5 var(--sans);box-shadow:0 12px 32px rgba(17,28,19,.35);opacity:0;transform:translateY(14px);transition:.4s var(--ease)}
.toast.in{opacity:1;transform:none}
.toast-ic{color:var(--ochre);flex:none;padding-top:.1rem}
.toast-ic svg{width:16px;height:16px}

/* WordPress layer */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}
.skip-link{position:fixed;top:-70px;left:1rem;z-index:120;background:var(--ink);color:var(--paper);padding:.65rem 1.1rem;transition:top .25s;font:500 12px var(--mono);letter-spacing:.1em}
.skip-link:focus{top:1rem}
.alignwide{width:min(1240px,calc(100% - 3rem));margin-inline:auto}
.wp-caption-text,.wp-block-image figcaption{font:500 9px var(--mono);letter-spacing:.2em;color:var(--ink-2)}
.page-links,.post-navigation,.pagination{margin-top:2.5rem;font:500 11px var(--mono);letter-spacing:.14em}
.pagination .nav-links{display:flex;gap:1.2rem}
.sticky .jr-main b::after{content:" · PINNED";color:var(--ochre-ink);font:500 9px var(--mono)}

/* responsive */
@media (max-width:1150px){.nav,.hdr .btn{display:none}.burger{display:flex}}
@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr;gap:3rem}
  .sheet{max-width:440px}
  .anno.a1{display:none}
  .pillars{grid-template-columns:1fr}
  .pillar{padding-right:0;padding-bottom:3rem}
  .pillar+.pillar{border-left:none;padding-left:0;padding-top:3rem;border-top:1px solid var(--line)}
  .stats{grid-template-columns:1fr 1fr}
  .feat{grid-template-columns:1fr}
  .jgrid{grid-template-columns:1fr}
  .explorer{grid-template-columns:1fr}
  .cat-list{flex-direction:row;overflow-x:auto;border-top:none;border-bottom:1px solid var(--line-2)}
  .cat-btn{border-bottom:none;border-left:none;border-top:2px solid transparent;white-space:nowrap}
  .cat-btn.on{border-top-color:var(--ochre)}
  .cat-btn .f{display:none}
  .steps,.steps.three,.steps.five{grid-template-columns:1fr 1fr}
  .stages{grid-template-columns:repeat(2,1fr);row-gap:1.6rem}
  .grid2,.ilist,.cat-cols{grid-template-columns:1fr}
  .split,.vm,.contact-grid{grid-template-columns:1fr}
  .split-aside{position:static}
  .ft-top{grid-template-columns:1fr 1fr;gap:2.5rem}
  .pj-metrics{grid-template-columns:1fr 1fr}
  .pm:nth-child(3){border-left:none;border-top:1px solid var(--line)}
  .pm:nth-child(4){border-top:1px solid var(--line)}
  .pmx-cols{grid-template-columns:1fr;gap:1.5rem}
  .mods .mod-row{grid-template-columns:1fr;gap:.6rem}
}
@media (max-width:640px){
  .idx-head{grid-template-columns:44px minmax(0,1fr) 38px}
  .idx-tag{display:none}
  .idx-body p{padding-left:56px}
  .sec-head{flex-direction:column;align-items:flex-start;gap:1.2rem}
  .hero{padding-top:132px}
  .anno.a2{display:none}
  .hero-meta{margin-top:3rem}
  .evt{grid-template-columns:88px minmax(0,1fr)}
  .evt .btn{grid-column:2}
  .jr{grid-template-columns:minmax(0,1fr) 40px}
  .jr-date{grid-column:1/-1}
  .vrow{grid-template-columns:44px minmax(0,1fr);row-gap:.4rem}
  .vrow p{grid-column:2}
  .off{grid-template-columns:56px minmax(0,1fr)}
  .off-aff{grid-column:2;text-align:left;margin-top:.3rem}
  .fgrid{grid-template-columns:1fr}
  .ft-top{grid-template-columns:1fr}
  .pipe-node{width:58px}
  .pipe-lab{font-size:7.5px}
  .steps,.steps.three,.steps.five{grid-template-columns:1fr}
  .com{grid-template-columns:1fr;gap:.3rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.js [data-reveal]{opacity:1;transform:none;transition:none}
  *{animation-duration:.001s!important;transition-duration:.001s!important}
}