@font-face{font-family:'Fraunces';src:url('../fonts/fraunces-vf.woff2') format('woff2-variations');font-weight:300 700;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('../fonts/source-serif-4-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('../fonts/source-serif-4-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Geist';src:url('../fonts/geist-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Geist';src:url('../fonts/geist-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Space Mono';src:url('../fonts/spacemono-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Space Mono';src:url('../fonts/spacemono-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{
  --paper:#FFFFFF; --paper2:#F4F4F2; --ink:#16140F; --ink2:#4E4A42; --ink3:#696355;
  --rule:#E3DFD4; --rule2:#EDEAE1; --black:#16140F;
  --disp:'Fraunces',Georgia,serif; --read:'Source Serif 4',Georgia,serif;
  --ui:'Geist',system-ui,sans-serif; --mono:'Space Mono',ui-monospace,monospace;
  --maxw:1180px; --ease:cubic-bezier(.22,1,.36,1);
  --acc:#8FBFE8; --accL:#3A6FA5; --tint:#E6EEFA;
}
/* firm-type accents — each keeps --accL ≥ 4.5:1 on white (AA) */
body.firm-tech{--acc:#8FBFE8;--accL:#3A6FA5;--tint:#E6EEFA}
body.firm-bank{--acc:#AFAEE6;--accL:#5956A6;--tint:#ECEBF8}
body.firm-am  {--acc:#E8B43A;--accL:#8A6410;--tint:#FBF1DA}
body.firm-svc {--acc:#E79BD0;--accL:#A63E87;--tint:#FBEBF6}
body.firm-adv {--acc:#AFC94E;--accL:#556F18;--tint:#F2F5E2}
body.firm-plat{--acc:#EFA79C;--accL:#BC442E;--tint:#FCEBE7}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
*{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(--read);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-family:var(--disp);font-weight:400;font-optical-sizing:auto;letter-spacing:-.015em;line-height:1.08}
p{margin:0}
::selection{background:#FFCB52;color:#16140F}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* ---------- MASTHEAD ---------- */
.masthead{border-bottom:2px solid var(--ink);background:var(--paper);position:relative;z-index:5}
.mastrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:24px;padding:16px 0 12px}
.mastrow .edge{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);line-height:1.7}
.mastrow .edge.r{text-align:right}
.wordmark{text-align:center;font-family:var(--disp);font-weight:400;font-variation-settings:'opsz' 144;font-size:clamp(22px,4vw,38px);letter-spacing:-.02em;line-height:.95}
.wordmark .the{display:block;font-size:.34em;letter-spacing:.42em;text-transform:uppercase;color:var(--ink2);margin-bottom:.3em;font-variation-settings:'opsz' 20}
.subrule{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:7px 0}
.navrow{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap}
.navrow a{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);padding:3px 18px;transition:color .15s}
.navrow a+a{border-left:1px solid var(--rule)}
.navrow a:hover{color:var(--ink)}

/* ---------- PREVIEW SWITCHER ---------- */
.fswitch{background:var(--paper2);border-bottom:1px solid var(--rule)}
.fswitch .inner{max-width:var(--maxw);margin:0 auto;padding:11px 28px;display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap}
.fswitch .lab{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-right:2px}
.fswitch .tabs{display:flex;gap:6px;flex-wrap:wrap}
.fswitch button{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink2);background:var(--paper);border:1px solid var(--rule);padding:7px 12px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.fswitch button .k{width:10px;height:10px;flex:0 0 auto}
.fswitch button:hover{color:var(--ink);border-color:var(--ink3)}
.fswitch button[aria-current="true"]{color:var(--ink);border-color:var(--ink);background:var(--paper)}
.t-tech .k{background:#8FBFE8}.t-bank .k{background:#AFAEE6}.t-am .k{background:#E8B43A}
.t-svc .k{background:#E79BD0}.t-adv .k{background:#AFC94E}.t-plat .k{background:#EFA79C}

/* ---------- PROFILE HEADER ---------- */
.crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);padding:18px 0 0}
.crumb a:hover{color:var(--ink)} .crumb .sl{margin:0 8px;color:var(--rule)}
.phead{border:1px solid var(--ink);border-top:4px solid var(--accL);background:var(--tint);margin:16px 0 0;padding:26px 30px;position:relative;overflow:hidden}
.phead .ftchip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);margin-bottom:14px}
.phead .ftchip .k{width:10px;height:10px;background:var(--acc);display:inline-block}
.phead h1{font-size:clamp(38px,6vw,64px);font-variation-settings:'opsz' 144;letter-spacing:-.025em;line-height:1;margin-bottom:12px}
.phead .tag{font-family:var(--read);font-size:clamp(17px,2vw,20px);color:var(--ink2);max-width:52ch;line-height:1.45;margin-bottom:20px}
.phead .facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.phead .facts b{color:var(--ink);font-weight:700}
.phead .visit{position:absolute;top:26px;right:30px}
.btnpill{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);background:var(--ink);padding:12px 20px;transition:transform .2s var(--ease)}
.btnpill:hover{transform:translateX(3px)}

.statband{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink);border-top:0;background:var(--paper2)}
.statband .st{padding:18px 18px;border-right:1px solid var(--rule);text-align:left}
.statband .st:last-child{border-right:0}
.statband .sn{display:block;font-family:var(--disp);font-size:clamp(20px,2.4vw,27px);letter-spacing:-.012em;color:var(--ink);line-height:1;font-variation-settings:'opsz' 48}
.statband .sl{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-top:9px}

.secnav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);margin-top:30px}
.secnav .inner{display:flex;gap:0;flex-wrap:wrap;max-width:var(--maxw);margin:0 auto;padding:0 28px}
.secnav a{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);padding:13px 16px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;cursor:pointer}
.secnav a:first-child{padding-left:0}
.secnav a:hover{color:var(--ink)}
.secnav a.on{color:var(--ink);border-bottom-color:var(--accL)}

.body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:52px;padding:42px 0 10px}
.col{min-width:0}
h2.sec{font-size:clamp(23px,2.6vw,30px);font-variation-settings:'opsz' 72;letter-spacing:-.018em;margin:0 0 4px}
.sec-block,.similar{scroll-margin-top:64px}
h2.sec .hh{background-image:linear-gradient(to top,transparent 6%,var(--tint) 6%,var(--tint) 48%,transparent 48%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .04em}
.seclead{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accL);margin-bottom:16px;display:block}
.sec-block{padding-bottom:40px;margin-bottom:40px;border-bottom:1px solid var(--rule)}
.sec-block:last-child{border-bottom:0}
.prose p{margin:0 0 18px;font-size:17.5px;line-height:1.62}
.prose p.lead{font-size:20px;line-height:1.5;color:var(--ink)}
.prose strong{font-weight:600}
.prose em{font-style:italic}
.prose ul{list-style:none;margin:0 0 18px;padding:0}
.prose ul li{position:relative;padding:0 0 9px 22px;font-size:16.5px;line-height:1.55;color:var(--ink2)}
.prose ul li::before{content:"";position:absolute;left:2px;top:10px;width:6px;height:6px;background:var(--accL)}
.prose h2,.prose h3{font-family:var(--disp);font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:26px 0 12px;line-height:1.2}
.prose h2{font-size:22px}.prose h3{font-size:18px}
.prose a{color:var(--accL);text-decoration:underline;text-underline-offset:2px}

/* pull quote — a real family-office user's words, carried over from the directory record */
blockquote.pq{margin:4px 0 0;border-left:3px solid var(--accL);background:var(--tint);padding:20px 24px}
blockquote.pq p{margin:0;font-family:var(--disp);font-size:clamp(18px,2vw,22px);line-height:1.4;color:var(--ink);font-variation-settings:'opsz' 32}
blockquote.pq cite{display:block;margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);font-style:normal}

/* key people — aligned two-column grid */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px;margin:8px 0 4px}
.person{display:flex;align-items:flex-start;gap:12px;min-width:0}
.person .pav{width:38px;height:38px;flex:0 0 auto;margin-top:1px;border:1px solid var(--accL);background:var(--tint);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:18px;color:var(--accL)}
.person .pw{min-width:0}
.person .pnm{display:block;font-family:var(--ui);font-size:15px;font-weight:500;color:var(--ink);line-height:1.25}
.person .prole{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);margin-top:4px;line-height:1.45}
ul.ed.awards li{color:var(--ink2)}

.subh{font-family:var(--ui);font-weight:500;font-size:14px;letter-spacing:.01em;color:var(--ink);text-transform:none;margin:24px 0 10px;display:flex;align-items:center;gap:9px}
.subh::before{content:"";width:8px;height:8px;background:var(--acc);border:1px solid var(--accL);flex:0 0 auto}
ul.ed{list-style:none;margin:0 0 6px;padding:0}
ul.ed li{position:relative;padding:0 0 8px 20px;font-size:16px;line-height:1.5;color:var(--ink2)}
ul.ed li::before{content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;background:var(--accL)}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}
.pills span{font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--ink2);background:var(--paper);border:1px solid var(--rule);padding:5px 9px}
.pills span::before{content:"";display:inline-block;width:5px;height:5px;background:var(--acc);margin-right:7px;vertical-align:1px}

.drows{border:1px solid var(--rule);margin:6px 0}
.drows .r{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:12px 16px;border-bottom:1px solid var(--rule)}
.drows .r:last-child{border-bottom:0}
.drows .r .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);padding-top:2px}
.drows .r .v{font-size:15.5px;color:var(--ink);line-height:1.5}

.assess{border:1px solid var(--ink);background:var(--paper2);padding:20px 22px;margin:6px 0}
.assess .ah{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:10px}
.assess p{font-size:15.5px;line-height:1.55;color:var(--ink2)}
.assess p+p{margin-top:9px}

.rail{min-width:0}
.speccard{position:sticky;top:60px;border:1px solid var(--ink);background:var(--paper)}
.speccard .logo{display:flex;align-items:center;gap:13px;background:var(--tint);padding:16px 18px;border-bottom:1px solid var(--ink)}
.speccard .logo .mk{width:44px;height:44px;flex:0 0 auto;border:1px solid var(--accL);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:24px;color:var(--accL);background:var(--paper)}
.speccard .logo .mt{font-family:var(--disp);font-size:20px;letter-spacing:-.015em;line-height:1.02;color:var(--ink)}
.speccard .logo .mc{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-top:5px;display:block}
.speccard .sc-in{padding:18px 18px 20px}
.speccard .btnpill{display:flex;justify-content:center;width:100%;background:var(--ink);color:var(--paper)}
.speccard .btnpill:hover{transform:none;background:var(--ink2)}
.speccard .grp{margin-top:16px}
.speccard .grp .gl{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-bottom:7px}
.speccard .grp .gv{font-family:var(--ui);font-size:14px;color:var(--ink);line-height:1.4}
.speccard .grp.rule{border-top:1px solid var(--rule);padding-top:14px}
.speccard .rev{margin-top:16px;border-top:1px solid var(--rule);padding-top:12px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

.similar{border-top:2px solid var(--ink);padding:26px 0 0;margin-top:10px}
.similar .sh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.similar .sh .t{font-family:var(--disp);font-size:clamp(20px,2.2vw,26px);letter-spacing:-.015em}
.similar .sh a.all{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);border-bottom:1px solid var(--rule);padding-bottom:2px}
.similar .sh a.all:hover{color:var(--ink);border-color:var(--ink)}
.simgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--rule)}
.simgrid a{padding:16px;border-right:1px solid var(--rule);transition:background .15s}
.simgrid a:last-child{border-right:0}
.simgrid a:hover{background:var(--paper2)}
.simgrid .pn{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:500;font-size:15px;color:var(--ink);margin-bottom:6px;line-height:1.15}
.simgrid .pn .k{width:8px;height:8px;background:var(--acc);display:inline-block;flex:0 0 auto}
.simgrid .pd{display:block;font-size:13px;color:var(--ink2);line-height:1.4}
.simgrid .pg{display:block;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:8px}

.colophon{border-top:2px solid var(--ink);padding:30px 0 40px;margin-top:40px}
.coltop{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:22px}
.colophon .cm{font-family:var(--disp);font-size:22px;letter-spacing:-.02em;line-height:1}
.colophon .cm .the{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.colophon nav{display:flex;flex-wrap:wrap;gap:0}
.colophon nav a{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);padding:2px 14px;border-left:1px solid var(--rule)}
.colophon nav a:first-child{padding-left:0;border-left:0}
.colophon nav a:hover{color:var(--ink)}
.colbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);border-top:1px solid var(--rule);padding-top:16px}

@media(max-width:900px){
  .body{grid-template-columns:1fr;gap:0}
  .rail{margin:34px 0}
  .speccard{position:static}
  .phead .visit{position:static;margin-bottom:16px}
  .phead{display:flex;flex-direction:column}
}
@media(max-width:620px){
  .wrap,.secnav .inner,.fswitch .inner{padding-left:18px;padding-right:18px}
  .statband{grid-template-columns:1fr 1fr}
  .statband .st:nth-child(2n){border-right:0}
  .statband .st:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .simgrid{grid-template-columns:1fr 1fr}
  .simgrid a:nth-child(2n){border-right:0}
  .simgrid a:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .phead{padding:22px 18px}
  .drows .r{grid-template-columns:1fr;gap:4px}
  .people{grid-template-columns:1fr}
}

/* footer note bar (shared) */
.note{background:var(--paper2);border-top:1px solid var(--rule)}
.note .wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.note .in{padding:16px 0;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
@media(max-width:640px){.note .wrap{padding:0 16px}}
