:root{
  --ink:#121814;
  --ink-soft:#1B231E;
  --stone:#E8E6DE;
  --bone:#F4F2EA;
  --gold:#B89752;
  --gold-bright:#C9A86A;
  --pine:#2F4A3B;
  --graphite:#2A2E2B;
  --mist:#9AA39C;
  --hairline:rgba(18,24,20,.16);
  --hairline-dark:rgba(232,230,222,.16);
  --max:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:'Source Serif 4',Georgia,serif;
  font-size:17px;line-height:1.65;
  color:var(--graphite);
  background:var(--stone);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.disp{
  font-family:'Archivo',sans-serif;
  font-variation-settings:'wdth' 112;
  letter-spacing:-.01em;
}
.mono{font-family:'IBM Plex Mono',monospace}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
@media(max-width:640px){.wrap{padding:0 20px}}

/* ---------- Nav ---------- */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(18,24,20,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline-dark);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.wordmark{
  font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 125;
  font-weight:700;font-size:15px;letter-spacing:.14em;
  color:var(--bone);text-decoration:none;text-transform:uppercase;
}
.wordmark span{color:var(--gold-bright)}
.nav-links{display:flex;gap:28px;list-style:none}
.nav-links a{
  font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--mist);text-decoration:none;transition:color .18s;
}
.nav-links a:hover{color:var(--gold-bright)}
@media(max-width:820px){.nav-links{display:none}}

/* ---------- Hero ---------- */
header.hero{
  background:var(--ink);color:var(--bone);
  padding:110px 0 90px;position:relative;overflow:hidden;
}
header.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(1100px 500px at 85% -10%, rgba(176,141,62,.13), transparent 60%),
    radial-gradient(800px 420px at -10% 110%, rgba(47,74,59,.35), transparent 55%);
}
.hero-kicker{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-bright);margin-bottom:26px;
}
.hero h1{
  font-size:clamp(38px,6vw,72px);line-height:1.04;font-weight:650;
  max-width:14ch;margin-bottom:30px;color:#F7F5EC;
}
.hero h1 em{
  font-family:'Source Serif 4',serif;font-style:italic;font-weight:400;
  color:var(--gold-bright);
}
.hero p.lede{
  font-size:clamp(17px,2vw,21px);max-width:56ch;color:#C9CDC6;
  font-weight:300;margin-bottom:44px;
}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;position:relative;z-index:1}
.btn{
  display:inline-block;text-decoration:none;
  font-family:'Archivo',sans-serif;font-size:13px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;
  padding:15px 30px;transition:all .18s;
}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-bright)}
.btn-ghost{border:1px solid rgba(232,230,222,.35);color:var(--bone)}
.btn-ghost:hover{border-color:var(--gold-bright);color:var(--gold-bright)}
.hero-meta{
  margin-top:70px;padding-top:26px;border-top:1px solid var(--hairline-dark);
  display:flex;gap:44px;flex-wrap:wrap;position:relative;z-index:1;
}
.hero-meta div{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--mist);letter-spacing:.05em}
.hero-meta strong{display:block;color:var(--bone);font-size:13px;margin-bottom:4px;font-weight:500}
.hero-mark{display:block;margin-bottom:34px;position:relative;z-index:1}
.hm-ring{stroke-dasharray:1;stroke-dashoffset:0;animation:hmDraw 1.5s ease-out both}
.hm-horizon{stroke-dasharray:1;stroke-dashoffset:0;animation:hmDraw 1s ease-out .7s both}
.hm-dot{opacity:1;animation:hmDot .8s ease-out 1.5s both}
@keyframes hmDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes hmDot{from{opacity:0}to{opacity:1}}

/* ---------- Sections ---------- */
section{padding:96px 0}
.sect-head{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr);gap:48px;margin-bottom:64px}
@media(max-width:820px){.sect-head{grid-template-columns:1fr;gap:18px;margin-bottom:44px}}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);
}
.sect-head h2{font-size:clamp(28px,3.6vw,44px);line-height:1.12;font-weight:640;color:var(--ink);margin-top:14px}
.sect-head .intro{font-size:18px;color:#4A4F4A;max-width:60ch;align-self:end}

/* ---------- Model ---------- */
.model-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hairline)}
@media(max-width:960px){.model-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.model-grid{grid-template-columns:1fr}}
.model-cell{padding:34px 26px 40px;border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline)}
.model-cell:last-child{border-right:none}
@media(max-width:960px){.model-cell:nth-child(2n){border-right:none}}
@media(max-width:560px){.model-cell{border-right:none}}
.model-cell .step{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--gold);
  letter-spacing:.14em;display:block;margin-bottom:16px;
}
.model-cell h3{font-size:20px;font-weight:640;color:var(--ink);margin-bottom:10px}
.model-cell p{font-size:15.5px;color:#4A4F4A}

/* ---------- Ledger (signature) ---------- */
.ledger-sect{background:var(--ink);color:var(--bone)}
.ledger-sect .sect-head h2{color:#F7F5EC}
.ledger-sect .sect-head .intro{color:#B7BDB4}
.ledger{width:100%;border-collapse:collapse}
.ledger th{
  font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--mist);
  text-align:left;padding:0 18px 14px;border-bottom:1px solid rgba(201,164,78,.4);
}
.ledger td{
  padding:22px 18px;border-bottom:1px solid var(--hairline-dark);
  vertical-align:top;font-size:15.5px;
}
.ledger .v-no{font-family:'IBM Plex Mono',monospace;color:var(--gold-bright);font-size:13px;white-space:nowrap}
.ledger .v-name{font-family:'Archivo',sans-serif;font-weight:640;font-size:17px;color:#F7F5EC;letter-spacing:.01em}
.ledger .v-name small{display:block;font-weight:400;font-family:'Source Serif 4',serif;font-style:italic;color:var(--mist);font-size:14px;margin-top:4px;letter-spacing:0}
.ledger .v-desc{color:#B7BDB4;max-width:46ch}
.ledger .v-status{white-space:nowrap}
.tag{
  display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;
  border:1px solid rgba(201,164,78,.5);color:var(--gold-bright);
}
.tag.dim{border-color:rgba(154,163,156,.4);color:var(--mist)}
@media(max-width:760px){
  .ledger thead{display:none}
  .ledger,.ledger tbody,.ledger tr,.ledger td{display:block;width:100%}
  .ledger td{padding:8px 0;border:none}
  .ledger tr{border-bottom:1px solid var(--hairline-dark);padding:22px 0}
}
.ledger-note{margin-top:34px;font-size:14px;color:var(--mist);font-style:italic;max-width:70ch}

/* ---------- Practice areas ---------- */
.areas{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
@media(max-width:760px){.areas{grid-template-columns:1fr}}
.area{background:var(--stone);padding:44px 38px}
.area:hover{background:var(--bone)}
.area .eyebrow{color:var(--pine)}
.area h3{font-size:23px;font-weight:640;color:var(--ink);margin:12px 0 14px}
.area p{font-size:15.5px;color:#4A4F4A}
.area ul{margin-top:16px;list-style:none}
.area li{
  font-size:14.5px;color:#4A4F4A;padding:9px 0 9px 22px;position:relative;
  border-top:1px solid var(--hairline);
}
.area li::before{content:"";position:absolute;left:0;top:17px;width:10px;height:1px;background:var(--gold)}

/* ---------- Principles ---------- */
.princ-sect{background:var(--bone)}
.princ-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}
@media(max-width:900px){.princ-grid{grid-template-columns:1fr;gap:36px}}
.princ h3{font-size:19px;font-weight:640;color:var(--ink);margin-bottom:12px;padding-top:18px;border-top:2px solid var(--gold)}
.princ p{font-size:15.5px;color:#4A4F4A}

/* ---------- Founder ---------- */
.founder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:64px;align-items:start}
@media(max-width:820px){.founder-grid{grid-template-columns:1fr;gap:32px}}
.founder-card{
  background:var(--ink);color:var(--bone);padding:40px 34px;
}
.founder-card .role{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-bright)}
.founder-card h3{font-size:26px;margin:12px 0 6px;color:#F7F5EC}
.founder-card p{font-size:14.5px;color:#B7BDB4;margin-top:14px}
.founder-body p{margin-bottom:18px;font-size:17px;color:#3B403B}

/* ---------- Contact ---------- */
.contact-sect{background:var(--ink);color:var(--bone);text-align:center;padding:120px 0}
.contact-sect .eyebrow{color:var(--gold-bright)}
.contact-sect h2{font-size:clamp(30px,4.5vw,54px);color:#F7F5EC;margin:16px auto 22px;max-width:18ch;line-height:1.1}
.contact-sect p{color:#B7BDB4;max-width:52ch;margin:0 auto 40px;font-size:17px}

/* ---------- Footer ---------- */
footer{background:#0C110E;color:var(--mist);padding:44px 0}
.foot-inner{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}
footer .fine{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em}
footer a{color:var(--mist);text-decoration:none}
footer a:hover{color:var(--gold-bright)}

/* reveal on scroll */
.rev{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.rev.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rev{opacity:1;transform:none}}

/* ---------- Inner pages ---------- */
.page-hero{background:var(--ink);color:var(--bone);padding:84px 0 64px;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(900px 400px at 85% -10%, rgba(184,151,82,.12), transparent 60%)}
.page-hero h1{font-size:clamp(32px,5vw,54px);line-height:1.08;font-weight:650;color:#F7F5EC;max-width:18ch;margin-top:14px}
.page-hero p.lede{font-size:18px;max-width:58ch;color:#C9CDC6;font-weight:300;margin-top:20px}
.prose{max-width:70ch}
.prose p{margin-bottom:20px;font-size:17px;color:#3B403B}
.prose h3{font-family:'Archivo',sans-serif;font-variation-settings:'wdth' 112;font-size:22px;color:var(--ink);margin:36px 0 12px}
.detail-block{border-top:2px solid var(--gold);padding-top:22px;margin-top:44px}
