@import url('https://fonts.googleapis.com/css2?family=Antonio:wght@300;400;600;700&display=swap');

:root{
  --forest:#003d20;
  --forest-2:#0d5a37;
  --sage:#dce8df;
  --ink:#111713;
  --paper:#f3f0e8;
  --paper-2:#e9e5dc;
  --white:#fff;
  --muted:#69726b;
  --line:rgba(17,23,19,.18);
  --max:1400px;
  --content:780px;
  --pad:clamp(20px,4vw,68px);
  --section:clamp(92px,11vw,178px);
  --header-h:72px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:18px;line-height:1.52;-webkit-font-smoothing:antialiased}
body.nav-open{overflow:hidden}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-weight:600;letter-spacing:-.052em;line-height:.93}
h1{font-size:clamp(4.2rem,10vw,10rem)}
h2{font-size:clamp(2.6rem,5.8vw,6.7rem)}
h3{font-size:clamp(2rem,3.5vw,4rem)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:700;margin-bottom:1.25rem}
.page-shell{width:min(var(--content),calc(100% - 2*var(--pad)));margin-inline:auto}
.page-shell-wide{width:min(var(--max),calc(100% - 2*var(--pad)));margin-inline:auto}
.section-space{padding-block:var(--section)}
.arrow-link{display:inline-flex;gap:.65em;align-items:center;text-decoration:none;font-size:.95rem;font-weight:700;border-bottom:1px solid;padding-bottom:.18em}
.section-heading{max-width:960px;margin-bottom:clamp(46px,7vw,96px)}
.section-heading h2{max-width:12ch}
.section-heading--split{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:40px}
.section-heading--split h2{margin-bottom:0}

.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);color:#fff;transition:background .35s ease,color .35s ease,border-color .35s ease;mix-blend-mode:normal}
.site-header.is-scrolled,body:not(.home) .site-header{background:rgba(243,240,232,.93);backdrop-filter:blur(12px);color:var(--ink);border-bottom:1px solid var(--line)}
.site-mark{display:flex;flex-direction:column;line-height:.78;text-decoration:none;text-transform:uppercase;font-weight:800;letter-spacing:-.07em;font-size:1.02rem}
.site-nav .nav-list{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px);list-style:none;margin:0;padding:0}
.site-nav a{text-decoration:none;font-size:.88rem;position:relative}
.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .25s ease}
.site-nav a:hover:after,.site-nav .current-menu-item>a:after{right:0}
.nav-toggle{display:none;width:42px;height:42px;border:0;background:transparent;color:inherit;padding:8px}
.nav-toggle span{display:block;height:1px;background:currentColor;margin:8px 0;transition:transform .2s ease}

/* English-only site: prevent legacy Weglot switchers from appearing if the old plugin is still active. */
.weglot-container,.wg-default,.wg-drop,.country-selector,.weglot_switcher,.weglot-switcher{display:none!important}

/* Homepage hero: desktop follows a 2400 × 1000 (12:5) editorial crop. */
.home-hero{height:clamp(560px,41.6667vw,820px);min-height:0;position:relative;background:var(--forest);color:#fff;overflow:hidden}
.home-hero__media,.home-hero__media picture,.home-hero__media img{position:absolute;inset:0;width:100%;height:100%}
.home-hero__media img{object-fit:cover;object-position:50% var(--hero-y,0%)}
.home-hero__media--empty{background:linear-gradient(135deg,var(--forest),#052d1b 70%)}
.home-hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,0) 38%,rgba(0,0,0,.12) 60%,rgba(0,0,0,.56) 100%)}
.home-hero__content{position:absolute;left:50%;bottom:clamp(22px,2.2vw,38px);width:min(96vw,1760px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;text-align:center}
.home-hero h1{text-transform:uppercase;margin:0 0 .42rem;font-size:clamp(5.8rem,9.4vw,10.8rem);line-height:.78;letter-spacing:-.072em;white-space:nowrap;text-shadow:0 2px 18px rgba(0,0,0,.18)}
.home-hero h1 span{display:inline}
.home-hero h1 span+span{margin-left:.16em}
.home-hero__roleline{margin:0;font-size:clamp(.92rem,1.08vw,1.12rem);line-height:1.35;letter-spacing:.005em;white-space:nowrap;text-shadow:0 1px 10px rgba(0,0,0,.22)}
.home-hero__roleline span{opacity:.7;padding:0 .28em}
.hero-scroll{position:absolute;right:var(--pad);bottom:clamp(34px,3.2vw,58px);display:flex;gap:12px;align-items:center;text-decoration:none;font-size:.74rem;text-transform:uppercase;letter-spacing:.12em}

.home-mission{width:min(var(--max),calc(100% - 2*var(--pad)));margin:auto;display:grid;grid-template-columns:.45fr 2.1fr 1fr;gap:clamp(28px,5vw,80px);align-items:start}
.home-mission__number{font-size:.78rem;letter-spacing:.14em;color:var(--forest)}
.home-mission__main h2{max-width:13ch;margin-bottom:0}
.home-mission__copy{padding-top:2.2rem;max-width:420px}
.home-mission__copy p{font-size:clamp(1.05rem,1.5vw,1.3rem);margin-bottom:2rem}

.home-thread{background:var(--forest);color:#fff;padding-inline:var(--pad)}
.home-thread p{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.2rem,5.7vw,6rem);line-height:1.02;letter-spacing:-.045em;max-width:20ch;margin:0 auto;text-align:center}

.home-roles{overflow:hidden}
.home-roles__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,2vw,32px)}
.home-role{display:grid;gap:26px}
.home-role--speaker{grid-column:1/8}
.home-role--advocate{grid-column:9/13;margin-top:11vw}
.home-role--storyteller{grid-column:2/8;margin-top:5vw}
.home-role__media{display:block;overflow:hidden;background:var(--sage);text-decoration:none}
.home-role--speaker .home-role__media{aspect-ratio:3/2}
.home-role--advocate .home-role__media{aspect-ratio:2/3}
.home-role--storyteller .home-role__media{aspect-ratio:16/10}
.home-role__image{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.home-role__media:hover .home-role__image{transform:scale(1.018)}
.home-role__empty{height:100%;display:grid;place-items:center;background:linear-gradient(135deg,var(--sage),var(--paper-2));color:var(--forest)}
.home-role__empty span{font-size:clamp(4rem,8vw,8rem);line-height:1;font-weight:700;letter-spacing:-.08em;opacity:.45}
.home-role__text{display:grid;grid-template-columns:44px 1fr;column-gap:18px;align-items:start}
.home-role__index{grid-row:1/4;font-size:.72rem;letter-spacing:.12em;color:var(--muted);padding-top:.35rem}
.home-role__text h3{margin-bottom:1rem}
.home-role__text h3 a{text-decoration:none}
.home-role__text>p:last-child{max-width:580px;margin-bottom:0;font-size:1.02rem}

.home-practice{background:var(--paper-2)}
.practice-list{border-top:1px solid var(--ink)}
.practice-row{display:grid;grid-template-columns:70px minmax(0,1fr) minmax(120px,.35fr) 30px;gap:22px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding-left .25s ease}
a.practice-row:hover{padding-left:10px}
.practice-row__number{font-size:.72rem;color:var(--muted);letter-spacing:.11em}
.practice-row__title{font-size:clamp(1.5rem,2.7vw,3rem);font-weight:600;letter-spacing:-.045em;line-height:1}
.practice-row__meta{font-size:.84rem;color:var(--muted)}
.practice-row__arrow{text-align:right;font-size:1.2rem}
.practice-row--placeholder{opacity:.58}

.home-next{width:min(var(--max),calc(100% - 2*var(--pad)));margin:auto;display:grid;grid-template-columns:1fr 1.4fr;gap:10vw;align-items:start}
.home-next__lead h2{max-width:9ch}
.home-next__links{border-top:1px solid var(--ink)}
.home-next__links a{display:flex;justify-content:space-between;align-items:center;text-decoration:none;border-bottom:1px solid var(--line);padding:25px 0;font-size:clamp(1.35rem,2.5vw,2.7rem);font-weight:600;letter-spacing:-.04em;transition:padding-left .25s ease}
.home-next__links a:hover{padding-left:10px}

.media-placeholder{background:rgba(0,61,32,.08);border:1px solid rgba(0,61,32,.16);min-height:55vh;display:grid;place-items:center;color:var(--forest);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}
.media-placeholder--landscape{min-height:330px;aspect-ratio:4/3}
.media-placeholder--portrait{min-height:0;aspect-ratio:4/5}
.media-placeholder--wide{min-height:0;aspect-ratio:16/8}
.media-placeholder--cinema{min-height:0;aspect-ratio:16/7}

.page-intro{padding-top:clamp(150px,18vw,250px);padding-bottom:var(--section)}
.page-intro .media-placeholder{margin-top:70px}
.timeline-chapter{display:grid;grid-template-columns:1fr 2fr 2.5fr;gap:clamp(24px,5vw,72px);align-items:start;padding:var(--section) 0;border-top:1px solid var(--line)}
.timeline-number{font-size:clamp(2rem,4vw,4rem);color:var(--forest);font-weight:700}
.transition-block{background:var(--forest);color:#fff;padding:clamp(70px,10vw,150px) var(--pad);display:flex;justify-content:space-between;gap:40px;align-items:end;font-size:clamp(1.6rem,4vw,4rem);line-height:1}
.transition-block p{max-width:19ch;margin:0}.transition-block a{font-size:1rem;white-space:nowrap}
.mission-opening{padding-top:clamp(170px,20vw,300px)}.mission-opening h1{max-width:12ch}
.two-sides{display:grid;grid-template-columns:1fr 1fr;gap:12vw}.two-sides>div{border-top:1px solid;padding-top:28px}
.what-how-where{display:grid;grid-template-columns:repeat(3,1fr);gap:4vw}.step{border-top:1px solid;padding-top:18px}.step span{font-size:.8rem}
.dream-break{position:relative;background:var(--ink);color:#fff}.dream-break blockquote{position:absolute;inset:auto var(--pad) clamp(30px,6vw,90px);margin:0;font-size:clamp(2.4rem,6vw,7rem);line-height:.93;letter-spacing:-.04em}
.mission-methods{display:grid;gap:var(--section)}.mission-methods article:nth-child(even){margin-left:25%}
.work-item{padding-top:var(--section);border-top:1px solid var(--line)}
.work-copy{width:min(var(--max),calc(100% - 2*var(--pad)));margin:auto;display:grid;grid-template-columns:1fr 2fr 1.3fr;gap:4vw;align-items:start}.work-copy h2{font-size:clamp(2.7rem,6vw,6.5rem)}
.work-primary{width:min(var(--max),calc(100% - 2*var(--pad)));margin:70px auto 0}.work-primary img{max-height:82vh;object-fit:cover}.work-body{padding-block:70px}
.work-gallery{display:grid;grid-template-columns:1.3fr 1fr;gap:6vw;padding-bottom:var(--section)}.work-gallery figure{margin:0}.work-gallery figure:nth-child(2){margin-top:10vw}.work-gallery figure:nth-child(3){grid-column:2}
.social-work{width:min(var(--max),calc(100% - 2*var(--pad)));margin:70px auto 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:8vw;align-items:start}.social-copy{position:sticky;top:20vh;max-width:580px}.social-feed{height:85vh;overflow:hidden;display:grid;gap:14px;background:var(--ink);padding:14px;transform:translateY(var(--feed-shift,0));transition:transform .08s linear}.social-feed figure{margin:0;aspect-ratio:9/16;overflow:hidden;background:#222}.social-feed img{height:100%;object-fit:cover}
.speech-list{padding-bottom:var(--section)}.speech-card{display:grid;grid-template-columns:1.4fr 1fr;gap:5vw;padding:70px 0;border-top:1px solid var(--line);align-items:center}.speech-media{text-decoration:none}.speech-media img{aspect-ratio:16/10;object-fit:cover}.speech-copy h2{font-size:clamp(2rem,4vw,4rem)}.speech-copy h2 a{text-decoration:none}.invite-block{background:var(--forest);color:#fff;padding:var(--section) var(--pad)}.invite-block h2{max-width:none}.speech-single__header{padding-top:clamp(160px,18vw,260px)}.speech-single__hero{margin-top:60px}.video-wrap{padding-top:50px}.video-wrap iframe{width:100%;aspect-ratio:16/9;height:auto}.prose{padding-block:80px}.prose p,.prose li{font-size:1.1rem}.contact-page{min-height:85svh;padding-top:clamp(170px,20vw,280px)}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:18px;font-size:clamp(1.7rem,4vw,4rem)}
.site-footer{padding:56px var(--pad);display:grid;grid-template-columns:1.5fr 1fr auto;gap:40px;border-top:1px solid var(--line);font-size:.82rem;align-items:end}.site-footer__brand{display:flex;flex-direction:column;gap:5px}.site-footer__brand span{color:var(--muted)}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.site-footer__year{text-align:right}

[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
[data-reveal].is-visible{opacity:1;transform:none}

@media(max-width:900px){
  :root{--header-h:64px}
  body{font-size:16px}
  .site-header,.site-header.is-scrolled{background:rgba(243,240,232,.96);backdrop-filter:blur(12px);color:var(--ink);border-bottom:1px solid var(--line)}
  .nav-toggle{display:block}
  .site-nav{position:fixed;inset:var(--header-h) 0 0;background:var(--paper);padding:40px var(--pad);display:none}
  .site-nav.is-open{display:block}
  .site-nav .nav-list{flex-direction:column;align-items:flex-start;gap:22px}
  .site-nav a{font-size:clamp(1.8rem,7vw,3.6rem);font-weight:600;letter-spacing:-.045em}
  .home-hero{height:clamp(520px,66svh,690px);min-height:0;padding-top:var(--header-h)}
  .home-hero__media img{object-position:38% 35%}
  .home-hero__content{left:50%;right:auto;bottom:28px;width:calc(100% - 2*var(--pad));transform:translateX(-50%);align-items:center;text-align:center}
  .home-hero h1{font-size:clamp(2.65rem,11.5vw,4.5rem);line-height:.82;margin-bottom:.7rem;white-space:nowrap}
  .home-hero h1 span{display:inline}
  .home-hero h1 span+span{margin-left:.16em}
  .home-hero__roleline{font-size:clamp(.68rem,2.7vw,.80rem);max-width:none;width:100%;line-height:1.3;white-space:nowrap}
  .hero-scroll{display:none}
  .home-mission{grid-template-columns:1fr;gap:18px}
  .home-mission__number{display:none}
  .home-mission__copy{padding-top:0;max-width:620px}
  .home-thread p{text-align:left}
  .home-roles__grid{display:block}
  .home-role{margin:0 0 72px!important}
  .home-role--speaker .home-role__media{aspect-ratio:3/2}
  .home-role--advocate .home-role__media{aspect-ratio:2/3}
  .home-role--storyteller .home-role__media{aspect-ratio:16/10}
  .section-heading--split{align-items:flex-start;flex-direction:column}
  .practice-row{grid-template-columns:42px 1fr 22px;gap:14px}
  .practice-row__meta{display:none}
  .home-next{grid-template-columns:1fr;gap:52px}
  .role-grid,.two-sides,.what-how-where,.work-copy,.social-work,.speech-card,.timeline-chapter{grid-template-columns:1fr}
  .role:nth-child(2),.role:nth-child(3),.mission-methods article:nth-child(even){margin-top:0;margin-left:0}
  .work-gallery{grid-template-columns:1fr}.work-gallery figure:nth-child(2),.work-gallery figure:nth-child(3){margin-top:0;grid-column:auto}
  .social-copy{position:static}.social-feed{height:70vh}.transition-block{align-items:flex-start;flex-direction:column}
  .site-footer{grid-template-columns:1fr;align-items:start}.site-footer__year{text-align:left}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1;transform:none;transition:none}.social-feed{transform:none!important;transition:none}.home-role__image{transition:none}}

/* v0.2.7 — let the homepage image continue behind the mobile header. */
@media(max-width:900px){
  body.home .site-header:not(.is-scrolled){
    background:transparent;
    backdrop-filter:none;
    color:#fff;
    border-bottom-color:transparent;
  }
  body.home.nav-open .site-header{
    background:rgba(243,240,232,.98);
    backdrop-filter:blur(12px);
    color:var(--ink);
    border-bottom:1px solid var(--line);
  }
  body.home .home-hero{
    padding-top:0;
  }
  body.home .home-hero__veil{
    background:linear-gradient(180deg,rgba(0,0,0,.20) 0%,rgba(0,0,0,.05) 18%,rgba(0,0,0,0) 40%,rgba(0,0,0,.12) 62%,rgba(0,0,0,.58) 100%);
  }
}

/* v0.2.9 — homepage light-section display typography */
body.home{background:var(--white)}
body.home .home-mission__main h2,
body.home .home-roles .section-heading h2,
body.home .home-role__text h3,
body.home .home-practice .section-heading h2,
body.home .home-next__lead h2{
  color:var(--forest);
}


/* v0.2.10 — homepage role image frames match the selected photography.
   Public Speaker uses a landscape 3:2 frame; Youth Advocate uses a portrait 2:3 frame. */


/* v0.2.11 — tighten the homepage role section without making it feel cramped. */
body.home .home-roles{
  padding-top:clamp(68px,7.5vw,118px);
  padding-bottom:clamp(74px,8.5vw,132px);
}
body.home .home-roles .section-heading{
  margin-bottom:clamp(30px,3.8vw,56px);
}
body.home .home-roles__grid{
  row-gap:clamp(30px,4vw,58px);
}
body.home .home-role{
  gap:clamp(14px,1.4vw,20px);
}
body.home .home-role--advocate{
  margin-top:clamp(44px,6vw,88px);
}
body.home .home-role--storyteller{
  margin-top:clamp(28px,3vw,48px);
}
body.home .home-role__text h3{
  margin-bottom:.62rem;
}
body.home .home-role__text>p:last-child{
  line-height:1.45;
}

@media(max-width:900px){
  body.home .home-roles{
    padding-top:clamp(56px,12vw,78px);
    padding-bottom:clamp(58px,13vw,82px);
  }
  body.home .home-roles .section-heading{
    margin-bottom:34px;
  }
  body.home .home-role{
    gap:14px;
    margin-bottom:52px!important;
  }
  body.home .home-role:last-child{
    margin-bottom:0!important;
  }
}

/* v0.2.12 — reduce the dead space around Public Speaker.
   The portrait Advocate item spans the two left-column rows so Storyteller can
   sit naturally beneath Public Speaker instead of being pushed down by the
   taller portrait image. */
@media (min-width:901px){
  body.home .home-role--speaker{
    grid-column:1/8;
    grid-row:1;
    gap:clamp(8px,.8vw,12px);
    align-self:start;
  }
  body.home .home-role--advocate{
    grid-column:9/13;
    grid-row:1 / span 2;
    align-self:start;
  }
  body.home .home-role--storyteller{
    grid-column:2/8;
    grid-row:2;
    margin-top:clamp(18px,2vw,32px);
    align-self:start;
  }
}


/* v0.2.13 — rebalance the editorial stagger in the homepage role section.
   Speaker and Advocate now use the same image-to-copy rhythm. The portrait
   Advocate block rises into the heading zone so its image begins above the
   Public Speaker image and sits partially alongside the section heading. */
@media (min-width:901px){
  body.home .home-role--speaker,
  body.home .home-role--advocate{
    gap:clamp(14px,1.4vw,20px);
  }

  body.home .home-role--advocate{
    margin-top:clamp(-168px,-9vw,-116px);
  }

  body.home .home-role--storyteller{
    margin-top:clamp(18px,2vw,32px);
  }
}

/* v0.2.14 — tighter editorial rhythm on desktop.
   - Storyteller becomes a horizontal image + copy composition.
   - The green common-thread statement fits comfortably within one desktop viewport.
   - The fixed header is slightly shorter to reveal more page content. */
@media (min-width:901px){
  body.home .home-thread{
    padding-top:clamp(52px,4.6vw,76px);
    padding-bottom:clamp(52px,4.6vw,76px);
  }
  body.home .home-thread p{
    font-size:clamp(2.5rem,3.85vw,4.35rem);
    line-height:1.01;
    max-width:24ch;
  }

  body.home .home-role--storyteller{
    grid-column:1/9;
    grid-row:2;
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(260px,.82fr);
    column-gap:clamp(28px,3vw,50px);
    row-gap:0;
    align-items:end;
    margin-top:clamp(14px,1.6vw,26px);
  }
  body.home .home-role--storyteller .home-role__media,
  body.home .home-role--storyteller .home-role__text{
    min-width:0;
  }
  body.home .home-role--storyteller .home-role__text{
    align-self:end;
    padding-bottom:clamp(2px,.4vw,8px);
  }
}



/* v0.2.15 — widen the Storyteller copy, refine the footer contact column,
   and add an unobtrusive back-to-top control. */
@media (min-width:901px){
  body.home .home-role--storyteller{
    grid-column:1/13;
    grid-template-columns:minmax(0,1.35fr) minmax(360px,.95fr);
    column-gap:clamp(34px,4.2vw,72px);
    align-items:center;
  }
  body.home .home-role--storyteller .home-role__text{
    align-self:center;
    padding-bottom:0;
  }
  body.home .home-role--storyteller .home-role__text>p:last-child{
    max-width:720px;
  }
}

.site-footer__contact{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
}
.site-footer__contact-title{
  font-size:.86rem;
  font-weight:700;
}
.site-footer__contact .footer-links{
  display:flex;
  flex-direction:column;
  gap:5px;
}
.site-footer__contact .footer-links a{
  text-decoration:none;
}
.site-footer__contact .footer-links a:hover,
.site-footer__contact .footer-links a:focus-visible{
  text-decoration:underline;
  text-underline-offset:3px;
}

.back-to-top{
  position:fixed;
  right:clamp(16px,2vw,30px);
  bottom:clamp(16px,2vw,30px);
  z-index:90;
  width:48px;
  height:48px;
  border:1px solid rgba(0,61,32,.18);
  border-radius:50%;
  background:rgba(243,240,232,.94);
  color:var(--forest);
  display:grid;
  place-items:center;
  font:inherit;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(0,0,0,.10);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease,background .2s ease,color .2s ease;
}
.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover,
.back-to-top:focus-visible{
  background:var(--forest);
  color:#fff;
  outline:none;
}

@media(max-width:900px){
  .site-footer__contact .footer-links{gap:7px}
  .back-to-top{
    width:44px;
    height:44px;
    right:14px;
    bottom:14px;
  }
}

/* v0.3.0 — content framework for About, Mission, Work galleries and expandable speeches. */
.about-intro h1{max-width:13ch}
.about-intro__copy{max-width:760px;margin-top:32px;font-size:clamp(1.05rem,1.45vw,1.28rem)}
.about-opening-image{margin:clamp(42px,6vw,82px) 0 0;overflow:hidden}
.about-opening-image img{max-height:78vh;object-fit:cover}
.about-story{background:var(--white)}
.about-chapter{padding-block:clamp(74px,8vw,126px);border-top:1px solid var(--line)}
.about-chapter__period{font-size:clamp(1.35rem,2.2vw,2.2rem);font-weight:700;letter-spacing:-.035em;color:var(--forest);margin-bottom:28px}
.about-chapter__flow{display:flow-root}
.about-chapter__flow h2{font-size:clamp(2.5rem,5.2vw,5.7rem);max-width:15ch;margin-bottom:28px;color:var(--forest)}
.about-chapter__copy{font-size:clamp(1.02rem,1.3vw,1.18rem)}
.about-chapter__copy p{max-width:none}
.about-chapter__image{width:min(42%,540px);margin:0 0 clamp(22px,3vw,42px) clamp(28px,4vw,64px);overflow:hidden}
.about-chapter__image img{width:100%;height:auto;max-height:72vh;object-fit:cover}
.about-chapter__image--right{float:right}
.about-chapter__image--left{float:left;margin-left:0;margin-right:clamp(28px,4vw,64px)}
.about-separator{width:100%;height:clamp(120px,10vw,175px);margin:0;overflow:hidden;background:var(--sage)}
.about-separator img,.about-separator>.media-placeholder{width:100%;height:100%;object-fit:cover;min-height:0;border:0}

.mission-opening__copy{max-width:760px;margin-top:32px;font-size:clamp(1.05rem,1.45vw,1.28rem)}
.mission-side{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:clamp(42px,7vw,110px);align-items:center;border-top:1px solid var(--line)}
.mission-side--self{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr)}
.mission-side__copy h2{color:var(--forest);max-width:11ch}
.mission-side__copy p:last-child{font-size:clamp(1.02rem,1.35vw,1.2rem);max-width:620px}
.mission-side__image{margin:0;overflow:hidden}
.mission-side__image img{aspect-ratio:4/3;object-fit:cover}
.dream-break__image{width:100%;height:min(74vh,820px);object-fit:cover}
.mission-strategy{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.75fr);gap:clamp(50px,8vw,120px);align-items:start;border-top:1px solid var(--line)}
.mission-strategy__intro>h2{color:var(--forest)}
.mission-strategy__intro>p{max-width:720px}
.mission-strategy__methods{margin-top:clamp(46px,6vw,82px);display:grid;gap:32px}
.mission-strategy__methods article{border-top:1px solid var(--line);padding-top:18px}
.mission-strategy__methods h3{font-size:clamp(1.7rem,2.8vw,3rem);color:var(--forest);margin-bottom:10px}
.mission-strategy__image{margin:0;position:sticky;top:calc(var(--header-h) + 28px)}
.mission-strategy__image img{max-height:78vh;object-fit:cover}
.mission-principles{background:var(--white)}
.mission-principles__image{height:clamp(220px,26vw,430px);overflow:hidden;margin:0}
.mission-principles__image img,.mission-principles__image>.media-placeholder{width:100%;height:100%;object-fit:cover;min-height:0;border:0}
.mission-principles__copy{padding-block:clamp(64px,8vw,120px)}
.mission-principles__copy h2{color:var(--forest);max-width:14ch}

.work-gallery{grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px)}
.work-gallery figure{grid-column:span 7;margin:0}
.work-gallery figure:nth-child(even){grid-column:6/span 7;margin-top:clamp(40px,7vw,110px)}
.work-gallery figure:nth-child(3n){grid-column:2/span 8;margin-top:clamp(18px,3vw,46px)}
.work-gallery img{max-height:82vh;object-fit:cover}

.speech-entry{padding:clamp(48px,6vw,82px) 0;border-top:1px solid var(--line)}
.speech-entry .speech-card{padding:0;border:0}
.speech-expander{margin-top:clamp(28px,4vw,46px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.speech-expander summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;cursor:pointer;font-weight:700;color:var(--forest)}
.speech-expander summary::-webkit-details-marker{display:none}
.speech-expander__icon{font-size:1.6rem;font-weight:400;transition:transform .2s ease}
.speech-expander[open] .speech-expander__icon{transform:rotate(45deg)}
.speech-expander__body{padding:8px 0 clamp(46px,6vw,82px)}
.speech-expander__text{padding-block:clamp(34px,4vw,58px)}
.speech-photo-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2vw,30px);margin-top:clamp(28px,4vw,56px)}
.speech-photo-gallery figure{margin:0;grid-column:span 6}
.speech-photo-gallery figure:nth-child(3n){grid-column:3/span 8}
.speech-photo-gallery img{max-height:80vh;object-fit:cover}

@media(max-width:900px){
  .about-chapter{padding-block:58px}
  .about-chapter__period{margin-bottom:18px}
  .about-chapter__image,.about-chapter__image--left,.about-chapter__image--right{float:none;width:100%;margin:0 0 28px}
  .about-chapter__image img{max-height:none}
  .about-separator{height:clamp(190px,52vw,290px)}
  .mission-side,.mission-side--self,.mission-strategy{grid-template-columns:1fr;gap:30px}
  .mission-side--self .mission-side__image{order:2}
  .mission-side--self .mission-side__copy{order:1}
  .mission-side__image img{aspect-ratio:4/3}
  .dream-break__image{height:68svh}
  .mission-strategy__image{position:static;order:-1}
  .mission-principles__image{height:54vw;min-height:210px}
  .work-gallery{display:grid;grid-template-columns:1fr;gap:24px}
  .work-gallery figure,.work-gallery figure:nth-child(even),.work-gallery figure:nth-child(3n){grid-column:auto;margin-top:0}
  .speech-entry .speech-card{grid-template-columns:1fr}
  .speech-photo-gallery{grid-template-columns:1fr}
  .speech-photo-gallery figure,.speech-photo-gallery figure:nth-child(3n){grid-column:auto}
}

/* About Lars — v0.3.1 editorial layout */
.about-intro{padding-bottom:clamp(72px,8vw,120px)}
.about-intro__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(40px,7vw,110px);align-items:center}
.about-intro__lead{min-width:0}
.about-intro__lead h1{max-width:10.5ch;margin-bottom:clamp(24px,3vw,42px)}
.about-intro__copy{max-width:720px}
.about-opening-image{margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--sage);align-self:center}
.about-opening-image img{width:100%;height:100%;max-height:none;object-fit:cover}
.about-opening-image.media-placeholder{min-height:0}

/* Chapter images alternate left/right. The title and first paragraphs occupy the
   opposite side; once the text reaches below the floated image it automatically
   returns to the full page width. */
.about-chapter{padding-block:clamp(64px,7vw,108px)}
.about-chapter__period{margin-bottom:clamp(20px,2.2vw,30px)}
.about-chapter__image{width:min(36%,500px);margin-bottom:clamp(20px,2.5vw,34px)}
.about-chapter__image--right{margin-left:clamp(34px,5vw,78px)}
.about-chapter__image--left{margin-right:clamp(34px,5vw,78px)}
.about-chapter__image img{width:100%;height:auto;max-height:none;object-fit:cover}
.about-chapter__flow h2{font-size:clamp(2.35rem,4.25vw,5rem);max-width:none;margin-bottom:clamp(20px,2.4vw,34px)}
.about-chapter__copy{font-size:clamp(1.02rem,1.24vw,1.16rem)}
.about-chapter--image-right .about-chapter__flow h2,
.about-chapter--image-right .about-chapter__copy{text-align:left}
.about-chapter--image-left .about-chapter__flow h2,
.about-chapter--image-left .about-chapter__copy{text-align:left}

/* Full-width separators use the same 2400 × 1000 proportion on desktop and mobile. */
.about-separator{width:100%;height:auto;aspect-ratio:12/5;margin:0;overflow:hidden;background:var(--sage)}
.about-separator img,.about-separator>.media-placeholder{width:100%;height:100%;object-fit:cover;min-height:0;border:0}

@media (max-width: 760px){
  .about-intro{padding-top:clamp(112px,30vw,150px);padding-bottom:56px}
  .about-intro__grid{grid-template-columns:1fr;gap:30px}
  .about-intro__lead h1{max-width:none}
  .about-opening-image{width:min(78vw,420px);justify-self:start;aspect-ratio:4/5}
  .about-chapter{padding-block:52px}
  .about-chapter__image,.about-chapter__image--left,.about-chapter__image--right{float:none;width:min(82vw,520px);margin:0 0 26px}
  .about-chapter--image-right .about-chapter__image{margin-left:auto}
  .about-chapter--image-left .about-chapter__image{margin-right:auto}
  .about-chapter__flow h2{font-size:clamp(2.35rem,10.6vw,4.1rem);max-width:12ch}
  .about-separator{height:auto;aspect-ratio:12/5}
}

/* About Lars — v0.3.2: natural opening ratio, separator overlays, double portrait final chapter. */
.about-intro__grid{
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
  align-items:center;
}
.about-intro__lead h1{
  font-size:clamp(2.9rem,4.35vw,5.25rem);
  line-height:.96;
  max-width:12ch;
  margin-bottom:clamp(20px,2.4vw,34px);
}
.about-intro__copy{
  font-size:clamp(1rem,1.15vw,1.14rem);
  line-height:1.52;
  max-width:680px;
  margin-top:0;
}
.about-opening-image{
  aspect-ratio:auto;
  overflow:hidden;
  background:var(--sage);
  align-self:center;
}
.about-opening-image img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
}
.about-opening-image.media-placeholder{
  aspect-ratio:4/5;
  min-height:0;
}

.about-separator{
  position:relative;
  isolation:isolate;
}
.about-separator--with-text::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.34) 46%,rgba(0,0,0,.08) 78%,rgba(0,0,0,0) 100%);
  pointer-events:none;
}
.about-separator__text{
  position:absolute;
  z-index:2;
  left:var(--pad);
  bottom:clamp(18px,2.8vw,42px);
  width:min(62vw,920px);
  margin:0;
  color:#fff;
  font-size:clamp(1.5rem,3.15vw,3.7rem);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.045em;
  text-shadow:0 2px 18px rgba(0,0,0,.35);
}

.about-chapter--double{
  padding-block:clamp(72px,7.5vw,116px);
}
.about-chapter--double .about-chapter__period{
  margin-bottom:clamp(24px,3vw,42px);
}
.about-double{
  display:grid;
  grid-template-columns:minmax(190px,.72fr) minmax(0,1.5fr) minmax(190px,.72fr);
  gap:clamp(30px,4.5vw,72px);
  align-items:center;
}
.about-double__image{
  margin:0;
  aspect-ratio:9/16;
  overflow:hidden;
  background:var(--sage);
}
.about-double__image img,
.about-double__image>.media-placeholder{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:0;
  border:0;
}
.about-double__copy h2{
  color:var(--forest);
  font-size:clamp(2.45rem,4.4vw,5.2rem);
  max-width:11ch;
  margin-bottom:clamp(22px,2.8vw,38px);
}
.about-double__copy .about-chapter__copy{
  font-size:clamp(1.02rem,1.2vw,1.16rem);
}

@media(max-width:900px){
  .about-intro__grid{grid-template-columns:1fr;align-items:start}
  .about-intro__lead h1{font-size:clamp(2.7rem,10vw,4.6rem);max-width:none}
  .about-opening-image{width:min(86vw,560px);justify-self:start;aspect-ratio:auto}
  .about-opening-image img{height:auto;object-fit:contain}
  .about-separator--with-text::after{
    background:linear-gradient(0deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.25) 62%,rgba(0,0,0,.05) 100%);
  }
  .about-separator__text{
    left:20px;
    right:20px;
    width:auto;
    bottom:18px;
    font-size:clamp(1.25rem,6.1vw,2.35rem);
  }
  .about-double{
    grid-template-columns:1fr 1fr;
    gap:18px;
    align-items:start;
  }
  .about-double__copy{
    grid-column:1/-1;
    grid-row:1;
  }
  .about-double__copy h2{font-size:clamp(2.35rem,10vw,4rem);max-width:12ch}
  .about-double__image--left{grid-column:1;grid-row:2}
  .about-double__image--right{grid-column:2;grid-row:2}
  .about-double__image{aspect-ratio:9/16}
}


/* v0.3.3 — homepage/mission/about refinements. */

/* Home: remove the unfinished numbering system and let the WHY statement breathe
   across the full editorial width. */
body.home .home-mission{
  grid-template-columns:minmax(0,2.15fr) minmax(280px,1fr);
  gap:clamp(40px,6vw,96px);
}

/* The common-thread quote is intentionally near-viewport-height on desktop,
   with a wider measure and slightly larger serif display type. */
@media (min-width:901px){
  body.home .home-thread{
    min-height:calc(100vh - var(--header-h));
    min-height:calc(100svh - var(--header-h));
    display:grid;
    place-items:center;
    padding:clamp(42px,4vw,66px) var(--pad);
  }
  body.home .home-thread p{
    width:min(100%,1600px);
    max-width:28ch;
    font-size:clamp(3rem,4.35vw,5.2rem);
    line-height:.99;
  }
}

/* Role titles carry the same subtle interaction cue as their photographs. */
body.home .home-role__text h3 a{
  display:inline-block;
  transform-origin:left center;
  transition:transform .38s cubic-bezier(.2,.7,.2,1);
}
@media (hover:hover) and (pointer:fine){
  body.home .home-role__text h3 a:hover{transform:scale(1.025)}
}
body.home .home-role__text h3 a:focus-visible{transform:scale(1.025)}

/* About: the opening behaves as one desktop viewport composition. The portrait
   is a true 9:16 frame; the lead column receives the same visual height so the
   headline can balance the image rather than sitting as a small block beside it. */
@media (min-width:901px){
  .about-intro{
    min-height:100vh;
    min-height:100svh;
    padding-top:calc(var(--header-h) + 20px);
    padding-bottom:20px;
    display:flex;
    align-items:center;
  }
  .about-intro__grid{
    width:100%;
    grid-template-columns:minmax(0,1fr) auto;
    gap:clamp(46px,6vw,104px);
    align-items:center;
  }
  .about-intro__lead,
  .about-opening-image{
    height:clamp(560px,calc(100svh - var(--header-h) - 40px),900px);
  }
  .about-intro__lead{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .about-intro__lead h1{
    font-size:clamp(4.7rem,6.35vw,8.4rem);
    line-height:.88;
    max-width:8.8ch;
    margin-bottom:clamp(24px,2.5vw,40px);
  }
  .about-intro__copy{
    font-size:clamp(1.05rem,1.18vw,1.2rem);
    line-height:1.48;
    max-width:690px;
  }
  .about-opening-image{
    aspect-ratio:9/16;
    width:auto;
    min-width:0;
    justify-self:end;
    overflow:hidden;
  }
  .about-opening-image img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .about-opening-image.media-placeholder{
    aspect-ratio:9/16;
    width:auto;
  }
}

/* On phones the About intro returns to a natural stacked flow while keeping the
   intended portrait crop. */
@media (max-width:900px){
  body.home .home-mission{grid-template-columns:1fr;gap:18px}
  .about-intro{min-height:0}
  .about-intro__lead{height:auto}
  .about-opening-image{
    width:min(86vw,480px);
    height:auto;
    aspect-ratio:9/16;
  }
  .about-opening-image img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
}

/* Mission: the Dream image supports deliberate line breaks in the quote. A
   localised gradient darkens the part of the photograph behind the type only. */
.dream-break{isolation:isolate;overflow:hidden}
.dream-break::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.36) 48%,rgba(0,0,0,.08) 78%,rgba(0,0,0,0) 100%),
    linear-gradient(0deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.15) 48%,rgba(0,0,0,0) 76%);
}
.dream-break blockquote{
  z-index:2;
  max-width:min(15ch,88vw);
}

/* Mission closing section is now a proper next-page transition rather than an
   image block. */
.mission-principles{
  background:var(--forest);
  color:#fff;
}
.mission-principles__copy{
  min-height:clamp(350px,42vw,610px);
  padding-block:clamp(64px,8vw,120px);
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(36px,7vw,120px);
  align-items:end;
}
.mission-principles__lead{max-width:1050px}
.mission-principles__copy .eyebrow{color:#fff}
.mission-principles__copy h2{
  color:#fff;
  max-width:15ch;
  margin-bottom:0;
}
.mission-principles__link{
  color:#fff;
  white-space:nowrap;
  align-self:end;
  margin-bottom:.4rem;
}

@media (max-width:900px){
  .dream-break blockquote{max-width:88vw}
  .mission-principles__copy{
    min-height:0;
    grid-template-columns:1fr;
    align-items:start;
    padding-block:clamp(64px,16vw,96px);
  }
  .mission-principles__link{justify-self:start;margin-bottom:0}
}


/* v0.3.4 — proportion, transition and navigation refinements */

/* Keep navigation legible on every non-home page from the very top, including
   very light page openings. Homepage may still use the transparent over-image header. */
body:not(.home) .site-header{
  background:rgba(243,240,232,.96);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  color:var(--ink);
  border-bottom:1px solid var(--line);
}

/* About opening: a 3:4 portrait instead of the earlier 9:16 crop. The image and
   lead column share one visual height, with a tighter editorial gutter. */
@media (min-width:901px){
  .about-intro{
    min-height:100svh;
    padding-top:calc(var(--header-h) + 14px);
    padding-bottom:14px;
  }
  .about-intro__grid{
    grid-template-columns:minmax(0,1fr) auto;
    gap:clamp(24px,3.2vw,54px);
    align-items:center;
  }
  .about-intro__lead,
  .about-opening-image{
    height:clamp(560px,calc(100svh - var(--header-h) - 28px),860px);
  }
  .about-intro__lead{
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .about-intro__lead h1{
    font-size:clamp(5.35rem,6.8vw,8.8rem);
    line-height:.87;
    max-width:9ch;
    margin-bottom:clamp(18px,1.8vw,30px);
  }
  .about-intro__copy{
    font-size:clamp(1rem,1.06vw,1.16rem);
    line-height:1.42;
    max-width:700px;
    margin-top:0;
  }
  .about-opening-image,
  .about-opening-image.media-placeholder{
    aspect-ratio:3/4;
    width:auto;
  }
  .about-opening-image img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
}
@media (max-width:900px){
  .about-opening-image{
    width:min(86vw,520px);
    height:auto;
    aspect-ratio:3/4;
  }
  .about-opening-image img{width:100%;height:100%;object-fit:cover}
}

/* Generic next-page bands: smaller editorial type and a full-width measure rather
   than a narrow column, while retaining the action at the far right. */
.transition-block{
  padding:clamp(48px,5vw,76px) var(--pad);
  gap:clamp(28px,5vw,80px);
  font-size:clamp(1.55rem,2.65vw,3.15rem);
  line-height:1.05;
  align-items:end;
}
.transition-block p{
  max-width:none;
  flex:1 1 auto;
  margin:0;
}
.transition-block a{
  flex:0 0 auto;
  font-size:.92rem;
}

/* Mission Dream quote: smaller, lower-left and allowed to span the full usable
   width. Deliberate line breaks entered in WordPress are still respected. */
.dream-break blockquote{
  inset:auto var(--pad) clamp(28px,4.4vw,68px);
  width:calc(100% - (2 * var(--pad)));
  max-width:none;
  font-size:clamp(2.25rem,4.15vw,5rem);
  line-height:.95;
  text-align:left;
  margin:0;
}
.dream-break::after{
  background:
    linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.34) 52%,rgba(0,0,0,.10) 82%,rgba(0,0,0,0) 100%),
    linear-gradient(0deg,rgba(0,0,0,.44) 0%,rgba(0,0,0,.16) 48%,rgba(0,0,0,0) 78%);
}

/* Mission's closing link band follows the same compact, full-width transition
   language as the other pages. */
.mission-principles__copy{
  min-height:0;
  padding-block:clamp(50px,5.2vw,78px);
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(28px,5vw,84px);
  align-items:end;
}
.mission-principles__lead{max-width:none}
.mission-principles__copy h2{
  max-width:none;
  font-size:clamp(2rem,3.15vw,3.8rem);
  line-height:.98;
}
.mission-principles__link{font-size:.92rem}

@media (max-width:900px){
  .transition-block{
    padding:50px var(--pad);
    gap:26px;
    font-size:clamp(1.55rem,7vw,2.5rem);
  }
  .transition-block a{font-size:.9rem}
  .dream-break blockquote{
    inset:auto var(--pad) 30px;
    width:calc(100% - (2 * var(--pad)));
    max-width:none;
    font-size:clamp(2rem,9vw,3.35rem);
  }
  .mission-principles__copy{
    grid-template-columns:1fr;
    padding-block:52px;
    gap:28px;
  }
  .mission-principles__copy h2{
    font-size:clamp(2rem,8.5vw,3.25rem);
  }
}


/* v0.3.5 — About intro balance + stronger next-page bands */

/* About opening on desktop: give the headline more horizontal measure and make
   the 3:4 portrait slightly smaller so the whole composition sits comfortably
   within one viewport. */
@media (min-width:901px){
  .about-intro{
    min-height:calc(100svh - 4px);
    padding-top:calc(var(--header-h) + 8px);
    padding-bottom:10px;
  }
  .about-intro__grid{
    grid-template-columns:minmax(0,1.5fr) minmax(300px,.62fr);
    gap:clamp(18px,2.2vw,38px);
    align-items:center;
  }
  .about-intro__lead{
    height:auto;
    min-height:0;
    justify-content:center;
  }
  .about-intro__lead h1{
    font-size:clamp(4.4rem,5.75vw,7.35rem);
    line-height:.89;
    max-width:12.6ch;
    margin-bottom:clamp(16px,1.5vw,24px);
  }
  .about-intro__copy{
    max-width:820px;
  }
  .about-opening-image,
  .about-opening-image.media-placeholder{
    height:min(72svh,680px);
    max-height:calc(100svh - var(--header-h) - 28px);
    width:auto;
    aspect-ratio:3/4;
  }
}

/* All next-page transitions use a stronger, consistently bold editorial line
   and a little more breathing room than v0.3.4. */
.transition-block{
  padding:clamp(62px,6.4vw,96px) var(--pad);
  min-height:clamp(230px,24vw,360px);
  font-size:clamp(2rem,3.15vw,3.8rem);
  line-height:1.02;
  align-items:end;
}
.transition-block p{
  font-weight:700;
  letter-spacing:-.025em;
}
.transition-block a{
  font-weight:700;
}

/* Mission's closing transition follows exactly the same visual weight. */
.mission-principles__copy{
  padding-block:clamp(62px,6.4vw,96px);
  min-height:clamp(230px,24vw,360px);
}
.mission-principles__copy h2{
  font-size:clamp(2rem,3.15vw,3.8rem);
  font-weight:700;
  letter-spacing:-.025em;
}
.mission-principles__link{
  font-weight:700;
}

@media (max-width:900px){
  .transition-block{
    min-height:0;
    padding:56px var(--pad);
    font-size:clamp(1.85rem,7.5vw,2.75rem);
  }
  .mission-principles__copy{
    min-height:0;
    padding-block:56px;
  }
}

/* v0.3.6 — fuller About opening + transparent top navigation */

/* At the top of interior pages the navigation now sits directly on the page:
   transparent, no divider. Once scrolling begins it receives the restrained
   warm background used elsewhere for readability. */
body:not(.home) .site-header:not(.is-scrolled){
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  color:var(--ink);
  border-bottom:0;
}
.site-header.is-scrolled{
  background:rgba(243,240,232,.94);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  color:var(--ink);
  border-bottom:0;
}

/* About opening: use more of the available width for the headline so its lines
   travel further right. The portrait grows again, while the tighter gutter and
   viewport-based sizing keep both elements together in one desktop view. */
@media (min-width:901px){
  .about-intro{
    min-height:100svh;
    padding-top:calc(var(--header-h) + 4px);
    padding-bottom:8px;
  }
  .about-intro__grid{
    grid-template-columns:minmax(0,1.72fr) minmax(330px,.58fr);
    gap:clamp(14px,1.45vw,28px);
    align-items:center;
  }
  .about-intro__lead{
    height:auto;
    min-height:0;
    justify-content:center;
    padding-right:0;
  }
  .about-intro__lead h1{
    font-size:clamp(5rem,6.15vw,8rem);
    line-height:.88;
    max-width:15.8ch;
    margin-bottom:clamp(16px,1.35vw,24px);
  }
  .about-intro__copy{
    max-width:900px;
    font-size:clamp(1.02rem,1.08vw,1.2rem);
  }
  .about-opening-image,
  .about-opening-image.media-placeholder{
    height:min(78svh,760px);
    max-height:calc(100svh - var(--header-h) - 18px);
    width:auto;
    aspect-ratio:3/4;
  }
}

/* Mobile keeps the transparent treatment on interior pages until the user
   scrolls, while an opened menu still receives an opaque surface. */
@media (max-width:900px){
  body:not(.home) .site-header:not(.is-scrolled){
    background:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    color:var(--ink);
    border-bottom:0;
  }
  body:not(.home).nav-open .site-header{
    background:rgba(243,240,232,.97);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    color:var(--ink);
    border-bottom:0;
  }
}

/* v0.3.7 — fuller About opening + clearer Home role/explore links */

/* About opening: make the entire first composition feel deliberately
   viewport-filling. The headline receives more horizontal measure while the
   3:4 portrait grows to almost the full usable desktop height. */
@media (min-width:901px){
  .about-intro{
    min-height:100svh;
    padding-top:calc(var(--header-h) + 2px);
    padding-bottom:4px;
    display:flex;
    align-items:center;
  }
  .about-intro__grid{
    width:100%;
    grid-template-columns:minmax(0,1.92fr) minmax(360px,.58fr);
    gap:clamp(10px,1vw,20px);
    align-items:center;
  }
  .about-intro__lead{
    min-width:0;
    padding-right:0;
  }
  .about-intro__lead h1{
    font-size:clamp(5.6rem,6.75vw,9rem);
    line-height:.875;
    max-width:17.4ch;
    margin-bottom:clamp(12px,1vw,20px);
  }
  .about-intro__copy{
    max-width:980px;
    font-size:clamp(1.04rem,1.08vw,1.2rem);
  }
  .about-opening-image,
  .about-opening-image.media-placeholder{
    height:calc(100svh - var(--header-h) - 10px);
    max-height:900px;
    width:auto;
    aspect-ratio:3/4;
  }
}

/* The three role images and headings are now descriptive content rather than
   links. A dedicated, consistent CTA makes the next action explicit. */
body.home .home-role__media{cursor:default}
body.home .home-role__text h3{color:var(--forest)}
body.home .home-role__text h3 a{transform:none!important}
body.home .home-role__cta{
  grid-column:2;
  justify-self:start;
  margin-top:clamp(12px,1.4vw,20px);
  font-size:.9rem;
}
body.home .home-role__text>p:nth-of-type(2){margin-bottom:0}

/* The current/selected-work teaser is intentionally absent for now. */
body.home .home-practice{display:none}

/* Explore rows now carry compact subtitles, keeping the page order explicit. */
.home-next__links a{
  align-items:center;
  gap:28px;
  padding:22px 0;
}
.home-next__link-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.home-next__link-copy strong{
  display:block;
  font-size:clamp(1.35rem,2.5vw,2.7rem);
  line-height:1;
  font-weight:600;
  letter-spacing:-.04em;
}
.home-next__link-copy small{
  display:block;
  max-width:48ch;
  font-size:clamp(.82rem,.95vw,1rem);
  line-height:1.4;
  font-weight:400;
  letter-spacing:0;
  color:var(--muted);
}

@media (max-width:900px){
  body.home .home-role__cta{grid-column:2;font-size:.86rem}
  .home-next__links a{padding:20px 0}
  .home-next__link-copy strong{font-size:clamp(1.7rem,7vw,2.7rem)}
  .home-next__link-copy small{font-size:.9rem}
}


/* v0.3.8 — rebalance Home role photography, simplify the section CTA,
   and finalize Explore subtitles. */
@media (min-width:901px){
  /* Slightly reduce Public Speaker and give Youth Advocate more horizontal room. */
  body.home .home-role--speaker{
    grid-column:1/7;
  }
  body.home .home-role--advocate{
    grid-column:8/13;
  }

  /* Keep the portrait tall, but let the wider column make its copy breathe. */
  body.home .home-role--advocate .home-role__text>p:last-child{
    max-width:640px;
  }
}

/* One clear section-level route to Work replaces the three repeated links. */
body.home .home-roles__footer{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin-top:clamp(30px,3.8vw,58px);
  padding-top:clamp(20px,2vw,30px);
  border-top:1px solid var(--line);
}
body.home .home-roles__cta{
  font-size:clamp(1.05rem,1.2vw,1.28rem);
  font-weight:700;
}

/* Explore subtitles are deliberately editorial and secondary to the page name. */
.home-next__link-copy small{
  font-style:italic;
}

@media (max-width:900px){
  body.home .home-roles__footer{
    justify-content:flex-start;
    margin-top:8px;
    padding-top:22px;
  }
  body.home .home-roles__cta{
    font-size:1rem;
  }
}


/* v0.3.9 — restore a calmer Youth Advocate portrait scale while preserving
   the wider copy column. Storyteller now clears the first row reliably. */
@media (min-width:901px){
  body.home .home-role--speaker{
    grid-column:1/7;
    grid-row:1;
  }
  body.home .home-role--advocate{
    grid-column:8/13;
    grid-row:1;
    margin-top:0;
    transform:translateY(clamp(-150px,-8vw,-105px));
  }
  body.home .home-role--advocate .home-role__media{
    width:min(100%,420px);
    justify-self:start;
  }
  body.home .home-role--advocate .home-role__text{
    width:100%;
  }
  body.home .home-role--storyteller{
    grid-column:1/13;
    grid-row:2;
    margin-top:clamp(30px,3.2vw,52px);
  }
}

/* v0.3.10 — About Lars condensed to three narrative chapters. */
.about-story--condensed .about-chapter--text-only .about-chapter__flow{
  max-width:1180px;
}
.about-story--condensed .about-chapter--text-only h2{
  max-width:18ch;
}
.about-story--condensed .about-chapter--text-only .about-chapter__copy{
  max-width:1050px;
}
.about-story--condensed .about-chapter--double .about-double{
  align-items:center;
}
@media (min-width:901px){
  .about-story--condensed .about-chapter--text-only{
    padding-block:clamp(72px,7vw,110px);
  }
  .about-story--condensed .about-chapter--text-only h2{
    font-size:clamp(3rem,4.7vw,5.8rem);
    color:var(--forest);
    margin-bottom:clamp(24px,2.8vw,38px);
  }
  .about-story--condensed .about-chapter--image-left .about-chapter__image{
    width:min(38%,520px);
  }
}
@media (max-width:900px){
  .about-story--condensed .about-chapter--text-only h2{
    font-size:clamp(2.35rem,10.6vw,4.1rem);
    color:var(--forest);
  }
}


/* v0.3.11 — simplify About chapters and tighten the Home role composition. */

/* About: chapters 1 and 2 are now text-led, with headings using exactly the
   same editorial measure as their body copy. */
.about-story--condensed .about-chapter--text-only .about-chapter__flow{
  max-width:1240px;
}
.about-story--condensed .about-chapter--text-only h2{
  width:100%;
  max-width:none;
}
.about-story--condensed .about-chapter--text-only .about-chapter__copy{
  width:100%;
  max-width:1240px;
}

/* International chapter: let the heading use the full copy column instead of
   wrapping to an artificially narrow measure, and soften it by roughly 2pt. */
.about-story--condensed .about-double__copy h2{
  width:100%;
  max-width:none;
  font-size:clamp(2.35rem,4.2vw,5.03rem);
}

@media (min-width:901px){
  /* Treat the heading, roles and CTA as one editorial grid. This lets the top
     of the Youth Advocate portrait align with the top of the section title. */
  body.home .home-roles{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    column-gap:clamp(18px,2vw,32px);
    row-gap:clamp(18px,2vw,30px);
    align-items:start;
    padding-bottom:clamp(44px,4.4vw,70px);
  }
  body.home .home-roles .section-heading{
    grid-column:1/7;
    grid-row:1;
    margin-bottom:0;
    align-self:start;
  }
  body.home .home-roles__grid{
    display:contents;
  }
  body.home .home-role--speaker{
    grid-column:1/7;
    grid-row:2;
    margin:0;
    transform:none;
    align-self:start;
  }
  body.home .home-role--advocate{
    grid-column:8/13;
    grid-row:1/3;
    margin:0;
    transform:none;
    align-self:start;
  }
  body.home .home-role--advocate .home-role__media{
    width:min(100%,390px);
    justify-self:start;
  }
  body.home .home-role--storyteller{
    grid-column:1/13;
    grid-row:3;
    margin-top:clamp(4px,.6vw,10px);
  }
  body.home .home-roles__footer{
    grid-column:1/13;
    grid-row:4;
    margin-top:clamp(4px,.6vw,10px);
    padding-top:clamp(12px,1.1vw,18px);
  }
  /* Pull Explore closer to the completed three-role composition. */
  body.home .home-next{
    padding-top:clamp(46px,4.5vw,72px);
  }
}

@media (max-width:900px){
  .about-story--condensed .about-double__copy h2{
    max-width:none;
  }
  body.home .home-roles__footer{
    margin-top:4px;
  }
  body.home .home-next{
    padding-top:clamp(50px,11vw,72px);
  }
}

/* v0.3.12 — give About chapter headings the same editorial measure as their copy. */
.about-story--condensed .about-chapter--text-only .about-chapter__flow{
  width:100%;
  max-width:none;
}
.about-story--condensed .about-chapter--text-only h2,
.about-story--condensed .about-chapter--text-only .about-chapter__copy{
  width:100%;
  max-width:none;
}

/* The international chapter keeps its two portrait images, but the heading may
   use the entire centre copy column rather than the old narrow character measure. */
.about-story--condensed .about-double__copy{
  min-width:0;
  width:100%;
}
.about-story--condensed .about-double__copy h2{
  width:100%;
  max-width:none;
  font-size:clamp(2.3rem,4vw,4.9rem);
}

@media (min-width:901px){
  .about-story--condensed .about-chapter--text-only h2{
    font-size:clamp(3rem,4.45vw,5.45rem);
  }
  .about-story--condensed .about-double{
    grid-template-columns:minmax(180px,.64fr) minmax(0,1.72fr) minmax(180px,.64fr);
    gap:clamp(26px,3.5vw,58px);
  }
}

/* v0.3.13 — sticky reading controls for expanded speeches */
.speech-expander__body{
  position:relative;
}
.speech-reading-bar{
  position:sticky;
  top:var(--header-h);
  z-index:70;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  min-height:54px;
  margin:0 0 clamp(16px,2vw,28px);
  padding:0 clamp(14px,1.6vw,24px);
  background:rgba(243,240,232,.96);
  color:var(--ink);
  border-bottom:1px solid rgba(20,35,25,.13);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.speech-reading-bar__title{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.83rem;
  font-weight:700;
  letter-spacing:.01em;
}
.speech-reading-bar__close{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--forest);
  padding:10px 0;
  font:inherit;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.speech-reading-bar__close:hover,
.speech-reading-bar__close:focus-visible{
  text-decoration:underline;
  text-underline-offset:4px;
}
.speech-reading-bar__track{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  overflow:hidden;
  background:transparent;
}
.speech-reading-bar__progress{
  display:block;
  width:100%;
  height:100%;
  background:var(--forest);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .08s linear;
}
@media (max-width:700px){
  .speech-reading-bar{
    gap:12px;
    min-height:50px;
    padding-inline:var(--pad);
  }
  .speech-reading-bar__title{
    font-size:.74rem;
  }
  .speech-reading-bar__close{
    font-size:.78rem;
  }
}
@media (prefers-reduced-motion:reduce){
  .speech-reading-bar__progress{transition:none}
}

/* Public Speaker — v0.3.14 compact speech cards */
@media(min-width:901px){
  .speech-entry{padding:clamp(38px,4.5vw,62px) 0}
  .speech-entry .speech-card{grid-template-columns:minmax(260px,.78fr) minmax(0,1.55fr);gap:clamp(34px,4vw,68px);align-items:center}
  .speech-entry .speech-media{max-width:460px}
  .speech-entry .speech-media img{width:100%;aspect-ratio:16/10;object-fit:cover}
  .speech-entry .speech-copy{min-width:0}
  .speech-entry .speech-copy h2{font-size:clamp(1.9rem,3.2vw,3.5rem);max-width:none}
  .speech-entry .speech-copy p:not(.eyebrow){max-width:72ch}
  .speech-entry .speech-expander{margin-top:clamp(20px,2.5vw,34px)}
}


/* Public Speaker — v0.3.15 cleaner archive rhythm */
body.page-template-page-public-speaker{
  background:var(--white);
}
body.page-template-page-public-speaker .speech-list{
  background:var(--white);
}
.speech-entry{
  border-top:0;
}
.speech-expander{
  border-top:0;
  border-bottom:1px solid var(--line);
}
.speech-copy h2{
  color:var(--forest);
}
@media(min-width:901px){
  .speech-entry:nth-of-type(even) .speech-media{
    order:2;
  }
  .speech-entry:nth-of-type(even) .speech-copy{
    order:1;
  }
}


/* Public Speaker — v0.3.16 full-width white archive + true mirrored media alignment */
body.page-template-page-public-speaker .speech-list,
body.page-template-page-public-speaker-php .speech-list{
  position:relative;
  isolation:isolate;
  background:var(--white);
}
body.page-template-page-public-speaker .speech-list::before,
body.page-template-page-public-speaker-php .speech-list::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:0;
  bottom:0;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  background:var(--white);
}
@media(min-width:901px){
  body.page-template-page-public-speaker .speech-entry .speech-media,
  body.page-template-page-public-speaker-php .speech-entry .speech-media{
    width:100%;
    justify-self:start;
  }
  body.page-template-page-public-speaker .speech-entry:nth-of-type(even) .speech-media,
  body.page-template-page-public-speaker-php .speech-entry:nth-of-type(even) .speech-media{
    justify-self:end;
  }
}

/* Public Speaker — v0.3.17 true mirrored cards + real white archive wrapper */
.speech-archive{
  width:100%;
  background:var(--white);
}
.speech-archive .speech-list{
  background:transparent;
}
.speech-archive .speech-list::before{
  display:none !important;
}
@media(min-width:901px){
  .speech-entry .speech-card{
    grid-template-columns:minmax(260px,.78fr) minmax(0,1.55fr);
  }
  .speech-entry .speech-media{
    order:1;
    justify-self:start;
    width:100%;
    max-width:460px;
  }
  .speech-entry .speech-copy{
    order:2;
    min-width:0;
  }
  .speech-entry:nth-of-type(even) .speech-card{
    grid-template-columns:minmax(0,1.55fr) minmax(260px,.78fr);
  }
  .speech-entry:nth-of-type(even) .speech-copy{
    order:1;
  }
  .speech-entry:nth-of-type(even) .speech-media{
    order:2;
    justify-self:end;
    width:100%;
    max-width:460px;
  }
}


/* Public Speaker — v0.3.18 language flag + compact wrapped video */
.speech-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.55rem;
}
.speech-language-flag{
  display:inline-block;
  flex:0 0 auto;
  width:22px;
  height:15px;
  border-radius:1px;
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(17,23,19,.14);
  background:linear-gradient(to bottom,#ae1c28 0 33.333%,#fff 33.333% 66.666%,#21468b 66.666% 100%);
  vertical-align:middle;
}
.speech-language-flag span{display:none}
.speech-expander__body::after{
  content:"";
  display:block;
  clear:both;
}
@media(min-width:901px){
  .speech-video{
    float:right;
    width:min(46%,620px);
    margin:0 0 clamp(20px,2.2vw,34px) clamp(28px,3.5vw,54px);
    padding-top:0;
  }
  .speech-video iframe,
  .speech-video video{
    display:block;
    width:100%;
    aspect-ratio:16/9;
    height:auto;
  }
  .speech-expander__text{
    padding-top:0;
  }
  .speech-expander__text--with-video{
    display:block;
  }
  .speech-photo-gallery{
    clear:both;
  }
}
@media(max-width:900px){
  .speech-video{
    width:100%;
    margin:0 0 24px;
    padding-top:0;
    float:none;
  }
  .speech-video iframe,
  .speech-video video{
    width:100%;
    aspect-ratio:16/9;
    height:auto;
  }
}

/* v0.3.19 — portrait Work features and optional detail pages. */
.work-portrait-feature{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.6fr);
  gap:clamp(34px,5vw,86px);
  align-items:start;
}
.work-portrait-feature__media{margin:0;max-width:520px}
.work-portrait-feature__media img{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain;object-position:top left}
.work-portrait-feature__copy{padding-top:clamp(4px,1vw,18px);min-width:0}
.work-portrait-feature__copy h2{font-size:clamp(3.2rem,6.6vw,7.4rem);line-height:.92;max-width:10ch;color:var(--green);margin:.15em 0 .35em}
.work-portrait-feature__copy .work-summary{max-width:780px;font-size:clamp(1.05rem,1.55vw,1.5rem);line-height:1.55}
.work-read-more{display:inline-flex;margin-top:clamp(20px,2.2vw,34px);font-weight:700}
.work-body--after-portrait{padding-top:clamp(36px,5vw,76px)}
.work-read-more-row{padding-top:0;padding-bottom:clamp(40px,6vw,80px)}

.work-detail__hero{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:start}
.work-detail--portrait .work-detail__hero{grid-template-columns:minmax(250px,.72fr) minmax(0,1.55fr)}
.work-detail__poster{margin:0;max-width:560px}
.work-detail__poster img{display:block;width:100%;height:auto;max-height:82vh;object-fit:contain;object-position:top left}
.work-detail__heading{align-self:center;min-width:0}
.work-detail__heading h1{font-size:clamp(3.4rem,7vw,8.5rem);line-height:.9;color:var(--green);margin:.18em 0 .3em}
.work-detail__excerpt{font-size:clamp(1.1rem,1.6vw,1.5rem);line-height:1.55;max-width:820px}
.work-detail__wide-image{margin-bottom:clamp(50px,7vw,100px)}
.work-detail__wide-image img{display:block;width:100%;height:auto;max-height:82vh;object-fit:cover}
.work-detail__body{padding-block:clamp(54px,8vw,120px)}
.work-detail__gallery{padding-bottom:clamp(70px,9vw,130px)}
.work-detail__back{padding-bottom:clamp(70px,9vw,130px)}

@media (max-width: 820px){
  .work-portrait-feature,.work-detail--portrait .work-detail__hero{grid-template-columns:1fr;gap:28px}
  .work-portrait-feature__media,.work-detail__poster{width:min(78vw,430px);max-width:none}
  .work-portrait-feature__copy h2{font-size:clamp(2.8rem,13vw,5.1rem);max-width:none}
  .work-detail__heading h1{font-size:clamp(3rem,13vw,5.5rem)}
}

/* v0.3.20 — Work excerpts, expandable stories, two-column headings and social scrollytelling */
.work-copy{
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(36px,6vw,110px);
  align-items:start;
}
.work-copy__title{min-width:0}
.work-copy__title .eyebrow{margin:0 0 clamp(14px,1.6vw,24px)}
.work-copy__title h2{margin:0;color:var(--green);line-height:.94}
.work-copy .work-summary{
  min-width:0;
  max-width:720px;
  font-size:clamp(1.05rem,1.45vw,1.42rem);
  line-height:1.55;
  padding-top:clamp(28px,4vw,72px);
}
.work-copy .work-summary p:first-child{margin-top:0}
.work-copy--social{grid-template-columns:minmax(0,1fr)}
.work-copy--social .work-copy__title{max-width:980px}

/* Let documentary/project titles use the same available width as their excerpt. */
.work-portrait-feature__copy h2{
  max-width:none;
  font-size:clamp(3.2rem,6vw,7.1rem);
}
.work-portrait-feature__copy .work-summary{max-width:none}

/* Normal Work items: an inline Read more expander. */
.work-expander{
  margin-top:clamp(28px,4vw,58px);
  margin-bottom:clamp(48px,7vw,96px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.work-expander summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:88px;
  color:var(--green);
  font-weight:750;
  font-size:clamp(1.05rem,1.3vw,1.3rem);
}
.work-expander summary::-webkit-details-marker{display:none}
.work-expander__open{display:none}
.work-expander[open] .work-expander__closed{display:none}
.work-expander[open] .work-expander__open{display:inline}
.work-expander__body{
  max-width:980px;
  padding:clamp(14px,2vw,28px) 0 clamp(46px,6vw,86px);
}
.work-read-more-row{margin-top:clamp(26px,4vw,54px)}

/* Social Media: normal, non-sticky carousel. One portrait still is visible at a
   time and JavaScript advances the feed every five seconds. */
.social-work{
  position:relative;
  min-height:0;
  grid-template-columns:minmax(0,1fr) minmax(300px,.62fr);
  gap:clamp(48px,8vw,150px);
  align-items:start;
  margin-top:clamp(44px,6vw,90px);
}
.social-copy{
  position:static;
  top:auto;
  max-width:660px;
  font-size:clamp(1.05rem,1.45vw,1.42rem);
  line-height:1.58;
}
.social-feed{
  position:relative;
  top:auto;
  width:min(100%,520px);
  aspect-ratio:9/16;
  max-height:720px;
  overflow:hidden;
  justify-self:end;
  display:block;
  background:var(--ink);
  padding:14px;
}
.social-feed__track{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  width:100%;
  height:100%;
  gap:0;
  transition:transform .65s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.social-feed figure{
  margin:0;
  flex:0 0 100%;
  width:100%;
  height:100%;
  min-height:0;
  max-height:none;
  overflow:hidden;
  background:#222;
}
.social-feed img{display:block;width:100%;height:100%;object-fit:cover}

@media(max-width:820px){
  .work-copy{grid-template-columns:1fr;gap:20px}
  .work-copy .work-summary{padding-top:0;max-width:none}
  .work-copy__title .eyebrow{margin-bottom:10px}
  .work-expander summary{min-height:72px}
  .social-work{
    grid-template-columns:1fr;
    gap:28px;
  }
  .social-copy{max-width:none}
  .social-feed{
    width:min(100%,390px);
    justify-self:start;
    max-height:none;
    padding:10px;
  }
}
/* v0.3.21 — Mission editing + mobile readability refinements */

/* Dream as you dreamed uses the same editorial treatment as the text overlays
   on the full-width About separators: lower-left, restrained scale and a
   localised dark gradient behind the words. */
.dream-break::after{
  background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.34) 46%,rgba(0,0,0,.08) 78%,rgba(0,0,0,0) 100%);
}
.dream-break blockquote{
  left:var(--pad);
  right:auto;
  bottom:clamp(18px,2.8vw,42px);
  width:min(62vw,920px);
  max-width:none;
  margin:0;
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
  font-size:clamp(1.5rem,3.15vw,3.7rem);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.045em;
  text-shadow:0 2px 18px rgba(0,0,0,.35);
}

@media(max-width:900px){
  /* On phones the navigation always has its own warm surface. This keeps the
     logo and hamburger readable over both photographs and very light pages. */
  .site-header,
  .site-header.is-scrolled,
  body.home .site-header:not(.is-scrolled),
  body:not(.home) .site-header:not(.is-scrolled),
  body.home.nav-open .site-header,
  body:not(.home).nav-open .site-header{
    background:rgba(243,240,232,.97);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    color:var(--ink);
    border-bottom:0;
  }

  /* Keep About separators cinematic on mobile instead of forcing the very
     shallow desktop 12:5 crop. Desktop remains unchanged. */
  .about-separator{
    aspect-ratio:auto;
    height:clamp(260px,78vw,420px);
  }
  .about-separator img,
  .about-separator>.media-placeholder{
    width:100%;
    height:100%;
    object-fit:cover;
  }

  /* Match the Dream quote to the mobile About separator overlay. */
  .dream-break blockquote{
    left:20px;
    right:20px;
    bottom:18px;
    width:auto;
    max-width:none;
    font-size:clamp(1.25rem,6.1vw,2.35rem);
  }
  .dream-break::after{
    background:linear-gradient(0deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.25) 62%,rgba(0,0,0,.05) 100%);
  }
}


/* v0.3.22 — Mission role blocks + narrower first two Mission images */
@media(min-width:901px){
  /* Give the copy more room than the photograph in the two core principle blocks. */
  .mission-side{
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
    gap:clamp(38px,5vw,82px);
  }
  .mission-side--self{
    grid-template-columns:minmax(280px,.65fr) minmax(0,1.35fr);
  }
  .mission-side__image{
    width:min(100%,560px);
  }
  .mission-side--take .mission-side__image{justify-self:end}
  .mission-side--self .mission-side__image{justify-self:start}
  .mission-side__copy p:last-child{
    max-width:780px;
  }
}

.mission-strategy-intro{
  border-top:1px solid var(--line);
}
.mission-strategy-intro h2{
  color:var(--forest);
  margin-bottom:clamp(18px,2.4vw,32px);
}
.mission-strategy-intro>p:last-child{
  max-width:820px;
  font-size:clamp(1.02rem,1.35vw,1.2rem);
}

/* The three ways of working repeat the visual language of the two principle
   blocks above: substantial green heading, readable body copy and one image. */
.mission-role{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);
  gap:clamp(42px,6vw,96px);
  align-items:center;
  border-top:1px solid var(--line);
}
.mission-role--advocate{
  grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);
}
.mission-role__copy h2{
  color:var(--forest);
  max-width:none;
  margin-bottom:clamp(18px,2.2vw,30px);
}
.mission-role__copy p{
  font-size:clamp(1.02rem,1.35vw,1.2rem);
  line-height:1.55;
  max-width:780px;
}
.mission-role__image{
  margin:0;
  overflow:hidden;
  width:min(100%,620px);
}
.mission-role--speaker .mission-role__image,
.mission-role--storyteller .mission-role__image{
  justify-self:end;
}
.mission-role--advocate .mission-role__image{
  justify-self:start;
}
.mission-role__image img,
.mission-role__image>.media-placeholder{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}

@media(max-width:900px){
  .mission-role,
  .mission-role--advocate{
    grid-template-columns:1fr;
    gap:28px;
  }
  .mission-role--advocate .mission-role__copy{order:1}
  .mission-role--advocate .mission-role__image{order:2}
  .mission-role__image{
    width:100%;
    max-width:none;
    justify-self:stretch!important;
  }
  .mission-side__image{width:100%;max-width:none}
}


/* v0.3.24 — Vse Bude Dobre film page */
.film-hero{
  position:relative;
  width:100%;
  overflow:hidden;
  background:var(--forest);
  color:#fff;
}
.film-hero__media,
.film-hero__media picture{
  display:block;
  position:relative;
  width:100%;
}
.film-hero__media img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.film-hero__media--empty{min-height:clamp(500px,52vw,850px);background:linear-gradient(135deg,var(--forest),#052d1b 70%)}
.film-hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.01) 38%,rgba(0,0,0,.12) 58%,rgba(0,0,0,.66) 100%);pointer-events:none}
.film-hero__content{
  position:absolute;
  left:50%;
  bottom:clamp(24px,3.7vw,66px);
  width:min(94vw,1760px);
  transform:translateX(-50%);
  text-align:center;
  z-index:2;
}
.film-hero__content h1{
  margin:0 auto;
  color:#fff;
  max-width:none;
  font-family:'Antonio',Impact,'Arial Narrow',sans-serif;
  font-weight:600;
  font-size:clamp(4.3rem,8.1vw,10rem);
  line-height:.88;
  letter-spacing:-.025em;
  text-transform:none;
  text-shadow:0 2px 20px rgba(0,0,0,.28);
}
.film-hero__subtitle{
  margin:clamp(10px,1.2vw,18px) 0 0;
  font-family:'Antonio',Impact,'Arial Narrow',sans-serif;
  font-weight:300;
  font-size:clamp(1.25rem,2.1vw,2.55rem);
  line-height:1.05;
  letter-spacing:.01em;
  color:#fff;
  text-shadow:0 2px 16px rgba(0,0,0,.28);
}
.film-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
  padding-top:clamp(34px,4vw,62px);
  padding-bottom:clamp(34px,4vw,62px);
  border-bottom:1px solid var(--line);
  font-size:clamp(.92rem,1.08vw,1.08rem);
  font-weight:600;
}
.film-facts__item--center{text-align:center}
.film-facts__item--right{text-align:right}
.film-description{padding-top:clamp(70px,9vw,140px);padding-bottom:clamp(60px,8vw,120px)}
.film-description__copy{font-size:clamp(1.28rem,2vw,1.8rem);line-height:1.5;letter-spacing:-.015em}
.film-description__copy p:last-child{margin-bottom:0}
.film-media{padding-bottom:clamp(80px,10vw,150px)}
.film-video{width:min(100%,1180px);margin-inline:auto;background:#000}
.film-video iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0}
.film-gallery{display:grid;gap:clamp(14px,2vw,28px);align-items:start}
.film-gallery figure{margin:0;overflow:hidden;background:var(--paper-2)}
.film-gallery img{width:100%;height:auto}
.film-gallery--1{grid-template-columns:1fr}
.film-gallery--2{grid-template-columns:repeat(2,1fr)}
.film-gallery--3,.film-gallery--4{grid-template-columns:repeat(2,1fr)}
.film-gallery--3 figure:first-child{grid-row:span 2}
.film-gallery--3 figure:first-child img{height:100%;object-fit:cover}
.film-screenings{border-top:1px solid var(--line)}
.film-screenings__heading{color:var(--forest);margin:0 0 clamp(60px,8vw,110px)}
.film-screenings__list{display:grid;gap:clamp(80px,10vw,155px)}
.film-screening{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(40px,7vw,110px);align-items:center}
.film-screening--reverse{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
.film-screening--reverse .film-screening__image{order:2}
.film-screening--reverse .film-screening__copy{order:1}
.film-screening__image img{width:100%;height:auto}
.film-screening__copy{max-width:650px}
.film-screening__copy .eyebrow{color:var(--muted);margin-bottom:1rem}
.film-screening__copy h3{color:var(--forest);font-size:clamp(2.25rem,4vw,4.8rem);margin-bottom:1.4rem}
.film-screening__copy .prose{font-size:1.05rem}
.film-page__content{border-top:1px solid var(--line);padding-top:clamp(70px,9vw,140px);padding-bottom:clamp(70px,9vw,140px)}
.film-page__back{padding-bottom:clamp(70px,9vw,130px)}

@media(min-width:901px){
  body.lw-film-page .site-header:not(.is-scrolled){
    background:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    color:#fff;
    border-bottom:0;
  }
}

@media(max-width:900px){
  .film-hero__content{bottom:20px;width:calc(100% - 2*var(--pad));text-align:left}
  .film-hero__content h1{font-size:clamp(3rem,13vw,5.8rem);line-height:.88;margin:0;max-width:12ch}
  .film-hero__subtitle{font-size:clamp(1.05rem,5vw,1.55rem);max-width:24ch}
  .film-facts{grid-template-columns:1fr;gap:0;padding-top:28px;padding-bottom:28px}
  .film-facts__item{padding:13px 0;border-bottom:1px solid var(--line);text-align:left!important}
  .film-facts__item:last-child{border-bottom:0}
  .film-description__copy{font-size:1.18rem}
  .film-gallery--2,.film-gallery--3,.film-gallery--4{grid-template-columns:1fr}
  .film-gallery--3 figure:first-child{grid-row:auto}
  .film-gallery--3 figure:first-child img{height:auto;object-fit:initial}
  .film-screening,.film-screening--reverse{grid-template-columns:1fr;gap:28px}
  .film-screening--reverse .film-screening__image,
  .film-screening--reverse .film-screening__copy{order:initial}
  .film-screening__copy{max-width:none}
}


/* v0.3.25 — film page refinements */
.film-hero__content{
  --film-title-size:clamp(4.3rem,8.1vw,10rem);
}
.film-hero__content h1{font-size:var(--film-title-size)}
.film-hero__subtitle{
  font-size:calc(var(--film-title-size) * .45);
  line-height:1;
  margin-top:clamp(8px,1vw,16px);
}
.film-description--with-image{
  display:grid;
  grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr);
  gap:clamp(42px,7vw,110px);
  align-items:start;
}
.film-description__image{margin:0;max-width:420px}
.film-description__image img{display:block;width:100%;height:auto}
.film-description--with-image .film-description__copy{align-self:start}

.film-screenings__heading{margin-bottom:clamp(34px,5vw,64px)}
.film-screenings__list{display:block}
.film-screening{
  padding:clamp(46px,6vw,84px) 0;
}
.film-screening:first-child{padding-top:0}
.film-screening + .film-screening{border-top:1px solid var(--line)}
.film-screening__copy .eyebrow{margin:0 0 .65rem}
.film-screening__copy h3{margin:0 0 .55rem}
.film-screening__copy .prose{margin-top:0}
.film-screening__copy .prose p:first-child{margin-top:0}
.film-screening__copy .prose p:last-child{margin-bottom:0}

.film-credits{
  border-top:1px solid var(--line);
  padding-top:clamp(62px,8vw,110px);
  padding-bottom:clamp(62px,8vw,110px);
}
.film-credits__heading{color:var(--forest);margin:0 0 clamp(34px,5vw,62px)}
.film-credits__list{display:grid;gap:14px}
.film-credit{display:flex;align-items:baseline;gap:14px;font-size:clamp(1rem,1.2vw,1.2rem);line-height:1.35}
.film-credit__role{font-weight:600;white-space:nowrap}
.film-credit__dots{flex:1 1 auto;border-bottom:1px dotted color-mix(in srgb,var(--ink) 40%,transparent);transform:translateY(-.18em);min-width:30px}
.film-credit__name{text-align:right}
.film-bottom-image{width:100%;margin:0;overflow:hidden}
.film-bottom-image img{display:block;width:100%;height:auto;object-fit:contain}
.film-page__back{padding-top:clamp(40px,5vw,70px)}

@media(max-width:900px){
  .film-hero__content{--film-title-size:clamp(3rem,13vw,5.8rem)}
  .film-hero__subtitle{font-size:calc(var(--film-title-size) * .45);max-width:24ch}
  .film-description--with-image{grid-template-columns:1fr;gap:30px}
  .film-description__image{width:min(72vw,360px);max-width:none}
  .film-screening{padding:42px 0}
  .film-screening:first-child{padding-top:0}
  .film-screening__copy h3{margin-bottom:.45rem}
  .film-credit{display:grid;grid-template-columns:1fr;gap:3px;padding:9px 0;border-bottom:1px dotted var(--line)}
  .film-credit:last-child{border-bottom:0}
  .film-credit__dots{display:none}
  .film-credit__name{text-align:left}
}


/* v0.3.26 — wider film description, compact credits and screening rhythm */
@media(min-width:901px){
  .film-description--with-image{
    grid-template-columns:minmax(280px,.56fr) minmax(0,1.44fr);
    gap:clamp(52px,7vw,118px);
    width:min(var(--max),calc(100% - 2*var(--pad)));
  }
  .film-description__image{
    width:100%;
    max-width:none;
  }
}

.film-screening__copy h3{margin-bottom:.14rem}
.film-screening__copy .prose{margin-top:0}
.film-screening__copy .prose p:first-child{margin-top:0}

.film-credits{
  padding-top:clamp(44px,5vw,72px);
  padding-bottom:clamp(44px,5vw,72px);
  text-align:center;
}
.film-credits__heading{
  margin:0 0 clamp(18px,2vw,28px);
  text-align:center;
}
.film-credits__list{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:.35rem .55rem;
}
.film-credit{
  display:inline-flex;
  align-items:baseline;
  gap:.34rem;
  padding:0;
  border:0;
  font-size:clamp(.82rem,.95vw,1rem);
  line-height:1.35;
}
.film-credit__role{
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.045em;
  white-space:nowrap;
}
.film-credit__dots{
  display:inline;
  flex:none;
  min-width:0;
  border:0;
  transform:none;
}
.film-credit__dots::before{content:"–"}
.film-credit__name{text-align:left}
.film-credit:not(:last-child)::after{
  content:"•";
  margin-left:.25rem;
  opacity:.42;
}

@media(max-width:900px){
  .film-description--with-image{width:min(var(--max),calc(100% - 2*var(--pad)))}
  .film-screening__copy h3{margin-bottom:.1rem}
  .film-credits__list{gap:.3rem .48rem}
  .film-credit{display:inline-flex;grid-template-columns:none;gap:.3rem;padding:0;border:0}
  .film-credit__dots{display:inline}
  .film-credit__name{text-align:left}
}

/* v0.3.27 — repaired compact film credits */
.film-credits{
  padding-top:clamp(44px,5vw,72px);
  padding-bottom:clamp(44px,5vw,72px);
}
.film-credits__heading{
  margin:0 0 clamp(20px,2.5vw,34px);
}
.film-credits__list{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:.4rem .65rem;
  width:100%;
  text-align:center;
}
.film-credit{
  display:inline-flex;
  align-items:baseline;
  gap:.3rem;
  padding:0;
  border:0;
  font-size:clamp(.82rem,.95vw,1rem);
  line-height:1.35;
  white-space:nowrap;
}
.film-credit__role{
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.film-credit__separator{
  opacity:.7;
}
.film-credit__name{
  text-align:left;
}
.film-credit:not(:last-child)::after{
  content:"•";
  margin-left:.35rem;
  opacity:.38;
}
@media(max-width:700px){
  .film-credits__list{gap:.35rem .5rem}
  .film-credit{font-size:.84rem}
}

/* v0.3.28 — film media can combine video + photos; long credits may wrap */
.film-video + .film-gallery{
  margin-top:clamp(28px,4vw,56px);
}
.film-credit{
  min-width:0;
  max-width:100%;
  white-space:normal;
  flex-wrap:wrap;
  justify-content:center;
  row-gap:.08rem;
}
.film-credit__lead{
  display:inline-flex;
  align-items:baseline;
  gap:.3rem;
  white-space:nowrap;
}
.film-credit__name{
  min-width:0;
  max-width:100%;
  white-space:pre-line;
  overflow-wrap:anywhere;
  text-align:center;
}
@media(max-width:700px){
  .film-credit{row-gap:.04rem}
}


/* v0.3.29 — Mission page spacing, proportions and quote treatment */
/* Match the visual scale of the About Lars opening, but without forcing the
   text-only Mission intro to occupy a full viewport. */
@media(min-width:901px){
  .mission-opening{
    padding-top:clamp(132px,10.5vw,178px);
    padding-bottom:clamp(72px,7vw,108px);
  }
  .mission-opening h1{
    font-size:clamp(5.6rem,6.75vw,9rem);
    line-height:.875;
    max-width:17.4ch;
    margin-bottom:clamp(12px,1vw,20px);
  }

  /* Image / copy proportions: 40 / 60. */
  .mission-side{
    grid-template-columns:minmax(0,3fr) minmax(0,2fr);
    gap:clamp(38px,5vw,82px);
  }
  .mission-side--self{
    grid-template-columns:minmax(0,2fr) minmax(0,3fr);
  }
  .mission-side__image{
    width:100%;
    max-width:none;
  }
}

@media(max-width:900px){
  .mission-opening{
    padding-top:clamp(112px,30vw,150px);
    padding-bottom:56px;
  }
  .mission-opening h1{
    font-size:clamp(2.7rem,10vw,4.6rem);
    line-height:.89;
    max-width:none;
  }
}

/* Replace the former Dream photograph with the same full-width green editorial
   quote language used on the homepage. */
.dream-break--quote{
  position:relative;
  min-height:0;
  background:var(--forest);
  color:#fff;
  padding:clamp(74px,10vw,150px) var(--pad);
  display:grid;
  place-items:center;
  overflow:visible;
}
.dream-break--quote::after{display:none}
.dream-break--quote blockquote{
  position:static;
  inset:auto;
  width:auto;
  max-width:20ch;
  margin:0 auto;
  color:#fff;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(2.2rem,5.7vw,6rem);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.045em;
  text-align:center;
  text-shadow:none;
}

/* 'What I do' now acts as a quiet section marker. The Public Speaker block
   starts directly after its rule; the old Strategy heading/copy are gone. */
.mission-what-i-do{
  padding-top:clamp(76px,8vw,120px);
  padding-bottom:18px;
}
.mission-what-i-do .eyebrow{
  margin:0;
}
.mission-role--speaker{
  padding-top:clamp(34px,3.5vw,54px);
}

@media(max-width:900px){
  .dream-break--quote{
    padding:clamp(64px,18vw,104px) var(--pad);
  }
  .dream-break--quote blockquote{
    font-size:clamp(2rem,9vw,3.6rem);
    max-width:18ch;
  }
  .mission-what-i-do{
    padding-top:68px;
    padding-bottom:14px;
  }
  .mission-role--speaker{
    padding-top:30px;
  }
}


/* v0.3.30 — Mission principle blocks: title/image top alignment + flowing copy */
@media(min-width:901px){
  .mission-side,
  .mission-side--self{
    display:block;
  }
  .mission-side>.eyebrow{
    margin-bottom:clamp(16px,1.5vw,24px);
  }
  .mission-side__flow{
    display:block;
  }
  .mission-side__flow::after{
    content:"";
    display:block;
    clear:both;
  }
  .mission-side__flow h2{
    color:var(--forest);
    max-width:none;
    margin-top:0;
    margin-bottom:clamp(18px,2vw,30px);
  }
  .mission-side__flow>p{
    font-size:clamp(1.02rem,1.35vw,1.2rem);
    max-width:none;
  }
  .mission-side__image{
    width:38%;
    max-width:none;
    margin-top:0;
    margin-bottom:clamp(22px,2.5vw,38px);
  }
  .mission-side__flow--image-right .mission-side__image{
    float:right;
    margin-left:clamp(34px,4vw,72px);
  }
  .mission-side__flow--image-left .mission-side__image{
    float:left;
    margin-right:clamp(34px,4vw,72px);
  }
}

@media(max-width:900px){
  .mission-side,
  .mission-side--self{
    display:block;
  }
  .mission-side>.eyebrow{
    margin-bottom:14px;
  }
  .mission-side__flow{
    display:flex;
    flex-direction:column;
  }
  .mission-side__flow h2{
    order:1;
    max-width:none;
    margin-top:0;
  }
  .mission-side__image{
    order:2;
    width:100%;
    max-width:none;
    margin:22px 0 24px;
  }
  .mission-side__flow>p{
    order:3;
    max-width:none;
  }
}


/* v0.3.31 — Mission opening optional image + self label positioning */
.mission-opening__stage{position:relative}
.mission-opening__image{margin:0}
.mission-opening__image img{display:block;width:100%;height:auto}

@media(min-width:901px){
  /* Keep the existing opening text exactly where it is; the optional image is
     layered into the unused right-hand space and does not participate in flow. */
  .mission-opening--has-image .mission-opening__image{
    position:absolute;
    top:0;
    right:0;
    width:clamp(230px,22vw,430px);
    max-height:clamp(300px,31vw,520px);
    overflow:hidden;
  }
  .mission-opening--has-image .mission-opening__image img{
    width:100%;
    height:auto;
    max-height:inherit;
    object-fit:contain;
    object-position:top right;
  }

  /* On the self-directed principle, the small label belongs to the title, not
     to the photograph. Starting the float after the label keeps the image top
     aligned with the large heading as before. */
  .mission-side--self .mission-side__eyebrow{
    margin:0 0 clamp(16px,1.5vw,24px);
    font-size:.7rem;
    line-height:1.2;
  }
}

@media(max-width:900px){
  .mission-opening__image{
    position:static;
    width:100%;
    margin:clamp(28px,8vw,44px) 0 0;
  }
  .mission-opening__image img{width:100%;height:auto}
  .mission-side--self .mission-side__eyebrow{
    order:0;
    margin:0 0 14px;
    font-size:.7rem;
    line-height:1.2;
  }
}


/* v0.3.32 — Work outbound links, compact expandable galleries and Mission label fix */
/* Landscape Work items let the title use the full content width. The teaser
   remains visually anchored to the right, preserving the editorial two-column rhythm. */
@media(min-width:821px){
  .work-item:not(.work-item--portrait-feature) .work-copy:not(.work-copy--social){
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  }
  .work-item:not(.work-item--portrait-feature) .work-copy:not(.work-copy--social) .work-copy__title{
    grid-column:1 / -1;
    max-width:none;
  }
  .work-item:not(.work-item--portrait-feature) .work-copy:not(.work-copy--social) .work-copy__title h2{
    max-width:none;
  }
  .work-item:not(.work-item--portrait-feature) .work-copy:not(.work-copy--social) .work-summary{
    grid-column:2;
    padding-top:0;
  }
}

/* Additional Work photographs live inside an expanded Read more area and use
   a compact two-column grid. Four images therefore form a 2 × 2 block. */
.work-expander__body{
  max-width:none;
}
.work-expander__body > .prose{
  max-width:980px;
}
.work-gallery--compact{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,2vw,28px);
  padding:clamp(34px,4vw,58px) 0 0;
  margin:0;
}
.work-gallery--compact figure,
.work-gallery--compact figure:nth-child(even),
.work-gallery--compact figure:nth-child(3n){
  grid-column:auto;
  margin:0;
  overflow:hidden;
  background:var(--paper-2);
}
.work-gallery--compact img{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
section.work-item > .work-gallery--compact{
  padding-bottom:var(--section);
}

/* In the mirrored Mission block, place the eyebrow above the title column,
   while the photograph starts on the same horizontal line as the title. */
@media(min-width:901px){
  .mission-side--self > .mission-side__eyebrow{
    box-sizing:border-box;
    padding-left:calc(38% + clamp(34px,4vw,72px));
    margin-bottom:clamp(16px,1.5vw,24px);
  }
}
@media(max-width:900px){
  .mission-side--self > .mission-side__eyebrow{
    padding-left:0;
    margin-bottom:14px;
  }
  .work-gallery--compact{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
}
@media(max-width:520px){
  .work-gallery--compact{grid-template-columns:1fr;}
}


/* v0.3.34 — Social Media carousel replaces the Featured Image.
   The excerpt stays in the standard Work heading row; the auto-advancing stills
   now occupy the main media position and the post thumbnail is intentionally ignored. */
.work-copy--social{
  grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
}
.work-copy--social .work-summary{
  max-width:760px;
}
.work-primary--social-carousel{
  margin-top:clamp(42px,5vw,72px);
}
.work-primary--social-carousel .social-feed{
  width:100%;
  max-width:none;
  max-height:none;
  aspect-ratio:16/8;
  justify-self:stretch;
  padding:14px;
  background:var(--ink);
}
.work-primary--social-carousel .social-feed figure{
  display:grid;
  place-items:center;
  aspect-ratio:auto;
  height:100%;
  background:var(--ink);
}
.work-primary--social-carousel .social-feed img{
  width:100%;
  height:100%;
  object-fit:contain;
}
@media(max-width:820px){
  .work-copy--social{grid-template-columns:1fr;}
  .work-primary--social-carousel .social-feed{
    aspect-ratio:4/5;
    padding:10px;
  }
}


/* v0.3.36 — Social feed uses the portrait Featured Image position. */
.work-social-feature{
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.6fr);
  gap:clamp(34px,5vw,86px);
  align-items:start;
}
.work-social-feature__media{
  width:100%;
  max-width:520px;
}
.work-social-feature .social-feed{
  position:relative;
  width:100%;
  max-width:520px;
  aspect-ratio:5/7;
  max-height:78vh;
  padding:0;
  overflow:hidden;
  background:var(--ink);
}
.work-social-feature .social-feed__track{
  position:relative;
  width:100%;
  height:100%;
  display:block;
  transform:none !important;
}
.work-social-feature .social-feed__slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  visibility:hidden;
  transform:translateY(18px);
  transition:opacity .55s ease, transform .55s ease, visibility 0s linear .55s;
  overflow:hidden;
  background:var(--ink);
}
.work-social-feature .social-feed__slide.is-active{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  transition-delay:0s;
  z-index:2;
}
.work-social-feature .social-feed__slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.work-social-feature__copy{padding-top:clamp(4px,1vw,18px)}
.work-social-feature__copy h2{
  font-size:clamp(3.2rem,6vw,7.1rem);
  line-height:.92;
  max-width:none;
  color:var(--green);
  margin:.15em 0 .35em;
}
.work-social-feature__copy .work-summary{
  max-width:780px;
  font-size:clamp(1.05rem,1.55vw,1.5rem);
  line-height:1.55;
}
@media(max-width:820px){
  .work-social-feature{grid-template-columns:1fr;gap:28px}
  .work-social-feature__media{width:min(78vw,430px);max-width:none}
  .work-social-feature .social-feed{max-height:none}
  .work-social-feature__copy h2{font-size:clamp(2.8rem,13vw,5.1rem)}
}


/* v0.3.37 — optional full-width highlight quotes below the two Mission principle blocks */
.mission-side__highlight{
  clear:both;
  width:100%;
  max-width:none;
  margin:clamp(34px,4vw,64px) 0 0;
  padding:clamp(24px,2.8vw,40px) 0 0;
  border-top:1px solid var(--line);
  color:var(--forest);
  font-family:var(--serif);
  font-size:clamp(1.85rem,3vw,3.35rem);
  line-height:1.02;
  letter-spacing:-.025em;
}
@media(max-width:900px){
  .mission-side__highlight{
    margin-top:30px;
    padding-top:22px;
    font-size:clamp(1.7rem,7vw,2.6rem);
  }
}


/* v0.3.38 — Contact page */
.contact-page--editorial{
  min-height:0;
  padding-top:0;
}
.contact-opening{
  padding-top:clamp(132px,10.5vw,178px);
  padding-bottom:clamp(70px,8vw,120px);
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.62fr);
  gap:clamp(46px,8vw,130px);
  align-items:center;
}
.contact-opening__copy h1{
  font-size:clamp(5.6rem,6.75vw,9rem);
  line-height:.875;
  max-width:9ch;
  margin-bottom:clamp(24px,3vw,44px);
}
.contact-opening__intro{
  max-width:660px;
  font-size:clamp(1.05rem,1.45vw,1.28rem);
}
.contact-opening__intro p:last-child{margin-bottom:0}
.contact-opening__image{
  margin:0;
  width:100%;
  max-width:520px;
  justify-self:end;
  overflow:hidden;
  background:var(--sage);
}
.contact-opening__image img{
  width:100%;
  height:auto;
}
.contact-directory{
  border-top:1px solid var(--ink);
  margin-bottom:clamp(90px,11vw,170px);
}
.contact-directory__row{
  display:grid;
  grid-template-columns:minmax(150px,.55fr) minmax(0,1.8fr) 30px;
  gap:clamp(20px,3vw,48px);
  align-items:center;
  padding:clamp(23px,2.5vw,36px) 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  transition:padding-left .22s ease;
}
.contact-directory__row:hover{padding-left:10px}
.contact-directory__label{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.72rem;
  font-weight:700;
}
.contact-directory__value{
  font-size:clamp(1.55rem,3.2vw,3.6rem);
  font-weight:600;
  letter-spacing:-.045em;
  line-height:1;
  overflow-wrap:anywhere;
}
.contact-directory__arrow{
  font-size:1.25rem;
  text-align:right;
}
.contact-closing{
  background:var(--forest);
  color:#fff;
  padding:clamp(72px,10vw,150px) var(--pad);
}
.contact-closing p{
  margin:0 auto;
  max-width:24ch;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(2rem,4.4vw,5rem);
  line-height:1.03;
  letter-spacing:-.04em;
  text-align:center;
}
@media(max-width:900px){
  .contact-opening{
    padding-top:clamp(112px,30vw,150px);
    padding-bottom:64px;
    grid-template-columns:1fr;
    gap:42px;
  }
  .contact-opening__copy h1{
    font-size:clamp(2.7rem,10vw,4.6rem);
    line-height:.89;
    max-width:none;
  }
  .contact-opening__image{
    justify-self:start;
    width:min(86vw,520px);
    max-width:none;
  }
  .contact-directory__row{
    grid-template-columns:1fr 24px;
    gap:10px 18px;
  }
  .contact-directory__label{grid-column:1}
  .contact-directory__value{grid-column:1;font-size:clamp(1.35rem,6vw,2.4rem)}
  .contact-directory__arrow{grid-column:2;grid-row:1/3;align-self:center}
}


/* Work metadata — v0.3.39 */
.work-meta-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.55rem;
}
.work-language-flag{
  display:inline-block;
  flex:0 0 auto;
  width:20px;
  height:14px;
  border-radius:1px;
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(17,23,19,.14);
  background:linear-gradient(to bottom,#ae1c28 0 33.333%,#fff 33.333% 66.666%,#21468b 66.666% 100%);
  vertical-align:middle;
}
.work-language-flag span{display:none}


/* v0.3.40 — consistent page titles, 9:16 Social feed, Public Speaker fields,
   inline speech photography and full-width Contact heading. */
@media(min-width:901px){
  .page-intro.page-shell-wide > h1,
  .contact-opening__copy h1{
    font-size:clamp(5.6rem,6.75vw,9rem);
    line-height:.875;
    max-width:none;
  }

  /* Contact heading gets the complete content width. Intro and image keep their
     existing two-column relationship on the following row. */
  .contact-opening__copy{display:contents}
  .contact-opening__copy > .eyebrow{grid-column:1/-1;margin-bottom:0}
  .contact-opening__copy > h1{
    grid-column:1/-1;
    white-space:nowrap;
    margin:0 0 clamp(24px,3vw,44px);
  }
  .contact-opening__copy > .contact-opening__intro{grid-column:1;align-self:start}
  .contact-opening__image{grid-column:2;grid-row:3;align-self:start}
}

.page-intro--public-speaker .page-intro__subtitle{
  max-width:780px;
  margin-top:clamp(20px,2.5vw,34px);
}
.page-intro--public-speaker .page-intro__subtitle p{margin:0}

/* Social feed uses a true phone/video portrait ratio. */
.work-social-feature .social-feed{
  width:min(100%,calc(78vh * 9 / 16),520px);
  aspect-ratio:9/16;
  max-height:none;
}

/* Photographs now live inside the expanded speech instead of in a gallery below. */
.speech-expander__text::after,
.speech-inline-clear{
  content:"";
  display:block;
  clear:both;
}
.speech-inline-image{
  width:min(42%,520px);
  margin-top:clamp(8px,1vw,16px);
  margin-bottom:clamp(20px,2.4vw,34px);
}
.speech-inline-image--right{
  float:right;
  margin-left:clamp(26px,3.5vw,54px);
}
.speech-inline-image--left{
  float:left;
  margin-right:clamp(26px,3.5vw,54px);
}
.speech-inline-image img{
  display:block;
  width:100%;
  height:auto;
  max-height:72vh;
  object-fit:cover;
}

@media(max-width:900px){
  .page-intro.page-shell-wide > h1,
  .contact-opening__copy h1{
    font-size:clamp(2.7rem,10vw,4.6rem);
    line-height:.89;
    max-width:none;
  }
  .contact-opening__copy{display:contents}
  .contact-opening__copy > h1{
    white-space:nowrap;
    width:100%;
  }
  .contact-opening__image{grid-column:auto;grid-row:auto}
  .work-social-feature .social-feed{
    width:min(78vw,380px);
    aspect-ratio:9/16;
  }
  .speech-inline-image,
  .speech-inline-image--left,
  .speech-inline-image--right{
    float:none;
    width:100%;
    max-width:none;
    margin:24px 0;
  }
  .speech-inline-image img{max-height:none}
}

/* v0.3.40 contact grid refinement: small vertical rhythm between label/title,
   while preserving the original generous horizontal spacing. */
@media(min-width:901px){
  .contact-opening{
    column-gap:clamp(46px,8vw,130px);
    row-gap:12px;
  }
}
@media(max-width:900px){
  .contact-opening__copy{display:block}
  .contact-opening__copy > h1{white-space:nowrap}
}
