:root{
  --navy:#0A2158;
  --navy-deep:#071640;
  --maroon:#9C1830;
  --maroon-deep:#6E1021;
  --paper:#FBF7EF;
  --paper-dim:#F3EDE0;
  --ink:#1B1B1E;
  --ink-soft:#514E48;
  --line:#E1D8C3;
  --line-strong:#C9BC9E;
  --max:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Rubik',system-ui,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Rubik',sans-serif;
  font-weight:600;
  line-height:1.08;
  margin:0;
  color:var(--navy-deep);
  letter-spacing:-0.01em;
}
p{margin:0;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
::selection{background:var(--maroon);color:#fff;}
:focus-visible{outline:3px solid var(--maroon);outline-offset:3px;}

/* ---------- eyebrow / dash motif, taken directly from the ELO wordmark rule ---------- */
.eyebrow{
  display:flex;align-items:center;gap:12px;
  font-family:'Rubik',sans-serif;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--maroon-deep);
  margin-bottom:18px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--navy);}
.eyebrow::after{content:"";flex:0 0 26px;height:2px;background:var(--maroon);}
.eyebrow.center{justify-content:center;}
.eyebrow.light{color:#E9D9CE;}
.eyebrow.light::before{background:#C9D3E8;}
.eyebrow.light::after{background:#E0A6AE;}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,247,239,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  box-shadow:0 0 0 rgba(7,22,64,0);
  transition:box-shadow .3s ease;
}
header.scrolled{box-shadow:0 8px 24px rgba(7,22,64,.09);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;max-width:var(--max);margin:0 auto;}
.nav > nav{display:contents;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.brand img{height:40px;width:auto;}
.brand-text{font-family:'Rubik',sans-serif;font-size:13px;letter-spacing:.08em;color:var(--navy-deep);line-height:1.3;}
.brand-text b{display:block;font-size:14px;color:var(--maroon-deep);}
nav ul{list-style:none;display:flex;gap:30px;margin:0;padding:0;}
nav a.navlink{font-size:14px;font-weight:500;text-decoration:none;color:var(--ink-soft);position:relative;padding:4px 0;}
nav a.navlink:hover{color:var(--navy-deep);}
nav a.navlink.active{color:var(--navy-deep);font-weight:600;}
nav a.navlink.active::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--maroon);}
.nav-cta{
  font-family:'Rubik',sans-serif;font-size:12.5px;letter-spacing:.06em;
  background:var(--maroon);color:#fff;text-decoration:none;padding:10px 18px;border-radius:2px;
  border:1px solid var(--maroon);transition:background .2s,color .2s,transform .2s;
}
.nav-cta:hover{background:var(--maroon-deep);transform:translateY(-1px);}
.menu-btn{display:none;background:none;border:none;font-size:26px;color:var(--navy-deep);cursor:pointer;transition:transform .2s;}
.menu-btn[aria-expanded="true"]{transform:rotate(90deg);}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  background:var(--navy-deep);
  color:#F4EFE4;
  padding:96px 0 110px;
}
.hero-inner{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
.hero-inner > div:first-child > *{opacity:0;animation:fadeUp .8s cubic-bezier(.2,.7,.2,1) forwards;}
.hero-inner > div:first-child > .eyebrow{animation-delay:.05s;}
.hero-inner > div:first-child > h1{animation-delay:.16s;}
.hero-inner > div:first-child > .lede{animation-delay:.3s;}
.hero-inner > div:first-child > .meta-row{animation-delay:.44s;}
.hero-inner > div:first-child > .hero-ctas{animation-delay:.56s;}
.hero-plate{opacity:0;animation:fadeUp .9s cubic-bezier(.2,.7,.2,1) .35s forwards;}
.hero h1{
  font-size:clamp(38px,5vw,60px);
  color:#fff;font-weight:600;
}
.hero h1 em{font-style:italic;color:#F0C4CB;font-weight:450;}
.hero .lede{margin-top:22px;font-size:18px;line-height:1.65;color:#D9DEEC;max-width:52ch;}
.hero .meta-row{
  display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px;
  font-family:'Rubik',sans-serif;font-size:12.5px;letter-spacing:.05em;color:#B9C2DC;
}
.hero .meta-row span{display:flex;align-items:center;gap:8px;}
.hero .meta-row span::before{content:"";width:6px;height:6px;background:var(--maroon);border-radius:50%;}
.hero-ctas{display:flex;gap:14px;margin-top:38px;flex-wrap:wrap;}
.btn{
  font-family:'Rubik',sans-serif;font-size:13px;letter-spacing:.05em;text-decoration:none;
  padding:14px 24px;border-radius:2px;display:inline-flex;align-items:center;gap:8px;transition:all .2s;
}
.btn-primary{background:var(--maroon);color:#fff;border:1px solid var(--maroon);}
.btn-primary:hover{background:#B32038;border-color:#B32038;transform:translateY(-2px);box-shadow:0 10px 20px rgba(156,24,48,.25);}
.btn-ghost{border:1px solid rgba(255,255,255,.35);color:#fff;}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);transform:translateY(-2px);}
.btn-dark{border:1px solid var(--navy);color:var(--navy-deep);}
.btn-dark:hover{background:var(--navy);color:#fff;transform:translateY(-2px);}

.hero-plate{
  position:relative;display:flex;align-items:center;justify-content:center;
}
.hero-plate .plate-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.18);
  border-radius:4px;padding:34px 30px;backdrop-filter:blur(2px);
}
.hero-plate img{width:100%;max-width:300px;margin:0 auto 22px;}
.hero-plate .plate-photo{max-width:none;aspect-ratio:4/5;object-fit:cover;object-position:top center;border-radius:3px;}
.hero-plate blockquote{
  font-family:'Rubik',sans-serif;font-style:italic;font-weight:450;font-size:17px;
  color:#EDE7DA;text-align:center;line-height:1.5;margin:0;
}
.hero-plate cite{
  display:block;text-align:center;margin-top:14px;font-style:normal;
  font-family:'Rubik',sans-serif;font-size:11px;letter-spacing:.1em;color:#A9B4D2;text-transform:uppercase;
}

/* ---------- generic section scaffolding ---------- */
section{padding:104px 0;}
section.tight{padding:80px 0;}
.section-head{max-width:680px;margin-bottom:56px;}
.section-head h1,.section-head h2{font-size:clamp(28px,3.6vw,42px);}
.section-head p{margin-top:16px;color:var(--ink-soft);font-size:17px;line-height:1.65;}
.bg-dim{background:var(--paper-dim);}
.bg-navy{background:var(--navy-deep);color:#EDE7DA;}
.bg-navy h2,.bg-navy h3,.bg-navy h4{color:#fff;}
.rule{height:1px;background:var(--line);border:none;margin:0;}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:start;}
.about-copy p{color:var(--ink-soft);margin-bottom:18px;font-size:16.5px;}
.about-copy p:last-child{margin-bottom:0;}
.about-copy strong{color:var(--navy-deep);}
.problem-card{
  background:var(--navy-deep);color:#EDE7DA;padding:34px 30px;border-radius:4px;
  border-left:4px solid var(--maroon);
}
.problem-card h4{color:#F0C4CB;font-family:'Rubik',sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;margin-bottom:16px;}
.problem-card p{font-family:'Rubik',sans-serif;font-size:19px;line-height:1.55;font-weight:450;}
.problem-card p+p{margin-top:16px;font-size:15.5px;font-family:'Rubik',sans-serif;color:#C7CBDD;font-weight:400;}

/* ---------- vision / mission ---------- */
.vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line-strong);border-radius:4px;overflow:hidden;}
.vm-cell{padding:48px 44px;}
.vm-cell:first-child{border-right:1px solid var(--line-strong);background:var(--paper);}
.vm-cell:last-child{background:var(--paper-dim);}
.vm-label{font-family:'Rubik',sans-serif;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--maroon-deep);margin-bottom:18px;}
.vm-cell p{font-family:'Rubik',sans-serif;font-size:22px;line-height:1.5;color:var(--navy-deep);font-weight:450;}
.guiding{
  text-align:center;padding:64px 0 8px;font-family:'Rubik',sans-serif;font-style:italic;
  font-size:clamp(20px,2.6vw,28px);color:var(--navy-deep);font-weight:450;
}
.guiding span{color:var(--maroon);}

.brand-mark-wrap{text-align:center;padding-top:56px;}
.brand-mark{
  width:min(220px,60%);margin:0 auto 24px;background:#fff;padding:20px 26px;border-radius:8px;
  box-shadow:0 1px 2px rgba(7,22,64,.06),0 16px 32px -14px rgba(7,22,64,.2);
}
.slogan{
  font-family:'Rubik',sans-serif;font-weight:700;letter-spacing:-0.01em;
  font-size:clamp(30px,4.4vw,48px);color:var(--navy-deep);
}

/* ---------- model / chain ---------- */
.chain{display:flex;align-items:stretch;gap:0;margin-top:8px;flex-wrap:wrap;}
.chain-node{
  flex:1 1 180px;position:relative;padding:28px 20px;text-align:center;
  background:var(--paper);border:1px solid var(--line-strong);
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
}
.chain-node:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(7,22,64,.08);background:#fff;z-index:1;}
.chain-node:not(:first-child){border-left:none;}
.chain-node .n{
  font-family:'Rubik',sans-serif;font-size:11px;color:#fff;
  width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;background:var(--navy);
}
.chain-node:nth-child(odd) .n{background:var(--maroon);}
.chain-node h4{font-size:16.5px;font-weight:600;color:var(--navy-deep);}
.chain-arrow{
  display:flex;align-items:center;justify-content:center;width:34px;color:var(--line-strong);
  font-size:20px;flex:0 0 auto;
}
@media (max-width:820px){
  .chain{flex-direction:column;}
  .chain-node{border-left:1px solid var(--line-strong)!important;border-top:none;}
  .chain-node:first-child{border-top:1px solid var(--line-strong);}
  .chain-arrow{transform:rotate(90deg);margin:-2px auto;}
}
.model-note{
  margin-top:36px;padding:22px 26px;border-left:3px solid var(--navy);background:var(--paper-dim);
  font-size:15px;color:var(--ink-soft);border-radius:0 3px 3px 0;
}

/* ---------- programmes ---------- */
.prog-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line-strong);}
.prog{border-bottom:1px solid var(--line-strong);padding:38px 0;transition:padding-left .3s ease;}
.prog-head{display:flex;gap:26px;align-items:baseline;cursor:pointer;list-style:none;}
.prog-head::-webkit-details-marker{display:none;}
.prog-num{font-family:'Rubik',sans-serif;font-size:14px;color:var(--maroon);flex:0 0 auto;padding-top:4px;transition:transform .3s ease;}
.prog-titles{flex:1;}
.prog-titles h3{font-size:clamp(21px,2.4vw,27px);color:var(--navy-deep);transition:color .2s ease;}
.prog-titles .prog-tag{font-family:'Rubik',sans-serif;font-size:11.5px;letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase;margin-top:6px;}
.prog-toggle{flex:0 0 auto;width:30px;height:30px;border:1px solid var(--line-strong);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--navy-deep);transition:transform .25s,background .25s,color .25s,border-color .25s;}
.prog:hover .prog-toggle{border-color:var(--maroon);color:var(--maroon);}
.prog:hover .prog-titles h3{color:var(--maroon-deep);}
.prog:hover .prog-num{transform:translateX(2px);}
details[open] .prog-toggle{transform:rotate(45deg);background:var(--maroon);color:#fff;border-color:var(--maroon);}
.prog-body{padding:26px 0 4px 0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:34px;overflow:hidden;transition:max-height .45s cubic-bezier(.2,.7,.2,1);}
.prog-body h5{font-family:'Rubik',sans-serif;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--maroon-deep);margin-bottom:12px;}
.prog-body p,.prog-body li{font-size:15px;color:var(--ink-soft);line-height:1.6;}
.prog-body ul{margin:0;padding-left:18px;}
.prog-body li{margin-bottom:6px;}
.prog-body .impact-tags{display:flex;flex-wrap:wrap;gap:8px;}
.impact-tags span{
  font-size:12.5px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:2px;color:var(--navy-deep);
  font-family:'Rubik',sans-serif;background:var(--paper-dim);
}
.vision-line{margin-top:18px;font-family:'Rubik',sans-serif;font-style:italic;color:var(--navy-deep);font-size:15.5px;padding-top:14px;border-top:1px dashed var(--line-strong);}
@media (max-width:860px){.prog-body{grid-template-columns:1fr;gap:22px;}}

.note-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px;}
@media (max-width:820px){.note-grid{grid-template-columns:1fr;}}
.boy-note{
  margin:0;padding:30px 34px;background:var(--navy-deep);color:#F0EAD9;border-radius:4px;
  display:flex;gap:20px;align-items:flex-start;
}
.boy-note .mark{font-family:'Rubik',sans-serif;font-size:36px;color:var(--maroon);line-height:1;}
.boy-note p{font-family:'Rubik',sans-serif;font-style:italic;font-size:17.5px;line-height:1.55;}

/* ---------- who we serve ---------- */
.chip-grid{display:flex;flex-wrap:wrap;gap:10px;}
.chip{
  font-size:14px;padding:10px 16px;border:1px solid var(--line-strong);border-radius:20px;
  color:var(--navy-deep);background:var(--paper);
}
.chip.alt{border-color:var(--maroon);color:var(--maroon-deep);}

/* geography */
.geo-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.geo-copy p{color:var(--ink-soft);margin-bottom:16px;font-size:16.5px;}
.geo-map{
  aspect-ratio:4/3;border-radius:4px;background:var(--navy-deep);
  position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:26px;
}
.geo-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.geo-map .pin{
  position:relative;z-index:1;
  font-family:'Rubik',sans-serif;font-size:12px;color:#fff;background:rgba(0,0,0,.55);
  padding:10px 14px;border-radius:2px;border-left:3px solid var(--maroon);
}
.geo-map .pin b{display:block;font-family:'Rubik',sans-serif;font-size:16px;font-style:italic;margin-bottom:4px;}

/* ---------- approach / values ---------- */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-strong);border:1px solid var(--line-strong);border-radius:4px;overflow:hidden;}
.value-cell{background:var(--paper);padding:32px 26px;position:relative;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;}
.value-cell:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(7,22,64,.08);background:#fff;z-index:1;}
.value-cell h4{font-size:17.5px;margin-bottom:10px;}
.value-cell p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;}
.value-cell .vnum{font-family:'Rubik',sans-serif;font-size:11px;color:var(--maroon);letter-spacing:.08em;margin-bottom:14px;display:block;}
.value-cell.link-card{cursor:pointer;padding-right:52px;}
.value-cell.link-card::after{
  content:"→";position:absolute;right:26px;bottom:28px;color:var(--maroon);
  opacity:0;transform:translateX(-6px);transition:opacity .25s ease,transform .25s ease;
  font-family:'Rubik',sans-serif;font-size:16px;
}
.value-cell.link-card:hover::after{opacity:1;transform:translateX(0);}
@media (max-width:860px){.values-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.values-grid{grid-template-columns:1fr;}}

/* ---------- stage / ambition ---------- */
.stage-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;}
.stage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.stage-list li{
  display:flex;gap:14px;font-size:15px;color:var(--ink-soft);padding-bottom:14px;border-bottom:1px solid var(--line);
}
.stage-list li::before{content:"—";color:var(--maroon);flex:0 0 auto;}
.amb-list{list-style:none;margin:0;padding:0;counter-reset:amb;display:flex;flex-direction:column;gap:0;}
.amb-list li{
  counter-increment:amb;position:relative;padding:16px 0 16px 46px;border-bottom:1px solid var(--line);
  font-size:15px;color:var(--ink-soft);
}
.amb-list li::before{
  content:counter(amb,decimal-leading-zero);position:absolute;left:0;top:16px;
  font-family:'Rubik',sans-serif;font-size:12px;color:var(--navy);
}

/* ---------- partnership ---------- */
.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.partner-card{background:var(--paper);border:1px solid var(--line-strong);border-radius:4px;padding:28px 26px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.partner-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(7,22,64,.08);border-color:var(--maroon);}
.partner-card h4{font-size:17px;color:var(--navy-deep);margin-bottom:14px;padding-bottom:14px;border-bottom:2px solid var(--maroon);display:inline-block;}
.partner-card ul{margin:0;padding-left:18px;color:var(--ink-soft);font-size:14.5px;line-height:1.7;}
@media (max-width:900px){.partner-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.partner-grid{grid-template-columns:1fr;}}

.why-invest{
  margin-top:64px;padding:56px;border-radius:4px;
  background:var(--navy-deep);color:#F4EFE4;
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
}
.why-invest blockquote{font-family:'Rubik',sans-serif;font-style:italic;font-size:24px;line-height:1.5;margin:0;}
.why-invest .wi-copy p{color:#D9DEEC;font-size:15.5px;line-height:1.65;margin-bottom:14px;}
@media (max-width:860px){.why-invest{grid-template-columns:1fr;}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px;}
.contact-list li{display:flex;flex-direction:column;gap:4px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.15);}
.contact-list .label{font-family:'Rubik',sans-serif;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#E0A6AE;}
.contact-list a,.contact-list span.val{font-size:17px;color:#fff;text-decoration:none;font-family:'Rubik',sans-serif;}
.contact-list a:hover{color:#F0C4CB;}
.person-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:30px;}
.person-card .role{font-family:'Rubik',sans-serif;font-size:11.5px;letter-spacing:.1em;color:#E0A6AE;text-transform:uppercase;margin-bottom:8px;}
.person-card h4{color:#fff;font-size:22px;margin-bottom:14px;}
.person-card a{display:block;font-size:14.5px;color:#D9DEEC;text-decoration:none;margin-bottom:6px;}
.person-card a:hover{color:#fff;}

footer{background:var(--navy-deep);color:#9AA3C0;border-top:1px solid rgba(255,255,255,.1);}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;padding:64px 0 40px;}
.footer-brand a.brand{display:inline-flex;text-decoration:none;}
.footer-brand img{height:34px;width:auto;margin-bottom:18px;background:#fff;padding:8px 12px;border-radius:6px;}
.footer-brand p{color:#B9C2DC;font-size:14.5px;line-height:1.65;max-width:40ch;}
.footer-col h4{
  font-family:'Rubik',sans-serif;font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:#E0A6AE;font-weight:500;margin-bottom:18px;
}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.footer-col li{color:#C7CBDD;font-size:14.5px;}
.footer-col a{color:#C7CBDD;text-decoration:none;font-size:14.5px;transition:color .2s;}
.footer-col a:hover{color:#fff;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}.footer-brand{grid-column:1/-1;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;gap:32px;padding:48px 0 32px;}}

.foot-row{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  font-size:13px;padding:22px 0;border-top:1px solid rgba(255,255,255,.1);
}
.foot-row .fbrand{font-family:'Rubik',sans-serif;letter-spacing:.05em;color:#C7CBDD;}

/* ---------- photo banners ---------- */
.photo-frame{border-radius:6px;overflow:hidden;aspect-ratio:16/9;filter:drop-shadow(0 1px 2px rgba(7,22,64,.08)) drop-shadow(0 14px 28px rgba(7,22,64,.18));}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.photo-frame:hover img{transform:scale(1.045);}
.photo-cap{margin-top:14px;font-family:'Rubik',sans-serif;font-size:12px;letter-spacing:.05em;color:var(--ink-soft);text-transform:uppercase;}
.photo-cap b{color:var(--maroon-deep);font-weight:500;}
@media (max-width:760px){.photo-frame{aspect-ratio:4/5;}}

/* photo paired with a caption/quote card, for square source images */
.photo-duo{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
.photo-duo .photo-frame{aspect-ratio:1/1;}
.photo-duo .duo-copy p{font-family:'Rubik',sans-serif;font-style:italic;font-size:21px;line-height:1.5;color:var(--navy-deep);font-weight:450;}
@media (max-width:820px){.photo-duo{grid-template-columns:1fr;gap:24px;}}

/* text paired with a portrait-orientation photo, e.g. a section intro */
.portrait-duo{display:grid;grid-template-columns:1fr .62fr;gap:48px;align-items:center;}
.portrait-duo .photo-frame{aspect-ratio:4/5;}
@media (max-width:820px){.portrait-duo{grid-template-columns:1fr;gap:28px;}.portrait-duo .photo-frame{max-width:340px;margin:0 auto;}}

/* single square photo, capped width, centred */
.photo-square{max-width:520px;margin:0 auto;}
.photo-square .photo-frame{aspect-ratio:1/1;}
.photo-square .photo-cap{text-align:center;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
/* stagger children of grids that reveal individually */
.values-grid .value-cell:nth-child(1),.partner-grid .partner-card:nth-child(1){transition-delay:0ms;}
.values-grid .value-cell:nth-child(2),.partner-grid .partner-card:nth-child(2){transition-delay:70ms;}
.values-grid .value-cell:nth-child(3),.partner-grid .partner-card:nth-child(3){transition-delay:140ms;}
.values-grid .value-cell:nth-child(4),.partner-grid .partner-card:nth-child(4){transition-delay:210ms;}
.values-grid .value-cell:nth-child(5),.partner-grid .partner-card:nth-child(5){transition-delay:280ms;}
.values-grid .value-cell:nth-child(6),.partner-grid .partner-card:nth-child(6){transition-delay:350ms;}
.values-grid .value-cell:nth-child(7){transition-delay:420ms;}
.values-grid .value-cell:nth-child(8){transition-delay:490ms;}
.values-grid .value-cell:nth-child(9){transition-delay:560ms;}

/* ---------- back to top ---------- */
.to-top{
  position:fixed;right:24px;bottom:24px;z-index:60;width:46px;height:46px;border-radius:50%;
  background:var(--navy-deep);color:#fff;border:1px solid rgba(255,255,255,.15);font-size:18px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  opacity:0;transform:translateY(12px);pointer-events:none;
  transition:opacity .3s ease,transform .3s ease,background .2s ease;
  box-shadow:0 10px 24px rgba(7,22,64,.22);
}
.to-top.show{opacity:1;transform:translateY(0);pointer-events:auto;}
.to-top:hover{background:var(--maroon);}

/* ---------- hero scroll cue ---------- */
.scroll-cue{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;
  font-family:'Rubik',sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:#B9C2DC;text-decoration:none;opacity:0;animation:fadeUp .8s ease .9s forwards;
}
.scroll-cue span{width:1px;height:22px;background:#B9C2DC;animation:cueMove 1.8s ease-in-out infinite;}
@keyframes cueMove{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}50.01%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
  .hero-inner > div:first-child > *,.hero-plate{opacity:1;animation:none;}
  .scroll-cue{opacity:1;animation:none;}
  .scroll-cue span{animation:none;}
  .to-top,.nav-cta,.btn,.value-cell,.partner-card,.chain-node,.prog-toggle{transition:none;}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-plate{order:-1;max-width:340px;margin:0 auto 12px;}
  .about-grid,.geo-grid,.stage-grid,.contact-grid{grid-template-columns:1fr;gap:36px;}
  .vm-grid{grid-template-columns:1fr;}
  .vm-cell:first-child{border-right:none;border-bottom:1px solid var(--line-strong);}
  .why-invest{padding:36px;}
}
@media (max-width:760px){
  nav ul{
    display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
    background:var(--paper);padding:0 32px;border-bottom:1px solid transparent;gap:16px;
    max-height:0;opacity:0;overflow:hidden;pointer-events:none;
    transition:max-height .35s ease,opacity .3s ease,padding .35s ease;
  }
  nav ul.open{max-height:420px;opacity:1;padding:20px 32px;border-bottom-color:var(--line);pointer-events:auto;}
  nav ul li{transform:translateY(-6px);opacity:0;transition:transform .3s ease,opacity .3s ease;}
  nav ul.open li{transform:translateY(0);opacity:1;}
  nav ul.open li:nth-child(1){transition-delay:.04s;}
  nav ul.open li:nth-child(2){transition-delay:.08s;}
  nav ul.open li:nth-child(3){transition-delay:.12s;}
  nav ul.open li:nth-child(4){transition-delay:.16s;}
  nav ul.open li:nth-child(5){transition-delay:.2s;}
  .menu-btn{display:block;}
  .nav-cta{display:none;}
  section{padding:72px 0;}
  .partner-grid{grid-template-columns:1fr;}
}
