:root {
  color-scheme: light;
  --ink: #111a2d;
  --ink-deep: #0b1221;
  --cobalt: #2449d8;
  --cobalt-dark: #193ab9;
  --cobalt-light: #94abff;
  --paper: #f5f2eb;
  --white: #fffdf8;
  --wash: #e7ecff;
  --muted: #4c5669;
  --rule: #cbd0d9;
  --display: "STIX Two Text", Georgia, serif;
  --sans: "Geist", system-ui, sans-serif;
  --gutter: clamp(22px, 5.55vw, 100px);
  --max: 1320px;
  --header-height: 80px;
  --ease: cubic-bezier(.22, .68, .23, 1);
  --wipe: cubic-bezier(.76, 0, .21, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 400 16px/1.62 var(--sans); -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
h1, h2, h3, p, figure, ul, dl, dd, blockquote { margin: 0; }
ul { padding: 0; list-style: none; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { color: inherit; font: inherit; }
button, summary { cursor: pointer; }
button, summary, a, input, textarea { -webkit-tap-highlight-color: transparent; }
address { font-style: normal; }
svg { flex: none; vertical-align: middle; }
:focus-visible { outline: 2px solid var(--cobalt); outline-offset: 5px; }
main:focus { outline: none; }
section[id] { scroll-margin-top: var(--header-height); }
.wrap { width: min(calc(100% - 2 * var(--gutter)), var(--max)); margin-inline: auto; }
.section { padding-block: clamp(74px, 8.7vw, 135px); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; inset: 10px auto auto 10px; z-index: 50; background: var(--white); color: var(--ink); padding: 11px 15px; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.eyebrow { display: flex; align-items: center; gap: 11px; font-size: 11px; line-height: 1.45; letter-spacing: .145em; font-weight: 650; text-transform: uppercase; }
.label-rule { width: 23px; height: 1px; background: currentColor; }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  min-height: 35px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
  transition: color .2s ease;
}
.text-link:hover { color: var(--cobalt); }
.text-link svg, .button svg { transition: transform .32s var(--ease); }
.text-link:hover svg, .button:hover svg { transform: translate(3px, -2px); }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  min-height: 54px;
  width: fit-content;
  padding: 12px 16px 12px 18px;
  border: 1px solid transparent;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 600;
  transition: color .25s ease, background .25s ease, border-color .25s ease;
}
.button-accent { color: var(--white); background: var(--cobalt); }
.button-accent:hover { color: var(--ink); background: var(--white); }
.button-light { color: var(--ink); background: var(--white); }
.button-light:hover { color: var(--white); background: transparent; border-color: var(--white); }
.button-dark { color: var(--white); background: var(--cobalt); }
.button-dark:hover { background: var(--cobalt-dark); }
.circle-arrow {
  display: grid;
  flex: none;
  width: 41px;
  height: 41px;
  place-items: center;
  border: 1px solid var(--rule);
  border-radius: 50%;
  transition: color .25s ease, background .25s ease, border-color .25s ease;
}
a:hover .circle-arrow, a:focus-visible .circle-arrow { color: var(--white); background: var(--cobalt); border-color: var(--cobalt); }

.site-header { position: sticky; z-index: 12; top: 0; background: var(--paper); border-bottom: 1px solid #111a2d1a; }
.header-inner, .menu-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: var(--header-height); }
.brand { display: inline-flex; align-items: center; gap: 12px; width: fit-content; color: inherit; white-space: nowrap; }
.brand-set { display: flex; align-items: baseline; gap: 4px; font-family: var(--sans); font-weight: 700; font-size: 37px; letter-spacing: -.105em; line-height: .98; }
.brand-accent { display: block; width: 6px; height: 6px; flex: none; margin-left: 1px; background: var(--cobalt); transition: transform .36s var(--ease); }
.brand:hover .brand-accent { transform: translateY(-4px); }
.brand-descriptor { padding-left: 11px; border-left: 1px solid currentColor; font-size: 10px; font-weight: 650; line-height: 1.13; letter-spacing: .055em; text-transform: uppercase; }
.header-actions { display: flex; align-items: center; gap: clamp(10px, 2.1vw, 29px); }
.languages { display: flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 500; letter-spacing: .03em; }
.languages a { display: grid; min-width: 24px; min-height: 43px; place-items: center; color: var(--muted); }
.languages a:hover { color: var(--cobalt); text-decoration: underline; text-underline-offset: 4px; }
.language-active { font-weight: 700; }
.language-separator { color: #697286; }
.icon-button { display: grid; width: 43px; height: 43px; flex: none; place-items: center; padding: 0; border: 1px solid var(--rule); border-radius: 50%; background: transparent; transition: background .22s ease, color .22s ease, border-color .22s ease; }
.icon-button:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.menu-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  min-width: 118px;
  min-height: 44px;
  gap: 18px;
  padding: 0 13px 0 16px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--white);
  font-size: 13px;
  font-weight: 600;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.menu-trigger:hover { background: var(--cobalt); border-color: var(--cobalt); }
.menu-glyph { position: relative; display: inline-block; width: 20px; height: 17px; }
.menu-glyph i { position: absolute; right: 0; height: 1px; background: currentColor; transition: transform .3s var(--ease), width .3s var(--ease); }
.menu-glyph i:first-child { top: 6px; width: 19px; }
.menu-glyph i:last-child { top: 12px; width: 13px; }
.menu-trigger:hover .menu-glyph i:last-child { width: 19px; }
.fallback-menu summary { font-size: 14px; font-weight: 600; }
.fallback-menu nav { position: absolute; inset: 100% 0 auto; padding: 10px var(--gutter) 25px; background: var(--paper); border-bottom: 1px solid var(--rule); }
.fallback-menu nav a { display: block; padding-block: 8px; border-bottom: 1px solid var(--rule); }

.hero {
  position: relative;
  display: grid;
  grid-template-rows: minmax(min(640px, calc(100svh - 158px)), 1fr) auto;
  isolation: isolate;
  overflow: hidden;
  color: var(--white);
  background: var(--ink-deep);
}
.hero-media { position: absolute; inset: 0; overflow: hidden; z-index: -2; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 52%; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #080f20e6 0%, #0b1325a8 34%, #0b13252e 63%, #0b132500 83%), linear-gradient(0deg, #0b1221ce 0%, #0b122100 41%); }
.hero-frame { position: relative; display: flex; align-items: center; }
.hero-content { padding-block: clamp(65px, 9.6vh, 115px) clamp(63px, 8.7vh, 106px); }
.hero-label { margin-bottom: clamp(24px, 4.2vh, 38px); color: #d7e1ff; }
.hero-label::before { content: ""; width: 9px; height: 9px; flex: none; background: var(--cobalt-light); }
.hero h1 { max-width: 100%; font-size: clamp(76px, 8.7vw, 138px); line-height: .89; letter-spacing: -.064em; }
.hero-line { display: block; overflow: clip; overflow-clip-margin: .16em; padding-bottom: .07em; }
.hero-line > * { display: inline-block; }
.hero-line em { color: #dfe7ff; font-weight: 400; }
.hero-lead { max-width: 35ch; margin-top: 20px; color: #e6e8f0; font-size: clamp(16px, 1.45vw, 19px); line-height: 1.48; }
.hero-actions { margin-top: 26px; }
.hero-down { position: absolute; display: grid; place-items: center; bottom: 33px; right: 0; width: 48px; height: 48px; border: 1px solid #fffc; border-radius: 50%; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.hero-down:hover { background: var(--white); color: var(--ink); border-color: var(--white); }
.hero :focus-visible, .contact-band :focus-visible, .story :focus-visible, .site-footer :focus-visible { outline-color: var(--cobalt-light); }
.hero-rail { border-top: 1px solid #fcfcfc55; background: #0b1423c7; }
.hero-rail ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hero-rail li + li { border-left: 1px solid #fcfcfc35; }
.hero-rail .text-link { display: flex; justify-content: space-between; width: 100%; min-height: 71px; padding: 10px clamp(12px, 2vw, 27px); color: var(--white); font-size: 14px; }
.hero-rail .text-link:hover { background: #ffffff13; }
.hero-rail .text-link svg { color: #becbff; }

.split-section { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.18fr); gap: clamp(37px, 8vw, 130px); }
.section-copy h2, .section-heading h2, .story h2 { font-size: clamp(55px, 7.25vw, 108px); line-height: .91; letter-spacing: -.057em; }
.section-copy p { max-width: 34ch; margin: 23px 0 14px; color: var(--muted); }
.section-copy .text-link { color: var(--cobalt-dark); }
.group-list { align-self: center; border-top: 1px solid var(--rule); }
.group-list li { border-bottom: 1px solid var(--rule); }
.group-link { display: flex; justify-content: space-between; align-items: center; min-height: 79px; gap: 15px; padding: 11px 5px 11px 0; font: 400 clamp(28px, 3.15vw, 46px)/1.05 var(--display); letter-spacing: -.039em; transition: color .25s ease, padding .32s var(--ease), background .3s ease; }
.group-link svg { width: 25px; height: 25px; color: var(--cobalt); transition: transform .32s var(--ease); }
.group-link:hover { padding-inline: 16px 12px; color: var(--cobalt); background: #2449d80a; }
.group-link:hover svg { transform: translate(3px, -3px); }
.story { display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(410px, 39vw, 560px); color: var(--white); background: var(--ink); }
.story-content { display: flex; align-items: center; padding: clamp(40px, 6vw, 87px) clamp(26px, 4.6vw, 70px) clamp(40px, 6vw, 87px) max(var(--gutter), calc((100vw - var(--max)) / 2)); }
.story .eyebrow { margin-bottom: 22px; color: var(--cobalt-light); }
.story h2 { font-size: clamp(45px, 5.3vw, 80px); }
.story-lead { margin: 23px 0 21px; max-width: 42ch; color: #e2e7f3; }
.story-media { position: relative; isolation: isolate; min-height: 280px; overflow: hidden; }
.story-media img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; filter: saturate(.68) brightness(.86); transition: transform .65s var(--ease); }
.story-media:hover img { transform: scale(1.035); }
.story-media figcaption { position: absolute; right: 0; bottom: 0; padding: 9px 14px; background: var(--ink); color: var(--white); font-size: 11px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: clamp(25px, 4vw, 53px); }
.section-heading .text-link { color: var(--cobalt-dark); }
.roster { display: grid; grid-template-columns: minmax(210px, .72fr) minmax(0, 1.2fr); gap: clamp(22px, 5.5vw, 86px); }
.roster-image { position: relative; overflow: hidden; min-height: 390px; background: #d8dbe4; }
.roster-photo { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; opacity: 0; transform: scale(1.045); filter: grayscale(1) contrast(.92) brightness(1.04); transition: opacity .44s ease, transform .65s var(--ease); }
.roster-photo.is-active { opacity: 1; transform: scale(1); }
.roster-list { border-top: 1px solid var(--rule); align-self: center; }
.roster-avatar { display: none; }
.roster-list a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 78px; padding: 9px 3px; border-bottom: 1px solid var(--rule); transition: padding .3s var(--ease), color .25s ease, background .25s ease; }
.roster-list a:is(:hover, :focus-visible) { padding-inline: 12px 7px; color: var(--cobalt); background: #2449d80a; }
.roster-list a div > span { display: block; font: 400 clamp(24px, 3vw, 41px)/1.05 var(--display); letter-spacing: -.045em; }
.roster-list small { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; }

.contact-band { padding-block: clamp(42px, 5.5vw, 78px); background: var(--cobalt); color: var(--white); }
.contact-band-inner { display: grid; grid-template-columns: 1.1fr .87fr auto; align-items: center; gap: 26px; }
.contact-band h2 { font-size: clamp(39px, 5vw, 75px); line-height: .96; letter-spacing: -.055em; }
.contact-band .eyebrow { margin-bottom: 12px; }
.contact-band address { max-width: 34ch; color: #f4f6ff; font-size: 14px; }
.contact-band address a:hover { text-decoration: underline; text-underline-offset: 3px; }
.site-footer { background: var(--ink-deep); color: var(--white); }
.site-footer .brand-accent { background: var(--cobalt-light); }
.footer-grid { display: grid; grid-template-columns: 1.1fr .9fr .6fr; gap: 25px 40px; padding-block: 53px 44px; }
.footer-brand p { margin-top: 13px; color: #c4cce0; font-size: 13px; }
.footer-nav { display: grid; grid-template-columns: repeat(2, auto); align-content: start; justify-content: start; gap: 9px 28px; font-size: 13px; }
.footer-address { display: flex; flex-direction: column; justify-self: end; gap: 5px; font-size: 13px; }
.footer-address span { color: #c4cce0; }
.site-footer a:hover { color: #dbe4ff; text-decoration: underline; text-underline-offset: 4px; }
.site-footer .brand:hover { text-decoration: none; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding-block: 16px 20px; border-top: 1px solid #ffffff3d; color: #c4cce0; font-size: 12px; }
.footer-bottom .text-link { font-size: 12px; color: var(--white); }

.page-intro { position: relative; overflow: hidden; padding: 29px 0 clamp(51px, 7vw, 100px); color: var(--white); background: var(--ink); }
.page-intro::before { content: ""; position: absolute; width: min(32vw, 540px); inset: 0 0 0 auto; background: linear-gradient(90deg, #111a2d 0%, #111a2d25 94%), url("/assets/atrium-detail.webp") right center / cover; opacity: .46; pointer-events: none; }
.page-intro .wrap { position: relative; }
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: clamp(35px, 5vw, 74px); color: var(--muted); font-size: 12px; }
.breadcrumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb [aria-current] { font-weight: 600; }
.page-intro .breadcrumb, .page-lead { color: #e2e7f3; }
.page-intro :focus-visible { outline-color: var(--cobalt-light); }
.page-intro .eyebrow { margin-bottom: 15px; color: #afc0ff; }
.page-intro h1, .profile-content h1 { max-width: 17ch; font-size: clamp(55px, 7.15vw, 107px); line-height: .96; letter-spacing: -.055em; overflow-wrap: anywhere; }
.page-lead { max-width: 58ch; margin-top: 20px; font-size: clamp(16px, 1.5vw, 21px); }
.editorial-grid, .detail-grid, .profile-grid { display: grid; gap: clamp(32px, 6.8vw, 114px); align-items: start; }
.editorial-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.17fr); }
.detail-grid { grid-template-columns: minmax(0, 1.5fr) minmax(215px, .72fr); }
.prose h2, .contact-grid h2 { margin-bottom: 16px; font-size: clamp(35px, 4.05vw, 59px); line-height: 1.02; letter-spacing: -.038em; }
.prose p { max-width: 62ch; margin-bottom: 15px; color: var(--muted); }
.prose p a { text-decoration: underline; text-underline-offset: 3px; }
.stacked-links { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 22px; }
.editorial-photo img { width: 100%; aspect-ratio: 1.41; object-fit: cover; filter: saturate(.76); }
.editorial-photo figcaption { padding-top: 10px; color: var(--muted); font-size: 12px; }
.firm-quote { max-width: 27ch; margin-top: clamp(39px, 6vw, 90px); padding: .4em 0 .12em .45em; border-left: 4px solid var(--cobalt); font: italic 400 clamp(29px, 4.4vw, 64px)/1.06 var(--display); letter-spacing: -.039em; }

.directory-section { padding-top: clamp(41px, 5.1vw, 74px); }
.directory-controls { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; margin-bottom: 27px; }
.search-field { display: flex; align-items: center; gap: 12px; min-height: 51px; padding: 0 14px; border: 1px solid #a6afbf; background: var(--white); }
.search-field:focus-within { outline: 2px solid var(--cobalt); outline-offset: 2px; }
.search-field input { min-width: 0; flex: 1; padding: 10px 0; border: 0; outline: none; background: transparent; }
.search-field input::placeholder { color: var(--muted); opacity: 1; }
.directory-controls .search-field { flex: 1 1 235px; max-width: 345px; }
.directory-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.directory-filters button { padding: 8px 12px; min-height: 43px; border: 1px solid var(--rule); background: transparent; font-size: 13px; font-weight: 600; transition: background .24s ease, color .24s ease, border-color .24s ease; }
.directory-filters button:hover { background: var(--wash); }
.directory-filters button[aria-pressed="true"] { color: var(--white); background: var(--cobalt); border-color: var(--cobalt); }
.practice-list { border-top: 1px solid var(--rule); }
.practice-row { border-bottom: 1px solid var(--rule); }
.practice-row a { display: flex; justify-content: space-between; align-items: center; gap: 18px; min-height: 104px; padding: 15px 3px; transition: padding .32s var(--ease), color .25s ease, background .25s ease; }
.practice-row a:hover { padding-inline: 14px 9px; color: var(--cobalt); background: #2449d80a; }
.practice-row h3 { font-size: clamp(27px, 3.25vw, 44px); line-height: 1.05; letter-spacing: -.034em; }
.practice-row p { margin-top: 6px; max-width: 74ch; color: var(--muted); font-size: 14px; }
.empty-results { padding: 27px 0; }
.empty-results p { margin-bottom: 12px; color: var(--muted); }

.ruled-list { border-top: 1px solid var(--rule); }
.ruled-list li { padding: 13px 0; border-bottom: 1px solid var(--rule); color: var(--muted); }
.detail-aside { padding: 25px; border-top: 3px solid var(--cobalt); background: var(--wash); }
.detail-aside h2 { margin-bottom: 10px; font-size: 31px; line-height: 1.03; letter-spacing: -.03em; }
.detail-aside ul { margin-bottom: 14px; }
.detail-aside li { border-bottom: 1px solid var(--rule); }
.detail-aside li .text-link { padding-block: 8px; }
.people-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px clamp(12px, 2.3vw, 34px); }
.person a { display: block; height: 100%; border-bottom: 1px solid var(--rule); }
.person-photo { aspect-ratio: 4 / 4.6; background: #d5d9e1; overflow: hidden; }
.person-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; filter: grayscale(1) contrast(.92) brightness(1.04); transition: filter .34s ease, transform .65s var(--ease); }
.person a:hover img, .person a:focus-visible img { filter: none; transform: scale(1.055); }
.person-caption { display: flex; justify-content: space-between; align-items: start; gap: 8px; padding: 14px 0 16px; }
.person-caption h3 { font-size: clamp(24px, 2.85vw, 41px); line-height: .99; letter-spacing: -.043em; }
.person-caption p { margin-top: 7px; color: var(--muted); font-size: 12px; }
.person-caption .circle-arrow { width: 35px; height: 35px; }
.person-caption .circle-arrow svg { width: 16px; height: 16px; }

.profile-section { padding: 30px 0 clamp(63px, 8vw, 112px); }
.profile-grid { grid-template-columns: minmax(215px, .66fr) minmax(0, 1.32fr); }
.profile-photo { max-width: 445px; border-bottom: 6px solid var(--cobalt); overflow: hidden; }
.profile-photo img { width: 100%; aspect-ratio: 4 / 4.8; object-fit: cover; object-position: center 41%; }
.profile-content { padding-top: 9px; }
.profile-content .eyebrow { margin-bottom: 16px; color: var(--cobalt-dark); }
.profile-content h1 { font-size: clamp(51px, 6.25vw, 94px); }
.profile-contact { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 13px; margin-top: 13px; }
.profile-email, .profile-linkedin { display: inline-flex; align-items: center; min-height: 44px; color: var(--cobalt-dark); }
.profile-email { gap: 8px; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.profile-email:hover { text-decoration: underline; text-underline-offset: 3px; }
.profile-linkedin { width: 44px; justify-content: center; }
.profile-linkedin:hover { color: var(--ink); }
.profile-linkedin svg { width: 18px; height: 18px; }
.profile-bio { margin-top: 22px; font-size: 17px; }
.profile-bio p { max-width: 67ch; }
.profile-fact { margin-top: 28px; }
.profile-fact h2 { margin-bottom: 11px; font-size: clamp(29px, 3.3vw, 38px); }
.profile-subheading { margin: 14px 0 7px; color: var(--muted); font: 600 14px/1.4 var(--sans); }
.profile-topics { display: flex; flex-wrap: wrap; gap: 7px; }
.profile-topics li { padding: 4px 10px; border: 1px solid #cbd4fa; background: var(--wash); color: var(--ink); font-size: 14px; }
.profile-language span { color: var(--muted); }
.education-list li { display: flex; justify-content: space-between; gap: 13px; }
.education-status { flex: 0 1 auto; text-align: right; font-size: 14px; }
.profile-back { margin-top: 22px; }

.contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.03fr); }
.contact-item { padding: 14px 0; border-top: 1px solid var(--rule); }
.contact-item:last-child { border-bottom: 1px solid var(--rule); }
.contact-item dt { color: var(--muted); font-size: 12px; font-weight: 600; }
.contact-item dd { margin-top: 4px; font-size: 16px; }
.contact-item dd > a:hover { color: var(--cobalt); text-decoration: underline; }
.address-actions { display: flex; flex-wrap: wrap; gap: 4px 17px; margin-top: 8px; }
.address-actions svg { width: 17px; height: 17px; }
.copy-status:not(:empty) { padding-top: 8px; color: var(--cobalt-dark); font-size: 13px; }
.compose { padding: clamp(22px, 3.45vw, 45px); border-top: 3px solid var(--cobalt); background: var(--wash); }
.compose h2 { margin-bottom: 7px; }
.compose p { margin-bottom: 18px; color: var(--muted); font-size: 14px; }
.compose p a { display: inline-block; color: var(--cobalt-dark); text-decoration: underline; text-underline-offset: 3px; }
.compose form { display: grid; gap: 7px; }
.compose label { font-size: 13px; font-weight: 600; }
.compose label span { color: var(--muted); font-weight: 400; }
.compose input, .compose textarea { width: 100%; margin-bottom: 9px; padding: 9px 11px; border: 1px solid #a6afbf; border-radius: 0; background: var(--white); }
.compose textarea { resize: vertical; min-height: 100px; }
.compose .button { margin-top: 4px; }
.legal-directory { max-width: 880px; border-top: 1px solid var(--rule); }
.legal-directory a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 22px 0; border-bottom: 1px solid var(--rule); }
.legal-directory h2 { font-size: clamp(26px, 3.2vw, 42px); line-height: 1.1; }
.legal-directory p { margin-top: 6px; color: var(--muted); font-size: 15px; }
.legal-directory a:hover h2 { color: var(--cobalt-dark); }
.legal-section { padding-block: clamp(48px, 6.1vw, 95px); }
.legal-prose { max-width: 780px; }
.legal-prose section + section, .legal-back { margin-top: 34px; }
.legal-prose h2 { font-size: clamp(27px, 3.2vw, 40px); }
.legal-prose :is(p, ul) { max-width: 72ch; }
.legal-prose ul { padding-left: 1.3em; list-style: disc; color: var(--muted); }
.legal-prose li + li { margin-top: 9px; }
.legal-prose a { color: var(--cobalt-dark); }

.site-menu {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0 0 28px;
  overflow: auto;
  overscroll-behavior: contain;
  border: 0;
  isolation: isolate;
  background: transparent;
  color: var(--white);
}
.site-menu::before { content: ""; position: fixed; inset: 0; z-index: -1; background: var(--cobalt); }
.site-menu::backdrop { background: #081020d4; }
.site-menu :focus-visible { outline-color: var(--white); }
.site-menu .brand-accent { background: #c3d1ff; }
.menu-head { position: sticky; z-index: 1; top: 0; border-bottom: 1px solid #ffffff5c; background: var(--cobalt); }
.menu-close { border-color: #ffffff85; background: transparent; }
.menu-close:hover { color: var(--cobalt); border-color: var(--white); background: var(--white); }
.menu-close .menu-glyph i:first-child { transform: translateY(3px) rotate(45deg); }
.menu-close .menu-glyph i:last-child { transform: translateY(-3px) rotate(-45deg); width: 19px; }
.menu-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(190px, .63fr); gap: clamp(36px, 8.5vw, 140px); align-items: center; padding-top: clamp(25px, 6vh, 76px); }
.menu-layout nav a {
  display: flex;
  min-height: 74px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 7px 3px 0;
  border-bottom: 1px solid #ffffff5c;
  font: 400 clamp(43px, 6.2vw, 89px)/1.08 var(--display);
  letter-spacing: -.052em;
  transition: padding .33s var(--ease), background .25s ease;
}
.menu-layout nav a[aria-current] .menu-arrow { color: var(--cobalt-dark); background: var(--white); border-color: var(--white); }
.menu-layout nav a:is(:hover, :focus-visible) { padding-inline: 13px 11px; background: #ffffff15; }
.menu-arrow { display: grid; flex: none; width: 39px; height: 39px; place-items: center; border: 1px solid #ffffff91; border-radius: 50%; }
.menu-side { align-self: end; }
.menu-image { aspect-ratio: .98; max-height: min(49vh, 480px); overflow: hidden; background: var(--ink); }
.menu-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 56%; filter: saturate(.75) contrast(1.04); }
.menu-side address { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 14px; padding-top: 11px; font-size: 13px; }
.menu-side a:hover { text-decoration: underline; text-underline-offset: 3px; }

.search-dialog { position: fixed; inset: 9vh 0 auto; width: min(660px, calc(100% - 2 * var(--gutter))); max-height: min(79dvh, 740px); margin: 0 auto; padding: 0; overflow: auto; border: 0; border-top: 4px solid var(--cobalt); background: var(--paper); color: var(--ink); box-shadow: 0 22px 65px #050c226b; }
.search-dialog::backdrop { background: #080f22bd; }
body.has-dialog { overflow: hidden; }
.dialog-panel { padding: clamp(20px, 3.8vw, 39px); }
.dialog-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 17px; }
.dialog-header h2 { font-size: clamp(36px, 5vw, 61px); line-height: 1; letter-spacing: -.05em; }
.search-results-label { margin: 21px 0 8px; color: var(--muted); }
.search-results a { display: flex; align-items: center; justify-content: space-between; gap: 13px; padding: 9px 0; border-top: 1px solid var(--rule); }
.search-results a:hover { color: var(--cobalt); }
.search-results strong, .search-results small { display: block; }
.search-results strong { font-size: 15px; font-weight: 600; }
.search-results small { color: var(--muted); font-size: 12px; }

.arrival-intro, .route-curtain { display: none; }
:root[data-arrival] .arrival-intro,
:root[data-route] .route-curtain {
  position: fixed;
  z-index: 40;
  display: grid;
  inset: 0;
  place-items: center;
}
.arrival-intro { color: var(--white); background: var(--ink); }
.arrival-lockup { text-align: center; }
.arrival-lockup .brand { margin-inline: auto; gap: 15px; }
.arrival-lockup .brand-set { font-size: 63px; }
.arrival-lockup .brand-accent { width: 8px; height: 8px; background: var(--cobalt-light); }
.arrival-lockup .brand-descriptor { padding-left: 14px; font-size: 12px; text-align: left; }
.arrival-lockup > span { display: block; margin-top: 28px; color: #c4cfee; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.load-line { position: relative; width: 148px; height: 2px; margin: 10px auto 0; overflow: hidden; background: #ffffff35; }
.load-line::before { position: absolute; content: ""; inset: 0; background: var(--cobalt-light); transform-origin: left; animation: progress-line 860ms var(--ease) both; }
:root[data-arrival="loading"] .arrival-intro { animation: intro-safety 2900ms steps(1, end) forwards; }
:root[data-arrival="leaving"] .arrival-intro { pointer-events: none; animation: curtain-out 560ms var(--wipe) both; }
:root[data-route] .route-curtain { background: var(--cobalt); }
.route-curtain::after { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: #a0b4ff; }
:root[data-route="cover"] .route-curtain { animation: curtain-in 310ms var(--wipe) both; }
:root[data-route="reveal"] .route-curtain { pointer-events: none; animation: curtain-out 520ms var(--wipe) both; }
:root[data-route="ready"] .route-curtain { animation: intro-safety 2200ms steps(1, end) forwards; }
:root[data-entry] .hero-line > *, :root[data-entry] .enter-item { animation: intro-text 760ms var(--ease) both; }
:root[data-entry] .hero-label { animation-delay: 75ms; }
:root[data-entry] .hero-line:nth-child(2) > * { animation-delay: 105ms; }
:root[data-entry] .hero-lead { animation-delay: 210ms; }
:root[data-entry] .hero-actions { animation-delay: 285ms; }
:root[data-entry] .hero-media img { animation: hero-image 1350ms var(--ease) both; }
:root[data-entry] :is(.page-intro h1, .profile-content h1) { animation: intro-text 680ms var(--ease) both; }
.site-menu[open]:not([data-closing])::before { animation: menu-in 510ms var(--wipe) both; }
.site-menu[open][data-closing] { animation: menu-out 250ms var(--wipe) both; }
.site-menu[open]:not([data-closing]) nav li { animation: intro-text 540ms var(--ease) both; }
.site-menu[open]:not([data-closing]) nav li:nth-child(1) { animation-delay: 90ms; }
.site-menu[open]:not([data-closing]) nav li:nth-child(2) { animation-delay: 130ms; }
.site-menu[open]:not([data-closing]) nav li:nth-child(3) { animation-delay: 170ms; }
.site-menu[open]:not([data-closing]) nav li:nth-child(4) { animation-delay: 210ms; }
.site-menu[open]:not([data-closing]) nav li:nth-child(5) { animation-delay: 250ms; }
.site-menu[open]:not([data-closing]) .menu-side { animation: intro-text 660ms 140ms var(--ease) both; }
.search-dialog[open] { animation: search-in 370ms var(--ease) both; }
.search-dialog[open][data-closing] { animation: search-out 240ms var(--ease) both; }
[data-filtered] .practice-row:not([hidden]) { animation: results-in 320ms var(--ease) both; }
[data-reveal] { transition: transform .68s var(--ease), opacity .57s ease; }
[data-reveal].reveal-pending:not(:focus-within) { transform: translateY(23px); opacity: 0; }
@keyframes progress-line { 0% { transform: scaleX(.06); } 58% { transform: scaleX(.71); } 100% { transform: scaleX(1); } }
@keyframes intro-safety { to { visibility: hidden; } }
@keyframes curtain-in { from { clip-path: inset(100% 0 0); } to { clip-path: inset(0); } }
@keyframes curtain-out { from { clip-path: inset(0); } to { clip-path: inset(0 0 100%); } }
@keyframes intro-text { from { transform: translateY(24px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes hero-image { from { transform: scale(1.053); } to { transform: scale(1); } }
@keyframes menu-in { from { clip-path: inset(0 0 100%); } to { clip-path: inset(0); } }
@keyframes menu-out { from { clip-path: inset(0); } to { clip-path: inset(0 0 100%); } }
@keyframes search-in { from { transform: translateY(-16px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes search-out { from { transform: translateY(0); opacity: 1; } to { transform: translateY(-12px); opacity: 0; } }
@keyframes results-in { from { transform: translateY(7px); opacity: .45; } to { transform: translateY(0); opacity: 1; } }

@media (max-width: 990px) {
  .menu-layout { gap: 34px; }
  .contact-band-inner { grid-template-columns: minmax(0, 1fr) auto; }
  .contact-band-inner address { grid-row: 2; }
  .contact-band-inner .button { grid-column: 2; grid-row: 1 / 3; }
}

@media (max-width: 740px) {
  :root { --header-height: 69px; }
  .brand { gap: 9px; }
  .brand-set { font-size: 32px; }
  .brand-descriptor { padding-left: 8px; font-size: 9px; }
  .header-actions { gap: 9px; }
  .menu-trigger { min-width: 87px; padding-inline: 9px; gap: 8px; }
  .hero { grid-template-rows: minmax(465px, 1fr) auto; }
  .hero-media img { object-position: 61% 53%; }
  .hero::before { background: linear-gradient(90deg, #080f20e8 0%, #0b132589 53%, #0b13252e 100%), linear-gradient(0deg, #0b1221c7 0%, #0b122100 53%); }
  .hero-content { padding-block: 61px 59px; }
  .hero h1 { font-size: clamp(59px, 12.1vw, 99px); }
  .hero-label { margin-bottom: 23px; }
  .hero-rail .text-link { min-height: 57px; padding-inline: 10px; font-size: 13px; }
  .hero-rail .text-link svg { width: 17px; height: 17px; }
  .hero-down { width: 41px; height: 41px; bottom: 19px; }
  .section { padding-block: 62px; }
  .split-section, .story, .editorial-grid, .detail-grid, .profile-grid, .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .split-section { gap: 27px; }
  .section-copy h2 { max-width: 12ch; }
  .section-copy p { margin-top: 14px; }
  .group-link { min-height: 62px; font-size: 32px; }
  .story-content { padding: 50px var(--gutter) 49px; }
  .story-media { min-height: clamp(230px, 63vw, 430px); }
  .section-heading { align-items: start; }
  .section-heading h2 { font-size: clamp(48px, 10.8vw, 70px); }
  .roster { grid-template-columns: minmax(0, .65fr) minmax(0, 1.2fr); gap: 15px; }
  .roster-image { min-height: 320px; }
  .roster-list a { min-height: 64px; }
  .roster-list .circle-arrow { width: 34px; height: 34px; }
  .contact-band-inner { gap: 13px 19px; }
  .footer-grid { grid-template-columns: 1fr 1fr; padding-block: 43px 32px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-nav { grid-template-columns: 1fr; gap: 6px; }
  .footer-address { justify-self: start; }
  .footer-bottom { flex-wrap: wrap; justify-content: flex-start; gap: 8px 20px; }
  .page-intro { padding-top: 22px; }
  .page-intro::before { width: 43vw; opacity: .3; }
  .profile-photo { width: min(100%, 370px); }
  .profile-content { padding-top: 0; }
  .directory-controls .search-field { max-width: none; flex-basis: 100%; }
  .site-menu { padding-bottom: 22px; }
  .menu-layout { grid-template-columns: 1fr; gap: 20px; padding-top: 21px; }
  .menu-layout nav a { min-height: 67px; font-size: clamp(39px, 8.6vw, 62px); }
  .menu-image { display: none; }
  .menu-side address { justify-content: start; column-gap: 17px; }
}

@media (max-width: 480px) {
  .education-list li { flex-direction: column; gap: 3px; }
  .education-status { text-align: left; }
  .hero { grid-template-rows: minmax(455px, 1fr) auto; }
  .hero-rail ul { width: 100%; }
  .hero-rail .text-link { min-height: 54px; font-size: 12px; gap: 5px; }
  .hero h1 { font-size: clamp(56px, 13.15vw, 75px); }
  .hero-media img { object-position: 62% center; }
  .hero-down { display: none; }
  .section-heading { flex-wrap: wrap; gap: 9px; }
  .roster { grid-template-columns: 1fr; }
  .roster-image { display: none; }
  .roster-avatar { display: block; width: 54px; height: 54px; object-fit: cover; object-position: center 34%; filter: grayscale(1); }
  .roster-list a { justify-content: start; min-height: 72px; }
  .roster-list a .circle-arrow { margin-left: auto; }
  .contact-band-inner { grid-template-columns: 1fr; }
  .contact-band-inner address, .contact-band-inner .button { grid-area: auto; }
  .people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px 12px; }
  .person-caption .circle-arrow { display: none; }
}

@media (max-width: 360px) {
  :root { --gutter: 17px; }
  .header-inner { gap: 7px; }
  .header-actions { gap: 5px; }
  .tool-search { width: 37px; height: 42px; }
  .brand-set { font-size: 27px; }
  .languages { gap: 3px; }
  .languages a { min-width: 19px; }
  .site-header .menu-trigger { position: relative; display: grid; place-items: center; min-width: 42px; padding: 0; font-size: 0; }
  .site-header .menu-trigger .menu-glyph { position: absolute; }
  .hero h1 { font-size: 52px; }
  .hero-label { font-size: 10px; }
  .page-intro h1, .profile-content h1 { font-size: 48px; }
  .hero-rail .text-link { font-size: 11px; padding-inline: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  :root .arrival-intro, :root .route-curtain { display: none !important; }
  [data-reveal].reveal-pending { transform: none !important; opacity: 1 !important; }
}
