  /* ============ MERIDIAN: tokens ============ */
  :root{
    --pearl:#f2f1f6;
    --cloud:rgba(255,255,255,.66);
    --ink:#2e2a3a;
    --mist:#726c86;
    --faint:#9d97ae;
    --hairline:rgba(46,42,58,.09);
    --violet:#6b46b8;
    --lav:#a58fd6;
    --deep:#3b2b5e;
    --geo:'Century Gothic',Futura,'Avenir Next','Trebuchet MS',Corbel,'Segoe UI',sans-serif;
    --sans:'Segoe UI',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  }
  html{scroll-behavior:smooth}
  body{
    margin:0;background:var(--pearl);color:var(--ink);
    font-family:var(--sans);font-size:17px;line-height:1.7;
    -webkit-font-smoothing:antialiased;overflow-x:clip;
  }
  ::selection{background:var(--violet);color:#fff}
  h1,h2,h3{font-family:var(--geo);font-weight:400;line-height:1.16;margin:0;text-wrap:balance;letter-spacing:-.01em}
  p{margin:0}
  a{color:var(--violet)}
  a:focus-visible,button:focus-visible{outline:2px solid var(--violet);outline-offset:4px;border-radius:6px}

  /* ============ atmosphere: dawn orbs ============ */
  .sky{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
  .orb{position:absolute;border-radius:50%;filter:blur(110px);opacity:.5}
  .orb.o1{width:56vw;height:56vw;background:#d9cdf2;top:-22vw;right:-14vw;animation:drift1 26s ease-in-out infinite alternate}
  .orb.o2{width:44vw;height:44vw;background:#f0e3d0;bottom:-18vw;left:-12vw;animation:drift2 32s ease-in-out infinite alternate}
  .orb.o3{width:30vw;height:30vw;background:#e4dcf5;top:38%;left:44%;animation:drift3 38s ease-in-out infinite alternate;opacity:.36}
  @keyframes drift1{to{transform:translate(-7vw,6vh)}}
  @keyframes drift2{to{transform:translate(6vw,-5vh)}}
  @keyframes drift3{to{transform:translate(-5vw,-6vh)}}

  /* ============ header ============ */
  header{
    position:fixed;top:0;left:0;right:0;z-index:80;
    background:rgba(248,247,251,.7);backdrop-filter:blur(16px) saturate(1.15);
    border-bottom:1px solid transparent;transition:border-color .4s,box-shadow .4s;
  }
  header.scrolled{border-bottom-color:var(--hairline);box-shadow:0 12px 40px -18px rgba(46,42,58,.18)}
  .header-inner{
    max-width:1280px;margin:0 auto;padding:14px 34px;
    display:flex;align-items:center;justify-content:space-between;gap:24px;
  }
  .logo-link{display:block;border:0;background:none;cursor:pointer;padding:0}
  .logo-link img{height:104px;width:auto;display:block}
  nav{display:flex;gap:2px;flex-wrap:wrap}
  nav a{display:inline-block;text-decoration:none;
    font-family:var(--geo);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
    background:none;border:0;color:var(--mist);padding:11px 15px;cursor:pointer;border-radius:999px;
    transition:color .25s,background .25s;
  }
  nav a:hover{color:var(--ink);background:rgba(107,70,184,.07)}
  nav a[aria-current="page"]{color:#fff;background:var(--violet)}

  /* ============ page switching ============ */
  .page{display:none}
  .page.active{display:block;animation:pagein .65s cubic-bezier(.22,1,.36,1) both}
  @keyframes pagein{from{opacity:0;transform:translateY(12px) scale(.995)}to{opacity:1;transform:none}}

  /* ============ primitives ============ */
  .wrap{max-width:1280px;margin:0 auto;padding:0 34px}
  section{padding:120px 0;position:relative}
  .eyebrow{
    font-family:var(--geo);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--violet);
    margin-bottom:22px;
  }
  h2{font-size:clamp(30px,4vw,48px);margin-bottom:24px}
  .lede{font-size:19px;color:var(--mist);max-width:640px}

  .reveal{opacity:0;transform:translateY(26px) scale(.985);transition:opacity .85s ease,transform .85s cubic-bezier(.22,1,.36,1)}
  .reveal.in{opacity:1;transform:none}

  /* ============ glass ============ */
  .glass{
    background:var(--cloud);backdrop-filter:blur(18px) saturate(1.2);
    border:1px solid rgba(255,255,255,.85);border-radius:22px;
    box-shadow:0 24px 60px -28px rgba(59,43,94,.25),inset 0 1px 0 rgba(255,255,255,.9);
  }

  /* ============ hero ============ */
  .hero{min-height:100svh;min-height:100vh;display:flex;align-items:center;padding:170px 0 80px}
  .hero-grid{display:grid;grid-template-columns:minmax(300px,7fr) minmax(280px,5fr);gap:70px;align-items:center;width:100%}
  @media (max-width:960px){.hero-grid{grid-template-columns:1fr}}
  .hero h1{
    font-size:clamp(40px,5.6vw,74px);letter-spacing:-.015em;line-height:1.08;
    opacity:0;animation:rise 1.1s cubic-bezier(.22,1,.36,1) .1s forwards;
  }
  .hero h1 .accent{color:var(--violet)}
  .hero .sub{
    font-size:19px;color:var(--mist);max-width:560px;margin-top:30px;
    opacity:0;animation:rise 1.1s ease .35s forwards;
  }
  .hero-cta-row{margin-top:42px;display:flex;gap:14px;flex-wrap:wrap;opacity:0;animation:rise 1.1s ease .55s forwards}
  @keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

  /* floating 3D stack */
  .stage{perspective:1200px;display:flex;justify-content:center}
  .stack{position:relative;width:min(380px,86vw);height:520px;transform-style:preserve-3d;transition:transform .35s ease}
  .card3{
    position:absolute;left:0;right:0;border-radius:20px;padding:26px 28px;
    background:rgba(255,255,255,.72);backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.9);
    box-shadow:0 30px 70px -30px rgba(59,43,94,.35);
  }
  .card3 .c3-label{font-family:var(--geo);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}
  .card3 .c3-title{font-family:var(--geo);font-size:17px;color:var(--ink);letter-spacing:.02em}
  .card3 img{height:9px;width:auto;margin-top:14px;display:block}
  .card3 svg{display:block;margin-top:14px;width:100%;height:auto}
  .card3.a{top:0;transform:translateZ(70px)}
  .card3.b{top:222px;transform:translateZ(30px) translateX(26px)}
  .card3.c{top:364px;transform:translateZ(-10px) translateX(-16px)}
  @media (max-width:960px){.stage{margin-top:20px}}

  /* ============ buttons ============ */
  .cta{
    display:inline-block;text-decoration:none;font-family:var(--geo);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;
    color:#fff;background:linear-gradient(120deg,var(--violet),#8a63d2);
    border:0;border-radius:999px;padding:17px 38px;cursor:pointer;
    box-shadow:0 16px 34px -14px rgba(107,70,184,.55);
    transition:transform .25s ease,box-shadow .25s ease;
  }
  .cta:hover{transform:translateY(-2px);box-shadow:0 22px 44px -16px rgba(107,70,184,.65)}
  .cta.ghost{
    background:rgba(255,255,255,.6);color:var(--violet);border:1px solid rgba(107,70,184,.35);box-shadow:none;
  }
  .cta.ghost:hover{background:#fff}

  /* ============ split ============ */
  .split{display:grid;grid-template-columns:minmax(240px,5fr) minmax(300px,7fr);gap:60px;align-items:start}
  @media (max-width:820px){.split{grid-template-columns:1fr;gap:26px}}
  .split .body p{color:var(--mist)}
  .split .body p+p{margin-top:18px}
  .split .body p:first-child{color:#474156}

  /* ============ pillars ============ */
  .pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:24px;margin-top:60px}
  .pillar{padding:42px 36px;transition:transform .35s ease,box-shadow .35s ease;will-change:transform}
  .pillar h3{font-size:20px;margin:22px 0 12px}
  .pillar p{font-size:15.5px;color:var(--mist)}
  .pillar .dot{
    width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;
    background:linear-gradient(140deg,rgba(107,70,184,.14),rgba(165,143,214,.22));color:var(--violet);
  }
  .pillar .dot svg{width:20px;height:20px}

  /* ============ serve chips ============ */
  .serve-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:56px}
  .serve{
    padding:26px 26px;border-radius:16px;font-family:var(--geo);font-size:16.5px;letter-spacing:.02em;
    transition:transform .3s ease,box-shadow .3s ease;
  }
  .serve:hover{transform:translateY(-4px)}

  /* ============ solutions: sticky index rail ============ */
  .rail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
  .solgrid{display:grid;grid-template-columns:290px minmax(300px,1fr);gap:56px;margin-top:56px;align-items:start}
  .solindex{
    position:sticky;top:158px;padding:16px;border-radius:18px;
    display:flex;flex-direction:column;gap:2px;
  }
  .solindex button{
    font-family:var(--geo);font-size:13px;letter-spacing:.03em;text-align:left;
    background:none;border:0;border-radius:10px;color:var(--mist);
    padding:11px 14px;cursor:pointer;transition:color .25s,background .25s;line-height:1.4;
  }
  .solindex button:hover{color:var(--ink)}
  .solindex button.here{color:var(--violet);background:rgba(107,70,184,.09);font-weight:700}
  .solbody{min-width:0}
  .solitem{padding:44px 0;border-bottom:1px solid var(--hairline);scroll-margin-top:175px}
  .solitem:first-child{padding-top:6px}
  .solitem:last-child{border-bottom:0}
  .solitem h3{font-size:26px;margin:6px 0 16px}
  .solitem p{color:var(--mist);font-size:16px}
  .solitem p+p{margin-top:16px}
  .solitem p.lead{color:#474156}
  @media (max-width:900px){
    .solgrid{grid-template-columns:1fr;gap:24px}
    .solindex{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}
    .solindex button{font-size:11.5px;padding:8px 11px;background:rgba(255,255,255,.55);border:1px solid rgba(107,70,184,.18)}
    .solindex button.here{background:rgba(107,70,184,.12)}
  }

  /* ============ services ============ */
  .svc-panel{margin-top:60px;padding:16px 44px;border-radius:26px}
  .svc{
    display:grid;grid-template-columns:minmax(210px,4fr) minmax(260px,8fr);gap:38px;
    padding:38px 0;border-bottom:1px solid var(--hairline);
  }
  .svc:last-child{border-bottom:0}
  @media (max-width:760px){.svc{grid-template-columns:1fr;gap:12px}}
  .svc h3{font-size:21px}
  .svc p{font-size:15.5px;color:var(--mist)}

  /* ============ about ============ */
  .values{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:60px}
  .value{padding:38px 34px;border-radius:20px}
  .value h3{font-size:14px;letter-spacing:.24em;text-transform:uppercase;color:var(--violet);margin-bottom:16px}
  .value p{font-size:15.5px;color:var(--mist)}
  .team{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:56px;max-width:620px}
  .member{padding:36px 32px;border-radius:20px}
  .member .ring{
    width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-family:var(--geo);font-size:20px;color:var(--violet);margin-bottom:20px;
    background:linear-gradient(140deg,rgba(107,70,184,.13),rgba(165,143,214,.25));
  }
  .member h3{font-size:19px}
  .member .role{font-family:var(--geo);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-top:6px}

  /* ============ contact ============ */
  .contact-card{margin-top:56px;padding:20px 44px;border-radius:26px;max-width:760px}
  .contact-item{
    display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:baseline;
    padding:30px 0;border-bottom:1px solid var(--hairline);
  }
  .contact-item:last-child{border-bottom:0}
  @media (max-width:560px){.contact-item{grid-template-columns:1fr;gap:4px}}
  .contact-item .label{font-family:var(--geo);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint)}
  .contact-item p,.contact-item a{font-family:var(--geo);font-size:22px;color:var(--ink);text-decoration:none}
  .contact-item a:hover{color:var(--violet)}

  /* ============ band ============ */
  .band{
    margin:40px 0 0;padding:110px 0;position:relative;overflow:hidden;
    background:linear-gradient(130deg,var(--deep) 0%,#5b3f9e 55%,#8a63d2 120%);
    color:#f3effc;
  }
  .band::after{
    content:"";position:absolute;right:-120px;top:-140px;width:480px;height:480px;border-radius:50%;
    background:radial-gradient(closest-side,rgba(240,227,208,.35),transparent 70%);filter:blur(30px);
  }
  .band h2{color:#fff}
  .band p{color:#d9cdf2;max-width:540px;margin:16px 0 40px}
  .band .cta{background:#fff;color:var(--deep);box-shadow:0 18px 40px -16px rgba(0,0,0,.4)}
  .band .cta:hover{box-shadow:0 24px 50px -18px rgba(0,0,0,.5)}

  /* ============ footer ============ */
  footer{padding:52px 0;background:rgba(255,255,255,.55);border-top:1px solid var(--hairline)}
  .footer-inner{
    max-width:1280px;margin:0 auto;padding:0 34px;
    display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap;
  }
  .footer-inner img{height:44px;width:auto;max-width:78vw}
  footer .fine{font-family:var(--geo);font-size:12px;letter-spacing:.06em;color:var(--faint)}

  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation:none!important;transition:none!important}
    .hero h1,.hero .sub,.hero-cta-row{opacity:1;transform:none}
    .reveal{opacity:1;transform:none}
    .orb{animation:none}
  }
  @media (max-width:640px){
    section{padding:78px 0}
    .wrap,.header-inner,.footer-inner{padding-left:22px;padding-right:22px}
    .header-inner{flex-direction:column;gap:2px;padding-top:10px;padding-bottom:6px}
    .logo-link img{height:66px}
    nav{justify-content:center}
    nav a{display:inline-block;text-decoration:none;padding:8px 8px;font-size:10.5px;letter-spacing:.1em}
    .hero{padding-top:150px}
    .rail{padding-left:22px;padding-right:22px;margin:0 -22px}
    .svc-panel,.contact-card{padding-left:26px;padding-right:26px}
  }
