/* op-heading-levels-ua */
:where(h2.rt-h3){display:block;font-size:1.17em;margin-block-start:1em;margin-block-end:1em;font-weight:bold}
/* op-heading-levels-ua:end */
/* Self-hosted variable fonts — latin + latin-ext only. No external calls. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 600;font-display:swap;font-stretch:100%;src:url('fonts/Archivo-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 600;font-display:swap;font-stretch:100%;src:url('fonts/Archivo-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 600;font-display:swap;src:url('fonts/CormorantGaramond-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 600;font-display:swap;src:url('fonts/CormorantGaramond-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url('fonts/JetBrainsMono-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url('fonts/JetBrainsMono-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/Newsreader-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/Newsreader-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:300 600;font-display:swap;src:url('fonts/Newsreader-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:300 600;font-display:swap;src:url('fonts/Newsreader-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* SOR Mag — The Journal. Aubergine ink, dusty rose, warm ivory. */

:root{
  --ink:#2A1B2E; --ink-2:#3A2440; --paper:#F4EEE5; --panel:#FBF7F0; --canvas:#E7DDCF; --related:#EFE5D7;
  --text:#4A3446; --standfirst:#3A2A3E; --muted:#7A5F76; --mono-muted:#8A6B84;
  --rosewood:#8E4557; --accent:#C4707A; --sel:#E4C4C6;
  --on-head:#F4EEE5; --on-body:#D8C8D2; --on-dim:#9F869B; --on-util:#B79BB0;
  --r1:rgba(42,27,46,.12); --r2:rgba(42,27,46,.16); --r3:rgba(42,27,46,.2); --r4:rgba(42,27,46,.3); --r5:rgba(42,27,46,.34);
  --track:rgba(42,27,46,.09);
  --ramp-1:#4A2E44; --ramp-2:#8E4557; --ramp-3:#6B4A66; --ramp-4:#A85C68; --ramp-5:#3A2440; --ramp-6:#C4707A;
  --display:"Cormorant Garamond",Georgia,serif;
  --body:"Newsreader",Georgia,serif;
  --ui:"Archivo",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --gut:56px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:19px;line-height:1.6;font-optical-sizing:auto}
::selection{background:var(--sel)}
img{max-width:100%;display:block}
a{color:var(--rosewood);text-decoration:none}
a:hover{color:var(--accent)}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;margin:0;line-height:1.08}
p{margin:0 0 1em}
em{font-style:italic}

.wrap{padding-inline:var(--gut)}
.kicker{font-family:var(--ui);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--rosewood);margin:0}
.eyebrow{font-family:var(--ui);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.mono{font-family:var(--mono);font-size:11px;color:var(--mono-muted);letter-spacing:.04em}
.byline{font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.rule{border:0;border-top:1px solid var(--r3);margin:0}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:12px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:99}

/* ---------- utility bar + masthead ---------- */
.utilbar{background:var(--ink);color:var(--on-util);font-family:var(--mono);font-size:11px;letter-spacing:.1em;padding:9px var(--gut);display:flex;justify-content:space-between;gap:18px}
.masthead{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;padding:30px var(--gut) 20px;border-bottom:2px solid var(--ink);background:var(--paper)}
.masthead.compact{padding:22px var(--gut) 18px}
.brand{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.wordmark{font-family:var(--display);font-weight:500;font-size:66px;line-height:1;letter-spacing:.02em;color:var(--ink)}
.wordmark:hover{color:var(--ink)}
.masthead.compact .wordmark{font-size:42px}
.brand .eyebrow{color:var(--rosewood)}

/* ---------- nav with CSS-only dropdowns ---------- */
.nav{padding-bottom:6px}
.nav ul{list-style:none;margin:0;padding:0}
.nav > ul{display:flex;gap:28px;align-items:baseline;flex-wrap:wrap}
.nav a{font-family:var(--ui);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);display:inline-block;padding-bottom:4px}
.nav a:hover{color:var(--rosewood)}
.nav a[aria-current="page"],.nav .is-active > a{color:var(--rosewood);border-bottom:1px solid var(--accent)}
.nav li.has-sub{position:relative}
.nav li.has-sub > a::after{content:"";display:inline-block;width:5px;height:5px;margin-left:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.nav .nav-sub{display:none;position:absolute;left:-18px;top:100%;margin-top:12px;min-width:310px;max-width:min(310px,calc(100vw - 40px));background:var(--panel);border:1px solid var(--r4);border-top:3px solid var(--accent);box-shadow:0 22px 50px rgba(42,27,46,.22);padding:14px 0 10px;z-index:40}
.nav li.has-sub:nth-last-child(-n+4) > .nav-sub{left:auto;right:-18px}
.nav li.has-sub::after{content:"";position:absolute;left:0;right:-24px;top:100%;height:16px}
.nav li.has-sub:hover > .nav-sub,.nav li.has-sub:focus-within > .nav-sub{display:block}
.nav .nav-sub .sub-head{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--mono-muted);padding:0 20px 10px;border-bottom:1px solid var(--r1);margin-bottom:8px;text-transform:uppercase}
.nav .nav-sub a{display:block;font-family:var(--body);font-size:18px;letter-spacing:0;text-transform:none;color:var(--ink);padding:8px 20px;line-height:1.25;border-bottom:0}
.nav .nav-sub a:hover{background:var(--related);color:var(--rosewood)}
.nav .nav-sub .sub-all{font-family:var(--ui);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--rosewood);padding-top:10px;margin-top:6px;border-top:1px solid var(--r1)}
.navtoggle,.navtoggle-label{display:none}

/* ---------- homepage hero ---------- */
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;padding:44px var(--gut) 46px;border-bottom:1px solid var(--r3);align-items:stretch}
.hero-feature{display:flex;flex-direction:column;gap:16px}
.hero-feature h1{font-size:52px;text-wrap:balance}
.hero-feature .dek{font-size:21px;line-height:1.6;color:var(--text);text-wrap:pretty;margin:0}
.figure-fixed{position:relative;overflow:hidden;background:var(--related)}
.figure-fixed img{width:100%;height:100%;object-fit:cover}
.figure-fixed.ratio{aspect-ratio:3/2}
.journal-grid{display:grid}
.article-grid.solo{grid-template-columns:minmax(0,1fr)}
.article-grid.solo .article-body{max-width:36em;margin-inline:auto}
.h280{height:280px}.h220{height:220px}.h260{height:260px}.h380{height:380px}.h104{height:104px}

/* ---------- panels ---------- */
.panel{background:var(--panel);border:1px solid rgba(42,27,46,.24);padding:28px 30px 26px}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:12px}
.panel-head h2,.panel-head h3{font-size:38px}
.section{padding:44px var(--gut) 48px;border-bottom:1px solid var(--r3)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;border-bottom:2px solid var(--ink);padding-bottom:14px;flex-wrap:wrap}
.section-head h2{font-size:44px;margin-top:10px}
.section-head p{margin:0;max-width:34em;font-size:18px;line-height:1.55;color:var(--text);text-wrap:pretty}

/* ---------- tracker ---------- */
.tracker-stats{display:flex;flex-wrap:wrap;gap:30px;padding:16px 0 18px;border-bottom:1px solid var(--r2)}
.tracker-stats .num{font-family:var(--mono);font-size:26px;color:var(--ink)}
.tracker-stats .lab{font-family:var(--ui);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.tracker-row{padding:16px 0;border-bottom:1px solid var(--r1)}
.tracker-row .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.tracker-row h4{font-size:26px;line-height:1.15}
.tracker-row .who{font-family:var(--ui);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:5px}
.tracker-row .count{font-family:var(--mono);font-size:13px;color:var(--mono-muted);white-space:nowrap}
.progress{height:8px;background:var(--track);margin-top:12px}
.progress > span{display:block;height:100%;background:var(--accent)}
.progress.done > span{background:var(--ramp-1)}
.progress.slim{height:6px;margin-top:9px}
.tracker-row .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}
.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.btn{font-family:var(--ui);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:7px 12px;border:1px solid var(--r5);background:transparent;color:var(--ink);border-radius:0;cursor:pointer}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.quiet{border-color:rgba(42,27,46,.18);color:var(--mono-muted)}
.btn.quiet:hover{background:transparent;color:var(--rosewood);border-color:var(--accent)}
.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn.primary:hover{background:var(--rosewood);border-color:var(--rosewood)}
.addform{display:grid;grid-template-columns:1.4fr 1fr 90px auto;gap:10px;margin-top:18px;max-width:760px}
.addform input{font-family:var(--body);font-size:17px;padding:10px 12px;border:1px solid var(--r4);background:var(--paper);color:var(--ink);border-radius:0;min-width:0}
.addform input.pp{font-family:var(--mono);font-size:14px}
.addform input:focus{outline:2px solid var(--accent);outline-offset:-2px}
.tracker-note{margin:14px 0 0;font-family:var(--mono);font-size:11px;color:var(--mono-muted)}
.tracker-empty{padding:18px 0 4px;font-size:19px;color:var(--text)}
.threeline{margin-top:10px}
.threeline textarea{width:100%;font-family:var(--body);font-size:17px;line-height:1.5;padding:10px 12px;border:1px solid var(--r4);background:var(--paper);color:var(--ink);border-radius:0;resize:vertical;min-height:64px}
.threeline label{display:block;font-family:var(--ui);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}

/* ---------- mood shelf ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.chip{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;padding:9px 18px;border:1px solid var(--r4);background:transparent;color:var(--text);border-radius:999px;cursor:pointer}
.chip:hover{border-color:var(--accent);color:var(--rosewood)}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.shelf{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:30px;padding-bottom:18px;border-bottom:6px solid var(--ink)}
.spine{width:62px;display:flex;align-items:center;justify-content:center;padding:16px 0;overflow:hidden;border:1px solid rgba(244,238,229,.25)}
.spine span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--display);font-size:17px;letter-spacing:.04em;color:var(--paper);white-space:nowrap}
.shelf-caption{font-family:var(--mono);font-size:11px;color:var(--mono-muted);margin:12px 0 0}
.shelf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:26px}
.bookcard{display:flex;flex-direction:column;gap:9px;border:1px solid var(--r3);background:var(--panel);padding:20px 22px}
.bookcard h4{font-size:26px;line-height:1.14}
.bookcard .who{font-family:var(--ui);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--rosewood)}
.bookcard p{margin:0;font-size:17px;line-height:1.5;color:var(--text);flex:1;text-wrap:pretty}
.bookcard .meta{font-family:var(--mono);font-size:12px;color:var(--mono-muted);border-top:1px solid var(--r1);padding-top:10px}

/* ---------- pairings ---------- */
.pairing{display:grid;grid-template-columns:1fr 44px 1fr 1.1fr;gap:22px;align-items:center;padding:20px 0;border-bottom:1px solid var(--r2)}
.pairing .title{font-size:24px;font-style:italic;line-height:1.2}
.pairing .who{font-family:var(--ui);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.pairing .arrow{font-family:var(--display);font-size:30px;color:var(--accent);text-align:center}
.pairing .why{margin:0;font-size:18px;line-height:1.55;color:var(--text);text-wrap:pretty}
.pair-mini{padding:12px 0;border-bottom:1px solid var(--r1);font-size:18px;line-height:1.4}
.pair-mini .arrow{color:var(--accent)}

/* ---------- length chart ---------- */
.lenchart{margin-top:22px}
.lenrow{display:grid;grid-template-columns:260px 1fr 128px;gap:20px;align-items:center;padding:9px 0;border-bottom:1px solid var(--r1)}
.lenrow .t{font-size:19px;line-height:1.25}
.lenrow .t span{color:var(--muted);font-size:15px}
.lentrack{height:18px;background:var(--track)}
.lentrack > span{display:block;height:100%;background:var(--accent)}
.lenrow .v{font-family:var(--mono);font-size:12px;color:var(--text);text-align:right}

/* ---------- ledger + cards ---------- */
.ledger{display:grid;grid-template-columns:1fr 1fr 1fr;gap:34px;padding:44px var(--gut) 46px}
.ledger-main{grid-column:span 2}
.ledger-head{font-family:var(--ui);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--rosewood);border-bottom:2px solid var(--ink);padding-bottom:12px}
.ledger-row{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--r1)}
.ledger-row h3{font-size:30px;line-height:1.1}
.ledger-row p{margin:6px 0 0;font-size:18px;line-height:1.5;color:var(--text);max-width:44em;text-wrap:pretty}
.ledger-row .mono{white-space:nowrap}
.aside-stack{display:flex;flex-direction:column;gap:24px}
.promo{background:var(--ink);color:var(--on-body);padding:24px 26px}
.promo .kicker{color:var(--accent)}
.promo h3{color:var(--on-head);font-size:30px;margin:12px 0 12px}
.promo p{margin:0;font-size:18px;line-height:1.55}
.promo a{color:var(--on-head);border-bottom:1px solid var(--accent)}

/* feed cards — even height */
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:30px}
.card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--r3)}
.card .thumb{aspect-ratio:3/2;overflow:hidden;background:var(--related)}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .body{display:flex;flex-direction:column;gap:9px;padding:20px 22px 22px;flex:1}
.card h3{font-size:30px;line-height:1.1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.2em}
.card p{margin:0;font-size:18px;line-height:1.5;color:var(--text);text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{margin-top:auto;padding-top:14px;font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.card:hover{border-color:var(--accent)}

/* CSS-only expander */
.more-toggle{position:absolute;opacity:0;pointer-events:none}
.more-panel{display:none}
.more-toggle:checked ~ .more-panel{display:grid}
.more-label{display:inline-block;margin-top:26px;font-family:var(--ui);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border:1px solid var(--r5);padding:11px 20px;cursor:pointer}
.more-label:hover{background:var(--ink);color:var(--paper)}
.more-toggle:checked ~ .more-label{display:none}

/* ---------- supporters ---------- */
.supporters-featured{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:26px}
.sponsor{display:flex;flex-direction:column;gap:14px;background:var(--ink);border:1px solid rgba(244,238,229,.16);padding:22px 24px;color:var(--on-body)}
.sponsor:hover{border-color:var(--accent);color:var(--on-body)}
.sponsor img{width:100%;max-width:230px;height:56px;object-fit:contain;object-position:left center;background:transparent}
.sponsor-blurb{font-family:var(--body);font-size:17px;line-height:1.5;color:var(--on-body);min-height:1.5em}
.sponsor-roll{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.sponsor-roll .sponsor{padding:14px 16px;gap:8px}
.sponsor-roll .sponsor img{height:34px;max-width:170px}
.sponsor-roll .sponsor-blurb{font-size:15px;color:var(--on-dim)}
.regulars{background:var(--related);padding:34px var(--gut) 40px;border-top:1px solid var(--r3)}

/* ---------- footer ---------- */
footer.foot{background:var(--ink);color:var(--on-body);padding:36px var(--gut) 34px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
footer.foot .wordmark{font-size:40px;color:var(--on-head)}
footer.foot p{margin:12px 0 0;font-size:15px;color:var(--on-dim);max-width:52em}
footer.foot nav{display:flex;gap:24px;flex-wrap:wrap;font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
footer.foot nav a{color:var(--on-body)}
footer.foot nav a:hover{color:var(--accent)}
.foot-slim{background:var(--ink);color:var(--on-dim);padding:28px var(--gut);font-size:15px}

/* ---------- section / category pages ---------- */
.pagehead{padding:46px var(--gut) 26px}
.pagehead h1{font-size:76px;text-wrap:balance}
.pagehead .dek{margin:14px 0 0;font-size:22px;line-height:1.55;color:var(--text);max-width:40em;text-wrap:pretty}
.split{display:grid;grid-template-columns:1fr 360px;gap:52px;padding:10px var(--gut) 52px;align-items:start}
.lifelist{list-style:none;margin:26px 0 0;padding:0}
.lifelist li{display:grid;grid-template-columns:52px 1fr 150px;gap:22px;align-items:start;padding:22px 0;border-top:1px solid var(--r3)}
.lifelist .n{font-family:var(--mono);font-size:12px;color:var(--mono-muted);padding-top:8px}
.lifelist h3{font-size:34px;line-height:1.08}
.lifelist p{margin:8px 0 0;font-size:19px;line-height:1.55;color:var(--text);max-width:36em;text-wrap:pretty}
.lifelist .byline{margin-top:10px;display:block}
.cat-list{list-style:none;margin:0;padding:0}
.mini-panel{background:var(--panel);border:1px solid rgba(42,27,46,.24);padding:22px 24px}
.mini-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:10px}
.mini-head h3{font-size:28px}
.mini-row{padding:13px 0;border-bottom:1px solid var(--r1)}
.mini-row .t{font-size:19px;line-height:1.2}
.aside-head{font-family:var(--ui);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);border-top:2px solid var(--ink);padding-top:14px}
.sponsor-aside{border:1px solid var(--r4);border-top:4px solid var(--accent);padding:20px 22px}
.sponsor-aside .line{font-family:var(--display);font-size:26px;margin-top:8px;line-height:1.15}

/* ---------- article ---------- */
.article-head{padding:48px var(--gut) 0;max-width:1000px}
.article-head h1{font-size:80px;margin-top:16px;text-wrap:balance}
.article-head .standfirst{margin:18px 0 0;font-size:25px;line-height:1.5;color:var(--standfirst);max-width:30em;text-wrap:pretty}
.article-head .byline{display:block;margin:18px 0 28px}
.hero-figure{padding:0 var(--gut)}
.hero-figure figcaption,.article-figure figcaption{font-family:var(--ui);font-size:12px;letter-spacing:.06em;color:var(--muted);margin-top:10px;max-width:46em}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;padding:40px var(--gut) 0;align-items:start}
.article-body{font-size:22px;line-height:1.75;color:var(--ink);max-width:34em;padding-inline:0}
.article-body > h2{font-size:40px;margin:44px 0 16px;position:relative}
.article-body > h2 .secno{font-family:var(--mono);font-size:12px;color:var(--mono-muted);display:block;margin-bottom:10px;letter-spacing:.14em}
.article-body > h3{font-size:32px;margin:34px 0 14px}
.article-body p{margin:0 0 24px}
.article-body strong{font-weight:600}
.article-body ul,.article-body ol{margin:0 0 24px;padding-left:1.2em}
.article-body li{margin-bottom:10px}
.article-body > p:first-of-type::first-letter{float:left;font-family:var(--display);font-weight:500;font-size:88px;line-height:.76;padding:8px 14px 0 0;color:var(--rosewood)}
.article-body .lead + p::first-letter{float:none;font-size:inherit;padding:0;color:inherit}
.sidenote{margin:0 0 24px}

/* palette components */
.lead{font-size:25px;line-height:1.5;color:var(--standfirst);margin:0 0 26px;text-wrap:pretty}
.pullquote{margin:36px 0;padding:24px 0;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}
.pullquote p{font-family:var(--display);font-size:38px;line-height:1.2;margin:0;color:var(--ink)}
.blockquote{margin:32px 0;padding:0 0 0 22px;border-left:3px solid var(--accent)}
.blockquote p{font-size:21px;line-height:1.6;margin:0 0 10px;font-style:italic}
.blockquote cite{font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-style:normal}
.callout{background:var(--related);border:1px solid var(--r3);padding:24px 26px;margin:32px 0}
.callout p{margin:0;font-size:20px;line-height:1.55;color:var(--standfirst)}
.callout::before{content:"Keep this";display:block;font-family:var(--ui);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--rosewood);margin-bottom:10px}
.note{border-left:3px solid var(--r4);padding:4px 0 4px 18px;font-size:18px;line-height:1.55;color:var(--text);margin:0 0 26px}
.keyfacts{background:var(--panel);border:1px solid rgba(42,27,46,.24);border-top:4px solid var(--ink);padding:26px 28px;margin:38px 0}
.keyfacts h3{font-size:28px;margin-bottom:6px}
.keyfacts .kicker{margin-bottom:10px}
.keyfacts dl{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:10px 22px;margin:14px 0 0}
.keyfacts dt{font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--rosewood);padding-top:5px}
.keyfacts dd{margin:0;font-size:18px;line-height:1.5;color:var(--text)}
.versus,.datatable{width:100%;border-collapse:collapse;margin:30px 0;font-size:18px}
.versus th,.versus td,.datatable th,.datatable td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--r2);vertical-align:top}
.versus thead th,.datatable thead th{font-family:var(--ui);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--ink)}
.versus tbody th{font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--rosewood);width:26%}
.datatable td.num{font-family:var(--mono);font-size:14px;white-space:nowrap}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;margin:32px 0}
.statblock{border-top:2px solid var(--ink);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.stat-num{font-family:var(--mono);font-size:34px;color:var(--ink);line-height:1}
.stat-label{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);line-height:1.4}
.timeline{list-style:none;margin:32px 0;padding:0}
.timeline li{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:24px;padding:14px 0;border-top:1px solid var(--r2)}
.t-when{font-family:var(--ui);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--rosewood);line-height:1.4}
.t-what{font-size:19px;line-height:1.55;color:var(--text)}
.chart{margin:34px 0}
.chart svg{width:100%;height:auto;display:block}
.chart figcaption{font-family:var(--ui);font-size:12px;color:var(--muted);margin-top:12px}
.chart text{font-family:"Archivo",sans-serif}
.article-figure{margin:36px 0}
.article-figure img{width:100%}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:34px 0}
.gallery figure{margin:0}
.gallery figcaption{font-family:var(--ui);font-size:11px;color:var(--muted);margin-top:8px}
.map-figure{margin:34px 0}
.map-slot{aspect-ratio:16/9;border:1px dashed var(--r4);background:var(--related)}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:32px 0}
.profile-card{background:var(--panel);border:1px solid var(--r3);padding:22px 24px;display:flex;flex-direction:column;gap:8px}
.profile-card h3{font-size:26px}
.profile-card .p-role{font-family:var(--ui);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--rosewood);margin:0}
.profile-card p{font-size:17px;line-height:1.5;color:var(--text);margin:0}
.profile-card .p-photo{width:100%;aspect-ratio:3/2;object-fit:cover}
.profile-card.no-photo{border-left:4px solid var(--accent)}
.p-links a{font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:28px 0}
.org-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--r3);padding:16px 18px;background:var(--panel)}
.org-name{font-family:var(--display);font-size:22px;color:var(--ink)}
.org-host{font-family:var(--mono);font-size:11px;color:var(--mono-muted)}
.entity-ref{border-bottom:1px solid var(--accent)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:24px 0}
.further-grid a{border:1px solid var(--r3);padding:18px 20px;font-family:var(--display);font-size:24px;color:var(--ink);background:var(--panel)}
.further-grid a:hover{border-color:var(--accent);color:var(--rosewood)}
.related{background:var(--related);padding:22px 24px}
.related h3{font-size:26px;margin-bottom:12px}
.related-links{list-style:none;margin:0;padding:0}
.related-links li{padding:10px 0;border-top:1px solid var(--r1);font-size:19px;line-height:1.35}
.weekly-template{border-top:2px solid var(--ink);padding-top:14px}
.weekly-template .blanks{display:flex;flex-direction:column;gap:12px;margin-top:14px;font-size:19px;line-height:1.4}
.weekly-template .blanks span{border-bottom:1px dashed var(--r5);padding-bottom:16px}
.article-aside{display:flex;flex-direction:column;gap:24px;position:static}
.article-foot{padding:10px var(--gut) 48px}
.tracker-band{padding:14px var(--gut) 52px}
.tracker-band .tracker-row{display:grid;grid-template-columns:1fr 240px 230px;gap:24px;align-items:center;padding:15px 0}
.tracker-band .tracker-row .top{display:block}
.tracker-band .tracker-row .foot{margin-top:0;justify-content:flex-end}
.tracker-band .progress{margin-top:0}

/* styleguide */
.sg-section{padding:40px var(--gut);border-bottom:1px solid var(--r3);max-width:1400px}
.sg-section > h2{font-size:40px;margin-bottom:8px}
.sg-note{font-family:var(--mono);font-size:11px;color:var(--mono-muted);margin-bottom:22px}
.sg-narrow{max-width:36em}

@media (max-width:1080px){
  :root{--gut:32px}
  .journal-grid{grid-template-columns:1fr !important}
  .hero,.ledger,.split,.article-grid{grid-template-columns:1fr;gap:34px}
  .ledger-main{grid-column:auto}
  .shelf-grid,.cardgrid,.sponsor-roll{grid-template-columns:repeat(2,1fr)}
  .wordmark{font-size:52px}
  .article-head h1{font-size:60px}
  .pagehead h1{font-size:58px}
  .tracker-band .tracker-row{grid-template-columns:1fr}
}
@media (max-width:720px){
  :root{--gut:20px}
  body{font-size:18px}
  .utilbar{flex-direction:column;gap:4px}
  .masthead{flex-direction:column;align-items:flex-start;gap:14px}
  .wordmark{font-size:44px}
  .masthead.compact .wordmark{font-size:36px}
  .nav > ul{gap:14px 18px}
  .nav .nav-sub{position:static;box-shadow:none;min-width:0;max-width:none;margin-top:8px;display:none;border-top-width:2px}
  .nav li.has-sub:nth-last-child(-n+4) > .nav-sub{right:auto}
  .nav li.has-sub > a:focus{color:var(--rosewood)}
  .shelf-grid,.cardgrid,.sponsor-roll,.supporters-featured{grid-template-columns:1fr}
  .pairing{grid-template-columns:1fr;gap:10px}
  .pairing .arrow{text-align:left}
  .lenrow{grid-template-columns:1fr;gap:8px}
  .lenrow .v{text-align:left}
  .lifelist li{grid-template-columns:36px 1fr}
  .lifelist li .figure-fixed{grid-column:1 / -1;height:180px}
  .ledger-row{grid-template-columns:1fr}
  .addform{grid-template-columns:1fr 1fr;max-width:none}
  .addform .btn{grid-column:1 / -1}
  .article-head h1{font-size:44px}
  .article-head .standfirst,.lead{font-size:21px}
  .article-body{font-size:20px}
  .article-body > h2{font-size:32px}
  .pullquote p{font-size:28px}
  .pagehead h1{font-size:44px}
  .keyfacts dl{grid-template-columns:1fr;gap:4px 0}
  .keyfacts dd{margin-bottom:12px}
  .timeline li{grid-template-columns:1fr;gap:6px}
  .versus,.datatable{font-size:16px}
  .versus tbody th{width:auto}
  footer.foot{flex-direction:column;align-items:flex-start}
  .tracker-row .top{flex-direction:column;gap:6px}
  .tracker-row .count{white-space:normal}
}
@media print{
  .nav,.utilbar,.btnrow,.addform{display:none}
  body{background:#fff}
}


/* ---------- desktop measure: full-bleed bands, capped content ---------- */
:root{--maxw:1480px;--pad:max(var(--gut), calc((100% - var(--maxw)) / 2))}
.utilbar,.masthead,.section,.hero,.ledger,.split,.pagehead,.wrap,.regulars,
.article-head,.hero-figure,.article-grid,.article-foot,.tracker-band,.sg-section,
footer.foot,.foot-slim{padding-left:var(--pad);padding-right:var(--pad)}
.article-head{max-width:none}
.article-head h1{max-width:17em}
.sg-section{max-width:none}

.shelf-key{margin-left:auto;max-width:340px;padding-bottom:6px}
@media (max-width:1080px){.shelf-key{margin-left:0;max-width:none;flex-basis:100%;padding-top:20px}}

/* ---------- mobile: tap-to-open menus ---------- */
.sub-toggle,.sub-open{display:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:720px){
  .nav > ul{display:block;margin-top:4px}
  .nav > ul > li{border-top:1px solid var(--r1);padding:2px 0}
  .nav > ul > li:last-child{border-bottom:1px solid var(--r1)}
  .nav li.has-sub{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}
  .nav li.has-sub > a{flex:1;padding:12px 0}
  .nav > ul > li:not(.has-sub) > a{display:block;padding:12px 0}
  .nav li.has-sub > a::after{display:none}
  .sub-open{display:block;width:44px;height:44px;position:relative;cursor:pointer}
  .sub-open::after{content:"";position:absolute;right:8px;top:17px;width:8px;height:8px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:rotate(45deg);transition:transform .15s ease}
  .sub-toggle:checked ~ .sub-open::after{transform:rotate(-135deg);top:21px}
  .nav .nav-sub{order:3;flex-basis:100%;border:0;border-left:2px solid var(--accent);background:transparent;padding:2px 0 12px 16px;margin:0 0 8px}
  .nav li.has-sub:hover > .nav-sub,.nav li.has-sub:focus-within > .nav-sub{display:none}
  .nav .sub-toggle:checked ~ .nav-sub,.nav li.has-sub:focus-within > .sub-toggle:checked ~ .nav-sub{display:block}
  .nav .nav-sub a{padding:10px 0;font-size:19px}
  .nav .nav-sub a:hover{background:transparent}
  .nav .nav-sub .sub-head{padding:0 0 8px}
  .nav .nav-sub .sub-all{padding:10px 0 0}
}

@media (max-width:720px){
  .btn{padding:13px 16px;font-size:11px}
  .chip{padding:13px 18px;font-size:11px}
  .addform input,.threeline textarea{padding:13px 12px;font-size:17px}
  .btnrow{gap:10px;width:100%}
  .btnrow .btn{flex:1;text-align:center}
  .tracker-row .foot{gap:14px}
  .nav .nav-sub a{min-height:44px;display:flex;align-items:center}
  .nav .nav-sub .sub-all{min-height:44px}
  .more-label{padding:14px 20px}
  .section,.ledger,.split{padding-top:34px;padding-bottom:38px}
  .hero{padding-top:32px;padding-bottom:36px}
  .card .body{padding:18px 18px 20px}
  .keyfacts,.callout,.panel{padding:20px 18px}
  .sponsor{padding:18px 18px}
}

/* ---------- mobile: display scale + inline-style overrides ---------- */
@media (max-width:720px){
  .nav li.has-sub > a,.nav > ul > li:not(.has-sub) > a{padding:14px 0}
  .cardgrid{grid-template-columns:1fr !important}
  .hero-feature h1{font-size:38px}
  .hero-feature .dek{font-size:19px}
  .section-head h2{font-size:32px;margin-top:8px}
  .section-head{gap:14px;padding-bottom:12px}
  .panel-head h2,.panel-head h3{font-size:28px}
  .pagehead h1{font-size:40px}
  .article-head h1{font-size:40px}
  .lifelist h3{font-size:27px}
  .lifelist li{gap:14px;padding:18px 0}
  .lifelist p{font-size:18px}
  .ledger-row h3,.card h3,.promo h3{font-size:26px}
  .bookcard h4,.tracker-row h4{font-size:23px}
  .pullquote p{font-size:26px}
  .pullquote{margin:28px 0;padding:20px 0}
  .further-grid a{font-size:21px}
  .related h3,.mini-head h3{font-size:24px}
  .tracker-stats{gap:18px 24px}
  .tracker-stats .num{font-size:22px}
  .aside-stack{gap:20px}
  .split{gap:30px}
  .cardgrid{gap:22px}
  .shelf{gap:8px;margin-top:22px}
  .spine{width:54px}
  .spine span{font-size:15px}
  .chips{gap:8px}
  .article-grid{gap:30px;padding-top:30px}
  .article-body > h2{margin:34px 0 14px}
  .article-figure,.chart,.gallery,.statrow,.timeline,.keyfacts{margin:26px 0}
  .sg-section{padding-top:30px;padding-bottom:34px}
}
.contact-grid{grid-template-columns:repeat(2,1fr)}
@media (max-width:720px){.contact-grid{grid-template-columns:1fr !important}}


/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* sp-logo-floor: raise undersized sponsor logos without shrinking any Design set larger */
.sponsor img{min-height:56px;object-position:center}

/* sp-roll-text: every slot carries copy on this domain — let the roll blurb show and breathe */
.sponsor-roll .sponsor-blurb{display:block;font-size:13.5px;line-height:1.5;margin-top:8px}
.sponsor-roll .sponsor{align-items:flex-start}

/* sp-mark-frame: a uniform plate for the money mark, in the tiers where Design sized the plate
   to the artwork instead. Operator's rule: the dark ground is unified whatever the logo's
   size. width:100% (or one fixed width where copy shares the row) + one height for the tier
   + object-fit:contain, so the plate is the same box everywhere and the artwork fits inside
   it. A ground and an inset are added ONLY where none exists — adding a second ground gives
   co-cure's rectangle-inside-a-rectangle. Design's framed tiers are not touched at all. */
.sponsor-roll .sponsor .sp-logo.sp-logo{display:block!important;width:100%!important}
.sponsor-roll .sponsor.sponsor img{height:56px!important;display:block!important;width:100%!important}

/* op-recentre-plate: the money mark sat off-centre in its own plate (measured 228px of skew:
   0px on one side, 228px on the other, with a 170px mark in a 398px plate).
   ⚠️ THE CAUSE IS OURS, NOT DESIGN'S: sp-mark-frame forces display:block on the plate, which
   replaces the flex centring Design put there — and with the mark capped by a max-width and no
   auto margins it drifts to one side. Rather than fight the block display, the mark itself is
   centred with auto inline margins, which works whatever the plate's display ends up being. */
a.sp-logo{text-align:center}
a.sp-logo > img{display:block!important;margin-inline:auto!important}

/* op-money-columns: the supporters block ran one tile per row — 11 tiles,
   1780px at 390, 12% of the whole page. Two columns bring it to
   1042px (41% shorter). Checked before writing: no new overflow, smallest mark still
   130px wide, longest blurb 3 lines, tile heights 143-185px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   The blurb is held to three rows at phone width, because a nine- or eleven-line blurb in a narrow column made two columns TALLER than one. The copy stays in the markup. An odd tile count means the lead tile spans the whole row, so the block does not end on an empty cell. Only the tier(s) that were one-per-row are touched (.supporters-featured, .sponsor-roll), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .supporters-featured{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:26px!important}
    .supporters-featured > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .supporters-featured > * *{min-width:0!important;max-width:100%}
    .supporters-featured img,.supporters-featured svg{max-width:100%;height:auto}
  .sponsor-roll{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:26px!important}
    .sponsor-roll > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-roll > * *{min-width:0!important;max-width:100%}
    .sponsor-roll img,.sponsor-roll svg{max-width:100%;height:auto}
  .supporters-featured .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
  .sponsor-roll .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-odd-tier-lead: .sponsor-roll (9 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .sponsor-roll:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--display); font-weight: 500; margin: 0px; line-height: 1.08;}
div:where(.rt-h1){font-family: var(--display); font-weight: 500; margin: 0px; line-height: 1.08;}
.promo h2:where(.rt-h3){color: var(--on-head); font-size: 30px; margin: 12px 0px;}
.card h2:where(.rt-h3){font-size: 30px; line-height: 1.1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.2em;}
.lifelist h2:where(.rt-h3){font-size: 34px; line-height: 1.08;}
.mini-head h2:where(.rt-h3){font-size: 28px;}
.article-head div:where(.rt-h1){font-size: 80px; margin-top: 16px; text-wrap: balance;}
.article-body > h2:where(.rt-h3){font-size: 32px; margin: 34px 0px 14px;}
.related h2:where(.rt-h3){font-size: 26px; margin-bottom: 12px;}
@media (max-width: 1080px){.article-head div:where(.rt-h1){font-size: 60px;}}
@media (max-width: 720px){.article-head div:where(.rt-h1){font-size: 44px;}}
.article-head div:where(.rt-h1){max-width: 17em;}
@media (max-width: 720px){.promo h2:where(.rt-h3){font-size: 26px;}}
@media (max-width: 720px){.related h2:where(.rt-h3){font-size: 24px;}}
@media (max-width: 720px){.lifelist h2:where(.rt-h3){font-size: 27px;}}
@media (max-width: 720px){.card h2:where(.rt-h3){font-size: 26px;}}
@media (max-width: 720px){.mini-head h2:where(.rt-h3){font-size: 24px;}}
@media (max-width: 720px){.article-head div:where(.rt-h1){font-size: 40px;}}
h2.rt-h3.rt-h3{position:static}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.card > div.thumb > img,
  figure > div.figure-fixed.h220 > img,
  figure > div.figure-fixed.h260 > img,
  figure > div.figure-fixed.h280 > img,
  figure > div.figure-fixed.ratio > img,
  figure.hero-figure > div.figure-fixed.h380 > img,
  li > div.figure-fixed.h104 > img){height:auto}
/* op-img-dims:end */
/* op-heading-levels:h1-mirror */
h1.rt-h2 { font-family:var(--display);font-weight:500;margin:0;line-height:1.08 }
.article-body > h1.rt-h2 { font-size:40px;margin:44px 0 16px;position:relative }
/* op-heading-levels:h1-mirror:end */
