  .js .reveal { opacity: 1; transform: none; }
}

/* ======================================================================
   TEMA: BOHEMIAN RUSTIC WOOD
   ====================================================================== */

:root {
  --bg: #fdfbf7; --surface: #f3e7d1; --text: #3e2f22; --heading: #5a3d22; --muted: #7d6b58;
  --accent: #556b2f; --accent-2: #8b5a2b; --terra: #c0673f; --line: rgba(139, 90, 43, .26);
  --font-head: 'Caveat', cursive; --font-script: 'Sacramento', cursive; --font-body: 'Inter', sans-serif;
  --btn-bg: #556b2f; --btn-color: #fdfbf7; --btn-shadow: 0 8px 20px -10px rgba(85, 107, 47, .8);
  --input-bg: #fffdf8; --radius: 26px; --radius-sm: 16px; --photo-radius: 4px; --toast-bg: #556b2f;
  --paper: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%27220%27%20height%3D%27220%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.85%27%20numOctaves%3D%273%27%20stitchTiles%3D%27stitch%27/%3E%3CfeColorMatrix%20values%3D%270%200%200%200%20.55%200%200%200%200%20.4%200%200%200%200%20.25%200%200%200%20.07%200%27/%3E%3C/filter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url%28%23n%29%27/%3E%3C/svg%3E");
}
body { background-color: var(--bg); background-image: var(--paper); }
h1, h2, h3 { font-weight: 700; }

/* Tipografi tulisan tangan */
.sec-title, .cover-names, .hero-names, .closing-title, .closing-names, .person-name, .couple-amp {
  font-family: 'Sacramento', cursive; font-weight: 400; color: var(--accent-2);
}
.sec-title { font-size: clamp(3rem, 13vw, 4.4rem); line-height: 1.1; }
.sec-eyebrow, .hero-eyebrow, .cover-label { font-family: 'Caveat', cursive; font-size: 1.45rem; letter-spacing: .02em; text-transform: none; color: var(--terra); font-weight: 600; }
.event-card h3, .address-card h3 { font-size: 2.2rem; color: var(--accent); }
.cd-num { font-family: 'Caveat', cursive; font-size: 2.7rem; color: var(--accent-2); }
.stats strong { font-family: 'Caveat', cursive; font-size: 2.2rem; color: var(--accent); }
.feed-card h3 { font-size: 1.7rem; }
.btn-main { border: 2px solid #3f5222; }
.btn-ghost { color: var(--accent-2); border-width: 1.5px; border-style: dashed; }

/* Kertas kraft + jahitan putus-putus */
.card-x, .cd-item, .cover-guest { background-color: #efe2c8; background-image: var(--paper); border: 0; box-shadow: 0 14px 30px -18px rgba(90, 61, 34, .55); }
.card-x::before, .cd-item::before, .cover-guest::before {
  content: ""; position: absolute; inset: 8px; border: 1.5px dashed rgba(139, 90, 43, .4); border-radius: calc(var(--radius) - 8px); pointer-events: none;
}
.cd-item, .cover-guest { position: relative; border-radius: var(--radius-sm); }
.cd-item::before, .cover-guest::before { inset: 5px; border-radius: 12px; }
.event-icon { border: 1.5px dashed var(--accent); background: #fdfbf7; }

/* Ranting daun dekoratif */
.branch { position: absolute; width: min(250px, 58vw); color: var(--accent); pointer-events: none; opacity: .9; }
.branch-tl { top: 0; left: -40px; transform: rotate(18deg); }
.branch-br { bottom: 0; right: -40px; transform: rotate(198deg); }
.branch-tr { top: 0; right: -40px; transform: scaleX(-1) rotate(18deg); }
.branch-bl { bottom: 0; left: -40px; transform: scaleX(-1) rotate(198deg); }

/* Foto polaroid + selotip */
.cover-figure, .person-photo { position: relative; overflow: visible; background: #fff; box-shadow: 0 18px 35px -18px rgba(62, 47, 34, .65); }
.cover-figure::before, .person-photo::before {
  content: ""; position: absolute; top: -12px; left: 50%; width: 88px; height: 26px; z-index: 2;
  transform: translateX(-50%) rotate(3deg); background: rgba(214, 186, 140, .75); box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
}
.cover-figure img, .person-photo img { border-radius: 2px; }

/* Cover */
.cover { background: #fdfbf7 var(--paper); color: var(--text); }
.cover-photo { display: none; }
.cover-figure { width: min(230px, 60vw); aspect-ratio: 4 / 5; padding: 10px 10px 44px; transform: rotate(-3deg); }
.cover-names { font-size: clamp(3.4rem, 15vw, 4.8rem); line-height: 1; }
.cover-date { font-family: 'Caveat', cursive; font-size: 1.5rem; color: var(--accent); letter-spacing: .08em; }
.cover-guest { margin-top: 1rem; }

/* Hero */
.hero-bg { filter: sepia(.35) saturate(.9); }
.hero-overlay { background: linear-gradient(180deg, rgba(253, 251, 247, .5), rgba(253, 251, 247, .85) 60%, #fdfbf7); }
.hero-names { font-size: clamp(4rem, 18vw, 6.5rem); }
.hero-date { font-family: 'Caveat', cursive; font-size: 1.6rem; color: var(--accent); letter-spacing: .05em; }

/* Mempelai */
.person-photo { padding: 10px 10px 38px; transform: rotate(-2deg); }
.col-md-5:last-child .person-photo { transform: rotate(2deg); }

/* Galeri polaroid */
.gallery-grid { gap: 1rem; }
.g-item { background: #fff; padding: 7px 7px 24px; border-radius: 3px; box-shadow: 0 10px 20px -12px rgba(62, 47, 34, .6); transform: rotate(-1.5deg); transition: transform .5s var(--ease); }
.g-item:nth-child(even) { transform: rotate(1.8deg); }
.g-item:hover { transform: rotate(0) scale(1.03); z-index: 2; }
.video-box { border: 8px solid #fff; border-radius: 6px; box-shadow: 0 18px 35px -18px rgba(62, 47, 34, .6); }

/* Kartu bank bertekstur kayu */
.gift-card { border-radius: 22px; }
.gift-card::before { content: ""; position: absolute; inset: 8px; border: 1.5px dashed rgba(253, 246, 233, .45); border-radius: 15px; pointer-events: none; }
.gift-bca { --gift-bg: repeating-linear-gradient(100deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 9px), linear-gradient(135deg, #a8743f, #8b5a2b 50%, #6b4220); --gift-color: #fdf6e9; }
.gift-mandiri { --gift-bg: repeating-linear-gradient(100deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 9px), linear-gradient(135deg, #6b8a3a, #556b2f 55%, #3f5222); --gift-color: #fdf6e9; }
.gift-number { font-family: 'Inter', sans-serif; font-weight: 600; }

/* Form & feed */
.form-x .form-control, .form-x .form-select { border: 1.5px solid rgba(139, 90, 43, .3); }
.wish-avatar { background: var(--terra); color: #fff; }

/* Section */
.sec-event { background: rgba(85, 107, 47, .07); }
.closing { background: #efe2c8 var(--paper); }
.closing-title { font-size: clamp(3.4rem, 14vw, 4.6rem); }
.closing-names { font-size: 3rem; }
.music-btn { background: #8b5a2b; color: #fdf6e9; border: 3px solid #fdfbf7; box-shadow: 0 0 0 2px #8b5a2b, 0 10px 20px -8px rgba(62, 47, 34, .6); }
