/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/cormorant-garamond-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


  :root{
    --navy-950:#0B1424;
    --navy-900:#101E38;
    --navy-700:#23375B;
    --paper:#F6F7F9;
    --white:#FFFFFF;
    --mist:#E4E8EE;
    --slate:#5A6474;
    --bronze:#A9885A;
    --serif:'Cormorant Garamond','Palatino Linotype','Book Antiqua',Georgia,serif;
    --sans:'Inter',-apple-system,'Segoe UI','Helvetica Neue',Arial,sans-serif;
    --maxw:1180px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{transition:none!important;opacity:1!important;transform:none!important}.slide-track{transition:none!important}}
  body{font-family:var(--sans);color:var(--navy-950);background:var(--white);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
  .eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);font-weight:600}
  .eyebrow.light{color:#C9AE7F}
  h2.section-title{font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,3.2vw,2.5rem);line-height:1.15;margin-top:14px;letter-spacing:.005em}
  .lede{color:var(--slate);max-width:62ch;margin-top:18px}
  section{position:relative}
  :focus-visible{outline:2px solid var(--bronze);outline-offset:3px}

  /* ---- top bar + nav ---- */
  .topline{height:4px;background:var(--navy-950)}
  header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--mist)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:74px}
  .brand{display:flex;align-items:center;gap:14px}
  .brand img{height:42px;width:auto}
  .brand .zh{font-size:.62rem;letter-spacing:.30em;color:var(--slate);margin-top:3px;padding-left:2px}
  .nav-links{display:flex;align-items:center;gap:34px;list-style:none}
  .nav-links a{font-size:.82rem;letter-spacing:.08em;font-weight:500;color:var(--navy-900);position:relative;padding:6px 0}
  .nav-links a:not(.cta)::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--bronze);transition:width .25s}
  .nav-links a:not(.cta):hover::after{width:100%}
  .cta{padding:10px 4px;transition:color .25s}
  .cta:hover{color:var(--bronze)}
  .burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
  .burger span{display:block;width:22px;height:2px;background:var(--navy-950);margin:5px 0}

  /* ---- hero ---- */
  .hero{position:relative;height:min(88vh,820px);min-height:600px;background:var(--navy-950)}
  .hero-slides{position:absolute;inset:0;overflow:hidden}
  .slide-track{display:flex;width:200%;height:100%;transform:translateX(0);transition:transform 1.1s cubic-bezier(.77,0,.18,1)}
  .slide-track img{width:50%;height:100%;object-fit:cover;object-position:center top;flex:none}
  .hero .veil{position:absolute;inset:0;background:
      linear-gradient(to top, rgba(11,20,36,.92) 0%, rgba(11,20,36,.44) 42%, rgba(11,20,36,.16) 72%, rgba(11,20,36,.28) 100%)}
  .hero-inner{position:absolute;inset:auto 0 0 0;padding-bottom:64px;color:#fff}
  .hero-kicker{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .hero-kicker .rule{width:52px;height:1px;background:#D9BE8C}
  .hero-kicker .eyebrow{font-size:.86rem;letter-spacing:.24em;font-weight:600;color:#E6CDA1;text-shadow:0 1px 12px rgba(11,20,36,.55)}
  .hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.3rem,5vw,3.9rem);line-height:1.08;max-width:15ch;margin-top:20px}
  .hero p{margin-top:20px;max-width:56ch;color:rgba(255,255,255,.82);font-size:1.02rem}
  .hero-ctas{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap}
  .btn{display:inline-block;padding:14px 30px;font-size:.82rem;letter-spacing:.10em;font-weight:600;text-transform:uppercase;transition:all .25s}
  .btn-solid{background:#fff;color:var(--navy-950)}
  .btn-solid:hover{background:var(--bronze);color:#fff}
  .btn-ghost{border:1px solid rgba(255,255,255,.55);color:#fff}
  .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}

  /* ---- pillars band ---- */
  .pillars{background:var(--navy-950);color:#fff;border-top:1px solid rgba(255,255,255,.08)}
  .pillars .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
  .pillar{padding:44px 34px;border-left:1px solid rgba(255,255,255,.10)}
  .pillar:first-child{border-left:none;padding-left:0}
  .pillar h3,.pillar h2{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin-top:10px}
  .pillar p{color:rgba(255,255,255,.66);font-size:.92rem;margin-top:10px}

  /* ---- firm / about ---- */
  .firm{padding:110px 0 100px;background:var(--white);overflow:hidden}
  .firm .wrap{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:0 64px;align-items:start}
  .firm-copy{grid-column:1;grid-row:1;max-width:none}
  .firm-copy .lede,.firm-copy p{max-width:78ch}
  .watermark{position:absolute;top:34px;left:-14px;font-family:var(--serif);font-size:clamp(9rem,16vw,15rem);line-height:1;color:var(--navy-950);opacity:.035;user-select:none;pointer-events:none;letter-spacing:.05em}
  .firm-copy p+p{margin-top:16px}
  .firm-copy p{color:var(--slate)}
  .steps{grid-column:1/-1;margin-top:56px;border-top:1px solid var(--mist);display:grid;grid-template-columns:repeat(3,1fr);gap:0 48px}
  .step{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:24px 0 0;border-bottom:none}
  .step .no{font-family:var(--serif);font-size:1.5rem;color:var(--bronze)}
  .step h4,.step h3{font-size:.95rem;letter-spacing:.03em}
  .step p{font-size:.9rem;color:var(--slate);margin-top:4px}
  .firm-photo{grid-column:2;grid-row:1;margin:6px 0 0}
  /* offset frame sits on the image only, not the whole figure, and is drawn with
     z-index 0/1 inside an isolated stacking context — a negative z-index would
     paint it behind the section's own background */
  .photo-frame{position:relative;isolation:isolate}
  .photo-frame img{position:relative;z-index:1;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center 42%}
  .photo-frame::after{content:"";position:absolute;z-index:0;top:20px;left:20px;right:-20px;bottom:-20px;border:1px solid var(--mist)}
  .firm-photo figcaption{margin-top:36px;font-size:.78rem;letter-spacing:.06em;color:var(--slate)}
  .firm-facts{position:relative;background:var(--navy-950);color:#fff;padding:44px 42px 38px}
  .firm-facts .eyebrow{color:#C9AE7F}
  .firm-facts h3{font-family:var(--serif);font-weight:500;font-size:1.6rem;line-height:1.25;margin-top:14px;color:#fff}
  .firm-facts .fact-list{margin-top:30px;border-top:1px solid rgba(255,255,255,.14)}
  .firm-facts .fact{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.14)}
  .firm-facts .fact .k{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55)}
  .firm-facts .fact .v{font-family:var(--serif);font-size:1.05rem;text-align:right;color:#F3E9D8}
  .firm-facts .note{margin-top:26px;font-size:.86rem;line-height:1.65;color:rgba(255,255,255,.72)}

  /* ---- practice areas ---- */
  .practice{padding:110px 0;background:var(--paper)}
  .practice-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
  .featured{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px}
  .pcard{background:var(--white);border:1px solid var(--mist);border-top:2px solid var(--navy-950);padding:38px 32px 32px;display:flex;flex-direction:column;transition:border-color .25s, transform .25s, box-shadow .25s}
  .pcard:hover{border-top-color:var(--bronze);transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(11,20,36,.25)}
  .pcard .zh-tag{font-size:.7rem;letter-spacing:.4em;color:var(--bronze)}
  .pcard h3,.pcard h2{font-family:var(--serif);font-weight:600;font-size:1.45rem;margin-top:12px;line-height:1.25}
  .pcard p{font-size:.92rem;color:var(--slate);margin-top:14px;flex:1}
  .pcard .more{margin-top:26px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--navy-900)}
  .pcard .more span{color:var(--bronze);transition:margin-left .2s;display:inline-block;margin-left:6px}
  .pcard:hover .more span{margin-left:12px}
  .secondary{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--mist);border:1px solid var(--mist);margin-top:26px}
  .scard{background:var(--white);padding:24px 22px;display:block;transition:background .25s,color .25s}
  a.scard:hover{background:var(--paper)}
  a.scard:hover h4{color:var(--bronze)}
  .scard h4{font-size:.88rem;letter-spacing:.02em;font-weight:600}
  .scard p{font-size:.8rem;color:var(--slate);margin-top:8px;line-height:1.55}

  /* ---- people ---- */
  .people{padding:110px 0;background:var(--white)}
  .team-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:56px}
  .person .frame{position:relative;overflow:hidden;background:var(--paper)}
  .person img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;filter:saturate(.92);transition:transform .5s ease}
  .person:hover img{transform:scale(1.035)}
  .person h3,.person h2{font-family:var(--serif);font-weight:600;font-size:1.15rem;margin-top:16px;line-height:1.3}
  .person .role{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);font-weight:600;margin-top:5px}
  .person .focus{font-size:.84rem;color:var(--slate);margin-top:8px;line-height:1.55}
  .person h2 a{color:inherit}
  .person h2 a:hover{color:var(--bronze)}
  .person .plink{display:inline-block;margin-top:12px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;border-bottom:1px solid var(--mist);padding-bottom:3px}
  .person .plink:hover{border-color:var(--bronze)}

  /* ---- insights ---- */
  .insights{padding:110px 0;background:var(--navy-950);color:#fff}
  .insights .section-title{color:#fff}
  .insights .lede{color:rgba(255,255,255,.66)}
  .igrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px}
  .icard{border:1px solid rgba(255,255,255,.14);padding:34px 30px;display:flex;flex-direction:column;min-height:250px;transition:border-color .25s,background .25s}
  .icard:hover{border-color:var(--bronze);background:rgba(255,255,255,.03)}
  .imeta{display:flex;justify-content:space-between;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#C9AE7F}
  .icard h3{font-family:var(--serif);font-weight:500;font-size:1.35rem;line-height:1.35;margin-top:18px;flex:1}
  .icard .read{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-top:24px}

  /* ---- contact ---- */
  .contact{padding:110px 0;background:var(--paper)}
  .contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:72px}
  .cdetails{margin-top:36px;border-top:1px solid var(--mist)}
  .crow{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--mist);font-size:.92rem}
  .crow .k{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);font-weight:600;padding-top:3px}
  .crow a{border-bottom:1px solid var(--mist)}
  .crow a:hover{border-color:var(--bronze)}
  .mapbox{margin-top:30px;height:190px;border:1px solid var(--mist);background:repeating-linear-gradient(45deg,#EFF1F5 0 12px,#F6F7F9 12px 24px);display:grid;place-items:center;color:var(--slate);font-size:.8rem;letter-spacing:.08em;text-align:center;padding:16px}
  .cform{background:var(--white);border:1px solid var(--mist);padding:44px 40px}
  .cform h3{font-family:var(--serif);font-weight:600;font-size:1.5rem}
  .cform .note{font-size:.84rem;color:var(--slate);margin-top:8px}
  .field{margin-top:22px}
  .field label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--navy-900);margin-bottom:8px}
  .field input,.field textarea{width:100%;border:1px solid var(--mist);background:var(--paper);padding:13px 14px;font-family:var(--sans);font-size:.92rem;color:var(--navy-950)}
  .field input:focus,.field textarea:focus{outline:none;border-color:var(--navy-700);background:#fff}
  .cform button{margin-top:28px;width:100%;background:var(--navy-950);color:#fff;border:none;padding:16px;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:background .25s}
  .cform button:hover{background:var(--bronze)}
  .cform .sent{display:none;margin-top:16px;font-size:.86rem;color:var(--bronze);text-align:center}
  .cform .privacy{font-size:.74rem;color:var(--slate);margin-top:16px;line-height:1.6}

  /* ---- footer ---- */
  footer{background:var(--navy-950);color:rgba(255,255,255,.6);font-size:.8rem}
  .foot-top{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;padding:44px 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .foot-brand img{height:104px;width:auto}
  .foot-links{display:flex;gap:26px;flex-wrap:wrap}
  .foot-links a:hover{color:#fff}
  .foot-bottom{padding:26px 0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.74rem;color:rgba(255,255,255,.42)}

  /* ---- whatsapp ---- */
  .wa{position:fixed;right:24px;bottom:24px;width:54px;height:54px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 10px 26px -8px rgba(0,0,0,.4);z-index:60;transition:transform .2s}
  .wa:hover{transform:scale(1.07)}
  .wa svg{width:28px;height:28px;fill:#fff}

  /* ---- reveal ---- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}

  /* ---- responsive ---- */
  @media (max-width:1020px){
    .nav-links{display:none;position:absolute;top:74px;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:20px 28px 28px;gap:20px;border-bottom:1px solid var(--mist)}
    .nav-links.open{display:flex}
    .burger{display:block}
    .featured{grid-template-columns:1fr 1fr}
    .secondary{grid-template-columns:1fr 1fr 1fr}
    .team-grid{grid-template-columns:repeat(3,1fr)}
    .firm .wrap,.contact .wrap{grid-template-columns:1fr;gap:56px}
    .firm-copy,.firm-photo,.steps{grid-column:1;grid-row:auto}
    .firm-photo{margin:0}
    .photo-frame::after{display:none}
    .firm-photo figcaption{margin-top:16px}
    .steps{margin-top:0}
    .steps{grid-template-columns:1fr;gap:0}
    .step{padding:20px 0;border-bottom:1px solid var(--mist)}
    .igrid{grid-template-columns:1fr 1fr}
  }
  @media (max-width:720px){
    .brand img{height:30px}
    .brand .zh{font-size:.55rem;letter-spacing:.24em}
    .foot-brand img{height:86px}
    .pillars .wrap{grid-template-columns:1fr}
    .pillar{border-left:none;border-top:1px solid rgba(255,255,255,.1);padding:28px 0}
    .pillar:first-child{border-top:none}
    .featured,.igrid{grid-template-columns:1fr}
    .secondary{grid-template-columns:1fr 1fr}
    .team-grid{grid-template-columns:1fr 1fr;gap:18px}
    .hero h1{max-width:none}
    .hero-ctas .btn{width:100%;text-align:center;box-sizing:border-box}
    .crow{grid-template-columns:1fr;gap:4px}
    .cform{padding:32px 24px}
  }
  /* mobile portrait: same immersive hero as desktop — one full-screen navy canvas,
     the whole team photo shown at the top and blending seamlessly into the navy,
     headline and CTAs overlaid within the same hero */
  @media (max-width:720px) and (orientation:portrait){
    .hero{height:auto;min-height:100vh;min-height:max(100svh,calc(66.8vw + 470px))}
    .hero-slides{position:relative;inset:auto;width:100%;aspect-ratio:1092/728}
    .hero .veil{inset:0 0 auto 0;height:calc(66.8vw + 2px);background:linear-gradient(to bottom,rgba(11,20,36,.16) 0%,rgba(11,20,36,0) 20%,rgba(11,20,36,0) 46%,rgba(11,20,36,.55) 74%,rgba(11,20,36,.94) 93%,#0B1424 100%)}
    .hero-inner{padding-bottom:42px}
  }

  /* ============================================================
     INNER PAGES — shared template (practice areas, people, legal)
     ============================================================ */

  /* ---- compact navy page header (replaces the homepage hero) ---- */
  .page-header{background:var(--navy-950);color:#fff;padding:74px 0 66px}
  .page-header .eyebrow{color:#C9AE7F}
  .page-header h1{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,4vw,3.1rem);line-height:1.12;margin-top:16px;max-width:20ch}
  .page-header .role{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#C9AE7F;font-weight:600;margin-top:12px}
  .page-header .lede{color:rgba(255,255,255,.72);margin-top:18px;max-width:64ch}

  /* ---- breadcrumb ---- */
  .crumbs{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:22px}
  .crumbs a{border-bottom:1px solid rgba(255,255,255,.22);padding-bottom:2px}
  .crumbs a:hover{color:#fff;border-color:var(--bronze)}
  .crumbs .sep{padding:0 10px;color:rgba(255,255,255,.3)}

  /* ---- generic inner section ---- */
  .page-body{padding:86px 0 96px;background:var(--white)}
  .page-body.alt{background:var(--paper)}
  .page-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:64px;align-items:start}
  .page-main>*+*{margin-top:44px}
  .prose p{color:var(--slate);max-width:74ch}
  .prose p+p{margin-top:16px}
  .block-title{font-family:var(--serif);font-weight:500;font-size:1.6rem;line-height:1.25}
  .block-title+*{margin-top:18px}

  /* ---- "How we help" list ---- */
  .help-list{list-style:none;border-top:1px solid var(--mist)}
  .help-list li{position:relative;padding:15px 0 15px 32px;border-bottom:1px solid var(--mist);font-size:.94rem;color:var(--navy-950);max-width:74ch}
  .help-list li::before{content:"";position:absolute;left:2px;top:26px;width:14px;height:1px;background:var(--bronze)}

  /* ---- representative experience panel ---- */
  .experience{background:var(--paper);border-left:2px solid var(--bronze);padding:32px 34px}
  .experience p{color:var(--slate);font-size:.94rem;max-width:74ch}

  /* ---- sidebar ---- */
  .page-side{position:sticky;top:98px;display:grid;gap:26px}
  @media (hover:none){.page-side{position:static}}

  /* lead-partner card */
  .partner-card{border:1px solid var(--mist);border-top:2px solid var(--navy-950);background:var(--white);padding:26px 26px 28px;display:block;transition:border-color .25s,transform .25s,box-shadow .25s}
  .partner-card:hover{border-top-color:var(--bronze);transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(11,20,36,.25)}
  .partner-card .eyebrow{display:block}
  .partner-card img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;margin-top:16px;filter:saturate(.92)}
  .partner-card h3{font-family:var(--serif);font-weight:600;font-size:1.2rem;margin-top:16px;line-height:1.3}
  .partner-card .role{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);font-weight:600;margin-top:5px}
  .partner-card .more{display:block;margin-top:16px;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--navy-900)}
  .partner-card .more span{color:var(--bronze);display:inline-block;margin-left:6px;transition:margin-left .2s}
  .partner-card:hover .more span{margin-left:12px}

  /* side navigation list (related practices etc.) */
  .side-nav{border:1px solid var(--mist);padding:24px 26px 26px;background:var(--white)}
  .side-nav h2,.side-nav h3{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);font-weight:600}
  .side-nav ul{list-style:none;margin-top:14px}
  .side-nav li+li{margin-top:2px}
  .side-nav a{display:block;padding:9px 0;font-size:.9rem;border-bottom:1px solid var(--mist);transition:color .2s,padding-left .2s}
  .side-nav li:last-child a{border-bottom:none}
  .side-nav a:hover{color:var(--bronze);padding-left:5px}
  .side-nav a[aria-current="page"]{color:var(--bronze);font-weight:600}

  /* ---- closing CTA band ---- */
  .cta-band{background:var(--navy-950);color:#fff;padding:72px 0}
  .cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
  .cta-band .eyebrow{color:#C9AE7F}
  .cta-band h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.2;margin-top:12px}
  .cta-band p{color:rgba(255,255,255,.7);margin-top:12px;max-width:52ch;font-size:.94rem}
  .cta-band .cta-actions{display:flex;gap:16px;flex-wrap:wrap}
  .cta-band + footer .foot-top{border-top:1px solid rgba(255,255,255,.1)}

  /* ---- index-page card grids ---- */
  .card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:52px}
  .card-grid .pcard{border-top:2px solid var(--navy-950)}
  .team-grid.people-index{margin-top:52px}
  .team-grid.people-index .person{display:flex;flex-direction:column}
  .team-grid.people-index .person .focus{flex:1}

  /* ---- profile page: photo + bio ---- */
  .profile-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:64px;align-items:start}
  .profile-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;filter:saturate(.92)}
  .profile-contact{margin-top:26px;border-top:1px solid var(--mist)}
  .profile-contact .crow{grid-template-columns:96px 1fr;font-size:.86rem}
  .profile-body h2{font-family:var(--serif);font-weight:500;font-size:1.5rem;line-height:1.25}
  .profile-body h2+p{margin-top:16px}
  .profile-body section+section{margin-top:42px}
  .practice-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;list-style:none}
  .practice-links a{display:inline-block;border:1px solid var(--mist);padding:9px 16px;font-size:.8rem;letter-spacing:.04em;transition:border-color .2s,color .2s,background .2s}
  .practice-links a:hover{border-color:var(--bronze);color:var(--bronze);background:var(--white)}

  /* ---- stub pages (privacy / terms) ---- */
  .stub{max-width:70ch}
  .stub .notice{border:1px solid var(--mist);border-left:2px solid var(--bronze);background:var(--paper);padding:26px 30px;margin-top:26px}
  .stub .notice p{color:var(--slate);font-size:.94rem}
  .stub .notice p+p{margin-top:12px}

  /* ---- inner-page responsive ---- */
  @media (max-width:1020px){
    .page-grid,.profile-grid{grid-template-columns:1fr;gap:48px}
    .page-side{position:static;grid-template-columns:1fr 1fr;display:grid}
    .profile-photo{max-width:340px}
    .card-grid{grid-template-columns:1fr 1fr}
  }
  @media (max-width:720px){
    .page-header{padding:52px 0 48px}
    .page-body{padding:60px 0 68px}
    .page-side{grid-template-columns:1fr}
    .card-grid{grid-template-columns:1fr}
    .experience{padding:26px 22px}
    .cta-band .cta-actions{width:100%}
    .cta-band .cta-actions .btn{width:100%;text-align:center}
  }
