:root{
    --red:#C40522; --red-bright:#E4142F; --red-soft:rgba(196,5,34,.10);
    --ink:#101114; --ink-2:#16181D; --char:#1E2128;
    --paper:#FFFFFF; --mist:#F6F7F9; --mist-2:#EDEFF2; --line:#E4E7EB;
    --text:#181B21; --muted:#5C636E; --muted-2:#8A919C; --silver:#D2D2D2;
    --fd:'Sora', system-ui, -apple-system, sans-serif;
    --fb:'Hanken Grotesk', system-ui, -apple-system, sans-serif;
    --maxw:1180px;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
  body{ font-family:var(--fb); color:var(--text); background:var(--paper); line-height:1.6; overflow-x:hidden; }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  section{ scroll-margin-top:78px; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
  h1,h2,h3,.display{ font-family:var(--fd); font-weight:700; letter-spacing:-0.02em; line-height:1.08; }
  .eyebrow{ font-family:var(--fd); font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--red); }
  .eyebrow.muted{ color:var(--muted-2); }
  .btn{ display:inline-flex; align-items:center; gap:9px; font-family:var(--fd); font-weight:600; font-size:15px; padding:14px 24px; border-radius:10px; cursor:pointer; border:1px solid transparent; transition:.25s ease; }
  .btn-red{ background:var(--red); color:#fff; box-shadow:0 8px 24px rgba(196,5,34,.30); }
  .btn-red:hover{ background:var(--red-bright); transform:translateY(-2px); box-shadow:0 12px 30px rgba(196,5,34,.40); }
  .btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.25); }
  .btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.06); }
  .btn-dark{ background:var(--ink); color:#fff; }
  .btn-dark:hover{ background:var(--char); transform:translateY(-2px); }
  .btn svg{ width:17px; height:17px; }

  /* ---------- HEADER ---------- */
  header{ position:fixed; top:0; left:0; right:0; z-index:100; transition:.3s ease; }
  header .bar{ display:flex; align-items:center; justify-content:space-between; height:72px; }
  header .logo{ height:30px; }
  nav.menu{ display:flex; align-items:center; gap:34px; }
  nav.menu a{ font-family:var(--fd); font-size:14.5px; font-weight:500; color:rgba(255,255,255,.82); transition:.2s; position:relative; }
  nav.menu a:hover{ color:#fff; }
  nav.menu a::after{ content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--red-bright); transition:.25s; }
  nav.menu a:hover::after{ width:100%; }
  header.scrolled{ background:rgba(16,17,20,.92); backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,.08); }
  header.scrolled .bar{ height:62px; }
  .nav-cta{ font-size:13.5px; padding:10px 18px; }
  .burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; }
  .burger span{ width:24px; height:2px; background:#fff; transition:.3s; border-radius:2px; }
  .burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  /* ---------- HERO ---------- */
  .hero{ position:relative; background:var(--ink); color:#fff; padding:150px 0 100px; overflow:hidden; }
  .hero-bar{ position:absolute; left:0; top:0; bottom:0; width:6px; background:linear-gradient(180deg,var(--red-bright),var(--red)); z-index:3; }
  .hero-grid{ position:absolute; inset:0; z-index:1;
    background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
    background-size:30px 30px;
    -webkit-mask-image:radial-gradient(130% 90% at 82% 8%,#000,transparent 70%);
    mask-image:radial-gradient(130% 90% at 82% 8%,#000,transparent 70%); }
  .hero-glow{ position:absolute; width:680px; height:680px; right:-200px; top:-220px; z-index:1; background:radial-gradient(circle,rgba(228,20,47,.34),transparent 60%); }
  .hero-glow2{ position:absolute; width:480px; height:480px; left:-180px; bottom:-220px; z-index:1; background:radial-gradient(circle,rgba(196,5,34,.18),transparent 64%); }
  .hero .wrap{ position:relative; z-index:2; }
  .hero h1{ font-size:clamp(34px,5.6vw,62px); font-weight:800; max-width:16ch; margin-top:22px; }
  .hero h1 .hl{ color:var(--red-bright); }
  .hero p.sub{ font-size:clamp(16px,2vw,19px); color:rgba(255,255,255,.78); max-width:56ch; margin-top:22px; }
  .hero-cta{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }
  .hero-pills{ display:flex; gap:10px; margin-top:40px; flex-wrap:wrap; }
  .pill{ display:inline-flex; align-items:center; gap:8px; font-family:var(--fd); font-size:13px; font-weight:500; padding:9px 16px; border:1px solid rgba(255,255,255,.18); border-radius:40px; background:rgba(255,255,255,.04); }
  .pill .dot{ width:7px; height:7px; border-radius:50%; background:var(--red-bright); }
  .hero-stats{ display:flex; gap:42px; margin-top:54px; flex-wrap:wrap; }
  .hstat .n{ font-family:var(--fd); font-size:30px; font-weight:800; color:#fff; }
  .hstat .l{ font-size:13px; color:rgba(255,255,255,.6); margin-top:2px; max-width:20ch; }
  .hstat{ border-left:2px solid var(--red); padding-left:16px; }

  /* ---------- SECTION GENERIC ---------- */
  .sec{ padding:96px 0; }
  .sec-head{ max-width:62ch; }
  .sec-head h2{ font-size:clamp(28px,3.6vw,40px); margin-top:14px; }
  .sec-head p{ color:var(--muted); font-size:17px; margin-top:14px; }

  /* ---------- PILLARS ---------- */
  .pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:50px; }
  .pcard{ position:relative; background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:34px 28px; overflow:hidden; transition:.3s ease; }
  .pcard::before{ content:""; position:absolute; left:0; top:0; height:4px; width:100%; background:var(--red); transform:scaleX(0); transform-origin:left; transition:.35s ease; }
  .pcard:hover{ transform:translateY(-6px); box-shadow:0 22px 50px rgba(16,17,20,.10); border-color:transparent; }
  .pcard:hover::before{ transform:scaleX(1); }
  .pcard .pnum{ position:absolute; right:22px; top:18px; font-family:var(--fd); font-weight:800; font-size:46px; color:var(--mist-2); }
  .picon{ width:56px; height:56px; border-radius:14px; background:var(--red-soft); display:flex; align-items:center; justify-content:center; }
  .picon svg{ width:28px; height:28px; }
  .pcard h3{ font-size:21px; margin:22px 0 10px; }
  .pcard p{ color:var(--muted); font-size:15px; }

  /* ---------- SERVICES ---------- */
  .services{ background:var(--mist); }
  .svc-group{ margin-top:46px; }
  .svc-gh{ display:flex; align-items:center; gap:13px; margin-bottom:22px; }
  .svc-gh .gb{ width:38px; height:38px; border-radius:10px; background:var(--red-soft); display:flex; align-items:center; justify-content:center; }
  .svc-gh .gb svg{ width:20px; height:20px; }
  .svc-gh .gt{ font-family:var(--fd); font-weight:700; font-size:20px; }
  .svc-gh .gs{ font-family:var(--fd); font-size:12px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--red); }
  .svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  .scard{ background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:22px; transition:.25s ease; }
  .scard:hover{ transform:translateY(-4px); box-shadow:0 16px 36px rgba(16,17,20,.08); }
  .scard .si{ width:40px; height:40px; border-radius:10px; background:var(--mist); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
  .scard .si svg{ width:21px; height:21px; }
  .scard h4{ font-family:var(--fd); font-size:16px; font-weight:600; }
  .scard p{ font-size:13.5px; color:var(--muted); margin-top:6px; }

  /* ---------- PARTNERS ---------- */
  .partners{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:46px; }
  .pt{ border:1px solid var(--line); border-radius:14px; background:var(--paper); padding:20px 10px; text-align:center; transition:.25s; }
  .pt:hover{ border-color:var(--red); transform:translateY(-3px); }
  .pt .ptn{ font-family:var(--fd); font-weight:700; font-size:16px; }
  .pt .ptc{ font-size:10.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-2); margin-top:3px; }

  /* ---------- WHY (dark) ---------- */
  .why{ background:var(--ink); color:#fff; position:relative; overflow:hidden; }
  .why .wglow{ position:absolute; width:520px; height:520px; right:-180px; top:-160px; background:radial-gradient(circle,rgba(228,20,47,.20),transparent 62%); }
  .why .wrap{ position:relative; z-index:2; }
  .why .eyebrow{ color:var(--red-bright); }
  .why .sec-head h2{ color:#fff; }
  .why .sec-head p{ color:rgba(255,255,255,.72); }
  .why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:48px; }
  .wcard{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:16px; padding:26px; transition:.25s; }
  .wcard:hover{ background:rgba(255,255,255,.07); border-color:rgba(228,20,47,.4); transform:translateY(-4px); }
  .wcard .wi{ width:46px; height:46px; border-radius:12px; background:var(--red-soft); display:flex; align-items:center; justify-content:center; }
  .wcard .wi svg{ width:23px; height:23px; }
  .wcard h3{ font-size:17px; margin:18px 0 8px; color:#fff; }
  .wcard p{ font-size:14px; color:rgba(255,255,255,.68); }

  .process{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:60px; }
  .pstep{ position:relative; }
  .pstep .pn{ width:42px; height:42px; border-radius:50%; background:var(--red); color:#fff; font-family:var(--fd); font-weight:700; display:flex; align-items:center; justify-content:center; font-size:17px; }
  .pstep h4{ font-family:var(--fd); font-size:16px; color:#fff; margin:16px 0 6px; }
  .pstep p{ font-size:13px; color:rgba(255,255,255,.6); }
  .pstep:not(:last-child)::after{ content:""; position:absolute; left:50px; top:21px; right:-10px; height:1px; background:rgba(255,255,255,.16); }

  /* ---------- VALUES STRIP ---------- */
  .values{ background:var(--mist); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .values .wrap{ display:flex; align-items:center; justify-content:space-between; gap:30px; padding:42px 24px; flex-wrap:wrap; }
  .vchips{ display:flex; gap:12px; flex-wrap:wrap; }
  .vchip{ display:inline-flex; align-items:center; gap:9px; font-family:var(--fd); font-weight:500; font-size:14px; background:var(--paper); border:1px solid var(--line); border-radius:40px; padding:11px 18px; }
  .vchip .dot{ width:7px; height:7px; border-radius:50%; background:var(--red); }
  .std{ text-align:right; }
  .std .big{ font-family:var(--fd); font-weight:800; font-size:26px; letter-spacing:.04em; }
  .std .sm{ font-size:12px; color:var(--muted); }

  /* ---------- CONTACT ---------- */
  .contact{ background:var(--ink); color:#fff; position:relative; overflow:hidden; }
  .contact .cbar{ position:absolute; left:0; top:0; bottom:0; width:6px; background:linear-gradient(180deg,var(--red-bright),var(--red)); }
  .contact .cglow{ position:absolute; width:600px; height:600px; left:50%; top:-260px; transform:translateX(-50%); background:radial-gradient(circle,rgba(228,20,47,.20),transparent 62%); }
  .contact .wrap{ position:relative; z-index:2; }
  .contact-inner{ display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:start; }
  .contact h2{ font-size:clamp(28px,3.6vw,42px); color:#fff; }
  .contact h2 .hl{ color:var(--red-bright); }
  .contact .lead{ color:rgba(255,255,255,.78); font-size:17px; margin-top:16px; max-width:46ch; }
  .clist{ margin-top:30px; display:flex; flex-direction:column; gap:18px; }
  .crow{ display:flex; align-items:center; gap:15px; }
  .crow .ci{ width:44px; height:44px; border-radius:11px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); display:flex; align-items:center; justify-content:center; flex:none; }
  .crow .ci svg{ width:20px; height:20px; }
  .crow .cl{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5); font-weight:600; font-family:var(--fd); }
  .crow .cv{ font-size:16px; color:#fff; font-weight:500; }
  .crow a.cv:hover{ color:var(--red-bright); }
  /* form card */
  .fcard{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:18px; padding:32px; }
  .fcard h3{ font-family:var(--fd); font-size:20px; color:#fff; }
  .fcard p.fnote{ font-size:13px; color:rgba(255,255,255,.55); margin-top:6px; }
  .field{ margin-top:16px; }
  .field label{ display:block; font-size:12.5px; font-family:var(--fd); font-weight:500; color:rgba(255,255,255,.75); margin-bottom:6px; }
  .field input, .field textarea{ width:100%; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:10px; padding:12px 14px; color:#fff; font-family:var(--fb); font-size:15px; transition:.2s; }
  .field input::placeholder, .field textarea::placeholder{ color:rgba(255,255,255,.35); }
  .field input:focus, .field textarea:focus{ outline:none; border-color:var(--red-bright); background:rgba(255,255,255,.09); }
  .fcard .btn-red{ width:100%; justify-content:center; margin-top:20px; }
  .fmsg{ font-size:13.5px; color:#7CE3A6; margin-top:14px; display:none; }

  /* ---------- FOOTER ---------- */
  footer{ background:#0B0C0E; color:rgba(255,255,255,.6); padding:56px 0 30px; }
  .foot-top{ display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.08); }
  .foot-brand{ max-width:34ch; }
  .foot-brand .logo{ height:30px; margin-bottom:18px; }
  .foot-brand p{ font-size:14px; }
  .foot-cols{ display:flex; gap:60px; flex-wrap:wrap; }
  .fcol h5{ font-family:var(--fd); font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:14px; }
  .fcol a, .fcol span{ display:block; font-size:14px; margin-bottom:9px; transition:.2s; }
  .fcol a:hover{ color:#fff; }
  .foot-bottom{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:24px; font-size:12.5px; color:rgba(255,255,255,.42); }

  /* ---------- REVEAL ANIMATION ---------- */
  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1); }
  .reveal.in{ opacity:1; transform:none; }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:1024px){
    .svc-grid{ grid-template-columns:repeat(2,1fr); }
    .partners{ grid-template-columns:repeat(3,1fr); }
    .why-grid{ grid-template-columns:repeat(2,1fr); }
    .process{ grid-template-columns:repeat(2,1fr); }
    .pstep:not(:last-child)::after{ display:none; }
  }
  @media (max-width:860px){
    nav.menu{ position:fixed; inset:0 0 0 auto; width:min(80vw,320px); background:var(--ink); flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:6px; padding:96px 30px 30px; transform:translateX(100%); transition:.35s ease; box-shadow:-20px 0 60px rgba(0,0,0,.4); }
    nav.menu.open{ transform:translateX(0); }
    nav.menu a{ font-size:18px; padding:12px 0; width:100%; }
    nav.menu .nav-cta{ margin-top:14px; font-size:15px; padding:13px 22px; }
    .burger{ display:flex; z-index:110; }
    .pillars{ grid-template-columns:1fr; }
    .contact-inner{ grid-template-columns:1fr; gap:36px; }
    .values .std{ text-align:left; }
    .hero{ padding:120px 0 80px; }
    .sec{ padding:70px 0; }
    .hero-stats{ gap:26px; }
  }
  @media (max-width:560px){
    .svc-grid{ grid-template-columns:1fr; }
    .partners{ grid-template-columns:repeat(2,1fr); }
    .why-grid{ grid-template-columns:1fr; }
    .process{ grid-template-columns:1fr; }
    .hero-cta .btn{ width:100%; justify-content:center; }
  }