/* Tema Buttercream Soleil — Golden Bloom. Namespace .ti-theme-buttercream-soleil, prefix kelas bs-
   (Premium · Modern Buttercream Garden Luxury: mawar cream/butter/peach, ranunculus, daun sage, gerbang champagne gold)
   Sumber: assets/source/style.src.css → buildcss.py → style.css (lihat buildcss.py untuk arti penanda selektor). */
.ti-theme-buttercream-soleil {
  --bs-butter: #F4DE9C; --bs-paleb: #F8EBC4; --bs-gold: #EFD487; --bs-golddeep: #A9863F; --bs-ivory: #FFFBF2; --bs-warm: #FBF4E4;
  --bs-champl: #E3CF9F; --bs-champd: #B4955A; --bs-peach: #F2C9AE; --bs-ink: #4A3B24; --bs-muted: #6F6048; --bs-brown: #8A6A2F; --bs-mist: #FCF3DE; --bs-sage: #A3B28E;
  --bs-ease: cubic-bezier(.22,.61,.24,1); --bs-ease2: cubic-bezier(.62,.02,.22,1);
  --bs-satin: repeating-linear-gradient(102deg, rgba(255,255,255,0) 0, rgba(255,255,255,0) 46px, rgba(255,255,255,.16) 78px, rgba(255,255,255,0) 112px, rgba(255,255,255,0) 150px);
  --ti-ease: cubic-bezier(.22,.61,.24,1); --ti-dur: 1.1s;
  background: var(--bs-ivory); color: var(--bs-ink); font-family: "Outfit", "Segoe UI", system-ui, sans-serif; font-weight: 400; font-size: 15.5px; line-height: 1.75;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
.ti-theme-buttercream-soleil *, .ti-theme-buttercream-soleil *::before, .ti-theme-buttercream-soleil *::after { box-sizing: border-box; }
.ti-theme-buttercream-soleil h1, .ti-theme-buttercream-soleil h2, .ti-theme-buttercream-soleil h3 { margin: 0; font-weight: 400; }
.ti-theme-buttercream-soleil img { max-width: 100%; }
.ti-theme-buttercream-soleil .bs-kicker { margin: 0 0 12px; padding-left: .34em; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .34em; text-transform: uppercase; color: var(--bs-brown); }
.ti-theme-buttercream-soleil .bs-script { margin: 0 0 4px; font-family: "Allura", "DM Serif Display", cursive; font-weight: 400; font-size: clamp(25px, 7vw, 34px); line-height: 1.25; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-label { display: block; margin: 0 0 6px; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--bs-champd); }
.ti-theme-buttercream-soleil .bs-title { font-family: "DM Serif Display", Georgia, serif; font-weight: 400; font-size: clamp(31px, 8.6vw, 52px); line-height: 1.14; letter-spacing: .01em; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-sub { margin: 8px 0 0; font-family: "DM Serif Display", serif; font-style: italic; font-size: 18px; color: var(--bs-muted); }
.ti-theme-buttercream-soleil .bs-text { max-width: 600px; margin: 0 auto 22px; color: var(--bs-muted); }
.ti-theme-buttercream-soleil .bs-text--lead { font-family: "DM Serif Display", serif; font-style: italic; font-size: 18.5px; line-height: 1.6; color: var(--bs-brown); }
.ti-theme-buttercream-soleil .bs-text--sm { font-size: 14px; margin-bottom: 8px; }
.ti-theme-buttercream-soleil .bs-center { text-align: center; }
.ti-theme-buttercream-soleil .bs-divider { display: block; width: 280px; max-width: 78%; height: auto; margin: 14px auto 0; }
.ti-theme-buttercream-soleil .bs-link { display: inline-block; padding-bottom: 2px; color: var(--bs-golddeep); text-decoration: none; font-size: 13.5px; font-weight: 500; letter-spacing: .04em; background: linear-gradient(var(--bs-butter), var(--bs-butter)) 0 100% / 0 1px no-repeat; transition: background-size .6s var(--bs-ease); }
.ti-theme-buttercream-soleil .bs-link:hover { background-size: 100% 1px; }

/* Tombol: dusty blue satin dengan bingkai silver */
.ti-theme-buttercream-soleil .bs-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,.75); border-radius: 999px;
  background: linear-gradient(135deg, #C29B54 0%, #9A7636 55%, #B08A45 100%); color: #FFFFFF; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  box-shadow: 0 0 0 1px rgba(180,149,90,.45), 0 14px 26px -14px rgba(92,72,36,.7), inset 0 1px 0 rgba(255,255,255,.4); transition: transform .45s var(--bs-ease), box-shadow .45s; }
.ti-theme-buttercream-soleil .bs-btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.38) 50%, transparent 70%); transform: translateX(-120%); transition: transform 1s var(--bs-ease); }
.ti-theme-buttercream-soleil .bs-btn:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(180,149,90,.55), 0 20px 32px -16px rgba(92,72,36,.75), inset 0 1px 0 rgba(255,255,255,.4); }
.ti-theme-buttercream-soleil .bs-btn:hover::after { transform: translateX(120%); }
.ti-theme-buttercream-soleil .bs-btn:focus-visible { outline: 2px solid var(--bs-brown); outline-offset: 3px; }
.ti-theme-buttercream-soleil .bs-btn--small { min-height: 42px; padding: 8px 22px; font-size: 10.5px; }
.ti-theme-buttercream-soleil .bs-btn--ghost { background: rgba(255,251,240,.55); border-color: rgba(169,134,63,.6); color: var(--bs-brown); }

/* ========== Loader ========== */
.ti-theme-buttercream-soleil .bs-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%, #FFFFFF 0%, #FBF1DC 65%, #F4E5C2 100%); transition: opacity .8s ease, visibility .8s; animation: bs-loader-auto 0s linear 6s forwards; }
.ti-theme-buttercream-soleil.bs-loaded .bs-loader { opacity: 0; visibility: hidden; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-loader__mono { position: relative; display: grid; place-items: center; width: 72px; animation: bs-breathe 2.6s ease-in-out infinite; }
.ti-theme-buttercream-soleil .bs-loader__mono img { width: 72px; }
.ti-theme-buttercream-soleil .bs-loader__mono b, .ti-theme-buttercream-soleil .bs-mono b { position: absolute; left: 0; right: 0; top: 54%; font-family: "DM Serif Display", serif; font-style: italic; font-weight: 400; font-size: 19px; letter-spacing: .04em; color: var(--bs-ink); text-align: center; }
.ti-theme-buttercream-soleil .bs-loader__brand { margin: 0; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .5em; padding-left: .5em; text-transform: uppercase; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-loader__line { position: relative; width: 140px; height: 1px; overflow: hidden; background: rgba(169,134,63,.25); }
.ti-theme-buttercream-soleil .bs-loader__line i { position: absolute; inset: 0; background: linear-gradient(90deg, transparent, var(--bs-butter), transparent); animation: bs-line 1.4s ease-in-out infinite; }

/* ========== PEMBUKA — gerbang ========== */
.ti-theme-buttercream-soleil .bs-cover { --gh: min(87vh, 172vw); --gb: 1.6vh; --vh: 100vh; position: fixed; inset: 0; z-index: 40; overflow: hidden; background: #F6EBD0; transition: visibility 0s linear 3.9s; }
@supports (height: 1svh) { .ti-theme-buttercream-soleil .bs-cover { --gh: min(87svh, 172vw); --gb: 1.6svh; --vh: 100svh; } }
.ti-opened.ti-theme-buttercream-soleil .bs-cover, .bs-opened.ti-theme-buttercream-soleil .bs-cover { visibility: hidden; }
.ti-opened.ti-theme-buttercream-soleil .bs-cover *, .bs-opened.ti-theme-buttercream-soleil .bs-cover * { pointer-events: none; }
.ti-theme-buttercream-soleil .bs-cover__bg, .ti-theme-buttercream-soleil .bs-hero__bg, .ti-theme-buttercream-soleil .bs-closing__bg { position: absolute; inset: 0; display: block; }
.ti-theme-buttercream-soleil .bs-cover__bg img, .ti-theme-buttercream-soleil .bs-hero__bg img, .ti-theme-buttercream-soleil .bs-closing__bg img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 44%; }
.ti-theme-buttercream-soleil .bs-cover__bg { transition: opacity 1.3s ease 2.4s; }
.ti-opened.ti-theme-buttercream-soleil .bs-cover__bg, .bs-opened.ti-theme-buttercream-soleil .bs-cover__bg { opacity: 0; }
.ti-theme-buttercream-soleil .bs-cover__glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(60% 46% at 50% 56%, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 70%), linear-gradient(180deg, rgba(248,235,196,.3) 0%, rgba(248,235,196,0) 40%, rgba(92,72,36,.14) 100%); transition: opacity 1.2s ease 2.1s; }
.ti-opened.ti-theme-buttercream-soleil .bs-cover__glow, .bs-opened.ti-theme-buttercream-soleil .bs-cover__glow { opacity: 0; }

.ti-theme-buttercream-soleil .bs-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-buttercream-soleil .bs-gate__arch { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; transition: opacity 1.5s ease 1.9s, transform 1.9s var(--bs-ease2) 1.75s; }
.ti-opened.ti-theme-buttercream-soleil .bs-gate__arch, .bs-opened.ti-theme-buttercream-soleil .bs-gate__arch { opacity: 0; transform: translateY(-2.5%); }
/* lubang pintu berbentuk lengkung: cahaya golden hour + sinar matahari lembut */
.ti-theme-buttercream-soleil .bs-doorway { position: absolute; left: 17.84%; top: 10.43%; width: 64.33%; height: 86.96%; z-index: 1; overflow: hidden; border-radius: 50% 50% 0 0 / 25% 25% 0 0; transition: opacity 1s ease 2.5s; }
.ti-opened.ti-theme-buttercream-soleil .bs-doorway, .bs-opened.ti-theme-buttercream-soleil .bs-doorway { opacity: 0; }
.ti-theme-buttercream-soleil .bs-doorway__light { position: absolute; inset: 0; opacity: 0; background: radial-gradient(56% 46% at 50% 56%, rgba(255,255,255,.98) 0%, rgba(255,236,196,.72) 40%, rgba(248,235,196,0) 78%); }
.ti-opened.ti-theme-buttercream-soleil .bs-doorway__light, .bs-opened.ti-theme-buttercream-soleil .bs-doorway__light { animation: bs-light 2.8s ease .7s both; }
.ti-theme-buttercream-soleil .bs-doorway__rays { position: absolute; left: -40%; right: -40%; top: 18%; height: 120%; opacity: 0; background: repeating-conic-gradient(from 180deg at 50% 40%, rgba(255,244,214,.0) 0deg 7deg, rgba(255,240,200,.55) 9deg 11deg, rgba(255,244,214,0) 13deg 20deg); -webkit-mask-image: radial-gradient(closest-side at 50% 40%, #000 30%, transparent 100%); mask-image: radial-gradient(closest-side at 50% 40%, #000 30%, transparent 100%); }
.ti-opened.ti-theme-buttercream-soleil .bs-doorway__rays, .bs-opened.ti-theme-buttercream-soleil .bs-doorway__rays { animation: bs-rays 3s ease .9s both; }
.ti-theme-buttercream-soleil .bs-door { position: absolute; top: 9.95%; width: 33.796%; height: 87.922%; z-index: 3; transform-origin: 2.085% 50%; transition: transform 2.3s cubic-bezier(.45,.05,.2,1) .35s, opacity 1s ease 1.6s; }
.ti-theme-buttercream-soleil .bs-door--l { left: 17.13%; }
.ti-theme-buttercream-soleil .bs-door--r { left: 49.074%; transform-origin: 97.915% 50%; }
.ti-theme-buttercream-soleil .bs-door img { display: block; width: 100%; height: 100%; transition: filter 2.2s ease .3s; }
.ti-theme-buttercream-soleil .bs-door--r img { transform: scaleX(-1); }
.ti-opened.ti-theme-buttercream-soleil .bs-door, .bs-opened.ti-theme-buttercream-soleil .bs-door { z-index: 6; }
.ti-opened.ti-theme-buttercream-soleil .bs-door--l, .bs-opened.ti-theme-buttercream-soleil .bs-door--l { transform: rotateY(-76deg); opacity: 0; }
.ti-opened.ti-theme-buttercream-soleil .bs-door--r, .bs-opened.ti-theme-buttercream-soleil .bs-door--r { transform: rotateY(76deg); opacity: 0; }
.ti-opened.ti-theme-buttercream-soleil .bs-door img, .bs-opened.ti-theme-buttercream-soleil .bs-door img { filter: brightness(1.06) saturate(1.05); }

.ti-theme-buttercream-soleil .bs-cover__corner { position: absolute; z-index: 5; width: min(54vw, 560px); height: auto; pointer-events: none; transition: transform 1.8s var(--bs-ease2) 1.55s, opacity 1.4s ease 1.75s; }
.ti-theme-buttercream-soleil .bs-cover__corner--tr { right: -9vw; top: -3vh; transform: scaleX(-1); }
.ti-theme-buttercream-soleil .bs-cover__corner--bl { left: -9vw; bottom: -2vh; }
.ti-opened.ti-theme-buttercream-soleil .bs-cover__corner--tr, .bs-opened.ti-theme-buttercream-soleil .bs-cover__corner--tr { transform: scaleX(-1) translate(-22%, -16%); opacity: 0; }
.ti-opened.ti-theme-buttercream-soleil .bs-cover__corner--bl, .bs-opened.ti-theme-buttercream-soleil .bs-cover__corner--bl { transform: translate(-22%, 16%); opacity: 0; }

/* konten di atas panel tengah daun pintu (30–83% tinggi gerbang) */
.ti-theme-buttercream-soleil .bs-cover__content { position: absolute; left: 50%; top: calc(var(--vh) - var(--gb) - var(--gh) * .7); bottom: calc(var(--gb) + var(--gh) * .17); z-index: 6; 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(--bs-ease), filter .7s; }
.ti-opened.ti-theme-buttercream-soleil .bs-cover__content, .bs-opened.ti-theme-buttercream-soleil .bs-cover__content { opacity: 0; transform: translate(-50%, -16px); filter: blur(5px); }
.ti-theme-buttercream-soleil .bs-cover__content .bs-script { font-size: clamp(24px, 3.2vh, 34px); color: var(--bs-golddeep); text-shadow: 0 0 14px rgba(255,251,240,.95); }
.ti-theme-buttercream-soleil .bs-cover__names { display: flex; flex-direction: column; align-items: center; font-family: "DM Serif Display", Georgia, serif; font-weight: 400; font-size: clamp(31px, 5.3vh, 58px); line-height: 1.02; color: var(--bs-ink); text-shadow: 0 0 22px rgba(255,251,240,.95), 0 1px 0 rgba(255,255,255,.6); overflow-wrap: anywhere; }
.ti-theme-buttercream-soleil .bs-cover__names em { margin: .04em 0 .06em; font-family: "Allura", cursive; font-style: normal; font-size: .72em; line-height: 1; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-cover__card { margin-top: 12px; padding: 12px 14px 14px; border-radius: 18px; background: rgba(250,248,244,.86); box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 0 0 5px rgba(255,255,255,.2), 0 18px 34px -20px rgba(92,72,36,.75); }
.ti-theme-buttercream-soleil .bs-cover__date { margin: 0 0 8px; font-family: "Outfit", sans-serif; font-weight: 600; font-size: clamp(10.5px, 1.5vh, 12.5px); letter-spacing: .22em; text-transform: uppercase; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-cover__guest { margin: 0 0 12px; padding: 0 6px 10px; border-bottom: 1px solid rgba(180,149,90,.35); }
.ti-theme-buttercream-soleil .bs-cover__guest p { margin: 0; }
.ti-theme-buttercream-soleil .bs-cover__guest .ti-guest__label { font-size: 11px; letter-spacing: .04em; color: var(--bs-muted); }
.ti-theme-buttercream-soleil .bs-cover__guest .ti-guest__name { font-family: "DM Serif Display", serif; font-weight: 500; font-size: 18px; line-height: 1.3; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-btn--open { min-height: 48px; padding: 11px 26px; }
.ti-theme-buttercream-soleil .bs-btn--open svg { flex: none; }

.ti-theme-buttercream-soleil .bs-burst { position: absolute; left: 50%; top: 56%; z-index: 7; width: 0; height: 0; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-burst i { position: absolute; left: -12px; top: -12px; width: 24px; height: 24px; opacity: 0; background: center / contain no-repeat; --x: calc((var(--n) - 5.5) * 8.2vw); --r: calc(var(--n) * 61deg); }
.ti-theme-buttercream-soleil .bs-burst i:nth-child(odd) { --y: calc(-10vh - var(--n) * 1.5vh); }
.ti-theme-buttercream-soleil .bs-burst i:nth-child(even) { --y: calc(8vh + var(--n) * 1.3vh); }
.ti-theme-buttercream-soleil .bs-burst i:nth-child(3n) { width: 17px; height: 17px; }
.ti-opened.ti-theme-buttercream-soleil .bs-burst i, .bs-opened.ti-theme-buttercream-soleil .bs-burst i { animation: bs-burst 3.1s cubic-bezier(.2,.7,.3,1) calc(1s + var(--n) * .045s) both; }

@media (orientation: landscape) and (max-height: 560px) {
  .ti-theme-buttercream-soleil .bs-cover { --gh: 94vh; --gb: 1vh; }
  .ti-theme-buttercream-soleil .bs-gate { left: 27%; }
  .ti-theme-buttercream-soleil .bs-cover__content { left: auto; right: 4vw; top: 5vh; bottom: 5vh; width: 46vw; transform: none; padding: 10px 18px; border-radius: 18px; background: rgba(169,134,63,.82); box-shadow: 0 0 0 1px rgba(255,255,255,.6); }
  .ti-opened.ti-theme-buttercream-soleil .bs-cover__content, .bs-opened.ti-theme-buttercream-soleil .bs-cover__content { transform: translateY(-16px); }
  .ti-theme-buttercream-soleil .bs-cover__names { flex-direction: row; gap: .2em; font-size: 38px; }
  .ti-theme-buttercream-soleil .bs-cover__names em { margin: 0; }
  .ti-theme-buttercream-soleil .bs-cover__card { margin-top: 6px; padding: 8px 12px 10px; }
  .ti-theme-buttercream-soleil .bs-cover__corner { width: 30vw; }
}

/* ========== Navigasi & toast ========== */
.ti-theme-buttercream-soleil .bs-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(227,207,159,.85); border-radius: 999px;
  background: rgba(250,248,244,.88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 16px 34px -18px rgba(92,72,36,.5); transform: translateY(160%); opacity: 0; transition: transform .7s var(--bs-ease), opacity .7s; }
.ti-theme-buttercream-soleil .bs-nav::-webkit-scrollbar { display: none; }
.ti-opened.ti-theme-buttercream-soleil .bs-nav, .bs-opened.ti-theme-buttercream-soleil .bs-nav { transform: none; opacity: 1; transition-delay: 2.7s; }
.ti-opened.ti-theme-buttercream-soleil .bs-nav.is-hidden, .bs-opened.ti-theme-buttercream-soleil .bs-nav.is-hidden { transform: translateY(160%); opacity: 0; transition-delay: 0s; }
.ti-theme-buttercream-soleil .bs-nav a { position: relative; display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; color: var(--bs-ink); text-decoration: none; transition: color .3s, background .4s; }
.ti-theme-buttercream-soleil .bs-nav a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ti-theme-buttercream-soleil .bs-nav a:hover, .ti-theme-buttercream-soleil .bs-nav a.is-active { color: #fff; background: linear-gradient(135deg, #D2B06A, #9A7636); }
.ti-theme-buttercream-soleil .bs-toast { position: fixed; left: 50%; bottom: 76px; z-index: 70; max-width: calc(100vw - 32px); padding: 12px 22px; border-radius: 999px; background: rgba(92,72,36,.96); color: #FFFFFF; font-size: 13.5px; letter-spacing: .03em; text-align: center;
  box-shadow: 0 18px 34px -16px rgba(60,46,20,.8); opacity: 0; transform: translate(-50%, 14px); pointer-events: none; transition: opacity .4s, transform .5s var(--bs-ease); }
.ti-theme-buttercream-soleil .bs-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.ti-theme-buttercream-soleil .bs-toast::before { content: "\25C7"; margin-right: 10px; color: var(--bs-paleb); }

/* ========== Struktur & dekorasi ========== */
.ti-theme-buttercream-soleil .bs-main { position: relative; z-index: 2; overflow: clip; }
.ti-theme-buttercream-soleil .bs-section { position: relative; padding: 96px 22px; text-align: center; overflow: hidden; }
.ti-theme-buttercream-soleil .bs-intro::after, .ti-theme-buttercream-soleil .bs-couple::after, .ti-theme-buttercream-soleil .bs-gallery::after, .ti-theme-buttercream-soleil .bs-story::after, .ti-theme-buttercream-soleil .bs-venue::after, .ti-theme-buttercream-soleil .bs-wishes::after, .ti-theme-buttercream-soleil .bs-rsvp::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: url(assets/img/paper.webp) 0 0 / 256px repeat; opacity: .55; mix-blend-mode: multiply; }
.ti-theme-buttercream-soleil .bs-head { position: relative; z-index: 2; margin: 0 auto 34px; }
.ti-theme-buttercream-soleil .bs-head__crest { display: block; width: 46px; height: auto; margin: 0 auto 8px; }
.ti-theme-buttercream-soleil .bs-corner { position: absolute; z-index: 1; width: clamp(150px, 40vw, 420px); height: auto; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-corner--tl { left: -6vw; top: -10px; }
.ti-theme-buttercream-soleil .bs-corner--tr { right: -6vw; top: -10px; transform: scaleX(-1); }
.ti-theme-buttercream-soleil .bs-corner--bl { left: -6vw; bottom: -8px; }
.ti-theme-buttercream-soleil .bs-corner--br { right: -6vw; bottom: -8px; transform: scaleX(-1); }
.ti-theme-buttercream-soleil .bs-corner--soft { width: clamp(140px, 34vw, 360px); }
.ti-theme-buttercream-soleil .bs-corner--low { width: clamp(140px, 32vw, 340px); }
.ti-theme-buttercream-soleil .bs-sprig { position: absolute; top: 20px; z-index: 1; width: clamp(48px, 12vw, 110px); height: auto; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-sprig--l { left: 2px; }
.ti-theme-buttercream-soleil .bs-sprig--r { right: 2px; transform: scaleX(-1); }

/* ========== HERO ========== */
.ti-theme-buttercream-soleil .bs-hero { position: relative; display: flex; align-items: center; justify-content: center; min-height: 100vh; min-height: 100svh; overflow: hidden; text-align: center; background: #F6EBD0; }
.ti-theme-buttercream-soleil .bs-hero__veil { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(54% 40% at 50% 50%, rgba(255,255,255,.74) 0%, rgba(255,255,255,.32) 55%, rgba(255,255,255,0) 80%), linear-gradient(180deg, rgba(250,248,244,0) 72%, var(--bs-ivory) 100%); }
.ti-theme-buttercream-soleil .bs-hero__corner { position: absolute; z-index: 2; width: clamp(170px, 46vw, 480px); height: auto; pointer-events: none; opacity: 0; transition: opacity 1.4s ease 2.6s, transform 1.6s var(--bs-ease) 2.6s; }
.ti-theme-buttercream-soleil .bs-hero__corner--tl { left: -7vw; top: -2vh; transform: translateX(-24px); }
.ti-theme-buttercream-soleil .bs-hero__corner--br { right: -7vw; bottom: 0; transform: scaleX(-1) translateX(-24px); }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__corner--tl, .bs-opened.ti-theme-buttercream-soleil .bs-hero__corner--tl { opacity: 1; transform: none; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__corner--br, .bs-opened.ti-theme-buttercream-soleil .bs-hero__corner--br { opacity: 1; transform: scaleX(-1); }
.ti-theme-buttercream-soleil .bs-hero__content { position: relative; z-index: 3; max-width: 760px; padding: clamp(130px, 18vh, 190px) 22px 120px; }
.ti-theme-buttercream-soleil .bs-hero__content > * { opacity: 0; transform: translateY(18px); transition: opacity 1.2s var(--bs-ease), transform 1.4s var(--bs-ease); }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__content > *, .bs-opened.ti-theme-buttercream-soleil .bs-hero__content > * { opacity: 1; transform: none; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(1), .bs-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(1) { transition-delay: 2.4s; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(2), .bs-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(2) { transition-delay: 2.55s; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(3), .bs-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(3) { transition-delay: 2.7s; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(4), .bs-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(4) { transition-delay: 3.1s; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(5), .bs-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(5) { transition-delay: 3.25s; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(6), .bs-opened.ti-theme-buttercream-soleil .bs-hero__content > :nth-child(6) { transition-delay: 3.6s; }
.ti-theme-buttercream-soleil .bs-hero .bs-kicker { display: inline-block; padding: 5px 14px 5px calc(14px + .34em); border-radius: 999px; background: rgba(250,248,244,.78); box-shadow: inset 0 0 0 1px rgba(227,207,159,.7); }
.ti-theme-buttercream-soleil .bs-mono { position: relative; display: grid; place-items: center; width: 60px; margin: 0 auto 6px; }
.ti-theme-buttercream-soleil .bs-mono img { width: 60px; height: auto; }
.ti-theme-buttercream-soleil .bs-mono b { font-size: 17px; }
.ti-theme-buttercream-soleil .bs-hero__names { display: flex; flex-direction: column; align-items: center; font-family: "DM Serif Display", Georgia, serif; font-weight: 400; font-size: clamp(46px, 13.4vw, 100px); line-height: 1; color: var(--bs-ink); text-shadow: 0 0 30px rgba(255,255,255,.95), 0 0 2px rgba(255,255,255,.8); overflow-wrap: anywhere; }
.ti-theme-buttercream-soleil .bs-hero__names em { margin: .04em 0 .06em; font-family: "Allura", cursive; font-style: normal; font-size: .62em; line-height: 1; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-hero__names span { display: block; opacity: 0; transform: translateY(16px); filter: blur(8px); transition: opacity 1.6s var(--bs-ease), transform 1.8s var(--bs-ease), filter 1.6s ease; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__names span, .bs-opened.ti-theme-buttercream-soleil .bs-hero__names span { opacity: 1; transform: none; filter: none; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__names span:first-child, .bs-opened.ti-theme-buttercream-soleil .bs-hero__names span:first-child { transition-delay: 2.7s; }
.ti-opened.ti-theme-buttercream-soleil .bs-hero__names span:last-child, .bs-opened.ti-theme-buttercream-soleil .bs-hero__names span:last-child { transition-delay: 3.05s; }
.ti-theme-buttercream-soleil .bs-hero__date { margin: 14px 0 0; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 12.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--bs-ink); text-shadow: 0 0 14px rgba(255,255,255,.95); }
.ti-theme-buttercream-soleil .bs-explore { display: inline-flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 30px; color: var(--bs-brown); text-decoration: none; font-size: 10.5px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; text-shadow: 0 0 10px rgba(255,255,255,.9); }
.ti-theme-buttercream-soleil .bs-explore i { position: relative; width: 1px; height: 42px; background: linear-gradient(180deg, var(--bs-golddeep), transparent); }
.ti-theme-buttercream-soleil .bs-explore i::after { content: ""; position: absolute; left: -2.5px; top: 0; width: 6px; height: 6px; transform: rotate(45deg); background: var(--bs-golddeep); animation: bs-drop 2.4s ease-in-out 3.8s 3; }
.ti-theme-buttercream-soleil .bs-drift { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-drift i { position: absolute; top: -40px; left: calc(8% + var(--n) * 16%); width: 18px; height: 18px; opacity: 0; background: center / contain no-repeat; }
.ti-opened.ti-theme-buttercream-soleil .bs-drift i, .bs-opened.ti-theme-buttercream-soleil .bs-drift i { animation: bs-fall calc(12s + var(--n) * 1s) linear calc(2.8s + var(--n) * 1.5s) 2; }
.ti-theme-buttercream-soleil .bs-hero.is-off .bs-drift i { animation-play-state: paused; }

/* ========== PENGANTAR ========== */
.ti-theme-buttercream-soleil .bs-intro { display: grid; justify-items: center; gap: 30px; padding-top: 56px; background: linear-gradient(180deg, var(--bs-ivory) 0%, var(--bs-mist) 100%); }
.ti-theme-buttercream-soleil .bs-arch { position: relative; width: min(440px, 86vw); margin: 0; }
.ti-theme-buttercream-soleil .bs-arch__frame { position: relative; display: block; overflow: hidden; border-radius: 999px 999px 18px 18px / 44% 44% 18px 18px; background: var(--bs-mist); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 0 0 9px rgba(250,248,244,.94), 0 0 0 10px rgba(227,207,159,.9), 0 40px 60px -36px rgba(92,72,36,.6); }
.ti-theme-buttercream-soleil .bs-arch__frame img { display: block; width: 100%; height: auto; max-height: 82vh; object-fit: cover; object-position: 50% 28%; }
.ti-theme-buttercream-soleil .bs-arch__spray { position: absolute; left: -12%; right: -12%; bottom: -6%; z-index: 2; width: 124%; max-width: none; height: auto; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-intro__text { position: relative; z-index: 2; max-width: 640px; padding-top: 10px; }
.ti-theme-buttercream-soleil .bs-intro__crest { display: block; width: 44px; margin: 0 auto 10px; }
.ti-theme-buttercream-soleil .bs-quote { margin: 0; }
.ti-theme-buttercream-soleil .bs-quote p { margin: 0; font-family: "DM Serif Display", serif; font-style: italic; font-weight: 400; font-size: clamp(19px, 5vw, 26px); line-height: 1.6; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-quote cite { display: block; margin-top: 14px; font-family: "Outfit", sans-serif; font-style: normal; font-weight: 600; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--bs-champd); }

/* ========== MEMPELAI ========== */
.ti-theme-buttercream-soleil .bs-couple { padding-top: clamp(120px, 14vw, 170px); background: radial-gradient(60% 40% at 50% 30%, rgba(255,255,255,.7), transparent 70%), linear-gradient(180deg, var(--bs-mist) 0%, var(--bs-ivory) 60%, var(--bs-mist) 100%); }
.ti-theme-buttercream-soleil .bs-couple .bs-text { position: relative; z-index: 2; }
.ti-theme-buttercream-soleil .bs-couple__grid { position: relative; z-index: 2; display: grid; gap: 22px; max-width: 980px; margin: 44px auto 0; }
.ti-theme-buttercream-soleil .bs-couple__amp { margin: 0; font-family: "Allura", cursive; font-size: 60px; line-height: 1; color: var(--bs-champd); }
.ti-theme-buttercream-soleil .bs-person { display: grid; justify-items: center; gap: 24px; }
.ti-theme-buttercream-soleil .bs-portrait { position: relative; width: min(270px, 70vw); aspect-ratio: 3 / 4.2; margin-top: 26px; }
.ti-theme-buttercream-soleil .bs-portrait__ring { position: absolute; left: 50%; top: -9%; width: 128%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; border: 1px solid rgba(180,149,90,.6); box-shadow: inset 0 0 0 6px rgba(248,235,196,.35); }
.ti-theme-buttercream-soleil .bs-portrait::after { content: ""; position: absolute; inset: -8px; border: 1px solid rgba(227,207,159,.95); border-radius: 30px; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-portrait__photo { position: absolute; inset: 0; overflow: hidden; border-radius: 24px; background: linear-gradient(160deg, var(--bs-mist), #F3E6C6); box-shadow: 0 36px 50px -32px rgba(92,72,36,.65); }
.ti-theme-buttercream-soleil .bs-portrait__photo img, .ti-theme-buttercream-soleil .bs-portrait__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 24%; }
.ti-theme-buttercream-soleil .bs-portrait__photo .ti-couple-monogram { display: grid; place-items: center; width: 100%; height: 100%; font-family: "DM Serif Display", serif; font-style: italic; font-size: 92px; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-portrait__spray { position: absolute; left: -20%; bottom: -8%; z-index: 2; width: 140%; max-width: none; height: auto; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-person__nick { font-family: "DM Serif Display", serif; font-weight: 400; font-size: clamp(34px, 9vw, 46px); line-height: 1.12; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-person__name { margin: 4px 0 10px; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 12.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--bs-golddeep); }

/* ========== ACARA (gradasi dusty blue + kilau satin) ========== */
.ti-theme-buttercream-soleil .bs-events { color: var(--bs-ink); background: var(--bs-satin), radial-gradient(70% 40% at 15% 0%, rgba(248,235,196,.55), transparent 70%), radial-gradient(60% 40% at 90% 100%, rgba(239,212,135,.5), transparent 70%), linear-gradient(165deg, #F8EBC4 0%, #F1D88E 50%, #F6E3AE 100%); }
.ti-theme-buttercream-soleil .bs-events .bs-title { color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-events .bs-script { color: #A9863F; }
.ti-theme-buttercream-soleil .bs-events__grid { position: relative; z-index: 2; display: grid; gap: 34px; max-width: 980px; margin: 0 auto; }
.ti-theme-buttercream-soleil .bs-card { position: relative; padding: 70px 24px 30px; color: var(--bs-ink); border-radius: 26px; background: linear-gradient(180deg, #FFFFFF 0%, #FDF7EA 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 0 0 8px rgba(255,255,255,.16), 0 40px 56px -36px rgba(92,72,36,.8); }
.ti-theme-buttercream-soleil .bs-card::before { content: ""; position: absolute; inset: 9px; border: 1px solid rgba(227,207,159,.85); border-radius: 19px; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-card__spray { position: absolute; left: 50%; top: -26px; width: 300px; max-width: 92%; height: auto; transform: translateX(-50%); pointer-events: none; }
.ti-theme-buttercream-soleil .bs-card__name { font-family: "DM Serif Display", serif; font-weight: 400; font-size: 31px; line-height: 1.15; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-card__day { margin: 10px 0 0; font-weight: 600; font-size: 11.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-card__date { display: flex; align-items: baseline; justify-content: center; gap: 10px; margin: 0 0 14px; font-family: "DM Serif Display", serif; font-size: 20px; color: var(--bs-muted); }
.ti-theme-buttercream-soleil .bs-card__date span { font-size: 60px; line-height: 1.05; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-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(227,207,159,.7); }
.ti-theme-buttercream-soleil .bs-card__info li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 14px; line-height: 1.55; color: var(--bs-muted); }
.ti-theme-buttercream-soleil .bs-card__info svg { margin-top: 2px; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-card__info strong { font-weight: 600; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-card__actions { margin-top: 14px; }
.ti-theme-buttercream-soleil .bs-card__actions:empty { display: none; }
.ti-theme-buttercream-soleil .bs-card__actions .ti-btn--maps { display: none; }
.ti-theme-buttercream-soleil .bs-events .bs-center { position: relative; z-index: 2; margin: 34px 0 0; }

.ti-theme-buttercream-soleil .ti-btn { border-radius: 999px; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; transition: transform .4s var(--bs-ease), background .4s, color .4s; }
.ti-theme-buttercream-soleil .ti-btn--primary, .ti-theme-buttercream-soleil .ti-btn--maps { background: linear-gradient(135deg, #C29B54, #9A7636); border-color: #9A7636; color: #FFFFFF; }
.ti-theme-buttercream-soleil .ti-btn--ghost { background: transparent; border-color: rgba(169,134,63,.55); color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .ti-btn:hover { transform: translateY(-2px); }

/* ========== COUNTDOWN ========== */
.ti-theme-buttercream-soleil .bs-count { padding-top: 100px; padding-bottom: 104px; background: linear-gradient(180deg, #F3DDA0 0%, #F8E9BE 36%, #FCF4DE 70%, var(--bs-ivory) 100%); }
.ti-theme-buttercream-soleil .bs-count .bs-script { color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-count .bs-title { position: relative; z-index: 2; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-count__box { position: relative; z-index: 2; max-width: 560px; margin: 26px auto 0; }
.ti-theme-buttercream-soleil .bs-countdown { display: flex; justify-content: center; gap: 10px; }
.ti-theme-buttercream-soleil .bs-countdown .ti-countdown__item { position: relative; flex: 1; max-width: 120px; padding: 20px 4px 14px; border-radius: 18px; background: rgba(255,255,255,.72); box-shadow: 0 0 0 1px rgba(255,255,255,.95), inset 0 0 0 4px rgba(248,235,196,.35), 0 22px 30px -22px rgba(92,72,36,.6); }
.ti-theme-buttercream-soleil .bs-countdown .ti-countdown__num { display: block; font-family: "DM Serif Display", serif; font-weight: 400; font-size: clamp(34px, 10vw, 54px); line-height: 1.04; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-countdown .ti-countdown__label { display: block; font-family: "Outfit", sans-serif; font-weight: 600; font-size: 9.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--bs-golddeep); opacity: 1; }
.ti-theme-buttercream-soleil .bs-count__date { position: relative; z-index: 2; margin: 22px 0 0; font-weight: 600; font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--bs-ink); }

.ti-theme-buttercream-soleil .bs-film { background: var(--bs-ivory); }
.ti-theme-buttercream-soleil .bs-video { max-width: 900px; margin: 0 auto; overflow: hidden; border-radius: 18px; box-shadow: 0 0 0 1px rgba(227,207,159,.8), 0 34px 50px -34px rgba(92,72,36,.6); }

/* ========== GALERI ========== */
.ti-theme-buttercream-soleil .bs-gallery { padding-top: clamp(110px, 12vw, 160px); background: radial-gradient(50% 30% at 0% 40%, rgba(248,235,196,.35), transparent 70%), radial-gradient(50% 30% at 100% 70%, rgba(239,212,135,.25), transparent 70%), var(--bs-ivory); }
.ti-theme-buttercream-soleil .bs-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-buttercream-soleil .bs-shot { position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 4px; background: linear-gradient(160deg, var(--bs-mist), #F5EAD0); box-shadow: 0 22px 34px -26px rgba(92,72,36,.65); }
.ti-theme-buttercream-soleil .bs-shot::after { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(255,255,255,.75); pointer-events: none; }
.ti-theme-buttercream-soleil .bs-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; transition: filter .6s ease; }
.ti-theme-buttercream-soleil .bs-shot:hover img { filter: brightness(1.05); }
.ti-theme-buttercream-soleil .bs-shot.is-landscape { grid-column: span 2; aspect-ratio: 3 / 2; }
.ti-theme-buttercream-soleil .bs-shot.is-feature { grid-column: 1 / -1; aspect-ratio: auto; justify-self: center; width: 100%; border-radius: 6px; padding: 10px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(227,207,159,.85), 0 30px 46px -30px rgba(92,72,36,.6); }
.ti-theme-buttercream-soleil .bs-shot.is-feature.is-portrait, .ti-theme-buttercream-soleil .bs-shot.is-feature.is-square { width: min(100%, 560px); }
.ti-theme-buttercream-soleil .bs-shot.is-feature img { height: auto; max-height: 86vh; object-fit: contain; background: var(--bs-mist); }
.ti-theme-buttercream-soleil .bs-shot.is-feature::after { inset: 18px; border-color: rgba(255,255,255,.8); }

/* ========== KISAH ========== */
.ti-theme-buttercream-soleil .bs-story { background: linear-gradient(180deg, var(--bs-ivory) 0%, var(--bs-mist) 50%, var(--bs-ivory) 100%); }
.ti-theme-buttercream-soleil .bs-timeline { position: relative; z-index: 2; max-width: 980px; margin: 0 auto; padding-left: 34px; text-align: left; }
.ti-theme-buttercream-soleil .bs-timeline::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: 6px; width: 1px; background: linear-gradient(180deg, transparent, var(--bs-champl) 8%, var(--bs-butter) 50%, var(--bs-champl) 92%, transparent); }
.ti-theme-buttercream-soleil .bs-chapter { position: relative; display: grid; gap: 18px; margin-bottom: 46px; }
.ti-theme-buttercream-soleil .bs-chapter:last-child { margin-bottom: 0; }
.ti-theme-buttercream-soleil .bs-chapter__node { position: absolute; left: -29px; top: 6px; width: 12px; height: 12px; transform: rotate(45deg); background: linear-gradient(135deg, #FFFFFF, var(--bs-paleb) 50%, var(--bs-butter)); box-shadow: 0 0 0 4px var(--bs-ivory), 0 0 0 5px rgba(180,149,90,.7); }
.ti-theme-buttercream-soleil .bs-chapter__media { overflow: hidden; border-radius: 18px; background: var(--bs-mist); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 0 0 7px rgba(255,255,255,.75), 0 0 0 8px rgba(227,207,159,.8), 0 30px 44px -30px rgba(92,72,36,.6); }
.ti-theme-buttercream-soleil .bs-chapter__media img { display: block; width: 100%; height: auto; }
.ti-theme-buttercream-soleil .bs-chapter__media.is-portrait { max-width: 360px; }
.ti-theme-buttercream-soleil .bs-chapter__body { position: relative; padding: 22px 22px 20px; border-radius: 16px; background: rgba(255,255,255,.88); box-shadow: 0 0 0 1px rgba(227,207,159,.6), 0 24px 36px -30px rgba(92,72,36,.5); }
.ti-theme-buttercream-soleil .bs-chapter__no { position: absolute; right: 18px; top: 8px; font-family: "DM Serif Display", serif; font-style: italic; font-size: 40px; line-height: 1; color: rgba(201,169,106,.32); }
.ti-theme-buttercream-soleil .bs-chapter__body h3 { margin: 0 0 8px; font-family: "DM Serif Display", serif; font-weight: 400; font-size: 25px; line-height: 1.22; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-chapter__body p { margin: 0; color: var(--bs-muted); }

/* ========== LOKASI ========== */
.ti-theme-buttercream-soleil .bs-venue { background: radial-gradient(60% 30% at 50% 0%, rgba(248,235,196,.7), transparent 70%), var(--bs-ivory); }
.ti-theme-buttercream-soleil .bs-venue__list { display: grid; gap: 52px; max-width: 1000px; margin: 52px auto 0; }
.ti-theme-buttercream-soleil .bs-place { position: relative; padding: 46px 20px 26px; border-radius: 22px; background: linear-gradient(180deg, #FFFFFF, #FFF9EE); box-shadow: 0 0 0 1px rgba(227,207,159,.75), 0 30px 46px -34px rgba(92,72,36,.55); }
.ti-theme-buttercream-soleil .bs-place__spray, .ti-theme-buttercream-soleil .bs-form__spray { position: absolute; left: 50%; top: -30px; z-index: 2; width: 300px; max-width: 90%; height: auto; transform: translateX(-50%); pointer-events: none; }
.ti-theme-buttercream-soleil .bs-place__name { font-family: "DM Serif Display", serif; font-weight: 400; font-size: 27px; line-height: 1.22; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-place__addr { max-width: 460px; margin: 8px auto 18px; font-size: 14px; color: var(--bs-muted); }
.ti-theme-buttercream-soleil .bs-map { position: relative; margin: 0 0 20px; overflow: hidden; aspect-ratio: 16 / 11; border-radius: 14px; background: linear-gradient(160deg, var(--bs-mist), #F5EAD0); box-shadow: 0 0 0 1px rgba(227,207,159,.8), inset 0 0 0 6px rgba(255,255,255,.6); }
.ti-theme-buttercream-soleil .bs-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: saturate(.8); }

/* ========== RSVP & UCAPAN ========== */
.ti-theme-buttercream-soleil .bs-rsvp { padding-bottom: 150px; background: radial-gradient(50% 30% at 50% 100%, rgba(255,255,255,.6), transparent 70%), linear-gradient(180deg, var(--bs-mist) 0%, #F7ECD2 100%); }
.ti-theme-buttercream-soleil .bs-rsvp .bs-text { margin-bottom: 52px; }
.ti-theme-buttercream-soleil .bs-wishes__box { margin-top: 52px; }
.ti-theme-buttercream-soleil .bs-form, .ti-theme-buttercream-soleil .bs-wishes__box { position: relative; z-index: 2; max-width: 620px; margin-left: auto; margin-right: auto; padding: 50px 22px 30px; text-align: left; border-radius: 22px; background: rgba(255,255,255,.93); box-shadow: 0 0 0 1px rgba(227,207,159,.75), 0 34px 50px -36px rgba(92,72,36,.55); }
.ti-theme-buttercream-soleil .ti-field label, .ti-theme-buttercream-soleil .ti-field legend { font-family: "Outfit", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .ti-field input[type="text"], .ti-theme-buttercream-soleil .ti-field input[type="number"], .ti-theme-buttercream-soleil .ti-field input[type="tel"], .ti-theme-buttercream-soleil .ti-field input[type="email"], .ti-theme-buttercream-soleil .ti-field select, .ti-theme-buttercream-soleil .ti-field textarea {
  width: 100%; min-height: 46px; font-family: "Outfit", sans-serif; font-weight: 400; font-size: 15px; color: var(--bs-ink); border: 1px solid #E8DABC; border-radius: 12px; background: #FFFFFF; }
.ti-theme-buttercream-soleil .ti-field input:focus, .ti-theme-buttercream-soleil .ti-field select:focus, .ti-theme-buttercream-soleil .ti-field textarea:focus { outline: none; border-color: var(--bs-golddeep); box-shadow: 0 0 0 3px rgba(201,169,106,.28); }
.ti-theme-buttercream-soleil .ti-choice span { font-family: "Outfit", sans-serif; border-color: #E8DABC; border-radius: 999px; }
.ti-theme-buttercream-soleil .bs-form .ti-btn--primary, .ti-theme-buttercream-soleil .bs-form button[type="submit"], .ti-theme-buttercream-soleil .bs-wishes button[type="submit"] { width: 100%; min-height: 50px; border: 1px solid #9A7636; border-radius: 999px; background: linear-gradient(135deg, #C29B54 0%, #9A7636 60%, #B08A45 100%); color: #FFFFFF; font-family: "Outfit", sans-serif; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.ti-theme-buttercream-soleil .bs-wishes { background: var(--bs-ivory); }
.ti-theme-buttercream-soleil .bs-wishes form, .ti-theme-buttercream-soleil .bs-wishes .ti-guestbook__form { margin-bottom: 22px; padding: 20px; border-radius: 16px; background: #FFFAF0; box-shadow: inset 0 0 0 1px rgba(227,207,159,.6); }
.ti-theme-buttercream-soleil .bs-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(236,222,190,.9), 0 16px 26px -24px rgba(92,72,36,.45); }
.ti-theme-buttercream-soleil .bs-wishes .ti-guestbook__item::before { content: "\201C"; position: absolute; left: 16px; top: 4px; font-family: "DM Serif Display", serif; font-size: 52px; line-height: 1; color: var(--bs-butter); }
.ti-theme-buttercream-soleil .bs-wishes .ti-guestbook__item strong, .ti-theme-buttercream-soleil .bs-wishes .ti-guestbook__item b { font-family: "Outfit", sans-serif; font-weight: 600; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-wishes .ti-guestbook__item p { font-family: "DM Serif Display", serif; font-style: italic; font-size: 16.5px; line-height: 1.6; color: var(--bs-muted); }

/* ========== HADIAH ========== */
.ti-theme-buttercream-soleil .bs-giftsec { color: var(--bs-ink); background: var(--bs-satin), radial-gradient(60% 40% at 85% 0%, rgba(248,235,196,.5), transparent 70%), linear-gradient(170deg, #F8EBC4 0%, #F1D88E 60%, #F6E3AE 100%); }
.ti-theme-buttercream-soleil .bs-giftsec .bs-title, .ti-theme-buttercream-soleil .bs-giftsec .bs-text { position: relative; z-index: 2; color: var(--bs-ink); }
.ti-theme-buttercream-soleil .bs-giftsec .bs-script { color: #A9863F; }
.ti-theme-buttercream-soleil .bs-gift { position: relative; z-index: 2; display: grid; gap: 20px; max-width: 900px; margin: 0 auto; }
.ti-theme-buttercream-soleil .bs-gift .ti-gift__card { position: relative; padding: 36px 24px 28px; overflow: hidden; color: var(--bs-ink); border: 0; border-radius: 22px; background: linear-gradient(160deg, #FFFFFF 0%, #FCF3DE 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 36px 52px -34px rgba(92,72,36,.8); transition: transform .5s var(--bs-ease); }
.ti-theme-buttercream-soleil .bs-gift .ti-gift__card::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(227,207,159,.85); border-radius: 16px; pointer-events: none; }
.ti-theme-buttercream-soleil .bs-gift .ti-gift__card:hover { transform: translateY(-4px); }
.ti-theme-buttercream-soleil .bs-gift .ti-gift__bank { font-family: "Outfit", sans-serif; font-weight: 600; font-size: 12.5px; letter-spacing: .28em; text-transform: uppercase; color: var(--bs-golddeep); }
.ti-theme-buttercream-soleil .bs-gift .ti-gift__no { font-family: "DM Serif Display", serif; font-weight: 500; font-size: 27px; letter-spacing: .05em; color: var(--bs-ink); overflow-wrap: anywhere; }
.ti-theme-buttercream-soleil .bs-gift button, .ti-theme-buttercream-soleil .bs-gift .ti-btn { position: relative; z-index: 1; border: 1px solid #9A7636; border-radius: 999px; background: linear-gradient(135deg, #C29B54, #9A7636); color: #FFFFFF; font-family: "Outfit", sans-serif; font-weight: 600; letter-spacing: .16em; cursor: pointer; }
.ti-theme-buttercream-soleil .bs-gift .is-copied { background: var(--bs-brown); }

/* ========== PENUTUP ========== */
.ti-theme-buttercream-soleil .bs-closing { position: relative; display: flex; align-items: center; justify-content: center; min-height: 100vh; min-height: 100svh; padding: clamp(150px, 20vw, 240px) 22px 160px; overflow: hidden; text-align: center; background: #F4E6CC; }
.ti-theme-buttercream-soleil .bs-closing__veil { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, var(--bs-ivory) 0%, rgba(250,248,244,0) 24%), radial-gradient(58% 42% at 50% 52%, rgba(255,255,255,.82) 0%, rgba(255,255,255,.42) 55%, rgba(255,255,255,0) 82%); }
.ti-theme-buttercream-soleil .bs-corner--closing { z-index: 2; width: clamp(160px, 42vw, 440px); }
.ti-theme-buttercream-soleil .bs-closing__content { position: relative; z-index: 3; max-width: 640px; }
.ti-theme-buttercream-soleil .bs-closing__names { margin: 6px 0 0; font-family: "DM Serif Display", serif; font-weight: 400; font-size: clamp(40px, 11vw, 82px); line-height: 1.06; color: var(--bs-ink); text-shadow: 0 0 28px rgba(255,255,255,.95); overflow-wrap: anywhere; }
.ti-theme-buttercream-soleil .bs-closing .bs-text { margin-top: 18px; color: var(--bs-ink); text-shadow: 0 0 14px rgba(255,255,255,.9); }
.ti-theme-buttercream-soleil .bs-closing__thanks { margin: 6px 0 0; font-family: "DM Serif Display", serif; font-style: italic; font-size: 19px; color: var(--bs-brown); text-shadow: 0 0 14px rgba(255,255,255,.9); }
.ti-theme-buttercream-soleil .bs-footer { padding: 26px 20px 92px; text-align: center; font-size: 10.5px; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; color: var(--bs-muted); background: linear-gradient(180deg, #F8EFDA, #F2E4C4); }

/* ========== Reveal sekali (IntersectionObserver di script.js) — tanpa zoom ========== */
.ti-theme-buttercream-soleil [data-bs-reveal] { opacity: 0; transform: translateY(20px); transition: opacity 1.1s var(--bs-ease) calc(var(--d, 0) * .14s), transform 1.3s var(--bs-ease) calc(var(--d, 0) * .14s); }
.ti-theme-buttercream-soleil [data-bs-reveal].is-shown { opacity: 1; transform: none; }
.ti-theme-buttercream-soleil [data-bs-reveal="left"] { transform: translateX(-38px); }
.ti-theme-buttercream-soleil [data-bs-reveal="right"] { transform: translateX(38px); }
.ti-theme-buttercream-soleil .bs-corner--tr[data-bs-reveal], .ti-theme-buttercream-soleil .bs-corner--br[data-bs-reveal], .ti-theme-buttercream-soleil .bs-sprig--r[data-bs-reveal] { transform: scaleX(-1) translateX(-38px); }
.ti-theme-buttercream-soleil .bs-corner--tr[data-bs-reveal].is-shown, .ti-theme-buttercream-soleil .bs-corner--br[data-bs-reveal].is-shown, .ti-theme-buttercream-soleil .bs-sprig--r[data-bs-reveal].is-shown { transform: scaleX(-1); }
.ti-theme-buttercream-soleil [data-bs-reveal="line"] { transform: none; transition: opacity 1.6s ease calc(var(--d, 0) * .14s); }
.ti-theme-buttercream-soleil [data-bs-reveal="photo"] { transform: translateY(26px); }
.ti-theme-buttercream-soleil [data-bs-reveal="photo"] img { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s var(--bs-ease2) calc(.15s + var(--d, 0) * .14s); }
.ti-theme-buttercream-soleil [data-bs-reveal="photo"].is-shown img { clip-path: inset(0 0 0 0); }
.ti-theme-buttercream-soleil [data-bs-reveal="names"] { filter: blur(8px); transition: opacity 1.4s var(--bs-ease) calc(var(--d, 0) * .14s), transform 1.5s var(--bs-ease) calc(var(--d, 0) * .14s), filter 1.4s ease calc(var(--d, 0) * .14s); }
.ti-theme-buttercream-soleil [data-bs-reveal="names"].is-shown { filter: none; }

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

.ti-theme-buttercream-soleil.bs-lite .bs-nav { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(250,248,244,.97); }
.ti-theme-buttercream-soleil.bs-lite .bs-drift { display: none; }

@media (prefers-reduced-motion: reduce) {
  .ti-theme-buttercream-soleil *, .ti-theme-buttercream-soleil *::before, .ti-theme-buttercream-soleil *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .ti-theme-buttercream-soleil [data-bs-reveal], .ti-theme-buttercream-soleil [data-bs-reveal] img { opacity: 1 !important; transform: none !important; clip-path: none !important; filter: none !important; }
  .ti-theme-buttercream-soleil .bs-corner--tr, .ti-theme-buttercream-soleil .bs-corner--br, .ti-theme-buttercream-soleil .bs-sprig--r { transform: scaleX(-1) !important; }
  .ti-theme-buttercream-soleil .bs-drift, .ti-theme-buttercream-soleil .bs-burst, .ti-theme-buttercream-soleil .bs-doorway__rays { display: none; }
  .ti-opened.ti-theme-buttercream-soleil .bs-door--l, .bs-opened.ti-theme-buttercream-soleil .bs-door--l, .ti-opened.ti-theme-buttercream-soleil .bs-door--r, .bs-opened.ti-theme-buttercream-soleil .bs-door--r { transform: none; }
}

@keyframes bs-loader-auto { to { opacity: 0; visibility: hidden; } }
@keyframes bs-breathe { 0%, 100% { opacity: .75; } 50% { opacity: 1; } }
@keyframes bs-line { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes bs-rays { 0% { opacity: 0; transform: rotate(-4deg); } 45% { opacity: .9; } 100% { opacity: 0; transform: rotate(3deg); } }
@keyframes bs-light { 0% { opacity: 0; } 35% { opacity: 1; } 75% { opacity: .9; } 100% { opacity: 0; } }
@keyframes bs-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 bs-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 bs-drop { 0% { transform: translateY(0) rotate(45deg); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(36px) rotate(45deg); opacity: 0; } }
