/* =============================================================================
   Grand Canal Capital Partners, website round 4
   One serif for the words (Gambetta, derived from the classical capitals of the
   firm's wordmark), one grotesque for the apparatus (Switzer: navigation, forms,
   tables, captions). Navy and warm paper from the firm's document system, at
   full commitment. No mono, no tracked labels, no theme toggle, no decorative
   rules, no icons in buttons. The page reads with JavaScript off and with
   motion reduced. Nothing here needs a framework or a build step.
   ============================================================================= */

/* ---------- fonts (self-hosted, licensed via Fontshare) ---------- */
@font-face{font-family:"Gambetta";font-weight:300;font-style:normal;font-display:swap;src:url("../fonts/gambetta-300.woff2") format("woff2")}
@font-face{font-family:"Gambetta";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/gambetta-400.woff2") format("woff2")}
@font-face{font-family:"Gambetta";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/gambetta-500.woff2") format("woff2")}
@font-face{font-family:"Gambetta";font-weight:700;font-style:normal;font-display:swap;src:url("../fonts/gambetta-700.woff2") format("woff2")}
@font-face{font-family:"Gambetta";font-weight:300;font-style:italic;font-display:swap;src:url("../fonts/gambetta-300i.woff2") format("woff2")}
@font-face{font-family:"Gambetta";font-weight:400;font-style:italic;font-display:swap;src:url("../fonts/gambetta-400i.woff2") format("woff2")}
@font-face{font-family:"Gambetta";font-weight:500;font-style:italic;font-display:swap;src:url("../fonts/gambetta-500i.woff2") format("woff2")}
@font-face{font-family:"Gambetta";font-weight:700;font-style:italic;font-display:swap;src:url("../fonts/gambetta-700i.woff2") format("woff2")}
@font-face{font-family:"Switzer";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/switzer-400.woff2") format("woff2")}
@font-face{font-family:"Switzer";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/switzer-500.woff2") format("woff2")}
@font-face{font-family:"Switzer";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/switzer-600.woff2") format("woff2")}
@font-face{font-family:"Switzer";font-weight:700;font-style:normal;font-display:swap;src:url("../fonts/switzer-700.woff2") format("woff2")}
@font-face{font-family:"Switzer";font-weight:400;font-style:italic;font-display:swap;src:url("../fonts/switzer-400i.woff2") format("woff2")}

/* ---------- tokens ---------- */
:root{
  color-scheme:light;
  /* brand, byte-identical to the document system */
  --navy:#2E3058; --navy-deep:#262747; --paper:#FBFAF5; --panel:#F3F0E8; --stone:#F5F3F0;
  --brass:#9C7C4E; --brass-lift:#C9A063; --teal:#3A6B73; --burgundy:#8B2332;
  --slate:#5A6378; --divider:#B0B3BA; --grey:#8A8A8A;
  /* roles */
  --bg:var(--paper); --bg-2:var(--panel); --bg-3:#E9E4D8;
  --ink:#2C2D3A; --ink-2:#5A6378; --ink-3:#6B6F7D;
  --head:var(--navy);
  --rule:#2E3058; --rule-soft:rgba(46,48,88,.16);
  --accent:#7A5F33; --accent-rule:#9C7C4E;
  --link:var(--navy);
  --plane:var(--navy); --plane-ink:#F5F2EA; --plane-ink-2:rgba(245,242,234,.74); --plane-accent:var(--brass-lift);
  --serif:"Gambetta",Georgia,"Times New Roman",serif;
  --sans:"Switzer","Helvetica Neue",Arial,sans-serif;
  --fs-xl:clamp(2.6rem, 1rem + 4.6vw, 5.4rem);
  --fs-l: clamp(2rem, 1.05rem + 2.5vw, 3.4rem);
  --fs-m: clamp(1.55rem, 1.2rem + 1.1vw, 2.2rem);
  --fs-s: 1.3rem;
  --fs-b: 1.125rem;
  --fs-sm:.9375rem;
  --fs-xs:.8125rem;
  --wrap:1320px; --pad:clamp(20px, 4.2vw, 64px); --gap:clamp(18px, 2.2vw, 36px);
  --sp-2:1rem; --sp-3:1.5rem; --sp-4:2.5rem; --sp-5:4rem; --sp-6:6.5rem; --sp-7:9rem;
  --beat:560ms; --ease:cubic-bezier(.25,.6,.2,1); --bar-h:116px;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar-h) + 24px)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:var(--fs-b);line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}
main{flex:1 0 auto}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:rgba(46,48,88,.45)}
a:hover{text-decoration-color:currentColor}
p{margin:0 0 1em;text-wrap:pretty}
h1,h2,h3,h4{margin:0;font-weight:400;color:var(--head);line-height:1.1;text-wrap:pretty}
ul,ol{margin:0;padding:0}
.plain{list-style:none}
dl,dd{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
::selection{background:var(--navy);color:var(--paper)}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:12px;z-index:100;background:var(--bg);color:var(--head);padding:10px 14px;font-family:var(--sans);font-size:var(--fs-sm)}
.skip:focus{left:12px}

/* ---------- type ---------- */
.display{font-family:var(--serif);font-weight:400;color:var(--head);line-height:1.04;letter-spacing:-.01em}
.display--xl{font-size:var(--fs-xl);line-height:1.0}
.display--l{font-size:var(--fs-l)}
.display--m{font-size:var(--fs-m);line-height:1.15}
.display--s{font-size:var(--fs-s);line-height:1.25}
.lede{font-size:clamp(1.2rem, 1.02rem + .7vw, 1.55rem);line-height:1.45;color:var(--ink);max-width:34em;font-weight:300}
.pull{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,1.2rem + .8vw,1.9rem);line-height:1.35;color:var(--navy);max-width:26em;margin:var(--sp-5) 0;padding-left:var(--sp-3);border-left:2px solid var(--accent-rule)}
.pull cite{display:block;font-family:var(--sans);font-style:normal;font-size:var(--fs-xs);color:var(--ink-3);margin-top:10px}
.body{max-width:62ch}
.body p{margin-bottom:1.1em}
.sans{font-family:var(--sans)}
.small{font-size:var(--fs-sm)}
.xs{font-size:var(--fs-xs)}
.dim{color:var(--ink-2)}
.cap{font-family:var(--sans);font-size:var(--fs-sm);color:var(--ink-2);line-height:1.45}
.ov{font-family:var(--sans);font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);margin:0 0 var(--sp-2)}
.note{font-size:var(--fs-sm);color:var(--ink-2);font-style:italic}
.num{font-variant-numeric:lining-nums tabular-nums}
em{font-style:italic}
strong{font-weight:500}
hr.rule{border:0;border-top:1px solid var(--rule);margin:0}
hr.rule--soft{border-top-color:var(--rule-soft)}

/* ---------- layout ---------- */
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);width:100%}
.g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap)}
.c3{grid-column:span 3}.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}.c9{grid-column:span 9}.c12{grid-column:1/-1}
.from2{grid-column:2/-1}.from7{grid-column:7/-1}.from8{grid-column:8/-1}
@media (max-width:900px){.c3,.c4,.c5,.c6,.c7,.c8,.c9,.from2,.from7,.from8{grid-column:1/-1}}
.sec{padding-block:var(--sp-5)}
.sec--t{padding-block:var(--sp-5)}
.sec--top{border-top:1px solid var(--rule)}
.sec--cv{content-visibility:visible}
.stack>*+*{margin-top:var(--sp-3)}
.row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.between{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap}
.sec-h{margin-bottom:var(--sp-4)}
.sec-h .display{max-width:20ch}
.sec-h .lede{margin-top:var(--sp-2)}

/* ---------- header ---------- */
.bar{position:sticky;top:0;z-index:50;height:var(--bar-h);display:flex;align-items:center;gap:var(--sp-4);padding-inline:var(--pad);background:rgba(251,250,245,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-soft);view-transition-name:site-bar}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none;flex:0 0 auto}
.logo img{height:80px;width:auto}
.logo__dark{display:none}
[data-theme="dark"] .logo__light{display:none}
[data-theme="dark"] .logo__dark{display:block}
.logo__w{display:none;line-height:1;font-family:var(--serif);text-transform:uppercase;letter-spacing:.04em}
.logo__w b{font-weight:500;font-size:1.02rem;color:var(--navy)}
.logo__w span{font-weight:400;font-size:.62rem;letter-spacing:.3em;color:var(--grey);margin-top:6px;padding-left:.1em}
.nav{display:flex;gap:clamp(16px,1.9vw,30px);margin-left:auto;font-family:var(--sans);font-size:var(--fs-sm)}
.nav a{text-decoration:none;color:var(--ink-2);padding:8px 0;border-bottom:1px solid transparent;transition:color var(--beat) var(--ease),border-color var(--beat) var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--navy);border-color:var(--navy)}
.bar__end{display:none;align-items:center;gap:14px}
.menubtn{display:none;width:44px;height:44px;place-items:center;color:var(--navy)}
.menubtn span{display:block;width:22px;height:1.5px;background:currentColor;margin:3px 0}
@media (max-width:1040px){.nav{display:none}.menubtn{display:grid}.bar__end{display:flex;margin-left:auto}}
@media (max-width:640px){.logo img{height:58px}:root{--bar-h:86px}}
.sheet{display:none;inset:auto 0 0 0;width:100%;max-width:none;margin:0;border:0;padding:var(--sp-4) var(--pad) var(--sp-5);background:var(--bg);color:var(--ink);border-top:1px solid var(--rule);max-height:100vh;max-height:100dvh;overflow-y:auto}
.sheet:popover-open{display:block}
.no-popover .sheet.js-open{display:block;position:fixed;z-index:50}
.sheet::backdrop{background:rgba(38,39,71,.5)}
.sheet nav{display:grid;font-family:var(--serif);font-size:1.7rem}
.sheet nav a{text-decoration:none;padding:12px 0;border-bottom:1px solid var(--rule-soft);color:var(--navy)}
.sheet .btn{margin-top:var(--sp-3)}
.sheet__close{position:absolute;right:var(--pad);top:20px;font-family:var(--sans);font-size:var(--fs-sm);color:var(--ink-2)}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:var(--sans);font-size:var(--fs-sm);font-weight:500;padding:14px 22px;border:1px solid var(--navy);color:var(--navy);background:transparent;text-decoration:none;line-height:1;transition:background var(--beat) var(--ease),color var(--beat) var(--ease)}
.btn:hover{background:var(--navy);color:var(--paper);text-decoration:none}
.btn--solid{background:var(--navy);color:var(--paper)}
.btn--solid:hover{background:var(--navy-deep);border-color:var(--navy-deep)}
.btn--sm{padding:11px 16px;font-size:var(--fs-xs)}
.btn--lg{padding:18px 28px;font-size:1rem}
.plane .btn{border-color:var(--plane-ink);color:var(--plane-ink)}
.plane .btn:hover{background:var(--plane-ink);color:var(--navy)}
.plane .btn--solid{background:var(--plane-ink);color:var(--navy)}
.plane .btn--solid:hover{background:var(--plane-accent);border-color:var(--plane-accent)}
.more{font-family:var(--sans);font-size:var(--fs-sm);font-weight:500;color:var(--navy);text-decoration:underline;text-underline-offset:.22em;text-decoration-color:var(--accent-rule)}
.more:hover{text-decoration-color:currentColor}

/* ---------- page opening ---------- */
.open{padding-top:clamp(48px,8vh,104px);padding-bottom:var(--sp-5)}
.open .ov{margin-bottom:var(--sp-3)}
.open .display{max-width:16ch}
.open .lede{margin-top:var(--sp-3)}
.open .row{margin-top:var(--sp-4)}
.hero{position:relative;overflow:hidden}
.hero__mark{position:absolute;right:calc(var(--pad) * -1);top:-6%;width:min(46vw,620px);opacity:.06;pointer-events:none;user-select:none}
@media (max-width:900px){.hero__mark{width:70vw;top:auto;bottom:-10%;opacity:.05}}

/* ---------- key/value table (the report's own grammar) ---------- */
.kv{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:var(--fs-sm)}
.kv caption{text-align:left;font-family:var(--serif);font-size:var(--fs-s);color:var(--head);padding-bottom:12px}
.kv th,.kv td{text-align:left;padding:13px 0;border-top:1px solid var(--rule-soft);vertical-align:top}
.kv tr:first-child th,.kv tr:first-child td{border-top:1px solid var(--rule)}
.kv th{font-weight:400;color:var(--ink-2);width:46%;padding-right:var(--sp-2)}
.kv td{color:var(--ink);font-family:var(--serif);font-size:1.12rem}
.kv td.num{font-family:var(--serif);font-size:1.22rem;color:var(--head)}
.kv tfoot td{font-family:var(--sans);font-size:var(--fs-xs);color:var(--ink-3);font-style:italic;border-top:1px solid var(--rule-soft)}
.plane .kv th{color:var(--plane-ink-2)}
.plane .kv td{color:var(--plane-ink)}
.plane .kv td.num{color:var(--plane-ink)}
.plane .kv th,.plane .kv td{border-top-color:rgba(245,242,234,.18)}
.plane .kv tr:first-child th,.plane .kv tr:first-child td{border-top-color:var(--plane-ink)}
.plane .kv tfoot td{color:var(--plane-ink-2)}

/* ---------- figures in prose ---------- */
.figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.figs li{padding-top:var(--sp-3);border-top:1px solid var(--rule)}
.fig{display:block;font-family:var(--serif);font-size:clamp(2.6rem, 1.8rem + 2.4vw, 4.2rem);line-height:1;color:var(--head);letter-spacing:-.015em;font-variant-numeric:lining-nums}
.fig__l{display:block;margin-top:12px;max-width:26ch;line-height:1.4}
.fig__l small{display:block;font-family:var(--sans);font-size:var(--fs-xs);color:var(--ink-3);margin-top:6px}
@media (max-width:760px){.figs{grid-template-columns:1fr}}

/* ---------- the statement plane ---------- */
.plane{background:var(--plane);color:var(--plane-ink);padding-block:var(--sp-5)}
.plane .display,.plane h2,.plane h3,.plane h4{color:var(--plane-ink)}
.plane .dim,.plane .cap,.plane .note,.plane .ov{color:var(--plane-ink-2)}
.plane a{color:var(--plane-ink);text-decoration-color:rgba(245,242,234,.5)}
.plane .accent{color:var(--plane-accent)}
.plane hr.rule{border-color:rgba(245,242,234,.3)}
.plane .fig{color:var(--plane-ink)}
.plane .figs li{border-top-color:rgba(245,242,234,.4)}
.plane .fig__l small{color:var(--plane-ink-2)}
.plane .more{color:var(--plane-ink);text-decoration-color:var(--plane-accent)}
.plane .lede{color:var(--plane-ink)}
.plane--soft{background:var(--bg-2);color:var(--ink)}
.plane--soft .display,.plane--soft h2,.plane--soft h3{color:var(--head)}
.plane--soft .dim,.plane--soft .cap,.plane--soft .note,.plane--soft .ov{color:var(--ink-2)}
.plane--soft a{color:var(--link)}
.plane--soft .lede{color:var(--ink)}
.plane--soft .btn{border-color:var(--navy);color:var(--navy)}
.plane--soft .btn:hover{background:var(--navy);color:var(--paper)}
.plane--soft .btn--solid{background:var(--navy);color:var(--paper)}
.plane--soft .fig{color:var(--head)}
.plane--soft .figs li{border-top-color:var(--rule)}
.plane--soft .more{color:var(--navy);text-decoration-color:var(--accent-rule)}

/* ---------- plates (photography) ---------- */
.plate{margin:0;container-type:inline-size}
.plate__img{position:relative;overflow:hidden;background:var(--bg-3);aspect-ratio:var(--ar,3/2)}
.plate__img img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.03) sepia(.07);transition:transform 1.3s var(--ease)}
.plate:hover .plate__img img,a:hover .plate__img img{transform:scale(1.03)}
.plate__cap{display:flex;justify-content:space-between;gap:var(--sp-2);padding-top:10px;font-family:var(--sans);font-size:var(--fs-xs);color:var(--ink-2)}
.plate__cap b{font-weight:500;color:var(--ink)}
.plate--tall{--ar:4/5}.plate--wide{--ar:21/9}.plate--sq{--ar:1/1}.plate--land{--ar:16/10}
@container (max-width:380px){.plate__cap{flex-direction:column;gap:2px}}
.plates{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap)}
.plates>*{grid-column:span 6}
.plates>.w4{grid-column:span 4}.plates>.w5{grid-column:span 5}.plates>.w7{grid-column:span 7}.plates>.w8{grid-column:span 8}.plates>.w12{grid-column:1/-1}
@media (max-width:760px){.plates>*,.plates>.w4,.plates>.w5,.plates>.w7,.plates>.w8{grid-column:1/-1}}
a.plate-link{text-decoration:none;color:inherit;display:block}
a.plate-link:hover .plate__cap b{color:var(--navy);text-decoration:underline;text-underline-offset:.2em}

/* ---------- photographic rail (scroll-snap, no auto-rotation) ---------- */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(36vw,480px);gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--sp-2);scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.rail:focus-visible{outline-offset:6px}
.rail__item{scroll-snap-align:start}
.rail__item .cap{margin:8px 0 0}
@media (max-width:760px){.rail{grid-auto-columns:86vw}}
.rail-nav{display:flex;gap:8px;margin-top:var(--sp-2)}
.rail-btn{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--navy);background:transparent;color:var(--navy);cursor:pointer;transition:background var(--beat) var(--ease),color var(--beat) var(--ease)}
.rail-btn:hover{background:var(--navy);color:var(--paper)}
.rail-btn svg{width:15px;height:15px}

/* ---------- ledgers (tables) ---------- */
.ledger{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:var(--fs-sm)}
.ledger caption{text-align:left;padding-bottom:var(--sp-2);font-family:var(--serif);font-size:var(--fs-s);color:var(--head)}
.ledger th,.ledger td{text-align:left;vertical-align:top;padding:14px 20px 14px 0;border-bottom:1px solid var(--rule-soft)}
.ledger thead th{font-weight:500;color:var(--ink-2);border-bottom:1px solid var(--rule);padding-top:0;font-size:var(--fs-xs)}
.ledger tbody th{font-family:var(--serif);font-size:1.12rem;font-weight:400;color:var(--head)}
.ledger td.num{text-align:right;padding-right:0;white-space:nowrap}
.ledger td:last-child,.ledger th:last-child{padding-right:0}
.ledger tfoot td{font-size:var(--fs-xs);color:var(--ink-3);font-style:italic;border-bottom:0;padding-top:10px}
.ledger-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ledger-scroll .ledger{min-width:560px}

/* ---------- practices and other numbered-in-prose lists ---------- */
.practices{list-style:none;border-top:1px solid var(--rule)}
.practice{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap);padding:var(--sp-4) 0;border-bottom:1px solid var(--rule-soft)}
.practice h3{font-size:var(--fs-m);line-height:1.12}
.practice .ov{margin-top:10px;margin-bottom:0}
.practice__b p:last-child{margin-bottom:0}
.practice__b ul{list-style:disc;padding-left:1.2em;margin-top:var(--sp-2);font-family:var(--sans);font-size:var(--fs-sm);color:var(--ink-2);display:grid;gap:6px}
@media (max-width:900px){.practice{grid-template-columns:1fr;gap:var(--sp-2)}}
.practice__facts{margin-top:var(--sp-3);display:grid;gap:8px;font-family:var(--sans)}
.practice__facts div{display:grid;grid-template-columns:100px 1fr;gap:14px;padding-top:8px;border-top:1px solid var(--rule-soft)}
.practice__facts dt{font-size:var(--fs-xs);color:var(--ink-3)}
.practice__facts dd{font-size:var(--fs-sm);color:var(--ink-2)}

/* ---------- always-visible page index (wide viewports only) ---------- */
.pagerail{position:fixed;left:32px;top:50%;transform:translateY(-50%);z-index:30;display:none;font-family:var(--sans)}
.pagerail ol{display:grid;gap:.65rem}
.pagerail a{display:block;font-size:var(--fs-xs);color:var(--ink-3);text-decoration:none;padding:2px 0 2px 11px;border-left:2px solid transparent;transition:color var(--beat) var(--ease),border-color var(--beat) var(--ease)}
.pagerail a:hover{color:var(--navy)}
.pagerail a[aria-current="page"]{color:var(--navy);border-left-color:var(--navy);font-weight:500}
@media (min-width:1680px){.pagerail{display:block}}
[data-theme="dark"] .pagerail a[aria-current="page"]{color:var(--head);border-left-color:var(--head)}
[data-theme="dark"] .pagerail a:hover{color:var(--head)}

/* ---------- selectable asset ledger (table + detail panel) ---------- */
.aledger{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr);gap:var(--gap);align-items:start}
.aledger .tbl{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:var(--fs-sm)}
.aledger .tbl thead th{text-align:left;padding:10px 14px 10px 0;color:var(--ink-3);font-size:var(--fs-xs);font-weight:500;border-bottom:1px solid var(--rule)}
.aledger .tbl tbody th,.aledger .tbl tbody td{text-align:left;vertical-align:top;padding:14px 14px 14px 0;border-bottom:1px solid var(--rule-soft)}
.aledger .tbl tbody th{font-family:var(--serif);font-size:1.05rem;font-weight:400;color:var(--head);position:relative}
.aledger .tbl tbody th::before{content:'';position:absolute;left:-14px;top:14px;bottom:14px;width:2px;background:var(--accent-rule);transform:scaleY(0);transform-origin:top;transition:transform var(--beat) var(--ease)}
.aledger .row{cursor:pointer;transition:background var(--beat) var(--ease)}
.aledger .row:hover,.aledger .row.is-on{background:var(--bg-2)}
.aledger .row.is-on th::before{transform:scaleY(1)}
.aledger .row td{color:var(--ink-2)}
.adetail{position:sticky;top:calc(var(--bar-h) + 24px);border-top:2px solid var(--rule)}
.adetail__panel{display:none;padding-top:var(--sp-3)}
.adetail__panel.is-on{display:block}
.adetail__img{margin:0 0 var(--sp-2);background:var(--bg-3)}
.adetail__k{font-family:var(--serif);font-size:var(--fs-s);color:var(--head)}
.adetail__k span{font-family:var(--sans);font-size:var(--fs-sm);color:var(--ink-2)}
.adetail__facts{margin-top:var(--sp-2);display:grid;gap:6px;font-family:var(--sans)}
.adetail__facts div{display:grid;grid-template-columns:74px 1fr;gap:12px;padding-top:6px;border-top:1px solid var(--rule-soft)}
.adetail__facts dt{font-size:var(--fs-xs);color:var(--ink-3)}
.adetail__facts dd{font-size:var(--fs-sm);color:var(--ink-2)}
@media (max-width:1080px){.aledger{grid-template-columns:1fr}.adetail{position:static;margin-top:var(--sp-3)}}
@media (max-width:640px){.aledger .tbl thead{display:none}.aledger .tbl,.aledger .tbl tbody,.aledger .tbl tr,.aledger .tbl th,.aledger .tbl td{display:block;padding:0}.aledger .row{padding:12px 0;border-bottom:1px solid var(--rule-soft)}.aledger .row th{border-bottom:0;padding:0 0 4px}.aledger .row td{border-bottom:0;padding:0;font-size:var(--fs-xs)}}

/* ---------- insight notes ---------- */
.notes{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.notes li{border-top:1px solid var(--rule);padding-top:var(--sp-2);display:grid;gap:10px;align-content:start}
.notes .cap{margin:0}
.notes h3{font-size:var(--fs-s);line-height:1.22}
.notes h3 a{text-decoration:none;color:var(--head)}
.notes h3 a:hover{text-decoration:underline;text-underline-offset:.18em}
.notes p{margin:0;color:var(--ink-2);font-size:var(--fs-sm)}
@media (max-width:820px){.notes{grid-template-columns:1fr}}

/* ---------- opportunities (for sale, to let) ---------- */
.opps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.opp{container-type:inline-size;border-top:1px solid var(--rule);padding-top:var(--sp-2);display:grid;gap:0;align-content:start}
.opp__st{font-family:var(--sans);font-size:var(--fs-xs);font-weight:500;color:var(--accent)}
.opp__st--sale{color:var(--navy)}
.opp .plate__img{margin-top:10px}
.opp h3{font-size:var(--fs-s);margin-top:14px;line-height:1.2}
.opp__p{font-family:var(--sans);font-size:var(--fs-sm);color:var(--ink-2);margin:4px 0 0}
.opp__facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin-top:var(--sp-2);font-family:var(--sans);font-size:var(--fs-xs)}
.opp__facts dt{color:var(--ink-3)}
.opp__facts dd{color:var(--ink)}
.opp .more{margin-top:var(--sp-2);justify-self:start}
@media (max-width:900px){.opps{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.opps{grid-template-columns:1fr}}
.empty{border:1px solid var(--rule-soft);background:var(--bg-2);padding:var(--sp-4);display:grid;gap:var(--sp-2);justify-items:start}
.opps+.empty,.empty+.empty{margin-top:var(--sp-4)}
.empty h3{font-size:var(--fs-s)}
.empty p{margin:0;max-width:52ch}

/* ---------- people ---------- */
.people{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-5) var(--gap)}
.person{border-top:1px solid var(--rule);padding-top:var(--sp-3);display:flex;flex-direction:column;gap:8px}
.person__photo{width:100%;max-width:240px;aspect-ratio:1;object-fit:cover;object-position:top;filter:saturate(.85) contrast(1.02);margin-bottom:var(--sp-3)}
.person h3{font-size:var(--fs-m);line-height:1.1}
.person__r{font-family:var(--sans);font-size:var(--fs-sm);color:var(--ink-2)}
.person p{font-size:var(--fs-b);margin:var(--sp-2) 0 0}
.person .contact{font-family:var(--sans);font-size:var(--fs-sm);display:grid;gap:5px;margin-top:auto;padding-top:var(--sp-2);border-top:1px solid var(--rule-soft)}
.person p:last-of-type{margin-bottom:var(--sp-2)}
.person p:last-of-type{margin-bottom:var(--sp-2)}
.person .contact span{color:var(--ink-3)}
.people--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.people--4 .person h3{font-size:var(--fs-s)}
.people--4 .person p{font-size:var(--fs-sm);color:var(--ink-2)}
@media (max-width:1000px){.people--4{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.people{grid-template-columns:1fr}.people--4{grid-template-columns:1fr 1fr;gap:var(--sp-4) var(--sp-3)}}
@media (max-width:900px){.sec--cv{content-visibility:visible;contain-intrinsic-size:auto}}
@media (max-width:640px){.sec,.plane{padding-block:64px}.people--4 .person__r{display:none}}
@media (max-width:640px){.people.people--4{row-gap:var(--sp-4)}.people--4 .person h3{font-size:1rem;white-space:nowrap}.people--4 .person{display:block;grid-row:auto;grid-template-rows:none;padding-bottom:0}.people--4 .person__photo{margin-bottom:8px}.people--4 .person p{margin:2px 0 0}.people--4 .person p:last-of-type{margin-bottom:0}}
.reveal{font-family:var(--sans);font-size:var(--fs-sm);color:var(--navy);text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--accent-rule);padding:0}
.reveal:hover{text-decoration-color:currentColor}
html:not(.js) .reveal{display:none}
.gap{color:var(--accent);font-style:italic}

/* ---------- timeline ---------- */
.tl{list-style:none;border-top:1px solid var(--rule)}
.tl li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:var(--gap);padding:var(--sp-2) 0;border-bottom:1px solid var(--rule-soft)}
.tl .when{font-family:var(--sans);font-size:var(--fs-sm);color:var(--ink-2);padding-top:.25em}
.tl p{margin:0}
@media (max-width:640px){.tl li{grid-template-columns:1fr;gap:4px}}

/* ---------- forms ---------- */
.form{display:grid;gap:var(--sp-4);font-family:var(--sans)}
.form fieldset{border:0;padding:0;margin:0;display:grid;gap:var(--sp-2)}
.form legend{font-family:var(--serif);font-size:var(--fs-s);color:var(--head);padding:0;margin-bottom:var(--sp-2)}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
@media (max-width:640px){.f2{grid-template-columns:1fr}}
.field{display:grid;gap:6px}
.field label{font-size:var(--fs-sm);color:var(--ink)}
.field label small{color:var(--ink-3);margin-left:6px;font-size:var(--fs-xs)}
.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--divider);border-radius:0;padding:12px;min-height:46px;transition:border-color var(--beat) var(--ease)}
.field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232E3058' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:36px}
.field textarea{min-height:150px;resize:vertical;line-height:1.5}
.field input:not([type=radio]):not([type=checkbox]):focus,.field select:focus,.field textarea:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy)}
.field:has(:user-invalid) label{color:var(--burgundy)}
.field:has(:user-invalid) input,.field:has(:user-invalid) select,.field:has(:user-invalid) textarea{border-color:var(--burgundy)}
.field .hint{font-size:var(--fs-xs);color:var(--ink-3)}
.choice{display:flex;flex-wrap:wrap;gap:8px}
.choice label{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--divider);background:#fff;padding:9px 13px;font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--beat) var(--ease),background var(--beat) var(--ease)}
.choice label:has(input:checked){border-color:var(--navy);background:var(--bg-2)}
.choice input{accent-color:var(--navy);margin:0}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);color:var(--ink-2)}
.consent span{flex:1}
.consent input{margin-top:5px;accent-color:var(--navy)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form__foot{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
dialog.ack{border:1px solid var(--rule-soft);background:var(--bg);color:var(--ink);padding:var(--sp-4);max-width:36rem;width:calc(100% - 40px)}
dialog.ack::backdrop{background:rgba(38,39,71,.55)}
dialog.ack h2{font-size:var(--fs-m);margin-bottom:var(--sp-2)}
dialog.ack .btn{margin-top:var(--sp-2)}

/* ---------- details (questions) ---------- */
.qa{border-top:1px solid var(--rule)}
.qa details{border-bottom:1px solid var(--rule-soft)}
.qa summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:var(--sp-2);align-items:center;padding:18px 0;font-family:var(--serif);font-size:var(--fs-s);color:var(--head)}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-family:var(--sans);color:var(--ink-2);font-size:1.3rem;font-weight:300;transition:transform var(--beat) var(--ease)}
.qa details[open] summary::after{transform:rotate(45deg)}
.qa__b{padding:0 0 var(--sp-3);max-width:62ch;color:var(--ink-2)}
.qa__b p:last-child{margin-bottom:0}

/* ---------- charts (axis, scale, labels, source: always) ---------- */
.chart{margin:0}
.chart svg{width:100%;height:auto;font-family:var(--sans)}
.chart .ax{stroke:var(--ink-2);stroke-width:1}
.chart .grid{stroke:var(--rule-soft);stroke-width:1}
.chart .tick{fill:var(--ink-2);font-size:12px}
.chart .lab{fill:var(--ink);font-size:13px}
.chart .lab-b{fill:var(--head);font-size:13px;font-weight:500}
.chart .ser-a{fill:var(--navy)}
.chart .ser-b{fill:var(--brass)}
.chart .ser-c{fill:#D8D2C4}
.chart .ln-a{stroke:var(--navy);stroke-width:2;fill:none}
.chart .ln-b{stroke:var(--brass);stroke-width:2;fill:none;stroke-dasharray:5 4}
.chart figcaption{margin-top:10px}
.plane .chart .ax{stroke:var(--plane-ink-2)}
.plane .chart .grid{stroke:rgba(245,242,234,.18)}
.plane .chart .tick,.plane .chart .lab{fill:var(--plane-ink-2)}
.plane .chart .lab-b{fill:var(--plane-ink)}
.plane .chart .ser-a{fill:var(--plane-ink)}
.plane .chart .ser-b{fill:var(--plane-accent)}
.plane .chart .ser-c{fill:rgba(245,242,234,.22)}
.plane .chart .ln-a{stroke:var(--plane-ink)}
.plane .chart .ln-b{stroke:var(--plane-accent)}

/* ---------- footer ---------- */
.foot{background:var(--navy);color:var(--plane-ink);padding-block:var(--sp-5) var(--sp-4);font-family:var(--sans);font-size:var(--fs-sm)}
.foot a{color:var(--plane-ink);text-decoration:none}
.foot a:hover{text-decoration:underline;text-underline-offset:.2em}
.foot__top{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--gap);align-items:start}
.foot__logo{width:min(220px,60%);height:auto}
.foot__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.foot h3{font-family:var(--serif);font-size:1.05rem;color:var(--plane-ink);margin-bottom:12px;font-weight:400}
.foot ul{list-style:none;display:grid;gap:7px;color:var(--plane-ink-2)}
.foot__legal{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid rgba(245,242,234,.22);display:grid;gap:8px;font-size:var(--fs-xs);color:var(--plane-ink-2)}
.foot__legal p{margin:0;max-width:none}
@media (max-width:900px){.foot__top{grid-template-columns:1fr}.foot__cols{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.foot__cols{grid-template-columns:1fr}}

/* ---------- motion (additive only) ---------- */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 32%}
    .pl img{animation:drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  }
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes drift{from{transform:translateY(-3.5%) scale(1.08)}to{transform:translateY(3.5%) scale(1.08)}}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
@view-transition{navigation:auto}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vtOut 220ms var(--ease) both}
  ::view-transition-new(root){animation:vtIn 320ms var(--ease) both}
  @keyframes vtOut{to{opacity:0}}
  @keyframes vtIn{from{opacity:0}}
}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* ---------- print ---------- */
@media print{
  .bar,.sheet,.menubtn,.btn,.skip{display:none!important}
  body{background:#fff;color:#000}
  .plane,.foot{background:#fff;color:#000;border-top:1px solid #000}
  .plane .display,.plane h2,.plane h3{color:#000}
}


/* ---------- dark theme (optional; light is the base) ---------- */
[data-theme="dark"]{
  color-scheme:dark;
  --bg:#1B1C2E; --bg-2:#2A2C48; --bg-3:#2C2E4C;
  --ink:#E9E6DD; --ink-2:#C3C6D3; --ink-3:#9A9EAE;
  --head:#F3F0E8;
  --rule:#E9E6DD; --rule-soft:rgba(233,230,221,.26);
  --accent:#C9A063; --accent-rule:#C9A063;
  --link:#F3F0E8;
  --plane:var(--navy); --plane-ink:#F5F2EA; --plane-ink-2:rgba(245,242,234,.74);
  --divider:#4A4D66;
}
[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
[data-theme="dark"] .bar{background:rgba(27,28,46,.9)}
[data-theme="dark"] .btn{border-color:var(--head);color:var(--head)}
[data-theme="dark"] .btn:hover{background:var(--head);color:var(--bg)}
[data-theme="dark"] .btn--solid{background:var(--head);color:var(--bg)}
[data-theme="dark"] .btn--solid:hover{background:var(--brass-lift);border-color:var(--brass-lift);color:#1B1C2E}
[data-theme="dark"] .plane--soft{background:var(--bg-2);color:var(--ink)}
[data-theme="dark"] .plane--soft .btn--solid{background:var(--head);color:var(--bg)}
[data-theme="dark"] .field input:not([type=radio]):not([type=checkbox]),[data-theme="dark"] .field select,[data-theme="dark"] .field textarea,[data-theme="dark"] .choice label{background:var(--bg-2);color:var(--ink);border-color:var(--divider)}
[data-theme="dark"] .field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23E9E6DD' stroke-width='1.4'/%3E%3C/svg%3E")}
[data-theme="dark"] .foot{background:var(--navy-deep)}
[data-theme="dark"] .sheet{background:var(--bg)}
[data-theme="dark"] .chart .ser-c{fill:#3A3D5C}
[data-theme="dark"] .chart .ser-a{fill:var(--head)}
[data-theme="dark"] ::selection{background:var(--brass-lift);color:#1B1C2E}
[data-theme="dark"] :focus-visible{outline-color:var(--brass-lift)}
[data-theme="dark"] .plate__img img{filter:saturate(.78) contrast(1.02) brightness(.92)}
[data-theme="dark"] .empty{background:var(--bg-2)}
[data-theme="dark"] dialog.ack{background:var(--bg);color:var(--ink)}

/* dark: navy-coloured text becomes paper */
[data-theme="dark"] .more,[data-theme="dark"] .reveal,[data-theme="dark"] .link,[data-theme="dark"] .nav a:hover,[data-theme="dark"] .nav a[aria-current="page"],[data-theme="dark"] .sheet nav a,[data-theme="dark"] .opp__st--sale,[data-theme="dark"] .plane--soft .more,[data-theme="dark"] .menubtn,[data-theme="dark"] .sheet__close,[data-theme="dark"] .theme{color:var(--head)}
[data-theme="dark"] .nav a[aria-current="page"],[data-theme="dark"] .nav a:hover{border-color:var(--head)}
[data-theme="dark"] .plane--soft .btn{border-color:var(--head);color:var(--head)}
[data-theme="dark"] .plane--soft .btn:hover{background:var(--head);color:var(--bg)}
[data-theme="dark"] .choice input,[data-theme="dark"] .consent input{accent-color:var(--brass-lift)}
[data-theme="dark"] .skip{background:var(--bg);color:var(--head)}
[data-theme="dark"] .kv td,[data-theme="dark"] .ledger tbody th,[data-theme="dark"] .ledger td{color:var(--ink)}
[data-theme="dark"] .hero__mark{opacity:.08}
[data-theme="dark"] a{color:var(--head);text-decoration-color:rgba(243,240,232,.45)}
[data-theme="dark"] .plane a{color:var(--plane-ink)}

/* dark: solid buttons on soft planes keep dark text on the light fill */
[data-theme="dark"] .plane--soft .btn--solid,[data-theme="dark"] .btn--solid{color:var(--bg)}
[data-theme="dark"] .plane--soft .btn--solid:hover{background:var(--brass-lift);border-color:var(--brass-lift);color:#1B1C2E}

/* =============================================================================
   Site E: the same system at full commitment.
   Brass marks proof (every figure) and direction (every "more" link). The hero's
   glance table sits on a navy panel that runs to the right edge of the viewport,
   with the firm's mark held inside it. Sections alternate paper, photograph,
   navy and stone so the page has a pulse. The header carries the mark with the
   lockup stays exactly as the owner set it on 28 August: the supplied file at 80px.
   ============================================================================= */


/* brass: figures and direction */
.kv td.num,.fig{color:var(--accent)}
.plane .kv td.num,.plane .fig{color:var(--plane-accent)}
.plane--soft .kv td.num,.plane--soft .fig{color:var(--accent)}
.more,.plane--soft .more{color:var(--accent);text-decoration-color:rgba(122,95,51,.4)}
.more:hover,.plane--soft .more:hover{color:var(--navy);text-decoration-color:currentColor}
.plane .more{color:var(--plane-accent);text-decoration-color:rgba(201,160,99,.5)}
.plane .more:hover{color:var(--plane-ink)}
.open .ov,.hero .ov{color:var(--accent)}
.plane .ov{color:var(--plane-accent)}
.btn--solid:hover{background:var(--accent);border-color:var(--accent)}
.plane .btn--solid:hover{background:var(--plane-accent);border-color:var(--plane-accent);color:var(--navy)}
.pull{border-left-color:var(--brass)}
[data-theme="dark"] .more,[data-theme="dark"] .plane--soft .more{color:var(--accent)}
[data-theme="dark"] .more:hover,[data-theme="dark"] .plane--soft .more:hover{color:var(--head)}

/* hero: type on paper, the glance table on a navy panel that bleeds right */
.hero--e{padding-block:0}
.hero__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:stretch}
.hero__text{grid-column:span 7;padding-block:clamp(56px,9vh,120px) var(--sp-5)}
.hero__text .display{max-width:15ch}
.hero__text .lede{margin-top:var(--sp-3)}
.hero__text .row{margin-top:var(--sp-4)}
.hero__panel{grid-column:8/-1;position:relative;padding:var(--sp-5) 0 var(--sp-5) var(--sp-4);display:flex;flex-direction:column;justify-content:center}
.hero__panel::before{content:'';position:absolute;inset:0 -100vw 0 0;background:var(--plane);z-index:0}
.hero__panel>*{position:relative;z-index:1}
.hero__panel .kv caption{color:var(--plane-ink)}
.hero__panel .kv th{color:var(--plane-ink-2)}
.hero__panel .kv td{color:var(--plane-ink)}
.hero__panel .kv td.num{color:var(--plane-accent);font-size:1.3rem}
.hero__panel .kv th,.hero__panel .kv td{border-top-color:rgba(245,242,234,.18)}
.hero__panel .kv tr:first-child th,.hero__panel .kv tr:first-child td{border-top:2px solid var(--plane-accent)}
.hero__panel .kv tfoot td{color:var(--plane-ink-2);border-top-color:rgba(245,242,234,.18)}
@media (max-width:900px){
  .hero__text{grid-column:1/-1;padding-bottom:var(--sp-4)}
  .hero__panel{grid-column:1/-1;padding:var(--sp-4) 0}
  .hero__panel::before{inset:0 calc(-1*var(--pad)) 0 calc(-1*var(--pad))}
  }

/* the full-bleed photograph */
.band{margin:0}
.band .plate__img{aspect-ratio:21/9}
@media (max-width:760px){.band .plate__img{aspect-ratio:4/3}}
.band__cap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);padding-top:12px}

/* section grounds */
.sec--stone{background:var(--bg-2)}
.plates--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.plates--3>*{grid-column:auto}
@media (max-width:900px){.plates--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.plates--3{grid-template-columns:1fr}}
.news{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--sp-5) var(--gap);align-items:start}
.news .notes{grid-template-columns:1fr;gap:var(--sp-3)}
@media (max-width:900px){.news{grid-template-columns:1fr}}

/* footer: deep navy under a brass hairline, in both themes. Owner, 31 Aug 2026: the dark-mode glance panel and footer read near-black; navy surfaces (planes, footer) are now theme-invariant and only the ground changes */
.foot{background:var(--navy-deep);border-top:1px solid var(--brass)}
[data-theme="dark"] .foot{background:var(--navy-deep)}

/* the panel carries its own ground as well as the bleed, so contrast tools and non-pseudo renderers see navy */
.hero__panel{background:var(--plane)}
/* dark: solid buttons on navy planes keep dark text on the light fill (latent in D, surfaced by E's navy close) */
[data-theme="dark"] .plane .btn--solid{color:var(--bg)}
[data-theme="dark"] .plane .btn--solid:hover{background:var(--plane-accent);border-color:var(--plane-accent);color:#1B1C2E}
/* hero height: land the buttons above the fold at 1440x900 */
.hero__text{padding-block:clamp(40px,6.5vh,88px) var(--sp-4)}
.hero__panel{padding-block:var(--sp-4)}
/* dark: the pull-quote reads in paper, not navy (latent in D) */
[data-theme="dark"] .pull{color:var(--head)}
.hero__text{padding-top:clamp(32px,5vh,64px)}
.hero__text .display--xl{font-size:clamp(2.6rem,1rem + 4.3vw,5rem)}
.hero__text .lede{margin-top:var(--sp-2)}
.hero__text .row{margin-top:var(--sp-3)}

:root{--sp-6:7.5rem}

/* operating model: read left to right, the order the work happens in */
.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap);border-top:1px solid var(--rule);padding-top:var(--sp-3)}
.stage{display:grid;gap:6px;align-content:start}
.stage__n{font-family:var(--serif);font-size:var(--fs-s);color:var(--accent);line-height:1;margin:0 0 6px}
.stage h3{font-size:var(--fs-s);line-height:1.2}
.stage__r{font-family:var(--sans);font-size:var(--fs-xs);color:var(--accent);margin:0}
.stage p{font-size:var(--fs-sm);color:var(--ink-2);margin:6px 0 0}
.stage ul{list-style:disc;padding-left:1.1em;margin-top:8px;font-family:var(--sans);font-size:var(--fs-xs);color:var(--ink-2);display:grid;gap:5px}
@media (max-width:1100px){.flow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.flow{grid-template-columns:1fr}}

/* what an instruction gets, in practice */
.caps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4) var(--gap)}
.capc{border-top:1px solid var(--rule);padding-top:var(--sp-2);display:grid;gap:8px;align-content:start}
.capc .ov{margin:0;color:var(--accent)}
.capc h3{font-size:var(--fs-m);line-height:1.15}
.capc>p:not(.ov){margin:4px 0 0;color:var(--ink-2)}
@media (max-width:760px){.caps{grid-template-columns:1fr}}

/* the nineteen assets in one ledger on the home page: country group rows */

/* page rail: the section in view */
.pagerail a[aria-current="true"]{color:var(--navy);border-left-color:var(--brass);font-weight:500}
[data-theme="dark"] .pagerail a[aria-current="true"]{color:var(--head);border-left-color:var(--brass-lift)}

/* dark: the select chevron must not tile. The earlier dark rule sets background as a shorthand, which resets repeat and position, so the arrow repeated across the whole control (owner, 31 Aug 2026) */
[data-theme="dark"] .field select{background:var(--bg-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23E9E6DD' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 14px center}

/* the selectable ledger's rows carry the class "row", which is also the flex utility for button rows; restore table layout (owner, 31 Aug 2026: "I do not like the Assets under management section") */
.aledger .row{display:table-row;gap:0}

/* page rail: a plate of its own ground, so it reads over navy planes and the footer in light mode too */
.pagerail{background:color-mix(in srgb,var(--bg) 94%,transparent);padding:12px 16px 12px 0}

/* the operating model and the instruction cards align row for row across the columns */
.flow{row-gap:0}
.stage{gap:0}
.stage__n{margin:0 0 10px}
.stage h3{margin:0 0 6px}
.stage__r{margin:0 0 10px}
.stage p{margin:0 0 12px}
.stage ul{margin:0 0 var(--sp-3)}
.caps{row-gap:0}
.capc{gap:0;padding-bottom:var(--sp-4)}
.capc .ov{margin:0 0 10px}
.capc h3{margin:0 0 10px}
.capc>p:not(.ov){margin:0 0 var(--sp-2)}
.capc .practice__facts{margin-top:0}
@supports (grid-template-rows:subgrid){
  .stage{grid-row:span 5;grid-template-rows:subgrid}
  .capc{grid-row:span 4;grid-template-rows:subgrid}
}
@supports not (grid-template-rows:subgrid){
  .stage{grid-template-rows:auto auto auto 1fr auto}
  .capc{grid-template-rows:auto auto 1fr auto}
}

/* assets under management, as Concept B has it: a four-column ledger, the asset in a framed 4:3 panel beside it */
.aledger{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:var(--sp-5) var(--sp-4)}
.aledger .tbl thead th{padding:0 14px 12px 0;border-bottom:1px solid var(--rule)}
.aledger .tbl tbody th,.aledger .tbl tbody td{padding:15px 14px 15px 0}
.aledger .tbl tbody th{font-size:1.08rem}
.adetail{border-top:2px solid var(--rule);padding-top:var(--sp-2)}
.adetail__img{border:1px solid var(--rule-soft);background:var(--bg-2)}
.adetail__img .plate__img{aspect-ratio:4/3;background:var(--bg-2)}
.adetail__k{margin:0 0 8px}
.adetail__facts{margin-top:var(--sp-2)}

/* people: the four cards align row for row (photo, name, role, bio, contact), so the contact rule sits on one line across a pair */
.people{row-gap:0}
.person{gap:0;padding-bottom:var(--sp-5)}
.person h3{margin:0 0 6px}
.person__r{margin:0 0 var(--sp-2)}
.person__bio p{margin:0 0 1em}
.person__bio p:last-child{margin-bottom:var(--sp-3)}
.person .contact{margin-top:0}
@supports (grid-template-rows:subgrid){.person{display:grid;grid-row:span 5;grid-template-rows:subgrid}}
@supports not (grid-template-rows:subgrid){.person{display:grid;grid-template-rows:auto auto auto 1fr auto}}
.person .contact{align-content:start}
/* hero: the glance panel narrower (4 columns), the headline and lede wider (8) */
.hero__text{grid-column:span 8}
.hero__text .display{max-width:17ch}
.hero__panel{grid-column:9/-1;padding-left:var(--sp-3)}
.hero__panel .kv th{width:50%}
.hero__panel .kv td.num{font-size:1.2rem}
@media (max-width:900px){.hero__text,.hero__panel{grid-column:1/-1}}

/* the asset panel and the acquisition frames at a size that shows the buildings (owner, 31 Aug: "why are the images so small") */
.aledger{grid-template-columns:minmax(0,1.1fr) minmax(360px,1fr)}
.rail--lg{grid-auto-columns:min(46vw,620px)}
@media (max-width:760px){.rail--lg{grid-auto-columns:86vw}}

/* text widths, spacing and alignment across the pages (owner, 31 Aug 2026) */
.body{max-width:56ch}
.note{max-width:68ch}
.from6{grid-column:6/-1}
@media (max-width:900px){.from6{grid-column:1/-1}}
/* practice rows sit on the twelve-column grid, so their bodies start on the same line as every other 5/7 split */
.practice{grid-template-columns:repeat(12,minmax(0,1fr))}
.practice>div:first-child{grid-column:span 6}
.practice__b{grid-column:7/-1}
@media (max-width:900px){.practice>div:first-child,.practice__b{grid-column:1/-1}}
/* the hotels note under the practice list runs with the bodies, not orphaned in the left column */
.practices+.note,.practices+p{margin-left:calc((100% - 11*var(--gap))/12*6 + 6*var(--gap))}
@media (max-width:900px){.practices+.note,.practices+p{margin-left:0}}
.practices+.body{margin-left:calc((100% - 11*var(--gap))/12*6 + 6*var(--gap))}
@media (max-width:900px){.practices+.body{margin-left:0}}

/* the hero fits above the fold on a laptop (MacBook, ~820px usable), and the glance panel is a panel, not a slab */
.hero__text{padding-block:clamp(28px,4vh,44px) var(--sp-3)}
.hero__text .display--xl{font-size:clamp(2.4rem,1rem + 4vw,4.6rem)}
.hero__text .lede{max-width:40em;font-size:clamp(1.15rem,1rem + .6vw,1.4rem)}
.hero__text .row{margin-top:var(--sp-3)}
.hero__panel{padding-block:var(--sp-3)}
.hero__panel .kv th,.hero__panel .kv td{padding:9px 0}
.hero__panel .kv caption{padding-bottom:8px}
.hero__panel::before{inset:0 calc(-1*var(--pad)) 0 0}
@media (max-width:900px){.hero__panel::before{inset:0 calc(-1*var(--pad)) 0 calc(-1*var(--pad))}}

/* the partners on the home page: four across, photo, name and role, each linking through */
.people--4 .person{gap:0;padding-bottom:0}
.people--4 .person a{text-decoration:none;color:inherit;display:grid;gap:4px;align-content:start;align-self:start}
.people--4 .person__photo{max-width:100%;margin-bottom:var(--sp-2)}
.people--4 .person h3{margin:0}
.people--4 .person a:hover h3{text-decoration:underline;text-underline-offset:.15em}
@supports (grid-template-rows:subgrid){.people--4 .person{grid-row:auto;grid-template-rows:auto}}

/* the glance table: the nineteen assets' facts sit under "Assets under management", not as management lines of their own */
.kv tr.kv__sub th{padding-left:18px;font-size:var(--fs-xs)}
.kv tr.kv__sub td.num{font-size:1.05rem}
.kv tr.kv__sub th,.kv tr.kv__sub td{padding-top:7px;padding-bottom:7px;border-top-color:transparent}
.hero__panel .kv tr.kv__sub th,.hero__panel .kv tr.kv__sub td{border-top-color:transparent}

/* glance table: every label on one line, one row rhythm, the three facts indented under their line */
.hero__panel .kv th{width:44%;padding-right:12px}
.hero__panel .kv td.num{font-size:1.15rem;white-space:nowrap}
.hero__panel .kv th,.hero__panel .kv td{padding:9px 0}
.kv tr.kv__sub th{padding-left:16px;font-size:var(--fs-sm);color:inherit}
.kv tr.kv__sub td.num{font-size:1.05rem}
.kv tr.kv__sub th,.kv tr.kv__sub td{padding-top:9px;padding-bottom:9px;border-top-color:var(--rule-soft)}
.hero__panel .kv tr.kv__sub th,.hero__panel .kv tr.kv__sub td{border-top-color:rgba(245,242,234,.12)}
.hero__panel .kv tr.kv__sub th{color:var(--plane-ink-2)}

/* section headings sit one step below the page title, and hold to two lines (owner, 31 Aug 2026) */
main h2.display--l{font-size:clamp(1.9rem,1rem + 2.2vw,3rem)}

/* operating model: a tighter gutter gives each stage a wider measure */
.flow{column-gap:var(--sp-3)}

/* share page: the sidebar reads at the caption size in its five columns */
.share-aside{font-size:var(--fs-sm)}
.share-aside h2{font-size:var(--fs-s)}

/* notes: a short footnote sits on one line; only a long one wraps to a paragraph measure (owner, 31 Aug) */
.note{max-width:62em;text-wrap:pretty}
.note--long{max-width:68ch}
.note{max-width:66em}
.hero__panel .kv th{width:40%}

/* alignment audit, 31 Aug 2026 */

/* 1. The last block in a page opener, a section or a grid column carries no bottom margin, so the
   distance from the last line to the next section is the section padding on every page. Measured:
   120+19.8 under prose, 120+64 under the firm's pull quote, 64+24.8 under page ledes, 64+15 under the
   legal pages' notes, 120+15 under figure notes and the closing plane's caption. */
main .wrap>:last-child,main .wrap>[class]>:last-child,main .wrap>[class]>[class]>:last-child{margin-bottom:0}

/* 2. A lede under a section heading in a heading column sits 16px below it, as in .sec-h and the
   mandates country heads (track-record, Asset management column: 0). */
main .g>.c4>.display+.lede,main .g>.c5>.display+.lede{margin-top:var(--sp-2)}

/* 3. Mandates: the first country group starts at the section's top padding (was 120px below it,
   from the group's own top margin stacking on the section padding). */
.country:first-child{margin-top:0}

/* 4. The selectable asset ledger on the twelve-column grid: table in columns 1-6, detail panel from
   column 7 (was x=760 at 1440, 32px inside the line the sections above and below use). */
.aledger{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.aledger>.tbl{grid-column:span 6}
.aledger>.adetail{grid-column:7/-1}
@media (max-width:1080px){.aledger>.tbl,.aledger>.adetail{grid-column:1/-1}}

/* 5. Table heads: a 2px navy rule under the head row of the ledgers and at the top of a key/value
   table's first row, as the hero's glance table and the detail panel already have (was 1px). The 1px
   soft rules between rows are unchanged. */
.ledger thead th,.aledger .tbl thead th{border-bottom-width:2px}
.kv tbody tr:first-child th,.kv tbody tr:first-child td{border-top-width:2px}

/* 6. The footer on the grid: mark in columns 1-4, the three lists at columns 5, 8 and 11
   (were on a 4fr/8fr split, x=534/804/1074 at 1440). */
.foot__top{grid-template-columns:repeat(12,minmax(0,1fr))}
.foot__top>:first-child{grid-column:span 4}
.foot__top>.foot__cols{grid-column:5/-1;grid-template-columns:repeat(8,minmax(0,1fr))}
.foot__cols>*{grid-column:span 3}
.foot__cols>:last-child{grid-column:span 2}
/* mobile: stacked footer groups get real separation (owner, 2 Sep: address, contact and nav read as one run-on list at 390px) */
@media (max-width:900px){.foot__top>:first-child,.foot__top>.foot__cols{grid-column:1/-1}.foot__top{row-gap:var(--sp-4)}.foot__top>.foot__cols{grid-template-columns:1fr 1fr;row-gap:var(--sp-4)}.foot__cols>*,.foot__cols>:last-child{grid-column:auto}}
@media (max-width:540px){.foot__top>.foot__cols{grid-template-columns:1fr}}

/* 7. Five/seven splits (and the practice rows) align by baseline: the heading's first line and the
   content column's first line share a baseline. They were top-aligned, which put the heading's
   baseline 20px below the body's first line (12px in the practice rows). Where an overline precedes
   the heading it is lifted out of flow so the heading, not the overline, sets the column's baseline;
   the heading keeps the overline's line and 16px gap above it. Below 900px the columns stack and
   baseline alignment has no effect. A form's first baseline is its first field label (fieldsets skip the
   legend), so the share page's aside and form stay top-aligned. The ledger's cells are all vertical-align:top, so its
   head row had no baseline of its own (CSS 2.1 falls back to the cells' content-bottom edge, 5px low);
   baseline-aligned head cells, visually identical for one-line labels, let the head label meet the heading. */
main .g:has(>.c5+.from7):not(:has(>.from7>.kv:first-child)),main .g:has(>.c4+.from6):not(:has(>.from6>.kv:first-child)),.practice{align-items:baseline}
/* iPad fix, attempt two (owner, 2 Sep: attempt one did not take; portrait even hid the first row and dropped the heading to the bottom of the row). WebKit synthesizes a grid-item baseline for a table from deep inside it, so baseline-aligning these splits is not interoperable: a split whose content column starts with a kv table is excluded from the baseline pass above and top-aligns in every engine, and the table instead carries the offset Chrome's baseline alignment used to produce, measured at 1180px (35px) and 1440px (39px) and interpolated on vw between them. Desktop-and-tablet only: below 901px the columns stack and need nothing. */
@media (min-width:901px){main .g:has(>.c5+.from7)>.from7>.kv:first-child,main .g:has(>.c4+.from6)>.from6>.kv:first-child{margin-top:clamp(30px,16.85px + 1.54vw,39px)}}
main .g:has(>.c5+form.from7){align-items:start}
.ledger thead th{vertical-align:baseline}
main .g>.c5{position:relative}
main .g>.c5>.ov:first-child{position:absolute;top:0;left:0;right:0;margin:0}
main .g>.c5>.ov:first-child+.display{margin-top:calc(.9375rem*1.55 + 1rem)}

/* 8. Card grids carry their row spacing as padding on the cards; the last row drops it, so the
   space below the last card is the section padding (people page 184px below the last contact block,
   the instruction cards 160px, the operating model 144px). */
.people>.person:nth-last-child(-n+2),.caps>.capc:nth-last-child(-n+2){padding-bottom:0}
.flow>.stage>ul:last-child{margin-bottom:0}
@media (max-width:760px){.caps>.capc:nth-last-child(2){padding-bottom:var(--sp-4)}}
@media (max-width:640px){.people>.person:nth-last-child(2){padding-bottom:var(--sp-5)}}

/* operating model and instruction cards merged (owner, 31 Aug): the claim as the sub-line, two facts in place of bullets */
.stage__r{font-family:var(--serif);font-size:1rem;color:var(--head);line-height:1.3;margin:0 0 10px}
.stage .practice__facts{margin-top:4px;margin-bottom:var(--sp-3);gap:6px}
.stage .practice__facts div{grid-template-columns:1fr;gap:2px;padding-top:6px}
.stage .practice__facts dd{font-size:var(--fs-xs)}

/* page titles hold to three lines; a lede under a section heading holds to three (owner, 31 Aug) */
.hero__text .display--xl{font-size:clamp(2.2rem,1rem + 3.4vw,4.1rem)}
.open .display--xl{font-size:clamp(2.4rem,1rem + 3.6vw,4.4rem)}
.sec-h .lede{max-width:40em}

/* glance table: a clear gutter between label and value (owner, 31 Aug) */
.hero__panel .kv th{width:42%;padding-right:24px}
.hero__panel .kv td.num{font-size:1.1rem}
.hero__panel .kv th{width:42%;padding-right:18px;font-size:.875rem}
.hero__panel .kv tr.kv__sub th{font-size:.8125rem}

/* page titles: three lines, not four (owner, 31 Aug): the 16ch cap was for short titles */
.open .display{max-width:22ch}
.hero__text .display{max-width:20ch}

/* text wrap, as a whole (owner, 31 Aug 2026): headings and ledes fill their measure rather than balancing to equal lines (h1-h4 were text-wrap:balance) or stopping at an em cap (section, page-title and close ledes were 40em/34em inside a 1214px column), so each block runs to the same right edge as the content beneath it. The home hero title alone keeps balance. */
.hero h1{text-wrap:balance}
.sec-h .lede,.open .lede,.plane .lede{max-width:none}

/* a portrait photograph in the acquisitions rail sits whole in the same 16:10 slot as its neighbours, on the page ground either side (owner, 31 Aug 2026: 13 Parliament Street; a taller plate had pushed the rail arrows ~400px below the landscape plates) */
.plate--fit .plate__img{background:var(--bg)}
.plate--fit .plate__img img{object-fit:contain}

/* dark: the rail arrows were navy on the navy ground (1.3:1); paper like the other controls */
[data-theme="dark"] .rail-btn{border-color:var(--head);color:var(--head)}
[data-theme="dark"] .rail-btn:hover{background:var(--head);color:var(--bg)}

/* navigation, 31 Aug 2026 (NAV-AND-IA-ADVICE.md): five items and the button; About, What we do and Track record open on hover or keyboard focus */
.nav{align-items:center}
.nav__item{position:relative;display:flex;align-items:center;height:var(--bar-h)}
.nav__item>a.is-here{color:var(--navy);border-color:var(--navy)}
.sub{display:none;position:absolute;left:-18px;top:100%;min-width:240px;padding:10px 0;background:var(--bg);border:1px solid var(--rule-soft);border-top:2px solid var(--navy);box-shadow:0 14px 30px rgba(38,39,71,.12);z-index:60}
.nav__item:hover .sub,.nav__item:focus-within .sub{display:grid}
.nav .sub a{padding:9px 18px;border-bottom:0;color:var(--ink-2);white-space:nowrap}
.nav .sub a:hover,.nav .sub a[aria-current="page"]{color:var(--navy);border-bottom:0;background:var(--bg-2)}
[data-theme="dark"] .nav__item>a.is-here{color:var(--head);border-color:var(--head)}
[data-theme="dark"] .sub{border-top-color:var(--head)}
[data-theme="dark"] .nav .sub a:hover,[data-theme="dark"] .nav .sub a[aria-current="page"]{color:var(--head)}
.sheet__sub{display:grid;padding:2px 0 10px 18px}
.sheet nav .sheet__sub a{font-family:var(--sans);font-size:var(--fs-sm);padding:7px 0;border-bottom:0;color:var(--ink-2)}
[id]{scroll-margin-top:calc(var(--bar-h) + 16px)}

/* the home page opens on the hero alone (owner, 31 Aug: clicking Home showed the next section on the same fold): the hero fills the viewport below the bar, content centred; below 901px it stacks and flows naturally */
@media (min-width:901px){
.hero--e>.wrap{min-height:calc(100vh - var(--bar-h));min-height:calc(100svh - var(--bar-h))}
.hero--e .hero__text{display:flex;flex-direction:column;justify-content:center}
}

/* touch: the click-to-reveal buttons and footer links get a taller target on phones (mobile audit, 31 Aug) */
@media (max-width:760px){.reveal{padding:8px 0}.foot a{display:inline-block;padding:4px 0}}

/* Site F (1 Sep 2026): the Grand Canal Dock film is the whole first fold, full width as on the live site, the headline over it on a navy gradient; the four figures on a stone band beneath */
.hero--f .hero__stage{position:relative;overflow:hidden;padding-block:0;background:var(--navy)}
.hero--f .hero__stage>.wrap{min-height:calc(100vh - var(--bar-h) - 168px);min-height:calc(100svh - var(--bar-h) - 168px);position:relative;z-index:1}
.hero--f .hero__text{grid-column:1/8;padding-right:var(--sp-3)}
.hero--f .hero__text .display--xl{font-size:clamp(2.4rem,1rem + 3.6vw,4.4rem);max-width:none;text-shadow:0 1px 3px rgba(20,22,45,.55)}
.hero--f .hero__text .lede{max-width:34em;text-shadow:0 1px 3px rgba(20,22,45,.55)}
.hero--f .hero__layer{position:absolute;inset:0}
.hero--f .hero__video,.hero--f .hero__poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero--f .hero__poster{display:none}
@media (prefers-reduced-motion:reduce){.hero--f .hero__video{display:none}.hero--f .hero__poster{display:block}}
.hero--f .hero__band{padding-block:var(--sp-3) var(--sp-2);margin-top:0}
.hero--f .hero__band .figs--4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);margin:0}
.hero--f .hero__band .figs li{border-top:1px solid var(--rule);padding-top:10px}
.hero--f .hero__band .fig{display:block;font-family:var(--serif);font-size:2.1rem;line-height:1;color:var(--accent)}
.hero--f .hero__band .fig__l{color:var(--ink-2);max-width:22ch}
.hero--f .hero__band .cap{margin:12px 0 0;color:var(--ink-2);max-width:none}
.flow--f .stage p{margin:0}
@media (max-width:900px){
  .hero--f .hero__stage>.wrap{min-height:0}
  .hero--f .hero__text{grid-column:1/-1;padding-right:0}
    .hero--f .hero__video{display:none}.hero--f .hero__poster{display:block}
  .hero--f .hero__band .figs--4{grid-template-columns:1fr 1fr}
}

/* the page rail appears once the reader reaches the section after the hero (owner, 1 Sep 2026) */
.pagerail{opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s var(--ease)}
.pagerail.is-shown{opacity:1;visibility:visible}

/* hero scrim: one dial. .3 = the lightest visible setting (owner, 1 Sep: start small and step up); the gradient runs navy at --scrim on the left edge to nothing at 65% of the width */
.hero--f{--scrim:.3}
@media (min-width:901px){.hero--f{--scrim:.5}}
.hero--f .hero__layer::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(46,48,88,var(--scrim)) 0%,rgba(46,48,88,calc(var(--scrim)*.55)) 40%,rgba(46,48,88,0) 65%)}
@media (max-width:900px){.hero--f .hero__layer::after{background:linear-gradient(180deg,rgba(46,48,88,calc(var(--scrim)*2)) 0%,rgba(46,48,88,var(--scrim)) 100%)}}

/* the film on phones (owner, 2 Sep 2026: play it): js/site.js swaps in the 480p file and arms the hero when width, motion preference and Save-Data allow; the still stays as first paint and dissolves once the film is truly playing */
@media (max-width:900px) and (prefers-reduced-motion:no-preference){
  .hero--f.film-armed .hero__video{display:block}
  .hero--f .hero__poster{transition:opacity .6s var(--ease)}
  .hero--f.film-armed .hero__video.is-playing+.hero__poster{opacity:0}
}

/* partner LinkedIn marks (owner, 2 Sep 2026) */
.contact .li{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--rule-soft);color:var(--ink-2);vertical-align:middle;margin-right:10px;transition:color var(--beat) var(--ease),border-color var(--beat) var(--ease)}
.contact .li:hover{color:var(--navy);border-color:var(--navy)}
[data-theme="dark"] .contact .li:hover{color:var(--head);border-color:var(--head)}

/* dark mode: the film needs a stronger scrim than light (the footage is bright in both themes and the dark page ground makes the first fold stark; owner-approved 2 Sep) */
[data-theme="dark"] .hero--f{--scrim:.45}
@media (min-width:901px){[data-theme="dark"] .hero--f{--scrim:.55}}

/* the number sits inline in the title as a hanging figure, "01 Acquisition advice": the digits keep a fixed slot and the title, its wrapped lines and the explanatory text share one left axis (owner, 2 Sep: the body sat under the digits, and "structures" wrapped under 05) */
.flow .stage{--stage-num:26px}
.stage h3 .stage__n{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;display:inline-block;width:var(--stage-num);text-indent:0}
.flow .stage h3{padding-left:var(--stage-num);text-indent:calc(0px - var(--stage-num))}
.flow .stage>p{padding-left:var(--stage-num)}

/* once the flow wraps (3 columns on tablet, 1 on the phone) the row-for-row subgrid has nothing to align and left the wrapped bands touching: subgrid off, real space between stages (owner, 2 Sep: 01-05 condensed on the phone, then 04 touching 01 on portrait iPad) */
@media (max-width:1100px){
  .flow{row-gap:var(--sp-4)}
  .stage{grid-row:auto;grid-template-rows:none}
}

/* narrow screens: the asset detail opens directly under the selected row (owner, 2 Sep, "proceed as per your recommendation B") */
.aledger .tbl tbody tr.adetail__slot>td{padding:6px 0 var(--sp-3);border-top:0}
.adetail__slot .adetail{position:static;margin-top:0;border-top:0;padding-top:var(--sp-2)}

.people.people--4>.person:nth-last-child(2){padding-bottom:0}

[data-theme="dark"] 

[data-theme="dark"] .plate__img{outline:1px solid rgba(233,230,221,.14);outline-offset:-1px}

/* 14 Sep 2026: a paper band that follows the paper page title shares its ground, so drop its own top padding and the two read as one block (about, mandates: was 127px of empty paper between lede and figures) */
.open.sec--stone+.sec--stone{padding-top:0}
/* 14 Sep 2026: contact aside tops out with the form; baseline alignment was pairing the Office heading with a line deep inside the form (46px drop at >=901px) */
.share-aside{align-self:start}
