  .js .reveal { opacity: 1; transform: none; }
}

/* ======================================================================
   TEMA: BOHEMIAN SUNSET
   ====================================================================== */

:root {
  --bg: #fbf1e6; --surface: #fffaf4; --text: #4a2c20; --heading: #9a3412; --muted: #8a6a58;
  --accent: #c2410c; --mustard: #d97706; --dusty: #e8b4a8; --line: rgba(194, 65, 12, .2);
  --font-head: 'Yeseva One', serif; --font-script: 'Yeseva One', serif; --font-body: 'Karla', sans-serif;
  --btn-bg: linear-gradient(135deg, #ea580c, #c2410c); --btn-color: #fffaf4; --btn-shadow: 0 10px 24px -12px rgba(194, 65, 12, .8);
  --input-bg: #fffaf4; --radius: 999px 999px 20px 20px; --radius-sm: 14px; --photo-radius: 999px 999px 18px 18px; --toast-bg: #9a3412;
  --sunset: linear-gradient(180deg, #f59e0b 0%, #ea580c 40%, #c2410c 70%, #9a3412 100%);
}
h1, h2, h3 { font-weight: 400; }
.sec-title { color: var(--heading); }
.sec-eyebrow, .hero-eyebrow, .cover-label { color: var(--mustard); letter-spacing: .3em; }
.person-name, .closing-names, .couple-amp { color: var(--accent); }
.btn-ghost { color: var(--accent); }
.rainbow { display: block; width: min(150px, 46vw); margin: 0 auto 1rem; }
.sun { position: absolute; top: 7%; right: 8%; width: 70px; color: #fbbf24; pointer-events: none; animation: spin 40s linear infinite; }
.pampas { position: absolute; bottom: -10px; width: 60px; pointer-events: none; transform-origin: bottom center; animation: breeze 5s ease-in-out infinite; }
.pp-1 { left: 2%; } .pp-2 { left: 9%; width: 46px; animation-delay: -2s; transform: rotate(-12deg); }
.pp-3 { right: 3%; animation-delay: -1s; } .pp-4 { right: 11%; width: 46px; animation-delay: -3s; }
@keyframes breeze { 50% { transform: rotate(5deg); } }
.dunes { position: absolute; left: 0; right: 0; bottom: 0; height: 26%; background: radial-gradient(120% 100% at 30% 100%, #9a3412 50%, transparent 51%), radial-gradient(120% 100% at 80% 100%, #7c2d12 45%, transparent 46%); opacity: .55; pointer-events: none; z-index: -1; }

.cover, .hero, .closing { background: var(--sunset); color: #fffaf4; }
.cover-photo { display: none; }
.cover-inner { padding: 3.25rem 1.5rem 2.25rem; border-radius: 999px 999px 24px 24px; background: rgba(255, 250, 244, .14); border: 1px solid rgba(255, 250, 244, .45); backdrop-filter: blur(3px); }
.cover-figure { width: min(150px, 42vw); aspect-ratio: 3 / 4; border-radius: 999px 999px 14px 14px; border: 4px solid #fffaf4; }
.cover-names, .hero-names { color: #fffaf4; }
.cover-names { font-size: clamp(3rem, 14vw, 4.2rem); }
.cover-label, .hero-eyebrow { color: #fde68a; }
.cover-guest { border-top: 1px solid rgba(255, 250, 244, .45); border-bottom: 1px solid rgba(255, 250, 244, .45); }
.hero-bg { opacity: .2; mix-blend-mode: multiply; }
.hero-names { font-size: clamp(3.6rem, 17vw, 6rem); }
.hero .divider, .closing .divider { color: #fde68a; }
.scroll-hint { color: #fde68a; }
.card-x { border-radius: 24px; border: 1px solid var(--line); box-shadow: 0 18px 36px -26px rgba(154, 52, 18, .55); }
.event-card, .address-card { border-radius: 999px 999px 24px 24px; padding-top: 3rem; }
.event-icon { background: #fde7d3; border: 0; }
.cd-item { border-radius: 999px 999px 14px 14px; border-color: var(--dusty); background: var(--surface); padding-top: 1.4rem; }
.cd-num { color: var(--accent); }
.person-photo { border: 5px solid var(--surface); box-shadow: 0 0 0 2px var(--dusty), 0 18px 34px -22px rgba(154, 52, 18, .6); }
.quote-box { background: var(--surface); border-radius: 999px 999px 24px 24px; padding: 3.5rem 1.5rem 2rem; border: 1px solid var(--line); }
.translation { font-family: 'Yeseva One', serif; font-size: 1.15rem; line-height: 1.6; color: var(--heading); }
.g-item { border-radius: 999px 999px 14px 14px; }
.g-item:nth-child(even) { border-radius: 14px; }
.sec-event { background: #f6e3d2; }
.gift-bca { --gift-bg: linear-gradient(160deg, #f59e0b, #ea580c 55%, #c2410c); --gift-color: #fffaf4; }
.gift-mandiri { --gift-bg: linear-gradient(160deg, #f3d2c8, #e8b4a8 55%, #c98d80); --gift-color: #4a2c20; }
.gift-bank { font-family: 'Yeseva One', serif; font-style: normal; font-weight: 400; }
.closing-title, .closing-names { color: #fffaf4; }
.closing-families strong { color: #fff; }
.music-btn { border: 3px solid #fffaf4; }
