/* AETHERION Capital. Large Format. The single stylesheet; tokens and rules follow DESIGN.md. */

@font-face{font-family:"EB Garamond";src:url(../fonts/ebgaramond.woff2) format("woff2");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(../fonts/ebgaramond-italic.woff2) format("woff2");font-weight:400 500;font-style:italic;font-display:swap}
@font-face{font-family:"Garamond Fallback";src:local("Iowan Old Style"),local("Georgia");size-adjust:88%;ascent-override:114%;descent-override:34%;line-gap-override:0%}


:root{--scroll-thumb:#8F857D;
  --paper:#F3F1EC;--paper-deep:#E8E5DF;--paper-mount:#ECE9E3;
  --ink:#2A231F;--ink-soft:#5E554F;--ink-mute:#6B625B;--ink-hover:#4A403A;
  --hair:rgba(42,35,31,.16);--hair-strong:rgba(42,35,31,.32);
  --night:#17120F;--night-raised:#221B17;--night-ink:#EDE8E1;--night-soft:#B9B0A7;--night-mute:#9A9088;--night-hair:rgba(237,232,225,.18);
  --error:#8B2B1E;--error-night:#E39A86;
  --serif:"EB Garamond","Garamond Fallback",Garamond,Georgia,serif;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;--s11:192px;
  --sec:clamp(96px,13vw,224px);
  --g:clamp(16px,4.2vw,72px);
  --gap:clamp(16px,1.8vw,24px);
  --gut:max(var(--g),calc((100% - 1680px)/2));
  --head:64px;
  --sc-size:1rem;--sc-track:.075em;
  --ease-develop:cubic-bezier(.2,.7,.1,1);
  --ease-page:cubic-bezier(.65,0,.35,1);
  --ease-settle:cubic-bezier(.16,1,.3,1);
  /* local surface tokens, swapped inside .night */
  --fg:var(--ink);--fg-soft:var(--ink-soft);--fg-mute:var(--ink-mute);--bg:var(--paper);--rule:var(--hair);--rule-strong:var(--hair-strong);--err:var(--error);--field-line:rgba(42,35,31,.6);
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--scroll-thumb) var(--paper);scrollbar-width:thin;scroll-padding-top:calc(var(--head) + 24px)}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.1875rem;line-height:1.62;font-weight:400;font-variant-numeric:oldstyle-nums proportional-nums;font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;caret-color:var(--ink);min-height:100vh;overflow-x:clip}
img,picture,svg{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
ul[role=list],ol[role=list]{list-style:none}
h1,h2,h3,h4,.t-display,.t-title,.t-heading,.pull{text-wrap:balance;overflow-wrap:break-word}
h1,h2,h3,h4{font-weight:400}
p,li,dd,figcaption{text-wrap:pretty}
p{hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:8 4 4;-webkit-hyphenate-limit-before:4;-webkit-hyphenate-limit-after:4}
.t-lead,.t-display,.t-title,.t-heading,.pull,.cap,.facts dd,.toc__d{hyphens:manual;-webkit-hyphens:manual}
:lang(nl) .t-display,:lang(nl) .t-title{hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:10 5 5}
::selection{background:var(--ink);color:var(--paper)}
.night ::selection{background:var(--night-ink);color:var(--night)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--fg);outline-offset:3px}

/* Links */
a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:.22em;transition:text-decoration-color .2s}
a:hover{text-decoration-color:currentColor}
.u-plain{text-decoration:none}

/* Type */
.sc,.t-sc{font-variant-caps:all-small-caps;font-variant-numeric:lining-nums tabular-nums;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size);line-height:1.3}
.t-figure{font-size:clamp(7.5rem,31vw,30rem);line-height:.82;letter-spacing:-.045em;font-variant-numeric:lining-nums proportional-nums;font-weight:400;white-space:nowrap}
.t-display{font-size:clamp(2.625rem,1.6rem + 3.6vw,5.25rem);line-height:1.02;letter-spacing:-.022em}
.t-title{font-size:clamp(1.875rem,1.35rem + 1.9vw,3.125rem);line-height:1.08;letter-spacing:-.015em}
.t-heading{font-size:clamp(1.375rem,1.2rem + .6vw,1.75rem);line-height:1.2;letter-spacing:-.005em;font-weight:500}
.t-lead{font-size:clamp(1.3125rem,1.15rem + .55vw,1.625rem);line-height:1.42}
.t-small{font-size:1.0625rem;line-height:1.55}
.t-soft{color:var(--fg-soft)}
.t-mute{color:var(--fg-mute)}
em,i{font-style:italic}
.lnum{font-variant-numeric:lining-nums}
.prose{max-width:64ch}
.prose>*+*{margin-top:1em}
.prose>:first-child{margin-top:0}
.prose h2{margin-top:var(--s8)}
.prose h3{margin-top:var(--s7)}
.prose h2+*,.prose h3+*{margin-top:var(--s4)}
.prose ul{padding-left:1.1em}
.prose li+li{margin-top:.4em}
.prose li::marker{color:var(--fg-mute)}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Skip link */
.skip{position:fixed;left:var(--g);top:12px;z-index:100;background:var(--ink);color:var(--paper);padding:12px 20px;text-decoration:none;transform:translateY(-200%)}
.skip:focus-visible{transform:none;outline-color:var(--ink)}

/* Page grid */
.g{display:grid;grid-template-columns:[bleed-start] var(--gut) [page-start] repeat(12,minmax(0,1fr)) [page-end] var(--gut) [bleed-end];column-gap:var(--gap)}
.g>*{grid-column:page;min-width:0}
.g>.bleed{grid-column:bleed}
.sheet{padding-top:var(--sec)}
.sheet--tight{padding-top:var(--s9)}
.end{padding-bottom:var(--sec)}

/* ---------- Running head ---------- */
.rh{position:sticky;top:0;z-index:40;height:var(--head);background:var(--paper);view-transition-name:runninghead}
.rh::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--hair);opacity:0}
.rh.is-scrolled::after{opacity:1}
.rh__in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding-inline:var(--gut)}
.rh__brand{display:block;flex:0 0 auto;padding:10px 0;text-decoration:none}
.rh__brand img{height:13px;width:auto}
.nav{display:flex;align-items:center;gap:22px}
.nav__list{display:flex;align-items:center;gap:clamp(14px,1.25vw,22px);list-style:none}
.nav__item{position:relative;display:flex;align-items:center}
.nav__link{display:block;padding:10px 0;text-decoration:none;font-variant-caps:all-small-caps;letter-spacing:.06em;font-weight:500;font-size:1rem;line-height:1;white-space:nowrap}
.nav__link:hover,.nav__link[aria-current=page],.nav__item.is-section>.nav__link{text-decoration:underline;text-underline-offset:.3em;text-decoration-color:currentColor}
.nav__toggle{display:inline-grid;place-items:center;width:28px;height:36px;margin-left:2px;color:var(--ink)}
.nav__toggle svg{width:14px;height:14px}
.nav__toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.lang{display:flex;align-items:center;gap:6px;font-variant-caps:all-small-caps;letter-spacing:.06em;font-weight:500;font-size:1rem;line-height:1}
.lang a{text-decoration:none;padding:10px 4px}
.lang a[aria-current=true]{text-decoration:underline;text-underline-offset:.3em;text-decoration-color:currentColor}
.lang a:not([aria-current]){color:var(--ink-soft)}
.lang span{color:var(--ink-mute)}
.menu-btn{display:none;padding:10px 0 10px 8px;font-variant-caps:all-small-caps;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size);line-height:1}

/* Services disclosure */
.svcmenu{position:absolute;top:calc(100% + 14px);left:-28px;width:min(440px,80vw);background:var(--paper);border:1px solid var(--hair);padding:var(--s5) var(--s5) var(--s4);display:none;z-index:50}
.svcmenu.is-open{display:block}
.svcmenu ul{list-style:none}
.svcmenu a{display:grid;grid-template-columns:3.4rem 1fr;align-items:baseline;gap:var(--s3);padding:9px 0;text-decoration:none;font-size:1.125rem;line-height:1.3}
.svcmenu a:hover .svcmenu__t,.svcmenu a:focus-visible .svcmenu__t{text-decoration:underline;text-decoration-color:var(--hair-strong);text-underline-offset:.22em}
.svcmenu .sc{color:var(--ink-mute)}
.svcmenu__all{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--hair)}

/* Mobile menu sheet */
.msheet{position:fixed;inset:0;z-index:60;background:var(--paper);display:none;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
.msheet.is-open{display:flex}
.msheet__top{height:var(--head);flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gut)}
.msheet__close{display:inline-flex;align-items:center;gap:8px;padding:10px 0;font-variant-caps:all-small-caps;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size)}
.msheet__close svg{width:16px;height:16px}
.msheet nav{padding:var(--s6) var(--gut) var(--s9)}
.msheet ul{list-style:none}
.msheet__main a{display:block;padding:10px 0;font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.15;text-decoration:none;letter-spacing:-.01em}
.msheet__main a[aria-current=page]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
.msheet__sub{margin:var(--s2) 0 var(--s4) var(--s5)}
.msheet__sub a{display:block;padding:9px 0;font-size:1.1875rem;text-decoration:none;color:var(--ink-soft)}
.msheet__foot{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--hair);display:flex;justify-content:space-between;align-items:center;gap:var(--s5);flex-wrap:wrap}

@media (max-width:1319px){
  .nav__list{display:none}
  .menu-btn{display:inline-block}
}
@media (min-width:1320px) and (max-width:1409px){
  html:lang(nl) .nav__list{display:none}
  html:lang(nl) .menu-btn{display:inline-block}
}
@media (scripting:none){
  .nav__toggle,.menu-btn{display:none!important}
}
/* Without scripting below 1240px the navigation shows as a wrapped list under the head. */
@media (scripting:none) and (max-width:1409px){
  .rh{height:auto;position:relative}
  .rh__in{flex-wrap:wrap;padding-block:16px}
  .nav{flex-wrap:wrap;width:100%}
  .nav__list{display:flex;flex-wrap:wrap;gap:4px 20px}
}

/* Breadcrumbs */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:0 .55em;color:var(--fg-mute)}
.crumbs li{display:flex;gap:.55em;align-items:baseline}
.crumbs li:not(:last-child)::after{content:"/";color:var(--fg-mute);font-variant-caps:normal}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs [aria-current]{color:var(--fg)}

/* ---------- Plates ---------- */
.plate{margin:0;position:relative}
.plate__frame{position:relative;overflow:hidden;background-color:var(--paper-mount);background-size:cover;background-position:center;aspect-ratio:var(--ar)}
.night .plate__frame{background-color:var(--night-raised)}
.plate__frame picture{display:block;width:100%;height:100%}
.plate__frame img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,50% 50%)}
.cap{margin-top:var(--s3);font-size:.96875rem;line-height:1.42;color:var(--fg-soft);max-width:68ch}
.cap__n{font-variant-caps:all-small-caps;font-variant-numeric:lining-nums tabular-nums;letter-spacing:.06em;font-weight:500;color:var(--fg);margin-right:.85em;white-space:nowrap}
.cap__t{font-style:italic}
.cap__cr{display:block;margin-top:2px;font-size:.875rem;color:var(--fg-mute)}
.plate--bleed .cap,.plate--edge .cap{padding-inline:var(--gut)}

/* Opening compositions */
.open{position:relative}
.open--bleed .plate__frame{height:clamp(320px,82svh,1100px);aspect-ratio:auto}
.open--bleed.is-tall .plate__frame{height:clamp(320px,86svh,1100px)}
.open--bleed.is-short .plate__frame{height:clamp(320px,82svh,1000px)}
.title{padding-top:var(--s9)}
.title .crumbs{grid-column:3 / 13;margin-bottom:var(--s5)}
.title h1{grid-column:3 / 12}
.title .t-lead{grid-column:3 / 10;margin-top:var(--s5);max-width:38ch}
.title.is-recto .crumbs,.title.is-recto h1{grid-column:6 / 14}
.title.is-recto .t-lead{grid-column:6 / 13}

.open--split{align-items:end}
.open--split .open__text{grid-column:page-start / 6;align-self:end;padding:var(--s9) 0 var(--s3)}
.open--split .open__plate{grid-column:7 / bleed-end}
.open--split .plate__frame{height:clamp(420px,calc(100svh - var(--head) - 104px),1040px);aspect-ratio:auto}
.open--split .cap{padding-right:var(--gut)}
.open--split-r .open__plate{grid-column:bleed-start / 9}
.open--split-r .open__text{grid-column:10 / page-end;align-self:end;padding:var(--s9) 0 var(--s3)}
.open--split-r .cap{padding-left:var(--gut)}
.open--split-r .plate__frame{height:clamp(420px,calc(100svh - var(--head) - 104px),1040px);aspect-ratio:auto}
.open__text .crumbs{margin-bottom:var(--s6)}
.open__text .t-lead{margin-top:var(--s5)}
.open__text .actions{margin-top:var(--s6)}

.open--alone{padding-top:var(--s8)}
.open--alone .open__plate{grid-column:4 / 12}
.open--alone.is-portrait .open__plate{grid-column:5 / 10}
.open--alone .title{padding-top:var(--s8)}

/* Frontispiece (home) */
.front .open__text{padding-top:var(--s8)}
.front__mark{width:clamp(76px,7vw,112px);margin-bottom:clamp(32px,5vw,64px)}

/* Facts as a colophon list */
.facts{padding-top:var(--s9)}
.facts dl{grid-column:3 / 14;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5) var(--gap);border-top:1px solid var(--rule);padding-top:var(--s5)}
.facts dt{font-size:clamp(1.625rem,1.05rem + 1.55vw,2.375rem);line-height:1.08;letter-spacing:-.012em;font-variant-numeric:lining-nums}
.facts dd{margin-top:var(--s2);color:var(--fg-soft);font-size:1.0625rem;line-height:1.45;max-width:24ch}

/* Text pages */
.textpage .col{grid-column:3 / 10}
.textpage.is-recto .col{grid-column:7 / 14}
.textpage.is-wide .col{grid-column:3 / 12}
.textpage h2.t-title{margin-bottom:var(--s6)}
.aside{grid-column:10 / 14;align-self:start;color:var(--fg-soft);font-size:1.0625rem;line-height:1.55;padding-top:var(--s3);border-top:1px solid var(--rule)}
.textpage.is-recto .aside{grid-column:2 / 6;grid-row:1}
.pull{font-size:clamp(1.5rem,1.15rem + 1.2vw,2.25rem);line-height:1.25;font-style:italic;letter-spacing:-.008em}

/* Plate alone on white */
.alone .plate{grid-column:4 / 12}
.alone.is-left .plate{grid-column:2 / 9}
.alone.is-right .plate{grid-column:7 / 14}
.alone.is-portrait .plate{grid-column:6 / 11}
.alone.is-portrait.is-left .plate{grid-column:3 / 8}

/* Diptych */
.dip{align-items:end;row-gap:var(--s6)}
.dip>.plate:first-child{grid-column:page-start / 9}
.dip>.plate:nth-child(2){grid-column:10 / page-end;padding-bottom:var(--s9)}
.dip.is-mirror>.plate:first-child{grid-column:page-start / 6;padding-bottom:var(--s9);align-self:end}
.dip.is-mirror>.plate:nth-child(2){grid-column:7 / page-end;padding-bottom:0}
.dip__note{grid-column:10 / page-end;margin-top:calc(-1 * var(--s8));color:var(--fg-soft)}
.dip.is-mirror .dip__note{grid-column:page-start / 6;margin-top:0}

/* The figure plate */
.figureplate{overflow:clip;padding-top:var(--sec)}
.figureplate__n{grid-column:bleed;text-align:center;font-feature-settings:"lnum" 1}
.figureplate__l{grid-column:4 / 12;text-align:center;margin-top:var(--s6)}

/* Contents (table of contents) */
.toc__head{grid-column:3 / 10;margin-bottom:var(--s7)}
.toc__list{grid-column:3 / 14;list-style:none;border-top:1px solid var(--rule)}
.toc__item a,.toc__row{display:grid;grid-template-columns:4.75rem minmax(0,1.15fr) minmax(0,1fr);gap:var(--s2) var(--gap);align-items:baseline;padding:var(--s5) 0;text-decoration:none}
.toc__item a:hover .t-heading,.toc__item a:focus-visible .t-heading{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:.18em}
.toc__n{color:var(--fg-mute)}
.toc__d{color:var(--fg-soft);font-size:1.0625rem;line-height:1.5}
.toc__meta{grid-column:2;color:var(--fg-mute);font-size:.9375rem;font-variant-numeric:lining-nums}

/* Contents with a plate frame (services) */
.contents{align-items:start}
.contents .toc__list{grid-column:page-start / 8}
.contents__frame{grid-column:9 / page-end;position:sticky;top:calc(var(--head) + 32px);display:grid}
.contents__frame .plate{grid-area:1 / 1;opacity:0}
.contents__frame .plate.is-shown{opacity:1}
.toc__thumb{display:none}

/* Night spread */
.night{--field-line:rgba(237,232,225,.6);--fg:var(--night-ink);--fg-soft:var(--night-soft);--fg-mute:var(--night-mute);--bg:var(--night);--rule:var(--night-hair);--rule-strong:rgba(237,232,225,.36);--err:var(--error-night);background:var(--night);color:var(--night-ink);caret-color:var(--night-ink);color-scheme:dark}
.nightspread{margin-top:var(--sec);padding-block:var(--sec)}
.nightspread+.colophon{margin-top:0}
.nightspread .plate{grid-column:bleed-start / 9}
.nightspread .plate .cap{padding-left:var(--gut)}
.nightspread .nightspread__t{grid-column:10 / page-end;align-self:center}
.nightspread.is-mirror .plate{grid-column:7 / bleed-end}
.nightspread.is-mirror .plate .cap{padding:0 var(--gut) 0 0}
.nightspread.is-mirror .nightspread__t{grid-column:page-start / 6;grid-row:1}
.nightspread__t>*+*{margin-top:var(--s5)}
.nightspread.is-type .nightspread__t{grid-column:3 / 12}
.nightspread.is-type .nightspread__t>.t-display,.nightspread.is-type .nightspread__t>.t-title{max-width:22ch}

/* Buttons */
.actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:var(--fg);color:var(--bg);border:1px solid var(--fg);text-decoration:none;font-variant-caps:all-small-caps;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size);line-height:1;white-space:nowrap;transition:background-color .25s,color .25s,transform .12s;max-width:100%}
.btn:hover{background:var(--ink-hover);border-color:var(--ink-hover)}
.night .btn:hover{background:var(--night-soft);border-color:var(--night-soft)}
.btn:active{transform:translateY(1px)}
.btn--line{background:transparent;color:var(--fg);border-color:var(--field-line)}
.btn--line:hover{background:transparent;border-color:var(--fg)}
.night .btn--line:hover{background:transparent;border-color:var(--night-ink)}
.btn[aria-busy=true]{opacity:.7;cursor:progress}
.btn:disabled{opacity:.35;cursor:not-allowed}
.go{font-variant-caps:all-small-caps;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size);text-underline-offset:.3em}

/* Stage sequence (approach) */
.stages{align-items:start}
.stages__frame{grid-column:bleed-start / 8;position:sticky;top:var(--head);height:calc(100svh - var(--head));display:flex;flex-direction:column;justify-content:center;padding:var(--s6) 0 var(--s6) var(--gut)}
.stages__frame .plate{position:absolute;left:var(--gut);right:0;top:50%;transform:translateY(-50%);opacity:0}
.stages__frame .plate.is-shown{opacity:1}
.stages__frame .plate .plate__frame{max-height:calc(100svh - var(--head) - 140px)}
.stages__list{grid-column:9 / page-end;list-style:none;padding-block:16svh 8svh}
.stage{min-height:62svh;display:flex;flex-direction:column;justify-content:center;padding-block:var(--s7)}
.stage+.stage{border-top:1px solid var(--rule)}
.stage__n{color:var(--fg-mute);margin-bottom:var(--s3)}
.stage h2{margin-bottom:var(--s5)}
.stage dl{margin-top:var(--s5);display:grid;gap:var(--s4)}
.stage dt{font-variant-caps:all-small-caps;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size);color:var(--fg)}
.stage dd{color:var(--fg-soft);font-size:1.0625rem;line-height:1.55;margin-top:2px}
.stage .plate--inline{display:none}

/* Practice stages on service pages */
.how{list-style:none;grid-column:3 / 14;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s8) var(--gap);counter-reset:how}
.how li{border-top:1px solid var(--rule);padding-top:var(--s4)}
.how h3{margin:var(--s2) 0 var(--s3)}
.how p{color:var(--fg-soft);font-size:1.0625rem;line-height:1.55}

/* Deliverables list */
.receive{grid-column:3 / 13;list-style:none;columns:2;column-gap:var(--s8)}
.receive li{break-inside:avoid;padding:var(--s3) 0;border-top:1px solid var(--rule)}

/* Related pages */
.related__head{grid-column:3 / 10;margin-bottom:var(--s6)}
.related__list{grid-column:3 / 14;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6) var(--gap)}
.related__list.is-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.related__list a{display:block;text-decoration:none}
.related__list .plate__frame{aspect-ratio:3/2}
.related__list .t-heading{margin-top:var(--s3)}
.related__list a:hover .t-heading{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:.18em}
.related__list p:not([class]){color:var(--fg-soft);font-size:1.0625rem;line-height:1.5;margin-top:var(--s1)}
.related__list .r-n{color:var(--fg-mute);margin-top:var(--s3)}

/* Closing route to contact */
.route{padding-block:var(--s9)}
.route__in{grid-column:3 / 13;border-top:1px solid var(--rule);padding-top:var(--s6);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--s5) var(--gap);align-items:end}
.route__in .actions{justify-content:flex-end}

/* Offices */
.office{display:grid;gap:var(--s2)}
.office address{font-style:normal}
.office .t-heading{font-weight:400;font-size:clamp(1.75rem,1.3rem + 1.4vw,2.75rem);letter-spacing:-.012em;line-height:1.05}
.offices__pair{grid-column:page-start / page-end;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s8) var(--gap)}
@media (min-width:768px) and (max-width:1023px){.offices__pair{grid-column:3 / 14;grid-template-columns:repeat(2,minmax(0,1fr))}}
.markets{grid-column:3 / 13;list-style:none;display:flex;flex-direction:column;gap:var(--s1)}

/* Form sheet */
.formsheet{background:var(--paper-deep);padding-block:var(--s9)}
.formsheet__aside{grid-column:page-start / 5}
.formsheet__aside>*+*{margin-top:var(--s4)}
.form{grid-column:6 / page-end;max-width:760px}
.form fieldset{border:0;min-width:0}
.form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gap)}
.field{display:flex;flex-direction:column;gap:var(--s2);margin-bottom:var(--s6)}
.field label,.field .label{font-variant-caps:all-small-caps;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size);line-height:1.3}
.field .opt{font-variant-caps:normal;letter-spacing:0;font-weight:400;font-style:italic;color:var(--fg-mute);margin-left:.4em}
.field input,.field select,.field textarea{width:100%;min-height:52px;border:0;border-bottom:1px solid var(--field-line);background:transparent;padding:10px 0;font-size:1.1875rem;line-height:1.4;border-radius:0;appearance:none;-webkit-appearance:none;color:var(--fg);transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:168px;resize:vertical}
.field select{padding-right:32px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%232A231F' d='M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z'/%3E%3C/svg%3E") no-repeat right 4px center/16px 16px;cursor:pointer}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-mute);opacity:1}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom:2px solid var(--fg);padding-bottom:9px}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--fg);outline-offset:4px}
.field__help{font-size:.96875rem;color:var(--fg-mute);line-height:1.45}
.field__err{font-size:.96875rem;color:var(--err);line-height:1.45}
.field__err:empty{display:none}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-bottom-color:var(--err)}
.file{position:relative;border:1px dashed var(--field-line);padding:var(--s5);display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.file input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0;border:0}
.file input:focus-visible+.file__ui{outline:2px solid var(--fg);outline-offset:6px}
.file__ui{display:flex;flex-direction:column;gap:2px;pointer-events:none}
.file__name{color:var(--fg-soft);font-size:1rem}
.hp{display:none!important}
.form__status{margin-bottom:var(--s5);padding:var(--s4) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.form__status:empty{display:none}
.form__status.is-error{color:var(--err)}
.form__done{padding:var(--s6) 0}
.form__done:focus{outline:none}
.form__note{margin-top:var(--s5);font-size:.96875rem;color:var(--fg-mute)}

/* Vacancies */
.roles{grid-column:3 / 14;list-style:none;border-top:1px solid var(--rule)}
.roles:not(.roles--detail) a{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:var(--s2) var(--gap);align-items:baseline;padding:var(--s5) 0;border-bottom:1px solid var(--rule);text-decoration:none}
.roles:not(.roles--detail) a:hover .t-heading{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:.18em}
.roles .tags{color:var(--fg-soft);font-size:1.0625rem}
.roles .apply{color:var(--fg-mute)}

/* Index entries (intelligence, insights) */
.entries{grid-column:3 / 14;list-style:none}
.entry{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr) minmax(0,15rem);gap:var(--s3) var(--gap);padding:var(--s6) 0;border-top:1px solid var(--rule);align-items:baseline}
.entry__k{color:var(--fg-mute)}
.entry__k span{display:block}
.entry h3{margin-bottom:var(--s3)}
.entry p{color:var(--fg-soft);max-width:56ch}
.entry__go{justify-self:end;text-align:right}
.entry__go a{white-space:nowrap}

/* ---------- Colophon ---------- */
.colophon{background:var(--paper-deep);padding:var(--s10) 0 var(--s7);margin-top:var(--sec)}
.colophon__lockup{grid-column:page-start / 5}
.colophon__lockup img{width:clamp(140px,13vw,190px);height:auto}
.colophon__line{margin-top:var(--s5);font-style:italic;color:var(--ink-soft);max-width:22ch}
.colophon__offices{grid-column:6 / 10;display:grid;gap:var(--s5);align-content:start}
.colophon__offices address{font-style:normal;line-height:1.5}
.colophon__nav{grid-column:10 / page-end;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--gap);align-content:start}
.colophon h2{font-variant-caps:all-small-caps;letter-spacing:.075em;font-weight:500;font-size:1rem;line-height:1.3;margin-bottom:var(--s3);color:var(--ink-mute)}
.colophon ul{list-style:none}
.colophon li a{display:inline-block;padding:3px 0;text-decoration:none;font-size:1.0625rem}
.colophon li a:hover{text-decoration:underline}
.colophon__base{grid-column:page;margin-top:var(--s9);padding-top:var(--s4);border-top:1px solid var(--hair);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3) var(--s6);font-size:1rem;color:var(--ink-mute)}
.colophon__base ul{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}
.colophon__base a{color:var(--ink)}

/* ---------- 404 ---------- */
.lost .title h1{max-width:16ch}

/* ---------- Motion (DESIGN.md, Motion) ----------
   Rules of this block:
   - nothing moves under prefers-reduced-motion: reduce;
   - every hidden starting state requires scripting AND the .js class that early.js sets (and removes after 4 s if site.js never runs),
     so content is in its final state without JavaScript or if the script fails;
   - only transform, opacity, filter, clip-path and object-position are animated. */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:turn-out .65s var(--ease-page) both}
  ::view-transition-new(root){animation:turn-in .65s var(--ease-page) both}
  ::view-transition-group(runninghead){animation-duration:0s}
  @keyframes turn-out{to{opacity:0;transform:translateX(-4%)}}
  @keyframes turn-in{from{opacity:0;transform:translateX(3%)}}

  .skip{transition:transform .2s}
  .nav__toggle svg{transition:transform .3s var(--ease-settle)}
  .svcmenu.is-open{animation:fadein .25s var(--ease-settle)}
  .msheet.is-open{animation:fadein .3s var(--ease-settle)}
  .contents__frame .plate{transition:opacity .9s var(--ease-develop)}
  .stages__frame .plate{transition:opacity 1.1s var(--ease-develop)}
  .rh::after{transition:opacity .4s}

  @media (scripting:enabled){
    /* Develop: plates resolve from soft to sharp, like a print in the tray. */
    .js .plate img{opacity:.001;filter:blur(18px) contrast(.82) brightness(1.08);transform:scale(1.015)}
    .js .plate.is-developed img{opacity:1;filter:none;transform:none;transition:opacity 1.1s var(--ease-develop),filter 1.8s var(--ease-develop),transform 1.8s var(--ease-develop)}
    .js .plate .cap{opacity:0;transform:translateY(8px)}
    .js .plate.is-developed .cap{opacity:1;transform:none;transition:opacity .7s .9s var(--ease-settle),transform .7s .9s var(--ease-settle)}

    /* Timed moments, started by the observer when the plate is in view (is-developed). */
    /* Funding: the tower rises from the ground */
    .js [data-moment=rise] picture{clip-path:inset(64% 0 0 0)}
    .js [data-moment=rise].is-developed picture{clip-path:inset(0);transition:clip-path 2.4s .2s var(--ease-develop)}
    /* Investor readiness: the stage lights come up */
    .js [data-moment=stagelight] img{filter:brightness(.3)}
    .js [data-moment=stagelight].is-developed img{filter:brightness(1);transition:opacity 1.1s var(--ease-develop),filter 2.8s .3s var(--ease-develop)}
    /* Structured finance: the aqueduct is revealed tier by tier, bottom to top */
    .js [data-moment=tiers] .veil i{transform:scaleY(1);transition:transform 1.2s var(--ease-develop)}
    .js [data-moment=tiers].is-developed .veil i{transform:scaleY(0)}
    .js [data-moment=tiers].is-developed .veil i:nth-child(3){transition-delay:.25s}
    .js [data-moment=tiers].is-developed .veil i:nth-child(2){transition-delay:.55s}
    .js [data-moment=tiers].is-developed .veil i:nth-child(1){transition-delay:.85s}
    /* M&A: two halves join into one image */
    .js [data-moment=join] .plate__half--a{transform:translateX(-8%)}
    .js [data-moment=join] .plate__half--b{transform:translateX(8%)}
    .js [data-moment=join].is-developed .plate__half{transform:none;transition:transform 2.2s .2s var(--ease-develop)}
    /* Venture building: the pour builds in five stages, left to right */
    .js [data-moment=pour] .veil i{transform:scaleY(1);transition:transform .9s var(--ease-develop)}
    .js [data-moment=pour].is-developed .veil i{transform:scaleY(0)}
    .js [data-moment=pour].is-developed .veil i:nth-child(2){transition-delay:.3s}
    .js [data-moment=pour].is-developed .veil i:nth-child(3){transition-delay:.6s}
    .js [data-moment=pour].is-developed .veil i:nth-child(4){transition-delay:.9s}
    .js [data-moment=pour].is-developed .veil i:nth-child(5){transition-delay:1.2s}
    /* Co-investment: the two decks settle into alignment */
    .js [data-moment=parallel] .plate__half--a{transform:translateY(6%)}
    .js [data-moment=parallel] .plate__half--b{transform:translateY(-6%)}
    .js [data-moment=parallel].is-developed .plate__half{transform:none;transition:transform 2.6s .2s var(--ease-develop)}
    /* Track record: the dam turns level */
    .js [data-moment=turn] picture{transform:rotate(-4deg) scale(1.14)}
    .js [data-moment=turn].is-developed picture{transform:scale(1.02);transition:transform 2.8s .1s var(--ease-develop)}
    /* Contact: the doorway opens */
    .js [data-moment=door] picture{clip-path:inset(0 50% 0 50%)}
    .js [data-moment=door].is-developed picture{clip-path:inset(0);transition:clip-path 1.7s .15s var(--ease-develop)}
    /* Privacy: the plate opens from a narrow slit */
    .js [data-moment=slit] picture{clip-path:inset(0 46% 0 46%)}
    .js [data-moment=slit].is-developed picture{clip-path:inset(0);transition:clip-path 2.4s .2s var(--ease-develop)}
    /* 404: the heading resolves out of the fog */
    .js .lost h1{filter:blur(12px);opacity:.2}
    .js .lost.is-clear h1{filter:none;opacity:1;transition:filter 2s .8s var(--ease-develop),opacity 1.6s .8s var(--ease-develop)}
    /* Insights: entries set like type */
    .js .entries.is-staged .entry{opacity:0;transform:translateY(12px)}
    .js .entries.is-staged.is-in .entry{opacity:1;transform:none;transition:opacity .9s var(--ease-settle),transform .9s var(--ease-settle);transition-delay:calc(var(--i,0) * 70ms)}
  }

  /* Scroll-driven moments: these run with or without JavaScript; their start state is
     always a readable image or text. */
  @supports (animation-timeline:view()){
    .plate--bleed:not([data-moment]) picture,.open--bleed .plate:not([data-moment]) picture{animation:pushin linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes pushin{from{transform:scale(1)}to{transform:scale(1.075)}}

    /* Home: the figure settles like type into a forme */
    .figureplate__n{animation:settle-type linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
    @keyframes settle-type{from{transform:scale(1.12) translateY(6%);opacity:.18}to{transform:none;opacity:1}}

    /* About: the city's lights come on */
    [data-moment=lights] picture{animation:lights linear both;animation-timeline:view();animation-range:entry 20% cover 55%}
    @keyframes lights{from{filter:brightness(.35) contrast(1.2)}to{filter:none}}

    /* Intelligence: the array sweeps */
    [data-moment=sweep] img{animation:sweep linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes sweep{from{object-position:15% 50%}to{object-position:85% 50%}}

    /* Founders: down the road */
    [data-moment=road] picture{animation:road linear both;animation-timeline:view();animation-range:exit 0% exit 100%;transform-origin:50% 72%}
    @keyframes road{from{transform:none}to{transform:scale(1.18) translateY(-3%)}}

    /* Offices: the two cities meet */
    [data-moment=meet-a]{animation:meet-a linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
    [data-moment=meet-b]{animation:meet-b linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
    @keyframes meet-a{from{transform:translateX(-7vw)}to{transform:none}}
    [data-moment=meet-c]{animation:meet-c linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
    @keyframes meet-b{from{transform:translateX(7vw)}to{transform:none}}
    @keyframes meet-c{from{transform:translateY(6vh)}to{transform:none}}

    /* Vacancies: from the beam down to the city */
    [data-moment=descend] img{animation:descend linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    @keyframes descend{from{object-position:50% 20%}to{object-position:50% 100%}}

    /* Legal: along the aisle */
    [data-moment=aisle] picture{animation:aisle linear both;animation-timeline:view();animation-range:exit 0% exit 100%;transform-origin:50% 55%}
    @keyframes aisle{from{transform:none}to{transform:scale(1.15)}}
  }
}
@keyframes fadein{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ---------- Responsive ---------- */
@media (max-width:1023px){
  .open--split .open__text,.open--split-r .open__text{grid-column:page-start / 8}
  .open--split .open__plate{grid-column:8 / bleed-end}
  .open--split-r .open__plate{grid-column:bleed-start / 8}
  .open--split-r .open__text{grid-column:8 / page-end}
  .stages__frame{grid-column:bleed-start / 7}
  .stages__list{grid-column:8 / page-end}
  .contents .toc__list{grid-column:page}
  .contents__frame{display:none}
}
@media (max-width:767px){
  :root{--head:60px}
  body{font-size:1.125rem}
  .g>*{grid-column:page!important}
  .g>.bleed,.open--split .open__plate,.open--split-r .open__plate,.open--bleed .plate,.nightspread .plate,.stages__frame{grid-column:bleed!important}
  .rh__brand img{height:11px}
  .open--split .open__plate,.open--split-r .open__plate{order:-1}
  .open--split .plate__frame,.open--split-r .plate__frame{height:auto;aspect-ratio:var(--ar-m,4/5)}
  .open--split .cap,.open--split-r .cap{padding-inline:var(--gut)}
  .open--split .open__text,.open--split-r .open__text{padding:var(--s7) 0 0}
  .open--bleed .plate__frame,.open--bleed.is-tall .plate__frame,.open--bleed.is-short .plate__frame{height:auto;aspect-ratio:var(--ar-m,var(--ar))}
  .title{padding-top:var(--s7)}
  .facts dl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s6)}
  .alone .plate,.alone.is-portrait .plate{grid-column:page!important}
  .dip>.plate:nth-child(2),.dip.is-mirror>.plate:first-child{padding:0 0 0 12vw}
  .dip.is-mirror>.plate:first-child{order:2}
  .dip__note{margin-top:0}
  .toc__item a,.toc__row{grid-template-columns:3.25rem minmax(0,1fr)}
  .toc__item a .toc__d,.toc__row .toc__d{grid-column:2}
  .contents .toc__item a{grid-template-columns:3.25rem minmax(0,1fr)}
  .toc__thumb{display:block;grid-column:2;grid-row:auto;margin-bottom:var(--s2)}
  .nightspread .plate .cap{padding-inline:var(--gut)}
  .nightspread .nightspread__t{margin-top:var(--s7)}
  .nightspread.is-mirror .nightspread__t{grid-row:auto}
  .stages__frame{display:none}
  .stages__list{padding-block:0}
  .stage{min-height:0;padding-block:var(--s7)}
  .stage .plate--inline{display:block;margin-bottom:var(--s5)}
  .how{grid-template-columns:1fr;gap:var(--s6)}
  .receive{columns:1}
  .related__list,.related__list.is-two{grid-template-columns:1fr;gap:var(--s7)}
  .route__in{grid-template-columns:1fr}
  .route__in .actions{justify-content:flex-start}
  .offices__pair{grid-template-columns:1fr}
  .form__row{grid-template-columns:1fr}
  .formsheet__aside{margin-bottom:var(--s7)}
  .roles:not(.roles--detail) a{grid-template-columns:1fr}
  .entry{grid-template-columns:1fr;gap:var(--s2)}
  .entry__go{justify-self:start;text-align:left;margin-top:var(--s2)}
  .colophon__nav{grid-template-columns:1fr 1fr}
  .colophon__offices,.colophon__nav{margin-top:var(--s7)}
  .figureplate__l{margin-top:var(--s4)}
}
@media (min-width:768px) and (max-width:1023px){
  .facts dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .textpage .col,.textpage.is-recto .col{grid-column:2 / 13}
  .aside,.textpage.is-recto .aside{grid-column:2 / 13;grid-row:auto;margin-top:var(--s6)}
  .colophon__lockup{grid-column:page-start / 7}
  .colophon__offices{grid-column:8 / page-end}
  .colophon__nav{grid-column:page;margin-top:var(--s7)}
  .form{grid-column:page}
  .formsheet__aside{grid-column:page;margin-bottom:var(--s7)}
  .nightspread .nightspread__t,.nightspread.is-mirror .nightspread__t{grid-column:page;grid-row:auto;margin-top:var(--s7)}
  .nightspread .plate,.nightspread.is-mirror .plate{grid-column:bleed}
}

@media print{
  .rh,.msheet,.skip,.colophon__nav,.form{display:none}
  .night{background:none;color:#000}
  .plate img{opacity:1!important;filter:none!important}
}

/* Home: approach in brief, and the reading lists */
.stagelist{list-style:none;margin-top:var(--s2)}
.stagelist li{display:grid;grid-template-columns:2.75rem minmax(0,1fr);gap:var(--s1) var(--s3);padding:var(--s5) 0;border-top:1px solid var(--rule)}
.stagelist li>p{grid-column:2;color:var(--fg-soft);font-size:1.0625rem;line-height:1.55}
.stagelist li>.t-sc{padding-top:.35em}
.reading{row-gap:var(--s8)}
.reading__col{grid-column:span 6}
.reading__col:first-child{grid-column:page-start / 8}
.reading__col:last-child{grid-column:9 / page-end}
.reading__col>p{margin-top:var(--s2)}
.reading ul{list-style:none;margin-top:var(--s6);border-top:1px solid var(--rule)}
.reading li{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:var(--s3);padding:var(--s4) 0;border-bottom:1px solid var(--rule);align-items:baseline}
.reading li a{text-decoration:none;font-size:1.1875rem;line-height:1.35}
.reading li a:hover{text-decoration:underline;text-decoration-color:var(--rule-strong)}
@media (max-width:767px){.reading li{grid-template-columns:1fr;gap:var(--s1)}}

/* About: principles */
.principles__h{grid-column:3 / 10;margin-bottom:var(--s7)}
.principles__list{grid-column:3 / 14;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6) var(--gap)}
.principles__list>div{border-top:1px solid var(--rule);padding-top:var(--s4)}
.principles__list dd{margin-top:var(--s3);color:var(--fg-soft);font-size:1.0625rem;line-height:1.55}
@media (max-width:767px){.principles__list{grid-template-columns:1fr}}

/* Service pages */
.how__h{grid-column:3 / 10;margin-bottom:var(--s7)}
.how li>.t-sc{display:block}
.when{list-style:none;margin-top:var(--s3)}
.when li{padding:var(--s3) 0;border-top:1px solid var(--rule)}
.aside .when li{font-size:1.0625rem}
.textpage__wide{grid-column:3 / 13}
.when--wide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--gap);margin-top:var(--s6)}
.when--wide li{font-size:1.1875rem;padding-top:var(--s4)}
.receive--night{grid-column:auto;margin-top:var(--s6);columns:2;column-gap:var(--s8)}
.receive--night li{font-size:1.25rem;line-height:1.4}
@media (max-width:767px){.when--wide{grid-template-columns:1fr}.receive--night{columns:1}}

/* Track record */
.facts--large{padding-top:var(--s9)}
.facts--large dt{font-size:clamp(2rem,1.2rem + 2.4vw,3.5rem)}
.sectors__h{grid-column:3 / 10;margin-bottom:var(--s7)}

/* Founders: stage map */
.stagemap{grid-column:3 / 14}
.stagemap dl>div,dl.stagemap>div{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:var(--s2) var(--gap);padding:var(--s5) 0;border-top:1px solid var(--rule);align-items:baseline}
.stagemap dd{color:var(--fg-soft)}
.stagemap dd a{color:var(--fg)}
.stagemap__note{margin-top:var(--s5)}
@media (max-width:767px){.stagemap dl>div,dl.stagemap>div{grid-template-columns:1fr}}

/* Offices */
.office-col{display:grid;gap:var(--s5);align-content:start}
.office-col--low{padding-top:var(--s10)}
.office address{line-height:1.55}
.office-mini{margin-top:var(--s7);display:grid;gap:var(--s5);font-size:1.0625rem}
.office-mini .office .t-sc{display:block;margin-bottom:var(--s1)}
.colophon__offices .office .t-sc{display:block;margin-bottom:var(--s1)}
.markets{margin-top:var(--s6)}
@media (max-width:767px){.office-col--low{padding-top:0}}

/* 404 */
.lost__links{grid-column:3 / 13;list-style:none;display:flex;flex-wrap:wrap;gap:var(--s3) var(--s8)}
.lost__links a{text-decoration-thickness:1px}

/* Service page variants */
.how--strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6) var(--gap)}
.how--line{grid-template-columns:1fr;gap:0}
.how--line li{display:grid;grid-template-columns:minmax(13rem,1fr) minmax(0,2fr);gap:var(--s2) var(--gap);align-items:baseline;padding:var(--s5) 0}
.how--line li h3{margin:0}
.when--pull{list-style:none;grid-column:3 / 13;margin-top:var(--s6)}
.when--pull li{font-size:clamp(1.5rem,1.15rem + 1.2vw,2.25rem);line-height:1.22;letter-spacing:-.008em;padding:var(--s4) 0;border-top:1px solid var(--rule)}
.ledger{align-items:start}
.ledger__h{grid-column:3 / 7}
.ledger__list{grid-column:7 / 14;list-style:none;border-top:1px solid var(--rule)}
.ledger__list li{padding:var(--s4) 0;border-bottom:1px solid var(--rule);font-size:1.25rem;line-height:1.4}
.receive--single{columns:1}
@media (max-width:1023px){.how--strip{grid-template-columns:repeat(2,minmax(0,1fr))}.how--line li{grid-template-columns:minmax(12rem,1fr) minmax(0,1.6fr)}}
@media (max-width:767px){.how--strip,.how--line li{grid-template-columns:1fr}.how--line li p{grid-column:1}.ledger__list{margin-top:var(--s5)}}

:lang(nl) .t-figure{font-size:clamp(4.75rem,19.5vw,19rem)}
@media (max-width:479px){
  .btn{white-space:normal;text-align:center;line-height:1.25;padding:12px 22px;max-width:100%;overflow-wrap:anywhere}
  .actions{gap:var(--s2)}
}
.how h3{margin-top:0}
.how p i{color:var(--fg)}
.stage h2 .stage__n{display:inline-block;min-width:1.6em;color:var(--fg-mute);font-variant-numeric:lining-nums;margin:0}
.toc__n{white-space:nowrap}
@media (max-width:767px){.toc__item a,.toc__row,.contents .toc__item a{grid-template-columns:5rem minmax(0,1fr)}}
.crumbs a{display:inline-block;padding-block:3px}
@media (max-width:767px){.nav{gap:var(--s5)}}
@media (max-width:379px){.rh .nav>.lang{display:none}.rh__brand img{height:10px}}

/* Round 1 fixes */
:lang(nl) .t-heading{hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:10 5 5}
.office{font-style:normal}
.nw{white-space:nowrap}
main:has(> .nightspread:last-child) + .colophon,main:has(> .lost:last-child) + .colophon{margin-top:0}
.formsheet__offices{grid-column:page-start / 5;margin-top:var(--s7)}
@media (max-width:1023px){
  .textpage.is-recto .aside{grid-row:auto}
  .formsheet__offices{grid-column:page}
}
@media (max-width:767px){
  .nightspread.is-mirror .plate .cap{padding-inline:var(--gut)}
  .aside{margin-top:var(--s7)}
  .entry__k{order:2}
  .entry>div{order:1}
  .entry__go{order:3}
  .stage[data-stage="0"] .plate--inline{display:none}
}
/* Practice pager: previous and next practice as a page turn */
.pager__list{grid-column:page;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.pager__list a{display:block;text-decoration:none}
.pager__list .plate__frame{aspect-ratio:16/9}
.pager__list .t-sc{margin-top:var(--s4)}
.pager__list .t-title{margin-top:var(--s1)}
.pager__next{text-align:right}
.pager__list a:hover .t-title{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:.15em}
@media (max-width:767px){.pager__list{grid-template-columns:1fr;gap:var(--s7)}.pager__next{text-align:left}}
.figureplate--early{padding-top:var(--s9)}

/* Practice page units */
.timeline{grid-column:2 / 14;list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6) var(--gap);position:relative;padding-top:var(--s7)}
.timeline::before{content:"";position:absolute;left:0;right:0;top:calc(var(--s7) + .7em);height:1px;background:var(--rule-strong)}
.timeline li{position:relative}
.timeline__n{display:inline-block;position:relative;background:var(--bg);padding-right:var(--s3);font-variant-numeric:lining-nums;font-size:1.375rem;color:var(--fg-mute);line-height:1.4}
.timeline h3{margin:var(--s4) 0 var(--s2)}
.timeline p{color:var(--fg-soft);font-size:1.0625rem;line-height:1.55}
.index{grid-column:2 / 14;list-style:none;border-top:1px solid var(--rule)}
.index li{display:grid;grid-template-columns:3.5rem minmax(0,1.3fr) minmax(0,1fr);gap:var(--s2) var(--gap);padding:var(--s6) 0;border-bottom:1px solid var(--rule);align-items:baseline}
.index__n{font-size:1.375rem;color:var(--fg-mute);font-variant-numeric:lining-nums}
.index li div p{color:var(--fg-soft);font-size:1.0625rem;line-height:1.55;margin-top:var(--s2)}
.index__r{font-style:italic;line-height:1.5}
.stack{grid-column:2 / 14;list-style:none}
.stack li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s3) var(--gap);align-items:end;padding:var(--s5) 0;border-top:1px solid var(--rule)}
.stack li:nth-child(1) .stack__n{font-size:clamp(2.5rem,1.5rem + 3.2vw,4.75rem)}
.stack li:nth-child(2) .stack__n{font-size:clamp(2.125rem,1.3rem + 2.6vw,3.875rem);padding-left:6%}
.stack li:nth-child(3) .stack__n{font-size:clamp(1.75rem,1.15rem + 2vw,3rem);padding-left:12%}
.stack__n{line-height:1;letter-spacing:-.02em}
.stack li p{color:var(--fg-soft);max-width:44ch}
.stack__note{grid-column:2 / 10;margin-top:var(--s6)}
.sides{row-gap:var(--s8)}
.sides__col:first-child{grid-column:2 / 8}
.sides__col:last-child{grid-column:9 / 14;padding-top:var(--s9)}
.sides__col .t-title{margin-bottom:var(--s5)}
.sides__col>p{color:var(--fg-soft)}
.sides__col .t-small{margin-top:var(--s5)}
@media (max-width:1023px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline::before{display:none}}
@media (max-width:767px){
  .timeline{grid-template-columns:1fr;padding-top:0}
  .index li{grid-template-columns:2.5rem minmax(0,1fr)}
  .index__r{grid-column:2}
  .stack li{grid-template-columns:1fr}
  .stack li .stack__n{padding-left:0!important}
  .sides__col:last-child{padding-top:0}
}
/* Intelligence: featured report */
.featured{align-items:start;row-gap:var(--s5)}
.featured__k{grid-column:2 / 5}
.featured__t{grid-column:5 / 13}
.featured__b{grid-column:5 / 12}
.featured__b>*+*{margin-top:var(--s5)}
@media (min-width:768px){.entry{grid-template-columns:minmax(0,11rem) minmax(0,1fr) minmax(0,14rem)}}
.entry__k{hyphens:manual;-webkit-hyphens:manual}
@media (max-width:767px){.featured__k,.featured__t,.featured__b{grid-column:page}}
/* Browser surfaces */
html{accent-color:var(--ink);-webkit-tap-highlight-color:rgba(42,35,31,.08)}
.night{accent-color:var(--night-ink)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--paper)}
::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:3px solid var(--paper)}

/* Typeset, layout and colorize pass */
.dip__note .t-heading{color:var(--fg)}
.entry .go,.dip__note .go,.aside .go{color:var(--fg)}
.how p,.timeline p,.index li div p,.stage dd,.principles__list dd,.sides__col>p,.stack li p{color:var(--fg)}
.nightspread__t,.stage,.sides__col,.stack__note,.stagemap dd,main .prose{max-width:66ch}
.how p,.timeline p,.index p{max-width:62ch}
.stagemap dd{max-width:60ch}
.night .nightspread__t p:not([class]){line-height:1.68;letter-spacing:.005em}
:lang(en) p{hyphenate-limit-chars:10 4 4;-webkit-hyphenate-limit-lines:2;hyphenate-limit-lines:2}
.nightspread__t .btn{white-space:normal;text-align:center;line-height:1.25;padding-block:12px}
.formsheet+.nightspread{margin-top:0}
@media (min-width:1024px){
  .formsheet__aside{grid-row:1}
  .formsheet__offices{grid-row:2;align-self:start;margin-top:var(--s7)}
  .formsheet .form{grid-row:1 / span 2}
  .toc__item a,.toc__row{grid-template-columns:4.75rem minmax(0,26rem) minmax(0,1fr)}
}
@media (min-width:1024px) and (max-width:1279px){
  .nightspread .plate{grid-column:bleed-start / 8}
  .nightspread .nightspread__t{grid-column:9 / page-end}
  .nightspread.is-mirror .plate{grid-column:7 / bleed-end}
  .nightspread.is-mirror .nightspread__t{grid-column:page-start / 7}
  .contents .toc__list{grid-column:page}
  .contents__frame{display:none}
}
@media (min-width:768px){
  /* Figure and label share rows across the line: figures sit on the last line of the tallest figure, each label directly beneath its own */
  .facts dl{row-gap:0}
  .facts dl>div{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0}
  .facts dt{align-self:end}
  .facts dd{margin-bottom:var(--s6)}
}
@media (max-width:480px){.stagelist li>p,.how p,.timeline p{hyphens:manual;-webkit-hyphens:manual}}
.colophon__nav>*,.colophon>*,.form__row>*,.offices__pair>*,.related__list>*,.pager__list>*{min-width:0}
h1,h2,h3,h4,dt,.t-display,.t-title,.t-heading,.t-lead,.pull{overflow-wrap:anywhere}
.sheet:has(>.offices__pair){overflow-x:clip}
@media (min-width:1280px){.contents .toc__item a{grid-template-columns:4.75rem minmax(0,1fr)}.contents .toc__d{grid-column:2;max-width:44ch}}
@media (max-width:767px){.featured__t{order:1}.featured__k{order:2}.featured__b{order:3}}
.colophon h2{overflow-wrap:normal;hyphens:auto;-webkit-hyphens:auto}
@media (max-width:479px){.colophon h2{letter-spacing:.06em}}
/* Header controls: 44 px tall hit areas without changing the line of type */
.nav__toggle{height:44px}
.lang a{padding-block:14px}
.menu-btn{padding-block:14px;padding-left:16px}
@media (min-width:1024px){:lang(nl) .nightspread__t .t-title{hyphens:manual;-webkit-hyphens:manual}}
/* Home: the horizon, edge to edge (the one full-bleed plate inside the home sequence) */
.horizon{margin-top:var(--sec)}
.horizon .plate__frame{height:clamp(320px,72svh,920px);aspect-ratio:auto}
@media (max-width:767px){.horizon .plate__frame{height:auto;aspect-ratio:var(--ar-m,var(--ar))}}
/* Related pages and the practice pager: typeset entries under a hairline, no thumbnails */
.related__list>li,.pager__list>li{border-top:1px solid var(--rule)}
.related__list a{padding-top:var(--s4)}
.related__list .t-heading{margin-top:0}
.pager__list a{padding-top:var(--s4)}
.pager__list .t-sc{margin-top:0}
/* Type-only night spread: a full spread set in type, not a band */
.nightspread.is-type{min-height:68svh;align-content:center}
.nightspread.is-type .nightspread__t{max-width:none}
.nightspread.is-type .nightspread__t>.t-title{font-size:clamp(2.25rem,1.5rem + 2.6vw,4rem);line-height:1.06;letter-spacing:-.018em;max-width:20ch}
.nightspread.is-type .nightspread__t>:not(.t-title):not(.t-display):not(.actions){max-width:58ch}
@media (max-width:767px){.nightspread.is-type{min-height:0}}
/* Supporting text that carries content is set in ink */
.aside,.receive li,.stack li p,.when li{color:var(--fg)}
.stack li p{font-size:1.0625rem;line-height:1.55}
/* Index rows (Intelligence, Insights) below 1024: label above, request link below */
@media (max-width:1023px){.entry{grid-template-columns:minmax(0,1fr)}.entry__go{justify-self:start;text-align:left}.entry__k{display:flex;gap:var(--s3)}}
/* Dutch headings break only at spaces or at soft hyphens placed at word boundaries in the source; meta lines never hyphenate */
:lang(nl) h1,:lang(nl) h2,:lang(nl) h3,:lang(nl) dt,:lang(nl) .t-display,:lang(nl) .t-title,:lang(nl) .t-heading{hyphens:manual;-webkit-hyphens:manual}
.featured__k,.entry__k,.lnum,.t-mute{hyphens:manual;-webkit-hyphens:manual}
@media (max-width:400px){:lang(nl) h2,:lang(nl) h3,:lang(nl) dt,:lang(nl) .t-title,:lang(nl) .t-heading{hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:13 6 5}}
@media (max-width:340px){:lang(nl) h2,:lang(nl) h3,:lang(nl) dt,:lang(nl) .t-title,:lang(nl) .t-heading{hyphenate-limit-chars:10 5 5}}

/* ---------- Set in type, rules that draw, tactile actions ----------
   Three additions to the motion layer, each with one job: the headline that matters arrives word by word,
   structure arrives in sequence, and actions answer the hand. All of it only under no-preference. */
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  @media (scripting:enabled){
    /* The page title waits for the script that sets it (early.js reveals it after 4 s if that script never runs). */
    .js:not(.title-ready) main h1{opacity:0}
    /* Words rise from behind their own baseline, like type settling into a forme. */
    .set .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.16em;margin-bottom:-.16em}
    .set .w>span{display:inline-block;transform:translateY(112%);transition:transform 1.05s var(--ease-settle);transition-delay:calc(var(--i,0) * 55ms + 120ms)}
    .set.is-set .w>span{transform:none}
    /* On phones the heading rises as one block, so long compounds can still break. */
    .rise{opacity:0;transform:translateY(16px)}
    .rise.is-set{opacity:1;transform:none;transition:opacity .9s var(--ease-settle),transform .9s var(--ease-settle)}
    /* Hairlines draw from left to right as they enter; related pages and the pager draw one after another. */
    .draw{position:relative;border-top-color:transparent}
    .draw:not(.timeline)::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--rule);pointer-events:none}
    .draw::before{transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--ease-develop);transition-delay:calc(var(--i,0) * 110ms + 60ms)}
    .draw.is-drawn::before{transform:none}
  }
  /* Buttons fill with ink from the left and press in when clicked. */
  .btn{position:relative;isolation:isolate;overflow:hidden;transition:color .3s .12s var(--ease-settle),border-color .45s var(--ease-settle),transform .15s var(--ease-settle)}
  .btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink-hover);transform:scaleX(0);transform-origin:0 50%;transition:transform .55s var(--ease-settle)}
  .btn:hover,.btn:focus-visible{background:var(--fg);border-color:var(--fg)}
  .night .btn:hover,.night .btn:focus-visible{background:var(--fg);border-color:var(--night-soft)}
  .night .btn::before{background:var(--night-soft)}
  .btn:hover::before,.btn:focus-visible::before{transform:none}
  .btn--line::before,.night .btn--line::before{background:var(--fg)}
  .btn--line:hover,.btn--line:focus-visible,.night .btn--line:hover,.night .btn--line:focus-visible{background:transparent;color:var(--bg);border-color:var(--fg)}
  .btn:active{transform:scale(.98)}
  .btn:disabled::before,.btn[aria-busy=true]::before{transform:scaleX(0)}
  /* Small-caps action links: a full underline sweeps across the quiet one. */
  .go{text-decoration:none;background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--rule-strong),var(--rule-strong));background-repeat:no-repeat;background-position:0 100%,0 100%;background-size:0% 1px,100% 1px;padding-bottom:.14em;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .55s var(--ease-settle)}
  .go:hover,.go:focus-visible{background-size:100% 1px,100% 1px}
}
/* Photo credits page: a type-only colophon page, so the title sits clear of the running head */
.title--first{padding-top:calc(var(--s9) + var(--s6))}
.entry__go.credit{text-align:right;line-height:1.5;font-size:1.0625rem}
.entry__go.credit a{white-space:normal}
@media (max-width:1023px){.entry__go.credit{text-align:left}}

/* ---------- Large format: full-screen photography ----------
   Bigger photography before bigger type. Three moves within the system's own full-bleed device:
   full-screen openers, full-screen night spreads where the spread has its own plate, and one held plate on Home. */
@media (min-width:1024px){
  /* Openers fill the screen below the running head. */
  .open--bleed .plate__frame,.open--bleed.is-tall .plate__frame,.open--bleed.is-short .plate__frame{height:max(560px,calc(100svh - var(--head)))}

  /* Night spreads with their own plate: the photograph fills the spread, the text sits on the night side of it. */
  /* The spread fills the screen below the running head; the caption sits on a strip of night ground under the photograph. */
  .nightspread:not(.is-type){position:relative;isolation:isolate;min-height:calc(100svh - var(--head));align-content:center;padding-block:var(--sec) calc(var(--sec) + 4.5rem)}
  /* grid-column/row auto: an absolutely positioned grid child otherwise fills only its own column */
  .nightspread:not(.is-type) .plate{position:absolute;inset:0;margin:0;grid-column:auto;grid-row:auto}
  /* no z-index on the figure (it would trap the caption under the gradient): photo below, gradient, then caption and text */
  .nightspread:not(.is-type) .plate__frame{z-index:0}
  .nightspread:not(.is-type) .plate__frame{position:absolute;inset:0 0 4.5rem 0;height:auto;aspect-ratio:auto}
  .nightspread:not(.is-type)::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(270deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 46%,rgba(23,18,15,.5) 64%,rgba(23,18,15,0) 82%),
               linear-gradient(0deg,rgba(23,18,15,1) 0,rgba(23,18,15,1) 4.5rem,rgba(23,18,15,.45) calc(4.5rem + 6%),rgba(23,18,15,0) 30%)}
  .nightspread.is-mirror:not(.is-type)::after{
    background:linear-gradient(90deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 46%,rgba(23,18,15,.5) 64%,rgba(23,18,15,0) 82%),
               linear-gradient(0deg,rgba(23,18,15,1) 0,rgba(23,18,15,1) 4.5rem,rgba(23,18,15,.45) calc(4.5rem + 6%),rgba(23,18,15,0) 30%)}
  .nightspread:not(.is-type) .nightspread__t{position:relative;z-index:2}
  .nightspread:not(.is-type) .plate .cap{position:absolute;z-index:2;left:var(--gut);right:var(--gut);bottom:1.1rem;padding:0}

  /* About: the city's lights are fully on once the spread has entered the screen */
  [data-moment=lights] picture{animation-range:entry 10% entry 100%}

  /* Home: the horizon holds the screen while the next page slides over it, like a plate under a turning leaf. */
  .horizon{position:relative;height:170svh;view-timeline-name:--horizon}
  .horizon>.bleed{position:sticky;top:var(--head);align-self:start}
  .horizon .plate__frame{height:calc(100svh - var(--head) - 4.75rem)}
  .horizon+section{position:relative;z-index:1;margin-top:-70svh;background:var(--bg)}
}
@media (min-width:1280px){
  /* Wide screens: the text column is narrower, so the night side of the gradient can be too, and the photograph shows more. */
  .nightspread:not(.is-type)::after{
    background:linear-gradient(270deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 38%,rgba(23,18,15,.45) 54%,rgba(23,18,15,0) 70%),
               linear-gradient(0deg,rgba(23,18,15,1) 0,rgba(23,18,15,1) 4.5rem,rgba(23,18,15,.45) calc(4.5rem + 6%),rgba(23,18,15,0) 30%)}
  .nightspread.is-mirror:not(.is-type)::after{
    background:linear-gradient(90deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 38%,rgba(23,18,15,.45) 54%,rgba(23,18,15,0) 70%),
               linear-gradient(0deg,rgba(23,18,15,1) 0,rgba(23,18,15,1) 4.5rem,rgba(23,18,15,.45) calc(4.5rem + 6%),rgba(23,18,15,0) 30%)}
}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .horizon .plate--bleed:not([data-moment]) picture{animation:hold-in linear both;animation-timeline:--horizon;animation-range:contain 0% contain 100%}
    @keyframes hold-in{from{transform:scale(1)}to{transform:scale(1.1)}}
  }
}
@media (max-width:767px){
  /* Phones: night plates in portrait, full width, before the text. */
  .nightspread:not(.is-type) .plate__frame{aspect-ratio:4/5}
}
@media (min-width:1024px){.nightspread:not(.is-type) .receive--night{columns:1}}

/* ---------- Held plates: the photograph holds the screen while the words pass over it ----------
   Each photographic night spread: the plate arrives alone and full-screen, sticks under the running head,
   and the passage rises over its night side; then the page moves on. CSS position:sticky only, no script. */
@media (min-width:1024px){
  .nightspread:not(.is-type){display:grid;align-content:start;min-height:0;padding:0;view-timeline-name:--spread}
  .nightspread:not(.is-type) .plate{position:sticky;inset:auto;top:var(--head);height:calc(100svh - var(--head));grid-row:1;grid-column:bleed-start / bleed-end;align-self:start;margin:0;background:var(--night)}
  .nightspread:not(.is-type) .plate__frame{position:absolute;inset:0 0 4.5rem 0}
  .nightspread:not(.is-type) .plate__frame::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(23,18,15,.85) 0%,rgba(23,18,15,0) 22%)}
  .nightspread:not(.is-type) .nightspread__t{grid-row:1;align-self:start;margin-top:82svh;margin-bottom:58svh}
  /* the side gradient lives on the spread and is as tall as it, so the night side stays dark the whole way */
  .nightspread:not(.is-type)::after{background:linear-gradient(270deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 46%,rgba(23,18,15,.5) 64%,rgba(23,18,15,0) 82%)}
  .nightspread.is-mirror:not(.is-type)::after{background:linear-gradient(90deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 46%,rgba(23,18,15,.5) 64%,rgba(23,18,15,0) 82%)}
}
@media (min-width:1280px){
  .nightspread:not(.is-type)::after{background:linear-gradient(270deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 38%,rgba(23,18,15,.45) 54%,rgba(23,18,15,0) 70%)}
  .nightspread.is-mirror:not(.is-type)::after{background:linear-gradient(90deg,rgba(23,18,15,.94) 0%,rgba(23,18,15,.9) 38%,rgba(23,18,15,.45) 54%,rgba(23,18,15,0) 70%)}
}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    /* a slow push-in while the plate is held (the plate itself does not move, so the spread drives it) */
    .nightspread:not(.is-type) .plate--bleed:not([data-moment]) picture{animation:hold-in linear both;animation-timeline:--spread;animation-range:contain 0% contain 100%}
    .nightspread:not(.is-type) [data-moment=lights] picture{animation:lights linear both;animation-timeline:--spread;animation-range:entry 30% contain 25%}
  }
}
/* Below 1024 px: full-screen photographs too, in portrait, before the text */
@media (max-width:1023px){
  .open--bleed .plate__frame,.open--bleed.is-tall .plate__frame,.open--bleed.is-short .plate__frame{height:calc(100svh - var(--head));min-height:420px;aspect-ratio:auto}
  .nightspread:not(.is-type) .plate__frame{height:calc(100svh - var(--head));min-height:420px;aspect-ratio:auto}
  .horizon .plate__frame{height:calc(100svh - var(--head));min-height:420px;aspect-ratio:auto}
}

/* ---------- Vacancies: each role opens in place (native <details>, works without script) ---------- */
.roles--detail>li{border-bottom:1px solid var(--rule)}
.roles--detail summary{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:var(--s2) var(--gap);align-items:baseline;padding:var(--s5) 0;cursor:pointer;list-style:none}
.roles--detail summary::-webkit-details-marker{display:none}
.roles--detail summary::marker{content:""}
.roles--detail summary:hover .t-heading{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:.18em}
.roles--detail summary:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
/* a thin plus that becomes a minus, drawn in the ink colour at hairline weight */
.role__ind{position:relative;width:15px;height:15px;align-self:center;justify-self:end}
.role__ind::before,.role__ind::after{content:"";position:absolute;background:var(--fg)}
.role__ind::before{left:0;right:0;top:7px;height:1px}
.role__ind::after{top:0;bottom:0;left:7px;width:1px}
.role[open] .role__ind::after{transform:scaleY(0)}
.role__body{padding:0 0 var(--s7);max-width:66ch}
.role__body ul{list-style:disc}
.role__body .role__h{margin-top:var(--s6);font-variant-caps:all-small-caps;letter-spacing:var(--sc-track);font-weight:500;font-size:var(--sc-size);line-height:1.3;color:var(--fg-mute)}
.role__body .role__h+*{margin-top:var(--s3)}
.role__apply{margin-top:var(--s6)!important}
.role__apply .apply{color:var(--fg);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:.3em}
.role__apply .apply:hover{text-decoration-color:currentColor}
@media (max-width:767px){
  .roles--detail summary{grid-template-columns:minmax(0,1fr) auto;row-gap:var(--s1);min-height:44px}
  .roles--detail summary .t-heading{grid-column:1;grid-row:1}
  .roles--detail summary .tags{grid-column:1;grid-row:2}
  .roles--detail summary .role__ind{grid-column:2;grid-row:1 / span 2}
}
@media (prefers-reduced-motion:no-preference){
  .role__ind::after{transition:transform .35s var(--ease-settle)}
  @supports (interpolate-size:allow-keywords){
    .roles--detail details{interpolate-size:allow-keywords}
    .roles--detail details::details-content{block-size:0;opacity:0;overflow-y:clip;transition:block-size .5s var(--ease-settle),opacity .45s var(--ease-settle),content-visibility .5s allow-discrete}
    .roles--detail details[open]::details-content{block-size:auto;opacity:1}
  }
}
@media print{
  .roles--detail details::details-content{content-visibility:visible!important;block-size:auto!important;opacity:1!important}
  .role__ind{display:none}
}
