@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,700&display=swap');

:root {
  --paper: #f3f2f2;
  --paper-deep: #eae9e9;
  --ink: #201e1d;
  --muted: #605d5d;
  --faint: #d7d3d3;
  --cyan: #0088b0;
  --cyan-dark: #006786;
  --magenta: #d6006c;
  --magenta-dark: #aa0b56;
  --yellow: #edbb00;
  --serif: "Source Serif 4", Georgia, serif;
  --space-1: .3125rem;
  --space-2: .625rem;
  --space-3: .9375rem;
  --space-4: 1.25rem;
  --space-6: 1.875rem;
  --space-8: 2.5rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--serif);
  font-size: .9375rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: var(--cyan-dark); }
a:hover { color: var(--magenta-dark); }
a:focus-visible, button:focus-visible { outline: .125rem solid var(--cyan); outline-offset: .1875rem; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; }

.wrap { max-width: 73.75rem; margin: 0 auto; padding: 0 var(--space-8); }
.wrap > header { position: sticky; top: 0; z-index: 20; background: var(--paper); }
.dateline, .folio, .subrail {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-4);
  color: var(--muted);
  font-size: .6875rem;
  letter-spacing: .13em;
  line-height: 1.3;
  text-transform: uppercase;
}
.dateline { padding: .875rem 0 .625rem; }
.masthead { border-top: .3125rem solid var(--ink); border-bottom: .0625rem solid var(--ink); padding: .875rem 0 .75rem; text-align: center; }
.masthead a { color: inherit; text-decoration: none; }
.masthead .title { display: block; font-size: clamp(2.375rem, 7.25vw, 5rem); font-weight: 600; letter-spacing: -.045em; line-height: .88; }
.subrail { border-bottom: .1875rem solid var(--ink); padding: .5rem 0 .75rem; }
.subrail .accent, .kicker-2 { color: var(--magenta-dark); }
.folio { display: grid; grid-template-columns: 1fr auto auto; border-bottom: .1875rem solid var(--ink); padding: .875rem 0 .75rem; }
.folio .name { grid-column: 1 / -1; color: var(--ink); font-size: clamp(2.375rem, 7.25vw, 5rem); font-weight: 600; letter-spacing: -.045em; line-height: .88; margin-bottom: .75rem; text-align: center; text-decoration: none; text-transform: none; }
.masthead-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.125rem; border-bottom: .0625rem solid var(--faint); padding: .75rem 0; font-size: .875rem; }
.masthead-nav a { color: var(--muted); text-decoration: none; }
.masthead-nav a:hover, .masthead-nav a[aria-current="page"] { color: var(--ink); }
.masthead-nav a[aria-current="page"] { border-bottom: .125rem solid var(--cyan); padding-bottom: .1875rem; }
.menu-toggle { display: none; border: 0; background: none; color: var(--cyan-dark); cursor: pointer; font: inherit; font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; }

.kicker, .meta, .date { font-size: .625rem; letter-spacing: .14em; text-transform: uppercase; }
.kicker { color: var(--cyan-dark); }
.kicker-rule { border-bottom: .0625rem solid var(--ink); margin-bottom: var(--space-3); padding-bottom: var(--space-2); }
.meta, .date, .muted { color: var(--muted); }
.date { letter-spacing: .08em; }
.lede { color: #444141; font-size: 1.1875rem; font-style: italic; line-height: 1.45; }
.body-text { margin: 0 0 var(--space-3); font-size: 1rem; line-height: 1.55; }
.body-text.small { font-size: .875rem; }
.hed-xl, .hed-l, .hed-m, .hed-s { margin: 0 0 var(--space-3); line-height: 1.04; letter-spacing: -.025em; }
.hed-xl { font-size: clamp(1.9375rem, 4.4vw, 2.8125rem); }
.hed-l { font-size: clamp(2.125rem, 5vw, 3.25rem); }
.hed-m { font-size: 1.6875rem; }
.hed-s { font-size: 1.1875rem; line-height: 1.22; }
.dropcap::first-letter { float: left; padding: .375rem .4375rem 0 0; font-size: 2.875rem; font-weight: 600; line-height: .78; }

.front { display: grid; grid-template-columns: 1fr 1fr 1.4fr 1fr 1fr; gap: 0 var(--space-4); padding: var(--space-6) 0 var(--space-8); }
.front > * + * { border-left: .0625rem solid var(--faint); padding-left: var(--space-4); }
.rail-list { display: flex; flex-direction: column; gap: var(--space-2); font-size: .875rem; line-height: 1.3; }
.rail-list a { color: var(--ink); text-decoration: none; }
.rail-list a:hover { color: var(--cyan-dark); }
.rail-list span { color: var(--muted); }
.filings, .clips, .entries { list-style: none; margin: 0; padding: 0; }
.filings { display: flex; flex-direction: column; gap: var(--space-3); }
.filings li { border-bottom: .0625rem solid var(--faint); padding-bottom: var(--space-3); }
.filings li:last-child { border-bottom: 0; padding-bottom: 0; }
.filings a, .clips a { color: var(--ink); font-size: 1.0625rem; font-weight: 600; line-height: 1.25; text-decoration: none; }
.filings a { display: block; margin-top: .25rem; }
.filings a:hover, .clips a:hover { color: var(--cyan-dark); }

.page-head { display: grid; grid-template-columns: 1.5fr 1fr; align-items: end; gap: var(--space-6); border-bottom: .0625rem solid var(--faint); padding: var(--space-4) 0; }
.split { display: grid; grid-template-columns: 1.35fr 1fr; align-items: start; gap: var(--space-6); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-6); }
.two-col > :first-child { border-right: .0625rem solid var(--faint); padding-right: var(--space-6); }
.section { padding-top: var(--space-6); }
.measure { max-width: 54ch; }
.labelled { display: grid; grid-template-columns: 8.75rem 1fr; gap: 0 var(--space-6); padding-top: var(--space-6); }
.labelled > .kicker { padding-top: .3125rem; }
.year { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); border-bottom: .125rem solid var(--ink); margin-top: var(--space-6); padding-bottom: .375rem; }
.year:first-child { margin-top: 0; }
.year h2 { margin: 0; font-size: 1.5rem; line-height: 1; }
.clips li { display: grid; grid-template-columns: 3.5rem 1fr; gap: 0 var(--space-3); align-items: baseline; border-bottom: .0625rem solid var(--faint); padding: var(--space-3) 0; }
.clips .when { color: var(--muted); font-size: .75rem; }
.clips .standfirst { color: var(--muted); font-size: .8125rem; line-height: 1.4; margin-top: .1875rem; }
.entries li { border-bottom: .0625rem solid var(--faint); padding: var(--space-3) 0; }
.entries li:first-child { padding-top: 0; }
.entries li:last-child { border-bottom: 0; }
.entry-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-3); }
.entry-head h3 { margin: 0; font-size: 1.25rem; line-height: 1.2; }
.entry-head .when { color: var(--muted); font-size: .6875rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.entry-body { color: #444141; font-size: .9375rem; line-height: 1.55; margin: .25rem 0 0; }
.pull { border-left: .125rem solid var(--cyan); padding-left: var(--space-4); font-size: 1.1875rem; font-style: italic; line-height: 1.7; }
.credo { margin: 0 0 var(--space-4); font-size: 1.625rem; font-style: italic; line-height: 1.4; }

figure { margin: 0; }
.halftone { position: relative; overflow: hidden; filter: grayscale(.35) contrast(1.15); }
.halftone::after { position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(0,0,0,.22) 30%, transparent 32%); background-size: .1875rem .1875rem; content: ""; mix-blend-mode: multiply; pointer-events: none; }
.halftone img { width: 100%; height: 100%; object-fit: cover; }
.ratio-43 { aspect-ratio: 4 / 3; }
.ratio-32 { aspect-ratio: 3 / 2; }
.ratio-45 { aspect-ratio: 4 / 5; }
.ratio-34 { aspect-ratio: 3 / 4; }
.ratio-1 { aspect-ratio: 1; }
.caption { color: var(--muted); font-size: .8125rem; font-style: italic; line-height: 1.4; margin-top: var(--space-2); }
.caption-ruled { border-bottom: .0625rem solid var(--faint); margin-bottom: var(--space-3); padding-bottom: var(--space-3); }
.card { display: flex; flex-direction: column; min-height: 100%; padding: var(--space-4); }
.card-kicker, .card-meta { color: var(--cyan-dark); font-size: .625rem; letter-spacing: .1em; text-transform: uppercase; }
.card-title { margin: var(--space-2) 0; font-size: 1.5rem; line-height: 1.1; }
.card-body { flex: 1; margin: 0; font-size: .9375rem; line-height: 1.5; }
.card-meta { color: var(--muted); margin: var(--space-4) 0 0; }
.tags { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; margin: 0; padding: 0; }
.tag { border-radius: .125rem; padding: .375rem .625rem; font-size: .8125rem; }
.tag-accent { background: #e9f8ff; color: #004961; }
.tag-outline { border: .0625rem solid var(--cyan); color: var(--cyan-dark); }

footer.site { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); border-top: .1875rem solid var(--ink); margin-top: var(--space-8); padding: var(--space-4) 0 var(--space-8); color: var(--muted); font-size: .875rem; line-height: 1.6; }
footer.site a { text-decoration: none; }
footer.site nav { display: flex; flex-wrap: wrap; gap: var(--space-4); }

@media (max-width: 67.5rem) { .front { grid-template-columns: 1fr 1.3fr 1fr; } .front > *:nth-child(4) { border-left: 0; padding-left: 0; } }
@media (max-width: 51.25rem) {
  .wrap { padding: 0 var(--space-4); }
  .wrap > header {
    isolation: isolate;
    margin-inline: calc(var(--space-4) * -1);
    padding-inline: var(--space-4);
  }
  .front, .two-col, .page-head, .split, .labelled { grid-template-columns: 1fr; gap: var(--space-6); }
  .front { gap: var(--space-6); }
  .front > * + *, .two-col > :first-child { border: 0; border-top: .0625rem solid var(--faint); padding: var(--space-4) 0 0; }
  .labelled { gap: var(--space-3); padding-top: var(--space-4); }
  .labelled > .kicker { padding-top: 0; }
  .masthead {
    border-top-width: .25rem;
    margin-inline: calc(var(--space-4) * -1);
    padding-inline: var(--space-4);
  }
  .subrail, .folio { border-bottom: .0625rem solid var(--faint); }
  .masthead-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    max-height: calc(100vh - 6rem);
    overflow-y: auto;
    background: var(--paper);
    padding: 0;
  }
  .masthead-nav.open { display: flex; }
  .masthead-nav a { border-bottom: .0625rem solid var(--faint); color: var(--ink); font-size: 1.5625rem; font-weight: 600; line-height: 1.1; padding: var(--space-3) var(--space-4); }
  .masthead-nav a[aria-current="page"] { border-bottom: .0625rem solid var(--faint); color: var(--magenta-dark); padding-bottom: var(--space-3); }
  .menu-toggle { display: block; }
  .subrail, .dateline, .folio { font-size: .5625rem; letter-spacing: .1em; }
  .hide-sm { display: none; }
  .entry-head { align-items: flex-start; flex-direction: column; gap: .25rem; }
  footer.site { flex-direction: column; }
}
@media print { .masthead-nav, .menu-toggle, footer.site nav { display: none; } body { background: #fff; } a { color: var(--ink); } }
