

  :root{
    --navy:#0B2A3E;
    --navy-soft:#264A5E;
    --teal:#0E8C86;
    --green:#4CAF6D;
    --mint:#DCEFE4;
    --bg:#F6F8F7;
    --paper:#FFFFFF;
    --slate:#51636A;
    --line:#DCE4E2;
    --grad: linear-gradient(135deg, var(--teal), var(--green));
    --radius: 14px;
    --maxw: 1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--navy);
    font-family:'IBM Plex Sans', sans-serif;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Space Grotesk', sans-serif;
    letter-spacing:-0.01em;
    margin:0;
    color:var(--navy);
  }
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal);
    font-weight:500;
  }
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  a{color:inherit;}
  img,svg{display:block;}
  button{font-family:inherit; cursor:pointer;}

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky; top:0; z-index:50;
    background:rgba(246,248,247,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:var(--maxw); margin:0 auto; padding:16px 32px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .brand-lockup{display:flex; align-items:center; gap:10px; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:1.15rem;}
  .brand-lockup .mark{height:46px;width:auto;object-fit:contain;}
  .brand-lockup .cap{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; color:var(--slate); display:block; font-weight:500; margin-top:1px;}
  .brand-lockup .e{color:var(--green);}
  nav.links{display:flex; gap:28px; font-size:0.92rem; font-weight:500;}
  nav.links a{text-decoration:none; color:var(--navy-soft); transition:color .2s;}
  nav.links a:hover{color:var(--teal);}
  nav.links a.active{color:var(--teal);}
  .cta-btn{
    background:var(--navy); color:#fff; border:none; padding:11px 20px;
    border-radius:999px; font-size:0.88rem; font-weight:600; text-decoration:none;
    display:inline-flex; align-items:center; gap:8px; transition:transform .2s, background .2s;
  }
  .cta-btn:hover{background:var(--teal); transform:translateY(-1px);}
  .nav-cta{display:none;}
  @media(min-width:880px){.nav-cta{display:inline-flex;}}
  @media(max-width:879px){nav.links{display:none;}}

  /* ---------- PAGE HERO (about/services/contact) ---------- */
  .page-hero{padding:60px 0 48px;}
  .page-hero h1{font-size:clamp(2rem,4vw,2.9rem); font-weight:600; line-height:1.1; margin:14px 0 18px;}
  .page-hero h1 .accent{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .page-hero p.lead{font-size:1.05rem; color:var(--slate); max-width:640px; margin:0;}

  /* ---------- HOME HERO ---------- */
  .hero{padding:72px 0 40px;}
  .hero-grid{
    display:grid; grid-template-columns:1fr; gap:56px; align-items:center;
  }
  @media(min-width:980px){.hero-grid{grid-template-columns:1.05fr 0.95fr;}}
  .hero h1{font-size:clamp(2.1rem, 4.4vw, 3.4rem); line-height:1.06; font-weight:600; margin:14px 0 20px;}
  .hero h1 .accent{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .hero p.lead{font-size:1.08rem; color:var(--slate); max-width:520px; margin:0 0 28px;}
  .hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:36px;}
  .btn-outline{
    border:1.5px solid var(--navy); padding:10px 20px; border-radius:999px;
    text-decoration:none; font-weight:600; font-size:0.9rem; color:var(--navy);
    transition:background .2s, color .2s;
  }
  .btn-outline:hover{background:var(--navy); color:#fff;}
  .hero-stats{display:flex; gap:34px; flex-wrap:wrap;}
  .hero-stats div{display:flex; flex-direction:column;}
  .hero-stats .num{font-family:'Space Grotesk',sans-serif; font-size:1.7rem; font-weight:600; color:var(--navy);}
  .hero-stats .lbl{font-size:0.78rem; color:var(--slate); font-family:'IBM Plex Mono',monospace; letter-spacing:0.02em;}

  /* ---------- ORBIT DIAGRAM ---------- */
  .orbit-wrap{position:relative; width:100%; max-width:520px; margin:0 auto; aspect-ratio:1/1;}
  .orbit-wrap svg{width:100%; height:100%; overflow:visible;}
  .ring-path{fill:none; stroke-width:1.4; stroke-dasharray:2 7; stroke-linecap:round;}
  .ring-path.r0{stroke:#9FCFC9; animation:dash 26s linear infinite;}
  .ring-path.r1{stroke:#B7DCC4; animation:dash 34s linear infinite reverse;}
  .ring-path.r2{stroke:#CFE6D6; animation:dash 42s linear infinite;}
  .ring-path.r3{stroke:#D9ECD3; animation:dash 52s linear infinite reverse;}
  @keyframes dash{to{stroke-dashoffset:-500;}}
  .dot{cursor:pointer; transition:r .18s ease, opacity .18s;}
  .dot circle.core{stroke:#fff; stroke-width:2;}
  .dot:hover circle.core, .dot.active circle.core{filter:drop-shadow(0 2px 6px rgba(14,140,134,0.45));}
  .dot text{
    font-family:'IBM Plex Mono', monospace; font-size:9px; fill:var(--navy-soft);
    opacity:0; transition:opacity .18s; pointer-events:none;
  }
  .dot:hover text, .dot.active text{opacity:1;}
  .hub{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; pointer-events:none;}
  .hub-circle{
    width:200px;height:200px;border-radius:50%;
    background:#fff;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 34px rgba(14,140,134,0.24);
    padding:16px;
  }
  .hub-mark{width:100%;height:100%;object-fit:contain;}

  .orbit-detail{
    margin-top:18px; min-height:64px; background:var(--paper); border:1px solid var(--line);
    border-radius:var(--radius); padding:16px 18px; font-size:0.88rem; color:var(--slate);
    max-width:520px; margin-left:auto; margin-right:auto;
  }
  .orbit-detail .dname{font-family:'Space Grotesk',sans-serif; font-weight:600; color:var(--navy); font-size:0.95rem; display:block; margin-bottom:4px;}
  .orbit-detail a.svc-link{display:inline-block; margin-top:8px; font-size:0.8rem; color:var(--teal); text-decoration:none; font-weight:600;}
  .orbit-hint{text-align:center; font-size:0.78rem; color:var(--slate); margin-top:10px; font-family:'IBM Plex Mono',monospace;}

  /* ---------- SECTION GENERIC ---------- */
  section{padding:76px 0;}
  .section-head{max-width:620px; margin-bottom:44px;}
  .section-head h2{font-size:clamp(1.6rem,3vw,2.3rem); font-weight:600; margin-top:10px;}
  .section-head p{color:var(--slate); margin-top:12px; font-size:1.02rem;}

  /* ---------- DIFFERENTIATOR ---------- */
  .differentiator{background:var(--navy); color:#fff;}
  .differentiator .wrap{display:grid; grid-template-columns:1fr; gap:36px;}
  @media(min-width:900px){.differentiator .wrap{grid-template-columns:1.1fr 0.9fr;}}
  .differentiator h2{color:#fff; font-size:clamp(1.5rem,3vw,2.15rem); font-weight:600; line-height:1.25;}
  .differentiator .accent{color:#7FE0C9;}
  .differentiator p{color:#B9CAD2; font-size:1.02rem; margin-top:16px;}
  .diff-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px;}
  .diff-list li{display:flex; gap:14px; align-items:flex-start; border-top:1px solid rgba(255,255,255,0.12); padding-top:18px;}
  .diff-list li:first-child{border-top:none; padding-top:0;}
  .diff-list .n{font-family:'IBM Plex Mono',monospace; color:#7FE0C9; font-size:0.82rem; margin-top:3px;}
  .diff-list .t{font-weight:600; font-size:0.98rem;}
  .diff-list .d{color:#B9CAD2; font-size:0.88rem; margin-top:4px;}

  /* ---------- SERVICE CLUSTERS (full, services.html) ---------- */
  .clusters{display:flex; flex-direction:column; gap:14px;}
  .cluster{
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    padding:26px 28px; scroll-margin-top:100px;
  }
  .cluster-head{display:flex; align-items:center; gap:12px; margin-bottom:16px;}
  .cluster-swatch{width:10px;height:10px;border-radius:50%; flex-shrink:0;}
  .cluster-head h3{font-size:1.08rem; font-weight:600;}
  .cluster-services{display:grid; grid-template-columns:1fr; gap:14px;}
  @media(min-width:720px){.cluster-services{grid-template-columns:1fr 1fr;}}
  .service-item{border-left:2px solid var(--line); padding-left:14px; transition:border-color .2s;}
  .service-item.highlight{border-color:var(--teal);}
  .service-item .sname{font-weight:600; font-size:0.95rem; display:block; margin-bottom:3px;}
  .service-item .sdesc{color:var(--slate); font-size:0.87rem;}

  /* ---------- SERVICE HIGHLIGHTS (condensed, home.html) ---------- */
  .highlight-grid{display:grid; grid-template-columns:1fr; gap:16px;}
  @media(min-width:720px){.highlight-grid{grid-template-columns:1fr 1fr;}}
  .highlight-card{
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    padding:24px 26px; text-decoration:none; color:inherit; display:block; transition:border-color .2s, transform .2s;
  }
  .highlight-card:hover{border-color:var(--teal); transform:translateY(-2px);}
  .highlight-card .cluster-swatch{width:10px;height:10px;border-radius:50%; display:inline-block; margin-right:10px;}
  .highlight-card h3{font-size:1.02rem; font-weight:600; display:inline;}
  .highlight-card p{color:var(--slate); font-size:0.88rem; margin-top:10px;}
  .highlight-card .arrow{font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--teal); margin-top:12px; display:block;}
  .services-cta{margin-top:28px;}

  /* ---------- ORIGIN PARTNERSHIP ---------- */
  .origin{
    background:var(--mint); border-radius:20px; padding:44px 40px;
    display:grid; grid-template-columns:1fr; gap:30px;
  }
  @media(min-width:900px){.origin{grid-template-columns:1fr 1fr; padding:52px 56px;}}
  .origin h2{font-size:1.6rem; font-weight:600; margin-top:10px;}
  .origin p{color:var(--navy-soft); margin-top:12px; font-size:0.98rem;}
  .origin-feats{list-style:none; margin:20px 0 0; padding:0; display:flex; flex-direction:column; gap:14px;}
  .origin-feats li{background:var(--paper); border-radius:10px; padding:14px 16px; font-size:0.9rem; display:flex; gap:12px; align-items:flex-start;}
  .origin-feats .dotchip{width:7px;height:7px;border-radius:50%; background:var(--grad); margin-top:7px; flex-shrink:0;}
  .origin-badge{
    display:inline-flex; align-items:center; gap:8px; background:#fff; border-radius:999px;
    padding:6px 14px; font-family:'IBM Plex Mono',monospace; font-size:0.74rem; color:var(--teal); font-weight:500;
    margin-bottom:6px;
  }
  .origin-mini{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:28px 30px;}
  .origin-mini p{color:var(--slate); margin-top:10px; font-size:0.95rem;}
  .origin-mini a.svc-link{color:var(--teal); font-weight:600; text-decoration:none; font-size:0.88rem; display:inline-block; margin-top:10px;}

  /* ---------- PROCESS ---------- */
  .process-track{position:relative; display:flex; flex-direction:column; gap:0;}
  .step{display:grid; grid-template-columns:52px 1fr; gap:20px; padding-bottom:38px; position:relative;}
  .step:last-child{padding-bottom:0;}
  .step-num{
    width:52px;height:52px;border-radius:50%; background:var(--paper); border:1.5px solid var(--line);
    display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk',sans-serif;
    font-weight:600; color:var(--teal); position:relative; z-index:2; flex-shrink:0;
  }
  .step:not(:last-child)::before{
    content:''; position:absolute; left:26px; top:52px; bottom:-4px; width:1.5px; background:var(--line); z-index:1;
  }
  .step-body h3{font-size:1.05rem; font-weight:600;}
  .step-body p{color:var(--slate); font-size:0.92rem; margin-top:6px; max-width:560px;}

  /* ---------- AUDIENCE STRIP ---------- */
  .audience{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .audience .wrap{display:grid; grid-template-columns:1fr; gap:30px;}
  @media(min-width:860px){.audience .wrap{grid-template-columns:repeat(3,1fr);}}
  .audience-card .eyebrow{margin-bottom:8px;}
  .audience-card h3{font-size:1.02rem; font-weight:600; margin-bottom:8px;}
  .audience-card p{color:var(--slate); font-size:0.9rem;}

  /* ---------- ABOUT: STORY / VALUES ---------- */
  .story{display:grid; grid-template-columns:1fr; gap:40px;}
  @media(min-width:900px){.story{grid-template-columns:1fr 1fr;}}
  .story p{color:var(--slate); font-size:1.02rem; margin-top:14px;}
  .story h2{font-size:clamp(1.5rem,3vw,2.1rem); font-weight:600;}
  .values-grid{display:grid; grid-template-columns:1fr; gap:16px;}
  @media(min-width:640px){.values-grid{grid-template-columns:1fr 1fr;}}
  .value-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:22px 24px;}
  .value-card h3{font-size:0.98rem; font-weight:600; margin-bottom:8px;}
  .value-card p{color:var(--slate); font-size:0.88rem;}

  /* ---------- CTA ---------- */
  .cta-band{
    background:var(--grad); border-radius:20px; padding:56px 44px; text-align:center;
    display:flex; flex-direction:column; align-items:center;
  }
  .cta-band h2{color:#fff; font-size:clamp(1.6rem,3.4vw,2.3rem); font-weight:600; max-width:600px;}
  .cta-band p{color:rgba(255,255,255,0.92); margin-top:12px; max-width:480px;}
  .cta-band .btn-outline{border-color:#fff; color:#fff; margin-top:24px;}
  .cta-band .btn-outline:hover{background:#fff; color:var(--teal);}
  .cta-contact-line{margin-top:18px; font-size:0.88rem; color:rgba(255,255,255,0.85); display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center;}
  .cta-contact-line a{color:#fff; text-decoration:underline; text-underline-offset:3px;}
  .cta-contact-line span{opacity:0.6;}

  /* ---------- CONTACT PAGE ---------- */
  .contact-grid{display:grid; grid-template-columns:1fr; gap:20px;}
  @media(min-width:820px){.contact-grid{grid-template-columns:repeat(3,1fr);}}
  .contact-card{
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
    padding:30px 26px; text-align:left;
  }
  .contact-card .icon-chip{
    width:42px; height:42px; border-radius:12px; background:var(--grad);
    display:flex; align-items:center; justify-content:center; color:#fff;
    font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.1rem; margin-bottom:16px;
  }
  .contact-card h3{font-size:0.98rem; font-weight:600; margin-bottom:8px;}
  .contact-card a{color:var(--teal); text-decoration:none; font-weight:600; font-size:0.98rem;}
  .contact-card a:hover{text-decoration:underline;}
  .contact-card p{color:var(--slate); font-size:0.9rem; margin-top:6px;}
  .contact-note{background:var(--mint); border-radius:var(--radius); padding:24px 28px; margin-top:8px;}
  .contact-note p{color:var(--navy-soft); font-size:0.95rem; margin:0;}

  /* ---------- FOOTER ---------- */
  footer{padding:56px 0 34px; border-top:1px solid var(--line);}
  .footer-top{display:grid; grid-template-columns:1fr; gap:36px; margin-bottom:36px;}
  @media(min-width:860px){.footer-top{grid-template-columns:1.3fr 1fr 1fr 1fr;}}
  .footer-col h4{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--slate); margin-bottom:14px;}
  .footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
  .footer-col a{text-decoration:none; color:var(--navy-soft); font-size:0.88rem;}
  .footer-col a:hover{color:var(--teal);}
  .footer-brand p{color:var(--slate); font-size:0.9rem; max-width:280px; margin-top:12px;}
  .footer-contact{list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:6px;}
  .footer-contact li{font-size:0.88rem; color:var(--navy-soft);}
  .footer-contact a{text-decoration:none; color:var(--navy-soft);}
  .footer-contact a:hover{color:var(--teal);}
  .footer-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding-top:24px; border-top:1px solid var(--line); font-size:0.8rem; color:var(--slate);}

  ::selection{background:var(--mint); color:var(--navy);}


