@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

  :root{
    --bg:#F7F8FA;
    --bg-alt:#EEF1F5;
    --panel:#FFFFFF;
    --ink:#11141A;
    --ink-soft:#4B5262;
    --ink-faint:#848D9E;
    --line:#E1E5EC;
    --teal:#276E68;
    --teal-soft:#E4EFED;
    --indigo:#5457E5;
    --indigo-soft:#ECEDFC;
    --amber:#E79A34;
    --amber-soft:#FCEEDD;
    --radius:14px;
    --max:1180px;
    font-size:16px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Space Grotesk','Inter',sans-serif;
    line-height:1.15;
    margin:0 0 .5em 0;
    letter-spacing:-0.01em;
    color:var(--ink);
  }
  .mono{font-family:'IBM Plex Mono',monospace;}
  p{margin:0 0 1em 0;color:var(--ink-soft);}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .container{max-width:var(--max);margin:0 auto;padding:0 24px;}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:.72rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--teal);
    display:flex;align-items:center;gap:8px;
    margin-bottom:14px;
  }
  .eyebrow::before{content:"";width:18px;height:1px;background:var(--teal);display:inline-block;}
  section{padding:110px 0;}
  @media(max-width:720px){ section{padding:64px 0;} }

  /* ---------- CONTACT FORM MODAL ---------- */
  body.modal-open{overflow:hidden;}
  .cta-modal-overlay{
    position:fixed;
    inset:0;
    background:rgba(17,20,26,.44);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    opacity:0;
    visibility:hidden;
    transition:opacity .22s ease, visibility .22s ease;
    z-index:200;
  }
  .cta-modal-overlay.open{opacity:1;visibility:visible;}
  .cta-modal{
    width:min(680px, calc(100vw - 48px));
    background:var(--panel);
    border-radius:var(--radius);
    padding:30px;
    box-shadow:0 24px 80px rgba(0,0,0,.28);
    position:relative;
    border:1px solid var(--line);
  }
  .cta-modal-head{margin-bottom:20px;}
  .cta-modal-head h3{font-size:clamp(2rem,4vw,2.6rem);margin:8px 0 0;}
  .cta-modal-kicker{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);display:block;}
  .cta-modal-close{
    position:absolute;right:16px;top:14px;border:none;background:transparent;color:var(--ink-soft);font-size:30px;line-height:1;cursor:pointer;
  }
  .cta-modal-close:hover{color:var(--teal);}
  .cta-form{display:flex;flex-direction:column;gap:16px;}
  .cta-modal-grid{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;}
  .cta-modal-grid.two-columns{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:16px;}
  .cta-field{flex:1;display:flex;flex-direction:column;gap:8px;min-width:180px;}
  .cta-field-wide{width:100%;}
  @media(max-width:560px){
    .cta-modal{padding:22px 18px;}
    .cta-modal-grid.two-columns{grid-template-columns:1fr;}
    .cta-field{min-width:0;}
  }
  .cta-label{font-size:.86rem;font-weight:700;color:var(--ink-soft);font-family:'Inter',sans-serif;}
  .cta-field input,
  .cta-field select,
  .cta-field textarea{
    width:100%;min-height:44px;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:11px 12px;font:inherit;color:var(--ink);outline:none;transition:border-color .14s, box-shadow .14s, background .14s;
  }
  .cta-field textarea{min-height:128px;resize:vertical;}
  .cta-field input:focus,
  .cta-field select:focus,
  .cta-field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(39,110,104,.12);background:#fff;}
  .cta-form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:10px;}
  .cta-form-actions .btn{min-width:130px;justify-content:center;}
  .cta-form-status{font-family:'IBM Plex Mono',monospace;font-size:.76rem;color:var(--teal);min-height:24px;margin-top:8px;}
  .cta-form-status.loading{color:var(--amber);} 

  /* ---------- NAV ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(247,248,250,.85);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav.container{
    display:flex;align-items:center;justify-content:space-between;
    height:76px;
  }
  .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.15rem;}
  .brand-mark{width:30px;height:30px;flex-shrink:0;}
  .brand-name{font-family:'Space Grotesk',sans-serif;}
  .brand-name em{
    font-style:normal;color:var(--teal);
  }
  .nav-links{display:flex;gap:32px;align-items:center;}
  .nav-links a{font-size:.92rem;color:var(--ink-soft);transition:color .15s;}
  .nav-links a:hover{color:var(--ink);}
  .nav-cta{
    background:var(--ink);color:#fff !important;
    padding:10px 20px;border-radius:8px;font-size:.88rem;font-weight:600;
    transition:background .15s;
  }
  .nav-cta:hover{background:var(--teal);}
  .nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:6px;}
  .nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;}
  @media(max-width:860px){
    .nav-links{
      position:fixed;inset:76px 0 auto 0;background:var(--panel);
      flex-direction:column;align-items:flex-start;gap:0;
      border-bottom:1px solid var(--line);
      transform:translateY(-120%);opacity:0;transition:all .25s ease;
      padding:8px 24px 20px;
    }
    .nav-links.open{transform:translateY(0);opacity:1;}
    .nav-links a{width:100%;padding:14px 0;border-bottom:1px solid var(--line);}
    .nav-cta{margin-top:14px;text-align:center;}
    .nav-toggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{
    padding-top:88px;padding-bottom:70px;position:relative;overflow:hidden;
    background-image:radial-gradient(rgba(17,20,26,.05) 1px, transparent 1px);
    background-size:24px 24px;
  }
  .hero-grid{
    display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;
    position:relative;z-index:1;
  }
  @media(max-width:900px){ .hero-grid{grid-template-columns:1fr;} }
  .hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem);}
  .hero h1 .accent{color:var(--teal);}
  .hero p.lead{font-size:1.12rem;max-width:520px;}
  .hero-ctas{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap;}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:14px 24px;border-radius:9px;font-weight:600;font-size:.95rem;
    cursor:pointer;border:1px solid transparent;transition:transform .15s,background .15s,border-color .15s;
  }
  .btn-primary{background:var(--ink);color:#fff;}
  .btn-primary:hover{background:var(--teal);transform:translateY(-1px);}
  .btn-ghost{border-color:var(--line);color:var(--ink);background:transparent;}
  .btn-ghost:hover{border-color:var(--ink);}

  .hero-visual{position:relative;}
  .morph-card{
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:26px;box-shadow:0 30px 60px -30px rgba(17,20,26,.18);
  }
  .morph-label{font-family:'IBM Plex Mono',monospace;font-size:.7rem;color:var(--ink-faint);display:flex;justify-content:space-between;margin-bottom:14px;}

  /* ---- decorative background blobs ---- */
  .bg-blob{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:0;}
  .hero .bg-blob-1{width:420px;height:420px;background:radial-gradient(circle,rgba(39,110,104,.16),transparent 70%);top:-140px;left:-120px;animation:driftA 16s ease-in-out infinite;}
  .hero .bg-blob-2{width:380px;height:380px;background:radial-gradient(circle,rgba(84,87,229,.14),transparent 70%);bottom:-160px;right:-100px;animation:driftB 20s ease-in-out infinite;}
  .hero .bg-blob-3{width:220px;height:220px;background:radial-gradient(circle,rgba(231,154,52,.16),transparent 70%);top:30%;right:18%;animation:driftA 13s ease-in-out infinite reverse;}
  @keyframes driftA{0%,100%{translate:0 0;}50%{translate:24px -18px;}}
  @keyframes driftB{0%,100%{translate:0 0;}50%{translate:-20px 22px;}}
  @media(max-width:720px){ .bg-blob{display:none;} }
  @media (prefers-reduced-motion: reduce){ .bg-blob{animation:none;} }

  /* ---- floating accent cards on hero visual ---- */
  .float-card{
    position:absolute;display:flex;align-items:center;gap:10px;
    background:var(--panel);border:1px solid var(--line);border-radius:12px;
    padding:10px 14px;box-shadow:0 18px 40px -16px rgba(17,20,26,.22);
    font-size:.8rem;font-weight:600;color:var(--ink);z-index:2;
    animation:floatyUp 5s ease-in-out infinite;
  }
  @keyframes floatyUp{0%,100%{translate:0 0;}50%{translate:0 -6px;}}
  .float-card .float-icon{
    width:26px;height:26px;border-radius:50%;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
  }
  .float-card-top{top:-18px;right:10px;animation-delay:.2s;}
  .float-card-bottom{top:63%;left:-30px;transform:translateY(-50%);animation-delay:1.1s;}
  .float-card span.sub{display:block;font-weight:400;color:var(--ink-faint);font-size:.72rem;}
  @media(max-width:900px){
    .float-card-top{top:-10px;right:6px;}
    .float-card-bottom{left:-14px;}
  }
  @media(max-width:480px){ .float-card{display:none;} }
  @media (prefers-reduced-motion: reduce){ .float-card{animation:none;} }

  /* -------- trust strip (marquee) -------- */
  .trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;background:var(--panel);overflow:hidden;}
  .trust-label{
    font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--ink-faint);letter-spacing:.05em;
    display:block;margin-bottom:20px;
  }
  .marquee{
    overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
  }
  .marquee-track{
    display:flex;align-items:center;gap:56px;width:max-content;
    animation:marquee 26s linear infinite;
  }
  .marquee:hover .marquee-track{animation-play-state:paused;}
  .marquee-track img{height:28px;width:auto;flex-shrink:0;}
  @keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-16.6667%);}}
  @media (prefers-reduced-motion: reduce){ .marquee-track{animation:none;} }

  /* -------- before / after transformation -------- */
  .transform-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;}
  @media(max-width:860px){.transform-grid{grid-template-columns:1fr;}}
  .transform-panel{
    border:1px solid var(--line);border-radius:var(--radius);
    padding:22px;height:340px;position:relative;overflow:hidden;
  }
  .transform-before{background:var(--bg-alt);}
  .transform-after{background:var(--panel);box-shadow:0 30px 60px -30px rgba(17,20,26,.18);}
  .transform-tag{
    font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.1em;
    padding:4px 10px;border-radius:100px;display:inline-block;margin-bottom:6px;
  }
  .transform-before .transform-tag{background:#F3DEDE;color:#9A4A4A;}
  .transform-after .transform-tag{background:var(--teal-soft);color:var(--teal);}
  .transform-caption{font-size:.82rem;color:var(--ink-faint);margin:0;}

  .chaos-chip{
    position:absolute;display:flex;align-items:center;gap:7px;
    background:var(--panel);border:1px solid var(--line);border-radius:9px;
    padding:8px 11px;font-size:.74rem;color:var(--ink-soft);font-weight:500;
    box-shadow:0 10px 20px -12px rgba(17,20,26,.18);white-space:nowrap;
    animation:jitter 6s ease-in-out infinite;
  }
  .chaos-chip svg{flex-shrink:0;color:#B5605D;}
  @keyframes jitter{0%,100%{translate:0 0;}50%{translate:0 -4px;}}
  @media (prefers-reduced-motion: reduce){ .chaos-chip{animation:none;} }
  @media(max-width:640px){
    .transform-panel{height:auto;}
    .transform-before{display:flex;flex-direction:column;gap:10px;padding-top:22px;}
    .chaos-chip{
      position:static !important;transform:none !important;white-space:normal;
      width:fit-content;
    }
  }

  .transform-arrow{
    width:44px;height:44px;border-radius:50%;background:var(--amber-soft);color:var(--amber);
    display:flex;align-items:center;justify-content:center;margin:0 auto;
    animation:arrowPulse 2s ease-in-out infinite;
  }
  @keyframes arrowPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.12);}}
  @media(max-width:860px){.transform-arrow{transform:rotate(90deg);}}
  @media (prefers-reduced-motion: reduce){ .transform-arrow{animation:none;} }

  .mini-dash{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--bg-alt);}
  .mini-dash-bar{background:var(--panel);padding:8px 12px;display:flex;gap:5px;align-items:center;border-bottom:1px solid var(--line);}
  .mini-dash-bar span{width:6px;height:6px;border-radius:50%;background:var(--line);}
  .mini-dash-body{padding:14px;}
  .mini-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
  .mini-kpi{background:var(--panel);border-radius:7px;padding:9px 10px;}
  .mini-kpi span{display:block;font-family:'IBM Plex Mono',monospace;font-size:.62rem;color:var(--ink-faint);margin-bottom:3px;}
  .mini-kpi strong{font-size:.98rem;color:var(--ink);}
  .mini-chart{display:flex;align-items:flex-end;gap:6px;height:64px;background:var(--panel);border-radius:7px;padding:10px;}
  .mini-chart i{flex:1;border-radius:2px;display:block;}

  /* -------- services -------- */
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head h2{font-size:clamp(1.7rem,3vw,2.3rem);}
  .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  @media(max-width:960px){.services-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:640px){.services-grid{grid-template-columns:1fr;}}
  .service-card{
    display:block;
    background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
    padding:30px 26px;transition:border-color .2s,transform .2s;
  }
  .service-card:hover{border-color:var(--teal);transform:translateY(-3px);}
  .service-icon{
    width:52px;height:52px;border-radius:13px;background:var(--teal-soft);
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--teal);
    transition:transform .3s cubic-bezier(.2,.9,.3,1.3),border-radius .3s;
  }
  .service-card:hover .service-icon{transform:scale(1.08) rotate(-4deg);border-radius:16px;}
  .service-icon svg{width:22px;height:22px;}
  .service-icon.c-indigo{background:var(--indigo-soft);color:var(--indigo);}
  .service-icon.c-amber{background:var(--amber-soft);color:var(--amber);}
  .service-card h3{font-size:1.12rem;margin-bottom:8px;}
  .service-card p{font-size:.93rem;margin-bottom:0;}

  /* -------- approach -------- */
  .approach{background:var(--ink);color:#fff;border-radius:22px;margin:0 24px;padding:70px 50px;}
  @media(max-width:720px){.approach{padding:46px 24px;margin:0 12px;}}
  .approach-inner{max-width:var(--max);margin:0 auto;}
  .approach-quote{
    font-family:'Space Grotesk',sans-serif;font-size:clamp(1.4rem,3vw,2.1rem);
    max-width:760px;margin-bottom:50px;color:#fff;
  }
  .approach-quote span{color:#8FE0D6;}
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
  @media(max-width:800px){.steps{grid-template-columns:1fr;}}
  .step-icon{
    width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.08);
    display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:#8FE0D6;
  }
  .step-icon svg{width:20px;height:20px;}
  .step .num{font-family:'IBM Plex Mono',monospace;color:#8FE0D6;font-size:.8rem;letter-spacing:.1em;margin-bottom:10px;}
  .step h4{color:#fff;font-size:1.08rem;}
  .step p{color:#B7BDC9;font-size:.93rem;}

  /* -------- industries -------- */
  .industries-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  @media(max-width:800px){.industries-grid{grid-template-columns:1fr;}}
  .industry-card{
    border:1px solid var(--line);border-radius:var(--radius);padding:26px;
    background:linear-gradient(180deg,var(--panel),var(--bg-alt));
    transition:transform .2s,box-shadow .2s;
  }
  .industry-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px -24px rgba(17,20,26,.22);}
  .industry-icon{
    width:46px;height:46px;border-radius:12px;background:var(--teal-soft);
    display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--teal);
    transition:transform .3s cubic-bezier(.2,.9,.3,1.3),border-radius .3s;
  }
  .industry-card:hover .industry-icon{transform:scale(1.08) rotate(-4deg);border-radius:15px;}
  .industry-icon svg{width:22px;height:22px;}
  .industry-icon.c-indigo{background:var(--indigo-soft);color:var(--indigo);}
  .industry-icon.c-amber{background:var(--amber-soft);color:var(--amber);}
  .industry-card h3{font-size:1rem;}
  .industry-card p{font-size:.88rem;}

  /* -------- tech stack -------- */
  .stack-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
  @media(max-width:800px){.stack-wrap{grid-template-columns:repeat(2,1fr);}}
  .stack-cell{background:var(--panel);padding:24px;}
  .stack-cell h4{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-family:'IBM Plex Mono',monospace;margin-bottom:12px;}
  .stack-cell p{font-size:.87rem;color:var(--ink-soft);margin:0;}

  /* -------- cta band -------- */
  .cta-band{
    background:linear-gradient(120deg,var(--teal),var(--indigo));
    border-radius:22px;margin:0 24px;padding:60px 50px;text-align:center;color:#fff;
  }
  @media(max-width:720px){.cta-band{padding:46px 24px;margin:0 12px;}}
  .cta-band h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);max-width:640px;margin:0 auto 14px;}
  .cta-band p{color:rgba(255,255,255,.88);max-width:560px;margin:0 auto 30px;}
  .cta-band .btn-primary{background:#fff;color:var(--ink);}
  .cta-band .btn-primary:hover{background:#0000;color:#fff;border:1px solid #fff;}

  /* -------- footer -------- */
  footer{padding:70px 0 30px;}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px;}
  @media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:480px){.footer-grid{grid-template-columns:1fr;}}
  .footer-grid h5{font-family:'IBM Plex Mono',monospace;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;}
  .footer-grid a{display:block;font-size:.9rem;color:var(--ink-soft);margin-bottom:10px;}
  .footer-grid a:hover{color:var(--ink);}
  .footer-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.82rem;color:var(--ink-faint);}

  /* reveal animation */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

/* ================= SHARED ACROSS SERVICE PAGES ================= */

.breadcrumb{display:flex;gap:8px;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--ink-faint);margin-bottom:22px;}
.breadcrumb a{color:var(--ink-faint);}
.breadcrumb a:hover{color:var(--teal);}

/* nav dropdown */
.has-dropdown{position:relative;}
.dropdown{
  position:absolute;top:100%;left:0;margin-top:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 24px 48px -20px rgba(17,20,26,.18);
  min-width:260px;padding:10px;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:all .18s ease;
}
.has-dropdown:hover .dropdown,.has-dropdown:focus-within .dropdown{opacity:1;visibility:visible;transform:none;}
.dropdown a{display:flex;flex-direction:column;padding:11px 14px;border-radius:8px;border-bottom:none !important;margin:0;}
.dropdown a:hover{background:var(--bg-alt);}
.dropdown a strong{font-size:.88rem;color:var(--ink);font-weight:600;}
.dropdown a span{font-size:.78rem;color:var(--ink-faint);}
@media(max-width:860px){
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;padding:0 0 0 14px;margin-top:6px;display:none;}
  .has-dropdown.open .dropdown{display:block;}
}

/* subhero — used at the top of every service page */
.subhero{padding:70px 0 60px;}
.subhero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
@media(max-width:900px){.subhero-grid{grid-template-columns:1fr;}}
.subhero h1{font-size:clamp(1.9rem,3.6vw,2.7rem);}
.subhero p.lead{font-size:1.05rem;max-width:480px;}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px;}
.pill{font-family:'IBM Plex Mono',monospace;font-size:.72rem;background:var(--bg-alt);border:1px solid var(--line);color:var(--ink-soft);padding:6px 12px;border-radius:100px;}
.pill-logo{display:inline-flex;align-items:center;padding:6px 16px;}
.pill-logo img{height:18px;width:auto;display:block;}

.visual-frame{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:0 30px 60px -30px rgba(17,20,26,.16);min-height:260px;
  display:flex;align-items:center;justify-content:center;
}

/* checklist */
.checklist{display:grid;grid-template-columns:1fr 1fr;gap:16px 32px;}
@media(max-width:700px){.checklist{grid-template-columns:1fr;}}
.check-item{display:flex;gap:12px;align-items:flex-start;}
.check-item svg{flex-shrink:0;margin-top:3px;color:var(--teal);}
.check-item p{margin:0;font-size:.94rem;color:var(--ink-soft);}
.check-item strong{color:var(--ink);display:block;font-size:.96rem;margin-bottom:2px;}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
@media(max-width:800px){.two-col{grid-template-columns:1fr;}}

/* ---- hub diagram (home) ---- */
.hub-label{font-family:'IBM Plex Mono',monospace;font-size:.66rem;fill:var(--ink-soft);}
.hub-node-bg{fill:var(--panel);stroke:var(--line);}
.hub-line{stroke:var(--line);stroke-width:1.5;}

/* ---- data pipeline animation ---- */
.flow-line{stroke-dasharray:6 5;animation:flowdash 1.6s linear infinite;}
@keyframes flowdash{to{stroke-dashoffset:-22;}}

/* ---- AI automation dots ---- */
.pulse-dot{animation:pulseDot 2.2s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:.35;transform:scale(1);}50%{opacity:1;transform:scale(1.25);}}
.type-caret{animation:blink 1s step-end infinite;}
@keyframes blink{50%{opacity:0;}}

/* ---- responsive device stack (web dev) ---- */
.device-float{animation:floaty 4s ease-in-out infinite;}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}

/* ---- modular blocks (custom software) ---- */
.block-drop{animation:blockdrop .8s cubic-bezier(.2,.9,.3,1.2) both;}
@keyframes blockdrop{from{transform:translateY(-14px);opacity:0;}to{transform:translateY(0);opacity:1;}}

@media (prefers-reduced-motion: reduce){
  .flow-line,.pulse-dot,.type-caret,.device-float,.block-drop{animation:none !important;}
}

/* ================= TECHNOLOGY GROUPS (logo-style badges) ================= */
.tech-groups{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:760px){.tech-groups{grid-template-columns:1fr;}}
.tech-card{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--panel);}
.tech-card-head{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.tech-card-head .emoji{font-size:1.25rem;line-height:1;}
.tech-card-head h3{font-size:1rem;margin:0;}
.chip-row{display:flex;flex-wrap:wrap;gap:9px;}
.chip{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--bg-alt);border:1px solid var(--line);border-radius:100px;
  padding:5px 14px 5px 5px;font-size:.82rem;font-weight:500;color:var(--ink-soft);
}
.chip-badge{
  width:22px;height:22px;border-radius:6px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'IBM Plex Mono',monospace;font-size:.6rem;font-weight:700;color:#fff;
}

/* ================= TESTIMONIALS ================= */
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:860px){.testimonials-grid{grid-template-columns:1fr;}}
.testimonial-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 26px;display:flex;flex-direction:column;gap:16px;height:100%;
}
.quote-mark{font-family:'Space Grotesk',sans-serif;font-size:2.6rem;line-height:1;color:var(--teal);opacity:.5;}
.testimonial-text{font-size:.93rem;color:var(--ink-soft);font-style:italic;flex-grow:1;margin:0;}
.testimonial-person{display:flex;align-items:center;gap:12px;}
.avatar{
  width:42px;height:42px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.82rem;color:#fff;
}
.person-info strong{display:block;font-size:.9rem;color:var(--ink);}
.person-info span{font-size:.8rem;color:var(--ink-faint);}