@font-face{
  font-family:DM;
  src:url('assets/fonts/DMSans.ttf');
  font-weight:100 900;
  font-display:swap
}
@font-face{
  font-family:Newsreader;
  src:url('assets/fonts/Newsreader.ttf');
  font-weight:200 800;
  font-display:swap
}

:root{
  --paper:#f7f5ed;
  --green:#454f3d;
  --deep:#2e382a;
  --sage:#e5e7dc;
  --stone:#a7a58c;
  --ink:#2b3028;
  --line:#d8d9cd;
  --serif:Newsreader,Georgia,serif;
  --sans:DM,Arial,sans-serif
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth;
  scroll-padding-top:132px
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.65 var(--sans)
}
a{
  color:inherit;
  text-underline-offset:5px
}
button,input{
  font:inherit
}
button,a,input{
  outline-offset:5px
}
button{
  cursor:pointer
}
figure,p,h1,h2,h3{
  margin:0
}
img{
  display:block;
  width:100%;
  object-fit:cover
}
em{
  font-style:normal;
  color:var(--green)
}
.wrap{
  width:min(1240px,calc(100% - 112px));
  margin-inline:auto
}
.skip{
  position:absolute;
  left:12px;
  top:-100px;
  z-index:10;
  background:var(--paper);
  padding:12px
}
.skip:focus{
  top:12px
}
.review{
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:10px 34px;
  background:var(--deep);
  color:var(--paper);
  font-size:11px;
  letter-spacing:.08em
}
.review b{
  font-weight:400;
  margin-left:18px;
  opacity:.8
}
.review>div{
  display:flex;
  gap:20px;
  align-items:center
}
.review button{
  background:none;
  color:inherit;
  border:1px solid #828b79;
  padding:3px 12px;
  font-size:11px
}
.review label{
  display:flex;
  gap:7px;
  align-items:center
}
.header{
  position:sticky;
  top:0;
  z-index:5;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:27px 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
.brand{
  text-decoration:none;
  display:grid;
  gap:4px
}
.brand>span{
  font-size:21px;
  font-weight:650;
  letter-spacing:.16em;
  line-height:1.2
}
.brand em{
  font:400 18px/1.3 var(--serif);
  color:var(--green);
  letter-spacing:.015em
}
.header nav{
  display:flex;
  gap:27px;
  align-items:center;
  font-size:12px
}
.header nav a{
  text-decoration:none
}
.header nav a:hover{
  text-decoration:underline
}
.contact-link{
  border-bottom:1px solid var(--green);
  padding-bottom:4px
}
.contact-link span{
  margin-left:12px
}
.menu{
  display:none
}
.hero{
  padding-block:74px 90px;
  display:grid;
  grid-template-columns:1.04fr 1fr;
  gap:64px;
  align-items:center
}
.eyebrow{
  font-size:10px;
  font-weight:600;
  letter-spacing:.16em;
  line-height:1.5
}
.hero h1{
  font:400 clamp(44px,5.25vw,76px)/1.02 var(--serif);
  letter-spacing:-.035em;
  margin-top:25px
}
.hero h1 em{
  font-style:italic
}
.lead{
  font-size:17px;
  line-height:1.65;
  max-width:430px;
  margin-top:27px
}
.today{
  font-size:13px;
  max-width:390px;
  line-height:1.8;
  margin-top:21px;
  color:#575d50
}
.scroll-prompt{
  font-size:11px;
  letter-spacing:.045em;
  margin-top:34px;
  display:flex;
  align-items:center;
  gap:35px
}
.scroll-prompt span{
  font-size:23px
}
.photo-frame{
  position:relative
}
.hero-photo img{
  aspect-ratio:4/5;
  object-position:32% center
}
.photo-label{
  position:absolute;
  bottom:18px;
  left:18px;
  background:var(--paper);
  padding:7px 12px;
  font-size:9px;
  letter-spacing:.16em
}
figcaption{
  font-size:10px;
  line-height:1.65;
  color:#626958;
  margin-top:12px
}
.review-note{
  font-size:11px;
  line-height:1.6;
  color:#5e6656
}
.hide-notes .review-note{
  display:none
}
.credibility{
  background:var(--sage);
  padding:39px 0 46px;
  position:relative;
  border-radius:50% 50% 0 0 / 24px 24px 0 0
}
.no-curve .credibility{
  border-radius:0
}
.credibility .eyebrow{
  color:#616b56;
  margin-bottom:27px
}
.facts{
  display:grid;
  grid-template-columns:1fr 1.2fr 1fr 1fr;
  gap:25px
}
.facts p{
  border-left:1px solid #b9c0ad;
  padding-left:20px
}
.facts span{
  font:400 24px/1.2 var(--serif);
  display:block
}
.facts small{
  font-size:11px;
  display:block;
  margin-top:9px
}
.journey{
  padding-block:88px 76px
}
.section-title{
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:start;
  border-bottom:1px solid var(--line);
  padding-bottom:40px
}
.section-title .eyebrow{
  padding-top:10px;
  max-width:200px
}
h2{
  font:400 clamp(34px,3.5vw,49px)/1.12 var(--serif);
  letter-spacing:-.02em
}
h2 em{
  font-style:italic
}
.section-title h2{
  width:65%
}
.chapter{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:90px;
  padding-top:49px;
  align-items:center
}
.year{
  display:flex;
  align-items:baseline;
  gap:18px;
  color:var(--green);
  margin-bottom:17px
}
.year>span{
  font:400 clamp(65px,7vw,96px)/1 var(--serif);
  letter-spacing:-.055em
}
.year small{
  font-size:17px
}
.chapter h3{
  font:400 32px/1.17 var(--serif);
  margin-bottom:20px
}
.chapter-copy>p{
  font-size:14px;
  line-height:1.85;
  max-width:410px
}
.chapter-image{
  aspect-ratio:3/2
}
.scope-note{
  margin-top:33px;
  border-top:1px solid var(--line);
  padding-top:15px
}
.credentials{
  background:var(--green);
  color:var(--paper);
  padding:63px 0
}
.credentials>.wrap{
  display:grid;
  grid-template-columns:.85fr 2fr;
  gap:60px;
  align-items:center
}
.credentials h2{
  font-size:34px;
  margin-top:20px
}
.credentials em{
  color:var(--paper)
}
.credentials .eyebrow{
  color:#e0e3d5
}
.awards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px
}
.awards article{
  border-top:1px solid #85917c;
  padding-top:20px
}
.awards span{
  font:400 clamp(46px,4.6vw,65px)/1 var(--serif);
  letter-spacing:-.03em
}
.awards p{
  font-size:12px;
  line-height:1.7;
  margin-top:17px;
  max-width:200px
}
.endnote{
  padding-block:55px;
  max-width:850px
}
.endnote h2{
  font-size:33px;
  margin-top:12px
}
.endnote>p:not(.eyebrow){
  font-size:13px;
  margin-top:16px
}
.endnote>a{
  display:inline-block;
  margin-top:20px;
  font-size:13px
}
.footer{
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-block:24px;
  font-size:10px;
  letter-spacing:.06em
}
.reveal.play>*{
  animation:arrive .65s both;
  animation-delay:calc(var(--i,0)*85ms)
}
@keyframes arrive{
  from{
    opacity:.3;
    transform:translateY(9px)
  }
  to{
    opacity:1;
    transform:translateY(0)
  }

}

@media(min-width:1600px){
  .hero h1{
    font-size:80px
  }

}

@media(max-width:1050px){
  .header{
    padding:24px
  }
  .header nav{
    gap:17px
  }
  .brand>span{
    font-size:18px
  }
  .brand em{
    font-size:16px
  }
  .wrap{
    width:calc(100% - 64px)
  }
  .hero{
    gap:35px
  }
  .facts{
    gap:16px
  }
  .facts span{
    font-size:21px
  }
  .chapter{
    gap:45px
  }
  .credentials>.wrap{
    gap:28px
  }
  .awards{
    gap:20px
  }

}

@media(max-width:780px){
  html{
    scroll-padding-top:120px
  }
  .review{
    padding:9px 18px;
    letter-spacing:0;
    gap:8px
  }
  .review b{
    margin-left:8px
  }
  .review>div{
    gap:10px
  }
  .header{
    padding:21px 22px
  }
  .brand>span{
    font-size:17px;
    letter-spacing:.11em
  }
  .brand em{
    font-size:14px
  }
  .menu{
    display:flex;
    gap:9px;
    align-items:center;
    background:none;
    border:1px solid var(--line);
    padding:9px 11px;
    font-size:12px
  }
  .header nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--paper);
    padding:20px 25px 28px;
    border-bottom:1px solid var(--line);
    box-shadow:0 10px 15px #2e382a0a
  }
  .header nav.open{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }
  .header nav a{
    padding:12px 0;
    font-size:15px
  }
  .wrap{
    width:calc(100% - 44px)
  }
  .hero{
    grid-template-columns:1fr;
    padding-block:42px 46px;
    gap:35px
  }
  .hero h1{
    font-size:clamp(48px,10vw,70px)
  }
  .lead{
    font-size:16px
  }
  .today{
    font-size:13px
  }
  .hero-photo img{
    aspect-ratio:4/3;
    object-position:center
  }
  .hero-photo{
    max-width:600px
  }
  .facts{
    grid-template-columns:1fr 1fr;
    gap:25px 15px
  }
  .facts span{
    font-size:23px
  }
  .facts p{
    padding-left:13px
  }
  .credibility{
    padding:34px 0;
    border-radius:50% 50% 0 0 / 14px 14px 0 0
  }
  .journey{
    padding-block:49px
  }
  .section-title{
    display:block;
    padding-bottom:29px
  }
  .section-title .eyebrow{
    max-width:none;
    margin-bottom:18px
  }
  .section-title h2{
    width:auto;
    font-size:37px
  }
  .chapter{
    grid-template-columns:1fr;
    gap:30px;
    padding-top:32px
  }
  .year>span{
    font-size:85px
  }
  .chapter h3{
    font-size:32px
  }
  .credentials{
    padding-block:43px
  }
  .credentials>.wrap{
    grid-template-columns:1fr;
    gap:32px
  }
  .credentials h2 br{
    display:none
  }
  .credentials h2{
    font-size:34px
  }
  .awards{
    gap:18px
  }
  .awards span{
    font-size:43px
  }
  .awards p{
    font-size:11px
  }
  .endnote{
    padding-block:38px
  }
  .footer{
    gap:18px;
    flex-wrap:wrap
  }

}

@media(max-width:370px){
  .brand>span{
    font-size:14px
  }
  .brand em{
    font-size:12px
  }
  .review b{
    font-size:9px
  }
  .review button{
    padding:3px 6px
  }
  .facts span{
    font-size:20px
  }
  .awards{
    grid-template-columns:1fr
  }
  .awards article{
    display:grid;
    grid-template-columns:90px 1fr;
    gap:18px
  }
  .awards p{
    margin:0
  }
  .hero h1{
    font-size:44px
  }

}

@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
  .reveal.play>*{
    animation:none
  }

}

/* v0.2 — feedback refinement, 1 October 2026 */
.header{
  border-bottom:1px solid var(--green);
  padding-block:25px
}

.hero{
  grid-template-columns:1fr 1fr;
  gap:38px;
  padding-block:64px 72px
}

.hero-photo img{
  aspect-ratio:1/1;
  object-position:32% center
}

p,figcaption{
   text-wrap:pretty
}

.credibility{
  border-radius:0 0 50% 50% / 0 0 38px 38px;
  padding-bottom:60px
}

.facts span{
  font-size:27px
}

.awards article{
  border-top:0;
  padding-top:0
}

.awards article>span::after{
  content:"";
  display:block;
  width:30%;
  height:1px;
  background:#b8c0ab;
  margin-top:19px
}

.year-digits{
  display:inline-flex;
  letter-spacing:0!important
}

.digit-mask{
  display:inline-block;
  overflow:hidden;
  padding-block:.12em;
  margin-block:-.12em
}

.digit{
  display:block
}

.year.year-play .digit{
  animation:year-arrive 450ms cubic-bezier(.22,.7,.2,1) both;
  animation-delay:calc(var(--digit-index)*50ms)
}

@keyframes year-arrive{
  from{
    transform:translateY(110%)
  }
  to{
    transform:translateY(0)
  }

}

.header nav a[aria-current="location"]{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:7px
}

@media(max-width:1050px){
  .hero{
    gap:30px
  }
  .facts span{
    font-size:24px
  }

}

@media(max-width:780px){
  .header{
    padding-block:23px
  }
  .hero{
    grid-template-columns:1fr;
    gap:30px;
    padding-block:40px 44px
  }
  .hero-photo img{
    aspect-ratio:4/3;
    object-position:center
  }
  .credibility{
    border-radius:0 0 50% 50% / 0 0 25px 25px;
    padding-bottom:45px
  }
  .facts span{
    font-size:26px
  }
  .review{
    flex-wrap:wrap
  }
  .review>div{
    flex-wrap:wrap
  }
  .awards article>span::after{
    width:30%
  }

}

@media(max-width:370px){
  .facts span{
    font-size:23px
  }
  .awards article>span::after{
    width:35px
  }

}

@media(prefers-reduced-motion:reduce){
  .year.year-play .digit{
    animation:none
  }

}

/* v0.3 — caption, circular arc, timeline and credential spacing */
.venue-caption{
  display:block;
  font-size:11px;
  color:var(--green);
  margin-bottom:5px
}

.hero-photo img,.chapter-image{
  height:auto
}

.credibility{
  border-radius:0;
  padding-bottom:34px;
  margin-bottom:clamp(38px,6.9vw,100px)
}

.credibility::after{
  content:"";
  position:absolute;
  top:calc(100% - 1px);
  left:0;
  width:100%;
  height:clamp(39px,7vw,101px);
  background:url('assets/arc.svg') center top/100% 100% no-repeat;
  pointer-events:none
}

.credibility>.wrap{
  max-width:1040px
}

.facts{
  grid-template-columns:.9fr 1.2fr 1.05fr 1fr;
  gap:18px
}

.no-curve .credibility{
  margin-bottom:0
}

.no-curve .credibility::after{
  display:none
}

.chapter{
  grid-template-columns:1fr 1px 1.05fr;
  gap:44px;
  align-items:center
}

.timeline-rail{
  position:relative;
  align-self:stretch;
  background:#a7af9b;
  min-height:310px;
  margin-block:8px
}

.timeline-rail>span{
  position:absolute;
  left:50%;
  top:24%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--green);
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 6px var(--paper)
}

.awards article>span::after{
  display:none
}

.awards .award-year{
  display:block;
  line-height:1;
  font-variant-numeric:lining-nums
}

.awards .first-digits{
  font:inherit;
  letter-spacing:inherit
}

.award-rule{
  height:1px;
  width:var(--award-rule-width,2ch);
  font:400 clamp(46px,4.6vw,65px)/1 var(--serif);
  background:#b8c0ab;
  margin:24px 0
}

.awards p{
  margin-top:0
}

@media(max-width:1050px){
  .chapter{
    gap:25px
  }
  .facts{
    gap:12px
  }
  .facts p{
    padding-left:12px
  }

}

@media(max-width:780px){
  .facts{
    grid-template-columns:1fr 1fr;
    gap:25px 15px
  }
  .credibility{
    padding-bottom:28px
  }
  .chapter{
    grid-template-columns:1px minmax(0,1fr);
    gap:25px 22px
  }
  .timeline-rail{
    grid-column:1;
    grid-row:1 / 3;
    min-height:0
  }
  .timeline-rail>span{
    top:45px
  }
  .chapter-copy{
    grid-column:2;
    grid-row:1
  }
  .chapter>figure{
    grid-column:2;
    grid-row:2
  }
  .award-rule{
    font-size:43px;
    margin-block:22px
  }

}

@media(max-width:370px){
  .awards article{
    display:block
  }
  .awards article p{
    max-width:none
  }
  .award-rule{
    margin-block:20px
  }
  .chapter{
    column-gap:16px
  }

}

/* v0.4 — spacing, optional sage label and restrained motion */
.hero{
  grid-template-columns:.96fr 1.04fr;
  gap:30px
}

.hero h1{
  max-width:100%;
  text-wrap:balance
}

.hero-copy>.eyebrow{
  display:inline-block;
  padding:6px 9px;
  margin-left:-9px
}

.eyebrow-tint .hero-copy>.eyebrow{
  background:var(--sage);
  color:var(--deep)
}

.credibility{
  padding-bottom:24px;
  margin-bottom:clamp(26px,4.5vw,65px)
}

.credibility::after{
  height:clamp(27px,4.6vw,66px)
}

.journey{
  padding-top:64px
}

.chapter{
  position:relative
}

.timeline-rail{
  position:absolute;
  left:calc((100% - 89px)/2.05 + 44px);
  top:var(--rail-top,49px);
  height:var(--rail-height,310px);
  width:1px;
  min-height:0;
  margin:0
}

.timeline-rail>span{
  top:50%
}

.chapter-copy{
  grid-column:1
}

.chapter>figure{
  grid-column:3
}

.credentials h2{
  font-size:38px
}

.motion-item.play{
  animation:editorial-arrive 650ms cubic-bezier(.22,.7,.2,1) both
}

@keyframes editorial-arrive{
  from{
    opacity:.3;
    transform:translateY(8px)
  }
  to{
    opacity:1;
    transform:translateY(0)
  }

}

.scroll-prompt span{
  display:inline-block;
  animation:scroll-nudge 5s ease-in-out infinite;
  animation-play-state:paused
}

.scroll-prompt.in-view span{
  animation-play-state:running
}

@keyframes scroll-nudge{
  0%,78%,100%{
    transform:translateY(0)
  }
  86%{
    transform:translateY(5px)
  }
  94%{
    transform:translateY(0)
  }

}

@media(max-width:1050px){
  .hero{
    gap:26px
  }
  .timeline-rail{
    left:calc((100% - 51px)/2.05 + 25px)
  }

}

@media(max-width:780px){
  .hero{
    grid-template-columns:1fr;
    gap:30px
  }
  .hero h1{
    max-width:580px
  }
  .journey{
    padding-top:42px
  }
  .chapter-copy{
    grid-column:2
  }
  .chapter>figure{
    grid-column:2
  }
  .timeline-rail{
    left:0;
    top:32px;
    height:calc(100% - 32px)
  }
  .timeline-rail>span{
    top:45px
  }
  .credentials h2{
    font-size:38px
  }

}

@media(prefers-reduced-motion:reduce){
  .motion-item.play,.scroll-prompt span{
    animation:none
  }

}

@media print{
  .motion-item.play,.scroll-prompt span,.year.year-play .digit{
    animation:none
  }

}

/* v0.5 — approved section labels, stronger name and compact credentials */
.scroll-prompt{
  gap:14px
}

.brand>span{
  font-weight:750;
  letter-spacing:.12em
}

main section .eyebrow{
  display:inline-block;
  width:fit-content;
  max-width:100%;
  padding:6px 9px;
  margin-left:-9px;
  background:var(--sage);
  color:var(--deep);
  align-self:flex-start
}

.section-title>.eyebrow{
  flex-shrink:0;
  margin-top:4px
}

.credibility .eyebrow{
  background:var(--paper);
  color:var(--deep)
}

.credentials .eyebrow{
  background:var(--sage);
  color:var(--deep)
}

.credentials>.wrap{
  max-width:1040px;
  grid-template-columns:.8fr 2fr;
  gap:40px
}

@media(max-width:1050px){
  .credentials>.wrap{
    gap:28px
  }

}

@media(max-width:780px){
  .brand>span{
    letter-spacing:.09em
  }
  .credentials>.wrap{
    grid-template-columns:1fr;
    gap:32px
  }
  .section-title>.eyebrow{
    margin-top:0;
    flex-shrink:1
  }

}

@media(max-width:370px){
  .brand>span{
    letter-spacing:.06em
  }

}

/* v0.6 — closing review: contextual labels and approved sans name */
.brand>span{
  font-weight:800
}

main .eyebrow{
  white-space:nowrap
}

.section-title>.eyebrow{
  width:max-content;
  max-width:none;
  flex-shrink:0
}

main .credibility .eyebrow,main .credentials .eyebrow{
  background:transparent;
  padding:6px 0;
  margin-left:0
}

main .credibility .eyebrow{
  color:var(--deep)
}

main .credentials .eyebrow{
  color:#e0e3d5
}

@media(min-width:781px) and (max-width:1050px){
  .section-title{
    gap:24px
  }
  .section-title h2{
    width:auto;
    flex:1;
    min-width:0
  }
  .credentials>.wrap{
    grid-template-columns:minmax(205px,.8fr) minmax(0,2fr)
  }

}

/* v0.7 — final mobile feedback, 2 October 2026 */
@media(max-width:780px){

 .credentials h2 br{
    display:block
  }

 .menu{
    width:44px;
    height:44px;
    flex-shrink:0;
    justify-content:center;
    padding:0
  }

 .menu>span{
    font-size:22px;
    line-height:1
  }

 .year{
    gap:9px
  }

 .year>span{
    font-size:64px
  }

 .year small{
    font-size:15px;
    white-space:nowrap
  }

}

/* v0.8 — approved portrait crops, without further image editing */
.hero-photo picture{
  display:block
}

.hero-photo img{
  object-position:center
}

/* v0.10 — vertical mobile portrait; source assets remain unchanged */
@media(max-width:780px){
  .hero-photo img{
    aspect-ratio:3/4;
    object-fit:cover;
    object-position:center;
    height:auto
  }

}

/* Complete editorial page */
.full-section{
  padding-block:80px;
  border-top:1px solid var(--line)
}

.full-section>.eyebrow{
  margin-bottom:24px
}

.full-section h2{
  max-width:780px;
  margin-bottom:30px
}

.full-section h3{
  font:400 29px/1.15 var(--serif);
  letter-spacing:-.015em;
  margin-bottom:16px
}

.full-section p{
  font-size:14px;
  line-height:1.8
}

.full-section p.eyebrow{
  font-size:10px;
  line-height:1.5
}

.full-section p.review-note,.full-section figcaption{
  font-size:11px;
  line-height:1.65
}

.full-section .review-note{
  margin-top:14px
}

.intro-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:start
}

.intro-grid p+p{
  margin-top:16px
}

.capabilities{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:44px 70px;
  margin-top:44px
}

.capabilities article{
  border-top:1px solid var(--line);
  padding-top:24px;
  display:grid;
  grid-template-columns:60px 1fr;
  gap:0 18px
}

.capabilities .item-number{
  grid-row:1/3;
  font:400 43px/1 var(--serif);
  color:var(--green)
}

.capabilities p{
  grid-column:2
}

.venue-grid,.people-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  margin-top:38px
}

.venue-grid img{
  aspect-ratio:3/2;
  height:auto
}
.people-grid img{
  aspect-ratio:2/1;
  height:auto
}

.people-grid h3{
  margin-top:26px
}
.leadership-photo{
  margin-top:35px
}

.leadership-photo img{
  aspect-ratio:2/1;
  height:auto
}

.closure{
  border-left:1px solid var(--stone);
  padding-left:18px;
  max-width:820px;
  margin-top:24px
}

.pending-label{
  font-size:11px;
  color:var(--green)
}

.current-work{
  background:var(--sage);
  padding:56px;
   margin-block:0 70px
}

main .current-work .eyebrow{
  background:none;
  padding-left:0;
  margin-left:0
}

.section-lead{
  max-width:650px
}

.projects{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  margin-top:40px
}

.projects article{
  border-top:1px solid #b9c0ad;
  padding-top:24px
}

.projects .project-type{
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:16px
}

.testimonials{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px;
  margin-top:32px
}

.testimonials>div{
  border-top:1px solid var(--line);
  padding-top:22px
}

.testimonials span,.testimonials small{
  font-size:11px;
  color:#626958
}

.testimonials p{
  font:400 26px/1.3 var(--serif);
  margin-block:16px
}

.contact{
  scroll-margin-top:72px
}

.contact-cta{
  background:var(--green);
  color:var(--paper);
  padding:40px 0 44px
}

.contact-cta-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  align-items:start
}

.contact-heading .eyebrow{
  margin:0 0 22px;
  padding:0;
  background:transparent;
  color:#dce4d5
}

.contact-cta h2{
  font:400 clamp(48px,5.5vw,72px)/1.02 var(--serif);
  letter-spacing:-.035em;
  margin:0;
  color:var(--paper);
  white-space:nowrap
}

.contact-cta h2 em{
  color:var(--paper);
  font-style:italic
}

.contact-lead{
  max-width:58ch;
  padding-bottom:0;
  color:var(--paper);
  font-size:16px;
  line-height:1.75
}

.contact-form-wrap{
  display:block;
  padding-block:50px 90px
}

.contact-form-wrap form{
  width:100%;
  max-width:780px;
  margin-inline:auto
}

form{
  display:grid;
  gap:18px
}
form label{
  display:grid;
  gap:8px;
  font-size:14px;
  font-weight:500;
  line-height:1.5
}
.form-pair{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}

input,textarea{
  max-width:100%
}
form input,form textarea{
  width:100%;
  border:1px solid #929b88;
  background:transparent;
  border-radius:0;
  padding:14px;
  color:var(--ink);
  font:16px/1.5 var(--sans)
}
form textarea{
  resize:vertical
}

form button{
  justify-self:start;
  border:1px solid var(--green);
  padding:12px 24px;
  background:var(--green);
  color:var(--paper);
  transition:background .2s
}

form button:hover{
  background:var(--deep)
}
.optional,.demo-notice{
  font-size:11px!important;
  color:#626958
}
.demo-notice{
  margin:0!important
}

.footer{
  align-items:center;
  flex-wrap:wrap;
  gap:20px
}
.instagram-placeholder{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap
}
.instagram-placeholder small{
  font-size:10px
}

.text-link{
  display:inline-block;
  margin-top:18px;
  font-size:12px
}

.header nav a{
  transition:color .2s
}
.header nav a:hover{
  color:var(--green)
}

.timeline{
  position:relative
}
.chapter{
  padding-top:0;
  margin-top:56px;
  padding-bottom:0;
  min-width:0
}
.chapter-copy{
  min-width:0
}
.chapter>figure{
  min-width:0
}

.timeline-rail{
  top:0;
  height:100%;
  min-height:0
}
.timeline-rail:before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--green);
  transform:scaleY(var(--rail-progress,0));
  transform-origin:top
}

.present-year>span{
  font-size:clamp(48px,6vw,80px)
}

.chapter-copy h3{
  max-width:430px
}
.timeline-rail>span{
  transition:background .3s
}

.awards article.play .award-year{
  animation:editorial-arrive .65s both;
  animation-delay:var(--delay,0ms)
}

.awards article.play .award-rule{
  animation:rule-in .35s both;
  animation-delay:calc(var(--delay,0ms) + 200ms);
  transform-origin:left
}

@keyframes rule-in{
  from{
    transform:scaleX(0)
  }
  to{
    transform:scaleX(1)
  }

}

@media(max-width:1050px){
  .intro-grid{
    gap:35px
  }
  .current-work{
    padding:38px
  }
  .capabilities{
    gap:35px
  }
  .testimonials{
    gap:18px
  }

}

@media(max-width:780px){

 .full-section{
    padding-block:48px
  }
  .full-section h2{
    font-size:37px
  }
  .full-section h3{
    font-size:28px
  }

 .intro-grid,.capabilities,.venue-grid,.people-grid,.projects,.testimonials{
    grid-template-columns:1fr;
    gap:30px
  }

 .capabilities article{
    grid-template-columns:45px 1fr;
    column-gap:15px
  }
  .capabilities .item-number{
    font-size:36px
  }

 .venue-grid,.people-grid{
    margin-top:28px
  }
  .leadership-photo img{
    aspect-ratio:3/2
  }

 .current-work{
    padding:32px 22px;
    margin-bottom:45px
  }
  .projects{
    margin-top:28px
  }

 .form-pair{
    grid-template-columns:1fr
  }
  .contact{
    padding-bottom:0
  }
  .footer{
    align-items:flex-start
  }

 .timeline-rail{
    top:0;
    height:100%;
    left:0
  }
  .chapter{
    margin-top:36px
  }
  .present-year>span{
    font-size:52px
  }

 .awards{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .awards article{
    min-width:0
  }

 .header nav.open{
    max-height:calc(100dvh - 90px);
    overflow-y:auto
  }

}

@media(max-width:370px){
  .awards{
    grid-template-columns:1fr
  }
  .awards article+article{
    margin-top:12px
  }

}

@media(prefers-reduced-motion:reduce){
  .awards article.play .award-year,.awards article.play .award-rule{
    animation:none
  }
  .timeline-rail:before{
    transform:scaleY(1)
  }
  *{
    scroll-behavior:auto!important
  }

}

@media print{
  .review,.menu{
    display:none
  }
  .header{
    position:static
  }
  .motion-item,.digit,.award-year,.award-rule{
    animation:none!important
  }

}

/* v0.2: compact rhythm and deliberate entrances */
.full-section{
  padding-block:58px
}
.journey{
  padding-bottom:54px
}

.chapter{
  grid-template-columns:1fr 1px 1.05fr;
  gap:34px;
  margin-top:38px
}

.chapter>figure{
  width:100%;
  max-width:440px;
  justify-self:start
}

.timeline-rail{
  left:calc((100% - 69px)/2.05 + 34px)
}

.chapter-present{
  min-height:130px
}
.chapter-present .present-summary{
  grid-column:3
}
.chapter-present h3{
  margin-bottom:12px
}
.chapter-present p{
  font-size:14px
}
.chapter-present .year{
  margin-bottom:0
}

.leadership-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px;
  align-items:center
}
.leadership-grid p+p{
  margin-top:16px
}
.leadership-photo{
  margin:0
}
.leadership-photo img{
  aspect-ratio:3/2
}

.timeline-rail>span{
  background:var(--paper);
  border:1px solid var(--green);
  transition:background .3s,box-shadow .3s
}

.timeline-rail.milestone-active>span{
  background:var(--green);
  box-shadow:0 0 0 6px var(--paper),0 0 0 7px #a7af9b
}

.photo-motion.play{
  animation:photo-arrive .75s ease-out both
}

@keyframes photo-arrive{
  from{
    opacity:.35
  }
  to{
    opacity:1
  }

}

.block-motion.play{
  animation:editorial-arrive .6s both;
  animation-delay:var(--block-delay,0ms)
}

.text-link,.contact-link{
  transition:color .2s,text-decoration-color .2s
}
.text-link:hover,.text-link:focus-visible{
  color:#657650;
  text-decoration-thickness:2px
}

@media(max-width:1050px){
  .chapter{
    gap:25px
  }
  .timeline-rail{
    left:calc((100% - 51px)/2.05 + 25px)
  }

}

@media(max-width:780px){
  .full-section{
    padding-block:40px
  }
  .chapter{
    grid-template-columns:1px minmax(0,1fr);
    gap:20px 22px;
    margin-top:28px
  }
  .chapter>figure{
    max-width:none
  }
  .timeline-rail{
    left:0
  }
  .chapter-present .present-summary{
    grid-column:2;
    grid-row:2
  }
  .chapter-present{
    min-height:0
  }
  .leadership-grid{
    grid-template-columns:1fr;
    gap:24px
  }
  .current-work{
    padding:30px 22px
  }
  .header nav.open{
    animation:menu-arrive .2s ease-out
  }

}

@keyframes menu-arrive{
  from{
    opacity:0;
    transform:translateY(-5px)
  }
  to{
    opacity:1;
    transform:translateY(0)
  }

}

@media(prefers-reduced-motion:reduce){
  .photo-motion.play,.block-motion.play,.header nav.open{
    animation:none
  }
  .timeline-rail>span{
    transition:none
  }

}

@media print{
  .photo-motion.play,.block-motion.play{
    animation:none
  }

}

/* v0.3 unified people block and paired media */
.photo-motion.play{
  animation:photo-arrive 1.2s cubic-bezier(.2,.55,.35,1) both
}

@keyframes photo-arrive{
  from{
    opacity:.08
  }
  to{
    opacity:1
  }

}

.leadership-grid{
  gap:30px;
  align-items:center
}
.people-intro>.eyebrow{
  margin-bottom:20px
}
.people-intro h2{
  margin-bottom:22px
}
.leadership-photo img,.people-grid img{
  aspect-ratio:3/2
}
.people-grid{
  gap:30px;
  margin-top:30px
}

.footer{
  width:100%;
  max-width:none;
  background:var(--green);
  color:var(--paper);
  border:0;
  padding:30px max(32px,calc((100% - 1240px)/2));
  margin:0
}
.footer .pending-label,.footer small{
  color:var(--paper)
}

.media-pair{
  align-items:start
}
.video-panel video,.gallery-frame{
  width:100%;
  aspect-ratio:16/9;
  display:block;
  background:var(--deep)
}
.video-panel video{
  object-fit:contain
}
.gallery-frame{
  overflow:hidden
}
.gallery-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:16/9
}
.media-controls{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  min-height:54px
}
.media-controls span{
  font-size:10px;
  letter-spacing:.04em
}
.media-controls button,.dialog-top button{
  border:1px solid var(--stone);
  padding:9px 12px;
  background:transparent;
  color:inherit;
  min-width:44px;
  min-height:44px;
  font-size:12px
}
.media-controls button:hover{
  background:var(--sage)
}

#video-dialog{
  width:min(1100px,95vw);
  max-height:95dvh;
  padding:20px;
  background:var(--deep);
  color:var(--paper);
  border:1px solid var(--stone)
}
#video-dialog::backdrop{
  background:#10170ee6
}
.dialog-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:15px
}
.dialog-top h2{
  font-size:28px
}
#expanded-video{
  display:block;
  width:100%;
  max-height:75dvh;
  aspect-ratio:16/9
}
body.video-open{
  overflow:hidden
}

@media(max-width:780px){
  .leadership-grid{
    gap:24px
  }
  .people-grid{
    gap:30px
  }
  .footer{
    padding:28px 22px
  }
  .media-pair{
    gap:24px
  }
  .media-controls span{
    letter-spacing:0
  }
  .people-intro h2{
    font-size:35px
  }

}

@media(prefers-reduced-motion:reduce){
  .photo-motion.play{
    animation:none
  }

}

/* Full Design v0.5 — two aligned people rows, finished controls and one-time reveals. */
#people .leadership-grid,#people .programmes-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:56px;
  align-items:center
}

#people .people-intro>p:not(.eyebrow),#people .programmes-copy p{
  max-width:46ch
}

#people .leadership-photo,#people .people-gallery{
  width:100%;
  max-width:none;
  min-width:0;
  margin:0
}

#people .leadership-photo img,#people .people-gallery .gallery-frame{
  aspect-ratio:3/2
}

#people .programmes-row{
  margin-top:32px;
  padding-top:32px;
  border-top:1px solid var(--line)
}

#people .programmes-copy{
  display:grid;
  gap:26px
}

#people .programmes-copy h3{
  font-size:27px;
  max-width:26ch;
  margin:0 0 12px
}

#people .people-gallery .gallery-frame{
  background:var(--sage)
}

#people .people-gallery img{
  object-fit:contain
}

.video-stage{
  position:relative;
  isolation:isolate
}

.video-overlay{
  position:absolute;
  inset:auto 14px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}

.media-button,.media-controls button,.dialog-top button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-width:44px;
  min-height:44px;
  border:1px solid transparent;
  border-radius:999px;
  background:var(--green);
  color:var(--paper);
  padding:11px 16px;
  font:500 12px/1.2 var(--sans);
  transition:background .25s ease,transform .25s ease,box-shadow .25s ease
}

.media-button.icon-button,.media-controls .icon-button{
  width:44px;
  height:44px;
  padding:11px;
  flex:none
}

.media-button svg{
  flex:none
}

.media-button:hover,.media-controls button:hover,.dialog-top button:hover{
  background:var(--deep);
  transform:translateY(-1px)
}

.media-button:focus-visible,.media-controls button:focus-visible,.gallery:focus-visible{
  outline:2px solid var(--green);
  outline-offset:4px
}

.video-overlay .media-button{
  box-shadow:0 2px 12px #0003;
  border-color:#f7f5ed38
}

.video-overlay .media-button:focus-visible{
  outline-color:var(--paper)
}

.media-controls{
  min-height:60px;
  gap:14px;
  padding-top:12px;
  align-items:center
}

.media-controls>span{
  font-size:11px;
  letter-spacing:.015em;
  line-height:1.5
}

.gallery-actions{
  display:flex;
  gap:8px;
  margin-left:auto;
  flex:none
}

.media-label{
  font:500 10px/1.5 var(--sans)!important;
  letter-spacing:.08em;
  padding-top:18px;
  color:var(--green)
}

.gallery-frame{
  background:var(--sage);
  position:relative
}

.gallery-frame img{
  transition:opacity .4s ease-in-out
}

.gallery-frame img.is-switching{
  opacity:0
}

.gallery-frame img[data-fit="contain"]{
  object-fit:contain
}

#video-dialog{
  border:0;
  border-radius:8px;
  padding:22px
}

.dialog-top button{
  background:var(--paper);
  color:var(--deep)
}

.dialog-top button:hover{
  background:var(--sage)
}

.dialog-top button:focus-visible{
  outline:2px solid var(--paper);
  outline-offset:4px
}

.footer{
  padding:52px max(32px,calc((100% - 1240px)/2));
  gap:28px 40px;
  align-items:center
}

.footer-brand{
  flex:1 1 285px
}

.footer-brand>a{
  font:800 17px/1.3 var(--sans);
  letter-spacing:.12em;
  text-decoration:none
}

.footer-brand p{
  font:400 13px/1.6 var(--sans);
  letter-spacing:0;
  margin-top:10px;
  max-width:31ch
}

.footer .instagram-placeholder{
  max-width:260px
}

.footer .instagram-placeholder small{
  display:block;
  width:100%;
  padding-left:26px;
  opacity:.8
}

.footer .pending-label{
  max-width:180px;
  letter-spacing:0
}

/* Static defaults stay visible. Only the pre-paint capability class enables hiding. */
html.motion-ready [data-enter]{
  opacity:0;
  transition:opacity 1.1s cubic-bezier(.45,0,.2,1)
}

html.motion-ready [data-enter="photo"]{
  transition-duration:2.2s;
  transform:none
}

html.motion-ready [data-enter="award"]{
  transition-duration:1.6s
}

html.motion-ready [data-enter].is-visible{
  opacity:1
}

html.motion-ready [data-enter="year"]{
  opacity:1;
  transition:none
}

html.motion-ready [data-enter="year"] .digit{
  opacity:0;
  transform:translateY(85%);
  transition:transform 1.4s cubic-bezier(.45,0,.2,1),opacity 1.4s cubic-bezier(.45,0,.2,1);
  transition-delay:calc(var(--digit-index,0)*60ms)
}

html.motion-ready [data-enter="year"] small{
  opacity:0;
  transition:opacity 1.4s ease-in-out
}

html.motion-ready [data-enter="year"].is-visible .digit{
  opacity:1;
  transform:translateY(0)
}

html.motion-ready [data-enter="year"].is-visible small{
  opacity:1
}

@media(max-width:1050px){
  #people .leadership-grid,#people .programmes-row{
    gap:36px
  }
  .footer{
    padding-inline:32px
  }

}

@media(max-width:780px){

 #people .leadership-grid,#people .programmes-row{
    grid-template-columns:minmax(0,1fr);
    gap:24px
  }

 #people .programmes-row{
    margin-top:28px;
    padding-top:28px
  }

 #people .programmes-copy{
    gap:24px
  }

 #people .people-intro>p:not(.eyebrow),#people .programmes-copy p{
    max-width:48ch
  }

 .video-overlay{
    inset:auto 10px 10px
  }

 .media-controls{
    gap:8px
  }

 .footer{
    padding:42px 22px;
    gap:24px;
    align-items:flex-start
  }

 .footer-brand{
    flex-basis:100%
  }
  .footer-brand>a{
    font-size:16px
  }

 .footer .instagram-placeholder{
    flex-basis:100%;
    order:2
  }
  .footer .pending-label{
    order:3
  }

 #video-dialog{
    padding:14px
  }

}

@media(prefers-reduced-motion:reduce){

 html.motion-ready [data-enter],html.motion-ready [data-enter="year"] .digit,html.motion-ready [data-enter="year"] small{
    opacity:1;
    transform:none;
    transition:none
  }

 .gallery-frame img,.media-button,.media-controls button{
    transition:none
  }

}

@media print{
  html.motion-ready [data-enter],html.motion-ready [data-enter="year"] .digit,html.motion-ready [data-enter="year"] small{
    opacity:1;
    transform:none;
    transition:none
  }

}

/* Full Design v0.6 — approved photo motion retained; complete editorial motion. */
.gallery .media-controls{
  position:absolute;
  right:12px;
  bottom:12px;
  max-width:calc(100% - 24px);
  min-height:0;
  padding:6px 6px 6px 14px;
  background:var(--paper);
  color:var(--deep);
  border-radius:32px;
  box-shadow:0 2px 14px #0002;
  gap:16px;
  z-index:1
}

.gallery .media-controls>span{
  font-size:10px;
  line-height:1.35;
  min-width:0
}

.gallery .gallery-actions{
  gap:5px
}

.gallery-frame img,#people .people-gallery img{
  object-fit:cover
}

#gallery-image{
  object-position:50% 15%
}

#people-gallery-image{
  object-position:50% 60%
}

#people .leadership-photo img,#people .people-gallery .gallery-frame{
  aspect-ratio:2/1
}

#people .leadership-grid,#people .programmes-row{
  align-items:start
}

#people .people-intro h2,#people .programmes-copy h3{
  font:400 clamp(30px,2.8vw,38px)/1.12 var(--serif);
  letter-spacing:-.02em;
  margin:0 0 20px;
  max-width:100%
}

#people .programmes-copy h3 em{
  font-style:italic
}

#people .programmes-copy{
  gap:30px
}

#people .people-intro>.eyebrow{
  margin-bottom:18px
}

.footer-brand{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:max-content;
  gap:2px;
  margin-right:auto
}

.footer-brand>a{
  display:block;
  width:max-content;
  line-height:1.15
}

.footer-brand p{
  font-size:10px;
  line-height:1.2;
  white-space:nowrap;
  margin:0;
  letter-spacing:0;
  width:0;
  min-width:100%;
  max-width:none
}

html.motion-ready [data-enter="text"],html.motion-ready [data-enter="block"]{
  transition:opacity 1.5s cubic-bezier(.45,0,.2,1);
  transition-delay:var(--enter-delay,0ms)
}

/* A credential is one observed unit, with a short internal sequence. */
html.motion-ready [data-enter="credential"]{
  opacity:1;
  transition:none
}

html.motion-ready [data-enter="credential"] .award-year{
  opacity:0;
  transition:opacity 1.8s cubic-bezier(.45,0,.2,1);
  transition-delay:var(--enter-delay,0ms)
}

html.motion-ready [data-enter="credential"] .award-rule{
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 1.6s cubic-bezier(.45,0,.2,1);
  transition-delay:calc(var(--enter-delay,0ms) + 150ms)
}

html.motion-ready [data-enter="credential"] p{
  opacity:0;
  transition:opacity 1.7s cubic-bezier(.45,0,.2,1);
  transition-delay:calc(var(--enter-delay,0ms) + 250ms)
}

html.motion-ready [data-enter="credential"].is-visible .award-year,html.motion-ready [data-enter="credential"].is-visible p{
  opacity:1
}

html.motion-ready [data-enter="credential"].is-visible .award-rule{
  transform:scaleX(1)
}

.text-link span,.contact-link span{
  display:inline-block;
  transition:transform .3s ease-in-out
}

.text-link:hover span,.text-link:focus-visible span{
  transform:translateY(2px)
}

.contact-link:hover span,.contact-link:focus-visible span{
  transform:translate(2px,-2px)
}

form input,form textarea{
  transition:border-color .25s ease,background .25s ease
}

form input:focus,form textarea:focus{
  border-color:var(--green);
  background:#e5e7dc55;
  outline:2px solid var(--green);
  outline-offset:2px
}

@media(max-width:780px){

 #people .people-intro h2,#people .programmes-copy h3{
    font-size:32px
  }

 .gallery .media-controls{
    right:8px;
    bottom:8px;
    max-width:calc(100% - 16px);
    gap:10px;
    padding-left:10px
  }

 .footer-brand{
    flex-basis:auto;
    margin-right:0
  }

 .footer-brand p{
    font-size:9px
  }

}

@media(prefers-reduced-motion:reduce){

 html.motion-ready [data-enter="text"],html.motion-ready [data-enter="block"],html.motion-ready [data-enter="credential"] .award-year,html.motion-ready [data-enter="credential"] p{
    opacity:1;
    transition:none
  }

 html.motion-ready [data-enter="credential"] .award-rule{
    transform:scaleX(1);
    transition:none
  }

 .text-link span,.contact-link span{
    transition:none;
    transform:none!important
  }

}

@media print{
  html.motion-ready [data-enter="credential"] .award-year,html.motion-ready [data-enter="credential"] p{
    opacity:1
  }
  html.motion-ready [data-enter="credential"] .award-rule{
    transform:scaleX(1)
  }

}

/* v0.7 — final review controls and two-line programme titles. */
.gallery .media-controls{
  background:none;
  box-shadow:none;
  padding:0;
  border-radius:0;
  gap:0;
  min-height:44px
}

.gallery .media-controls>span{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0
}

.gallery .gallery-actions{
  gap:8px;
  margin:0
}

.gallery .media-controls .icon-button{
  background:var(--paper);
  color:var(--green);
  border:1px solid #454f3d26;
  box-shadow:0 1px 5px #0002
}

.gallery .media-controls .icon-button:hover{
  background:var(--sage)
}

.gallery .media-controls .icon-button:focus-visible{
  outline:2px solid var(--green);
  outline-offset:2px;
  box-shadow:0 0 0 5px var(--paper)
}

#people .programmes-copy{
  gap:24px
}

#people .programmes-copy h3{
  margin-bottom:16px
}

/* Final desktop copy-width adjustment requested during review. */
@media(min-width:781px){
  #people .programmes-copy article:nth-child(2)>p{
    max-width:100%
  }

}

/* Full Design v0.8 - approved content revision, 7 October 2026. */
.facts small{
  line-height:1.45;
  max-width:210px
}

.chapter-present{
  align-items:start;
  scroll-margin-top:132px
}

.chapter-present .chapter-copy>p{
  max-width:500px
}

.chapter-present .chapter-copy>p+p{
  margin-top:14px
}

.chapter-present .current-gallery{
  grid-column:3;
  min-width:0;
  width:100%;
  max-width:440px;
  justify-self:start;
  align-self:start
}

.chapter-present .current-gallery .gallery-frame{
  aspect-ratio:3/2
}

.people-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:56px;
  align-items:stretch
}

.people-copy-stack{
  display:grid;
  gap:32px
}

#people .people-intro>p:not(.eyebrow),#people .programmes-copy p{
  max-width:48ch
}

#people .programmes-copy{
  display:block;
  border-top:1px solid var(--line);
  padding-top:32px
}

#people .programmes-copy h3{
  font:400 clamp(30px,2.8vw,38px)/1.12 var(--serif);
  letter-spacing:-.02em;
  margin:0 0 16px;
  max-width:100%
}

#people .people-gallery{
  display:block;
  align-self:center;
  width:100%;
  max-width:none;
  min-width:0;
  margin:0
}

#people .people-gallery .gallery-frame{
  position:relative;
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:3/2
}

#people .people-gallery .gallery-frame::before{
  display:none
}

#people .people-gallery .gallery-frame>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}

#people .people-gallery img{
  object-fit:cover
}

@media(max-width:1050px){

 .people-layout{
    gap:36px
  }

 .chapter-present .chapter-copy>p{
    max-width:460px
  }

}

@media(max-width:780px){

 .chapter-present .current-gallery{
    grid-column:2;
    grid-row:2;
    max-width:none
  }

 .chapter-present .current-gallery .gallery-frame{
    aspect-ratio:3/2
  }

 .people-layout{
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    align-items:start
  }

 .people-copy-stack{
    gap:28px
  }

 #people .programmes-copy{
    padding-top:28px
  }

 #people .programmes-copy h3{
    font-size:32px
  }

 #people .people-gallery{
    display:block;
    align-self:auto
  }

 #people .people-gallery .gallery-frame{
    height:auto;
    aspect-ratio:3/2
  }

 #people .people-gallery .gallery-frame::before{
    display:none
  }

 #people .people-gallery .gallery-frame>img{
    position:absolute
  }

 .contact-cta{
    padding:36px 0 40px
  }

 .contact-cta-grid{
    grid-template-columns:minmax(0,1fr);
    gap:12px
  }

 .contact-cta h2{
    font-size:48px;
    white-space:normal
  }

 .contact-lead{
    max-width:34ch;
    padding-bottom:0;
    font-size:15px
  }

 .contact-form-wrap{
    padding-block:38px 50px
  }

}

/* Full Design v0.9: experimental edge-to-edge hero, preserving v0.8 as rollback. */
.hero-edge{
  width:100%;
  max-width:none;
  min-height:660px;
  margin:0;
  padding:0 0 0 max(56px,calc((100vw - 1240px)/2));
  grid-template-columns:minmax(420px,540px) minmax(0,1fr);
  gap:52px;
  align-items:stretch
}

.hero-edge .hero-copy{
  align-self:center;
  padding-block:56px
}

.hero-edge .hero-photo{
  position:relative;
  min-width:0;
  max-width:none;
  overflow:hidden
}

.hero-edge .photo-frame,.hero-edge picture{
  display:block;
  width:100%;
  height:100%
}

.hero-edge .hero-photo img{
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center
}

.hero-edge .hero-title-line{
  display:block
}

html.motion-ready .hero-edge [data-enter="hero-title"]{
  opacity:1;
  transition:none
}

html.motion-ready .hero-edge [data-enter="hero-title"] .hero-title-line{
  opacity:0;
  transform:translateX(-20px);
  transition:opacity 900ms cubic-bezier(.35,0,.2,1),transform 900ms cubic-bezier(.35,0,.2,1)
}

html.motion-ready .hero-edge [data-enter="hero-title"] .hero-title-line:nth-child(1){
  transition-delay:100ms
}

html.motion-ready .hero-edge [data-enter="hero-title"] .hero-title-line:nth-child(2){
  transition-delay:190ms
}

html.motion-ready .hero-edge [data-enter="hero-title"] .hero-title-line:nth-child(3){
  transition-delay:280ms
}

html.motion-ready .hero-edge [data-enter="hero-title"].is-visible .hero-title-line{
  opacity:1;
  transform:translateX(0)
}

html.motion-ready .hero-edge [data-enter="hero-support"]{
  transform:translateX(-12px);
  transition:opacity 850ms cubic-bezier(.35,0,.2,1),transform 850ms cubic-bezier(.35,0,.2,1);
  transition-delay:var(--enter-delay,0ms)
}

html.motion-ready .hero-edge [data-enter="hero-support"].is-visible{
  transform:translateX(0)
}

html.motion-ready [data-enter="gallery"],html.motion-ready [data-enter="timeline-photo"]{
  transform:translateY(-14px);
  transition:opacity 1.1s cubic-bezier(.35,0,.2,1),transform 1.1s cubic-bezier(.35,0,.2,1);
  transition-delay:var(--enter-delay,0ms)
}

html.motion-ready [data-enter="gallery"].is-visible,html.motion-ready [data-enter="timeline-photo"].is-visible{
  transform:translateY(0)
}

html.motion-ready .hero-edge .hero-photo img[data-enter="photo"].is-visible{
  animation:hero-photo-drift 6s cubic-bezier(.25,.45,.25,1) forwards;
  transform-origin:center
}

@keyframes hero-photo-drift{
  from{transform:scale(1)}
  to{transform:scale(1.065)}
}

@media(max-width:1050px){
  .hero-edge{
    min-height:600px;
    padding-left:32px;
    grid-template-columns:minmax(350px,46%) minmax(0,1fr);
    gap:32px
  }

  .hero-edge .hero-copy{
    padding-block:48px
  }
}

@media(max-width:780px){
  .hero-edge{
    width:100%;
    min-height:0;
    padding:0;
    grid-template-columns:minmax(0,1fr);
    gap:0
  }

  .hero-edge .hero-copy{
    display:contents
  }

  .hero-edge .hero-copy>.eyebrow{
    order:1;
    justify-self:start;
    margin:40px 22px 0
  }

  .hero-edge .hero-title{
    order:2;
    margin:25px 22px 0;
    max-width:calc(100% - 44px)
  }

  .hero-edge .lead{
    order:3;
    max-width:none;
    margin:27px 22px 36px
  }

  .hero-edge .hero-photo{
    order:4;
    width:100%;
    max-width:none
  }

  .hero-edge .today{
    order:5;
    max-width:none;
    margin:24px 22px 0
  }

  .hero-edge .scroll-prompt{
    order:6;
    margin:26px 22px 36px
  }

  .hero-edge .photo-frame,.hero-edge picture{
    height:auto
  }

  .hero-edge .hero-photo img{
    height:auto;
    aspect-ratio:4/3;
    object-position:center
  }
}

@media(prefers-reduced-motion:reduce){
  html.motion-ready .hero-edge [data-enter="hero-support"],html.motion-ready [data-enter="gallery"],html.motion-ready [data-enter="timeline-photo"]{
    opacity:1;
    transform:none;
    transition:none
  }

  html.motion-ready .hero-edge [data-enter="hero-title"] .hero-title-line{
    opacity:1;
    transform:none;
    transition:none
  }

  html.motion-ready .hero-edge .hero-photo img[data-enter="photo"].is-visible{
    animation:none;
    transform:none
  }
}

/* v0.10: Richard's final review, 19 October 2026.
   Increase supporting copy without changing the approved heading or motion scale. */
.hero .today{font-size:15px}
.hero .scroll-prompt{font-size:13px}
.header nav{font-size:14px}
.facts small{font-size:13px;line-height:1.5}
.chapter .chapter-copy>p,
.chapter-present .chapter-copy>p{font-size:16px;line-height:1.75}
.awards article p{font-size:14px;line-height:1.7}
.capabilities article p,
.golf-groove .intro-grid>p,
#people .people-intro>p:not(.eyebrow),
#people .programmes-copy p{font-size:16px;line-height:1.75}
.text-link{font-size:15px}
.contact .contact-lead{font-size:17px}
.contact form label{font-size:16px}
.contact form .optional{font-size:13px}
.contact form .demo-notice{font-size:12px!important}
.eyebrow{font-size:12px!important}
.media-label{font-size:12px!important}
.expand-button span{font-size:12px}
.footer{font-size:12px}
.footer .instagram-placeholder small{font-size:11px}
@media(max-width:780px){
 .header nav a{font-size:16px}
 .contact .contact-lead{font-size:16px}
 .awards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .awards article{display:block;min-width:0}
 .awards article+article{margin-top:0}
 .awards article p{font-size:13px;line-height:1.45;margin-top:17px}
}
@media(max-width:370px){
 .awards .award-year{font-size:34px}
}
