/* Tema Floréa Secret Garden — namespace .ti-theme-florea-secret-garden, prefix kelas fsg-
   (Premium · The Nature Luxury Collection: taman rahasia 3D, editorial botanical; sage, ivory, buttercream, dusty rose, aksen lavender) */
.ti-theme-florea-secret-garden {
  --fsg-sage: #A8B69F; --fsg-green: #667D63; --fsg-ivory: #F7F3E9; --fsg-rose: #D9AEB0; --fsg-lav: #B8AFCB; --fsg-butter: #E9D7AA; --fsg-champ: #CDB681; --fsg-char: #494740;
  --fsg-paper: #FBF8F1; --fsg-ink: #3F4A3C; --fsg-soft: #6B6A60; --fsg-blush: #F3E4E1;
  --fsg-ease: cubic-bezier(.22,.61,.24,1); --fsg-ease2: cubic-bezier(.65,0,.25,1);
  --ti-ease: cubic-bezier(.22,.61,.24,1); --ti-dur: 1.2s;
  background: var(--fsg-paper); color: var(--fsg-char); font-family: "Mulish", "Segoe UI", sans-serif; font-weight: 300; font-size: 15.5px; line-height: 1.8;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
.ti-theme-florea-secret-garden h1, .ti-theme-florea-secret-garden h2, .ti-theme-florea-secret-garden h3 { margin: 0; font-weight: 400; }
.ti-theme-florea-secret-garden img { max-width: 100%; }
.ti-theme-florea-secret-garden .fsg-kicker { margin: 0 0 10px; padding-left: .32em; font-family: "Mulish", sans-serif; font-weight: 600; font-size: 10px; letter-spacing: .32em; text-transform: uppercase; color: var(--fsg-green); }
.ti-theme-florea-secret-garden .fsg-kicker--light { color: var(--fsg-ivory); text-shadow: 0 2px 12px rgba(40,50,36,.6); }
.ti-theme-florea-secret-garden .fsg-label { display: block; margin: 0 0 6px; font-weight: 600; font-size: 10px; letter-spacing: .28em; text-transform: uppercase; color: #A38C5C; }
.ti-theme-florea-secret-garden .fsg-label--light { color: var(--fsg-butter); }
.ti-theme-florea-secret-garden .fsg-title { font-family: "Bodoni Moda", Didot, Georgia, serif; font-weight: 400; font-size: clamp(36px, 10vw, 64px); line-height: 1.04; letter-spacing: -.01em; color: var(--fsg-ink); }
.ti-theme-florea-secret-garden .fsg-title--light { color: var(--fsg-ivory); text-shadow: 0 4px 24px rgba(30,40,28,.55); }
.ti-theme-florea-secret-garden .fsg-sub { margin: 10px 0 0; font-family: "Bodoni Moda", serif; font-style: italic; font-size: 18px; color: var(--fsg-green); }
.ti-theme-florea-secret-garden .fsg-script { margin: 0; font-family: "Pinyon Script", cursive; font-size: clamp(30px, 8vw, 44px); line-height: 1.2; color: #B8848A; }
.ti-theme-florea-secret-garden .fsg-script--light { color: var(--fsg-blush); text-shadow: 0 2px 14px rgba(30,40,28,.5); }
.ti-theme-florea-secret-garden .fsg-text { max-width: 580px; margin: 0 auto 22px; color: var(--fsg-soft); }
.ti-theme-florea-secret-garden .fsg-text--lead { font-family: "Bodoni Moda", serif; font-style: italic; font-size: 19px; line-height: 1.6; color: var(--fsg-green); }
.ti-theme-florea-secret-garden .fsg-text--light { color: rgba(247,243,233,.9); }
.ti-theme-florea-secret-garden .fsg-text--sm { font-size: 13.5px; margin-bottom: 8px; }
.ti-theme-florea-secret-garden .fsg-center { text-align: center; }
.ti-theme-florea-secret-garden .fsg-link { color: var(--fsg-green); font-size: 13px; letter-spacing: .06em; text-decoration: none; border-bottom: 1px solid rgba(217,174,176,.8); padding-bottom: 1px; }
.ti-theme-florea-secret-garden .fsg-vine { display: block; width: 180px; height: 24px; margin: 16px auto 0; fill: none; stroke: var(--fsg-sage); stroke-width: 1.1; stroke-linecap: round; }
.ti-theme-florea-secret-garden .fsg-vine path:first-child { stroke-dasharray: 220; stroke-dashoffset: 220; transition: stroke-dashoffset 2s var(--fsg-ease) .3s; }
.ti-theme-florea-secret-garden .is-shown .fsg-vine path:first-child, .ti-theme-florea-secret-garden .fsg-footer .fsg-vine path:first-child { stroke-dashoffset: 0; }
.ti-theme-florea-secret-garden .fsg-vine path:last-child { fill: rgba(217,174,176,.35); stroke: var(--fsg-rose); }

/* Tombol: pita ivory bergaris sage, isi dusty rose saat hover */
.ti-theme-florea-secret-garden .fsg-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 10px 32px; overflow: hidden; border: 1px solid var(--fsg-green); border-radius: 2px; background: var(--fsg-green); color: var(--fsg-ivory); font-family: "Mulish", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; text-decoration: none; cursor: pointer; box-shadow: inset 0 0 0 4px var(--fsg-green), inset 0 0 0 5px rgba(247,243,233,.45); transition: background .5s, color .5s, transform .5s var(--fsg-ease); isolation: isolate; }
.ti-theme-florea-secret-garden .fsg-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: #B9878C; clip-path: circle(0% at 50% 50%); transition: clip-path .8s var(--fsg-ease); }
.ti-theme-florea-secret-garden .fsg-btn:hover::before { clip-path: circle(75% at 50% 50%); }
.ti-theme-florea-secret-garden .fsg-btn:hover { transform: translateY(-2px); }
.ti-theme-florea-secret-garden .fsg-btn:focus-visible { outline: 2px solid var(--fsg-rose); outline-offset: 3px; }
.ti-theme-florea-secret-garden .fsg-btn svg { flex: none; }
.ti-theme-florea-secret-garden .fsg-btn--small { min-height: 44px; padding: 8px 22px; font-size: 10px; }
.ti-theme-florea-secret-garden .fsg-btn--ghost { margin-top: 30px; background: transparent; color: var(--fsg-green); box-shadow: none; }
.ti-theme-florea-secret-garden .fsg-btn--open { background: var(--fsg-paper); border-color: var(--fsg-paper); color: var(--fsg-green); box-shadow: inset 0 0 0 4px var(--fsg-paper), inset 0 0 0 5px rgba(102,125,99,.55), 0 18px 34px -16px rgba(30,40,28,.9); }
.ti-theme-florea-secret-garden .fsg-btn--open:hover { color: var(--fsg-ivory); }

/* =============================== LOADING =============================== */
.ti-theme-florea-secret-garden .fsg-loader { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background: radial-gradient(70% 60% at 50% 42%, #FFFDF8, #EEF0E6 72%); transition: opacity .8s ease, visibility 0s linear .8s; animation: fsg-loader-auto .8s ease 4s forwards; }
.ti-theme-florea-secret-garden.fsg-loaded .fsg-loader { opacity: 0; visibility: hidden; pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-loader__bloom { width: 52px; fill: rgba(217,174,176,.25); stroke: var(--fsg-rose); stroke-width: 1.2; transform-origin: 50% 50%; animation: fsg-spin 6s linear infinite, fsg-pulse 2.4s ease-in-out infinite; }
.ti-theme-florea-secret-garden .fsg-loader__brand { margin: 0; font-size: 10px; font-weight: 600; letter-spacing: .5em; padding-left: .5em; text-transform: uppercase; color: var(--fsg-green); }

/* =============================== PANGGUNG 3D =============================== */
.ti-theme-florea-secret-garden .fsg-stage { position: fixed; inset: 0; z-index: 0; overflow: hidden; background: linear-gradient(180deg, #B3CCDD 0%, #E7E7DA 50%, #8D9F7D 100%); pointer-events: none; }
.ti-theme-florea-secret-garden.fsg-stage-off .fsg-stage { visibility: hidden; }
.ti-theme-florea-secret-garden .fsg-stage__scene { position: absolute; inset: 0; }
.ti-theme-florea-secret-garden .fsg-stage__still, .ti-theme-florea-secret-garden .fsg-stage__still img, .ti-theme-florea-secret-garden .fsg-stage__gl { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ti-theme-florea-secret-garden .fsg-stage__still img { object-fit: cover; object-position: 50% 55%; transform-origin: 50% 44%; transform: scale(calc(var(--fsg-push, 1) + var(--fsg-q, 0) * .32)); transition: transform 3.2s var(--fsg-ease2); will-change: transform; }
.ti-theme-florea-secret-garden .fsg-stage__gl { opacity: 0; transition: opacity 1.6s ease; }
.ti-theme-florea-secret-garden.fsg-gl-on .fsg-stage__gl { opacity: 1; }
.ti-theme-florea-secret-garden .fsg-mist { position: absolute; top: -10%; bottom: -10%; width: 70%; background: radial-gradient(60% 50% at 50% 55%, rgba(247,243,233,.95), rgba(247,243,233,.6) 45%, rgba(247,243,233,0) 72%); filter: blur(10px); }
.ti-theme-florea-secret-garden .fsg-mist--l { left: -8%; }
.ti-theme-florea-secret-garden .fsg-mist--r { right: -8%; }
.ti-theme-florea-secret-garden .fsg-rays { position: absolute; inset: -20% -10% 0; opacity: 0; mix-blend-mode: screen; }
.ti-theme-florea-secret-garden .fsg-rays i { position: absolute; top: -10%; right: 14%; width: 16%; height: 120%; background: linear-gradient(180deg, rgba(255,243,218,.42), rgba(255,243,218,0) 75%); transform: rotate(28deg); transform-origin: 50% 0; filter: blur(16px); animation: fsg-ray 10s ease-in-out infinite alternate; }
.ti-theme-florea-secret-garden .fsg-rays i:nth-child(2) { right: 30%; width: 8%; animation-delay: -4s; opacity: .7; }
.ti-theme-florea-secret-garden .fsg-rays i:nth-child(3) { right: 42%; width: 11%; animation-delay: -7s; opacity: .5; }
.ti-theme-florea-secret-garden .fsg-stage__veil { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(52,64,48,.78) 0%, rgba(52,64,48,.35) 28%, rgba(52,64,48,0) 55%), linear-gradient(180deg, rgba(52,64,48,.2), rgba(52,64,48,0) 18%); }
/* kupu-kupu: dua sayap (render tekstur) mengepak; jalur melayang menghindari pusat (wajah/teks) */
.ti-theme-florea-secret-garden .fsg-flies { position: absolute; inset: 0; z-index: 4; pointer-events: none; overflow: hidden; }
.ti-theme-florea-secret-garden .fsg-flies i { position: absolute; left: calc(8% + var(--n) * 37%); top: calc(18% + var(--n) * 9%); width: 26px; height: 26px; opacity: 0; animation: fsg-fly calc(16s + var(--n) * 5s) ease-in-out calc(var(--n) * -3s) infinite; }
.ti-theme-florea-secret-garden .fsg-flies b { position: absolute; top: 0; width: 13px; height: 26px; background: var(--w) 0 0 / 26px 26px no-repeat; transform-origin: 0 50%; animation: fsg-flap .32s ease-in-out infinite alternate; }
.ti-theme-florea-secret-garden .fsg-flies b:first-child { left: 13px; }
.ti-theme-florea-secret-garden .fsg-flies b:last-child { left: 13px; transform: scaleX(-1); animation-name: fsg-flap2; }
.ti-theme-florea-secret-garden .fsg-petals { position: absolute; inset: 0; z-index: 3; overflow: hidden; pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-petals i { position: absolute; top: -20px; left: calc(var(--n) * 12% + 4%); width: 9px; height: 12px; border-radius: 80% 0 80% 0; background: linear-gradient(135deg, #FFFDF8, #EBC8C6); opacity: 0; animation: fsg-petal calc(15s + var(--n) * 1.9s) linear calc(var(--n) * -2.6s) infinite; }
.ti-theme-florea-secret-garden .fsg-petals i:nth-child(2n) { background: linear-gradient(135deg, #FFF8EA, var(--fsg-butter)); }

/* intro: daun foreground → kabut terbuka → taman jelas → bunga mekar → kupu-kupu → nama → tombol */
.ti-theme-florea-secret-garden.fsg-ready .fsg-stage__scene { animation: fsg-emerge 3.2s var(--fsg-ease) .6s both; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-mist--l { animation: fsg-mist-l 3.6s var(--fsg-ease2) .5s both; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-mist--r { animation: fsg-mist-r 3.6s var(--fsg-ease2) .5s both; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-rays { animation: fsg-fade-to 2.5s ease 2s both; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-stage .fsg-flies, .ti-theme-florea-secret-garden.fsg-ready .fsg-stage .fsg-petals { animation: fsg-fade 2s ease 2.6s both; }
.ti-theme-florea-secret-garden .fsg-stage .fsg-flies, .ti-theme-florea-secret-garden .fsg-stage .fsg-petals { opacity: 0; }

/* =============================== PEMBUKA =============================== */
.ti-theme-florea-secret-garden .fsg-cover { position: fixed; inset: 0; z-index: 40; overflow: hidden; pointer-events: none; transition: visibility 0s linear 3s; }
.ti-theme-florea-secret-garden .fsg-cover__content, .ti-theme-florea-secret-garden .fsg-cover button { pointer-events: auto; }
.ti-opened.ti-theme-florea-secret-garden .fsg-cover, .fsg-opened.ti-theme-florea-secret-garden .fsg-cover { visibility: hidden; }
.ti-opened.ti-theme-florea-secret-garden .fsg-cover *, .fsg-opened.ti-theme-florea-secret-garden .fsg-cover * { pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-cover__leaves { position: absolute; z-index: 3; width: min(62vw, 520px); opacity: 0; filter: blur(2px) drop-shadow(0 18px 20px rgba(30,40,28,.4)); will-change: transform; }
.ti-theme-florea-secret-garden .fsg-cover__leaves--l { left: -14vw; top: -4vh; transform-origin: 0 0; rotate: 18deg; }
.ti-theme-florea-secret-garden .fsg-cover__leaves--r { right: -12vw; top: 6vh; width: min(52vw, 440px); transform-origin: 100% 0; rotate: -12deg; }
.ti-theme-florea-secret-garden .fsg-cover__fg { position: absolute; left: 50%; bottom: -3vh; width: max(122vw, 940px); max-width: none; translate: -50% 0; z-index: 2; opacity: 0; filter: blur(3px); }
.ti-theme-florea-secret-garden.fsg-gl-on .fsg-cover__fg { display: none; }
.ti-theme-florea-secret-garden .fsg-cover__content { position: absolute; left: 50%; bottom: max(6vh, 30px); z-index: 6; width: min(90vw, 600px); translate: -50% 0; display: flex; flex-direction: column; align-items: center; text-align: center; color: var(--fsg-ivory); transition: opacity .9s ease, transform 1.3s var(--fsg-ease), filter .9s ease; }
.ti-theme-florea-secret-garden .fsg-cover__names { display: flex; flex-direction: column; align-items: center; font-family: "Bodoni Moda", Didot, serif; font-style: italic; font-weight: 400; font-size: clamp(48px, 14vw, 100px); line-height: 1; color: var(--fsg-ivory); text-shadow: 0 4px 30px rgba(30,40,28,.6); overflow-wrap: anywhere; }
.ti-theme-florea-secret-garden .fsg-cover__names em { font-family: "Pinyon Script", cursive; font-style: normal; font-size: .62em; line-height: .9; color: var(--fsg-blush); }
.ti-theme-florea-secret-garden .fsg-cover__tag { margin: 12px 0 2px; font-family: "Bodoni Moda", serif; font-style: italic; font-size: 16px; color: var(--fsg-blush); }
.ti-theme-florea-secret-garden .fsg-cover__date { margin: 6px 0 16px; font-size: 10.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: rgba(247,243,233,.94); }
.ti-theme-florea-secret-garden .fsg-cover__guest { margin-bottom: 18px; padding: 8px 28px; border-top: 1px solid rgba(247,243,233,.45); border-bottom: 1px solid rgba(247,243,233,.45); }
.ti-theme-florea-secret-garden .fsg-cover__guest:empty { display: none; }
.ti-theme-florea-secret-garden .fsg-cover__guest .ti-guest__label { margin: 0; font-size: 11.5px; color: rgba(247,243,233,.82); }
.ti-theme-florea-secret-garden .fsg-cover__guest .ti-guest__name { margin: 0; font-family: "Bodoni Moda", serif; font-size: 21px; color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-cover__content > * { opacity: 0; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__leaves--l { animation: fsg-leaf-in-l 2.4s var(--fsg-ease) .1s both, fsg-sway 6s ease-in-out 2.6s infinite alternate; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__leaves--r { animation: fsg-leaf-in-r 2.4s var(--fsg-ease) .25s both, fsg-sway2 7s ease-in-out 2.6s infinite alternate; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__fg { animation: fsg-dof 2.6s var(--fsg-ease) 1.2s both; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__content > * { animation: fsg-up 1.5s var(--fsg-ease) both; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__content > :nth-child(1) { animation-delay: 3s; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__content > :nth-child(2) { animation-delay: 3.2s; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__content > :nth-child(3) { animation-delay: 3.45s; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__content > :nth-child(4) { animation-delay: 3.6s; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__content > :nth-child(5) { animation-delay: 3.75s; }
.ti-theme-florea-secret-garden.fsg-ready .fsg-cover__content > :nth-child(6) { animation: fsg-up 1.5s var(--fsg-ease) 4s both; }
/* buka: daun tersibak keluar layar, kamera menembus gerbang */
.ti-opened.ti-theme-florea-secret-garden .fsg-cover__content, .fsg-opened.ti-theme-florea-secret-garden .fsg-cover__content { opacity: 0; transform: translateY(-16px) scale(.96); filter: blur(8px); }
.ti-opened.ti-theme-florea-secret-garden .fsg-cover__leaves--l, .fsg-opened.ti-theme-florea-secret-garden .fsg-cover__leaves--l { animation: fsg-leaf-out-l 2.2s var(--fsg-ease2) both; }
.ti-opened.ti-theme-florea-secret-garden .fsg-cover__leaves--r, .fsg-opened.ti-theme-florea-secret-garden .fsg-cover__leaves--r { animation: fsg-leaf-out-r 2.2s var(--fsg-ease2) both; }
.ti-opened.ti-theme-florea-secret-garden .fsg-cover__fg, .fsg-opened.ti-theme-florea-secret-garden .fsg-cover__fg { animation: fsg-pass 2.4s var(--fsg-ease2) both; }
.ti-opened.ti-theme-florea-secret-garden, .fsg-opened.ti-theme-florea-secret-garden { --fsg-push: 1.22; }

/* =============================== NAVIGASI & TOAST =============================== */
.ti-theme-florea-secret-garden .fsg-nav { position: fixed; left: 12px; bottom: 12px; z-index: 30; display: flex; gap: 2px; max-width: calc(100vw - 84px); padding: 5px; overflow-x: auto; scrollbar-width: none; border: 1px solid rgba(168,182,159,.8); background: rgba(251,248,241,.9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 16px 34px -18px rgba(40,50,36,.7); transform: translateY(160%); opacity: 0; transition: transform .7s var(--fsg-ease), opacity .5s ease; }
.ti-theme-florea-secret-garden .fsg-nav::-webkit-scrollbar { display: none; }
.ti-opened.ti-theme-florea-secret-garden .fsg-nav, .fsg-opened.ti-theme-florea-secret-garden .fsg-nav { transform: none; opacity: 1; transition-delay: 2.8s; }
.ti-opened.ti-theme-florea-secret-garden .fsg-nav.is-hidden, .fsg-opened.ti-theme-florea-secret-garden .fsg-nav.is-hidden { transform: translateY(160%); opacity: 0; transition-delay: 0s; }
.ti-theme-florea-secret-garden .fsg-nav a { position: relative; display: grid; place-items: center; flex: none; width: 40px; height: 40px; color: var(--fsg-green); text-decoration: none; transition: color .3s, background .4s; }
.ti-theme-florea-secret-garden .fsg-nav a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ti-theme-florea-secret-garden .fsg-nav a:hover, .ti-theme-florea-secret-garden .fsg-nav a.is-active { color: var(--fsg-ivory); background: var(--fsg-green); }
.ti-theme-florea-secret-garden .fsg-toast { position: fixed; left: 50%; bottom: 80px; z-index: 70; max-width: calc(100vw - 32px); padding: 12px 22px; background: var(--fsg-green); color: var(--fsg-ivory); font-size: 10.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-align: center; box-shadow: 0 18px 30px -16px rgba(30,40,28,.9); opacity: 0; transform: translate(-50%, 14px); pointer-events: none; transition: opacity .45s ease, transform .55s var(--fsg-ease); }
.ti-theme-florea-secret-garden .fsg-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.ti-theme-florea-secret-garden .fsg-toast::before { content: "\2740"; margin-right: 10px; color: var(--fsg-rose); }

/* =============================== MAIN =============================== */
.ti-theme-florea-secret-garden .fsg-main { position: relative; z-index: 2; overflow: clip; }
.ti-theme-florea-secret-garden .fsg-section { position: relative; padding: 100px 20px; text-align: center; overflow: hidden; }
.ti-theme-florea-secret-garden .fsg-section > * { position: relative; z-index: 1; }
.ti-theme-florea-secret-garden .fsg-head { position: relative; margin: 0 auto 38px; }
.ti-theme-florea-secret-garden .fsg-folio { display: block; margin: 0 auto 8px; font-family: "Bodoni Moda", serif; font-style: italic; font-size: 14px; color: var(--fsg-rose); }
.ti-theme-florea-secret-garden .fsg-folio::before, .ti-theme-florea-secret-garden .fsg-folio::after { content: ""; display: inline-block; width: 26px; height: 1px; margin: 0 10px; vertical-align: middle; background: var(--fsg-rose); }
.ti-theme-florea-secret-garden .fsg-paper { background: var(--fsg-paper); }
.ti-theme-florea-secret-garden .fsg-paper::before { content: ""; position: absolute; inset: 14px; z-index: 0; border: 1px solid rgba(168,182,159,.35); pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-sage { color: var(--fsg-ivory); background: radial-gradient(90% 50% at 50% 0%, rgba(168,182,159,.5), rgba(168,182,159,0) 70%), linear-gradient(180deg, #667D63, #586E55); }
.ti-theme-florea-secret-garden .fsg-sage .fsg-title { color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-sage .fsg-kicker { color: var(--fsg-butter); }
.ti-theme-florea-secret-garden .fsg-sage .fsg-vine { stroke: var(--fsg-butter); }
.ti-theme-florea-secret-garden .fsg-corner { position: absolute; z-index: 0 !important; width: min(48vw, 360px); opacity: .9; pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-corner--tl { left: -8vw; top: -10px; rotate: 160deg; }

/* HERO */
.ti-theme-florea-secret-garden .fsg-hero { position: relative; height: 215vh; }
.ti-theme-florea-secret-garden .fsg-hero__sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; }
@supports (height: 100svh) { .ti-theme-florea-secret-garden .fsg-hero__sticky { height: 100svh; } }
.ti-theme-florea-secret-garden .fsg-hero__content { position: absolute; left: 50%; bottom: max(10vh, 70px); width: min(90vw, 680px); translate: -50% calc(var(--fsg-q, 0) * -140px); opacity: 0; text-align: center; color: var(--fsg-ivory); transition: opacity 1.4s ease; }
.ti-opened.ti-theme-florea-secret-garden .fsg-hero__content, .fsg-opened.ti-theme-florea-secret-garden .fsg-hero__content { opacity: calc(1 - var(--fsg-q, 0) * 1.8); transition-delay: 2.4s; }
.ti-theme-florea-secret-garden .fsg-hero__names { display: flex; flex-direction: column; align-items: center; font-family: "Bodoni Moda", serif; font-style: italic; font-size: clamp(50px, 14vw, 104px); line-height: 1; color: var(--fsg-ivory); text-shadow: 0 6px 34px rgba(30,40,28,.6); overflow-wrap: anywhere; }
.ti-theme-florea-secret-garden .fsg-hero__names em { font-family: "Pinyon Script", cursive; font-style: normal; font-size: .62em; color: var(--fsg-blush); }
.ti-theme-florea-secret-garden .fsg-hero__date { margin: 14px 0 22px; font-size: 10.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: rgba(247,243,233,.95); }
.ti-theme-florea-secret-garden .fsg-explore { display: inline-flex; flex-direction: column; align-items: center; gap: 10px; font-size: 9.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--fsg-ivory); text-decoration: none; }
.ti-theme-florea-secret-garden .fsg-explore i { width: 18px; height: 18px; border-right: 1px solid var(--fsg-ivory); border-bottom: 1px solid var(--fsg-ivory); transform: rotate(45deg); animation: fsg-bob 2.2s ease-in-out infinite; }
.ti-theme-florea-secret-garden .fsg-hero__fg { position: absolute; left: 50%; bottom: -3vh; width: max(124vw, 940px); max-width: none; opacity: 0; pointer-events: none; filter: blur(3px); transform: translate(-50%, calc(var(--fsg-q, 0) * 26%)) scale(calc(1 + var(--fsg-q, 0) * .45)); transform-origin: 50% 100%; transition: opacity 1.4s ease; }
.ti-opened.ti-theme-florea-secret-garden .fsg-hero__fg, .fsg-opened.ti-theme-florea-secret-garden .fsg-hero__fg { opacity: .96; transition-delay: 2.2s; }
.ti-theme-florea-secret-garden.fsg-gl-on .fsg-hero__fg { display: none; }
.ti-theme-florea-secret-garden .fsg-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30vh; background: linear-gradient(180deg, rgba(251,248,241,0), var(--fsg-paper)); pointer-events: none; }

/* MEMPELAI: spread editorial dengan karangan bunga 3D */
.ti-theme-florea-secret-garden .fsg-couple { padding-top: 50px; }
.ti-theme-florea-secret-garden .fsg-couple__list { max-width: 1100px; margin: 40px auto 0; }
.ti-theme-florea-secret-garden .fsg-person { display: grid; grid-template-columns: 1fr; gap: 6px; align-items: center; margin: 0 auto 10px; }
.ti-theme-florea-secret-garden .fsg-wreath { position: relative; width: min(86vw, 440px); aspect-ratio: 1100 / 1400; margin: 0 auto; }
.ti-theme-florea-secret-garden .fsg-wreath__photo { position: absolute; left: 17%; right: 17%; top: 13%; bottom: 13%; overflow: hidden; border-radius: 50%; background: linear-gradient(160deg, var(--fsg-blush), var(--fsg-sage)); box-shadow: 0 30px 50px -30px rgba(52,64,48,.6); }
.ti-theme-florea-secret-garden .fsg-wreath__img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 24%; }
.ti-theme-florea-secret-garden .fsg-wreath__photo .ti-couple-monogram { display: grid; place-items: center; width: 100%; height: 100%; font-family: "Pinyon Script", cursive; font-size: 120px; color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-wreath__flowers { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; filter: drop-shadow(0 16px 18px rgba(52,64,48,.3)); }
.ti-theme-florea-secret-garden .fsg-person--bride .fsg-wreath__flowers { transform: scaleX(-1); }
.ti-theme-florea-secret-garden .fsg-person__info { padding: 0 10px; }
.ti-theme-florea-secret-garden .fsg-person__role { margin: 0; font-family: "Pinyon Script", cursive; font-size: 34px; line-height: 1.1; color: #B8848A; }
.ti-theme-florea-secret-garden .fsg-person__nick { font-family: "Bodoni Moda", serif; font-style: italic; font-size: clamp(50px, 13vw, 76px); line-height: 1; color: var(--fsg-ink); }
.ti-theme-florea-secret-garden .fsg-person__name { margin: 10px 0 10px; font-size: 11.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #9C8558; }
.ti-theme-florea-secret-garden .fsg-couple__amp { margin: 20px 0; font-family: "Pinyon Script", cursive; font-size: 88px; line-height: .8; color: var(--fsg-rose); }

/* SCENE dengan masker bunga */
.ti-theme-florea-secret-garden .fsg-scene { position: relative; display: flex; align-items: flex-end; justify-content: center; height: clamp(500px, 94vh, 880px); overflow: hidden; text-align: center; background: var(--fsg-paper); }
.ti-theme-florea-secret-garden .fsg-scene__mask { position: absolute; inset: 0; overflow: hidden; }
.ti-theme-florea-secret-garden .fsg-scene__img { position: absolute; left: 0; top: -7%; width: 100%; height: 114%; object-fit: cover; transform: translateY(calc((var(--p, .5) - .5) * -80px)) scale(calc(1.15 - var(--p, .5) * .12)); will-change: transform; }
.ti-theme-florea-secret-garden .fsg-scene--arch .fsg-scene__img { object-position: 52% 40%; }
.ti-theme-florea-secret-garden .fsg-scene--lavender .fsg-scene__img { object-position: 50% 50%; }
.ti-theme-florea-secret-garden .fsg-scene__veil { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, var(--fsg-paper) 0%, rgba(251,248,241,0) 12%, rgba(52,64,48,0) 46%, rgba(52,64,48,.6) 80%, rgba(52,64,48,.88) 100%); }
.ti-theme-florea-secret-garden .fsg-scene__text { position: relative; z-index: 5; max-width: 660px; padding: 0 24px 72px; color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-quote { margin: 0 0 12px; font-family: "Bodoni Moda", serif; font-style: italic; font-size: clamp(20px, 5.4vw, 30px); line-height: 1.5; text-shadow: 0 4px 22px rgba(30,40,28,.6); }
.ti-theme-florea-secret-garden [data-fsg-reveal="mask"] { -webkit-mask-image: radial-gradient(circle at 50% 55%, #000 0, #000 var(--fsg-m, 0%), transparent calc(var(--fsg-m, 0%) + 12%)); mask-image: radial-gradient(circle at 50% 55%, #000 0, #000 var(--fsg-m, 0%), transparent calc(var(--fsg-m, 0%) + 12%)); transition: --fsg-m 2.2s var(--fsg-ease); }
@property --fsg-m { syntax: '<percentage>'; inherits: false; initial-value: 0%; }
.ti-theme-florea-secret-garden [data-fsg-reveal="mask"].is-shown { --fsg-m: 140%; }

/* SCENE 08: potret besar di antara bunga */
.ti-theme-florea-secret-garden .fsg-bloom { position: relative; padding: 90px 20px; overflow: hidden; background: #E8E3D6; }
.ti-theme-florea-secret-garden .fsg-bloom__bg { position: absolute; left: 0; top: -6%; width: 100%; height: 112%; object-fit: cover; object-position: 50% 45%; transform: translateY(calc((var(--p, .5) - .5) * -60px)) scale(1.05); }
.ti-theme-florea-secret-garden .fsg-bloom::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--fsg-paper) 0%, rgba(251,248,241,0) 14%, rgba(251,248,241,0) 80%, var(--fsg-paper) 100%); pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-bloom__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr; gap: 30px; max-width: 1100px; margin: 0 auto; align-items: center; }
.ti-theme-florea-secret-garden .fsg-bloom__fig { position: relative; width: min(86vw, 520px); margin: 0 auto; }
.ti-theme-florea-secret-garden .fsg-bloom__fig a { display: block; aspect-ratio: 2 / 3; overflow: hidden; border-radius: 999px 999px 4px 4px; border: 8px solid var(--fsg-paper); box-shadow: 0 50px 70px -40px rgba(40,50,36,.75); }
.ti-theme-florea-secret-garden .fsg-bloom__fig a img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 28%; }
.ti-theme-florea-secret-garden .fsg-bloom__sprig { position: absolute; right: -16%; bottom: -6%; width: 58%; pointer-events: none; filter: drop-shadow(0 12px 14px rgba(40,50,36,.3)); }
.ti-theme-florea-secret-garden .fsg-bloom__text { text-align: center; padding: 26px 20px; background: rgba(251,248,241,.82); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ti-theme-florea-secret-garden .fsg-bloom__names { margin: 4px 0 10px; font-family: "Bodoni Moda", serif; font-style: italic; font-size: clamp(40px, 10vw, 66px); line-height: 1.04; color: var(--fsg-ink); }
.ti-theme-florea-secret-garden .fsg-bloom__names span { font-family: "Pinyon Script", cursive; font-style: normal; color: var(--fsg-rose); }

/* SCENE 03: jalan setapak + foto landscape selebar layar */
.ti-theme-florea-secret-garden .fsg-pathway { position: relative; padding: 0 0 90px; background: var(--fsg-paper); }
.ti-theme-florea-secret-garden .fsg-pathway__band { position: relative; height: clamp(300px, 60vw, 640px); overflow: hidden; }
.ti-theme-florea-secret-garden .fsg-pathway__band img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; object-position: 50% 60%; transform: translateY(calc((var(--p, .5) - .5) * -70px)); }
.ti-theme-florea-secret-garden .fsg-pathway__band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--fsg-paper), rgba(251,248,241,0) 18%, rgba(251,248,241,0) 55%, var(--fsg-paper)); }
.ti-theme-florea-secret-garden .fsg-pathway__fig { position: relative; z-index: 2; width: min(96vw, 1500px); margin: -18vw auto 0; }
.ti-theme-florea-secret-garden .fsg-pathway__link { display: block; overflow: hidden; background: var(--fsg-blush); box-shadow: 0 50px 70px -44px rgba(40,50,36,.8); }
.ti-theme-florea-secret-garden .fsg-pathway__link img { display: block; width: 100%; height: auto; }
.ti-theme-florea-secret-garden .fsg-pathway__link[style*="aspect-ratio"] img { height: 100%; object-fit: contain; }
.ti-theme-florea-secret-garden .fsg-pathway figcaption { padding-top: 12px; text-align: center; }
.ti-theme-florea-secret-garden .fsg-pathway [data-fsg-reveal="mask"] { -webkit-mask-image: radial-gradient(ellipse at 50% 50%, #000 0, #000 var(--fsg-m, 0%), transparent calc(var(--fsg-m, 0%) + 14%)); mask-image: radial-gradient(ellipse at 50% 50%, #000 0, #000 var(--fsg-m, 0%), transparent calc(var(--fsg-m, 0%) + 14%)); }

/* KISAH: spread editorial */
.ti-theme-florea-secret-garden .fsg-spreads { max-width: 1140px; margin: 0 auto; text-align: left; }
.ti-theme-florea-secret-garden .fsg-spread { display: grid; grid-template-columns: 1fr; gap: 26px; align-items: center; margin: 0 0 80px; }
.ti-theme-florea-secret-garden .fsg-spread__media { display: block; position: relative; }
.ti-theme-florea-secret-garden .fsg-spread__media img { display: block; width: 100%; height: auto; box-shadow: 0 40px 60px -40px rgba(40,50,36,.7); }
.ti-theme-florea-secret-garden .fsg-spread__media.is-portrait { max-width: 480px; justify-self: center; width: 100%; }
.ti-theme-florea-secret-garden .fsg-spread__media::after { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(251,248,241,.8); pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-spread__body { position: relative; padding: 10px 6px; }
.ti-theme-florea-secret-garden .fsg-spread__sprig { display: block; width: 140px; margin: 0 0 -6px auto; opacity: .95; pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-spread__no { display: block; font-family: "Bodoni Moda", serif; font-size: 88px; line-height: .9; color: var(--fsg-blush); -webkit-text-stroke: 1px var(--fsg-rose); }
.ti-theme-florea-secret-garden .fsg-spread h3 { font-family: "Bodoni Moda", serif; font-size: 36px; line-height: 1.08; color: var(--fsg-ink); margin: 2px 0 6px; }
.ti-theme-florea-secret-garden .fsg-spread__date { margin: 0 0 12px !important; font-family: "Bodoni Moda", serif; font-style: italic; color: var(--fsg-green) !important; }
.ti-theme-florea-secret-garden .fsg-spread p { margin: 0; color: var(--fsg-soft); }
.ti-theme-florea-secret-garden .fsg-spread--text { max-width: 620px; margin-left: auto; margin-right: auto; text-align: center; }
.ti-theme-florea-secret-garden .fsg-spread--text .fsg-spread__sprig { margin: 0 auto 8px; width: 200px; }

/* ACARA: kartu letterpress berlengkung */
.ti-theme-florea-secret-garden .fsg-events { background: #EDEAE0; padding-top: 0; }
.ti-theme-florea-secret-garden .fsg-events__bg { position: relative; height: clamp(260px, 56vw, 560px); margin: 0 -20px -120px; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 50%, transparent); mask-image: linear-gradient(180deg, #000 50%, transparent); }
.ti-theme-florea-secret-garden .fsg-events__bg img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; object-position: 50% 45%; transform: translateY(calc((var(--p, .5) - .5) * -60px)); }
.ti-theme-florea-secret-garden .fsg-events .fsg-head { padding: 26px 24px 22px; max-width: 520px; background: rgba(237,234,224,.9); }
.ti-theme-florea-secret-garden .fsg-events__list { display: grid; grid-template-columns: 1fr; gap: 40px; max-width: 980px; margin: 0 auto; }
.ti-theme-florea-secret-garden .fsg-card { position: relative; padding: 70px 26px 34px; border-radius: 220px 220px 4px 4px; background: var(--fsg-paper); box-shadow: inset 0 0 0 1px rgba(168,182,159,.7), inset 0 0 0 10px var(--fsg-paper), inset 0 0 0 11px rgba(217,174,176,.5), 0 40px 60px -40px rgba(40,50,36,.65); }
.ti-theme-florea-secret-garden .fsg-card__sprig { position: absolute; left: 50%; top: -34px; width: 220px; translate: -50% 0; pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-card__date { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 14px 0 18px; font-size: 10.5px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--fsg-green); }
.ti-theme-florea-secret-garden .fsg-card__date strong { padding: 0 16px; border-left: 1px solid var(--fsg-rose); border-right: 1px solid var(--fsg-rose); font-family: "Bodoni Moda", serif; font-weight: 400; font-size: 54px; line-height: 1; letter-spacing: 0; color: var(--fsg-ink); }
.ti-theme-florea-secret-garden .fsg-card__info { list-style: none; margin: 0 auto 22px; padding: 0; max-width: 340px; text-align: left; }
.ti-theme-florea-secret-garden .fsg-card__info li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-top: 1px solid rgba(168,182,159,.4); font-size: 14px; color: var(--fsg-soft); }
.ti-theme-florea-secret-garden .fsg-card__info svg { flex: none; margin-top: 3px; color: var(--fsg-green); }
.ti-theme-florea-secret-garden .fsg-card__info strong { font-weight: 600; color: var(--fsg-ink); }
.ti-theme-florea-secret-garden .fsg-card__core { margin-top: 14px; }
.ti-theme-florea-secret-garden .fsg-card__core .ti-btn--maps { display: none; }
.ti-theme-florea-secret-garden .ti-btn { min-height: 44px; border-radius: 2px; font-family: "Mulish", sans-serif; font-weight: 600; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; transition: transform .4s var(--fsg-ease), background .4s, color .4s; }
.ti-theme-florea-secret-garden .ti-btn--primary, .ti-theme-florea-secret-garden .ti-btn--maps { background: var(--fsg-green); border-color: var(--fsg-green); color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .ti-btn--ghost { background: transparent; border-color: rgba(102,125,99,.5); color: var(--fsg-green); }
.ti-theme-florea-secret-garden .ti-btn:hover { transform: translateY(-2px); }

/* COUNTDOWN (Floral Fountain) */
.ti-theme-florea-secret-garden .fsg-count { position: relative; display: flex; align-items: center; justify-content: center; min-height: 96vh; padding: 120px 20px; overflow: hidden; text-align: center; color: var(--fsg-ivory); background: #8FA08A; }
.ti-theme-florea-secret-garden .fsg-count .fsg-scene__img { object-position: 50% 50%; }
.ti-theme-florea-secret-garden .fsg-count__spray { position: absolute; left: 30%; right: 30%; top: 20%; height: 50%; background: radial-gradient(closest-side, rgba(255,255,255,.35), rgba(255,255,255,0)); mix-blend-mode: soft-light; animation: fsg-spray 3.4s ease-in-out infinite alternate; }
.ti-theme-florea-secret-garden .fsg-count__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(52,64,48,.5) 0%, rgba(52,64,48,.25) 35%, rgba(52,64,48,.35) 70%, rgba(52,64,48,.85) 100%); }
.ti-theme-florea-secret-garden .fsg-count__inner { position: relative; z-index: 2; width: 100%; max-width: 640px; }
.ti-theme-florea-secret-garden .fsg-countdown { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 560px; margin: 30px auto 0; border-top: 1px solid rgba(247,243,233,.55); border-bottom: 1px solid rgba(247,243,233,.55); }
.ti-theme-florea-secret-garden .fsg-countdown .ti-countdown__item { padding: 18px 4px 14px; background: transparent; }
.ti-theme-florea-secret-garden .fsg-countdown .ti-countdown__item + .ti-countdown__item { border-left: 1px solid rgba(247,243,233,.35); }
.ti-theme-florea-secret-garden .fsg-countdown .ti-countdown__num { display: block; font-family: "Bodoni Moda", serif; font-size: clamp(38px, 11vw, 64px); line-height: 1; color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-countdown .ti-countdown__label { display: block; margin-top: 6px; font-size: 9.5px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--fsg-butter); opacity: 1; }
.ti-theme-florea-secret-garden .fsg-count__date { margin: 24px 0 0; font-size: 10.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: rgba(247,243,233,.9); }
.ti-theme-florea-secret-garden .fsg-video { max-width: 900px; margin: 0 auto; padding: 8px; border: 1px solid rgba(168,182,159,.7); }

/* GALERI: kolase editorial */
.ti-theme-florea-secret-garden .fsg-gallery { padding-top: 0; }
.ti-theme-florea-secret-garden .fsg-gallery__hero { position: relative; height: clamp(260px, 50vw, 520px); margin: 0 -20px 30px; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); mask-image: linear-gradient(180deg, #000 60%, transparent); }
.ti-theme-florea-secret-garden .fsg-gallery__hero img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; object-position: 50% 50%; transform: translateY(calc((var(--p, .5) - .5) * -60px)); }
.ti-theme-florea-secret-garden .fsg-collage { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 6px; grid-auto-flow: row dense; column-gap: 10px; row-gap: 0; max-width: 1240px; margin: 0 auto; }
.ti-theme-florea-secret-garden .fsg-collage .fsg-shot { grid-row: span 40; margin-bottom: 10px; }
.ti-theme-florea-secret-garden .fsg-shot { position: relative; display: block; overflow: hidden; background: var(--fsg-blush); }
.ti-theme-florea-secret-garden .fsg-shot img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--fsg-ease), filter 1.6s ease, opacity 1.2s ease; }
.ti-theme-florea-secret-garden .fsg-shot.is-landscape { grid-column: span 2; }
.ti-theme-florea-secret-garden .fsg-shot[style*="aspect-ratio"] { aspect-ratio: auto !important; }
.ti-theme-florea-secret-garden .fsg-shot:hover img { transform: scale(1.04); }
.ti-theme-florea-secret-garden .fsg-shot::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(251,248,241,0); transition: border-color .6s; pointer-events: none; }
.ti-theme-florea-secret-garden .fsg-shot:hover::after { border-color: rgba(251,248,241,.85); }

/* RSVP: lembar kertas di depan courtyard lavender */
.ti-theme-florea-secret-garden .fsg-court { color: var(--fsg-ivory); background: #8C8AA0; padding-top: 120px; }
.ti-theme-florea-secret-garden .fsg-court__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.ti-theme-florea-secret-garden .fsg-court__bg img { position: absolute; left: 0; top: -6%; width: 100%; height: 112%; object-fit: cover; transform: translateY(calc((var(--p, .5) - .5) * -60px)); }
.ti-theme-florea-secret-garden .fsg-court__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(60,60,80,.35), rgba(52,64,48,.6)); }
.ti-theme-florea-secret-garden .fsg-court .fsg-title { color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-court .fsg-kicker { color: var(--fsg-butter); }
.ti-theme-florea-secret-garden .fsg-court .fsg-folio { color: var(--fsg-blush); }
.ti-theme-florea-secret-garden .fsg-sheet { position: relative; max-width: 580px; margin: 0 auto; padding: 40px 26px 30px; text-align: left; color: var(--fsg-char); background: var(--fsg-paper); box-shadow: 0 50px 70px -40px rgba(20,24,18,.9); }
.ti-theme-florea-secret-garden .fsg-sheet__sprig { position: absolute; right: -24px; top: -60px; width: 120px; rotate: 18deg; pointer-events: none; }
.ti-theme-florea-secret-garden .ti-field label, .ti-theme-florea-secret-garden .ti-field legend { font-size: 10px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--fsg-green); }
.ti-theme-florea-secret-garden .ti-field input[type="text"], .ti-theme-florea-secret-garden .ti-field input[type="number"], .ti-theme-florea-secret-garden .ti-field input[type="tel"], .ti-theme-florea-secret-garden .ti-field select, .ti-theme-florea-secret-garden .ti-field textarea { font-family: "Mulish", sans-serif; font-size: 15px; color: var(--fsg-char); border: 0; border-bottom: 1px solid #C9CFBF; border-radius: 0; background: transparent; transition: border-color .3s; }
.ti-theme-florea-secret-garden .ti-field input:focus, .ti-theme-florea-secret-garden .ti-field select:focus, .ti-theme-florea-secret-garden .ti-field textarea:focus { outline: none; border-bottom-color: var(--fsg-rose); }
.ti-theme-florea-secret-garden .fsg-form .ti-btn--primary, .ti-theme-florea-secret-garden .fsg-form button[type="submit"], .ti-theme-florea-secret-garden .fsg-wishes button[type="submit"] { width: 100%; min-height: 50px; background: var(--fsg-green); border-color: var(--fsg-green); color: var(--fsg-ivory); letter-spacing: .28em; }
.ti-theme-florea-secret-garden .fsg-form [class*="success"], .ti-theme-florea-secret-garden .fsg-form [class*="alert"], .ti-theme-florea-secret-garden .fsg-wishes [class*="success"] { padding: 16px; border: 1px solid rgba(217,174,176,.8); background: var(--fsg-blush); color: var(--fsg-ink); font-family: "Bodoni Moda", serif; font-style: italic; }

/* UCAPAN: catatan bunga kering */
.ti-theme-florea-secret-garden .fsg-wishes__box { max-width: 720px; margin: 0 auto; text-align: left; }
.ti-theme-florea-secret-garden .fsg-wishes form, .ti-theme-florea-secret-garden .fsg-wishes .ti-guestbook__form { padding: 26px; margin-bottom: 26px; background: #FFFFFF; box-shadow: 0 30px 50px -36px rgba(40,50,36,.55); }
.ti-theme-florea-secret-garden .fsg-wishes .ti-guestbook__item { position: relative; margin-bottom: 16px; padding: 22px 22px 16px 22px; background: #FFFFFF; border-left: 3px solid var(--fsg-rose); box-shadow: 0 18px 30px -26px rgba(40,50,36,.5); }
.ti-theme-florea-secret-garden .fsg-wishes .ti-guestbook__item:nth-child(3n+2) { border-left-color: var(--fsg-lav); }
.ti-theme-florea-secret-garden .fsg-wishes .ti-guestbook__item:nth-child(3n) { border-left-color: var(--fsg-sage); }
.ti-theme-florea-secret-garden .fsg-wishes .ti-guestbook__item strong, .ti-theme-florea-secret-garden .fsg-wishes .ti-guestbook__item b { font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--fsg-ink); }
.ti-theme-florea-secret-garden .fsg-wishes .ti-guestbook__item p { margin: 6px 0; font-family: "Bodoni Moda", serif; font-style: italic; font-size: 17px; line-height: 1.6; color: var(--fsg-char); }

/* HADIAH: amplop */
.ti-theme-florea-secret-garden .fsg-gift { display: grid; gap: 26px; max-width: 820px; margin: 0 auto; }
.ti-theme-florea-secret-garden .fsg-gift .ti-gift__card { position: relative; padding: 46px 24px 28px; overflow: hidden; border: 0; color: var(--fsg-char); background: var(--fsg-paper); box-shadow: 0 40px 60px -40px rgba(20,24,18,.95); }
.ti-theme-florea-secret-garden .fsg-gift .ti-gift__card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 64px; background: linear-gradient(to bottom right, transparent 49.5%, rgba(168,182,159,.35) 50%) 0 0 / 50% 100% no-repeat, linear-gradient(to bottom left, transparent 49.5%, rgba(168,182,159,.35) 50%) 100% 0 / 50% 100% no-repeat; transform: scaleY(-1); }
.ti-theme-florea-secret-garden .fsg-gift .ti-gift__card::after { content: ""; position: absolute; left: 50%; top: 40px; width: 34px; height: 34px; margin-left: -17px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #E7BDC0, #B8848A); box-shadow: 0 3px 6px rgba(60,30,30,.35); }
.ti-theme-florea-secret-garden .fsg-gift .ti-gift__bank { margin-top: 26px; font-size: 11.5px; font-weight: 700; letter-spacing: .32em; color: #9C8558; }
.ti-theme-florea-secret-garden .fsg-gift .ti-gift__no { font-family: "Bodoni Moda", serif; font-size: 28px; letter-spacing: .04em; color: var(--fsg-ink); overflow-wrap: anywhere; }
.ti-theme-florea-secret-garden .fsg-gift button, .ti-theme-florea-secret-garden .fsg-gift .ti-btn { border-color: var(--fsg-green); background: var(--fsg-green); color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-gift .is-copied { background: var(--fsg-rose); border-color: var(--fsg-rose); color: var(--fsg-ink); }

/* LOKASI */
.ti-theme-florea-secret-garden .fsg-venue__list { display: grid; grid-template-columns: 1fr; gap: 30px; max-width: 1000px; margin: 0 auto; }
.ti-theme-florea-secret-garden .fsg-place { overflow: hidden; background: #FFFFFF; box-shadow: 0 40px 60px -40px rgba(40,50,36,.6); }
.ti-theme-florea-secret-garden .fsg-place__img { aspect-ratio: 16 / 9; overflow: hidden; }
.ti-theme-florea-secret-garden .fsg-place__img img { width: 100%; height: 100%; display: block; object-fit: cover; }
.ti-theme-florea-secret-garden .fsg-place__body { padding: 26px 24px 30px; }
.ti-theme-florea-secret-garden .fsg-place__name { font-family: "Bodoni Moda", serif; font-size: 30px; line-height: 1.12; color: var(--fsg-ink); margin: 2px 0 10px; }
.ti-theme-florea-secret-garden .fsg-place__addr { max-width: 420px; margin: 0 auto 22px; font-size: 14px; color: var(--fsg-soft); }

/* PENUTUP */
.ti-theme-florea-secret-garden .fsg-closing { position: relative; min-height: 104vh; display: flex; align-items: flex-end; justify-content: center; padding: 170px 22px 120px; overflow: hidden; text-align: center; background: #6E6A80; }
.ti-theme-florea-secret-garden .fsg-closing__bg, .ti-theme-florea-secret-garden .fsg-closing__bg img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ti-theme-florea-secret-garden .fsg-closing__bg img { object-fit: cover; object-position: 50% 50%; transform-origin: 50% 40%; transform: scale(calc(1.3 - min(var(--p, 0), .62) * .5)); will-change: transform; }
.ti-theme-florea-secret-garden .fsg-closing__veil { position: absolute; inset: 0; background: linear-gradient(180deg, var(--fsg-paper) 0%, rgba(251,248,241,0) 12%, rgba(60,56,70,0) 42%, rgba(60,56,70,.72) 80%, #3F3B4C 100%); }
.ti-theme-florea-secret-garden .fsg-closing__content { position: relative; z-index: 5; max-width: 700px; color: var(--fsg-ivory); }
.ti-theme-florea-secret-garden .fsg-closing__sprig { display: block; width: 220px; margin: 0 auto 10px; }
.ti-theme-florea-secret-garden .fsg-closing__line { margin: 0 0 18px; font-family: "Bodoni Moda", serif; font-size: clamp(26px, 7vw, 52px); line-height: 1.12; letter-spacing: .06em; text-transform: uppercase; text-shadow: 0 6px 30px rgba(30,30,40,.6); }
.ti-theme-florea-secret-garden .fsg-closing__names { font-family: "Bodoni Moda", serif; font-style: italic; font-size: clamp(46px, 13vw, 96px); line-height: 1.02; text-shadow: 0 6px 30px rgba(30,30,40,.6); overflow-wrap: anywhere; }
.ti-theme-florea-secret-garden .fsg-footer { padding: 6px 16px 96px; text-align: center; background: #3F3B4C; color: rgba(247,243,233,.7); font-size: 9.5px; font-weight: 600; letter-spacing: .34em; text-transform: uppercase; }
.ti-theme-florea-secret-garden .fsg-footer .fsg-vine { margin: 0 auto 16px; stroke: var(--fsg-butter); }

/* =============================== REVEAL =============================== */
.ti-theme-florea-secret-garden [data-fsg-reveal]:not([data-fsg-reveal="mask"]) { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity 1.1s ease, transform 1.3s var(--fsg-ease); }
.ti-theme-florea-secret-garden [data-fsg-reveal].is-shown { opacity: 1; transform: none; }
.ti-theme-florea-secret-garden [data-fsg-reveal="photo"] { transform: scale(.97) !important; }
.ti-theme-florea-secret-garden [data-fsg-reveal="photo"].is-shown { transform: none !important; }
.ti-theme-florea-secret-garden [data-fsg-reveal="photo"] img:not([class*="sprig"]):not([class*="flowers"]), .ti-theme-florea-secret-garden [data-fsg-reveal="photo"] .ti-couple-monogram { filter: blur(16px); opacity: 0; transform: scale(1.06); transition: filter 1.8s ease .3s, opacity 1.2s ease .3s, transform 2s var(--fsg-ease) .3s; }
.ti-theme-florea-secret-garden [data-fsg-reveal="photo"].is-shown img:not([class*="sprig"]):not([class*="flowers"]), .ti-theme-florea-secret-garden [data-fsg-reveal="photo"].is-shown .ti-couple-monogram { filter: none; opacity: 1; transform: none; }
/* bunga mekar pada bingkai (hanya di section tertentu) */
.ti-theme-florea-secret-garden [data-fsg-reveal="photo"] .fsg-wreath__flowers, .ti-theme-florea-secret-garden [data-fsg-reveal="photo"] .fsg-bloom__sprig { opacity: 0; scale: .82; transition: opacity 1.2s ease .8s, scale 1.8s var(--fsg-ease) .8s; }
.ti-theme-florea-secret-garden [data-fsg-reveal="photo"].is-shown .fsg-wreath__flowers, .ti-theme-florea-secret-garden [data-fsg-reveal="photo"].is-shown .fsg-bloom__sprig { opacity: 1; scale: 1; }
.ti-theme-florea-secret-garden .fsg-person__info[data-fsg-reveal] { transition-delay: .45s; }

/* =============================== TABLET & DESKTOP =============================== */
@media (min-width: 760px) {
  .ti-theme-florea-secret-garden .fsg-section { padding: 130px 48px; }
  .ti-theme-florea-secret-garden .fsg-paper::before { inset: 26px; }
  .ti-theme-florea-secret-garden .fsg-person { grid-template-columns: 1fr 1fr; gap: 50px; text-align: left; }
  .ti-theme-florea-secret-garden .fsg-person--bride .fsg-wreath { order: 2; }
  .ti-theme-florea-secret-garden .fsg-person--bride .fsg-person__info { text-align: right; }
  .ti-theme-florea-secret-garden .fsg-person__info .fsg-text { margin-left: 0; }
  .ti-theme-florea-secret-garden .fsg-person--bride .fsg-person__info .fsg-text { margin-left: auto; margin-right: 0; }
  .ti-theme-florea-secret-garden .fsg-wreath { width: min(40vw, 470px); }
  .ti-theme-florea-secret-garden .fsg-couple__amp { text-align: center; font-size: 120px; margin: -30px 0; }
  .ti-theme-florea-secret-garden .fsg-bloom { padding: 120px 48px; }
  .ti-theme-florea-secret-garden .fsg-bloom__grid { grid-template-columns: 1.1fr .9fr; gap: 60px; }
  .ti-theme-florea-secret-garden .fsg-bloom__text { text-align: left; padding: 40px; }
  .ti-theme-florea-secret-garden .fsg-spread { grid-template-columns: 1.15fr .85fr; gap: 70px; margin-bottom: 120px; }
  .ti-theme-florea-secret-garden .fsg-spread--alt { grid-template-columns: .85fr 1.15fr; }
  .ti-theme-florea-secret-garden .fsg-spread--alt .fsg-spread__media { order: 2; }
  .ti-theme-florea-secret-garden .fsg-spread--text { grid-template-columns: 1fr; }
  .ti-theme-florea-secret-garden .fsg-events__bg { margin: 0 -48px -160px; }
  .ti-theme-florea-secret-garden .fsg-events__list { grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); }
  .ti-theme-florea-secret-garden .fsg-gallery__hero { margin: 0 -48px 40px; }
  .ti-theme-florea-secret-garden .fsg-collage { grid-template-columns: repeat(4, 1fr); column-gap: 14px; }
  .ti-theme-florea-secret-garden .fsg-collage .fsg-shot { margin-bottom: 14px; }
  .ti-theme-florea-secret-garden .fsg-gift { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
  .ti-theme-florea-secret-garden .fsg-place { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; text-align: left; }
  .ti-theme-florea-secret-garden .fsg-place__img { aspect-ratio: auto; height: 100%; min-height: 300px; }
  .ti-theme-florea-secret-garden .fsg-place__addr { margin-left: 0; }
  /* navigasi: rel vertikal di kanan */
  .ti-theme-florea-secret-garden .fsg-nav { left: auto; right: 18px; bottom: 50%; flex-direction: column; max-width: none; transform: translate(160%, 50%); }
  .ti-opened.ti-theme-florea-secret-garden .fsg-nav, .fsg-opened.ti-theme-florea-secret-garden .fsg-nav { transform: translate(0, 50%); }
  .ti-opened.ti-theme-florea-secret-garden .fsg-nav.is-hidden, .fsg-opened.ti-theme-florea-secret-garden .fsg-nav.is-hidden { transform: translate(0, 50%); opacity: 1; }
  .ti-theme-florea-secret-garden .fsg-nav a { width: 44px; height: 44px; }
  .ti-theme-florea-secret-garden .fsg-nav a span { position: absolute; right: 54px; left: auto; width: auto; height: auto; clip: auto; padding: 4px 10px; background: var(--fsg-paper); border: 1px solid rgba(168,182,159,.7); font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--fsg-green); opacity: 0; transition: opacity .3s; pointer-events: none; }
  .ti-theme-florea-secret-garden .fsg-nav a:hover span, .ti-theme-florea-secret-garden .fsg-nav a:focus-visible span { opacity: 1; }
}
@media (orientation: landscape) and (min-width: 700px) {
  .ti-theme-florea-secret-garden .fsg-cover__names, .ti-theme-florea-secret-garden .fsg-hero__names { flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 0 .22em; font-size: clamp(46px, 6.6vw, 96px); }
}
@media (orientation: landscape) and (max-height: 640px) {
  .ti-theme-florea-secret-garden .fsg-cover__tag { display: none; }
  .ti-theme-florea-secret-garden .fsg-cover__guest { margin-bottom: 12px; padding: 4px 22px; }
}
@media (max-height: 660px) and (orientation: portrait) { .ti-theme-florea-secret-garden .fsg-cover__names { font-size: clamp(40px, 12vw, 80px); } }

/* Mode ringan */
.ti-theme-florea-secret-garden.fsg-lite .fsg-petals i:nth-child(n+5), .ti-theme-florea-secret-garden.fsg-lite .fsg-flies i:nth-child(n+2) { display: none; }
.ti-theme-florea-secret-garden.fsg-lite .fsg-nav, .ti-theme-florea-secret-garden.fsg-lite .fsg-bloom__text, .ti-theme-florea-secret-garden.fsg-lite .fsg-btn--open { backdrop-filter: none; -webkit-backdrop-filter: none; }
.ti-theme-florea-secret-garden.fsg-lite .fsg-cover__fg, .ti-theme-florea-secret-garden.fsg-lite .fsg-hero__fg, .ti-theme-florea-secret-garden.fsg-lite .fsg-cover__leaves, .ti-theme-florea-secret-garden.fsg-lite .fsg-mist { filter: none; }

/* Animasi */
@keyframes fsg-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fsg-fade-to { from { opacity: 0; } to { opacity: .8; } }
@keyframes fsg-up { from { opacity: 0; transform: translate3d(0, 24px, 0); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes fsg-emerge { 0% { filter: blur(12px) brightness(1.15) saturate(.7); transform: scale(1.05); } 100% { filter: none; transform: none; } }
@keyframes fsg-mist-l { 0% { transform: none; opacity: 1; } 100% { transform: translateX(-75%); opacity: 0; } }
@keyframes fsg-mist-r { 0% { transform: none; opacity: 1; } 100% { transform: translateX(75%); opacity: 0; } }
@keyframes fsg-leaf-in-l { from { opacity: 0; transform: translate(-20%, -20%) rotate(-10deg); filter: blur(14px); } to { opacity: 1; transform: none; filter: blur(2px) drop-shadow(0 18px 20px rgba(30,40,28,.4)); } }
@keyframes fsg-leaf-in-r { from { opacity: 0; transform: translate(20%, -20%) rotate(10deg); filter: blur(14px); } to { opacity: 1; transform: none; filter: blur(2px) drop-shadow(0 18px 20px rgba(30,40,28,.4)); } }
@keyframes fsg-leaf-out-l { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate(-60%, -30%) rotate(-24deg) scale(1.3); filter: blur(12px); } }
@keyframes fsg-leaf-out-r { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate(60%, -30%) rotate(24deg) scale(1.3); filter: blur(12px); } }
@keyframes fsg-sway { from { transform: rotate(0); } to { transform: rotate(2.5deg) translateY(4px); } }
@keyframes fsg-sway2 { from { transform: rotate(0); } to { transform: rotate(-2deg) translateY(5px); } }
@keyframes fsg-dof { from { opacity: 0; filter: blur(18px); transform: translateY(8%) scale(1.08); } to { opacity: 1; filter: blur(3px); transform: none; } }
@keyframes fsg-pass { from { opacity: 1; transform: none; filter: blur(3px); } to { opacity: 0; transform: translateY(30%) scale(1.5); filter: blur(16px); } }
@keyframes fsg-fly { 0% { opacity: 0; transform: translate(0, 0); } 10% { opacity: .95; } 25% { transform: translate(14vw, -6vh) rotate(8deg); } 50% { transform: translate(4vw, -14vh) rotate(-6deg); } 75% { transform: translate(-10vw, -4vh) rotate(4deg); } 90% { opacity: .9; } 100% { opacity: 0; transform: translate(0, 0); } }
@keyframes fsg-flap { from { transform: rotateY(0); } to { transform: rotateY(68deg); } }
@keyframes fsg-flap2 { from { transform: scaleX(-1) rotateY(0); } to { transform: scaleX(-1) rotateY(68deg); } }
@keyframes fsg-petal { 0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(0); } 12% { opacity: .85; } 50% { transform: translate3d(30px, 50vh, 0) rotate(180deg); } 88% { opacity: .6; } 100% { opacity: 0; transform: translate3d(-20px, 105vh, 0) rotate(380deg); } }
@keyframes fsg-ray { from { transform: rotate(30deg) translateX(-2%); opacity: .7; } to { transform: rotate(25deg) translateX(3%); opacity: 1; } }
@keyframes fsg-bob { 0%, 100% { transform: translateY(0) rotate(45deg); opacity: .5; } 50% { transform: translateY(6px) rotate(45deg); opacity: 1; } }
@keyframes fsg-spray { from { opacity: .4; transform: scale(.95); } to { opacity: .9; transform: scale(1.05); } }
@keyframes fsg-spin { to { transform: rotate(360deg); } }
@keyframes fsg-pulse { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }
@keyframes fsg-loader-auto { to { opacity: 0; visibility: hidden; } }

@media (prefers-reduced-motion: reduce) {
  .ti-theme-florea-secret-garden *, .ti-theme-florea-secret-garden *::before, .ti-theme-florea-secret-garden *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .25s !important; transition-delay: 0s !important; }
  .ti-theme-florea-secret-garden .fsg-petals, .ti-theme-florea-secret-garden .fsg-flies, .ti-theme-florea-secret-garden .fsg-rays, .ti-theme-florea-secret-garden .fsg-mist, .ti-theme-florea-secret-garden .fsg-count__spray { display: none; }
  .ti-theme-florea-secret-garden .fsg-hero { height: 100vh; }
  .ti-theme-florea-secret-garden .fsg-stage__still img, .ti-theme-florea-secret-garden .fsg-scene__img, .ti-theme-florea-secret-garden .fsg-closing__bg img, .ti-theme-florea-secret-garden .fsg-hero__fg, .ti-theme-florea-secret-garden .fsg-bloom__bg, .ti-theme-florea-secret-garden .fsg-pathway__band img, .ti-theme-florea-secret-garden .fsg-events__bg img, .ti-theme-florea-secret-garden .fsg-gallery__hero img, .ti-theme-florea-secret-garden .fsg-court__bg img { transform: none !important; }
  .ti-theme-florea-secret-garden .fsg-hero__fg { transform: translateX(-50%) !important; }
  .ti-theme-florea-secret-garden [data-fsg-reveal], .ti-theme-florea-secret-garden [data-fsg-reveal] img { opacity: 1 !important; filter: none !important; transform: none !important; scale: none !important; -webkit-mask-image: none !important; mask-image: none !important; }
  .ti-theme-florea-secret-garden .fsg-person--bride .fsg-wreath__flowers { transform: scaleX(-1) !important; }
}
.ti-theme-florea-secret-garden .fsg-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px; border-bottom: 0; text-decoration: underline; text-decoration-color: rgba(217,174,176,.8); text-underline-offset: 4px; }
