  .js .reveal { opacity: 1; transform: none; }
}

/* ======================================================================
   TEMA: NOIR MODERN
   ====================================================================== */

:root {
  --bg: #0b0b0b; --surface: #141414; --text: #f5f5f5; --heading: #fff; --muted: #a3a3a3;
  --accent: #e11d48; --accent-2: #fff; --line: rgba(255, 255, 255, .14);
  --font-head: 'Bodoni Moda', serif; --font-script: 'Bodoni Moda', serif; --font-body: 'Manrope', sans-serif;
  --btn-bg: #e11d48; --btn-color: #fff; --btn-radius: 0; --radius: 0; --radius-sm: 0; --photo-radius: 0;
  --input-bg: #141414; --toast-bg: #e11d48; --music-radius: 0; --avatar-radius: 0;
}
h1, h2, h3 { font-weight: 600; }
.btn-main, .btn-ghost { text-transform: uppercase; letter-spacing: .18em; font-size: .7rem; font-weight: 800; }
.btn-ghost { color: #fff; border-color: #fff; }
.btn-ghost:hover { background: #fff; color: #0b0b0b; }

/* Judul kiri dengan bar merah */
.sec-head { text-align: left; position: relative; padding-left: 1.25rem; }
.sec-head::before { content: ""; position: absolute; left: 0; top: .25rem; bottom: .25rem; width: 4px; background: var(--accent); }
.sec-title { font-style: italic; font-size: clamp(2.4rem, 10vw, 3.6rem); }
.sec-eyebrow { color: var(--accent); letter-spacing: .4em; }
.slash { display: block; width: 90px; height: 3px; background: var(--accent); margin: 1.25rem auto; transform: skewX(-30deg); }
.sec-head .slash { margin-left: 0; }

/* Teks outline raksasa */
.ghost-text { position: absolute; left: -.05em; bottom: -.15em; z-index: -1; font-family: 'Bodoni Moda', serif; font-weight: 900; font-style: italic; font-size: 34vw; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .08); pointer-events: none; white-space: nowrap; }

.cover-figure { display: none; }
.cover-photo { filter: grayscale(1) contrast(1.2); }
.cover-overlay { background: linear-gradient(90deg, rgba(11, 11, 11, .92), rgba(11, 11, 11, .55)), linear-gradient(180deg, transparent 60%, #0b0b0b); }
.cover-inner { text-align: left; }
.cover-names, .hero-names { font-style: italic; font-weight: 700; text-transform: uppercase; line-height: .95; letter-spacing: -.02em; }
.cover-names { font-size: clamp(3rem, 15vw, 5rem); }
.cover-names .amp, .hero-names .amp { color: var(--accent); }
.cover-label { color: var(--accent); letter-spacing: .45em; font-weight: 800; font-size: .65rem; }
.cover-date { font-weight: 800; letter-spacing: .5em; }
.cover-guest { margin-left: 0; padding-left: 1rem; border-left: 3px solid var(--accent); }

.hero { align-items: flex-start; text-align: left; }
.hero-bg { filter: grayscale(1) contrast(1.15); }
.hero-overlay { background: linear-gradient(180deg, rgba(11, 11, 11, .35), rgba(11, 11, 11, .92) 70%, #0b0b0b); }
.hero-inner { margin-top: auto; }
.hero-names { font-size: clamp(3.6rem, 18vw, 7rem); }
.hero-names .amp { display: inline; }
.hero .slash { margin-left: 0; }
.hero-date { font-weight: 800; letter-spacing: .4em; text-transform: uppercase; font-size: .75rem; }
.scroll-hint { color: var(--accent); }

.card-x { border: 1px solid var(--line); border-top: 3px solid var(--accent); }
.event-card, .address-card { text-align: left; }
.event-meta li { justify-content: flex-start; }
.event-icon { border-radius: 0; border-color: var(--accent); color: var(--accent); }
.cd-item { border: 0; border-bottom: 3px solid var(--accent); background: var(--surface); }
.cd-num { font-style: italic; }
.person-photo { filter: grayscale(1); transition: filter .6s; box-shadow: -12px 12px 0 var(--accent); }
.person-photo:hover { filter: none; }
.person-name { font-style: italic; font-weight: 700; color: #fff; }
.couple-amp { color: var(--accent); font-style: italic; }
.arabic { color: #fff; }
.quote-box { text-align: left; border-left: 3px solid var(--accent); padding-left: 1.25rem; }
.g-item img { filter: grayscale(1); }
.g-item:hover img { filter: none; }
.gallery-grid { gap: 3px; }
.gift-card { border-radius: 0; }
.gift-bca { --gift-bg: linear-gradient(115deg, #141414 0 70%, #e11d48 70% 73%, #141414 73%); --gift-color: #fff; border: 1px solid var(--line); }
.gift-mandiri { --gift-bg: linear-gradient(135deg, #e11d48, #9f1239); --gift-color: #fff; }
.gift-bank { font-family: 'Bodoni Moda', serif; }
.form-x .form-select option { background: #141414; }
.closing { text-align: left; }
.closing .slash { margin-left: 0; }
.closing-title { font-style: italic; font-weight: 700; text-transform: uppercase; font-size: clamp(2.8rem, 13vw, 4.5rem); }
.closing-names { color: var(--accent); font-style: italic; }
