:root{
    --ink:#FFFFFF;--ink-2:#F4F7F2;--surface:#F5F8F3;--surface-2:#ECF2EA;
    --line:rgba(30,55,25,0.11);--line-strong:rgba(30,55,25,0.18);
    --text:#152012;--muted:#566550;--muted-2:#869583;
    --accent:#4E8C30;--accent-soft:rgba(78,140,48,0.12);--accent-line:#17A386;
    --radius:14px;--maxw:1180px;--ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;scroll-padding-top:92px}
  body{background:var(--ink);color:var(--text);font-family:"Inter",system-ui,sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}

  /* scroll progress */
  #progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-line));z-index:100;transition:width .1s linear}
  /* cursor glow */
  #glow{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:0;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(132,194,90,.07),transparent 62%);opacity:0;transition:opacity .4s;will-change:transform}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;position:relative;z-index:1}
  a{color:inherit;text-decoration:none}
  h1,h2,h3{font-family:"Inter",system-ui,sans-serif;font-weight:700;letter-spacing:-.025em;line-height:1.08}
  .mono{font-family:"Inter",sans-serif}
  .eyebrow{font-family:"Inter",sans-serif;font-weight:600;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:10px}

  /* NAV */
  header{position:sticky;top:0;z-index:50;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
  header.scrolled{background:rgba(255,255,255,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  nav{display:flex;align-items:center;justify-content:space-between;height:74px}
  .logo{display:flex;align-items:center;gap:12px;font-family:"Inter";font-weight:700;font-size:21px;letter-spacing:-.02em}
  .logo .mark{width:34px;height:34px;flex:none;overflow:visible;transition:transform .35s var(--ease)}
  .logo:hover .mark{transform:translateY(-3px)}
  .logo-img{height:34px;width:auto;display:block;transition:transform .35s var(--ease)}
  .logo:hover .logo-img{transform:translateY(-2px)}
  .nav-links{display:flex;gap:30px;align-items:center}
  .nav-links a{font-size:15px;color:var(--muted);transition:color .2s;position:relative}
  .nav-links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1.5px;background:var(--accent);transition:width .28s var(--ease)}
  .nav-links a:hover{color:var(--text)}
  .nav-links a:hover::after{width:100%}
  .btn{font-family:"Inter",sans-serif;font-weight:600;font-size:15px;padding:11px 20px;border-radius:10px;transition:transform .2s var(--ease),box-shadow .25s,background .25s,border-color .2s;display:inline-flex;align-items:center;gap:9px;cursor:pointer;border:1px solid transparent}
  .btn-primary{background:var(--accent);color:#FFFFFF}
  .btn-primary:hover{background:#5AA83E;box-shadow:0 0 0 1px rgba(78,140,48,.3),0 10px 26px -8px rgba(78,140,48,.45);transform:translateY(-2px)}
  .btn-ghost{border-color:var(--line-strong);color:var(--text);background:transparent}
  .btn-ghost:hover{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px rgba(132,194,90,.25);transform:translateY(-2px)}
  .nav-cta{display:flex;align-items:center;gap:14px}
  .burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
  .burger span{width:24px;height:2px;background:var(--text);transition:.25s}
  .mobile-menu{display:none;flex-direction:column;gap:4px;padding:14px 0;border-top:1px solid var(--line)}
  .mobile-menu a{padding:12px 0;color:var(--muted);font-size:16px;border-bottom:1px solid var(--line)}

  /* HERO */
  .hero{padding:100px 0 70px;position:relative;overflow:hidden;--hero-img:none}
  .hero-bg{position:absolute;top:-8%;left:0;right:0;height:118%;z-index:0;will-change:transform,opacity;opacity:0;transform:scale(1.05);background:var(--hero-img) center right/cover no-repeat,radial-gradient(55% 75% at 80% 26%,rgba(78,140,48,.12),transparent 62%),radial-gradient(46% 56% at 96% 74%,rgba(23,163,134,.09),transparent 60%),radial-gradient(75% 95% at 58% 116%,rgba(78,140,48,.06),transparent 60%)}
  .play .hero-bg{animation:bgIn 1.8s var(--ease) forwards}
  @keyframes bgIn{to{opacity:.9}}
  .hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--ink) 6%,rgba(255,255,255,.7) 36%,rgba(255,255,255,.12) 70%,rgba(255,255,255,.4) 100%),radial-gradient(120% 80% at 62% -10%,transparent 42%,var(--ink) 100%)}
  #net{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.8}
  .hero .wrap{z-index:2}
  .hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:50px;align-items:center}
  .hero h1{font-size:clamp(38px,5.4vw,66px);margin:22px 0 0}
  .line{display:block;overflow:hidden;padding-bottom:.04em}
  .line .in{display:block;transform:translateY(115%);opacity:0}
  .play .line .in{animation:rise .95s var(--ease) forwards}
  .play .line:nth-child(2) .in{animation-delay:.12s}
  @keyframes rise{to{transform:none;opacity:1}}
  .grad{background:linear-gradient(96deg,var(--accent),#2E8C55 55%,var(--accent-line));-webkit-background-clip:text;background-clip:text;color:transparent}
  .fade{opacity:0;transform:translateY(20px)}
  .play .fade{animation:fade .8s var(--ease) forwards}
  .play .fade.d1{animation-delay:.45s}.play .fade.d2{animation-delay:.6s}.play .fade.d3{animation-delay:.78s}
  @keyframes fade{to{opacity:1;transform:none}}
  .lede{font-size:clamp(17px,2vw,20px);color:var(--muted);max-width:540px;margin:26px 0 36px}
  .hero-cta{display:flex;gap:16px;flex-wrap:wrap}
  .hero-stats{display:flex;gap:38px;margin-top:48px;flex-wrap:wrap}
  .hero-stats .s{display:flex;flex-direction:column;gap:4px}
  .hero-stats .num{font-family:"Inter";font-weight:600;font-size:30px}
  .hero-stats .lbl{font-family:"Inter";font-size:12px;letter-spacing:.05em;color:var(--muted-2);text-transform:uppercase}

  .viz{position:relative;background:linear-gradient(160deg,#FFFFFF,#F6F9F4);border:1px solid var(--line-strong);border-radius:18px;padding:26px;box-shadow:0 24px 60px -22px rgba(30,55,25,.20),0 2px 8px rgba(30,55,25,.05);will-change:transform}
  .viz::before{content:"";position:absolute;inset:-30% -20% auto auto;width:60%;height:70%;background:radial-gradient(circle,rgba(132,194,90,.18),transparent 70%);filter:blur(30px);z-index:-1;pointer-events:none}
  .viz-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
  .viz-head .t{font-family:"Inter";font-size:12px;color:var(--muted);letter-spacing:.06em}
  .viz-dots{display:flex;gap:6px}
  .viz-dots i{width:9px;height:9px;border-radius:50%;background:var(--line-strong);display:block}
  .viz-dots i:first-child{background:var(--accent)}
  .viz svg{display:block;width:100%;height:auto}
  /* carousel */
  .carousel{position:relative;overflow:hidden;border-radius:10px}
  .slides{display:flex;transition:transform .6s var(--ease)}
  .slide{flex:0 0 100%;min-width:100%;display:flex;align-items:stretch}
  .slide>svg{width:100%;height:auto;margin:auto}
  .cdots{display:flex;gap:8px;justify-content:center;margin-top:16px}
  .cdot{width:7px;height:7px;border-radius:50%;background:var(--line-strong);border:0;cursor:pointer;padding:0;transition:width .3s var(--ease),background .3s}
  .cdot.on{background:var(--accent);width:22px;border-radius:4px}
  .c-bar{transform:scaleY(.16);transform-origin:bottom;transform-box:fill-box}
  .slide.active .c-bar{animation:cbar .6s var(--ease) both}
  @keyframes cbar{to{transform:scaleY(1)}}
  .c-area{opacity:0}
  .slide.active .c-area{animation:cfade 1s ease .5s both}
  @keyframes cfade{to{opacity:1}}
  .c-line{stroke-dasharray:1;stroke-dashoffset:1}
  .slide.active .c-line{animation:cdraw 1.5s var(--ease) .2s both}
  @keyframes cdraw{to{stroke-dashoffset:0}}
  .c-pt{opacity:0;transform-box:fill-box;transform-origin:center}
  .slide.active .c-pt{animation:cpop .5s var(--ease) both}
  @keyframes cpop{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}
  .c-donut{transform-box:fill-box;transform-origin:center;opacity:0;transform:scale(.84) rotate(-14deg)}
  .slide.active .c-donut{animation:cdon .85s var(--ease) both}
  @keyframes cdon{to{opacity:1;transform:none}}
  .c-leg{opacity:0;transform:translateX(12px)}
  .slide.active .c-leg{animation:cleg .5s var(--ease) both}
  @keyframes cleg{to{opacity:1;transform:none}}
  .c-tiles{display:grid;grid-template-columns:1fr 1fr;gap:11px;width:100%;align-content:center;padding:6px 2px}
  .c-tile{border:1px solid var(--line);border-radius:12px;padding:22px 18px;background:rgba(132,194,90,.045);opacity:0;transform:translateY(16px)}
  .slide.active .c-tile{animation:ctile .55s var(--ease) both}
  @keyframes ctile{to{opacity:1;transform:none}}
  .c-tile .tl{font-family:"Inter";font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
  .c-tile .vl{font-family:"Inter";font-weight:700;font-size:34px;color:var(--text);margin-top:8px;line-height:1}
  .c-tile .vl b{color:var(--accent);font-weight:600}

  /* SECTIONS */
  section{position:relative;z-index:1}
  .sec{padding:108px 0}
  .sec-head{max-width:680px;margin-bottom:54px}
  .sec-head h2{font-size:clamp(30px,4vw,46px);margin-top:18px}
  .sec-head p{color:var(--muted);margin-top:18px;font-size:18px}

  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .svc{background:linear-gradient(180deg,var(--surface),var(--ink-2));border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px 30px;transition:border-color .3s,box-shadow .3s;position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform}
  .svc::after{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),var(--accent-soft),transparent 60%);opacity:0;transition:opacity .35s}
  .svc:hover{border-color:var(--line-strong);box-shadow:0 30px 60px -40px rgba(30,55,25,.10)}
  .svc:hover::after{opacity:1}
  .svc-ico{width:46px;height:46px;border-radius:11px;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;margin-bottom:20px;background:rgba(63,224,176,.05)}
  .svc-ico svg{width:24px;height:24px}
  .svc h3{font-size:21px;margin-bottom:10px}
  .svc p{color:var(--muted);font-size:15.5px;position:relative;z-index:1}

  .proc{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
  .step{padding:34px 26px 36px;border-right:1px solid var(--line);position:relative}
  .step:last-child{border-right:0}
  .step .n{font-family:"Inter";font-size:13px;color:var(--accent);letter-spacing:.1em}
  .step h3{font-size:19px;margin:16px 0 10px}
  .step p{color:var(--muted);font-size:15px}
  .step .bar{position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--accent);transition:width .8s var(--ease)}
  .step.in .bar{width:46px}

  /* industries marquee */
  .marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .track{display:flex;gap:14px;width:max-content;animation:scroll 38s linear infinite}
  .marquee:hover .track{animation-play-state:paused}
  @keyframes scroll{to{transform:translateX(-50%)}}
  .ind{border:1px solid var(--line);border-radius:12px;padding:20px 24px;display:flex;align-items:center;gap:14px;background:var(--ink-2);transition:border-color .25s,background .25s;flex:none}
  .ind:hover{border-color:var(--accent);background:var(--surface)}
  .ind .ico{width:30px;height:30px;flex:none;color:var(--accent-line)}
  .ind .ico svg{width:100%;height:100%}
  .ind span{font-family:"Inter";font-weight:500;font-size:15.5px;white-space:nowrap}

  .why-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:start}
  .why-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
  .why-item{background:var(--ink-2);padding:30px 28px;transition:background .3s}
  .why-item:hover{background:var(--surface)}
  .why-item h3{font-size:19px;margin-bottom:10px;display:flex;align-items:center;gap:11px}
  .why-item h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}
  .why-item p{color:var(--muted);font-size:15px}

  .cta-band{border:1px solid var(--line-strong);border-radius:22px;padding:62px 56px;text-align:center;position:relative;overflow:hidden;background:radial-gradient(140% 130% at 50% 0%,rgba(132,194,90,.10),transparent 55%),linear-gradient(180deg,var(--surface),var(--ink-2))}
  .cta-band h2{font-size:clamp(28px,4vw,42px);max-width:680px;margin:0 auto 18px}
  .cta-band p{color:var(--muted);max-width:520px;margin:0 auto 32px;font-size:18px}
  .cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
  .cta-meta{margin-top:88px;font-family:"Inter",sans-serif;font-size:13px;color:var(--muted-2);letter-spacing:.04em;line-height:1.7}
  .cta-meta a{color:var(--accent-line)}

  footer{border-top:1px solid var(--line);padding:54px 0 40px;margin-top:108px}
  .foot{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
  .foot .col h4{font-family:"Inter";font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);margin-bottom:16px}
  .foot .col a{display:block;color:var(--muted);font-size:15px;margin-bottom:9px;transition:color .2s}
  .foot .col a:hover{color:var(--text)}
  .foot-bottom{margin-top:44px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted-2);font-size:13.5px;flex-wrap:wrap;gap:12px}

  .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  .reveal.in{opacity:1;transform:none}
  .stagger.in > *{animation:rise2 .7s var(--ease) forwards}
  .stagger > *{opacity:0}
  .stagger.in > *:nth-child(1){animation-delay:.0s}
  .stagger.in > *:nth-child(2){animation-delay:.08s}
  .stagger.in > *:nth-child(3){animation-delay:.16s}
  .stagger.in > *:nth-child(4){animation-delay:.24s}
  .stagger.in > *:nth-child(5){animation-delay:.32s}
  .stagger.in > *:nth-child(6){animation-delay:.40s}
  @keyframes rise2{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

  @media(max-width:980px){
    .hero-grid{grid-template-columns:1fr;gap:44px}
    .svc-grid{grid-template-columns:repeat(2,1fr)}
    .proc{grid-template-columns:1fr 1fr}
    .step{border-bottom:1px solid var(--line)}
    .step:nth-child(odd){border-right:1px solid var(--line)}
    .step:nth-child(even){border-right:0}
    .why-wrap{grid-template-columns:1fr;gap:36px}
  }
  @media(max-width:680px){
    .nav-links{display:none}.nav-cta .btn-ghost{display:none}.burger{display:flex}
    .svc-grid{grid-template-columns:1fr}.why-list{grid-template-columns:1fr}
    .cta-band{padding:44px 26px}.sec{padding:74px 0}.hero{padding:60px 0 40px}
    .mobile-menu.open{display:flex}#glow{display:none}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
    .reveal,.fade,.stagger>*,.line .in{opacity:1!important;transform:none!important}
    .trend-line{stroke-dashoffset:0}.vd,.area-fill{opacity:1}
    .hero-bg{opacity:.85!important}
    .c-bar,.c-donut,.c-leg,.c-area,.c-pt,.c-tile{opacity:1!important;transform:none!important}
    .c-line{stroke-dashoffset:0!important}
  }
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
/* ---------- CONTACT MODAL ---------- */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(18,28,16,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-card{position:relative;width:100%;max-width:460px;background:linear-gradient(160deg,#FFFFFF,#F5F8F3);border:1px solid var(--line-strong);border-radius:18px;padding:34px 30px 30px;box-shadow:0 40px 100px -28px rgba(30,55,25,.12);animation:mIn .4s var(--ease)}
@keyframes mIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.modal-x{position:absolute;top:12px;right:16px;background:none;border:0;color:var(--muted);font-size:28px;line-height:1;cursor:pointer;transition:color .2s;padding:4px}
.modal-x:hover{color:var(--text)}
.modal-card h3{font-size:26px;margin:14px 0 8px}
.modal-sub{color:var(--muted);font-size:15px;margin-bottom:22px}
.field{margin-bottom:16px}
.field label{display:block;font-family:"Inter",sans-serif;font-size:12px;letter-spacing:.04em;color:var(--muted);margin-bottom:7px}
.field input,.field textarea{width:100%;background:rgba(30,55,25,.05);border:1px solid var(--line-strong);border-radius:10px;padding:12px 14px;color:var(--text);font-family:"Inter",sans-serif;font-size:15px;transition:border-color .2s,background .2s;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-2)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:rgba(132,194,90,.06)}
.field.invalid input,.field.invalid textarea{border-color:#e0683f}
#formSubmit{width:100%;justify-content:center;margin-top:6px}
#formSubmit[disabled]{opacity:.6;cursor:default}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.form-note{font-size:14px;margin-top:14px;text-align:center;line-height:1.5}
.form-note.ok{color:var(--accent)}
.form-note.err{color:#e8916b}
body.modal-open{overflow:hidden}
