﻿:root{
    --bg:#0B0F19;
    --surface:#131826;
    --surface-2:#1A2133;
    --border:rgba(245,243,238,0.10);
    --amber:#F2A93B;
    --teal:#35D0BA;
    --text:#F5F3EE;
    --text-muted:#9BA3B4;
    --font-display:'Space Grotesk', sans-serif;
    --font-body:'IBM Plex Sans', sans-serif;
    --font-mono:'IBM Plex Mono', monospace;
    --maxw:1120px;
    color-scheme: dark;
  }

  [data-theme="light"]{
    --bg:#F7F5F0;
    --surface:#FFFFFF;
    --surface-2:#EFEBE2;
    --border:rgba(11,15,25,0.10);
    --text:#12141C;
    --text-muted:#5B6272;
    color-scheme: light;
  }

  body{ transition: background .25s ease, color .25s ease; }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
  }

  body{
    background:var(--bg);
    color:var(--text);
    font-family:var(--font-body);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  a{ color:inherit; }
  :focus-visible{ outline:2px solid var(--teal); outline-offset:3px; border-radius:2px; }

  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }

  .eyebrow{
    font-family:var(--font-mono);
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    background:var(--teal);
    border-radius:50%;
    display:inline-block;
    box-shadow:0 0 8px var(--teal);
  }

  h1,h2,h3{ font-family:var(--font-display); font-weight:600; letter-spacing:-0.01em; }

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(11,15,25,0.85);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border);
  }
  nav.wrap{
    display:flex; align-items:center; justify-content:space-between;
    height:72px;
  }
  .logo{
    font-family:var(--font-display);
    font-weight:700;
    font-size:19px;
    letter-spacing:-0.02em;
    text-decoration:none;
    display:flex; align-items:center; gap:9px;
  }
  .logo-mark{
    width:22px; height:22px;
    display:inline-flex;
  }
  .nav-links{
    display:flex; align-items:center; gap:32px;
    list-style:none;
  }
  .nav-links a{
    text-decoration:none;
    font-size:14.5px;
    color:var(--text-muted);
    transition:color .2s ease;
  }
  .nav-links a:hover{ color:var(--text); }
  .nav-cta{
    font-family:var(--font-mono);
    font-size:13px;
    color:var(--bg) !important;
    background:var(--amber);
    padding:9px 16px;
    border-radius:6px;
    text-decoration:none;
    transition:transform .15s ease, box-shadow .15s ease;
    white-space:nowrap;
  }
  .nav-cta:hover{ transform:translateY(-1px); box-shadow:0 6px 20px rgba(242,169,59,0.25); }
  .nav-right{ display:flex; align-items:center; gap:14px; }
  .theme-toggle{
    background:transparent;
    border:1px solid var(--border);
    color:var(--text-muted);
    width:36px; height:36px;
    border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    transition:border-color .2s ease, color .2s ease;
  }
  .theme-toggle:hover{ border-color:var(--teal); color:var(--teal); }
  .nav-toggle{ display:none; }

  /* ---------- HERO ---------- */
  .hero{
    padding:96px 0 64px;
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute;
    top:-200px; right:-200px;
    width:520px; height:520px;
    background:radial-gradient(circle, rgba(242,169,59,0.10) 0%, transparent 70%);
    pointer-events:none;
  }
  .hero-inner{ max-width:720px; }
  .hero h1{
    font-size:clamp(40px, 6vw, 62px);
    line-height:1.05;
    margin:20px 0 22px;
  }
  .hero h1 .accent{ color:var(--amber); }
  .hero p.lead{
    font-size:18px;
    color:var(--text-muted);
    max-width:560px;
    margin-bottom:34px;
  }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:80px; }

  .btn{
    font-family:var(--font-body);
    font-weight:600;
    font-size:15px;
    padding:14px 24px;
    border-radius:8px;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
    border:1px solid transparent;
  }
  .btn-primary{
    background:var(--amber);
    color:var(--bg);
  }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 28px rgba(242,169,59,0.28); }
  .btn-ghost{
    background:transparent;
    border-color:var(--border);
    color:var(--text);
  }
  .btn-ghost:hover{ border-color:var(--teal); color:var(--teal); }

  /* ---------- FLOW DIAGRAM (signature element) ---------- */
  .flow{
    display:flex;
    align-items:center;
    gap:0;
    padding:36px 28px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:16px;
    overflow-x:auto;
  }
  .flow-node{
    flex:0 0 auto;
    text-align:center;
    padding:0 4px;
    min-width:150px;
  }
  .flow-node .dot{
    width:14px; height:14px;
    border-radius:50%;
    background:var(--surface-2);
    border:2px solid var(--text-muted);
    margin:0 auto 14px;
  }
  .flow-node.active .dot{
    background:var(--amber);
    border-color:var(--amber);
    box-shadow:0 0 0 6px rgba(242,169,59,0.15), 0 0 16px rgba(242,169,59,0.5);
    animation:pulse 2.4s ease-in-out infinite;
  }
  @keyframes pulse{
    0%,100%{ box-shadow:0 0 0 6px rgba(242,169,59,0.15), 0 0 16px rgba(242,169,59,0.5); }
    50%{ box-shadow:0 0 0 10px rgba(242,169,59,0.08), 0 0 22px rgba(242,169,59,0.65); }
  }
  .flow-node .label{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--text-muted);
    text-transform:uppercase;
    letter-spacing:0.06em;
    line-height:1.5;
  }
  .flow-node.active .label{ color:var(--amber); font-weight:500; }
  .flow-line{
    flex:1 1 60px;
    min-width:40px;
    height:2px;
    background:repeating-linear-gradient(90deg, var(--border) 0 6px, transparent 6px 12px);
    position:relative;
    top:-24px;
  }

  /* ---------- SECTION SHELL ---------- */
  section{ padding:88px 0; border-top:1px solid var(--border); }
  .section-head{ max-width:620px; margin-bottom:52px; }
  .section-head h2{
    font-size:clamp(28px,3.6vw,38px);
    margin-top:14px;
    line-height:1.15;
  }

  /* ---------- ABOUT ---------- */
  .about-statement{
    font-family:var(--font-display);
    font-size:clamp(22px, 2.6vw, 30px);
    font-weight:500;
    line-height:1.4;
    max-width:760px;
    color:var(--text);
  }
  .about-statement .accent{ color:var(--teal); }
  .about-body{
    margin-top:24px;
    max-width:620px;
    color:var(--text-muted);
    font-size:16px;
  }
  .vision-block{
    margin-top:56px;
    padding:32px;
    background:var(--surface);
    border:1px solid var(--border);
    border-left:3px solid var(--amber);
    border-radius:10px;
  }
  .vision-statement{
    margin-top:12px;
    font-family:var(--font-display);
    font-size:clamp(18px,2vw,22px);
    font-weight:500;
    line-height:1.5;
    max-width:680px;
  }
  .values-head{ margin-top:56px; margin-bottom:24px; }

  /* ---------- SERVICES ---------- */
  .grid-3{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:20px;
  }
  .card{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:14px;
    padding:30px 26px;
    transition:border-color .2s ease, transform .2s ease;
  }
  .card:hover{ border-color:var(--teal); transform:translateY(-3px); }
  .card .tag{
    font-family:var(--font-mono);
    font-size:11px;
    color:var(--amber);
    letter-spacing:0.08em;
  }
  .card h3{
    font-size:19px;
    margin:14px 0 10px;
  }
  .card p{
    color:var(--text-muted);
    font-size:14.5px;
  }

  /* ---------- PROCESS (reuses pathway motif vertically) ---------- */
  .process{ display:flex; flex-direction:column; }
  .step{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:24px;
    position:relative;
    padding-bottom:48px;
  }
  .step:last-child{ padding-bottom:0; }
  .step-num-col{
    display:flex; flex-direction:column; align-items:center;
  }
  .step-num{
    font-family:var(--font-mono);
    font-size:13px;
    color:var(--bg);
    background:var(--teal);
    width:36px; height:36px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    flex:0 0 auto;
    z-index:1;
  }
  .step-track{
    flex:1;
    width:2px;
    background:var(--border);
    margin-top:6px;
  }
  .step:last-child .step-track{ display:none; }
  .step-body h3{ font-size:19px; margin-bottom:8px; }
  .step-body p{ color:var(--text-muted); font-size:15px; max-width:520px; }

  /* ---------- PROJECTS (empty state) ---------- */
  .project-empty{
    display:flex;
    align-items:flex-start;
    gap:18px;
    padding:30px 28px;
    background:var(--surface);
    border:1px dashed var(--border);
    border-radius:14px;
  }
  .project-empty-dot{
    width:12px; height:12px;
    border-radius:50%;
    background:var(--teal);
    margin-top:6px;
    flex:0 0 auto;
    animation:pulse-teal 2.4s ease-in-out infinite;
  }
  @keyframes pulse-teal{
    0%,100%{ box-shadow:0 0 0 5px rgba(53,208,186,0.12); }
    50%{ box-shadow:0 0 0 9px rgba(53,208,186,0.05); }
  }
  .project-empty h3{ font-size:17px; margin-bottom:8px; }
  .project-empty p{ color:var(--text-muted); font-size:14.5px; max-width:520px; }

  /* ---------- WHY ---------- */
  .grid-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px 32px;
  }
  .why-item{
    display:flex;
    gap:14px;
    padding:20px 0;
    border-bottom:1px solid var(--border);
  }
  .why-item .mark{
    color:var(--amber);
    font-family:var(--font-mono);
    font-size:15px;
    flex:0 0 auto;
    margin-top:2px;
  }
  .why-item h3{ font-size:16px; font-weight:600; margin-bottom:4px; }
  .why-item p{ color:var(--text-muted); font-size:14.5px; }

  /* ---------- CTA / CONTACT ---------- */
  .cta-section{
    text-align:center;
    padding:100px 0;
  }
  .cta-section h2{
    font-size:clamp(30px, 4.5vw, 46px);
    max-width:620px;
    margin:18px auto 16px;
  }
  .cta-section p{
    color:var(--text-muted);
    max-width:480px;
    margin:0 auto 36px;
    font-size:16px;
  }
  .cta-buttons{
    display:flex;
    gap:14px;
    justify-content:center;
    flex-wrap:wrap;
  }
  .contact-row{
    margin-top:44px;
    display:flex;
    justify-content:center;
    gap:32px;
    flex-wrap:wrap;
    font-family:var(--font-mono);
    font-size:14px;
    color:var(--text-muted);
  }
  .contact-row a{ text-decoration:none; color:var(--text-muted); transition:color .2s; }
  .contact-row a:hover{ color:var(--teal); }

  footer{
    border-top:1px solid var(--border);
    padding:32px 0;
    text-align:center;
    color:var(--text-muted);
    font-size:13px;
    font-family:var(--font-mono);
  }

  /* ---------- scroll reveal ---------- */
  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 860px){
    .grid-3{ grid-template-columns:1fr; }
    .grid-2{ grid-template-columns:1fr; }
    .nav-links{
      position:fixed; inset:72px 0 0 0;
      background:var(--bg);
      flex-direction:column;
      padding:32px 28px;
      gap:22px;
      transform:translateY(-110%);
      transition:transform .25s ease;
      border-top:1px solid var(--border);
    }
    .nav-links.open{ transform:translateY(0); }
    .nav-toggle{
      display:block;
      background:none; border:none;
      color:var(--text);
      font-size:22px;
      cursor:pointer;
      line-height:1;
    }
    .flow{ flex-direction:column; }
    .flow-line{ display:none; }
    .flow-node{ min-width:0; }
  }
/* Mobile navigation and floating contact */
.nav-toggle{width:42px;height:42px;padding:9px;background:transparent;border:1px solid var(--border);border-radius:8px;cursor:pointer}
.nav-toggle span{display:block;width:20px;height:2px;margin:4px auto;background:var(--text);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.nav-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:60;display:flex;align-items:center;gap:9px;min-height:54px;padding:0 18px 0 15px;background:#25d366;color:#07150c;border-radius:999px;text-decoration:none;font-weight:700;box-shadow:0 12px 32px rgba(0,0,0,.3);transition:transform .2s ease,box-shadow .2s ease}
.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(0,0,0,.38)}
.whatsapp-float svg{width:27px;height:27px;fill:currentColor}
@media(max-width:860px){
  body.menu-open{overflow:hidden}
  section{padding:68px 0}
  .wrap{padding-inline:20px}
  nav.wrap{height:64px}
  .hero{padding:64px 0 44px}
  .hero h1{font-size:clamp(38px,12vw,52px);line-height:1.08}
  .hero p.lead{font-size:17px}
  .hero-ctas{margin-bottom:44px}
  .nav-links{inset:64px 0 auto;min-height:calc(100dvh - 64px);padding:28px 24px;transform:translateY(-120%);visibility:hidden;transition:transform .25s ease,visibility .25s;border-bottom:1px solid var(--border);box-shadow:0 18px 36px rgba(0,0,0,.22)}
  .nav-links.open{transform:translateY(0);visibility:visible}
  .nav-links a{display:block;width:100%;padding:10px 0;font-size:17px}
  .nav-links .nav-cta{margin-top:8px;padding:12px 16px;text-align:center}
  .flow{padding:24px 18px;flex-direction:row}
  .flow-node{min-width:105px}
  .flow-line{display:block;min-width:22px}
  .vision-block{padding:24px 22px}
  .step{grid-template-columns:48px 1fr;gap:14px}
  .contact-row{gap:16px;flex-direction:column;align-items:center}
  .whatsapp-float{right:16px;bottom:16px;width:56px;height:56px;min-height:0;padding:0;justify-content:center}
  .whatsapp-float span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media(max-width:480px){.theme-toggle{display:none}.hero-ctas .btn{width:100%;justify-content:center}.flow{overflow-x:auto;justify-content:flex-start}}