  :root{
    --forest-deep:#0A2A1F;
    --forest:#123B2C;
    --forest-line:#1C4A38;
    --moss:#3E7057;
    --moss-tint:#E4EFE6;
    --wheat:#C08A2E;
    --wheat-light:#E7C583;
    --wheat-pale:#F1E0B8;
    --plum:#5B3566;
    --plum-tint:#EEE5F0;
    --paper:#F7F3E9;
    --paper-warm:#EFE7D3;
    --ink:#161F19;
    --ink-soft:#495B50;
    --ink-faint:#7C8C81;
    --line:rgba(22,31,25,0.14);
    --line-soft:rgba(22,31,25,0.08);
    --shadow:0 28px 60px -30px rgba(10,42,31,0.4);
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper); color:var(--ink);
    font-family:'Poppins', sans-serif; font-weight:400;
    -webkit-font-smoothing:antialiased;
    line-height:1.55;
    font-size:16px;
    overflow-x:hidden;
  }
  h2,h3,h4{
    font-family:'Poppins', sans-serif; font-weight:700;
    letter-spacing:-0.015em; color:var(--forest-deep);
  }
  h1{
    font-family:'Poppins', sans-serif; font-weight:700;
    letter-spacing:-0.02em; color:var(--forest-deep);
  }
  em{font-style:italic; font-weight:440;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.16em;
    text-transform:uppercase; color:var(--moss); display:flex; align-items:center; gap:11px; font-weight:500;
  }
  .eyebrow::before{content:"";width:24px;height:1px;background:var(--moss);display:inline-block;flex:none;}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  section{position:relative;}
  ::selection{background:var(--wheat-light); color:var(--forest-deep);}
  :focus-visible{outline:2px solid var(--wheat); outline-offset:3px;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; animation-delay:0ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
    .draw{stroke-dashoffset:0 !important; opacity:1 !important;}
    .load-in{opacity:1 !important; transform:none !important;}
  }

  /* grain texture overlay */
  .grain{position:fixed; inset:0; pointer-events:none; z-index:60; opacity:0.035; mix-blend-mode:multiply;}

  /* ---------- NAV ---------- */
  header.site{position:sticky; top:0; z-index:50; background:rgba(247,243,233,0.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line-soft);}
  nav{max-width:1180px; margin:0 auto; padding:16px 32px; display:flex; align-items:center; justify-content:space-between;}
  .brand{display:flex; align-items:center; gap:6px; font-family:'Poppins', sans-serif; font-weight:700; font-size:19px; color:var(--forest-deep);}
  .brand img{width:46px; height:46px; border-radius:50%;}
  .navlinks{display:flex; gap:30px; font-size:14px; font-weight:600; color:var(--ink-soft);}
  .navlinks a{position:relative; padding:4px 0;}
  .navlinks a:hover{color:var(--forest-deep);}
  .navlinks a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:var(--wheat);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;}
  .navlinks a:hover::after{transform:scaleX(1);}
  .navcta{display:flex; gap:12px; align-items:center;}
  .btn{font-weight:700; font-size:13.5px; padding:10px 19px; border-radius:3px; display:inline-flex; align-items:center; gap:8px; border:1px solid transparent; cursor:pointer; transition:all .2s ease;}
  .btn-primary{background:var(--forest-deep); color:var(--paper);}
  .btn-primary:hover{background:var(--forest); transform:translateY(-1px); box-shadow:var(--shadow);}
  .btn-ghost{color:var(--forest-deep); border-color:var(--line);}
  .btn-ghost:hover{border-color:var(--forest-deep);}

  .nav-toggle{display:none; background:none; border:none; padding:6px; margin:-6px; cursor:pointer; color:var(--forest-deep); flex:none;}
  .nav-toggle .bar{transition:transform .3s ease, opacity .2s ease; transform-origin:11px 11px;}
  header.site.nav-open .nav-toggle .bar1{transform:translateY(5px) rotate(45deg);}
  header.site.nav-open .nav-toggle .bar2{opacity:0;}
  header.site.nav-open .nav-toggle .bar3{transform:translateY(-5px) rotate(-45deg);}

  @media (max-width:960px){
    nav{flex-wrap:wrap; row-gap:0;}
    .nav-toggle{display:flex; align-items:center; justify-content:center;}
    .navlinks, .navcta{
      flex-basis:100%; width:100%; display:none; flex-direction:column; align-items:stretch; gap:4px;
      max-height:0; overflow:hidden;
    }
    header.site.nav-open .navlinks, header.site.nav-open .navcta{
      display:flex; max-height:600px; padding-top:6px;
    }
    .navlinks{border-top:1px solid var(--line-soft); margin-top:14px; padding-top:14px !important;}
    .navlinks a{padding:10px 2px; font-size:15px;}
    .navlinks a::after{display:none;}
    .navcta{gap:10px; padding-bottom:16px;}
    .navcta .btn{width:100%; justify-content:center; padding:12px 19px;}
  }

  /* ---------- HERO ---------- */
  .hero{
    background:
      radial-gradient(90% 120% at 82% -10%, rgba(199,150,47,0.10), transparent 55%),
      radial-gradient(120% 140% at 100% 0%, #143F2E 0%, var(--forest-deep) 58%);
    color:var(--paper); overflow:hidden; padding:104px 0 88px; position:relative;
  }
  .hero::before{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
    background-image:repeating-linear-gradient(115deg, rgba(247,243,233,0.05) 0px, rgba(247,243,233,0.05) 1px, transparent 1px, transparent 34px);
    -webkit-mask-image:linear-gradient(200deg, black, transparent 60%);
    mask-image:linear-gradient(200deg, black, transparent 60%);
  }
  .hero .wrap{position:relative; z-index:1;}
  .hero .wrap{display:grid; grid-template-columns:2.4fr 1fr; gap:32px; align-items:center;}
  .hero .eyebrow{color:var(--wheat-light);} .hero .eyebrow::before{background:var(--wheat-light);}
  .hero h1{
    color:var(--paper); font-size:clamp(38px,5vw,64px); line-height:1.06; margin:22px 0 24px;
    font-weight:700; white-space:nowrap;
  }
  @media (max-width:860px){.hero h1{white-space:normal;}}
  .hero h1 strong{font-weight:800; color:var(--wheat-light);}
  .hero .line{display:block; overflow:hidden;}
  .hero .line span{display:block; transform:translateY(110%); animation:lineUp .9s cubic-bezier(.22,1,.36,1) forwards;}
  .hero .line:nth-child(1) span{animation-delay:.15s;}
  .hero .line:nth-child(2) span{animation-delay:.3s;}
  .hero .line:nth-child(3) span{animation-delay:.45s;}
  @keyframes lineUp{to{transform:translateY(0);}}
  .hero p.lead{
    font-size:17.5px; color:#D6E3D9; max-width:100%; margin-bottom:34px;
    opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.75s;
  }
  @keyframes fadeUp{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:40px; opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.9s;}
  .btn-hero-primary{background:var(--wheat); color:var(--forest-deep);}
  .btn-hero-primary:hover{background:var(--wheat-light); transform:translateY(-1px);}
  .btn-hero-ghost{color:var(--paper); border-color:rgba(247,243,233,0.35);}
  .btn-hero-ghost:hover{border-color:var(--paper);}
  .hero-tagline{display:flex; flex-wrap:wrap; font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:#8FAA9B; opacity:0; animation:fadeUp .8s ease forwards; animation-delay:1.05s;}
  .hero-tagline span{padding-right:16px; margin-right:16px; border-right:1px solid rgba(143,170,155,0.35);}
  .hero-tagline span:last-child{border-right:none;}

  .hero-illo{position:relative; height:480px; display:flex; align-items:flex-end; justify-content:center;}
  @media (max-width:860px){
    .hero .wrap{grid-template-columns:1fr;}
    .hero-illo{height:auto; margin-top:12px;}
  }
  /* ---------- WHO WE ARE ---------- */
  .whoweare{padding:110px 0; border-bottom:1px solid var(--line-soft); position:relative;}
  .whoweare::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:repeating-linear-gradient(180deg, transparent, transparent 34px, var(--line-soft) 35px);
    -webkit-mask-image:linear-gradient(180deg, transparent, black 15%, black 85%, transparent);
    mask-image:linear-gradient(180deg, transparent, black 15%, black 85%, transparent);
    opacity:0.5;
  }
  .whoweare .wrap{position:relative; display:grid; grid-template-columns:1.1fr 0.9fr; gap:70px; align-items:start;}
  .whoweare .statement{font-family:'Poppins', sans-serif; font-style:italic; font-weight:500; font-size:clamp(23px,2.5vw,30px); line-height:1.4; color:var(--forest-deep); margin:18px 0 26px;}
  .whoweare p.body{font-size:15.5px; color:var(--ink-soft); max-width:56ch;}
  .stat-strip{display:flex; flex-direction:column; gap:0; padding-top:6px;}
  .stat-strip .row{display:flex; gap:20px; align-items:baseline; border-bottom:1px solid var(--line-soft); padding:20px 0;}
  .stat-strip .row:first-child{padding-top:0;}
  .stat-strip .n{font-family:'Poppins', sans-serif; font-weight:700; font-size:28px; color:var(--forest-deep); min-width:86px;}
  .stat-strip .l{font-size:13.5px; color:var(--ink-soft);}
  @media (max-width:960px){.whoweare .wrap{grid-template-columns:1fr;}}

  /* ---------- PILLARS ---------- */
  .pillars{padding:110px 0; background:var(--paper-warm);}
  .pillars-head{max-width:640px; margin-bottom:56px;}
  .pillars-head h2{font-size:clamp(30px,3.4vw,42px); margin-top:16px;}
  .pillar-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden;}
  .pcard{background:var(--paper); padding:38px 32px; display:flex; flex-direction:column; gap:16px; transition:background .25s ease;}
  .pcard:hover{background:#FFFEFA;}
  .pcard .top-row{display:flex; justify-content:space-between; align-items:flex-start;}
  .pcard .icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
  .pcard.moss .icon{background:var(--moss-tint); color:var(--moss);}
  .pcard.wheat .icon{background:var(--wheat-pale); color:var(--wheat);}
  .pcard.plum .icon{background:var(--plum-tint); color:var(--plum);}
  .pcard .kicker{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:500;}
  .pcard.moss .kicker{color:var(--moss);} .pcard.wheat .kicker{color:var(--wheat);} .pcard.plum .kicker{color:var(--plum);}
  .pcard h3{font-size:22px; margin-top:2px;}
  .pcard p.desc{font-size:14px; color:var(--ink-soft);}
  .pcard .cta{margin-top:auto; padding-top:10px; font-size:13.5px; font-weight:700;}
  .pcard.moss .cta{color:var(--moss);} .pcard.wheat .cta{color:var(--wheat);} .pcard.plum .cta{color:var(--plum);}
  @media (max-width:900px){.pillar-cards{grid-template-columns:1fr;}}

  /* ---------- ECOSYSTEM ---------- */
  .ecosystem{padding:88px 0; background:var(--forest-deep); color:var(--paper);}
  .eco-head{max-width:520px; margin:0 auto 44px; text-align:center;}
  .eco-head .eyebrow{justify-content:center; color:var(--wheat-light);} .eco-head .eyebrow::before{background:var(--wheat-light);}
  .eco-head h2{color:var(--paper); font-size:clamp(24px,2.8vw,32px); margin-top:14px;}
  .eco-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:rgba(247,243,233,0.1); border:1px solid rgba(247,243,233,0.1); border-radius:10px; overflow:hidden;}
  .eco-item{background:#0D3324; padding:26px 14px; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center;}
  .eco-item .icon{width:38px; height:38px; border-radius:50%; background:rgba(247,243,233,0.08); display:flex; align-items:center; justify-content:center; color:var(--wheat-light);}
  .eco-item .label{font-size:12px; color:#C7DACE; line-height:1.35;}
  @media (max-width:900px){.eco-grid{grid-template-columns:repeat(3,1fr);}}
  @media (max-width:560px){.eco-grid{grid-template-columns:repeat(2,1fr);}}

  /* ---------- IMPACT ---------- */
  .impact{padding:110px 0;}
  .impact-head{max-width:none; margin-bottom:50px;}
  .impact-head > div{max-width:600px;}
  @media (max-width:760px){.impact-head{flex-direction:column; align-items:flex-start !important;}}
  .impact-head h2{font-size:clamp(28px,3.2vw,38px); margin-top:16px;}
  .impact-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden;}
  .istat{background:var(--moss-tint); padding:28px 22px;}
  .istat .label{font-size:13.3px; color:var(--ink-soft); line-height:1.5;}
  .istat strong{display:block; font-family:'Poppins', sans-serif; font-weight:700; color:var(--forest-deep); font-size:15.5px; margin-bottom:9px;}
  @media (max-width:900px){.impact-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:480px){.impact-grid{grid-template-columns:1fr;}}

  /* ---------- INSIGHTS ---------- */
  .insights{padding:110px 0; background:var(--paper-warm); border-top:1px solid var(--line-soft);}
  .insights-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; flex-wrap:wrap; gap:20px;}
  .insights-head h2{font-size:clamp(28px,3.2vw,36px); margin-top:16px;}
  .icards{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden;}
  .icard{background:var(--paper); padding:28px; display:flex; flex-direction:column; gap:11px;}
  .icard .tag{font-family:'IBM Plex Mono', monospace; font-size:10.5px; text-transform:uppercase; color:var(--moss); font-weight:500;}
  .icard h4{font-size:17px;}
  .icard p{font-size:13.3px; color:var(--ink-soft);}
  @media (max-width:900px){.icards{grid-template-columns:1fr;}}

  /* ---------- CTA ---------- */
  .ctaband{padding:96px 0; background:var(--forest-deep); color:var(--paper); text-align:center;}
  .ctaband h2{color:var(--paper); font-size:clamp(28px,3.6vw,42px); max-width:620px; margin:0 auto 18px;}
  .ctaband p{color:#CFE0D6; max-width:460px; margin:0 auto 34px; font-size:15.5px;}
  .ctaband .hero-actions{justify-content:center; opacity:1; animation:none;}

  /* ---------- FOOTER ---------- */
  footer{padding:60px 0 42px; background:#071810; color:var(--paper); border-top:1px solid rgba(247,243,233,0.08);}
  .foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; margin-bottom:36px;}
  .foot-brand{max-width:280px;}
  .foot-brand .brand{margin-bottom:12px; color:var(--paper);}
  .foot-brand p{font-size:13.5px; color:#A9BFB1;}
  .foot-cols{display:flex; gap:56px; flex-wrap:wrap;}
  .foot-col h4{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#7C9887; font-weight:500; margin-bottom:14px;}
  .foot-col a{display:block; font-size:14px; color:var(--paper); margin-bottom:10px; font-weight:600;}
  .foot-col a:hover{color:var(--wheat-light);}
  .foot-bottom{font-size:12.5px; color:#7C9887; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:24px; border-top:1px solid rgba(247,243,233,0.14);}
  .foot-legal{display:flex; gap:20px;}
  .foot-legal a{color:#7C9887; font-weight:500;}
  .foot-legal a:hover{color:var(--wheat-light);}

  .reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
  .pillar-cards .reveal:nth-child(1){transition-delay:0s;}
  .pillar-cards .reveal:nth-child(2){transition-delay:.12s;}
  .pillar-cards .reveal:nth-child(3){transition-delay:.24s;}
  .impact-grid .reveal:nth-child(1){transition-delay:0s;}
  .impact-grid .reveal:nth-child(2){transition-delay:.1s;}
  .impact-grid .reveal:nth-child(3){transition-delay:.2s;}
  .impact-grid .reveal:nth-child(4){transition-delay:.3s;}
  .icards .reveal:nth-child(1){transition-delay:0s;}
  .icards .reveal:nth-child(2){transition-delay:.12s;}
  .icards .reveal:nth-child(3){transition-delay:.24s;}

  /* signature illustration */
  .draw{fill:none; stroke-linecap:round; stroke-linejoin:round;}
  .draw{stroke-dasharray:1; stroke-dashoffset:1; animation:drawPath 1.6s cubic-bezier(.4,0,.2,1) forwards;}
  @keyframes drawPath{to{stroke-dashoffset:0;}}
  .sway{animation:sway 7s ease-in-out infinite; animation-delay:2.2s; transform-origin:280px 480px;}

  /* scroll-triggered signature illustrations, various sizes */
  .sig-draw{fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1; stroke-dashoffset:1;}
  .ill-trigger.in .sig-draw{animation:drawPath 1.3s cubic-bezier(.4,0,.2,1) forwards;}
  .sig-dot{opacity:0; transform:scale(.4); transform-origin:center; transition:opacity .4s ease, transform .4s ease;}
  .ill-trigger.in .sig-dot{opacity:1; transform:scale(1);}
  .ill-sm{width:100px; height:auto;}
  .ill-md{width:230px; height:auto;}
  .ill-lg{width:320px; height:auto;}
  @media (max-width:700px){
    .ill-sm{width:76px;}
    .ill-md{width:170px;}
    .ill-lg{width:230px;}
  }
  @keyframes sway{0%,100%{transform:rotate(-0.8deg);}50%{transform:rotate(0.8deg);}}


/* ---------- SHARED PAGE HEADER (about, what-we-do, who-we-serve, partners, contact, insights, privacy, terms) ---------- */
.pagehead{background:radial-gradient(90% 120% at 82% -10%, rgba(199,150,47,0.10), transparent 55%), radial-gradient(120% 140% at 100% 0%, #143F2E 0%, var(--forest-deep) 58%); color:var(--paper); padding:80px 0 76px; position:relative; overflow:hidden;}
.pagehead::before{content:""; position:absolute; inset:0; pointer-events:none; z-index:0; background-image:repeating-linear-gradient(115deg, rgba(247,243,233,0.05) 0px, rgba(247,243,233,0.05) 1px, transparent 1px, transparent 34px); -webkit-mask-image:linear-gradient(200deg, black, transparent 60%); mask-image:linear-gradient(200deg, black, transparent 60%);}
.pagehead .wrap{position:relative; z-index:1; display:grid; grid-template-columns:1.3fr 0.7fr; gap:40px; align-items:center;}
.pagehead .eyebrow{color:var(--wheat-light);} .pagehead .eyebrow::before{background:var(--wheat-light);}
.pagehead h1{color:var(--paper); font-size:clamp(32px,4.4vw,50px); line-height:1.08; margin:18px 0 20px;
  opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.15s;}
.pagehead p.lead{font-size:16.5px; color:#D6E3D9; max-width:56ch;
  opacity:0; animation:fadeUp .8s ease forwards; animation-delay:.35s;}
.pagehead p.lead.narrow{max-width:64ch;}
@media (max-width:800px){.pagehead .wrap{grid-template-columns:1fr;}}
.navlinks a.active{color:var(--forest-deep); font-weight:700;}

/* ---------- PLATFORM CONNECTOR (pillars section, home) ---------- */
.platform-connector{width:100%; height:auto; margin:0 auto 4px; display:block;}

/* ---------- ECOSYSTEM HUB (ecosystem section, home) ---------- */
.eco-hub{width:280px; height:auto; margin:8px auto 36px; display:block;}
