/*
Theme Name: Hallel
Theme URI: https://hallel.local
Author: Keren Hallel
Description: ערכת עיצוב מותאמת אישית לקרן הלל, בהשראת מסמך העיצוב ב-Figma.
Version: 0.5.1
Text Domain: hallel
GitHub Theme URI: shirabb1026-source/hallel
Primary Branch: main
*/

/* ===== Fonts ===== */
@font-face {
  font-family: 'Cooperative';
  src: url('assets/fonts/Cooperative-Regular.woff2') format('woff2'),
       url('assets/fonts/Cooperative-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Cooperative';
  src: url('assets/fonts/Cooperative-Bold.woff2') format('woff2'),
       url('assets/fonts/Cooperative-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Simona Pro';
  src: url('assets/fonts/SimonaPro-Regular.woff2') format('woff2'),
       url('assets/fonts/SimonaPro-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Simona Pro';
  src: url('assets/fonts/SimonaPro-Bold.woff2') format('woff2'),
       url('assets/fonts/SimonaPro-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Simona Pro';
  src: url('assets/fonts/SimonaPro-Black.woff2') format('woff2'),
       url('assets/fonts/SimonaPro-Black.woff') format('woff');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* ===== Tokens ===== */
:root{
  --navy: #01294b;
  --navy-deep: #061d33;
  --cyan: #00d9ff;
  --white: #ffffff;
  --font-display: 'Cooperative', 'Arial Hebrew', sans-serif;
  --font-body: 'Simona Pro', 'Arial Hebrew', sans-serif;
  --container: 1743px;
}

/* ===== Reset ===== */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  direction: rtl;
  overflow-x: clip;
  font-family: var(--font-body);
  color: var(--navy);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; display:block; }
ul{ list-style:none; margin:0; padding:0; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,p{ margin:0; }
.container{
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 24px;
}

/* ===== Site header (overlays the hero) ===== */
.site-header{
  position: absolute;
  inset-inline: 0;
  top: 0;
  z-index: 20;
  padding: 24px 0;
}
.site-header__inner{
  direction: ltr; /* keeps the left/center/right layout from the design; Hebrew text still renders correctly */
  max-width: 1830px;
  margin-inline: auto;
  padding-inline: 24px;
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 16px;
}
.site-donate{
  display: inline-flex;
  direction: rtl;
  align-items: center;
  gap: 8px;
  background: var(--cyan);
  color: var(--navy);
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 18px;
  padding: 8px 22px;
  border-radius: 2px;
  white-space: nowrap;
  transition: opacity .2s ease;
}
.site-donate:hover{ opacity:.85; }
.site-donate svg{ width:18px; height:8px; flex-shrink:0; }
.site-logo{ justify-self: center; }
.site-logo img{ height: 62px; width: auto; }
.site-nav{
  display:flex;
  align-items:center;
  gap:18px;
}
.site-nav ul{
  display:flex;
  flex-direction: row-reverse; /* first item (home) renders at the right edge, matching RTL reading order, without relying on bidi direction flips */
  align-items:center;
  gap: 28px;
  justify-content:flex-start;
}
.site-nav a{
  direction: rtl;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 17px;
  color: var(--white);
  white-space: nowrap;
}
.site-nav a:hover{ color: var(--cyan); }
.nav-toggle{ display:none; }

/* ===== Hero (mobile-first base) ===== */
.hero{
  position: relative;
  overflow: hidden;
  min-height: 620px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: var(--navy-deep);
}
.hero__stage{ position:relative; width:100%; height:100%; }
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img,
.hero__bg video{
  width:100%; height:100%;
  object-fit: cover;
  object-position: center 30%;
}
.hero__bg::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,19,35,0) 36%, rgb(6,29,51) 100%);
}
.hero__frame{
  --arm: clamp(40px, 9vw, 60px);
  --thick: clamp(3px, 0.8vw, 4px);
  --inset-x: 24px;
  --inset-top: 56px;
  --inset-bottom: 40px;
  position:absolute;
  inset: var(--inset-top) var(--inset-x) var(--inset-bottom) var(--inset-x);
  z-index: 5;
  pointer-events: none;
}
.hero__frame span{ position:absolute; background: var(--white); display:block; }
.hero__frame .tl-v{ top:0; left:0; width:var(--thick); height:var(--arm); }
.hero__frame .tl-h{ top:0; left:0; height:var(--thick); width:var(--arm); }
.hero__frame .tr-v{ top:0; right:0; width:var(--thick); height:var(--arm); }
.hero__frame .tr-h{ top:0; right:0; height:var(--thick); width:var(--arm); }
.hero__frame .bl-v{ bottom:0; left:0; width:var(--thick); height:var(--arm); }
.hero__frame .bl-h{ bottom:0; left:0; height:var(--thick); width:var(--arm); }
.hero__frame .br-v{ bottom:0; right:0; width:var(--thick); height:var(--arm); }
.hero__frame .br-h{ bottom:0; right:0; height:var(--thick); width:var(--arm); }
.hero__scene-label{
  position:absolute; top:56px; right:36px; z-index:6;
  font-family: var(--font-display); font-weight:400; letter-spacing:.05em;
  font-size: 12px; color: var(--white);
  direction: ltr;
}
.hero__rec{
  position:absolute; bottom:40px; left:36px; z-index:6;
  display:flex; align-items:center; gap:8px; direction: ltr;
}
.hero__rec-text{
  font-family: var(--font-display); font-weight:700; letter-spacing:.08em;
  font-size: 13px; line-height:1; color: var(--white);
}
.hero__rec-dot{
  display:inline-block; width:9px; height:9px; border-radius:50%;
  background:#ff0000; flex-shrink:0;
}
.hero__lines{ display:none; }
.hero__content{
  position:relative; z-index:10; text-align:center;
  max-width: 560px; padding: 120px 24px 40px;
  display:flex; flex-direction:column; align-items:center; gap: 28px;
}
.hero__headline-group{ display:flex; flex-direction:column; align-items:center; gap:14px; width:100%; }
.hero__headline{
  font-family: var(--font-display); font-weight:700; color: var(--white);
  font-size: clamp(30px, 9vw, 44px); line-height:1.08;
  text-shadow: 0 4px 50px rgba(1,41,75,.35);
}
.hero__headline-line{ display:block; }
.hero__sub{
  font-family: var(--font-body); font-weight:400; color: var(--white);
  font-size: clamp(14px, 4vw, 16px); line-height:1.55;
}
.hero__sub strong{ font-weight:700; }
.hero__tagline{
  font-family: var(--font-display); font-weight:700; color: var(--cyan);
  font-size: clamp(18px, 5vw, 22px); line-height:1.3;
}

/* =========================================================
   Desktop precision layer - matches the Figma sketch 1:1.
   Every value below is (source px / 1920) so it reproduces the
   sketch's exact proportions at any screen width: cqw is always
   1% of .hero__stage's own width, on both axes, so positions,
   line lengths and type sizes all scale together without drift.
   ========================================================= */
@media (min-width: 901px){
  .hero{ min-height:0; }
  .hero__stage{
    aspect-ratio: 1920 / 1009;
    container-type: inline-size;
    height:auto;
  }

  /* header - shares the same 1920-wide coordinate space as the hero,
     so on the home page it's positioned to match exactly (vw, since
     the header spans the full viewport width just like the stage). */
  .home .site-header{ padding:0; }
  .home .site-header__inner{ display:block; max-width:none; padding-inline:0; margin-inline:0; }
  .home .site-donate{
    position:absolute; left:4.479vw; top:2.760vw;
    width:6.771vw; height:1.979vw;
    font-size:0.938vw; padding:0; justify-content:center;
  }
  .home .site-donate svg{ width:1.2vw; height:auto; }
  .home .site-lang-toggle{ position:absolute; left:11.85vw; top:2.760vw; width:4.4vw; height:1.979vw; }
  .home .site-lang-toggle__opt{ font-size:.68vw; padding:0 .35vw; }
  .home .site-logo{ position:absolute; left:47.031vw; top:2.552vw; width:5.781vw; }
  .home .site-logo img{ width:100%; height:auto; }
  .home .site-nav{ position:absolute; right:5.505vw; left:auto; top:3.490vw; width:auto; }
  .home .site-nav ul{ justify-content:flex-start; gap:1.8vw; }
  .home .site-nav a{ font-size:0.938vw; font-family: var(--font-body); }

  /* hero frame - exact arm lengths (100px horizontal / 93.182px vertical
     on the 1920 canvas) and exact thickness (6.818px), not stretched. */
  .hero__frame{
    --arm-h: 5.208cqw;
    --arm-v: 4.853cqw;
    --thick: 0.355cqw;
    inset: 7.552cqw 4.740cqw 5.156cqw 4.740cqw;
  }
  .hero__frame .tl-v, .hero__frame .tr-v, .hero__frame .bl-v, .hero__frame .br-v{ width:var(--thick); height:var(--arm-v); }
  .hero__frame .tl-h, .hero__frame .tr-h, .hero__frame .bl-h, .hero__frame .br-h{ height:var(--thick); width:var(--arm-h); }

  .hero__scene-label{
    top:10.156cqw; right:auto; left:7.344cqw; font-size:1.25cqw;
  }
  .hero__rec{
    bottom:auto; top:43.854cqw; left:90.052cqw; right:auto;
  }
  .hero__rec-text{ font-size:0.96cqw; }
  .hero__rec-dot{ width:0.68cqw; height:0.68cqw; }

  .hero__lines{
    display:flex; position:absolute; left:49.740cqw; top:0; bottom:0;
    width:0.156cqw; flex-direction:column; justify-content:flex-start;
    pointer-events:none; z-index:4;
  }
  .hero__lines span{ position:absolute; left:0; width:100%; background: rgba(255,255,255,.7); }
  .hero__lines span:nth-child(1){ top:11.823cqw; height:2.865cqw; }
  .hero__lines span:nth-child(2){ top:36.719cqw; height:2.865cqw; }

  .hero__content{
    position:absolute; z-index:10; text-align:center;
    left:36.667cqw; top:17.917cqw; width:26.875cqw; max-width:none;
    padding:0; gap:12.292cqw;
  }
  .hero__headline-group{ gap:1.615cqw; }
  .hero__headline{ font-size:5cqw; line-height:1.042; }
  .hero__sub{ font-size:1.042cqw; line-height:1.5; }
  .hero__tagline{ font-size:1.875cqw; line-height:1.3; }
}

/* =========================================================
   Story / About section (mobile-first base).
   Figma coords for this section start at frame y=1006; the
   desktop precision layer below converts every source px to
   cqw by dividing by 19.2 (=1920/100), same technique as the
   hero, so it locks to the 1920-wide sketch at any viewport.
   ========================================================= */
.story{
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, var(--navy-deep), var(--navy));
  padding: 56px 0 48px;
}
.story__stage{ position:relative; width:100%; }
.story__bg{ display:none; }
.story__filmstrip{ display:none; }
.story__wordmark{ display:none; }
.story__accent{ display:block; width:56px; height:auto; margin:0 auto 16px; }
.story__heading{ text-align:center; color:var(--white); padding-inline:24px; }
.story__heading-line1{
  display:block; font-family:var(--font-body); font-weight:400;
  font-size: clamp(18px,5vw,22px); margin-bottom:4px;
}
.story__heading-line2{
  display:block; font-family:var(--font-display); font-weight:700;
  font-size: clamp(28px,9vw,38px); line-height:1.15;
}
.story__heading-line2 .cyan{ color:var(--cyan); }
.story__text{
  max-width: 600px; margin: 24px auto 0; padding-inline:24px;
  text-align:center; color:var(--white); font-family:var(--font-body);
}
.story__text p{ font-size:14px; line-height:1.7; margin:0 0 16px; }
.story__text p:last-child{ margin-bottom:0; }
.story__text .lead{ font-weight:700; font-size:16px; }
.story__text strong{ font-weight:700; }
.story__photos{
  display:flex; flex-wrap:wrap; gap:12px; justify-content:center;
  margin-top:36px; padding-inline:24px;
}
.story__photo{ border-radius:2px; overflow:hidden; background:transparent; margin:0; }
.story__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.story__photo--center{ position:relative; width:46%; aspect-ratio: 327/468; overflow:visible; }
.story__photo--center::before{
  content:"";
  position:absolute;
  left:-15%; bottom:-6%;
  width:130%; height:18%;
  background:radial-gradient(ellipse 50% 48% at 50% 50%, rgba(16,28,38,.34) 0%, rgba(16,28,38,.18) 42%, rgba(16,28,38,.06) 68%, transparent 100%);
  filter:blur(3px);
  pointer-events:none;
}
.story__photo--center img{position:relative;z-index:1;}
.story__photo--right{ width:100%; max-width:300px; aspect-ratio: 284.78/254.24; margin-top:12px; }

@media (min-width: 901px){
  .story{ padding:0; background:#f7f9fa; margin-top:-1px; overflow:visible; z-index:1; }
  .story__stage{
    height: 46.771cqw; /* covers content down to local y=898px (photo bottoms) */
    container-type: inline-size;
    overflow: visible;
  }
  .story__bg{
    display:block; position:absolute; left:-0.677cqw; top:-2px;
    width:101.979cqw; height:calc(46.771cqw + 2px);
    background: linear-gradient(180deg, var(--navy-deep), var(--navy));
    /* diagonal floor line measured from the reference render: the
       navy area ends at 80% of the section's height on the left
       edge and slopes down to 89.5% on the right edge. */
    clip-path: polygon(0% 0%, 100% 0%, 100% 95.5%, 0% 86%);
    z-index:0;
  }
  .story__filmstrip{
    display:block; position:absolute; left:-0.677cqw; top:0;
    width:101.979cqw; height:46.771cqw; z-index:1; pointer-events:none;
    overflow:hidden;
  }
  .story__filmstrip::before{
    content:""; position:absolute; left:-0.677cqw; width:101.979cqw; height:8.294cqw;
    /* height/position solved so the asset's own baked-in diagonal
       (its content runs from y=4px to y=94px of its 168px-tall
       canvas) lands exactly parallel to - and a bit above - the
       .story__bg clip-path line (86%/95.5%), instead of eyeballing
       a rotation on top of it. */
    top: 87%;
    background: repeating-linear-gradient(105deg, var(--cyan) 0 2.1cqw, transparent 2.1cqw 3.2cqw);
    clip-path: polygon(0 0, 100% 56%, 100% 75%, 0 19%);
    animation: filmstrip-drift 4.2s linear infinite;
  }
  .story__wordmark{
    display:block; position:absolute; left:28.854cqw; top:1.771cqw;
    width:42.089cqw; height:15.854cqw; object-fit:contain; z-index:1;
    pointer-events:none;
  }
  .story__accent{
    position:absolute; left:47.865cqw; top:4.729cqw;
    width:4.271cqw; height:2.117cqw; margin:0; z-index:2;
  }
  .story__heading{
    position:absolute; left:40.677cqw; top:9.115cqw; width:18.594cqw;
    padding-inline:0; z-index:2;
  }
  .story__heading-line1{ font-size:1.667cqw; margin-bottom:0.3cqw; }
  .story__heading-line2{ font-size:3.021cqw; }
  .story__text{
    position:absolute; left:29.271cqw; top:19.740cqw; width:41.510cqw;
    max-width:none; margin:0; padding-inline:0; z-index:2;
  }
  .story__text .lead{ font-size:1.25cqw; margin-bottom:1.1cqw; line-height:1.35; }
  .story__text p{ font-size:1.042cqw; line-height:1.4; margin-bottom:1.1cqw; }
  .story__photos{ display:block; margin-top:0; padding-inline:0; }
  .story__photo{ position:absolute; z-index:2; }
  .story__photo--center{
    left:3.5cqw; top:22.396cqw; width:17.031cqw; height:24.375cqw; aspect-ratio:auto;
  }
  .story__photo--right{
    left:86.47cqw; top:9.370cqw; width:14.832cqw; height:13.242cqw; max-width:none; aspect-ratio:auto; margin-top:0;
  }
}

/* =========================================================
   Initiatives section (mobile-first base). Same 1920-wide
   Figma coordinate system as the other sections; this one's
   local origin is frame y=1996.
   ========================================================= */
.initiatives{
  background: #f7f9fa;
  padding: 56px 24px 48px;
}
.initiatives__stage{ position:relative; width:100%; }
.initiatives__heading{ text-align:center; color: var(--navy); margin-bottom: 32px; }
.initiatives__title{
  font-family: var(--font-display); font-weight:700;
  font-size: clamp(28px,8vw,36px); line-height:1.15; margin-bottom:12px;
}
.initiatives__title .cyan{ color: var(--cyan); }
.initiatives__sub{
  font-family: var(--font-body); font-size:15px; line-height:1.6;
  max-width: 520px; margin-inline:auto;
}
.initiatives__sub strong{ font-weight:700; }
.init-card{
  background: var(--white); border-radius:4px;
  box-shadow: 0 4px 30px rgba(1,41,75,.08);
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
  flex-direction:row-reverse;
  padding: 24px; margin-bottom:16px;
}
.init-card__body{ text-align:right; }
.init-card__title{
  font-family: var(--font-display); font-weight:700; color: var(--navy);
  font-size: clamp(18px,5vw,22px); line-height:1.2; margin-bottom:10px;
}
.init-card__text{
  font-family: var(--font-body); color: var(--navy);
  font-size:14px; line-height:1.6;
}
.init-card__icon{ flex-shrink:0; width:44px; height:auto; }

@media (min-width: 901px){
  .initiatives{ padding:0; }
  .initiatives__stage{
    height: 38.073cqw; /* 731px section height / 19.2 */
    container-type: inline-size;
  }
  .initiatives__heading{
    position:absolute; left:70.208cqw; top:3.1cqw; width:25.3125cqw; height:6cqw;
    text-align:right; margin-bottom:0;
    display:flex; flex-direction:column; align-items:stretch; justify-content:space-between;
  }
  .initiatives__title{ font-size:3.333cqw; margin-bottom:0; }
  .initiatives__sub{ font-size:1.042cqw; max-width:none; margin-inline:0; }

  .init-card{
    position:absolute; width:21.25cqw; height:17.083cqw;
    padding: 1.6cqw 1.3cqw 4.5cqw 1.3cqw; margin-bottom:0;
    box-shadow: 0 0.208cqw 1.5625cqw rgba(1,41,75,.06);
  }
  .init-card--a{ left:27.760cqw; top:10.260cqw; }
  .init-card--b{ left:74.219cqw; top:12.917cqw; }
  .init-card--c{ left:4.531cqw; top:20.990cqw; }
  .init-card--d{ left:50.990cqw; top:20.990cqw; }
  .init-card__title{ font-size:1.875cqw; margin-bottom:0.94cqw; }
  .init-card__text{ font-size:1.042cqw; line-height:1.5; }
  .init-card__icon{ width:4.792cqw; }
}

/* =========================================================
   Projects section - two large project cards, each reusing
   the hero's corner-frame / scene-label / REC motif at its
   own scale (clamp()-based, so it scales with the card's own
   width rather than the page's 1920 canvas).
   ========================================================= */
.projects{ background: #f7f9fa; padding: 48px 24px; }
.projects__stage{ display:flex; flex-direction:column; gap:24px; max-width: var(--container); margin-inline:auto; }
.projects__heading{text-align:right;color:var(--navy);}
.projects__heading h2{font-family:var(--font-display);font-size:clamp(28px,7vw,44px);line-height:1.1;}
.projects__heading h2 > span:not(.section-title__char){color:var(--cyan);}
.projects__heading p{font-family:var(--font-body);font-size:15px;margin-top:8px;}
.projects__desktop-break{display:none;}
.project-card{
  position:relative; overflow:hidden; border-radius:4px;
  background: linear-gradient(180deg, rgba(1,41,75,0) 24%, rgba(1,41,75,.55) 100%), var(--navy);
  min-height: 460px;
  display:flex; align-items:flex-end;
  padding: 56px 24px 40px;
}
.project-card__video{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
}
.project-card--1::after,.project-card--2::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(1,20,38,.18) 0%,rgba(1,30,54,.1) 34%,rgba(1,30,54,.62) 100%);
}
.project-card__frame{
  --arm-h: clamp(28px, 6vw, 40px);
  --arm-v: clamp(26px, 5.5vw, 37px);
  --thick: 3px;
  position:absolute; inset: 30px 18px 30px 18px; z-index:2; pointer-events:none;
}
.project-card__frame span{ position:absolute; background: var(--white); display:block; }
.project-card__frame .tl-v{ top:0; left:0; width:var(--thick); height:var(--arm-v); }
.project-card__frame .tl-h{ top:0; left:0; height:var(--thick); width:var(--arm-h); }
.project-card__frame .tr-v{ top:0; right:0; width:var(--thick); height:var(--arm-v); }
.project-card__frame .tr-h{ top:0; right:0; height:var(--thick); width:var(--arm-h); }
.project-card__frame .bl-v{ bottom:0; left:0; width:var(--thick); height:var(--arm-v); }
.project-card__frame .bl-h{ bottom:0; left:0; height:var(--thick); width:var(--arm-h); }
.project-card__frame .br-v{ bottom:0; right:0; width:var(--thick); height:var(--arm-v); }
.project-card__frame .br-h{ bottom:0; right:0; height:var(--thick); width:var(--arm-h); }
.project-card__scene-label{
  position:absolute; top:16px; left:24px; z-index:3;
  font-family: var(--font-display); font-size:12px; letter-spacing:.05em; color: var(--white);
  direction: ltr;
}
.project-card__rec{
  position:absolute; top:16px; right:24px; z-index:3;
  display:flex; align-items:center; gap:6px; direction: ltr;
}
.project-card__rec-text{ font-family: var(--font-display); font-weight:700; font-size:12px; color: var(--white); }
.project-card__rec-dot{ width:8px; height:8px; border-radius:50%; background:#ff0000; flex-shrink:0; }
@media (prefers-reduced-motion:no-preference){
  .project-card__rec-dot{animation:rec-blink 1.4s steps(1,end) infinite;}
}
.project-card__focus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:10%;aspect-ratio:1;z-index:2;pointer-events:none;color:var(--white);}
.project-card__focus span{position:absolute;width:18%;height:18%;border-color:currentColor;border-style:solid;border-width:0;}
.project-card__focus span:nth-child(1){top:0;left:0;border-top-width:2px;border-left-width:2px;}
.project-card__focus span:nth-child(2){top:0;right:0;border-top-width:2px;border-right-width:2px;}
.project-card__focus span:nth-child(3){bottom:0;left:0;border-bottom-width:2px;border-left-width:2px;}
.project-card__focus span:nth-child(4){bottom:0;right:0;border-bottom-width:2px;border-right-width:2px;}
.project-card__focus b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:Arial,sans-serif;font-size:clamp(18px,2vw,34px);font-weight:300;}
.project-card__stamp{
  position:absolute; bottom:16px; left:50%; transform:translateX(-50%); z-index:3;
  font-family: var(--font-display); font-size:12px; letter-spacing:.05em; color: var(--white);
  direction: ltr; white-space:nowrap;
}
.project-card__body{ position:relative; z-index:3; text-align:right; max-width:520px; }
.project-card__title{
  font-family: var(--font-display); font-weight:700; color: var(--cyan);
  font-size: clamp(22px,5.5vw,30px); margin-bottom:16px;
}
.project-card__text{
  font-family: var(--font-body); color: var(--white);
  font-size:14px; line-height:1.7; margin-bottom:20px;
}
.project-card__description{display:block;margin-top:1em;}
.project-card__link{
  display:inline-flex; align-items:center; gap:8px;
  background: var(--cyan); color: var(--navy); font-family: var(--font-display);
  font-size:15px; padding:9px 20px; border-radius:2px;
}

@media (min-width: 901px){
  .projects{ padding:0; }
  .projects__stage{ max-width:none; gap: 3.906cqw; container-type: inline-size; }
  .projects__heading{height:10cqw;padding:3cqw 4.5cqw 0;}
  .projects__heading h2{font-size:3.4cqw;}
  .projects__heading p{font-size:1cqw;}
  .projects__desktop-break{display:initial;}
  .project-card{ width:90.78cqw;min-height:0; aspect-ratio: 1743/858; padding:0; margin-inline:auto; border-radius:0; }
  .project-card__frame{ --arm-h:4cqw; --arm-v:4cqw; --thick:.55cqw; inset:5.8% 2.9% 5.5%; }
  .project-card__scene-label{ top:10.8%; left:5.6%; font-size:1cqw; }
  .project-card__rec{ top:10.5%; right:4.7%; }
  .project-card__focus{ width:11%; height:14%; aspect-ratio:auto; top:40.7%; transform:translateX(-50%); }
  .project-card__stamp{ bottom:4.8%; }
  .project-card__body{
    position:absolute; bottom:17%; width:24%; max-width:none;
  }
  .project-card--1 .project-card__body{
    left:5.5%; right:auto; top:31.5%; bottom:auto;
    width:24%; height:44.5%; text-align:right;
    display:flex; flex-direction:column; align-items:stretch;
  }
  .project-card--1 .project-card__title{margin-bottom:2cqw;}
  .project-card--1 .project-card__text{line-height:1.2;margin-bottom:0;}
  .project-card--1 .project-card__text strong{display:block;max-width:85%;margin-left:auto;line-height:1.25;}
  .project-card--1 .project-card__description{margin-top:1.5cqw;}
  .project-card--1 .project-card__link{ align-self:flex-start; margin-top:auto; }
  .project-card--2 .project-card__body{
    right:6%;left:auto;top:31.5%;bottom:auto;
    width:24%;height:44.5%;text-align:right;
    display:flex;flex-direction:column;align-items:stretch;
  }
  .project-card--2 .project-card__title{margin-bottom:2cqw;}
  .project-card--2 .project-card__text{line-height:1.2;margin-bottom:0;}
  .project-card--2 .project-card__text strong{display:block;line-height:1.25;}
  .project-card--2 .project-card__description{margin-top:1.5cqw;}
  .project-card--2 .project-card__link{align-self:flex-start;margin-top:2cqw;}
  .project-card__link{
    width:7.286cqw;
    height:2.295cqw;
    padding:0;
    justify-content:center;
    gap:.55cqw;
    font-size:1.05cqw;
  }
  .project-card__title{ font-size:1.875cqw; }
  .project-card__text{ font-size:1.042cqw; }
  .project-card__scene-label{ font-size:1cqw; }
  .project-card__rec-text{ font-size:0.9cqw; }
  .project-card__stamp{ font-size:0.9cqw; }
}

/* =========================================================
   "Our story" section - a framed navy quote-card with two
   rotated photos peeking out either side. Same 1920-wide
   page coordinate system, local origin at frame y=6645.
   ========================================================= */
.ourstory{ background: var(--white); padding: 64px 24px; overflow:hidden; }
.ourstory__stage{ position:relative; width:100%; max-width: 900px; margin-inline:auto; }
.ourstory__photo{ display:none; }
.ourstory__box{ position:relative; background: var(--navy); border-radius:4px; padding: 40px 24px; }
.ourstory__frame{
  --arm-h: clamp(28px,6vw,40px); --arm-v: clamp(26px,5.5vw,37px); --thick:4px;
  position:absolute; inset:0; z-index:1; pointer-events:none;
}
.ourstory__frame span{ position:absolute; background: var(--white); display:block; }
.ourstory__frame .tl-v{ top:0; left:0; width:var(--thick); height:var(--arm-v); }
.ourstory__frame .tl-h{ top:0; left:0; height:var(--thick); width:var(--arm-h); }
.ourstory__frame .tr-v{ top:0; right:0; width:var(--thick); height:var(--arm-v); }
.ourstory__frame .tr-h{ top:0; right:0; height:var(--thick); width:var(--arm-h); }
.ourstory__frame .bl-v{ bottom:0; left:0; width:var(--thick); height:var(--arm-v); }
.ourstory__frame .bl-h{ bottom:0; left:0; height:var(--thick); width:var(--arm-h); }
.ourstory__frame .br-v{ bottom:0; right:0; width:var(--thick); height:var(--arm-v); }
.ourstory__frame .br-h{ bottom:0; right:0; height:var(--thick); width:var(--arm-h); }
.ourstory__content{ position:relative; z-index:2; text-align:center; color: var(--white); }
.ourstory__heading{ margin-bottom:20px; }
.ourstory__heading-line1{ display:block; font-family: var(--font-body); font-weight:400; font-size: clamp(18px,5vw,22px); }
.ourstory__heading-line2{ display:block; font-family: var(--font-display); font-weight:700; font-size: clamp(30px,9vw,40px); margin-top:4px; }
.ourstory__heading-line2 .cyan{ color: var(--cyan); }
.ourstory__text p{ font-family: var(--font-body); font-size:14px; line-height:1.7; margin-bottom:16px; }
.ourstory__text strong{ font-weight:700; }
.ourstory__tagline{ font-family: var(--font-display) !important; font-weight:700; font-size: clamp(18px,5vw,22px) !important; color: var(--white); }

@media (min-width: 901px){
  .ourstory{ padding:0; }
  .ourstory__stage{
    max-width:none;
    height: 26.094cqw; /* box height, 501px/19.2 */
    container-type: inline-size;
  }
  .ourstory__photo{
    display:block; position:absolute; top:7.981cqw; width:14.829cqw; height:13.215cqw;
    object-fit:cover; border-radius:2px; z-index:0;
  }
  .ourstory__photo--right{ left:87.292cqw; transform: rotate(-8.62deg); }
  .ourstory__box{
    position:absolute; left:14.844cqw; top:0; width:69.740cqw; height:26.094cqw;
    padding:0; border-radius:0;
  }
  .ourstory__frame{ --arm-h:5.208cqw; --arm-v:4.853cqw; --thick:0.45cqw; }
  .ourstory__content{
    position:absolute; left:50%; top:0.365cqw; width:41.719cqw; transform:translateX(-50%);
  }
  .ourstory__heading-line1{ font-size:1.667cqw; }
  .ourstory__heading-line2{ font-size:3.333cqw; }
  .ourstory__text p{ font-size:1.042cqw; line-height:1.6; }
  .ourstory__tagline{ font-size:1.875cqw !important; }
}

/* =========================================================
   Partners / collaborations strip ("שיתופי פעולה").
   Local origin at frame y=4986. Real partner-logo image files
   were not available (Figma asset downloads are network-
   blocked in this environment), so these render as text
   wordmarks for now - swap in real logo files when available.
   ========================================================= */
.partners{ background: #f7f9fa; padding: 48px 24px; }
.partners__stage{ position:relative; width:100%; max-width: var(--container); margin-inline:auto; }
.partners__heading{ text-align:center; color: var(--navy); margin-bottom: 28px; }
.partners__title{
  font-family: var(--font-display); font-weight:700; color:var(--navy);
  font-size: clamp(28px,7vw,44px); line-height:1.15; margin-bottom:8px;
}
.partners__title > span:not(.section-title__char){color:var(--cyan);}
.partners__sub{ font-family: var(--font-body); font-size:14px; color:var(--navy); }
.partners__logos{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap: 24px 32px;
}
.partners__logo{
  font-family: var(--font-display); font-weight:700; color: var(--navy);
  font-size:15px; opacity:.5; white-space:nowrap;
}

@media (min-width: 901px){
  .partners{ padding:0; }
  .partners__stage{
    max-width:none;
    height: 34.2cqw;
    container-type: inline-size;
    z-index:1;
  }
  .partners__heading{
    position:absolute; left:70.208cqw; top:5.1cqw; width:25.3125cqw; height:5.729cqw;
    text-align:right; margin-bottom:0;
  }
  .partners__title{ font-size:3.4cqw; margin-bottom:0.4cqw; }
  .partners__sub{ font-size:1.04cqw; }
  .partners__logos{
    position:absolute; left:6.198cqw; top:13.7cqw; width:85.573cqw; height:6.406cqw;
    justify-content:space-between; flex-wrap:nowrap; gap:0; direction:ltr;
  }
  .partners__logo{ font-size:1.1cqw; opacity:.45; }
  .partners__logo-img{height:auto;max-width:none;flex:none;}
  .partners__logo-img:nth-child(1){width:4.635cqw;}
  .partners__logo-img:nth-child(2){width:5.781cqw;}
  .partners__logo-img:nth-child(3){width:10.104cqw;}
  .partners__logo-img:nth-child(4){width:12.344cqw;}
  .partners__logo-img:nth-child(5){width:5.781cqw;}
  .partners__logo-img:nth-child(6){width:10.208cqw;}
}

/* =========================================================
   Board of trustees / testimonials ("חבר נאמנים").
   Local origin at frame y=5561. NOTE: the Figma design itself
   uses Lorem Ipsum placeholder names/titles and stock photos
   for all 5 cards - this is not final content. Kept as-is
   (flagged to the client) until real board-member names,
   titles and photos are supplied.
   ========================================================= */
.testimonials{ background: var(--white); padding: 48px 24px; }
.testimonials__stage{ position:relative; width:100%; max-width: var(--container); margin-inline:auto; }
.testimonials__heading{ text-align:center; color: var(--navy); margin-bottom: 32px; }
.testimonials__title{
  font-family: var(--font-display); font-weight:700; color:var(--navy);
  font-size: clamp(26px,7vw,32px); line-height:1.15; margin-bottom:8px;
}
.testimonials__title > span:not(.section-title__char){color:var(--cyan);}
.testimonials__sub{ font-family: var(--font-body); font-size:14px; color:var(--navy); }
.testimonial-cards{
  display:flex; flex-wrap:wrap; justify-content:center; gap:16px;
}
.testimonial-card{
  width: 170px; border-radius:2px; overflow:hidden; background: var(--navy);
}
.testimonial-card__photo{
  display:block; width:100%; aspect-ratio: 312/378; object-fit:cover; opacity:.85;
}
.testimonial-card__body{ padding:10px 12px 16px; text-align:right; }
.testimonial-card__name{ font-family: var(--font-body); font-weight:700; color:var(--white); font-size:13px; display:block; }
.testimonial-card__role{ font-family: var(--font-body); font-weight:400; color:var(--white); font-size:13px; display:block; opacity:.85; }

@media (min-width: 901px){
  .testimonials{ padding:0; }
  .testimonials__stage{
    max-width:none;
    height: 41.406cqw;
    container-type: inline-size;
  }
  .testimonials__heading{
    position:absolute; left:70.208cqw; top:0; width:25.208cqw; height:7.656cqw;
    text-align:right; margin-bottom:0;
  }
  .testimonials__title{ font-size:2.5cqw; margin-bottom:0.5cqw; }
  .testimonials__sub{ font-size:1.042cqw; }
  .testimonial-card{ position:absolute; width:16.25cqw; }
  .testimonial-card--1{ left:79.167cqw; top:11.667cqw; }
  .testimonial-card--2{ left:59.896cqw; top:17.031cqw; }
  .testimonial-card--3{ left:41.302cqw; top:11.667cqw; width:16.302cqw; }
  .testimonial-card--4{ left:22.760cqw; top:17.031cqw; }
  .testimonial-card--5{ left:4.740cqw; top:11.667cqw; }
  .testimonial-card__body{ padding: 0.7cqw 0.9cqw 1.1cqw; }
  .testimonial-card__name{ font-size:1.042cqw; }
  .testimonial-card__role{ font-size:1.042cqw; }
}

/* =========================================================
   CTA / repeated-tagline banner. Same text + accent icon +
   background wordmark as the story section (reuses
   story-accent.svg and story-wordmark.png). Figma's own
   background photo (a cinema auditorium) couldn't be
   downloaded (network-blocked), approximated with a navy
   gradient instead. Local origin at frame y=7039.
   ========================================================= */
.cta{ position:relative; overflow:hidden; background: var(--navy-deep); padding: 56px 24px; }
.cta__stage{ position:relative; width:100%; min-height:clamp(300px,55vw,650px); }
.cta__wordmark{ display:none; }
.cta__inner{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.cta__accent{ display:block; width:56px; height:auto; margin:0 auto 16px; order:2; }
.cta__heading{ color:var(--white); order:1; margin-bottom:16px; }
.cta__heading-line1{
  display:block; font-family:var(--font-body); font-weight:400;
  font-size: clamp(18px,5vw,22px); margin-bottom:4px;
}
.cta__heading-line2{
  display:block; font-family:var(--font-display); font-weight:700;
  font-size: clamp(28px,9vw,38px); line-height:1.15;
}
.cta__heading-line2 .cyan{ color:var(--cyan); }

@media (min-width: 901px){
  .cta{ padding:0; background:var(--navy-deep); }
  .cta__stage{
    height: 55.9375cqw;
    container-type: inline-size;
  }
  .cta__bg{
    display:block; position:absolute; left:-4.740cqw; top:0;
    width:104.740cqw; height:55.9375cqw;
    background: radial-gradient(120% 90% at 50% 35%, var(--navy) 0%, var(--navy-deep) 100%);
    z-index:0;
  }
  .cta__wordmark{
    display:block; position:absolute; left:30.365cqw; top:17.135cqw;
    width:40.938cqw; height:14.565cqw; object-fit:contain; opacity:.14; z-index:1;
    pointer-events:none;
  }
  .cta__inner{
    position:absolute; left:30.365cqw; top:17.135cqw; width:40.938cqw; height:14.565cqw;
    justify-content:center; z-index:2;
  }
  .cta__accent{ width:4.271cqw; height:2.117cqw; margin:0 auto; }
  .cta__heading{ margin-bottom:0; }
  .cta__heading-line1{ font-size:1.667cqw; margin-bottom:0.3cqw; }
  .cta__heading-line2{ font-size:3.021cqw; }
}

/* =========================================================
   Application / contact form ("הגשת מועמדות"). Uses the
   var(--container) basis (1743px), matching the Figma card's
   own width, so cqw here = local px / 17.43.
   ========================================================= */
.apply-form{ background: var(--white); padding: 40px 24px 56px; }
.apply-form__card{
  position:relative; max-width: var(--container); margin-inline:auto;
  background: var(--white); border-radius:4px;
  box-shadow: 0 4px 30px rgba(1,41,75,.08);
  padding: 32px 20px;
}
.apply-form__title{
  font-family: var(--font-display); font-weight:700; color:var(--navy);
  font-size: clamp(22px,6vw,26px); text-align:center; margin-bottom:24px;
}
.apply-form__fields{ display:flex; flex-direction:column; gap:20px; }
.apply-form__row{ display:flex; flex-direction:column; gap:20px; }
.apply-form__field{ position:relative; }
.apply-form__field label{
  display:block; font-family: var(--font-body); font-size:14px; color:var(--navy);
  text-align:right; margin-bottom:8px;
}
.apply-form__field input,
.apply-form__field textarea{
  display:block; width:100%; border:none; border-bottom:1px solid rgba(1,41,75,.25);
  background:transparent; font-family: var(--font-body); font-size:14px; color:var(--navy);
  text-align:right; padding:0 0 8px; outline:none;
}
.apply-form__field textarea{ resize:vertical; min-height:60px; }
.apply-form__submit{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background: var(--cyan); border:none; border-radius:2px;
  font-family: var(--font-display); font-weight:400; font-size:16px; color:var(--navy);
  padding:10px 22px; cursor:pointer; margin-top:8px;
}

@media (min-width: 901px){
  .apply-form{ padding:0; }
  .apply-form__card{
    max-width:none;
    height: 27.60cqw;
    container-type: inline-size;
    padding:0; box-shadow:none; border-radius:0;
  }
  .apply-form__title{
    position:absolute; right:4.13cqw; top:4.476cqw; left:auto; width:17.67cqw; height:4.418cqw;
    text-align:right; font-size:1.8cqw; margin-bottom:0;
  }
  .apply-form__field{ position:absolute; top:11.59cqw; }
  .apply-form__field--name{ right:4.13cqw; width:26.60cqw; }
  .apply-form__field--phone{ right:34.98cqw; width:26.54cqw; }
  .apply-form__field--email{ right:65.87cqw; width:26.54cqw; }
  .apply-form__field--message{ right:4.13cqw; top:18.19cqw; width:90.71cqw; }
  .apply-form__field label{ font-size:1.15cqw; margin-bottom:0.5cqw; }
  .apply-form__field input,
  .apply-form__field textarea{ font-size:1.05cqw; }
  .apply-form__submit{
    position:absolute; left:50%; right:auto; top:22.84cqw; width:7.286cqw; height:2.295cqw;
    transform:translateX(-50%);
    font-size:1.05cqw; padding:0; margin-top:0;
  }
}

/* =========================================================
   Site footer. Uses the var(--container) basis, like the
   application form above (cqw = local px / 17.43). The small
   decorative wordmark divider and circular photo accent seen
   in the Figma file between sections were not replicated here.
   ========================================================= */
.site-footer{ background: var(--white); padding: 32px 24px; border-top: 1px solid rgba(1,41,75,.08); }
.site-footer__stage{
  position:relative; width:100%; max-width: var(--container); margin-inline:auto;
  display:flex; flex-direction:column; align-items:center; gap:20px; text-align:center;
}
.site-footer__logo{
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--navy); border-radius:6px; padding:10px 14px;
}
.site-footer__logo img{ display:block; width:56px; height:auto; }
.site-footer__nav{
  font-family: var(--font-body); font-size:14px; color:var(--navy);
}
.site-footer__nav a{ color:inherit; text-decoration:none; margin:0 8px; }
.site-footer__social{ display:flex; align-items:center; justify-content:center; gap:16px; }
.site-footer__social img{ display:block; width:18px; height:auto; }
.site-footer__legal{ font-family: var(--font-body); font-size:13px; color:var(--navy); }
.site-footer__legal a{ color:inherit; text-decoration:none; margin:0 6px; }

@media (min-width: 901px){
  .site-footer{ padding:0 24px; }
  .site-footer__stage{
    max-width:none;
    height: 6.196cqw;
    container-type: inline-size;
    display:block; text-align:initial;
  }
  .site-footer__legal{ position:absolute; left:0; top:0; width:14.52cqw; height:1.377cqw; text-align:right; font-size:0.9cqw; }
  .site-footer__center{
    position:absolute; left:38.96cqw; top:0; width:31.73cqw; height:100%;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.5cqw;
  }
  .site-footer__nav{ font-size:0.9cqw; white-space:nowrap; }
  .site-footer__social{ gap:1cqw; }
  .site-footer__social img{ width:1.1cqw; }
  .site-footer__logo{ position:absolute; right:0; top:1.4cqw; padding:0.5cqw 0.7cqw; }
  .site-footer__logo img{ width:2.8cqw; }
}

/* =========================================================
   Hero entrance animation - dramatic page-load reveal.
   A cinematic "iris" open (classic film-transition move),
   film-grain texture during the reveal, a hard focus-pull on
   the footage, and a staggered element-by-element reveal that
   reads like a camera coming to life on set. Runs once per
   page load/refresh, ~4.6s total. Disabled entirely for users
   who prefer reduced motion (elements just render in their
   final, visible state immediately - no JS needed either way,
   pure CSS).
   ========================================================= */
@media (prefers-reduced-motion: no-preference){

  /* shared base state for every per-character reveal span
     (headline, scene label, REC) - hidden until its own
     staggered animation-delay (set per context below) kicks in */
  .hero__char{
    display:inline-block;
    opacity:0;
    transform:translateY(8px);
  }

  /* iris wipe: screen opens from a black frame through an
     expanding circle, like an old-film iris transition.
     Built with box-shadow (not a gradient) because animating
     between two radial-gradient() values isn't reliably
     interpolated across browsers - a growing circle whose
     box-shadow fills everything outside it is. */
  .hero__shutter{
    position:absolute; inset:0; z-index:30;
    pointer-events:none; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
  }
  .hero__iris{
    display:block; width:0; height:0; border-radius:50%;
    box-shadow: 0 0 0 100vmax #000;
    animation: hero-iris-open 0.715s cubic-bezier(.65,0,.35,1) both;
    animation-delay:0.065s;
  }

  /* film grain over the footage, fades out as the iris opens */
  .hero__grain{
    position:absolute; inset:0; z-index:1;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27180%27%20height%3D%27180%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.85%27%20numOctaves%3D%272%27%13stitchTiles%3D%17.55stitch%27%2F%3E%3CfeColorMatrix%20type%3D%17.55saturate%27%20values%3D%270%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E");
    background-size: 180px 180px;
    mix-blend-mode: overlay;
    pointer-events:none;
    opacity:0;
    animation: hero-grain-fade 1.04s ease-out both;
    animation-delay:0.065s;
  }

  .hero__bg img, .hero__bg video{
    animation: hero-bg-focus 0.845s cubic-bezier(.25,.46,.45,.94) both;
    animation-delay:0.065s;
  }

  /* headline comes first, right as the iris opens: it's the
     message, everything else (scene furniture) follows it */
  .hero__headline-line:nth-child(1) .hero__char{
    animation: hero-char-in 0.26s cubic-bezier(.16,1,.3,1) both;
    animation-delay: calc(0.715s + var(--i) * 0.02925s);
  }
  .hero__headline-line:nth-child(2) .hero__char{
    animation: hero-char-in 0.26s cubic-bezier(.16,1,.3,1) both;
    animation-delay: calc(1.17s + var(--i) * 0.02925s);
  }

  .site-header__inner > *{
    animation: hero-header-in 0.39s cubic-bezier(.16,1,.3,1) both;
    animation-delay:1.625s;
  }

  .hero__frame span{
    animation-duration:0.325s;
    animation-timing-function:cubic-bezier(.16,1,.3,1);
    animation-fill-mode:both;
  }
  .hero__frame .tl-v{ transform-origin:top;    animation-name:frame-draw-v; animation-delay:1.69s;  }
  .hero__frame .tl-h{ transform-origin:left;   animation-name:frame-draw-h; animation-delay:1.69s;  }
  .hero__frame .tr-v{ transform-origin:top;    animation-name:frame-draw-v; animation-delay:1.729s; }
  .hero__frame .tr-h{ transform-origin:right;  animation-name:frame-draw-h; animation-delay:1.729s; }
  .hero__frame .bl-v{ transform-origin:bottom; animation-name:frame-draw-v; animation-delay:1.768s; }
  .hero__frame .bl-h{ transform-origin:left;   animation-name:frame-draw-h; animation-delay:1.768s; }
  .hero__frame .br-v{ transform-origin:bottom; animation-name:frame-draw-v; animation-delay:1.807s; }
  .hero__frame .br-h{ transform-origin:right;  animation-name:frame-draw-h; animation-delay:1.807s; }

  /* REC: letters typewriter-in, dot pops in right after */
  .hero__rec-text .hero__char{
    animation: hero-char-in 0.26s cubic-bezier(.16,1,.3,1) both;
    animation-delay: calc(1.95s + var(--i) * 0.0325s);
  }
  .hero__rec-dot{
    animation: hero-fade-scale-in 0.26s cubic-bezier(.16,1,.3,1) 2.093s both,
               rec-blink 1.4s steps(1,end) 2.405s infinite;
  }

  /* scene label: typewriter-in, left-to-right (it's set text) */
  .hero__scene-label .hero__char{
    animation: hero-char-in 0.2275s cubic-bezier(.16,1,.3,1) both;
    animation-delay: calc(2.015s + var(--i) * 0.0143s);
  }

  .hero__lines span{ animation: hero-line-grow 0.39s cubic-bezier(.16,1,.3,1) both; }
  .hero__lines span:nth-child(1){ animation-delay:2.015s; }
  .hero__lines span:nth-child(2){ animation-delay:2.067s; }

  .hero__sub{
    animation: hero-fade-up 0.3575s cubic-bezier(.16,1,.3,1) both;
    animation-delay:2.535s;
  }

  .hero__tagline{
    animation: hero-fade-up 0.3575s cubic-bezier(.16,1,.3,1) both;
    animation-delay:2.73s;
  }
}

@keyframes hero-iris-open{
  from{ width:0; height:0; }
  to{ width:250vmax; height:250vmax; }
}
@keyframes hero-grain-fade{
  0%{ opacity:.55; }
  55%{ opacity:.32; }
  100%{ opacity:0; }
}
@keyframes hero-bg-focus{
  from{ transform:scale(1.18); filter:blur(16px) brightness(.5) contrast(1.1); }
  to{ transform:scale(1); filter:blur(0) brightness(1) contrast(1); }
}
@keyframes hero-header-in{
  from{ opacity:0; transform:translateY(-16px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes frame-draw-v{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
@keyframes frame-draw-h{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@keyframes hero-fade-scale-in{
  from{ opacity:0; transform:scale(.7); }
  to{ opacity:1; transform:scale(1); }
}
@keyframes rec-blink{
  0%, 49%{ opacity:1; }
  50%, 100%{ opacity:.15; }
}
@keyframes hero-char-in{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes hero-line-grow{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
@keyframes hero-fade-up{
  from{ opacity:0; transform:translateY(18px); }
  to{ opacity:1; transform:translateY(0); }
}

/* =========================================================
   Real asset swaps (client-supplied photos/logos, added
   after the initial build): project card background photos,
   partner logo images, footer decorative photo, testimonial
   photo opacity fix, and the CTA banner (see markup swap).
   ========================================================= */
.project-card{ background-size:cover; background-position:center; }
.project-card--1{
  background-image: url("assets/images/project-1-bg.jpg");
}
.project-card--2{
  background-image: linear-gradient(180deg, rgba(1,41,75,0) 24%, rgba(1,41,75,.55) 100%), url("assets/images/project-2-bg.jpg");
}

.testimonial-card__photo{ opacity:.7; }

.partners__logo-img{ height:64px; width:auto; max-width:160px; object-fit:contain; opacity:.85; }
@media (min-width: 901px){
  .partners__logo-img{ height:3.85cqw; max-width:none; }
}

.cta__wordmark-title{position:absolute;z-index:2;left:0;right:0;top:27%;text-align:center;direction:ltr;color:#d8e5f1;opacity:.22;font-family:var(--font-display);font-size:clamp(54px,15vw,230px);font-weight:700;letter-spacing:.06em;line-height:1;}
.cta__wordmark-title img{display:block;width:min(70vw,809px);height:auto;margin-inline:auto;filter:brightness(0) invert(1);}
.cta{padding:0;background:var(--navy-deep);}
.cta__stage{
  background-image:linear-gradient(rgba(5,29,51,.32),rgba(5,29,51,.32)),url('assets/images/cta-banner.png');
  background-size:cover;
  background-position:center bottom;
}
.cta__sr-heading{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
@media (min-width: 901px){
  .cta__stage{container-type:inline-size;height:50cqw;}
  .cta__wordmark-title{font-size:14cqw;top:27%;}
  .cta__wordmark-title img{width:42.089cqw;}
}

.site-footer__photo{ display:none; }
@media (min-width: 901px){
  .site-footer__photo{
    display:block; position:absolute; left:0; top:50%; transform:translateY(-50%);
    width:3.5cqw; height:4.35cqw; border-radius:2px; overflow:hidden; opacity:.9;
  }
  .site-footer__photo img{ display:block; width:100%; height:100%; object-fit:cover; }
  .site-footer__legal{ left:4.5cqw; }
}


/* ===== Figma alignment pass: partners + trustees ===== */
/* Kept as an isolated override so it can be revised or removed safely. */
.partners{position:relative;padding-bottom:clamp(72px,9vw,156px);overflow:hidden;}
.partners::after{content:"";position:absolute;inset-inline:-4%;bottom:0;height:clamp(22px,2.1vw,40px);background:repeating-linear-gradient(90deg,var(--cyan) 0 16px,transparent 16px 28px);transform:skewY(-3deg);transform-origin:right bottom;opacity:.95;animation:partners-filmstrip-drift-mobile 5s linear infinite;}
.testimonials{background:var(--navy-deep);color:var(--white);overflow:hidden;}
.testimonials__title,.testimonials__sub{color:var(--white);}
.testimonials__title{color:var(--white);}
.testimonials__sub{opacity:.9;}
.testimonial-card{background:transparent;overflow:visible;border-radius:0;}
.testimonial-card__photo{opacity:.65;}
.testimonial-card__body{padding-inline:0;text-align:center;}
.testimonial-card__name,.testimonial-card__role{color:var(--white);}
@media (min-width:901px){
  .partners{padding-bottom:0;background:var(--navy-deep);margin-top:-2px;}
  .partners::before{content:"";position:absolute;inset:-3px 0 0;background:#f7f9fa;clip-path:polygon(0 0,100% 0,100% 84%,0 100%);}
  .partners::after{
    inset:0;height:100%;bottom:auto;
    background:repeating-linear-gradient(105deg,var(--cyan) 0 2.1cqw,transparent 2.1cqw 3.2cqw);
    clip-path:polygon(0 92%,100% 77%,100% 81%,0 96%);
    transform:none;opacity:1;z-index:2;
    animation:partners-filmstrip-drift 5s linear infinite;
  }
  .partners__logo-img{height:auto;max-width:none;}
  .testimonials__stage{height:45cqw;}
  .testimonials__heading{top:1.5cqw;}
  .testimonials__title{font-size:3cqw;}
  .testimonial-card--1,.testimonial-card--3,.testimonial-card--5{top:12.6cqw;}
  .testimonial-card--2,.testimonial-card--4{top:18cqw;}
  .testimonial-card__body{padding-top:1.4cqw;}
  .testimonial-card__photo{filter:saturate(.82) contrast(1.04);}
}
/* ===== End Figma alignment pass ===== */


/* ===== Figma alignment pass: our story ===== */
.ourstory{background:var(--navy-deep);}
.ourstory__box{background:var(--navy-deep);}
.ourstory__heading-line1,.ourstory__heading-line2,.ourstory__text{color:var(--white);}
.ourstory__heading-line2 .cyan{color:var(--cyan);}
@media (min-width:901px){
  .ourstory__stage{background:var(--navy-deep);height:46cqw;}
  .ourstory__box{background:var(--navy-deep);top:14.3cqw;}
  .ourstory__content{top:1.1cqw;}
  .ourstory__heading{margin-bottom:2cqw;}
  .ourstory__text p{line-height:1.4;}
  .ourstory__tagline{font-size:2.1cqw !important;}
  .ourstory__photo{top:22cqw;width:12cqw;height:auto;object-fit:contain;}
  .ourstory__photo--right{left:89.3cqw;transform:none;}
  .ourstory__photo--left{left:-1.3cqw;transform:scaleX(-1);}
}
/* ===== End Figma alignment pass ===== */


/* Mobile filmstrip; desktop uses the full-width filmstrip asset above. */
.story{padding-bottom:clamp(72px,8vw,150px);}
@media (max-width:900px){.story::after{content:"";position:absolute;left:-4%;right:-4%;bottom:0;height:clamp(20px,2vw,38px);background:repeating-linear-gradient(90deg,var(--cyan) 0 16px,transparent 16px 28px);transform:skewY(-3deg);transform-origin:right bottom;z-index:5;}}
@keyframes filmstrip-drift{to{background-position-x:-3.2cqw;}}
@keyframes story-filmstrip-forward{from{background-position-x:0;}to{background-position-x:-3.2cqw;}}
@keyframes filmstrip-drift-mobile{to{background-position-x:-28px;}}
@media (max-width:900px){.story::after{animation:filmstrip-drift-mobile 4.2s linear infinite;}}
@media (prefers-reduced-motion:reduce){.story__filmstrip::before,.story::after,.partners::after{animation:none;}}
@media (min-width:901px){.story{padding-bottom:0;}}

/* Seamless automatic partner-logo carousel. */
.partners__logos{
  overflow:hidden;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:0;
  direction:ltr;
}
.partners__logo-track{
  display:flex;
  align-items:center;
  width:max-content;
  will-change:transform;
  animation:partners-logo-loop 22s linear infinite;
}
.partners__logo-group{
  display:flex;
  flex:none;
  width:100vw;
  align-items:center;
  justify-content:space-around;
  gap:clamp(24px,3vw,58px);
  padding-inline:clamp(26px,4vw,76px);
}
.partners__logo-group .partners__logo-img{flex:none;object-fit:contain;}
@keyframes partners-logo-loop{to{transform:translateX(-50%);}}
@keyframes partners-filmstrip-drift{to{background-position-x:3.2cqw;}}
@keyframes partners-filmstrip-drift-mobile{to{background-position-x:28px;}}
@media (min-width:901px){
  .partners__logos{left:0;right:0;width:100%;}
  .partners__logo-group{width:100vw;}
  .partners__logo-group .partners__logo-img:nth-child(1){width:4.635cqw;}
  .partners__logo-group .partners__logo-img:nth-child(2){width:5.781cqw;}
  .partners__logo-group .partners__logo-img:nth-child(3){width:10.104cqw;}
  .partners__logo-group .partners__logo-img:nth-child(4){width:12.344cqw;}
  .partners__logo-group .partners__logo-img:nth-child(5){width:5.781cqw;}
  .partners__logo-group .partners__logo-img:nth-child(6){width:10.208cqw;}
}
@media (prefers-reduced-motion:reduce){.partners__logo-track{animation:none;}}

/* Short cinematic site opening. */
body.site-intro-active{overflow:hidden;}
@media (prefers-reduced-motion:no-preference){
  body.site-intro-active .site-header__inner > *,
  body.site-intro-active .hero__headline .hero__char,
  body.site-intro-active .hero__frame span,
  body.site-intro-active .hero__rec-text .hero__char,
  body.site-intro-active .hero__rec-dot,
  body.site-intro-active .hero__scene-label .hero__char,
  body.site-intro-active .hero__lines span,
  body.site-intro-active .hero__sub,
  body.site-intro-active .hero__tagline{animation-play-state:paused !important;}
}
.site-intro{
  --intro-hole:0px;
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  place-items:center;
  pointer-events:auto;
  isolation:isolate;
  background:linear-gradient(180deg,var(--navy-deep),var(--navy));
}
.site-intro::before,.site-intro::after{
  display:none;
}
.site-intro__logo{
  position:relative;
  z-index:1;
  width:clamp(84px,7vw,128px);
  height:auto;
  opacity:0;
  transform:scale(.84);
  filter:blur(12px);
  animation:site-intro-logo .85s cubic-bezier(.2,.75,.25,1) .08s forwards;
  will-change:transform,opacity,filter;
}
.site-intro.is-exiting{
  -webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 0,transparent var(--intro-hole),#000 calc(var(--intro-hole) + 2px));
  mask-image:radial-gradient(circle at 50% 50%,transparent 0,transparent var(--intro-hole),#000 calc(var(--intro-hole) + 2px));
  animation:site-intro-iris 1.35s cubic-bezier(.66,0,.2,1) forwards;
}
.site-intro.is-logo-out .site-intro__logo{
  animation:none;
  opacity:0;
  transform:scale(.9);
  filter:blur(7px);
  transition:opacity .25s ease,transform .32s cubic-bezier(.4,0,.2,1),filter .25s ease;
}
@property --intro-hole{syntax:"<length>";inherits:false;initial-value:0px;}
@keyframes site-intro-iris{to{--intro-hole:150vmax;}}
@keyframes site-intro-logo{
  0%{opacity:0;transform:scale(.84);filter:blur(12px);}
  62%{opacity:1;transform:scale(1.025);filter:blur(0);}
  100%{opacity:1;transform:scale(1);filter:blur(0);}
}
@media (prefers-reduced-motion:reduce){.site-intro{display:none;}}

/* Initiatives reveal sequence, driven directly by scroll progress. */
.initiatives--scroll-ready{
  --init-heading:0;
  --init-a:0;
  --init-b:0;
  --init-c:0;
  --init-d:0;
}
.initiatives--scroll-ready .initiatives__heading{
  opacity:var(--init-heading);
  transform:translateY(calc((1 - var(--init-heading)) * 2.2cqw));
  filter:blur(calc((1 - var(--init-heading)) * 6px));
}
.initiatives--scroll-ready .init-card{
  opacity:var(--init-card-progress);
  transform:translateY(calc((1 - var(--init-card-progress)) * 32cqw)) scale(calc(.97 + var(--init-card-progress) * .03));
  clip-path:none;
  filter:blur(calc((1 - var(--init-card-progress)) * 5px));
}
.initiatives--scroll-ready .init-card--a{--init-card-progress:var(--init-a);}
.initiatives--scroll-ready .init-card--b{--init-card-progress:var(--init-b);}
.initiatives--scroll-ready .init-card--c{--init-card-progress:var(--init-c);}
.initiatives--scroll-ready .init-card--d{--init-card-progress:var(--init-d);}
.initiatives--scroll-ready .initiatives__heading,
.initiatives--scroll-ready .init-card{will-change:transform,opacity,filter,clip-path;}
@media (max-width:900px){
  .initiatives--scroll-ready .initiatives__heading{transform:translateY(calc((1 - var(--init-heading)) * 32px));}
  .initiatives--scroll-ready .init-card{transform:translateY(calc((1 - var(--init-card-progress)) * 58px)) scale(calc(.95 + var(--init-card-progress) * .05));}
}
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
  .initiatives--scroll-ready{
    height:calc(38.073cqw + 180vh);
    padding:0;
  }
  .initiatives--scroll-ready .initiatives__stage{
    position:sticky;
    top:calc((100vh - 38.073cqw) / 2);
    overflow:hidden;
  }
}

/* Final visibility and spacing corrections. */
@media (min-width:901px){
  .projects__heading{
    height:12cqw;
    padding-top:4.5cqw;
  }
  .story__photo--center::before{
    bottom:0;
    height:16%;
  }
  .apply-form__submit{
    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;
    z-index:12;
  }
  .project-card__link,
  .project-card--content-ready .project-card__link{
    display:inline-flex !important;
    visibility:visible !important;
    opacity:1 !important;
    filter:none !important;
    z-index:12;
  }
  .cta--shared-light-ready .cta__wordmark-title::before{
    background:#08dcff !important;
    filter:saturate(1.35) brightness(1.35) drop-shadow(0 0 1.2cqw rgba(0,217,255,.42)) !important;
  }
}
@media (prefers-reduced-motion:reduce){
  .initiatives--scroll-ready .initiatives__heading,
  .initiatives--scroll-ready .init-card{opacity:1;transform:none;filter:none;clip-path:none;}
}

/* =========================================================
   About page — editorial inner-page system
   ========================================================= */
.about-page{background:#f4f6f7;color:var(--navy);overflow:hidden;}
.hallel-about-page .site-header{color:#fff;}
.hallel-about-page .site-nav a{color:#fff;}
.hallel-about-page .site-logo img{filter:brightness(0) invert(1);}
.about-hero{position:relative;min-height:100svh;background:var(--navy-deep);color:#fff;overflow:hidden;}
.about-hero__image{position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,25,45,.15),rgba(1,25,45,.86)),url('assets/images/cta-banner.png') center/cover no-repeat;transform:scale(1.03);}
.about-hero__grain{position:absolute;inset:0;opacity:.12;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");}
.about-hero__copy{position:absolute;z-index:2;right:8vw;top:50%;width:min(680px,58vw);transform:translateY(-42%);}
.about-kicker{font:700 clamp(13px,1vw,18px)/1.2 var(--font-body);letter-spacing:.08em;color:var(--cyan);margin:0 0 28px;}
.about-hero h1,.about-manifesto h2,.about-principles h2,.about-timeline h2{font-family:var(--font-display);font-weight:700;line-height:.96;margin:0;}
.about-hero h1{font-size:clamp(58px,7.2vw,126px);}
.about-hero h1 span,.about-manifesto h2 span,.about-principles h2 span,.about-timeline h2 span{color:var(--cyan);}
.about-hero__lead{max-width:580px;margin:38px 0 0;font:400 clamp(18px,1.45vw,26px)/1.55 var(--font-body);}
.about-hero__index{position:absolute;z-index:2;left:5vw;bottom:5vw;font:400 14px/1 var(--font-body);letter-spacing:.18em;writing-mode:vertical-rl;}
.about-manifesto{display:grid;grid-template-columns:minmax(170px,22vw) 1fr;gap:6vw;padding:11vw 8vw;background:#f4f6f7;}
.about-manifesto__aside{display:flex;align-items:flex-start;gap:20px;padding-top:12px;font:700 15px/1 var(--font-body);}
.about-manifesto__aside i{display:block;width:90px;height:1px;margin-top:7px;background:var(--cyan);}
.about-manifesto__content{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(320px,1fr);gap:8vw;}
.about-manifesto h2,.about-principles h2,.about-timeline h2{font-size:clamp(46px,5vw,88px);}
.about-manifesto__text{font:400 clamp(17px,1.2vw,22px)/1.75 var(--font-body);padding-top:8px;}
.about-manifesto__text p{margin:0 0 1.6em;}
.about-principles{padding:9vw 8vw 11vw;background:#fff;}
.about-principles__heading{display:flex;flex-direction:column;align-items:flex-start;gap:28px;margin-bottom:5vw;text-align:right;}
.about-principles__heading .about-kicker{margin:0;}
.about-principles__list{border-top:1px solid rgba(1,41,75,.26);}
.about-principles__list article{display:grid;grid-template-columns:90px minmax(220px,.65fr) 1fr;gap:4vw;align-items:center;padding:38px 0;border-bottom:1px solid rgba(1,41,75,.26);}
.about-principles__list article>span{font:400 clamp(16px,1.1vw,20px)/1.55 var(--font-body);color:var(--cyan);}
.about-principles__list h3{font:700 clamp(28px,2.5vw,44px)/1 var(--font-display);margin:0;}
.about-principles__list p{max-width:620px;font:400 clamp(16px,1.1vw,20px)/1.55 var(--font-body);margin:0;}
.about-timeline{display:grid;grid-template-columns:1.02fr .98fr;min-height:760px;background:var(--navy-deep);color:#fff;}
.about-timeline__visual{position:relative;min-height:650px;overflow:hidden;}
.about-timeline__visual::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,var(--navy-deep));}
.about-timeline__visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) contrast(1.08);}
.about-timeline__visual>span{position:absolute;z-index:2;left:42px;top:42px;color:var(--cyan);font:700 13px/1 var(--font-body);letter-spacing:.18em;}
.about-timeline__content{padding:8vw 8vw 7vw 6vw;}
.about-timeline__content ol{list-style:none;margin:65px 0 0;padding:0;border-right:1px solid rgba(0,217,255,.5);}
.about-timeline__content li{position:relative;padding:0 42px 38px 0;}
.about-timeline__content li::before{content:"";position:absolute;right:-6px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--cyan);}
.about-timeline__content b{font:700 25px/1.2 var(--font-display);}
.about-timeline__content li p{margin:8px 0 0;color:rgba(255,255,255,.76);font:400 17px/1.55 var(--font-body);}
.about-closing{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding:9vw 8vw;background:var(--cyan);color:var(--navy-deep);}
.about-closing p{margin:0;font:700 clamp(48px,6vw,104px)/.98 var(--font-display);}
.about-closing p span{color:#fff;}
.about-closing a{display:inline-flex;align-items:center;gap:30px;white-space:nowrap;padding:16px 24px;border:2px solid var(--navy-deep);color:inherit;font:700 18px/1 var(--font-display);}
.about-footer{display:flex;align-items:center;justify-content:space-between;padding:38px 8vw;background:#f4f6f7;color:var(--navy);font:400 14px/1 var(--font-body);}
.about-footer img{display:block;width:94px;height:auto;}
/* About story: a camera frame and a spotlight around the shared story. */
.hallel-about-page .about-timeline{position:relative;display:block;isolation:isolate;min-height:0;margin:0 5vw 7vw;padding:7vw 5vw;background:#061d33;overflow:visible;}
.about-timeline__frame{--frame-thickness:.45vw;position:absolute;z-index:2;inset:2.2vw;pointer-events:none;}
.about-timeline__frame i{position:absolute;width:clamp(28px,4vw,70px);height:clamp(28px,4vw,70px);border:solid var(--white);}
.about-timeline__frame i:nth-child(1){top:0;right:0;border-width:var(--frame-thickness) var(--frame-thickness) 0 0;}
.about-timeline__frame i:nth-child(2){top:0;left:0;border-width:var(--frame-thickness) 0 0 var(--frame-thickness);}
.about-timeline__frame i:nth-child(3){bottom:0;right:0;border-width:0 var(--frame-thickness) var(--frame-thickness) 0;}
.about-timeline__frame i:nth-child(4){bottom:0;left:0;border-width:0 0 var(--frame-thickness) var(--frame-thickness);}
.about-timeline__light{position:absolute;z-index:-1;inset:0;overflow:hidden;background:radial-gradient(ellipse at 83% 48%,rgba(0,217,255,.13),transparent 62%);pointer-events:none;}
.hallel-about-page .about-timeline__visual{position:absolute;z-index:3;right:-3vw;top:50%;width:12vw;min-height:0;transform:translateY(-50%);overflow:visible;pointer-events:none;}
.hallel-about-page .about-timeline__visual--left{right:auto;left:-3vw;transform:translateY(-50%) scaleX(-1);}
.hallel-about-page .about-timeline__visual::after{display:none;}
.hallel-about-page .about-timeline__visual img{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 20px 25px rgba(0,0,0,.2));}
.hallel-about-page .about-timeline__visual>span{display:none;}
.hallel-about-page .about-timeline__content{position:relative;z-index:2;width:72%;margin-inline:auto;padding:0;text-align:center;}
.hallel-about-page .about-timeline__content .about-kicker{margin-bottom:25px;}
.hallel-about-page .about-timeline h2{font-size:clamp(44px,4.5vw,82px);line-height:1.08;}
.hallel-about-page .about-timeline__statement{max-width:680px;margin:32px auto 0;font-size:clamp(17px,1.15vw,22px);line-height:1.7;}
.hallel-about-page .about-timeline__statement p:last-child{margin-bottom:0;}
@media(max-width:900px){
  .hallel-about-page .about-timeline{margin:0 16px 65px;padding:55px 28px;}
  .about-timeline__frame{inset:14px;--frame-thickness:4px;}
  .hallel-about-page .about-timeline__visual{position:absolute;right:-16px;top:40px;width:70px;margin:0;transform:none;}
  .hallel-about-page .about-timeline__visual--left{right:auto;left:-16px;transform:scaleX(-1);}
  .hallel-about-page .about-timeline__content{width:100%;margin:0;padding-top:45px;}
  .hallel-about-page .about-timeline h2{font-size:clamp(38px,8vw,62px);}
  .hallel-about-page .about-timeline__statement{font-size:17px;margin-top:28px;}
}
@media (max-width:900px){
  .about-hero{min-height:780px;}.about-hero__image{background-position:42% center;}.about-hero__copy{right:24px;left:24px;top:48%;width:auto;}.about-hero h1{font-size:clamp(50px,15vw,82px);}.about-hero__lead{font-size:17px;}
  .about-manifesto{display:block;padding:90px 24px;}.about-manifesto__aside{margin-bottom:45px;}.about-manifesto__content{display:block;}.about-manifesto h2,.about-principles h2,.about-timeline h2{font-size:clamp(42px,12vw,64px);}.about-manifesto__text{margin-top:40px;}
  .about-principles{padding:80px 24px;}.about-principles__heading{display:block;margin-bottom:55px;}.about-principles__heading .about-kicker{margin-top:0;}.about-principles__list article{grid-template-columns:48px 1fr;gap:18px;padding:28px 0;}.about-principles__list p,.about-principles__list .about-principles__text{grid-column:2;}
  .about-timeline{display:block;}.about-timeline__visual{min-height:430px;}.about-timeline__visual::after{background:linear-gradient(0deg,var(--navy-deep),transparent 55%);}.about-timeline__content{padding:70px 24px 80px;}
  .about-closing{display:block;padding:80px 24px;}.about-closing a{margin-top:48px;}.about-footer{padding:28px 24px;}
}

/* Keep the form and project actions in their intended desktop positions. */
@media (min-width:901px){
  .apply-form__submit{
    position:absolute !important;
    left:50% !important;
    right:auto !important;
    top:23cqw !important;
    width:7.286cqw !important;
    height:2.295cqw !important;
    transform:translateX(-50%) !important;
  }
  .apply-form__submit:is(:hover,:focus-visible){
    transform:translateX(-50%) translateY(-2px) !important;
  }
  .project-card__link,
  .project-card--content-ready .project-card__link{
    flex:0 0 2.295cqw !important;
    min-height:2.295cqw !important;
    height:2.295cqw !important;
  }
}

/* Trustees enter and remain in place one by one while the stage is pinned. */
.testimonials--scroll-ready{
  --trust-heading:0;
  --trust-1:0;
  --trust-2:0;
  --trust-3:0;
  --trust-4:0;
  --trust-5:0;
}
.testimonials--scroll-ready .testimonials__heading{
  opacity:var(--trust-heading);
  transform:translateY(calc((1 - var(--trust-heading)) * 2.2cqw));
  filter:blur(calc((1 - var(--trust-heading)) * 6px));
}
.testimonials--scroll-ready .testimonial-card{
  opacity:var(--trust-progress);
  transform:translateY(calc((1 - var(--trust-progress)) * 34cqw)) scale(calc(.97 + var(--trust-progress) * .03));
  filter:blur(calc((1 - var(--trust-progress)) * 5px));
  will-change:transform,opacity,filter;
}
.testimonials--scroll-ready .testimonial-card--1{--trust-progress:var(--trust-1);}
.testimonials--scroll-ready .testimonial-card--2{--trust-progress:var(--trust-2);}
.testimonials--scroll-ready .testimonial-card--3{--trust-progress:var(--trust-3);}
.testimonials--scroll-ready .testimonial-card--4{--trust-progress:var(--trust-4);}
.testimonials--scroll-ready .testimonial-card--5{--trust-progress:var(--trust-5);}
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
  .testimonials--scroll-ready{height:calc(45cqw + 200vh);padding:0;overflow:visible;}
  .testimonials--scroll-ready .testimonials__stage{
    position:sticky;
    top:calc((100vh - 45cqw) / 2);
    overflow:hidden;
  }
}
@media (max-width:900px){
  .testimonials--scroll-ready .testimonials__heading{transform:translateY(calc((1 - var(--trust-heading)) * 32px));}
  .testimonials--scroll-ready .testimonial-card{transform:translateY(calc((1 - var(--trust-progress)) * 58px)) scale(calc(.97 + var(--trust-progress) * .03));}
}
@media (prefers-reduced-motion:reduce){
  .testimonials--scroll-ready .testimonials__heading,
  .testimonials--scroll-ready .testimonial-card{opacity:1;transform:none;filter:none;}
}

/* The existing story section unfolds in place as the page scrolls. */
.story__wordmark-fill{display:none;}
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
  .story{
    --story-fill:0;
    --story-word-opacity:1;
    --story-copy:0;
    --story-props:0;
    height:260vh;
    min-height:1700px;
    overflow:visible;
    background:#f7f9fa;
  }
  .story__stage{
    position:sticky;
    top:0;
    height:min(112vh,54cqw);
    min-height:760px;
    overflow:hidden;
    background:#f7f9fa;
  }
  .story__bg{
    height:100%;
    background:linear-gradient(180deg,var(--navy-deep),var(--navy));
    clip-path:polygon(0 0,100% 0,100% 50.7cqw,0 46.54cqw);
  }
  .story__filmstrip{height:100%;}
  .story__filmstrip::before{
    left:0;
    width:calc(100% + 3.2cqw);
    height:1.8cqw;
    top:47.4cqw;
    background:repeating-linear-gradient(105deg,var(--cyan) 0 2.1cqw,transparent 2.1cqw 3.2cqw);
    clip-path:none;
    transform:rotate(2.38deg);
    transform-origin:0 0;
    animation:story-filmstrip-forward 6s linear infinite;
  }
  .story__wordmark{
    z-index:1;
    opacity:calc(.74 + var(--story-word-opacity) * .26);
    filter:brightness(1.1) saturate(1.05);
    top:3.1cqw;
    transform:scale(calc(.985 + var(--story-fill) * .015));
    transform-origin:center;
    will-change:opacity,transform;
  }
  .story__wordmark-fill{
    display:block;
    position:absolute;
    left:28.854cqw;
    top:3.1cqw;
    width:42.089cqw;
    height:15.854cqw;
    z-index:2;
    pointer-events:none;
    display:block;
    background:var(--cyan);
    -webkit-mask:url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat;
    mask:url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat;
    clip-path:inset(0 calc((1 - var(--story-fill)) * 100%) 0 0);
    opacity:var(--story-word-opacity);
    transform:scale(calc(.985 + var(--story-fill) * .015));
    transform-origin:center;
    will-change:clip-path,opacity,transform;
  }
  .story__accent,
  .story__heading,
  .story__text{
    z-index:3;
    opacity:var(--story-copy);
    transform:translateY(calc((1 - var(--story-copy)) * 4.2cqw));
    filter:blur(calc((1 - var(--story-copy)) * 7px));
    will-change:transform,opacity;
  }
  .story__accent{transform:translateY(calc((1 - var(--story-copy)) * 2.8cqw)) scale(calc(.82 + var(--story-copy) * .18));filter:blur(calc((1 - var(--story-copy)) * 5px));}
  .story__accent{top:6.05cqw;}
  .story__heading{top:10.45cqw;}
  .story__text{top:21.1cqw;}
  .story__heading{filter:drop-shadow(0 .35cqw 1.2cqw rgba(0,0,0,.34));}
  .story__photo--center{
    top:29.6cqw;
    opacity:var(--story-props);
    transform:translate(calc((1 - var(--story-props)) * -20cqw),calc((1 - var(--story-props)) * 7cqw)) rotate(calc((1 - var(--story-props)) * -8deg));
    will-change:transform,opacity;
    filter:blur(calc((1 - var(--story-props)) * 6px));
  }
  .story__photo--right{
    top:10.75cqw;
    opacity:var(--story-props);
    transform-origin:100% 50%;
    transform:translate(calc((1 - var(--story-props)) * 18cqw),calc(var(--story-props) * 1.15cqw)) rotate(calc(var(--story-props) * -4deg));
    will-change:transform,opacity;
    filter:blur(calc((1 - var(--story-props)) * 6px));
  }
  .story__filmstrip{opacity:calc(.15 + var(--story-props) * .85);}
}
@media (min-width:901px) and (prefers-reduced-motion:reduce){.story__wordmark-fill{display:none;}}

@media (max-width:900px) and (prefers-reduced-motion:no-preference){
  .story{
    --story-fill:0;
    --story-word-opacity:1;
    --story-copy:0;
    --story-props:0;
    height:300vh;
    min-height:1850px;
    padding:0;
    overflow:visible;
    background:var(--navy-deep);
  }
  .story__stage{
    position:sticky;
    top:0;
    height:100vh;
    min-height:600px;
    overflow:hidden;
    background:linear-gradient(180deg,var(--navy-deep),var(--navy));
  }
  .story__wordmark{
    display:block;
    position:absolute;
    left:7vw;
    top:14%;
    width:86vw;
    height:auto;
    margin:0;
    z-index:1;
    opacity:calc(.74 + var(--story-word-opacity) * .26);
    filter:brightness(1.1) saturate(1.05);
    transform:scale(calc(.985 + var(--story-fill) * .015));
    transform-origin:center;
  }
  .story__wordmark-fill{
    display:block;
    position:absolute;
    left:7vw;
    top:14%;
    width:86vw;
    aspect-ratio:809/305;
    z-index:2;
    display:block;
    background:var(--cyan);
    -webkit-mask:url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat;
    mask:url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat,url('assets/images/story-wordmark.png') center/contain no-repeat;
    clip-path:inset(0 calc((1 - var(--story-fill)) * 100%) 0 0);
    opacity:var(--story-word-opacity);
  }
  .story__accent{
    position:absolute;
    left:50%;
    top:34%;
    width:42px;
    margin:0;
    z-index:3;
    opacity:var(--story-copy);
    transform:translate(-50%,calc((1 - var(--story-copy)) * 38px)) scale(calc(.8 + var(--story-copy) * .2));
    filter:blur(calc((1 - var(--story-copy)) * 5px));
  }
  .story__heading{
    position:absolute;
    left:5%;
    top:41%;
    width:90%;
    padding:0;
    z-index:3;
    opacity:var(--story-copy);
    transform:translateY(calc((1 - var(--story-copy)) * 52px));
  }
  .story__heading-line1{font-size:clamp(17px,5vw,22px);}
  .story__heading-line2{font-size:clamp(27px,8.4vw,38px);}
  .story__text{
    position:absolute;
    left:6%;
    top:53%;
    width:88%;
    max-width:none;
    margin:0;
    padding:0;
    z-index:3;
    opacity:var(--story-copy);
    transform:translateY(calc((1 - var(--story-copy)) * 62px));
    filter:blur(calc((1 - var(--story-copy)) * 7px));
  }
  .story__text .lead{font-size:clamp(12px,3.5vw,16px);line-height:1.35;margin-bottom:10px;}
  .story__text p{font-size:clamp(10px,3vw,14px);line-height:1.35;margin-bottom:8px;}
  .story__photos{display:block;margin:0;padding:0;}
  .story__photo{position:absolute;z-index:4;}
  .story__photo--center{
    left:-3vw;
    bottom:-2%;
    width:34vw;
    height:auto;
    aspect-ratio:327/468;
    opacity:var(--story-props);
    transform:translate(calc((1 - var(--story-props)) * -42vw),calc((1 - var(--story-props)) * 12vh)) rotate(calc((1 - var(--story-props)) * -8deg));
    filter:blur(calc((1 - var(--story-props)) * 6px));
  }
  .story__photo--right{
    right:-5vw;
    left:auto;
    top:10%;
    width:34vw;
    height:auto;
    margin:0;
    opacity:var(--story-props);
    transform-origin:100% 50%;
    transform:translate(calc((1 - var(--story-props)) * 42vw),calc(var(--story-props) * 1.5vh)) rotate(calc(var(--story-props) * -3deg));
    filter:blur(calc((1 - var(--story-props)) * 6px));
  }
  .story::after{opacity:calc(.18 + var(--story-props) * .82);}
}


/* The application card overlaps the cinema scene in the supplied sketch. */
@media (min-width:901px){
  .apply-form{
    position:relative;z-index:3;margin-top:-20cqw;padding:0 4cqw;
    background:#f4f6f7;
  }
  .apply-form::before{
    content:"";position:absolute;z-index:0;inset:0 0 auto;height:8cqw;background:var(--navy-deep);pointer-events:none;
  }
  .apply-form__card{
    max-width:var(--container);
    box-shadow:0 14px 55px rgba(1,41,75,.13);
    z-index:1;
    transform:translateY(-4cqw);
    margin-bottom:-4cqw;
  }
  .site-footer{position:relative;padding:0 4cqw 3cqw;border:0;}
  .site-footer__stage{height:8cqw;}
  .site-footer__photo{display:block;left:auto;right:-4cqw;top:2.2cqw;width:13cqw;height:13cqw;border-radius:0;z-index:2;opacity:1;background:var(--white);}
  .site-footer__photo img{object-fit:contain;}
  .site-footer__logo{right:0;top:1.2cqw;background:transparent;padding:0;}
  .site-footer__logo img{width:4cqw;filter:brightness(0) saturate(100%) invert(13%) sepia(39%) saturate(1323%) hue-rotate(169deg) brightness(87%) contrast(102%);}
  .site-footer::after{content:"";position:absolute;left:-3%;right:-3%;bottom:0;height:1.5cqw;background:repeating-linear-gradient(90deg,var(--cyan) 0 16px,transparent 16px 28px);transform:skewY(-3deg);transform-origin:right bottom;}
}

/* Final-page details and small-screen resilience. */
.hallel-about-page .apply-form{margin-top:0;}
section[id]{scroll-margin-top:76px;}
.apply-form__trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.apply-form__notice{color:var(--navy);background:#e7faff;border-inline-start:4px solid var(--cyan);padding:10px 14px;margin:0 0 16px;font-family:var(--font-body);font-size:14px;line-height:1.5;}
.apply-form__title > span:not(.section-title__char){color:var(--cyan);}
.apply-form__field :is(input,textarea):focus-visible{outline:2px solid var(--navy);outline-offset:4px;border-bottom-color:var(--navy);}
.apply-form__submit:hover,.apply-form__submit:focus-visible{background:var(--cyan);filter:brightness(.94);}
.site-footer__nav a:hover,.site-footer__nav a:focus-visible{text-decoration:underline;text-underline-offset:4px;}
@media (min-width:901px){.apply-form__notice{position:absolute;top:4.4cqw;left:4.13cqw;max-width:36cqw;margin:0;font-size:1.05cqw;}}

/* Closing form and footer, aligned to the cinema sketch. */
@media (min-width:901px){
  .apply-form__card{height:26.6cqw;}
  .apply-form__title{font-size:3.7cqw;top:4.9cqw;width:30cqw;}
  .apply-form__title > span:not(.section-title__char){color:var(--cyan);}
  .apply-form__field input,.apply-form__field textarea{border-bottom-color:rgba(1,41,75,.65);}
  .apply-form__field textarea{height:1.7cqw;min-height:1.7cqw;resize:none;}
  .apply-form__submit{top:23cqw;background:var(--cyan);z-index:5;}
  .site-footer,.site-footer__stage{background:#f4f6f7;}
  .site-footer__stage{height:15cqw;}
  .site-footer__legal{
    display:flex !important;align-items:center;gap:1.4cqw;
    position:absolute;left:0;top:2.5cqw;width:auto;text-align:left;white-space:nowrap;
    z-index:8;visibility:visible !important;opacity:1 !important;
  }
  .site-footer__legal a{display:inline-block;visibility:visible;opacity:1;}
  .site-footer__center{
    left:50%;width:max-content;top:2.5cqw;height:auto;
    transform:translateX(-50%);
    justify-content:flex-start;gap:2.5cqw;
    z-index:6;
  }
  .site-footer__nav{position:relative;z-index:7;display:flex;align-items:center;justify-content:center;}
  .site-footer__nav,.site-footer__legal{font-size:1.1cqw;}
  .site-footer__social img{width:1.5cqw;}
  .site-footer__logo{top:2cqw;z-index:4;}
  .site-footer__logo img{width:4.8cqw;filter:none;}
  .site-footer__photo{
    top:8.2cqw;right:0;width:11.5cqw;height:9.5cqw;
    transform:none;z-index:3;background:transparent;mix-blend-mode:normal;overflow:visible;
  }
  .site-footer__photo img{
    width:100%;height:100%;max-width:none;object-fit:contain;
    transform:none;mix-blend-mode:normal;
    filter:drop-shadow(0 .75cqw .8cqw rgba(1,41,75,.32));
  }
  .site-footer::after{
    inset:0;height:100%;transform:translateY(-2.1cqw);z-index:2;pointer-events:none;
    background:repeating-linear-gradient(105deg,var(--cyan) 0 2.1cqw,transparent 2.1cqw 3.2cqw);
    clip-path:polygon(0 87%,100% 72%,100% 81%,0 96%);
    animation:filmstrip-drift 5s linear infinite;
  }
}
@media (max-width:900px){.site-footer::after{animation:filmstrip-drift-mobile 5s linear infinite;}}
@media (prefers-reduced-motion:reduce){.site-footer::after{animation:none;}}
@media (max-width:900px){
  .project-card__focus{display:none;}
  .partners__logos{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:0;}
  .partners__logo-img{max-width:min(38vw,160px);height:56px;}
  .testimonial-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
  .testimonial-card{min-width:0;}
  .testimonial-card__photo{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;}
  .site-footer__nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;}
  .site-footer__nav a{margin:0;}
}

/* Cinematic projector-light hover for the site's cyan action buttons. */
:is(.site-donate,.project-card__link,.apply-form__submit){
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .28s cubic-bezier(.2,.75,.25,1),box-shadow .28s ease,filter .28s ease,background-color .28s ease;
}
:is(.site-donate,.project-card__link,.apply-form__submit)::before{
  content:"";
  position:absolute;
  z-index:auto;
  left:50%;
  top:50%;
  width:145%;
  aspect-ratio:1;
  border-radius:50%;
  opacity:0;
  transform:translate(-50%,-50%) scale(.08);
  background:radial-gradient(circle,rgba(255,255,255,.82) 0%,rgba(255,255,255,.48) 30%,rgba(255,255,255,.16) 58%,transparent 76%);
  transition:transform .52s cubic-bezier(.2,.72,.2,1),opacity .24s ease;
  pointer-events:none;
}
:is(.site-donate,.project-card__link):is(:hover,:focus-visible){
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(0,217,255,.24),0 2px 0 rgba(255,255,255,.45) inset;
  filter:saturate(1.05);
}
.apply-form__submit:is(:hover,:focus-visible){
  transform:translateX(-50%) translateY(-2px);
  box-shadow:0 8px 22px rgba(0,217,255,.24),0 2px 0 rgba(255,255,255,.45) inset;
  filter:saturate(1.05);
}
:is(.site-donate,.project-card__link,.apply-form__submit):is(:hover,:focus-visible)::before{
  opacity:.72;
  transform:translate(-50%,-50%) scale(1);
}
:is(.project-card__link,.apply-form__submit) span,
.site-donate svg{
  transition:transform .28s cubic-bezier(.2,.75,.25,1);
}
:is(.project-card__link,.apply-form__submit):is(:hover,:focus-visible) span,
.site-donate:is(:hover,:focus-visible) svg{
  transform:translateX(-4px);
}
@media (prefers-reduced-motion:reduce){
  :is(.site-donate,.project-card__link,.apply-form__submit),
  :is(.project-card__link,.apply-form__submit) span,
  .site-donate svg{transition:none;}
  :is(.site-donate,.project-card__link,.apply-form__submit)::before{display:none;}
}
@media (max-width:520px){.testimonial-cards{gap:14px;}.testimonial-card__name,.testimonial-card__role{font-size:12px;}}

/* One scale and one letter-by-letter entrance for the main section titles. */
:is(.story__heading-line2,.initiatives__title,.projects__heading h2,.partners__title,.testimonials__title,.ourstory__heading-line2,.apply-form__title){
  font-size:clamp(28px,8vw,36px);
  line-height:1.1;
}
.projects__heading h2,
.partners__title,
.apply-form__title{color:var(--navy);}
.projects__heading h2 > span:not(.section-title__char),
.partners__title > span:not(.section-title__char),
.apply-form__title > span:not(.section-title__char){color:var(--cyan);}
.testimonials__title{color:var(--white);}
.testimonials__title > .section-title__char{color:var(--white);}
.testimonials__title > span:not(.section-title__char),
.testimonials__title > span:not(.section-title__char) .section-title__char{color:var(--cyan);}
@media (min-width:901px){
  :is(.story__heading-line2,.initiatives__title,.projects__heading h2,.partners__title,.testimonials__title,.ourstory__heading-line2,.apply-form__title){
    font-size:3.333cqw;
  }
  .story__heading{left:33cqw;width:34cqw;}
  .story__heading-line2{white-space:nowrap;}
}
@media (prefers-reduced-motion:no-preference){
  .section-title--letters-ready .section-title__char{
    display:inline-block;
    opacity:0;
    filter:blur(6px);
    transform:translateY(.62em) scale(.84);
    transition:
      opacity .42s ease,
      filter .5s ease,
      transform .58s cubic-bezier(.2,.78,.25,1);
    transition-delay:calc(var(--title-char-index) * 42ms);
    will-change:opacity,filter,transform;
  }
  .section-title--letters-ready.is-title-visible .section-title__char{
    opacity:1;
    filter:blur(0);
    transform:none;
  }
}

/* Staggered cinematic entrance for each project's copy and action. */
@media (prefers-reduced-motion:no-preference){
  .project-card--content-ready .project-card__title,
  .project-card--content-ready .project-card__text strong,
  .project-card--content-ready .project-card__description,
  .project-card--content-ready .project-card__link{
    opacity:0;
    filter:blur(7px);
    transform:translateY(28px);
    transition:
      opacity .72s ease,
      transform .82s cubic-bezier(.18,.78,.24,1),
      filter .72s ease;
  }
  .project-card--content-ready .project-card__title{transform:translateX(34px);}
  .project-card--content-ready .project-card__text strong{display:block;transition-delay:.12s;}
  .project-card--content-ready .project-card__description{transition-delay:.24s;}
  .project-card--content-ready .project-card__link{
    transform:translateY(24px) scale(.9);
    transform-origin:center;
    transition-delay:.38s;
  }
  .project-card--content-ready.is-content-visible .project-card__title,
  .project-card--content-ready.is-content-visible .project-card__text strong,
  .project-card--content-ready.is-content-visible .project-card__description,
  .project-card--content-ready.is-content-visible .project-card__link{
    opacity:1;
    filter:blur(0);
    transform:none;
  }
  .project-card--content-ready.is-content-visible .project-card__link:is(:hover,:focus-visible){
    transform:translateY(-2px);
  }
}

/* Scroll-built Our Story scene: frame, copy, lamps, then the light halo. */
.ourstory--scroll-ready{
  --our-frame:0;
  --our-copy:0;
  --our-lamps:0;
  --our-light:0;
  --our-light-x:50%;
  --our-light-y:12%;
}
.ourstory__light{
  position:absolute;
  left:var(--our-light-x);
  top:var(--our-light-y);
  width:calc(12cqw + var(--our-light,0) * 54cqw);
  max-width:1200px;
  aspect-ratio:1;
  border-radius:50%;
  z-index:1;
  pointer-events:none;
  opacity:var(--our-light,0);
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(255,255,255,var(--spotlight-core,.24)) 0%,rgba(0,217,255,var(--spotlight-halo,.12)) 31%,rgba(0,217,255,.035) 56%,transparent 72%);
  filter:blur(calc((1 - var(--our-light,0)) * 12px));
  mix-blend-mode:screen;
  transition:left .18s ease-out,top .18s ease-out;
  will-change:left,top,width,opacity,filter;
}
.ourstory__light--shared{
  position:fixed;
  left:var(--shared-light-x,50vw);
  top:var(--shared-light-y,34vh);
  width:var(--shared-light-size,0px);
  max-width:none;
  opacity:var(--shared-light-opacity,0);
  z-index:1;
  transform:translate(-50%,-50%);
  filter:blur(7px);
  transition:left .18s ease-out,top .18s ease-out,width .16s linear,opacity .22s ease;
}

/* The original story spotlight continues into the auditorium and reveals HALLEL. */
.cta--shared-light-ready{
  --cta-progress:0;
  --cta-reveal:5%;
  --cta-reveal-soft:10%;
  --spot-x:50%;
  --spot-y:43%;
}
.cta--shared-light-ready .cta__stage{
  --our-light:1;
  --our-light-x:50%;
  --our-light-y:43%;
}
.cta--shared-light-ready .cta__wordmark-title{
  inset:0;
  top:0;
  opacity:1;
  -webkit-mask-image:radial-gradient(circle at var(--spot-x) var(--spot-y),#000 0 var(--cta-reveal),transparent var(--cta-reveal-soft));
  mask-image:radial-gradient(circle at var(--spot-x) var(--spot-y),#000 0 var(--cta-reveal),transparent var(--cta-reveal-soft));
}
.cta--shared-light-ready .cta__wordmark-title img{
  opacity:0;
}
.cta--shared-light-ready .cta__wordmark-title::before{
  content:"";
  position:absolute;
  left:50%;
  top:27%;
  width:min(70vw,809px);
  aspect-ratio:809/305;
  transform:translateX(-50%);
  background:var(--cyan);
  filter:saturate(1.12) brightness(1.04);
  -webkit-mask:url('assets/images/story-wordmark.png') center/contain no-repeat;
  mask:url('assets/images/story-wordmark.png') center/contain no-repeat;
}
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
  .cta--shared-light-ready{height:155vh;overflow:visible;}
  .cta--shared-light-ready .cta__stage{position:sticky;top:0;height:100vh;overflow:hidden;}
  .cta--shared-light-ready .cta__wordmark-title::before{width:42.089cqw;}
}
.ourstory--scroll-ready .ourstory__frame{
  z-index:3;
  opacity:var(--our-frame);
  transform:scale(calc(.24 + var(--our-frame) * .76));
  transform-origin:50% 50%;
  will-change:transform,opacity;
}
.ourstory--scroll-ready .ourstory__content{
  z-index:2;
  opacity:var(--our-copy);
  transform:translateX(-50%) translateY(calc((1 - var(--our-copy)) * 15cqw));
  clip-path:inset(calc((1 - var(--our-copy)) * 100%) 0 0 0);
  filter:blur(calc((1 - var(--our-copy)) * 6px));
  will-change:transform,opacity,clip-path,filter;
}
.ourstory--scroll-ready .ourstory__photo--right{
  opacity:var(--our-lamps);
  transform:translateX(calc((1 - var(--our-lamps)) * 20cqw));
  filter:blur(calc((1 - var(--our-lamps)) * 6px));
  will-change:transform,opacity,filter;
}
.ourstory--scroll-ready .ourstory__photo--left{
  opacity:var(--our-lamps);
  transform:translateX(calc((1 - var(--our-lamps)) * -20cqw)) scaleX(-1);
  filter:blur(calc((1 - var(--our-lamps)) * 6px));
  will-change:transform,opacity,filter;
}
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
  .ourstory--scroll-ready{height:calc(46cqw + 190vh);overflow:visible;}
  .ourstory--scroll-ready .ourstory__stage{
    position:sticky;
    top:calc((100vh - 46cqw) / 2);
    overflow:hidden;
  }
}
@media (max-width:900px){
  .ourstory__light{width:calc(38vw + var(--our-light,0) * 70vw);}
  .ourstory--scroll-ready .ourstory__content{
    transform:translateY(calc((1 - var(--our-copy)) * 80px));
  }
}
@media (prefers-reduced-motion:reduce){
  .ourstory--scroll-ready .ourstory__frame,
  .ourstory--scroll-ready .ourstory__content,
  .ourstory--scroll-ready .ourstory__photo{opacity:1;transform:none;filter:none;clip-path:none;}
  .ourstory--scroll-ready .ourstory__photo--left{transform:scaleX(-1);}
  .ourstory__light{opacity:1;transform:translate(-50%,-50%);filter:none;}
}

/* Tighten the space between the projects heading and the first project. */
@media (min-width:901px){
  .projects__stage{gap:1.5cqw;}
  .projects__heading{height:10.5cqw;}
}

/* Vertically center each project's complete content block. */
@media (min-width:901px){
  .project-card--1 .project-card__body,
  .project-card--2 .project-card__body{
    top:50%;
    bottom:auto;
    height:auto;
    transform:translateY(-50%);
  }
  .project-card--1 .project-card__link,
  .project-card--2 .project-card__link{
    margin-top:2cqw;
  }
}

/* Client story copy in the isolated About work page. */
.about-timeline__statement{max-width:650px;margin-top:48px;color:rgba(255,255,255,.86);font:400 clamp(18px,1.2vw,22px)/1.75 var(--font-body);}
.about-timeline__statement p{margin:0 0 1.35em;}
@media(max-width:900px){.about-timeline__statement{margin-top:34px;}}

/* =========================================================
   Inner pages: projects, project detail and contact
   ========================================================= */
.inner-page{background:#f4f6f7;color:var(--navy);overflow:hidden}.inner-page :is(h1,h2,h3){font-family:var(--font-display);font-weight:700}.inner-kicker{margin:0 0 26px;color:var(--cyan);font:700 clamp(13px,1vw,17px)/1.2 var(--font-body);letter-spacing:.06em}.inner-hero{position:relative;min-height:88svh;background:var(--navy-deep);color:#fff;overflow:hidden}.inner-hero__media{position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,24,43,.35),rgba(1,24,43,.88)),url('assets/images/project-2-bg.jpg') center/cover no-repeat;filter:saturate(.65)}.inner-hero__copy{position:absolute;z-index:2;right:8vw;top:52%;width:min(760px,62vw);transform:translateY(-50%)}.inner-hero h1,.project-detail-hero h1,.contact-stage h1{margin:0;font-size:clamp(62px,7vw,126px);line-height:.92}.inner-hero h1 span,.project-detail-hero h1 span,.contact-stage h1 span,.projects-intro h2 span,.project-story h2 span,.project-process h2 span,.inner-closing p span{color:var(--cyan)}.inner-hero__copy>p:last-child{max-width:650px;margin:38px 0 0;font:400 clamp(18px,1.35vw,25px)/1.6 var(--font-body)}.inner-rec{position:absolute;z-index:3;left:5vw;top:7vw;font:700 13px/1 var(--font-body);letter-spacing:.14em}.inner-rec b{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#f33}.camera-frame{position:absolute;z-index:2;inset:3vw;pointer-events:none}.camera-frame i{position:absolute;width:60px;height:60px;border-color:#fff;border-style:solid}.camera-frame i:nth-child(1){top:0;right:0;border-width:5px 5px 0 0}.camera-frame i:nth-child(2){top:0;left:0;border-width:5px 0 0 5px}.camera-frame i:nth-child(3){bottom:0;right:0;border-width:0 5px 5px 0}.camera-frame i:nth-child(4){bottom:0;left:0;border-width:0 0 5px 5px}
.projects-intro{display:grid;grid-template-columns:.7fr 1fr 1fr;gap:5vw;align-items:start;padding:9vw 8vw}.projects-intro h2,.project-story h2,.project-process h2{margin:0;font-size:clamp(48px,5vw,88px);line-height:.96}.projects-intro>p:last-child{margin:10px 0 0;font:400 clamp(17px,1.2vw,22px)/1.7 var(--font-body)}.projects-list{padding:0 5vw 10vw}.project-teaser{display:grid;grid-template-columns:1.25fr .75fr;min-height:620px;margin-bottom:5vw;background:#fff;box-shadow:0 22px 70px rgba(1,41,75,.09)}.project-teaser--reverse{grid-template-columns:.75fr 1.25fr}.project-teaser--reverse .project-teaser__image{order:2}.project-teaser__image{position:relative;display:block;min-height:520px;overflow:hidden}.project-teaser__image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(1,29,52,.55))}.project-teaser__image img{width:100%;height:100%;object-fit:cover;filter:saturate(.72)}.project-teaser__image>span{position:absolute;z-index:2;right:35px;bottom:25px;color:#fff;font:700 80px/1 var(--font-display)}.project-teaser__copy{display:flex;flex-direction:column;justify-content:center;padding:6vw 5vw}.project-teaser__copy h2{margin:0 0 30px;font-size:clamp(44px,4.6vw,82px);line-height:1}.project-teaser__copy>p:not(.inner-kicker){margin:0 0 38px;font:400 clamp(17px,1.1vw,21px)/1.65 var(--font-body)}.inner-button{display:inline-flex;align-items:center;justify-content:center;gap:25px;align-self:flex-start;min-width:160px;padding:15px 23px;border:0;background:var(--cyan);color:var(--navy-deep);font:700 18px/1 var(--font-display);cursor:pointer}.project-teaser__soon{font:700 15px/1 var(--font-body);color:#6a7d8b}.inner-closing{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding:8vw;background:var(--navy-deep);color:#fff}.inner-closing p{margin:0;font:700 clamp(50px,6vw,104px)/.98 var(--font-display)}.inner-button--outline{border:2px solid var(--cyan);background:transparent;color:#fff}.inner-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px;padding:34px 8vw;background:#eef2f4;color:var(--navy)}.inner-footer img{display:block;width:95px}.inner-footer nav{display:flex;gap:32px;font:400 16px/1 var(--font-body)}.inner-footer p{margin:0;text-align:left;font:400 14px/1 var(--font-body)}
.project-detail-hero{position:relative;height:100svh;min-height:720px;background:var(--navy-deep);color:#fff;overflow:hidden}.project-detail-hero>img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) contrast(1.05)}.project-detail-hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(1,24,43,.15),rgba(1,24,43,.92))}.project-detail-hero__copy{position:absolute;z-index:3;right:8vw;top:52%;width:min(680px,52vw);transform:translateY(-50%)}.project-detail-hero__copy>p:last-child{max-width:560px;margin:34px 0 0;font:400 clamp(18px,1.3vw,24px)/1.55 var(--font-body)}.project-story{display:grid;grid-template-columns:.42fr .9fr 1fr;gap:5vw;padding:10vw 8vw}.project-story aside{display:flex;gap:18px;padding-top:12px;font:700 15px/1 var(--font-body)}.project-story aside i{width:70px;height:1px;margin-top:7px;background:var(--cyan)}.project-story__text{font:400 clamp(17px,1.15vw,21px)/1.75 var(--font-body)}.project-story__text p{margin:0 0 1.5em}.project-process{padding:9vw 8vw;background:#fff}.project-process__heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6vw}.project-process__steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(1,41,75,.25)}.project-process__steps article{padding:38px 3vw 20px;border-left:1px solid rgba(1,41,75,.25)}.project-process__steps article:last-child{border-left:0}.project-process__steps span{color:var(--cyan);font:700 14px/1 var(--font-body)}.project-process__steps h3{margin:45px 0 20px;font-size:clamp(32px,3vw,52px)}.project-process__steps p{margin:0;font:400 18px/1.6 var(--font-body)}.project-quote{padding:10vw 8vw;background:var(--cyan);color:var(--navy-deep)}.project-quote p{max-width:1400px;margin:0;font:700 clamp(48px,5.5vw,96px)/1.05 var(--font-display)}.project-quote p span{color:#fff}
.contact-stage{display:grid;grid-template-columns:1fr .9fr;gap:7vw;min-height:calc(100svh - 90px);padding:13vw 8vw 8vw;background:var(--navy-deep);color:#fff}.contact-stage__intro>p:not(.inner-kicker){max-width:610px;margin:38px 0;font:400 clamp(18px,1.25vw,23px)/1.65 var(--font-body)}.contact-stage__note{display:flex;gap:18px;align-items:center;margin-top:70px}.contact-stage__note>span{color:var(--cyan);font:700 13px/1 var(--font-body);letter-spacing:.13em}.contact-stage__note p{margin:0;color:rgba(255,255,255,.68);font:400 15px/1.4 var(--font-body)}.contact-card{align-self:center;padding:4vw;background:#f4f6f7;color:var(--navy);box-shadow:0 30px 90px rgba(0,0,0,.24)}.contact-card form{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}.contact-card label{font:700 14px/1.2 var(--font-body)}.contact-card input,.contact-card textarea{width:100%;box-sizing:border-box;margin:0 0 16px;padding:10px 2px;border:0;border-bottom:1px solid rgba(1,41,75,.45);border-radius:0;background:transparent;color:var(--navy);font:400 18px/1.4 var(--font-body);outline:none}.contact-card textarea,.contact-card label[for="contact-message"],.contact-card .inner-button{grid-column:1/-1}.contact-card input:focus,.contact-card textarea:focus{border-color:var(--cyan)}.contact-card__notice{margin:0 0 28px;padding:13px 16px;background:#dff8fd;color:var(--navy);font:700 15px/1.4 var(--font-body)}
@media(max-width:900px){.inner-hero,.project-detail-hero{min-height:760px}.inner-hero__copy,.project-detail-hero__copy{right:24px;left:24px;width:auto}.inner-hero h1,.project-detail-hero h1,.contact-stage h1{font-size:clamp(52px,15vw,80px)}.camera-frame{inset:20px}.camera-frame i{width:35px;height:35px}.projects-intro,.project-story{display:block;padding:90px 24px}.projects-intro h2,.project-story h2{margin:25px 0 40px}.projects-list{padding:0 16px 70px}.project-teaser,.project-teaser--reverse{display:flex;flex-direction:column;min-height:0}.project-teaser--reverse .project-teaser__image{order:0}.project-teaser__image{min-height:360px}.project-teaser__copy{padding:55px 24px}.inner-closing{display:block;padding:75px 24px}.inner-closing .inner-button{margin-top:45px}.inner-footer{display:flex;flex-direction:column;align-items:flex-start;padding:35px 24px}.inner-footer nav{flex-wrap:wrap}.inner-footer p{text-align:right}.project-process{padding:80px 24px}.project-process__heading{display:block}.project-process__steps{display:block;margin-top:50px}.project-process__steps article{border-left:0;border-bottom:1px solid rgba(1,41,75,.25);padding:30px 0}.project-process__steps h3{margin:25px 0 15px}.project-quote{padding:85px 24px}.contact-stage{display:block;padding:140px 24px 75px}.contact-stage__note{margin:45px 0}.contact-card{padding:40px 22px}.contact-card form{display:block}.contact-card .inner-button{margin-top:20px}}
.hallel-inner-page .site-header{color:#fff}.hallel-inner-page .site-nav a{color:#fff}.hallel-inner-page .site-logo img{filter:brightness(0) invert(1)}

/* About page: use the same header geometry as the home page and reveal it with the page. */
.hallel-about-page .site-logo img{filter:none;}
.hallel-about-page .site-header__inner > *{animation:none !important;opacity:1;transform:none;}
@media (min-width:901px){
  .hallel-about-page .site-header{padding:0;}
  .hallel-about-page .site-header__inner{display:block;max-width:none;padding-inline:0;margin-inline:0;}
  .hallel-about-page .site-donate{position:absolute;left:4.479vw;top:2.760vw;width:6.771vw;height:1.979vw;font-size:.938vw;padding:0;justify-content:center;}
  .hallel-about-page .site-donate svg{width:1.2vw;height:auto;}
  .hallel-about-page .site-lang-toggle{position:absolute;left:11.85vw;top:2.760vw;width:4.4vw;height:1.979vw;}
  .hallel-about-page .site-lang-toggle__opt{font-size:.68vw;padding:0 .35vw;}
  .hallel-about-page .site-logo{position:absolute;left:47.031vw;top:2.552vw;width:5.781vw;}
  .hallel-about-page .site-logo img{width:100%;height:auto;}
  .hallel-about-page .site-nav{position:absolute;right:5.505vw;left:auto;top:3.490vw;width:auto;}
  .hallel-about-page .site-nav ul{justify-content:flex-start;gap:1.8vw;}
  .hallel-about-page .site-nav a{font-size:.938vw;font-family:var(--font-body);}
}

/* About hero uses the original home-page hall image without visual treatment. */
.hallel-about-page .about-hero__image{
  background-color:#061D33;
  background-image:linear-gradient(rgba(5,29,51,.32),rgba(5,29,51,.32)),url('assets/images/cta-banner.png');
  background-position:center bottom;
  background-size:cover;
  background-repeat:no-repeat;
  transform:none;
}
.hallel-about-page .about-hero__grain{display:none;}

.hallel-about-page .about-hero{margin-bottom:-4.8vw;overflow:visible;background:transparent;--about-cut:0;--about-edge-left:calc(100% - 7vw);--about-edge-rise:4.156vw;position:relative;z-index:1;}
.hallel-about-page .about-hero__image{clip-path:polygon(0 0,100% 0,100% calc(var(--about-edge-left) + var(--about-edge-rise)),0 var(--about-edge-left));}
.hallel-about-page .about-hero__copy{top:50%;transform:translateY(-50%);}
.hallel-about-page .about-hero h1{line-height:1.05;}
.about-hero__filmstrip{position:absolute;z-index:3;left:0;top:calc(var(--about-edge-left) + 1vw);width:100%;height:clamp(22px,1.8vw,35px);background:repeating-linear-gradient(105deg,var(--cyan) 0 2.1vw,transparent 2.1vw 3.2vw);transform:skewY(2.38deg);transform-origin:0 0;opacity:var(--about-cut);animation:story-filmstrip-forward 6s linear infinite;will-change:opacity;}
.hallel-about-page .about-hero::after{content:"";position:absolute;z-index:1;left:0;top:var(--about-edge-left);width:100%;height:7vw;background:#f4f6f7;transform:skewY(2.38deg);transform-origin:0 0;pointer-events:none;}
.about-hero__chair{position:absolute;z-index:4;left:3.5%;bottom:-3.5%;width:clamp(250px,19vw,365px);margin:0;opacity:var(--about-cut);transform:translate(calc((1 - var(--about-cut)) * -20vw),calc((1 - var(--about-cut)) * 7vw)) rotate(calc((1 - var(--about-cut)) * -8deg));filter:blur(calc((1 - var(--about-cut)) * 6px));will-change:transform,opacity;}
.about-hero__chair::before{content:"";position:absolute;left:-15%;bottom:-5%;width:130%;height:18%;background:radial-gradient(ellipse 50% 48% at 50% 50%,rgba(16,28,38,.34) 0%,rgba(16,28,38,.18) 42%,rgba(16,28,38,.06) 68%,transparent 100%);filter:blur(3px);}
.about-hero__chair img{position:relative;z-index:1;display:block;width:100%;height:auto;}
.hallel-about-page .about-manifesto{padding-top:13vw;}
@media (max-width:900px){.hallel-about-page .about-hero{margin-bottom:-34px;--about-edge-left:calc(100% - 42px)}.hallel-about-page .about-hero::after{height:60px}.about-hero__filmstrip{top:calc(var(--about-edge-left) + 12px);height:18px;background:repeating-linear-gradient(105deg,var(--cyan) 0 28px,transparent 28px 43px)}.about-hero__chair{left:2%;bottom:-1%;width:190px}.hallel-about-page .about-manifesto{padding-top:110px}}
@media (prefers-reduced-motion:reduce){.hallel-about-page .about-hero{--about-cut:1}.about-hero__filmstrip{animation:none}}

/* About introduction: Jerusalem moves behind the stationary foreground portrait. */
.hallel-about-page .about-manifesto{
  position:relative;
  display:block;
  isolation:isolate;
  overflow:clip;
  min-height:850px;
  padding:clamp(130px,13vw,240px) 6vw clamp(110px,12vw,200px);
  background:#edf2f4;
  --about-landscape-shift:0px;
}
.about-manifesto__landscape{
  position:absolute;
  z-index:-2;
  inset:-180px 0 0;
  background:url('assets/images/about-jerusalem.png') center 54%/cover no-repeat;
  filter:none;
  opacity:.68;
  transform:translate3d(0,var(--about-landscape-shift),0);
  will-change:transform;
}
.hallel-about-page .about-manifesto::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,rgba(244,247,248,.76),rgba(244,247,248,.10) 33%,rgba(244,247,248,.08) 67%,rgba(244,247,248,.72));
}
.hallel-about-page .about-manifesto__aside{position:absolute;z-index:2;right:6vw;top:clamp(70px,6vw,115px);padding:0;}
.hallel-about-page .about-manifesto__content{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.88fr) minmax(0,1fr);
  gap:2vw;
  align-items:center;
  width:100%;
  min-height:570px;
}
.hallel-about-page .about-manifesto h2{grid-column:1;grid-row:1;align-self:center;max-width:550px;font-size:clamp(43px,4.2vw,78px);text-shadow:0 2px 18px rgba(255,255,255,.55);}
.about-manifesto__woman{grid-column:2;grid-row:1;align-self:end;justify-self:center;width:min(100%,500px);max-height:660px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 18px 24px rgba(5,29,51,.20));-webkit-mask-image:linear-gradient(#000 0 84%,transparent 100%);mask-image:linear-gradient(#000 0 84%,transparent 100%);}
.hallel-about-page .about-manifesto__text{grid-column:3;grid-row:1;align-self:center;max-width:500px;padding:0;font-size:clamp(16px,1.05vw,20px);line-height:1.7;text-shadow:0 1px 12px rgba(255,255,255,.65);}
@media(max-width:900px){
  .hallel-about-page .about-manifesto{min-height:0;padding:96px 24px 70px;}
  .about-manifesto__landscape{inset:-180px 0 0;opacity:.37;background-position:center;}
  .hallel-about-page .about-manifesto::before{background:rgba(244,247,248,.55);}
  .hallel-about-page .about-manifesto__aside{position:relative;right:auto;top:auto;margin:0 0 30px;}
  .hallel-about-page .about-manifesto__content{display:flex;flex-direction:column;align-items:stretch;gap:24px;min-height:0;}
  .hallel-about-page .about-manifesto h2{max-width:none;font-size:clamp(42px,10vw,64px);}
  .about-manifesto__woman{width:min(75%,360px);max-height:440px;align-self:center;}
  .hallel-about-page .about-manifesto__text{max-width:none;margin:0;font-size:17px;}
}
@media(prefers-reduced-motion:reduce){.about-manifesto__landscape{animation:none;transform:none;will-change:auto;}}

/* Full-width About scene based on the approved composition. */
.hallel-about-page .about-page{overflow:clip;}
@media(min-width:901px){
  .hallel-about-page .about-manifesto{height:100vh;min-height:720px;padding:0;overflow:hidden;background:#f4f6f7;}
  .hallel-about-page .about-manifesto__stage{position:relative;height:100%;overflow:hidden;isolation:isolate;background:#f4f6f7;}
  .hallel-about-page .about-manifesto__landscape{inset:0;z-index:-2;background-position:center;background-size:cover;background-attachment:fixed;transform:none;will-change:auto;opacity:1;}
  .hallel-about-page .about-manifesto__stage::before{content:"";position:absolute;z-index:-1;inset:0;background:rgba(247,248,249,.10);}
.hallel-about-page .about-manifesto::before{display:none;}
.hallel-about-page .about-manifesto__aside{right:5.5vw;top:21%;font-size:clamp(16px,1.1vw,22px);}
.hallel-about-page .about-manifesto__aside i{display:none;}
  .hallel-about-page .about-manifesto__content{position:static;display:block;min-height:0;}
  .hallel-about-page .about-manifesto h2{position:absolute;z-index:3;right:5.5vw;top:28%;width:32vw;max-width:none;font-size:clamp(62px,5.8vw,116px);line-height:1.06;text-shadow:none;}
  .hallel-about-page .about-manifesto__text{position:absolute;z-index:3;left:4.5vw;top:34%;width:25vw;max-width:none;font-size:clamp(17px,1.15vw,23px);line-height:1.45;text-shadow:none;}
  .hallel-about-page .about-manifesto__text p{margin-bottom:1.15em;}
  .hallel-about-page .about-manifesto__woman{position:absolute;z-index:2;left:0;bottom:-1px;width:min(70vw,1430px);max-height:none;height:auto;object-fit:contain;filter:none;-webkit-mask-image:none;mask-image:none;pointer-events:none;}
}
@media(max-width:900px){
  .hallel-about-page .about-manifesto{padding:0;overflow:clip;}
  .hallel-about-page .about-manifesto__stage{position:relative;min-height:760px;padding:85px 24px 0;overflow:hidden;isolation:isolate;}
  .hallel-about-page .about-manifesto__landscape{inset:-180px 0 0;z-index:-2;opacity:.55;}
  .hallel-about-page .about-manifesto__stage::before{content:"";position:absolute;z-index:-1;inset:0;background:rgba(247,248,249,.36);}
  .hallel-about-page .about-manifesto::before{display:none;}
  .hallel-about-page .about-manifesto__woman{position:relative;z-index:1;display:block;width:115%;max-height:none;height:auto;max-width:none;margin:20px 0 -1px -10%;filter:none;-webkit-mask-image:none;mask-image:none;}
  .hallel-about-page .about-manifesto__text{position:relative;z-index:2;padding-bottom:10px;}
}

/* Let the Jerusalem scene reach the hero's diagonal edge without a gray mask. */
.hallel-about-page .about-hero::after{display:none;}
@media(prefers-reduced-motion:reduce){.hallel-about-page .about-manifesto__landscape{background-attachment:scroll;}}

/* Consistent small section headings at the site's running-text size. */
.hallel-about-page .about-kicker,
.hallel-about-page .about-manifesto__aside{
  font-size:clamp(16px,1.1vw,20px);
  line-height:1.55;
  letter-spacing:normal;
}

.hallel-about-page .about-page{background:#fff;}
.hallel-about-page .about-timeline__visual img{
  transform:rotate(var(--about-lamp-angle,0deg));
  transform-origin:70% 60%;
  will-change:transform;
}
@media(prefers-reduced-motion:reduce){
  .hallel-about-page .about-timeline__visual img{transform:none;will-change:auto;}
}

:is(.hallel-about-page,.hallel-inner-page) .about-title--ready{
  opacity:0;
  translate:0 12px;
  transition:opacity .7s ease,translate .7s cubic-bezier(.22,.61,.36,1);
}
:is(.hallel-about-page,.hallel-inner-page) .about-title--ready.is-about-title-visible{opacity:1;translate:0 0;}
@media(prefers-reduced-motion:reduce){
  :is(.hallel-about-page,.hallel-inner-page) .about-title--ready{opacity:1;translate:none;transition:none;}
}

.hallel-about-page .principle-row--ready{
  opacity:0;translate:0 18px;
  transition:opacity .65s ease var(--principle-delay,0ms),translate .65s cubic-bezier(.22,.61,.36,1) var(--principle-delay,0ms);
}
.hallel-about-page .principle-row--ready.is-principle-visible{opacity:1;translate:0 0;}
@media(prefers-reduced-motion:reduce){
  .hallel-about-page .principle-row--ready{opacity:1;translate:none;transition:none;}
}

.hallel-about-page .about-hero__lead{
  font-size:clamp(16px,1.1vw,20px);
  line-height:1.55;
}

/* Projects hero follows the About banner's proportions. */
.projects-index .inner-hero{min-height:100svh;background:#fff;}
.projects-index .inner-hero__media{
  background-color:#061d33;
  background-image:linear-gradient(rgba(5,29,51,.42),rgba(5,29,51,.42)),url('assets/images/project-2-bg.jpg');
  filter:none;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 2.844vw),0 calc(100% - 7vw));
}
.projects-index .inner-hero__copy{right:8vw;top:50%;width:min(680px,58vw);transform:translateY(-50%);}
.projects-index .inner-hero h1{font-size:clamp(58px,7.2vw,126px);line-height:1.05;}
.projects-index .inner-hero .inner-kicker{font-size:clamp(16px,1.1vw,20px);line-height:1.55;letter-spacing:normal;}
.projects-index .inner-hero__copy>p:last-child{max-width:580px;font-size:clamp(16px,1.1vw,20px);line-height:1.55;}
.projects-index .inner-hero :is(.camera-frame,.inner-rec){display:none;}
@media(max-width:900px){
  .projects-index .inner-hero{min-height:780px;}
  .projects-index .inner-hero__copy{right:24px;left:24px;width:auto;}
  .projects-index .inner-hero h1{font-size:clamp(50px,15vw,82px);}
}

/* Shared header geometry across all site templates. */
/* About page: use the same header geometry as the home page and reveal it with the page. */
body .site-logo img{filter:none;}
body .site-header__inner > *{animation:none !important;opacity:1;transform:none;}
@media (min-width:901px){
  body .site-header{padding:0;}
  body .site-header__inner{display:block;max-width:none;padding-inline:0;margin-inline:0;}
  body .site-donate{position:absolute;left:4.479vw;top:2.760vw;width:6.771vw;height:1.979vw;font-size:.938vw;padding:0;justify-content:center;}
  body .site-donate svg{width:1.2vw;height:auto;}
  body .site-lang-toggle{position:absolute;left:11.85vw;top:2.760vw;width:4.4vw;height:1.979vw;}
  body .site-lang-toggle__opt{font-size:.68vw;padding:0 .35vw;}
  body .site-logo{position:absolute;left:47.031vw;top:2.552vw;width:5.781vw;}
  body .site-logo img{width:100%;height:auto;}
  body .site-nav{position:absolute;right:5.505vw;left:auto;top:3.490vw;width:auto;}
  body .site-nav ul{justify-content:flex-start;gap:1.8vw;}
  body .site-nav a{font-size:.938vw;font-family:var(--font-body);}
}

body.hallel-inner-page .site-logo img{filter:none;}

.projects-index .inner-hero{background:#f4f6f7;}
.projects-index .projects-intro{
  grid-template-columns:1fr 1fr;
  gap:24px 8vw;
  text-align:right;
}
.projects-index .projects-intro>.inner-kicker{grid-column:1;grid-row:1;margin:0;}
.projects-index .projects-intro>h2{grid-column:1;grid-row:2;text-align:right;}
.projects-index .projects-intro>p:last-child{grid-column:2;grid-row:2;}
@media(max-width:900px){
  .projects-index .projects-intro>h2{margin:24px 0 36px;}
}

.projects-index .project-teaser__image .project-card__frame{
  inset:5.8% 4%;--arm-h:clamp(28px,4vw,70px);--arm-v:clamp(28px,4vw,70px);--thick:clamp(3px,.45vw,8px);
}
.projects-index .project-teaser__image>.project-card__scene-label{
  top:10.8%;left:8%;right:auto;bottom:auto;
  font:400 clamp(12px,1vw,18px)/1 var(--font-display);color:#fff;
}
.projects-index .project-teaser__image>.project-card__rec{
  top:10.8%;right:8%;bottom:auto;left:auto;
  font:400 clamp(12px,1vw,18px)/1 var(--font-display);
}
.projects-index .project-teaser__image .project-card__rec-text{font-size:clamp(12px,1vw,18px);}
.projects-index .project-teaser__image>.project-teaser__number{right:8%;bottom:10%;}

.projects-index .project-teaser__copy h2{font-size:1.875vw;}
@media(max-width:900px){.projects-index .project-teaser__copy h2{font-size:clamp(22px,5.5vw,30px);}}

/* One diagonal and moving filmstrip for every main banner. */
.site-banner-diagonal{
  clip-path:polygon(0 0,100% 0,100% calc(100% - 2.844vw),0 calc(100% - 7vw));
}
.projects-index .site-banner-diagonal{background:#061d33;}
.projects-index .site-banner-diagonal .inner-hero__media{clip-path:none;}
.site-banner-filmstrip{
  position:relative;z-index:3;pointer-events:none;
  width:100%;height:clamp(22px,1.8vw,35px);
  margin-top:-6vw;margin-bottom:4.2vw;
  background:repeating-linear-gradient(105deg,var(--cyan) 0 2.1vw,transparent 2.1vw 3.2vw);
  transform:skewY(2.38deg);transform-origin:0 0;
  animation:story-filmstrip-forward 6s linear infinite;
}
@media(max-width:900px){
 .site-banner-filmstrip{height:18px;background:repeating-linear-gradient(105deg,var(--cyan) 0 28px,transparent 28px 43px);}
}
@media(prefers-reduced-motion:reduce){.site-banner-filmstrip{animation:none;}}

.projects-index .inner-closing .inner-button{translate:0 24px;}

.project-detail .project-story{grid-template-columns:1fr 1fr;gap:24px 8vw;text-align:right;}
.project-detail .project-story>aside{grid-column:1;grid-row:1;padding:0;}
.project-detail .project-story>aside i{display:none;}
.project-detail .project-story__title{grid-column:1;grid-row:2;}
.project-detail .project-story__text{grid-column:2;grid-row:2;}
.project-detail .project-process__heading{flex-direction:column;align-items:flex-start;gap:24px;text-align:right;}
.project-detail .project-process__heading .inner-kicker{margin:0;}
.project-detail .project-process__steps{border:0;}
.project-detail .project-process__steps article{border:0;text-align:right;}
.project-detail .project-process__steps>article>span{font-size:clamp(22px,1.6vw,30px);}
.project-detail .project-goals{background:#f4f6f7;}
.project-detail .project-goals__icon{display:flex;align-items:center;justify-content:center;width:clamp(80px,8vw,140px);aspect-ratio:1;background:#fff;box-shadow:0 4px 24px rgba(1,41,75,.06);}
.project-detail .project-goals__icon img{width:60%;height:60%;object-fit:contain;}
.project-detail .project-goals h3{font-size:1.875vw;line-height:1.2;margin:28px 0 18px;}
.project-detail .project-goals .project-process__steps p{font-size:clamp(16px,1.042vw,20px);line-height:1.5;}
@media(max-width:900px){.project-detail .project-goals h3{font-size:clamp(18px,5vw,22px);}}

.contact-page .contact-card form{display:flex;flex-direction:column;gap:0;}
.contact-page .contact-card label{font-family:var(--font-body);font-size:1.15vw;font-weight:400;line-height:1.55;}
.contact-page .contact-card input,.contact-page .contact-card textarea{display:block;width:100%;font-family:var(--font-body);font-size:1.05vw;text-align:right;}
.contact-page .contact-card button{align-self:stretch;margin-top:14px;}
@media(max-width:900px){
 .contact-page .contact-card label,.contact-page .contact-card input,.contact-page .contact-card textarea{font-size:14px;}
}

/* Project section labels match the site's running text. */
.project-detail .inner-kicker,
.project-detail .project-story>aside{
  font-size:clamp(16px,1.1vw,20px);
  line-height:1.55;
  letter-spacing:normal;
  font-family:var(--font-body);
}

/* Project goals: staggered illustrated cards, echoing the home initiatives. */
.project-detail .project-goals{background:#fff;padding:7vw 5vw 9vw;}
.project-detail .project-goals .project-process__heading{margin-bottom:4vw;}
.project-detail .project-goals .project-process__steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2vw;align-items:start;}
.project-detail .project-goals .project-process__steps article{
  display:grid;grid-template-columns:minmax(0,1fr) clamp(60px,5vw,96px);
  column-gap:1.2vw;align-content:start;min-height:300px;
  padding:2vw;border:0;border-radius:4px;background:#fff;
  box-shadow:0 4px 30px rgba(1,41,75,.09);
}
.project-detail .project-goals .project-process__steps article:nth-child(2){margin-top:5vw;}
.project-detail .project-goals .project-process__steps article:nth-child(3){margin-top:9vw;}
.project-detail .project-goals__icon{grid-column:2;grid-row:1 / span 2;width:100%;aspect-ratio:auto;background:transparent;box-shadow:none;align-items:flex-start;}
.project-detail .project-goals__icon img{width:100%;height:auto;max-height:110px;}
.project-detail .project-goals h3{grid-column:1;grid-row:1;margin:0 0 20px;}
.project-detail .project-goals .project-process__steps p{grid-column:1;grid-row:2;margin:0;}
@media(max-width:900px){
 .project-detail .project-goals{padding:70px 24px;}
 .project-detail .project-goals .project-process__steps{grid-template-columns:1fr;gap:24px;}
 .project-detail .project-goals .project-process__steps article{min-height:0;padding:28px;column-gap:20px;}
 .project-detail .project-goals .project-process__steps article:nth-child(n){margin-top:0;}
}
.project-detail .project-goals .project-process__steps article{grid-template-columns:clamp(60px,5vw,96px) minmax(0,1fr);}
.project-detail .project-goals__icon{grid-column:1;}
.project-detail .project-goals h3,.project-detail .project-goals .project-process__steps p{grid-column:2;}

/* A connected journey for the film-making stages. */
.project-detail .project-process:not(.project-goals) .project-process__steps{gap:4vw;position:relative;}
.project-detail .project-process:not(.project-goals) .project-process__steps article{position:relative;padding:0;}
.project-detail .project-process:not(.project-goals) .project-process__steps article>span{
  position:relative;z-index:2;display:flex;align-items:center;justify-content:center;
  width:64px;height:64px;border:2px solid var(--cyan);border-radius:50%;
  background:#fff;color:var(--navy);font:400 24px/1 var(--font-body);
}
.project-detail .project-process:not(.project-goals) .project-process__steps article:not(:last-child)::before{
  content:"";position:absolute;top:32px;right:64px;width:calc(100% + 4vw - 64px);height:2px;background:var(--cyan);
}
.project-detail .project-process:not(.project-goals) .project-process__steps article:not(:last-child)::after{
  content:"";position:absolute;top:27px;left:-2vw;width:10px;height:10px;
  border-left:2px solid var(--cyan);border-bottom:2px solid var(--cyan);transform:rotate(45deg);
}
.project-detail .project-process:not(.project-goals) .project-process__steps h3{margin:30px 0 20px;font-size:clamp(28px,2.4vw,44px);}
.project-detail .project-process:not(.project-goals) .project-process__steps p{font-size:clamp(16px,1.1vw,20px);line-height:1.65;}
@media(max-width:900px){
 .project-detail .project-process:not(.project-goals) .project-process__steps{display:block;}
 .project-detail .project-process:not(.project-goals) .project-process__steps article{padding:0 86px 40px 0;min-height:100px;}
 .project-detail .project-process:not(.project-goals) .project-process__steps article>span{position:absolute;right:0;top:0;width:56px;height:56px;}
 .project-detail .project-process:not(.project-goals) .project-process__steps article:not(:last-child)::before{top:56px;right:27px;width:2px;height:calc(100% - 56px);}
 .project-detail .project-process:not(.project-goals) .project-process__steps article:not(:last-child)::after{display:none;}
 .project-detail .project-process:not(.project-goals) .project-process__steps h3{margin:0 0 16px;}
}

/* Minimal process layout with a quiet scroll entrance. */
.project-detail .project-process:not(.project-goals) .project-process__steps article>span{
  width:auto;height:auto;display:block;border:0;border-radius:0;background:transparent;
  color:var(--cyan);font-size:24px;
}
.project-detail .project-process:not(.project-goals) .project-process__steps article::before,
.project-detail .project-process:not(.project-goals) .project-process__steps article::after{display:none;}
.project-detail .process-step--ready{opacity:0;translate:0 16px;transition:opacity .7s ease var(--step-delay,0ms),translate .7s ease var(--step-delay,0ms);}
.project-detail .process-step--ready.is-step-visible{opacity:1;translate:0 0;}
@media(max-width:900px){
 .project-detail .project-process:not(.project-goals) .project-process__steps article{padding:0 0 36px;}
 .project-detail .project-process:not(.project-goals) .project-process__steps article>span{position:static;margin-bottom:20px;}
}
@media(prefers-reduced-motion:reduce){.project-detail .process-step--ready{opacity:1;translate:none;transition:none;}}

.project-detail .inner-kicker,
.project-detail .project-story>aside{color:var(--navy);}

/* A fine progress line makes the stages read as one continuous journey. */
.project-detail .project-process:not(.project-goals) .project-process__steps::before,
.project-detail .project-process:not(.project-goals) .project-process__steps::after{
 content:"";position:absolute;right:0;left:0;top:42px;height:1px;pointer-events:none;
}
.project-detail .project-process:not(.project-goals) .project-process__steps::before{background:rgba(1,41,75,.12);}
.project-detail .project-process:not(.project-goals) .project-process__steps::after{background:var(--cyan);transform:scaleX(var(--process-progress,1));transform-origin:right;}
.project-detail .project-process:not(.project-goals) .project-process__steps h3{margin-top:42px;}
.project-detail .process-scroll-ready .project-process__steps article{transition:none;will-change:opacity,translate;}
@media(max-width:900px){
 .project-detail .project-process:not(.project-goals) .project-process__steps::before,
 .project-detail .project-process:not(.project-goals) .project-process__steps::after{display:none;}
 .project-detail .project-process:not(.project-goals) .project-process__steps article{border-right:1px solid rgba(1,41,75,.16);padding-right:24px;}
 .project-detail .project-process:not(.project-goals) .project-process__steps h3{margin-top:18px;}
}

/* Initiative story: text on the right, soldier portrait on the left. */
.project-detail .project-story--soldier{align-items:start;gap:24px 6vw;}
.project-detail .project-story--soldier .project-story__text{grid-column:1;grid-row:3;}
.project-detail .project-story--soldier .project-story__photo{grid-column:2;grid-row:1 / span 3;margin:0;align-self:center;}
.project-story__photo img{display:block;width:100%;height:auto;}
.project-detail .project-detail-hero .inner-kicker{color:#fff;}
.project-goals.icons-scroll-ready .project-goals__icon img{will-change:opacity,transform;}
@media(max-width:900px){.project-story__photo{margin:32px 0 0!important;}}

/* Consistent navigation states on every page. */
body .site-nav a:is(:hover,:focus-visible,.is-current),
body .site-footer__nav a:is(:hover,:focus-visible,.is-current){color:var(--cyan);}

@media(prefers-reduced-motion:no-preference){
 .home .story__filmstrip::before{animation-duration:3.8s;}
 .home .story::after{animation-duration:3s;}
}

/* More breathing room between the homepage projects. */
.home .project-card + .project-card{margin-top:clamp(40px,4vw,80px);}

@media(prefers-reduced-motion:no-preference){
 .home .ourstory--scroll-ready .ourstory__photo--right{
  transform-origin:70% 60%;
  transform:translateX(calc((1 - var(--our-lamps)) * 20cqw)) rotate(var(--our-pointer-right,0deg));
 }
 .home .ourstory--scroll-ready .ourstory__photo--left{
  transform-origin:30% 60%;
  transform:translateX(calc((1 - var(--our-lamps)) * -20cqw)) scaleX(-1) rotate(var(--our-pointer-left,0deg));
 }
}

/* Cinematic entrance without hiding or changing the card's layout. */
.home .project-card--cinematic{background-image:none;background-color:#061d33;}
.home .project-card--cinematic .project-card__video{
 clip-path:inset(100% 0 0);opacity:.4;transform:scale(var(--project-zoom,1));
 transition:clip-path 1.1s cubic-bezier(.22,.61,.36,1),opacity 1.1s ease;
}
.home .project-card--cinematic.is-cinema-visible .project-card__video{clip-path:inset(0);opacity:1;}
.home .project-card--cinematic .project-card__frame span{scale:0;transition:scale .65s ease .55s;}
.home .project-card--cinematic.is-cinema-visible .project-card__frame span{scale:1;}
.home .project-card--cinematic .project-card__frame :is(.tl-v,.tr-v){transform-origin:top;}
.home .project-card--cinematic .project-card__frame :is(.bl-v,.br-v){transform-origin:bottom;}
.home .project-card--cinematic .project-card__frame :is(.tl-h,.bl-h){transform-origin:left;}
.home .project-card--cinematic .project-card__frame :is(.tr-h,.br-h){transform-origin:right;}
.home .project-card--cinematic .project-card__body{opacity:0;translate:0 20px;transition:opacity .7s ease .8s,translate .8s ease .8s;}
.home .project-card--cinematic.is-cinema-visible .project-card__body{opacity:1;translate:0 0;}
.home .project-card--cinematic :is(.project-card__scene-label,.project-card__rec,.project-card__stamp){opacity:0;transition:opacity .6s ease .65s;}
.home .project-card--cinematic.is-cinema-visible :is(.project-card__scene-label,.project-card__rec,.project-card__stamp){opacity:1;}

/* Shared scale for large section headings throughout the inner pages. */
body.hallel-inner-page,body.hallel-about-page{
 --inner-section-title-size:clamp(46px,5vw,88px);
}
body.hallel-about-page :is(.about-manifesto,.about-principles,.about-timeline) h2,
body.hallel-inner-page :is(.projects-intro,.project-story,.project-process) h2,
body.hallel-inner-page .inner-closing>p{
 font-size:var(--inner-section-title-size);
 line-height:1.08;
}
@media(max-width:900px){
 body.hallel-inner-page,body.hallel-about-page{--inner-section-title-size:clamp(38px,9vw,60px);}
}

/* Articles: the same cinematic palette with a calm reading layout. */
.articles-hero,.article-hero{position:relative;background:#061d33;color:#fff;min-height:75svh;display:flex;align-items:center;padding:150px 8vw 120px;}
.articles-hero{background:linear-gradient(90deg,rgba(6,29,51,.65),#061d33),url('assets/images/hero-bg.jpg') center/cover;}
.articles-hero__copy,.article-hero__copy{max-width:850px;}
.articles-hero h1,.article-hero h1{font-size:clamp(58px,7.2vw,126px);line-height:1.08;margin:24px 0;}
.articles-hero h1 span,.articles-heading h2 span{color:var(--cyan);}
:is(.articles-hero,.article-hero) .inner-kicker{color:#fff;}
:is(.articles-hero,.article-hero) p:not(.inner-kicker){font:400 clamp(17px,1.15vw,22px)/1.7 var(--font-body);}
.articles-list{background:#fff;padding:7vw 8vw;}
.articles-heading h2{font-size:var(--inner-section-title-size);line-height:1.08;margin:0 0 60px;}
.articles-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
.article-card{background:#f5f7f8;overflow:hidden;border-radius:4px;}
.article-card__image{display:block;position:relative;aspect-ratio:1.5;overflow:hidden;}
.article-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.article-card:hover img{transform:scale(1.035);}
.article-corners{position:absolute;inset:18px;background:linear-gradient(#fff,#fff) top right/28px 3px,linear-gradient(#fff,#fff) top right/3px 28px,linear-gradient(#fff,#fff) bottom left/28px 3px,linear-gradient(#fff,#fff) bottom left/3px 28px;background-repeat:no-repeat;}
.article-card__copy{padding:28px;}
.article-card time,.article-hero time{font:400 14px/1.5 var(--font-body);}
.article-card h3{font-size:clamp(26px,2vw,36px);line-height:1.15;margin:18px 0;}
.article-card a{color:inherit;text-decoration:none;}
.article-card p{font:400 17px/1.7 var(--font-body);}
.article-read,.article-back{display:inline-flex;align-items:center;gap:24px;color:var(--navy);font:700 18px/1.5 var(--font-body);text-decoration:none;border-bottom:2px solid var(--cyan);padding-bottom:8px;}
.article-read:hover{color:#007c96;}.article-back{color:#fff;margin-bottom:30px;font-size:15px;}
.article-reading{padding:6vw 24px 8vw;background:#fff;}
.article-reading>figure{max-width:1000px;margin:0 auto 60px;}
.article-reading>figure img{width:100%;max-height:600px;object-fit:cover;display:block;}
.article-content,.article-reading>.article-read{max-width:760px;margin-inline:auto;}
.article-content{font:400 clamp(18px,1.2vw,22px)/1.9 var(--font-body);}
.article-content h2{font-size:clamp(32px,3vw,48px);line-height:1.2;margin:2em 0 .65em;}
.article-content blockquote{margin:40px 0;padding:12px 28px;border-right:3px solid var(--cyan);background:#f5f7f8;}
.article-content img{max-width:100%;height:auto;}
.article-reading>.article-read{display:flex;width:fit-content;margin-top:55px;}
@media(max-width:900px){.articles-hero,.article-hero{min-height:650px;padding:140px 24px 100px;}.articles-hero h1,.article-hero h1{font-size:clamp(48px,12vw,76px);}.articles-list{padding:70px 24px;}.articles-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.article-reading{padding-top:45px;}}
@media(max-width:600px){.articles-grid{grid-template-columns:1fr;}.article-card__copy{padding:24px;}}
@media(prefers-reduced-motion:reduce){.article-card__image img{transition:none;}}

/* Keep the articles archive white through the diagonal banner transition. */
.inner-page.articles-page{background:#fff;}
.articles-page .article-card .article-read.inner-button{
 display:inline-flex;justify-content:center;align-items:center;gap:24px;
 background:var(--cyan);color:var(--navy);border:0;border-radius:0;
 padding:14px 24px;min-width:160px;margin-top:12px;
 font:700 clamp(18px,1.25vw,22px)/1.2 var(--font-display);
 transition:transform .25s ease,box-shadow .25s ease;
}
.articles-page .article-card .article-read.inner-button:is(:hover,:focus-visible){transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,217,255,.22);}
@media(prefers-reduced-motion:reduce){.articles-page .article-card .article-read.inner-button{transition:none;}}

/* Spacious article opening: square image on the right and bold standfirst. */
.inner-page.article-page{background:#fff;}
.article-opening{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;max-width:1100px;margin:0 auto 65px;}
.article-opening figure{margin:0;}
.article-opening img{display:block;width:100%;aspect-ratio:1;object-fit:cover;}
.article-opening__lead{font:700 clamp(22px,2vw,32px)/1.65 var(--font-body);margin:0;}
.article-page .article-content{max-width:960px;}
.article-page .article-reading>.article-read.inner-button{border:0;background:var(--cyan);color:var(--navy);padding:15px 25px;font:700 22px/1.2 var(--font-display);}
.article-related{padding:0 8vw 7vw;background:#fff;}
.article-related>h2{font-size:var(--inner-section-title-size);line-height:1.08;margin:0 0 40px;}
.article-related>p{font:400 18px/1.7 var(--font-body);}
.article-related .article-card .inner-button{color:var(--navy);}
@media(max-width:700px){.article-opening{grid-template-columns:1fr;gap:28px;margin-bottom:45px;}.article-opening img{max-height:500px;}.article-related{padding:0 24px 65px;}}

.home .ourstory--scroll-ready .ourstory__photo{transition:transform .18s ease-out;}
@media(prefers-reduced-motion:reduce){.home .ourstory--scroll-ready .ourstory__photo{transition:none;}}

@media(min-width:901px){
 .home .ourstory__photo--left{left:1.5cqw;}
}

@media(min-width:901px){
 .home .ourstory__photo--right{left:auto;right:1.5cqw;}
}

/* Keep both lamps within the stage while their light aims vertically. */
@media(min-width:901px){
 .home .ourstory--scroll-ready .ourstory__photo--left{left:1.5%;right:auto;transform-origin:50% 60%;transform:scaleX(-1) rotate(var(--our-pointer-left,0deg));}
 .home .ourstory--scroll-ready .ourstory__photo--right{right:1.5%;left:auto;transform-origin:50% 60%;transform:rotate(var(--our-pointer-right,0deg));}
}

/* Lamps slide in from the edges before following the pointer. */
@media(min-width:901px) and (prefers-reduced-motion:no-preference){
 .home .ourstory--scroll-ready .ourstory__photo--left{
  transform:translateX(calc((1 - var(--our-lamps,0)) * -16vw)) scaleX(-1) rotate(var(--our-pointer-left,0deg));
 }
 .home .ourstory--scroll-ready .ourstory__photo--right{
  transform:translateX(calc((1 - var(--our-lamps,0)) * 16vw)) rotate(var(--our-pointer-right,0deg));
 }
}

/* Separate the entrance position from pointer rotation to avoid retargeting it. */
@media(min-width:901px) and (prefers-reduced-motion:no-preference){
 .home .ourstory--scroll-ready .ourstory__photo--left{
  translate:calc((1 - var(--our-lamps,0)) * -16vw) 0;
  transform:scaleX(-1) rotate(var(--our-pointer-left,0deg));
 }
 .home .ourstory--scroll-ready .ourstory__photo--right{
  translate:calc((1 - var(--our-lamps,0)) * 16vw) 0;
  transform:rotate(var(--our-pointer-right,0deg));
 }
}

/* ===== Language switcher (Polylang) — toggle style, docked beside the donate button ===== */
.site-lang-toggle{
  position:relative;
  display:flex;
  align-items:center;
  flex-shrink:0;
  padding:3px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.35);
}
.site-lang-toggle__thumb{
  position:absolute;
  top:3px; left:3px;
  width:calc(50% - 3px);
  height:calc(100% - 6px);
  border-radius:999px;
  background:var(--cyan);
  transition:transform .25s cubic-bezier(.4,0,.2,1);
}
.site-lang-toggle.pos-1 .site-lang-toggle__thumb{ transform:translateX(100%); }
.site-lang-toggle__opt{
  position:relative;
  z-index:1;
  flex:1 1 50%;
  text-align:center;
  padding:4px 6px;
  font:700 11px/1 var(--font-body);
  color:var(--white);
  opacity:.75;
  transition:opacity .15s, color .15s;
  white-space:nowrap;
}
.site-lang-toggle__opt:hover{ opacity:1; }
.site-lang-toggle__opt.is-current{ opacity:1; color:var(--navy); }

/* ===== Mobile header: compact bar + hamburger menu (up to 900px) ===== */
.nav-toggle{display:none;}
@media (max-width:900px){
  body .site-header{padding:14px 0;}
  /* logo dead-centre; donate with the language switch under it on the left; menu on the right */
  body .site-header__inner{grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:7px;padding-inline:16px;}
  body .site-donate{grid-column:1;grid-row:1;justify-self:start;}
  body .site-lang-toggle{grid-column:1;grid-row:2;justify-self:start;}
  body .site-logo{grid-column:2;grid-row:1 / span 2;align-self:center;}
  body .site-donate{font-size:15px;padding:7px 12px;gap:6px;}
  body .site-donate svg{width:14px;}
  body .site-logo{justify-self:center;}
  body .site-logo img{height:46px;width:auto;}
  .nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;margin:0;border:0;background:transparent;cursor:pointer;position:relative;z-index:3;grid-column:3;grid-row:1 / span 2;justify-self:end;align-self:center;}
  .nav-toggle span{display:block;height:2px;width:100%;background:#fff;border-radius:2px;transition:transform .25s ease,opacity .2s ease;}
  body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.nav-open .nav-toggle span:nth-child(2){opacity:0;}
  body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  body .site-nav{position:fixed;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:var(--navy-deep);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s;}
  body.nav-open .site-nav{opacity:1;visibility:visible;transition:opacity .25s ease;}
  body .site-nav ul{flex-direction:column;align-items:center;gap:26px;margin:0;padding:0;list-style:none;direction:rtl;}
  body .site-nav a{font-family:var(--font-display);font-size:30px;color:#fff;}
  body.nav-open{overflow:hidden;}

  /* Projects archive: let the teaser photo fill its whole box on phones. */
  .project-teaser__image{min-height:0;aspect-ratio:4/3;}
  .project-teaser__image img{position:absolute;inset:0;width:100%;height:100%;}
}

/* ===== Story section: HALEL stays pinned, the copy scrolls up over it ===== */
.story__wordmark-solid{display:none;}
@media (prefers-reduced-motion:no-preference){
  .story{--story-copy-in:0;}
  .story__wordmark-solid,
  .story__wordmark-fill{
    -webkit-mask:url('assets/images/story-wordmark-solid.png') center/contain no-repeat;
    mask:url('assets/images/story-wordmark-solid.png') center/contain no-repeat;
  }
}
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
  .story__wordmark{opacity:0;}
  .story__wordmark-solid{display:block;position:absolute;left:28.854cqw;top:3.1cqw;width:42.089cqw;height:15.854cqw;z-index:1;pointer-events:none;background:rgba(255,255,255,.065);}
  .story__accent,
  .story__heading,
  .story__text{
    opacity:var(--story-copy-in);
    transform:translateY(calc((1 - var(--story-copy)) * 26cqw));
    filter:none;
  }
  .story__heading{filter:drop-shadow(0 .35cqw 1.2cqw rgba(0,0,0,.34));}
}
@media (max-width:900px) and (prefers-reduced-motion:no-preference){
  .story__wordmark{opacity:0;}
  .story__wordmark-solid{display:block;position:absolute;left:7vw;top:14%;width:86vw;aspect-ratio:809/305;z-index:1;pointer-events:none;background:rgba(255,255,255,.065);}
  .story__accent{opacity:var(--story-copy-in);transform:translate(-50%,calc((1 - var(--story-copy)) * 55vh));filter:none;}
  .story__heading,
  .story__text{opacity:var(--story-copy-in);transform:translateY(calc((1 - var(--story-copy)) * 55vh));filter:none;}
}

/* ===== Mobile hero layout + no sideways overflow ===== */
.hero__bg-mobile{display:none;}
@media (max-width:900px){
  /* Phones: headline + text on top, the cinematic image below them. */
  .hero{min-height:0;display:block;}
  .hero__stage{display:flex;flex-direction:column;padding-top:78px;}
  .hero__content{order:1;max-width:none;margin:0 auto;padding:102px 22px 34px;gap:20px;}
  .hero__bg{order:2;position:relative;inset:auto;width:100%;aspect-ratio:1/1;flex:none;margin-top:-75px;}
  .hero__bg video,.hero__bg img{object-position:90% 50%;}
  .hero__bg::after{background:linear-gradient(180deg,var(--navy-deep) 0%,rgba(0,19,35,0) 22%,rgba(0,19,35,0) 78%,rgb(6,29,51) 100%);}
  /* frame spans text + image; the projector deliberately breaks out of it */
  .hero__frame{--inset-x:16px;top:110px;bottom:44px;height:auto;}
  .hero__scene-label{top:124px;bottom:auto;right:30px;}
  .hero__rec{bottom:58px;left:30px;}
  .hero__bg--mobile-image .hero__bg-mobile{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
  .hero__bg--mobile-image video{display:none;}
  /* the skewed filmstrip under the story section is 8% wider than the
     screen; clip it so phones can't scroll sideways into a white strip */
  .story{overflow-x:clip;}
  /* Home "our projects" cards: taller, with room above the stamp/frame corners */
  .project-card{min-height:620px;padding:90px 30px 78px;}
  .project-card__title{margin-bottom:18px;}
  .project-card__text{margin-bottom:28px;}
  /* Same diagonal cut + film strip as desktop: the navy ends on a slope
     (2.38deg, lower on the right) and the strip runs just under that edge. */
  .story::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:calc(4.16vw + 1px);background:#f7f9fa;clip-path:polygon(0 0,100% 100%,0 100%);z-index:5;pointer-events:none;}
  .story::after{left:0;right:auto;width:106%;bottom:auto;top:calc(100% - 4.16vw + 5px);height:14px;transform:rotate(2.38deg);transform-origin:0 0;background:repeating-linear-gradient(105deg,var(--cyan) 0 16px,transparent 16px 28px);z-index:6;animation-name:story-filmstrip-mobile;}
}
@keyframes story-filmstrip-mobile{from{background-position-x:0;}to{background-position-x:-28.99px;}}
/* Partners -> trustees on phones: same diagonal cut as desktop (navy wedge
   rising to the right) with the film strip running just above it. */
@media (max-width:900px){
  .partners::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:calc(4.72vw + 1px);background:var(--navy-deep);clip-path:polygon(100% 0,100% 100%,0 100%);z-index:1;pointer-events:none;}
  .partners::after{left:0;right:auto;inset-inline:auto;width:106%;bottom:6px;height:14px;transform:rotate(-2.7deg);transform-origin:0 100%;background:repeating-linear-gradient(105deg,var(--cyan) 0 16px,transparent 16px 28px);opacity:1;z-index:2;animation:story-filmstrip-mobile 3s linear infinite reverse;}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){.partners::after{animation:none;}}
@media (max-width:900px){
  /* more breathing room under the partner logos */
  .partners{padding-bottom:116px;}

  /* "Our story" -> closing scene: no spotlight on phones; the HALEL
     wordmark simply brightens as the section scrolls into view. */
  .ourstory__light,.ourstory__light--shared{display:none !important;}
  .cta--shared-light-ready .cta__wordmark-title{-webkit-mask-image:none;mask-image:none;opacity:calc(.1 + var(--cta-progress) * .9);}
  .cta--shared-light-ready .cta__wordmark-title::before{
    -webkit-mask:url('assets/images/story-wordmark-solid.png') center/contain no-repeat;
    mask:url('assets/images/story-wordmark-solid.png') center/contain no-repeat;
  }

  /* Footer, matched to desktop: light grey, logo without the dark box,
     the film reel bottom-right and the diagonal cyan strip. */
  .site-footer{position:relative;overflow:hidden;background:#f4f6f7;border-top:0;padding:34px 24px 96px;}
  .site-footer__stage{position:static;background:transparent;gap:18px;}
  .site-footer__legal{order:3;}
  .site-footer__logo{order:-1;background:transparent;padding:0;border-radius:0;}
  .site-footer__logo img{width:104px;filter:none;}
  .site-footer__photo{display:block;position:absolute;right:12px;bottom:14px;width:96px;height:80px;z-index:3;}
  .site-footer__photo img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 7px rgba(1,41,75,.32));}
  .site-footer::after{content:"";position:absolute;inset:auto;left:0;right:auto;width:106%;bottom:38px;height:14px;clip-path:none;transform:rotate(-2.7deg);transform-origin:0 100%;background:repeating-linear-gradient(105deg,var(--cyan) 0 16px,transparent 16px 28px);z-index:2;pointer-events:none;animation:story-filmstrip-mobile 3s linear infinite reverse;}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){.site-footer::after{animation:none;}}

/* ===== Inner-page banner strips on phones: same size + motion as the home page strips (angle unchanged) ===== */
@media (max-width:900px) and (prefers-reduced-motion:no-preference){
  .site-banner-filmstrip,
  .about-hero__filmstrip{height:14px;background:repeating-linear-gradient(105deg,var(--cyan) 0 16px,transparent 16px 28px);animation:story-filmstrip-mobile 3s linear infinite;}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  .site-banner-filmstrip,
  .about-hero__filmstrip{height:14px;background:repeating-linear-gradient(105deg,var(--cyan) 0 16px,transparent 16px 28px);}
}

/* About "where it all began" on phones: no decorative rule beside the kicker,
   heading aligned to the same right edge as the paragraphs below it. */
@media (max-width:900px){
  .hallel-about-page .about-manifesto__aside i{display:none;}
  .hallel-about-page .about-manifesto h2{align-self:stretch;text-align:right;}
}

/* Footer on phones: smaller logo, air above the social icons, nav always wraps inside the screen. */
@media (max-width:900px){
  .site-footer__logo img{width:76px;}
  .site-footer__center{width:100%;max-width:100%;display:flex;flex-direction:column;align-items:center;}
  .site-footer__nav{width:100%;flex-wrap:wrap;justify-content:center;gap:8px 16px;white-space:normal;}
  .site-footer__social{margin-top:14px;}
}

/* Partner logos a little smaller on phones. */
@media (max-width:900px){
  .partners__logo-img{height:44px;max-width:min(30vw,128px);}
}

/* Trustees on phones: an odd last card (the 5th) sits centred under the 2-column grid. */
@media (max-width:900px){
  .testimonial-cards > .testimonial-card:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 11px);}
}
