:root {
  --font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-heading: Fraunces, Georgia, "Times New Roman", serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --space-tight: 0.125rem;
  --space-xs: 0.25rem;
  --space-s: 0.5rem;
  --space-sm: 0.75rem;
  --space-m: 1rem;
  --space-l: 1.5rem;
  --space-xl: 2rem;
  --space-hero: 3rem;
  --space-divider: 4rem;
  --radius-xs: 0.25rem;
  --radius-s: 0.5rem;
  --radius-m: 0.75rem;
  --radius-l: 0.875rem;
  --radius-hero: 1rem;
  --radius-pill: 62.4375rem;
  --stroke-hairline: 0.0625rem;
  --stroke-medium: 0.125rem;
  --stroke-emphasized: 0.1875rem;
  --stroke-bold: 0.25rem;
  --size-header: 4.5rem;
  --size-portrait: 15rem;
  --size-portrait-sm: 9rem;
  --size-banner-strip: 15rem;
  --size-hero-text: 34rem;
  --size-banner-max: 38rem;
  --size-date-col: 9rem;
  --size-label-col: 7rem;
  --size-year-col: 5.5rem;
  --size-blur: 0.5rem;
  --size-touch-min: 2.75rem;
  --width-wrap: 62rem;
  --width-narrow: 44rem;
  --text-display-family: var(--font-heading); --text-display-size: clamp(3rem, 8vw, 4.5rem); --text-display-weight: 600; --text-display-leading: 1; --text-display-tracking: -0.01em; --text-display-transform: none;
  --text-h1-family: var(--font-heading); --text-h1-size: clamp(2rem, 5vw, 3rem); --text-h1-weight: 700; --text-h1-leading: 1.15; --text-h1-tracking: -0.01em; --text-h1-transform: none;
  --text-h2-family: var(--font-heading); --text-h2-size: 2.125rem; --text-h2-weight: 600; --text-h2-leading: 1.15; --text-h2-tracking: -0.005em; --text-h2-transform: none;
  --text-h3-family: var(--font-heading); --text-h3-size: 1.125rem; --text-h3-weight: 600; --text-h3-leading: 1.2; --text-h3-tracking: 0em; --text-h3-transform: none;
  --text-lead-family: var(--font-body); --text-lead-size: 1.25rem; --text-lead-weight: 400; --text-lead-leading: 1.45; --text-lead-tracking: 0em; --text-lead-transform: none;
  --text-body-family: var(--font-body); --text-body-size: 1.0625rem; --text-body-weight: 400; --text-body-leading: 1.55; --text-body-tracking: 0em; --text-body-transform: none;
  --text-body-sm-family: var(--font-body); --text-body-sm-size: 0.9375rem; --text-body-sm-weight: 400; --text-body-sm-leading: 1.5; --text-body-sm-tracking: 0em; --text-body-sm-transform: none;
  --text-small-family: var(--font-body); --text-small-size: 0.875rem; --text-small-weight: 400; --text-small-leading: 1.45; --text-small-tracking: 0em; --text-small-transform: none;
  --text-caption-family: var(--font-body); --text-caption-size: 0.8125rem; --text-caption-weight: 400; --text-caption-leading: 1.4; --text-caption-tracking: 0em; --text-caption-transform: none;
  --text-overline-family: var(--font-body); --text-overline-size: 0.8125rem; --text-overline-weight: 600; --text-overline-leading: 1.3; --text-overline-tracking: 0.1em; --text-overline-transform: uppercase;
  --text-mono-family: var(--font-mono); --text-mono-size: 0.9375rem; --text-mono-weight: 400; --text-mono-leading: 1.5; --text-mono-tracking: 0em; --text-mono-transform: none;
  --shadow-text: 0 2px 12px rgba(0,0,0,.45);
  --motion-fast: 160ms;
  --color-bg: #f6f1e4;
  --color-surface: #fffaf0;
  --color-fg: #1d2633;
  --color-muted: #5d6572;
  --color-rule: #e2d9c4;
  --color-accent: #2c4a70;
  --color-accent-fg: #2c4a70;
  --color-accent-soft: #e3e9f1;
  --color-on-accent: #ffffff;
  --color-on-photo: #ffffff;
  --color-on-photo-muted: rgba(255,255,255,.82);
  --color-ghost-fill: rgba(255,255,255,.1);
  --color-ghost-border: rgba(255,255,255,.35);
  --color-scrim-weak: rgba(14,20,28,.15);
  --color-scrim-strong: rgba(14,20,28,.78);
  --color-scrim-heavy: rgba(14,20,28,.88);
  --color-scrim-none: rgba(14,20,28,0);
  --color-photo-backdrop: #1a2430;
  --color-header-bg: rgba(246,241,228,.9);
  --shadow-card: 0 18px 40px -24px rgba(29,38,51,.55);
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-bg: #11161e;
    --color-surface: #1a222d;
    --color-fg: #efe9dc;
    --color-muted: #a8afba;
    --color-rule: #2a3442;
    --color-accent: #d4b06a;
    --color-accent-fg: #dfbf7e;
    --color-accent-soft: #2b2a22;
    --color-on-accent: #11161e;
    --color-on-photo: #ffffff;
    --color-on-photo-muted: rgba(255,255,255,.82);
    --color-ghost-fill: rgba(255,255,255,.1);
    --color-ghost-border: rgba(255,255,255,.35);
    --color-scrim-weak: rgba(14,20,28,.15);
    --color-scrim-strong: rgba(14,20,28,.78);
    --color-scrim-heavy: rgba(14,20,28,.88);
    --color-scrim-none: rgba(14,20,28,0);
    --color-photo-backdrop: #1a2430;
    --color-header-bg: rgba(17,22,30,.88);
    --shadow-card: 0 18px 40px -24px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"] {
  --color-bg: #11161e;
  --color-surface: #1a222d;
  --color-fg: #efe9dc;
  --color-muted: #a8afba;
  --color-rule: #2a3442;
  --color-accent: #d4b06a;
  --color-accent-fg: #dfbf7e;
  --color-accent-soft: #2b2a22;
  --color-on-accent: #11161e;
  --color-on-photo: #ffffff;
  --color-on-photo-muted: rgba(255,255,255,.82);
  --color-ghost-fill: rgba(255,255,255,.1);
  --color-ghost-border: rgba(255,255,255,.35);
  --color-scrim-weak: rgba(14,20,28,.15);
  --color-scrim-strong: rgba(14,20,28,.78);
  --color-scrim-heavy: rgba(14,20,28,.88);
  --color-scrim-none: rgba(14,20,28,0);
  --color-photo-backdrop: #1a2430;
  --color-header-bg: rgba(17,22,30,.88);
  --shadow-card: 0 18px 40px -24px rgba(0,0,0,.8);
  color-scheme: dark;
}
:root[data-theme="light"] { color-scheme: light; }
*, *::before, *::after { box-sizing: border-box }
html { font-size: 100%; scroll-behavior: smooth; scroll-padding-top: var(--size-header) }
body { margin: 0; background: var(--color-bg); color: var(--color-fg); font-family: var(--text-body-family); font-size: var(--text-body-size); font-weight: var(--text-body-weight); line-height: var(--text-body-leading); letter-spacing: var(--text-body-tracking); text-transform: var(--text-body-transform); -webkit-font-smoothing: antialiased }
a { color: var(--color-accent-fg); text-decoration: none }
a:hover, a:focus-visible { text-decoration: underline; text-underline-offset: var(--stroke-emphasized) }
img { max-width: 100%; height: auto }
h1, h2, h3, p { margin-top: 0 }
h1 { font-family: var(--text-h1-family); font-size: var(--text-h1-size); font-weight: var(--text-h1-weight); line-height: var(--text-h1-leading); letter-spacing: var(--text-h1-tracking); text-transform: var(--text-h1-transform); margin-bottom: var(--space-s) }
h2 { font-family: var(--text-h2-family); font-size: var(--text-h2-size); font-weight: var(--text-h2-weight); line-height: var(--text-h2-leading); letter-spacing: var(--text-h2-tracking); text-transform: var(--text-h2-transform); margin-bottom: var(--space-m) }
h3 { font-family: var(--text-h3-family); font-size: var(--text-h3-size); font-weight: var(--text-h3-weight); line-height: var(--text-h3-leading); letter-spacing: var(--text-h3-tracking); text-transform: var(--text-h3-transform); margin-bottom: var(--space-sm) }
p { margin-bottom: var(--space-m) }
button { font: inherit }
.skip { position: absolute; top: var(--space-m); left: var(--space-m); transform: translateY(-300%); background: var(--color-surface); padding: var(--space-s) var(--space-m); z-index: 10 }
.skip:focus { transform: none }
@font-face{font-family:"Fraunces";src:url("/assets/fonts/fraunces-400-a3d5e474.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("/assets/fonts/fraunces-600-4327d222.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("/assets/fonts/ibmplexsans-400-2dffd932.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("/assets/fonts/ibmplexsans-500-723391f9.woff2") format("woff2");font-weight:500 600;font-style:normal;font-display:swap}
.brand span { font-family: var(--text-lead-family); font-size: var(--text-lead-size); font-weight: var(--text-lead-weight); line-height: var(--text-lead-leading); letter-spacing: var(--text-lead-tracking); text-transform: var(--text-lead-transform); font-family: var(--font-heading); font-weight: 600 }
.prose img { border-radius: var(--radius-s) }
.prose pre, .prose code { font-family: var(--text-mono-family); font-size: var(--text-mono-size); font-weight: var(--text-mono-weight); line-height: var(--text-mono-leading); letter-spacing: var(--text-mono-tracking); text-transform: var(--text-mono-transform) }
.prose pre { background: var(--color-surface); border: var(--stroke-hairline) solid var(--color-rule); border-radius: var(--radius-s); padding: var(--space-sm) var(--space-m); overflow-x: auto }
.prose blockquote { margin-block: var(--space-m); margin-inline: 0; padding-left: var(--space-m); border-left: var(--stroke-emphasized) solid var(--color-accent); color: var(--color-muted) }
.prose table { border-collapse: collapse }
.prose td, .prose th { border: var(--stroke-hairline) solid var(--color-rule); padding: var(--space-xs) var(--space-s) }
.bg-accent-soft { background: var(--color-accent-soft) }
.bg-header-bg { background: var(--color-header-bg) }
.bg-none { background: none }
.bg-surface { background: var(--color-surface) }
.border-hairline-rule { border: var(--stroke-hairline) solid var(--color-rule) }
.column-m-narrow { width: min(100% - 2 * var(--space-m), var(--width-narrow)); margin-inline: auto }
.column-m-wrap { width: min(100% - 2 * var(--space-m), var(--width-wrap)); margin-inline: auto }
.cursor-pointer { cursor: pointer }
.flex { display: flex }
.gap-hero { gap: var(--space-hero) }
.gap-l { gap: var(--space-l) }
.gap-s { gap: var(--space-s) }
.gap-tight-m { gap: var(--space-tight) var(--space-m) }
.gap-xs-m { gap: var(--space-xs) var(--space-m) }
.grid { display: grid }
.h-l { height: var(--space-l) }
.h-xl { height: var(--space-xl) }
.height-auto { height: auto }
.hidden { display: none }
.inline-block { display: inline-block }
.m-0 { margin: 0 }
.p-s-m { padding: var(--space-s) var(--space-m) }
.p-tight-sm { padding: var(--space-tight) var(--space-sm) }
.p-xl { padding: var(--space-xl) }
.size-portrait-sm { width: var(--size-portrait-sm); height: var(--size-portrait-sm) }
.sticky-top { position: sticky; top: 0 }
.text-accent-fg { color: var(--color-accent-fg) }
.text-body-sm { font-family: var(--text-body-sm-family); font-size: var(--text-body-sm-size); font-weight: var(--text-body-sm-weight); line-height: var(--text-body-sm-leading); letter-spacing: var(--text-body-sm-tracking); text-transform: var(--text-body-sm-transform) }
.text-display { font-family: var(--text-display-family); font-size: var(--text-display-size); font-weight: var(--text-display-weight); line-height: var(--text-display-leading); letter-spacing: var(--text-display-tracking); text-transform: var(--text-display-transform) }
.text-fg { color: var(--color-fg) }
.text-lead { font-family: var(--text-lead-family); font-size: var(--text-lead-size); font-weight: var(--text-lead-weight); line-height: var(--text-lead-leading); letter-spacing: var(--text-lead-tracking); text-transform: var(--text-lead-transform) }
.text-muted { color: var(--color-muted) }
.text-overline { font-family: var(--text-overline-family); font-size: var(--text-overline-size); font-weight: var(--text-overline-weight); line-height: var(--text-overline-leading); letter-spacing: var(--text-overline-tracking); text-transform: var(--text-overline-transform) }
.text-small { font-family: var(--text-small-family); font-size: var(--text-small-size); font-weight: var(--text-small-weight); line-height: var(--text-small-leading); letter-spacing: var(--text-small-tracking); text-transform: var(--text-small-transform) }
.w-full { width: 100% }
.width-auto { width: auto }
.backdrop-blur-blur { backdrop-filter: blur(var(--size-blur)) }
.border-b-hairline-rule { border-bottom: var(--stroke-hairline) solid var(--color-rule) }
.border-t-hairline-rule { border-top: var(--stroke-hairline) solid var(--color-rule) }
.flex-wrap { flex-wrap: wrap }
.font-600 { font-weight: 600 }
.font-700 { font-weight: 700 }
.items-center { align-items: center }
.items-start { align-items: start }
.justify-between { justify-content: space-between }
.max-w-hero-text { max-width: var(--size-hero-text) }
.max-w-narrow { max-width: var(--width-narrow) }
.mb-l { margin-bottom: var(--space-l) }
.mb-m { margin-bottom: var(--space-m) }
.mb-s { margin-bottom: var(--space-s) }
.mt-divider { margin-top: var(--space-divider) }
.mt-l { margin-top: var(--space-l) }
.mt-s { margin-top: var(--space-s) }
.mt-xl { margin-top: var(--space-xl) }
.pb-hero { padding-bottom: var(--space-hero) }
.pb-m { padding-bottom: var(--space-m) }
.pt-hero { padding-top: var(--space-hero) }
.pt-s { padding-top: var(--space-s) }
.pt-xl { padding-top: var(--space-xl) }
.py-divider { padding-block: var(--space-divider) }
.py-hero { padding-block: var(--space-hero) }
.py-sm { padding-block: var(--space-sm) }
.rounded-l { border-radius: var(--radius-l) }
.rounded-pill { border-radius: var(--radius-pill) }
.shadow-card { box-shadow: var(--shadow-card) }
.z-5 { z-index: 5 }
.cols-3 { grid-template-columns: repeat(3, 1fr) }
.cols-content-first { grid-template-columns: auto minmax(0, 1fr) }
.cols-fr-1-1 { grid-template-columns: 1fr 1fr }
.cols-fr-2-3 { grid-template-columns: 2fr 3fr }
.cols-fr-3-2 { grid-template-columns: 3fr 2fr }
.hover\:text-fg:hover { color: var(--color-fg) }
.hover\:border-accent:hover { border-color: var(--color-accent) }
.hover\:no-underline:hover { text-decoration: none }
.first\:border-t-0:first-child { border-top: 0 }
.first\:mt-0:first-child { margin-top: 0 }
.first\:pt-xl:first-child { padding-top: var(--space-xl) }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .dark\:block { display: block } }
:root[data-theme="dark"] .dark\:block { display: block }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .dark\:hidden { display: none } }
:root[data-theme="dark"] .dark\:hidden { display: none }
@media (max-width: 48rem) {
  .narrow\:gap-l { gap: var(--space-l) }
  .narrow\:gap-m { gap: var(--space-m) }
  .narrow\:order-last { order: 1 }
  .narrow\:py-xl { padding-block: var(--space-xl) }
  .narrow\:cols-1 { grid-template-columns: repeat(1, 1fr) }
}
@media (max-width: 30rem) {
  .phone\:p-m { padding: var(--space-m) }
  .phone\:cols-1 { grid-template-columns: repeat(1, 1fr) }
}
