
  :root{
    --paper:#F4F5F7;
    --paper-deep:#E9EBEF;
    --ink:#14181D;
    --ink-mid:#454C56;
    --ink-soft:#68707B;
    --rule:#D3D7DD;
    --accent:#2B4463;
    --accent-tint:#E6EAF0;
    --accent-2:#1F5A57;
    --accent-2-tint:#E2EDEB;
    --shade:#EDEFF2;
    --serif:"Spectral",Georgia,serif;
    --sans:"IBM Plex Sans",system-ui,sans-serif;
    --mono:"IBM Plex Mono",ui-monospace,monospace;
    --gut:clamp(1.4rem,4vw,3.2rem);
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:var(--sans);font-size:17px;line-height:1.65;
    font-feature-settings:"kern";-webkit-font-smoothing:antialiased;
  }
  a{color:inherit;}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

  .wrap{width:100%;max-width:min(94vw,84rem);margin:0 auto;padding:0 var(--gut);}

  /* ---------- masthead ---------- */
  .masthead{border-bottom:1px solid var(--rule);}
  .masthead .wrap{
    display:flex;flex-wrap:wrap;gap:1rem 2rem;
    align-items:baseline;justify-content:space-between;
    padding-top:1.6rem;padding-bottom:1.6rem;
  }
  .mark{
    font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--ink-mid);text-decoration:none;
  }
  .mark b{color:var(--ink);font-weight:500;}
  .nav{display:flex;flex-wrap:wrap;gap:1.4rem;list-style:none;margin:0;padding:0;}
  .nav a{
    font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;
    text-transform:uppercase;color:var(--ink-mid);
    text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;
  }
  .nav a:hover{color:var(--accent);border-bottom-color:var(--accent);}

  /* ---------- per-page section bar ----------
     the master menu above stays identical on every page; this second bar
     carries only the sections of the page you are on, so a page's own
     contents never replace the site navigation. */
  .subnav{border-bottom:1px solid var(--rule);background:var(--paper-deep);}
  .subnav .wrap{padding-top:.75rem;padding-bottom:.75rem;}
  .subnav ul{display:flex;flex-wrap:wrap;gap:.45rem 1.4rem;list-style:none;margin:0;padding:0;}
  .subnav a{
    font-family:var(--mono);font-size:.68rem;letter-spacing:.09em;
    text-transform:uppercase;color:var(--ink-soft);
    text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;
  }
  .subnav a:hover,.subnav a:focus-visible{color:var(--accent-2);border-bottom-color:var(--accent-2);}

  /* on a phone the two bars would otherwise eat close to 40% of the screen
     before any content: tighten both, and let the section bar scroll
     sideways as one row instead of wrapping to three. */
  @media (max-width:720px){
    .masthead .wrap{padding-top:1rem;padding-bottom:1rem;gap:.7rem 1rem;}
    .nav{gap:.5rem 1rem;}
    .nav a{font-size:.68rem;letter-spacing:.06em;}
    .subnav .wrap{padding-top:.5rem;padding-bottom:.5rem;}
    .subnav ul{
      flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
      scrollbar-width:none;gap:1.1rem;
    }
    .subnav ul::-webkit-scrollbar{display:none;}
    .subnav li{flex:0 0 auto;}
  }

  /* ---------- front matter ---------- */
  .front{padding:5.5rem 0 4.5rem;}
  .rise{opacity:0;transform:translateY(10px);animation:rise .7s cubic-bezier(.2,.7,.3,1) forwards;}
  .rise:nth-child(2){animation-delay:.08s}
  .rise:nth-child(3){animation-delay:.16s}
  .rise:nth-child(4){animation-delay:.24s}
  @keyframes rise{to{opacity:1;transform:none;}}

  .front h1{
    font-family:var(--serif);font-weight:400;
    font-size:clamp(2.7rem,7vw,4.6rem);line-height:1.02;
    letter-spacing:-.022em;margin:0 0 1.1rem;
  }
  .standfirst{
    font-family:var(--serif);font-style:italic;font-weight:300;
    font-size:clamp(1.15rem,2.4vw,1.4rem);line-height:1.5;
    color:var(--ink-mid);margin:0 0 2.2rem;max-width:44ch;
  }
  .keywords{
    display:flex;flex-wrap:wrap;gap:.5rem .9rem;
    margin:0 0 2.4rem;padding:1rem 0;
    border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
    font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;
    text-transform:uppercase;color:var(--ink-soft);
  }
  .keywords span::after{content:"";}
  .abstract{max-width:64ch;font-size:1.06rem;}
  .abstract p{margin:0 0 1.1rem;}
  .abstract p:last-child{margin-bottom:0;}


  /* ---------- front matter grid + portrait plate ---------- */
  .front-grid{display:grid;grid-template-columns:minmax(0,1fr) 14rem;gap:0 3.5rem;align-items:start;}
  /* the text column is its own container, so the headline can be sized from it */
  .front-grid>div:first-child{container-type:inline-size;width:100%;}
  .plate{margin:.6rem 0 0;padding:0;}
  .plate img{
    display:block;width:100%;height:auto;
    border:1px solid var(--rule);
    filter:saturate(.92);
  }
  .plate figcaption{
    font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;
    text-transform:uppercase;color:var(--ink-soft);
    margin-top:.7rem;line-height:1.5;
  }
  @media (max-width:720px){
    .front-grid{display:flex;flex-direction:column;}
    .plate{order:-1;max-width:9.5rem;margin:0 0 1.8rem;}
  }

  /* ---------- generic record row ---------- */
  .band{border-top:1px solid var(--rule);padding:4.2rem 0;}
  .record{display:grid;grid-template-columns:9rem 1fr;gap:0 3rem;}
  .stamp{
    font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;
    text-transform:uppercase;color:var(--ink-soft);padding-top:.45rem;
  }
  h2{
    font-family:var(--serif);font-weight:400;font-size:1.9rem;
    letter-spacing:-.01em;line-height:1.2;margin:0 0 1.6rem;
  }
  .lede{max-width:62ch;color:var(--ink-mid);margin:0 0 2rem;}

  /* ---------- practice index ---------- */
  .index{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);}
  .index li{border-bottom:1px solid var(--rule);}
  .index a{
    display:block;padding:1.5rem 1rem 1.5rem 0;text-decoration:none;
    position:relative;transition:padding-left .25s ease,background-color .25s ease;
  }
  .index a::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
    background:var(--accent);transform:scaleY(0);transform-origin:top;
    transition:transform .25s ease;
  }
  .index a:hover,.index a:focus-visible{padding-left:1.1rem;background:var(--paper-deep);}
  .index a:hover::before,.index a:focus-visible::before{transform:scaleY(1);}
  .index h3{
    font-family:var(--serif);font-weight:400;font-size:1.35rem;
    margin:0 0 .35rem;letter-spacing:-.005em;
  }
  .index p{margin:0;color:var(--ink-mid);font-size:.97rem;max-width:58ch;}

  /* ---------- credentials ---------- */
  .facts{list-style:none;margin:0;padding:0;}
  .facts li{
    display:grid;grid-template-columns:5.5rem 1fr;gap:1.4rem;
    padding:.8rem 0;border-bottom:1px solid var(--rule);align-items:baseline;
  }
  .facts li:first-child{border-top:1px solid var(--rule);}
  .yr{font-family:var(--mono);font-size:.78rem;color:var(--accent);letter-spacing:.02em;}
  .facts strong{font-weight:600;}
  .facts em{font-style:normal;color:var(--ink-mid);display:block;font-size:.94rem;}


  /* ---------- verifiable credential rows ---------- */
  .verify{list-style:none;margin:0 0 1.6rem;padding:0;}
  .verify li{border-bottom:1px solid var(--rule);}
  .verify li:first-child{border-top:1px solid var(--rule);}
  .verify .row{
    display:grid;grid-template-columns:5.5rem 1fr 1.3rem;gap:1.4rem;
    align-items:baseline;padding:.85rem 0;text-decoration:none;color:inherit;
  }
  a.row{transition:background-color .2s ease,padding .2s ease;}
  a.row:hover,a.row:focus-visible{background:var(--paper-deep);padding-left:.7rem;padding-right:.7rem;}
  a.row:hover .arw{color:var(--accent);transform:translate(2px,-2px);}
  .verify strong{font-weight:600;display:block;}
  .verify em{font-style:normal;color:var(--ink-mid);display:block;font-size:.94rem;}
  .arw{
    font-family:var(--mono);font-size:.8rem;color:var(--ink-soft);
    transition:transform .2s ease,color .2s ease;justify-self:end;
  }
  .srcnote{
    font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;
    text-transform:uppercase;color:var(--ink-soft);margin:0 0 2.4rem;
  }
  h3.sub{
    font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;
    text-transform:uppercase;color:var(--ink);font-weight:500;
    margin:2.8rem 0 1.1rem;
  }
  .assoc{margin:0;padding:0;list-style:none;columns:2;column-gap:2.5rem;}
  .assoc li{
    break-inside:avoid;padding:.4rem 0;font-size:.96rem;
    color:var(--ink-mid);border-bottom:1px solid var(--rule);
  }
  @media (max-width:720px){
    .verify .row{grid-template-columns:1fr 1.3rem;gap:.15rem 1rem;}
    .verify .yr{grid-column:1/-1;}
    .assoc{columns:1;}
  }

  /* ---------- references ---------- */
  .refs{list-style:none;margin:0 0 2rem;padding:0;font-family:var(--serif);}
  .refs li{
    padding-left:2.2rem;text-indent:-2.2rem;
    margin-bottom:1.05rem;line-height:1.55;font-size:1.02rem;
  }
  .refs em{font-style:italic;}
  .more{
    display:inline-block;font-family:var(--mono);font-size:.74rem;
    letter-spacing:.1em;text-transform:uppercase;color:var(--accent);
    text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px;
    margin-right:1.8rem;
  }
  .more:hover{background:var(--accent-tint);}

  /* ---------- contact ---------- */
  .contact-mail{
    font-family:var(--serif);font-size:clamp(1.3rem,3.4vw,2rem);
    text-decoration:none;border-bottom:1px solid var(--rule);
    display:inline-block;padding-bottom:.15rem;transition:border-color .2s;
  }
  .contact-mail:hover{border-bottom-color:var(--accent);color:var(--accent);}
  .note{
    margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--rule);
    font-size:.9rem;color:var(--ink-soft);max-width:60ch;
  }

  /* ---------- footer ---------- */
  footer{border-top:1px solid var(--rule);padding:2.2rem 0 3.5rem;}
  footer .wrap{
    display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between;
    font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-soft);
  }

  @media (max-width:720px){
    :root{--gut:1.4rem;}
    .front{padding:3.4rem 0 3rem;}
    .band{padding:3rem 0;}
    .record{grid-template-columns:1fr;gap:.9rem;}
    .stamp{padding-top:0;}
    .facts li{grid-template-columns:1fr;gap:.15rem;}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important;}
    .rise{opacity:1;transform:none;}
  }

  /* ---------- homepage additions ---------- */
  a.inline{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);}
  a.inline:hover{background:var(--accent-tint);}
  .nav a.on{color:var(--accent);border-bottom-color:var(--accent);}
  .index .pa{
    display:grid;grid-template-columns:1fr auto;gap:.3rem 2rem;align-items:baseline;
  }
  .index .arw2{
    font-family:var(--mono);font-size:.8rem;color:var(--ink-soft);
    transition:transform .2s ease,color .2s ease;
  }
  .index a:hover .arw2{color:var(--accent);transform:translate(2px,-2px);}
  .cta{
    display:flex;flex-wrap:wrap;gap:1rem 1.6rem;align-items:center;
    margin-top:1.8rem;
  }
  .btn{
    font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
    color:var(--paper);background:var(--ink);border:1px solid var(--ink);
    padding:.8rem 1.5rem;text-decoration:none;
    transition:background-color .2s ease,border-color .2s ease;
  }
  .btn:hover{background:var(--accent);border-color:var(--accent);}
  .btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule);}
  .btn.ghost:hover{color:var(--accent);border-color:var(--accent);background:transparent;}
  @media (max-width:720px){ .index .pa{grid-template-columns:1fr;} }

/* ---------- legal page additions ---------- */
  .eyebrow{
    font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem;
  }
  .domains{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);}
  .domains li{
    padding:1.15rem 0;border-bottom:1px solid var(--rule);
    display:grid;grid-template-columns:15rem 1fr;gap:0 2.5rem;align-items:baseline;
  }
  .domains strong{
    font-family:var(--serif);font-weight:400;font-size:1.12rem;
    letter-spacing:-.005em;line-height:1.3;
  }
  .domains em{font-style:normal;color:var(--ink-mid);font-size:.96rem;}
  .idx-static{display:block;padding:1.5rem 0;}
  .idx-static h3{
    font-family:var(--serif);font-weight:400;font-size:1.28rem;
    margin:0 0 .35rem;letter-spacing:-.005em;
  }
  .idx-static p{margin:0;color:var(--ink-mid);font-size:.97rem;max-width:60ch;}
  .lede.small{font-size:.95rem;max-width:66ch;}
  .cap{font-style:italic;}
  .abstract strong{font-weight:600;}
  a.inline{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);}
  a.inline:hover{background:var(--accent-tint);}
  .warn{
    border-left:2px solid var(--accent);background:var(--accent-tint);
    padding:1rem 1.2rem;margin:0 0 2.2rem;max-width:62ch;
    font-size:.95rem;line-height:1.6;
  }
  .warn strong{font-weight:600;}

  /* role chip — the capacity in which each matter was performed */
  .role{
    display:inline-block;font-family:var(--mono);font-size:.6rem;
    letter-spacing:.13em;text-transform:uppercase;color:var(--accent);
    border:1px solid var(--rule);background:var(--paper);
    padding:.22rem .5rem;margin:0 0 .55rem;line-height:1.4;
  }
  .verify .row > span > strong{margin-bottom:.15rem;}
  #experience .verify{margin-bottom:.4rem;}
  #experience h3.sub{margin-top:2.6rem;}
  #experience h3.sub:first-of-type{margin-top:1.4rem;}

  @media (max-width:720px){
    .domains li{grid-template-columns:1fr;gap:.3rem;}
  }

/* ---------- shared page additions ---------- */

  .eyebrow{
    font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem;
  }
  .domains{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);}
  .domains li{
    padding:1.15rem 0;border-bottom:1px solid var(--rule);
    display:grid;grid-template-columns:15rem 1fr;gap:0 2.5rem;align-items:baseline;
  }
  .domains strong{
    font-family:var(--serif);font-weight:400;font-size:1.12rem;
    letter-spacing:-.005em;line-height:1.3;
  }
  .domains em{font-style:normal;color:var(--ink-mid);font-size:.96rem;}
  .idx-static{display:block;padding:1.5rem 0;}
  .idx-static h3{
    font-family:var(--serif);font-weight:400;font-size:1.28rem;
    margin:0 0 .35rem;letter-spacing:-.005em;
  }
  .idx-static p{margin:0;color:var(--ink-mid);font-size:.97rem;max-width:60ch;}
  .lede.small{font-size:.95rem;max-width:66ch;}
  .cap{font-style:italic;}
  .abstract strong{font-weight:600;}
  a.inline{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);}
  a.inline:hover{background:var(--accent-tint);}
  .warn{
    border-left:2px solid var(--accent);background:var(--accent-tint);
    padding:1rem 1.2rem;margin:0 0 2.2rem;max-width:62ch;
    font-size:.95rem;line-height:1.6;
  }
  .warn strong{font-weight:600;}

  /* role chip — the capacity in which each matter was performed */
  .role{
    display:inline-block;font-family:var(--mono);font-size:.6rem;
    letter-spacing:.13em;text-transform:uppercase;color:var(--accent);
    border:1px solid var(--rule);background:var(--paper);
    padding:.22rem .5rem;margin:0 0 .55rem;line-height:1.4;
  }
  .verify .row > span > strong{margin-bottom:.15rem;}
  #experience .verify{margin-bottom:.4rem;}
  #experience h3.sub{margin-top:2.6rem;}
  #experience h3.sub:first-of-type{margin-top:1.4rem;}

  @media (max-width:720px){
    .domains li{grid-template-columns:1fr;gap:.3rem;}
  }

/* ---------- research page ---------- */
  .eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem;}
  a.inline{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);}
  a.inline:hover{background:var(--accent-tint);}
  .domains{list-style:none;margin:0 0 1rem;padding:0;border-top:1px solid var(--rule);}
  .domains li{padding:1.05rem 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:14rem 1fr;gap:0 2.4rem;align-items:baseline;}
  .domains strong{font-family:var(--serif);font-weight:400;font-size:1.1rem;line-height:1.3;}
  .domains em{font-style:normal;color:var(--ink-mid);font-size:.95rem;}
  .lede.small{font-size:.95rem;max-width:66ch;}
  .verify{list-style:none;margin:0 0 1.4rem;padding:0;}
  .verify li{border-bottom:1px solid var(--rule);}
  .verify li:first-child{border-top:1px solid var(--rule);}
  .verify .row{display:grid;grid-template-columns:5.5rem 1fr;gap:1.4rem;align-items:baseline;padding:.9rem 0;}
  .verify strong{font-weight:600;display:block;}
  .verify em{font-style:normal;color:var(--ink-mid);display:block;font-size:.94rem;}
  .note-box{border-left:2px solid var(--rule);padding-left:1.1rem;margin:0 0 1.6rem;font-size:.93rem;color:var(--ink-mid);max-width:60ch;}
  .cta{display:flex;flex-wrap:wrap;gap:1rem 1.4rem;align-items:center;margin-top:1.6rem;}
  .btn{font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:.8rem 1.5rem;text-decoration:none;}
  .btn:hover{background:var(--accent);border-color:var(--accent);}
  .btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule);}
  .btn.ghost:hover{color:var(--accent);border-color:var(--accent);}
  @media (max-width:720px){.domains li{grid-template-columns:1fr;gap:.3rem;} .verify .row{grid-template-columns:1fr;gap:.15rem;}}

/* ---------- rate schedule page ---------- */
  .eyebrow{
    font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem;
  }
  .statement{
    font-family:var(--serif);font-size:clamp(1.05rem,2.2vw,1.22rem);
    line-height:1.55;max-width:52ch;margin:2.2rem 0 0;
    padding:1.15rem 0 0;border-top:2px solid var(--accent);
  }
  .lede.small{font-size:.95rem;max-width:64ch;}

  .rates{list-style:none;margin:0 0 1.8rem;padding:0;border-top:1px solid var(--rule);}
  .rates li{
    display:grid;grid-template-columns:1fr auto;gap:.4rem 2.5rem;
    padding:1.05rem 0;border-bottom:1px solid var(--rule);align-items:baseline;
  }
  .rates strong{font-weight:600;display:block;font-size:1rem;}
  .rates em{
    font-style:normal;display:block;color:var(--ink-soft);
    font-size:.89rem;margin-top:.15rem;max-width:46ch;
  }
  .fig{
    font-family:var(--mono);font-size:1.02rem;color:var(--accent);
    text-align:right;white-space:nowrap;font-weight:500;
  }
  .fig i{
    font-style:normal;display:block;font-size:.68rem;
    letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);
    margin-top:.2rem;font-weight:400;
  }

  .defs{margin:0 0 1.6rem;padding:0;max-width:64ch;}
  .defs dt{
    font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;
    text-transform:uppercase;color:var(--ink);margin:1.2rem 0 .3rem;font-weight:500;
  }
  .defs dt:first-child{margin-top:0;}
  .defs dd{margin:0;color:var(--ink-mid);font-size:.95rem;line-height:1.6;}
  .defs.wide dd{padding-bottom:1rem;border-bottom:1px solid var(--rule);}
  .defs.wide dd:last-child{border-bottom:none;}

  .rationale{
    font-size:.93rem;color:var(--ink-mid);max-width:58ch;
    border-left:2px solid var(--rule);padding-left:1.1rem;margin:0 0 1.4rem;
  }
  .terms-list{margin:0 0 1.6rem;padding:0;list-style:none;max-width:60ch;}
  .terms-list li{
    padding:.5rem 0 .5rem 1.1rem;border-bottom:1px solid var(--rule);
    font-size:.94rem;color:var(--ink-mid);position:relative;
  }
  .terms-list.plain{border-top:1px solid var(--rule);}
  .terms-list li::before{
    content:"";position:absolute;left:0;top:1.15em;
    width:4px;height:1px;background:var(--accent);
  }
  .more{margin-top:.6rem;}

  @media (max-width:720px){
    .rates li{grid-template-columns:1fr;gap:.35rem;}
    .fig{text-align:left;}
    .fig i{display:inline;margin-left:.4rem;}
  }

  /* rate matrix */
  .matrix{margin:0 0 1.8rem;border-top:1px solid var(--rule);}
  .mhead,.mrow{
    display:grid;grid-template-columns:1fr 8.5rem 8.5rem;gap:1rem 1.5rem;
    padding:.85rem 0;border-bottom:1px solid var(--rule);align-items:baseline;
  }
  .mhead{
    font-family:var(--mono);font-size:.63rem;letter-spacing:.11em;
    text-transform:uppercase;color:var(--ink-soft);padding-top:.6rem;padding-bottom:.6rem;
  }
  .mhead span:not(:first-child){text-align:right;}
  .mlab{font-weight:600;font-size:.96rem;line-height:1.35;}
  .mfig{
    font-family:var(--mono);font-size:.98rem;color:var(--accent);
    text-align:right;white-space:nowrap;font-weight:500;
  }
  .mfig i{
    font-style:normal;display:block;font-size:.62rem;letter-spacing:.09em;
    text-transform:uppercase;color:var(--ink-soft);margin-top:.18rem;font-weight:400;
  }
  @media (max-width:720px){
    .mhead{display:none;}
    .mrow{grid-template-columns:1fr;gap:.4rem;padding:1rem 0;}
    .mlab br{display:none;}
    .mfig{text-align:left;}
    .mfig i{display:inline;margin-left:.4rem;}
    .mfig:nth-child(2)::before{content:"First 6 hrs — ";font-family:var(--sans);font-size:.8rem;color:var(--ink-soft);}
    .mfig:nth-child(3)::before{content:"Beyond 6 hrs — ";font-family:var(--sans);font-size:.8rem;color:var(--ink-soft);}
  }

  .matrix .mhead,.matrix .mrow{grid-template-columns:1fr 6.6rem 6.6rem 6.6rem;}
  @media (max-width:760px){
    .matrix .mhead{display:none;}
    .matrix .mrow{grid-template-columns:1fr;gap:.35rem;}
    .mfig:nth-child(2)::before{content:"Standby: ";}
    .mfig:nth-child(3)::before{content:"On record: ";}
    .mfig:nth-child(4)::before{content:"Beyond 6 h: ";}
    .mfig::before{font-family:var(--sans);font-size:.8rem;color:var(--ink-soft);}
  }

/* ---------- engagement page ---------- */
  .eyebrow{
    font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem;
  }
  a.inline{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);}
  a.inline:hover{background:var(--accent-tint);}
  .warn{
    border-left:2px solid var(--accent);background:var(--accent-tint);
    padding:1rem 1.2rem;margin:0 0 2.2rem;max-width:62ch;
    font-size:.95rem;line-height:1.6;
  }
  .warn strong{font-weight:600;}

  /* numbered sequence with connecting rule */
  .steps{list-style:none;margin:0;padding:0;counter-reset:none;}
  .steps > li{
    display:grid;grid-template-columns:4.5rem 1fr;gap:0 2.2rem;
    padding:0 0 3.2rem;position:relative;
  }
  .steps > li::before{
    content:"";position:absolute;left:1.05rem;top:2.1rem;bottom:0;
    width:1px;background:var(--rule);
  }
  .steps > li:last-child{padding-bottom:0;}
  .steps > li:last-child::before{display:none;}
  .num{
    font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;
    color:var(--accent);background:var(--paper);
    border:1px solid var(--rule);width:2.15rem;height:2.15rem;
    display:flex;align-items:center;justify-content:center;
    position:relative;z-index:1;
  }
  .steps h3{
    font-family:var(--serif);font-weight:400;font-size:1.42rem;
    margin:.15rem 0 .7rem;letter-spacing:-.008em;line-height:1.25;
  }
  .steps p{margin:0 0 .9rem;max-width:60ch;color:var(--ink-mid);}
  .steps p strong{color:var(--ink);font-weight:600;}
  .postscript{font-size:.93rem;}

  /* consultation fee pairs */
  .fees{margin:1.4rem 0 1.2rem;padding:0;border-top:1px solid var(--rule);max-width:52ch;}
  .fees > div{
    display:grid;grid-template-columns:1fr auto;gap:.3rem 1.6rem;
    padding:.9rem 0;border-bottom:1px solid var(--rule);align-items:baseline;
  }
  .fees dt{font-weight:600;font-size:.95rem;}
  .fees dd{
    margin:0;font-family:var(--mono);font-size:.85rem;color:var(--accent);
    text-align:right;white-space:nowrap;
  }
  .fine{
    display:block;grid-column:1/-1;font-family:var(--sans);
    font-size:.85rem;color:var(--ink-soft);text-align:left;
    white-space:normal;margin-top:.15rem;
  }
  .terms-list{margin:0 0 1rem;padding:0;list-style:none;max-width:54ch;}
  .terms-list li{
    padding:.42rem 0 .42rem 1.1rem;border-bottom:1px solid var(--rule);
    font-size:.94rem;color:var(--ink-mid);position:relative;
  }
  .terms-list li::before{
    content:"";position:absolute;left:0;top:1.05em;
    width:4px;height:1px;background:var(--accent);
  }

  @media (max-width:720px){
    .steps > li{grid-template-columns:2.6rem 1fr;gap:0 1.1rem;}
    .steps > li::before{left:1.05rem;}
    .fees > div{grid-template-columns:1fr;}
    .fees dd{text-align:left;}
  }

  
/* ---------- inquiry form ---------- */
  #inquiry{max-width:44rem;}
  .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem;}
  .field{margin:0 0 1.3rem;}
  .field.wide{max-width:100%;}
  .field label{
    display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.11em;
    text-transform:uppercase;color:var(--ink-mid);margin-bottom:.4rem;font-weight:500;
  }
  .field label b{color:var(--accent);font-weight:500;}
  .hint{
    font-family:var(--sans);text-transform:none;letter-spacing:0;
    font-size:.8rem;color:var(--ink-soft);margin-left:.5rem;
  }
  .field input,.field select,.field textarea{
    width:100%;font-family:var(--sans);font-size:.97rem;color:var(--ink);
    background:var(--paper);border:1px solid var(--rule);border-radius:0;
    padding:.6rem .7rem;transition:border-color .18s ease,background-color .18s ease;
  }
  .field textarea{resize:vertical;line-height:1.6;}
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;border-color:var(--accent);background:#fff;
    box-shadow:inset 0 -2px 0 var(--accent);
  }
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
  .cf-turnstile{margin:.4rem 0 1.4rem;}
  .frow{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;}
  #inquiry button{
    font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
    color:var(--paper);background:var(--ink);border:1px solid var(--ink);
    padding:.8rem 1.6rem;cursor:pointer;transition:background-color .2s ease,border-color .2s ease;
  }
  #inquiry button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);}
  #inquiry button:disabled{opacity:.5;cursor:default;}
  #f-status{font-size:.9rem;}
  #f-status.bad{color:var(--accent);}
  .fnote{font-size:.82rem;color:var(--ink-soft);margin:1.4rem 0 0;max-width:48ch;}
  .sent{
    font-family:var(--serif);font-size:1.1rem;line-height:1.6;
    border-left:2px solid var(--accent);padding:.6rem 0 .6rem 1.2rem;margin:0;max-width:52ch;
  }
  @media (max-width:640px){ .fgrid{grid-template-columns:1fr;} }

/* ---------- gated document page ---------- */
  .eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem;}
  .gate{max-width:38rem;}
  .step{display:grid;grid-template-columns:2.4rem 1fr;gap:0 1.4rem;padding:0 0 1.6rem;position:relative;}
  .step::before{content:"";position:absolute;left:.95rem;top:1.9rem;bottom:0;width:1px;background:var(--rule);}
  .step:last-of-type{padding-bottom:0;}
  .step:last-of-type::before{display:none;}
  .stepn{font-family:var(--mono);font-size:.7rem;color:var(--accent);background:var(--paper);border:1px solid var(--rule);width:1.95rem;height:1.95rem;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;}
  .step h3{font-family:var(--serif);font-weight:400;font-size:1.15rem;margin:.2rem 0 .3rem;}
  .step p{margin:0;color:var(--ink-mid);font-size:.94rem;max-width:52ch;}
  .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.6rem;}
  .field{margin:0 0 1.2rem;}
  .field label{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-mid);margin-bottom:.4rem;font-weight:500;}
  .field label b{color:var(--accent);font-weight:500;}
  .field input,.field textarea{width:100%;font-family:var(--sans);font-size:.97rem;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:0;padding:.6rem .7rem;}
  .field textarea{resize:vertical;line-height:1.6;}
  .field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:inset 0 -2px 0 var(--accent);}
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
  .cf-turnstile{margin:.4rem 0 1.2rem;}
  .btnrow{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.3rem;}
  button.act{font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:.8rem 1.5rem;cursor:pointer;}
  button.act:hover:not(:disabled){background:var(--accent);border-color:var(--accent);}
  button.act:disabled{opacity:.5;cursor:default;}
  .msg{font-size:.9rem;}
  .msg.bad{color:var(--accent);}
  .code-in{font-family:var(--mono)!important;font-size:1.35rem!important;letter-spacing:.42em;text-align:center;max-width:11rem;}
  .done{font-family:var(--serif);font-size:1.12rem;line-height:1.6;border-left:2px solid var(--accent);padding:.6rem 0 .6rem 1.2rem;margin:0 0 1.4rem;max-width:50ch;}
  .panel{border-top:1px solid var(--rule);padding-top:2rem;margin-top:2rem;}
  .panel.off{opacity:.38;pointer-events:none;}
  @media (max-width:640px){.fgrid{grid-template-columns:1fr;}}

  /* ---------- about essay ---------- */
  .essay{max-width:38rem;}
  .essay p{font-size:1.05rem;line-height:1.72;margin:0 0 1.25rem;}
  .essay p:first-child{font-size:1.16rem;}
  .essay p:last-child{margin-bottom:0;}
  footer a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule);}
  footer a:hover{color:var(--accent);border-bottom-color:var(--accent);}

  /* ---------- publications ---------- */
  .pubs{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule);}
  .pubs li{
    display:grid;grid-template-columns:4rem 1fr;gap:0 1.6rem;
    padding:.95rem 0;border-bottom:1px solid var(--rule);
    font-family:var(--serif);font-size:1rem;line-height:1.55;align-items:baseline;
  }
  .pubs .yr{font-family:var(--mono);font-size:.76rem;color:var(--accent);}
  .pubs em{font-style:italic;color:var(--ink-mid);}
  @media (max-width:720px){.pubs li{grid-template-columns:1fr;gap:.25rem;}}

  /* ---------- practice columns ---------- */
  .index.cols{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--rule);border-bottom:none;}
  .index.cols li{border-bottom:none;border-right:1px solid var(--rule);}
  .index.cols li:last-child{border-right:none;}
  .index.cols a{padding:1.5rem 1.2rem 1.6rem;height:100%;}
  .index.cols a::before{top:0;bottom:auto;left:0;right:0;width:auto;height:2px;transform:scaleX(0);transform-origin:left;}
  .index.cols a:hover,.index.cols a:focus-visible{padding-left:1.2rem;}
  .index.cols a:hover::before,.index.cols a:focus-visible::before{transform:scaleX(1);}
  .index.cols h3{font-size:1.14rem;line-height:1.25;}
  .index.cols p{font-size:.89rem;}
  .index.cols .arw2{display:none;}
  @media (max-width:900px){
    .index.cols{grid-template-columns:repeat(2,1fr);}
    .index.cols li{border-bottom:1px solid var(--rule);}
    .index.cols li:nth-child(2n){border-right:none;}
  }
  @media (max-width:560px){
    .index.cols{grid-template-columns:1fr;}
    .index.cols li{border-right:none;}
  }

  /* ---------- inline aside note ---------- */
  .aside{
    font-family:var(--serif);font-style:italic;font-size:.94rem;line-height:1.65;
    color:var(--ink-soft);max-width:none;margin:0 0 1.8rem;
    border-left:1px solid var(--rule);padding-left:1.1rem;
  }

  /* ---------- step checklist ---------- */
  .checks{list-style:none;margin:0 0 .9rem;padding:0;max-width:52ch;}
  .checks li{
    position:relative;padding:.36rem 0 .36rem 1.5rem;
    color:var(--ink-mid);font-size:.95rem;
  }
  .checks li::before{
    content:"";position:absolute;left:0;top:.95em;
    width:8px;height:1px;background:var(--accent);
  }


  /* ================= wide layout, rhythm and motion ================= */

  /* alternating section shade gives the page a pulse */
  .band:nth-of-type(even){background:var(--shade);}
  .band{border-top:1px solid var(--rule);}

  /* the stamp column earns more room on wide screens and turns sticky */
  @media (min-width:1100px){
    .record{grid-template-columns:13rem 1fr;gap:0 5rem;}
    .stamp{position:sticky;top:2.2rem;font-size:.74rem;}
    .stamp::after{content:"";display:block;width:2rem;height:1px;background:var(--accent-2);margin-top:.7rem;}
  }
  @media (min-width:1500px){ .record{grid-template-columns:16rem 1fr;gap:0 7rem;} }

  /* display type scales with the viewport */
  .front h1{font-size:clamp(2.7rem,6.4vw,6.2rem);}
  h2{font-size:clamp(1.75rem,2.4vw,2.35rem);}
  .standfirst{font-size:clamp(1.15rem,1.9vw,1.6rem);max-width:34ch;}
  .front{padding:clamp(3.4rem,8vw,7rem) 0 clamp(3rem,5vw,4.5rem);}
  .band{padding:clamp(3rem,5.5vw,5rem) 0;}

  /* front matter sits wider and the portrait grows */
  @media (min-width:1100px){
    .front-grid{grid-template-columns:minmax(0,1fr) 19rem;gap:0 5rem;}
    .abstract{font-size:1.12rem;}
  }

  /* the secondary accent, used only for structural marks */
  .eyebrow{color:var(--accent-2);}
  .keywords{border-color:var(--rule);}
  .keywords span{position:relative;padding-left:.85rem;}
  .keywords span::before{content:"";position:absolute;left:0;top:.52em;width:4px;height:4px;background:var(--accent-2);}
  h3.sub{color:var(--accent-2);}
  h3.sub::before{content:"";display:inline-block;width:1.3rem;height:1px;background:var(--accent-2);vertical-align:middle;margin-right:.6rem;}

  /* publications and facts use the width */
  @media (min-width:1200px){
    .pubs{columns:2;column-gap:3.5rem;}
    .pubs li{break-inside:avoid;display:block;}
    .pubs .yr{display:inline-block;margin-right:.7rem;}
    .facts li{grid-template-columns:7rem 1fr;}
    .domains li{grid-template-columns:19rem 1fr;gap:0 3.2rem;}
    .essay{max-width:44rem;}
    .essay p{font-size:1.12rem;}
  }

  /* practice cards get presence */
  .index.cols a{transition:background-color .3s ease,transform .3s ease;}
  .index.cols a:hover{background:var(--paper);transform:translateY(-3px);}
  .index.cols a::before{height:3px;}

  /* rate rows respond on hover so the table feels alive */
  .rates li,.mrow,.verify li,.pubs li{transition:background-color .2s ease;}
  .rates li:hover,.mrow:hover,.pubs li:hover{background:var(--accent-2-tint);}

  /* scroll reveal */
  .reveal{opacity:0;transform:translateY(14px);}
  .reveal.in{opacity:1;transform:none;transition:opacity .65s cubic-bezier(.2,.7,.3,1),transform .65s cubic-bezier(.2,.7,.3,1);}
  .reveal.in.d1{transition-delay:.06s} .reveal.in.d2{transition-delay:.12s} .reveal.in.d3{transition-delay:.18s}

  /* a hairline rule that draws itself under each section heading */
  .band h2{position:relative;padding-bottom:.7rem;}
  .band h2::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .8s cubic-bezier(.2,.7,.3,1) .15s;}
  .reveal.in h2::after,.band h2.drawn::after{width:3.5rem;}

  @media (prefers-reduced-motion:reduce){
    .reveal,.reveal.in{opacity:1;transform:none;transition:none;}
    .band h2::after{width:3.5rem;transition:none;}
    .index.cols a:hover{transform:none;}
  }

  /* ---------- one-line name ---------- */
  h1.nowrap{white-space:nowrap;font-size:min(7.6vw,7rem);line-height:1.05;}
  /* sized from the text column, not the viewport, so a long name can never
     push the portrait out of the grid. browsers without container-query units
     fall back to the vw rule above. */
  h1.nowrap{font-size:min(10cqw,7rem);}

  /* ---------- footer note ---------- */
  footer .frow-main{display:flex;flex-wrap:wrap;gap:.8rem 2rem;justify-content:space-between;}
  .fnote-legal{
    font-family:var(--serif);font-style:italic;font-size:.82rem;line-height:1.6;
    color:var(--ink-soft);max-width:78ch;margin:1.1rem 0 0;
    padding-top:1rem;border-top:1px solid var(--rule);text-transform:none;letter-spacing:0;
  }

  /* ---------- site search ---------- */
  .srch-open{
    font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--ink-mid);background:transparent;border:none;border-bottom:1px solid transparent;
    padding:0 0 2px;cursor:pointer;
  }
  .srch-open::before{content:"\2315\00a0";}
  .srch-open:hover{color:var(--accent);border-bottom-color:var(--accent);}
  .srch{position:fixed;inset:0;z-index:300;background:rgba(20,24,29,.5);display:none;padding:6vh 1.2rem 2rem;}
  .srch.on{display:block;}
  .srch-card{
    background:var(--paper);max-width:44rem;margin:0 auto;max-height:82vh;
    display:flex;flex-direction:column;border:1px solid var(--rule);
  }
  #srch-q{
    font-family:var(--serif);font-size:1.35rem;padding:1.1rem 1.3rem;border:none;
    border-bottom:1px solid var(--rule);background:transparent;color:var(--ink);width:100%;
  }
  #srch-q:focus{outline:none;box-shadow:inset 0 -2px 0 var(--accent);}
  .srch-note{
    font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--ink-soft);margin:0;padding:.7rem 1.3rem;border-bottom:1px solid var(--rule);
  }
  .srch-res{overflow:auto;}
  .srch-hit{display:block;padding:.85rem 1.3rem;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;}
  .srch-hit:hover{background:var(--accent-2-tint);}
  .srch-loc{
    display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.11em;
    text-transform:uppercase;color:var(--accent-2);margin-bottom:.25rem;
  }
  .srch-txt{display:block;font-size:.93rem;line-height:1.55;color:var(--ink-mid);}
  .srch-txt b{color:var(--ink);background:var(--accent-tint);font-weight:600;}

  /* ---------- last updated ---------- */
  .updated{
    font-family:var(--mono);font-size:.66rem;letter-spacing:.09em;
    text-transform:uppercase;color:var(--ink-soft);
    margin:1rem 0 0;text-align:left;
  }
  .updated time{color:var(--ink-mid);}
