:root {
      --bg:#ffffff;
      --surface:#ffffff;
      --ink:#14110f;
      --muted:#665f57;
      --line:#e5dfd5;
      --orange:#e8541a;
      --orange-dark:#c94512;
      --radius:20px;
      --page:1180px;
      --shadow:0 14px 34px rgba(49,35,22,.08);
    }

    * { box-sizing:border-box; }
    html { background:var(--bg); }
    body {
      min-width:320px;
      margin:0;
      background:var(--bg);
      color:var(--ink);
      font-family:"DM Sans",system-ui,sans-serif;
      font-size:16px;
      line-height:1.58;
      -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility;
    }

    .about {
      position:relative;
      overflow:hidden;
      padding:clamp(40px,5.5vw,76px) 24px clamp(52px,6vw,84px);
    }
    .about::before { display:none; }
    .about__inner { position:relative; width:min(100%,var(--page)); margin:0 auto; }

    .about__intro {
      display:block;
      padding-bottom:clamp(40px,4.5vw,58px);
      border-bottom:1px solid var(--line);
      text-align:center;
    }
    h1,h2,h3,p { margin-top:0; }
    .about__title {
      max-width:1000px;
      margin:0 auto;
      font-family:"Montserrat",sans-serif;
      font-size:clamp(2.55rem,6vw,6.1rem);
      font-weight:500;
      letter-spacing:-.064em;
      line-height:.91;
      text-wrap:balance;
    }
    .about__title-h-gap { margin-left:.025em; }
    .about__copy { max-width:710px; margin:clamp(20px,2.4vw,28px) auto 0; padding:0; }
    .about__copy h2 {
      margin-bottom:24px;
      font-family:"DM Sans",system-ui,sans-serif;
      font-size:clamp(1.5rem,2.2vw,2rem);
      font-weight:500;
      letter-spacing:-.035em;
      line-height:1.2;
      text-wrap:balance;
    }
    .about__copy p { margin-bottom:10px; color:#2b2b2b; font-size:clamp(1.125rem,1.35vw,1.25rem); line-height:1.56; text-wrap:pretty; }
    .about__copy p:last-of-type { margin-bottom:18px; }
    .about__services-link {
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:52px;
      padding:14px 28px;
      border-radius:999px;
      background:var(--ink);
      color:#fff;
      font-size:16px;
      font-weight:600;
      text-decoration:none;
      transition:background-color 180ms ease,transform 180ms ease,box-shadow 180ms ease;
    }
    .about__services-link span { color:#fff; font-size:18px; line-height:1; }
    .ui-arrow { display:inline-block; flex:0 0 auto; height:1em; position:relative; width:1.15em; }
    .ui-arrow::before { border-top:1.5px solid currentColor; content:""; left:0; position:absolute; top:50%; width:100%; }
    .ui-arrow::after { border-right:1.5px solid currentColor; border-top:1.5px solid currentColor; content:""; height:.4em; position:absolute; right:0; top:50%; transform:translateY(-50%) rotate(45deg); width:.4em; }
    .ui-arrow--diagonal { transform:rotate(-45deg); }
    .about__services-link:hover { background:#2b2b2b; box-shadow:0 8px 18px rgba(20,17,15,.14); transform:translateY(-1px); }
    .about__services-link:focus-visible { outline:3px solid rgba(232,84,26,.35); outline-offset:5px; border-radius:4px; }

    .team { padding-top:clamp(40px,4.5vw,56px); }
    .team__heading {
      max-width:none;
      margin:0 auto clamp(22px,2.4vw,30px);
      font-family:"Montserrat",sans-serif;
      font-size:clamp(1.85rem,3vw,2.85rem);
      font-weight:500;
      letter-spacing:-.05em;
      line-height:1;
      text-align:center;
      white-space:nowrap;
    }
    .team__grid {
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:clamp(12px,1.8vw,20px);
      margin:0;
      padding:0;
      list-style:none;
    }
    .person { min-width:0; }
    .person:nth-child(2) { margin-top:0; }
    .person__image-wrap {
      position:relative;
      aspect-ratio:4 / 4.5;
      overflow:hidden;
      border:1px solid rgba(20,17,15,.09);
      border-radius:var(--radius);
      background:#d7d0c6;
      box-shadow:0 10px 24px rgba(49,35,22,.07);
    }
    .person__image {
      display:block;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center;
      filter:saturate(.76) contrast(.99) brightness(.98);
      transition:transform 500ms cubic-bezier(.22,1,.36,1),filter 500ms ease;
    }
    .person:first-child .person__image { object-position:center 48%; }
    .person:hover .person__image { filter:saturate(.86) contrast(1) brightness(.99); transform:scale(1.025); }
    .person__name {
      margin:13px 0 3px;
      font-family:"Montserrat",sans-serif;
      font-size:clamp(1.1rem,1.6vw,1.35rem);
      font-weight:600;
      letter-spacing:-.035em;
      line-height:1.2;
    }
    .person__role { margin:0; color:#55514c; font-size:clamp(.875rem,1vw,.9375rem); line-height:1.45; }

    .reveal { opacity:0; transform:translateY(14px); transition:opacity 520ms cubic-bezier(.22,1,.36,1),transform 520ms cubic-bezier(.22,1,.36,1); }
    .reveal.is-visible { opacity:1; transform:translateY(0); }
    .team__grid .person:nth-child(2) { transition-delay:70ms; }
    .team__grid .person:nth-child(3) { transition-delay:140ms; }

    @media (max-width:760px) {
      .about { padding-right:20px; padding-left:20px; }
      .about::before { top:14%; right:-245px; }
      .about__intro { padding-bottom:42px; }
      .about__copy { padding-top:0; }
      .team { padding-top:42px; }
      .team__grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
      .person:nth-child(2) { margin-top:0; }
      .person__image-wrap { border-radius:15px; }
      .person__name { margin-top:12px; font-size:16px; }
      .person__role { font-size:14px; }
    }
    @media (max-width:480px) {
      .about { padding-top:40px; }
      .team__heading { white-space:normal; }
      .team__grid { grid-template-columns:1fr; gap:20px; }
      .person,.person:nth-child(2) { display:grid; grid-template-columns:132px minmax(0,1fr); column-gap:17px; align-items:end; margin-top:0; }
      .person__image-wrap { grid-row:1 / span 2; aspect-ratio:1 / 1.1; }
      .person__name { margin:0 0 3px; }
      .person__role { align-self:start; }
    }
    @media (prefers-reduced-motion:reduce) {
      .reveal { opacity:1; transform:none; transition:none; }
      .person__image,.about__services-link { transition:none; }
      .person:hover .person__image,.about__services-link:hover { transform:none; }
    }
