/* Nile Economic — cinematic scroll-driven build, LIGHT edition
   World: warm sandstone / papyrus ground, deep bronze ink, Nile gold accents.
   Languages: EN · AR (RTL) · FR */
:root{
  --ground:#fbf9f5;        /* near-white, barely warm */
  --ground-2:#f5f2ec;      /* faintest tint for banding */
  --panel:#eeeae2;         /* light stone panel */
  --ink:#23201c;           /* near-neutral dark */
  --ink-dim:#5b564e;       /* neutral-warm secondary */
  --gold:#9a7a34;          /* gold — rules, decoration */
  --gold-ink:#7c5f1e;      /* deeper gold — text on light (AA) */
  --gold-bright:#c69a57;   /* champagne, for use over film */
  --ivory:#f8f3e9;         /* type over film */
  --ivory-dim:#e2d6bf;
  --hairline:rgba(120,100,70,.22);
  --hairline-strong:rgba(120,100,70,.38);
  --serif:'Marcellus',serif;
  --serif-ar:'Amiri',serif;
  --sans:'Archivo',system-ui,sans-serif;
  --pad:clamp(1.25rem,5vw,6.5rem);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
body{
  background:var(--ground);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{max-width:100%;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;text-wrap:balance}
h2{font-size:clamp(1.8rem,4vw,3.4rem);letter-spacing:.02em}
h3{font-size:clamp(1.3rem,2.2vw,1.7rem);letter-spacing:.04em}
a{color:inherit}
.kicker{
  font-size:.7rem;letter-spacing:.38em;text-transform:uppercase;
  color:var(--gold-ink);margin-bottom:1.2rem;
}

/* Arabic typography */
/* Redefine the display face itself, so every element that reaches for
   var(--serif) — headings, the sector terms, kickers — picks up Amiri.
   The enumerated list below used to miss elements (.sector dt rendered in
   Marcellus on the Arabic page). */
html[lang="ar"]{--serif:var(--serif-ar)}
html[lang="ar"] body{font-family:var(--serif-ar),var(--sans);line-height:1.9}
html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3,
html[lang="ar"] .hero-title,html[lang="ar"] .mandate-line,
html[lang="ar"] .wordmark,html[lang="ar"] .marquee span{font-family:var(--serif-ar),serif}
html[lang="ar"] .kicker,html[lang="ar"] .site-nav a,html[lang="ar"] .field label,
html[lang="ar"] .btn-outline,html[lang="ar"] .btn-solid,html[lang="ar"] .journey-hud,
html[lang="ar"] .hero-kicker,html[lang="ar"] .hero-scrollcue,
html[lang="ar"] .leader-photo figcaption{letter-spacing:0;text-transform:none;font-size:.85rem}
html[lang="ar"] .hero-title{letter-spacing:0}

/* paper grain over everything (subtle on light) */
body::after{
  content:"";position:fixed;inset:-100%;z-index:200;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.022'/%3E%3C/svg%3E");
  opacity:.55;
  animation:grain 8s steps(10) infinite;
}
@keyframes grain{
  0%,100%{transform:translate(0,0)}10%{transform:translate(-5%,-10%)}
  30%{transform:translate(3%,-15%)}50%{transform:translate(12%,9%)}
  70%{transform:translate(9%,4%)}90%{transform:translate(-1%,7%)}
}

/* custom cursor */
.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;z-index:300;pointer-events:none;
  border-radius:50%;transform:translate(-50%,-50%);
}
.cursor-dot{width:6px;height:6px;background:var(--gold)}
.cursor-ring{
  width:34px;height:34px;border:1px solid rgba(140,115,70,.45);
  transition:scale .3s,border-color .3s;
}
body.cursor-hover .cursor-ring{scale:1.65;border-color:var(--gold-ink)}
@media (hover:none){.cursor-dot,.cursor-ring{display:none}}

/* ---------- header ---------- */
.site-head{
  position:fixed;inset:0 0 auto 0;z-index:100;
  display:flex;align-items:center;gap:2rem;
  padding:1.2rem var(--pad);
  transition:background .5s ease,color .5s ease,text-shadow .5s ease;
  color:var(--ivory);
  text-shadow:0 1px 10px rgba(14,20,24,.55);
}
.site-head.is-scrolled{
  background:rgba(251,249,245,.93);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hairline);color:var(--ink);text-shadow:none;
}
.wordmark{
  display:flex;align-items:center;gap:.7rem;
  text-decoration:none;color:currentColor;white-space:nowrap;
}
.wordmark-mark{height:2rem;width:auto;flex:0 0 auto;display:block}
.wordmark-text{display:flex;flex-direction:column;line-height:1.12}
.wordmark-text b{
  font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.14em;
}
.wordmark-text i{
  font-family:var(--sans);font-style:normal;font-weight:300;
  font-size:.62rem;letter-spacing:.2em;opacity:.72;
}
html[lang="ar"] .wordmark-text b,html[lang="ar"] .wordmark-text i{letter-spacing:.04em}
.site-nav{display:flex;gap:2.2rem;margin-inline-start:auto}
.site-nav a{
  font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;
  text-decoration:none;color:currentColor;opacity:.85;
  padding-bottom:.25rem;border-bottom:1px solid transparent;
  transition:opacity .25s,border-color .25s,color .25s;
}
.site-nav a:hover,.site-nav a:focus-visible{opacity:1;border-color:currentColor}
.site-nav .nav-cta{color:var(--ivory);opacity:1;font-weight:400}
.site-head.is-scrolled .site-nav .nav-cta{color:var(--gold-ink)}
.lang-switch{display:flex;align-items:center;gap:.35rem;font-size:.72rem;color:currentColor}
.lang-switch a{
  background:none;border:0;color:currentColor;font:inherit;opacity:.7;
  letter-spacing:.14em;cursor:pointer;padding:.2rem .1rem;text-decoration:none;
  transition:opacity .25s,color .25s;
}
.lang-switch a.is-active{opacity:1;color:var(--ivory);border-bottom:1px solid currentColor}
.site-head.is-scrolled .lang-switch a.is-active{color:var(--gold-ink)}
.lang-switch a:hover{opacity:1}
.lang-switch .sep{opacity:.4}
.menu-toggle{display:none}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;overflow:hidden;background:var(--ink)}
.hero video,.hero .hero-fallback{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.hero .hero-fallback{background:url('/assets/img/hero-cine.webp') center/cover}
/* the film fades up over its own poster frame — no hard swap on load */
.hero video{opacity:0;transition:opacity 1.4s ease}
.hero video.is-ready{opacity:1}
.hero-scrim{
  position:absolute;inset:0;
  background:
    /* a soft pool of shade behind the words only — the edges of the frame stay
       fully bright so the greens, the river and the sky read as daylight */
    radial-gradient(ellipse 72% 52% at 50% 47%,rgba(14,20,24,.50),rgba(14,20,24,.24) 52%,rgba(14,20,24,0) 76%),
    linear-gradient(rgba(14,20,24,.30),rgba(14,20,24,.02) 26%,rgba(14,20,24,0) 58%,rgba(251,249,245,.5) 88%,var(--ground) 100%);
}
.hero-inner{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:0 var(--pad);
}
.hero-title{
  font-family:var(--serif);
  font-size:clamp(3rem,11vw,10rem);
  letter-spacing:.08em;line-height:.95;color:var(--ivory);
  display:flex;flex-wrap:wrap;justify-content:center;gap:0 .06em;
  text-shadow:0 2px 8px rgba(18,22,24,.42),0 6px 44px rgba(18,22,24,.34);
}
.hero-title .ch{display:inline-block;opacity:0;transform:translateY(60%) rotate(4deg);filter:blur(6px);
  animation:chIn 1.1s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(.45s + var(--i)*.055s)}
.hero-title .word-gap{width:.45em}
.hero-title .word{display:inline-flex;white-space:nowrap}
@keyframes chIn{to{opacity:1;transform:none;filter:blur(0)}}
.hero-title .gold{color:var(--gold-bright)}
.hero-kicker{
  font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--ivory);
  margin-bottom:2rem;opacity:0;animation:fadeUp 1s .25s ease-out forwards;
  text-shadow:0 1px 6px rgba(18,22,24,.6),0 2px 22px rgba(18,22,24,.4);
}
.hero-sub{
  max-width:36rem;margin:2.2rem auto 2.8rem;color:var(--ivory);
  font-size:clamp(.95rem,1.3vw,1.1rem);
  text-shadow:0 1px 6px rgba(18,22,24,.65),0 2px 24px rgba(18,22,24,.45);
  opacity:0;animation:fadeUp 1.1s 1.5s ease-out forwards;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.btn-outline,.btn-solid{
  display:inline-block;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
  padding:1.05rem 2.6rem;text-decoration:none;cursor:pointer;position:relative;overflow:hidden;
  transition:color .4s;
}
.btn-outline{color:var(--ivory);border:1px solid rgba(248,243,233,.75);background:rgba(28,26,23,.24);
  backdrop-filter:blur(2px);
  opacity:0;animation:fadeUp 1.1s 1.8s ease-out forwards}
.btn-outline::before,.btn-solid::before{
  content:"";position:absolute;inset:0;background:var(--ivory);
  transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.16,1,.3,1);z-index:-1;
}
.btn-outline:hover,.btn-outline:focus-visible{color:var(--ink)}
.btn-outline:hover::before,.btn-outline:focus-visible::before{transform:scaleX(1)}
.hero-scrollcue{
  position:absolute;bottom:2rem;left:0;right:0;margin:0 auto;
  width:max-content;max-width:90vw;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
  font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-dim);
  opacity:0;animation:fadeUp 1s 2.4s ease-out forwards;
}
.hero-scrollcue i{display:block;width:1px;height:3.4rem;background:linear-gradient(var(--gold),transparent);
  animation:drip 2.4s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- marquee ---------- */
.marquee{
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  overflow:hidden;padding:1.1rem 0;background:var(--ground-2);
}
.marquee-track{display:flex;gap:4rem;width:max-content;animation:marquee 36s linear infinite}
.marquee span{
  font-family:var(--serif);font-size:.95rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--ink-dim);white-space:nowrap;
}
.marquee span b{color:var(--gold-ink);font-weight:400}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- journey (scroll-scrubbed film) ---------- */
.journey{position:relative}
.journey-sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--ink)}
.journey-sticky canvas,.journey-poster{
  position:absolute;inset:0;width:100%;height:100%;
}
.journey-poster{background:url('/assets/img/journey-poster.webp') center/cover}
.journey-sticky canvas{object-fit:cover;opacity:0;transition:opacity .6s ease}
.journey-sticky canvas.is-ready{opacity:1}
.journey-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(14,20,24,.42) 0%,rgba(14,20,24,.10) 12%,rgba(14,20,24,0) 22%),
    linear-gradient(90deg,rgba(20,24,26,.22),rgba(20,24,26,.02) 55%,rgba(20,24,26,.10));
}
html[dir="rtl"] .journey-scrim{
  background:
    linear-gradient(to top,rgba(14,20,24,.42) 0%,rgba(14,20,24,.10) 12%,rgba(14,20,24,0) 22%),
    linear-gradient(-90deg,rgba(20,24,26,.22),rgba(20,24,26,.02) 55%,rgba(20,24,26,.10));
}
.journey-hud{
  position:absolute;inset-inline-start:var(--pad);bottom:2.4rem;
  display:flex;align-items:center;gap:1.2rem;
  font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ivory);
  text-shadow:0 1px 6px rgba(18,22,24,.7);
}
.journey-hud .hud-bar{width:9rem;height:1px;background:rgba(248,243,233,.45);position:relative}
.journey-hud .hud-bar i{position:absolute;inset:0;background:var(--ivory);transform:scaleX(0);transform-origin:left}
html[dir="rtl"] .journey-hud .hud-bar i{transform-origin:right}
.journey-hud .hud-place{color:var(--ivory);min-width:9ch}
.journey-step{
  position:absolute;inset:0;display:flex;align-items:center;
  padding:0 var(--pad);opacity:0;transform:translateY(30px);
  transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1);
  pointer-events:none;
}
.journey-step.is-on{opacity:1;transform:none}
.journey-card{
  max-width:36rem;
  background:rgba(252,251,248,.97);
  backdrop-filter:blur(14px);
  border:1px solid rgba(120,100,70,.30);
  padding:clamp(1.8rem,3.5vw,2.8rem);
  box-shadow:0 30px 80px -30px rgba(35,32,28,.45);
}
.journey-card .no{
  font-family:var(--serif);color:var(--gold-ink);font-size:.95rem;letter-spacing:.34em;
  display:block;margin-bottom:.9rem;
}
.journey-card h3{font-size:clamp(1.7rem,3.2vw,2.6rem);margin-bottom:.9rem;color:var(--ink)}
.journey-card p{color:var(--ink-dim);max-width:46ch}
.journey-step:nth-child(even) .journey-card{margin-inline-start:auto}

/* ---------- mandate (kinetic) ---------- */
.mandate{padding:clamp(6rem,14vw,11rem) var(--pad);position:relative;background:var(--ground)}
.mandate-inner{max-width:62rem;margin:0 auto}
.mandate-line{
  font-family:var(--serif);
  font-size:clamp(1.6rem,3.6vw,3.2rem);line-height:1.25;
  color:rgba(35,32,28,.24);
}
.mandate-line .w{transition:color .35s ease}
.mandate-line .w.lit{color:var(--ink)}
.mandate-line .w.lit.em{color:var(--gold-ink)}
.mandate-body{
  margin-top:3.5rem;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);
  color:var(--ink-dim);max-width:62rem;
}

/* ---------- UN goal badges (mandate) ---------- */
.sdg{margin-top:clamp(3rem,6vw,4.5rem);padding-top:clamp(2rem,4vw,2.8rem);border-top:1px solid var(--hairline)}
.sdg-label{
  font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-ink);margin-bottom:1.4rem;
}
.sdg-row{
  list-style:none;display:flex;flex-wrap:wrap;gap:clamp(.7rem,1.6vw,1.2rem);
  align-items:flex-start;
}
.sdg-row img{
  height:clamp(5rem,8.5vw,6.6rem);width:auto;display:block;
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.sdg-row li:hover img{transform:translateY(-4px)}
html[lang="ar"] .sdg-label{letter-spacing:.04em;text-transform:none;font-size:.85rem}

/* ---------- sector photographs ---------- */
.sector-figs{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2.4rem);
  max-width:75rem;margin:clamp(3rem,6vw,4.5rem) auto 0;
}
.sector-fig{margin:0}
.sector-fig img{
  width:100%;aspect-ratio:3/2;object-fit:cover;
  border:1px solid var(--hairline);
}
.sector-fig figcaption{
  margin-top:.9rem;font-size:.74rem;letter-spacing:.05em;color:var(--ink-dim);
}

/* ---------- sectors ----------
   An editorial definition list: sector name left, description right, separated
   by hairlines. Deliberately not cards — the page separates by rule and space. */
.sectors{
  padding:clamp(5rem,12vw,9rem) var(--pad);
  border-top:1px solid var(--hairline);background:var(--ground);
}
.sectors-head{max-width:60rem;margin:0 auto clamp(3rem,6vw,4.5rem)}
.sectors-head h2{max-width:30ch}
.sectors-lead{
  margin-top:1.6rem;color:var(--ink-dim);max-width:62ch;
  font-size:clamp(1rem,1.3vw,1.12rem);
}
.sector-list{max-width:75rem;margin:0 auto}
.sector{
  display:grid;grid-template-columns:minmax(12rem,22rem) 1fr;
  gap:clamp(1.5rem,5vw,4.5rem);
  padding:clamp(1.8rem,3.5vw,2.6rem) 0;
  border-top:1px solid var(--hairline);
  align-items:baseline;
}
.sector:last-child{border-bottom:1px solid var(--hairline)}
.sector dt{
  font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,2.1rem);
  letter-spacing:.02em;color:var(--ink);line-height:1.15;
}
.sector dd{color:var(--ink-dim);max-width:56ch;margin:0}
.sectors-close{
  max-width:64rem;margin:clamp(3rem,6vw,4.5rem) auto 0;
  padding-inline-start:1.6rem;position:relative;
  color:var(--ink-dim);font-size:clamp(1rem,1.3vw,1.1rem);
}
.sectors-close::before{
  content:"";position:absolute;inset-inline-start:0;top:.2em;bottom:.2em;
  width:1px;background:var(--gold);
}

/* ---------- international reach (inside partnerships) ---------- */
.reach{
  max-width:75rem;margin:clamp(4rem,9vw,7rem) auto 0;
  padding-top:clamp(3rem,6vw,4.5rem);
  border-top:1px solid var(--hairline);text-align:start;
}
.reach-title{
  font-family:var(--serif);font-size:clamp(1.7rem,3.2vw,2.6rem);
  letter-spacing:.02em;color:var(--ink);
}
.reach-lead{margin-top:1.2rem;color:var(--ink-dim);max-width:52ch}
.reach-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(2rem,4vw,3.5rem);margin-top:clamp(2.5rem,5vw,3.5rem);
}
.reach-group h4{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.1rem,1.6vw,1.3rem);letter-spacing:.04em;color:var(--ink);
}
.reach-places{
  margin:.8rem 0 1rem;padding-bottom:.9rem;
  min-height:3.6rem;
  border-bottom:1px solid var(--hairline);
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-ink);line-height:1.9;
}
.reach-group p:last-child{color:var(--ink-dim);font-size:.95rem}
html[lang="ar"] .reach-places{letter-spacing:0;text-transform:none;font-size:.9rem}

/* ---------- funding framework ----------
   A numbered sequence: here the order carries information (the client ranked
   these institutions), which is the one case the craft floor allows numbers. */
.funding{
  padding:clamp(5rem,12vw,9rem) var(--pad);
  border-top:1px solid var(--hairline);background:var(--ground-2);
}
.funding-head{max-width:62rem;margin:0 auto clamp(3rem,6vw,4.5rem)}
.funding-head h2{max-width:24ch}
.funding-lead{margin-top:1.6rem;color:var(--ink-dim);max-width:62ch;font-size:clamp(1rem,1.3vw,1.12rem)}
.fund-list{list-style:none;max-width:75rem;margin:0 auto;counter-reset:none}
.fund{
  display:grid;grid-template-columns:4.5rem 1fr;gap:clamp(1rem,3vw,2.5rem);
  padding:clamp(1.8rem,3.5vw,2.6rem) 0;border-top:1px solid var(--hairline);
}
.fund:last-child{border-bottom:1px solid var(--hairline)}
.fund-no{
  font-family:var(--serif);font-size:1rem;letter-spacing:.2em;
  color:var(--gold-ink);padding-top:.35em;
}
.fund h3{font-size:clamp(1.25rem,2.2vw,1.7rem);color:var(--ink);margin-bottom:.6rem}
.fund p{color:var(--ink-dim);max-width:60ch}
.funding-close{
  max-width:64rem;margin:clamp(3rem,6vw,4.5rem) auto 0;
  padding-inline-start:1.6rem;position:relative;
  color:var(--ink-dim);font-size:clamp(1rem,1.3vw,1.1rem);
}
.funding-close::before{
  content:"";position:absolute;inset-inline-start:0;top:.2em;bottom:.2em;
  width:1px;background:var(--gold);
}

/* ---------- the river ---------- */
.nile{padding:clamp(5rem,12vw,9rem) var(--pad);border-top:1px solid var(--hairline);background:var(--ground)}
.nile-inner{max-width:75rem;margin:0 auto}
.nile-inner h2{max-width:22ch;font-size:clamp(2rem,4.4vw,3.6rem)}
.nile-body{
  margin-top:clamp(2.5rem,5vw,3.5rem);
  columns:2;column-gap:clamp(2.5rem,6vw,5rem);
  color:var(--ink-dim);max-width:70rem;
}
.nile-body p{margin-bottom:1.3rem;break-inside:avoid}
.nile-body p:first-child{
  font-size:clamp(1.15rem,1.7vw,1.4rem);color:var(--ink);
  font-family:var(--serif);line-height:1.45;
}
.basin{margin-top:clamp(3rem,6vw,4.5rem);padding-top:clamp(2rem,4vw,2.8rem);border-top:1px solid var(--hairline)}
.basin-label{
  font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-ink);margin-bottom:1.6rem;
}
/* an even grid rather than a ragged row: eleven states read as a set */
.basin-row{
  list-style:none;
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  gap:clamp(1.4rem,3vw,2.2rem) clamp(1rem,2.2vw,1.8rem);
}
.basin-row li{
  display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center;
}
.basin-row img{
  width:100%;max-width:4.4rem;height:auto;display:block;
  border:1px solid var(--hairline);
  transition:transform .35s cubic-bezier(.16,1,.3,1);
}
.basin-row li:hover img{transform:translateY(-3px)}
.basin-row span{
  font-size:.78rem;letter-spacing:.04em;color:var(--ink-dim);
  line-height:1.3;
}
html[lang="ar"] .basin-label{letter-spacing:.04em;text-transform:none;font-size:.85rem}

/* ---------- leadership ---------- */
.leader{padding:clamp(5rem,12vw,9rem) var(--pad);border-top:1px solid var(--hairline);position:relative;background:var(--ground-2)}
.leader-grid{
  display:grid;grid-template-columns:minmax(16rem,25rem) 1fr;
  gap:clamp(2.5rem,6vw,6.5rem);max-width:75rem;margin:0 auto;align-items:start;
}
.leader-photo{position:relative;isolation:isolate}
.leader-photo img{border:1px solid var(--hairline-strong);position:relative;z-index:1;background:#fff}
.leader-photo::after{
  content:"";position:absolute;inset:1.2rem -1.2rem auto 1.2rem;height:100%;
  border:1px solid var(--hairline-strong);z-index:0;pointer-events:none;
}
html[dir="rtl"] .leader-photo::after{inset:1.2rem 1.2rem auto -1.2rem}
.leader-photo figcaption{
  margin-top:1.6rem;font-size:.7rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold-ink);
}
.leader-text h2{font-size:clamp(2.2rem,4.5vw,4rem)}
.leader-role{color:var(--gold-ink);font-size:.85rem;letter-spacing:.06em;margin:1rem 0 1.6rem}
.leader-text p+p{margin-top:1.1rem}
.leader-text>p:not(.leader-role):not(.kicker){color:var(--ink-dim);max-width:60ch}
.leader-facts{list-style:none;margin-top:2rem;display:grid;gap:.8rem}
.leader-facts li{padding-inline-start:1.5rem;position:relative;color:var(--ink-dim);font-size:.92rem}
.leader-facts li::before{content:"";position:absolute;inset-inline-start:0;top:.72em;width:.65rem;height:1px;background:var(--gold)}

/* ---------- alliances ---------- */
.alliances{
  text-align:center;padding:clamp(5rem,11vw,8.5rem) var(--pad);
  border-top:1px solid var(--hairline);background:var(--ground);
}
.alliances h2{max-width:26ch;margin:0 auto}
.alliance-row{
  display:grid;grid-template-columns:repeat(2,minmax(0,26rem));justify-content:center;
  gap:clamp(2rem,5vw,5rem);margin-top:clamp(2.5rem,5vw,4rem);
}
.alliance{padding:2.4rem 2rem;border:1px solid var(--hairline);position:relative;transition:border-color .4s,background .4s;background:rgba(255,255,255,.35)}
.alliance:hover{border-color:var(--gold);background:rgba(255,255,255,.6)}
.alliance::before{
  content:"";position:absolute;top:-1px;left:50%;transform:translateX(-50%);
  width:3rem;height:1px;background:var(--gold);
}
.alliance h3{color:var(--gold-ink);letter-spacing:.2em;margin-bottom:.9rem}
.alliance p{color:var(--ink-dim);font-size:.95rem}

/* ---------- contact ---------- */
.contact{position:relative;padding:clamp(5rem,12vw,9rem) var(--pad);overflow:hidden;background:var(--panel)}
.contact-bg{display:none}
.contact::before{content:"";position:absolute;inset:0;background:var(--panel)}
.contact-grid{
  position:relative;display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(2.5rem,6vw,6rem);
  max-width:75rem;margin:0 auto;
}
.contact-lead h2{font-size:clamp(2.2rem,4.5vw,3.8rem)}
.contact-lead p:not(.kicker){color:var(--ink-dim);max-width:44ch;margin-top:1.4rem}
.contact-line{color:var(--gold-ink)!important;font-size:.9rem;letter-spacing:.08em}
.contact-form{display:grid;gap:1.6rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn-solid[disabled]{opacity:.55;cursor:progress}
.btn-solid[disabled]:hover::before{transform:scaleX(0)}
.field{display:grid;gap:.45rem}
.field label{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-ink)}
.field input,.field textarea{
  background:rgba(255,255,255,.62);border:0;border-bottom:1px solid var(--hairline-strong);
  color:var(--ink);font:inherit;padding:.6rem .7rem;border-radius:0;
  transition:border-color .3s,background .3s;
}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--gold);background:rgba(255,255,255,.75)}
.field input:user-invalid,.field textarea:user-invalid{border-bottom-color:#b1502a}
.form-status{min-height:1.2rem;font-size:.85rem;color:var(--gold)}
.form-status.is-error{color:#a8451f}
.btn-solid{background:var(--ink);color:var(--ground);border:1px solid var(--ink);justify-self:start;font-weight:500}
.btn-solid::before{background:var(--ground)}
.btn-solid:hover{color:var(--ink)}
.btn-solid:hover::before{transform:scaleX(1)}

/* ---------- footer ---------- */
.site-foot{
  border-top:1px solid var(--hairline);background:var(--ground);
  padding:2.4rem var(--pad);
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
  color:var(--ink-dim);font-size:.8rem;letter-spacing:.05em;
}
.site-foot .wordmark{color:var(--ink)}
.site-foot .wordmark-text i{opacity:.62}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.reveal.is-visible{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .hero-title .ch,.hero-kicker,.hero-sub,.btn-outline,.hero-scrollcue{animation:none;opacity:1;transform:none;filter:none}
  .reveal{opacity:1;transform:none;transition:none}
  .marquee-track{animation:none}
  body::after{animation:none}
  .journey-step{transition:none}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .leader-grid,.contact-grid,.mandate-body{grid-template-columns:1fr}
  .sector{grid-template-columns:1fr;gap:.7rem}
  .sector-figs{grid-template-columns:1fr}
  .nile-body{columns:1}
  .basin-row{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fund{grid-template-columns:1fr;gap:.5rem}
  .fund-no{padding-top:0}
  .reach-grid{grid-template-columns:1fr;gap:2.4rem}
  .alliance-row{grid-template-columns:1fr}
  .leader-photo{max-width:22rem}
  .journey-step:nth-child(even) .journey-card{margin-inline-start:0}
  .contact-bg{background-attachment:scroll}
  .journey-scrim,html[dir="rtl"] .journey-scrim{background:linear-gradient(rgba(20,24,26,.16),rgba(20,24,26,.30))}
}
@media (max-width:760px){
  .site-nav{
    display:none;position:fixed;inset:0;background:var(--ground);
    flex-direction:column;align-items:center;justify-content:center;gap:2.4rem;color:var(--ink);
  }
  .site-nav.is-open{display:flex}
  .site-nav a{font-size:.95rem;opacity:1}
  .site-nav .nav-cta{color:var(--gold-ink)}
  .menu-toggle{
    display:block;margin-inline-start:auto;background:none;border:0;cursor:pointer;
    width:2rem;height:2rem;position:relative;z-index:110;
  }
  .menu-toggle span,.menu-toggle::before,.menu-toggle::after{
    content:"";position:absolute;left:.2rem;right:.2rem;height:1px;background:currentColor;
    transition:transform .3s,opacity .3s;
  }
  .menu-toggle::before{top:.55rem}
  .menu-toggle span{top:1rem}
  .menu-toggle::after{top:1.45rem}
  .menu-toggle.is-open{color:var(--ink)}
  .menu-toggle.is-open::before{transform:translateY(.45rem) rotate(45deg)}
  .menu-toggle.is-open span{opacity:0}
  .menu-toggle.is-open::after{transform:translateY(-.45rem) rotate(-45deg)}
  .lang-switch{margin-inline-start:auto;font-size:.66rem;gap:.25rem}
  .site-head{gap:.75rem;padding-inline:1.1rem}
  .wordmark{gap:.5rem}
  .wordmark-mark{height:1.6rem}
  .wordmark-text b{font-size:.62rem;letter-spacing:.1em}
  .wordmark-text i{font-size:.52rem;letter-spacing:.14em}
  .menu-toggle{margin-inline-start:.35rem;flex:0 0 auto}
  .journey-card{background:rgba(252,251,248,.97)}
  .basin-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem .9rem}
  .hero-title{font-size:clamp(2.6rem,15vw,4.4rem)}
  .hero-kicker{letter-spacing:.22em;font-size:.6rem;max-width:22rem;margin-bottom:1.4rem}
  .hero-sub{margin:1.6rem auto 2.2rem}
}
