  /* ============================================================
     TOKENS
     ============================================================ */
  :root{
    --paper:#EFF1EA;
    --paper-dim:#E2E5DB;
    --white:#FBFBF8;
    --ink:#14302B;
    --ink-soft:#4A625C;
    --ink-faint:#7E9089;
    --brass:#B4863C;
    --brass-deep:#8C6524;
    --brass-light:#E4C68C;
    --border:rgba(20,48,43,0.14);
    --border-light:rgba(251,251,248,0.18);
    --shadow:0 24px 48px -28px rgba(20,48,43,0.35);
    --radius-sm:6px;
    --radius-md:16px;
    --radius-lg:30px;
    --font-display:'Fraunces', Georgia, serif;
    --font-body:'IBM Plex Sans', -apple-system, sans-serif;
    --font-mono:'IBM Plex Mono', 'Courier New', monospace;
    --ease:cubic-bezier(.22,.61,.36,1);
    --container:1180px;
  }

  /* ============================================================
     RESET & BASE
     ============================================================ */
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul,ol{list-style:none;}
  button,input,select,textarea{font:inherit;color:inherit;}
  h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-0.01em;}

  .skip-link{
    position:absolute;left:-999px;top:auto;
    background:var(--ink);color:var(--paper);padding:.8em 1.2em;z-index:200;border-radius:var(--radius-sm);
  }
  .skip-link:focus{left:1rem;top:1rem;}

  :focus-visible{outline:2.5px solid var(--brass);outline-offset:3px;}

  .section__inner{
    max-width:var(--container);
    margin:0 auto;
    padding:0 clamp(1.25rem, 4vw, 3rem);
  }

  .eyebrow{
    font-family:var(--font-mono);
    font-size:.78rem;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--brass-deep);
    margin-bottom:1rem;
    font-weight:500;
  }
  .eyebrow--light{color:var(--brass-light);}

  .section__title{
    font-size:clamp(1.9rem, 3.4vw, 2.7rem);
    line-height:1.15;
    margin-bottom:1.1rem;
    max-width:22ch;
  }
  .section__title--light{color:var(--paper);}

  .amp{color:var(--brass);font-style:italic;}

  /* ============================================================
     BUTTONS
     ============================================================ */
  .btn{
    display:inline-flex;
    align-items:center;
    gap:.5em;
    font-family:var(--font-body);
    font-weight:600;
    font-size:.98rem;
    padding:.9em 1.6em;
    border-radius:100px;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
  }
  .btn--primary{
    background:var(--ink);
    color:var(--paper);
  }
  .btn--primary:hover{
    background:var(--brass-deep);
    color:var(--white);
    transform:translateY(-2px);
  }
  .btn--ghost{
    background:transparent;
    color:var(--ink);
    border-color:var(--border);
  }
  .btn--ghost:hover{
    border-color:var(--ink);
    transform:translateY(-2px);
  }
  .btn--ghost span{transition:transform .35s var(--ease);display:inline-block;}
  .btn--ghost:hover span{transform:translateX(4px);}

  /* ============================================================
     NAV
     ============================================================ */
  .nav{
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(239,241,234,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border);
  }
  .nav__inner{
    max-width:var(--container);
    margin:0 auto;
    padding:1.1rem clamp(1.25rem, 4vw, 3rem);
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .nav__brand{
    font-family:var(--font-display);
    font-size:1.28rem;
    font-weight:700;
    display:flex;
    align-items:baseline;
    gap:.35em;
    white-space:nowrap;
  }
  .nav__brand-sub{
    font-family:var(--font-mono);
    font-size:.68rem;
    font-weight:500;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    margin-left:.15em;
  }
  .nav__links{
    display:flex;
    align-items:center;
    gap:2.2rem;
    font-size:.95rem;
    font-weight:500;
  }
  .nav__links a:not(.nav__cta){
    position:relative;
    padding:.2rem 0;
  }
  .nav__links a:not(.nav__cta)::after{
    content:"";
    position:absolute;
    left:0;bottom:-2px;
    width:0;height:1.5px;
    background:var(--brass);
    transition:width .3s var(--ease);
  }
  .nav__links a:not(.nav__cta):hover::after{width:100%;}
  .nav__cta{
    background:var(--ink);
    color:var(--paper);
    padding:.65em 1.35em;
    border-radius:100px;
    font-weight:600;
    transition:background .3s var(--ease), transform .3s var(--ease);
  }
  .nav__cta:hover{background:var(--brass-deep);transform:translateY(-1px);}

  .nav__toggle{
    display:none;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:34px;height:34px;
    background:none;border:none;cursor:pointer;
  }
  .nav__toggle span{
    display:block;height:2px;width:100%;
    background:var(--ink);
    transition:transform .3s var(--ease), opacity .3s var(--ease);
  }
  .nav.is-open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav.is-open .nav__toggle span:nth-child(2){opacity:0;}
  .nav.is-open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* ============================================================
     HERO
     ============================================================ */
  .hero{
    position:relative;
    padding:clamp(4rem,10vw,7.5rem) 0 clamp(3rem,7vw,5rem);
    overflow:hidden;
  }
  .hero__watermark{
    position:absolute;
    top:-8%;
    right:-4%;
    font-family:var(--font-display);
    font-style:italic;
    font-size:min(52vw, 620px);
    line-height:1;
    color:var(--ink);
    opacity:.05;
    pointer-events:none;
    user-select:none;
    z-index:0;
  }
  .hero__inner{
    position:relative;
    z-index:1;
    max-width:var(--container);
    margin:0 auto;
    padding:0 clamp(1.25rem, 4vw, 3rem);
  }
  .hero__title{
    font-size:clamp(2.3rem, 5.6vw, 4.2rem);
    line-height:1.08;
    max-width:16ch;
    margin-bottom:1.5rem;
  }
  .hero__subhead{
    font-size:clamp(1.05rem, 1.6vw, 1.25rem);
    color:var(--ink-soft);
    max-width:52ch;
    margin-bottom:2.4rem;
  }
  .hero__actions{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    margin-bottom:3.5rem;
  }

  .ticker{
    display:inline-flex;
    align-items:center;
    gap:.9rem;
    background:var(--white);
    border:1px solid var(--border);
    border-radius:100px;
    padding:.7rem 1.4rem .7rem .5rem;
    max-width:100%;
  }
  .ticker__label{
    font-family:var(--font-mono);
    font-size:.72rem;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
    background:var(--paper-dim);
    padding:.5rem .8rem;
    border-radius:100px;
    white-space:nowrap;
  }
  .ticker__phrase{
    font-size:1rem;
    font-weight:500;
    min-width:1px;
    transition:opacity .3s var(--ease);
  }
  .ticker__lang{
    font-family:var(--font-mono);
    font-size:.72rem;
    font-weight:600;
    color:var(--brass-deep);
    border:1px solid var(--brass);
    border-radius:100px;
    padding:.25rem .6rem;
    transition:opacity .3s var(--ease);
  }

  /* ============================================================
     REVEAL ANIMATION
     ============================================================ */
  .reveal{opacity:1;transform:none;}
  .reveal.reveal-init{opacity:0;transform:translateY(26px);}
  .reveal.reveal-init.is-visible{
    opacity:1;transform:none;
    transition:opacity .7s var(--ease), transform .7s var(--ease);
  }

  /* ============================================================
     SERVICES
     ============================================================ */
  .services{padding:clamp(4rem,8vw,6.5rem) 0;}
  .services__grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:1.4rem;
    margin-top:2.8rem;
  }
  .service-card{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:2.1rem 1.9rem;
    transition:border-color .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .service-card:hover{
    border-color:var(--brass);
    transform:translateY(-5px);
    box-shadow:var(--shadow);
  }
  .service-card__icon{
    width:52px;height:52px;
    border-radius:50%;
    background:var(--paper-dim);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:1.4rem;
    transition:background .35s var(--ease);
  }
  .service-card__icon svg{width:26px;height:26px;color:var(--ink);transition:color .35s var(--ease);}
  .service-card:hover .service-card__icon{background:var(--ink);}
  .service-card:hover .service-card__icon svg{color:var(--brass-light);}
  .service-card h3{font-size:1.28rem;margin-bottom:.6rem;}
  .service-card p{color:var(--ink-soft);font-size:.96rem;}
  .service-card--wide{grid-column:span 1;}

  .lang-chips{
    display:flex;flex-wrap:wrap;gap:.45rem;
    margin-top:1.1rem;
  }
  .lang-chips span{
    font-family:var(--font-mono);
    font-size:.72rem;
    font-weight:600;
    letter-spacing:.03em;
    border:1px solid var(--border);
    border-radius:100px;
    padding:.3rem .65rem;
    color:var(--ink-soft);
  }

  /* ============================================================
     APPROACH (dark band)
     ============================================================ */
  .approach{
    background:var(--ink);
    color:var(--paper);
    padding:clamp(4rem,8vw,6.5rem) 0;
    position:relative;
  }
  .steps{
    margin-top:2.8rem;
    display:grid;
    gap:0;
  }
  .step{
    display:grid;
    grid-template-columns:min-content 1fr;
    gap:1.8rem;
    align-items:start;
    padding:1.9rem 0;
    border-bottom:1px solid var(--border-light);
  }
  .step:first-child{padding-top:0;}
  .step:last-child{border-bottom:none;}
  .step__num{
    font-family:var(--font-mono);
    font-size:1rem;
    color:var(--brass-light);
    padding-top:.2rem;
  }
  .step h3{font-size:1.3rem;color:var(--paper);margin-bottom:.4rem;}
  .step p{color:rgba(239,241,234,0.7);max-width:56ch;font-size:.98rem;}

  /* ============================================================
     ABOUT
     ============================================================ */
  .about{padding:clamp(4rem,8vw,6.5rem) 0;}
  .about__grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:clamp(2.5rem,6vw,5rem);
    align-items:start;
  }
  .about__text p + p{margin-top:1.1rem;color:var(--ink-soft);}
  .about__text > p:first-of-type{color:var(--ink);}
  .about__values{
    display:flex;
    flex-direction:column;
    gap:1.6rem;
  }
  .about__values li{
    border-left:2px solid var(--brass);
    padding-left:1.3rem;
  }
  .about__values h3{font-size:1.1rem;margin-bottom:.35rem;}
  .about__values p{color:var(--ink-soft);font-size:.95rem;}

  /* ============================================================
     CONTACT
     ============================================================ */
  .contact{padding:clamp(4rem,8vw,6.5rem) 0 clamp(5rem,9vw,7rem);}
  .contact__grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:clamp(2.5rem,6vw,4.5rem);
  }
  .contact__info p{color:var(--ink-soft);margin-bottom:1.6rem;max-width:42ch;}
  .contact__email{
    font-family:var(--font-mono);
    font-size:1.05rem;
    font-weight:600;
    color:var(--ink);
    border-bottom:1.5px solid var(--brass);
    padding-bottom:.15rem;
  }
  .contact__note{
    margin-top:2.5rem;
    font-size:.86rem;
    color:var(--ink-faint);
    max-width:38ch;
  }
  .contact__form{
    background:var(--white);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:clamp(1.8rem,4vw,2.6rem);
    display:flex;
    flex-direction:column;
    gap:1.3rem;
  }
  .field{display:flex;flex-direction:column;gap:.5rem;}
  .field label{
    font-family:var(--font-mono);
    font-size:.74rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-soft);
  }
  .field input,.field select,.field textarea{
    border:1.5px solid var(--border);
    border-radius:var(--radius-sm);
    padding:.8em .9em;
    background:var(--paper);
    font-size:.98rem;
    transition:border-color .25s var(--ease);
    resize:vertical;
  }
  .field input:focus,.field select:focus,.field textarea:focus{
    border-color:var(--brass);
    outline:none;
  }
  .contact__form .btn{align-self:flex-start;margin-top:.3rem;}
  .form__note{
    font-size:.88rem;
    color:var(--brass-deep);
    min-height:1.2em;
  }

  /* ============================================================
     FOOTER
     ============================================================ */
  .site-footer{
    background:var(--ink);
    color:var(--paper);
    padding:2.8rem 0;
  }
  .footer__inner{
    display:flex;
    flex-wrap:wrap;
    gap:1.6rem;
    align-items:center;
    justify-content:space-between;
  }
  .footer__brand{
    font-family:var(--font-display);
    font-size:1.15rem;
    font-weight:700;
  }
  .footer__tagline{
    font-family:var(--font-mono);
    font-size:.76rem;
    color:rgba(239,241,234,0.6);
    margin-top:.3rem;
  }
  .footer__links{display:flex;gap:1.5rem;font-size:.92rem;}
  .footer__links a{opacity:.8;transition:opacity .25s var(--ease);}
  .footer__links a:hover{opacity:1;color:var(--brass-light);}
  .footer__copy{
    font-size:.8rem;
    color:rgba(239,241,234,0.55);
    width:100%;
    border-top:1px solid var(--border-light);
    padding-top:1.6rem;
    margin-top:.6rem;
  }

  /* ============================================================
     RESPONSIVE
     ============================================================ */
  @media (max-width:900px){
    .nav__links{
      position:fixed;
      inset:0 0 auto auto;
      top:0;
      right:0;
      height:100vh;
      width:min(78vw,320px);
      background:var(--paper);
      flex-direction:column;
      align-items:flex-start;
      justify-content:center;
      gap:2rem;
      padding:2rem;
      transform:translateX(100%);
      transition:transform .4s var(--ease);
      box-shadow:-20px 0 40px rgba(20,48,43,0.15);
    }
    .nav.is-open .nav__links{transform:translateX(0);}
    .nav__toggle{display:flex;}
    .nav__cta{width:100%;justify-content:center;}

    .about__grid,.contact__grid{grid-template-columns:1fr;}
    .step{grid-template-columns:min-content 1fr;}
  }

  @media (max-width:620px){
    .services__grid{grid-template-columns:1fr;}
    .hero__watermark{font-size:min(70vw,420px);top:-4%;}
  }

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