/* Warm paper in light mode. Dark mode follows the system. */
:root {
  --tm-primary: #7A1F2B;
  --tm-primary-dark: #58151E;
  --tm-primary-soft: #F3E8EA;
  --tm-gold: #A9874F;
  --tm-bg: #F7F5F0;
  --tm-surface: #FFFFFF;
  --tm-surface-alt: #F1EEE8;
  --tm-text: #1C1C1C;
  --tm-text-muted: #65615D;
  --tm-border: #DEDAD3;
  --paper: #F7F5F0;
  --paper-2: #F1EEE8;
  --ink: #1C1C1C;
  --ink-2: #65615D;
  --line: #DEDAD3;
  --ember: #7A1F2B;
  --ember-ink: #7A1F2B;
  --gold: #A9874F;
  --on-ember: #FFFFFF;
  --tA: #37634A; --tB: #4F6F52; --tC: #8A641D; --tD: #7A746C;
  --bs-primary: #7A1F2B;
  --bs-primary-rgb: 122, 31, 43;
  --bs-body-bg: #F7F5F0;
  --bs-body-color: #1C1C1C;
  --bs-link-color: #7A1F2B;
  --bs-link-hover-color: #58151E;
  --bs-border-color: #DEDAD3;
  color-scheme: light dark;
}
body.memorial { background: var(--paper); color: var(--ink); }
header.site { background: #2A2523; z-index: 1030; border-bottom: 0; }
.topbar { background: #111111; color: #fff; font-size: .92rem; }
.topbar > .container-xl { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 40px; }
.top-link, .top-auth a { color: #fff; background: transparent; border: 0; padding: 6px 0; text-decoration: none; }
.top-link { display: inline-flex; align-items: center; gap: .35rem; }
.top-auth { display: flex; gap: 16px; }
.top-auth a:hover, .top-link:hover { color: #F4EFE5; }
.site-nav { background: #2A2523; }
.header-search { width: min(240px, 100%); }
.header-search input { background: #fff; border-color: #DEDAD3; }
.page-link { color: #7A1F2B; }
.page-item.active .page-link, .page-link:hover { background: #7A1F2B; border-color: #7A1F2B; color: #fff; }
a:hover { color: #58151E; }
.btn { border-radius: .5rem; }
.btn.primary, .btn-primary { background: #7A1F2B; border-color: #7A1F2B; color: #fff; }
.btn.primary:hover, .btn-primary:hover { background: #58151E; border-color: #58151E; color: #fff; }
.btn-outline-primary { color: #7A1F2B; border-color: #7A1F2B; background: #fff; }
.btn-outline-primary:hover { color: #fff; background: #7A1F2B; border-color: #7A1F2B; }
.site-nav .navbar-brand { display: inline-flex; align-items: center; gap: 10px; color: #F7F5F0; text-decoration: none; }
.site-nav .navbar-brand .word { display: block; font-weight: 800; font-size: 1.02rem; line-height: 1.15; color: #F7F5F0; }
.site-nav .navbar-brand .word-sub { display: block; font-size: 11px; color: #C9C0B4; letter-spacing: 0; text-transform: none; }
.site-nav .navbar-nav { flex-wrap: nowrap; }
.site-nav .nav-link { color: #F7F5F0; display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; padding: .45rem .65rem; }
.site-nav .nav-link:hover, .site-nav .nav-link:focus { color: #E7C98A; }
.brand-logo {
  width: 36px; height: 48px; display: block; flex: none;
  background: transparent; color: #0B0B0B; color-scheme: normal;
}
.site-nav .brand-logo, .site-foot .brand-logo { color: #fff; background: transparent; }
.hero .brand-logo { color: var(--ink); background: transparent; }
.nav-actions { display: flex; flex-wrap: nowrap; gap: .5rem; align-items: center; }
.nav-actions .btn { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.dropdown-item { display: flex; align-items: center; gap: .45rem; }
.mcard, .kpis div, details.filters { background: #fff; }
.mcard:hover { border-color: #C8C2B9; }
.mcard .nophoto, .photo.missing { background: #F1EEE8; }
.mcard .nophoto span, .photo.missing span { color: #A9874F; }
form.big-search { background: #fff; border-color: #DEDAD3; }
form.big-search button { background: #7A1F2B; color: #fff; }
form.big-search:focus-within { border-color: #7A1F2B; box-shadow: 0 0 0 .2rem rgba(122,31,43,.12); }
.view-toggle a.on, .day-picks a.on { background: #F3E8EA; color: #58151E; border-color: #7A1F2B; }
main.container-xl { padding-top: 28px; padding-bottom: 8px; }
.site-foot { background: #1C1C1C; color: #F7F5F0; margin-top: 64px; padding: 48px 0 36px; }
.site-foot .foot-brand { display: inline-flex; align-items: center; gap: 10px; color: #F7F5F0; font-weight: 800; text-decoration: none; }
.site-foot h2 { color: #F7F5F0; font-size: 1rem; font-weight: 700; margin: 0 0 10px; }
.site-foot a { color: #F7F5F0; text-decoration: none; }
.site-foot li a { display: inline-block; padding: 3px 0; color: #D9D3CB; }
.site-foot a:hover { color: #F4EFE5; }
.site-foot .foot-copy, .site-foot .foot-sub { color: #B7B1A8; font-size: .92rem; }
.site-foot .foot-sub { max-width: 36ch; }
.site-foot .foot-langs { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.site-foot .foot-social { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
.site-foot .foot-social a { font-size: 1.35rem; text-decoration: none; }
.site-foot .foot-langs a { color: #D9D3CB; }
.video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px 14px; }
.vcard { color: inherit; text-decoration: none; display: block; }
.vthumb { position: relative; aspect-ratio: 16/9; background: #1C1C1C; border-radius: 12px; overflow: hidden; display: flex; align-items: flex-end; }
.vthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vplay { position: absolute; inset: 0; margin: auto; width: 48px; height: 48px; border-radius: 50%; background: rgba(28,28,28,.72); color: #fff; display: grid; place-items: center; }
.vmeta { display: flex; flex-direction: column; gap: 2px; padding: 8px 2px 0; }
.vmeta span, .platform { color: var(--ink-2); font-size: 13px; }
.player { position: relative; aspect-ratio: 16/9; background: #1C1C1C; border-radius: 12px; overflow: hidden; }
.player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 991.98px) {
  .site-nav .navbar-collapse.show {
    background: #2A2523; border-top: 1px solid rgba(255,255,255,.12); padding: 8px 4px 16px;
  }
  .site-nav .nav-link { padding: .7rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .header-search { width: 100%; margin-top: 12px; }
}
@media (max-width: 420px) {
  .portrait-grid, .video-grid { grid-template-columns: 1fr; }
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #141312;
    --paper-2: #1E1C1A;
    --ink: #EDE9E3;
    --ink-2: #A8A29A;
    --line: #2F2C29;
    --ember: #E7C4C8;
    --ember-ink: #E7C4C8;
    --bs-body-bg: #141312;
    --bs-body-color: #EDE9E3;
    --bs-link-color: #E7C4C8;
    --bs-link-hover-color: #F4EFE5;
    --bs-border-color: #2F2C29;
    color-scheme: dark;
  }
  body.memorial { background: #141312; color: #EDE9E3; }
  header.site, .site-nav { background: #221E1C; }
  .mcard, .kpis div, details.filters, form.big-search, .dropdown-menu {
    background: #1C1A18; color: #EDE9E3; border-color: #2F2C29;
  }
  .mcard .nophoto, .photo.missing { background: #141312; }
  .dropdown-item { color: #EDE9E3; }
  .dropdown-item:hover, .dropdown-item:focus { background: #2A2523; color: #fff; }
  input, select, textarea, .header-search input {
    background: #1C1A18; color: #EDE9E3; border-color: #3A3532;
  }
  .prose, .home-copy, h1, h2, h3 { color: #EDE9E3; }
  .muted, .mcard .mc { color: #A8A29A; }
}
.timeline { list-style: none; margin: 28px 0; padding: 0; border-inline-start: 2px solid #B4232C; }
.timeline li { padding: 8px 0 22px 18px; }
.timeline .tl-date { color: var(--ink-2); font-size: 14px; margin: 0; }
.timeline h2 { margin: 2px 0 8px; font-size: 1.25rem; }
.mcard .mface { display: block; color: inherit; text-decoration: none; }
.mcard .mn { color: inherit; text-decoration: none; font-weight: 800; }
.mcard .marks { display: flex; flex-wrap: wrap; gap: 6px 10px; list-style: none; margin: 8px 0 0; padding: 0; }
.mcard .marks li, .marks.key li { display: inline-flex; align-items: center; gap: 4px; color: var(--ink-2); font-size: 13px; }
.mark.tier { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; border: 1px solid currentColor; border-radius: 4px; font-weight: 700; }
.card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.card-actions a, .save-btn { min-height: 44px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 8px; border: 1px solid var(--line); background: transparent; color: inherit; text-decoration: none; }
.save-btn[aria-pressed="true"] { background: #F3E8EA; color: #58151E; border-color: #7A1F2B; }
.placeholder-logo { width: 38%; height: auto; color: var(--ink); }
.mcard .nophoto img.ph, .photo.missing img.ph { width: 78%; height: 78%; max-height: 78%; object-fit: contain; aspect-ratio: auto; background: transparent; }
.nophoto img.ph-dark { display: none; }
.home-links a { min-height: 168px; }
.home-links em { margin-top: auto; font-style: normal; font-weight: 700; color: #7A1F2B; }
main:has(> .page-kicker) { display: grid; grid-template-columns: 88px minmax(0, 1fr); column-gap: 18px; align-items: center; }
main > .page-kicker { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
main > h1 { grid-column: 2; grid-row: 1; margin: 0; }
main > .lede { grid-column: 2; grid-row: 2; margin: 4px 0 0; }
main > :not(.page-kicker):not(h1):not(.lede) { grid-column: 1 / -1; }
@media (max-width: 640px) {
  main:has(> .page-kicker) { grid-template-columns: 64px minmax(0, 1fr); }
}
@media (prefers-color-scheme: dark) {
  .nophoto img.ph-light { display: none; }
  .nophoto img.ph-dark { display: block; }
  .home-links em { color: #E7C4C8; }
}
.mark-key { margin: 8px 0 18px; }
.mark-key summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }
:focus-visible { outline: 3px solid #7A1F2B; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (prefers-color-scheme: dark) {
  .save-btn[aria-pressed="true"] { background: #3A2428; color: #F4EFE5; }
}
.timeline .blackout { background: #141312; color: #F7F5F0; margin-inline-start: -18px; padding: 16px 18px 20px 34px; border-radius: 12px; }
.timeline .blackout a { color: #F4EFE5; }
.family-hero { display: grid; grid-template-columns: 1.2fr .8fr; gap: 28px; align-items: center; }
.family-hero img { width: 100%; height: auto; border-radius: 12px; }
.faq details { border-bottom: 1px solid var(--line); padding: 12px 0; }
.faq summary { cursor: pointer; font-weight: 700; }
.exec-band { background: #7D0710; color: #F7F5F0; border-radius: 16px; padding: 22px 24px; margin: 28px 0; }
.exec-band a { color: #fff; }
.exec-band .btn { background: #111; border-color: #111; color: #fff; }
.page-kicker { margin: 8px 0 0; }
.page-kicker img { width: 88px; height: auto; }
.mark-on-dark, .poster-dark { display: none; }
.poster-light, .poster-dark { width: min(280px, 70vw); height: auto; }
.nav-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #E23B32; vertical-align: middle; }
@media (prefers-color-scheme: dark) {
  .mark-on-light, .poster-light { display: none; }
  .mark-on-dark, .poster-dark { display: inline; }
}
