/* Tema Wisteria Dream — Lavender Romance. Namespace .ti-theme-wisteria-dream, prefix kelas wd-
   (Premium · Luxury Lavender Garden: wisteria menjuntai, hydrangea, mawar ivory, gerbang lengkung champagne-silver)
   Sumber: assets/source/style.src.css → buildcss.py → style.css (lihat buildcss.py untuk arti penanda selektor). */
.ti-theme-wisteria-dream {
  --wd-lav: #B497D6; --wd-lilac: #C8A2C8; --wd-soft: #9B7BC4; --wd-pale: #ECE4F6; --wd-ivory: #FBF8F3; --wd-warm: #F6F0E9;
  --wd-champ: #C9BDAC; --wd-champ-d: #998C7B; --wd-silver: #E2DCD3;
  --wd-plum: #4A3961; --wd-ink: #3D3350; --wd-muted: #685C7C; --wd-deep: #6E559F;
  --wd-ease: cubic-bezier(.22,.61,.24,1); --wd-ease2: cubic-bezier(.62,.02,.22,1);
  --ti-ease: cubic-bezier(.22,.61,.24,1); --ti-dur: 1.1s;
  background: var(--wd-ivory); color: var(--wd-ink); font-family: "Jost", "Segoe UI", system-ui, sans-serif; font-weight: 300; font-size: 16px; line-height: 1.75;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
.ti-theme-wisteria-dream *, .ti-theme-wisteria-dream *::before, .ti-theme-wisteria-dream *::after { box-sizing: border-box; }
.ti-theme-wisteria-dream h1, .ti-theme-wisteria-dream h2, .ti-theme-wisteria-dream h3 { margin: 0; font-weight: 400; }
.ti-theme-wisteria-dream img { max-width: 100%; }
.ti-theme-wisteria-dream .wd-hero .wd-kicker { display: inline-block; padding: 5px 14px 5px calc(14px + .32em); border-radius: 999px; background: rgba(255,252,247,.72); box-shadow: inset 0 0 0 1px rgba(201,189,172,.5); }
.ti-theme-wisteria-dream .wd-kicker { margin: 0 0 12px; padding-left: .32em; font-family: "Jost", sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--wd-deep); }
.ti-theme-wisteria-dream .wd-script { margin: 0 0 2px; font-family: "Pinyon Script", "Cormorant Garamond", cursive; font-weight: 400; font-size: clamp(27px, 7.4vw, 38px); line-height: 1.25; color: var(--wd-soft); }
.ti-theme-wisteria-dream .wd-label { display: block; margin: 0 0 6px; font-family: "Jost", sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--wd-champ-d); }
.ti-theme-wisteria-dream .wd-title { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(34px, 9.4vw, 56px); line-height: 1.12; letter-spacing: .01em; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-sub { margin: 8px 0 0; font-family: "Cormorant Garamond", serif; font-style: italic; font-size: 20px; color: var(--wd-muted); }
.ti-theme-wisteria-dream .wd-text { max-width: 600px; margin: 0 auto 22px; color: var(--wd-muted); }
.ti-theme-wisteria-dream .wd-text--lead { font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 400; font-size: 21px; line-height: 1.6; color: var(--wd-deep); }
.ti-theme-wisteria-dream .wd-text--sm { font-size: 14.5px; margin-bottom: 8px; }
.ti-theme-wisteria-dream .wd-center { text-align: center; }
.ti-theme-wisteria-dream .wd-divider { display: block; width: 300px; max-width: 80%; height: auto; margin: 14px auto 0; }
.ti-theme-wisteria-dream .wd-link { display: inline-block; padding-bottom: 2px; color: var(--wd-deep); text-decoration: none; font-size: 14px; letter-spacing: .05em; background: linear-gradient(var(--wd-lav), var(--wd-lav)) 0 100% / 0 1px no-repeat; transition: background-size .6s var(--wd-ease); }
.ti-theme-wisteria-dream .wd-link:hover { background-size: 100% 1px; }

/* Tombol: champagne-silver di atas lavender */
.ti-theme-wisteria-dream .wd-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 10px 30px; overflow: hidden; border: 1px solid rgba(255,255,255,.7); border-radius: 999px;
  background: linear-gradient(135deg, #A68AD3 0%, #8B6DBE 55%, #9E7FC9 100%); color: #FFFDF9; font-family: "Jost", sans-serif; font-weight: 500; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  box-shadow: 0 0 0 1px rgba(155,123,196,.35), 0 14px 26px -14px rgba(74,57,97,.75), inset 0 1px 0 rgba(255,255,255,.35); transition: transform .45s var(--wd-ease), box-shadow .45s; }
.ti-theme-wisteria-dream .wd-btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.42) 50%, transparent 70%); transform: translateX(-120%); transition: transform 1s var(--wd-ease); }
.ti-theme-wisteria-dream .wd-btn:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(155,123,196,.45), 0 20px 32px -16px rgba(74,57,97,.8), inset 0 1px 0 rgba(255,255,255,.35); }
.ti-theme-wisteria-dream .wd-btn:hover::after { transform: translateX(120%); }
.ti-theme-wisteria-dream .wd-btn:focus-visible { outline: 2px solid var(--wd-deep); outline-offset: 3px; }
.ti-theme-wisteria-dream .wd-btn--small { min-height: 42px; padding: 8px 22px; font-size: 11px; }
.ti-theme-wisteria-dream .wd-btn--ghost { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.75); }

/* ========== Loader ========== */
.ti-theme-wisteria-dream .wd-loader { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: radial-gradient(70% 55% at 50% 45%, #FFFDF9 0%, #EFE7F6 70%, #E2D6EF 100%); transition: opacity .8s ease, visibility .8s; animation: wd-loader-auto 0s linear 6s forwards; }
.ti-theme-wisteria-dream.wd-loaded .wd-loader { opacity: 0; visibility: hidden; pointer-events: none; }
.ti-theme-wisteria-dream .wd-loader__mono { position: relative; display: grid; place-items: center; width: 72px; animation: wd-breathe 2.6s ease-in-out infinite; }
.ti-theme-wisteria-dream .wd-loader__mono img { width: 72px; }
.ti-theme-wisteria-dream .wd-loader__mono b, .ti-theme-wisteria-dream .wd-mono b { position: absolute; left: 0; right: 0; top: 52%; font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 400; font-size: 22px; letter-spacing: .04em; color: var(--wd-plum); text-align: center; }
.ti-theme-wisteria-dream .wd-loader__brand { margin: 0; font-family: "Jost", sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .5em; padding-left: .5em; text-transform: uppercase; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-loader__line { position: relative; width: 140px; height: 1px; overflow: hidden; background: rgba(155,123,196,.25); }
.ti-theme-wisteria-dream .wd-loader__line i { position: absolute; inset: 0; background: linear-gradient(90deg, transparent, var(--wd-lav), transparent); animation: wd-line 1.4s ease-in-out infinite; }

/* ========== PEMBUKA — gerbang ========== */
.ti-theme-wisteria-dream .wd-cover { --gh: min(87vh, 172vw); --gb: 1.6vh; --vh: 100vh; position: fixed; inset: 0; z-index: 40; overflow: hidden; background: #EDE5F2; transition: visibility 0s linear 3.8s; }
@supports (height: 1svh) { .ti-theme-wisteria-dream .wd-cover { --gh: min(87svh, 172vw); --gb: 1.6svh; --vh: 100svh; } }
.ti-opened.ti-theme-wisteria-dream .wd-cover, .wd-opened.ti-theme-wisteria-dream .wd-cover { visibility: hidden; }
.ti-opened.ti-theme-wisteria-dream .wd-cover *, .wd-opened.ti-theme-wisteria-dream .wd-cover * { pointer-events: none; }
.ti-theme-wisteria-dream .wd-cover__bg, .ti-theme-wisteria-dream .wd-hero__bg, .ti-theme-wisteria-dream .wd-closing__bg { position: absolute; inset: 0; display: block; }
.ti-theme-wisteria-dream .wd-cover__bg img, .ti-theme-wisteria-dream .wd-hero__bg img, .ti-theme-wisteria-dream .wd-closing__bg img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.ti-theme-wisteria-dream .wd-cover__bg { transition: opacity 1.3s ease 2.3s; }
.ti-opened.ti-theme-wisteria-dream .wd-cover__bg, .wd-opened.ti-theme-wisteria-dream .wd-cover__bg { opacity: 0; }
.ti-theme-wisteria-dream .wd-cover__glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(60% 46% at 50% 56%, rgba(255,251,245,.7) 0%, rgba(255,251,245,0) 70%), linear-gradient(180deg, rgba(236,228,246,.25) 0%, rgba(236,228,246,0) 40%, rgba(92,70,120,.12) 100%); transition: opacity 1.2s ease 2s; }
.ti-opened.ti-theme-wisteria-dream .wd-cover__glow, .wd-opened.ti-theme-wisteria-dream .wd-cover__glow { opacity: 0; }

.ti-theme-wisteria-dream .wd-gate { position: absolute; left: 50%; bottom: var(--gb); z-index: 2; height: var(--gh); width: calc(var(--gh) * 1080 / 1598); transform: translateX(-50%); perspective: 1700px; perspective-origin: 50% 58%; }
.ti-theme-wisteria-dream .wd-gate__arch { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; transition: opacity 1.5s ease 1.75s, transform 1.9s var(--wd-ease2) 1.6s; }
.ti-opened.ti-theme-wisteria-dream .wd-gate__arch, .wd-opened.ti-theme-wisteria-dream .wd-gate__arch { opacity: 0; transform: translateY(-2.5%); }
.ti-theme-wisteria-dream .wd-door { position: absolute; top: 9.825%; width: 36.667%; height: 88.298%; z-index: 2; transform-origin: 3.255% 50%; transition: transform 2.3s cubic-bezier(.42,.04,.22,1) .3s, opacity .8s ease 2.2s; }
.ti-theme-wisteria-dream .wd-door--l { left: 15.926%; }
.ti-theme-wisteria-dream .wd-door--r { left: 47.407%; transform-origin: 96.745% 50%; }
.ti-theme-wisteria-dream .wd-door img { display: block; width: 100%; height: 100%; transition: filter 2.3s ease .3s; }
.ti-theme-wisteria-dream .wd-door--r img { transform: scaleX(-1); }
.ti-opened.ti-theme-wisteria-dream .wd-door--l, .wd-opened.ti-theme-wisteria-dream .wd-door--l { transform: rotateY(108deg); opacity: 0; }
.ti-opened.ti-theme-wisteria-dream .wd-door--r, .wd-opened.ti-theme-wisteria-dream .wd-door--r { transform: rotateY(-108deg); opacity: 0; }
.ti-opened.ti-theme-wisteria-dream .wd-door img, .wd-opened.ti-theme-wisteria-dream .wd-door img { filter: brightness(.82) saturate(.9); }
.ti-theme-wisteria-dream .wd-gate__light { position: absolute; left: 16.6%; top: 10.4%; width: 66.8%; height: 87.6%; z-index: 1; border-radius: 50% 50% 0 0 / 28% 28% 0 0; opacity: 0;
  background: radial-gradient(60% 48% at 50% 58%, rgba(255,250,240,.95) 0%, rgba(255,240,226,.6) 38%, rgba(236,224,246,0) 75%); }
.ti-opened.ti-theme-wisteria-dream .wd-gate__light, .wd-opened.ti-theme-wisteria-dream .wd-gate__light { animation: wd-gate-light 2.9s ease .5s both; }

.ti-theme-wisteria-dream .wd-cover__drape { position: absolute; left: 0; right: 0; top: 0; z-index: 3; display: block; pointer-events: none; transition: transform 1.8s var(--wd-ease2) 1.5s, opacity 1.4s ease 1.7s; }
.ti-theme-wisteria-dream .wd-cover__drape img { display: block; width: 100%; height: auto; }
.ti-opened.ti-theme-wisteria-dream .wd-cover__drape, .wd-opened.ti-theme-wisteria-dream .wd-cover__drape { transform: translateY(-34%); opacity: 0; }
.ti-theme-wisteria-dream .wd-cover__bq { position: absolute; bottom: -1.5svh; z-index: 4; width: min(48vw, 540px); height: auto; pointer-events: none; transition: transform 1.8s var(--wd-ease2) 1.45s, opacity 1.4s ease 1.65s; }
.ti-theme-wisteria-dream .wd-cover__bq--l { left: -9vw; }
.ti-theme-wisteria-dream .wd-cover__bq--r { right: -9vw; transform: scaleX(-1); }
.ti-opened.ti-theme-wisteria-dream .wd-cover__bq--l, .wd-opened.ti-theme-wisteria-dream .wd-cover__bq--l { transform: translateX(-30%); opacity: 0; }
.ti-opened.ti-theme-wisteria-dream .wd-cover__bq--r, .wd-opened.ti-theme-wisteria-dream .wd-cover__bq--r { transform: scaleX(-1) translateX(-30%); opacity: 0; }

/* konten tepat di atas panel kaca daun pintu (35–78% tinggi gerbang) */
.ti-theme-wisteria-dream .wd-cover__content { position: absolute; left: 50%; top: calc(var(--vh) - var(--gb) - var(--gh) * .625); bottom: calc(var(--gb) + var(--gh) * .165); z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: min(calc(var(--gh) * .43), 92vw); transform: translateX(-50%); text-align: center; transition: opacity .7s ease, transform .9s var(--wd-ease), filter .7s; }
.ti-opened.ti-theme-wisteria-dream .wd-cover__content, .wd-opened.ti-theme-wisteria-dream .wd-cover__content { opacity: 0; transform: translate(-50%, -16px); filter: blur(5px); }
.ti-theme-wisteria-dream .wd-cover__content::before { content: ""; position: absolute; inset: -4% -10%; z-index: -1; border-radius: 50%; background: radial-gradient(closest-side, rgba(255,252,247,.82), rgba(255,252,247,.5) 60%, rgba(255,252,247,0)); pointer-events: none; }
.ti-theme-wisteria-dream .wd-cover__content .wd-script { font-size: clamp(21px, 2.9vh, 30px); color: var(--wd-deep); text-shadow: 0 0 18px rgba(255,255,255,.9); }
.ti-theme-wisteria-dream .wd-cover__names { display: flex; flex-direction: column; align-items: center; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(32px, 5.5vh, 60px); line-height: 1; color: var(--wd-plum); text-shadow: 0 0 22px rgba(255,255,255,.95), 0 2px 2px rgba(255,255,255,.6); overflow-wrap: anywhere; }
.ti-theme-wisteria-dream .wd-cover__names em { margin: .02em 0 .04em; font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 300; font-size: .7em; line-height: 1; color: var(--wd-soft); }
.ti-theme-wisteria-dream .wd-cover__content .wd-divider { width: 180px; margin-top: 4px; }
.ti-theme-wisteria-dream .wd-cover__date { margin: 4px 0 8px; font-family: "Jost", sans-serif; font-weight: 500; font-size: clamp(11px, 1.55svh, 13.5px); letter-spacing: .24em; text-transform: uppercase; color: var(--wd-plum); text-shadow: 0 0 12px rgba(255,255,255,.95); }
.ti-theme-wisteria-dream .wd-cover__guest { margin: 0 0 12px; padding: 6px 16px; border-radius: 12px; background: rgba(255,253,249,.62); box-shadow: inset 0 0 0 1px rgba(201,189,172,.55); }
.ti-theme-wisteria-dream .wd-cover__guest p { margin: 0; }
.ti-theme-wisteria-dream .wd-cover__guest .ti-guest__label { font-size: 11.5px; letter-spacing: .05em; color: var(--wd-muted); }
.ti-theme-wisteria-dream .wd-cover__guest .ti-guest__name { font-family: "Cormorant Garamond", serif; font-weight: 600; font-size: 20px; line-height: 1.3; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-btn--open { min-height: 50px; padding: 12px 28px; animation: wd-glow 3.2s ease-in-out 1.2s 3; }
.ti-theme-wisteria-dream .wd-btn--open svg { flex: none; }

/* kelopak terhambur saat gerbang terbuka (sekali) */
.ti-theme-wisteria-dream .wd-burst { position: absolute; left: 50%; top: 56%; z-index: 6; width: 0; height: 0; pointer-events: none; }
.ti-theme-wisteria-dream .wd-burst i { position: absolute; left: -14px; top: -14px; width: 28px; height: 28px; opacity: 0; background: center / contain no-repeat;
  --x: calc((var(--n) - 6.5) * 7.4vw); --r: calc(var(--n) * 53deg); }
.ti-theme-wisteria-dream .wd-burst i:nth-child(odd) { --y: calc(-12vh - var(--n) * 1.6vh); }
.ti-theme-wisteria-dream .wd-burst i:nth-child(even) { --y: calc(10vh + var(--n) * 1.4vh); }
.ti-theme-wisteria-dream .wd-burst i:nth-child(3n) { width: 20px; height: 20px; }
.ti-opened.ti-theme-wisteria-dream .wd-burst i, .wd-opened.ti-theme-wisteria-dream .wd-burst i { animation: wd-burst 3.2s cubic-bezier(.2,.7,.3,1) calc(.5s + var(--n) * .04s) both; }

/* Layar pendek mendatar (HP landscape): gerbang di kiri, teks di kanan */
@media (orientation: landscape) and (max-height: 560px) {
  .ti-theme-wisteria-dream .wd-cover { --gh: 94vh; --gb: 1vh; }
  .ti-theme-wisteria-dream .wd-gate { left: 27%; }
  .ti-theme-wisteria-dream .wd-cover__content { left: auto; right: 4vw; top: 5vh; bottom: 5vh; width: 46vw; transform: none; padding: 10px 18px; border-radius: 18px; background: rgba(251,248,243,.8); box-shadow: 0 0 0 1px rgba(201,189,172,.5); }
  .ti-opened.ti-theme-wisteria-dream .wd-cover__content, .wd-opened.ti-theme-wisteria-dream .wd-cover__content { transform: translateY(-16px); }
  .ti-theme-wisteria-dream .wd-cover__names { flex-direction: row; gap: .2em; font-size: 40px; }
  .ti-theme-wisteria-dream .wd-cover__names em { margin: 0; }
  .ti-theme-wisteria-dream .wd-cover__bq { width: 30vw; }
}

/* ========== Navigasi & toast ========== */
.ti-theme-wisteria-dream .wd-nav { position: fixed; left: 12px; bottom: 12px; z-index: 30; display: flex; gap: 2px; max-width: calc(100vw - 84px); overflow-x: auto; scrollbar-width: none; padding: 5px 7px; border: 1px solid rgba(201,189,172,.7); border-radius: 999px;
  background: rgba(251,248,243,.86); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 16px 34px -18px rgba(74,57,97,.55); transform: translateY(160%); opacity: 0; transition: transform .7s var(--wd-ease), opacity .7s; }
.ti-theme-wisteria-dream .wd-nav::-webkit-scrollbar { display: none; }
.ti-opened.ti-theme-wisteria-dream .wd-nav, .wd-opened.ti-theme-wisteria-dream .wd-nav { transform: none; opacity: 1; transition-delay: 2.6s; }
.ti-opened.ti-theme-wisteria-dream .wd-nav.is-hidden, .wd-opened.ti-theme-wisteria-dream .wd-nav.is-hidden { transform: translateY(160%); opacity: 0; transition-delay: 0s; }
.ti-theme-wisteria-dream .wd-nav a { position: relative; display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; color: var(--wd-plum); text-decoration: none; transition: color .3s, background .4s; }
.ti-theme-wisteria-dream .wd-nav a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ti-theme-wisteria-dream .wd-nav a:hover, .ti-theme-wisteria-dream .wd-nav a.is-active { color: #fff; background: linear-gradient(135deg, #B096DA, #8F72C2); }
.ti-theme-wisteria-dream .wd-toast { position: fixed; left: 50%; bottom: 76px; z-index: 70; max-width: calc(100vw - 32px); padding: 12px 22px; border-radius: 999px; background: rgba(74,57,97,.96); color: #FFFDF9; font-size: 14px; letter-spacing: .03em; text-align: center;
  box-shadow: 0 18px 34px -16px rgba(30,20,45,.8); opacity: 0; transform: translate(-50%, 14px); pointer-events: none; transition: opacity .4s, transform .5s var(--wd-ease); }
.ti-theme-wisteria-dream .wd-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.ti-theme-wisteria-dream .wd-toast::before { content: "\2740"; margin-right: 10px; color: #D8C6F2; }

/* ========== Struktur ========== */
.ti-theme-wisteria-dream .wd-main { position: relative; z-index: 2; overflow: clip; }
.ti-theme-wisteria-dream .wd-section { position: relative; padding: 96px 22px; text-align: center; overflow: hidden; }
.ti-theme-wisteria-dream .wd-head { position: relative; z-index: 2; margin: 0 auto 34px; }
.ti-theme-wisteria-dream .wd-head__crest { display: block; width: 50px; height: auto; margin: 0 auto 8px; }
.ti-theme-wisteria-dream .wd-drape { position: absolute; left: 0; right: 0; top: 0; z-index: 1; display: block; pointer-events: none; }
.ti-theme-wisteria-dream .wd-drape img { display: block; width: 100%; height: auto; }
.ti-theme-wisteria-dream .wd-strand { position: absolute; top: -6px; z-index: 1; width: clamp(62px, 15vw, 150px); height: auto; pointer-events: none; }
.ti-theme-wisteria-dream .wd-strand--l { left: -8px; }
.ti-theme-wisteria-dream .wd-strand--r { right: -8px; transform: scaleX(-1); }
.ti-theme-wisteria-dream .wd-bq { position: absolute; bottom: -8px; z-index: 1; width: clamp(170px, 42vw, 460px); height: auto; pointer-events: none; }
.ti-theme-wisteria-dream .wd-bq--l { left: -7vw; }
.ti-theme-wisteria-dream .wd-bq--r { right: -7vw; transform: scaleX(-1); }

/* ========== HERO ========== */
.ti-theme-wisteria-dream .wd-hero { position: relative; display: flex; align-items: center; justify-content: center; min-height: 100vh; min-height: 100svh; overflow: hidden; text-align: center; background: #EDE5F2; }
.ti-theme-wisteria-dream .wd-hero__veil { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(56% 40% at 50% 50%, rgba(255,251,245,.78) 0%, rgba(255,251,245,.35) 55%, rgba(255,251,245,0) 80%), linear-gradient(180deg, rgba(251,248,243,0) 70%, var(--wd-ivory) 100%); }
.ti-theme-wisteria-dream .wd-hero__drape { position: absolute; left: 0; right: 0; top: 0; z-index: 2; display: block; pointer-events: none; }
.ti-theme-wisteria-dream .wd-hero__drape img { display: block; width: 100%; height: auto; }
.ti-theme-wisteria-dream .wd-hero__bq { position: absolute; bottom: 0; z-index: 2; width: clamp(160px, 40vw, 440px); height: auto; pointer-events: none; opacity: 0; transition: opacity 1.4s ease 2.6s, transform 1.6s var(--wd-ease) 2.6s; }
.ti-theme-wisteria-dream .wd-hero__bq--l { left: -6vw; transform: translateX(-24px); }
.ti-theme-wisteria-dream .wd-hero__bq--r { right: -6vw; transform: scaleX(-1) translateX(-24px); }
.ti-opened.ti-theme-wisteria-dream .wd-hero__bq--l, .wd-opened.ti-theme-wisteria-dream .wd-hero__bq--l { opacity: 1; transform: none; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__bq--r, .wd-opened.ti-theme-wisteria-dream .wd-hero__bq--r { opacity: 1; transform: scaleX(-1); }
.ti-theme-wisteria-dream .wd-hero__content { position: relative; z-index: 3; max-width: 760px; padding: clamp(150px, 22vh, 210px) 22px 110px; }
.ti-theme-wisteria-dream .wd-hero__content > * { opacity: 0; transform: translateY(18px); transition: opacity 1.2s var(--wd-ease), transform 1.4s var(--wd-ease); }
.ti-opened.ti-theme-wisteria-dream .wd-hero__content > *, .wd-opened.ti-theme-wisteria-dream .wd-hero__content > * { opacity: 1; transform: none; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(1), .wd-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(1) { transition-delay: 2.3s; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(2), .wd-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(2) { transition-delay: 2.45s; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(3), .wd-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(3) { transition-delay: 2.6s; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(4), .wd-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(4) { transition-delay: 3s; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(5), .wd-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(5) { transition-delay: 3.15s; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(6), .wd-opened.ti-theme-wisteria-dream .wd-hero__content > :nth-child(6) { transition-delay: 3.5s; }
.ti-theme-wisteria-dream .wd-mono { position: relative; display: grid; place-items: center; width: 62px; margin: 0 auto 6px; }
.ti-theme-wisteria-dream .wd-mono img { width: 62px; height: auto; }
.ti-theme-wisteria-dream .wd-mono b { font-size: 19px; }
.ti-theme-wisteria-dream .wd-hero__names { display: flex; flex-direction: column; align-items: center; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: clamp(50px, 14.5vw, 108px); line-height: .98; color: var(--wd-plum); text-shadow: 0 0 30px rgba(255,251,245,.95), 0 0 2px rgba(255,255,255,.8); overflow-wrap: anywhere; }
.ti-theme-wisteria-dream .wd-hero__names em { margin: .02em 0 .06em; font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 300; font-size: .66em; line-height: 1; color: var(--wd-soft); }
.ti-theme-wisteria-dream .wd-hero__names span { display: block; opacity: 0; transform: translateY(16px); filter: blur(8px); transition: opacity 1.6s var(--wd-ease), transform 1.8s var(--wd-ease), filter 1.6s ease; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__names span, .wd-opened.ti-theme-wisteria-dream .wd-hero__names span, .ti-opened.ti-theme-wisteria-dream .wd-hero__names em, .wd-opened.ti-theme-wisteria-dream .wd-hero__names em { opacity: 1; transform: none; filter: none; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__names span:first-child, .wd-opened.ti-theme-wisteria-dream .wd-hero__names span:first-child { transition-delay: 2.6s; }
.ti-opened.ti-theme-wisteria-dream .wd-hero__names span:last-child, .wd-opened.ti-theme-wisteria-dream .wd-hero__names span:last-child { transition-delay: 2.95s; }
.ti-theme-wisteria-dream .wd-hero__date { margin: 14px 0 0; font-family: "Jost", sans-serif; font-weight: 500; font-size: 13.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--wd-plum); text-shadow: 0 0 14px rgba(255,255,255,.95); }
.ti-theme-wisteria-dream .wd-explore { display: inline-flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 30px; color: var(--wd-deep); text-decoration: none; font-size: 11px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; text-shadow: 0 0 10px rgba(255,255,255,.9); }
.ti-theme-wisteria-dream .wd-explore i { position: relative; width: 1px; height: 42px; background: linear-gradient(180deg, var(--wd-soft), transparent); }
.ti-theme-wisteria-dream .wd-explore i::after { content: ""; position: absolute; left: -2.5px; top: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--wd-soft); animation: wd-drop 2.4s ease-in-out 3.6s 4; }

/* kupu-kupu: mengepak beberapa kali lalu hinggap diam */
.ti-theme-wisteria-dream .wd-fly { position: absolute; z-index: 3; width: 34px; height: auto; pointer-events: none; opacity: 0; transition: opacity 1.2s ease 2.8s; }
.ti-theme-wisteria-dream .wd-fly--a { left: 14%; top: 31%; transform: rotate(-14deg); }
.ti-theme-wisteria-dream .wd-fly--b { right: 13%; top: 46%; width: 26px; transform: rotate(12deg); }
.ti-opened.ti-theme-wisteria-dream .wd-fly, .wd-opened.ti-theme-wisteria-dream .wd-fly { opacity: .95; }
.ti-theme-wisteria-dream .wd-fly__w { transform-box: fill-box; }
.ti-theme-wisteria-dream .wd-fly__w--l { transform-origin: 100% 50%; }
.ti-theme-wisteria-dream .wd-fly__w--r { transform-origin: 0% 50%; }
.ti-opened.ti-theme-wisteria-dream .wd-fly__w, .wd-opened.ti-theme-wisteria-dream .wd-fly__w { animation: wd-flap .42s ease-in-out 3s 9 alternate; }
.ti-opened.ti-theme-wisteria-dream .wd-fly--b .wd-fly__w, .wd-opened.ti-theme-wisteria-dream .wd-fly--b .wd-fly__w { animation-delay: 3.4s; animation-iteration-count: 7; }

/* kelopak melayang di hero: sedikit, dua putaran lalu berhenti */
.ti-theme-wisteria-dream .wd-drift { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }
.ti-theme-wisteria-dream .wd-drift i { position: absolute; top: -40px; left: calc(6% + var(--n) * 12%); width: 20px; height: 20px; opacity: 0; background: center / contain no-repeat; }
.ti-theme-wisteria-dream .wd-drift i:nth-child(3n) { width: 15px; height: 15px; }
.ti-opened.ti-theme-wisteria-dream .wd-drift i, .wd-opened.ti-theme-wisteria-dream .wd-drift i { animation: wd-fall calc(11s + var(--n) * .9s) linear calc(2.6s + var(--n) * 1.3s) 2; }
.ti-theme-wisteria-dream .wd-hero.is-off .wd-drift i, .ti-theme-wisteria-dream .wd-hero.is-off .wd-fly__w { animation-play-state: paused; }

/* ========== PENGANTAR (kutipan + foto unggulan) ========== */
.ti-theme-wisteria-dream .wd-intro { display: grid; justify-items: center; gap: 30px; padding-top: 56px; background: linear-gradient(180deg, var(--wd-ivory) 0%, #F3EDF8 100%); }
.ti-theme-wisteria-dream .wd-arch { position: relative; width: min(440px, 86vw); margin: 0; }
.ti-theme-wisteria-dream .wd-arch__frame { position: relative; display: block; overflow: hidden; border-radius: 999px 999px 14px 14px / 46% 46% 14px 14px; background: var(--wd-pale); box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 0 0 9px rgba(251,248,243,.92), 0 0 0 10px rgba(201,189,172,.75), 0 40px 60px -36px rgba(74,57,97,.65); }
.ti-theme-wisteria-dream .wd-arch__frame img { display: block; width: 100%; height: auto; max-height: 82vh; object-fit: cover; object-position: 50% 28%; }
.ti-theme-wisteria-dream .wd-arch__spray { position: absolute; left: -14%; right: -14%; bottom: -9%; z-index: 2; width: 128%; max-width: none; height: auto; pointer-events: none; }
.ti-theme-wisteria-dream .wd-intro__text { position: relative; z-index: 2; max-width: 640px; padding-top: 10px; }
.ti-theme-wisteria-dream .wd-intro__crest { display: block; width: 46px; margin: 0 auto 10px; }
.ti-theme-wisteria-dream .wd-quote { margin: 0; }
.ti-theme-wisteria-dream .wd-quote p { margin: 0; font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 400; font-size: clamp(22px, 5.6vw, 30px); line-height: 1.55; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-quote cite { display: block; margin-top: 14px; font-family: "Jost", sans-serif; font-style: normal; font-weight: 500; font-size: 11.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--wd-champ-d); }

/* ========== MEMPELAI ========== */
.ti-theme-wisteria-dream .wd-couple { padding-top: clamp(118px, 13vw, 190px); background: radial-gradient(60% 40% at 50% 30%, rgba(255,255,255,.7), transparent 70%), linear-gradient(180deg, #F3EDF8 0%, var(--wd-ivory) 60%, #F5EFF8 100%); }
.ti-theme-wisteria-dream .wd-couple .wd-text { position: relative; z-index: 2; }
.ti-theme-wisteria-dream .wd-couple__grid { position: relative; z-index: 2; display: grid; gap: 22px; max-width: 980px; margin: 44px auto 0; }
.ti-theme-wisteria-dream .wd-couple__amp { margin: 0; font-family: "Pinyon Script", cursive; font-size: 58px; line-height: 1; color: var(--wd-lav); }
.ti-theme-wisteria-dream .wd-person { display: grid; justify-items: center; gap: 22px; }
.ti-theme-wisteria-dream .wd-portrait { position: relative; width: min(290px, 74vw); aspect-ratio: 3 / 4.3; margin-top: 20px; }
.ti-theme-wisteria-dream .wd-portrait::before { content: ""; position: absolute; inset: -11px; border: 1px solid rgba(201,189,172,.9); border-radius: 999px 999px 18px 18px / 38% 38% 18px 18px; }
.ti-theme-wisteria-dream .wd-portrait::after { content: ""; position: absolute; inset: -5px; border: 1px solid rgba(180,151,214,.55); border-radius: 999px 999px 16px 16px / 37% 37% 16px 16px; }
.ti-theme-wisteria-dream .wd-portrait__photo { position: absolute; inset: 0; overflow: hidden; border-radius: 999px 999px 14px 14px / 36% 36% 14px 14px; background: linear-gradient(160deg, var(--wd-pale), #D8C9EC); box-shadow: 0 36px 50px -32px rgba(74,57,97,.7); }
.ti-theme-wisteria-dream .wd-portrait__photo img, .ti-theme-wisteria-dream .wd-portrait__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 24%; }
.ti-theme-wisteria-dream .wd-portrait__photo .ti-couple-monogram { display: grid; place-items: center; width: 100%; height: 100%; font-family: "Cormorant Garamond", serif; font-style: italic; font-size: 96px; color: var(--wd-soft); }
.ti-theme-wisteria-dream .wd-portrait__spray { position: absolute; left: -18%; bottom: -7%; z-index: 2; width: 136%; max-width: none; height: auto; pointer-events: none; }
.ti-theme-wisteria-dream .wd-person__nick { font-family: "Cormorant Garamond", serif; font-weight: 500; font-size: clamp(38px, 10vw, 50px); line-height: 1.1; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-person__name { margin: 4px 0 10px; font-family: "Jost", sans-serif; font-weight: 500; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: var(--wd-deep); }

/* ========== ACARA (gradasi lavender → soft purple) ========== */
.ti-theme-wisteria-dream .wd-events { color: #FFFDF9; background: radial-gradient(70% 40% at 15% 0%, rgba(232,220,246,.5), transparent 70%), radial-gradient(60% 40% at 90% 100%, rgba(200,162,200,.55), transparent 70%), linear-gradient(165deg, #BDA6E0 0%, #A188CF 48%, #A98BC8 100%); }
.ti-theme-wisteria-dream .wd-events .wd-title { color: #FFFDF9; }
.ti-theme-wisteria-dream .wd-events .wd-script { color: #F6EEFF; }
.ti-theme-wisteria-dream .wd-events__grid { display: grid; gap: 30px; max-width: 980px; margin: 0 auto; }
.ti-theme-wisteria-dream .wd-card { position: relative; padding: 88px 24px 30px; overflow: visible; color: var(--wd-ink); border-radius: 220px 220px 18px 18px / 150px 150px 18px 18px; background: linear-gradient(180deg, #FFFDFA 0%, #F7F2FA 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 0 0 8px rgba(255,255,255,.18), 0 40px 56px -36px rgba(46,30,70,.75); }
.ti-theme-wisteria-dream .wd-card::before { content: ""; position: absolute; inset: 9px; border: 1px solid rgba(201,189,172,.7); border-radius: 212px 212px 12px 12px / 142px 142px 12px 12px; pointer-events: none; }
.ti-theme-wisteria-dream .wd-card__spray { position: absolute; left: 50%; top: -30px; width: 300px; max-width: 92%; height: auto; transform: translateX(-50%); pointer-events: none; }
.ti-theme-wisteria-dream .wd-card__name { font-family: "Cormorant Garamond", serif; font-weight: 500; font-size: 34px; line-height: 1.15; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-card__day { margin: 10px 0 0; font-weight: 500; font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--wd-deep); }
.ti-theme-wisteria-dream .wd-card__date { display: flex; align-items: baseline; justify-content: center; gap: 10px; margin: 0 0 14px; font-family: "Cormorant Garamond", serif; font-size: 22px; color: var(--wd-muted); }
.ti-theme-wisteria-dream .wd-card__date span { font-size: 64px; line-height: 1.05; color: var(--wd-soft); }
.ti-theme-wisteria-dream .wd-card__info { display: grid; gap: 10px; max-width: 320px; margin: 0 auto 22px; padding: 16px 0 0; list-style: none; text-align: left; border-top: 1px solid rgba(201,189,172,.5); }
.ti-theme-wisteria-dream .wd-card__info li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 14.5px; line-height: 1.55; color: var(--wd-muted); }
.ti-theme-wisteria-dream .wd-card__info svg { margin-top: 2px; color: var(--wd-soft); }
.ti-theme-wisteria-dream .wd-card__info strong { font-weight: 500; color: var(--wd-ink); }
.ti-theme-wisteria-dream .wd-card__actions { margin-top: 14px; }
.ti-theme-wisteria-dream .wd-card__actions:empty { display: none; }
.ti-theme-wisteria-dream .wd-card__actions .ti-btn--maps { display: none; }
.ti-theme-wisteria-dream .wd-events .wd-center { margin: 34px 0 0; }

/* tombol inti TitikInvite di dalam tema */
.ti-theme-wisteria-dream .ti-btn { border-radius: 999px; font-family: "Jost", sans-serif; font-weight: 500; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; transition: transform .4s var(--wd-ease), background .4s, color .4s; }
.ti-theme-wisteria-dream .ti-btn--primary, .ti-theme-wisteria-dream .ti-btn--maps { background: linear-gradient(135deg, #A68AD3, #8B6DBE); border-color: #8B6DBE; color: #FFFDF9; }
.ti-theme-wisteria-dream .ti-btn--ghost { background: transparent; border-color: rgba(155,123,196,.55); color: var(--wd-deep); }
.ti-theme-wisteria-dream .ti-btn:hover { transform: translateY(-2px); }

/* ========== COUNTDOWN ========== */
.ti-theme-wisteria-dream .wd-count { padding-top: 110px; padding-bottom: 104px; background: linear-gradient(180deg, #A98BC8 0%, #CDB9E6 34%, #EFE7F6 70%, var(--wd-ivory) 100%); }
.ti-theme-wisteria-dream .wd-count .wd-script { color: #FFFDF9; text-shadow: 0 2px 14px rgba(74,57,97,.35); }
.ti-theme-wisteria-dream .wd-count .wd-title { position: relative; z-index: 2; color: #FFFDF9; text-shadow: 0 2px 18px rgba(74,57,97,.35); }
.ti-theme-wisteria-dream .wd-count__box { position: relative; z-index: 2; max-width: 560px; margin: 26px auto 0; }
.ti-theme-wisteria-dream .wd-countdown { display: flex; justify-content: center; gap: 10px; }
.ti-theme-wisteria-dream .wd-countdown .ti-countdown__item { position: relative; flex: 1; max-width: 120px; padding: 22px 4px 14px; border-radius: 80px 80px 12px 12px / 54px 54px 12px 12px; background: rgba(255,253,250,.82); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 0 0 5px rgba(255,255,255,.25), 0 22px 30px -22px rgba(74,57,97,.6); }
.ti-theme-wisteria-dream .wd-countdown .ti-countdown__num { display: block; font-family: "Cormorant Garamond", serif; font-weight: 500; font-size: clamp(36px, 10.5vw, 58px); line-height: 1.02; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-countdown .ti-countdown__label { display: block; font-family: "Jost", sans-serif; font-weight: 500; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--wd-deep); opacity: 1; }
.ti-theme-wisteria-dream .wd-count__date { position: relative; z-index: 2; margin: 22px 0 0; font-weight: 500; font-size: 12.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--wd-plum); }

/* ========== FILM ========== */
.ti-theme-wisteria-dream .wd-film { background: var(--wd-ivory); }
.ti-theme-wisteria-dream .wd-video { max-width: 900px; margin: 0 auto; overflow: hidden; border-radius: 18px; box-shadow: 0 0 0 1px rgba(201,189,172,.6), 0 34px 50px -34px rgba(74,57,97,.6); }

/* ========== GALERI ========== */
.ti-theme-wisteria-dream .wd-gallery { padding-top: clamp(118px, 13vw, 190px); background: radial-gradient(50% 30% at 0% 40%, rgba(200,162,200,.18), transparent 70%), radial-gradient(50% 30% at 100% 70%, rgba(180,151,214,.18), transparent 70%), var(--wd-ivory); }
.ti-theme-wisteria-dream .wd-drape--soft { opacity: .96; }
.ti-theme-wisteria-dream .wd-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: dense; gap: 10px; max-width: 1180px; margin: 0 auto; }
.ti-theme-wisteria-dream .wd-shot { position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 10px; background: linear-gradient(160deg, var(--wd-pale), #DCCDEE); box-shadow: 0 22px 34px -26px rgba(74,57,97,.7); }
.ti-theme-wisteria-dream .wd-shot::after { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(255,255,255,.7); border-radius: 6px; pointer-events: none; }
.ti-theme-wisteria-dream .wd-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; transition: filter .6s ease; }
.ti-theme-wisteria-dream .wd-shot:hover img { filter: brightness(1.05) saturate(1.05); }
.ti-theme-wisteria-dream .wd-shot.is-landscape { grid-column: span 2; aspect-ratio: 3 / 2; }
.ti-theme-wisteria-dream .wd-shot.is-feature { grid-column: 1 / -1; aspect-ratio: auto; justify-self: center; width: 100%; border-radius: 16px; }
.ti-theme-wisteria-dream .wd-shot.is-feature.is-portrait, .ti-theme-wisteria-dream .wd-shot.is-feature.is-square { width: min(100%, 560px); }
.ti-theme-wisteria-dream .wd-shot.is-feature img { height: auto; max-height: 86vh; object-fit: contain; background: var(--wd-pale); }
.ti-theme-wisteria-dream .wd-shot.is-feature::after { inset: 10px; border-radius: 10px; }

/* ========== KISAH ========== */
.ti-theme-wisteria-dream .wd-story { background: linear-gradient(180deg, var(--wd-ivory) 0%, #F2ECF8 50%, var(--wd-ivory) 100%); }
.ti-theme-wisteria-dream .wd-timeline { position: relative; max-width: 980px; margin: 0 auto; padding-left: 34px; text-align: left; }
.ti-theme-wisteria-dream .wd-timeline::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: 6px; width: 1px; background: linear-gradient(180deg, transparent, var(--wd-champ) 8%, var(--wd-lav) 50%, var(--wd-champ) 92%, transparent); }
.ti-theme-wisteria-dream .wd-timeline { z-index: 2; }
.ti-theme-wisteria-dream .wd-chapter { position: relative; display: grid; gap: 18px; margin-bottom: 46px; }
.ti-theme-wisteria-dream .wd-chapter:last-child { margin-bottom: 0; }
.ti-theme-wisteria-dream .wd-chapter__node { position: absolute; left: -29px; top: 6px; width: 13px; height: 13px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #F1EAFA, var(--wd-lav) 60%, var(--wd-soft)); box-shadow: 0 0 0 4px var(--wd-ivory), 0 0 0 5px rgba(201,189,172,.8); }
.ti-theme-wisteria-dream .wd-chapter__media { overflow: hidden; border-radius: 140px 140px 12px 12px / 90px 90px 12px 12px; background: var(--wd-pale); box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 0 0 7px rgba(255,255,255,.7), 0 0 0 8px rgba(201,189,172,.6), 0 30px 44px -30px rgba(74,57,97,.65); }
.ti-theme-wisteria-dream .wd-chapter__media img { display: block; width: 100%; height: auto; }
.ti-theme-wisteria-dream .wd-chapter__media.is-portrait { max-width: 360px; }
.ti-theme-wisteria-dream .wd-chapter__body { position: relative; padding: 22px 22px 20px; border-radius: 16px; background: rgba(255,253,250,.86); box-shadow: 0 0 0 1px rgba(201,189,172,.45), 0 24px 36px -30px rgba(74,57,97,.55); }
.ti-theme-wisteria-dream .wd-chapter__no { position: absolute; right: 18px; top: 8px; font-family: "Cormorant Garamond", serif; font-style: italic; font-size: 42px; line-height: 1; color: rgba(155,123,196,.28); }
.ti-theme-wisteria-dream .wd-chapter__body h3 { margin: 0 0 8px; font-family: "Cormorant Garamond", serif; font-weight: 500; font-size: 28px; line-height: 1.2; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-chapter__body p { margin: 0; color: var(--wd-muted); }

/* ========== LOKASI ========== */
.ti-theme-wisteria-dream .wd-venue { background: radial-gradient(60% 30% at 50% 0%, rgba(236,228,246,.9), transparent 70%), var(--wd-ivory); }
.ti-theme-wisteria-dream .wd-venue__list { display: grid; gap: 52px; max-width: 1000px; margin: 52px auto 0; }
.ti-theme-wisteria-dream .wd-place { position: relative; padding: 46px 20px 26px; border-radius: 22px; background: linear-gradient(180deg, #FFFDFA, #F6F1FA); box-shadow: 0 0 0 1px rgba(201,189,172,.55), 0 30px 46px -34px rgba(74,57,97,.6); }
.ti-theme-wisteria-dream .wd-place__spray, .ti-theme-wisteria-dream .wd-form__spray { position: absolute; left: 50%; top: -34px; z-index: 2; width: 300px; max-width: 90%; height: auto; transform: translateX(-50%); pointer-events: none; }
.ti-theme-wisteria-dream .wd-place__name { font-family: "Cormorant Garamond", serif; font-weight: 500; font-size: 30px; line-height: 1.2; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-place__addr { max-width: 460px; margin: 8px auto 18px; font-size: 14.5px; color: var(--wd-muted); }
.ti-theme-wisteria-dream .wd-map { position: relative; margin: 0 0 20px; overflow: hidden; aspect-ratio: 16 / 11; border-radius: 14px; background: linear-gradient(160deg, var(--wd-pale), #E2D6EF); box-shadow: 0 0 0 1px rgba(201,189,172,.6), inset 0 0 0 6px rgba(255,255,255,.6); }
.ti-theme-wisteria-dream .wd-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: saturate(.85) hue-rotate(-8deg); }

/* ========== RSVP & UCAPAN ========== */
.ti-theme-wisteria-dream .wd-rsvp { padding-bottom: 150px; background: radial-gradient(50% 30% at 50% 100%, rgba(255,255,255,.6), transparent 70%), linear-gradient(180deg, #F3EDF8 0%, #E9DEF3 100%); }
.ti-theme-wisteria-dream .wd-rsvp .wd-text { margin-bottom: 52px; }
.ti-theme-wisteria-dream .wd-wishes__box { margin-top: 52px; }
.ti-theme-wisteria-dream .wd-bq--soft { width: clamp(150px, 34vw, 380px); }
.ti-theme-wisteria-dream .wd-form, .ti-theme-wisteria-dream .wd-wishes__box { position: relative; z-index: 2; max-width: 620px; margin: 0 auto; padding: 50px 22px 30px; text-align: left; border-radius: 22px; background: rgba(255,253,250,.92); box-shadow: 0 0 0 1px rgba(201,189,172,.55), 0 34px 50px -36px rgba(74,57,97,.6); }
.ti-theme-wisteria-dream .ti-field label, .ti-theme-wisteria-dream .ti-field legend { font-family: "Jost", sans-serif; font-weight: 500; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--wd-plum); }
.ti-theme-wisteria-dream .ti-field input[type="text"], .ti-theme-wisteria-dream .ti-field input[type="number"], .ti-theme-wisteria-dream .ti-field input[type="tel"], .ti-theme-wisteria-dream .ti-field input[type="email"], .ti-theme-wisteria-dream .ti-field select, .ti-theme-wisteria-dream .ti-field textarea {
  width: 100%; min-height: 46px; font-family: "Jost", sans-serif; font-weight: 300; font-size: 15px; color: var(--wd-ink); border: 1px solid #D9CFE6; border-radius: 12px; background: #FFFEFC; }
.ti-theme-wisteria-dream .ti-field input:focus, .ti-theme-wisteria-dream .ti-field select:focus, .ti-theme-wisteria-dream .ti-field textarea:focus { outline: none; border-color: var(--wd-soft); box-shadow: 0 0 0 3px rgba(155,123,196,.22); }
.ti-theme-wisteria-dream .ti-choice span { font-family: "Jost", sans-serif; border-color: #D9CFE6; border-radius: 999px; }
.ti-theme-wisteria-dream .wd-form .ti-btn--primary, .ti-theme-wisteria-dream .wd-form button[type="submit"], .ti-theme-wisteria-dream .wd-wishes button[type="submit"] { width: 100%; min-height: 50px; border: 1px solid #8B6DBE; border-radius: 999px; background: linear-gradient(135deg, #A68AD3 0%, #8B6DBE 60%, #9E7FC9 100%); color: #FFFDF9; font-family: "Jost", sans-serif; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.ti-theme-wisteria-dream .wd-wishes { background: var(--wd-ivory); }
.ti-theme-wisteria-dream .wd-wishes form, .ti-theme-wisteria-dream .wd-wishes .ti-guestbook__form { margin-bottom: 22px; padding: 20px; border-radius: 16px; background: #FCFAFE; box-shadow: inset 0 0 0 1px rgba(201,189,172,.5); }
.ti-theme-wisteria-dream .wd-wishes .ti-guestbook__item { position: relative; margin-bottom: 14px; padding: 18px 18px 14px 56px; border-radius: 16px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(217,207,230,.8), 0 16px 26px -24px rgba(74,57,97,.5); }
.ti-theme-wisteria-dream .wd-wishes .ti-guestbook__item::before { content: "\201C"; position: absolute; left: 16px; top: 2px; font-family: "Cormorant Garamond", serif; font-size: 58px; line-height: 1; color: var(--wd-lav); }
.ti-theme-wisteria-dream .wd-wishes .ti-guestbook__item strong, .ti-theme-wisteria-dream .wd-wishes .ti-guestbook__item b { font-family: "Jost", sans-serif; font-weight: 500; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--wd-plum); }
.ti-theme-wisteria-dream .wd-wishes .ti-guestbook__item p { font-family: "Cormorant Garamond", serif; font-style: italic; font-size: 18px; line-height: 1.55; color: var(--wd-muted); }

/* ========== HADIAH ========== */
.ti-theme-wisteria-dream .wd-giftsec { color: #FFFDF9; background: radial-gradient(60% 40% at 85% 0%, rgba(236,228,246,.45), transparent 70%), linear-gradient(170deg, #B8A0DD 0%, #9D82CA 60%, #A98BC8 100%); }
.ti-theme-wisteria-dream .wd-giftsec .wd-title, .ti-theme-wisteria-dream .wd-giftsec .wd-text { color: #FFFDF9; }
.ti-theme-wisteria-dream .wd-giftsec .wd-script { color: #F6EEFF; }
.ti-theme-wisteria-dream .wd-gift { position: relative; z-index: 2; display: grid; gap: 20px; max-width: 900px; margin: 0 auto; }
.ti-theme-wisteria-dream .wd-gift .ti-gift__card { position: relative; padding: 36px 24px 28px; overflow: hidden; color: var(--wd-ink); border: 0; border-radius: 22px; background: linear-gradient(160deg, #FFFDFA 0%, #F4EEFA 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 36px 52px -34px rgba(46,30,70,.8); transition: transform .5s var(--wd-ease); }
.ti-theme-wisteria-dream .wd-gift .ti-gift__card::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(201,189,172,.7); border-radius: 16px; pointer-events: none; }
.ti-theme-wisteria-dream .wd-gift .ti-gift__card:hover { transform: translateY(-4px); }
.ti-theme-wisteria-dream .wd-gift .ti-gift__bank { font-family: "Jost", sans-serif; font-weight: 500; font-size: 13px; letter-spacing: .28em; text-transform: uppercase; color: var(--wd-deep); }
.ti-theme-wisteria-dream .wd-gift .ti-gift__no { font-family: "Cormorant Garamond", serif; font-weight: 600; font-size: 30px; letter-spacing: .05em; color: var(--wd-plum); overflow-wrap: anywhere; }
.ti-theme-wisteria-dream .wd-gift button, .ti-theme-wisteria-dream .wd-gift .ti-btn { position: relative; z-index: 1; border: 1px solid #8B6DBE; border-radius: 999px; background: linear-gradient(135deg, #A68AD3, #8B6DBE); color: #FFFDF9; font-family: "Jost", sans-serif; font-weight: 500; letter-spacing: .16em; cursor: pointer; }
.ti-theme-wisteria-dream .wd-gift .is-copied { background: #6E559F; }

/* ========== PENUTUP ========== */
.ti-theme-wisteria-dream .wd-closing { position: relative; display: flex; align-items: center; justify-content: center; min-height: 100vh; min-height: 100svh; padding: clamp(150px, 20vw, 260px) 22px 150px; overflow: hidden; text-align: center; background: #EDE2EA; }
.ti-theme-wisteria-dream .wd-closing__veil { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, var(--wd-ivory) 0%, rgba(251,248,243,0) 26%), radial-gradient(58% 42% at 50% 52%, rgba(255,250,244,.82) 0%, rgba(255,250,244,.42) 55%, rgba(255,250,244,0) 82%); }
.ti-theme-wisteria-dream .wd-drape--closing { z-index: 2; }
.ti-theme-wisteria-dream .wd-bq--closing { z-index: 2; }
.ti-theme-wisteria-dream .wd-closing__content { position: relative; z-index: 3; max-width: 640px; }
.ti-theme-wisteria-dream .wd-closing__names { margin: 6px 0 0; font-family: "Cormorant Garamond", serif; font-weight: 500; font-size: clamp(44px, 12vw, 88px); line-height: 1.05; color: var(--wd-plum); text-shadow: 0 0 28px rgba(255,250,244,.95); overflow-wrap: anywhere; }
.ti-theme-wisteria-dream .wd-closing .wd-text { margin-top: 18px; color: var(--wd-ink); text-shadow: 0 0 14px rgba(255,250,244,.9); }
.ti-theme-wisteria-dream .wd-closing__thanks { margin: 6px 0 0; font-family: "Cormorant Garamond", serif; font-style: italic; font-size: 21px; color: var(--wd-deep); text-shadow: 0 0 14px rgba(255,250,244,.9); }
.ti-theme-wisteria-dream .wd-footer { padding: 26px 20px 92px; text-align: center; font-size: 11px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--wd-muted); background: linear-gradient(180deg, #EFE6F3, #E5D9EE); }

/* ========== Reveal sekali (IntersectionObserver di script.js) — tanpa zoom ========== */
.ti-theme-wisteria-dream [data-wd-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 1.1s var(--wd-ease) calc(var(--d, 0) * .14s), transform 1.3s var(--wd-ease) calc(var(--d, 0) * .14s); }
.ti-theme-wisteria-dream [data-wd-reveal].is-shown { opacity: 1; transform: none; }
.ti-theme-wisteria-dream [data-wd-reveal="left"] { transform: translateX(-38px); }
.ti-theme-wisteria-dream [data-wd-reveal="right"] { transform: translateX(38px); }
.ti-theme-wisteria-dream .wd-strand--r[data-wd-reveal="right"] { transform: scaleX(-1) translateX(-38px); }
.ti-theme-wisteria-dream .wd-strand--r[data-wd-reveal].is-shown, .ti-theme-wisteria-dream .wd-bq--r[data-wd-reveal].is-shown { transform: scaleX(-1); }
.ti-theme-wisteria-dream .wd-bq--r[data-wd-reveal="right"] { transform: scaleX(-1) translateX(-38px); }
.ti-theme-wisteria-dream [data-wd-reveal="drape"] { transform: translateY(-24px); transition-duration: 1.6s, 1.8s; }
.ti-theme-wisteria-dream [data-wd-reveal="photo"] { transform: translateY(28px); }
.ti-theme-wisteria-dream [data-wd-reveal="photo"] img { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s var(--wd-ease2) calc(.15s + var(--d, 0) * .14s); }
.ti-theme-wisteria-dream [data-wd-reveal="photo"].is-shown img { clip-path: inset(0 0 0 0); }
.ti-theme-wisteria-dream [data-wd-reveal="names"] { filter: blur(8px); transition: opacity 1.4s var(--wd-ease) calc(var(--d, 0) * .14s), transform 1.5s var(--wd-ease) calc(var(--d, 0) * .14s), filter 1.4s ease calc(var(--d, 0) * .14s); }
.ti-theme-wisteria-dream [data-wd-reveal="names"].is-shown { filter: none; }

/* ========== Responsif ========== */
@media (min-width: 560px) {
  .ti-theme-wisteria-dream .wd-events__grid, .ti-theme-wisteria-dream .wd-gift { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
@media (min-width: 760px) {
  .ti-theme-wisteria-dream .wd-section { padding: 118px 40px; }
  .ti-theme-wisteria-dream .wd-intro { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; max-width: 1100px; margin: 0 auto; padding-top: 90px; padding-left: max(40px, calc(50vw - 560px)); padding-right: max(40px, calc(50vw - 560px)); max-width: none; text-align: left; }
  .ti-theme-wisteria-dream .wd-intro__crest { margin-left: 0; }
  .ti-theme-wisteria-dream .wd-intro .wd-divider { margin-left: 0; }
  .ti-theme-wisteria-dream .wd-couple__grid { grid-template-columns: 1fr auto 1fr; align-items: center; }
  .ti-theme-wisteria-dream .wd-couple__amp { font-size: 76px; }
  .ti-theme-wisteria-dream .wd-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  .ti-theme-wisteria-dream .wd-venue__list { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
  .ti-theme-wisteria-dream .wd-timeline { padding-left: 0; }
  .ti-theme-wisteria-dream .wd-timeline::before { left: 50%; }
  .ti-theme-wisteria-dream .wd-chapter { grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; margin-bottom: 70px; }
  .ti-theme-wisteria-dream .wd-chapter__node { left: 50%; top: 50%; margin: -6px 0 0 -6px; }
  .ti-theme-wisteria-dream .wd-chapter--alt .wd-chapter__media { order: 2; }
  .ti-theme-wisteria-dream .wd-chapter--text .wd-chapter__body { grid-column: 1 / -1; max-width: 520px; margin: 0 auto; }
  .ti-theme-wisteria-dream .wd-chapter__media.is-portrait { justify-self: center; }
  .ti-theme-wisteria-dream .wd-nav { left: 50%; transform: translate(-50%, 160%); max-width: none; padding: 6px 9px; }
  .ti-opened.ti-theme-wisteria-dream .wd-nav, .wd-opened.ti-theme-wisteria-dream .wd-nav { transform: translate(-50%, 0); }
  .ti-opened.ti-theme-wisteria-dream .wd-nav.is-hidden, .wd-opened.ti-theme-wisteria-dream .wd-nav.is-hidden { transform: translate(-50%, 160%); }
  .ti-theme-wisteria-dream .wd-nav a { width: 44px; height: 44px; }
  .ti-theme-wisteria-dream .wd-form, .ti-theme-wisteria-dream .wd-wishes__box { padding: 38px 36px; }
}
@media (min-width: 1100px) {
  .ti-theme-wisteria-dream .wd-fly--a { left: 24%; }
  .ti-theme-wisteria-dream .wd-fly--b { right: 24%; }
}

/* Mode ringan (perangkat lemah / hemat data): tanpa blur latar, kupu-kupu & kelopak */
.ti-theme-wisteria-dream.wd-lite .wd-nav { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(251,248,243,.96); }
.ti-theme-wisteria-dream.wd-lite .wd-drift, .ti-theme-wisteria-dream.wd-lite .wd-fly { display: none; }

@media (prefers-reduced-motion: reduce) {
  .ti-theme-wisteria-dream *, .ti-theme-wisteria-dream *::before, .ti-theme-wisteria-dream *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .ti-theme-wisteria-dream [data-wd-reveal], .ti-theme-wisteria-dream [data-wd-reveal] img { opacity: 1 !important; transform: none !important; clip-path: none !important; filter: none !important; }
  .ti-theme-wisteria-dream .wd-strand--r, .ti-theme-wisteria-dream .wd-bq--r { transform: scaleX(-1) !important; }
  .ti-theme-wisteria-dream .wd-drift, .ti-theme-wisteria-dream .wd-burst, .ti-theme-wisteria-dream .wd-fly { display: none; }
  .ti-opened.ti-theme-wisteria-dream .wd-door--l, .wd-opened.ti-theme-wisteria-dream .wd-door--l, .ti-opened.ti-theme-wisteria-dream .wd-door--r, .wd-opened.ti-theme-wisteria-dream .wd-door--r { transform: none; }
}

@keyframes wd-loader-auto { to { opacity: 0; visibility: hidden; } }
@keyframes wd-breathe { 0%, 100% { opacity: .75; } 50% { opacity: 1; } }
@keyframes wd-line { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes wd-glow { 0%, 100% { box-shadow: 0 0 0 1px rgba(155,123,196,.35), 0 14px 26px -14px rgba(74,57,97,.75); } 50% { box-shadow: 0 0 0 7px rgba(180,151,214,.22), 0 14px 26px -14px rgba(74,57,97,.75); } }
@keyframes wd-gate-light { 0% { opacity: 0; } 40% { opacity: 1; } 75% { opacity: .85; } 100% { opacity: 0; } }
@keyframes wd-burst { 0% { opacity: 0; transform: translate(0, 0) rotate(0); } 12% { opacity: 1; } 70% { opacity: .9; } 100% { opacity: 0; transform: translate(var(--x), calc(var(--y) + 18vh)) rotate(var(--r)); } }
@keyframes wd-fall { 0% { opacity: 0; transform: translate(0, 0) rotate(0); } 8% { opacity: .9; } 50% { transform: translate(5vw, 55vh) rotate(160deg); } 92% { opacity: .8; } 100% { opacity: 0; transform: translate(-3vw, 108vh) rotate(320deg); } }
@keyframes wd-flap { to { transform: scaleX(.35); } }
@keyframes wd-drop { 0% { transform: translateY(0); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(36px); opacity: 0; } }
