/* Tema Verdant Bloom — namespace .ti-theme-verdant-bloom, prefix kelas vb-
   (Premium · Modern Green Garden: sage, emerald, mint, ivory, champagne gold, sentuhan dusty pink)
   Sumber untuk style.css (lihat buildcss.py). */
.ti-theme-verdant-bloom {
  --vb-sage: #A9BBA3; --vb-sage-d: #869E86; --vb-emerald: #2F6B55; --vb-emerald-d: #24513F; --vb-mint: #DCEBDD; --vb-mint-l: #EEF5EC;
  --vb-ivory: #FAF7F0; --vb-white: #FFFDF9; --vb-gold: #C9AE7C; --vb-gold-l: #E6D4A8; --vb-gold-d: #9C7F4C; --vb-pink: #D8A7A1;
  --vb-ink: #23392F; --vb-soft: #5A6E63;
  --vb-serif: "Cormorant Garamond", "Cormorant", Georgia, serif; --vb-script: "Pinyon Script", "Cormorant Garamond", cursive; --vb-sans: "Jost", "Segoe UI", sans-serif;
  --vb-ease: cubic-bezier(.22,.61,.24,1); --vb-ease2: cubic-bezier(.65,0,.25,1);
  --ti-ease: cubic-bezier(.22,.61,.24,1); --ti-dur: 1.2s;
  background: var(--vb-ivory); color: var(--vb-ink); font-family: var(--vb-sans); font-weight: 300; font-size: 16px; line-height: 1.7;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
.ti-theme-verdant-bloom h1, .ti-theme-verdant-bloom h2, .ti-theme-verdant-bloom h3 { margin: 0; font-weight: 400; }
.ti-theme-verdant-bloom img { max-width: 100%; }
.ti-theme-verdant-bloom .vb-kicker { font-family: var(--vb-sans); font-weight: 400; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var(--vb-emerald); margin: 0 0 10px; padding-left: .34em; }
.ti-theme-verdant-bloom .vb-label { display: block; font-family: var(--vb-sans); font-weight: 400; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--vb-gold-d); margin: 0 0 6px; }
.ti-theme-verdant-bloom .vb-title { font-family: var(--vb-serif); font-weight: 500; font-size: clamp(34px, 9.4vw, 56px); line-height: 1.1; letter-spacing: .01em; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-sub { margin: 10px 0 0; font-family: var(--vb-serif); font-style: italic; font-size: 20px; color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-text { max-width: 580px; margin: 0 auto 22px; color: var(--vb-soft); }
.ti-theme-verdant-bloom .vb-text--lead { font-family: var(--vb-serif); font-style: italic; font-size: 21px; line-height: 1.5; color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-text--light { color: rgba(250,247,240,.88); }
.ti-theme-verdant-bloom .vb-text--sm { font-size: 14.5px; margin-bottom: 8px; }
.ti-theme-verdant-bloom .vb-center { text-align: center; }
.ti-theme-verdant-bloom .vb-link { display: inline-block; color: var(--vb-emerald); text-decoration: none; font-size: 13.5px; letter-spacing: .06em; padding-bottom: 2px; background: linear-gradient(var(--vb-gold), var(--vb-gold)) 0 100% / 0 1px no-repeat; transition: background-size .6s var(--vb-ease); }
.ti-theme-verdant-bloom .vb-link:hover, .ti-theme-verdant-bloom .vb-link:focus-visible { background-size: 100% 1px; }

/* Garis ornamen champagne gold */
.ti-theme-verdant-bloom .vb-line { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 14px auto 0; color: var(--vb-gold); }
.ti-theme-verdant-bloom .vb-line i { display: block; width: clamp(48px, 16vw, 92px); height: 1px; background: linear-gradient(90deg, rgba(201,174,124,0), var(--vb-gold)); }
.ti-theme-verdant-bloom .vb-line i + svg + i { background: linear-gradient(90deg, var(--vb-gold), rgba(201,174,124,0)); }
.ti-theme-verdant-bloom .vb-line svg { flex: none; }

/* Tombol */
.ti-theme-verdant-bloom .vb-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(230,212,168,.9); border-radius: 999px; background: linear-gradient(135deg, #3C7A62 0%, #2F6B55 50%, #24513F 100%); color: #FBF6E8; font-family: var(--vb-sans); font-weight: 400; font-size: 12px; letter-spacing: .24em; text-transform: uppercase; text-decoration: none; cursor: pointer; box-shadow: inset 0 0 0 3px rgba(36,81,63,.9), inset 0 0 0 4px rgba(230,212,168,.35), 0 16px 28px -16px rgba(20,48,36,.8); transition: transform .5s var(--vb-ease), box-shadow .5s, color .4s; -webkit-tap-highlight-color: transparent; }
.ti-theme-verdant-bloom .vb-btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, rgba(255,255,255,0) 30%, rgba(255,248,226,.32) 50%, rgba(255,255,255,0) 70%); transform: translateX(-120%); transition: transform 1s var(--vb-ease); }
.ti-theme-verdant-bloom .vb-btn:hover { transform: translateY(-2px); }
.ti-theme-verdant-bloom .vb-btn:hover::before { transform: translateX(120%); }
.ti-theme-verdant-bloom .vb-btn:focus-visible { outline: 2px solid var(--vb-gold); outline-offset: 3px; }
.ti-theme-verdant-bloom .vb-btn svg { flex: none; }
.ti-theme-verdant-bloom .vb-btn--small { min-height: 44px; padding: 8px 24px; font-size: 11px; }
.ti-theme-verdant-bloom .vb-btn--ghost { background: transparent; box-shadow: none; color: var(--vb-emerald-d); border-color: rgba(47,107,85,.45); }
.ti-theme-verdant-bloom .vb-emerald .vb-btn--ghost { color: var(--vb-gold-l); border-color: rgba(230,212,168,.7); }

/* =============================== LOADING =============================== */
.ti-theme-verdant-bloom .vb-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%, #EEF5EC 70%, #DCEBDD 100%); transition: opacity .8s ease, visibility 0s linear .8s; animation: vb-loader-auto .8s ease 4s forwards; }
.ti-theme-verdant-bloom.vb-loaded .vb-loader { opacity: 0; visibility: hidden; pointer-events: none; }
.ti-theme-verdant-bloom .vb-loader__mono { margin: 0; font-family: var(--vb-script); font-size: 56px; line-height: 1; color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-loader__brand { margin: 0; font-family: var(--vb-sans); font-size: 10px; letter-spacing: .5em; padding-left: .5em; text-transform: uppercase; color: var(--vb-sage-d); }
.ti-theme-verdant-bloom .vb-loader__line { position: relative; width: 140px; height: 1px; background: rgba(47,107,85,.18); overflow: hidden; }
.ti-theme-verdant-bloom .vb-loader__line i { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(201,174,124,0), #C9AE7C, rgba(201,174,124,0)); animation: vb-line 1.4s ease-in-out infinite; }
.ti-theme-verdant-bloom.vb-loaded .vb-loader__line i { animation: none; }

/* =============================== PEMBUKA — gerbang taman =============================== */
.ti-theme-verdant-bloom .vb-gate { --aw: min(84vw, 560px, 62vh); --ah: min(74vh, calc(var(--aw) * 2.05)); --ab: 9vh;
  position: fixed; inset: 0; z-index: 40; overflow: hidden; pointer-events: none; background: #DCE7D8; transition: visibility 0s linear 2.9s; }
.ti-theme-verdant-bloom .vb-gate__content, .ti-theme-verdant-bloom .vb-gate button { pointer-events: auto; }
.ti-opened.ti-theme-verdant-bloom .vb-gate, .vb-opened.ti-theme-verdant-bloom .vb-gate { visibility: hidden; background: transparent; transition-property: visibility, background-color; transition-duration: 0s, .6s; transition-delay: 2.9s, .2s; }
.ti-opened.ti-theme-verdant-bloom .vb-gate *, .vb-opened.ti-theme-verdant-bloom .vb-gate * { pointer-events: none; }
.ti-theme-verdant-bloom .vb-gate__stage { position: absolute; inset: 0; perspective: 1700px; perspective-origin: 50% 46%; }
.ti-theme-verdant-bloom .vb-door { position: absolute; top: 0; bottom: 0; width: 50.1%; overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden; will-change: transform;
  background: radial-gradient(70% 45% at 100% 52%, rgba(255,253,249,.92), rgba(255,253,249,0) 70%), linear-gradient(180deg, #D9E9DA 0%, #EEF4EA 34%, #F8F5EE 58%, #D6E6D4 100%); }
.ti-theme-verdant-bloom .vb-door::before { content: ""; position: absolute; inset: 0; background: url(assets/img/linen.webp) 0 0 / 384px auto; opacity: .22; mix-blend-mode: multiply; pointer-events: none; }
.ti-theme-verdant-bloom .vb-door--l { left: 0; transform-origin: 0 50%; box-shadow: inset -18px 0 26px -20px rgba(36,81,63,.45); }
.ti-theme-verdant-bloom .vb-door--r { right: 0; transform-origin: 100% 50%; box-shadow: inset 18px 0 26px -20px rgba(36,81,63,.45); background: radial-gradient(70% 45% at 0% 52%, rgba(255,253,249,.92), rgba(255,253,249,0) 70%), linear-gradient(180deg, #D9E9DA 0%, #EEF4EA 34%, #F8F5EE 58%, #D6E6D4 100%); }
.ti-theme-verdant-bloom .vb-door__face { position: absolute; top: 0; bottom: 0; width: 200%; pointer-events: none; }
.ti-theme-verdant-bloom .vb-door--l .vb-door__face { left: 0; }
.ti-theme-verdant-bloom .vb-door--r .vb-door__face { right: 0; }
.ti-theme-verdant-bloom .vb-door__frame { position: absolute; inset: 14px; border: 1px solid rgba(201,174,124,.75); border-radius: 3px; }
.ti-theme-verdant-bloom .vb-door__frame::after { content: ""; position: absolute; inset: 5px; border: .5px solid rgba(201,174,124,.45); border-radius: 2px; }
.ti-theme-verdant-bloom .vb-door__arch { position: absolute; left: 50%; bottom: var(--ab); width: var(--aw); height: var(--ah); translate: -50% 0; border: 1px solid rgba(201,174,124,.95); border-bottom: 0; border-radius: calc(var(--aw) / 2) calc(var(--aw) / 2) 0 0;
  background: radial-gradient(80% 60% at 50% 30%, rgba(255,253,249,.75), rgba(255,253,249,0) 72%); }
.ti-theme-verdant-bloom .vb-door__arch--in { width: calc(var(--aw) - 22px); height: calc(var(--ah) - 11px); border-width: .6px; border-color: rgba(201,174,124,.6); background: none; border-radius: calc(var(--aw) / 2 - 11px) calc(var(--aw) / 2 - 11px) 0 0; }
.ti-theme-verdant-bloom .vb-door__rail { position: absolute; left: 14px; right: 14px; height: 1px; background: linear-gradient(90deg, rgba(201,174,124,0), rgba(201,174,124,.85) 20%, rgba(201,174,124,.85) 80%, rgba(201,174,124,0)); }
.ti-theme-verdant-bloom .vb-door__rail--a { bottom: var(--ab); }
.ti-theme-verdant-bloom .vb-door__rail--b { bottom: calc(var(--ab) - 8px); opacity: .5; }
.ti-theme-verdant-bloom .vb-door__handle { position: absolute; top: calc(100% - var(--ab) - var(--ah) * .86); width: 5px; height: 56px; border-radius: 4px; background: linear-gradient(90deg, #A88A55, #EAD9B0 45%, #B79A63); box-shadow: 0 3px 6px rgba(36,81,63,.3); }
.ti-theme-verdant-bloom .vb-door__handle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 16px; translate: -50% -50%; border: 1px solid rgba(201,174,124,.95); border-radius: 50%; }
.ti-theme-verdant-bloom .vb-door--l .vb-door__handle { right: 16px; }
.ti-theme-verdant-bloom .vb-door--r .vb-door__handle { left: 16px; }
.ti-theme-verdant-bloom .vb-door__shade { position: absolute; inset: 0; opacity: 0; background: linear-gradient(90deg, rgba(36,81,63,.05), rgba(36,81,63,.5)); pointer-events: none; }
.ti-theme-verdant-bloom .vb-door--r .vb-door__shade { background: linear-gradient(270deg, rgba(36,81,63,.05), rgba(36,81,63,.5)); }
.ti-theme-verdant-bloom .vb-door__corner { position: absolute; top: -2.5vmin; width: min(86vw, 58vh, 560px); height: auto; pointer-events: none; filter: drop-shadow(0 14px 18px rgba(36,81,63,.18)); }
.ti-theme-verdant-bloom .vb-door--l .vb-door__corner { left: -2.5vmin; transform-origin: 0 0; }
.ti-theme-verdant-bloom .vb-door--r .vb-door__corner { right: -2.5vmin; scale: -1 1; transform-origin: 50% 0; }
.ti-theme-verdant-bloom .vb-door__cascade { position: absolute; top: 24vh; height: 62vh; width: auto; max-width: none; pointer-events: none; filter: drop-shadow(0 12px 14px rgba(36,81,63,.16)); }
.ti-theme-verdant-bloom .vb-door--l .vb-door__cascade { left: -1vw; }
.ti-theme-verdant-bloom .vb-door--r .vb-door__cascade { right: -1vw; scale: -1 1; }
.ti-theme-verdant-bloom .vb-gate__light { position: absolute; left: 50%; top: 0; bottom: 0; width: 3px; translate: -50% 0; opacity: 0; pointer-events: none; background: linear-gradient(180deg, rgba(255,248,226,0), rgba(255,248,226,.95) 30%, rgba(255,255,255,1) 50%, rgba(255,248,226,.95) 70%, rgba(255,248,226,0)); box-shadow: 0 0 40px 16px rgba(255,246,220,.55); }
.ti-theme-verdant-bloom .vb-gate__crown { position: absolute; left: 50%; top: calc(100% - var(--ab) - var(--ah)); width: min(calc(var(--aw) * .92), 520px); height: auto; translate: -50% -58%; z-index: 3; pointer-events: none; filter: drop-shadow(0 12px 16px rgba(36,81,63,.2)); }
.ti-theme-verdant-bloom .vb-gate__base { position: absolute; left: 50%; bottom: -2.4vh; width: min(116vw, 860px); height: auto; translate: -50% 0; z-index: 3; pointer-events: none; filter: drop-shadow(0 -6px 14px rgba(36,81,63,.12)); }
.ti-theme-verdant-bloom .vb-gate__content { position: absolute; left: 50%; bottom: max(14vh, 108px); z-index: 5; width: min(80vw, 500px); translate: -50% 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
.ti-theme-verdant-bloom .vb-gate__content .vb-kicker { color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-gate__names { display: flex; flex-direction: column; align-items: center; font-family: var(--vb-serif); font-weight: 500; font-size: clamp(44px, 13vw, 84px); line-height: 1; color: var(--vb-emerald-d); letter-spacing: .01em; overflow-wrap: anywhere; text-shadow: 0 2px 18px rgba(255,253,249,.9); }
.ti-theme-verdant-bloom .vb-gate__names em, .ti-theme-verdant-bloom .vb-hero__names em, .ti-theme-verdant-bloom .vb-closing__names em { font-family: var(--vb-script); font-style: normal; font-weight: 400; font-size: .62em; line-height: 1.1; color: var(--vb-gold-d); margin: .02em 0 .06em; }
.ti-theme-verdant-bloom .vb-gate__date { margin: 14px 0 16px; font-family: var(--vb-sans); font-weight: 400; font-size: 12px; letter-spacing: .3em; padding-left: .3em; text-transform: uppercase; color: var(--vb-ink); }
.ti-theme-verdant-bloom .vb-gate__guest { margin-bottom: 20px; padding: 8px 28px; border-top: 1px solid rgba(201,174,124,.7); border-bottom: 1px solid rgba(201,174,124,.7); background: linear-gradient(90deg, rgba(255,253,249,0), rgba(255,253,249,.85), rgba(255,253,249,0)); }
.ti-theme-verdant-bloom .vb-gate__guest:empty { display: none; }
.ti-theme-verdant-bloom .vb-gate__guest .ti-guest__label { display: block; font-size: 12px; letter-spacing: .04em; color: var(--vb-soft); }
.ti-theme-verdant-bloom .vb-gate__guest .ti-guest__name { display: block; font-family: var(--vb-serif); font-weight: 600; font-size: 23px; line-height: 1.25; color: var(--vb-emerald-d); }

/* intro gerbang (sekali): garis emas tergambar, bunga mekar bertahap, teks naik */
.ti-theme-verdant-bloom .vb-door__arch, .ti-theme-verdant-bloom .vb-door__frame, .ti-theme-verdant-bloom .vb-door__rail { clip-path: inset(100% 0 0 0); }
.ti-theme-verdant-bloom .vb-door__corner, .ti-theme-verdant-bloom .vb-door__cascade, .ti-theme-verdant-bloom .vb-gate__crown, .ti-theme-verdant-bloom .vb-gate__base, .ti-theme-verdant-bloom .vb-gate__content > *, .ti-theme-verdant-bloom .vb-door__handle { opacity: 0; }
.ti-theme-verdant-bloom.vb-ready .vb-door__frame { animation: vb-draw 1.6s var(--vb-ease) .2s both; }
.ti-theme-verdant-bloom.vb-ready .vb-door__arch { animation: vb-draw 2s var(--vb-ease) .45s both; }
.ti-theme-verdant-bloom.vb-ready .vb-door__arch--in { animation-delay: .65s; }
.ti-theme-verdant-bloom.vb-ready .vb-door__rail { animation: vb-draw-x 1.4s var(--vb-ease) .4s both; }
.ti-theme-verdant-bloom.vb-ready .vb-door__handle { animation: vb-fade 1s ease 1.4s both; }
.ti-theme-verdant-bloom.vb-ready .vb-door__corner { animation: vb-bloom-in 1.6s var(--vb-ease) .6s both; }
.ti-theme-verdant-bloom.vb-ready .vb-door--r .vb-door__corner { animation-delay: .75s; }
.ti-theme-verdant-bloom.vb-ready .vb-door__cascade { animation: vb-drop-in 1.8s var(--vb-ease) .9s both; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__crown { animation: vb-crown-in 1.6s var(--vb-ease) 1s both; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__base { animation: vb-base-in 1.6s var(--vb-ease) 1.1s both; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__content > * { animation: vb-up 1.1s var(--vb-ease) both; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__content > :nth-child(1) { animation-delay: 1.3s; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__content > :nth-child(2) { animation-delay: 1.45s; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__content > :nth-child(3) { animation-delay: 1.65s; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__content > :nth-child(4) { animation-delay: 1.75s; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__content > :nth-child(5) { animation-delay: 1.85s; }
.ti-theme-verdant-bloom.vb-ready .vb-gate__content > :nth-child(6) { animation: vb-up 1.1s var(--vb-ease) 2s both, vb-glow 2.8s ease-in-out 3.2s 2; }

/* buka: teks memudar, cahaya di celah pintu, daun pintu berayun ke dalam taman, bunga ikut bergerak ringan */
.ti-opened.ti-theme-verdant-bloom .vb-gate__content, .vb-opened.ti-theme-verdant-bloom .vb-gate__content { opacity: 0; transform: translateY(-12px); transition: opacity .6s ease, transform .9s var(--vb-ease); }
.ti-opened.ti-theme-verdant-bloom .vb-gate__light, .vb-opened.ti-theme-verdant-bloom .vb-gate__light { animation: vb-light 1.9s ease .05s both; }
.ti-opened.ti-theme-verdant-bloom .vb-door--l, .vb-opened.ti-theme-verdant-bloom .vb-door--l { animation: vb-door-l 2.4s cubic-bezier(.6,.02,.22,1) .3s both; }
.ti-opened.ti-theme-verdant-bloom .vb-door--r, .vb-opened.ti-theme-verdant-bloom .vb-door--r { animation: vb-door-r 2.4s cubic-bezier(.6,.02,.22,1) .3s both; }
.ti-opened.ti-theme-verdant-bloom .vb-door__shade, .vb-opened.ti-theme-verdant-bloom .vb-door__shade { animation: vb-shade 2.4s ease .3s both; }
.ti-opened.ti-theme-verdant-bloom .vb-door__corner, .vb-opened.ti-theme-verdant-bloom .vb-door__corner { animation: vb-sway 2.4s var(--vb-ease2) .3s both; }
.ti-opened.ti-theme-verdant-bloom .vb-door__cascade, .vb-opened.ti-theme-verdant-bloom .vb-door__cascade { opacity: 1; }
.ti-opened.ti-theme-verdant-bloom .vb-gate__crown, .vb-opened.ti-theme-verdant-bloom .vb-gate__crown { animation: vb-crown-out 1.5s var(--vb-ease2) .2s both; }
.ti-opened.ti-theme-verdant-bloom .vb-gate__base, .vb-opened.ti-theme-verdant-bloom .vb-gate__base { animation: vb-base-out 1.5s var(--vb-ease2) .2s both; }

/* kelopak jatuh (sekali, lalu elemen dihapus oleh script) */
.ti-theme-verdant-bloom .vb-petals { position: fixed; inset: 0; z-index: 45; pointer-events: none; overflow: hidden; display: none; }
.ti-opened.ti-theme-verdant-bloom .vb-petals, .vb-opened.ti-theme-verdant-bloom .vb-petals { display: block; }
.ti-theme-verdant-bloom .vb-petals img { position: absolute; top: -60px; left: calc(var(--n) * 5.5% + 1.5%); width: 22px; height: auto; opacity: 0; will-change: transform; }
.ti-theme-verdant-bloom .vb-petals img:nth-child(3n) { width: 30px; }
.ti-theme-verdant-bloom .vb-petals img:nth-child(4n+1) { width: 17px; }
.ti-opened.ti-theme-verdant-bloom .vb-petals img, .vb-opened.ti-theme-verdant-bloom .vb-petals img { animation: vb-fall calc(3.6s + var(--n) * .11s) cubic-bezier(.3,.1,.5,1) calc(.35s + var(--n) * .09s) 1 both; }
.ti-opened.ti-theme-verdant-bloom .vb-petals img:nth-child(odd), .vb-opened.ti-theme-verdant-bloom .vb-petals img:nth-child(odd) { animation-name: vb-fall-b; }

/* =============================== NAVIGASI & TOAST =============================== */
.ti-theme-verdant-bloom .vb-nav { position: fixed; left: 12px; bottom: 12px; z-index: 30; display: flex; gap: 1px; max-width: calc(100vw - 84px); overflow-x: auto; scrollbar-width: none; padding: 4px 6px; border: 1px solid rgba(230,212,168,.7); border-radius: 999px; background: rgba(36,81,63,.95); box-shadow: 0 14px 30px -14px rgba(20,48,36,.85); transform: translateY(160%); opacity: 0; transition: transform .7s var(--vb-ease), opacity .5s ease; }
.ti-theme-verdant-bloom .vb-nav::-webkit-scrollbar { display: none; }
.ti-opened.ti-theme-verdant-bloom .vb-nav, .vb-opened.ti-theme-verdant-bloom .vb-nav { transform: none; opacity: 1; transition-delay: 2.6s; }
.ti-theme-verdant-bloom .vb-nav a { position: relative; display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; color: var(--vb-gold-l); text-decoration: none; transition: color .3s, background .4s; }
.ti-theme-verdant-bloom .vb-nav a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ti-theme-verdant-bloom .vb-nav a:hover, .ti-theme-verdant-bloom .vb-nav a.is-active { color: #FFFDF5; background: rgba(230,212,168,.22); }
.ti-theme-verdant-bloom .vb-nav a:focus-visible { outline: 2px solid var(--vb-gold-l); outline-offset: -2px; }
.ti-theme-verdant-bloom .vb-toast { position: fixed; left: 50%; bottom: 76px; z-index: 70; max-width: calc(100vw - 32px); padding: 12px 22px; border: 1px solid rgba(230,212,168,.75); border-radius: 999px; background: rgba(36,81,63,.97); color: var(--vb-ivory); font-family: var(--vb-sans); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; text-align: center; box-shadow: 0 18px 30px -16px rgba(20,48,36,.9); opacity: 0; transform: translate(-50%, 14px); pointer-events: none; transition: opacity .45s ease, transform .55s var(--vb-ease); }
.ti-theme-verdant-bloom .vb-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.ti-theme-verdant-bloom .vb-toast::before { content: "\2766"; margin-right: 10px; color: var(--vb-gold-l); }

/* =============================== MAIN & LATAR SECTION =============================== */
.ti-theme-verdant-bloom .vb-main { position: relative; z-index: 2; overflow: clip; }
.ti-theme-verdant-bloom .vb-section { position: relative; padding: 92px 20px; text-align: center; overflow: hidden; }
.ti-theme-verdant-bloom .vb-section > * { position: relative; z-index: 1; }
.ti-theme-verdant-bloom .vb-head { margin: 0 auto 30px; }
.ti-theme-verdant-bloom .vb-ivory { background: radial-gradient(120% 50% at 50% 0%, #FFFDF9 0%, rgba(255,253,249,0) 65%), var(--vb-ivory); }
.ti-theme-verdant-bloom .vb-mint { background: linear-gradient(180deg, #FAF7F0 0%, #EEF5EC 26%, #E4EEE2 70%, #FAF7F0 100%); }
.ti-theme-verdant-bloom .vb-sage { background: linear-gradient(180deg, #FAF7F0 0%, #E3EDE1 20%, #D2E1D0 62%, #FAF7F0 100%); }
.ti-theme-verdant-bloom .vb-ivory::before, .ti-theme-verdant-bloom .vb-mint::before, .ti-theme-verdant-bloom .vb-sage::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: url(assets/img/linen.webp) 0 0 / 384px auto; opacity: .16; mix-blend-mode: multiply; }
/* emerald: hanya Acara & Hadiah — gradasi sage → emerald, tepi atas & bawah melengkung lembut */
.ti-theme-verdant-bloom .vb-emerald { color: var(--vb-ivory); padding-top: 120px; padding-bottom: 120px; background: radial-gradient(90% 40% at 50% 8%, rgba(169,187,163,.38), rgba(169,187,163,0) 70%), linear-gradient(180deg, #4F8670 0%, #3A735C 30%, #2F6651 70%, #2C5F4B 100%); }
.ti-theme-verdant-bloom .vb-emerald::before, .ti-theme-verdant-bloom .vb-emerald::after { content: ""; position: absolute; left: -10%; right: -10%; height: 70px; z-index: 0; background: var(--vb-ivory); pointer-events: none; }
.ti-theme-verdant-bloom .vb-emerald::before { top: -36px; border-radius: 0 0 50% 50% / 0 0 100% 100%; }
.ti-theme-verdant-bloom .vb-emerald::after { bottom: -36px; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.ti-theme-verdant-bloom .vb-emerald .vb-title { color: var(--vb-ivory); }
.ti-theme-verdant-bloom .vb-emerald .vb-kicker, .ti-theme-verdant-bloom .vb-emerald .vb-label { color: var(--vb-gold-l); }

/* =============================== HERO =============================== */
.ti-theme-verdant-bloom .vb-hero { position: relative; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding: max(3vh, 18px) 20px 84px; overflow: hidden; text-align: center; background: #DCE7D8; }
@supports (min-height: 100svh) { .ti-theme-verdant-bloom .vb-hero { min-height: 100svh; } }
.ti-theme-verdant-bloom .vb-hero__bg, .ti-theme-verdant-bloom .vb-hero__bg img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ti-theme-verdant-bloom .vb-hero__bg img { object-fit: cover; object-position: 50% 40%; }
.ti-theme-verdant-bloom .vb-hero__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(238,245,236,.25) 0%, rgba(238,245,236,0) 26%, rgba(250,247,240,.35) 58%, rgba(250,247,240,.94) 82%, var(--vb-ivory) 100%); }
.ti-theme-verdant-bloom .vb-hero__arch { position: relative; z-index: 1; width: min(86vw, 49vh, 590px); aspect-ratio: 1200 / 1714; flex: none; }
.ti-theme-verdant-bloom .vb-hero__photo { position: absolute; left: 20.31%; top: 18.06%; width: 59.38%; height: 71.31%; overflow: hidden; border-radius: 50% 50% 0 0 / 29.1% 29.1% 0 0; background: linear-gradient(180deg, rgba(255,253,249,.5), rgba(220,235,221,.35)); -webkit-mask-image: linear-gradient(180deg, #000 66%, rgba(0,0,0,0) 98%); mask-image: linear-gradient(180deg, #000 66%, rgba(0,0,0,0) 98%); }
.ti-theme-verdant-bloom .vb-hero__photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 28%; }
.ti-theme-verdant-bloom .vb-hero__photo.is-empty { background: radial-gradient(70% 50% at 50% 40%, rgba(255,253,249,.7), rgba(255,253,249,.1) 80%); }
.ti-theme-verdant-bloom .vb-hero__frame { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; filter: drop-shadow(0 18px 24px rgba(36,81,63,.22)); }
.ti-theme-verdant-bloom .vb-hero__content { position: relative; z-index: 2; margin-top: -11%; width: min(90vw, 680px); }
.ti-theme-verdant-bloom .vb-hero__names { display: flex; flex-direction: column; align-items: center; font-family: var(--vb-serif); font-weight: 500; font-size: clamp(46px, 13vw, 92px); line-height: 1; color: var(--vb-emerald-d); text-shadow: 0 2px 20px rgba(250,247,240,.95); overflow-wrap: anywhere; }
.ti-theme-verdant-bloom .vb-hero__date { margin: 14px 0 20px; font-family: var(--vb-sans); font-weight: 400; font-size: 12px; letter-spacing: .3em; padding-left: .3em; text-transform: uppercase; color: var(--vb-ink); }
.ti-theme-verdant-bloom .vb-explore { display: inline-flex; flex-direction: column; align-items: center; gap: 10px; font-family: var(--vb-sans); font-size: 10px; letter-spacing: .28em; text-transform: uppercase; color: var(--vb-emerald); text-decoration: none; }
.ti-theme-verdant-bloom .vb-explore i { position: relative; width: 22px; height: 36px; border: 1px solid rgba(47,107,85,.55); border-radius: 12px; }
.ti-theme-verdant-bloom .vb-explore i::after { content: ""; position: absolute; left: 50%; top: 7px; width: 2px; height: 7px; margin-left: -1px; border-radius: 2px; background: var(--vb-gold-d); }
/* masuk hero setelah gerbang terbuka (sekali) */
.ti-theme-verdant-bloom .vb-hero__arch, .ti-theme-verdant-bloom .vb-hero__content > * { opacity: 0; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__arch, .vb-opened.ti-theme-verdant-bloom .vb-hero__arch { animation: vb-rise 1.8s var(--vb-ease) .9s both; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__photo img, .vb-opened.ti-theme-verdant-bloom .vb-hero__photo img { animation: vb-fade 1.8s ease 1.3s both; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__content > *, .vb-opened.ti-theme-verdant-bloom .vb-hero__content > * { animation: vb-up 1.2s var(--vb-ease) both; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(1), .vb-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(1) { animation-delay: 1.5s; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(2), .vb-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(2) { animation-delay: 1.65s; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(3), .vb-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(3) { animation-delay: 1.85s; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(4), .vb-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(4) { animation-delay: 1.95s; }
.ti-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(5), .vb-opened.ti-theme-verdant-bloom .vb-hero__content > :nth-child(5) { animation-delay: 2.1s; }
.ti-opened.ti-theme-verdant-bloom .vb-explore i::after, .vb-opened.ti-theme-verdant-bloom .vb-explore i::after { animation: vb-wheel 2s ease-in-out 3s 3; }

/* =============================== PENGANTAR =============================== */
.ti-theme-verdant-bloom .vb-intro { padding-top: 40px; padding-bottom: 150px; }
.ti-theme-verdant-bloom .vb-swag { display: block; width: min(94vw, 640px); height: auto; margin: 0 auto 8px; pointer-events: none; }
.ti-theme-verdant-bloom .vb-intro__inner { max-width: 640px; margin: 0 auto; }
.ti-theme-verdant-bloom .vb-quote { margin: 0 auto; }
.ti-theme-verdant-bloom .vb-quote p { margin: 0; font-family: var(--vb-serif); font-style: italic; font-weight: 400; font-size: clamp(21px, 5.4vw, 28px); line-height: 1.5; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-quote cite { display: block; margin-top: 16px; font-style: normal; font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--vb-gold-d); }
.ti-theme-verdant-bloom .vb-intro__bloom { position: absolute; bottom: 18px; width: min(30vw, 190px); height: auto; z-index: 0; pointer-events: none; }
.ti-theme-verdant-bloom .vb-intro__bloom--l { left: max(-4vw, -30px); rotate: -14deg; }
.ti-theme-verdant-bloom .vb-intro__bloom--r { right: max(-4vw, -30px); rotate: 18deg; }

/* =============================== MEMPELAI =============================== */
.ti-theme-verdant-bloom .vb-couple__grid { display: grid; grid-template-columns: 1fr; gap: 10px; max-width: 1040px; margin: 40px auto 0; align-items: start; }
.ti-theme-verdant-bloom .vb-person { max-width: 440px; margin: 0 auto; }
.ti-theme-verdant-bloom .vb-portrait { position: relative; width: min(72vw, 340px); aspect-ratio: 3 / 4; margin: 14px auto 70px; }
.ti-theme-verdant-bloom .vb-portrait::before { content: ""; position: absolute; inset: -12px; border: 1px solid rgba(201,174,124,.85); border-radius: 50% 50% 20px 20px / 37% 37% 20px 20px; }
.ti-theme-verdant-bloom .vb-portrait::after { content: ""; position: absolute; inset: -19px; border: .5px solid rgba(201,174,124,.45); border-radius: 50% 50% 24px 24px / 37% 37% 24px 24px; }
.ti-theme-verdant-bloom .vb-portrait__photo { position: absolute; inset: 0; overflow: hidden; border-radius: 50% 50% 14px 14px / 37.5% 37.5% 14px 14px; background: linear-gradient(160deg, #EEF5EC, #CFDFCD); box-shadow: 0 30px 50px -30px rgba(36,81,63,.55); }
.ti-theme-verdant-bloom .vb-portrait__img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 22%; }
.ti-theme-verdant-bloom .vb-portrait__photo .ti-couple-monogram { display: grid; place-items: center; width: 100%; height: 100%; font-family: var(--vb-script); font-size: 110px; color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-portrait__posy { position: absolute; left: 50%; bottom: -16%; width: 116%; max-width: none; height: auto; translate: -50% 0; z-index: 2; pointer-events: none; filter: drop-shadow(0 10px 12px rgba(36,81,63,.2)); }
.ti-theme-verdant-bloom .vb-person--bride .vb-portrait__posy { scale: -1 1; }
.ti-theme-verdant-bloom .vb-person__nick { font-family: var(--vb-script); font-size: clamp(50px, 13vw, 64px); line-height: 1.1; color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-person__name { margin: 4px 0 10px; font-family: var(--vb-serif); font-weight: 600; font-size: 21px; line-height: 1.3; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-couple__amp { margin: 6px 0 26px; font-family: var(--vb-script); font-size: 72px; line-height: 1; color: var(--vb-gold-d); }

/* =============================== ACARA =============================== */
.ti-theme-verdant-bloom .vb-events__corner { position: absolute; top: -10px; width: min(46vw, 360px); height: auto; z-index: 0 !important; pointer-events: none; }
.ti-theme-verdant-bloom .vb-events__corner--l { left: -10px; }
.ti-theme-verdant-bloom .vb-events__corner--r { right: -10px; scale: -1 1; }
.ti-theme-verdant-bloom .vb-events__grid { display: grid; grid-template-columns: 1fr; gap: 64px; max-width: 980px; margin: 74px auto 0; }
.ti-theme-verdant-bloom .vb-event { position: relative; width: 100%; max-width: 420px; margin: 0 auto; padding: 92px 24px 34px; color: var(--vb-ink); background: linear-gradient(180deg, #FFFDF9 0%, #FAF7F0 100%); border-radius: 220px 220px 18px 18px; box-shadow: 0 34px 60px -34px rgba(12,34,25,.75), inset 0 0 0 1px rgba(201,174,124,.75); transition-delay: calc(var(--i, 0) * .14s); }
.ti-theme-verdant-bloom .vb-event::before { content: ""; position: absolute; inset: 9px; border: .6px solid rgba(201,174,124,.6); border-radius: 212px 212px 12px 12px; pointer-events: none; }
.ti-theme-verdant-bloom .vb-event__bloom { position: absolute; left: 50%; top: -52px; width: 118px; height: auto; translate: -50% 0; filter: drop-shadow(0 10px 12px rgba(12,34,25,.3)); }
.ti-theme-verdant-bloom .vb-event__name { font-family: var(--vb-script); font-size: 46px; line-height: 1.15; color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-event__day { margin: 6px 0 0; font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--vb-soft); }
.ti-theme-verdant-bloom .vb-event__date { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 2px 0 18px; font-family: var(--vb-serif); font-size: 21px; font-weight: 500; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-event__date span { font-size: 64px; line-height: 1; font-weight: 500; padding-right: 12px; border-right: 1px solid rgba(201,174,124,.8); }
.ti-theme-verdant-bloom .vb-event__info { list-style: none; margin: 0 auto 22px; padding: 0; max-width: 330px; text-align: left; }
.ti-theme-verdant-bloom .vb-event__info li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-top: 1px solid rgba(47,107,85,.16); font-size: 14.5px; color: var(--vb-soft); }
.ti-theme-verdant-bloom .vb-event__info svg { flex: none; margin-top: 3px; color: var(--vb-gold-d); }
.ti-theme-verdant-bloom .vb-event__info strong { font-weight: 500; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-event__actions { margin-top: 14px; }
.ti-theme-verdant-bloom .vb-event__actions .ti-btn--maps { display: none; }
.ti-theme-verdant-bloom .vb-events .vb-center { margin-top: 48px; }

/* =============================== KOMPONEN INTI (tampilan saja) =============================== */
.ti-theme-verdant-bloom .ti-btn { border-radius: 999px; font-family: var(--vb-sans); font-weight: 400; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; transition: transform .4s var(--vb-ease), background .4s, color .4s; }
.ti-theme-verdant-bloom .ti-btn--primary, .ti-theme-verdant-bloom .ti-btn--maps { background: var(--vb-emerald); border-color: var(--vb-emerald); color: var(--vb-ivory); }
.ti-theme-verdant-bloom .ti-btn--ghost { background: transparent; border-color: rgba(47,107,85,.45); color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .ti-btn:hover { transform: translateY(-2px); }
.ti-theme-verdant-bloom .ti-field label, .ti-theme-verdant-bloom .ti-field legend { font-family: var(--vb-sans); font-weight: 400; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .ti-field input[type="text"], .ti-theme-verdant-bloom .ti-field input[type="number"], .ti-theme-verdant-bloom .ti-field input[type="tel"], .ti-theme-verdant-bloom .ti-field input[type="email"], .ti-theme-verdant-bloom .ti-field select, .ti-theme-verdant-bloom .ti-field textarea { font-family: var(--vb-sans); font-weight: 300; font-size: 16px; color: var(--vb-ink); border: 1px solid #CFDCCD; border-radius: 10px; background: #FFFFFF; transition: border-color .3s, box-shadow .3s; }
.ti-theme-verdant-bloom .ti-field input:focus, .ti-theme-verdant-bloom .ti-field select:focus, .ti-theme-verdant-bloom .ti-field textarea:focus { outline: none; border-color: var(--vb-emerald); box-shadow: 0 0 0 3px rgba(47,107,85,.16); }
.ti-theme-verdant-bloom .ti-choice span { font-family: var(--vb-sans); border-color: #CFDCCD; border-radius: 999px; }
.ti-theme-verdant-bloom .ti-choice input:checked + span { background: var(--vb-mint); border-color: var(--vb-emerald); color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-form .ti-btn--primary, .ti-theme-verdant-bloom .vb-form button[type="submit"], .ti-theme-verdant-bloom .vb-wishes button[type="submit"] { width: 100%; min-height: 50px; background: linear-gradient(135deg, #3C7A62, #24513F); border-color: var(--vb-emerald-d); color: #FBF6E8; letter-spacing: .22em; }
.ti-theme-verdant-bloom .vb-form [class*="success"], .ti-theme-verdant-bloom .vb-form [class*="alert"], .ti-theme-verdant-bloom .vb-wishes [class*="success"] { border-radius: 10px; border: 1px solid rgba(201,174,124,.7); background: linear-gradient(180deg, #F6FAF4, #E8F1E6); color: var(--vb-emerald-d); font-family: var(--vb-serif); font-style: italic; font-size: 18px; }

/* =============================== COUNTDOWN =============================== */
.ti-theme-verdant-bloom .vb-count { position: relative; display: flex; align-items: center; justify-content: center; min-height: 86vh; padding: 130px 20px 140px; overflow: hidden; text-align: center; color: var(--vb-ivory); background: #3A735C; }
.ti-theme-verdant-bloom .vb-count__bg, .ti-theme-verdant-bloom .vb-count__bg img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ti-theme-verdant-bloom .vb-count__bg img { object-fit: cover; object-position: 50% 45%; }
.ti-theme-verdant-bloom .vb-count__veil { position: absolute; inset: 0; background: linear-gradient(180deg, var(--vb-ivory) 0%, rgba(47,102,81,.5) 16%, rgba(36,81,63,.55) 50%, rgba(47,102,81,.45) 82%, var(--vb-ivory) 100%); }
.ti-theme-verdant-bloom .vb-count__cascade { position: absolute; top: 3%; height: min(64%, 520px); width: auto; max-width: none; z-index: 1; pointer-events: none; filter: drop-shadow(0 12px 14px rgba(12,34,25,.25)); }
.ti-theme-verdant-bloom .vb-count__cascade--l { left: -2vw; }
.ti-theme-verdant-bloom .vb-count__cascade--r { right: -2vw; scale: -1 1; }
.ti-theme-verdant-bloom .vb-count__inner { position: relative; z-index: 2; width: 100%; max-width: 640px; }
.ti-theme-verdant-bloom .vb-count .vb-kicker { color: var(--vb-gold-l); }
.ti-theme-verdant-bloom .vb-count .vb-title { color: var(--vb-ivory); text-shadow: 0 4px 22px rgba(12,34,25,.55); }
.ti-theme-verdant-bloom .vb-countdown { display: flex; justify-content: center; gap: clamp(8px, 2.6vw, 22px); margin: 8px auto 0; }
.ti-theme-verdant-bloom .vb-countdown .ti-countdown__item { display: flex; flex-direction: column; align-items: center; justify-content: center; width: clamp(70px, 19vw, 112px); aspect-ratio: 1; padding: 0; border-radius: 50%; border: 1px solid rgba(230,212,168,.85); background: radial-gradient(circle at 50% 35%, rgba(255,253,249,.2), rgba(255,253,249,.06) 70%); box-shadow: inset 0 0 0 4px rgba(255,253,249,.06), 0 16px 30px -18px rgba(12,34,25,.7); }
.ti-theme-verdant-bloom .vb-countdown .ti-countdown__num { display: block; font-family: var(--vb-serif); font-weight: 500; font-size: clamp(30px, 8.6vw, 46px); line-height: 1; color: var(--vb-ivory); }
.ti-theme-verdant-bloom .vb-countdown .ti-countdown__label { display: block; margin-top: 4px; font-family: var(--vb-sans); font-size: 9.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--vb-gold-l); opacity: 1; }
.ti-theme-verdant-bloom .vb-count__date { margin: 30px 0 0; font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: rgba(250,247,240,.95); text-shadow: 0 2px 10px rgba(12,34,25,.5); }

/* VIDEO */
.ti-theme-verdant-bloom .vb-video { max-width: 880px; margin: 0 auto; padding: 8px; border: 1px solid rgba(201,174,124,.6); border-radius: 14px; }

/* =============================== GALERI =============================== */
.ti-theme-verdant-bloom .vb-gallery__wrap { max-width: 1120px; margin: 0 auto; text-align: left; }
.ti-theme-verdant-bloom .vb-feature { position: relative; display: block; margin: 0 auto 12px; overflow: hidden; border-radius: 10px; background: var(--vb-mint); box-shadow: 0 30px 50px -34px rgba(36,81,63,.7); }
.ti-theme-verdant-bloom .vb-feature::after, .ti-theme-verdant-bloom .vb-shot::after { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(255,253,249,.7); border-radius: 6px; pointer-events: none; opacity: 0; transition: opacity .6s ease; }
.ti-theme-verdant-bloom .vb-feature:hover::after, .ti-theme-verdant-bloom .vb-shot:hover::after, .ti-theme-verdant-bloom .vb-feature:focus-visible::after, .ti-theme-verdant-bloom .vb-shot:focus-visible::after { opacity: 1; }
.ti-theme-verdant-bloom .vb-feature img { display: block; width: 100%; height: auto; }
.ti-theme-verdant-bloom .vb-feature { max-width: 980px; }
.ti-theme-verdant-bloom .vb-feature.is-portrait, .ti-theme-verdant-bloom .vb-feature.is-square { max-width: 560px; }
.ti-theme-verdant-bloom .vb-masonry { columns: 2; column-gap: 10px; }
.ti-theme-verdant-bloom .vb-shot { position: relative; display: block; margin: 0 0 10px; overflow: hidden; break-inside: avoid; border-radius: 8px; background: var(--vb-mint); box-shadow: 0 20px 34px -28px rgba(36,81,63,.7); transition-delay: calc(var(--i, 0) * .12s); }
.ti-theme-verdant-bloom .vb-shot img { display: block; width: 100%; height: auto; transition: filter .6s ease; }
.ti-theme-verdant-bloom .vb-shot:hover img { filter: brightness(1.05) saturate(1.04); }
.ti-theme-verdant-bloom .vb-shot.is-portrait:nth-child(5n+1), .ti-theme-verdant-bloom .vb-shot.is-portrait:nth-child(5n+4) { border-radius: 999px 999px 8px 8px / 26% 26% 8px 8px; }
.ti-theme-verdant-bloom .vb-shot.is-portrait:nth-child(5n+1)::after, .ti-theme-verdant-bloom .vb-shot.is-portrait:nth-child(5n+4)::after { border-radius: 999px 999px 6px 6px / 26% 26% 6px 6px; }

/* =============================== KISAH =============================== */
.ti-theme-verdant-bloom .vb-timeline { position: relative; list-style: none; max-width: 980px; margin: 30px auto 0; padding: 0; text-align: left; }
.ti-theme-verdant-bloom .vb-timeline::before { content: ""; position: absolute; left: 15px; top: 6px; bottom: 6px; width: 1px; background: linear-gradient(180deg, rgba(201,174,124,0), var(--vb-gold) 8%, var(--vb-gold) 92%, rgba(201,174,124,0)); }
.ti-theme-verdant-bloom .vb-chapter { position: relative; display: grid; gap: 18px; padding: 0 0 54px 46px; }
.ti-theme-verdant-bloom .vb-chapter:last-child { padding-bottom: 0; }
.ti-theme-verdant-bloom .vb-chapter__node { position: absolute; left: 1px; top: 0; display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; border: 1px solid var(--vb-gold); background: var(--vb-white); color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-chapter__media { overflow: hidden; border-radius: 10px; background: var(--vb-mint); box-shadow: 0 26px 44px -30px rgba(36,81,63,.7); }
.ti-theme-verdant-bloom .vb-chapter__media img { display: block; width: 100%; height: auto; }
.ti-theme-verdant-bloom .vb-chapter__media.is-portrait { max-width: 380px; border-radius: 999px 999px 10px 10px / 24% 24% 10px 10px; }
.ti-theme-verdant-bloom .vb-chapter__body h3 { margin: 0 0 8px; font-family: var(--vb-serif); font-weight: 600; font-size: 28px; line-height: 1.2; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-chapter__body p { margin: 0; color: var(--vb-soft); }

/* =============================== LOKASI =============================== */
.ti-theme-verdant-bloom .vb-venue__list { display: grid; grid-template-columns: 1fr; gap: 28px; max-width: 980px; margin: 20px auto 0; }
.ti-theme-verdant-bloom .vb-place { position: relative; padding: 40px 22px 32px; border-radius: 160px 160px 16px 16px; background: linear-gradient(180deg, #FFFDF9, #F6F8F1); box-shadow: 0 30px 50px -36px rgba(36,81,63,.7), inset 0 0 0 1px rgba(201,174,124,.7); }
.ti-theme-verdant-bloom .vb-place__pin { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 50%; color: var(--vb-gold-l); background: linear-gradient(135deg, #3C7A62, #24513F); box-shadow: 0 0 0 5px rgba(201,174,124,.25); }
.ti-theme-verdant-bloom .vb-place__name { margin: 4px 0 10px; font-family: var(--vb-serif); font-weight: 600; font-size: 28px; line-height: 1.2; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-place__addr { max-width: 380px; margin: 0 auto 22px; font-size: 14.5px; color: var(--vb-soft); }
.ti-theme-verdant-bloom .vb-place__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* =============================== RSVP & UCAPAN =============================== */
.ti-theme-verdant-bloom .vb-form { position: relative; max-width: 560px; margin: 80px auto 0; padding: 70px 24px 28px; text-align: left; border-radius: 18px; background: var(--vb-white); box-shadow: 0 40px 60px -42px rgba(36,81,63,.65), inset 0 0 0 1px rgba(201,174,124,.7); }
.ti-theme-verdant-bloom .vb-form__posy { position: absolute; left: 50%; top: -74px; width: min(86%, 400px); height: auto; translate: -50% 0; pointer-events: none; }
.ti-theme-verdant-bloom .vb-wishes__box { max-width: 700px; margin: 0 auto; text-align: left; }
.ti-theme-verdant-bloom .vb-wishes form, .ti-theme-verdant-bloom .vb-wishes .ti-guestbook__form { padding: 22px; margin-bottom: 22px; border-radius: 16px; background: var(--vb-white); box-shadow: inset 0 0 0 1px rgba(201,174,124,.55); }
.ti-theme-verdant-bloom .vb-wishes .ti-guestbook__item { position: relative; margin-bottom: 14px; padding: 20px 20px 16px 58px; border-radius: 14px; background: rgba(255,253,249,.92); box-shadow: 0 18px 30px -26px rgba(36,81,63,.5), inset 0 0 0 1px rgba(169,187,163,.55); }
.ti-theme-verdant-bloom .vb-wishes .ti-guestbook__item::before { content: "\201C"; position: absolute; left: 18px; top: 4px; font-family: var(--vb-serif); font-size: 58px; line-height: 1; color: var(--vb-pink); }
.ti-theme-verdant-bloom .vb-wishes .ti-guestbook__item strong, .ti-theme-verdant-bloom .vb-wishes .ti-guestbook__item b { font-family: var(--vb-sans); font-weight: 500; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--vb-emerald-d); }
.ti-theme-verdant-bloom .vb-wishes .ti-guestbook__item p { font-family: var(--vb-serif); font-style: italic; font-size: 18px; line-height: 1.55; color: var(--vb-soft); }

/* =============================== TANDA KASIH =============================== */
.ti-theme-verdant-bloom .vb-gift { display: grid; gap: 26px; max-width: 820px; margin: 0 auto; }
.ti-theme-verdant-bloom .vb-gift .ti-gift__card { position: relative; padding: 46px 24px 30px; overflow: hidden; color: var(--vb-ink); border: 0; border-radius: 18px; background: linear-gradient(180deg, #FFFDF9, #F4F7EF); box-shadow: 0 40px 56px -36px rgba(10,30,22,.9), inset 0 0 0 1px rgba(201,174,124,.75); transition: transform .6s var(--vb-ease); }
.ti-theme-verdant-bloom .vb-gift .ti-gift__card::before { content: ""; position: absolute; right: -26px; top: -30px; width: 130px; height: 130px; background: url(assets/img/bloom-blush.webp) 50% 50% / contain no-repeat; opacity: .95; pointer-events: none; }
.ti-theme-verdant-bloom .vb-gift .ti-gift__card::after { content: ""; position: absolute; inset: 8px; border: .6px solid rgba(201,174,124,.55); border-radius: 12px; pointer-events: none; }
.ti-theme-verdant-bloom .vb-gift .ti-gift__card:hover { transform: translateY(-4px); }
.ti-theme-verdant-bloom .vb-gift .ti-gift__bank { font-family: var(--vb-sans); font-weight: 500; font-size: 13px; letter-spacing: .28em; color: var(--vb-gold-d); }
.ti-theme-verdant-bloom .vb-gift .ti-gift__no { font-family: var(--vb-serif); font-weight: 600; font-size: 30px; letter-spacing: .05em; color: var(--vb-emerald-d); overflow-wrap: anywhere; }
.ti-theme-verdant-bloom .vb-gift button, .ti-theme-verdant-bloom .vb-gift .ti-btn { position: relative; z-index: 1; border-color: var(--vb-emerald); background: var(--vb-emerald-d); color: #FBF6E8; letter-spacing: .18em; }
.ti-theme-verdant-bloom .vb-gift .is-copied { background: var(--vb-gold); color: var(--vb-emerald-d); }

/* =============================== PENUTUP =============================== */
.ti-theme-verdant-bloom .vb-closing { position: relative; display: flex; flex-direction: column; align-items: center; padding: 120px 20px 60px; overflow: hidden; text-align: center; background: #E8E2CF; }
.ti-theme-verdant-bloom .vb-closing__bg, .ti-theme-verdant-bloom .vb-closing__bg img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ti-theme-verdant-bloom .vb-closing__bg img { object-fit: cover; object-position: 50% 40%; }
.ti-theme-verdant-bloom .vb-closing__veil { position: absolute; inset: 0; background: linear-gradient(180deg, var(--vb-ivory) 0%, rgba(250,247,240,0) 18%, rgba(250,247,240,0) 46%, rgba(250,247,240,.9) 70%, var(--vb-ivory) 86%); }
.ti-theme-verdant-bloom .vb-closing__corner { position: absolute; top: -10px; width: min(48vw, 380px); height: auto; z-index: 1; pointer-events: none; }
.ti-theme-verdant-bloom .vb-closing__corner--l { left: -10px; }
.ti-theme-verdant-bloom .vb-closing__corner--r { right: -10px; scale: -1 1; }
.ti-theme-verdant-bloom .vb-closing__arch { position: relative; z-index: 2; width: min(92vw, 57vh, 520px); aspect-ratio: 1200 / 1714; }
.ti-theme-verdant-bloom .vb-closing__arch > img { position: absolute; inset: 0; width: 100%; height: 100%; filter: drop-shadow(0 18px 24px rgba(36,81,63,.22)); }
.ti-theme-verdant-bloom .vb-closing__content { position: absolute; left: 21%; right: 21%; top: 43%; }
.ti-theme-verdant-bloom .vb-closing__names { display: flex; flex-direction: column; align-items: center; font-family: var(--vb-serif); font-weight: 500; font-size: clamp(36px, 9.4vw, 58px); line-height: 1; color: var(--vb-emerald-d); text-shadow: 0 2px 18px rgba(255,253,249,.95); overflow-wrap: anywhere; }
.ti-theme-verdant-bloom .vb-closing__content .vb-kicker { color: var(--vb-emerald-d); text-shadow: 0 1px 10px rgba(255,253,249,.95); }
.ti-theme-verdant-bloom .vb-closing__text { position: relative; z-index: 2; max-width: 600px; margin-top: 10px; }
.ti-theme-verdant-bloom .vb-closing__thanks { margin: 6px 0 0; font-family: var(--vb-script); font-size: 34px; line-height: 1.3; color: var(--vb-emerald); }
.ti-theme-verdant-bloom .vb-footer { padding: 10px 16px 96px; text-align: center; background: var(--vb-ivory); color: var(--vb-sage-d); font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; }
.ti-theme-verdant-bloom .vb-footer p { margin: 12px 0 0; }

/* =============================== REVEAL (sekali, tidak berulang) =============================== */
.ti-theme-verdant-bloom [data-vb-reveal] { opacity: 0; transform: translate3d(0, 18px, 0); transition: opacity 1s ease, transform 1.2s var(--vb-ease); }
.ti-theme-verdant-bloom [data-vb-reveal].is-shown { opacity: 1; transform: none; }
.ti-theme-verdant-bloom [data-vb-reveal="photo"] { transform: none; transition: opacity 1.4s ease; }
.ti-theme-verdant-bloom [data-vb-reveal="bloom"] { transform: translate3d(0, 12px, 0); transition: opacity 1.4s ease, transform 1.8s var(--vb-ease); }
.ti-theme-verdant-bloom .vb-portrait[data-vb-reveal] .vb-portrait__posy { opacity: 0; transform: translateY(14px); transition: opacity 1.2s ease .5s, transform 1.6s var(--vb-ease) .5s; }
.ti-theme-verdant-bloom .vb-portrait.is-shown .vb-portrait__posy { opacity: 1; transform: none; }
.ti-theme-verdant-bloom .vb-portrait[data-vb-reveal]::before, .ti-theme-verdant-bloom .vb-portrait[data-vb-reveal]::after { opacity: 0; transition: opacity 1.2s ease .3s; }
.ti-theme-verdant-bloom .vb-portrait.is-shown::before, .ti-theme-verdant-bloom .vb-portrait.is-shown::after { opacity: 1; }
.ti-theme-verdant-bloom .vb-head .vb-line i { transform: scaleX(0); transform-origin: 100% 50%; transition: transform 1.3s var(--vb-ease) .35s; }
.ti-theme-verdant-bloom .vb-head .vb-line i + svg + i { transform-origin: 0 50%; }
.ti-theme-verdant-bloom .vb-head.is-shown .vb-line i { transform: none; }
.ti-theme-verdant-bloom .vb-person__info[data-vb-reveal] { transition-delay: .3s; }

/* =============================== TABLET & DESKTOP =============================== */
@media (min-width: 760px) {
  .ti-theme-verdant-bloom .vb-section { padding: 120px 40px; }
  .ti-theme-verdant-bloom .vb-emerald { padding-top: 150px; padding-bottom: 150px; }
  .ti-theme-verdant-bloom .vb-intro { padding-top: 56px; padding-bottom: 130px; }
  .ti-theme-verdant-bloom .vb-intro__bloom { width: min(20vw, 220px); bottom: 40px; }
  .ti-theme-verdant-bloom .vb-intro__bloom--l { left: 4vw; }
  .ti-theme-verdant-bloom .vb-intro__bloom--r { right: 4vw; }
  .ti-theme-verdant-bloom .vb-couple__grid { grid-template-columns: 1fr auto 1fr; gap: 30px; }
  .ti-theme-verdant-bloom .vb-couple__amp { align-self: center; margin: -150px 0 0; font-size: 96px; }
  .ti-theme-verdant-bloom .vb-portrait { width: min(34vw, 340px); }
  .ti-theme-verdant-bloom .vb-events__grid { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 40px; }
  .ti-theme-verdant-bloom .vb-venue__list { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
  .ti-theme-verdant-bloom .vb-gift { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
  .ti-theme-verdant-bloom .vb-masonry { columns: 3; column-gap: 14px; }
  .ti-theme-verdant-bloom .vb-shot { margin-bottom: 14px; }
  .ti-theme-verdant-bloom .vb-feature { margin-bottom: 14px; }
  .ti-theme-verdant-bloom .vb-timeline::before { left: 50%; }
  .ti-theme-verdant-bloom .vb-chapter { grid-template-columns: 1fr 1fr; gap: 70px; padding: 0 0 80px; align-items: center; }
  .ti-theme-verdant-bloom .vb-chapter__node { left: 50%; translate: -50% 0; top: 50%; margin-top: -15px; }
  .ti-theme-verdant-bloom .vb-chapter--r .vb-chapter__media { order: 2; }
  .ti-theme-verdant-bloom .vb-chapter--l .vb-chapter__body { text-align: left; }
  .ti-theme-verdant-bloom .vb-chapter--r .vb-chapter__body { text-align: right; }
  .ti-theme-verdant-bloom .vb-chapter--text .vb-chapter__body { grid-column: 1 / -1; max-width: 520px; margin: 0 auto; text-align: center; padding: 40px 30px; border-radius: 14px; background: rgba(255,253,249,.8); box-shadow: inset 0 0 0 1px rgba(201,174,124,.6); }
  .ti-theme-verdant-bloom .vb-chapter--text .vb-chapter__node { top: -14px; margin-top: 0; }
  .ti-theme-verdant-bloom .vb-chapter__media.is-portrait { justify-self: center; }
  .ti-theme-verdant-bloom .vb-nav { left: 50%; transform: translate(-50%, 160%); max-width: none; padding: 5px 8px; }
  .ti-opened.ti-theme-verdant-bloom .vb-nav, .vb-opened.ti-theme-verdant-bloom .vb-nav { transform: translate(-50%, 0); }
  .ti-theme-verdant-bloom .vb-nav a { width: 44px; height: 44px; }
  .ti-theme-verdant-bloom .vb-gate__content { bottom: max(14vh, 120px); }
  .ti-theme-verdant-bloom .vb-hero { padding-bottom: 96px; }
  .ti-theme-verdant-bloom .vb-hero__content { margin-top: -9%; }
}
@media (min-width: 1200px) { .ti-theme-verdant-bloom .vb-masonry { columns: 3; column-gap: 18px; } .ti-theme-verdant-bloom .vb-shot { margin-bottom: 18px; } }
@media (orientation: landscape) and (min-width: 700px) {
  .ti-theme-verdant-bloom .vb-gate__names, .ti-theme-verdant-bloom .vb-hero__names { flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 0 .26em; font-size: clamp(40px, 6vw, 84px); }
  .ti-theme-verdant-bloom .vb-gate__names em, .ti-theme-verdant-bloom .vb-hero__names em { margin: 0; }
}
@media (orientation: landscape) and (min-width: 700px) {
  .ti-theme-verdant-bloom .vb-hero { flex-direction: row; align-items: center; justify-content: center; gap: 5vw; padding: 36px 6vw 96px; }
  .ti-theme-verdant-bloom .vb-hero__veil { background: linear-gradient(90deg, rgba(250,247,240,0) 28%, rgba(250,247,240,.62) 56%, rgba(250,247,240,.86) 100%), linear-gradient(180deg, rgba(238,245,236,.2) 0%, rgba(238,245,236,0) 40%, rgba(250,247,240,.5) 84%, var(--vb-ivory) 100%); }
  .ti-theme-verdant-bloom .vb-hero__arch { width: min(60vh, 44vw, 680px); }
  .ti-theme-verdant-bloom .vb-hero__content { margin-top: 0; width: min(44vw, 640px); }
  .ti-theme-verdant-bloom .vb-hero__names { flex-direction: column; align-items: center; gap: 0; font-size: clamp(60px, 6.6vw, 108px); }
  .ti-theme-verdant-bloom .vb-hero__names em { margin: .02em 0 .06em; }
}
@media (orientation: landscape) and (max-height: 560px) {
  .ti-theme-verdant-bloom .vb-gate { --ab: 5vh; }
  .ti-theme-verdant-bloom .vb-gate__crown, .ti-theme-verdant-bloom .vb-door__cascade, .ti-theme-verdant-bloom .vb-door__handle { display: none; }
  .ti-theme-verdant-bloom .vb-hero { padding: 14px 6vw 64px; }
  .ti-theme-verdant-bloom .vb-hero__names { font-size: clamp(38px, 11vh, 60px); }
  .ti-theme-verdant-bloom .vb-explore { display: none; }
  .ti-theme-verdant-bloom .vb-gate__content { bottom: 9vh; }
  .ti-theme-verdant-bloom .vb-gate__names { font-size: clamp(30px, 8vh, 46px); }
  .ti-theme-verdant-bloom .vb-gate__date { margin: 8px 0 10px; }
  .ti-theme-verdant-bloom .vb-gate__guest { margin-bottom: 10px; padding: 4px 22px; }
  .ti-theme-verdant-bloom .vb-gate__guest .ti-guest__name { font-size: 18px; }
  .ti-theme-verdant-bloom .vb-gate__content .vb-line { margin-top: 6px; }
  .ti-theme-verdant-bloom .vb-gate__base { width: min(70vw, 600px); bottom: -8vh; }
  .ti-theme-verdant-bloom .vb-hero__arch { width: min(40vw, 58vh); }
}
@media (min-width: 601px) and (orientation: portrait) { .ti-theme-verdant-bloom .vb-hero__arch { width: min(64vw, 41vh, 590px); } }
@media (max-width: 600px) and (orientation: portrait) {
  .ti-theme-verdant-bloom .vb-door__cascade { display: none; }
}
@media (max-height: 760px) { .ti-theme-verdant-bloom .vb-explore span { display: none; } .ti-theme-verdant-bloom .vb-hero__date { margin-bottom: 12px; } }
@media (max-height: 680px) and (orientation: portrait) {
  .ti-theme-verdant-bloom .vb-gate__names { font-size: clamp(38px, 11vw, 64px); }
  .ti-theme-verdant-bloom .vb-gate__content .vb-kicker { margin-bottom: 4px; }
}
@media (max-width: 380px) {
  .ti-theme-verdant-bloom .vb-gate__guest .ti-guest__name { font-size: 20px; }
  .ti-theme-verdant-bloom .vb-btn { padding: 10px 24px; letter-spacing: .2em; }
  .ti-theme-verdant-bloom .vb-countdown { gap: 6px; }
}

/* Mode ringan (perangkat lemah / hemat data): tanpa kelopak & bayangan dekorasi */
.ti-theme-verdant-bloom.vb-lite .vb-petals { display: none !important; }
.ti-theme-verdant-bloom.vb-lite .vb-door__corner, .ti-theme-verdant-bloom.vb-lite .vb-door__cascade, .ti-theme-verdant-bloom.vb-lite .vb-gate__crown, .ti-theme-verdant-bloom.vb-lite .vb-gate__base, .ti-theme-verdant-bloom.vb-lite .vb-hero__frame { filter: none; }

/* Gerak dikurangi: gerbang langsung memudar, tanpa ayunan pintu, kelopak, atau pergeseran */
@media (prefers-reduced-motion: reduce) {
  .ti-theme-verdant-bloom *, .ti-theme-verdant-bloom *::before, .ti-theme-verdant-bloom *::after { animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .ti-theme-verdant-bloom .vb-petals { display: none !important; }
  .ti-theme-verdant-bloom [data-vb-reveal] { opacity: 1; transform: none; }
}
.ti-theme-verdant-bloom.vb-reduce .vb-petals { display: none !important; }

/* Animasi */
@keyframes vb-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vb-up { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: none; } }
@keyframes vb-rise { from { opacity: 0; transform: translate3d(0, 22px, 0); } to { opacity: 1; transform: none; } }
@keyframes vb-draw { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes vb-draw-x { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes vb-bloom-in { from { opacity: 0; transform: translate3d(-3%, -4%, 0) rotate(-3deg); } to { opacity: 1; transform: none; } }
@keyframes vb-drop-in { from { opacity: 0; transform: translate3d(0, -26px, 0); } to { opacity: 1; transform: none; } }
@keyframes vb-crown-in { from { opacity: 0; transform: translate3d(0, -18px, 0); } to { opacity: 1; transform: none; } }
@keyframes vb-base-in { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: none; } }
@keyframes vb-glow { 0%, 100% { box-shadow: inset 0 0 0 3px rgba(36,81,63,.9), inset 0 0 0 4px rgba(230,212,168,.35), 0 16px 28px -16px rgba(20,48,36,.8); } 50% { box-shadow: inset 0 0 0 3px rgba(36,81,63,.9), inset 0 0 0 4px rgba(230,212,168,.6), 0 0 0 7px rgba(201,174,124,.18), 0 16px 28px -16px rgba(20,48,36,.8); } }
@keyframes vb-light { 0% { opacity: 0; transform: scaleY(.2); } 25% { opacity: 1; transform: scaleY(1); width: 3px; } 70% { opacity: .9; width: 40vw; } 100% { opacity: 0; width: 70vw; } }
@keyframes vb-door-l { 0% { transform: none; opacity: 1; } 72% { opacity: 1; } 100% { transform: rotateY(98deg); opacity: 0; } }
@keyframes vb-door-r { 0% { transform: none; opacity: 1; } 72% { opacity: 1; } 100% { transform: rotateY(-98deg); opacity: 0; } }
@keyframes vb-shade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vb-sway { 0% { opacity: 1; transform: none; } 40% { opacity: 1; transform: rotate(-4deg) translate3d(-2%, -1%, 0); } 100% { opacity: 1; transform: rotate(-7deg) translate3d(-4%, -3%, 0); } }
@keyframes vb-crown-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate3d(0, -26%, 0) scale(.94); } }
@keyframes vb-base-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate3d(0, 30%, 0); } }
@keyframes vb-fall { 0% { opacity: 0; transform: translate3d(0, 0, 0) rotate3d(1, .3, .2, 0deg); } 8% { opacity: .95; } 85% { opacity: .9; } 100% { opacity: 0; transform: translate3d(-9vw, 112vh, 0) rotate3d(1, .3, .2, 520deg); } }
@keyframes vb-fall-b { 0% { opacity: 0; transform: translate3d(0, 0, 0) rotate3d(.3, 1, .2, 0deg); } 8% { opacity: .95; } 85% { opacity: .9; } 100% { opacity: 0; transform: translate3d(11vw, 108vh, 0) rotate3d(.3, 1, .2, -460deg); } }
@keyframes vb-line { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@keyframes vb-wheel { 0%, 100% { transform: translateY(0); opacity: 1; } 60% { transform: translateY(12px); opacity: 0; } }
@keyframes vb-loader-auto { to { opacity: 0; visibility: hidden; } }
