/* Dark "premium" look — design preview only, served under /dark/ (2026-10-17).
   After the reference sites Dr. Laari's team liked: black and white with an elegant serif
   (crystelclearbusiness.com) and a dark navy, cinematic photo hero with a warm horizon glow
   (nexusboxstudio.com). Everything is scoped to body.theme-dark, so no light page changes.
   YES America's red and navy stay as accents. Same content as the light pages — a restyle. */
.theme-dark {
  --paper: #07070d;
  --paper-2: #0e0d1a;
  --panel: #0c0b17;
  --line: rgba(255, 255, 255, .1);
  --line-2: rgba(255, 255, 255, .18);
  --text: #dcd9e8;
  --soft: #a9a6bd;
  --ink: #f6f3ec;
  --ember: #ff9a4d;
  --ember-2: #ff6a2b;
  --ok: #6fd39a;
  --radius: 6px;
  --shadow: none;
  --shadow-lg: 0 40px 90px rgba(0, 0, 0, .55);
  --serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  /* Seamless edges (2026-10-18): section and chrome rules are hairlines that dissolve at the
     ends instead of full-width solid lines; bands are translucent so the star sky stays one space. */
  --hair: linear-gradient(90deg, transparent, rgba(255, 255, 255, .1) 22%, rgba(255, 154, 77, .22) 50%, rgba(255, 255, 255, .1) 78%, transparent) 1;
  --rule: linear-gradient(90deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .06) 65%, transparent) 1;
  --band: linear-gradient(180deg, rgba(16, 14, 40, 0), rgba(16, 14, 40, .5) 20%, rgba(16, 14, 40, .5) 80%, rgba(16, 14, 40, 0));
  --r-card: 14px;
  background: var(--paper);
  color: var(--text);
}
.theme-dark ::selection { background: rgba(213, 7, 27, .55); color: #fff; }

/* ---------- Type: an elegant serif for headings, the same clean sans for reading ---------- */
.theme-dark h1, .theme-dark h2, .theme-dark h3, .theme-dark h4 { font-family: var(--serif); font-weight: 500; font-stretch: normal; color: var(--ink); letter-spacing: 0; }
.theme-dark h1 { font-size: clamp(44px, 6.6vw, 92px); line-height: 1.02; }
.theme-dark h2 { font-size: clamp(34px, 4.4vw, 58px); line-height: 1.06; }
.theme-dark h3 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.15; }
.theme-dark .lead { color: var(--soft); }
.theme-dark .muted { color: var(--soft); }
.theme-dark .eyebrow, .theme-dark .dk-kicker { display: inline-flex; align-items: center; gap: 14px; font: 600 12px/1 var(--body); letter-spacing: .32em; text-transform: uppercase; color: var(--ember); margin-bottom: 20px; }
.theme-dark .eyebrow::before, .theme-dark .dk-kicker::before { content: ""; width: 34px; height: 1px; background: currentColor; }
.theme-dark .link { color: var(--ink); }
.theme-dark .star { color: var(--red); }

/* ---------- Chrome ---------- */
.theme-dark .site-head { background-color: rgba(7, 7, 13, .74); border-bottom: 1px solid transparent; border-image: var(--hair); backdrop-filter: saturate(140%) blur(14px); }
.theme-dark .site-head.scrolled { box-shadow: 0 10px 40px rgba(0, 0, 0, .5); }
/* the glass header dissolves downward instead of ending on its own edge */
.theme-dark .site-head::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 26px; margin-top: 1px; background: linear-gradient(180deg, rgba(7, 7, 13, .5), rgba(7, 7, 13, 0)); pointer-events: none; }
.theme-dark .nav > a[aria-current] { box-shadow: inset 0 -1px 0 var(--ember); border-radius: 0; background: none; }
.theme-dark .nav > a:hover, .theme-dark .nav > .has-menu > button:hover { background: rgba(255, 255, 255, .06); }
.theme-dark .mega { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-lg); }
.theme-dark .mega .mh { font-family: var(--body); color: var(--ember); letter-spacing: .22em; font-size: 11px; }
.theme-dark .mega a { color: var(--text); }
.theme-dark .mega a:hover { color: var(--ink); }
.theme-dark .mega .all { border-color: var(--line); }
.theme-dark .mega .all .link { color: var(--ink); }
.theme-dark .drawer { background: var(--paper); }
.theme-dark .drawer a { font-family: var(--serif); font-weight: 500; border-color: var(--line); }
.theme-dark .demo-bar { background: rgba(4, 4, 8, .62); border-bottom: 1px solid transparent; border-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, .08) 30%, rgba(255, 255, 255, .08) 70%, transparent) 1; }
.theme-dark .demo-bar b { color: var(--ember); }
.dk-preview { background: linear-gradient(90deg, rgba(26, 15, 8, 0), rgba(26, 15, 8, .6) 28%, rgba(11, 10, 30, .6) 72%, rgba(11, 10, 30, 0)); color: var(--soft); font-size: 13.5px; text-align: center; padding: 9px 16px; border-bottom: 1px solid transparent; border-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, .08) 30%, rgba(255, 255, 255, .08) 70%, transparent) 1; }
.dk-preview span { color: var(--ember); font-weight: 600; }
.dk-preview a { color: var(--ink); }
.theme-dark .site-foot { background: linear-gradient(180deg, rgba(4, 4, 8, 0), rgba(4, 4, 8, .8) 200px, rgba(4, 4, 8, .94)); border-top: 1px solid transparent; border-image: var(--hair); color: var(--soft); }
.theme-dark .site-foot h2 { font-family: var(--body); color: var(--ember); letter-spacing: .24em; font-size: 11.5px; }
.theme-dark .site-foot a { color: var(--text); }
.theme-dark .site-foot a:hover { color: var(--ink); }
.theme-dark .news input { background: rgba(255, 255, 255, .04); border-color: var(--line-2); }
.theme-dark .news input:focus { border-color: var(--ember); }
.theme-dark .socials a { background: rgba(255, 255, 255, .06); border: 1px solid var(--line); }
.theme-dark .foot-base { border-top: 1px solid transparent; border-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12) 18%, rgba(255, 255, 255, .12) 82%, transparent) 1; }

/* ---------- Buttons: brand red stays the call to action; outlines are a fine white rule ---------- */
.theme-dark .btn { border-radius: 999px; }
.theme-dark .btn:hover { box-shadow: 0 12px 30px rgba(213, 7, 27, .35); }
.theme-dark .btn.outline-light { border-color: rgba(255, 255, 255, .45); }
.theme-dark .btn.outline-light:hover { --bg: #fff; --fg: #07070d; }
.theme-dark .btn.ghost { --fg: var(--ink); border-color: rgba(255, 255, 255, .45); }
.theme-dark .btn.ghost:hover { --bg: #fff; --fg: #07070d; }
.theme-dark .btn.navy { --bg: var(--red); }
.theme-dark .btn.light { --bg: var(--red); --fg: #fff; }
.theme-dark .btn.light:hover { box-shadow: 0 12px 30px rgba(213, 7, 27, .35); }

/* ---------- Monogram: the star from their logo inside a double ring ---------- */
.dk-mono { width: clamp(96px, 11vw, 130px); height: auto; color: rgba(255, 255, 255, .9); margin-bottom: 26px; filter: drop-shadow(0 0 24px rgba(255, 154, 77, .25)); }
.dk-mono.small { width: 72px; margin: 0 auto 22px; }

/* ---------- Home hero: one big cinematic photo, deep navy above, a warm glow at the horizon ---------- */
.dk-hero { position: relative; isolation: isolate; min-height: min(92vh, 900px); display: grid; align-items: center; text-align: center; overflow: hidden; color: #fff; background: transparent; }
.dk-hero .bg { position: absolute; inset: 0; z-index: -3; }
.dk-hero .bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); animation: kenburns 26s ease-out forwards; filter: saturate(.85) contrast(1.05); }
.dk-hero::before { content: ""; position: absolute; inset: 0; z-index: -2;
  background: linear-gradient(180deg, rgba(5, 5, 26, .92) 0%, rgba(8, 8, 40, .72) 42%, rgba(12, 10, 60, .55) 70%, rgba(7, 7, 13, .96) 100%); }
.dk-glow { position: absolute; left: 50%; bottom: -30%; width: 140%; height: 70%; transform: translateX(-50%); z-index: -1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(255, 122, 43, .38), rgba(255, 106, 43, .16) 45%, transparent 75%); filter: blur(10px); }
.dk-hero .wrap { padding: clamp(70px, 10vw, 130px) 0; display: grid; justify-items: center; }
.dk-hero h1 { color: #fff; max-width: 16ch; margin-top: 4px; }
.dk-hero h1 em, .dk-phero h1 em { font-style: italic; color: #fff; background: none; text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 3px; text-underline-offset: 10px; }
.dk-hero .lead { color: rgba(255, 255, 255, .82); margin: 26px auto 38px; }
.dk-hero .actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.dk-scroll { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); width: 26px; height: 42px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 14px; }
.dk-scroll span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: #fff; animation: dk-scroll 1.8s ease-in-out infinite; }
@keyframes dk-scroll { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* ---------- Inner-page hero: the same cinematic treatment, left-aligned, shorter ---------- */
.dk-phero { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: transparent; min-height: min(62vh, 620px); display: grid; align-items: end; }
.dk-phero .bg { position: absolute; inset: 0; z-index: -3; }
.dk-phero .bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); animation: kenburns 26s ease-out forwards; filter: saturate(.85) contrast(1.05); }
.dk-phero::before { content: ""; position: absolute; inset: 0; z-index: -2;
  background: linear-gradient(180deg, rgba(5, 5, 26, .9) 0%, rgba(8, 8, 40, .55) 45%, rgba(7, 7, 13, .97) 100%); }
.dk-phero .dk-glow { bottom: -32%; opacity: .7; }
/* Hero photos dissolve into the sky instead of ending on a hard edge. The photo, its tint and the
   horizon glow are masked (not the text), and the glows sit high enough that their mask, not the
   section's overflow, is what ends them. */
.dk-hero .bg, .dk-phero .bg, .dk-hero::before, .dk-phero::before { -webkit-mask-image: linear-gradient(180deg, #000 58%, transparent); mask-image: linear-gradient(180deg, #000 58%, transparent); }
.theme-dark .dk-glow { -webkit-mask-image: linear-gradient(180deg, #000 12%, transparent 52%); mask-image: linear-gradient(180deg, #000 12%, transparent 52%); }
.dk-phero .wrap { padding: clamp(90px, 12vw, 150px) 0 clamp(56px, 7vw, 84px); }
.dk-phero h1 { color: #fff; font-size: clamp(40px, 5.6vw, 76px); max-width: 18ch; }
.dk-phero .lead { color: rgba(255, 255, 255, .82); margin-top: 20px; }
.dk-phero .crumbs { color: rgba(255, 255, 255, .7); }
.dk-phero .eyebrow { color: var(--ember); }

/* ---------- Sections ---------- */
.theme-dark section.block { position: relative; border-top: 1px solid transparent; border-image: var(--hair); }
.theme-dark section.alt { background: var(--band); }
.theme-dark section.dark { background: radial-gradient(120% 90% at 50% 0%, rgba(13, 11, 48, .7), rgba(13, 11, 48, 0) 62%); }
.dk-block { position: relative; padding: clamp(80px, 10vw, 130px) 0; border-top: 1px solid transparent; border-image: var(--hair); }
.dk-alt { background: var(--band); }
/* No rule right under a hero, and none between two banded sections: the band itself is the change. */
.theme-dark :is(.dk-hero, .dk-phero) + section, .theme-dark :is(section.alt, .dk-alt) + :is(section.alt, .dk-alt) { border-image: none; }
.dk-head, .theme-dark .head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 20px 40px; margin-bottom: clamp(36px, 5vw, 56px); }
.dk-head > div, .theme-dark .head > div { max-width: 760px; }
.dk-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 5vw, 70px); margin-top: clamp(36px, 5vw, 56px); }
.dk-cols h3 { padding-bottom: 14px; margin-bottom: 8px; border-bottom: 1px solid transparent; border-image: var(--rule); }

/* Feature rows (term + text), everywhere */
.theme-dark .feature { border-color: var(--line); }
.theme-dark .feature b { color: var(--ink); }
.theme-dark .feature p { color: var(--soft); }
.theme-dark .feature .ic { color: var(--ember); background: transparent; border: 1px solid rgba(255, 154, 77, .4); border-radius: 50%; font-family: var(--serif); font-weight: 500; font-size: 15px; }
.theme-dark section.dark .feature .ic { background: transparent; color: var(--ember); }

/* Cards */
.theme-dark .card { background: var(--panel); border-color: var(--line); box-shadow: none; }
.theme-dark .card:hover { border-color: var(--line-2); box-shadow: var(--shadow-lg); }
.theme-dark .card .num { font-family: var(--body); font-weight: 600; font-size: 11.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--ember); }
.theme-dark .card p { color: var(--soft); }
.theme-dark .empty-note { background: var(--panel); border-color: var(--line-2); color: var(--soft); border-radius: var(--r-card); }

/* Program cards: photo with the title set over it */
.dk-programs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dk-prog { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: var(--r-card); overflow: hidden; text-decoration: none; color: #fff; border: 1px solid var(--line); isolation: isolate; }
.dk-prog img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--ease); filter: saturate(.9); }
.dk-prog::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7, 7, 13, 0) 25%, rgba(7, 7, 13, .72) 58%, rgba(7, 7, 13, .95) 90%); }
.dk-prog:hover img { transform: scale(1.06); }
.dk-prog-txt { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; display: grid; gap: 6px; }
.dk-prog .tag { font: 600 11px/1.2 var(--body); letter-spacing: .2em; text-transform: uppercase; color: var(--ember); }
.dk-prog b { font: 500 clamp(22px, 2vw, 28px)/1.12 var(--serif); }
.dk-prog .more { font-size: 14px; color: rgba(255, 255, 255, .78); }
/* …and the standard program card (programs index, related programs) */
.theme-dark .pcard { background: var(--panel); border-color: var(--line); box-shadow: none; border-radius: var(--r-card); }
.theme-dark .pcard:hover { border-color: var(--line-2); box-shadow: var(--shadow-lg); }
.theme-dark .pcard .img { background: #000; }
.theme-dark .pcard .img img { filter: saturate(.9); }
.theme-dark .pcard .tag { color: var(--ember); letter-spacing: .2em; font-size: 11px; }
.theme-dark .pcard h3 { font-size: 25px; }
.theme-dark .pcard p { color: var(--soft); }
.theme-dark .pcard .more { color: var(--ink); font-weight: 500; }
.theme-dark .new-badge { background: var(--red); }
.theme-dark .chip { background: transparent; border-color: var(--line-2); color: var(--text); }
.theme-dark .chip:hover { border-color: #fff; color: var(--ink); }
.theme-dark .chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #07070d; }
.theme-dark .search input { background: rgba(255, 255, 255, .04); border-color: var(--line-2); color: var(--ink); }
.theme-dark .search input::placeholder { color: var(--soft); }
.theme-dark .search svg { color: var(--soft); }

/* Photos */
.dk-photo, .theme-dark .photo { position: relative; border-radius: var(--r-card); overflow: hidden; aspect-ratio: 4 / 4.6; border: 1px solid rgba(255, 255, 255, .08); box-shadow: var(--shadow-lg); }
.theme-dark .photo { aspect-ratio: 4 / 3.3; }
.dk-photo.portrait { aspect-ratio: 4 / 5; }
.dk-photo img, .theme-dark .photo img { width: 100%; height: 100%; object-fit: cover; }
.dk-photo.portrait img { object-position: top; }
.dk-photo::after, .theme-dark .photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, rgba(255, 122, 43, .14), transparent 45%); pointer-events: none; }
.theme-dark .photo-stack .photo.small { border-color: var(--paper); }

/* Numbered editorial list */
.dk-list { list-style: none; margin-top: 28px; display: grid; }
.dk-list li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-top: 1px solid transparent; border-image: var(--rule); }
.dk-list li:last-child { border-bottom: 1px solid transparent; }
.dk-list span { font: 500 28px/1 var(--serif); color: var(--ember); }
.dk-list b { color: var(--ink); font-weight: 600; }
.dk-list p { color: var(--soft); font-size: 16px; margin-top: 4px; }
.dk-benefits { list-style: none; margin-top: 26px; display: grid; gap: 0; }
.dk-benefits li { padding: 14px 0 14px 34px; border-bottom: 1px solid transparent; border-image: var(--rule); position: relative; color: var(--ink); }
.dk-benefits li::before { content: "\2605"; position: absolute; left: 0; top: 14px; color: var(--red); }

/* Founder story (about) */
.dk-story p { color: var(--text); font-size: clamp(17px, 1.4vw, 19px); line-height: 1.7; margin-top: 16px; }
.dk-story p:first-of-type { font-family: var(--serif); font-size: clamp(24px, 2.2vw, 30px); line-height: 1.3; color: var(--ink); margin-top: 8px; }
.dk-story .role { font: 600 12px/1 var(--body); letter-spacing: .24em; text-transform: uppercase; color: var(--ember); margin-top: 14px; }
.dk-story .role + p { margin-top: 22px; }
.dk-story .actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.dk-mission { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); padding: clamp(28px, 4vw, 44px); position: relative; }
.dk-mission::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--ember), transparent 70%); }
.dk-mission p { color: var(--text); font-family: var(--serif); font-size: clamp(21px, 1.9vw, 26px); line-height: 1.35; margin-top: 14px; }

/* Team cards */
.theme-dark .person { background: var(--panel); border-color: var(--line); box-shadow: none; border-radius: var(--r-card); }
.theme-dark .person .img { background: #000; }
.theme-dark .person .img img { filter: saturate(.9); }
.theme-dark .person h3 { color: var(--ink); }
.theme-dark .person p { color: var(--soft); }
.theme-dark .person .role { color: var(--ember); letter-spacing: .22em; font-size: 11px; }
.theme-dark .person summary { color: var(--ink); }

/* Program page */
.theme-dark .toc { border-color: var(--line-2); }
.theme-dark .toc a { color: var(--soft); }
.theme-dark .toc a:hover, .theme-dark .toc a.on { color: var(--ink); }
.theme-dark .aside-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); position: relative; }
.theme-dark .aside-card::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--ember), transparent 70%); }
.theme-dark .aside-card h3 { color: var(--ink); }
.theme-dark .aside-card p { color: var(--soft); }
.theme-dark .prog-intro { color: var(--ink); font-family: var(--serif); font-size: clamp(24px, 2.2vw, 30px); line-height: 1.35; }
.theme-dark .prog-sec h2 { font-size: clamp(30px, 3vw, 40px); }
.theme-dark .prog-sec h2 .n { color: var(--ember); font-size: .5em; letter-spacing: .1em; }
.theme-dark .prog-sec ul { gap: 0; }
.theme-dark .prog-sec li { background: transparent; border: 0; border-top: 1px solid transparent; border-image: var(--rule); border-radius: 0; padding: 18px 0; color: var(--soft); }
.theme-dark .prog-sec li:last-child { border-bottom: 1px solid transparent; }
.theme-dark .prog-sec li:hover { box-shadow: none; }
.theme-dark .prog-sec li b { color: var(--ink); }
.theme-dark .crisis { background: rgba(213, 7, 27, .1); border-color: rgba(213, 7, 27, .4); border-radius: var(--r-card); color: var(--text); }
.theme-dark .crisis b { color: #ff8a95; }

/* Events: editorial dated cards (the markup comes from assets/events.js, unchanged) */
.theme-dark .cal { background: var(--panel); border-color: var(--line); border-radius: var(--r-card); box-shadow: none; }
.theme-dark .cal-head h3 { font-size: 26px; }
.theme-dark .cal-grid .wd { color: var(--soft); }
.theme-dark .cal-grid .day { background: rgba(255, 255, 255, .03); border-radius: 4px; color: var(--text); }
.theme-dark .cal-grid .day[aria-current="date"] b { color: var(--ember); }
.theme-dark .cal-grid .day.has { background: var(--ink); color: #07070d; }
.theme-dark .cal-grid .day.has i { opacity: .8; }
.theme-dark .state-pick select { background: var(--panel); }
.theme-dark .events { gap: 0; }
.theme-dark .event { background: transparent; border: 0; border-top: 1px solid transparent; border-image: var(--rule); border-radius: 0; box-shadow: none; padding: clamp(28px, 3vw, 40px) 0; grid-template-columns: 150px 1fr auto; gap: clamp(24px, 3vw, 48px); align-items: start; }
.theme-dark .event:last-of-type { border-bottom: 1px solid transparent; }
.theme-dark .event:hover { transform: none; }
.theme-dark .event .date { background: transparent; border-radius: 0; padding: 0; text-align: left; color: var(--ink); display: grid; gap: 2px; }
.theme-dark .event .date b { font: 500 clamp(56px, 5vw, 76px)/.95 var(--serif); color: var(--ink); }
.theme-dark .event .date span { font: 600 11.5px/1 var(--body); letter-spacing: .24em; text-transform: uppercase; color: var(--ember); opacity: 1; }
.theme-dark .event h3 { font-size: clamp(28px, 2.6vw, 36px); margin-bottom: 10px; }
.theme-dark .event .meta { color: var(--soft); }
.theme-dark .event .desc { color: var(--text); }
.theme-dark .event .spots { color: var(--ok); }
.theme-dark .event .spots.low { color: #ff8a95; }
.theme-dark .event.flash { box-shadow: inset 0 0 0 1px var(--ember); }
.theme-dark .skeleton { background: linear-gradient(90deg, #0e0d1a 25%, #15142a 50%, #0e0d1a 75%); background-size: 200% 100%; border-radius: var(--r-card); }

/* Forms */
.theme-dark .form-card { background: var(--panel); border-color: var(--line); border-radius: var(--r-card); box-shadow: none; position: relative; }
.theme-dark .form-card::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--ember), transparent 70%); }
.theme-dark label.f { color: var(--text); }
.theme-dark label.f .opt { color: var(--soft); }
.theme-dark input.i, .theme-dark select.i, .theme-dark textarea.i { background: rgba(255, 255, 255, .04); border-color: var(--line-2); color: var(--ink); border-radius: 4px; color-scheme: dark; }
.theme-dark input.i::placeholder, .theme-dark textarea.i::placeholder { color: rgba(169, 166, 189, .7); }
.theme-dark input.i:focus, .theme-dark select.i:focus, .theme-dark textarea.i:focus { border-color: var(--ember); background: rgba(255, 255, 255, .06); box-shadow: 0 0 0 4px rgba(255, 154, 77, .14); }
.theme-dark .f.bad input.i, .theme-dark .f.bad select.i, .theme-dark .f.bad textarea.i { border-color: var(--red); background: rgba(213, 7, 27, .08); }
.theme-dark .err, .theme-dark .field-err { color: #ff8a95; }
.theme-dark .checkline { color: var(--text); }
.theme-dark .checkline input { accent-color: var(--red); }
.theme-dark .form-msg.bad { background: rgba(213, 7, 27, .12); color: #ff8a95; border-color: rgba(213, 7, 27, .4); }
.theme-dark .form-msg.good { background: rgba(111, 211, 154, .12); color: var(--ok); border-color: rgba(111, 211, 154, .35); }
.theme-dark .pay-note { color: var(--soft); }
.theme-dark .plan .box { background: transparent; border-color: var(--line-2); border-radius: var(--r-card); }
.theme-dark .plan input:checked + .box { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.theme-dark .plan .price { font: 500 52px/1 var(--serif); color: var(--ink); }
.theme-dark .plan .price small { color: var(--soft); }
.theme-dark .plan .check { border-color: var(--line-2); }
.theme-dark .plan input:checked + .box .check { background: var(--red); border-color: var(--red); }
.theme-dark .plan .tick { color: var(--ember); letter-spacing: .2em; }
.theme-dark .summary { background: rgba(255, 255, 255, .03); border-color: var(--line); border-radius: var(--r-card); }
.theme-dark .summary .row + .row { border-color: var(--line); }
.theme-dark .summary .total { font: 500 26px var(--serif); color: var(--ink); border-top-color: var(--line-2) !important; }
.theme-dark .steps .bar { background: var(--line); }
.theme-dark .steps .bar i { background: var(--ink); }
.theme-dark .steps li.on .bar i { background: var(--red); }
.theme-dark .steps span { color: var(--soft); }
.theme-dark .steps li.on span { color: var(--ink); }
.theme-dark .child { background: rgba(255, 255, 255, .02); border-color: var(--line); border-radius: var(--r-card); }
.theme-dark .child .rm { color: var(--soft); }
.theme-dark .opt-pill span { background: transparent; border-color: var(--line-2); color: var(--text); }
.theme-dark .opt-pill input:checked + span { background: var(--ink); border-color: var(--ink); color: #07070d; }
.theme-dark .done-panel .badge { background: var(--ok); color: #07070d; box-shadow: 0 0 0 10px rgba(111, 211, 154, .12); }
.theme-dark .done-panel .ref { background: rgba(255, 255, 255, .06); color: var(--ink); }

/* Donate */
.theme-dark .amt span { background: transparent; border-color: var(--line-2); color: var(--ink); font: 500 22px var(--serif); border-radius: 4px; }
.theme-dark .amt input:checked + span { background: var(--red); border-color: var(--red); color: #fff; }
.theme-dark .impact { background: rgba(255, 154, 77, .08); color: var(--text); border-radius: 4px; border: 1px solid rgba(255, 154, 77, .25); }
.theme-dark .impact b { font-family: var(--serif); font-weight: 500; font-size: 24px; color: var(--ember); }
.theme-dark .toggle { background: rgba(255, 255, 255, .05); border: 1px solid var(--line); }
.theme-dark .toggle span { color: var(--text); }
.theme-dark .toggle input:checked + span { color: #07070d; }
.theme-dark .toggle .pill { background: var(--ink); }
.dk-gifts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.dk-gift { position: relative; display: flex; flex-direction: column; gap: 14px; text-align: left; font: inherit; color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); padding: 30px 26px 26px; cursor: pointer; min-height: 230px; transition: transform .4s var(--ease), border-color .3s, box-shadow .4s var(--ease); isolation: isolate; overflow: hidden; }
.dk-gift::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--ember), transparent 70%); }
.dk-gift::after { content: ""; position: absolute; left: 50%; bottom: -40%; width: 120%; height: 60%; transform: translateX(-50%); z-index: -1; background: radial-gradient(closest-side, rgba(255, 122, 43, .22), transparent 75%); opacity: 0; transition: opacity .5s; }
.dk-gift:hover { transform: translateY(-4px); border-color: var(--line-2); box-shadow: var(--shadow-lg); }
.dk-gift:hover::after { opacity: 1; }
.dk-gift .amt { font: 500 clamp(40px, 3.4vw, 52px)/1 var(--serif); color: var(--ink); }
.dk-gift .txt { color: var(--soft); font-size: 15.5px; line-height: 1.5; flex: 1; }
.dk-gift .more { font: 600 12px/1 var(--body); letter-spacing: .2em; text-transform: uppercase; color: var(--ember); display: inline-flex; gap: 8px; align-items: center; }
.dk-gift .more::after { content: "\2192"; transition: transform .25s var(--ease); }
.dk-gift:hover .more::after { transform: translateX(4px); }
.dk-gift.wide { grid-column: span 2; }

/* Store */
.theme-dark .product { background: var(--panel); border-color: var(--line); border-radius: var(--r-card); box-shadow: none; }
.theme-dark .product .img { background: radial-gradient(circle at 50% 40%, #1a1930, #0a0a14); }
.theme-dark .product .price { font: 500 34px var(--serif); color: var(--ink); }
.theme-dark .sw span { border-color: var(--line-2); }
.theme-dark .sw input:checked + span { box-shadow: 0 0 0 3px var(--panel), 0 0 0 5px var(--ink); }
.theme-dark .qty { border-color: var(--line-2); }
.theme-dark .qty button, .theme-dark .qty input { background: transparent; color: var(--ink); }
.theme-dark .cart-fab { background: var(--ink); color: #07070d; }
.theme-dark .sheet { background: var(--paper-2); }
.theme-dark .sheet header { border-color: var(--line); }
.theme-dark .sheet .x { color: var(--soft); }
.theme-dark .sheet .x:hover { background: rgba(255, 255, 255, .08); }
.theme-dark .line-item { border-color: var(--line); }
.theme-dark .line-item img { background: #fff; border-color: var(--line); }
.theme-dark .line-item .rm { color: var(--soft); }
.theme-dark .sheet-bg { background: rgba(0, 0, 0, .7); }

/* Gallery */
.theme-dark .g-item { background: #000; border-radius: 4px; }
.theme-dark .lightbox::backdrop { background: rgba(0, 0, 0, .92); }

/* Contact cards */
.theme-dark a.card .num { margin-bottom: 10px; }

/* "Stay connected": the same newsletter form as the footer, as a band */
.dk-stay { position: relative; overflow: hidden; isolation: isolate; padding: clamp(70px, 9vw, 110px) 0; border-top: 1px solid transparent; border-image: var(--hair); background: var(--band); }
.dk-stay .wrap { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(30px, 5vw, 70px); align-items: center; }
.dk-stay .lead { margin-top: 14px; }
.dk-stay .news { margin: 0; gap: 10px; }
.dk-stay .news input { padding: 16px 20px; font-size: 16px; }
.dk-stay .news .btn { padding: 14px 24px; }
.dk-stay .news-msg { color: var(--soft); }

/* Closing call to action with the horizon glow */
.dk-final { overflow: hidden; isolation: isolate; text-align: center; background: radial-gradient(110% 80% at 50% 0%, rgba(13, 11, 48, .6), rgba(13, 11, 48, 0) 70%); }
.dk-final .dk-glow { bottom: -28%; z-index: -1; }
.dk-final .lead { margin: 18px auto 34px; }
.dk-final .actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.dk-final h2 { max-width: 20ch; margin-inline: auto; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .dk-gifts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dk-gift.wide { grid-column: span 1; }
}
@media (max-width: 980px) {
  .dk-programs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .dk-cols, .dk-stay .wrap { grid-template-columns: minmax(0, 1fr); }
  .dk-gifts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .theme-dark .event { grid-template-columns: 1fr; gap: 14px; padding: 26px 0; }
  .theme-dark .event .date { display: flex; align-items: baseline; gap: 12px; }
  .theme-dark .event .date b { font-size: 44px; }
  .theme-dark .event > .btn { justify-self: start; }
  .dk-phero { min-height: auto; }
  .dk-phero .wrap { padding-top: 70px; }
}
@media (max-width: 620px) {
  .dk-programs, .dk-gifts { grid-template-columns: minmax(0, 1fr); }
  .dk-prog { aspect-ratio: 4 / 3.4; }
  .dk-gift { min-height: auto; }
  .dk-hero { min-height: auto; }
  .dk-hero .actions .btn, .dk-final .actions .btn { flex: 1 1 100%; }
  .dk-scroll { display: none; }
  .theme-dark .eyebrow, .theme-dark .dk-kicker { letter-spacing: .18em; font-size: 11px; }
  .dk-hero .dk-kicker::before { display: none; }
  .dk-stay .news { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .dk-hero .bg img, .dk-phero .bg img { animation: none; transform: none; }
  .dk-scroll span { animation: none; }
  .dk-gift:hover, .dk-prog:hover img { transform: none; }
}

/* Cormorant's figures are old-style by default; dates and prices want lining ones. */
.theme-dark h1, .theme-dark h2, .theme-dark h3, .theme-dark .event .date b, .theme-dark .plan .price, .theme-dark .dk-gift .amt, .theme-dark .amt span, .theme-dark .summary .total, .theme-dark .product .price, .theme-dark .impact b, .dk-list span { font-variant-numeric: lining-nums; }
.theme-dark .plan .tick, .theme-dark .plan .price, .theme-dark .plan .price small { display: block; }
.theme-dark .plan .price { margin: 12px 0 10px; }
.theme-dark .plan .price small { margin-top: 4px; }
.theme-dark a.card h3 { font-size: 26px; }
.theme-dark .summary { background: rgba(255, 255, 255, .03) !important; } /* the enrollment cost list sets a white background inline */
.theme-dark .plan .tick { padding-right: 40px; }
@media (max-width: 1080px) {
  /* Two notice bars sit above the header on the preview; while the menu is open they step
     aside so the header sits at the top and the drawer starts right under it, as on the light pages. */
  .theme-dark.menu-open .demo-bar, .theme-dark.menu-open .dk-preview { display: none; }
}

.theme-dark .ex-badge { color: var(--ember); }
.theme-dark .ex-details li { background: rgba(255, 255, 255, .05); border-color: var(--line-2); color: var(--ink); }
