/* ==========================================================================
   Themes — Classic is the default (tokens in site.css).
   Each theme swaps tokens, then adds a few signature overrides.
   ========================================================================== */

/* Ornament variants: the markup carries both drawings; each theme shows one (or draws its own). */
.ornament .orn-garden { display: none; }

/* ============================================================ EDITORIAL */
[data-theme="editorial"] {
  --bg: #F9F7F2;
  --bg-alt: #F2EFEA;
  --bg-deep: #141414;
  --surface: #FDFBF7;
  --ink: #141414;
  --ink-soft: #4B4946;
  --ink-faint: #75716C;
  --on-deep: #F5F3EF;
  --on-deep-soft: rgba(245, 243, 239, .7);
  --accent: #B4533A;
  --accent-strong: #9A4330;
  --accent-soft: #F3E1D9;
  --line: rgba(20, 20, 20, .12);
  --line-strong: rgba(20, 20, 20, .85);
  --font-display: 'Bodoni Moda', 'Bodoni 72', Didot, Georgia, serif;
  --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: uppercase;
  --names-tracking: -0.035em;
  --heading-tracking: -0.02em;
  --eyebrow-tracking: .2em;
  --eyebrow-weight: 600;
  --radius: 0px; --radius-lg: 0px; --radius-media: 0px; --btn-radius: 0px;
  --shadow: 0 0 0 1px rgba(20, 20, 20, .08), 0 20px 40px -26px rgba(20, 20, 20, .4);
  --align-hero: left;
}
[data-theme="editorial"] body { counter-reset: sec; }
[data-theme="editorial"] .ornament { justify-content: flex-start; margin: 1.4rem 0; }
[data-theme="editorial"] .ornament::before { width: 64px; height: 3px; opacity: 1; background: var(--accent); }
[data-theme="editorial"] .ornament::after, [data-theme="editorial"] .ornament svg { display: none; }
[data-theme="editorial"] .center .ornament, [data-theme="editorial"] .section-head:not(.section-head--left) .ornament, [data-theme="editorial"] .page-hero .ornament { justify-content: center; margin-inline: auto; }
[data-theme="editorial"] .section-head { counter-increment: sec; }
[data-theme="editorial"] .section-head .eyebrow::before { content: counter(sec, decimal-leading-zero) '\2002—\2002'; color: var(--ink); }
[data-theme="editorial"] .display-2, [data-theme="editorial"] .section-head h2 { font-size: clamp(2.5rem, 5vw, 4.2rem); line-height: 1; }
[data-theme="editorial"] .btn { letter-spacing: .14em; font-weight: 600; }
[data-theme="editorial"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="editorial"] .btn--ghost { --btn-bd: var(--ink); }
[data-theme="editorial"] .text-link { border-bottom-width: 2px; border-bottom-color: var(--ink); }
[data-theme="editorial"] .text-link:hover { color: var(--accent); border-bottom-color: var(--accent); }
[data-theme="editorial"] .brand__mark { font-size: 1.6rem; letter-spacing: -0.02em; }
[data-theme="editorial"] .nav__link { letter-spacing: .14em; font-weight: 600; }
[data-theme="editorial"] .nav__link::after { height: 2px; background: var(--ink); }
[data-theme="editorial"] .frame::before { inset: 16px -16px -16px 16px; border: 0; background: var(--accent-soft); }
[data-theme="editorial"] .frame--left::before { inset: 16px 16px -16px -16px; }
[data-theme="editorial"] .media img { filter: saturate(.92) contrast(1.04); }
[data-theme="editorial"] .card, [data-theme="editorial"] .event-card, [data-theme="editorial"] .hotel-card, [data-theme="editorial"] .fund, [data-theme="editorial"] .person, [data-theme="editorial"] .story-duo__side { border-color: var(--ink); }
[data-theme="editorial"] .amp { color: var(--accent); }

/* Editorial hero: huge stacked names bleeding toward the photo */
[data-theme="editorial"] .hero__content { align-items: flex-start; padding-inline: clamp(24px, 5vw, 80px); }
[data-theme="editorial"] .hero__names { font-size: clamp(3.8rem, 9.6vw, 9.4rem); line-height: .86; }
[data-theme="editorial"] .hero__names .amp { font-size: .5em; margin: .12em 0 .08em .06em; }
[data-theme="editorial"] .hero__eyebrow { color: var(--ink); font-weight: 600; letter-spacing: .24em; }
[data-theme="editorial"] .hero__date { font-family: var(--font-body); font-size: .8rem; letter-spacing: .28em; text-transform: uppercase; font-weight: 600; margin-top: 26px; padding-top: 18px; border-top: 3px solid var(--accent); }
[data-theme="editorial"] .hero__place { margin-top: 6px; }
[data-theme="editorial"] .hero .ornament { display: none; }
[data-theme="editorial"] .countdown { justify-content: flex-start; }
[data-theme="editorial"] .countdown__unit + .countdown__unit::before { background: var(--ink); }
[data-theme="editorial"] .hero .btn-row { justify-content: flex-start; }
@media (min-width: 900px) {
  [data-theme="editorial"] .hero { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
  [data-theme="editorial"] .hero__media { margin: 28px 28px 28px 0; }
}
[data-theme="editorial"] .page-hero:not(.page-hero--image) { text-align: left; border-bottom: 1px solid var(--ink); }
[data-theme="editorial"] .page-hero:not(.page-hero--image) .lead { margin-left: 0; }
[data-theme="editorial"] .page-hero:not(.page-hero--image) .ornament { justify-content: flex-start; margin-left: 0; }
[data-theme="editorial"] .page-hero h1 { text-transform: uppercase; letter-spacing: -0.03em; }
[data-theme="editorial"] .footer-mono { letter-spacing: -0.03em; }
[data-theme="editorial"] .timeline__item::after { transform: translate(-50%, -50%); border-radius: 0; background: var(--accent); border-color: var(--accent); }
[data-theme="editorial"] .quote-block blockquote { font-style: normal; font-size: clamp(2.1rem, 4.2vw, 3.6rem); letter-spacing: -0.02em; }
[data-theme="editorial"] .quote-block blockquote::before { content: '“'; display: block; font-size: 2.4em; line-height: .6; color: var(--accent); }
[data-theme="editorial"] .tab[aria-selected="true"] { background: var(--ink); }
[data-theme="editorial"] .tab { border-radius: 0; }
[data-theme="editorial"] .person__mono { border-radius: 0; background: var(--bg-alt); border-color: var(--ink); font-size: 2.3rem; }
[data-theme="editorial"] .person__mono::after { display: none; }
[data-theme="editorial"] .accordion summary { font-size: clamp(1.2rem, 1.7vw, 1.42rem); }
[data-theme="editorial"] .swatch__chip { border-radius: 0; }
[data-theme="editorial"] .dress-code::before { display: none; }
[data-theme="editorial"] .dress-code { border: 3px solid var(--ink); }
[data-theme="editorial"] .choice__box::before { border-radius: 0; }
[data-theme="editorial"] .toggle-pair, [data-theme="editorial"] .toggle-pair span, [data-theme="editorial"] .chip span, [data-theme="editorial"] .faq-search input, [data-theme="editorial"] .pill { border-radius: 0; }

/* =============================================================== GARDEN */
[data-theme="garden"] {
  --bg: #FAF6EF;
  --bg-alt: #EEF0E5;
  --bg-deep: #3D4833;
  --surface: #FFFDF8;
  --ink: #33402B;
  --ink-soft: #58634E;
  --ink-faint: #6A7361;
  --on-deep: #F7F3EA;
  --on-deep-soft: rgba(247, 243, 234, .76);
  --accent: #9DAE8A;
  --accent-strong: #5E7250;
  --accent-soft: #F2DEDA;
  --accent-on-deep: #D9E2C9;
  --line: rgba(51, 64, 43, .13);
  --line-strong: rgba(51, 64, 43, .28);
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Lato', 'Helvetica Neue', Arial, sans-serif;
  --font-names: 'Pinyon Script', 'Snell Roundhand', cursive;
  --display-weight: 400;
  --names-weight: 400;
  --names-tracking: 0;
  --heading-tracking: 0;
  --eyebrow-tracking: .26em;
  --radius: 10px; --radius-lg: 20px; --radius-media: 22px; --btn-radius: 999px;
  --shadow: 0 1px 2px rgba(51, 64, 43, .05), 0 20px 44px -24px rgba(51, 64, 43, .35);
  --align-hero: center;
}
[data-theme="garden"] .ornament { gap: 0; }
[data-theme="garden"] .ornament::before, [data-theme="garden"] .ornament::after { display: none; }
[data-theme="garden"] .ornament .orn-classic { display: none; }
[data-theme="garden"] .ornament .orn-garden { display: block; width: 110px; height: 26px; color: var(--accent); }
[data-theme="garden"] .section-head--left .ornament .orn-garden { margin-left: -6px; }
[data-theme="garden"] .brand__mark { font-size: 2.3rem; }
[data-theme="garden"] .brand__mark .amp { font-family: var(--font-names); font-style: normal; color: var(--accent-strong); }
[data-theme="garden"] .amp { font-family: var(--font-names); font-style: normal; color: var(--accent-strong); }
[data-theme="garden"] .hero__names { font-size: clamp(4.2rem, 9.6vw, 8.8rem); line-height: 1.05; }
[data-theme="garden"] .hero__names .amp { font-size: .7em; line-height: 1; }
[data-theme="garden"] .footer-mono { font-size: clamp(4rem, 8vw, 6rem); }
[data-theme="garden"] .footer-mono .amp { color: var(--accent-on-deep); }
[data-theme="garden"] .page-hero h1 { font-family: var(--font-names); font-size: clamp(3.8rem, 8.4vw, 6.6rem); line-height: 1.1; }
[data-theme="garden"] .band h2, [data-theme="garden"] .dress-code h2 { font-family: var(--font-names); font-size: clamp(3.2rem, 7vw, 5.4rem); line-height: 1.15; }
[data-theme="garden"] .display-1 { font-family: var(--font-names); }
[data-theme="garden"] .section--deep .eyebrow { color: var(--accent-on-deep); }
[data-theme="garden"] .btn { letter-spacing: .16em; }
[data-theme="garden"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="garden"] .frame::before { inset: -14px; border-radius: calc(var(--radius-media) + 14px); border-color: color-mix(in srgb, var(--accent) 70%, transparent); }
[data-theme="garden"] .frame--left::before { inset: -14px; }
[data-theme="garden"] .media--arch, [data-theme="garden"] .timeline__media .media, [data-theme="garden"] .split .frame .media { border-radius: 999px 999px var(--radius-media) var(--radius-media); }
[data-theme="garden"] .frame:has(.media--arch)::before, [data-theme="garden"] .split .frame::before { border-radius: 999px 999px calc(var(--radius-media) + 14px) calc(var(--radius-media) + 14px); }
[data-theme="garden"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); background: var(--accent-soft); border-color: var(--accent); width: 13px; height: 13px; }
[data-theme="garden"] .person__mono { font-family: var(--font-names); font-size: 2.8rem; background: radial-gradient(circle at 30% 25%, #fff, var(--accent-soft)); }
[data-theme="garden"] .quote-block blockquote { font-style: italic; }
[data-theme="garden"] .event-card__time { border-radius: 999px; }
[data-theme="garden"] .mosaic .media { border-radius: var(--radius-media); }

/* Garden hero: script names, arched portrait, botanical corners */
@media (min-width: 900px) {
  [data-theme="garden"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="garden"] .hero__media { margin: clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px) 0; border-radius: 999px 999px var(--radius-media) var(--radius-media); box-shadow: 0 0 0 10px var(--bg), 0 0 0 11px color-mix(in srgb, var(--accent) 60%, transparent); }
}
@media (max-width: 899px) {
  [data-theme="garden"] .hero__media { margin: 18px 18px 0; border-radius: 999px 999px var(--radius-media) var(--radius-media); height: min(64svh, 560px); }
}
[data-theme="garden"] .hero__content::before, [data-theme="garden"] .hero__content::after {
  content: ''; position: absolute; width: clamp(96px, 11vw, 160px); aspect-ratio: 2 / 1; pointer-events: none; opacity: .7;
  background: var(--accent);   /* drawn in the site's accent color (follows Look & colors) */
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' fill='none' stroke='%239DAE8A' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M6 92C50 80 110 52 194 8'/%3E%3Cpath d='M40 80c-2-14 6-26 18-30 3 13-5 25-18 30z'/%3E%3Cpath d='M44 78c12 6 26 4 34-6-12-7-26-5-34 6z'/%3E%3Cpath d='M82 62c-1-14 8-25 20-28 2 13-7 24-20 28z'/%3E%3Cpath d='M86 60c12 5 26 2 33-9-12-6-26-3-33 9z'/%3E%3Cpath d='M124 42c0-13 9-23 21-25 1 12-8 22-21 25z'/%3E%3Cpath d='M128 40c11 4 24 1 31-9-11-5-24-2-31 9z'/%3E%3Cpath d='M160 24c2-10 10-17 20-17 0 10-9 17-20 17z'/%3E%3C/svg%3E") no-repeat center / contain; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100' fill='none' stroke='%239DAE8A' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M6 92C50 80 110 52 194 8'/%3E%3Cpath d='M40 80c-2-14 6-26 18-30 3 13-5 25-18 30z'/%3E%3Cpath d='M44 78c12 6 26 4 34-6-12-7-26-5-34 6z'/%3E%3Cpath d='M82 62c-1-14 8-25 20-28 2 13-7 24-20 28z'/%3E%3Cpath d='M86 60c12 5 26 2 33-9-12-6-26-3-33 9z'/%3E%3Cpath d='M124 42c0-13 9-23 21-25 1 12-8 22-21 25z'/%3E%3Cpath d='M128 40c11 4 24 1 31-9-11-5-24-2-31 9z'/%3E%3Cpath d='M160 24c2-10 10-17 20-17 0 10-9 17-20 17z'/%3E%3C/svg%3E") no-repeat center / contain;
}
[data-theme="garden"] .hero__content::before { top: 10px; left: 6px; transform: scaleY(-1); }
[data-theme="garden"] .hero__content::after { bottom: 10px; right: 6px; transform: scaleX(-1); }
[data-theme="garden"] .page-hero:not(.page-hero--image)::after {
  content: ''; position: absolute; left: 50%; bottom: 18px; width: 180px; height: 40px; transform: translateX(-50%); opacity: .6;
  background: var(--accent);   /* drawn in the site's accent color (follows Look & colors) */
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' fill='none' stroke='%239DAE8A' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M10 20h180'/%3E%3Cpath d='M40 20c3-8 11-11 18-10-2 7-10 11-18 10z'/%3E%3Cpath d='M60 20c3 8 11 11 18 10-2-7-10-11-18-10z'/%3E%3Cpath d='M160 20c-3-8-11-11-18-10 2 7 10 11 18 10z'/%3E%3Cpath d='M140 20c-3 8-11 11-18 10 2-7 10-11 18-10z'/%3E%3Ccircle cx='100' cy='20' r='5'/%3E%3C/svg%3E") no-repeat center / contain; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 40' fill='none' stroke='%239DAE8A' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M10 20h180'/%3E%3Cpath d='M40 20c3-8 11-11 18-10-2 7-10 11-18 10z'/%3E%3Cpath d='M60 20c3 8 11 11 18 10-2-7-10-11-18-10z'/%3E%3Cpath d='M160 20c-3-8-11-11-18-10 2 7 10 11 18 10z'/%3E%3Cpath d='M140 20c-3 8-11 11-18 10 2-7 10-11 18-10z'/%3E%3Ccircle cx='100' cy='20' r='5'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* =============================================================== MODERN
   Clean and calm: one sans-serif for everything (Instrument Sans), big tight names with a serif-italic "&"
   (Instrument Serif, the one romantic touch), left-aligned headings marked with a dot and a hairline,
   soft rounded photos and cards, sentence-case buttons. Warm off-white page, charcoal bands, slate-blue accent. */
[data-theme="modern"] {
  --bg: #F7F6F2;
  --bg-alt: #ECEAE4;
  --bg-deep: #1E2528;
  --surface: #FDFCFA;
  --ink: #1C2022;
  --ink-soft: #4A5053;
  --ink-faint: #666C70;
  --on-deep: #F4F3EF;
  --on-deep-soft: rgba(244, 243, 239, .74);
  --accent: #6E8CA0;
  --accent-strong: #4C6779;
  --accent-soft: #E1E8ED;
  --accent-on-deep: #A9C0CF;
  --line: rgba(28, 32, 34, .12);
  --line-strong: rgba(28, 32, 34, .26);
  --font-display: 'Instrument Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Instrument Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --font-amp: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  --display-weight: 500;
  --names-weight: 500;
  --names-transform: none;
  --names-tracking: -0.05em;
  --heading-tracking: -0.035em;
  --amp-style: italic;
  --eyebrow-tracking: .02em;
  --eyebrow-size: .86rem;
  --eyebrow-weight: 600;
  --radius: 10px; --radius-lg: 16px; --radius-media: 18px; --btn-radius: 10px;
  --shadow: 0 1px 2px rgba(28, 32, 34, .04), 0 18px 40px -26px rgba(28, 32, 34, .3);
  --align-hero: left;
}
/* Headings: sans, medium weight, tight */
[data-theme="modern"] h1, [data-theme="modern"] h2, [data-theme="modern"] h3, [data-theme="modern"] .display-1, [data-theme="modern"] .display-2 { font-weight: 500; letter-spacing: var(--heading-tracking); }
[data-theme="modern"] .display-2, [data-theme="modern"] .section-head h2 { font-size: clamp(2.3rem, 4.6vw, 3.9rem); line-height: 1.02; }
[data-theme="modern"] .amp { font-family: var(--font-amp); font-style: italic; font-weight: 400; letter-spacing: 0; color: var(--accent-strong); }
/* Eyebrows: sentence case, small and solid, not spaced-out capitals */
[data-theme="modern"] .eyebrow { text-transform: none; }
[data-theme="modern"] .hero__eyebrow, [data-theme="modern"] .hero__place, [data-theme="modern"] .countdown__label { text-transform: none; letter-spacing: .01em; }
/* Ornament: a dot and a hairline */
[data-theme="modern"] .ornament { gap: 10px; }
[data-theme="modern"] .ornament svg { display: none; }
[data-theme="modern"] .ornament::before { width: 8px; height: 8px; border-radius: 50%; opacity: 1; background: var(--accent); }
[data-theme="modern"] .ornament::after { width: 72px; opacity: 1; background: var(--line-strong); }
[data-theme="modern"] .section-head--left .ornament::before { display: block; }
[data-theme="modern"] .section--deep .ornament::after { background: var(--on-deep-soft); }
/* Buttons: sentence case, rounded, no spaced capitals */
[data-theme="modern"] .btn { text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 600; min-height: 48px; padding: 12px 24px; }
[data-theme="modern"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="modern"] .nav__link { text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 500; }
[data-theme="modern"] .brand__mark { font-weight: 600; letter-spacing: -0.04em; }
[data-theme="modern"] .brand__mark .amp { color: var(--accent-strong); }
/* Photos and cards: soft corners, flat, a hairline instead of shadows */
[data-theme="modern"] .frame::before { display: none; }
[data-theme="modern"] .card, [data-theme="modern"] .event-card, [data-theme="modern"] .hotel-card, [data-theme="modern"] .fund, [data-theme="modern"] .person, [data-theme="modern"] .story-duo__side { box-shadow: none; border-color: var(--line); }
[data-theme="modern"] .card:hover, [data-theme="modern"] .event-card:hover, [data-theme="modern"] .hotel-card:hover { border-color: var(--line-strong); }
[data-theme="modern"] .tab { border-radius: 999px; text-transform: none; letter-spacing: 0; font-size: .9rem; font-weight: 500; }
[data-theme="modern"] .tab[aria-selected="true"] { background: var(--ink); }
[data-theme="modern"] .person__mono { border-radius: var(--radius-lg); font-family: var(--font-amp); font-style: italic; font-weight: 400; background: var(--accent-soft); }
[data-theme="modern"] .person__mono::after { display: none; }
[data-theme="modern"] .timeline__item::after { border-radius: 4px; background: var(--accent); border-color: var(--accent); }
[data-theme="modern"] .quote-block blockquote { font-style: normal; font-weight: 500; letter-spacing: -0.03em; }
[data-theme="modern"] .quote-block blockquote::before { content: '\201C'; display: block; font-family: var(--font-amp); font-style: italic; font-size: 2.2em; line-height: .7; color: var(--accent-strong); }
[data-theme="modern"] .section--deep .quote-block blockquote::before { color: var(--accent-on-deep); }
[data-theme="modern"] .footer-mono { font-weight: 500; letter-spacing: -0.05em; }
[data-theme="modern"] .footer-mono .amp { color: var(--accent-on-deep); }
/* Anything set in italic uses the real serif italic (Instrument Sans has none: a slanted sans looks cheap) */
[data-theme="modern"] .italic, [data-theme="modern"] .footer-hashtag, [data-theme="modern"] .story-duo__side .sig, [data-theme="modern"] .place-card__tip, [data-theme="modern"] .message-card blockquote, [data-theme="modern"] .newport-map .map-labels .map-script { font-family: var(--font-amp); font-weight: 400; letter-spacing: 0; }
/* Links read as words, not spaced capitals; small labels keep capitals but tighter */
[data-theme="modern"] .text-link { text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 600; }
[data-theme="modern"] .caps, [data-theme="modern"] .brand__meta, [data-theme="modern"] .footer-date, [data-theme="modern"] .footer-cols h2, [data-theme="modern"] .weekend-strip__day, [data-theme="modern"] .timeline__date, [data-theme="modern"] .media figcaption, [data-theme="modern"] .media__caption, [data-theme="modern"] .mobile-menu__label, [data-theme="modern"] .person__role, [data-theme="modern"] .swatch__name, [data-theme="modern"] .place-card__meta, [data-theme="modern"] .arrive-grid__item .meta, [data-theme="modern"] .now-card__label, [data-theme="modern"] .stat__label, [data-theme="modern"] .label { letter-spacing: .08em; }
/* Hero: names stacked on the left, huge and tight; the photo is a rounded panel with breathing room */
[data-theme="modern"] .hero__content { align-items: flex-start; padding-inline: clamp(24px, 6vw, 96px); }
[data-theme="modern"] .hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); font-weight: 600; font-size: .9rem; }
[data-theme="modern"] .hero__eyebrow::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex: none; }
[data-theme="modern"] .hero__names { font-size: clamp(3.8rem, 9vw, 8.8rem); line-height: .9; }
[data-theme="modern"] .hero__names .amp { font-size: .78em; line-height: 1; margin: .02em 0 .04em; }
[data-theme="modern"] .hero__date { font-family: var(--font-body); font-weight: 500; font-size: clamp(1.15rem, 1.6vw, 1.4rem); letter-spacing: -0.01em; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line-strong); }
[data-theme="modern"] .hero__place { font-size: .95rem; color: var(--ink-soft); margin-top: 4px; }
[data-theme="modern"] .hero .ornament { display: none; }
[data-theme="modern"] .countdown { justify-content: flex-start; }
[data-theme="modern"] .countdown__unit { text-align: left; }
[data-theme="modern"] .countdown__num { font-weight: 500; letter-spacing: -0.03em; }
[data-theme="modern"] .hero .btn-row { justify-content: flex-start; }
@media (min-width: 900px) {
  [data-theme="modern"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="modern"] .hero__media { margin: clamp(20px, 2.4vw, 32px) clamp(20px, 2.4vw, 32px) clamp(20px, 2.4vw, 32px) 0; border-radius: 24px; }
}
@media (max-width: 899px) {
  [data-theme="modern"] .hero__media { margin: 14px 14px 0; border-radius: 20px; }
}
/* Page tops: left-aligned title with the dot-and-line mark */
[data-theme="modern"] .page-hero:not(.page-hero--image) { text-align: left; }
[data-theme="modern"] .page-hero:not(.page-hero--image) .lead { margin-left: 0; }
[data-theme="modern"] .page-hero:not(.page-hero--image) .ornament { justify-content: flex-start; margin-left: 0; }
[data-theme="modern"] .page-hero h1 { font-weight: 500; letter-spacing: -0.045em; }

/* ============================================================== COASTAL
   Airy and breezy: a light, soft serif (Fraunces, light weight) for names and headings, a clean rounded sans
   (Nunito Sans) for reading, centered like an invitation. Signatures: a thin wave in the accent color as the
   ornament and under page titles, pebble-shaped photos (big soft corners on two sides), sand-colored page,
   sea-mist bands, deep-ocean footer, sea-blue accent. */
[data-theme="coastal"] {
  --bg: #F8F5EE;
  --bg-alt: #E9EFEE;
  --bg-deep: #1F3A4A;
  --surface: #FDFBF6;
  --ink: #1D2D36;
  --ink-soft: #485962;
  --ink-faint: #62717A;
  --on-deep: #F3F1EA;
  --on-deep-soft: rgba(243, 241, 234, .76);
  --accent: #5B8EA4;
  --accent-strong: #356379;
  --accent-soft: #F0E6D4;
  --accent-on-deep: #9DC5D5;
  --line: rgba(29, 45, 54, .12);
  --line-strong: rgba(29, 45, 54, .26);
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Nunito Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --display-weight: 300;
  --names-weight: 300;
  --names-transform: none;
  --names-tracking: -0.02em;
  --heading-tracking: -0.01em;
  --amp-style: italic;
  --eyebrow-tracking: .22em;
  --eyebrow-weight: 700;
  --radius: 12px; --radius-lg: 18px; --radius-media: 20px; --btn-radius: 8px;
  --shadow: 0 1px 2px rgba(31, 58, 74, .05), 0 20px 44px -26px rgba(31, 58, 74, .32);
  --align-hero: center;
}
[data-theme="coastal"] h1, [data-theme="coastal"] h2, [data-theme="coastal"] h3, [data-theme="coastal"] .display-1, [data-theme="coastal"] .display-2 { font-weight: 300; }
[data-theme="coastal"] .amp { font-style: italic; font-weight: 300; color: var(--accent-strong); }
/* The wave: a thin line drawn in the accent color (follows Look & colors) */
[data-theme="coastal"] .ornament { gap: 0; }
[data-theme="coastal"] .ornament::after, [data-theme="coastal"] .ornament svg { display: none; }
[data-theme="coastal"] .ornament::before {
  width: 104px; height: 14px; opacity: 1; background: var(--accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 104 14' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2 7c6.5-6 13-6 19.5 0s13 6 19.5 0 13-6 19.5 0 13 6 19.5 0 13-6 19.5 0'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 104 14' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2 7c6.5-6 13-6 19.5 0s13 6 19.5 0 13-6 19.5 0 13 6 19.5 0 13-6 19.5 0'/%3E%3C/svg%3E") no-repeat center / contain;
}
[data-theme="coastal"] .section-head--left .ornament::before { display: block; }
[data-theme="coastal"] .section--deep .ornament::before, [data-theme="coastal"] .band .ornament::before, [data-theme="coastal"] .page-hero--image .ornament::before { background: var(--accent-on-deep); }
/* Buttons and links: calm capitals, gently rounded */
[data-theme="coastal"] .btn { letter-spacing: .14em; font-weight: 700; }
[data-theme="coastal"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="coastal"] .nav__link { letter-spacing: .14em; font-weight: 600; }
[data-theme="coastal"] .brand__mark { font-weight: 300; }
[data-theme="coastal"] .brand__mark .amp { color: var(--accent-strong); }
/* Pebble photos: big soft corners on two sides */
[data-theme="coastal"] .frame::before { display: none; }
[data-theme="coastal"] .split .frame .media, [data-theme="coastal"] .timeline__media .media, [data-theme="coastal"] .media--arch { border-radius: 96px 20px 96px 20px; }
[data-theme="coastal"] .frame--left .media { border-radius: 20px 96px 20px 96px; }
[data-theme="coastal"] .mosaic .media { border-radius: var(--radius-media); }
[data-theme="coastal"] .card, [data-theme="coastal"] .event-card, [data-theme="coastal"] .hotel-card, [data-theme="coastal"] .fund, [data-theme="coastal"] .person, [data-theme="coastal"] .story-duo__side { border-color: var(--line); }
[data-theme="coastal"] .event-card__time { border-radius: 999px; }
[data-theme="coastal"] .tab { border-radius: 999px; }
[data-theme="coastal"] .tab[aria-selected="true"] { background: var(--accent-strong); }
[data-theme="coastal"] .person__mono { font-weight: 300; font-style: italic; background: radial-gradient(circle at 30% 25%, #fff, var(--bg-alt)); }
[data-theme="coastal"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); background: var(--bg); border: 2px solid var(--accent); width: 13px; height: 13px; }
[data-theme="coastal"] .quote-block blockquote { font-style: italic; font-weight: 300; }
[data-theme="coastal"] .footer-mono { font-weight: 300; }
[data-theme="coastal"] .footer-mono .amp { color: var(--accent-on-deep); }
[data-theme="coastal"] .section--deep .eyebrow { color: var(--accent-on-deep); }
/* Hero: centered names in the light serif, photo as a pebble with a soft ring */
[data-theme="coastal"] .hero__names { font-size: clamp(4rem, 9vw, 8.6rem); line-height: .98; }
[data-theme="coastal"] .hero__names .amp { font-size: .6em; line-height: 1.1; }
[data-theme="coastal"] .hero__date { font-weight: 300; font-style: italic; }
@media (min-width: 900px) {
  [data-theme="coastal"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="coastal"] .hero__media { margin: clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px) clamp(28px, 4vw, 56px) 0; border-radius: 180px 28px 180px 28px; box-shadow: 0 0 0 10px var(--bg), 0 0 0 11px color-mix(in srgb, var(--accent) 55%, transparent); }
}
@media (max-width: 899px) {
  [data-theme="coastal"] .hero__media { margin: 16px 16px 0; border-radius: 110px 22px 110px 22px; height: min(64svh, 560px); }
}

/* =============================================================== RUSTIC
   Warm and handmade: names in a relaxed handwriting (Homemade Apple), headings in a sturdy slab serif (Bitter),
   a friendly sans for reading (Karla). Signatures: a stitched line as the ornament, photos as polaroids
   (white mat, a slight tilt, a strip of kraft tape), kraft-paper page, linen bands, walnut footer, rust accent. */
[data-theme="rustic"] {
  --bg: #F6EFE3;
  --bg-alt: #ECE2D0;
  --bg-deep: #3B2A1E;
  --surface: #FCF8F0;
  --ink: #2E2219;
  --ink-soft: #5A4A3D;
  --ink-faint: #6E5E50;
  --on-deep: #F6EFE3;
  --on-deep-soft: rgba(246, 239, 227, .76);
  --accent: #A9663A;
  --accent-strong: #84502C;
  --accent-soft: #EBDCC2;
  --accent-on-deep: #E3BA8E;
  --line: rgba(46, 34, 25, .14);
  --line-strong: rgba(46, 34, 25, .28);
  --font-display: 'Bitter', Georgia, 'Times New Roman', serif;
  --font-body: 'Karla', 'Helvetica Neue', Arial, sans-serif;
  --font-names: 'Homemade Apple', 'Bradley Hand', cursive;
  --display-weight: 500;
  --names-weight: 400;
  --names-transform: none;
  --names-tracking: 0;
  --heading-tracking: -0.01em;
  --amp-style: normal;
  --eyebrow-tracking: .2em;
  --eyebrow-weight: 700;
  --radius: 6px; --radius-lg: 8px; --radius-media: 3px; --btn-radius: 4px;
  --shadow: 0 1px 2px rgba(59, 42, 30, .06), 0 18px 36px -22px rgba(59, 42, 30, .38);
  --align-hero: center;
}
[data-theme="rustic"] h1, [data-theme="rustic"] h2, [data-theme="rustic"] h3, [data-theme="rustic"] .display-2 { font-weight: 500; }
[data-theme="rustic"] .amp { font-family: var(--font-display); font-style: italic; font-weight: 400; color: var(--accent-strong); }
[data-theme="rustic"] .brand__mark .amp, [data-theme="rustic"] .footer-mono .amp { font-family: var(--font-names); font-style: normal; }
/* Handwriting for the names, the big band titles and signatures */
[data-theme="rustic"] .hero__names { font-size: clamp(3rem, 6.6vw, 6.2rem); line-height: 1.35; }
[data-theme="rustic"] .hero__names .amp { font-size: .62em; line-height: 1.1; }
[data-theme="rustic"] .brand__mark { font-family: var(--font-names); font-size: 1.5rem; }
[data-theme="rustic"] .footer-mono { font-family: var(--font-names); font-size: clamp(3rem, 6vw, 4.4rem); line-height: 1.3; }
[data-theme="rustic"] .footer-mono .amp { color: var(--accent-on-deep); }
[data-theme="rustic"] .page-hero h1 { font-weight: 600; }
[data-theme="rustic"] .story-duo__side .sig { font-family: var(--font-names); font-style: normal; font-size: 1.25rem; line-height: 1.6; }
/* Ornament: a stitched line */
[data-theme="rustic"] .ornament { gap: 0; }
[data-theme="rustic"] .ornament svg, [data-theme="rustic"] .ornament::after { display: none; }
[data-theme="rustic"] .ornament::before { width: 120px; height: 2px; opacity: 1; background: repeating-linear-gradient(90deg, var(--accent) 0 7px, transparent 7px 12px); border-radius: 2px; }
[data-theme="rustic"] .section-head--left .ornament::before { display: block; }
[data-theme="rustic"] .section--deep .ornament::before, [data-theme="rustic"] .band .ornament::before, [data-theme="rustic"] .page-hero--image .ornament::before { background: repeating-linear-gradient(90deg, var(--accent-on-deep) 0 7px, transparent 7px 12px); }
[data-theme="rustic"] .section--deep .eyebrow { color: var(--accent-on-deep); }
/* Buttons: sturdy, small corners */
[data-theme="rustic"] .btn { letter-spacing: .14em; font-weight: 700; }
[data-theme="rustic"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="rustic"] .nav__link { letter-spacing: .12em; font-weight: 600; }
/* Polaroids: white mat, a slight tilt and a strip of kraft tape */
[data-theme="rustic"] .split .frame .media, [data-theme="rustic"] .timeline__media .media { border: 10px solid #FFFDF8; box-shadow: 0 1px 2px rgba(59, 42, 30, .08), 0 16px 34px -18px rgba(59, 42, 30, .45); transform: rotate(-1.2deg); }
[data-theme="rustic"] .split .frame--left .media, [data-theme="rustic"] .timeline__item:nth-child(even) .timeline__media .media { transform: rotate(1.2deg); }
[data-theme="rustic"] .frame::before { inset: -14px auto auto 50%; width: 110px; height: 30px; border: 0; border-radius: 2px; transform: translateX(-50%) rotate(-3deg); background: rgba(214, 190, 150, .78); box-shadow: 0 1px 2px rgba(59, 42, 30, .12); z-index: 2; }
[data-theme="rustic"] .frame--left::before { inset: -14px auto auto 50%; transform: translateX(-50%) rotate(2.5deg); }
@media (max-width: 640px) { [data-theme="rustic"] .frame::before { inset: -12px auto auto 50%; width: 90px; height: 26px; } }
[data-theme="rustic"] .card, [data-theme="rustic"] .event-card, [data-theme="rustic"] .hotel-card, [data-theme="rustic"] .fund, [data-theme="rustic"] .person, [data-theme="rustic"] .story-duo__side { border-color: var(--line-strong); }
[data-theme="rustic"] .tab[aria-selected="true"] { background: var(--accent-strong); }
[data-theme="rustic"] .person__mono { font-family: var(--font-names); font-size: 1.7rem; background: var(--accent-soft); }
[data-theme="rustic"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); background: var(--accent); border-color: var(--bg); }
[data-theme="rustic"] .quote-block blockquote { font-style: italic; }
[data-theme="rustic"] .swatch__chip { border-radius: 50%; }
/* Hero: names in handwriting, the photo as a big polaroid */
[data-theme="rustic"] .hero__date { font-family: var(--font-display); font-weight: 500; }
@media (min-width: 900px) {
  [data-theme="rustic"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="rustic"] .hero__media { margin: clamp(32px, 4vw, 60px) clamp(32px, 4vw, 60px) clamp(40px, 5vw, 76px) 0; border: 14px solid #FFFDF8; border-bottom-width: 52px; box-shadow: 0 2px 4px rgba(59, 42, 30, .08), 0 30px 60px -28px rgba(59, 42, 30, .5); transform: rotate(1.4deg); }
}
@media (max-width: 899px) {
  [data-theme="rustic"] .hero__media { margin: 20px 22px 6px; border: 10px solid #FFFDF8; border-bottom-width: 36px; box-shadow: 0 20px 40px -24px rgba(59, 42, 30, .5); transform: rotate(-1deg); height: min(62svh, 540px); }
}

/* ============================================================ MIDNIGHT
   Romantic evening by candlelight, a dark style: near-black page, champagne gold, ivory text (color-scheme dark, so form
   controls and scroll bars follow). Names and headings in a fine high-contrast display face (Italiana); reading text
   in a geometric sans with an Art Deco feel (Jost); true italics from Libre Bodoni for the "&", quotes and signatures
   (Italiana has no italic, and faked italics look cheap). Signatures: an Art Deco ornament (stepped double hairlines
   around a solid diamond), arched photos with a gold double hairline, gold hairlines between bands, gold buttons. */
[data-theme="midnight"] {
  color-scheme: dark;
  --bg: #121110;
  --bg-alt: #1A1714;
  --bg-deep: #0A0908;
  --surface: #1B1916;
  --ink: #F2ECE0;
  --ink-soft: #C9C0B2;
  --ink-faint: #A39A8C;
  --on-deep: #F2ECE0;
  --on-deep-soft: rgba(242, 236, 224, .74);
  --accent: #C8A464;
  --accent-strong: #DCC08A;
  --accent-soft: #2C2519;
  --accent-on-deep: #DCC08A;
  --on-accent: #121110;
  --line: rgba(242, 236, 224, .12);
  --line-strong: rgba(242, 236, 224, .26);
  --overlay: linear-gradient(180deg, rgba(10, 9, 8, .25) 0%, rgba(10, 9, 8, .72) 100%);
  --success: #93BC8C;
  --danger: #EE9A8F;
  --warning: #E6B964;
  --font-display: 'Italiana', Didot, 'Bodoni 72', Georgia, serif;
  --font-body: 'Jost', Futura, 'Century Gothic', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --font-italic: 'Libre Bodoni', 'Bodoni 72', Didot, Georgia, serif;
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: none;
  --names-tracking: .01em;
  --heading-tracking: .01em;
  --amp-style: italic;
  --eyebrow-tracking: .32em;
  --eyebrow-weight: 500;
  --radius: 2px; --radius-lg: 3px; --radius-media: 0px; --btn-radius: 0px;
  --shadow: 0 0 0 1px rgba(200, 164, 100, .12), 0 24px 48px -28px rgba(0, 0, 0, .85);
  --shadow-lg: 0 30px 80px -30px rgba(0, 0, 0, .9);
  --align-hero: center;
}
[data-theme="midnight"] h1, [data-theme="midnight"] h2, [data-theme="midnight"] h3, [data-theme="midnight"] .display-2 { font-weight: 400; }
[data-theme="midnight"] h3 { letter-spacing: .02em; }
/* True italics (Libre Bodoni) wherever the site sets display text in italic */
[data-theme="midnight"] .amp, [data-theme="midnight"] .quote-block blockquote, [data-theme="midnight"] .story-duo__side .sig, [data-theme="midnight"] .footer-hashtag,
[data-theme="midnight"] .place-card__tip, [data-theme="midnight"] .message-card blockquote, [data-theme="midnight"] .newport-map .map-labels .map-script { font-family: var(--font-italic); font-style: italic; font-weight: 400; }
[data-theme="midnight"] .amp { color: var(--accent-strong); }
[data-theme="midnight"] .serif.italic { font-family: var(--font-italic); }   /* real italic (Italiana has none) */
[data-theme="midnight"] .footer-mono .amp { color: var(--accent-on-deep); }
[data-theme="midnight"] .quote-block blockquote { font-size: clamp(1.7rem, 3.1vw, 2.6rem); line-height: 1.3; }
[data-theme="midnight"] .brand__mark { font-size: 1.7rem; letter-spacing: .04em; }
/* Ornament: Art Deco — stepped double hairlines around a solid diamond */
[data-theme="midnight"] .ornament { gap: 12px; }
[data-theme="midnight"] .ornament::before, [data-theme="midnight"] .ornament::after { width: 74px; height: 5px; opacity: 1; background: linear-gradient(currentColor, currentColor) 0 0 / 100% 1px no-repeat, linear-gradient(currentColor, currentColor) 100% 100% / 58% 1px no-repeat; }
[data-theme="midnight"] .ornament::after { background: linear-gradient(currentColor, currentColor) 0 0 / 100% 1px no-repeat, linear-gradient(currentColor, currentColor) 0 100% / 58% 1px no-repeat; }
[data-theme="midnight"] .ornament .orn-classic { width: 11px; height: 11px; }
[data-theme="midnight"] .ornament .orn-classic path { fill: currentColor; }
[data-theme="midnight"] .section-head--left .ornament::before { display: block; }
[data-theme="midnight"] .section--deep .ornament, [data-theme="midnight"] .band .ornament, [data-theme="midnight"] .page-hero--image .ornament { color: var(--accent-on-deep); }
/* Bands: gold hairlines between them */
[data-theme="midnight"] .section--alt { border-block: 1px solid var(--line); }
[data-theme="midnight"] .section--deep, [data-theme="midnight"] .site-footer { border-top: 1px solid color-mix(in srgb, var(--accent) 42%, transparent); }
[data-theme="midnight"] .section--deep { border-bottom: 1px solid color-mix(in srgb, var(--accent) 42%, transparent); }
[data-theme="midnight"] .site-header.is-scrolled { border-bottom-color: color-mix(in srgb, var(--accent) 30%, transparent); box-shadow: 0 10px 30px -22px rgba(0, 0, 0, .9); }
/* Buttons: gold with ink text; outlined ones in gold */
[data-theme="midnight"] .btn { letter-spacing: .24em; font-weight: 500; }
[data-theme="midnight"] .btn:not(.btn--ghost):not(.btn--light):not(.btn--outline-light) { --btn-bg: var(--accent-strong); --btn-fg: var(--on-accent); --btn-bd: var(--accent-strong); }
[data-theme="midnight"] .btn:not(.btn--ghost):not(.btn--light):not(.btn--outline-light):hover { --btn-bg: var(--ink); --btn-fg: var(--bg); --btn-bd: var(--ink); }
[data-theme="midnight"] .btn--ghost { --btn-fg: var(--accent-strong); --btn-bd: color-mix(in srgb, var(--accent) 60%, transparent); }
[data-theme="midnight"] .btn--ghost:hover { --btn-bg: var(--accent-strong); --btn-fg: var(--on-accent); --btn-bd: var(--accent-strong); }
[data-theme="midnight"] .nav__link { letter-spacing: .18em; }
[data-theme="midnight"] .tab { border-radius: 0; }
[data-theme="midnight"] .tab[aria-selected="true"] { background: var(--accent-strong); border-color: var(--accent-strong); color: var(--on-accent); }
/* Cards: a faint gold edge */
[data-theme="midnight"] .card, [data-theme="midnight"] .event-card, [data-theme="midnight"] .hotel-card, [data-theme="midnight"] .fund, [data-theme="midnight"] .person, [data-theme="midnight"] .story-duo__side { border-color: color-mix(in srgb, var(--accent) 24%, transparent); }
[data-theme="midnight"] .person__mono { background: radial-gradient(circle at 30% 25%, var(--surface), var(--bg-alt)); font-size: 2.3rem; }
[data-theme="midnight"] .avoid-chip i { background: var(--surface); }
[data-theme="midnight"] .choice input:checked + .choice__box::before { background: var(--bg); }
[data-theme="midnight"] .timeline__item::after { border-radius: 0; transform: translate(-50%, -50%) rotate(45deg); background: var(--accent); border-color: var(--bg); }
[data-theme="midnight"] .swatch__chip { border-radius: 0; }
/* Photos: arched tops inside a gold double hairline (box-shadow rings follow the arch) */
[data-theme="midnight"] .split .frame .media, [data-theme="midnight"] .timeline__media .media { border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 70%, transparent), 0 0 0 9px var(--bg), 0 0 0 10px color-mix(in srgb, var(--accent) 45%, transparent); }
[data-theme="midnight"] .section--alt .split .frame .media, [data-theme="midnight"] .section--alt .timeline__media .media { box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 70%, transparent), 0 0 0 9px var(--bg-alt), 0 0 0 10px color-mix(in srgb, var(--accent) 45%, transparent); }
[data-theme="midnight"] .frame::before { display: none; }
/* Hero: names centered, the photo as a tall gilded arch */
[data-theme="midnight"] .hero__names { font-size: clamp(3.6rem, 8vw, 7.6rem); line-height: 1; }
[data-theme="midnight"] .hero__names .amp { font-size: .5em; margin: .14em 0 .1em; }
[data-theme="midnight"] .hero__date { font-family: var(--font-body); font-size: .8rem; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; margin-top: 22px; color: var(--accent-strong); }
[data-theme="midnight"] .hero__media { border-radius: 50% 50% 0 0 / 26% 26% 0 0; box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 75%, transparent), 0 0 0 11px var(--bg), 0 0 0 12px color-mix(in srgb, var(--accent) 45%, transparent); }
@media (min-width: 900px) {
  [data-theme="midnight"] .hero { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
  [data-theme="midnight"] .hero__media { margin: clamp(40px, 5vw, 72px) clamp(40px, 5vw, 76px) clamp(40px, 5vw, 72px) 0; }
}
@media (max-width: 899px) {
  [data-theme="midnight"] .hero__media { margin: 28px 28px 6px; height: min(64svh, 560px); border-radius: 50% 50% 0 0 / 22% 22% 0 0; }
}
[data-theme="midnight"] .countdown__unit + .countdown__unit::before { background: color-mix(in srgb, var(--accent) 45%, transparent); }
[data-theme="midnight"] .page-hero:not(.page-hero--image) { border-bottom: 1px solid var(--line); }
[data-theme="midnight"] .announce { background: var(--accent-soft); color: var(--ink); border-bottom: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); }

/* ============================================================ BLACK-TIE
   Formal evening, like an engraved invitation: tuxedo black and crisp white, pearl "foil" for the rules and frames
   (follows the chosen palette). Names and headings in engraved Roman capitals (Cinzel); reading text and the
   invitation-style italics in a book serif (EB Garamond). Signatures: the hero is the invitation card (double rule)
   over a candlelit photo, a crest monogram (header + footer), the weekend and the day as a printed programme with
   dotted leaders, place-card frames, shirt-stud ornament, a satin stripe on the dark bands. */
[data-theme="blacktie"] {
  color-scheme: dark;
  --bg: #0D0D0E;
  --bg-alt: #141415;
  --bg-deep: #050505;
  --surface: #161617;
  --ink: #F7F7F5;
  --ink-soft: #BFBFBC;
  --ink-faint: #9B9B98;
  --on-deep: #F7F7F5;
  --on-deep-soft: rgba(247, 247, 245, .74);
  --accent: #CFCCC5;
  --accent-strong: #E6E4DF;
  --accent-soft: #26262A;
  --accent-on-deep: #E6E4DF;
  --on-accent: #0D0D0E;
  --line: rgba(247, 247, 245, .12);
  --line-strong: rgba(247, 247, 245, .26);
  --overlay: linear-gradient(180deg, rgba(5, 5, 5, .3) 0%, rgba(5, 5, 5, .74) 100%);
  --success: #93BC8C;
  --danger: #EE9A8F;
  --warning: #E6B964;
  --font-display: 'Cinzel', 'Trajan Pro', 'Times New Roman', serif;
  --font-body: 'EB Garamond', Garamond, Georgia, 'Times New Roman', serif;
  --font-names: var(--font-display);
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: none;
  --names-tracking: .08em;
  --heading-tracking: .08em;
  --amp-style: italic;
  --eyebrow-tracking: .02em;
  --eyebrow-size: 1.08rem;
  --eyebrow-weight: 400;
  --radius: 0px; --radius-lg: 0px; --radius-media: 0px; --btn-radius: 0px;
  --shadow: 0 0 0 1px rgba(247, 247, 245, .08), 0 24px 48px -28px rgba(0, 0, 0, .9);
  --shadow-lg: 0 30px 80px -30px rgba(0, 0, 0, .95);
  --align-hero: center;
  /* pearl foil: the accent with a soft sheen (rules, frames, the crest ring) */
  --foil: linear-gradient(110deg, color-mix(in srgb, var(--accent) 62%, #000) 0%, color-mix(in srgb, var(--accent) 55%, #fff) 34%, var(--accent) 50%, color-mix(in srgb, var(--accent) 70%, #000) 68%, color-mix(in srgb, var(--accent) 60%, #fff) 100%);
}
[data-theme="blacktie"] body { font-size: 1.08rem; }
[data-theme="blacktie"] h1, [data-theme="blacktie"] h2, [data-theme="blacktie"] h3, [data-theme="blacktie"] .display-2 { font-weight: 400; }
[data-theme="blacktie"] h3 { letter-spacing: .05em; }
/* Invitation italics: eyebrows read like the line above the names ("together with their families") */
[data-theme="blacktie"] .eyebrow, [data-theme="blacktie"] .hero__eyebrow { font-family: var(--font-body); font-style: italic; text-transform: none; letter-spacing: .02em; font-size: 1.12rem; font-weight: 400; }
[data-theme="blacktie"] .amp { font-family: var(--font-body); font-style: italic; font-weight: 400; color: var(--accent-strong); text-transform: none; letter-spacing: 0; }
[data-theme="blacktie"] .footer-mono .amp, [data-theme="blacktie"] .section--deep .amp { color: var(--accent-on-deep); }
[data-theme="blacktie"] .quote-block blockquote, [data-theme="blacktie"] .story-duo__side .sig, [data-theme="blacktie"] .footer-hashtag, [data-theme="blacktie"] .place-card__tip, [data-theme="blacktie"] .message-card blockquote { font-family: var(--font-body); font-style: italic; }
[data-theme="blacktie"] .page-hero h1 { letter-spacing: .1em; }
[data-theme="blacktie"] .serif.italic { font-family: var(--font-body); }
/* Ornament: a foil hairline either side of three shirt studs */
[data-theme="blacktie"] .ornament { gap: 14px; }
[data-theme="blacktie"] .ornament::before, [data-theme="blacktie"] .ornament::after { width: 70px; height: 1px; opacity: 1; background: var(--foil); }
[data-theme="blacktie"] .ornament .orn-classic { width: 32px; height: 6px; background: radial-gradient(circle at 3px 3px, currentColor 2.4px, transparent 2.9px) 0 0 / 13px 6px repeat-x; }
[data-theme="blacktie"] .ornament .orn-classic path { display: none; }
[data-theme="blacktie"] .section-head--left .ornament::before { display: block; }
[data-theme="blacktie"] .section--deep .ornament, [data-theme="blacktie"] .band .ornament, [data-theme="blacktie"] .page-hero--image .ornament { color: var(--accent-on-deep); }
/* Satin: a sheen stripe along the top of the dark bands and the footer */
[data-theme="blacktie"] .section--deep, [data-theme="blacktie"] .site-footer { background: linear-gradient(180deg, color-mix(in srgb, var(--bg-deep) 70%, #fff) 0, var(--bg-deep) 45%, color-mix(in srgb, var(--bg-deep) 82%, #fff) 100%) top / 100% 5px no-repeat, var(--bg-deep); }
[data-theme="blacktie"] .section--alt { border-block: 1px solid var(--line); }
[data-theme="blacktie"] .announce { background: var(--accent-soft); color: var(--ink); border-bottom: 1px solid var(--line-strong); }
[data-theme="blacktie"] .site-header.is-scrolled { border-bottom-color: var(--line-strong); box-shadow: 0 10px 30px -22px rgba(0, 0, 0, .95); }
/* Crest monogram: initials inside a foil ring (header small, footer large) */
[data-theme="blacktie"] .brand__mark { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; border: 1px solid transparent; background: linear-gradient(var(--bg), var(--bg)) padding-box, var(--foil) border-box; font-size: .98rem; letter-spacing: .02em; white-space: nowrap; }
[data-theme="blacktie"] .brand__mark .amp { margin: 0 .04em; }
[data-theme="blacktie"] .footer-mono { display: inline-flex; align-items: center; justify-content: center; width: clamp(130px, 14vw, 168px); height: clamp(130px, 14vw, 168px); border-radius: 50%; border: 1px solid transparent; background: linear-gradient(var(--bg-deep), var(--bg-deep)) padding-box, var(--foil) border-box; box-shadow: 0 0 0 6px var(--bg-deep), 0 0 0 7px color-mix(in srgb, var(--accent-on-deep) 40%, transparent); font-size: clamp(2rem, 3.6vw, 2.7rem); letter-spacing: .04em; white-space: nowrap; }
/* Buttons: crisp white with black text (the shirt front); outlined in white; engraved capitals */
[data-theme="blacktie"] .btn { font-family: var(--font-display); font-size: .74rem; letter-spacing: .2em; font-weight: 600; }
[data-theme="blacktie"] .btn:not(.btn--ghost):not(.btn--light):not(.btn--outline-light):hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); --btn-fg: var(--on-accent); }
[data-theme="blacktie"] .btn--ghost:hover { --btn-bg: var(--ink); --btn-fg: var(--bg); --btn-bd: var(--ink); }
[data-theme="blacktie"] .nav__link { font-family: var(--font-display); letter-spacing: .14em; font-weight: 500; }
[data-theme="blacktie"] .tab { border-radius: 0; font-family: var(--font-display); }
/* Place cards: a fine inner frame */
[data-theme="blacktie"] .card, [data-theme="blacktie"] .event-card, [data-theme="blacktie"] .hotel-card, [data-theme="blacktie"] .fund, [data-theme="blacktie"] .person, [data-theme="blacktie"] .story-duo__side { border-color: var(--line-strong); box-shadow: inset 0 0 0 6px var(--surface), inset 0 0 0 7px color-mix(in srgb, var(--accent) 26%, transparent); }
[data-theme="blacktie"] .person__mono { background: var(--bg); border-color: var(--accent); }
[data-theme="blacktie"] .person__mono::after { display: none; }
[data-theme="blacktie"] .avoid-chip i { background: var(--surface); }
[data-theme="blacktie"] .choice input:checked + .choice__box::before { background: var(--bg); }
[data-theme="blacktie"] .timeline__item::after { border-radius: 50%; background: var(--accent); border-color: var(--bg); }
[data-theme="blacktie"] .swatch__chip { border-radius: 50%; }
[data-theme="blacktie"] .frame::before { inset: -10px; border-color: color-mix(in srgb, var(--accent) 45%, transparent); }
[data-theme="blacktie"] .page-hero:not(.page-hero--image) { border-bottom: 1px solid var(--line); }
/* The weekend + the day as a printed programme: name ……… time */
[data-theme="blacktie"] .weekend-strip { display: block; max-width: 680px; margin-inline: auto; }
[data-theme="blacktie"] .weekend-strip__item { display: grid; grid-template-columns: auto minmax(24px, 1fr) auto; grid-template-areas: "name lead day" "place place place"; column-gap: 14px; padding: 18px 0; border-top: 0; border-bottom: 1px solid var(--line); text-align: left; }
[data-theme="blacktie"] .weekend-strip__item::before { position: static; grid-area: lead; align-self: end; width: auto; height: 0; margin-bottom: .55em; border: 0; border-bottom: 1px dotted color-mix(in srgb, var(--ink) 45%, transparent); border-radius: 0; background: none; }
[data-theme="blacktie"] .weekend-strip__item h3 { grid-area: name; margin: 0; font-size: clamp(1.1rem, 2vw, 1.35rem); }
[data-theme="blacktie"] .weekend-strip__day { grid-area: day; align-self: end; font-family: var(--font-display); font-size: .74rem; letter-spacing: .14em; margin-bottom: .2em; }
[data-theme="blacktie"] .weekend-strip__item p { grid-area: place; margin-top: 4px; font-style: italic; }
@media (max-width: 560px) {
  [data-theme="blacktie"] .weekend-strip__item { grid-template-columns: 1fr; grid-template-areas: "day" "name" "place"; text-align: center; }
  [data-theme="blacktie"] .weekend-strip__item::before { display: none; }
}
[data-theme="blacktie"] .day-timeline::before { display: none; }
[data-theme="blacktie"] .day-timeline li { grid-template-columns: minmax(0, auto) minmax(24px, 1fr) auto; gap: 14px; align-items: baseline; border-bottom: 1px solid var(--line); }
[data-theme="blacktie"] .day-timeline li > div { grid-column: 1; grid-row: 1; }
[data-theme="blacktie"] .day-timeline time { grid-column: 3; grid-row: 1; font-size: .95rem; letter-spacing: .06em; color: var(--accent-strong); }
[data-theme="blacktie"] .day-timeline li::after { position: static; grid-column: 2; grid-row: 1; align-self: center; width: auto; height: 0; border: 0; border-bottom: 1px dotted color-mix(in srgb, var(--ink) 45%, transparent); border-radius: 0; background: none; box-shadow: none; }
[data-theme="blacktie"] .day-timeline li.is-now::after { box-shadow: none; border-bottom-color: var(--accent); }
[data-theme="blacktie"] .day-timeline li.is-past { opacity: 1; }
[data-theme="blacktie"] .day-timeline li.is-past strong, [data-theme="blacktie"] .day-timeline li.is-past time, [data-theme="blacktie"] .day-timeline li.is-past small { color: var(--ink-faint); }
/* Hero: the invitation card beside the couple's portrait (split like the other styles, so the photo is never covered — Geek 2026-10-08) */
[data-theme="blacktie"] .hero__media::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, rgba(5, 5, 5, 0) 55%, rgba(5, 5, 5, .38)); pointer-events: none; }
[data-theme="blacktie"] .hero__content { width: min(660px, calc(100% - 2 * var(--gutter))); margin-inline: auto; padding: clamp(40px, 5vw, 64px) clamp(22px, 4vw, 56px); background: var(--bg); border: 1px solid transparent; background: linear-gradient(var(--bg), var(--bg)) padding-box, var(--foil) border-box; }
[data-theme="blacktie"] .hero__content::before { content: ''; position: absolute; inset: 8px; border: 1px solid color-mix(in srgb, var(--accent) 38%, transparent); pointer-events: none; }
[data-theme="blacktie"] .hero__names { font-size: clamp(2.4rem, 5.2vw, 4.4rem); line-height: 1.12; letter-spacing: .08em; }
[data-theme="blacktie"] .hero__names .amp { font-size: .62em; line-height: 1.2; margin: .1em 0; }
[data-theme="blacktie"] .hero__date { font-family: var(--font-display); font-size: .9rem; letter-spacing: .2em; text-transform: uppercase; margin-top: 22px; }
[data-theme="blacktie"] .hero__place { font-family: var(--font-body); font-style: italic; text-transform: none; letter-spacing: .02em; font-size: 1.05rem; }
[data-theme="blacktie"] .countdown__unit + .countdown__unit::before { background: var(--line-strong); }
@media (min-width: 900px) {
  [data-theme="blacktie"] .hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
  [data-theme="blacktie"] .hero__content { width: min(600px, calc(100% - 2 * clamp(24px, 4vw, 64px))); margin: clamp(40px, 5vw, 72px) auto; }
  /* the portrait: a thin foil edge and an inner gold rule, matching the card */
  [data-theme="blacktie"] .hero__media { align-self: stretch; margin: clamp(40px, 5vw, 72px) clamp(40px, 5vw, 76px) clamp(40px, 5vw, 72px) 0; border: 1px solid transparent; background: linear-gradient(var(--bg), var(--bg)) padding-box, var(--foil) border-box; }
  [data-theme="blacktie"] .hero__media::before { content: ''; position: absolute; inset: 10px; z-index: 1; border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); pointer-events: none; }
  [data-theme="blacktie"] .hero__names { font-size: clamp(2.4rem, 4.2vw, 4.2rem); }
}
@media (max-width: 899px) {
  [data-theme="blacktie"] .hero__media { height: min(52svh, 460px); }
  [data-theme="blacktie"] .hero__content { margin-top: -96px; margin-bottom: 36px; }
}

/* ============================================================ INDUSTRIAL
   Brick and steel, for lofts, foundries and old factories: names and headings in a condensed Chicago grotesque
   set in capitals (Big Shoulders), a stencilled "&" (Big Shoulders Stencil), a sturdy grotesque for reading
   (Archivo), small labels in a typewriter mono (IBM Plex Mono) like a spec sheet. Signatures: photos in a steel
   frame with a rivet in each corner, a riveted beam as the ornament, a faint blueprint grid on the graphite
   bands. Warm concrete page, graphite bands, brick-red accent. */
[data-theme="industrial"] {
  --bg: #F3F0EA;
  --bg-alt: #E7E2D9;
  --bg-deep: #22262A;
  --surface: #FAF8F4;
  --ink: #1D2023;
  --ink-soft: #484C50;
  --ink-faint: #61656A;
  --on-deep: #F1EEE8;
  --on-deep-soft: rgba(241, 238, 232, .76);
  --accent: #A65232;
  --accent-strong: #8A3F23;
  --accent-soft: #E9DDD3;
  --accent-on-deep: #E5A487;
  --line: rgba(29, 32, 35, .14);
  --line-strong: rgba(29, 32, 35, .3);
  --font-display: 'Big Shoulders', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --font-mono: 'IBM Plex Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
  --font-amp: 'Big Shoulders Stencil', 'Big Shoulders', 'Arial Narrow', sans-serif;
  --display-weight: 700;
  --names-weight: 800;
  --names-transform: uppercase;
  --names-tracking: .005em;
  --heading-transform: uppercase;
  --heading-tracking: .01em;
  --amp-style: normal;
  --eyebrow-tracking: .12em;
  --eyebrow-size: .74rem;
  --eyebrow-weight: 500;
  --radius: 0px; --radius-lg: 0px; --radius-media: 0px; --btn-radius: 0px;
  --shadow: 0 1px 0 rgba(29, 32, 35, .06), 0 16px 34px -24px rgba(29, 32, 35, .42);
  --align-hero: left;
  --rivet: radial-gradient(circle, var(--ink-soft) 0 2.4px, transparent 3px);
  --rivet-light: radial-gradient(circle, rgba(241, 238, 232, .92) 0 2.6px, transparent 3.2px);
}
[data-theme="industrial"] h1, [data-theme="industrial"] h2, [data-theme="industrial"] h3, [data-theme="industrial"] .display-1, [data-theme="industrial"] .display-2 { font-weight: 700; line-height: 1; }
[data-theme="industrial"] .display-2, [data-theme="industrial"] .section-head h2 { font-size: clamp(2.6rem, 5.4vw, 4.6rem); line-height: .95; }
[data-theme="industrial"] h3 { letter-spacing: .02em; }
[data-theme="industrial"] .amp { font-family: var(--font-amp); font-weight: 700; color: var(--accent); }
[data-theme="industrial"] .section--deep .amp, [data-theme="industrial"] .site-footer .amp { color: var(--accent-on-deep); }
/* Spec-sheet labels: eyebrows and small capitals in the typewriter mono, a short rule before the eyebrow */
[data-theme="industrial"] .eyebrow { font-family: var(--font-mono); }
[data-theme="industrial"] .section-head .eyebrow::before, [data-theme="industrial"] .page-hero .eyebrow::before { content: ''; display: inline-block; width: 22px; height: 2px; margin: 0 10px .26em 0; vertical-align: middle; background: currentColor; }
[data-theme="industrial"] .caps, [data-theme="industrial"] .brand__meta, [data-theme="industrial"] .footer-date, [data-theme="industrial"] .weekend-strip__day, [data-theme="industrial"] .timeline__date, [data-theme="industrial"] .media figcaption, [data-theme="industrial"] .media__caption, [data-theme="industrial"] .person__role, [data-theme="industrial"] .event-card__time, [data-theme="industrial"] .countdown__label, [data-theme="industrial"] .hero__place, [data-theme="industrial"] .label { font-family: var(--font-mono); font-weight: 500; letter-spacing: .1em; }
/* Ornament: a riveted beam (a steel line with a rivet at each end and one in the middle) */
[data-theme="industrial"] .ornament { gap: 0; color: var(--ink-soft); }
[data-theme="industrial"] .ornament svg, [data-theme="industrial"] .ornament::after { display: none; }
[data-theme="industrial"] .ornament::before { width: 132px; height: 8px; opacity: 1; background: radial-gradient(circle, currentColor 0 2.6px, transparent 3.2px) 0 50% / 8px 8px no-repeat, radial-gradient(circle, currentColor 0 2.6px, transparent 3.2px) 50% 50% / 8px 8px no-repeat, radial-gradient(circle, currentColor 0 2.6px, transparent 3.2px) 100% 50% / 8px 8px no-repeat, linear-gradient(currentColor, currentColor) 50% 50% / 100% 2px no-repeat; }
[data-theme="industrial"] .section-head--left .ornament::before { display: block; }
[data-theme="industrial"] .section--deep .ornament, [data-theme="industrial"] .band .ornament, [data-theme="industrial"] .page-hero--image .ornament { color: var(--accent-on-deep); }
/* Graphite bands with a faint blueprint grid */
[data-theme="industrial"] .section--deep, [data-theme="industrial"] .site-footer { background: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px) 0 0 / 44px 44px, linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px) 0 0 / 44px 44px, var(--bg-deep); }
[data-theme="industrial"] .section--alt { border-block: 1px solid var(--line); }
[data-theme="industrial"] .site-header.is-scrolled { border-bottom: 2px solid var(--ink); }
/* Buttons: square, condensed capitals, solid graphite; brick on hover */
[data-theme="industrial"] .btn { font-family: var(--font-display); font-size: 1.02rem; font-weight: 700; letter-spacing: .1em; min-height: 48px; }
[data-theme="industrial"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="industrial"] .btn--ghost { --btn-bd: var(--ink); border-width: 2px; }
[data-theme="industrial"] .nav__link { font-family: var(--font-display); font-size: .98rem; font-weight: 600; letter-spacing: .1em; }
[data-theme="industrial"] .nav__link::after { height: 2px; background: var(--accent); }
[data-theme="industrial"] .text-link { font-family: var(--font-display); font-weight: 700; letter-spacing: .1em; border-bottom-width: 2px; }
[data-theme="industrial"] .brand__mark { font-family: var(--font-display); font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
[data-theme="industrial"] .footer-mono { font-weight: 800; text-transform: uppercase; letter-spacing: .01em; }
[data-theme="industrial"] .tab { border-radius: 0; font-family: var(--font-display); font-weight: 600; letter-spacing: .1em; }
[data-theme="industrial"] .tab[aria-selected="true"] { background: var(--ink); }
/* Steel-framed photos: a graphite edge, a gap, a second edge, and a rivet in each corner */
[data-theme="industrial"] .split .frame .media, [data-theme="industrial"] .timeline__media .media { box-shadow: 0 0 0 1px var(--ink), 0 0 0 9px var(--bg), 0 0 0 10px var(--line-strong); }
[data-theme="industrial"] .section--alt .split .frame .media, [data-theme="industrial"] .section--alt .timeline__media .media { box-shadow: 0 0 0 1px var(--ink), 0 0 0 9px var(--bg-alt), 0 0 0 10px var(--line-strong); }
[data-theme="industrial"] .frame::before, [data-theme="industrial"] .frame--left::before { inset: -10px; z-index: 1; border: 0; background: var(--rivet) 0 0 / 10px 10px no-repeat, var(--rivet) 100% 0 / 10px 10px no-repeat, var(--rivet) 0 100% / 10px 10px no-repeat, var(--rivet) 100% 100% / 10px 10px no-repeat; }
@media (max-width: 640px) { [data-theme="industrial"] .frame::before, [data-theme="industrial"] .frame--left::before { inset: -10px; } }
/* Signatures and the hashtag: stamped in the stencil face, never a slanted condensed font */
[data-theme="industrial"] .story-duo__side .sig, [data-theme="industrial"] .footer-hashtag, [data-theme="industrial"] .lead + .serif.italic { font-family: var(--font-amp); font-style: normal; font-weight: 700; letter-spacing: .04em; }
/* Other display italics (guest notes, tips, map labels, in-memory line): the reading face's real italic */
[data-theme="industrial"] .serif.italic, [data-theme="industrial"] .place-card__tip, [data-theme="industrial"] .message-card blockquote, [data-theme="industrial"] .newport-map .map-labels .map-script { font-family: var(--font-body); font-style: italic; font-weight: 400; letter-spacing: 0; }
[data-theme="industrial"] .lead + .serif.italic { font-family: var(--font-amp); font-style: normal; font-weight: 700; letter-spacing: .04em; }
/* Cards: square, a steel edge with a graphite cap along the top */
[data-theme="industrial"] .card, [data-theme="industrial"] .event-card, [data-theme="industrial"] .hotel-card, [data-theme="industrial"] .fund, [data-theme="industrial"] .person, [data-theme="industrial"] .story-duo__side { border-color: var(--line-strong); border-top: 3px solid var(--ink); box-shadow: none; }
[data-theme="industrial"] .card:hover, [data-theme="industrial"] .event-card:hover, [data-theme="industrial"] .hotel-card:hover { border-top-color: var(--accent); }
[data-theme="industrial"] .event-card__time { border-radius: 0; }
[data-theme="industrial"] .person__mono { border-radius: 0; font-weight: 800; text-transform: uppercase; background: var(--bg-alt); }
[data-theme="industrial"] .person__mono::after { border-radius: 0; }
[data-theme="industrial"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); width: 14px; height: 14px; background: var(--bg); border: 4px solid var(--ink); }
[data-theme="industrial"] .swatch__chip { border-radius: 0; }
[data-theme="industrial"] .quote-block blockquote { font-family: var(--font-display); font-style: normal; font-weight: 600; text-transform: uppercase; letter-spacing: .01em; line-height: 1.05; }
[data-theme="industrial"] .quote-block blockquote::before { content: '\201C'; display: block; font-family: var(--font-amp); font-size: 2em; line-height: .8; color: var(--accent); }
[data-theme="industrial"] .section--deep .quote-block blockquote::before { color: var(--accent-on-deep); }
[data-theme="industrial"] .countdown__num { font-family: var(--font-display); font-weight: 700; }
[data-theme="industrial"] .countdown__unit + .countdown__unit::before { background: var(--line-strong); }
/* Hero: huge stacked capitals on the left, the date as a spec line, the photo in its steel frame */
[data-theme="industrial"] .hero__content { align-items: flex-start; padding-inline: clamp(24px, 6vw, 96px); }
[data-theme="industrial"] .hero__eyebrow { font-family: var(--font-mono); color: var(--ink-soft); letter-spacing: .14em; }
[data-theme="industrial"] .hero__names { font-size: clamp(4.4rem, 10.6vw, 10.4rem); line-height: .84; }
[data-theme="industrial"] .hero__names .amp { font-size: .58em; line-height: 1; margin: .08em 0 .06em; }
[data-theme="industrial"] .hero__date { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.3rem, 2vw, 1.7rem); letter-spacing: .08em; text-transform: uppercase; margin-top: 26px; padding-top: 16px; border-top: 3px solid var(--ink); }
[data-theme="industrial"] .hero__place { color: var(--ink-soft); margin-top: 6px; }
[data-theme="industrial"] .hero .ornament { display: none; }
[data-theme="industrial"] .countdown { justify-content: flex-start; }
[data-theme="industrial"] .countdown__unit { text-align: left; }
[data-theme="industrial"] .hero .btn-row { justify-content: flex-start; }
[data-theme="industrial"] .hero__media::before { content: ''; position: absolute; inset: 10px; z-index: 1; pointer-events: none; background: var(--rivet-light) 0 0 / 10px 10px no-repeat, var(--rivet-light) 100% 0 / 10px 10px no-repeat, var(--rivet-light) 0 100% / 10px 10px no-repeat, var(--rivet-light) 100% 100% / 10px 10px no-repeat; }
@media (min-width: 900px) {
  [data-theme="industrial"] .hero { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
  [data-theme="industrial"] .hero__media { margin: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px) 0; box-shadow: 0 0 0 1px var(--ink), 0 0 0 10px var(--bg), 0 0 0 12px var(--ink); }
}
@media (max-width: 899px) {
  [data-theme="industrial"] .hero__media { margin: 18px 18px 0; height: min(60svh, 520px); box-shadow: 0 0 0 1px var(--ink), 0 0 0 8px var(--bg), 0 0 0 10px var(--ink); }
}
/* Page tops: left-aligned title with a heavy steel rule under it */
[data-theme="industrial"] .page-hero:not(.page-hero--image) { text-align: left; border-bottom: 3px solid var(--ink); }
[data-theme="industrial"] .page-hero:not(.page-hero--image) .lead { margin-left: 0; }
[data-theme="industrial"] .page-hero:not(.page-hero--image) .ornament { justify-content: flex-start; margin-left: 0; }
[data-theme="industrial"] .page-hero h1 { font-weight: 800; letter-spacing: .005em; }

/* ================================================================= BOHO
   Warm and free-spirited: names and headings in a soft 1970s serif (Young Serif), a loose monoline script
   (Sacramento) for the "&", the little titles above headings and signatures, an easy sans for reading (DM Sans).
   Signatures: a small boho rainbow (three nested arcs) as the ornament, pill-shaped photos with a sun disc behind
   them, a wisp of dried pampas grass, soft rounded tops on the deep bands, pill buttons. Sand page, deep-olive
   bands, terracotta accent. */
[data-theme="boho"] {
  --bg: #F7F0E6;
  --bg-alt: #F0E4D4;
  --bg-deep: #3B3F2C;
  --surface: #FCF8F2;
  --ink: #33281F;
  --ink-soft: #5E5045;
  --ink-faint: #6F6156;
  --on-deep: #F5EEE3;
  --on-deep-soft: rgba(245, 238, 227, .78);
  --accent: #B8613F;
  --accent-strong: #934A2E;
  --accent-soft: #F1DCC9;
  --accent-on-deep: #EBAE90;
  --line: rgba(51, 40, 31, .13);
  --line-strong: rgba(51, 40, 31, .26);
  --font-display: 'Young Serif', Georgia, 'Times New Roman', serif;
  --font-body: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --font-script: 'Sacramento', 'Brush Script MT', cursive;
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: none;
  --names-tracking: -0.02em;
  --heading-tracking: -0.015em;
  --amp-style: normal;
  --eyebrow-tracking: 0;
  --eyebrow-size: 2.05rem;
  --eyebrow-weight: 400;
  --radius: 18px; --radius-lg: 26px; --radius-media: 28px; --btn-radius: 999px;
  --sun-top: clamp(36px, 6vw, 88px);
  --shadow: 0 1px 2px rgba(59, 63, 44, .05), 0 22px 44px -28px rgba(59, 63, 44, .4);
  --align-hero: center;
  --sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 240' fill='none' stroke='%23000' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M34 236Q36 120 56 40M39.4 138.9Q33.2 127.8 32.1 114.9M39.7 136.1Q50.1 123.7 54.8 107.7M40.0 133.3Q32.6 119.9 31.3 104.5M40.3 130.5Q49.6 119.8 53.8 105.8M40.6 127.7Q31.0 111.8 29.2 93.4M41.0 125.0Q50.2 113.4 54.6 98.5M41.3 122.3Q32.7 108.0 31.3 91.7M41.6 119.5Q53.1 103.5 58.8 82.9M42.0 116.8Q28.3 95.2 26.0 70.7M42.3 114.1Q57.6 97.8 64.7 76.4M42.7 111.5Q36.5 95.2 36.3 76.4M43.0 108.8Q55.3 92.3 61.6 70.9M43.4 106.1Q36.0 89.0 35.5 69.2M43.8 103.5Q55.9 90.1 61.8 72.4M44.1 100.9Q32.8 81.1 31.4 58.8M44.5 98.3Q60.5 82.0 68.3 60.4M44.9 95.7Q34.5 75.7 33.5 53.0M45.3 93.1Q58.9 77.3 65.9 56.5M45.7 90.5Q31.8 66.9 30.1 40.5M46.1 88.0Q63.8 71.0 72.6 48.0M46.6 85.5Q39.8 68.3 39.9 48.6M47.0 82.9Q57.9 69.4 63.9 51.5M47.4 80.4Q39.2 61.1 39.2 39.3M47.9 77.9Q62.1 62.9 69.5 42.7M48.3 75.5Q38.2 56.1 37.5 34.6M48.8 73.0Q57.5 63.2 62.2 50.1M49.3 70.5Q42.1 53.8 42.3 35.0M49.7 68.1Q61.8 55.8 68.2 39.1M50.2 65.7Q45.4 55.1 45.4 43.3M50.7 63.3Q59.9 53.5 65.0 40.3M51.2 60.9Q47.9 52.2 48.3 42.4M51.7 58.5Q61.0 50.5 66.0 39.3M52.2 56.1Q49.9 49.3 50.3 41.6M52.7 53.8Q56.7 49.3 59.1 43.2M53.3 51.5Q51.3 45.2 51.7 38.1M53.8 49.1Q57.5 45.6 59.6 40.8M54.3 46.8Q52.5 42.6 52.6 38.0M54.9 44.5Q58.3 41.7 60.1 37.6M55.4 42.3Q54.0 38.2 54.3 33.8M56.0 40.0Q59.1 37.0 60.9 32.7'/%3E%3C/svg%3E");
  /* the rainbow's three arcs follow Look & colors: the accent, a sunny mix of it, and the deep color */
  --arc-1: var(--accent);
  --arc-2: color-mix(in srgb, var(--accent) 45%, #D9A441);
  --arc-3: color-mix(in srgb, var(--bg-deep) 70%, var(--bg));
}
[data-theme="boho"] h1, [data-theme="boho"] h2, [data-theme="boho"] h3, [data-theme="boho"] .display-1, [data-theme="boho"] .display-2 { font-weight: 400; }
[data-theme="boho"] .display-2, [data-theme="boho"] .section-head h2 { font-size: clamp(2.3rem, 4.6vw, 3.9rem); line-height: 1.04; }
[data-theme="boho"] .amp { font-family: var(--font-script); font-style: normal; font-weight: 400; color: var(--accent-strong); letter-spacing: 0; }
[data-theme="boho"] .section--deep .amp, [data-theme="boho"] .site-footer .amp { color: var(--accent-on-deep); }
/* Little titles above headings: in the loose script, sentence case */
[data-theme="boho"] .eyebrow { font-family: var(--font-script); text-transform: none; line-height: 1.05; margin-bottom: .1em; }
[data-theme="boho"] .hero__eyebrow, [data-theme="boho"] .countdown__label { font-family: var(--font-body); }
/* over photos the thin script is hard to read: calm small capitals there */
[data-theme="boho"] .page-hero--image .eyebrow, [data-theme="boho"] .band .eyebrow { font-family: var(--font-body); font-size: .74rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
/* Signatures, the hashtag and other italics: the script (Young Serif has no italic) */
[data-theme="boho"] .story-duo__side .sig, [data-theme="boho"] .footer-hashtag, [data-theme="boho"] .lead + .serif.italic { font-family: var(--font-script); font-style: normal; font-weight: 400; font-size: 2rem; letter-spacing: 0; line-height: 1.2; }
[data-theme="boho"] .serif.italic, [data-theme="boho"] .place-card__tip, [data-theme="boho"] .message-card blockquote, [data-theme="boho"] .newport-map .map-labels .map-script, [data-theme="boho"] .quote-block blockquote { font-family: var(--font-body); font-style: italic; letter-spacing: 0; }
[data-theme="boho"] .quote-block blockquote { font-family: var(--font-display); font-style: normal; }
/* Ornament: a small boho rainbow (three nested arcs) */
[data-theme="boho"] .ornament { gap: 0; }
[data-theme="boho"] .ornament svg, [data-theme="boho"] .ornament::after { display: none; }
[data-theme="boho"] .ornament::before { width: 46px; height: 23px; opacity: 1; background: radial-gradient(circle at 50% 100%, transparent 0 7px, var(--arc-3) 7.5px 10.5px, transparent 11px 13px, var(--arc-2) 13.5px 16.5px, transparent 17px 19px, var(--arc-1) 19.5px 22.5px, transparent 23px); }
[data-theme="boho"] .section-head--left .ornament::before { display: block; }
[data-theme="boho"] .section--deep, [data-theme="boho"] .band, [data-theme="boho"] .page-hero--image, [data-theme="boho"] .site-footer { --arc-1: var(--accent-on-deep); --arc-2: color-mix(in srgb, var(--accent-on-deep) 45%, #F0CB7E); --arc-3: var(--on-deep-soft); }
/* Deep bands and the footer: softly rounded tops, like a rising sun */
[data-theme="boho"] .section--deep, [data-theme="boho"] .site-footer { position: relative; z-index: 1; margin-top: calc(-1 * var(--sun-top)); border-radius: var(--sun-top) var(--sun-top) 0 0; }
[data-theme="boho"] .section--deep + .site-footer, [data-theme="boho"] .section--deep + .section--deep { margin-top: 0; border-radius: 0; }
[data-theme="boho"] .site-footer::before { content: ''; position: absolute; right: clamp(16px, 6vw, 96px); top: clamp(28px, 4vw, 56px); width: clamp(54px, 7vw, 92px); aspect-ratio: 100 / 240; background: var(--accent-on-deep); opacity: .55; -webkit-mask: var(--sprig) no-repeat center / contain; mask: var(--sprig) no-repeat center / contain; pointer-events: none; }
/* Buttons and links: soft pills, calm capitals */
[data-theme="boho"] .btn { letter-spacing: .14em; font-weight: 600; font-size: .78rem; }
[data-theme="boho"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="boho"] .nav__link { letter-spacing: .14em; font-weight: 500; }
[data-theme="boho"] .brand__mark { letter-spacing: -0.02em; }
[data-theme="boho"] .brand__mark .amp { font-size: 1.15em; }
[data-theme="boho"] .tab { border-radius: 999px; }
[data-theme="boho"] .tab[aria-selected="true"] { background: var(--accent-strong); border-color: var(--accent-strong); }
/* Photos: pills with a sun disc rising behind them */
[data-theme="boho"] .split .frame .media, [data-theme="boho"] .timeline__media .media { border-radius: 999px; }
[data-theme="boho"] .frame::before { display: none; }
[data-theme="boho"] .split .frame::before { display: block; inset: -26px auto auto -26px; width: 58%; height: auto; aspect-ratio: 1; border: 0; border-radius: 50%; background: var(--accent-soft); z-index: -1; }
[data-theme="boho"] .split .frame--left::before { inset: auto -26px -26px auto; }
[data-theme="boho"] .section--alt .split .frame::before { background: color-mix(in srgb, var(--accent) 22%, var(--bg-alt)); }
@media (max-width: 640px) { [data-theme="boho"] .split .frame::before { inset: -14px auto auto -14px; } [data-theme="boho"] .split .frame--left::before { inset: auto -14px -14px auto; } }
[data-theme="boho"] .mosaic .media { border-radius: var(--radius-media); }
/* Cards: soft corners, no hard edge */
[data-theme="boho"] .card, [data-theme="boho"] .event-card, [data-theme="boho"] .hotel-card, [data-theme="boho"] .fund, [data-theme="boho"] .person, [data-theme="boho"] .story-duo__side { border-color: var(--line); }
[data-theme="boho"] .event-card__time { border-radius: 999px; }
[data-theme="boho"] .person__mono { background: var(--accent-soft); color: var(--accent-strong); }
[data-theme="boho"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); width: 16px; height: 16px; background: var(--accent-soft); border: 3px solid var(--accent); }
[data-theme="boho"] .swatch__chip { border-radius: 50%; }
[data-theme="boho"] .footer-mono .amp { font-size: 1.1em; }
/* Hero: names in the soft serif with a script "&", the couple in a tall pill with the sun behind and a pampas wisp */
[data-theme="boho"] .hero__eyebrow { letter-spacing: .24em; font-size: .74rem; font-weight: 600; color: var(--accent-strong); }
[data-theme="boho"] .hero__names { font-size: clamp(3.6rem, 7.8vw, 7.4rem); line-height: 1; }
[data-theme="boho"] .hero__names .amp { font-size: .78em; line-height: .9; margin: .02em 0 .06em; }
[data-theme="boho"] .hero__date { font-family: var(--font-display); }
[data-theme="boho"] .hero__media { z-index: 1; }
[data-theme="boho"] .hero::before { content: ''; position: absolute; z-index: 0; border-radius: 50%; background: var(--accent-soft); pointer-events: none; }
[data-theme="boho"] .hero::after { content: ''; position: absolute; z-index: 2; aspect-ratio: 100 / 240; background: var(--accent); opacity: .8; -webkit-mask: var(--sprig) no-repeat center / contain; mask: var(--sprig) no-repeat center / contain; pointer-events: none; }
@media (min-width: 900px) {
  [data-theme="boho"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="boho"] .hero__media { margin: clamp(36px, 4.4vw, 64px) clamp(48px, 6vw, 96px) clamp(36px, 4.4vw, 64px) clamp(8px, 1.4vw, 24px); border-radius: 999px; }
  [data-theme="boho"] .hero::before { width: clamp(280px, 30vw, 470px); aspect-ratio: 1; right: clamp(8px, 2vw, 32px); top: clamp(10px, 2.4vw, 40px); }
  [data-theme="boho"] .hero::after { width: clamp(78px, 7.4vw, 112px); right: calc(47.5% - clamp(8px, 1.4vw, 24px) - 46px); bottom: clamp(30px, 3.6vw, 56px); }
}
@media (max-width: 899px) {
  [data-theme="boho"] .hero__media { margin: 22px 22px 0; height: min(60svh, 520px); border-radius: 999px; }
  [data-theme="boho"] .hero::before { width: 64vw; aspect-ratio: 1; right: -8vw; top: -4vw; }
  [data-theme="boho"] .hero::after { width: 64px; left: 8px; top: calc(min(60svh, 520px) - 120px); }
}
/* Page tops: a little rainbow above centered titles */
[data-theme="boho"] .page-hero h1 { letter-spacing: -0.02em; }

/* ========================================================= MEDITERRANEAN
   An Amalfi summer, for vineyards, villas and long lunches: a classical Roman serif (Marcellus) for names and
   headings, the names in spaced capitals like a stone inscription, an Italian chancery script (Italianno) for the
   "&" and signatures, a clean sans for reading (Mulish). Signatures: hand-painted majolica tiles (a tiled frame
   around photos, tile borders on the lemon-cream bands and the footer), a lemon on a sprig as the ornament.
   Limewashed page, lemon-cream bands, majolica-cobalt footer, cobalt accent, lemon highlights on the dark bands.
   The tiles and the lemon are masks in the accent color, so they follow Look & colors. */
[data-theme="mediterranean"] {
  --bg: #FAF5EA;
  --bg-alt: #F5ECD4;
  --bg-deep: #1F3B63;
  --surface: #FDFAF3;
  --ink: #1E2A3D;
  --ink-soft: #4A5468;
  --ink-faint: #5E6779;
  --on-deep: #F6F1E4;
  --on-deep-soft: rgba(246, 241, 228, .78);
  --accent: #2D5DA1;
  --accent-strong: #234B85;
  --accent-soft: #F5E7B2;
  --accent-on-deep: #F0D57A;
  --line: rgba(30, 42, 61, .13);
  --line-strong: rgba(30, 42, 61, .27);
  --font-display: 'Marcellus', 'Trajan Pro', Georgia, 'Times New Roman', serif;
  --font-body: 'Mulish', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --font-script: 'Italianno', 'Snell Roundhand', cursive;
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: uppercase;
  --names-tracking: .07em;
  --heading-tracking: .01em;
  --amp-style: normal;
  --eyebrow-tracking: .26em;
  --eyebrow-weight: 700;
  --radius: 4px; --radius-lg: 6px; --radius-media: 2px; --btn-radius: 3px;
  --shadow: 0 1px 2px rgba(31, 59, 99, .05), 0 20px 42px -26px rgba(31, 59, 99, .36);
  --align-hero: center;
  --tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23000'%3E%3Crect x='.6' y='.6' width='38.8' height='38.8' stroke-width='1.2'/%3E%3Cpath d='M20 3.5 36.5 20 20 36.5 3.5 20z' stroke-width='.9'/%3E%3C/g%3E%3Cpath d='M20 6.5c4.6 4 4.6 8.6 0 10.2-4.6-1.6-4.6-6.2 0-10.2zM33.5 20c-4 4.6-8.6 4.6-10.2 0 1.6-4.6 6.2-4.6 10.2 0zM20 33.5c-4.6-4-4.6-8.6 0-10.2 4.6 1.6 4.6 6.2 0 10.2zM6.5 20c4-4.6 8.6-4.6 10.2 0-1.6 4.6-6.2 4.6-10.2 0z'/%3E%3Ccircle cx='20' cy='20' r='2'/%3E%3Ccircle cx='11' cy='11' r='1.3'/%3E%3Ccircle cx='29' cy='11' r='1.3'/%3E%3Ccircle cx='29' cy='29' r='1.3'/%3E%3Ccircle cx='11' cy='29' r='1.3'/%3E%3Cpath d='M0 0h6.5a6.5 6.5 0 0 1-6.5 6.5zM40 0v6.5a6.5 6.5 0 0 1-6.5-6.5zM40 40h-6.5a6.5 6.5 0 0 1 6.5-6.5zM0 40v-6.5a6.5 6.5 0 0 1 6.5 6.5z'/%3E%3C/svg%3E");
  --lemon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 40'%3E%3Cpath d='M6 8c8 1 14 4 19 9' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M12 9c-2-6 3-9 9-8-1 5-4 8-9 8z'/%3E%3Cpath d='M17 12c2-6 8-7 12-4-3 4-7 5-12 4z'/%3E%3Cpath d='M26 18c4-6 14-8 22-5 6 2 10 7 11 12l3 2-4 1c-3 5-10 8-18 6-9-2-16-8-14-16z'/%3E%3C/svg%3E");
}
[data-theme="mediterranean"] h1, [data-theme="mediterranean"] h2, [data-theme="mediterranean"] h3, [data-theme="mediterranean"] .display-1, [data-theme="mediterranean"] .display-2 { font-weight: 400; }
[data-theme="mediterranean"] .display-2, [data-theme="mediterranean"] .section-head h2 { font-size: clamp(2.3rem, 4.6vw, 3.8rem); line-height: 1.06; }
[data-theme="mediterranean"] .amp { font-family: var(--font-script); font-style: normal; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--accent); }
[data-theme="mediterranean"] .section--deep .amp, [data-theme="mediterranean"] .site-footer .amp { color: var(--accent-on-deep); }
/* Signatures and the hashtag in the script; Marcellus has no italic, so other italics use the reading face */
[data-theme="mediterranean"] .story-duo__side .sig, [data-theme="mediterranean"] .footer-hashtag, [data-theme="mediterranean"] .lead + .serif.italic { font-family: var(--font-script); font-style: normal; font-weight: 400; font-size: 2.3rem !important; letter-spacing: 0; line-height: 1.1; }
[data-theme="mediterranean"] .serif.italic, [data-theme="mediterranean"] .place-card__tip, [data-theme="mediterranean"] .message-card blockquote, [data-theme="mediterranean"] .newport-map .map-labels .map-script { font-family: var(--font-body); font-style: italic; letter-spacing: 0; }
[data-theme="mediterranean"] .quote-block blockquote { font-style: normal; }
/* Ornament: a lemon on a sprig between two fine lines (one mask, in the ornament's color) */
[data-theme="mediterranean"] .ornament { width: 170px; height: 30px; gap: 0; margin-inline: auto; background: currentColor; -webkit-mask: var(--lemon) no-repeat center / 48px 30px, linear-gradient(#000, #000) no-repeat left center / 50px 1px, linear-gradient(#000, #000) no-repeat right center / 50px 1px; mask: var(--lemon) no-repeat center / 48px 30px, linear-gradient(#000, #000) no-repeat left center / 50px 1px, linear-gradient(#000, #000) no-repeat right center / 50px 1px; }
[data-theme="mediterranean"] .ornament > *, [data-theme="mediterranean"] .ornament::before, [data-theme="mediterranean"] .ornament::after { display: none; }
[data-theme="mediterranean"] .section-head--left .ornament, [data-theme="mediterranean"] .page-hero:not(.page-hero--image) .section-head--left .ornament { margin-left: 0; }
[data-theme="mediterranean"] .section--deep .ornament, [data-theme="mediterranean"] .band .ornament, [data-theme="mediterranean"] .page-hero--image .ornament { color: var(--accent-on-deep); }
/* Majolica: a row of painted tiles along the top and bottom of the lemon-cream bands, and along the top of the footer */
[data-theme="mediterranean"] .section--alt { position: relative; }
[data-theme="mediterranean"] .section--alt::before, [data-theme="mediterranean"] .section--alt::after, [data-theme="mediterranean"] .site-footer::before { content: ''; position: absolute; left: 0; right: 0; height: 24px; background: var(--accent); -webkit-mask: var(--tile) round 0 0 / 24px 24px; mask: var(--tile) round 0 0 / 24px 24px; pointer-events: none; }
[data-theme="mediterranean"] .section--alt::before { top: 0; }
[data-theme="mediterranean"] .section--alt::after { bottom: 0; }
[data-theme="mediterranean"] .site-footer::before { top: 0; background: var(--accent-on-deep); opacity: .85; }
[data-theme="mediterranean"] .site-footer { padding-top: calc(clamp(72px, 9vw, 120px) + 24px); }
/* Buttons: cobalt, calm capitals; lemon on the dark bands */
[data-theme="mediterranean"] .btn { letter-spacing: .2em; font-weight: 700; font-size: .74rem; }
[data-theme="mediterranean"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="mediterranean"] .nav__link { letter-spacing: .18em; font-weight: 600; }
[data-theme="mediterranean"] .brand__mark { text-transform: uppercase; letter-spacing: .08em; }
[data-theme="mediterranean"] .brand__mark .amp { font-size: 1.35em; line-height: .5; vertical-align: -.06em; margin: 0 .3em 0 -.08em; }   /* Italianno's & sits far left and overhangs right */
[data-theme="mediterranean"] .footer-mono { text-transform: uppercase; letter-spacing: .08em; }
[data-theme="mediterranean"] .footer-mono .amp { font-size: 1.3em; margin: 0 .26em 0 -.08em; }
[data-theme="mediterranean"] .tab { border-radius: 3px; }
[data-theme="mediterranean"] .tab[aria-selected="true"] { background: var(--accent-strong); border-color: var(--accent-strong); }
/* Photos beside text: a tiled frame (painted tiles around the photo, a band of grout between) */
[data-theme="mediterranean"] .frame::before { display: none; }
[data-theme="mediterranean"] .split .frame::before { display: block; inset: -26px; border: 0; border-radius: 0; background: var(--accent); -webkit-mask: var(--tile) round 0 0 / 20px 20px; mask: var(--tile) round 0 0 / 20px 20px; z-index: -1; }
[data-theme="mediterranean"] .split .frame .media { box-shadow: 0 0 0 6px var(--bg); }
[data-theme="mediterranean"] .section--alt .split .frame .media { box-shadow: 0 0 0 6px var(--bg-alt); }
@media (max-width: 640px) { [data-theme="mediterranean"] .split .frame::before { inset: -20px; -webkit-mask-size: 14px 14px; mask-size: 14px 14px; } }
/* Cards: limewashed, a fine edge, a lemon-cream top band */
[data-theme="mediterranean"] .card, [data-theme="mediterranean"] .event-card, [data-theme="mediterranean"] .hotel-card, [data-theme="mediterranean"] .fund, [data-theme="mediterranean"] .person, [data-theme="mediterranean"] .story-duo__side { border-color: var(--line); }
[data-theme="mediterranean"] .person__mono { background: var(--accent-soft); color: var(--accent-strong); text-transform: uppercase; letter-spacing: .06em; }
[data-theme="mediterranean"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); width: 14px; height: 14px; background: var(--accent-soft); border: 3px solid var(--accent); }
[data-theme="mediterranean"] .swatch__chip { border-radius: 50%; }
/* Hero: names in spaced Roman capitals with a script "&"; the couple framed in painted tiles */
[data-theme="mediterranean"] .hero__names { font-size: clamp(3.2rem, 6.8vw, 6.4rem); line-height: 1.04; }
[data-theme="mediterranean"] .hero__names .amp { font-size: 1.15em; line-height: .7; margin: .02em 0 .1em; }
[data-theme="mediterranean"] .hero__date { font-family: var(--font-display); letter-spacing: .04em; }
[data-theme="mediterranean"] .hero__media { z-index: 1; }
@media (min-width: 900px) {
  [data-theme="mediterranean"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="mediterranean"] .hero__content { grid-column: 1; grid-row: 1; }
  [data-theme="mediterranean"] .hero__media { grid-column: 2; grid-row: 1; margin: clamp(48px, 5.4vw, 80px) clamp(48px, 5.4vw, 80px) clamp(48px, 5.4vw, 80px) 0; box-shadow: 0 0 0 8px var(--bg); }
  [data-theme="mediterranean"] .hero::before { content: ''; grid-column: 2; grid-row: 1; z-index: 0; margin: calc(clamp(48px, 5.4vw, 80px) - 38px) calc(clamp(48px, 5.4vw, 80px) - 38px) calc(clamp(48px, 5.4vw, 80px) - 38px) -38px; background: var(--accent); -webkit-mask: var(--tile) round 0 0 / 30px 30px; mask: var(--tile) round 0 0 / 30px 30px; }
}
@media (max-width: 899px) {
  [data-theme="mediterranean"] .hero__media { grid-row: 1; grid-column: 1; margin: 30px 30px 0; height: min(58svh, 500px); box-shadow: 0 0 0 6px var(--bg); }
  [data-theme="mediterranean"] .hero::before { content: ''; grid-row: 1; grid-column: 1; z-index: 0; margin: 4px 4px -26px; background: var(--accent); -webkit-mask: var(--tile) round 0 0 / 20px 20px; mask: var(--tile) round 0 0 / 20px 20px; }
  [data-theme="mediterranean"] .hero__content { grid-row: 2; grid-column: 1; }
}
/* Page tops: centered Roman titles */
[data-theme="mediterranean"] .page-hero h1 { letter-spacing: .02em; }

/* =============================================================== VINTAGE
   Vintage romance, like an heirloom invitation: names in a flourished Victorian script (Monsieur La Doulaise),
   headings in an antique letterpress face (IM Fell English), a bookish serif for reading with a real italic for the
   little titles (Crimson Pro). Signatures: a wax-seal monogram (header and footer), lace edges (scallops with
   eyelets) on the blush bands, the claret bands and the footer, oval cameo photos in a fine double rule with a
   sprig of pressed flowers, softly sepia photographs. Parchment page, blush bands, claret footer, dusty-rose accent.
   The seal, lace and flowers use the accent and band colors, so they follow Look & colors. */
[data-theme="vintage"] {
  --bg: #F7F0E5;
  --bg-alt: #F1E3DE;
  --bg-deep: #4A2630;
  --surface: #FCF7EE;
  --ink: #3A2228;
  --ink-soft: #644A4F;
  --ink-faint: #735C61;
  --on-deep: #F6ECE6;
  --on-deep-soft: rgba(246, 236, 230, .78);
  --accent: #A35468;
  --accent-strong: #874257;
  --accent-soft: #EFD8D6;
  --accent-on-deep: #EBB9C5;
  --line: rgba(58, 34, 40, .14);
  --line-strong: rgba(58, 34, 40, .28);
  --font-display: 'IM Fell English', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --font-body: 'Crimson Pro', Georgia, 'Times New Roman', serif;
  --font-names: 'Monsieur La Doulaise', 'Snell Roundhand', cursive;
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: none;
  --names-tracking: 0;
  --heading-tracking: 0;
  --amp-style: normal;
  --eyebrow-tracking: .01em;
  --eyebrow-size: 1.18rem;
  --eyebrow-weight: 400;
  --radius: 2px; --radius-lg: 3px; --radius-media: 2px; --btn-radius: 2px;
  --shadow: 0 1px 2px rgba(74, 38, 48, .05), 0 20px 40px -26px rgba(74, 38, 48, .38);
  --align-hero: center;
  --seal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M97.7 50.0C97.5 53.4 95.7 56.9 94.7 60.2C93.6 63.5 92.9 66.8 91.5 70.0C90.2 73.2 88.8 76.6 86.7 79.2C84.5 81.9 81.3 83.7 78.6 85.8C75.8 88.0 73.5 91.3 70.3 92.1C67.1 93.0 62.7 90.1 59.3 90.9C56.0 91.7 53.3 96.0 50.0 96.8C46.7 97.6 42.8 96.7 39.6 95.7C36.3 94.7 33.5 92.4 30.3 90.8C27.2 89.3 23.2 88.9 20.9 86.5C18.7 84.1 18.6 79.3 16.8 76.4C15.0 73.6 11.5 72.0 10.1 69.2C8.6 66.4 9.2 62.8 7.9 59.6C6.7 56.4 3.1 53.3 2.8 50.0C2.5 46.7 4.6 43.0 6.2 40.0C7.8 37.0 10.6 34.6 12.3 31.8C14.0 29.0 14.6 25.8 16.4 23.2C18.2 20.6 20.8 18.7 23.0 16.1C25.2 13.6 26.9 9.7 29.7 7.9C32.5 6.1 36.4 5.7 39.8 5.2C43.2 4.7 46.6 4.9 50.0 4.8C53.4 4.8 57.2 3.9 60.3 5.1C63.3 6.2 65.5 10.1 68.5 11.7C71.4 13.3 75.7 12.7 78.1 14.7C80.6 16.7 81.6 20.7 83.2 23.5C84.8 26.4 85.6 29.2 87.7 31.9C89.7 34.5 93.7 36.6 95.3 39.7C97.0 42.7 97.8 46.6 97.7 50.0Z'/%3E%3C/svg%3E");
  --seal-ring: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='33' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Ccircle cx='50' cy='50' r='30' fill='none' stroke='%23000' stroke-width='.6'/%3E%3C/svg%3E");
  --pressed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 48'%3E%3Cpath d='M6 40C30 34 52 28 112 10' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'/%3E%3Cg fill='%23000' fill-opacity='.9'%3E%3Cellipse cx='56.0' cy='18.8' rx='3.2' ry='2.2' transform='rotate%280 56.0 18.8%29'/%3E%3Cellipse cx='60.9' cy='22.4' rx='3.2' ry='2.2' transform='rotate%2872 60.9 22.4%29'/%3E%3Cellipse cx='59.1' cy='28.2' rx='3.2' ry='2.2' transform='rotate%28144 59.1 28.2%29'/%3E%3Cellipse cx='52.9' cy='28.2' rx='3.2' ry='2.2' transform='rotate%28216 52.9 28.2%29'/%3E%3Cellipse cx='51.1' cy='22.4' rx='3.2' ry='2.2' transform='rotate%28288 51.1 22.4%29'/%3E%3Ccircle cx='56' cy='24' r='1.7' fill='%23000'/%3E%3Cellipse cx='84.0' cy='11.6' rx='2.7' ry='1.8' transform='rotate%280 84.0 11.6%29'/%3E%3Cellipse cx='88.2' cy='14.6' rx='2.7' ry='1.8' transform='rotate%2872 88.2 14.6%29'/%3E%3Cellipse cx='86.6' cy='19.6' rx='2.7' ry='1.8' transform='rotate%28144 86.6 19.6%29'/%3E%3Cellipse cx='81.4' cy='19.6' rx='2.7' ry='1.8' transform='rotate%28216 81.4 19.6%29'/%3E%3Cellipse cx='79.8' cy='14.6' rx='2.7' ry='1.8' transform='rotate%28288 79.8 14.6%29'/%3E%3Ccircle cx='84' cy='16' r='1.4' fill='%23000'/%3E%3Cellipse cx='108.0' cy='4.4' rx='2.2' ry='1.5' transform='rotate%280 108.0 4.4%29'/%3E%3Cellipse cx='111.4' cy='6.9' rx='2.2' ry='1.5' transform='rotate%2872 111.4 6.9%29'/%3E%3Cellipse cx='110.1' cy='10.9' rx='2.2' ry='1.5' transform='rotate%28144 110.1 10.9%29'/%3E%3Cellipse cx='105.9' cy='10.9' rx='2.2' ry='1.5' transform='rotate%28216 105.9 10.9%29'/%3E%3Cellipse cx='104.6' cy='6.9' rx='2.2' ry='1.5' transform='rotate%28288 104.6 6.9%29'/%3E%3Ccircle cx='108' cy='8' r='1.2' fill='%23000'/%3E%3C/g%3E%3Cg%3E%3Cpath d='M20.0 37.0Q15.1 31.4 7.8 32.6Q12.6 38.2 20.0 37.0z'/%3E%3Cpath d='M30.0 34.0Q35.9 30.5 36.0 23.6Q30.1 27.1 30.0 34.0z'/%3E%3Cpath d='M44.0 30.0Q41.8 24.1 35.6 22.9Q37.8 28.8 44.0 30.0z'/%3E%3Cpath d='M70.0 21.0Q75.2 18.5 75.7 12.8Q70.6 15.3 70.0 21.0z'/%3E%3Cpath d='M96.0 13.0Q95.0 7.9 90.2 6.1Q91.2 11.2 96.0 13.0z'/%3E%3C/g%3E%3C/svg%3E");
  --pressed-level: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 40'%3E%3Cpath d='M60 20C44 22 26 22 6 18M60 20C76 22 94 22 114 18' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='round'/%3E%3Cellipse cx='60.0' cy='12.8' rx='3.8' ry='2.6' transform='rotate%280 60.0 12.8%29'/%3E%3Cellipse cx='65.9' cy='17.1' rx='3.8' ry='2.6' transform='rotate%2872 65.9 17.1%29'/%3E%3Cellipse cx='63.6' cy='24.0' rx='3.8' ry='2.6' transform='rotate%28144 63.6 24.0%29'/%3E%3Cellipse cx='56.4' cy='24.0' rx='3.8' ry='2.6' transform='rotate%28216 56.4 24.0%29'/%3E%3Cellipse cx='54.1' cy='17.1' rx='3.8' ry='2.6' transform='rotate%28288 54.1 17.1%29'/%3E%3Ccircle cx='60' cy='19' r='1.9'/%3E%3Cellipse cx='38.0' cy='17.2' rx='2.4' ry='1.6' transform='rotate%280 38.0 17.2%29'/%3E%3Cellipse cx='41.6' cy='19.8' rx='2.4' ry='1.6' transform='rotate%2872 41.6 19.8%29'/%3E%3Cellipse cx='40.2' cy='24.1' rx='2.4' ry='1.6' transform='rotate%28144 40.2 24.1%29'/%3E%3Cellipse cx='35.8' cy='24.1' rx='2.4' ry='1.6' transform='rotate%28216 35.8 24.1%29'/%3E%3Cellipse cx='34.4' cy='19.8' rx='2.4' ry='1.6' transform='rotate%28288 34.4 19.8%29'/%3E%3Ccircle cx='38' cy='21' r='1.1'/%3E%3Cellipse cx='82.0' cy='17.2' rx='2.4' ry='1.6' transform='rotate%280 82.0 17.2%29'/%3E%3Cellipse cx='85.6' cy='19.8' rx='2.4' ry='1.6' transform='rotate%2872 85.6 19.8%29'/%3E%3Cellipse cx='84.2' cy='24.1' rx='2.4' ry='1.6' transform='rotate%28144 84.2 24.1%29'/%3E%3Cellipse cx='79.8' cy='24.1' rx='2.4' ry='1.6' transform='rotate%28216 79.8 24.1%29'/%3E%3Cellipse cx='78.4' cy='19.8' rx='2.4' ry='1.6' transform='rotate%28288 78.4 19.8%29'/%3E%3Ccircle cx='82' cy='21' r='1.1'/%3E%3Cpath d='M30.0 22.0Q25.0 19.0 20.0 22.0Q25.0 25.0 30.0 22.0z'/%3E%3Cpath d='M12.0 20.5Q8.0 15.5 1.7 16.7Q5.7 21.7 12.0 20.5z'/%3E%3Cpath d='M44.0 21.5Q38.8 21.4 36.2 26.0Q41.5 26.1 44.0 21.5z'/%3E%3Cpath d='M36.0 22.0Q33.9 17.2 28.6 16.8Q30.8 21.6 36.0 22.0z'/%3E%3Cpath d='M90.0 22.0Q95.0 25.0 100.0 22.0Q95.0 19.0 90.0 22.0z'/%3E%3Cpath d='M108.0 20.5Q114.3 21.7 118.3 16.7Q112.0 15.5 108.0 20.5z'/%3E%3Cpath d='M76.0 21.5Q78.5 26.1 83.8 26.0Q81.2 21.4 76.0 21.5z'/%3E%3Cpath d='M84.0 22.0Q89.2 21.6 91.4 16.8Q86.1 17.2 84.0 22.0z'/%3E%3C/svg%3E");
}
[data-theme="vintage"] body { font-size: 1.08rem; }
[data-theme="vintage"] h1, [data-theme="vintage"] h2, [data-theme="vintage"] h3, [data-theme="vintage"] .display-1, [data-theme="vintage"] .display-2 { font-weight: 400; }
[data-theme="vintage"] .display-2, [data-theme="vintage"] .section-head h2 { font-size: clamp(2.3rem, 4.6vw, 3.8rem); line-height: 1.08; }
[data-theme="vintage"] .amp { font-family: var(--font-names); font-style: normal; color: var(--accent-strong); letter-spacing: 0; }
[data-theme="vintage"] .section--deep .amp, [data-theme="vintage"] .site-footer .amp { color: var(--accent-on-deep); }
/* Little titles: the reading face's italic, sentence case */
[data-theme="vintage"] .eyebrow { font-style: italic; text-transform: none; }
[data-theme="vintage"] .hero__eyebrow, [data-theme="vintage"] .countdown__label { font-style: normal; }
[data-theme="vintage"] .page-hero--image .eyebrow, [data-theme="vintage"] .band .eyebrow { font-style: normal; text-transform: uppercase; font-size: .8rem; letter-spacing: .24em; font-weight: 600; }
/* Signatures and the hashtag in the script */
[data-theme="vintage"] .story-duo__side .sig, [data-theme="vintage"] .footer-hashtag, [data-theme="vintage"] .lead + .serif.italic { font-family: var(--font-names); font-style: normal; font-size: 2.1rem !important; letter-spacing: 0; line-height: 1.3; }
[data-theme="vintage"] .serif.italic, [data-theme="vintage"] .place-card__tip, [data-theme="vintage"] .message-card blockquote, [data-theme="vintage"] .newport-map .map-labels .map-script { font-family: var(--font-body); font-style: italic; }
[data-theme="vintage"] .quote-block blockquote { font-style: normal; }
/* Ornament: a sprig of pressed flowers */
[data-theme="vintage"] .ornament { width: 132px; height: 44px; gap: 0; margin-inline: auto; background: var(--accent); -webkit-mask: var(--pressed-level) no-repeat center / contain; mask: var(--pressed-level) no-repeat center / contain; }
[data-theme="vintage"] .ornament > *, [data-theme="vintage"] .ornament::before, [data-theme="vintage"] .ornament::after { display: none; }
[data-theme="vintage"] .section-head--left .ornament { margin-left: 0; }
[data-theme="vintage"] .section--deep .ornament, [data-theme="vintage"] .band .ornament, [data-theme="vintage"] .page-hero--image .ornament { background: var(--accent-on-deep); }
/* Lace: scallops with eyelets along the top and bottom of the blush bands, and the top of the claret bands and the footer */
[data-theme="vintage"] .section--alt, [data-theme="vintage"] .section--deep { position: relative; }
[data-theme="vintage"] .section--alt::before, [data-theme="vintage"] .section--alt::after, [data-theme="vintage"] .section--deep::before, [data-theme="vintage"] .site-footer::before { content: ''; position: absolute; z-index: 2; left: 0; right: 0; height: 12px; pointer-events: none; --lace: var(--bg-alt); }
[data-theme="vintage"] .section--alt::before, [data-theme="vintage"] .section--deep::before, [data-theme="vintage"] .site-footer::before { top: -11px; background: radial-gradient(circle at 11px 7px, var(--bg) 0 1.6px, transparent 2.1px) 0 0 / 22px 12px repeat-x, radial-gradient(circle at 11px 12px, var(--lace) 0 10.5px, transparent 11px) 0 0 / 22px 12px repeat-x; }
[data-theme="vintage"] .section--alt::after { bottom: -11px; background: radial-gradient(circle at 11px 5px, var(--bg) 0 1.6px, transparent 2.1px) 0 0 / 22px 12px repeat-x, radial-gradient(circle at 11px 0, var(--lace) 0 10.5px, transparent 11px) 0 0 / 22px 12px repeat-x; }
[data-theme="vintage"] .section--deep::before, [data-theme="vintage"] .site-footer::before { --lace: var(--bg-deep); }
[data-theme="vintage"] .section--alt + .section--deep::before, [data-theme="vintage"] .section--deep + .site-footer::before, [data-theme="vintage"] .section--alt + .site-footer::before { display: none; }
/* Wax-seal monogram: the initials pressed into a pool of wax (header small, footer large) */
[data-theme="vintage"] .brand__mark { position: relative; display: inline-flex; font-family: var(--font-display); align-items: center; justify-content: center; width: 56px; height: 56px; color: #FBF1EF; font-size: 1.02rem; white-space: nowrap; background: radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--accent-strong) 78%, #fff), var(--accent-strong) 52%, color-mix(in srgb, var(--accent-strong) 72%, #000)); -webkit-mask: var(--seal) center / contain no-repeat; mask: var(--seal) center / contain no-repeat; }
[data-theme="vintage"] .brand__mark::before, [data-theme="vintage"] .footer-mono::before { content: ''; position: absolute; inset: 0; background: rgba(255, 255, 255, .34); -webkit-mask: var(--seal-ring) center / contain no-repeat; mask: var(--seal-ring) center / contain no-repeat; pointer-events: none; }
[data-theme="vintage"] .brand__mark .amp, [data-theme="vintage"] .footer-mono .amp { font-family: var(--font-display); color: inherit; font-size: 1em; margin: 0 .02em; }
[data-theme="vintage"] .footer-mono { position: relative; display: inline-flex; font-family: var(--font-display); letter-spacing: .02em; align-items: center; justify-content: center; width: clamp(130px, 14vw, 164px); height: clamp(130px, 14vw, 164px); color: #FBF1EF; font-size: clamp(2rem, 3.4vw, 2.6rem); white-space: nowrap; background: radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--accent) 80%, #fff), var(--accent-strong) 52%, color-mix(in srgb, var(--accent-strong) 70%, #000)); -webkit-mask: var(--seal) center / contain no-repeat; mask: var(--seal) center / contain no-repeat; }
/* Buttons: printed capitals in the reading serif */
[data-theme="vintage"] .btn { font-size: .86rem; letter-spacing: .18em; font-weight: 600; }
[data-theme="vintage"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="vintage"] .nav__link { font-size: .86rem; letter-spacing: .16em; font-weight: 500; }
[data-theme="vintage"] .tab[aria-selected="true"] { background: var(--accent-strong); border-color: var(--accent-strong); }
/* Photos: softly sepia; the ones beside text are oval cameos in a fine double rule with pressed flowers */
[data-theme="vintage"] .media img, [data-theme="vintage"] .hero__media img { filter: sepia(.2) saturate(.86) contrast(.97); }
[data-theme="vintage"] .frame::before { display: none; }
[data-theme="vintage"] .split .frame .media, [data-theme="vintage"] .timeline__media .media { border-radius: 50%; box-shadow: 0 0 0 7px var(--bg), 0 0 0 8px color-mix(in srgb, var(--accent) 60%, transparent), 0 0 0 12px var(--bg), 0 0 0 13px color-mix(in srgb, var(--accent) 32%, transparent); }
[data-theme="vintage"] .section--alt .split .frame .media, [data-theme="vintage"] .section--alt .timeline__media .media { box-shadow: 0 0 0 7px var(--bg-alt), 0 0 0 8px color-mix(in srgb, var(--accent) 60%, transparent), 0 0 0 12px var(--bg-alt), 0 0 0 13px color-mix(in srgb, var(--accent) 32%, transparent); }
[data-theme="vintage"] .split .frame::before { display: block; inset: auto auto -16px -18px; width: min(52%, 220px); height: auto; aspect-ratio: 120 / 48; border: 0; border-radius: 0; z-index: 2; background: var(--accent); -webkit-mask: var(--pressed) no-repeat center / contain; mask: var(--pressed) no-repeat center / contain; }
[data-theme="vintage"] .split .frame--left::before { inset: auto -18px -16px auto; transform: scaleX(-1); }
/* Cards: a fine stitched line inside, like a lace-edged card */
[data-theme="vintage"] .card, [data-theme="vintage"] .event-card, [data-theme="vintage"] .hotel-card, [data-theme="vintage"] .fund, [data-theme="vintage"] .person, [data-theme="vintage"] .story-duo__side { border-color: var(--line-strong); outline: 1px dashed color-mix(in srgb, var(--accent) 38%, transparent); outline-offset: -7px; }
[data-theme="vintage"] .person__mono { font-family: var(--font-display); font-size: 1.7rem; background: var(--accent-soft); color: var(--accent-strong); }
[data-theme="vintage"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); background: var(--accent); border-color: var(--bg); }
[data-theme="vintage"] .swatch__chip { border-radius: 50%; }
/* Hero: the names in the flourished script; the couple in a large oval cameo with pressed flowers */
[data-theme="vintage"] .hero__names { font-size: clamp(4rem, 8.4vw, 8rem); line-height: 1.08; }
[data-theme="vintage"] .hero__names .amp { font-size: .7em; line-height: 1; margin: -.06em 0; }
[data-theme="vintage"] .hero__date { font-family: var(--font-display); }
[data-theme="vintage"] .hero__media { z-index: 1; border-radius: 50%; box-shadow: 0 0 0 10px var(--bg), 0 0 0 11px color-mix(in srgb, var(--accent) 60%, transparent), 0 0 0 16px var(--bg), 0 0 0 17px color-mix(in srgb, var(--accent) 32%, transparent); }
[data-theme="vintage"] .hero::after { content: ''; position: absolute; z-index: 2; aspect-ratio: 120 / 48; background: var(--accent); -webkit-mask: var(--pressed) no-repeat center / contain; mask: var(--pressed) no-repeat center / contain; pointer-events: none; }
@media (min-width: 900px) {
  [data-theme="vintage"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="vintage"] .hero__media { margin: clamp(44px, 5vw, 76px) clamp(48px, 5.4vw, 84px) clamp(44px, 5vw, 76px) clamp(4px, 1vw, 16px); }
  [data-theme="vintage"] .hero::after { width: clamp(170px, 16vw, 240px); right: calc(47.5% - clamp(4px, 1vw, 16px) - 150px); bottom: clamp(30px, 3.6vw, 60px); }
}
@media (max-width: 899px) {
  [data-theme="vintage"] .hero__media { margin: 34px 34px 6px; height: min(58svh, 500px); }
  [data-theme="vintage"] .hero::after { width: 150px; left: 14px; top: calc(min(58svh, 500px) - 30px); }
}

/* ============================================================== TROPICAL
   Beach and destination weddings: names in a retro beach-signage script (Yellowtail), headings in a high-contrast
   resort serif (DM Serif Display, with its real italic), an easy sans for reading (Plus Jakarta Sans).
   Signatures: photos as postage stamps (perforated edges) cancelled with a postmark (a sun setting over the sea),
   palm fronds behind the hero portrait and over the jungle-green bands, a little palm frond as the ornament.
   Sand page, mint bands, jungle-green footer, coral accent. The fronds, postmark and ornament are masks in the
   accent / band colors, so they follow Look & colors. */
[data-theme="tropical"] {
  --bg: #F8F1E5;
  --bg-alt: #E6F0E8;
  --bg-deep: #173A2C;
  --surface: #FEFBF6;
  --ink: #16271F;
  --ink-soft: #445449;
  --ink-faint: #56665B;
  --on-deep: #F4F1E8;
  --on-deep-soft: rgba(244, 241, 232, .78);
  --accent: #C9553A;
  --accent-strong: #A8432A;
  --accent-soft: #FADCD2;
  --accent-on-deep: #F6A68E;
  --line: rgba(22, 39, 31, .13);
  --line-strong: rgba(22, 39, 31, .27);
  --font-display: 'DM Serif Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Plus Jakarta Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-names: 'Yellowtail', 'Brush Script MT', cursive;
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: none;
  --names-tracking: 0;
  --heading-tracking: -0.01em;
  --amp-style: normal;
  --eyebrow-tracking: .22em;
  --eyebrow-weight: 700;
  --radius: 12px; --radius-lg: 18px; --radius-media: 4px; --btn-radius: 8px;
  --shadow: 0 1px 2px rgba(23, 58, 44, .05), 0 20px 42px -26px rgba(23, 58, 44, .36);
  --align-hero: left;
  --frond: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cpath d='M18 190Q70 90 186 20' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M31.4 166.4Q47.8 168.7 63.3 162.7Q46.8 160.4 31.4 166.4z'/%3E%3Cpath d='M31.4 166.4Q29.9 149.9 20.6 136.2Q22.0 152.8 31.4 166.4z'/%3E%3Cpath d='M39.0 154.7Q61.3 158.7 82.7 151.2Q60.4 147.3 39.0 154.7z'/%3E%3Cpath d='M39.0 154.7Q37.8 132.1 25.7 112.9Q26.9 135.5 39.0 154.7z'/%3E%3Cpath d='M47.0 143.2Q74.6 149.2 101.6 140.9Q74.0 134.9 47.0 143.2z'/%3E%3Cpath d='M47.0 143.2Q46.6 115.0 32.5 90.5Q32.9 118.8 47.0 143.2z'/%3E%3Cpath d='M55.6 131.9Q87.6 140.1 119.5 131.6Q87.5 123.4 55.6 131.9z'/%3E%3Cpath d='M55.6 131.9Q56.3 98.9 40.8 69.8Q40.1 102.8 55.6 131.9z'/%3E%3Cpath d='M64.6 120.9Q99.9 131.3 135.8 123.1Q100.5 112.7 64.6 120.9z'/%3E%3Cpath d='M64.6 120.9Q66.8 84.1 50.7 51.0Q48.5 87.7 64.6 120.9z'/%3E%3Cpath d='M74.1 110.0Q111.6 122.5 150.4 115.1Q112.9 102.6 74.1 110.0z'/%3E%3Cpath d='M74.1 110.0Q77.8 70.7 61.9 34.6Q58.1 73.9 74.1 110.0z'/%3E%3Cpath d='M84.1 99.4Q122.5 113.7 162.9 107.5Q124.6 93.2 84.1 99.4z'/%3E%3Cpath d='M84.1 99.4Q89.4 58.8 74.1 20.8Q68.9 61.4 84.1 99.4z'/%3E%3Cpath d='M94.6 89.1Q132.6 104.7 173.4 99.8Q135.4 84.2 94.6 89.1z'/%3E%3Cpath d='M94.6 89.1Q101.2 48.5 87.2 9.9Q80.6 50.4 94.6 89.1z'/%3E%3Cpath d='M105.5 78.9Q141.9 95.4 181.7 91.9Q145.3 75.5 105.5 78.9z'/%3E%3Cpath d='M105.5 78.9Q113.3 39.8 101.0 1.8Q93.2 40.9 105.5 78.9z'/%3E%3Cpath d='M117.0 69.0Q150.6 85.5 188.1 83.5Q154.4 67.0 117.0 69.0z'/%3E%3Cpath d='M117.0 69.0Q125.5 32.5 115.0 -3.6Q106.5 33.0 117.0 69.0z'/%3E%3Cpath d='M128.9 59.3Q158.9 75.2 192.8 74.4Q162.8 58.5 128.9 59.3z'/%3E%3Cpath d='M128.9 59.3Q137.6 26.5 129.2 -6.4Q120.4 26.4 128.9 59.3z'/%3E%3Cpath d='M141.3 49.9Q166.8 64.4 196.2 64.6Q170.7 50.1 141.3 49.9z'/%3E%3Cpath d='M141.3 49.9Q149.7 21.7 143.3 -7.0Q134.9 21.2 141.3 49.9z'/%3E%3Cpath d='M154.2 40.6Q174.6 53.1 198.6 54.0Q178.1 41.5 154.2 40.6z'/%3E%3Cpath d='M154.2 40.6Q161.7 17.8 157.1 -5.7Q149.6 17.1 154.2 40.6z'/%3E%3Cpath d='M167.5 31.6Q182.6 41.4 200.6 42.5Q185.5 32.8 167.5 31.6z'/%3E%3Cpath d='M167.5 31.6Q173.7 14.7 170.7 -3.0Q164.6 13.9 167.5 31.6z'/%3E%3Cpath d='M181.4 22.8Q191.0 29.4 202.5 30.5Q193.0 23.9 181.4 22.8z'/%3E%3Cpath d='M181.4 22.8Q185.6 12.0 184.1 0.5Q179.8 11.3 181.4 22.8z'/%3E%3C/svg%3E");
  --postmark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 100'%3E%3Ccircle cx='50' cy='50' r='44' fill='none' stroke='%23000' stroke-width='2.6'/%3E%3Ccircle cx='50' cy='50' r='31' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Ccircle cx='88.0' cy='50.0' r='1.6'/%3E%3Ccircle cx='86.7' cy='59.8' r='1.6'/%3E%3Ccircle cx='82.9' cy='69.0' r='1.6'/%3E%3Ccircle cx='76.9' cy='76.9' r='1.6'/%3E%3Ccircle cx='69.0' cy='82.9' r='1.6'/%3E%3Ccircle cx='59.8' cy='86.7' r='1.6'/%3E%3Ccircle cx='50.0' cy='88.0' r='1.6'/%3E%3Ccircle cx='40.2' cy='86.7' r='1.6'/%3E%3Ccircle cx='31.0' cy='82.9' r='1.6'/%3E%3Ccircle cx='23.1' cy='76.9' r='1.6'/%3E%3Ccircle cx='17.1' cy='69.0' r='1.6'/%3E%3Ccircle cx='13.3' cy='59.8' r='1.6'/%3E%3Ccircle cx='12.0' cy='50.0' r='1.6'/%3E%3Ccircle cx='13.3' cy='40.2' r='1.6'/%3E%3Ccircle cx='17.1' cy='31.0' r='1.6'/%3E%3Ccircle cx='23.1' cy='23.1' r='1.6'/%3E%3Ccircle cx='31.0' cy='17.1' r='1.6'/%3E%3Ccircle cx='40.2' cy='13.3' r='1.6'/%3E%3Ccircle cx='50.0' cy='12.0' r='1.6'/%3E%3Ccircle cx='59.8' cy='13.3' r='1.6'/%3E%3Ccircle cx='69.0' cy='17.1' r='1.6'/%3E%3Ccircle cx='76.9' cy='23.1' r='1.6'/%3E%3Ccircle cx='82.9' cy='31.0' r='1.6'/%3E%3Ccircle cx='86.7' cy='40.2' r='1.6'/%3E%3Cpath d='M31 50h38M50 34v32' stroke='%23000' stroke-width='0' /%3E%3Cpath d='M36 53c5-10 9-14 14-14s9 4 14 14' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3Cpath d='M33 60h34' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3Cpath d='M96 30c12-6 24-6 36 0s24 6 36 0 24-6 36 0' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3Cpath d='M96 42c12-6 24-6 36 0s24 6 36 0 24-6 36 0' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3Cpath d='M96 54c12-6 24-6 36 0s24 6 36 0 24-6 36 0' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3Cpath d='M96 66c12-6 24-6 36 0s24 6 36 0 24-6 36 0' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E");
  --palm-orn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 38'%3E%3Cpath d='M14 20C40 17 80 17 106 20' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M54.0 19.0Q49.2 12.7 41.7 10.4Q46.5 16.7 54.0 19.0z'/%3E%3Cpath d='M54.0 19.5Q46.5 21.8 41.7 28.1Q49.2 25.8 54.0 19.5z'/%3E%3Cpath d='M66.0 19.0Q73.5 16.7 78.3 10.4Q70.8 12.7 66.0 19.0z'/%3E%3Cpath d='M66.0 19.5Q70.8 25.8 78.3 28.1Q73.5 21.8 66.0 19.5z'/%3E%3Cpath d='M48.0 19.0Q43.8 13.1 36.8 11.1Q41.0 17.0 48.0 19.0z'/%3E%3Cpath d='M48.0 19.5Q41.0 21.5 36.8 27.4Q43.8 25.4 48.0 19.5z'/%3E%3Cpath d='M72.0 19.0Q79.0 17.0 83.2 11.1Q76.2 13.1 72.0 19.0z'/%3E%3Cpath d='M72.0 19.5Q76.2 25.4 83.2 27.4Q79.0 21.5 72.0 19.5z'/%3E%3Cpath d='M42.0 19.0Q38.3 13.5 31.8 11.9Q35.5 17.4 42.0 19.0z'/%3E%3Cpath d='M42.0 19.5Q35.5 21.1 31.8 26.6Q38.3 25.0 42.0 19.5z'/%3E%3Cpath d='M78.0 19.0Q84.5 17.4 88.2 11.9Q81.7 13.5 78.0 19.0z'/%3E%3Cpath d='M78.0 19.5Q81.7 25.0 88.2 26.6Q84.5 21.1 78.0 19.5z'/%3E%3Cpath d='M36.0 19.0Q32.8 13.9 26.9 12.6Q30.1 17.8 36.0 19.0z'/%3E%3Cpath d='M36.0 19.5Q30.1 20.7 26.9 25.9Q32.8 24.6 36.0 19.5z'/%3E%3Cpath d='M84.0 19.0Q89.9 17.8 93.1 12.6Q87.2 13.9 84.0 19.0z'/%3E%3Cpath d='M84.0 19.5Q87.2 24.6 93.1 25.9Q89.9 20.7 84.0 19.5z'/%3E%3Cpath d='M30.0 19.0Q27.4 14.2 22.0 13.4Q24.6 18.2 30.0 19.0z'/%3E%3Cpath d='M30.0 19.5Q24.6 20.3 22.0 25.1Q27.4 24.3 30.0 19.5z'/%3E%3Cpath d='M90.0 19.0Q95.4 18.2 98.0 13.4Q92.6 14.2 90.0 19.0z'/%3E%3Cpath d='M90.0 19.5Q92.6 24.3 98.0 25.1Q95.4 20.3 90.0 19.5z'/%3E%3Cpath d='M24.0 19.0Q21.9 14.6 17.0 14.1Q19.1 18.5 24.0 19.0z'/%3E%3Cpath d='M24.0 19.5Q19.1 20.0 17.0 24.4Q21.9 23.9 24.0 19.5z'/%3E%3Cpath d='M96.0 19.0Q100.9 18.5 103.0 14.1Q98.1 14.6 96.0 19.0z'/%3E%3Cpath d='M96.0 19.5Q98.1 23.9 103.0 24.4Q100.9 20.0 96.0 19.5z'/%3E%3Cpath d='M18.0 19.0Q16.4 15.0 12.1 14.9Q13.7 18.9 18.0 19.0z'/%3E%3Cpath d='M18.0 19.5Q13.7 19.6 12.1 23.6Q16.4 23.5 18.0 19.5z'/%3E%3Cpath d='M102.0 19.0Q106.3 18.9 107.9 14.9Q103.6 15.0 102.0 19.0z'/%3E%3Cpath d='M102.0 19.5Q103.6 23.5 107.9 23.6Q106.3 19.6 102.0 19.5z'/%3E%3Ccircle cx='60' cy='19' r='3.2'/%3E%3C/svg%3E");
  /* stamp paper: a row of perforations along every edge (holes centered on the edge), solid inside */
  --stamp-mask: linear-gradient(#000 0 0) content-box, radial-gradient(circle 5px at center, #0000 96%, #000) -8px -8px / 16px 16px round;
  --leaf: color-mix(in srgb, var(--bg-deep) 82%, #6FAF7F);
}
[data-theme="tropical"] h1, [data-theme="tropical"] h2, [data-theme="tropical"] h3, [data-theme="tropical"] .display-1, [data-theme="tropical"] .display-2 { font-weight: 400; }
[data-theme="tropical"] .display-2, [data-theme="tropical"] .section-head h2 { font-size: clamp(2.4rem, 4.8vw, 4rem); line-height: 1.04; }
[data-theme="tropical"] .amp { font-family: var(--font-names); font-style: normal; color: var(--accent-strong); letter-spacing: 0; }
[data-theme="tropical"] .section--deep .amp, [data-theme="tropical"] .site-footer .amp { color: var(--accent-on-deep); }
/* italics: DM Serif Display's own italic for display text, the sans' italic for reading text */
[data-theme="tropical"] .story-duo__side .sig, [data-theme="tropical"] .footer-hashtag, [data-theme="tropical"] .lead + .serif.italic { font-family: var(--font-names); font-style: normal; font-size: 2rem !important; letter-spacing: 0; line-height: 1.25; }
[data-theme="tropical"] .serif.italic, [data-theme="tropical"] .place-card__tip, [data-theme="tropical"] .message-card blockquote, [data-theme="tropical"] .newport-map .map-labels .map-script { font-family: var(--font-display); font-style: italic; }
[data-theme="tropical"] .quote-block blockquote { font-style: italic; }
/* Ornament: a little palm frond */
[data-theme="tropical"] .ornament { width: 116px; height: 36px; gap: 0; margin-inline: auto; background: var(--accent); -webkit-mask: var(--palm-orn) no-repeat center / contain; mask: var(--palm-orn) no-repeat center / contain; }
[data-theme="tropical"] .ornament > *, [data-theme="tropical"] .ornament::before, [data-theme="tropical"] .ornament::after { display: none; }
[data-theme="tropical"] .section-head--left .ornament, [data-theme="tropical"] .hero .ornament { margin-left: 0; }
[data-theme="tropical"] .section--deep .ornament, [data-theme="tropical"] .band .ornament, [data-theme="tropical"] .page-hero--image .ornament { background: var(--accent-on-deep); }
/* Jungle-green bands and footer: two big palm fronds in the corners, very faint */
[data-theme="tropical"] .section--deep, [data-theme="tropical"] .site-footer { position: relative; overflow: hidden; }
[data-theme="tropical"] .section--deep > .container, [data-theme="tropical"] .site-footer > .container { position: relative; z-index: 1; }
[data-theme="tropical"] .section--deep::before, [data-theme="tropical"] .section--deep::after, [data-theme="tropical"] .site-footer::before { content: ''; position: absolute; width: clamp(240px, 30vw, 420px); aspect-ratio: 1; background: var(--on-deep); opacity: .07; -webkit-mask: var(--frond) no-repeat center / contain; mask: var(--frond) no-repeat center / contain; pointer-events: none; }
[data-theme="tropical"] .section--deep::before, [data-theme="tropical"] .site-footer::before { top: -40px; right: -60px; transform: rotate(18deg); }
[data-theme="tropical"] .section--deep::after { bottom: -70px; left: -70px; transform: rotate(200deg); }
/* Buttons: deep green, coral on hover */
[data-theme="tropical"] .btn { letter-spacing: .14em; font-weight: 700; font-size: .76rem; }
[data-theme="tropical"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="tropical"] .nav__link { letter-spacing: .14em; font-weight: 600; }
[data-theme="tropical"] .brand__mark { font-family: var(--font-names); font-size: 1.6rem; letter-spacing: 0; }
[data-theme="tropical"] .footer-mono { font-family: var(--font-names); font-size: clamp(3.4rem, 6vw, 4.6rem); letter-spacing: 0; }
[data-theme="tropical"] .tab { border-radius: 999px; }
[data-theme="tropical"] .tab[aria-selected="true"] { background: var(--bg-deep); border-color: var(--bg-deep); }
/* Photos beside text: postage stamps (perforated paper behind the photo) with a postmark on the corner */
[data-theme="tropical"] .frame::before { display: none; }
[data-theme="tropical"] .split .frame::before { display: block; inset: -16px; padding: 16px; border: 0; border-radius: 0; z-index: -1; background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); -webkit-mask: var(--stamp-mask); mask: var(--stamp-mask); }
[data-theme="tropical"] .section--alt .split .frame::before { background: var(--surface); }
[data-theme="tropical"] .split .frame::after { content: ''; position: absolute; z-index: 3; top: -30px; right: -46px; width: clamp(130px, 13vw, 176px); aspect-ratio: 220 / 100; background: var(--accent); opacity: .78; transform: rotate(-12deg); -webkit-mask: var(--postmark) no-repeat center / contain; mask: var(--postmark) no-repeat center / contain; pointer-events: none; }
[data-theme="tropical"] .split .frame--left::after { right: auto; left: -46px; transform: rotate(10deg); }
@media (max-width: 640px) { [data-theme="tropical"] .split .frame::after { right: -8px; top: -26px; width: 120px; } [data-theme="tropical"] .split .frame--left::after { left: -8px; } }
/* Cards: soft corners, a coral top edge */
[data-theme="tropical"] .card, [data-theme="tropical"] .event-card, [data-theme="tropical"] .hotel-card, [data-theme="tropical"] .fund, [data-theme="tropical"] .person, [data-theme="tropical"] .story-duo__side { border-color: var(--line); }
[data-theme="tropical"] .event-card__time { border-radius: 999px; }
[data-theme="tropical"] .person__mono { font-family: var(--font-names); font-size: 1.9rem; background: var(--accent-soft); color: var(--accent-strong); }
[data-theme="tropical"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); width: 14px; height: 14px; background: var(--accent); border: 3px solid var(--bg); box-shadow: 0 0 0 1px var(--accent); }
[data-theme="tropical"] .swatch__chip { border-radius: 50%; }
/* Hero: the names in the beach script; the couple as a big stamp with a postmark, a palm frond behind */
[data-theme="tropical"] .hero__content { align-items: flex-start; padding-inline: clamp(24px, 6vw, 96px); }
[data-theme="tropical"] .hero__names { font-size: clamp(4.4rem, 9vw, 8.6rem); line-height: 1.02; }
[data-theme="tropical"] .hero__names .amp { font-size: .62em; line-height: 1; margin: .02em 0 .04em .1em; }
[data-theme="tropical"] .hero__date { font-family: var(--font-display); }
[data-theme="tropical"] .countdown { justify-content: flex-start; }
[data-theme="tropical"] .countdown__unit { text-align: left; }
[data-theme="tropical"] .hero .btn-row { justify-content: flex-start; }
[data-theme="tropical"] .hero__media { z-index: 2; }
/* the postmark printed over the photo's corner (inside the photo, so it never leaves the stamp) */
[data-theme="tropical"] .hero__media::before { content: ''; position: absolute; z-index: 2; top: 18px; right: 14px; width: clamp(150px, 15vw, 210px); aspect-ratio: 220 / 100; background: #FEFBF6; opacity: .9; transform: rotate(-10deg); -webkit-mask: var(--postmark) no-repeat center / contain; mask: var(--postmark) no-repeat center / contain; pointer-events: none; }
/* the stamp paper (perforated) behind the photo, as its own grid cell */
[data-theme="tropical"] .hero::before { content: ''; z-index: 1; padding: 16px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); -webkit-mask: var(--stamp-mask); mask: var(--stamp-mask); }
/* a palm frond leaning in behind the stamp */
[data-theme="tropical"] .hero::after { content: ''; position: absolute; z-index: 0; aspect-ratio: 1; background: var(--leaf); -webkit-mask: var(--frond) no-repeat center / contain; mask: var(--frond) no-repeat center / contain; pointer-events: none; }
@media (min-width: 900px) {
  [data-theme="tropical"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="tropical"] .hero__content { grid-column: 1; grid-row: 1; }
  [data-theme="tropical"] .hero__media { grid-column: 2; grid-row: 1; margin: clamp(44px, 5vw, 76px) clamp(48px, 5.4vw, 84px) clamp(44px, 5vw, 76px) 0; }
  [data-theme="tropical"] .hero::before { grid-column: 2; grid-row: 1; margin: calc(clamp(44px, 5vw, 76px) - 16px) calc(clamp(48px, 5.4vw, 84px) - 16px) calc(clamp(44px, 5vw, 76px) - 16px) -16px; }
  [data-theme="tropical"] .hero::after { width: clamp(260px, 26vw, 400px); top: clamp(24px, 3vw, 48px); left: calc(52.5% - clamp(150px, 14vw, 220px)); transform: rotate(-22deg); }
}
@media (max-width: 899px) {
  [data-theme="tropical"] .hero__media { grid-row: 1; grid-column: 1; margin: 36px 36px 0; height: min(56svh, 480px); }
  [data-theme="tropical"] .hero::before { grid-row: 1; grid-column: 1; margin: 20px 20px -16px; }
  [data-theme="tropical"] .hero__content { grid-row: 2; grid-column: 1; }
  [data-theme="tropical"] .hero::after { width: 190px; top: 0; left: -56px; transform: rotate(-24deg); }
}

/* ================================================================ WINTER
   Snow and evergreen, a cozy lodge in winter (light, so it sits beside the dark Midnight, never like it): names in
   an elegant calligraphy (Corinthia), headings in a crisp light serif with a real italic (Spectral), a clean Nordic
   sans for reading (Albert Sans). Signatures: the couple's photo behind a frosted pane (soft frosted edges, a fine
   silver double line, frost creeping in from the top-left corner), the other photos in a thin pine frame with a
   fir branch over a corner, soft snow drifts on top of the pine-green bands with snow falling over them, a
   snowflake as the ornament. Snow page, frost bands, pine footer, slate-silver
   accent (winter, not Christmas). The flake, drifts and branch are masks in the page colors, so they follow Look & colors. */
[data-theme="winter"] {
  --bg: #F7F6F1;
  --bg-alt: #E9EEEA;
  --bg-deep: #1E3A31;
  --surface: #FCFBF7;
  --ink: #18241F;
  --ink-soft: #46524D;
  --ink-faint: #59655F;
  --on-deep: #F2F4F0;
  --on-deep-soft: rgba(242, 244, 240, .78);
  --accent: #5F7176;
  --accent-strong: #4C5C61;
  --accent-soft: #E4E9EA;
  --accent-on-deep: #C9D5D7;
  --line: rgba(24, 36, 31, .13);
  --line-strong: rgba(24, 36, 31, .27);
  --font-display: 'Spectral', Georgia, 'Times New Roman', serif;
  --font-body: 'Albert Sans', 'Helvetica Neue', Arial, sans-serif;
  --font-names: 'Corinthia', 'Snell Roundhand', cursive;
  --display-weight: 300;
  --names-weight: 700;
  --names-transform: none;
  --names-tracking: 0;
  --heading-tracking: -0.01em;
  --amp-style: normal;
  --eyebrow-tracking: .26em;
  --eyebrow-weight: 600;
  --radius: 8px; --radius-lg: 12px; --radius-media: 2px; --btn-radius: 4px;
  --shadow: 0 1px 2px rgba(30, 58, 49, .05), 0 20px 42px -26px rgba(30, 58, 49, .34);
  --align-hero: center;
  --flake: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 50L50.0 5.0M50.0 33.0l9.2 -7.7M50.0 33.0l-9.2 -7.7M50.0 20.0l6.9 -5.8M50.0 20.0l-6.9 -5.8M50.0 10.0l3.8 -3.2M50.0 10.0l-3.8 -3.2M50 50L89.0 27.5M64.7 41.5l11.3 4.1M64.7 41.5l2.1 -11.8M76.0 35.0l8.5 3.1M76.0 35.0l1.6 -8.9M84.6 30.0l4.7 1.7M84.6 30.0l0.9 -4.9M50 50L89.0 72.5M64.7 58.5l2.1 11.8M64.7 58.5l11.3 -4.1M76.0 65.0l1.6 8.9M76.0 65.0l8.5 -3.1M84.6 70.0l0.9 4.9M84.6 70.0l4.7 -1.7M50 50L50.0 95.0M50.0 67.0l-9.2 7.7M50.0 67.0l9.2 7.7M50.0 80.0l-6.9 5.8M50.0 80.0l6.9 5.8M50.0 90.0l-3.8 3.2M50.0 90.0l3.8 3.2M50 50L11.0 72.5M35.3 58.5l-11.3 -4.1M35.3 58.5l-2.1 11.8M24.0 65.0l-8.5 -3.1M24.0 65.0l-1.6 8.9M15.4 70.0l-4.7 -1.7M15.4 70.0l-0.9 4.9M50 50L11.0 27.5M35.3 41.5l-2.1 -11.8M35.3 41.5l-11.3 4.1M24.0 35.0l-1.6 -8.9M24.0 35.0l-8.5 3.1M15.4 30.0l-0.9 -4.9M15.4 30.0l-4.7 1.7' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3Ccircle cx='50' cy='50' r='4.5'/%3E%3C/svg%3E");
  --snowcap: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 26' preserveAspectRatio='none'%3E%3Cpath d='M0 0H240V10Q219.6 22.0 199.2 10Q185.9 21.2 172.7 10Q153.9 23.8 135.1 10Q112.5 17.9 90.0 10Q77.1 22.5 64.2 10Q49.9 26.5 35.6 10Q17.8 21.1 0.0 10Z'/%3E%3C/svg%3E");
  --pine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 120'%3E%3Cpath d='M6 100Q90 70 194 26M36.9 88.7l14.9 10.0M36.9 88.7l7.3 -12.4M41.3 87.1l15.3 9.5M41.3 87.1l5.6 -15.1M45.6 85.5l16.2 8.5M45.6 85.5l6.0 -15.1M50.1 83.8l16.4 7.5M50.1 83.8l6.8 -19.8M54.5 82.1l16.3 10.7M54.5 82.1l7.3 -16.6M59.0 80.4l16.7 5.4M59.0 80.4l7.5 -17.5M63.5 78.7l20.8 9.1M63.5 78.7l7.9 -19.4M68.0 77.0l17.4 6.7M68.0 77.0l8.3 -17.4M72.5 75.3l22.1 10.6M72.5 75.3l6.6 -18.8M77.1 73.5l20.2 12.7M77.1 73.5l7.7 -23.3M81.7 71.7l21.1 12.0M81.7 71.7l10.6 -23.0M86.3 69.9l17.5 11.4M86.3 69.9l7.4 -23.0M90.9 68.1l21.2 9.6M90.9 68.1l9.7 -23.7M95.6 66.3l22.9 10.7M95.6 66.3l10.6 -23.3M100.3 64.4l19.7 12.2M100.3 64.4l9.2 -24.2M105.0 62.6l20.5 11.2M105.0 62.6l10.0 -20.0M109.7 60.7l18.8 10.1M109.7 60.7l5.6 -21.2M114.5 58.8l18.8 11.6M114.5 58.8l5.9 -23.7M119.3 56.9l21.0 9.6M119.3 56.9l7.7 -22.2M124.1 54.9l19.5 7.6M124.1 54.9l9.2 -23.5M128.9 53.0l17.8 8.9M128.9 53.0l6.5 -22.7M133.8 51.0l17.2 10.5M133.8 51.0l5.7 -18.5M138.6 49.0l18.0 9.1M138.6 49.0l10.3 -21.1M143.6 47.0l20.0 6.3M143.6 47.0l5.1 -18.8M148.5 45.0l20.9 7.3M148.5 45.0l8.2 -19.7M153.4 42.9l18.1 5.2M153.4 42.9l9.2 -18.2M158.4 40.9l20.1 6.1M158.4 40.9l9.7 -17.4M163.4 38.8l16.3 4.6M163.4 38.8l4.4 -15.9M168.5 36.7l17.2 5.7M168.5 36.7l5.9 -14.0M173.5 34.6l12.6 8.0M173.5 34.6l7.6 -13.8M178.6 32.5l14.9 7.2M178.6 32.5l6.8 -13.2M183.7 30.3l13.9 3.9M183.7 30.3l4.3 -15.0M188.8 28.2l12.6 7.4M188.8 28.2l3.6 -14.0M194.0 26.0l11.0 4.7M194.0 26.0l3.8 -11.7M91.2 68.0Q117.2 74.0 153.2 90.0M102.0 70.8l5.6 8.2M102.0 70.8l7.3 -5.5M106.2 72.0l4.8 10.2M106.2 72.0l9.1 -5.2M110.4 73.3l3.7 11.5M110.4 73.3l10.9 -6.4M114.7 74.7l7.7 11.8M114.7 74.7l11.4 -4.6M119.2 76.3l7.0 11.2M119.2 76.3l14.0 -5.2M123.7 77.9l6.5 15.1M123.7 77.9l13.7 -9.1M128.4 79.7l6.5 12.6M128.4 79.7l13.7 -5.4M133.1 81.5l5.0 13.9M133.1 81.5l11.3 -6.1M138.0 83.5l4.9 11.7M138.0 83.5l10.7 -3.0M143.0 85.5l3.8 9.4M143.0 85.5l9.3 -4.9M148.1 87.7l4.0 8.0M148.1 87.7l8.5 -2.9M153.2 90.0l2.6 7.5M153.2 90.0l7.9 -2.8' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
  --silver: color-mix(in srgb, var(--accent) 55%, transparent);
  --frame: var(--bg-deep);
  /* falling snow: two layers of soft dots */
  --snowfall: radial-gradient(circle, rgba(255, 255, 255, .22) 0 1.4px, transparent 1.9px) 0 0 / 46px 46px, radial-gradient(circle, rgba(255, 255, 255, .14) 0 1px, transparent 1.5px) 21px 17px / 33px 33px;
}
[data-theme="winter"] h1, [data-theme="winter"] h2, [data-theme="winter"] h3, [data-theme="winter"] .display-1, [data-theme="winter"] .display-2 { font-weight: 300; }
[data-theme="winter"] h3 { font-weight: 500; }
[data-theme="winter"] .display-2, [data-theme="winter"] .section-head h2 { font-size: clamp(2.4rem, 4.8vw, 4rem); line-height: 1.06; }
[data-theme="winter"] .amp { font-family: var(--font-names); font-style: normal; font-weight: 700; color: var(--accent-strong); letter-spacing: 0; }
[data-theme="winter"] .section--deep .amp, [data-theme="winter"] .site-footer .amp { color: var(--accent-on-deep); }
[data-theme="winter"] .story-duo__side .sig, [data-theme="winter"] .footer-hashtag, [data-theme="winter"] .lead + .serif.italic { font-family: var(--font-names); font-style: normal; font-weight: 700; font-size: 2.2rem !important; letter-spacing: 0; line-height: 1.2; }
[data-theme="winter"] .quote-block blockquote { font-style: italic; }
/* Ornament: a snowflake between two fine lines (one mask, in the ornament's color) */
[data-theme="winter"] .ornament { width: 150px; height: 30px; gap: 0; margin-inline: auto; background: var(--accent); -webkit-mask: var(--flake) no-repeat center / 28px 28px, linear-gradient(#000, #000) no-repeat left center / 52px 1px, linear-gradient(#000, #000) no-repeat right center / 52px 1px; mask: var(--flake) no-repeat center / 28px 28px, linear-gradient(#000, #000) no-repeat left center / 52px 1px, linear-gradient(#000, #000) no-repeat right center / 52px 1px; }
[data-theme="winter"] .ornament > *, [data-theme="winter"] .ornament::before, [data-theme="winter"] .ornament::after { display: none; }
[data-theme="winter"] .section-head--left .ornament { margin-left: 0; }
[data-theme="winter"] .section--deep .ornament, [data-theme="winter"] .band .ornament, [data-theme="winter"] .page-hero--image .ornament { background: var(--accent-on-deep); }
/* Pine bands and the footer: snow falling, and soft drifts resting along the top */
[data-theme="winter"] .section--deep, [data-theme="winter"] .site-footer { position: relative; background: var(--snowfall), var(--bg-deep); }
[data-theme="winter"] .section--deep::before, [data-theme="winter"] .site-footer::before { content: ''; position: absolute; z-index: 1; left: 0; right: 0; top: -1px; height: 22px; background: var(--surface); -webkit-mask: var(--snowcap) 0 0 / 300px 22px repeat-x; mask: var(--snowcap) 0 0 / 300px 22px repeat-x; pointer-events: none; }
[data-theme="winter"] .site-footer { padding-top: calc(clamp(72px, 9vw, 120px) + 10px); }
/* Buttons: pine green, slate on hover */
[data-theme="winter"] .btn { letter-spacing: .18em; font-weight: 600; font-size: .76rem; }
[data-theme="winter"] .btn:not(.btn--ghost):not(.btn--light):not(.btn--outline-light) { --btn-bg: var(--bg-deep); --btn-bd: var(--bg-deep); }
[data-theme="winter"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="winter"] .nav__link { letter-spacing: .16em; font-weight: 500; }
[data-theme="winter"] .brand__mark { font-family: var(--font-names); font-weight: 700; font-size: 1.7rem; letter-spacing: 0; }
[data-theme="winter"] .footer-mono { font-family: var(--font-names); font-weight: 700; font-size: clamp(3.6rem, 6.4vw, 5rem); letter-spacing: 0; }
[data-theme="winter"] .tab[aria-selected="true"] { background: var(--bg-deep); border-color: var(--bg-deep); }
/* Photos beside text: a thin pine frame with a fir branch draped over a top corner (Geek 2026-10-19) */
[data-theme="winter"] .frame::before { display: none; }
[data-theme="winter"] .split .frame .media, [data-theme="winter"] .timeline__media .media { box-shadow: 0 0 0 5px var(--frame); }
[data-theme="winter"] .split .frame::before { display: block; inset: -34px auto auto -46px; width: clamp(180px, 18vw, 250px); height: auto; aspect-ratio: 200 / 120; border: 0; border-radius: 0; z-index: 3; background: var(--frame); transform: rotate(-10deg); -webkit-mask: var(--pine) no-repeat center / contain; mask: var(--pine) no-repeat center / contain; }
[data-theme="winter"] .split .frame--left::before { inset: -34px -46px auto auto; transform: scaleX(-1) rotate(-10deg); }
@media (max-width: 640px) { [data-theme="winter"] .split .frame::before { inset: -24px auto auto -8px; width: 140px; } [data-theme="winter"] .split .frame--left::before { inset: -24px -8px auto auto; } }
/* Cards: frosted, soft corners */
[data-theme="winter"] .card, [data-theme="winter"] .event-card, [data-theme="winter"] .hotel-card, [data-theme="winter"] .fund, [data-theme="winter"] .person, [data-theme="winter"] .story-duo__side { border-color: var(--line); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7), var(--shadow); }
[data-theme="winter"] .person__mono { font-family: var(--font-names); font-weight: 700; font-size: 2rem; background: var(--accent-soft); color: var(--bg-deep); }
[data-theme="winter"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); background: var(--surface); border: 2px solid var(--accent); }
[data-theme="winter"] .swatch__chip { border-radius: 50%; }
/* Hero: names in the calligraphy; the couple through a big lodge window, a fir branch over its corner, snow on the sill */
[data-theme="winter"] .hero__names { font-size: clamp(4.4rem, 9vw, 8.4rem); line-height: 1; }
[data-theme="winter"] .hero__names .amp { font-size: .62em; line-height: 1; margin: .02em 0; }
[data-theme="winter"] .hero__date { font-family: var(--font-display); font-weight: 300; }
/* The couple behind a frosted pane (Geek 2026-10-19): a fine silver double line, soft frosted edges, a misty top-left
   corner that fogs up when the page opens, and a few small snowflakes drifting down through the mist
   (no crystal lines: Geek, "it looks more like cracks"). Still for reduced motion. */
[data-theme="winter"] .hero__media { z-index: 1; box-shadow: 0 0 0 1px var(--silver), 0 0 0 10px var(--bg), 0 0 0 11px color-mix(in srgb, var(--accent) 32%, transparent); }
[data-theme="winter"] .hero__media::before { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: radial-gradient(ellipse 70% 62% at 0 0, rgba(255, 255, 255, .8) 0, rgba(255, 255, 255, .5) 30%, rgba(255, 255, 255, 0) 70%), rgba(247, 246, 241, .24);
  -webkit-backdrop-filter: blur(8px) brightness(1.1) saturate(.85); backdrop-filter: blur(8px) brightness(1.1) saturate(.85);
  -webkit-mask: radial-gradient(ellipse 72% 70% at 52% 54%, #0000 50%, #000 96%), radial-gradient(ellipse 66% 58% at 0 0, #000 0, #000 32%, #0000 74%);
  mask: radial-gradient(ellipse 72% 70% at 52% 54%, #0000 50%, #000 96%), radial-gradient(ellipse 66% 58% at 0 0, #000 0, #000 32%, #0000 74%);
  animation: winter-fog-in 3.2s ease-out .4s both; }
[data-theme="winter"] .hero__media::after { content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none; background: color-mix(in srgb, var(--accent) 42%, #fff);
  -webkit-mask: var(--flake) 7% 8% / 26px 26px no-repeat, var(--flake) 21% 4% / 16px 16px no-repeat, var(--flake) 32% 14% / 22px 22px no-repeat, var(--flake) 12% 23% / 19px 19px no-repeat, var(--flake) 27% 29% / 13px 13px no-repeat, var(--flake) 4% 35% / 23px 23px no-repeat, var(--flake) 40% 6% / 14px 14px no-repeat, var(--flake) 19% 41% / 16px 16px no-repeat;
  mask: var(--flake) 7% 8% / 26px 26px no-repeat, var(--flake) 21% 4% / 16px 16px no-repeat, var(--flake) 32% 14% / 22px 22px no-repeat, var(--flake) 12% 23% / 19px 19px no-repeat, var(--flake) 27% 29% / 13px 13px no-repeat, var(--flake) 4% 35% / 23px 23px no-repeat, var(--flake) 40% 6% / 14px 14px no-repeat, var(--flake) 19% 41% / 16px 16px no-repeat;
  animation: winter-snow-drift 11s linear 1.6s infinite both; }
@keyframes winter-fog-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes winter-snow-drift { 0% { transform: translate(0, -14px); opacity: 0; } 14% { opacity: 1; } 50% { transform: translate(6px, 12px); } 82% { opacity: .9; } 100% { transform: translate(-2px, 40px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { [data-theme="winter"] .hero__media::before, [data-theme="winter"] .hero__media::after { animation: none; } }
[data-theme="winter"] .hero::before, [data-theme="winter"] .hero::after { content: none; }
@media (min-width: 900px) {
  [data-theme="winter"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="winter"] .hero__content { grid-column: 1; grid-row: 1; }
  [data-theme="winter"] .hero__media { grid-column: 2; grid-row: 1; margin: clamp(52px, 6vw, 88px) clamp(52px, 6vw, 92px) clamp(52px, 6vw, 88px) 0; }
}
@media (max-width: 899px) {
  [data-theme="winter"] .hero__media { grid-row: 1; grid-column: 1; margin: 34px 34px 0; height: min(56svh, 480px); }
  [data-theme="winter"] .hero__content { grid-row: 2; grid-column: 1; }
}

/* ================================================================= RETRO
   Groovy 1970s, bolder than Boho (Boho is the soft, earthy 70s): names and big titles in a fat retro italic
   (Shrikhand), a rounded friendly sans for everything else (Nunito). Signatures: three-color stripes (the accent,
   a mustard mix of it, the deep color) as offset shadows behind every photo, as racing stripes across the top of
   the chocolate bands and as big concentric arcs in the hero's corner; photos as rounded retro-TV screens; a chunky
   wavy line as the ornament; pill buttons with a solid offset shadow. Cream page, mustard bands, chocolate footer,
   burnt-orange accent. Every stripe is a mix of the accent and deep colors, so it follows Look & colors. */
[data-theme="retro"] {
  --bg: #FBF3E4;
  --bg-alt: #F6E6C3;
  --bg-deep: #3B2216;
  --surface: #FEF9F0;
  --ink: #2F1B10;
  --ink-soft: #5C4436;
  --ink-faint: #6B5244;
  --on-deep: #FBF0DF;
  --on-deep-soft: rgba(251, 240, 223, .8);
  --accent: #C4581D;
  --accent-strong: #A1461A;
  --accent-soft: #F8D9B8;
  --accent-on-deep: #F2A65A;
  --line: rgba(47, 27, 16, .14);
  --line-strong: rgba(47, 27, 16, .3);
  --font-display: 'Shrikhand', 'Cooper Black', Georgia, serif;
  --font-body: 'Nunito', 'Helvetica Neue', Arial, sans-serif;
  --font-names: var(--font-display);
  --display-weight: 400;
  --names-weight: 400;
  --names-transform: none;
  --names-tracking: 0;
  --heading-tracking: 0;
  --amp-style: normal;
  --eyebrow-tracking: .2em;
  --eyebrow-weight: 800;
  --radius: 18px; --radius-lg: 26px; --radius-media: 34px; --btn-radius: 999px;
  --shadow: 0 1px 2px rgba(59, 34, 22, .06), 0 18px 36px -24px rgba(59, 34, 22, .4);
  --align-hero: left;
  --s1: var(--accent);
  --s2: color-mix(in srgb, var(--accent) 45%, #E8B23A);
  --s3: color-mix(in srgb, var(--bg-deep) 88%, var(--accent));
  --wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Cpath d='M6 13C18 1 30 1 42 13S66 25 78 13 102 1 114 13' fill='none' stroke='%23000' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E");
}
[data-theme="retro"] h1, [data-theme="retro"] h2, [data-theme="retro"] .display-1, [data-theme="retro"] .display-2 { font-weight: 400; }
/* Shrikhand only for the big lines; smaller headings in the rounded sans, heavy */
[data-theme="retro"] h3 { font-family: var(--font-body); font-weight: 800; letter-spacing: -0.01em; }
[data-theme="retro"] .display-2, [data-theme="retro"] .section-head h2 { font-size: clamp(2.3rem, 4.6vw, 3.8rem); line-height: 1.08; }
[data-theme="retro"] .amp { color: var(--accent); }
[data-theme="retro"] .section--deep .amp, [data-theme="retro"] .site-footer .amp { color: var(--accent-on-deep); }
[data-theme="retro"] .story-duo__side .sig, [data-theme="retro"] .footer-hashtag, [data-theme="retro"] .lead + .serif.italic { font-family: var(--font-display); font-style: normal; font-size: 1.6rem !important; letter-spacing: 0; }
[data-theme="retro"] .serif.italic, [data-theme="retro"] .place-card__tip, [data-theme="retro"] .message-card blockquote, [data-theme="retro"] .newport-map .map-labels .map-script { font-family: var(--font-body); font-style: italic; }
[data-theme="retro"] .quote-block blockquote { font-style: normal; }
/* Ornament: a chunky wavy line */
[data-theme="retro"] .ornament { width: 108px; height: 18px; gap: 0; margin-inline: auto; background: var(--accent); -webkit-mask: var(--wave) no-repeat center / contain; mask: var(--wave) no-repeat center / contain; }
[data-theme="retro"] .ornament > *, [data-theme="retro"] .ornament::before, [data-theme="retro"] .ornament::after { display: none; }
[data-theme="retro"] .section-head--left .ornament, [data-theme="retro"] .hero .ornament { margin-left: 0; }
[data-theme="retro"] .section--deep .ornament, [data-theme="retro"] .band .ornament, [data-theme="retro"] .page-hero--image .ornament { background: var(--accent-on-deep); }
/* Racing stripes across the top of the chocolate bands and the footer */
[data-theme="retro"] .section--deep, [data-theme="retro"] .site-footer { position: relative; }
[data-theme="retro"] .section--deep::before, [data-theme="retro"] .site-footer::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 30px; pointer-events: none;
  background: linear-gradient(var(--s1) 0 10px, var(--s2) 10px 20px, color-mix(in srgb, var(--accent-on-deep) 60%, var(--bg-deep)) 20px 30px); }
[data-theme="retro"] .site-footer { padding-top: calc(clamp(72px, 9vw, 120px) + 20px); }
/* Buttons: chunky pills with a solid offset shadow */
[data-theme="retro"] .btn { font-weight: 800; letter-spacing: .1em; font-size: .78rem; box-shadow: 3px 3px 0 var(--s2); }
[data-theme="retro"] .btn:hover { --btn-bg: var(--accent-strong); --btn-bd: var(--accent-strong); }
[data-theme="retro"] .btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--s2); }
[data-theme="retro"] .nav__link { font-weight: 800; letter-spacing: .12em; }
[data-theme="retro"] .brand__mark { font-family: var(--font-display); font-size: 1.45rem; }
[data-theme="retro"] .tab { border-radius: 999px; font-weight: 800; }
[data-theme="retro"] .tab[aria-selected="true"] { background: var(--accent-strong); border-color: var(--accent-strong); }
/* Photos: rounded retro-TV screens with three stripes stepping out behind them */
[data-theme="retro"] .frame::before { display: none; }
[data-theme="retro"] .split .frame .media, [data-theme="retro"] .timeline__media .media { border-radius: var(--radius-media); box-shadow: 9px 9px 0 var(--s1), 18px 18px 0 var(--s2), 27px 27px 0 var(--s3); }
[data-theme="retro"] .split .frame--left .media { box-shadow: -9px 9px 0 var(--s1), -18px 18px 0 var(--s2), -27px 27px 0 var(--s3); }
@media (max-width: 640px) { [data-theme="retro"] .split .frame .media, [data-theme="retro"] .timeline__media .media { box-shadow: 6px 6px 0 var(--s1), 12px 12px 0 var(--s2), 18px 18px 0 var(--s3); } [data-theme="retro"] .split .frame--left .media { box-shadow: -6px 6px 0 var(--s1), -12px 12px 0 var(--s2), -18px 18px 0 var(--s3); } }
[data-theme="retro"] .mosaic .media { border-radius: var(--radius-lg); }
/* Cards: rounded, a firm chocolate edge and a mustard offset */
[data-theme="retro"] .card, [data-theme="retro"] .event-card, [data-theme="retro"] .hotel-card, [data-theme="retro"] .fund, [data-theme="retro"] .person, [data-theme="retro"] .story-duo__side { border: 2px solid var(--s3); box-shadow: 6px 6px 0 var(--s2); }
[data-theme="retro"] .event-card__time { border-radius: 999px; }
[data-theme="retro"] .person__mono { font-family: var(--font-display); background: var(--accent-soft); color: var(--accent-strong); }
[data-theme="retro"] .timeline__item::after { border-radius: 50%; transform: translate(-50%, -50%); width: 16px; height: 16px; background: var(--s2); border: 3px solid var(--s3); }
[data-theme="retro"] .swatch__chip { border-radius: 50%; }
/* Hero: big slanted names on the left, concentric stripe arcs rising from the corner, the couple on a retro TV */
[data-theme="retro"] .hero__content { align-items: flex-start; padding-inline: clamp(24px, 6vw, 96px); }
[data-theme="retro"] .hero__names { font-size: clamp(4rem, 8.6vw, 8.2rem); line-height: .98; }
[data-theme="retro"] .hero__names .amp { font-size: .62em; line-height: 1; margin: .04em 0; }
[data-theme="retro"] .hero__date { font-family: var(--font-body); font-weight: 800; letter-spacing: .02em; }
[data-theme="retro"] .countdown { justify-content: flex-start; }
[data-theme="retro"] .countdown__unit { text-align: left; }
[data-theme="retro"] .countdown__num { font-family: var(--font-display); }
[data-theme="retro"] .hero .btn-row { justify-content: flex-start; }
[data-theme="retro"] .hero__media { z-index: 1; border-radius: 44px; box-shadow: 10px 10px 0 var(--s1), 20px 20px 0 var(--s2), 30px 30px 0 var(--s3); }
/* the arcs rise from the bottom-right corner, behind the photo, never behind the text */
[data-theme="retro"] .hero::before { content: ''; position: absolute; z-index: 0; right: 0; bottom: 0; width: clamp(300px, 36vw, 560px); aspect-ratio: 1; pointer-events: none;
  background: radial-gradient(circle at 100% 100%, #0000 0 34%, var(--s3) 34% 46%, #0000 46% 50%, var(--s2) 50% 62%, #0000 62% 66%, var(--s1) 66% 78%, #0000 78%); }
@media (min-width: 900px) {
  [data-theme="retro"] .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
  [data-theme="retro"] .hero__media { margin: clamp(40px, 4.6vw, 70px) clamp(64px, 7vw, 110px) clamp(56px, 6vw, 90px) 0; }
}
@media (max-width: 899px) {
  [data-theme="retro"] .hero__media { margin: 24px 44px 20px 20px; height: min(56svh, 480px); border-radius: 32px; box-shadow: 7px 7px 0 var(--s1), 14px 14px 0 var(--s2), 21px 21px 0 var(--s3); }
  [data-theme="retro"] .hero::before { bottom: auto; top: 0; width: 240px; background: radial-gradient(circle at 100% 0, #0000 0 34%, var(--s3) 34% 46%, #0000 46% 50%, var(--s2) 50% 62%, #0000 62% 66%, var(--s1) 66% 78%, #0000 78%); }
}
