:root{
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.5rem, 1rem + 4vw, 5rem);
  --text-hero: clamp(3rem, 0.5rem + 7vw, 8rem);

  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem;
  --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem;
  --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
  --space-16: 4rem; --space-20: 5rem; --space-24: 6rem;
  --space-32: 8rem;

  --color-bg: #F5F2EB;
  --color-surface: #FFFEF9;
  --color-surface-2: #EFEAE0;
  --color-surface-offset: #E8E2D6;
  --color-border: #D9D2C5;
  --color-divider: #E0D9CC;

  --color-text: #1A1A1A;
  --color-text-muted: #6B6B6B;
  --color-text-faint: #9B9B9B;

  --color-navy: #0C2D5E;
  --color-navy-light: #1A4275;
  --color-orange: #D6633A;
  --color-orange-light: #E8855F;
  --color-orange-dark: #B84A28;
  --color-green: #2D6B2D;
  --color-gold: #D4A017;

  --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem;
  --radius-xl: 1rem; --radius-full: 9999px;

  --font-display: 'Boska', Georgia, serif;
  --font-body: 'General Sans', 'Helvetica Neue', sans-serif;

  --shadow-sm: 0 1px 3px rgba(12,45,94,0.08);
  --shadow-md: 0 4px 16px rgba(12,45,94,0.10);
  --shadow-lg: 0 12px 40px rgba(12,45,94,0.15);

  --content-narrow: 680px;
  --content-default: 960px;
  --content-wide: 1200px;
}
[data-theme="dark"]{
  --color-bg: #0F0E0C;
  --color-surface: #1A1816;
  --color-surface-2: #232220;
  --color-surface-offset: #2A2826;
  --color-border: #3A3835;
  --color-divider: #2D2B29;
  --color-text: #E8E5E0;
  --color-text-muted: #A09D98;
  --color-text-faint: #6B6865;
  --color-navy: #4A7BB0;
  --color-navy-light: #6A9BD0;
  --color-orange: #E8855F;
  --color-orange-light: #F0A080;
  --color-orange-dark: #D6633A;
  --color-green: #5AAA5A;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.4);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.5);
}
.header{
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in oklab, var(--color-bg) 90%, transparent);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--color-border);
  transition: box-shadow 300ms ease;
}
.header.scrolled{ box-shadow: var(--shadow-sm); }
.header-inner{
  max-width: var(--content-wide);
  margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--space-3) var(--space-6);
  gap: var(--space-4);
}
.logo-mark{ display: flex; align-items: center; gap: var(--space-3); text-decoration: none; }
.logo-text{ font-family: var(--font-display); font-weight: 700; font-size: var(--text-lg); color: var(--color-navy); letter-spacing: -0.02em; }
.logo-text span{ color: var(--color-orange); }
.nav-links{ display: flex; gap: var(--space-6); align-items: center; }
.nav-links a{ font-size: var(--text-sm); font-weight: 500; }
.nav-links a.active{ color: var(--color-orange); font-weight: 600; }
.theme-toggle{ display: flex; align-items: center; justify-content: center; padding: var(--space-2); border-radius: var(--radius-full); transition: background 180ms; }
.theme-toggle:hover{ background: var(--color-surface-2); }
.mobile-nav-toggle{ display: none; padding: var(--space-2); }
@media (max-width: 768px){.nav-links{ display: none; }
.nav-links.open{ display: flex; flex-direction: column; position: absolute; top: 100%; left: 0; right: 0; background: var(--color-bg); padding: var(--space-6); border-bottom: 1px solid var(--color-border); box-shadow: var(--shadow-md); }
.mobile-nav-toggle{ display: flex; }}
.skip-link{position:fixed;top:-100px;left:12px;z-index:999;background:var(--color-bg);padding:12px}
.skip-link:focus{top:12px}
:root,[data-theme="light"]{--color-bg:#F8F6F1;--color-surface:#FFFFFF;--color-surface-2:#EEF2F6;--color-surface-offset:#E4EAF0;--color-border:#D4DDE6;--color-divider:#DDE3EA;--color-text:#182335;--color-text-muted:#566171;--color-text-faint:#647184;--color-navy:#0B162A;--color-navy-light:#203A5B;--color-orange:#C83803;--color-orange-light:#E95A23;--color-orange-dark:#A82F03}
[data-theme="dark"]{--color-bg:#152238;--color-surface:#20314B;--color-surface-2:#293D59;--color-surface-offset:#314966;--color-border:#48607C;--color-divider:#3B526E;--color-text:#F5F7FA;--color-text-muted:#D0DAE5;--color-text-faint:#B1C2D4;--color-navy:#A9C8EE;--color-navy-light:#C3DAF7;--color-orange:#FF9467;--color-orange-light:#FFB38F;--color-orange-dark:#C83803}
.header{border-top:4px solid #C83803}
.logo-text span{color:var(--color-orange)}
.nav-links a.active{color:var(--color-orange)}
.logo-mark{gap:12px;flex-shrink:0}
.sg-mark{flex-shrink:0}
.masthead-type{display:flex;flex-direction:column;color:var(--color-navy);line-height:1}
.masthead-kicker{font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:.24em;margin-bottom:4px}
.masthead-grind{font-family:var(--font-display);font-size:31px;font-weight:700;letter-spacing:-.035em;border-bottom:3px solid #C83803;padding-bottom:3px}
.masthead-dot{color:#C83803}
@media(max-width:768px){.masthead-grind{font-size:26px}
.masthead-kicker{font-size:9px}
.logo-mark .sg-mark{width:38px;height:38px}
.header-inner{gap:12px;padding-left:16px;padding-right:16px}}
:root{--font-body:Arial,"Helvetica Neue",Helvetica,sans-serif;--font-display:Arial,"Helvetica Neue",Helvetica,sans-serif}
.masthead-grind{font-family:'Boska',Georgia,serif}
/* Isolate publication chrome from the memorial article's typography. */
.header{font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;color:var(--color-text)}
.header a{color:var(--color-navy);text-decoration:none;transition:color 180ms}
.header a:hover{color:var(--color-orange)}
.header .nav-links{font-size:var(--text-sm);width:auto}
.header .nav-links a.active{color:var(--color-orange);font-weight:600}
.header button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}
.header svg{display:block;max-width:100%;height:auto}
.header .sg-mark{width:46px;height:46px;padding:0;border-radius:0;background:none}
.header .masthead-type{line-height:1}
.header a:focus-visible,.header button:focus-visible{outline:3px solid var(--color-orange);outline-offset:4px}
@media(max-width:768px){.header .sg-mark{width:38px;height:38px}.header .nav-links.open{width:100%}}
