  .js .reveal { opacity: 1; transform: none; }
}

/* ======================================================================
   TEMA: RUSTIC ROMANCE
   ====================================================================== */

:root {
  --bg: #f5efe9; --surface: #fffdfb; --text: #3d2a2a; --heading: #6d2232; --muted: #8a7470;
  --accent: #6d2232; --accent-2: #d8a7a0; --euca: #8aa399; --line: rgba(109, 34, 50, .2);
  --font-head: 'Lora', serif; --font-script: 'Parisienne', cursive; --font-body: 'Lato', sans-serif;
  --btn-bg: #6d2232; --btn-color: #fbeee9; --btn-shadow: 0 10px 24px -12px rgba(109, 34, 50, .8);
  --input-bg: #fffdfb; --radius: 14px; --photo-radius: 14px; --toast-bg: #6d2232; --linen: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%278%27%20height%3D%278%27%3E%3Cpath%20d%3D%27M0%200h8v1H0zM0%200v8h1V0z%27%20fill%3D%27%236d2232%27%20fill-opacity%3D%27.035%27/%3E%3C/svg%3E");
}
body { background-color: var(--bg); background-image: var(--linen); }
.sec-title, .cover-names, .hero-names, .closing-title, .closing-names, .person-name, .couple-amp { font-family: 'Parisienne', cursive; font-weight: 400; }
.sec-title { font-size: clamp(2.7rem, 10vw, 3.6rem); color: var(--heading); }
.sec-eyebrow, .hero-eyebrow, .cover-label { color: #a0616a; }
.event-card h3 { font-style: italic; color: var(--heading); }
.btn-ghost { color: var(--accent); }

/* Lampu tumbler (fairy lights) */
.lights { position: absolute; top: 0; left: 0; right: 0; height: 60px; pointer-events: none;
  background: radial-gradient(circle, #ffe9a8 0 3px, rgba(255, 233, 168, .35) 4px, transparent 8px) 0 18px / 44px 30px repeat-x; animation: twinkle 2.5s ease-in-out infinite alternate; }
.lights::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 36px; border-bottom: 1px solid rgba(107, 127, 115, .6); border-radius: 0 0 50% 50% / 0 0 100% 100%; }
@keyframes twinkle { from { opacity: .6; } to { opacity: 1; } }

.euca { position: absolute; width: 90px; color: var(--euca); pointer-events: none; }
.euca-l { top: 10%; left: -10px; }
.euca-r { bottom: 8%; right: -10px; transform: scaleX(-1) rotate(10deg); }

/* Cover */
.cover { background: #3d1a22; color: #fbeee9; }
.cover-photo { opacity: .45; }
.cover-overlay { background: linear-gradient(180deg, rgba(61, 26, 34, .45), rgba(61, 26, 34, .9)); }
.cover-figure { display: none; }
.cover-names { color: #fbeee9; font-size: clamp(3.4rem, 15vw, 4.6rem); }
.cover-label { color: var(--accent-2); }
.cover-guest { border: 1px solid rgba(216, 167, 160, .5); border-radius: 14px; background: rgba(255, 255, 255, .06); }
.cover .btn-main { background: var(--accent-2); color: #3d1a22; }

/* Hero & kartu */
.hero-overlay { background: linear-gradient(180deg, rgba(245, 239, 233, .4), rgba(245, 239, 233, .9) 65%, #f5efe9); }
.hero-names { color: var(--heading); }
.hero-inner { padding: 2.5rem 1.5rem; background: rgba(255, 253, 251, .75); border-radius: 18px; border: 1px solid var(--line); }
.card-x { box-shadow: 0 16px 36px -26px rgba(109, 34, 50, .6); border-left: 4px solid var(--accent-2); }
.event-icon { background: #fbeee9; border-color: var(--accent-2); }
.person-photo { box-shadow: 10px 10px 0 var(--accent-2); }
.arabic { color: var(--heading); }
.sec-event { background: #6d2232; color: #fbeee9; }
.sec-event .sec-title, .sec-event .sec-head .divider { color: #fbeee9; }
.sec-event .sec-eyebrow { color: var(--accent-2); }
.sec-event .cd-item { background: rgba(255, 255, 255, .08); border-color: rgba(216, 167, 160, .5); }
.sec-event .cd-num { color: #fff; }
.sec-event .cd-label { color: var(--accent-2); }
.sec-event .card-x { color: var(--text); }
.sec-event .btn-main { background: var(--accent-2); color: #3d1a22; }
.g-item { border-radius: 12px; }
.gift-bca { --gift-bg: linear-gradient(135deg, #8c3043, #6d2232 55%, #4a1622); --gift-color: #fbeee9; }
.gift-mandiri { --gift-bg: linear-gradient(135deg, #b5c7bd, #8aa399 55%, #6b7f73); --gift-color: #1f2c25; }
.closing { background: #ece2d8 var(--linen); }
.closing-title { color: var(--heading); }
.music-btn { border: 2px solid var(--accent-2); }
/* warna daun eucalyptus di divider (sebelumnya atribut style inline) */
.euca-leaf { color: #8aa399; }
