@font-face{font-family:Inter;src:url('assets/Inter-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('assets/Inter-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--ink:#171715;--muted:#686865;--rule:#d3d3d0;--gutter:clamp(24px,4.3vw,82px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:116px}
body{margin:0;background:#fff;color:var(--ink);font-family:Inter,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
::selection{background:var(--ink);color:#fff}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
img{display:block;max-width:100%}
p,h1,h2,h3,figure{margin:0}
.wrap{max-width:1560px;width:calc(100% - var(--gutter)*2);margin-inline:auto}
.skip{position:fixed;top:-100px;left:20px;padding:14px;background:var(--ink);color:#fff;z-index:100}
.skip:focus{top:20px}
.header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--ink)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .header{background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}
.header-inner{height:84px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:18px;flex-shrink:0}
.brand img{width:44px;height:44px;object-fit:contain;mix-blend-mode:multiply}
.brand-wordmark{display:flex;align-items:baseline;gap:12px;line-height:1;white-space:nowrap}
.brand-name{font-size:22px;font-weight:700;letter-spacing:-.045em}
.brand-legal{font-size:10px;font-weight:400;letter-spacing:.26em;margin-right:-.26em}
.header nav{display:flex;gap:35px;align-items:center;font-size:12px}
.header nav a{padding-block:13px;position:relative}
.header nav a:after{content:'';position:absolute;left:0;right:0;bottom:5px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.header nav a:hover:after,.header nav a:focus-visible:after,.header nav a[aria-current=location]:after{transform:scaleX(1);transform-origin:left}
.nav-contact{margin-left:20px}
.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:54% 46%;margin-top:28px}
.hero-copy{position:relative;padding:0 12% 50px 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.hero h1{font-size:clamp(65px,8.6vw,140px);font-weight:700;line-height:1.03;letter-spacing:-.08em;margin:22px 0 0;white-space:nowrap}
.hero h1>span:first-child{font-weight:400;display:block}
.name-line,.name-text{display:block}
.degree{font-size:.23em;letter-spacing:-.015em;margin-right:.3em}
.hero-signature{display:flex;align-items:center;gap:20px;width:100%;margin-top:28px}
.hero-role{flex:none;font-size:clamp(11px,.9vw,12px);line-height:1.4;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;margin-right:-.24em}
.hero-rule{flex:1;height:1px;background:var(--ink)}
.hero-lead{font-size:clamp(19px,2vw,30px);line-height:1.28;letter-spacing:-.035em;margin-top:24px}
.hero-intro{grid-column:1/-1;display:grid;grid-template-columns:48% 52%;gap:0;padding:44px 0 50px;border-top:3px solid var(--ink)}
.intro-lead{font-size:clamp(23px,2.45vw,35px);letter-spacing:-.04em;line-height:1.35;max-width:460px;padding-right:40px;text-wrap:pretty}
.hero-summary{font-size:14px;line-height:1.85;max-width:570px;text-wrap:pretty}
.hero-summary,.practice-list>article>p,.contact-note{text-align:justify;text-align-last:left;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:6 3 3}
.portrait{position:relative;padding-left:0;display:flex;flex-direction:column;align-self:end}
.portrait-stage{position:relative;overflow:hidden;overflow:clip;height:clamp(490px,calc(100svh - 113px),760px);width:100%;background:#fff}
.portrait-final{width:100%;height:100%;object-fit:cover;object-position:center top;transform:translate3d(0,var(--portrait-shift,0px),0) scale(var(--portrait-scale,1.025))}
.portrait-final{transform-origin:50% 25%}
.motion-enabled .portrait-final{will-change:transform}
.portrait-stage:focus-visible{outline:1px solid var(--ink);outline-offset:5px}
.portrait-intro{position:absolute;inset:0;display:grid;place-items:center;background:#fff;opacity:1;transition:opacity 1.2s cubic-bezier(.22,1,.36,1);pointer-events:none}
.portrait-intro[hidden]{display:none}
.portrait-intro img{width:clamp(105px,11vw,160px);height:auto}
.portrait-intro.is-finishing{opacity:0}
.crisis-copy{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.crisis-copy>p{font-size:14px;line-height:1.85;max-width:460px;padding-top:3px;text-align:justify;text-align-last:left;-webkit-hyphens:auto;hyphens:auto}
.media-clip{position:relative;width:min(460px,100%);justify-self:start;margin-top:0}
.media-clip video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#fff}
.media-replay{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;min-height:44px;padding:0;border:0;background:transparent;color:#737373;cursor:pointer}
.media-replay[hidden]{display:none}
.media-replay:hover,.media-replay:focus-visible{color:var(--ink)}
.media-replay:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
.section{padding-top:76px;padding-bottom:76px}
.practice{display:block;padding:28px 0 34px;margin-bottom:64px;background:#fff}
.practice-list{margin-top:0}
.practice-list article{display:grid;grid-template-columns:48% 52%;align-items:start;padding:26px 0 30px;border-top:1px solid #dcdcd8}
.practice-list article:first-child{border-top:0}
.practice-list h2{font-weight:400;font-size:clamp(20px,1.65vw,24px);line-height:1.35;letter-spacing:-.025em;padding-right:30px}
.practice-list>article>p{font-size:14px;line-height:1.85;max-width:460px;padding-top:3px}
.contact{border-top:3px solid var(--ink);padding-top:56px;padding-bottom:76px}
.contact-top{margin-bottom:34px}
.contact-note{font-size:13px;line-height:1.85;max-width:360px}
.big-email{display:block;width:fit-content;padding:0 0 8px;border-bottom:1px solid var(--ink);font-size:clamp(20px,3.1vw,46px);letter-spacing:-.04em}
.big-email:hover{color:var(--muted)}
.big-email>span{display:inline-block}
.contact-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:9%;padding-top:39px}
.contact-caption{font-size:11px;display:block;margin-bottom:17px;text-transform:lowercase}
.contact-caption:first-letter{text-transform:uppercase}
.contact-direct{display:flex;align-items:flex-start;flex-direction:column}
.phone{font-size:25px;letter-spacing:-.035em;white-space:nowrap}
.contact address{font-size:14px;line-height:1.7;font-style:normal}
.contact-info p{font-size:13px;line-height:1.7}
.contact-info dl{font-size:11px;line-height:1.9;margin-top:15px}
.contact-info dl>div{display:flex;gap:25px}
.contact-info dt{width:33px;color:var(--muted)}
.contact-info dd{margin:0}
.footer{border-top:1px solid var(--ink)}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:76px;font-size:10px}
/* A brief introduction plays once on arrival; all divider rules are static. */
@media screen and (prefers-reduced-motion:no-preference){
  @keyframes name-arrive{from{opacity:.6;transform:translateY(110%)}to{opacity:1;transform:translateY(0)}}
  @keyframes intro-arrive{from{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
  @keyframes portrait-arrive{from{opacity:.65}to{opacity:1}}
  .intro-arrival .name-line{clip-path:inset(-.16em -.12em)}
  .intro-arrival .name-text{animation:name-arrive 1.05s cubic-bezier(.22,1,.36,1) both}
  .intro-arrival .name-line:nth-child(2) .name-text{animation-delay:.14s}
  .intro-arrival .portrait-stage{animation:portrait-arrive 1.1s ease-out .1s both}
  .intro-arrival .hero-lead{animation:intro-arrive 1s cubic-bezier(.22,1,.36,1) .32s both}
  .big-email,.phone{transition:color .2s ease}
  @keyframes reading-arrive{from{opacity:.6;transform:translateY(var(--reveal-distance,28px))}to{opacity:1;transform:translateY(0)}}
  .reveal-enter{animation:reading-arrive 1s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms) both}
  .reveal-enter:focus-within,.big-email:focus-within .reveal-enter{animation:none}
}
@media screen and (max-width:760px) and (prefers-reduced-motion:no-preference){
  .reveal-enter{--reveal-distance:18px}
  @keyframes menu-arrive{from{opacity:.5;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
  .header nav.is-open a{animation:menu-arrive .32s ease-out both}
  .header nav.is-open a:nth-child(2){animation-delay:.06s}
  .header nav.is-open a:focus-visible{animation:none}
}
@media(hover:hover) and (pointer:fine){.phone:hover{color:var(--muted)}}
.big-email:focus-visible,.phone:focus-visible{color:var(--muted)}
@media(min-width:1650px){.hero-lead{margin-top:30px}.hero-signature{margin-top:35px}.hero-summary{font-size:15px}.intro-lead{max-width:520px}}
@media(max-width:1100px){.header nav{gap:24px}.nav-contact{margin-left:0}.hero-copy{padding-right:8%}.hero h1{font-size:8.3vw}.hero-lead{font-size:23px}.hero-summary{font-size:13px}.contact-grid{gap:5%}.phone{font-size:22px}.practice-list h2{font-size:21px;padding-right:23px}}
@media(min-width:761px) and (max-width:1000px){.practice{display:block}.practice-list article{grid-template-columns:44% 56%}.portrait-stage{height:540px}.hero h1{margin-top:0}.hero-copy{padding-bottom:30px}.hero-intro{grid-template-columns:44% 56%}.intro-lead{font-size:23px;padding-right:30px}}
@media(max-width:760px){
  :root{--gutter:24px}
  html{scroll-padding-top:105px}
  .header-inner{height:76px}.brand{gap:12px}.brand img{width:34px;height:34px}.brand-wordmark{gap:9px}.brand-name{font-size:18px}.brand-legal{font-size:10px;letter-spacing:.22em;margin-right:-.22em}
  .menu-toggle{display:flex;align-items:center;gap:13px;background:none;border:0;padding:12px 0 12px 12px;font-size:11px}.menu-toggle i{position:relative;width:22px;height:12px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.menu-toggle[aria-expanded=true] i{transform:rotate(-45deg);height:0;border-bottom:0}.menu-toggle[aria-expanded=true] i:after{content:'';position:absolute;left:0;top:-1px;width:22px;height:1px;background:var(--ink);transform:rotate(90deg)}
  .header nav{display:none;position:absolute;top:76px;left:0;right:0;padding:10px var(--gutter) 20px;background:#fff;border-bottom:1px solid var(--ink);z-index:10;flex-direction:column;align-items:stretch;gap:0;font-size:19px}.header nav.is-open{display:flex}.header nav a{padding:17px 0;border-bottom:1px solid var(--rule)}.header nav a:after{right:auto;width:28px;bottom:10px}
  .hero{grid-template-columns:1fr;margin-top:30px}.hero-copy{padding:0 0 24px}.hero h1{font-size:clamp(55px,14vw,102px);margin-top:0;line-height:1;letter-spacing:-.075em}.hero h1>span:first-child{font-size:.8em;line-height:1.14}.hero-signature{margin-top:24px;gap:16px}.hero-lead{font-size:22px;margin-top:21px;line-height:1.35}
  .portrait{padding-left:0;width:100%;margin-top:0}.portrait-stage{height:auto;max-height:540px;aspect-ratio:4/4.6}.portrait-final{object-position:center 22%;transform-origin:50% 0%}
  .hero-intro{grid-template-columns:1fr;padding:29px 0 33px;gap:20px}.intro-lead{font-size:25px;line-height:1.35;padding-right:0;max-width:100%}.hero-summary{font-size:13px;line-height:1.85;max-width:100%}
  .section{padding-top:44px;padding-bottom:46px}.practice{display:block}
  .practice{padding:14px 0 20px;margin-bottom:40px}.practice-list{margin-top:0}.practice-list article{grid-template-columns:1fr;padding:22px 0 25px;gap:10px}.practice-list h2{font-size:21px;padding-right:0;line-height:1.35}.practice-list h2 br{display:none}.practice-list>article>p{font-size:13px;line-height:1.85;padding:0;max-width:100%}
  .crisis-copy{grid-template-columns:1fr;gap:20px}
  .crisis-copy>p{font-size:13px;padding-top:0;max-width:100%}
  .media-clip{width:100%;margin-top:0}
  .practice-list .practice-crisis{gap:20px}
  .contact{padding-top:32px}.contact-top{display:block;margin-bottom:25px}.contact-note{font-size:12px;line-height:1.8;max-width:100%}.big-email{font-size:clamp(15px,5.1vw,30px);letter-spacing:-.035em}.contact-grid{grid-template-columns:1fr 1fr;gap:25px 20px;padding-top:29px}.contact-direct{grid-column:1/-1}.phone{font-size:27px}.contact-caption{font-size:10px;margin-bottom:13px}.contact address,.contact-info p{font-size:12px}.contact-info dl{font-size:10px}.contact-info dl>div{gap:12px}
  .footer-bottom{font-size:9px;gap:10px;min-height:68px}
}
@media(max-width:360px){:root{--gutter:19px}.brand-name{font-size:17px}.hero h1{font-size:13.5vw}.practice-list h2{font-size:20px}.contact-grid{gap:26px 16px}.contact-info p{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:after,*:before{transition:none!important;animation:none!important}.portrait-final{transform:scale(1.025)}.portrait-intro{display:none}}
@media(prefers-reduced-transparency:reduce){.header{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}}

@media print{.portrait-intro,.media-replay{display:none}.portrait-final{transform:none}}
