@font-face{font-family:'Inter';font-style:normal;font-weight:300 700;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}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 700;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}
/* TPO Search - site theme. Shared by every page. */
/* ===========================================================
   TPO Search - website theme
   Generated by web/build_site.py. Route 01 - Black
   =========================================================== */
:root{
  --accent:#E9F983;
  --accent-line:#98A458;
  --accent-edge:#C9D772;
  --accent-dot:#6A733F;
  --sand:#D6C6AA;
  --sand-line:#978C79;
  --on-sand:#454648;
  --stone:#E8E4DF;
  --paper:#FFFFFF;
  --wash:#F9F7F6;
  --tint:#F1EEEB;
  --line:#ECE9E5;
  --line-2:#E8E4DF;
  --ink:#030508;
  --ink-2:#595A5C;
  --muted:#636466;
  --night:#030508;
  --night-2:#151619;
  --night-line:#2E3032;
  --cream:#F7F6F4;
  --muted-d:#9FA0A1;
  --pattern:#F6F4F2;
  --pattern-hot:#EEE7DB;
  --scrim:rgba(3,5,8,.88);
  --scrim-mid:rgba(3,5,8,.32);
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --slab:var(--sans);
  --shell:1720px;
  --gutter:clamp(24px,3vw,56px);
  --nav-h:86px;
  --pill:999px;
  --r-xl:28px; --r-lg:20px; --r-md:16px; --r-sm:10px;
  --shadow-sm:0 2px 12px rgba(3,5,8,.05);
  --shadow:0 22px 60px -30px rgba(3,5,8,.28);
  --shadow-cta:0 18px 42px -20px rgba(3,5,8,.35);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:clamp(16px,1.02vw,17px);line-height:1.62;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html,body{overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3,h4{margin:0;font-weight:400}
p{margin:0}
::selection{background:var(--accent);color:var(--ink)}

/* ---------- logo ---------- */
.logo{display:block;height:auto;color:currentColor}
.brand{display:flex;align-items:center;flex:0 0 auto;color:var(--ink)}
.brand .logo{width:clamp(96px,7.4vw,112px)}   /* keeps >= 1x clear space inside the 86px nav */

.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(74px,9vw,140px)}
.section--tight{padding-block:clamp(60px,7vw,108px)}

/* ---------- eyebrow ---------- */
.eyebrow{font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink);display:inline-flex;align-items:center;position:relative;padding-left:20px}
.eyebrow::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border-radius:50%;background:var(--ink);box-shadow:10px 0 0 var(--ink)}

/* ---------- display type ---------- */
.display{font-family:var(--sans);line-height:1.06;letter-spacing:-.026em;font-weight:600}
.display em{font-style:normal;font-weight:300;letter-spacing:-.02em}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--sans);font-weight:600;
  font-size:.92rem;letter-spacing:.005em;padding:1em 1.7em;border:1.5px solid transparent;border-radius:var(--pill);
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.btn svg{width:1em;height:1em}
.role__view svg,.acc__link svg,.rail-btn svg,.member__read svg,.arrow-link svg,.btn svg{overflow:visible}
.btn--solid{position:relative;overflow:hidden;padding-inline:2.2em}
.btn--solid svg{position:absolute;right:1.15em;top:50%;opacity:0;transform:translateY(-50%);transition:opacity .2s ease}
.btn--solid svg circle{transform-box:fill-box;transform-origin:center;transform:scale(0)}
.btn--solid .btn__txt{display:inline-block;transition:transform .42s cubic-bezier(.3,1,.3,1);translate:0 1px}
.btn--solid:hover svg,.btn--solid:focus-visible svg{opacity:1}
.btn--solid:hover svg circle:first-child,.btn--solid:focus-visible svg circle:first-child{animation:dotWave .6s cubic-bezier(.3,1,.35,1) .02s forwards}
.btn--solid:hover svg circle:last-child,.btn--solid:focus-visible svg circle:last-child{animation:dotWave .6s cubic-bezier(.3,1,.35,1) .16s forwards}
.btn--solid:hover .btn__txt,.btn--solid:focus-visible .btn__txt{transform:translateX(-.7em)}
@keyframes dotWave{0%{transform:scale(0) translateY(0)}35%{transform:scale(1) translateY(-7px)}65%{transform:scale(1) translateY(3px)}100%{transform:scale(1) translateY(0)}}
@media (prefers-reduced-motion: reduce){
.btn--solid:hover svg circle:first-child,.btn--solid:hover svg circle:last-child,.btn--solid:focus-visible svg circle:first-child,.btn--solid:focus-visible svg circle:last-child{animation:dotFade .3s ease forwards}
.btn--solid:hover .btn__txt,.btn--solid:focus-visible .btn__txt{transition:none}
}
@keyframes dotFade{from{transform:scale(1);opacity:0}to{transform:scale(1);opacity:1}}
.btn--solid{background:var(--accent);color:var(--ink);box-shadow:var(--shadow-cta)}
.btn--solid:hover{background:var(--ink);color:var(--paper)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-2);position:relative;overflow:hidden;padding-inline:2.2em}
.btn--ghost svg{position:absolute;right:1.15em;top:50%;opacity:0;transform:translateY(-50%);transition:opacity .2s ease}
.btn--ghost svg circle{transform-box:fill-box;transform-origin:center;transform:scale(0)}
.btn--ghost .btn__txt{display:inline-block;transition:transform .42s cubic-bezier(.3,1,.3,1);translate:0 1px}
.btn--ghost:hover svg,.btn--ghost:focus-visible svg{opacity:1}
.btn--ghost:hover svg circle:first-child,.btn--ghost:focus-visible svg circle:first-child{animation:dotWave .6s cubic-bezier(.3,1,.35,1) .02s forwards}
.btn--ghost:hover svg circle:last-child,.btn--ghost:focus-visible svg circle:last-child{animation:dotWave .6s cubic-bezier(.3,1,.35,1) .16s forwards}
.btn--ghost:hover .btn__txt,.btn--ghost:focus-visible .btn__txt{transform:translateX(-.7em)}
@media (prefers-reduced-motion: reduce){.btn--ghost:hover svg circle,.btn--ghost:focus-visible svg circle{animation:dotFade .3s ease forwards}.btn--ghost:hover .btn__txt,.btn--ghost:focus-visible .btn__txt{transition:none}}
.btn--ghost:hover{border-color:var(--ink)}
.arrow-link{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:.92rem;color:var(--ink)}
.arrow-link svg{width:.85em;height:.85em;transition:transform .25s ease}

.brass-link{color:var(--ink);font-weight:600;border-bottom:1.5px solid var(--accent-line);transition:border-color .2s}
.brass-link:hover{border-color:var(--ink)}
:focus-visible{outline:2.5px solid var(--ink);outline-offset:3px;border-radius:3px}

/* ---------- nav: full white bar at the top; on scroll it shrinks into a floating frosted-glass bar ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;border-bottom:1px solid var(--line);
  --ease-nav:cubic-bezier(.22,1,.36,1);transition:border-color .35s ease}
/* top state: frosted grey over the hero video (v2.5 treatment). Lives on a pseudo layer, never on .nav itself,
   so the scrolled bar and the mega panel can still blur what is behind them */
.nav::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:color-mix(in srgb,var(--paper) 86%,transparent);
  -webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);transition:opacity .35s ease}
.nav.is-scrolled::before{opacity:0}
.nav__in{position:relative;z-index:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;height:var(--nav-h);
  --mm-x:var(--gutter);border-radius:999px;
  transition:width .55s var(--ease-nav),max-width .55s var(--ease-nav),height .55s var(--ease-nav),margin .55s var(--ease-nav),padding .55s var(--ease-nav)}
/* the glass lives on a pseudo layer so the mega panel (a descendant) can run its own backdrop blur */
.nav__in::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;border:1px solid transparent;
  transition:background-color .4s ease,border-color .4s ease,box-shadow .4s ease}
.nav.is-scrolled{background:transparent;border-bottom-color:transparent;pointer-events:none}
.nav.is-scrolled .nav__in{pointer-events:auto;--mm-x:0px;width:calc(100% - 2*var(--gutter));max-width:1240px;height:66px;margin-top:14px;padding-inline:24px 10px}
/* black frosted glass: the backdrop is dimmed before the tint so it reads black over white sections too */
.nav.is-scrolled .nav__in::before{background:rgba(3,5,8,.74);
  -webkit-backdrop-filter:blur(20px) saturate(160%) brightness(.55);backdrop-filter:blur(20px) saturate(160%) brightness(.55);
  border-color:rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 20px 48px -22px rgba(3,5,8,.6)}
.brand{grid-column:1;justify-self:start}
.brand .logo{transition:width .55s var(--ease-nav)}
.logo__word{transition:opacity .3s ease}
/* compact state = the brand's secondary logo (the primary minus "Search", identical geometry) */
.nav.is-scrolled .brand .logo{width:clamp(66px,4.6vw,78px)}
.nav.is-scrolled .logo__word{opacity:0}
.nav__links{grid-column:2;display:flex;align-items:center;gap:2.3rem}
.nav__link{font-family:var(--sans);font-size:.95rem;font-weight:500;color:var(--ink);position:relative;padding:.4rem 0;
  background:none;border:0;display:inline-flex;align-items:center;gap:.4em;line-height:1.62}
.nav__link::after{content:"";position:absolute;left:0;right:100%;bottom:.1rem;height:2px;border-radius:2px;background:var(--ink);transition:right .28s ease}
.nav__link:hover::after,.nav__item.is-open .nav__link::after{right:0}
.nav__link .chev{width:.78em;height:.78em;transition:transform .3s var(--ease-nav)}
.nav__item.is-open .nav__link .chev{transform:rotate(180deg)}
.nav__right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:.6rem}
.nav__tel{display:inline-flex;align-items:center;gap:.5em;font-size:.92rem;font-weight:500;color:var(--ink);margin-right:.8rem;white-space:nowrap}
.nav__tel svg{width:1.05em;height:1.05em;color:var(--ink-2)}
.nav__btn{padding:.72em 1.5em;white-space:nowrap}
.nav__btn svg{right:.8em}
.nav__btn:hover .btn__txt,.nav__btn:focus-visible .btn__txt{transform:translateX(-.68em)}
.btn--ghost.nav__btn{border-color:rgba(3,5,8,.22)}
.btn--ghost.nav__btn:hover{border-color:var(--ink)}
/* scrolled = dark bar: duotone logo (white + yellow full stop), white type */
.brand,.nav__link,.nav__tel,.nav__tel svg{transition:color .4s ease}
.nav.is-scrolled .brand,.nav.is-scrolled .nav__link,.nav.is-scrolled .nav__tel{color:#fff}
.nav.is-scrolled .nav__tel svg{color:rgba(255,255,255,.7)}
.nav.is-scrolled .nav__link::after{background:#fff}
.nav.is-scrolled .btn--ghost.nav__btn{color:#fff;border-color:rgba(255,255,255,.28)}
.nav.is-scrolled .btn--ghost.nav__btn:hover{border-color:#fff}
.nav.is-scrolled .btn--solid.nav__btn:hover{background:#fff;color:var(--ink)}
.nav.is-scrolled .nav__burger{border-color:rgba(255,255,255,.28)}
.nav.is-scrolled .nav__burger span,.nav.is-scrolled .nav__burger span::before,.nav.is-scrolled .nav__burger span::after{background:#fff}
.nav.is-scrolled .nav__burger[aria-expanded="true"] span{background:transparent}
.nav.is-scrolled :focus-visible{outline-color:var(--accent)}

/* ---------- mega menu: practice areas ---------- */
.mega{position:absolute;top:calc(100% + 12px);left:var(--mm-x);right:var(--mm-x);z-index:2;
  display:grid;grid-template-columns:minmax(230px,.85fr) 3fr;gap:clamp(20px,2.6vw,48px);
  padding:clamp(22px,2vw,30px);border-radius:var(--r-xl);
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);
  border:1px solid rgba(255,255,255,.7);box-shadow:0 0 0 1px rgba(3,5,8,.05),0 34px 80px -34px rgba(3,5,8,.5);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .22s ease,transform .3s var(--ease-nav),visibility 0s linear .3s}
.mega::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}   /* hover bridge across the gap */
.nav__item.is-open .mega{opacity:1;visibility:visible;transform:none;transition:opacity .22s ease,transform .35s var(--ease-nav),visibility 0s}
.mega__intro{display:flex;flex-direction:column;align-items:flex-start;padding:6px 4px}
.mega__intro .eyebrow{margin-bottom:1rem}
.mega__title{font-weight:600;font-size:clamp(1.4rem,1.7vw,1.8rem);line-height:1.12;letter-spacing:-.022em;color:var(--ink)}
.mega__title em{font-style:normal;font-weight:300}
.mega__txt{color:var(--muted);font-size:.92rem;line-height:1.58;margin-top:.9rem;max-width:34ch}
.mega__all{margin-top:auto;padding-top:1.4rem}
.mega__all:hover svg{transform:translateX(3px)}
.mega__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mega__tile{height:100%;display:flex;flex-direction:column;gap:.4rem;padding:18px 18px 16px;border-radius:var(--r-md);
  background:var(--wash);border:1px solid var(--line);color:var(--ink);transition:background-color .25s ease,border-color .25s ease,color .25s ease}
.mega__num{font-size:.7rem;font-weight:600;letter-spacing:.12em;color:var(--muted);transition:color .25s ease}
.mega__tile b{font-weight:600;font-size:1.02rem;letter-spacing:-.012em;line-height:1.25}
.mega__desc{font-size:.8rem;line-height:1.5;color:var(--muted);transition:color .25s ease}
.mega__roles{margin-top:auto;padding-top:.7rem;display:inline-flex;align-items:center;gap:.5em;font-size:.76rem;font-weight:600;color:var(--ink-2);transition:color .25s ease}
.mega__roles i{width:6px;height:6px;border-radius:50%;background:var(--ink);flex:0 0 auto;transition:background-color .25s ease}
.mega__roles svg{width:.95em;height:.95em;margin-left:auto;opacity:0;transform:translateX(-4px);transition:opacity .25s ease,transform .25s ease}
.mega__tile:hover,.mega__tile:focus-visible{background:var(--night);border-color:var(--night);color:#fff}
.mega__tile:hover .mega__num,.mega__tile:focus-visible .mega__num{color:var(--accent)}
.mega__tile:hover .mega__desc,.mega__tile:focus-visible .mega__desc{color:var(--muted-d)}
.mega__tile:hover .mega__roles,.mega__tile:focus-visible .mega__roles{color:#fff}
.mega__tile:hover .mega__roles i,.mega__tile:focus-visible .mega__roles i{background:var(--accent)}
.mega__tile:hover .mega__roles svg,.mega__tile:focus-visible .mega__roles svg{opacity:1;transform:none}
.mega__tile--cta{background:var(--accent);border-color:var(--accent-edge)}
.mega__tile--cta .mega__num,.mega__tile--cta .mega__desc{color:var(--on-sand)}
.mega__tile--cta .mega__roles svg{opacity:1;transform:none}
.mega__tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mega__wide{grid-column:span 2}   /* six areas leave two cells: the CTA takes both */
/* mega menu follows the bar: dark glass once scrolled, tiles invert to white on hover */
/* the compact bar is narrower than the page, but the panel keeps the full content width it has at the top,
   centred under the bar, so the layout is identical in both states and only the colours change */
.nav.is-scrolled .mega{left:50%;right:auto;
  width:var(--megaw, min(calc(var(--shell) - 2*var(--gutter)), calc(100vw - 2*var(--gutter))));
  transform:translate(-50%,-8px)}
.nav.is-scrolled .nav__item.is-open .mega{transform:translate(-50%,0)}
.nav.is-scrolled .mega{background:rgba(3,5,8,.84);border-color:rgba(255,255,255,.08);box-shadow:0 34px 80px -34px rgba(0,0,0,.7);
  -webkit-backdrop-filter:blur(22px) saturate(160%) brightness(.55);backdrop-filter:blur(22px) saturate(160%) brightness(.55)}
.nav.is-scrolled .mega .eyebrow{color:var(--accent)}
.nav.is-scrolled .mega .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.nav.is-scrolled .mega__title,.nav.is-scrolled .mega__all{color:#fff}
.nav.is-scrolled .mega__txt{color:var(--muted-d)}
.nav.is-scrolled .mega__tile:not(.mega__tile--cta){background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.08);color:#fff}
.nav.is-scrolled .mega__tile:not(.mega__tile--cta) .mega__num,.nav.is-scrolled .mega__tile:not(.mega__tile--cta) .mega__desc{color:var(--muted-d)}
.nav.is-scrolled .mega__tile:not(.mega__tile--cta) .mega__roles{color:var(--cream)}
.nav.is-scrolled .mega__tile:not(.mega__tile--cta) .mega__roles i{background:var(--accent)}
.nav.is-scrolled .mega__tile.mega__tile:hover,.nav.is-scrolled .mega__tile.mega__tile:focus-visible{background:#fff;border-color:#fff;color:var(--ink)}
.nav.is-scrolled .mega__tile.mega__tile:hover .mega__num,.nav.is-scrolled .mega__tile.mega__tile:hover .mega__desc{color:var(--muted)}
.nav.is-scrolled .mega__tile.mega__tile:hover .mega__roles{color:var(--ink)}
.nav.is-scrolled .mega__tile.mega__tile:hover .mega__roles i{background:var(--ink)}
.nav__burger{display:none;width:44px;height:44px;border:1.5px solid var(--line-2);border-radius:var(--pill);background:transparent;position:relative}
.nav__burger span,.nav__burger span::before,.nav__burger span::after{content:"";position:absolute;left:50%;top:50%;width:17px;height:2px;border-radius:2px;background:var(--ink);transform:translate(-50%,-50%);transition:.25s ease}
.nav__burger span::before{transform:translate(-50%,-7px)}
.nav__burger span::after{transform:translate(-50%,5px)}
.nav__burger[aria-expanded="true"] span{background:transparent}
.nav__burger[aria-expanded="true"] span::before{transform:translate(-50%,-50%) rotate(45deg)}
.nav__burger[aria-expanded="true"] span::after{transform:translate(-50%,-50%) rotate(-45deg)}
.msheet{position:fixed;inset:var(--nav-h) 0 auto 0;z-index:55;background:var(--paper);
  border-bottom:1px solid var(--line);box-shadow:var(--shadow);transform:translateY(-12px);opacity:0;visibility:hidden;transition:.28s ease}
.msheet.open{transform:none;opacity:1;visibility:visible}
.msheet nav{display:flex;flex-direction:column;padding:1.2rem var(--gutter) 1.6rem}
.msheet a{padding:.85rem 0;font-size:1.05rem;font-weight:500;border-bottom:1px solid var(--line)}
.msheet a:last-child{border-bottom:0}
.msheet .tel{display:inline-flex;align-items:center;gap:.5em;color:var(--ink);font-weight:600;margin-top:.4rem}
.msheet .tel svg{width:1.05em;height:1.05em}
.nav.is-scrolled + .msheet{inset:84px var(--gutter) auto var(--gutter);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-lg);overflow:hidden;
  background:rgba(3,5,8,.86);-webkit-backdrop-filter:blur(20px) saturate(160%) brightness(.55);backdrop-filter:blur(20px) saturate(160%) brightness(.55)}
.nav.is-scrolled + .msheet a{color:#fff;border-color:var(--night-line)}
.nav.is-scrolled + .msheet .msheet__areas{border-color:var(--night-line)}
.nav.is-scrolled + .msheet .msheet__areas a{color:var(--muted-d)}
.nav.is-scrolled + .msheet .msheet__label{color:var(--accent)}
.nav.is-scrolled + .msheet .tel{color:#fff}
.msheet__label{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:.2rem}
.msheet__areas{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem;padding:.3rem 0 .7rem;border-bottom:1px solid var(--line)}
.msheet .msheet__areas a{font-size:.95rem;padding:.5rem 0;border-bottom:0;color:var(--ink-2)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;height:100svh;max-height:1400px;display:flex;align-items:center;padding-block:var(--nav-h) 0;background:var(--paper)}
.hero__ground{position:absolute;inset:0;background:var(--night);overflow:hidden}
.hero__ovid{position:absolute;pointer-events:none;top:calc(50% + var(--nav-h)/2);transform:translateY(-50%);z-index:1;
  width:calc(clamp(480px,44vw,760px)*1.23);aspect-ratio:123/100;
  right:calc(clamp(60px,8vw,180px) - clamp(480px,44vw,760px)*.23);
  -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 100"><circle cx="50" cy="50" r="37.5" fill="none" stroke="white" stroke-width="25"/><circle cx="110" cy="83" r="13" fill="white"/></svg>');
  mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 100"><circle cx="50" cy="50" r="37.5" fill="none" stroke="white" stroke-width="25"/><circle cx="110" cy="83" r="13" fill="white"/></svg>');
  -webkit-mask-size:100% 100%;mask-size:100% 100%}
.hero__ovid{background:transparent}
.hero__vid{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transform:scale(1.5);transform-origin:left 25%}
.hero__ground::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(92deg, rgba(3,5,8,.72) 0%, rgba(3,5,8,.55) 40%, rgba(3,5,8,.18) 68%, rgba(3,5,8,0) 90%)}
.hero__ground::after{content:"";position:absolute;inset:0;background:rgba(3,5,8,.7)}
.hero__omask{position:absolute;pointer-events:none;top:calc(50% + var(--nav-h)/2);transform:translateY(-50%);z-index:1;
  width:calc(clamp(480px,44vw,760px)*1.23);aspect-ratio:123/100;
  right:calc(clamp(60px,8vw,180px) - clamp(480px,44vw,760px)*.23);
  --mx:-999px;--my:-999px;
  -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 100"><circle cx="50" cy="50" r="37.5" fill="none" stroke="white" stroke-width="25"/><circle cx="110" cy="83" r="13" fill="white"/></svg>');
  mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 100"><circle cx="50" cy="50" r="37.5" fill="none" stroke="white" stroke-width="25"/><circle cx="110" cy="83" r="13" fill="white"/></svg>');
  -webkit-mask-size:100% 100%;mask-size:100% 100%}

.hero__omask::before,.hero__omask::after{content:"";position:absolute;inset:0}
.hero__omask::before{background:#FFFFFF;opacity:.05}
@media (hover:none){.hero__omask::after{display:none}}   /* the cursor glow has nothing to follow on touch */
.hero__omask::after{opacity:.9;background:var(--accent);
  -webkit-mask-image:radial-gradient(circle 230px at var(--mx) var(--my), #000 0%, rgba(0,0,0,.26) 48%, transparent 74%);
  mask-image:radial-gradient(circle 230px at var(--mx) var(--my), #000 0%, rgba(0,0,0,.26) 48%, transparent 74%)}
.hero .shell{position:relative;z-index:1}
.hero__lead .eyebrow{margin-bottom:1.5rem}
.hero .display{font-size:clamp(2.9rem,6.4vw,5.6rem)}
.hero__sub{max-width:66ch;color:var(--muted);font-size:clamp(1.05rem,1.2vw,1.18rem);line-height:1.6;margin-top:1.7rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.3rem}
.hero .btn--ghost{background:var(--paper)}
.hero .btn--solid:hover{background:var(--paper);color:var(--ink)}
.hero .display{color:#FFFFFF}
.hero .display em{color:var(--accent)}
.hero__sub{color:rgba(255,255,255,.86)}
.hero .eyebrow{color:rgba(255,255,255,.92)}
.hero .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.hero .btn--ghost{background:transparent;color:#FFFFFF;border-color:rgba(255,255,255,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hero .btn--ghost:hover{border-color:#FFFFFF}

/* ---------- marquee ---------- */
.marquee{background:var(--accent);overflow:hidden;padding-block:1.05rem;
  border-top:1px solid var(--accent-edge);border-bottom:1px solid var(--accent-edge)}
.marquee__track{display:flex;width:max-content;animation:scrollx 42s linear infinite}
.marquee__group{display:flex;align-items:center;flex:0 0 auto}
.marquee span{font-family:var(--sans);font-weight:600;font-size:1rem;letter-spacing:-.01em;color:var(--ink);white-space:nowrap}
.marquee i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent-dot);margin-inline:1.6rem}
@keyframes scrollx{to{transform:translateX(-50%)}}

/* ---------- O + dot brand mark ---------- */
.omark{position:absolute;pointer-events:none;aspect-ratio:123/100;background-size:100% 100%;background-repeat:no-repeat}
.omark--light{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 100"><circle cx="50" cy="50" r="37.5" fill="none" stroke="white" stroke-width="25"/><circle cx="110" cy="83" r="13" fill="white"/></svg>')}
.omark--dark{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123 100"><circle cx="50" cy="50" r="37.5" fill="none" stroke="%23030508" stroke-width="25"/><circle cx="110" cy="83" r="13" fill="%23030508"/></svg>')}

/* ---------- live roles ---------- */
.roles{background:var(--paper)}
.roles.section{padding-block:clamp(76px,7.6vw,136px) clamp(62px,6.2vw,110px)}
.roles__head{display:grid;grid-template-columns:1fr .92fr;gap:clamp(24px,3vw,60px);align-items:end;margin-bottom:clamp(34px,3.5vw,56px)}
.roles__head .eyebrow{margin-bottom:1.1rem}
.roles__head .display{font-size:clamp(2.1rem,4.3vw,4rem)}
.roles__head .sub{color:var(--muted);font-size:1.04rem}
.roles__bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1.85rem;flex-wrap:nowrap}
.filters{display:flex;flex-wrap:wrap;gap:.55rem}
.filter{font-family:var(--sans);font-weight:500;font-size:.86rem;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line-2);border-radius:var(--pill);padding:.5em 1.05em;transition:.22s ease}
.filter:hover{border-color:var(--ink);color:var(--ink)}
.filter.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.rail-nav{display:flex;gap:.55rem;flex:0 0 auto}
.rail-btn{width:46px;height:46px;border-radius:var(--pill);border:1px solid rgba(120,122,125,.55);background:var(--paper);
  display:grid;place-items:center;color:var(--ink);transition:.22s ease}
.rail-btn svg{width:1.05em;height:1.05em}
.rail-btn:hover:not(:disabled){border-color:rgba(120,122,125,.55);background:var(--accent)}
.rail-btn:disabled{opacity:.32;cursor:default}
.rail{display:flex;--rg:clamp(16px,1.3vw,22px);--bleed:max(var(--gutter),(100vw - var(--shell))/2 + var(--gutter));gap:var(--rg);overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;
  margin-inline:0 calc(-1*var(--bleed));margin-bottom:-24px;padding:14px var(--bleed) 44px 0;scroll-padding-left:0}
.rail::-webkit-scrollbar{display:none}
.role{flex:0 0 auto;width:calc((100% - var(--bleed) - 3*var(--rg)) / 4);scroll-snap-align:start;display:flex;flex-direction:column;
  background:var(--paper);border:1.5px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--r-lg);
  padding:clamp(22px,1.8vw,30px);box-shadow:var(--shadow-sm);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.role.is-hidden{display:none}
.role:hover{box-shadow:var(--shadow);border-color:var(--line-2);border-top-color:var(--accent)}
.role__cat{font-family:var(--sans);font-weight:600;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);
  display:inline-flex;align-items:center;position:relative;padding-left:16px}
.role__cat::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--ink)}
.role__title{font-family:var(--sans);font-weight:600;font-size:1.28rem;line-height:1.2;letter-spacing:-.018em;color:var(--ink);margin-top:.9rem}
.role__meta{display:flex;flex-direction:column;gap:.55rem;margin-top:1.1rem}
.role__meta .r{display:inline-flex;align-items:center;gap:.55em;font-size:.92rem;color:var(--muted)}
.role__meta .r svg{width:1.05em;height:1.05em;color:var(--ink-2);flex:0 0 auto}
.role__meta .pay{color:var(--ink);font-weight:600}
.role__spacer{flex:1 1 auto;min-height:1.4rem}
.role__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.role__type{display:inline-flex;align-items:center;font-size:.78rem;font-weight:600;color:var(--ink-2);background:var(--stone);border-radius:var(--pill);padding:.4em .85em}
.role__view{display:inline-flex;align-items:center;gap:.4em;font-weight:600;font-size:.88rem;color:var(--ink)}
.role__view svg{width:1.05em;height:1.05em;transition:transform .25s ease}

.roles__all{margin-top:clamp(26px,2.8vw,46px);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.rail-nav--bottom{display:none}

/* ---------- why (dark) ---------- */
.why{background:var(--night);color:var(--cream);position:relative;overflow:hidden}
.why .shell{position:relative;z-index:1}
.why .omark{top:clamp(-160px,-8vw,-80px);right:clamp(-140px,-6vw,-60px);width:clamp(380px,34vw,560px);opacity:.05}
.why__top{display:grid;grid-template-columns:1fr .9fr;gap:clamp(24px,3vw,64px);align-items:end;margin-bottom:clamp(40px,4.6vw,72px)}
.why__top .eyebrow{margin-bottom:1.1rem;color:var(--accent)}
.why__top .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.why__top .display{font-size:clamp(2.1rem,4.4vw,4.1rem);color:#fff}
.why__top .display em{color:var(--accent)}
.why__top p{color:var(--muted-d);font-size:1.08rem}
.principles{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.2vw,20px)}

.principle .k{font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}

.why__quote{margin-top:clamp(40px,4.6vw,72px);padding-top:clamp(34px,3.6vw,56px);border-top:1px solid var(--night-line);
  display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.why__quote q{font-family:var(--sans);font-style:normal;font-weight:300;quotes:none;
  font-size:clamp(1.7rem,3.2vw,2.9rem);line-height:1.16;letter-spacing:-.026em;color:#fff}
.why__quote q::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:15px 0 0 var(--accent);margin-right:30px;vertical-align:middle}
.why__quote cite{font-style:normal;color:var(--accent);font-weight:600;font-size:.95rem}
.why :focus-visible{outline-color:var(--accent)}

/* ---------- why: O stage (B.3) ---------- */
/* B.3 - dupe of B.2 */
.dB3__quote{margin-top:0}
.dB3__left{display:flex;flex-direction:column;justify-content:space-between;align-self:stretch}

.dB3__intro{color:var(--muted-d);max-width:60ch;margin-top:1.3rem;font-size:clamp(1.02rem,1.1vw,1.08rem);line-height:1.62}
.dB3__grid{display:grid;grid-template-columns:1fr minmax(0,1fr);column-gap:clamp(56px,8vw,160px);align-items:center}
.dB3 .dB3__left .why__top{margin-bottom:0}
.dB3__left{min-width:0}
.dB3__nav{display:flex;gap:.6rem}
.dB3__step{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--night-line);background:transparent;font-weight:600;font-size:.85rem;color:var(--muted-d);cursor:pointer;transition:.25s ease}
.dB3__step.is-on{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.dB3__step:hover:not(.is-on){border-color:var(--accent);color:var(--accent)}
.dB3__step{position:relative}
.dB3__step .prog{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);transform:rotate(-90deg);opacity:0;pointer-events:none}
.dB3__step.is-on .prog{opacity:1}
.dB3__step .prog circle{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-dasharray:163;stroke-dashoffset:163}
.dB3__step.is-on.is-playing .prog circle{animation:dbProg 6s linear forwards}
@keyframes dbProg{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion: reduce){.dB3__step.is-on.is-playing .prog circle{animation:none}}
.dB3__stage{position:relative;width:min(clamp(380px,42vw,620px),calc(100%/1.23));aspect-ratio:1;justify-self:start;align-self:center;pointer-events:auto}
.dB3__ring{position:absolute;inset:0;border-radius:50%;border:clamp(48px,5.4vw,84px) solid var(--night-2);box-shadow:inset 0 0 0 1px var(--night-line),0 0 0 1px var(--night-line)}
.dB3__sat{position:absolute;right:-23%;bottom:4%;width:26%;height:26%;border-radius:50%;background:var(--accent);transition:transform .5s cubic-bezier(.3,1.4,.4,1)}
/* v2.6: the O holds one idea, set large: counter, the pillar word with the brand's yellow full stop, a light subline.
   The supporting sentence lives in the left column under the steps. */
.dB3__core{position:absolute;inset:17%;display:grid;place-items:center;text-align:center}
.dB3__count{display:block;font-size:.72rem;font-weight:600;letter-spacing:.2em;color:var(--muted-d)}
.dB3__count b{font-weight:600;color:var(--accent)}
.dB3__word{display:block;margin-top:clamp(16px,1.6vw,26px);font-weight:600;font-size:clamp(2.6rem,4.1vw,4.1rem);line-height:.92;letter-spacing:-.045em;color:#fff}
.dB3__word i{font-style:normal;color:var(--accent)}
.dB3__core h3{margin-top:clamp(12px,1.2vw,18px);font-weight:300;font-size:clamp(1.05rem,1.35vw,1.35rem);line-height:1.25;letter-spacing:-.012em;color:rgba(247,246,244,.74);text-wrap:balance}
.dB3__detail{margin-top:clamp(18px,1.8vw,26px);max-width:44ch;min-height:4.9em;font-size:1.02rem;line-height:1.6;color:rgba(247,246,244,.84);transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1)}
.dB3__detail.is-swap{opacity:0;transform:translateY(6px)}
@media (max-width:920px){.dB3__word{font-size:clamp(1.7rem,7.4vw,2.9rem)}.dB3__core h3{font-size:clamp(.92rem,3.6vw,1.1rem)}}
@media (max-width:920px){.dB3__grid{grid-template-columns:1fr;row-gap:40px}.dB3__stage{max-width:400px;justify-self:center}}
.dB__fade{animation:dbFade .6s cubic-bezier(.3,.9,.3,1)}
@keyframes dbFade{from{clip-path:circle(0% at 50% 50%);transform:scale(1.15)}to{clip-path:circle(75% at 50% 50%);transform:scale(1)}}
.dB__fade > *{animation:dbRise .8s cubic-bezier(.22,1,.36,1) both}
.dB__fade > :nth-child(2){animation-delay:.06s}
.dB__fade > :nth-child(3){animation-delay:.13s}
@keyframes dbRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- practice areas ---------- */
.practice{background:var(--wash);position:relative;overflow:hidden}
.practice .shell{position:relative;z-index:1}
/* v2.6: the O is solid black and rises out of the black team section; the section keeps enough bottom space that the arch sits clear of the last row */
.practice{--ow:clamp(380px,34vw,560px);--ov:calc(var(--ow) * .34)}
.practice.section{padding-bottom:calc(var(--ov) + clamp(40px,3.6vw,64px))}
.practice .omark{bottom:calc(var(--ov) - var(--ow) * .813);left:clamp(-180px,-8vw,-80px);width:var(--ow);opacity:1}
.practice__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(22px,2.6vw,44px);flex-wrap:wrap}
.practice__head .eyebrow{margin-bottom:1.1rem}
.practice__head .display{font-size:clamp(2.4rem,4.4vw,4.4rem)}
.practice__count{font-size:.95rem;color:var(--muted);font-weight:500;display:inline-flex;align-items:baseline;gap:.45em;white-space:nowrap}
.practice__count b{font-family:var(--sans);font-weight:700;font-size:1.1rem;color:var(--ink)}
.accordion{border-top:1px solid var(--line-2)}
.acc{border-bottom:1px solid var(--line-2)}
.acc__head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:transparent;border:0;padding:clamp(22px,2.3vw,34px) 0;text-align:left}
.acc__title{font-family:var(--sans);font-weight:600;font-size:clamp(1.5rem,2.6vw,2.4rem);color:var(--ink-2);letter-spacing:-.026em;line-height:1.12;transition:color .25s ease}
.acc__head:hover .acc__title,.acc.is-open .acc__title{color:var(--ink)}
.acc__icon{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line-2);background:var(--paper);position:relative;flex:0 0 auto;transition:background .25s ease,border-color .25s ease,transform .3s ease}
.acc__icon::before,.acc__icon::after{content:"";position:absolute;left:50%;top:50%;background:var(--ink);border-radius:2px;transition:background .25s ease}
.acc__icon::before{width:14px;height:2px;transform:translate(-50%,-50%)}
.acc__icon::after{width:2px;height:14px;transform:translate(-50%,-50%)}
.acc__head:hover .acc__icon{border-color:var(--ink)}
.acc.is-open .acc__icon{background:var(--accent);border-color:var(--accent);transform:rotate(45deg)}
.acc.is-open .acc__icon::before,.acc.is-open .acc__icon::after{background:var(--ink)}
.acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.acc.is-open .acc__panel{grid-template-rows:1fr}
.acc__panelInner{overflow:hidden}
.acc__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,3vw,56px)}
.acc__desc{color:var(--muted);font-size:1.04rem;line-height:1.62;max-width:54ch}
.acc__tags{display:flex;flex-wrap:wrap;gap:.5rem;align-content:flex-start}
.acc__tags span{font-size:.78rem;font-weight:500;color:var(--ink-2);background:var(--paper);border:1.5px solid var(--line-2);border-radius:var(--pill);padding:.5em 1em;cursor:default;
  transition:background-color .22s ease,border-color .22s ease,color .22s ease}
.acc__tags span:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.acc__link{display:inline-flex;align-items:center;gap:.5em;margin-top:1.5rem;margin-bottom:clamp(22px,2.3vw,34px);font-weight:600;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.acc__link svg{width:1.05em;height:1.05em;transition:transform .25s ease}

/* ---------- team ---------- */
.team{background:var(--night);color:var(--cream)}
.team__head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:clamp(28px,3.2vw,48px)}
.team__intro .eyebrow{margin-bottom:1.1rem}
.team__intro .display{font-size:clamp(2rem,4vw,3.7rem)}
.team__intro .sub{color:var(--muted);max-width:64ch;font-size:1.04rem;margin-top:1.3rem}
.team__foot{display:none}
.member{flex:0 0 calc((100% - 2*var(--rg)) / 3);scroll-snap-align:start;position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 0 0 1px var(--line-2);display:flex;flex-direction:column}
.member__media{width:100%}
.member__bio{width:100%}
#teamRail{margin-right:0;padding-right:0}
.member__media{position:relative;aspect-ratio:9/10;max-height:58vh;overflow:hidden;border-radius:var(--r-lg);background:var(--ink)}
.member__media img{width:100%;height:100%;object-fit:cover;object-position:center 5%;filter:grayscale(1) contrast(1.03);
  transition:filter .7s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
/* hover: colour photo fades in (photos are full colour, greyscale is CSS only) */
.member:not(.member--ghost){transition:box-shadow .3s ease}
.member:not(.member--ghost):hover,.member:not(.member--ghost):focus-within{box-shadow:0 0 0 2px var(--accent),var(--shadow)}
.member:hover .member__media img,.member:focus-within .member__media img{filter:grayscale(0) contrast(1.03);transform:scale(1.04)}
.member__scrim{position:absolute;inset:0;background:linear-gradient(to top,var(--scrim) 0%,var(--scrim-mid) 40%,transparent 66%);pointer-events:none;z-index:1}
.member__id{position:absolute;left:22px;right:108px;bottom:22px;color:#fff;z-index:2}
.member__id h3{font-family:var(--sans);font-weight:600;font-size:clamp(1.32rem,1.5vw,1.6rem);line-height:1.14;letter-spacing:-.022em}
.member__id .member__role{display:block;margin-top:.3rem;font-size:.88rem;letter-spacing:.01em;color:rgba(255,255,255,.9);font-weight:500}
.member__toggle{position:absolute;right:18px;bottom:20px;z-index:3;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-family:var(--sans);font-weight:600;font-size:.92rem;letter-spacing:.005em;color:#fff;background:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.5);border-radius:var(--pill);padding:.72em 1.5em .78em;backdrop-filter:blur(3px);transition:.2s ease}
.member__toggle:hover{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.member__bio{position:absolute;inset:0;z-index:5;background:var(--paper);padding:clamp(20px,1.6vw,28px);display:none;flex-direction:column;overflow:auto}
.member.is-open .member__bio{display:flex;animation:bioIn .3s ease}
@keyframes bioIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.member__close{position:absolute;right:16px;top:14px;width:42px;height:42px;border-radius:50%;border:1px solid var(--line-2);background:var(--paper);color:var(--ink);display:grid;place-items:center;transition:.2s ease;z-index:2}
.member__close svg{width:15px;height:15px;display:block}
.member__close:hover{background:var(--accent);color:var(--ink);border-color:transparent}
.member__bioRole{font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.member__bio h3{font-family:var(--sans);font-weight:600;font-size:1.4rem;letter-spacing:-.022em;color:var(--ink);margin-top:.35rem;padding-right:34px}
.member__txt{margin-top:.85rem;font-size:.9rem;line-height:1.58;color:var(--muted)}
.member__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem}
.member__tags span{font-size:.74rem;font-weight:500;color:var(--ink-2);background:var(--stone);border-radius:var(--pill);padding:.45em .85em}
.member__bfoot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.2rem}
.member__li{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--stone);color:var(--ink);flex:0 0 auto;transition:.2s ease}
.member__li svg{width:17px;height:17px;display:block;margin-top:-1px}
.member__li:hover{background:var(--accent);color:var(--ink)}
.member__read{display:inline-flex;align-items:center;gap:.4em;font-weight:600;font-size:.88rem;color:var(--ink)}
.member__read svg{width:1.05em;height:1.05em;transition:transform .25s ease}

.member--ghost .member__media{background:var(--stone);display:grid;place-items:center;border:1.5px dashed var(--sand)}
.member--ghost .member__scrim{background:linear-gradient(to top,rgba(214,198,170,.30),transparent 52%)}
.member--ghost .member__id{right:22px}
.member--ghost .member__id h3{color:var(--ink)}
.member--ghost .member__id .member__role{color:var(--ink-2)}
.ghost-flag{position:absolute;left:18px;top:18px;z-index:2;font-family:var(--sans);font-weight:600;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--accent);border-radius:var(--pill);padding:.45em .85em}
.ghost-av{color:var(--sand);z-index:0}
.ghost-av svg{width:clamp(54px,6vw,84px);height:auto;display:block}

/* ---------- team on black (v2.6) ---------- */
.team__intro .eyebrow{color:var(--accent)}
.team__intro .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.team__intro .display{color:#fff}
.team__intro .display em{color:var(--accent)}
.team__intro .sub{color:var(--muted-d)}
.team .rail-btn{background:transparent;border-color:var(--night-line);color:#fff}
.team .rail-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--ink)}
/* ring is drawn INSIDE the card: an outer ring gets cropped by the scrolling rail on the first card's left edge */
.team .member,.team .member:not(.member--ghost):hover,.team .member:not(.member--ghost):focus-within{box-shadow:none}
.team .member::after{content:"";position:absolute;inset:0;z-index:6;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 1px var(--night-line);transition:box-shadow .3s ease}
.team .member:not(.member--ghost):hover::after,.team .member:not(.member--ghost):focus-within::after{box-shadow:inset 0 0 0 2px var(--accent)}
.team .member__bio{background:var(--night-2)}
.team .member__bioRole{color:var(--accent)}
.team .member__bio h3{color:#fff}
.team .member__txt{color:var(--muted-d)}
.team .member__tags span{color:var(--cream);background:rgba(255,255,255,.07);transition:background-color .22s ease,color .22s ease}
.team .member__tags span:hover{background:var(--accent);color:var(--ink)}
.team .member__li{background:rgba(255,255,255,.08);color:#fff}
.team .member__li:hover{background:var(--accent);color:var(--ink)}
.team .member__read{color:#fff}
.team .member__close{background:transparent;border-color:var(--night-line);color:#fff}
.team .member__close:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.team .member--ghost .member__media{background:var(--night-2);border:1.5px dashed var(--night-line)}
.team .member--ghost .member__scrim{background:none}
.team .member--ghost .member__id h3{color:#fff}
.team .member--ghost .member__id .member__role{color:var(--muted-d)}
.team .ghost-av{color:var(--night-line)}
.team :focus-visible{outline-color:var(--accent)}

/* ---------- CTA ---------- */
/* v2.6: sand panel replaced with brand Black + the circular background graphic (white, faded in from the right) */
.cta__panel{background:var(--night);color:#fff;border-radius:var(--r-xl);padding:clamp(34px,4.2vw,72px);box-shadow:var(--shadow);overflow:hidden;position:relative}
.cta__panel::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle closest-side, rgba(255,255,255,.055) 97%, transparent 100%);
  background-size:clamp(76px,6.4vw,112px) clamp(76px,6.4vw,112px);background-position:right top;
  -webkit-mask-image:linear-gradient(100deg, transparent 40%, rgba(0,0,0,.6) 66%, #000 94%);
  mask-image:linear-gradient(100deg, transparent 40%, rgba(0,0,0,.6) 66%, #000 94%)}
.cta__panel::after{content:"";position:absolute;right:clamp(-230px,-14vw,-150px);bottom:clamp(-250px,-16vw,-170px);
  width:clamp(340px,30vw,460px);aspect-ratio:1;border-radius:50%;background:var(--accent);pointer-events:none}
.cta__grid{display:grid;grid-template-columns:1.25fr .85fr;gap:clamp(28px,3.4vw,64px);align-items:center;position:relative;z-index:1}
.cta__panel .eyebrow{color:rgba(255,255,255,.92);margin-bottom:1.1rem}
.cta__panel .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.cta__panel .display{font-size:clamp(2rem,3.8vw,3.5rem);color:#fff}
.cta__panel .display em{color:#fff}
.cta__panel .display .hl{color:var(--accent)}
.cta__lead p{color:var(--muted-d);max-width:48ch;margin-top:1.1rem;font-size:1.06rem}
.cta__act{display:flex;flex-direction:column;gap:1.3rem;align-items:flex-start}
.cta__btns{display:flex;flex-wrap:wrap;gap:.85rem}
.cta__act .btn--solid{background:var(--accent);color:var(--ink);box-shadow:none}
.cta__act .btn--solid:hover{background:var(--paper);color:var(--ink)}
.cta__act .btn--ghost{border-color:rgba(255,255,255,.34);color:#fff}
.cta__act .btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.cta__tel{display:inline-flex;align-items:center;gap:.5em;color:#fff;font-weight:600;font-size:1.02rem}
.cta__tel svg{width:1.1em;height:1.1em;color:var(--accent)}
.cta__panel :focus-visible{outline-color:var(--accent)}

/* ---------- footer ---------- */
.foot{background:var(--night);color:var(--cream);padding-block:clamp(56px,6vw,96px) clamp(28px,3vw,44px);position:relative;overflow:hidden}
.foot .shell{position:relative;z-index:1}
.foot .omark{bottom:clamp(-180px,-9vw,-90px);right:clamp(-160px,-7vw,-70px);width:clamp(340px,30vw,500px);opacity:.05}
.foot__top{display:grid;grid-template-columns:1.5fr .8fr .9fr 1fr;gap:clamp(28px,3vw,56px);padding-bottom:clamp(34px,3.6vw,52px);border-bottom:1px solid var(--night-line)}
.foot__brand{color:#fff}
.foot__brand .logo{width:clamp(132px,11vw,168px)}
.foot__brand p{color:var(--muted-d);max-width:30ch;margin-top:1.4rem;font-size:.95rem;line-height:1.6}
.foot__soc{display:flex;gap:.6rem;margin-top:1.4rem}
.foot__soc a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--night-line);color:var(--cream);transition:.22s ease}
.foot__soc a svg{width:1.1em;height:1.1em}
.foot__soc a:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.foot__col h4{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}
.foot__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.foot__col a{color:var(--muted-d);font-size:.95rem;transition:color .2s ease}
.foot__col a:hover{color:#fff}
.foot__col li{color:var(--muted-d);font-size:.95rem}
.foot__bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.6rem}
.foot__bottom span{color:var(--muted-d);font-size:.85rem}
.foot__bottom .links{display:flex;gap:1.5rem}
.foot__bottom .links a{color:var(--muted-d);font-size:.85rem;transition:color .2s ease}
.foot__bottom .links a:hover{color:var(--accent)}
.foot :focus-visible{outline-color:var(--accent)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (scripting:none){.reveal{opacity:1;transform:none}}   /* no script, no fade: the content simply shows */

@media (max-width:1080px){
  .roles__head,.why__top{grid-template-columns:1fr;gap:1.4rem;align-items:start}
  .roles__head .sub,.why__top p{max-width:62ch}
  .principles{grid-template-columns:repeat(2,1fr)}
  .acc__inner{grid-template-columns:1fr;gap:1.2rem}
  .role{width:calc((100% - var(--bleed) - 2*var(--rg)) / 3)}
}
@media (max-width:1180px){
  .nav__tel{display:none}
}
@media (max-width:920px){
  .nav__links{display:none}
  .nav__tel{display:none}
  .nav__btn--contact{display:none}
  .nav__burger{display:block}
  .nav.is-scrolled .nav__in{height:60px;padding-inline:18px 8px}
  .cta__grid{grid-template-columns:1fr;gap:2rem}
  .foot__top{grid-template-columns:1fr 1fr;gap:2.2rem}
  .foot__brand{grid-column:1 / -1}
  .team__foot{display:flex;justify-content:flex-end;margin-top:clamp(22px,2.6vw,40px)}
  .member{flex-basis:calc((100% - var(--rg)) / 2)}
  .role{width:calc((100% - var(--bleed) - var(--rg)) / 2)}
  .member__media{max-height:none}
  .rail-nav--top{display:none}
  .rail-nav--bottom{display:flex}
}
@media (max-width:560px){
  .section{padding-block:clamp(56px,14vw,82px)}
  .hero .display{font-size:clamp(2.5rem,11vw,3.4rem)}
  .principles{grid-template-columns:1fr}
  .foot__top{grid-template-columns:1fr}
  .cta__btns{width:100%}
  .cta__act .btn{flex:1 1 auto;justify-content:center}
  .member{flex-basis:100%}
  .role{width:calc(100% - var(--bleed))}
  .brand .logo{width:92px}
  .nav.is-scrolled .brand .logo{width:62px}
  .nav__btn{padding:.66em 1.1em;font-size:.86rem}
}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .marquee__track{animation:none}
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* v2: placement highlight strip per Sam's sketch */
.practice .cases-label,.practice .cases-label,.practice .cases-label,.practice .cases-label{border-top:1px solid var(--line-2);padding-top:16px;margin-top:0}
.cases-label{display:block;font-family:var(--sans);font-weight:600;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin:4px 0 10px}

.case-chip .by{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-left:auto;flex:0 0 auto;overflow:visible}

.acc__head:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
.acc__head:focus:not(:focus-visible){outline:none}

/* ===== Row redesign alternatives ===== */

/* A: ledger */
.ledger{border-top:1px solid var(--line-2)}
.ledger a{display:grid;grid-template-columns:1.4fr 1fr auto auto;gap:1.2rem;align-items:center;padding:13px 4px;border-bottom:1px solid var(--line-2);color:var(--ink);transition:background .18s ease}
.ledger a:hover{background:var(--stone)}
.ledger b{font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.01em}
.ledger .spec{font-size:.85rem;color:var(--muted)}
.ledger .city{font-size:.85rem;color:var(--ink-2);white-space:nowrap}
.ledger svg{width:1em;height:1em;color:var(--ink-2)}
.ledger a:hover svg{color:var(--ink)}
@media (max-width:700px){.ledger a{grid-template-columns:1fr auto}.ledger .spec{grid-column:1}.ledger .city{display:none}}
/* B: tier cards */

.tiercard .tier{align-self:flex-start;font-family:var(--sans);font-weight:700;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;background:var(--accent);color:var(--ink);border-radius:var(--pill);padding:.36em .9em}

/* C: proof bar */
.proofbar{display:flex;align-items:center;gap:1.4rem;flex-wrap:nowrap;position:relative;background:var(--ink);color:var(--paper);border-radius:var(--r-md);padding:16px clamp(18px,2vw,28px)}
.proofbar .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.proofbar b{font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.01em}
.proofbar span{font-size:.85rem;color:rgba(247,246,244,.75)}
.proofbar a{margin-left:auto;flex:0 0 auto;font-family:var(--sans);font-weight:600;font-size:.82rem;color:var(--accent);white-space:nowrap;display:inline-flex;align-items:center;gap:.45em}
.proofbar a svg{width:1em;height:1em}
.pb-swap{display:inline-flex;align-items:baseline;gap:1.4rem;flex-wrap:nowrap;flex:0 0 auto;white-space:nowrap;transition:transform .5s cubic-bezier(.3,.7,.2,1),opacity .5s ease}
.pb-swap.is-out{transform:translateX(110px);opacity:0;-webkit-mask-position:100% 0;mask-position:100% 0;transition:transform .65s cubic-bezier(.4,0,.6,.4),opacity .65s ease .1s,-webkit-mask-position .65s ease,mask-position .65s ease}
.pb-swap.is-in{transform:translateY(16px);opacity:0;transition:none}
.pb-prev{display:inline-flex;align-items:baseline;gap:1.4rem;flex:0 0 auto;white-space:nowrap;opacity:0;transition:opacity .5s ease;overflow:hidden}
.pb-prev.on{opacity:.38}
.pb-track{position:relative;display:inline-flex;align-items:baseline;gap:2.2rem;flex:1 1 0;min-width:0;overflow:hidden;justify-content:flex-start;-webkit-mask-image:linear-gradient(to right,#000 72%,transparent 98%);mask-image:linear-gradient(to right,#000 72%,transparent 98%)}
.pb-clone{position:absolute;display:inline-flex;align-items:baseline;gap:1.4rem;white-space:nowrap;pointer-events:none;will-change:transform,opacity}
.pb-clone b{font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.01em}
.pb-clone span{font-size:.85rem;color:rgba(247,246,244,.75)}
.pb-prev b{font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap}
.pb-prev span{font-size:.85rem;color:rgba(247,246,244,.75);white-space:nowrap}
.pb-prev2.on{opacity:.16}
@media (max-width:640px){
  .proofbar{gap:1rem;padding:14px 16px}
  .pb-swap{min-width:0;overflow:hidden}
  .pb-swap b{overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .pb-swap span{display:none}
  .proofbar a{font-size:.78rem}
}
@media (max-width:820px){.pb-prev{display:none}}
@media (max-width:1150px){.pb-prev2{display:none}}
.pb-swap b{font-family:var(--sans);font-weight:600;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap}
.pb-swap span{font-size:.85rem;color:rgba(247,246,244,.75);white-space:nowrap}
.proofbar a:hover{color:#fff}

/* ---------- how we work: off-market search + market coverage (v2.7) ---------- */
.offmkt{background:var(--wash);border-top:1px solid var(--line)}
.offmkt.section{padding-block:clamp(64px,6.4vw,112px)}
.offmkt__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,96px);align-items:start}
.offmkt__lead .eyebrow{margin-bottom:1.2rem}
.offmkt__lead .display{font-size:clamp(2rem,3.6vw,3.3rem)}
.offmkt__lead .display em{color:var(--ink);font-weight:300}
.offmkt__txt{color:var(--muted);font-size:1.06rem;line-height:1.62;max-width:52ch;margin-top:1.4rem}
.offmkt__cta{margin-top:2rem}
.offmkt__cov{padding-top:.4rem}
.coverage{list-style:none;margin:.9rem 0 0;padding:0;border-top:1px solid var(--line-2)}
.coverage li{display:grid;grid-template-columns:minmax(0,1fr);gap:.3rem;padding:clamp(16px,1.5vw,22px) 0;border-bottom:1px solid var(--line-2);position:relative;padding-left:26px}
.coverage li::before{content:"";position:absolute;left:0;top:calc(clamp(16px,1.5vw,22px) + .55em);width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent-line)}
.coverage b{font-weight:600;font-size:1.02rem;letter-spacing:-.012em;color:var(--ink)}
.coverage span{font-size:.92rem;line-height:1.55;color:var(--muted)}
@media (max-width:920px){.offmkt__grid{grid-template-columns:1fr;gap:34px}}

/* =========================================================
   PRACTICE AREA PAGE (template for the six sector pages)
   ========================================================= */
.phero{position:relative;overflow:hidden;background:var(--night);color:#fff;padding-block:calc(var(--nav-h) + clamp(44px,5vw,86px)) clamp(56px,6vw,104px)}
.phero__bg{position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='white' fill-opacity='.02'><circle cx='0' cy='0' r='50'/><circle cx='100' cy='0' r='50'/><circle cx='0' cy='100' r='50'/><circle cx='100' cy='100' r='50'/><circle cx='50' cy='50' r='50'/></g></svg>");
  background-size:clamp(220px,17vw,320px) clamp(220px,17vw,320px);
  -webkit-mask-image:radial-gradient(ellipse 60% 115% at 100% 50%,#000 0%,rgba(0,0,0,.55) 45%,transparent 85%);
  mask-image:radial-gradient(ellipse 60% 115% at 100% 50%,#000 0%,rgba(0,0,0,.55) 45%,transparent 85%)}
.phero__o{position:absolute;right:clamp(-180px,-8vw,-60px);top:50%;transform:translateY(-50%);width:clamp(360px,34vw,560px);opacity:.07}
.phero__in{position:relative;z-index:1}
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:.35em .6em;font-size:.84rem;color:var(--muted-d);margin-bottom:clamp(26px,3vw,44px)}
.crumbs a{color:var(--muted-d);transition:color .2s ease;white-space:nowrap}
@media (max-width:640px){.phero--role .crumbs span{display:none}.phero--role .crumbs i:last-of-type{display:none}}
.crumbs a:hover{color:#fff}
.crumbs i{font-style:normal;opacity:.5}
.crumbs span{color:#fff}
.phero .eyebrow{color:var(--accent)}
.phero .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.phero .display{font-size:clamp(2.6rem,6vw,5rem);color:#fff;margin-top:1.4rem}
.phero .display em{color:var(--accent)}
.phero__sub{max-width:62ch;color:rgba(255,255,255,.82);font-size:clamp(1.04rem,1.2vw,1.16rem);line-height:1.62;margin-top:1.6rem}
.phero__facts{list-style:none;display:flex;flex-wrap:wrap;gap:clamp(18px,2.4vw,44px);margin:2rem 0 0;padding:1.4rem 0 0;border-top:1px solid var(--night-line)}
.phero__facts li{font-size:.95rem;color:var(--muted-d)}
.phero__facts b{display:block;font-size:clamp(1.3rem,1.9vw,1.7rem);font-weight:600;letter-spacing:-.02em;color:#fff;margin-bottom:.15rem}
.phero__cta{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.2rem}
.phero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.phero .btn--ghost:hover{border-color:#fff}
.phero :focus-visible{outline-color:var(--accent)}

/* live roles as a grid rather than a rail */
.roles--page{background:var(--wash)}
.rolegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,1.3vw,22px)}
.rolegrid .role{width:auto;flex:none}
@media (max-width:1080px){.rolegrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.rolegrid{grid-template-columns:1fr}}

/* placements / case studies */
.cases{background:var(--paper)}

.cases__head .display{font-size:clamp(2.1rem,4.3vw,3.6rem)}
.cases__head .display em{font-weight:300}
.cases__head .eyebrow{margin-bottom:1.1rem}
.cases__head .sub{color:var(--muted);font-size:1.04rem}
.cases__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,1.3vw,22px)}
.case{display:flex;flex-direction:column;background:var(--night);color:#fff;border-radius:var(--r-lg);padding:clamp(24px,2.2vw,34px);
  position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}
.case::after{content:"";position:absolute;right:-70px;bottom:-70px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.03);pointer-events:none}
.case:hover{transform:translateY(-4px);box-shadow:0 26px 60px -32px rgba(3,5,8,.7)}
.case__tier{align-self:flex-start;font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--accent);border-radius:var(--pill);padding:.42em .95em}
.case__title{font-weight:600;font-size:clamp(1.14rem,1.4vw,1.34rem);line-height:1.22;letter-spacing:-.02em;color:#fff;margin-top:1.1rem}
.case__meta{font-size:.86rem;color:var(--accent);margin-top:.45rem}
.case__txt{font-size:.94rem;line-height:1.6;color:var(--muted-d);margin-top:1rem}
.case__out{display:flex;gap:.65em;align-items:flex-start;font-size:.92rem;line-height:1.5;color:#fff;font-weight:500;margin-top:auto;padding-top:1.3rem}
.case__out i{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:.45em}
.cases__note{font-size:.84rem;color:var(--muted);margin-top:clamp(20px,2vw,30px)}
@media (max-width:1080px){.cases__grid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.cases__grid{grid-template-columns:1fr}}

/* =========================================================
   SITE PAGES: roles board, role detail, placements, about,
   team, contact, legal
   ========================================================= */
.phero--short{padding-block:calc(var(--nav-h) + clamp(40px,4.4vw,74px)) clamp(44px,4.6vw,78px)}
.phero--role .display{font-size:clamp(2.1rem,4vw,3.4rem)}
.phero--role .phero__facts b{font-size:clamp(1rem,1.25vw,1.18rem)}

.cases__foot .cases__note{margin-top:0}

/* ---- filter board (live roles + placements) ---- */
.roles--board{background:var(--paper)}
.cases--board{background:var(--wash)}
.board__bar{display:flex;flex-direction:column;gap:.9rem;padding-bottom:clamp(18px,2vw,26px);border-bottom:1px solid var(--line-2)}
.filters--lvl{gap:.5rem}
.lvl{font-family:var(--sans);font-weight:500;font-size:.82rem;color:var(--ink-2);background:transparent;border:1.5px solid transparent;
  border-radius:var(--pill);padding:.45em .95em;transition:.22s ease}
.lvl:hover{color:var(--ink);border-color:var(--line-2)}
.lvl.is-active{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.board__count{font-size:.88rem;color:var(--muted);margin:clamp(16px,1.6vw,22px) 0 clamp(18px,1.8vw,26px)}
.rolegrid--board .role.is-hidden,.cases__grid .case.is-hidden{display:none}
.board__empty{color:var(--muted);font-size:1.02rem;padding:clamp(26px,3vw,46px) 0}
.board__row{display:flex;align-items:center;justify-content:space-between;gap:.9rem 1.4rem;flex-wrap:wrap}
.board__search{position:relative;display:flex;align-items:center;flex:0 1 340px;min-width:220px}
.board__search svg{position:absolute;left:1rem;width:17px;height:17px;color:var(--ink-2);pointer-events:none}
.board__search input{width:100%;font:500 .9rem/1.2 var(--sans);color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line-2);border-radius:var(--pill);padding:.68em 1.1em .68em 2.7em;transition:border-color .22s ease,box-shadow .22s ease}
.board__search input::placeholder{color:var(--muted)}
.board__search input:hover{border-color:var(--ink-2)}
.board__search input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(233,249,131,.55)}
.board__more{display:flex;justify-content:center;margin-top:clamp(30px,3.2vw,52px)}
.board__more[hidden]{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:640px){.board__search{flex-basis:100%}}
.cases--board .cases__grid{margin-top:0}

/* ---- role detail ---- */
.jobwrap{background:var(--paper)}
.jobwrap__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.75fr);gap:clamp(30px,4vw,80px);align-items:start}
.job{max-width:68ch}
.job__h{font-family:var(--sans);font-weight:600;font-size:clamp(1.2rem,1.7vw,1.5rem);letter-spacing:-.02em;color:var(--ink);margin:clamp(26px,3vw,42px) 0 .9rem}
.job__h:first-child{margin-top:0}
.job .job__lead{font-size:clamp(1.06rem,1.2vw,1.18rem);line-height:1.6;color:var(--ink);font-weight:500;margin-top:0}
.job p b,.job__list b{color:var(--ink);font-weight:600}
.job p{color:var(--muted);font-size:1.02rem;line-height:1.66;margin-top:.9rem}
.job__list{list-style:none;margin:.4rem 0 0;padding:0}
.job__list li{position:relative;padding:.55rem 0 .55rem 26px;color:var(--muted);font-size:1.02rem;line-height:1.6;border-bottom:1px solid var(--line)}
.job__list li::before{content:"";position:absolute;left:0;top:1.1em;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.job__note{font-size:.84rem;color:var(--ink-2);margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line-2)}
.jobside{position:sticky;top:calc(var(--nav-h) + 20px)}
.jobside__card{background:var(--night);color:#fff;border-radius:var(--r-xl);padding:clamp(24px,2.4vw,34px)}
.jobside__card .cases-label{color:var(--accent);border:0;padding:0;margin:0 0 .8rem}
.jobside__txt{color:var(--muted-d);font-size:.96rem;line-height:1.6}
.jobside__btn{width:100%;justify-content:center;margin-top:.9rem}
.jobside .btn--ghost{color:#fff;border-color:rgba(255,255,255,.28)}
.jobside .btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.jobside__who{display:flex;align-items:center;gap:1rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--night-line)}
.jobside__who img{width:62px;height:62px;border-radius:50%;object-fit:cover;object-position:center 12%;filter:grayscale(1);flex:0 0 auto}
.jobside__who b{display:block;font-weight:600;font-size:.98rem;color:#fff}
.jobside__who span{display:block;font-size:.8rem;color:var(--muted-d);margin-top:.15rem}
.jobside__tel{display:inline-block;margin-top:.4rem;font-size:.9rem;font-weight:600;color:var(--accent)}
@media (max-width:980px){.jobwrap__grid{grid-template-columns:1fr}.jobside{position:static}}

/* ---- about ---- */
.story{background:var(--paper)}
.story__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,4.6vw,88px);align-items:start}
.story__lead .display{font-size:clamp(2rem,3.6vw,3.2rem)}
.story__lead .display em{font-weight:300}
.story__lead .eyebrow{margin-bottom:1.1rem}
.story__intro{font-size:clamp(1.1rem,1.4vw,1.32rem);line-height:1.55;color:var(--ink);font-weight:500;letter-spacing:-.012em}
.story__body p + p{margin-top:1.1rem;color:var(--muted);font-size:1.04rem;line-height:1.68}
.why--page{background:var(--night);color:var(--cream)}
.why--page .why__top{display:grid;grid-template-columns:1fr .9fr;gap:clamp(24px,3vw,64px);align-items:end;margin-bottom:clamp(34px,4vw,60px)}
.why--page .why__top .display{font-size:clamp(2rem,3.8vw,3.4rem);color:#fff}
.why--page .why__top .display em{color:var(--accent);font-weight:300}
.why--page .why__top .eyebrow{color:var(--accent);margin-bottom:1.1rem}
.why--page .why__top .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.why--page .why__top p{color:var(--muted-d);font-size:1.06rem}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.2vw,20px)}
.pill{background:var(--night-2);border:1px solid var(--night-line);border-radius:var(--r-lg);padding:clamp(22px,1.9vw,32px);
  display:flex;flex-direction:column;gap:.7rem;transition:border-color .25s ease,transform .3s cubic-bezier(.22,1,.36,1)}
.pill:hover{border-color:var(--accent);transform:translateY(-3px)}
.pill__k{font-weight:600;font-size:.74rem;letter-spacing:.14em;color:var(--accent)}
.pill h3{font-family:var(--sans);font-weight:600;font-size:1.22rem;line-height:1.2;color:#fff;letter-spacing:-.018em}
.pill p{color:var(--muted-d);font-size:.95rem;line-height:1.58}
@media (max-width:1080px){.pillars{grid-template-columns:repeat(2,1fr)}.why--page .why__top{grid-template-columns:1fr;align-items:start}}
@media (max-width:560px){.pillars{grid-template-columns:1fr}.story__grid{grid-template-columns:1fr}}
@media (max-width:920px){.story__grid{grid-template-columns:1fr;gap:28px}}

/* ---- contact ---- */
.cform{background:var(--paper)}
.cform__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,3.6vw,72px);align-items:start}
.cform__form{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.4vw,22px)}
.cform__tabs{grid-column:1 / -1;display:inline-flex;gap:.4rem;background:var(--wash);border:1px solid var(--line-2);
  border-radius:var(--pill);padding:.3rem;width:max-content;max-width:100%;margin-bottom:.6rem}
.ctab{font-family:var(--sans);font-weight:600;font-size:.88rem;color:var(--ink-2);background:transparent;border:0;
  border-radius:var(--pill);padding:.65em 1.4em;transition:.22s ease}
.ctab:hover{color:var(--ink)}
.ctab.is-active{background:var(--ink);color:var(--paper)}
.field{display:flex;flex-direction:column;gap:.5rem}
.field--full{grid-column:1 / -1}
.field label{font-size:.82rem;font-weight:600;letter-spacing:.04em;color:var(--ink)}
.field label i{font-style:normal;font-weight:500;color:var(--muted);letter-spacing:0}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line-2);border-radius:var(--r-md);padding:.9em 1.1em;transition:border-color .2s ease,box-shadow .2s ease}
.field textarea{resize:vertical;min-height:140px;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-d)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(233,249,131,.45)}
.field input[type=file]{padding:.8em;background:var(--wash);cursor:pointer}
.cform__send{flex-direction:row;align-items:center;justify-content:flex-start;gap:1rem 1.6rem;flex-wrap:wrap;margin-top:.6rem}
.cform__small{margin:0;font-size:.84rem;color:var(--muted);max-width:40ch;line-height:1.5}
.cform__side{display:flex;flex-direction:column;gap:clamp(14px,1.4vw,20px)}
.cform__card{background:var(--wash);border:1px solid var(--line-2);border-radius:var(--r-xl);padding:clamp(22px,2.2vw,32px)}
.cform__card .cases-label{margin:0 0 1rem}
.cform__big{display:block;font-family:var(--sans);font-weight:600;font-size:clamp(1.1rem,1.5vw,1.32rem);letter-spacing:-.018em;
  color:var(--ink);padding:.35rem 0;transition:color .2s ease}
.cform__big:hover{color:var(--ink-2)}
.cform__note{font-size:.9rem;color:var(--muted);line-height:1.55;margin-top:.9rem}
.cform__people{list-style:none;margin:0;padding:0}
.cform__people li + li{border-top:1px solid var(--line-2)}
.cform__person{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:.95rem;align-items:center;padding:.85rem 0;color:var(--ink);
  transition:padding .35s cubic-bezier(.22,1,.36,1)}
.cform__person img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:center 12%;filter:grayscale(1);transition:filter .5s ease}
.cform__person b{display:block;font-weight:600;font-size:1rem;color:var(--ink)}
.cform__person i{display:block;font-style:normal;font-size:.85rem;color:var(--muted);margin-top:.15rem}
.cform__person .pa-arrowdot{width:36px;height:36px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-2)}
.cform__person:hover{padding-inline:.5rem .25rem}
.cform__person:hover img{filter:none}
.cform__person:hover .pa-arrowdot,.cform__person:focus-visible .pa-arrowdot{background:var(--accent);box-shadow:none}
.cform__card--dark{background:var(--night);border-color:var(--night);color:#fff}
.cform__card--dark .cases-label{color:var(--accent)}
.cform__card--dark p{color:var(--muted-d);font-size:.96rem;line-height:1.6}
.cform__card--dark .arrow-link{color:#fff;margin-top:1.1rem}
@media (max-width:980px){.cform__grid{grid-template-columns:1fr}}
@media (max-width:560px){.cform__form{grid-template-columns:1fr}}

/* ---- legal ---- */
.legal{background:var(--paper)}
.legal__wrap{max-width:74ch}
.legal__updated{font-size:.85rem;color:var(--muted);padding-bottom:1.4rem;border-bottom:1px solid var(--line-2)}
.legal__sec{padding:clamp(22px,2.4vw,34px) 0;border-bottom:1px solid var(--line)}
.legal__sec h2{font-family:var(--sans);font-weight:600;font-size:clamp(1.2rem,1.8vw,1.5rem);letter-spacing:-.02em;color:var(--ink)}
.legal__sec p{color:var(--muted);font-size:1.02rem;line-height:1.7;margin-top:.8rem}

/* current page marker in the mega menu */
.mega__tile.is-current{border-color:var(--ink)}
.nav.is-scrolled .mega__tile.is-current:not(.mega__tile--cta){border-color:rgba(255,255,255,.3)}
.nav__link.is-current::after{right:0}

/* =========================================================
   PRACTICE PAGES v2 — brand-led
   Devices from the guidelines: the O marque as a circular frame
   housing imagery, the circular lattice at 5% on black, the dot
   that grows, the yellow dot-with-arrow, yellow full stops on black.
   ========================================================= */
.fs{color:inherit}
.pa-hero .fs,.pa-ladder .fs,.pa-next .fs{color:var(--accent)}

/* the brand's circular background graphic (overlapping circles) */
.pa-lattice{position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='white' fill-opacity='.02'><circle cx='0' cy='0' r='50'/><circle cx='100' cy='0' r='50'/><circle cx='0' cy='100' r='50'/><circle cx='100' cy='100' r='50'/><circle cx='50' cy='50' r='50'/></g></svg>");
  background-size:clamp(220px,17vw,320px) clamp(220px,17vw,320px)}

/* shared section heading */
.pa-h2{font-family:var(--sans);font-weight:600;font-size:clamp(2rem,3.7vw,3.3rem);line-height:1.04;letter-spacing:-.034em;color:var(--ink)}
.pa-h2 sup{font-size:.34em;font-weight:600;letter-spacing:.06em;color:var(--muted);vertical-align:top;margin-left:.35em;position:relative;top:.5em}

/* yellow dot with arrow: the brand's link affordance */
.pa-arrowdot{display:inline-grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--ink);
  transition:transform .4s cubic-bezier(.22,1,.36,1),background-color .25s ease,box-shadow .25s ease}
.pa-arrowdot svg{width:42%;height:42%;transition:transform .4s cubic-bezier(.22,1,.36,1)}
a:hover .pa-arrowdot svg,a:focus-visible .pa-arrowdot svg{transform:translate(12%,-12%)}
a:hover .pa-arrowdot,a:focus-visible .pa-arrowdot{transform:scale(1.06)}
.pa-more{display:inline-flex;align-items:center;gap:.8rem;font-weight:600;font-size:.95rem;color:var(--ink)}

/* ---------- the O frame (used in the hero and for the specialist) ---------- */

/* ---------- hero ---------- */

.pa-hero .pa-lattice{-webkit-mask-image:linear-gradient(100deg,transparent 34%,rgba(0,0,0,.7) 62%,#000 90%);
  mask-image:linear-gradient(100deg,transparent 34%,rgba(0,0,0,.7) 62%,#000 90%)}

.pa-hero .crumbs{margin-bottom:clamp(34px,4.4vw,72px)}

.pa-hero__num{font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-d);margin-bottom:1.5rem}
.pa-hero__num b{font-weight:600;color:var(--accent)}
.pa-hero__num i{font-style:normal;margin:0 .4em;opacity:.45}
.pa-hero__title{font-family:var(--sans);font-weight:700;font-size:clamp(2.8rem,6vw,5.5rem);line-height:.96;letter-spacing:-.045em;color:#fff}

.pa-hero__cta{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.3rem}
.pa-hero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.34)}
.pa-hero .btn--ghost:hover{border-color:#fff}
.pa-hero__meta{display:flex;flex-wrap:wrap;gap:.5rem 1.7rem;margin-top:clamp(40px,4.6vw,72px);padding-top:1.2rem;border-top:1px solid var(--night-line);
  font-size:.84rem;color:var(--muted-d)}
.pa-hero__meta span{display:inline-flex;align-items:center;gap:.65em}
.pa-hero__meta span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}

/* ---------- statement + practice index ---------- */
.pa-intro{position:relative;overflow:hidden;background:var(--paper);--ow:clamp(380px,34vw,560px);--ov:calc(var(--ow) * .34)}
.pa-intro.section{padding-bottom:calc(var(--ov) + clamp(48px,4.4vw,80px))}
.pa-intro .omark{bottom:calc(var(--ov) - var(--ow) * .813);left:clamp(-180px,-8vw,-80px);width:var(--ow);opacity:1}
.pa-intro .shell{position:relative;z-index:1}
.pa-intro__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(32px,6vw,120px);align-items:start}
.pa-intro__state{font-family:var(--sans);font-weight:600;font-size:clamp(2.2rem,4.3vw,4rem);line-height:1.02;letter-spacing:-.038em;color:var(--ink);max-width:15ch;text-wrap:balance}
.pa-intro__body{padding-top:.5rem}
.pa-intro__body p{color:var(--muted);font-size:1.04rem;line-height:1.68}
.pa-intro__body p:first-child{color:var(--ink);font-size:clamp(1.12rem,1.32vw,1.28rem);line-height:1.55;letter-spacing:-.01em}
.pa-intro__body p + p{margin-top:1.1rem}
.pa-byline{display:inline-flex;align-items:center;gap:.85rem;margin-top:2rem;padding:.38rem 1.25rem .38rem .38rem;
  border:1.5px solid var(--line-2);border-radius:var(--pill);transition:border-color .25s ease}
.pa-byline img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center 10%;filter:grayscale(1);transition:filter .5s ease}
.pa-byline span{font-size:.88rem;color:var(--muted)}
.pa-byline b{font-weight:600;color:var(--ink)}
.pa-byline:hover{border-color:var(--ink)}
.pa-byline:hover img{filter:none}

/* ---------- who we place: the seniority ladder ---------- */
.pa-ladder{position:relative;overflow:hidden;background:var(--night);color:#fff}
.pa-ladder .shell{position:relative;z-index:1}
.pa-ladder .pa-lattice{-webkit-mask-image:radial-gradient(ellipse 70% 90% at 100% 0%,#000 10%,transparent 70%);
  mask-image:radial-gradient(ellipse 70% 90% at 100% 0%,#000 10%,transparent 70%)}
.pa-ladder__head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,100px);align-items:end;margin-bottom:clamp(54px,6vw,100px)}
.pa-ladder__head .eyebrow{color:var(--accent);margin-bottom:1.2rem}
.pa-ladder__head .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.pa-ladder .pa-h2{color:#fff}
.pa-ladder__head p{color:var(--muted-d);font-size:1.04rem;line-height:1.62;max-width:44ch}
.pa-scale{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:clamp(18px,2.2vw,40px);position:relative}
.pa-scale::before{content:"";position:absolute;left:0;right:0;top:18px;height:1px;background:linear-gradient(90deg,var(--night-line),rgba(233,249,131,.55))}
.pa-step{position:relative;padding-top:66px}
@media (min-width:1081px){@supports (grid-template-rows:subgrid){
  .pa-scale{grid-template-rows:auto auto auto}
  .pa-step{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
}}
.pa-step__dot{position:absolute;left:0;top:18px;width:var(--d);height:var(--d);border-radius:50%;background:var(--accent);transform:translateY(-50%);
  box-shadow:0 0 0 6px var(--night);transition:transform .45s cubic-bezier(.3,1.4,.4,1)}
.pa-step:hover .pa-step__dot{transform:translateY(-50%) scale(1.25)}
.pa-step h3{font-family:var(--sans);font-weight:600;font-size:clamp(1.06rem,1.25vw,1.2rem);letter-spacing:-.018em;color:#fff}
.pa-step p{margin-top:.65rem;color:var(--muted-d);font-size:.92rem;line-height:1.6}
.pa-step__recent{margin-top:1.1rem !important;padding-top:1rem;border-top:1px solid var(--night-line);font-size:.84rem !important;color:var(--cream) !important}
.pa-step__recent em{display:block;font-style:normal;font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}

/* ---------- live mandates: a ledger, not cards ---------- */
.pa-mand{background:var(--paper)}
.pa-mand__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:clamp(26px,2.8vw,44px)}
.pa-ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.pa-ledger a{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.85fr) minmax(0,1.05fr) minmax(0,.75fr) auto;gap:clamp(14px,2vw,34px);
  align-items:center;padding:clamp(20px,2vw,28px) 0;border-bottom:1px solid var(--line-2);color:var(--ink);
  transition:background-color .3s ease,padding .4s cubic-bezier(.22,1,.36,1)}
.pa-ledger__t b{display:block;font-weight:600;font-size:clamp(1.06rem,1.35vw,1.28rem);letter-spacing:-.018em;line-height:1.25}
.pa-ledger__t i{display:block;font-style:normal;font-size:.84rem;color:var(--muted);margin-top:.25rem}
.pa-ledger__loc,.pa-ledger__kind{font-size:.92rem;color:var(--ink-2)}
.pa-ledger__pay{font-size:.95rem;font-weight:600;color:var(--ink)}
.pa-ledger .pa-arrowdot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line-2)}
.pa-ledger a:hover{background:var(--wash);padding-inline:clamp(12px,1.4vw,24px)}
.pa-ledger a:hover .pa-arrowdot{background:var(--accent);box-shadow:none}
.pa-ledger__none{padding:clamp(26px,3vw,40px) 0;color:var(--muted);font-size:1.04rem;border-bottom:1px solid var(--line-2)}
.pa-mand__note{margin-top:1.5rem;font-size:.95rem;color:var(--muted)}

/* ---------- case files ---------- */
.pa-cases{background:var(--wash)}
.pa-cases__head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(30px,3.4vw,56px)}
.pa-cases__head .eyebrow{margin-bottom:1.2rem}
.pa-cases__nav{display:flex;gap:.6rem}
.pa-cstep{position:relative;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line-2);background:transparent;
  font-family:var(--sans);font-weight:600;font-size:.84rem;color:var(--ink-2);transition:.25s ease}
.pa-cstep:hover{border-color:var(--ink);color:var(--ink)}
.pa-cstep.is-on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.pa-cstep .prog{position:absolute;inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px);transform:rotate(-90deg);opacity:0;pointer-events:none}
.pa-cstep.is-on .prog{opacity:1}
.pa-cstep .prog circle{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:163;stroke-dashoffset:163}
.pa-cstep.is-on.is-playing .prog circle{animation:dbProg 8s linear forwards}
.pa-case{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(30px,6vw,120px);align-items:start;
  padding-top:clamp(30px,3.2vw,48px);border-top:1px solid var(--ink)}
.pa-case + .pa-case{margin-top:clamp(40px,4vw,64px)}
.pa-cases.is-js .pa-case{margin-top:0}
.pa-cases.is-js .pa-cases__stage{display:grid}
.pa-cases.is-js .pa-case{grid-area:1 / 1;visibility:hidden;opacity:0;transition:opacity .3s ease,visibility 0s linear .3s}
.pa-cases.is-js .pa-case.is-on{visibility:visible;opacity:1;transition:opacity .45s ease}
.pa-cases.is-js .pa-case.is-on .pa-case__body,.pa-cases.is-js .pa-case.is-on .pa-case__facts{animation:paIn .8s cubic-bezier(.22,1,.36,1) both}
.pa-cases.is-js .pa-case.is-on .pa-case__body{animation-delay:.06s}
@keyframes paIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.pa-case__facts h3{font-family:var(--sans);font-weight:600;font-size:clamp(1.3rem,1.8vw,1.62rem);line-height:1.18;letter-spacing:-.022em;color:var(--ink);margin-top:1.1rem}
.pa-case__facts dl{margin:1.5rem 0 0;display:grid;grid-template-columns:auto 1fr;gap:.75rem 1.4rem;align-items:baseline}
.pa-case__facts dt{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pa-case__facts dd{margin:0;font-size:.95rem;color:var(--ink)}
.pa-case__story{font-weight:300;font-size:clamp(1.3rem,2.05vw,1.95rem);line-height:1.4;letter-spacing:-.022em;color:var(--ink)}
.pa-case__story::before{content:"";display:block;width:9px;height:9px;border-radius:50%;background:var(--ink);box-shadow:15px 0 0 var(--ink);margin-bottom:1.6rem}
.pa-case__out{display:flex;gap:.8em;align-items:flex-start;margin-top:1.8rem;padding-top:1.4rem;border-top:1px solid var(--line-2);font-weight:600;font-size:1.02rem;color:var(--ink)}
.pa-case__out i{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent-line);margin-top:.42em}
.pa-cases__foot{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;margin-top:clamp(36px,4vw,64px);
  padding-top:1.4rem;border-top:1px solid var(--line-2);font-size:.88rem;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.pa-cstep.is-on.is-playing .prog circle{animation:none}}

/* ---------- the specialist: editorial profile ---------- */
.pa-spec{background:var(--stone);position:relative;overflow:hidden}
.pa-spec__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(48px,6vw,120px);align-items:center}
.pa-spec__portrait{display:block;position:relative;margin:0;width:calc(100% - clamp(70px,6vw,96px));max-width:560px}
.pa-spec__img{display:block;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/5;background:var(--ink)}
.pa-spec__img img{width:100%;height:100%;object-fit:cover;object-position:center 8%;filter:grayscale(1) contrast(1.03);transform:scale(1.01);
  transition:filter .8s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1)}
.pa-spec__portrait:hover .pa-spec__img img{filter:grayscale(0) contrast(1.03);transform:scale(1.045)}
/* the brand full stop: sits on the portrait's baseline, just after it, as the dot follows the o in the logo */
.pa-spec__dot{position:absolute;left:calc(100% + clamp(10px,1vw,16px));bottom:0;width:clamp(40px,4vw,64px);aspect-ratio:1;
  border-radius:50%;background:var(--accent);transition:transform .6s cubic-bezier(.3,1.4,.4,1)}
.pa-spec__portrait:hover .pa-spec__dot{transform:translateY(-6px)}
.pa-spec .eyebrow{margin-bottom:1.3rem}
.pa-spec__name{font-family:var(--sans);font-weight:700;font-size:clamp(2.6rem,4.8vw,4.4rem);line-height:.96;letter-spacing:-.045em;color:var(--ink)}
.pa-spec__role{margin-top:1rem;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--on-sand)}
.pa-spec__lede{margin-top:1.9rem;font-weight:300;font-size:clamp(1.2rem,1.55vw,1.48rem);line-height:1.45;letter-spacing:-.016em;color:var(--ink);max-width:40ch}
.pa-spec__bio{margin-top:1rem;font-size:.98rem;line-height:1.68;color:var(--on-sand);max-width:54ch}
.pa-spec__contact{margin:2.1rem 0 0;border-top:1px solid rgba(3,5,8,.16);max-width:540px}
.pa-spec__contact div{display:grid;grid-template-columns:7rem 1fr;align-items:baseline;padding:.9rem 0;border-bottom:1px solid rgba(3,5,8,.16)}
.pa-spec__contact dt{font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--on-sand)}
.pa-spec__contact dd{margin:0}
.pa-spec__contact a{font-weight:600;font-size:.98rem;color:var(--ink);background:linear-gradient(var(--ink),var(--ink)) 0 100% / 0 1.5px no-repeat;
  padding-bottom:2px;transition:background-size .35s cubic-bezier(.22,1,.36,1)}
.pa-spec__contact a:hover{background-size:100% 1.5px}
.pa-spec__act{display:flex;align-items:center;gap:1.2rem 2rem;flex-wrap:wrap;margin-top:2.2rem}
@media (max-width:920px){.pa-spec__portrait{max-width:420px;width:calc(100% - 64px)}}
.btn--ink{background:var(--ink);color:#fff;position:relative;overflow:hidden;padding-inline:2.2em}
.btn--ink svg{position:absolute;right:1.15em;top:50%;opacity:0;transform:translateY(-50%);transition:opacity .2s ease}
.btn--ink svg circle{transform-box:fill-box;transform-origin:center;transform:scale(0)}
.btn--ink .btn__txt{display:inline-block;transition:transform .42s cubic-bezier(.3,1,.3,1);translate:0 1px}
.btn--ink:hover,.btn--ink:focus-visible{background:var(--accent);color:var(--ink)}
.btn--ink:hover svg,.btn--ink:focus-visible svg{opacity:1}
.btn--ink:hover svg circle:first-child,.btn--ink:focus-visible svg circle:first-child{animation:dotWave .6s cubic-bezier(.3,1,.35,1) .02s forwards}
.btn--ink:hover svg circle:last-child,.btn--ink:focus-visible svg circle:last-child{animation:dotWave .6s cubic-bezier(.3,1,.35,1) .16s forwards}
.btn--ink:hover .btn__txt,.btn--ink:focus-visible .btn__txt{transform:translateX(-.7em)}

/* ---------- next practice ---------- */
.pa-next{position:relative;overflow:hidden;background:var(--night);color:#fff;padding-block:clamp(80px,9vw,150px) clamp(48px,5vw,80px);
  border-bottom:1px solid var(--night-line)}
.pa-next .shell{position:relative;z-index:1}
.pa-next .pa-lattice{-webkit-mask-image:linear-gradient(90deg,transparent 20%,#000 90%);mask-image:linear-gradient(90deg,transparent 20%,#000 90%)}
.pa-next__link{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1.4rem 2rem;color:#fff}
.pa-next__label{grid-column:1 / -1;font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-d)}
.pa-next__name{font-family:var(--sans);font-weight:700;font-size:clamp(2.4rem,6vw,5.8rem);line-height:.96;letter-spacing:-.045em;max-width:15ch}
.pa-arrowdot--lg{width:clamp(70px,8vw,124px);height:clamp(70px,8vw,124px)}
.pa-arrowdot--lg svg{width:34%;height:34%}
.pa-next__all{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:clamp(48px,5.6vw,90px);padding-top:1.6rem;border-top:1px solid var(--night-line)}
.pa-next__all a{font-size:.86rem;font-weight:500;color:var(--muted-d);border:1.5px solid var(--night-line);border-radius:var(--pill);padding:.55em 1.15em;transition:.22s ease}
.pa-next__all a:hover{color:#fff;border-color:rgba(255,255,255,.6)}
.pa-next__all a[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.pa-next :focus-visible{outline-color:var(--accent)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .pa-scale{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:48px}
  .pa-scale::before{display:none}
  .pa-step{padding-top:48px;border-top:1px solid var(--night-line)}
  .pa-step__dot{top:0}
  .pa-ledger a{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) auto}
  .pa-ledger__kind{display:none}
}
@media (max-width:920px){
  
  .pa-hero .crumbs{margin-bottom:26px}
  
  .pa-intro__grid,.pa-ladder__head,.pa-spec__grid{grid-template-columns:1fr}
  .pa-case{grid-template-columns:1fr;gap:26px}
  .pa-spec__text{order:2}
}
@media (max-width:640px){
  .pa-scale{grid-template-columns:1fr}
  .pa-ledger a{grid-template-columns:1fr auto;row-gap:.35rem}
  .pa-ledger__t{grid-column:1}
  .pa-ledger .pa-arrowdot{grid-column:2;grid-row:1 / span 3}
  .pa-ledger__loc,.pa-ledger__pay{grid-column:1;font-size:.86rem}
  .pa-next__link{grid-template-columns:1fr}
  .pa-arrowdot--lg{width:64px;height:64px}
}

/* ---------- placements: editorial case files, filterable ---------- */
.pl-list{display:flex;flex-direction:column}
.pl-list .pa-case{padding-block:clamp(28px,3vw,44px);border-top:1px solid var(--line-2)}
.pl-list .pa-case:first-child{border-top-color:var(--ink)}
.pl-list .pa-case + .pa-case{margin-top:0}
.pl-list .pa-case.is-hidden{display:none}
.pl-list .pa-case__story{font-size:clamp(1.1rem,1.45vw,1.38rem);line-height:1.5}
.pl-list .pa-case__story::before{display:none}
.pl-list .pa-case__out{margin-top:1.2rem;padding-top:1.1rem}
.pl-area{color:var(--ink);font-weight:600;border-bottom:1.5px solid var(--accent-line);transition:border-color .2s ease}
.pl-area:hover{border-color:var(--ink)}
.cases--board{background:var(--paper)}

/* ---------- placements: tag on its own row, title and story start level ---------- */
.pl-case{row-gap:clamp(12px,1.2vw,18px)}
.pl-case > .case__tier{grid-column:1 / -1;justify-self:start}
.pl-case .pa-case__facts h3{margin-top:0}

/* ---------- about: team cards click through to profiles ---------- */
.member__hit{position:absolute;inset:0;z-index:3}
.member__toggle--link{z-index:4;gap:.45em}
.member__toggle--link svg{width:.85em;height:.85em}

/* ---------- consultant profile pages ---------- */
.pf-hero{position:relative;overflow:hidden;background:var(--night);color:#fff;
  padding-block:calc(var(--nav-h) + clamp(30px,3.4vw,56px)) clamp(64px,7vw,120px)}
.pf-hero .pa-lattice{-webkit-mask-image:linear-gradient(100deg,transparent 30%,rgba(0,0,0,.7) 60%,#000 92%);
  mask-image:linear-gradient(100deg,transparent 30%,rgba(0,0,0,.7) 60%,#000 92%)}
.pf-hero__in{position:relative;z-index:1}
.pf-hero .crumbs{margin-bottom:clamp(34px,4.4vw,64px)}
.pf-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,clamp(340px,30vw,540px));gap:clamp(40px,5vw,96px);align-items:center}
.pf-hero__lede{margin-top:1.6rem;max-width:58ch;font-weight:300;font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.45;
  letter-spacing:-.014em;color:rgba(255,255,255,.84)}
.pf-hero .fs{color:var(--accent)}
.pf-hero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.34)}
.pf-hero .btn--ghost:hover{border-color:#fff}
.pf-hero__areas a{color:inherit;transition:color .2s ease}
.pf-hero__areas a:hover{color:#fff}
.pf-hero__portrait .pa-spec__img{background:var(--night-2)}
.pf-hero :focus-visible{outline-color:var(--accent)}
.pf-about{background:var(--paper)}
.pf-about__grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(32px,6vw,120px);align-items:start}
.pf-about .eyebrow{margin-bottom:1.2rem}
.pf-about__lead{font-weight:300;font-size:clamp(1.3rem,2vw,1.85rem);line-height:1.42;letter-spacing:-.02em;color:var(--ink)}
.pf-about .pa-spec__contact{margin-top:2.4rem;max-width:none;border-top-color:var(--line-2)}
.pf-about .pa-spec__contact div{border-bottom-color:var(--line-2)}
.pf-about .pa-spec__contact dt{color:var(--muted)}
.pf-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.8rem}
.pf-tags span{font-size:.82rem;font-weight:500;color:var(--ink-2);border:1.5px solid var(--line-2);border-radius:var(--pill);padding:.5em 1.05em;cursor:default;
  transition:background-color .22s ease,border-color .22s ease,color .22s ease}
.pf-tags span:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.pf-areas{background:var(--wash)}
.pf-areas__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.pf-area{display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto;gap:clamp(14px,2vw,34px);align-items:center;
  padding:clamp(24px,2.6vw,40px) 0;border-bottom:1px solid var(--line-2);color:var(--ink);
  transition:padding .4s cubic-bezier(.22,1,.36,1),background-color .3s ease}
.pf-area__n{font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--muted)}
.pf-area__t b{display:block;font-weight:600;font-size:clamp(1.4rem,2.4vw,2.2rem);letter-spacing:-.03em;line-height:1.1}
.pf-area__t i{display:block;font-style:normal;margin-top:.55rem;font-size:.95rem;line-height:1.55;color:var(--muted);max-width:70ch}
.pf-area .pa-arrowdot{width:52px;height:52px}
.pf-area:hover{padding-inline:clamp(12px,1.4vw,24px);background:var(--paper)}
.pf-team{background:var(--stone)}
.pf-team__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,1.6vw,28px)}
.pf-mate{display:grid;grid-template-columns:clamp(96px,9vw,140px) minmax(0,1fr) auto;gap:clamp(16px,2vw,32px);align-items:center;
  padding:clamp(14px,1.4vw,20px);background:var(--paper);border-radius:var(--r-xl);color:var(--ink);transition:box-shadow .3s ease}
.pf-mate__img{display:block;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;background:var(--ink)}
.pf-mate__img img{width:100%;height:100%;object-fit:cover;object-position:center 8%;filter:grayscale(1);
  transition:filter .7s cubic-bezier(.22,1,.36,1)}
.pf-mate:hover .pf-mate__img img{filter:none}
.pf-mate__txt b{display:block;font-weight:600;font-size:clamp(1.2rem,1.6vw,1.5rem);letter-spacing:-.022em}
.pf-mate__txt i{display:block;font-style:normal;margin-top:.4rem;font-size:.84rem;color:var(--on-sand)}
.pf-mate:hover{box-shadow:0 0 0 2px var(--accent)}
.pf-mate:hover .pa-arrowdot svg{transform:translate(12%,-12%)}
@media (max-width:920px){
  .pf-hero__grid,.pf-about__grid{grid-template-columns:1fr}
  .pf-hero__portrait{order:-1;max-width:380px}
  .pf-team__grid{grid-template-columns:1fr}
}
@media (max-width:560px){.pf-area{grid-template-columns:1fr auto}.pf-area__n{display:none}}

/* ---------- practice hero = the homepage hero, with the brand pattern in place of the film ---------- */
.hero--practice .hero__ground::after{display:none}            /* the film's darkening layer; the lattice needs none */
.hero--practice .pa-lattice{z-index:0;opacity:1}
.hero--practice .hero__omask::before{opacity:.075}   /* the marque reads clearly over the pattern */
.hero--practice .display{max-width:20ch;text-wrap:balance}
.hero--practice .hero__sub{max-width:58ch}
@media (max-width:560px){.hero--practice .display{font-size:clamp(2.2rem,9.4vw,3.1rem)}}

/* ---------- practice index (under the opening statement) ---------- */
.pa-index{margin-top:clamp(64px,7vw,120px)}
.pa-index__label{display:flex;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--ink);
  font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.pa-index__label span:last-child{color:var(--muted)}
.pa-index__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,3.4vw,64px)}
.pa-index__list li{display:grid;grid-template-columns:2.4rem 1fr;row-gap:.4rem;padding:clamp(22px,2.2vw,32px) 0;border-bottom:1px solid var(--line-2);position:relative}
.pa-index__n{grid-row:span 2;font-size:.76rem;font-weight:600;letter-spacing:.06em;color:var(--muted);padding-top:.35em;font-variant-numeric:tabular-nums;transition:color .25s ease}
.pa-index__list b{font-weight:600;font-size:clamp(1.06rem,1.25vw,1.2rem);letter-spacing:-.018em;color:var(--ink)}
.pa-index__d{font-size:.92rem;line-height:1.55;color:var(--muted);max-width:32ch}
.pa-index__list li::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:1px;background:var(--ink);transition:right .5s cubic-bezier(.22,1,.36,1)}
.pa-index__list li:hover::after{right:0}
.pa-index__list li:hover .pa-index__n{color:var(--ink)}
@media (max-width:1080px){.pa-index__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.pa-index__list{grid-template-columns:1fr}}

/* ===================================================================================
   Adopted from Max's 9 Oct build (picked 9 Oct). Mega menu, splash and the 'What We Cover'
   numbering stay as they were.
   =================================================================================== */
/* nav shrink: one glass layer the script morphs from the white bar into the black pill */
.nav{--th:cubic-bezier(.3,.65,.3,1);border-bottom:0;transition:none;container-type:inline-size}
.nav::before,.nav__in::before{content:none}
.nav__in{transition:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.nav .brand{transform-origin:0 50%}
.nav .brand .logo,.nav .logo__word{transition:none}
.nav .brand .logo{overflow:visible}
.nav__glass{position:absolute;left:0;top:0;width:100%;height:var(--nav-h);z-index:-1;pointer-events:none;background-color:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(140%) blur(12px) brightness(1);backdrop-filter:saturate(140%) blur(12px) brightness(1);box-shadow:inset 0 -1px 0 0 #ECE9E5}
.nav.is-measuring,.nav.is-measuring *,.nav.is-driving .brand,.nav.is-driving .nav__link,.nav.is-driving .nav__tel,.nav.is-driving .nav__tel svg,.nav.is-driving .nav__btn,.nav.is-driving .nav__burger,.nav.is-driving .nav__burger span,.nav.is-driving .nav__burger span::before,.nav.is-driving .nav__burger span::after{transition:none !important}
.nav.is-driving .nav__burger:not([aria-expanded="true"]) span,.nav.is-driving .nav__burger span::before,.nav.is-driving .nav__burger span::after{background:var(--bl,#030508)}
.nav.is-scrolled .nav__in{margin-top:10px}
@media (min-width:921px){
  .nav.is-scrolled .nav__in{max-width:var(--mini-w,860px)}
  .nav.is-scrolled .nav__links{margin-left:-14px}
}
.nav.is-scrolled .brand{position:relative;top:2px}
.nav__btn svg{right:.62em}
.nav__btn:hover .btn__txt,.nav__btn:focus-visible .btn__txt{transform:translateX(-.52em)}
/* hero sub-line wraps without orphans */
.hero__sub{text-wrap:pretty}
/* role cards: yellow outline on hover (mouse only), whole card clickable; arrows swap on hover */
.role{position:relative;transition:none}
.role__view::after{content:"";position:absolute;inset:0;border-radius:var(--r-lg);z-index:1}
.role:hover{box-shadow:var(--shadow-sm);border-color:var(--line);border-top-color:var(--accent)}
@media (hover:hover) and (pointer:fine){
  .role:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow)}
}
.role:has(.role__view:focus-visible){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow)}
.role__view:focus-visible{outline:none}
.arr-cycle{position:relative;display:inline-block;overflow:hidden;flex:0 0 auto}
.arr-cycle svg{position:absolute;inset:0;width:100%;height:100%;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.arr-cycle svg + svg{transform:translateX(-130%)}
.mega__all:hover .arr-cycle svg:first-child,.mega__all:focus-visible .arr-cycle svg:first-child{transform:translateX(130%)}
.mega__all:hover .arr-cycle svg + svg,.mega__all:focus-visible .arr-cycle svg + svg{transform:none}
.arr-cycle{width:1.05em;height:1.05em}
.mega__all .arr-cycle,.arrow-link .arr-cycle{width:.85em;height:.85em}
.proofbar a .arr-cycle{width:1em;height:1em;color:inherit;font-size:inherit}
:is(a,button:not(:disabled)):is(:hover,:focus-visible) .arr-cycle:not(.mega__arr) svg:first-child{transform:translateX(130%)}
:is(a,button:not(:disabled)):is(:hover,:focus-visible) .arr-cycle:not(.mega__arr) svg + svg{transform:none}
@media (prefers-reduced-motion: reduce){
  .arr-cycle svg{transition:none}
}
.mega__tile--cta:focus-visible{outline-color:var(--ink)}
.nav.is-scrolled .mega__tile--cta:focus-visible{outline-color:var(--accent)}
/* team cards: yellow hover only with a mouse; keyboard and tap-open states; eyebrow dot spacing */
.member:not(.member--ghost):hover,.member:not(.member--ghost):focus-within{box-shadow:0 0 0 1px var(--line-2)}
.member:hover .member__media img,.member:focus-within .member__media img{filter:grayscale(1) contrast(1.03);transform:none}
.member__toggle:hover{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.5)}
.member__close:hover{background:var(--paper);color:var(--ink);border-color:var(--line-2)}
.member__li:hover{background:var(--stone)}
@media (hover:hover) and (pointer:fine){
  .member:not(.member--ghost):hover{box-shadow:0 0 0 2px var(--accent),var(--shadow)}
  .member:not(.member--ghost):hover .member__media img{filter:grayscale(0) contrast(1.03);transform:scale(1.04)}
  .member__toggle:hover{background:var(--accent);color:var(--ink);border-color:var(--accent)}
  .member__close:hover{background:var(--accent);color:var(--ink);border-color:transparent}
  .member__li:hover{background:var(--accent)}
}
.member:not(.member--ghost):has(:focus-visible),.member:not(.member--ghost).is-open{box-shadow:0 0 0 2px var(--accent),var(--shadow)}
.member:not(.member--ghost):has(:focus-visible) .member__media img{filter:grayscale(0) contrast(1.03);transform:scale(1.04)}
.eyebrow{padding-left:0;align-items:baseline}
.eyebrow::before{position:relative;left:auto;top:auto;flex:0 0 auto;margin-right:18px;transform:translateY(calc(3px - .3635em))}
.role__cat{padding-left:0;align-items:baseline}
.role__cat::before{position:relative;left:auto;top:auto;flex:0 0 auto;margin-right:10px;transform:translateY(calc(3px - .3635em))}
/* round arrow buttons swap diagonally; ledger and profile rows slide their text; next-practice name lights up; contact rows, CV drop zone, custom dropdown, auto-growing message box, sliding tab pill; no button shadows */
.pa-arrowdot{overflow:hidden}
.pa-arrowdot .arr-diag{position:relative;display:block;width:42%;height:42%}
.pa-arrowdot .arr-diag svg{position:absolute;inset:0;width:100%;height:100%;transform:none;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.pa-arrowdot .arr-diag svg + svg{transform:translate(-160%,160%)}
a:is(:hover,:focus-visible) .pa-arrowdot .arr-diag svg:first-child{transform:translate(160%,-160%)}
a:is(:hover,:focus-visible) .pa-arrowdot .arr-diag svg + svg{transform:none}
.pa-ledger a{padding:clamp(20px,2vw,28px) clamp(12px,1.4vw,24px) clamp(20px,2vw,28px) 0;transition:background-color .3s ease}
.pa-ledger a:hover{padding-inline:0 clamp(12px,1.4vw,24px)}
.pa-mand__head .pa-more{margin-right:clamp(12px,1.4vw,24px)}
.pf-area{padding-right:clamp(12px,1.4vw,24px)}
.pf-area:hover{padding-inline:0 clamp(12px,1.4vw,24px)}
.pa-ledger__t,.pf-area__n,.pf-area__t{transition:transform .45s cubic-bezier(.22,1,.36,1)}
@media (hover:hover) and (pointer:fine){
  .pa-ledger a:hover .pa-ledger__t,.pf-area:hover .pf-area__n,.pf-area:hover .pf-area__t{transform:translateX(clamp(12px,1.4vw,24px))}
}
.pa-ledger a:focus-visible .pa-ledger__t,.pf-area:focus-visible .pf-area__n,.pf-area:focus-visible .pf-area__t{transform:translateX(clamp(12px,1.4vw,24px))}
@media (hover:hover) and (pointer:fine){
  .pa-next__link:hover .pa-next__name{color:var(--accent)}
  .pa-next__link:hover .pa-next__name .fs{color:#fff}
}
.pa-next__link:focus-visible .pa-next__name{color:var(--accent)}
.pa-next__link:focus-visible .pa-next__name .fs{color:#fff}
.pa-next__name,.pa-next__name .fs{transition:none}
@media (prefers-reduced-motion: reduce){
  .pa-arrowdot .arr-diag svg,.pa-ledger__t,.pf-area__n,.pf-area__t{transition:none}
}
.pf-area{grid-template-columns:minmax(0,1fr) auto}
.pf-area__n{display:none}
:is(.pf-hero,.phero,.pa-hero,.pa-ladder,.pa-next,.why,.jobside__card,.cform__card--dark,.case,.foot) .btn--solid:hover{background:var(--paper);color:var(--ink)}
.cform__person,.cform__person:hover{padding:.85rem clamp(12px,1.4vw,24px) .85rem 0;transition:none}
.cform__person img,.cform__person > span:not(.pa-arrowdot){transition:transform .45s cubic-bezier(.22,1,.36,1),filter .5s ease}
@media (hover:hover) and (pointer:fine){
  .cform__person:hover img,.cform__person:hover > span:not(.pa-arrowdot){transform:translateX(.5rem)}
}
.cform__person:focus-visible img,.cform__person:focus-visible > span:not(.pa-arrowdot){transform:translateX(.5rem)}
@media (prefers-reduced-motion: reduce){
  .cform__person img,.cform__person > span:not(.pa-arrowdot){transition:none}
}
.cv-drop{position:relative;display:flex;align-items:center;gap:1rem;min-height:64px;padding:10px 12px;border-radius:var(--r-md)}
.field .cv-drop__in{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}
.cv-drop__btn{flex:0 0 auto;display:inline-flex;align-items:center;padding:0 18px;border-radius:var(--pill);font-size:.9rem;font-weight:600;letter-spacing:-.005em;pointer-events:none}
.cv-drop__name{min-width:0;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}
.cv-drop__clear{position:relative;z-index:1;margin-left:auto;flex:0 0 auto;font:inherit;font-size:.85rem;font-weight:600;color:var(--ink);background:none;border:0;padding:8px 6px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.cv-drop.has-file .cv-drop__name{color:var(--ink);font-weight:600}
@media (hover:hover) and (pointer:fine){
  .cv-drop__clear:hover{text-decoration-thickness:2px}
}
.cv-drop:has(.cv-drop__in:focus-visible){border-color:var(--ink);box-shadow:0 0 0 4px rgba(233,249,131,.45)}
.cv-drop__clear:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}
.cform__send .cform__small{max-width:none;flex:1 1 0;min-width:min(100%,24ch)}
.cv-drop{border-style:solid;border-color:var(--line-2);background:var(--paper);color:var(--ink-2)}
.cv-drop__btn{height:40px;background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
@media (hover:hover) and (pointer:fine){
  .cv-drop:hover .cv-drop__btn{background:var(--ink);color:#fff}
}
.sel{position:relative}
.sel > select{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;inset:auto}
.sel__btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;cursor:pointer;font-family:var(--sans);font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-md);padding:.9em 1.1em;transition:none}
.sel__btn svg{flex:0 0 auto;width:14px;height:14px;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.sel.is-open .sel__btn svg{transform:rotate(180deg)}
.sel.is-open .sel__btn,.sel__btn:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(233,249,131,.45)}
@media (hover:hover) and (pointer:fine){
  .sel__btn:hover{border-color:var(--ink)}
}
.sel__list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 8px);margin:0;padding:6px;list-style:none;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:0 24px 48px -24px rgba(3,5,8,.28),0 2px 6px -2px rgba(3,5,8,.06);opacity:0;visibility:hidden;transform:translateY(-4px);transform-origin:50% 0;transition:opacity .15s ease,transform .2s cubic-bezier(.4,0,1,1),visibility 0s linear .2s}
.sel.is-open .sel__list{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .35s cubic-bezier(.22,1,.36,1),visibility 0s}
.sel__opt{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7em .85em;border-radius:10px;font-size:.95rem;color:var(--ink);cursor:pointer;transition:none}
.sel__opt.is-active{background:var(--wash)}
.sel__opt[aria-selected="true"]{font-weight:600}
.sel__opt[aria-selected="true"]::after{content:"";flex:0 0 auto}
@media (prefers-reduced-motion: reduce){
  .sel__list,.sel.is-open .sel__list,.sel__btn svg{transition:none}
}
.cv-drop{border:1.5px dashed rgba(3,5,8,.3)}
@media (hover:hover) and (pointer:fine){
  .cv-drop:hover{border-color:var(--ink)}
}
.cv-drop.is-over{border-style:dashed;border-color:var(--ink);background:var(--wash)}
.cv-drop.has-file{border-style:solid;border-color:var(--ink)}
.sel__list:focus,.sel__list:focus-visible{outline:none}
.sel__opt[aria-selected="true"]::after{width:5px;height:10px;border-radius:0;background:none;box-shadow:none;border:solid var(--ink);border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg);margin-right:4px}
.field input::placeholder,.field textarea::placeholder{color:#8A8B8D;opacity:1}
.field textarea{resize:none;field-sizing:content;min-height:140px;max-height:420px}
.cform__tabs{position:relative;isolation:isolate}
.cform__thumb{position:absolute;z-index:-1;top:.3rem;bottom:.3rem;left:0;width:0;border-radius:var(--pill);background:var(--ink);transition:transform .55s cubic-bezier(.22,1,.36,1),width .55s cubic-bezier(.22,1,.36,1)}
.cform__tabs.is-still .cform__thumb{transition:none}
.cform__tabs.has-thumb .ctab,.cform__tabs.has-thumb .ctab.is-active{background:transparent}
.cform__tabs.has-thumb .ctab{transition:color .3s ease}
.cform__tabs.has-thumb .ctab.is-active{color:var(--paper)}
.ctab:focus-visible{outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  .cform__thumb,.cform__tabs.has-thumb .ctab{transition:none}
}
@media (hover:hover) and (pointer:fine){
  .cform__tabs.has-thumb > .ctab:hover{color:var(--ink)}
}
.cform__tabs > .ctab{line-height:normal;text-align:center;-webkit-font-smoothing:antialiased}
.ctab:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(233,249,131,.6)}
.cform__thumb{will-change:auto}
.cform__tabs.has-thumb > .ctab{color:var(--ink-2);transition:color .18s ease}
.cform__tabs.has-thumb > .ctab.is-active{color:var(--paper);transition:color .22s ease .14s}
@media (hover:hover) and (pointer:fine){
  .cform__tabs.has-thumb > .ctab:not(.is-active):hover{color:var(--ink);transition:none}
}
@media (prefers-reduced-motion: reduce){
  .cform__tabs.has-thumb > .ctab,.cform__tabs.has-thumb > .ctab.is-active{transition:none}
}
.cform__tabs.is-still > .ctab,.cform__tabs.is-still > .ctab.is-active{transition:none}
.btn--solid,.btn--solid:hover,.btn--solid:focus-visible{box-shadow:none}
/* team focus ring; practice hero city photo inside the O; footer logo link; skip link */
.team .member:not(.member--ghost):focus-within::after{box-shadow:none}
.team .member:not(.member--ghost):hover::after,.team .member:not(.member--ghost):has(:focus-visible)::after,.team .member:not(.member--ghost).is-open::after{box-shadow:inset 0 0 0 2px var(--accent)}
.hero--practice .hero__omask{z-index:1}
.hero--practice .hdr-photo{position:absolute;top:0;right:0;bottom:0;width:min(62%,1180px);z-index:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 22%,#000 55%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 22%,#000 55%)}
.hero--practice .hdr-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.82)}
.hero--practice .hdr-photo::after{content:"";position:absolute;inset:0}
@media (max-width:960px){
  .hero--practice .hdr-photo{width:100%;opacity:.45}
}
.hero--practice .hero__ground::after{display:none}
.hero--practice .hdr-photo::after{background:linear-gradient(180deg,rgba(3,5,8,.55) 0%,rgba(3,5,8,0) 28%,rgba(3,5,8,0) 70%,rgba(3,5,8,.7) 100%),rgba(3,5,8,.5)}
.hero--practice .hdr-photo img[data-focus]{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;object-fit:cover;transform-origin:0 0}
.foot__home{display:block;width:fit-content;color:inherit}
.skip-link{position:fixed;left:16px;top:16px;z-index:300;padding:.8em 1.35em;border-radius:var(--pill);background:var(--ink);color:#fff;font-size:.92rem;font-weight:600;line-height:1.2;transform:translateY(calc(-100% - 32px))}
.skip-link:focus-visible{transform:none;outline:2px solid var(--accent);outline-offset:2px}
/* the line break under Send Securely is for wide layouts only */
@media (max-width:640px){.cform__small br{display:none}}

/* ===================================================================================
   12 Oct call
   =================================================================================== */
/* About dropdown: About TPO Search, Meet the Team, Work For Us */
.nav__sub{position:relative;display:flex;align-items:center}
.subnav{position:absolute;left:50%;top:100%;z-index:3;padding-top:calc((var(--nav-h) - 37px) / 2 + 12px);
  opacity:0;visibility:hidden;transform:translate(-50%,-6px);
  transition:opacity .2s ease,transform .3s var(--ease-nav),visibility 0s linear .3s}
.nav.is-scrolled .subnav{padding-top:calc((66px - 37px) / 2 + 10px)}
.nav__sub:hover .subnav,.nav__sub:focus-within .subnav{opacity:1;visibility:visible;transform:translate(-50%,0);
  transition:opacity .25s ease,transform .4s var(--ease-nav),visibility 0s}
.nav__sub:hover .nav__link::after,.nav__sub:focus-within .nav__link::after{right:0}
.nav__sub:hover .nav__link .chev,.nav__sub:focus-within .nav__link .chev{transform:rotate(180deg)}
.subnav__panel{display:flex;flex-direction:column;min-width:228px;padding:8px;border-radius:var(--r-lg);
  background:rgba(255,255,255,.94);border:1px solid var(--line-2);box-shadow:0 30px 60px -30px rgba(3,5,8,.35);
  -webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%)}
.subnav__panel a{padding:.72em 1em;border-radius:12px;font-size:.92rem;font-weight:500;color:var(--ink);white-space:nowrap}
.subnav__panel a:focus-visible{background:var(--accent);outline:none}
.nav.is-scrolled .subnav__panel{background:rgba(3,5,8,.84);border-color:rgba(255,255,255,.08);box-shadow:0 34px 80px -34px rgba(0,0,0,.7);
  -webkit-backdrop-filter:blur(22px) saturate(160%) brightness(.55);backdrop-filter:blur(22px) saturate(160%) brightness(.55)}
.nav.is-scrolled .subnav__panel a{color:#fff}
.nav.is-scrolled .subnav__panel a:focus-visible{background:#fff;color:var(--ink)}
@media (hover:hover) and (pointer:fine){
  .subnav__panel a:hover{background:var(--accent)}
  .nav.is-scrolled .subnav__panel a:hover{background:#fff;color:var(--ink)}
}
@media (prefers-reduced-motion: reduce){.subnav{transition:none}}

/* About: Work For Us */
.story__cta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem;margin-top:1.9rem}

/* Live roles: minimum salary, on the Cravath class-year steps */
.board__pay{display:flex;flex-direction:column;gap:.5rem;flex:0 1 270px;min-width:210px}
.board__pay label{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.8rem;font-weight:600;
  letter-spacing:.02em;color:var(--ink-2)}
.board__pay output{font-size:.88rem;font-weight:600;color:var(--ink)}
.board__pay input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;margin:0;background:transparent;cursor:pointer;--fill:0%}
.board__pay input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;
  background:linear-gradient(90deg,var(--ink) var(--fill),var(--line-2) var(--fill))}
.board__pay input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-8px;border-radius:50%;
  background:var(--accent);border:2px solid var(--ink);transition:box-shadow .2s ease}
.board__pay input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:var(--line-2)}
.board__pay input[type=range]::-moz-range-progress{height:4px;border-radius:4px;background:var(--ink)}
.board__pay input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--ink)}
.board__pay input[type=range]:focus-visible{outline:none}
.board__pay input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px rgba(233,249,131,.6)}
.board__pay input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 5px rgba(233,249,131,.6)}
@media (max-width:640px){.board__pay{flex-basis:100%}}

/* role page: a multi-office role's other locations, at the foot of the listing */
.job__also{margin-top:clamp(26px,3vw,40px);padding:1.1rem 1.3rem;border-radius:var(--r-md);background:var(--wash);border:1px solid var(--line)}
.job__also .cases-label{display:block;margin-bottom:.45rem}
.job .job__also p{margin:0;color:var(--ink);font-weight:500;line-height:1.6}

/* ===================================================================================
   13 Oct: personal LinkedIn in the profile header, company LinkedIn on the contact card,
   and a branded page scrollbar
   =================================================================================== */
/* a true circle exactly as tall as the buttons beside it: same type size as .btn, one line plus its 1em padding and border */
.pf-hero__li{display:inline-grid;place-items:center;flex:0 0 auto;align-self:center;box-sizing:border-box;font-size:.92rem;
  width:calc(1lh + 2em + 2px);height:calc(1lh + 2em + 2px);border-radius:50%;
  border:1.5px solid rgba(255,255,255,.34);color:#fff;transition:background-color .22s ease,border-color .22s ease,color .22s ease}
.pf-hero__li svg{width:18px;height:18px}
.pf-hero__li:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.cform__li{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line-2);
  width:100%;font-size:.92rem;font-weight:600;color:var(--ink)}
.cform__li svg{width:18px;height:18px;flex:0 0 auto;padding:7px;box-sizing:content-box;border-radius:50%;background:var(--paper);
  border:1px solid var(--line-2);transition:background-color .22s ease,border-color .22s ease}
@media (hover:hover) and (pointer:fine){
  .pf-hero__li:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}
  .cform__li:hover svg{background:var(--accent);border-color:var(--accent)}
}

/* branded scrollbar: a slim black thumb on a warm off-white track, lighting up yellow on hover */
@supports selector(::-webkit-scrollbar){
  html::-webkit-scrollbar{width:12px;height:12px;background:#F4F2EF}
  html::-webkit-scrollbar-track{background:#F4F2EF;border-left:1px solid #E8E4DF}
  html::-webkit-scrollbar-thumb{background:#030508;border-radius:999px;border:3px solid #F4F2EF;min-height:64px}
  html::-webkit-scrollbar-thumb:hover{background:#E9F983;border-color:#F4F2EF;box-shadow:inset 0 0 0 1px rgba(3,5,8,.18)}
  html::-webkit-scrollbar-thumb:active{background:#E9F983}
  html::-webkit-scrollbar-corner{background:#F4F2EF}
}
@supports not selector(::-webkit-scrollbar){
  html{scrollbar-width:thin;scrollbar-color:#030508 #F4F2EF}
}

/* Job page: Salary / Location / Discipline rows. LinkedIn imports each job from this page and reads the
   "Location:" row, so the rows keep the old site's markup and order (see build_site.py page_role). Keep the label text exactly "Location:": no text-transform. */
.jobside .right-row h3{font-family:var(--sans);font-weight:600;font-size:1.02rem;letter-spacing:-.01em;line-height:1.35;color:var(--ink);margin:0;padding:.85rem 0;border-bottom:1px solid var(--line)}
.jobside .right-row:first-child h3{padding-top:0}
.jobside .right-row h3::first-line{font-size:.82rem;font-weight:500;color:var(--ink-2)}
.jobside .jobside__card{margin-top:1.4rem}

/* ===================================================================================
   Mobile pass (15 Oct)
   =================================================================================== */
/* the team card text makes room for the wider 'Profile' button on the About page */
.member:has(.member__toggle--link) .member__id{right:150px}
/* job pages: an apply button that follows the reader down the advert on smaller screens. The bar is the last
   thing in the job section (not inside the advert column), so it stays in view for the whole section */
.job__applybar{display:none}

/* job pages (23 Oct): LinkedIn reads everything inside .left, so the advert sits there alone and the page's own
   extras (other offices, how the search is handled, who posted it) follow in .job__more, under it, as before */
.jobwrap__grid{row-gap:0}
.jobwrap__grid>.job.left{grid-column:1;grid-row:1}
.jobwrap__grid>.job__more{grid-column:1;grid-row:2;padding-top:clamp(26px,3vw,42px)}
.jobwrap__grid>.jobside{grid-column:2;grid-row:1 / span 2}
.job__more>:first-child{margin-top:0}

@media (max-width:980px){
  .jobwrap__grid>.job.left,.jobwrap__grid>.job__more,.jobwrap__grid>.jobside{grid-column:auto;grid-row:auto}
  .jobwrap__grid>.jobside{margin-top:clamp(30px,4vw,80px)}
  .job__applybar{display:block;position:sticky;bottom:14px;z-index:5;margin-top:2.2rem}
  .job__apply{display:flex;width:100%;justify-content:center;box-shadow:0 18px 40px -14px rgba(3,5,8,.45)}
}
@media (pointer:coarse){
  /* filter pills are comfortable to tap on any touch screen, tablets included */
  .filter,.lvl{min-height:40px;display:inline-flex;align-items:center}
}
.dB3__sub{display:none}
@media (max-width:920px){
  /* 'Why TPO' (20 Oct call): once the ring would drop below the tabs, it goes, and its word and line
     sit under the tabs as a sub-header, so each tap changes what is in view */
  .dB3__stage{display:none}
  .dB3__sub{display:block;margin-top:clamp(24px,4.4vw,32px);transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1)}
  .dB3__sub.is-swap{opacity:0;transform:translateY(6px)}
  .dB3__subword{display:block;font-weight:600;font-size:clamp(2.1rem,8.6vw,2.7rem);line-height:1;letter-spacing:-.045em;color:#fff}
  .dB3__subword i{font-style:normal;color:var(--accent)}
  .dB3__subtag{display:block;margin-top:.5rem;font-weight:300;font-size:clamp(1.05rem,4.2vw,1.2rem);line-height:1.3;letter-spacing:-.01em;color:rgba(247,246,244,.74)}
  .dB3__detail{margin-top:1rem;min-height:6.4em}
}
@media (max-width:640px){
  /* filter pills: one swipeable row instead of three wrapped rows */
  .filters{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;
    margin-inline:calc(var(--gutter) * -1);padding:2px var(--gutter);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 44px),transparent);
    mask-image:linear-gradient(90deg,transparent 0,#000 var(--gutter),#000 calc(100% - 44px),transparent)}
  .filters::-webkit-scrollbar{display:none}
  .filter,.lvl{flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center}
  /* the O device that bridges two sections: scaled to a phone, so it reads as the mark rather than a black arch */
  .practice,.pa-intro{--ow:230px}
  .practice .omark,.pa-intro .omark{left:-58px}
  /* recent-placement ticker: the 'All Placements' link gets its own line */
  .proofbar{flex-wrap:wrap;row-gap:.55rem}
  .proofbar .pb-track{flex:1 1 calc(100% - 40px)}
  .proofbar a{margin-left:calc(9px + 1rem);flex-basis:100%}
  /* (20 Oct) the placement itself on two lines, role then practice and market, with nothing faded or cut off */
  .proofbar .pb-track{-webkit-mask-image:none;mask-image:none}
  .proofbar .dot{align-self:flex-start;margin-top:6px}
  .pb-swap,.pb-clone{flex-direction:column;align-items:flex-start;gap:.2rem}
  .pb-swap{flex:1 1 auto;white-space:normal}
  .pb-swap b,.pb-clone b{white-space:normal;max-width:none;line-height:1.35}
  .pb-swap span,.pb-clone span{display:block;white-space:normal;line-height:1.35}
  .pb-clone{right:0}
  /* live-mandate rows: location and package on one line */
  .pa-ledger a{grid-template-columns:auto auto minmax(0,1fr) auto;column-gap:0;row-gap:.45rem}
  .pa-ledger__t{grid-column:1 / 4;grid-row:1}
  .pa-ledger__loc{grid-column:1;grid-row:2}
  .pa-ledger__pay{grid-column:2;grid-row:2}
  .pa-ledger__pay::before{content:"\00b7";margin:0 .55em;color:var(--muted);font-weight:400}
  .pa-ledger .pa-arrowdot{grid-column:4;grid-row:1 / span 2;align-self:center;margin-left:14px}
  /* job page facts: a tidy two-by-two */
  .phero--role .phero__facts{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}
  /* bigger tap targets for the accordion links */
  .acc__link{padding-block:.55rem;margin-top:1rem}
}
@media (max-width:560px){
  /* headlines flow naturally instead of breaking where the desktop layout does */
  .hero .display br,.cta__panel .display br{display:none}
  .hero .display,.cta__panel .display,.phero .display{text-wrap:balance}
  /* call-to-action buttons fill the width: the main one on its own row, the rest sharing the next */
  .hero__cta>.btn,.pa-hero__cta>.btn,.phero__cta>.btn,.story__cta>.btn{flex:1 1 auto;justify-content:center}
  .hero__cta>.btn--solid,.pa-hero__cta>.btn--solid,.phero__cta>.btn--solid,.story__cta>.btn--solid{flex-basis:100%}
  .cform__send .btn{flex:1 1 100%;justify-content:center}
  /* the closing panel's yellow circle sits in its own corner, clear of the buttons and phone number */
  .cta__panel{padding-bottom:132px}
  .cta__panel::after{width:210px;right:-74px;bottom:-96px}
  /* footer: brand, then Explore beside Get In Touch, then the practice areas */
  .foot__top{grid-template-columns:1fr 1fr;gap:2.2rem 1.4rem}
  .foot__top>:nth-child(2){order:1}
  .foot__top>:nth-child(4){order:2}
  .foot__top>:nth-child(3){order:3;grid-column:1 / -1}
  /* small labels a touch larger for reading on a phone */
  .cases-label,.case__tier,.pa-case__facts dt,.pa-spec__contact dt{font-size:.72rem}
  /* Live Roles board: tighter cards, so a phone shows more than one role per screen */
  .rolegrid .role{padding:20px 20px 18px}
  .rolegrid .role__title{font-size:1.16rem;margin-top:.75rem}
  .rolegrid .role__meta{flex-direction:row;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:.85rem}
  .rolegrid .role__spacer{min-height:1rem}
  .rolegrid .role__foot{padding-top:.9rem}
  /* About team cards: a slimmer Profile button so the name stays on one line */
  .member__toggle--link{padding-inline:1.1em}
  .member:has(.member__toggle--link) .member__id{right:128px}
}

/* ===================================================================================
   Apply pop-up (20 Oct call): job pages apply in place, so every application carries its role
   =================================================================================== */
html.has-dialog{overflow:hidden}
.apply{width:min(640px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:0;
  border-radius:var(--r-xl);background:var(--paper);color:var(--ink);overflow:auto;overscroll-behavior:contain;
  box-shadow:0 50px 110px -30px rgba(3,5,8,.6)}
.apply::backdrop{background:rgba(3,5,8,.64);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.apply[open]{animation:applyIn .42s cubic-bezier(.22,1,.36,1)}
.apply[open]::backdrop{animation:applyFade .3s ease}
@keyframes applyIn{from{opacity:0;transform:translateY(22px) scale(.985)}}
@keyframes applySheet{from{transform:translateY(100%)}}
@keyframes applyFade{from{opacity:0}}
.apply__head{position:relative;background:var(--ink);color:#fff;padding:30px 84px 28px 32px}
.apply__head .eyebrow{color:var(--accent)}
.apply__head .eyebrow::before{background:var(--accent);box-shadow:10px 0 0 var(--accent)}
.apply__title{margin-top:.8rem;font-family:var(--sans);font-weight:600;font-size:clamp(1.3rem,2.1vw,1.62rem);line-height:1.18;
  letter-spacing:-.022em;color:#fff;text-wrap:balance}
.apply__meta{margin-top:.6rem;font-size:.92rem;color:var(--muted-d)}
.apply__meta span{white-space:nowrap}
.apply__x{position:absolute;top:22px;right:22px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  color:#fff;background:transparent;border:1.5px solid rgba(255,255,255,.32);transition:background .2s ease,border-color .2s ease,color .2s ease}
.apply__x svg{width:16px;height:16px}
.apply__x:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media (hover:hover) and (pointer:fine){.apply__x:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}}
.apply__form{display:grid;grid-template-columns:1fr 1fr;gap:18px 18px;padding:30px 32px 32px}
.apply__form[hidden]{display:none}
.apply__form .field textarea{min-height:96px}
.apply .cform__send{margin-top:.3rem}
.field__err{display:none;font-size:.82rem;font-weight:500;color:#B3261E}
.field.is-bad .field__err{display:block}
.field.is-bad input{border-color:#B3261E}
.apply__done{padding:clamp(40px,6vw,56px) 32px clamp(36px,5vw,48px);outline:none}
.apply__done[hidden]{display:none}
.apply__tick{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--accent);color:var(--ink)}
.apply__tick svg{width:26px;height:26px}
.apply__done h3{margin-top:1.4rem;font-family:var(--sans);font-weight:600;font-size:clamp(1.5rem,2.4vw,1.9rem);letter-spacing:-.03em;color:var(--ink)}
.apply__done p{margin-top:.7rem;max-width:44ch;color:var(--muted);line-height:1.6}
.apply__done .btn{margin-top:1.8rem}
@media (max-width:640px){
  /* on a phone it rises from the bottom as a sheet, with the send button within thumb reach */
  .apply{width:100%;max-height:92dvh;margin:auto 0 0;border-radius:24px 24px 0 0}
  .apply[open]{animation:applySheet .45s cubic-bezier(.22,1,.36,1)}
  .apply__head{padding:24px 78px 22px 20px}
  .apply__x{top:18px;right:16px}
  .apply__form{grid-template-columns:1fr;gap:16px;padding:22px 20px calc(26px + env(safe-area-inset-bottom))}
  .apply .cform__send .btn{flex:1 1 100%;justify-content:center}
  .apply__done{padding:36px 20px calc(32px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion: reduce){.apply[open],.apply[open]::backdrop{animation:none}}