@font-face{font-family:"DM Serif Display";src:url(../fonts/dm-serif-display-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Manrope";src:url(../fonts/manrope-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{--forest:#174D3A;--forest-deep:#123D2E;--ivory:#FAF7F0;--terracotta:#C96E4B;--terracotta-ink:#A9532F;--sage:#DCE8DD;--charcoal:#242A27;--muted:#4C5651;--white:#FFF;
--serif:"DM Serif Display",Georgia,"Times New Roman",serif;--sans:"Manrope","Segoe UI",system-ui,-apple-system,Arial,sans-serif;
--gutter:clamp(16px,4vw,64px);--space:clamp(64px,10vw,144px);--nav-h:84px;--ease:cubic-bezier(.2,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:100px}
body{margin:0;background:var(--ivory);color:var(--charcoal);font:400 clamp(1rem,.96rem + .2vw,1.125rem)/1.7 var(--sans);overflow-x:clip}
body.no-scroll{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--forest);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--terracotta-ink)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:clamp(2.75rem,1.6rem + 5.4vw,6.5rem);letter-spacing:-.01em}
h2{font-size:clamp(2.1rem,1.5rem + 2.8vw,4rem)}
h3{font-size:clamp(1.45rem,1.25rem + .9vw,2.1rem);line-height:1.18}
p{margin:0 0 1.1em;max-width:68ch}
ul,ol{max-width:68ch;padding-left:1.2em}
li{margin-bottom:.55em}
:focus-visible{outline:3px solid var(--terracotta-ink);outline-offset:3px;border-radius:2px}
.on-dark :focus-visible,.site-footer :focus-visible,.hero :focus-visible{outline-color:var(--white)}
.skip{position:absolute;left:16px;top:-80px;background:var(--white);color:var(--charcoal);padding:10px 16px;z-index:100}
.skip:focus{top:8px}
.wrap{width:min(100%,1440px);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--space)}
.lede{font-size:clamp(1.15rem,1.05rem + .6vw,1.5rem);line-height:1.5;max-width:40ch}
.on-dark{background:var(--forest);color:var(--ivory)}
.on-dark a:not(.btn){color:var(--ivory)}
.on-sage{background:var(--sage)}
.stitch{height:24px;background:url(../images/stitch-band.svg) repeat-x left center;border:0;margin:0}
.stitch.light{background-image:url(../images/stitch-band-light.svg)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7em 1.5em;font:700 1rem/1.2 var(--sans);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .15s}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-primary{background:var(--terracotta-ink);color:var(--white)}
.btn-primary:hover{background:#8F4426;color:var(--white)}
.btn-ghost{border-color:currentColor;color:inherit;background:transparent}
.on-dark .btn-ghost,.hero .btn-ghost{color:var(--ivory)}
.btn-ghost:hover{background:var(--charcoal);border-color:var(--charcoal);color:var(--white)}
.on-dark .btn-ghost:hover,.hero .btn-ghost:hover{background:var(--ivory);border-color:var(--ivory);color:var(--forest)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem}
.more{font-weight:700;display:inline-block;background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;text-decoration:none;padding-bottom:2px;transition:background-size .25s var(--ease)}
.more:hover{background-size:40% 1px}

/* Strip and navigation */
.strip{background:var(--forest-deep);color:var(--sage);font-size:.875rem;line-height:1.4;padding:8px var(--gutter);text-align:center}
.strip p{margin:0 auto}
.site-header{position:sticky;top:0;z-index:50;height:var(--nav-h);margin-bottom:calc(var(--nav-h)*-1);color:var(--white);transition:background-color .3s,color .3s,box-shadow .3s}
.site-header.is-solid,.site-header.menu-open{background:var(--ivory);color:var(--charcoal);box-shadow:0 1px 0 rgba(36,42,39,.14)}
.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:100%;width:min(100%,1600px);margin-inline:auto;padding-inline:var(--gutter)}
.brand{display:block;flex:none;position:relative;height:52px;width:232px}
.brand img{position:absolute;inset:0;height:52px;width:auto;transition:opacity .3s}
.brand .logo-color{opacity:0}
.is-solid .brand .logo-color,.menu-open .brand .logo-color{opacity:1}
.is-solid .brand .logo-white,.menu-open .brand .logo-white{opacity:0}
#primary-nav>ul{display:flex;align-items:center;gap:clamp(10px,1.3vw,24px);list-style:none;margin:0;padding:0;max-width:none}
#primary-nav li{margin:0}
.nav-link{position:relative;display:inline-block;color:inherit;font-size:.95rem;font-weight:600;text-decoration:none;padding:10px 0;white-space:nowrap}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--terracotta);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav-link:hover,.site-header a.nav-link:hover{color:inherit}
.nav-link:hover::after,.nav-link[aria-current]::after,.nav-link.is-section::after{transform:scaleX(1)}
.site-header :focus-visible{outline-color:currentColor}
.nav-group{position:relative;display:flex;align-items:center}
.sub-toggle{all:unset;display:grid;place-items:center;width:28px;height:44px;cursor:pointer}
.sub-toggle:focus-visible{outline:3px solid currentColor;outline-offset:-3px}
.sub-toggle svg{width:10px;height:10px;transition:transform .2s}
.is-open>.sub-toggle svg{transform:rotate(180deg)}
.sub{position:absolute;top:100%;left:-16px;min-width:290px;background:var(--white);color:var(--charcoal);box-shadow:0 18px 40px rgba(18,61,46,.18);list-style:none;margin:0;padding:10px 0;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s}
.is-open>.sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:10px 18px;color:inherit;text-decoration:none;font-size:.95rem;line-height:1.35}
.sub a:hover,.sub a[aria-current]{background:var(--sage);color:var(--forest)}
.menu-toggle{display:none;width:48px;height:48px;background:none;border:0;color:inherit;cursor:pointer;padding:12px}
.menu-toggle span{display:block;height:2px;background:currentColor;margin:6px 0;transition:transform .25s,opacity .2s}
.menu-open .menu-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-open .menu-toggle span:nth-child(2){opacity:0}
.menu-open .menu-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:1080px){
 :root{--nav-h:72px}
 .brand{width:190px;height:44px}.brand img{height:44px}
 .menu-toggle{display:block;flex:none}
 #primary-nav{position:absolute;left:0;right:0;top:100%;height:calc(100dvh - var(--nav-h));background:var(--ivory);color:var(--charcoal);overflow-y:auto;padding:12px var(--gutter) 96px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .22s,transform .22s,visibility .22s}
 #primary-nav.is-open{opacity:1;visibility:visible;transform:none}
 #primary-nav>ul{display:block}
 #primary-nav>ul>li{border-bottom:1px solid rgba(36,42,39,.14)}
 #primary-nav>ul>li:last-child{border:0;padding-top:20px}
 .nav-link{font-family:var(--serif);font-size:1.6rem;font-weight:400;padding:12px 0}
 .nav-link::after{display:none}
 .nav-link[aria-current],.nav-link.is-section{color:var(--terracotta-ink)}
 .nav-group{flex-wrap:wrap;justify-content:space-between}
 .sub-toggle{width:48px;height:48px}
 .sub{position:static;display:none;box-shadow:none;background:none;min-width:0;width:100%;padding:0 0 10px;opacity:1;visibility:visible;transform:none}
 .is-open>.sub{display:block}
 .sub a{padding:10px 0;font-size:1rem}
 #primary-nav .btn{width:100%}
}
@media (max-width:360px){.brand{width:160px}.brand img{height:37px;top:3px}}

/* Photographs: the stitched panel sits behind each image and shows if it cannot load */
.photo{position:relative;margin:0;overflow:hidden;background:var(--forest);aspect-ratio:4/3}
.photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.photo.is-missing img{visibility:hidden}
a:hover>.photo img,.photo-link:hover img{transform:scale(1.035)}
.tall{aspect-ratio:4/5}.wide{aspect-ratio:16/10}

/* Home hero */
.hero{background:var(--forest);color:var(--ivory);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);min-height:min(100svh,960px);position:relative}
.hero-copy{padding:calc(var(--nav-h) + clamp(32px,6vw,88px)) clamp(24px,4vw,72px) clamp(56px,7vw,96px) max(var(--gutter),calc((100vw - 1600px)/2 + var(--gutter)));display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.hero .where{margin:0 0 1.4rem;color:var(--sage);font-weight:600}
.hero .lede{margin-top:1.6rem;max-width:44ch}
.hero-media{position:relative;overflow:hidden;background:var(--forest-deep) url(../images/stitch-field.svg) center;clip-path:inset(0 0 0 100%);animation:unveil 1.2s .1s var(--ease) forwards}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;transform:scale(1.08);will-change:transform}
.hero-media.is-missing img{visibility:hidden}
.hero-line{animation:rise .9s .15s var(--ease) both}
.hero-line.b{animation-delay:.3s}.hero-line.c{animation-delay:.45s}
.scroll-cue{position:absolute;left:max(var(--gutter),calc((100vw - 1600px)/2 + var(--gutter)));bottom:20px;width:2px;height:44px;background:rgba(220,232,221,.3);overflow:hidden;z-index:2}
.scroll-cue::after{content:"";position:absolute;inset:0;background:var(--terracotta);animation:cue 2.4s var(--ease) infinite}
@keyframes unveil{to{clip-path:inset(0)}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
@media (max-width:860px){
 .hero{grid-template-columns:1fr;min-height:0}
 .hero-copy{padding:calc(var(--nav-h) + 40px) var(--gutter) 48px}
 .hero-media{aspect-ratio:4/3;clip-path:none;animation:none}
 .scroll-cue{display:none}
}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}

/* Figures */
.figures{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 32px;margin-top:clamp(40px,6vw,72px)}
.figure{margin:0;grid-column:span 3;border-top:1px solid rgba(250,247,240,.35);padding-top:18px}
.figure b{display:block;font:400 clamp(3rem,2rem + 3.6vw,5.5rem)/1 var(--serif);font-variant-numeric:lining-nums}
.figure span{display:block;margin-top:10px;max-width:28ch}
.figure.lead{grid-column:span 6}
.figure.lead b{font-size:clamp(4.5rem,2.5rem + 8vw,10rem)}
.on-sage .figure,.plain .figure{border-color:rgba(36,42,39,.3)}
.figures.three .figure{grid-column:span 4}
.small-note{font-size:.9rem;color:inherit;opacity:.85;margin-top:2.5rem;max-width:70ch}
@media (max-width:900px){.figure,.figures.three .figure{grid-column:span 6}.figure.lead{grid-column:span 12}}
@media (max-width:460px){.figure,.figures.three .figure{grid-column:span 12}}
.head-split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px 32px;align-items:end}
.head-split>:first-child{grid-column:1/span 7}.head-split>:last-child{grid-column:8/span 5;margin:0}
@media (max-width:860px){.head-split>:first-child,.head-split>:last-child{grid-column:1/-1}}

/* Split */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 32px;align-items:center}
.split .media{grid-column:1/span 6}.split .text{grid-column:8/span 5}
.split.flip .media{grid-column:7/span 6;order:2}.split.flip .text{grid-column:1/span 5}
.split h2{margin-bottom:.6em}
@media (max-width:860px){.split .media,.split .text,.split.flip .media,.split.flip .text{grid-column:1/-1;order:0}}

/* Programmes */
.prog{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px 32px;margin-top:clamp(56px,8vw,112px);align-items:end}
.prog h3{font-size:clamp(1.8rem,1.4rem + 1.8vw,3rem);margin-bottom:.5em}
.prog.p1 .media{grid-column:1/span 8}.prog.p1 .text{grid-column:9/span 4}
.prog.p2 .text{grid-column:2/span 5;grid-row:1;align-self:center}.prog.p2 .media{grid-column:8/span 5;grid-row:1}
.prog.p3 .media{grid-column:1/span 5}.prog.p3 .text{grid-column:6/span 7;align-self:center}
.prog.p3 h3{font-size:clamp(2rem,1.4rem + 3vw,4.25rem)}
.prog.p4 .media{grid-column:6/span 7;grid-row:1}.prog.p4 .text{grid-column:1/span 4;grid-row:1}
.prog-stat{font-family:var(--serif);font-size:1.3rem;line-height:1.3;color:var(--forest);border-left:3px solid var(--terracotta);padding-left:14px;margin:1rem 0 1.4rem}
@media (max-width:860px){.prog .media,.prog .text,.prog.p2 .text,.prog.p2 .media,.prog.p3 .media,.prog.p3 .text,.prog.p4 .media,.prog.p4 .text{grid-column:1/-1;grid-row:auto}}

/* Story */
.story h2{max-width:18ch;font-size:clamp(2.4rem,1.5rem + 4.2vw,5.5rem)}
.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:clamp(40px,6vw,80px)}
.story-grid h3{margin-bottom:.5em;color:var(--sage)}
@media (max-width:860px){.story-grid{grid-template-columns:1fr}}

/* Leader */
.leader{font-family:var(--serif);font-size:clamp(2rem,1.4rem + 3vw,4rem);line-height:1.1;margin:0 0 .3em;color:var(--forest)}

/* Join list */
.join{list-style:none;padding:0;margin:clamp(32px,5vw,64px) 0 0;max-width:none;border-top:1px solid rgba(36,42,39,.28)}
.join li{margin:0;border-bottom:1px solid rgba(36,42,39,.28)}
.join a{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:8px 32px;align-items:baseline;padding:clamp(20px,3vw,34px) 0;text-decoration:none;color:inherit;transition:padding-left .3s var(--ease),color .2s}
.join a:hover{padding-left:12px;color:var(--terracotta-ink)}
.join strong{font:400 clamp(1.6rem,1.3rem + 1.5vw,2.6rem)/1.1 var(--serif)}
@media (max-width:640px){.join a{grid-template-columns:1fr}}

/* Closing */
.closing{background:var(--terracotta-ink);color:var(--white);padding-block:var(--space)}
.closing h2{font-size:clamp(2.6rem,1.5rem + 5vw,6.5rem);max-width:16ch}
.closing p{font-size:1.2rem;max-width:46ch;margin-top:1.4rem}
.closing .btn-primary{background:var(--white);color:var(--forest)}
.closing .btn-primary:hover{background:var(--sage);color:var(--forest)}
.closing .btn-ghost{color:var(--white)}
.closing .btn-ghost:hover{background:var(--white);border-color:var(--white);color:var(--terracotta-ink)}
.closing :focus-visible{outline-color:var(--white)}

/* Inner page header */
.page-head{background:var(--forest);color:var(--ivory);padding:calc(var(--nav-h) + clamp(40px,7vw,96px)) 0 clamp(48px,7vw,96px)}
.page-head h1{font-size:clamp(2.6rem,1.6rem + 4.4vw,5.5rem);max-width:17ch}
.page-head .lede{margin:1.3rem 0 0;max-width:48ch;color:var(--sage)}
.crumbs{font-size:.9rem;margin:0 0 1.5rem}
.crumbs a{color:var(--sage)}
.prose{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px}
.prose>.main{grid-column:1/span 8}.prose>aside{grid-column:10/span 3}
.prose h2{font-size:clamp(1.8rem,1.4rem + 1.8vw,2.9rem);margin:1.5em 0 .55em}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.3em 0 .45em}
aside h2{font-size:1.5rem!important;margin:0 0 .7em!important}
aside ul{list-style:none;padding:0}
@media (max-width:900px){.prose>.main,.prose>aside{grid-column:1/-1}}
.page-photo{margin-top:calc(clamp(32px,5vw,64px)*-1)}
.timeline{list-style:none;margin:0;padding:0;max-width:none}
.timeline li{display:grid;grid-template-columns:minmax(90px,2fr) minmax(0,8fr);gap:8px 32px;padding:28px 0;border-top:1px solid rgba(36,42,39,.28);margin:0}
.timeline b{font:400 clamp(1.6rem,1.3rem + 1.4vw,2.6rem)/1.05 var(--serif);color:var(--forest)}
.timeline p{margin:0}
@media (max-width:560px){.timeline li{grid-template-columns:1fr}}
.objectives{counter-reset:o;list-style:none;padding:0;max-width:none}
.objectives li{counter-increment:o;display:grid;grid-template-columns:3rem minmax(0,1fr);padding:22px 0;border-top:1px solid rgba(36,42,39,.28);margin:0}
.objectives li::before{content:counter(o);font:400 2rem/1 var(--serif);color:var(--terracotta-ink)}
.objectives strong{display:block;margin-bottom:.2em}
.tally{width:100%;border-collapse:collapse;font-size:1rem}
.tally th,.tally td{padding:12px 8px 12px 0;border-bottom:1px solid rgba(36,42,39,.22);text-align:left;vertical-align:top}
.tally td:first-child{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.tally thead th{font-weight:700}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:40px}
.cols h2,.cols h3{margin-top:0}
.quote{font:400 clamp(1.6rem,1.3rem + 1.4vw,2.5rem)/1.2 var(--serif);max-width:26ch;margin:0}

/* Gallery */
.mosaic{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(90px,14vw,210px);gap:clamp(8px,1.2vw,18px);grid-auto-flow:dense}
.tile{margin:0;aspect-ratio:auto;grid-column:span 2;grid-row:span 2}
.tile.w3{grid-column:span 3}.tile.w4{grid-column:span 4;grid-row:span 3}.tile.h3{grid-row:span 3}
.tile button{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.tile button:focus-visible{outline:3px solid var(--terracotta-ink);outline-offset:-3px}
.tile:hover img{transform:scale(1.035)}
.tile.is-missing button{cursor:default}
@media (max-width:640px){.mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:32vw}.tile,.tile.w3{grid-column:span 1;grid-row:span 2}.tile.w4{grid-column:span 2;grid-row:span 2}.tile.h3{grid-row:span 2}}
#lightbox{border:0;padding:0;background:transparent;width:100vw;height:100dvh;max-width:none;max-height:none;color:var(--ivory)}
#lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto;animation:fade .22s var(--ease)}
#lightbox::backdrop{background:rgba(18,30,25,.94)}
#lightbox figure{margin:0;display:contents}
#lightbox img{width:100%;height:100%;object-fit:contain;padding:64px clamp(8px,6vw,88px) 8px;min-height:0}
#lightbox figcaption{text-align:center;padding:4px 16px 16px}
.lb-btn{position:absolute;background:rgba(18,61,46,.9);color:var(--white);border:1px solid rgba(255,255,255,.4);min-width:48px;height:48px;padding:0 14px;font:700 .95rem var(--sans);cursor:pointer}
.lb-btn:hover{background:var(--terracotta-ink)}
.lb-btn:focus-visible{outline:3px solid var(--white);outline-offset:2px}
.lb-close{top:10px;right:10px}.lb-prev{left:10px;top:50%}.lb-next{right:10px;top:50%}
@keyframes fade{from{opacity:0}to{opacity:1}}
.notice{background:var(--sage);padding:18px 22px;margin:0 0 28px;max-width:none}
.clips{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:20px}
.clips .photo{aspect-ratio:3/4;background-color:var(--forest)}
.clips .photo img{object-fit:contain;background:var(--white)}
.video-box{aspect-ratio:16/9;background:var(--forest) url(../images/stitch-field.svg) center;display:grid;place-items:center;max-width:1040px}
.video-box iframe{width:100%;height:100%;border:0}
.doc-list{list-style:none;padding:0;max-width:760px;border-top:1px solid rgba(36,42,39,.28)}
.doc-list li{margin:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;align-items:center;padding:18px 0;border-bottom:1px solid rgba(36,42,39,.28)}

/* Form */
.contact-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 32px}
.contact-grid>form{grid-column:1/span 7}.contact-grid>.details{grid-column:9/span 4}
@media (max-width:900px){.contact-grid>form,.contact-grid>.details{grid-column:1/-1}}
.field{margin-bottom:22px}
.field label{display:block;font-weight:700;margin-bottom:6px}
.field .opt{font-weight:400}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:11px 13px;font:inherit;color:inherit;background:var(--white);border:1px solid #6F7A74;border-radius:0}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--forest);outline-offset:1px}
.field [aria-invalid="true"]{border:2px solid #A12B16}
.err{display:block;color:#A12B16;font-size:.92rem;font-weight:600;margin-top:5px}
.err:empty{display:none}
.check label{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;font-weight:400;cursor:pointer}
.check input{width:24px;height:24px;min-height:0;margin:2px 0 0;accent-color:var(--forest)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{margin:18px 0 0;font-weight:600;max-width:60ch}
.form-status:empty{display:none}
.form-status.is-error{color:#A12B16}.form-status.is-ok{color:var(--forest)}
[hidden]{display:none!important}
.details h2{font-size:1.6rem;margin:1.4em 0 .4em}.details h2:first-child{margin-top:0}
.details address{font-style:normal}

/* Footer */
.site-footer{background:var(--forest-deep);color:var(--sage);padding-top:clamp(56px,7vw,96px);font-size:.97rem}
.site-footer a{color:var(--ivory)}
.site-footer a:hover{color:var(--white)}
.foot-grid{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2.6fr));gap:40px 32px}
.foot-logo{width:232px;height:auto;margin-bottom:18px}
.site-footer h2{font:700 1rem/1.4 var(--sans);color:var(--white);margin-bottom:12px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.5em}
.site-footer address{font-style:normal}
.foot-base{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;border-top:1px solid rgba(220,232,221,.22);margin-top:56px;padding:20px 0;font-size:.9rem}
.foot-base p{margin:0}
@media (max-width:980px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-grid>:first-child{grid-column:1/-1}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
 .js .reveal{opacity:1;transform:none}
 .hero-media{clip-path:none}
}
@media print{.site-header,.strip,.closing,.site-footer{display:none}.page-head{background:none;color:#000;padding:0}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.section-top{margin-top:clamp(32px,5vw,56px)}
.section-photo{padding-top:clamp(24px,4vw,56px)}
.tile a{display:block;height:100%}
@media (max-width:900px){
 .head-split,.split,.prog,.prose,.contact-grid{grid-template-columns:minmax(0,1fr)}
 .head-split>*,.split>*,.prog>*,.prose>*,.contact-grid>*{grid-column:1/-1!important;grid-row:auto!important;order:0!important}
 .figures{grid-template-columns:repeat(2,minmax(0,1fr))}
 .figure,.figures.three .figure{grid-column:auto}
 .figure.lead{grid-column:1/-1}
}
@media (max-width:460px){.figures{grid-template-columns:minmax(0,1fr)}.figure,.figures.three .figure{grid-column:1/-1}}
h1,h2,h3,p,li,a{overflow-wrap:break-word}
.hero-media.photo{aspect-ratio:auto;height:100%}
.hero h1{font-size:clamp(2.75rem,1.4rem + 4.3vw,5.75rem)}
@media (max-width:860px){.hero-media.photo{aspect-ratio:4/3;height:auto}}
@media (min-width:861px){.hero-media.photo{margin-top:var(--nav-h);height:auto}.hero-copy{padding-top:calc(var(--nav-h) + clamp(16px,4vh,64px));padding-bottom:clamp(40px,6vh,72px)}.hero h1{font-size:clamp(2.75rem,min(1.4rem + 4.3vw,10.5vh),5.75rem)}}

/* ===== Animated illustrations ===== */
.sprite{position:absolute}
.art{position:absolute;inset:-7%;width:114%;height:114%}
.photo>a,.photo>button,.photo>img{position:relative;z-index:1}
.photo>.ph,.photo>a>.ph{position:relative}
.lady,.page,.tip,.spin,.pulse,.drift{transform-box:fill-box}
.lady{transform-origin:50% 100%}
.d0{animation-delay:0s}.d1{animation-delay:-.7s}.d2{animation-delay:-1.4s}.d3{animation-delay:-2.1s}.d4{animation-delay:-2.8s}
.sway{animation:sway 4.2s ease-in-out infinite}
.hop{animation:hop 1.5s cubic-bezier(.3,0,.3,1) infinite}
.walk{animation:walk 1.1s ease-in-out infinite}
.spin{transform-origin:center;animation:spin 40s linear infinite}
.pulse{transform-origin:center;animation:pulse 5s ease-in-out infinite}
.tip{transform-origin:50% 0;animation:tip 5s ease-in-out infinite}
.page{transform-origin:0 50%;animation:page 3.4s ease-in-out infinite}
.drift{animation:cloud 16s ease-in-out infinite alternate}
.flow{animation:flow 2.4s linear infinite}
@keyframes sway{0%,100%{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}
@keyframes hop{0%,100%{transform:none}45%{transform:translateY(-16%) scaleY(1.03)}60%{transform:translateY(-16%)}}
@keyframes walk{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3%) rotate(2deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes tip{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes page{0%,100%{transform:scaleX(1)}50%{transform:scaleX(-1)}}
@keyframes cloud{to{transform:translateX(120px)}}
@keyframes flow{to{stroke-dashoffset:-64}}

/* ===== Hero ===== */
.hero{display:block;position:relative;overflow:hidden;min-height:max(100svh,720px);background:linear-gradient(180deg,#0F3528 0%,#123D2E 50%,#1B5642 100%)}
.dawn{position:absolute;inset:0;background:linear-gradient(180deg,#123D2E 0%,#A9532F 62%,#E3B26A 100%);opacity:.22;pointer-events:none}
.scene,.motes{position:absolute;inset:0;width:100%;height:100%}
.motes{pointer-events:none}
.pop{transform-box:fill-box;transform-origin:50% 100%}
.js .pop{transform:translateY(46%) scale(.55);opacity:0;animation:pop .95s cubic-bezier(.2,1.5,.4,1) forwards;animation-delay:calc(var(--i,0)*90ms + .45s)}
@keyframes pop{to{transform:none;opacity:1}}
.js .s-in{animation:rise-in 1.5s cubic-bezier(.16,1,.3,1) both}
.js .hill2{animation-delay:.1s}.js .hill3{animation-delay:.2s}
.js .sun{animation:sun-in 1.9s cubic-bezier(.16,1,.3,1) both}
@keyframes rise-in{from{transform:translateY(240px)}}
@keyframes sun-in{from{transform:translateY(420px);opacity:.3}}
.hero .hero-copy{position:relative;z-index:2;max-width:min(58%,900px);padding:calc(var(--nav-h) + clamp(16px,4vh,48px)) var(--gutter) 40px max(var(--gutter),calc((100vw - 1600px)/2 + var(--gutter)));display:block}
.hero h1{font-size:clamp(2.7rem,min(1.1rem + 4.4vw,9.6vh),6.2rem);line-height:1.02}
.hero .lede{margin-top:1.1rem;max-width:40ch;font-size:clamp(1.05rem,2.2vh,1.4rem)}
.hero .btn-row{margin-top:1.3rem}
.hero .lede,.hero .where{text-shadow:0 1px 18px rgba(15,53,40,.8)}
.word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.word i{display:inline-block;font-style:normal;transform:translateY(112%) rotate(5deg);transform-origin:left top;transition:transform 1.05s cubic-bezier(.16,1,.3,1)}
h1.go .word i{transform:none}
@media (max-width:860px){.hero{min-height:0}.hero .hero-copy{max-width:none;padding:calc(var(--nav-h) + 28px) var(--gutter) 88vw}.scene,.motes{height:92vw;top:auto;bottom:0}}

/* ===== 3,779 members ===== */
.members{background:var(--forest-deep);color:var(--ivory);height:260vh;position:relative}
.members-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center}
.members canvas{position:absolute;inset:0;width:100%;height:100%}
.members-card{position:relative;z-index:1;background:var(--forest-deep);padding:clamp(20px,3vw,44px) clamp(24px,4vw,64px);max-width:min(88%,620px);text-align:center;box-shadow:0 0 0 1px rgba(227,178,106,.35),0 0 90px 50px rgba(18,61,46,.9)}
.members-num{font:400 clamp(4.5rem,2.6rem + 9vw,11rem)/1 var(--serif);margin:0 auto .15em;font-variant-numeric:lining-nums tabular-nums;color:var(--white)}
.members-card p:last-child{margin:0 auto;font-size:clamp(1.02rem,.95rem + .4vw,1.3rem)}

/* ===== Marquee ===== */
.marquee{overflow:hidden;background:var(--terracotta-ink);color:var(--white);padding:18px 0;position:relative;z-index:3}
.marquee-track{display:flex;width:max-content;will-change:transform}
.marquee span{font:400 clamp(1.8rem,1.2rem + 2.6vw,3.6rem)/1.1 var(--serif);padding-right:1.1em;white-space:nowrap}

/* ===== Statement ===== */
.statement{padding-block:clamp(90px,16vw,220px);background:var(--ivory)}
.scrub{font:400 clamp(2.1rem,1.3rem + 3.8vw,5.4rem)/1.12 var(--serif);max-width:24ch;margin:0;color:var(--forest)}

/* ===== Horizontal programmes ===== */
.hs{background:var(--sage)}
.hs-sticky{padding:clamp(56px,8vw,96px) var(--gutter)}
.hs-track{display:grid;gap:48px}
.hs-intro h2{max-width:14ch}
.hs-panel{display:grid;gap:18px}
.hs-text h3{font-size:clamp(1.8rem,1.3rem + 2vw,3rem);margin-bottom:.45em}
.hs.hs-on .hs-sticky{position:sticky;top:0;height:100vh;overflow:hidden;padding:calc(var(--nav-h) + 16px) 0 24px;display:flex;align-items:center}
.hs.hs-on .hs-track{display:flex;flex-wrap:nowrap;gap:clamp(40px,6vw,110px);width:max-content;padding-inline:var(--gutter) 12vw;will-change:transform;align-items:center}
.hs.hs-on .hs-intro{width:min(42vw,620px);flex:none}
.hs.hs-on .hs-intro h2{font-size:clamp(3rem,1.6rem + 4.4vw,6.4rem)}
.hs.hs-on .hs-panel{width:min(66vw,980px);flex:none;grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:end;gap:32px}
.hs.hs-on .photo{aspect-ratio:auto;height:min(62vh,600px)}
.hs-panel .hs-text>*{transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .9s}
.hs-on .hs-panel:not(.seen) .hs-text>*{transform:translateX(70px);opacity:.25}
.hs-panel .hs-text>:nth-child(2){transition-delay:.08s}.hs-panel .hs-text>:nth-child(3){transition-delay:.16s}

/* ===== Reveal, thread, curtain ===== */
.js .reveal{opacity:.25;transform:translateY(56px)}
.js .reveal.is-in{opacity:1;transform:none}
.photo.rv{clip-path:inset(14% 7% 14% 7%);transition:clip-path 1.2s cubic-bezier(.16,1,.3,1)}
.photo.rv.rv-in{clip-path:inset(0)}
.tilt{transition:transform .3s ease-out;transform-style:preserve-3d}
.btn{will-change:transform}
.thread-bar{position:fixed;left:0;right:0;top:0;height:3px;background:var(--terracotta);transform:scaleX(0);transform-origin:left;z-index:90;pointer-events:none}
.curtain{position:fixed;inset:0;z-index:95;background:var(--forest);transform:translateY(100%);pointer-events:none;display:flex;align-items:center;justify-content:center;gap:14px}
.curtain.in{transform:none;transition:transform .42s cubic-bezier(.76,0,.24,1)}
.curtain.out{transform:translateY(-100%);transition:transform .6s cubic-bezier(.76,0,.24,1)}
.curtain svg{width:64px;height:112px;transform:translateY(40px);opacity:0}
.curtain.in svg{transform:none;opacity:1;transition:transform .5s cubic-bezier(.2,1.5,.4,1),opacity .2s}
.curtain.in svg:nth-child(2){transition-delay:.06s}.curtain.in svg:nth-child(3){transition-delay:.12s}
.figure{transition:transform .3s ease-out}
.page-head{position:relative;overflow:hidden}
.page-head::after{content:"";position:absolute;right:-6%;top:0;bottom:0;width:48%;background:url(../images/stitch-field.svg);opacity:.5;animation:field 40s linear infinite;pointer-events:none}
.page-head .wrap{position:relative;z-index:1}
@keyframes field{to{background-position:224px 224px}}
.closing{will-change:clip-path}
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .35s cubic-bezier(.76,0,.24,1) both}
::view-transition-new(root){animation:vt-in .55s cubic-bezier(.16,1,.3,1) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-40px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(60px)}}
@media (prefers-reduced-motion:reduce){
 .sway,.hop,.walk,.spin,.pulse,.tip,.page,.drift,.flow,.page-head::after{animation:none!important}
 .js .pop,.js .s-in,.js .sun{animation:none!important;opacity:1!important;transform:none!important}
 .js .reveal,.photo.rv{opacity:1;transform:none;clip-path:none}
 .members{height:auto}.members-stage{position:relative;height:auto;min-height:70vh}
 .marquee-track{flex-wrap:wrap;width:auto}
 @view-transition{navigation:none}
}

/* ===== Videos ===== */
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(28px,4vw,48px)}
.video-item{display:grid;gap:14px;align-content:start}
.video-item h2{font-size:clamp(1.3rem,1.15rem + .6vw,1.75rem)}
.video-card{all:unset;position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--forest);cursor:pointer}
.video-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.video-card:hover img{transform:scale(1.05)}
.video-card:focus-visible{outline:3px solid var(--terracotta-ink);outline-offset:3px}
.play{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;background:var(--terracotta-ink);transition:transform .3s}
.play::after{content:"";position:absolute;left:27px;top:21px;border-left:20px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent}
.video-card:hover .play{transform:scale(1.14)}
.video-item iframe{width:100%;aspect-ratio:16/9;border:0;display:block}
