
  /* ---------- Fonts (embedded) ---------- */
  @font-face{
    font-family:'Mark W1G';
    src:url('../fonts/markw1g-regular.woff2') format('woff2');
    font-weight:400; font-style:normal; font-display:swap;
  }
  @font-face{
    font-family:'Mark W1G';
    src:url('../fonts/markw1g-bold.woff2') format('woff2');
    font-weight:700; font-style:normal; font-display:swap;
  }
  @font-face{
    font-family:'Cooper Lt BT';
    src:url('../fonts/cooper-light.woff2') format('woff2');
    font-weight:300; font-style:normal; font-display:swap;
  }

  /* ---------- Tokens ---------- */
  :root{
    --midnight:#312536; --murram:#DC5A40; --mango:#F0AF00; --moss:#8CA58C;
    --snow:#FFFFFF; --dune:#E4D9C8; --space:#1F294A;
    --moss-shade:#566655; --murram-shade:#692323; --midnight-tint2:#735D7C;
    --sans:'Mark W1G',Arial,Helvetica,sans-serif;
    --display:'Cooper Lt BT',Georgia,serif;
    --maxw:1180px;
    --gutter:clamp(1.25rem,5vw,3rem);
    --pad-y:clamp(4.5rem,9vw,8.5rem);
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  body{
    margin:0; background:var(--snow); color:var(--midnight);
    font-family:var(--sans); font-weight:400; font-size:1.0625rem; line-height:1.7;
    letter-spacing:-.01em; -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  img{height:auto;}
  ::selection{background:var(--mango); color:var(--midnight);}
  :focus-visible{outline:3px solid var(--mango); outline-offset:3px; border-radius:2px;}

  /* ---------- Layout helpers ---------- */
  .wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter);}
  .section{padding-block:var(--pad-y);}
  .bg-snow{background:var(--snow);}
  .bg-dune{background:var(--dune);}
  .bg-midnight{background:var(--midnight); color:var(--snow);}

  /* ---------- Typography ---------- */
  .eyebrow{
    font-family:var(--sans); font-weight:700; text-transform:uppercase;
    font-size:.78rem; letter-spacing:.22em; color:var(--murram);
    margin:0 0 1.3rem; display:flex; align-items:center; gap:.65rem;
  }
  .bg-midnight .eyebrow{color:var(--mango);}
  .eyebrow::before{content:""; width:26px; height:2px; background:currentColor; display:inline-block;}

  h1,h2,h3{margin:0; letter-spacing:-.02em; line-height:1.12;}
  .display{font-family:var(--display); font-weight:300; letter-spacing:0; line-height:1.04;}
  h2{font-size:clamp(1.95rem,4.6vw,2.95rem); font-weight:700; line-height:1.15;}
  h3{font-size:clamp(1.25rem,2.6vw,1.7rem); font-weight:700;}
  .lead{font-size:clamp(1.12rem,2.1vw,1.45rem); line-height:1.6; max-width:34ch;}
  p{margin:0 0 1.1rem;}
  p:last-child{margin-bottom:0;}
  .muted{color:var(--midnight-tint2);}
  .bg-midnight .muted{color:#b9aec0;}

  /* ---------- Header ---------- */
  header.nav{
    position:fixed; inset:0 0 auto 0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:.95rem var(--gutter);
    transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
  }
  header.nav.scrolled{background:rgba(49,37,54,.96); padding-block:.7rem; box-shadow:0 1px 0 rgba(255,255,255,.06);}
  header.nav .logo{height:30px; width:auto;}
  .navlinks{display:flex; gap:1.9rem; align-items:center;}
  .navlinks a{
    font-weight:700; text-transform:uppercase; font-size:.72rem; letter-spacing:.16em;
    color:rgba(255,255,255,.82); text-decoration:none; position:relative; padding:.3rem 0;
    transition:color .2s ease;
  }
  .navlinks a::after{
    content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
    background:var(--mango); transition:right .25s ease;
  }
  .navlinks a:hover{color:#fff;}
  .navlinks a:hover::after{right:0;}
  .nav-cta{
    color:var(--midnight)!important; background:var(--mango); border-radius:999px;
    padding:.55rem 1.1rem!important;
  }
  .nav-cta::after{display:none;}
  .nav-cta:hover{background:#ffc01f;}
  @media (max-width:860px){ .navlinks .hide-sm{display:none;} .navlinks{gap:1rem;} }

  /* ---------- Hero ---------- */
  .hero{
    position:relative; background:var(--midnight); color:var(--snow);
    min-height:100svh; overflow:hidden;
    display:flex; flex-direction:column; justify-content:center;
    padding:6rem 0 clamp(320px,48vh,480px);
  }
  .hero .wrap{position:relative; z-index:3; width:100%;}
  .hero h1{font-size:clamp(3.5rem,13.5vw,7.2rem); max-width:12ch;}
  .hero-tag{color:var(--mango);}
  .scrolllink{
    margin-top:2.2rem; display:inline-flex; align-items:center; gap:.6rem;
    font-weight:700; letter-spacing:.04em; text-decoration:none; color:var(--mango);
    font-size:1.1rem;
  }
  .scrolllink .arr{transition:transform .25s ease;}
  .scrolllink:hover .arr{transform:translateY(4px);}

  /* hero scene: big rising sun + skyline, anchored bottom, sized to clear the text */
  .scene{
    position:absolute; left:0; bottom:0; width:100%; z-index:1; pointer-events:none;
    height:clamp(320px,48vh,480px);
    display:flex; align-items:flex-end; justify-content:center;
  }
  .scene .sun{
    position:absolute; left:50%; bottom:0; transform:translateX(-50%);
    height:100%; width:auto; opacity:.95; filter:saturate(1.05);
  }
  .scene .skyline{
    position:relative; z-index:2;
    display:flex; align-items:flex-end; justify-content:center; gap:0;
  }
  .scene .skyline img{width:auto; margin-inline:-3.5%;}
  .scene .skyline img:nth-child(1){height:clamp(160px,22vw,310px);}
  .scene .skyline img:nth-child(2){height:clamp(195px,27vw,375px);}
  .scene .skyline img:nth-child(3){height:clamp(175px,24vw,330px);}
  @media (max-height:820px){
    .hero{padding-bottom:clamp(240px,42vh,420px);}
    .scene{height:clamp(240px,42vh,420px);}
  }
  @media (max-height:680px){
    .hero{padding-bottom:clamp(210px,36vh,320px);}
    .scene{height:clamp(210px,36vh,320px);}
  }

  /* ---------- Opportunity (two-sided) ---------- */
  .opp-intro{max-width:60ch; font-size:clamp(1.05rem,1.9vw,1.3rem); margin-top:1.6rem;}
  .pair{
    display:grid; grid-template-columns:1fr 1fr; gap:clamp(1rem,2.5vw,1.6rem); align-items:stretch;
    margin-top:3.2rem;
  }
  .pcard{background:var(--snow); padding:2.1rem clamp(1.5rem,3vw,2.5rem) 2rem; border-radius:14px;
    box-shadow:0 18px 40px -28px rgba(49,37,54,.5);}
  .pcard-head{display:flex; align-items:center; gap:.7rem; margin-bottom:1.1rem;}
  .pcard .glyph{width:34px; height:34px; flex:none;}
  .pcard h3{font-size:.82rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--midnight-tint2); line-height:1.2; margin:0;}
  .pstat{display:block; font-family:var(--display); font-weight:300; line-height:.92;
    font-size:clamp(3.4rem,8vw,5.4rem); color:var(--midnight); letter-spacing:-.01em;}
  .plabel{display:block; margin-top:.5rem; font-weight:700; font-size:clamp(1.05rem,1.9vw,1.28rem); color:var(--midnight); line-height:1.2;}
  .pcard .muted{margin-top:.7rem; font-size:.98rem;}
  .src{display:block; margin-top:1.1rem; font-size:.78rem; color:var(--midnight-tint2); letter-spacing:.02em;}
  .bg-midnight .src{color:#9a8fa1;}

  /* ---------- Mission statement ---------- */
  .mission-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center;}
  .mission-statement{font-family:var(--display); font-weight:300; font-size:clamp(2rem,4.6vw,3.45rem); line-height:1.12; letter-spacing:0; color:var(--midnight);}
  .mission-statement .accent{color:var(--murram);}
  .mission-sub{margin-top:1.4rem; color:var(--midnight-tint2); font-size:clamp(1rem,1.7vw,1.2rem); max-width:44ch;}
  .harar-ph{position:relative; border-radius:16px; overflow:hidden; min-height:clamp(260px,40vh,440px);
    background:linear-gradient(135deg,rgba(49,37,54,.92),rgba(31,41,74,.78)),repeating-linear-gradient(45deg,rgba(255,255,255,.045) 0 14px,transparent 14px 28px);
    display:flex; align-items:flex-end; padding:1.3rem;}
  .harar-ph .ph-label{color:rgba(255,255,255,.85); font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; display:flex; align-items:center; gap:.5rem;}
  .harar-ph .ph-label svg{width:18px; height:18px; flex:none;}
  @media (max-width:820px){
    .pair{grid-template-columns:1fr; gap:1rem;}
    .mission-grid{grid-template-columns:1fr;}
    .harar-ph{min-height:240px;}
  }

  /* ---------- What we do (circular process) ---------- */
  .cycle-intro{margin-top:1rem; max-width:52ch; color:var(--midnight-tint2); font-size:clamp(1rem,1.7vw,1.15rem);}
  .cycle{position:relative; width:100%; max-width:640px; margin:2.4rem auto 0; aspect-ratio:1/1;}
  .cycle-loop{position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;}
  .cycle-grid{position:relative; z-index:1; width:100%; height:100%;
    display:grid; grid-template-columns:1fr 1.2fr 1fr; grid-template-rows:1fr 1.2fr 1fr; place-items:center;}
  .cy-top{grid-area:1/2/2/3;} .cy-right{grid-area:2/3/3/4;} .cy-bottom{grid-area:3/2/4/3;} .cy-left{grid-area:2/1/3/2;}
  .cycle-core{grid-area:2/2/3/3;}

  .cy-node{-webkit-appearance:none; appearance:none; background:transparent; border:0; cursor:pointer; font:inherit;
    color:var(--midnight); display:flex; flex-direction:column; align-items:center; gap:.5rem;
    width:clamp(8.2rem,17vw,10rem); padding:.3rem; transition:transform .25s ease; z-index:2;}
  .cy-node:hover, .cy-node.on{transform:translateY(-3px);}
  .cy-ico{width:clamp(3.5rem,7.4vw,4.5rem); aspect-ratio:1; border-radius:50%; background:var(--c); color:#fff;
    display:grid; place-items:center; border:3px solid var(--snow); box-shadow:0 7px 18px rgba(49,37,54,.16);
    transition:box-shadow .25s ease, transform .25s ease;}
  .cy-ico svg{width:52%; height:52%;}
  .cy-node:hover .cy-ico, .cy-node.on .cy-ico{box-shadow:0 12px 28px rgba(49,37,54,.28); transform:scale(1.05);}
  .cy-k{font-size:.66rem; font-weight:700; letter-spacing:.16em; color:var(--c); line-height:1;}
  .cy-t{font-size:clamp(.82rem,1.5vw,.95rem); font-weight:600; line-height:1.2; text-align:center;}

  .cycle-core{width:100%; max-width:clamp(11rem,26vw,15rem); background:var(--snow);
    border:1px solid rgba(49,37,54,.10); border-radius:18px; box-shadow:0 10px 34px rgba(49,37,54,.12);
    padding:clamp(1.1rem,2.6vw,1.7rem); text-align:center; transition:border-color .25s ease;}
  .cycle-core.active{border-color:rgba(49,37,54,.2);}
  .cy-core-ico{display:inline-grid; place-items:center; width:2.5rem; height:2.5rem; border-radius:50%;
    background:var(--dune); color:var(--midnight); margin-bottom:.6rem;}
  .cy-core-ico svg{width:1.35rem; height:1.35rem;}
  .cy-core-title{font-family:var(--display); font-weight:300; font-size:clamp(1.15rem,2.4vw,1.5rem); line-height:1.12; color:var(--midnight);}
  .cy-core-desc{margin-top:.5rem; font-size:clamp(.78rem,1.4vw,.9rem); line-height:1.4; color:var(--midnight-tint2);}

  .cycle-badges{display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; margin-top:2.6rem;}
  .cy-badge{display:flex; align-items:center; gap:.85rem; background:var(--snow); border:1px solid rgba(49,37,54,.1);
    border-radius:14px; padding:.85rem 1.15rem; max-width:23rem;}
  .cyb-ico{flex:none; width:2.5rem; height:2.5rem; border-radius:50%; display:grid; place-items:center; background:var(--dune); color:var(--midnight);}
  .cyb-ico svg{width:1.35rem; height:1.35rem;}
  .cyb-t{display:block; font-weight:700; font-size:.92rem;}
  .cyb-d{display:block; font-size:.8rem; line-height:1.35; color:var(--midnight-tint2); margin-top:.15rem;}

  /* cycle -> vertical stepper on small screens */
  @media (max-width:620px){
    .cycle{aspect-ratio:auto; max-width:27rem; margin-top:1.8rem;}
    .cycle-loop{display:none;}
    .cycle-grid{display:flex; flex-direction:column; gap:.8rem;}
    .cycle-core{order:-1; max-width:none; width:100%; text-align:left;}
    .cy-node{order:0; flex-direction:row; width:100%; justify-content:flex-start; text-align:left; gap:1rem;
      background:var(--snow); border:1px solid rgba(49,37,54,.1); border-radius:14px; padding:.85rem 1rem;}
    .cy-node:hover, .cy-node.on{transform:none;}
    .cy-node.on{border-color:var(--c); box-shadow:0 6px 18px rgba(49,37,54,.1);}
    .cy-ico{width:2.9rem; border-width:2px;}
    .cy-node br{display:none;}
    .cy-t{font-size:.98rem; text-align:left; flex:1;}
    .cy-k{align-self:flex-start; margin-top:.15rem;}
    .cycle-badges{flex-direction:column; align-items:stretch; margin-top:1.8rem;}
    .cy-badge{max-width:none;}
  }

  /* ---------- Where we work (cities + projects) ---------- */
  .proof-head{max-width:24ch;}
  .where-intro{max-width:48ch; color:#cabfce;}
  .city-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1rem,2.4vw,1.8rem); margin-top:3rem;}
  .city-card{background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:18px; overflow:hidden; display:flex; flex-direction:column;}
  .media-ph{position:relative; aspect-ratio:16/10; display:flex; align-items:flex-end; padding:1rem;
    background:linear-gradient(135deg,rgba(140,165,140,.22),rgba(31,41,74,.55)),repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 14px,transparent 14px 28px);}
  .media-ph .ph-label{color:rgba(255,255,255,.82); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; display:flex; align-items:center; gap:.45rem;}
  .media-ph .ph-label svg{width:16px; height:16px; flex:none;}
  .city-body{padding:1.7rem clamp(1.3rem,2.5vw,2rem) 1.9rem;}
  .city-body .k{font-weight:700; color:var(--mango); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; display:block; margin-bottom:.65rem;}
  .city-body h3{font-size:clamp(1.3rem,2.5vw,1.7rem); margin-bottom:.6rem; color:#fff;}
  .city-body p{color:#c9bfce; font-size:.98rem;}
  .stat-row{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.8rem,2vw,1.5rem); margin-top:1.5rem; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.13);}
  .stat .n{font-family:var(--display); font-size:clamp(1.3rem,2.2vw,1.9rem); color:var(--mango); line-height:1; display:block; white-space:nowrap;}
  .stat .l{color:#b9aec0; font-size:.78rem; margin-top:.35rem; display:block;}
  .pill{display:inline-block; margin-top:1.4rem; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#cbd9cb; border:1px solid rgba(140,165,140,.5); border-radius:999px; padding:.45rem .95rem;}
  @media (max-width:760px){ .city-grid{grid-template-columns:1fr;} }

  .proj-label{margin-top:clamp(3rem,6vw,4.5rem); font-weight:700; color:#b9aec0; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;}
  .proj-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.9rem,2vw,1.4rem); margin-top:1.2rem;}
  .proj-card{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; text-decoration:none;}
  .proj-card:hover{border-color:rgba(240,175,0,.5);}
  .proj-ph{aspect-ratio:16/10; background:linear-gradient(135deg,rgba(220,90,64,.28),rgba(31,41,74,.55)),repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 12px,transparent 12px 24px);}
  .proj-body{padding:1.3rem clamp(1.1rem,2vw,1.5rem) 1.5rem; display:flex; flex-direction:column; flex:1;}
  .proj-body .k{font-weight:700; color:var(--mango); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; display:block; margin-bottom:.5rem;}
  .proj-body h4{font-size:1.02rem; color:#fff; line-height:1.32; margin-bottom:1.1rem;}
  .readmore{margin-top:auto; align-self:flex-start; color:#fff; font-weight:700; font-size:.85rem; display:inline-flex; align-items:center; gap:.4rem; border-bottom:1.5px solid var(--mango); padding-bottom:2px;}
  .proj-card:hover .readmore{color:var(--mango);}
  @media (max-width:760px){ .proj-grid{grid-template-columns:1fr;} }

  /* ---------- Investors ---------- */
  .inv-head{text-align:center; max-width:22ch; margin-inline:auto;}
  .inv-marquee{margin-top:2.8rem; overflow:hidden; position:relative;
    -webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);
    mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);}
  .inv-track{display:flex; width:max-content; animation:inv-scroll 45s linear infinite;}
  .inv-marquee:hover .inv-track{animation-play-state:paused;}
  .inv-tile{flex:0 0 auto; width:clamp(200px,22vw,260px); min-height:90px;
    margin-right:clamp(.8rem,1.6vw,1.2rem);
    background:var(--midnight); color:var(--snow); border-radius:12px;
    display:flex; align-items:center; justify-content:center; text-align:center; padding:1rem 1.1rem;
    font-weight:700; font-size:.95rem; letter-spacing:.01em; line-height:1.22;}
  .inv-logo{max-height:46px; max-width:84%; width:auto; height:auto; object-fit:contain; display:block;}
  @keyframes inv-scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
  @media (prefers-reduced-motion:reduce){ .inv-track{animation:none;} }

  /* ---------- Measure ---------- */
  .measure-head{max-width:24ch;}
  .pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.4vw,1.8rem); margin-top:3rem;}
  .pillar{background:var(--snow); border-radius:14px; padding:2rem clamp(1.3rem,2.4vw,1.9rem);
    box-shadow:0 16px 38px -30px rgba(49,37,54,.55);}
  .pillar .glyph{width:48px; height:48px; margin-bottom:1.3rem;}
  .pillar h3{margin-bottom:.6rem; font-size:clamp(1.1rem,2vw,1.35rem);}
  .pillar p{font-size:.98rem;}
  @media (max-width:760px){ .pillars{grid-template-columns:1fr;} }

  /* ---------- Team ---------- */
  .founder{display:grid; grid-template-columns:auto 1fr; gap:clamp(1.4rem,3vw,2.5rem); margin-top:3rem; align-items:center;}
  .avatar{
    width:clamp(96px,16vw,150px); aspect-ratio:1; border-radius:16px; flex:none;
    display:flex; align-items:center; justify-content:center; font-weight:700;
    font-size:clamp(2rem,5vw,3rem); color:#fff; letter-spacing:.02em;
  }
  .founder h3{font-size:clamp(1.5rem,3vw,2rem); margin-bottom:.2rem;}
  .founder .role{color:var(--murram); font-weight:700; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; display:block; margin-bottom:1rem;}
  .founder p{max-width:62ch;}
  .li-link{display:inline-flex; align-items:center; gap:.45rem; text-decoration:none; color:var(--midnight-tint2); font-weight:700; font-size:.82rem; margin-top:1.1rem;}
  .li-link svg{width:16px; height:16px;}
  .li-link:hover{color:var(--murram);}

  .team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.2vw,1.6rem); margin-top:2.8rem;}
  .member{display:block; text-decoration:none; color:inherit;}
  .member .avatar{width:100%; aspect-ratio:1.1; border-radius:14px; font-size:clamp(1.4rem,4vw,2rem); margin-bottom:.9rem; transition:transform .2s ease;}
  .member:hover .avatar{transform:translateY(-3px);}
  .member .mname{font-weight:700; display:flex; align-items:center; gap:.4rem; line-height:1.2;}
  .member .mname svg{width:15px; height:15px; color:var(--midnight-tint2); flex:none;}
  .member:hover .mname svg{color:var(--murram);}
  .member .mrole{color:var(--midnight-tint2); font-size:.92rem;}

  .board-label{margin-top:clamp(3rem,6vw,4.5rem); padding-top:1.6rem; border-top:1px solid rgba(49,37,54,.14);
    font-weight:700; color:var(--midnight-tint2); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;}
  .board-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(.8rem,1.8vw,1.3rem); margin-top:1.4rem;}
  .bmember{display:block; text-decoration:none; color:inherit;}
  .bmember .avatar{width:clamp(54px,9vw,74px); aspect-ratio:1; border-radius:12px; font-size:clamp(1rem,2.4vw,1.35rem); margin-bottom:.7rem; background:var(--midnight-tint2); transition:transform .2s ease;}
  .bmember:hover .avatar{transform:translateY(-3px);}
  .bmember .mname{font-weight:700; font-size:.92rem; display:flex; align-items:center; gap:.35rem; line-height:1.2;}
  .bmember .mname svg{width:13px; height:13px; color:var(--midnight-tint2); flex:none;}
  .bmember:hover .mname svg{color:var(--murram);}
  .bmember .mrole{color:var(--midnight-tint2); font-size:.82rem;}
  @media (max-width:820px){ .team-grid{grid-template-columns:repeat(3,1fr);} .founder{grid-template-columns:1fr;} .board-grid{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:520px){ .team-grid{grid-template-columns:1fr;} .board-grid{grid-template-columns:repeat(2,1fr);} }

  /* ---------- Closing ---------- */
  .closing{text-align:center;}
  .closing .display{font-size:clamp(2.6rem,9vw,5.5rem); margin-bottom:1.4rem;}
  .closing p{max-width:46ch; margin-inline:auto; color:#e7e0ea; font-size:clamp(1.05rem,2vw,1.3rem);}
  .closing-actions{margin-top:2.4rem; display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;}
  .btn{
    text-decoration:none; font-weight:700; border-radius:999px; padding:.85rem 1.7rem;
    display:inline-flex; align-items:center; gap:.5rem; transition:transform .2s ease, background .2s ease;
  }
  .btn-primary{background:var(--mango); color:var(--midnight);}
  .btn-primary:hover{transform:translateY(-2px); background:#ffc01f;}
  .btn-ghost{border:1.5px solid rgba(255,255,255,.4); color:#fff;}
  .btn-ghost:hover{border-color:#fff; transform:translateY(-2px);}

  /* ---------- Footer ---------- */
  footer{background:#241a28; color:#c9bfce; padding-block:clamp(3rem,6vw,4.5rem);}
  .foot-top{display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; align-items:flex-start;}
  footer .logo{height:30px; margin-bottom:1rem;}
  .foot-tagline{max-width:30ch; font-size:.95rem;}
  .foot-cols{display:flex; gap:clamp(2rem,6vw,4.5rem); flex-wrap:wrap;}
  .foot-col h4{font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:#fff; margin:0 0 .9rem;}
  .foot-col a{display:block; text-decoration:none; color:#c9bfce; font-size:.95rem; margin-bottom:.55rem; transition:color .2s;}
  .foot-col a:hover{color:var(--mango);}
  .foot-bottom{margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid rgba(255,255,255,.1);
    display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.85rem; color:#9a8fa1;}

  /* ---------- Reveal animation ---------- */
  .reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:none;}
  .stagger > *{opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease;}
  .stagger.in > *{opacity:1; transform:none;}
  .stagger.in > *:nth-child(2){transition-delay:.09s;}
  .stagger.in > *:nth-child(3){transition-delay:.18s;}
  .stagger.in > *:nth-child(4){transition-delay:.27s;}
  .scene .sun{opacity:0; transform:translateX(-50%) translateY(40px); transition:opacity 1.1s ease .2s, transform 1.1s ease .2s;}
  .scene.in .sun{opacity:.9; transform:translateX(-50%) translateY(0);}
  .skyline img{opacity:0; transform:translateY(30px); transition:opacity .8s ease, transform .8s ease;}
  .scene.in .skyline img{opacity:1; transform:none;}
  .scene.in .skyline img:nth-child(2){transition-delay:.12s;}
  .scene.in .skyline img:nth-child(3){transition-delay:.22s;}
  .scene.in .skyline img:nth-child(4){transition-delay:.32s;}
  @media (prefers-reduced-motion:reduce){
    .reveal,.stagger>*,.scene .sun,.skyline img{opacity:1!important; transform:none!important; transition:none!important;}
  }

  /* ===== New hero illustration (redesign) ===== */
  .hero{ padding:6rem 0 !important; align-items:center; }
  .hero .wrap{ z-index:3; }
  .hero h1{ font-size:clamp(3.1rem,9.4vw,6.6rem); max-width:11ch; }
  .hero-illo{ position:absolute; right:0; bottom:0; z-index:1; pointer-events:none; width:100%; height:100%; }
  .hero-scene{ position:absolute; right:0; bottom:0; width:min(58vw,92vh); height:auto;
               opacity:0; transform:translateY(30px); transition:opacity 1s ease .15s, transform 1s ease .15s; }
  .hero-illo.in .hero-scene{ opacity:1; transform:none; }
  @media (prefers-reduced-motion:reduce){ .hero-scene{opacity:1!important; transform:none!important;} }
  @media (max-width:820px){
    .hero{ padding:5.5rem 0 clamp(300px,66vw,470px) !important; align-items:flex-start; }
    .hero .wrap{ padding-top:2.2rem; }
    .hero-scene{ width:104vw; right:-6%; }
  }


/* ===== Contact page ===== */

  .contact-hero{ background:var(--midnight); color:var(--snow); position:relative; overflow:hidden;
    padding-block:clamp(7.5rem,13vw,10.5rem) clamp(3rem,6vw,5rem); }
  .contact-hero .stripe-accent{ position:absolute; right:0; bottom:0; width:min(42vw,560px); height:auto; opacity:1; pointer-events:none; z-index:1; }
  @media (max-width:900px){ .contact-hero .stripe-accent{ width:52vw; opacity:.9; } }
  @media (max-width:560px){ .contact-hero .stripe-accent{ display:none; } }
  .contact-hero .wrap{ position:relative; z-index:2; }
  .contact-title{ font-size:clamp(2.9rem,7vw,5rem); max-width:15ch; }
  .contact-lead{ margin-top:1.5rem; max-width:54ch; color:#cabfce; font-size:clamp(1.05rem,1.9vw,1.3rem); }
  .contact-body{ padding-block:clamp(3.5rem,7vw,6rem); }
  .contact-grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
  .cinfo-block{ padding:1.5rem 0; border-top:1px solid rgba(49,37,54,.14); }
  .cinfo-block:first-child{ border-top:none; padding-top:0; }
  .cinfo-block .k{ font-weight:700; color:var(--murram); text-transform:uppercase; letter-spacing:.14em; font-size:.75rem; display:block; margin-bottom:.55rem; }
  .cinfo-block p{ color:var(--midnight-tint2); max-width:36ch; margin:0; }
  .socials{ display:flex; gap:.7rem; margin-top:1.4rem; }
  .socials a{ width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center;
    background:var(--midnight); color:#fff; transition:transform .2s ease, background .2s ease; }
  .socials a:hover{ transform:translateY(-2px); background:var(--murram); }
  .socials svg{ width:19px; height:19px; }
  .contact-form{ background:var(--dune); border-radius:18px; padding:clamp(1.6rem,3.2vw,2.7rem);
    box-shadow:0 20px 46px -34px rgba(49,37,54,.55); }
  .field{ margin-bottom:1.15rem; display:flex; flex-direction:column; }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .field label{ font-weight:700; font-size:.82rem; margin-bottom:.45rem; color:var(--midnight); }
  .field .opt{ font-weight:400; color:var(--midnight-tint2); }
  .field input,.field select,.field textarea{ font-family:var(--sans); font-size:1rem; color:var(--midnight);
    padding:.85rem 1rem; border-radius:10px; border:1.5px solid rgba(49,37,54,.16); background:var(--snow); width:100%; }
  .field textarea{ min-height:132px; resize:vertical; }
  .field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--moss);
    box-shadow:0 0 0 3px rgba(140,165,140,.32); }
  .hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; opacity:0; }
  .contact-form .btn{ border:none; cursor:pointer; font-family:var(--sans); font-size:1rem; margin-top:.3rem; }
  .contact-form .btn-primary{ background:var(--mango); color:var(--midnight); }
  .contact-form .btn-primary:hover{ background:#ffc01f; transform:translateY(-2px); }
  .form-note{ margin-top:1rem; font-size:.84rem; color:var(--midnight-tint2); max-width:46ch; }
  .form-success{ display:none; background:var(--moss); color:#fff; border-radius:14px; padding:2rem;
    font-size:1.05rem; line-height:1.5; }
  .form-success.show{ display:block; }
  .form-success b{ font-weight:700; }
  .field.err input,.field.err select,.field.err textarea{ border-color:var(--murram); box-shadow:0 0 0 3px rgba(220,90,64,.15); }
  .field.err label{ color:var(--murram); }
  .form-err{ display:none; margin-top:.9rem; font-size:.86rem; font-weight:600; color:var(--murram); }
  .form-err.show{ display:block; }
  .cwhere{ font-size:1.05rem; font-weight:600; color:var(--midnight)!important; letter-spacing:.01em; }
  @media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } .field-row{ grid-template-columns:1fr; } }


/* ===== Mission (full height) ===== */
.mission-full{ position:relative; overflow:hidden; min-height:100vh; display:flex; align-items:center; padding-block:clamp(4rem,8vw,6rem); }
.mission-full .wrap{ width:100%; position:relative; }
.mission-full .mission-grid{ grid-template-columns:1fr; }
.mission-copy{ position:relative; z-index:2; max-width:31rem; }
.mission-figure{ position:absolute; top:0; bottom:0; right:-5vw; width:50vw; max-width:820px; display:flex;
                 align-items:center; justify-content:flex-end; padding-right:clamp(1rem,3vw,2.5rem); z-index:1; pointer-events:none; }
.mission-figure img{ width:100%; height:auto; max-height:84vh; }
@media (max-width:820px){
  .mission-full{ min-height:auto; display:block; overflow:visible; }
  .mission-copy{ max-width:none; }
  .mission-figure{ position:static; width:auto; justify-content:center; padding-right:0; margin-top:2.2rem; }
  .mission-figure img{ max-width:88vw; max-height:none; }
}


/* ===== Team (rebuilt) ===== */
.team-group{ position:relative; margin-top:2.6rem; border-radius:18px; overflow:hidden;
  aspect-ratio:16/9; display:flex; align-items:center; justify-content:center;
  background:var(--midnight); }
.team-group img{ position:relative; z-index:1; width:100%; height:100%; object-fit:cover; display:block; }
.team-group-ph{ position:absolute; inset:0; z-index:0; display:flex; align-items:center; justify-content:center; gap:.6rem;
  color:var(--midnight-tint2); font-weight:700; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; }
.team-group-ph svg{ width:22px; height:22px; }
.team-group.has-photo .team-group-ph{ display:none; }
.founder{ display:grid; grid-template-columns:auto 1fr; gap:clamp(1.6rem,3.2vw,2.8rem); align-items:center; margin-top:clamp(2.4rem,5vw,3.4rem); }
.founder-photo{ display:block; flex:none; }
.founder-photo img{ width:clamp(190px,21vw,270px); aspect-ratio:1; border-radius:16px; display:block; }
.founder-body h3{ font-size:clamp(1.5rem,3vw,2rem); display:flex; align-items:center; gap:.55rem; margin-bottom:.2rem; }
.li-inline{ display:inline-flex; color:var(--midnight-tint2); }
.li-inline svg{ width:20px; height:20px; }
.li-inline:hover{ color:var(--murram); }
.founder-body .role{ color:var(--murram); font-weight:700; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; display:block; margin-bottom:1rem; }
.founder-body p{ max-width:64ch; }
.group-label{ margin-top:clamp(3rem,6vw,4.2rem); padding-top:1.5rem; border-top:1px solid rgba(49,37,54,.14);
  font-weight:700; color:var(--midnight-tint2); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; }
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.6vw,2rem); margin-top:1.6rem; }
.member{ display:block; text-decoration:none; color:inherit; }
.member-photo{ display:block; }
.member-photo img{ width:100%; aspect-ratio:1; border-radius:14px; display:block; transition:transform .2s ease; }
.member:hover .member-photo img{ transform:translateY(-4px); }
.mname{ font-weight:700; display:flex; align-items:center; gap:.4rem; margin-top:.95rem; line-height:1.2; }
.mname svg{ width:15px; height:15px; color:var(--midnight-tint2); flex:none; }
.member:hover .mname svg{ color:var(--murram); }
.mrole{ color:var(--midnight-tint2); font-size:.95rem; }
@media (max-width:760px){ .team-grid{ grid-template-columns:1fr 1fr; } .founder{ grid-template-columns:1fr; } .team-group{ aspect-ratio:16/9; } }
@media (max-width:480px){ .team-grid{ grid-template-columns:1fr 1fr; } }


/* ===== Where we work: city image + projects header ===== */
.city-media{ aspect-ratio:16/10; overflow:hidden; }
.city-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.proj-head-row{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  margin-top:clamp(3rem,6vw,4.5rem); }
.proj-head-row .proj-label{ margin:0; }
.proj-viewall{ color:var(--mango); font-weight:700; text-decoration:none; font-size:.85rem; letter-spacing:.02em; white-space:nowrap; }
.proj-viewall:hover{ text-decoration:underline; }


/* ===== Projects page ===== */
.proj-hero{ background:var(--midnight); color:var(--snow); padding-block:clamp(7.5rem,13vw,10.5rem) clamp(3rem,6vw,5rem); }
.proj-hero-title{ font-size:clamp(2.9rem,7vw,5rem); max-width:16ch; }
.proj-hero-lead{ margin-top:1.4rem; max-width:56ch; color:#cabfce; font-size:clamp(1.05rem,1.9vw,1.3rem); }
.story-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1.6rem,3.5vw,2.6rem); }
.story{ background:var(--snow); border:1px solid rgba(49,37,54,.1); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; }
.story-media{ aspect-ratio:16/10; overflow:hidden; }
.story-media .proj-ph{ width:100%; height:100%; }
.story-body{ padding:1.6rem clamp(1.3rem,2.4vw,2rem) 1.9rem; }
.story-loc{ font-weight:700; color:var(--murram); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; display:block; margin-bottom:.7rem; }
.story-body h3{ font-size:clamp(1.2rem,2.2vw,1.55rem); margin-bottom:.7rem; }
.story-body p{ color:var(--midnight-tint2); }
.story-more{ margin-top:clamp(2.5rem,5vw,3.5rem); color:var(--midnight-tint2); }
.story-more a{ color:var(--murram); font-weight:700; }
@media (max-width:760px){ .story-grid{ grid-template-columns:1fr; } }


/* ===== Press & Media page ===== */
.press-hero{ background:var(--midnight); color:var(--snow); padding-block:clamp(7.5rem,13vw,10.5rem) clamp(3rem,6vw,5rem); }
.press-hero-title{ font-size:clamp(2.9rem,7vw,5rem); max-width:14ch; }
.press-hero-lead{ margin-top:1.4rem; max-width:58ch; color:#cabfce; font-size:clamp(1.05rem,1.9vw,1.3rem); }
.press-hero-contact{ display:inline-block; margin-top:1.6rem; color:var(--mango); font-weight:700; letter-spacing:.02em; text-decoration:none; }
.press-hero-contact:hover{ text-decoration:underline; }

.press-strip-sec{ padding-block:clamp(2.6rem,5vw,3.6rem); }
.press-strip-label{ text-align:center; font-weight:700; color:var(--midnight-tint2); font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; margin-bottom:1.4rem; }
.press-strip{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(1.4rem,4vw,3rem); }
.press-word{ font-family:var(--display); font-size:clamp(1.05rem,2.1vw,1.5rem); color:var(--midnight); opacity:.62; letter-spacing:.01em; white-space:nowrap; }

.press-feat-sec{ padding-block:clamp(2.5rem,5vw,4rem); }
.press-feature{ display:grid; grid-template-columns:1.05fr 1.35fr; gap:0; background:var(--snow); border-radius:20px; overflow:hidden;
  text-decoration:none; color:inherit; box-shadow:0 24px 50px -34px rgba(49,37,54,.5); transition:transform .25s ease, box-shadow .25s ease; }
.press-feature:hover{ transform:translateY(-4px); box-shadow:0 30px 60px -34px rgba(49,37,54,.55); }
.pf-media{ position:relative; min-height:260px; overflow:hidden; background:var(--midnight); }
.pf-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pf-badge{ position:absolute; left:1.3rem; bottom:1.1rem; z-index:2; font-family:var(--display); font-weight:300;
  color:#fff; font-size:1.5rem; letter-spacing:.06em; padding:.25rem .8rem; background:rgba(31,25,38,.62); backdrop-filter:blur(3px); border-radius:8px; }
.pf-body{ padding:clamp(1.8rem,3.6vw,3rem); align-self:center; }
.pf-kicker{ font-weight:700; color:var(--murram); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; display:block; margin-bottom:.9rem; }
.pf-body h2{ font-size:clamp(1.5rem,3vw,2.15rem); line-height:1.12; margin-bottom:.9rem; }
.pf-body p{ color:var(--midnight-tint2); max-width:48ch; margin-bottom:1.2rem; }
.pf-read{ font-weight:700; color:var(--murram); letter-spacing:.02em; }

.press-h2{ margin-top:.3rem; margin-bottom:2rem; }
.press-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.2vw,1.6rem); }
.press-card{ display:flex; flex-direction:column; background:var(--snow); border:1px solid rgba(49,37,54,.12); border-radius:16px;
  overflow:hidden; text-decoration:none; color:inherit; transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.press-card:hover{ transform:translateY(-4px); border-color:rgba(49,37,54,.22); box-shadow:0 16px 34px -26px rgba(49,37,54,.5); }
.pc-media{ aspect-ratio:16/10; overflow:hidden; background:var(--midnight); }
.pc-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.press-card:hover .pc-media img{ transform:scale(1.04); }
.pc-body{ display:flex; flex-direction:column; flex:1; padding:clamp(1.2rem,2.2vw,1.5rem); }
.pc-top{ display:flex; align-items:baseline; justify-content:space-between; gap:.8rem; margin-bottom:.8rem; }
.pc-outlet{ font-weight:700; color:var(--murram); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.pc-date{ color:var(--midnight-tint2); font-size:.72rem; letter-spacing:.08em; white-space:nowrap; }
.press-card h3{ font-size:clamp(1.02rem,1.6vw,1.18rem); line-height:1.25; margin-bottom:1.2rem; flex:1; }
.pc-read{ font-weight:700; color:var(--midnight); letter-spacing:.02em; font-size:.9rem; }
.press-card:hover .pc-read{ color:var(--murram); }

.press-reco-sec{ }
.reco-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(1rem,2.4vw,1.6rem); margin-top:2rem; }
.reco-card{ display:block; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:16px;
  padding:clamp(1.6rem,3vw,2.2rem); text-decoration:none; color:var(--snow); transition:transform .22s ease, background .22s ease; }
.reco-card:hover{ transform:translateY(-4px); background:rgba(255,255,255,.09); }
.reco-year{ display:inline-block; font-weight:700; color:var(--mango); font-size:.8rem; letter-spacing:.1em; margin-bottom:.7rem; }
.reco-card h3{ font-size:clamp(1.3rem,2.4vw,1.7rem); margin-bottom:.7rem; }
.reco-card p{ color:#cabfce; max-width:42ch; margin-bottom:1.2rem; }
.pc-read.light{ color:var(--mango); font-size:.86rem; }

.press-contact-sec{ }
.press-contact{ display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  background:var(--dune); border-radius:20px; padding:clamp(2rem,4vw,3rem); }
.press-contact h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:.6rem; }
.press-contact p{ color:var(--midnight-tint2); max-width:52ch; margin:0; }
.press-contact .btn{ white-space:nowrap; }

@media (max-width:820px){
  .press-feature{ grid-template-columns:1fr; }
  .pf-media{ min-height:170px; }
  .press-grid{ grid-template-columns:1fr 1fr; }
  .reco-grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .press-grid{ grid-template-columns:1fr; }
  .press-contact{ flex-direction:column; align-items:flex-start; }
}


/* ===== Mobile menu ===== */
.mburger{display:none}
@media (max-width:860px){
  .mburger{display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:0;padding:.6rem;margin-left:.5rem;cursor:pointer}
  .mburger span{width:22px;height:2px;background:var(--snow);border-radius:2px;transition:transform .25s ease,opacity .2s ease}
  .mburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .mburger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .mburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
.mnav{position:fixed;inset:0;background:var(--midnight);z-index:99;display:flex;flex-direction:column;justify-content:center;
  padding:5.5rem 2rem 3rem;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .28s ease,transform .28s ease,visibility 0s linear .28s}
.mnav.open{opacity:1;visibility:visible;transform:none;transition:opacity .28s ease,transform .28s ease}
.mnav-logo{position:absolute;top:1.35rem;left:1.5rem;height:30px;width:auto}
.mnav-close{position:absolute;top:.9rem;right:.9rem;font-size:2.2rem;line-height:1;color:var(--snow);background:none;border:0;padding:.4rem .7rem;cursor:pointer}
.mnav-links{display:flex;flex-direction:column}
.mnav-links a{font-family:var(--display);font-weight:300;color:var(--snow);text-decoration:none;font-size:2.05rem;padding:.62rem 0;border-bottom:1px solid rgba(255,255,255,.09)}
.mnav-links a.mnav-cta{color:var(--mango);border-bottom:none;margin-top:.6rem}
@media (prefers-reduced-motion:reduce){ .mnav{transition:none} .mburger span{transition:none} }

/* ===== Micro-polish: press states ===== */
.btn:active,.nav-cta:active{transform:translateY(0) scale(.97)!important}
.press-card:active,.proj-card:active,.reco-card:active,.member:active{transform:translateY(-1px) scale(.995)}


/* ===== Project detail pages ===== */
.pd-hero{ background:var(--midnight); color:var(--snow); padding-block:clamp(7rem,12vw,9.5rem) clamp(2.6rem,5vw,4rem); }
.pd-back{ display:inline-block; color:var(--mango); font-weight:700; font-size:.85rem; letter-spacing:.04em; text-decoration:none; margin-bottom:1.6rem; }
.pd-back:hover{ text-decoration:underline; }
.pd-title{ font-size:clamp(2.4rem,5.6vw,4rem); max-width:22ch; }
.pd-sec{ padding-block:clamp(3rem,6vw,5rem); }
.pd-media{ margin:0 0 clamp(2rem,4vw,3rem); }
.pd-media img{ width:100%; max-height:520px; object-fit:cover; border-radius:18px; display:block; }
.pd-body{ max-width:68ch; }
.pd-lead{ font-size:clamp(1.15rem,2.1vw,1.4rem); line-height:1.55; font-weight:700; color:var(--midnight); margin-bottom:1.4rem; }
.pd-body p{ color:var(--midnight-tint2); font-size:1.05rem; margin-bottom:1.2rem; }
.pd-body p.pd-lead{ color:var(--midnight); }
.pd-cta{ display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  background:var(--dune); border-radius:20px; padding:clamp(2rem,4vw,3rem); margin-top:clamp(2.6rem,5vw,4rem); }
.pd-cta h2{ font-size:clamp(1.5rem,2.8vw,2rem); margin-bottom:.5rem; }
.pd-cta p{ color:var(--midnight-tint2); max-width:46ch; margin:0; }
.pd-cta .btn{ white-space:nowrap; }
@media (max-width:560px){ .pd-cta{ flex-direction:column; align-items:flex-start; } }

/* clickable project cards */
.story-link{ text-decoration:none; color:inherit; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.story-link:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -28px rgba(49,37,54,.55); border-color:rgba(49,37,54,.22); }
.story-img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.story-link:hover .story-img{ transform:scale(1.04); }
.story-read{ display:inline-block; margin-top:.2rem; font-weight:700; color:var(--murram); font-size:.9rem; }
.proj-media{ aspect-ratio:16/10; overflow:hidden; }
.proj-img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.proj-card:hover .proj-img{ transform:scale(1.04); }

/* project article prose (markdown from the CMS renders cleanly) */
.pd-body h2{ font-size:clamp(1.35rem,2.4vw,1.7rem); margin:2rem 0 .8rem; }
.pd-body h3{ font-size:clamp(1.15rem,2vw,1.35rem); margin:1.6rem 0 .6rem; }
.pd-body ul,.pd-body ol{ margin:0 0 1.2rem; padding-left:1.25rem; color:var(--midnight-tint2); }
.pd-body li{ margin-bottom:.5rem; }
.pd-body li::marker{ color:var(--murram); }
.pd-body a{ color:var(--murram); font-weight:700; }
.pd-body strong{ color:var(--midnight); }
.pd-body blockquote{ margin:1.6rem 0; padding:1rem 1.4rem; border-left:3px solid var(--mango);
  background:var(--dune); border-radius:0 12px 12px 0; color:var(--midnight); }
.pd-body blockquote p{ color:var(--midnight); margin:0; }
.pd-body > img, .pd-body p > img{ border-radius:14px; margin:1.4rem 0; }
