/* Tema Sage Élysée — namespace .ti-theme-sage-elysee, kelas sey-* (Premium · Contemporary Botanical Luxury) */
@import url(assets/fonts/fonts.css);
.ti-theme-sage-elysee {
  --sey-sage: #A8B69F; --sey-deep: #71836C; --sey-olive: #879378; --sey-ivory: #F7F4EB; --sey-cream: #EAE4D8;
  --sey-stone: #D7D0C3; --sey-champ: #CEB78A; --sey-glass: #FDFCF8; --sey-green: #526650; --sey-charcoal: #494940;
  --sey-sh: 100vh; --sey-focus: 50% 32%;      /* titik fokus crop foto (ubah bila perlu) */
  --ti-ease: cubic-bezier(.22,.7,.2,1);
  background: var(--sey-ivory); color: var(--sey-charcoal); font-family: "Cormorant Garamond", Georgia, serif; font-size: 19px; line-height: 1.65; overflow-x: hidden;
}
@supports (height: 100svh) { .ti-theme-sage-elysee { --sey-sh: 100svh; } }
.ti-theme-sage-elysee h1, .ti-theme-sage-elysee h2, .ti-theme-sage-elysee h3 { margin: 0; font-weight: 400; }
.ti-theme-sage-elysee picture { display: contents; }
.ti-theme-sage-elysee .sey-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ti-theme-sage-elysee .sey-eyebrow { font-family: "Manrope", "Segoe UI", sans-serif; font-weight: 300; font-size: 11.5px; letter-spacing: .42em; text-transform: uppercase; color: var(--sey-green); margin: 0 0 10px; }
.ti-theme-sage-elysee .sey-caps { display: block; font-family: "Manrope", sans-serif; font-weight: 400; font-size: 11.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--sey-deep); margin: 0 0 10px; }
.ti-theme-sage-elysee .sey-caps--soft { color: var(--sey-olive); margin: 10px 0 0; }
.ti-theme-sage-elysee .sey-kicker { font-family: "Manrope", sans-serif; font-weight: 300; font-size: 11px; letter-spacing: .4em; text-transform: uppercase; color: var(--sey-deep); margin: 0 0 20px; }
.ti-theme-sage-elysee .sey-text { color: #5b5b51; max-width: 470px; margin: 0 auto 22px; }
.ti-theme-sage-elysee .sey-text--sm { font-size: 17px; margin-bottom: 10px; }
.ti-theme-sage-elysee .sey-text strong { color: var(--sey-charcoal); font-weight: 600; }
.ti-theme-sage-elysee .sey-names { display: flex; flex-direction: column; align-items: center; margin: 0; font-family: "Cormorant", "Cormorant Garamond", Georgia, serif; font-style: italic; font-weight: 500; font-size: 48px; line-height: .98; color: var(--sey-charcoal); overflow-wrap: anywhere; }
.ti-theme-sage-elysee .sey-names em { font-family: "Cormorant", serif; font-style: italic; font-size: .52em; color: var(--sey-deep); margin: .1em 0; }
.ti-theme-sage-elysee .sey-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 32px; border-radius: 999px; border: 1px solid rgba(253,252,248,.95); background: rgba(253,252,248,.72); color: var(--sey-green); font-family: "Manrope", sans-serif; font-weight: 500; font-size: 11.5px; letter-spacing: .3em; text-transform: uppercase; cursor: pointer; text-decoration: none; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 0 0 1px rgba(206,183,138,.6), 0 14px 30px -16px rgba(60,75,55,.55); overflow: hidden; transition: transform .4s var(--ti-ease), background .4s, color .4s; }
.ti-theme-sage-elysee .sey-btn::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 36%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.9), transparent); transform: skewX(-20deg); animation: sey-shine 5s ease-in-out 1.6s infinite; }
.ti-theme-sage-elysee .sey-btn:hover { transform: translateY(-2px); background: var(--sey-green); color: var(--sey-glass); }
.ti-theme-sage-elysee .sey-btn:active { transform: scale(.98); }
.ti-theme-sage-elysee .sey-glass { background: linear-gradient(155deg, rgba(253,252,248,.84), rgba(247,244,235,.66)); border: 1px solid rgba(253,252,248,.95); box-shadow: 0 0 0 1px rgba(206,183,138,.4), 0 30px 60px -36px rgba(50,65,45,.55); backdrop-filter: blur(14px) saturate(1.1); -webkit-backdrop-filter: blur(14px) saturate(1.1); }
.ti-theme-sage-elysee .sey-title { font-family: "Cormorant", serif; font-style: italic; font-weight: 500; font-size: 40px; line-height: 1.1; color: var(--sey-charcoal); margin: 0 0 18px; }
.ti-theme-sage-elysee .sey-title small { display: block; font-family: "Manrope", sans-serif; font-style: normal; font-weight: 400; font-size: 10.5px; letter-spacing: .42em; text-transform: uppercase; color: var(--sey-deep); margin-bottom: 12px; }
.ti-theme-sage-elysee .sey-title::after { content: ""; display: block; width: 70px; height: 1px; margin: 18px auto 0; background: linear-gradient(90deg, transparent, var(--sey-champ), transparent); }
.ti-theme-sage-elysee .sey-title--light { color: var(--sey-glass); text-shadow: 0 2px 22px rgba(40,50,35,.45); }
.ti-theme-sage-elysee .sey-title--light small { color: var(--sey-glass); }

/* ============================ STAGE: Botanical Entrance ============================ */
.ti-theme-sage-elysee .sey-stage { position: relative; width: 100%; height: var(--sey-sh); overflow: hidden; background: var(--sey-ivory); isolation: isolate; }
.ti-theme-sage-elysee .sey-entrance { position: absolute; inset: 0; transform-origin: 50% 56%; }
.ti-theme-sage-elysee .sey-entrance__bg, .ti-theme-sage-elysee .sey-entrance__fore { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.ti-theme-sage-elysee .sey-entrance__fore { transform-origin: 50% 50%; animation: sey-leaf 9s ease-in-out infinite alternate; }
.ti-theme-sage-elysee .sey-light { position: absolute; inset: -20% -30%; background: linear-gradient(115deg, transparent 38%, rgba(255,252,240,.55) 48%, rgba(255,250,236,0) 58%); mix-blend-mode: soft-light; animation: sey-lightpass 11s ease-in-out infinite; pointer-events: none; }
.ti-theme-sage-elysee .sey-motes { position: absolute; inset: 0; pointer-events: none; }
.ti-theme-sage-elysee .sey-motes i { position: absolute; left: calc(14% + var(--i) * 7.8%); top: calc(30% + var(--i) * 4.3%); width: 5px; height: 5px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,248,.95), rgba(255,250,230,0) 70%); animation: sey-mote calc(10s + var(--i) * .8s) ease-in-out calc(var(--i) * -1.2s) infinite; }
.ti-theme-sage-elysee .sey-cover { position: fixed; inset: 0; z-index: 40; overflow: hidden; background: var(--sey-ivory); transition: opacity 1.1s ease 1.2s, visibility 0s linear 2.4s; }
.ti-opened.ti-theme-sage-elysee .sey-cover { opacity: 0; visibility: hidden; pointer-events: none; }
.ti-theme-sage-elysee .sey-cover.sey-gone { display: none; }
/* urutan opening: ivory → cahaya → arch dari kedalaman → daun depan dari blur → nama → tombol */
.ti-theme-sage-elysee .sey-stage--cover .sey-entrance__bg { animation: sey-in-depth 2.4s var(--ti-ease) .2s both; }
.ti-theme-sage-elysee .sey-stage--cover .sey-light { animation: sey-in-fade 1.4s ease .3s both, sey-lightpass 11s ease-in-out 1.7s infinite; }
.ti-theme-sage-elysee .sey-stage--cover .sey-entrance__fore { animation: sey-in-fore 1.9s var(--ti-ease) 1.1s both, sey-leaf 9s ease-in-out 3s infinite alternate; }
.ti-theme-sage-elysee .sey-stage--cover .sey-motes { animation: sey-in-fade 1.6s ease 1.8s both; }
.ti-theme-sage-elysee .sey-cover__text, .ti-theme-sage-elysee .sey-hero__text { position: absolute; z-index: 5; left: 10%; right: 10%; top: max(8%, calc(env(safe-area-inset-top, 0px) + 54px)); display: flex; flex-direction: column; align-items: center; text-align: center; }
.ti-theme-sage-elysee .sey-cover__text > * { animation: sey-in-text 1.3s var(--ti-ease) both; }
.ti-theme-sage-elysee .sey-cover__text > :nth-child(1) { animation-delay: 1.9s; }
.ti-theme-sage-elysee .sey-cover__text > :nth-child(2) { animation-delay: 2.15s; }
.ti-theme-sage-elysee .sey-cover__text > :nth-child(3) { animation-delay: 2.45s; }
.ti-theme-sage-elysee .sey-stage .sey-names { font-size: clamp(40px, 12.5vw, 76px); text-shadow: 0 0 26px rgba(253,252,248,.95), 0 0 4px rgba(253,252,248,.9); }
.ti-theme-sage-elysee .sey-stage .sey-names--lg { font-size: clamp(34px, 10.5vw, 64px); }
.ti-theme-sage-elysee .sey-stage .sey-names--xl { font-size: clamp(28px, 8.4vw, 52px); }
.ti-theme-sage-elysee .sey-stage .sey-eyebrow { text-shadow: 0 0 14px rgba(253,252,248,.95); }
.ti-theme-sage-elysee .sey-cover__date { font-family: "Manrope", sans-serif; font-weight: 400; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--sey-charcoal); margin: 18px 0 0; padding: 8px 20px; border-top: 1px solid var(--sey-champ); border-bottom: 1px solid var(--sey-champ); text-shadow: 0 0 12px rgba(253,252,248,.95); }
.ti-theme-sage-elysee .sey-cover__cta { position: absolute; z-index: 6; left: 10%; right: 10%; bottom: calc(var(--sey-sh) * .07 + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; align-items: center; gap: 16px; transition: opacity .6s, translate .9s; animation: sey-in-text 1.2s var(--ti-ease) 2.7s both; }
.ti-theme-sage-elysee .sey-cover__guest { padding: 10px 26px; border-radius: 16px; text-align: center; background: rgba(253,252,248,.78); box-shadow: 0 0 0 1px rgba(206,183,138,.45), 0 14px 30px -18px rgba(50,65,45,.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.ti-theme-sage-elysee .sey-cover__guest:empty { display: none; }
.ti-theme-sage-elysee .sey-cover__guest .ti-guest__label { display: block; font-family: "Manrope", sans-serif; font-weight: 300; font-size: 10.5px; letter-spacing: .1em; color: var(--sey-deep); text-transform: none; }
.ti-theme-sage-elysee .sey-cover__guest .ti-guest__name { display: block; font-family: "Cormorant", serif; font-style: italic; font-size: 20px; }
/* buka: slow camera push-in menuju arch */
.ti-theme-sage-elysee .sey-stage--cover .sey-entrance, .ti-theme-sage-elysee .sey-stage--cover .sey-entrance__fore { transition: scale 2.4s cubic-bezier(.55,0,.2,1), opacity 1.4s ease, filter 1.4s ease; }
.ti-opened.ti-theme-sage-elysee .sey-stage--cover .sey-entrance__fore, .ti-opened.ti-theme-sage-elysee .sey-cover__text > *, .ti-opened.ti-theme-sage-elysee .sey-cover__cta { animation: none; }
.ti-opened.ti-theme-sage-elysee .sey-stage--cover .sey-entrance { scale: 1.18; }
.ti-opened.ti-theme-sage-elysee .sey-stage--cover .sey-entrance__fore { scale: 1.5; opacity: 0; filter: blur(6px); }
.ti-opened.ti-theme-sage-elysee .sey-cover__text { opacity: 0; transition: opacity .8s ease .3s; }
.ti-opened.ti-theme-sage-elysee .sey-cover__cta { opacity: 0; translate: 0 40px; }

/* kelopak (render 3D) */
.ti-theme-sage-elysee .sey-petals { position: fixed; inset: 0; z-index: 35; pointer-events: none; overflow: hidden; opacity: 0; transition: opacity 1.6s ease 2s; }
.ti-opened.ti-theme-sage-elysee .sey-petals { opacity: .85; }
.ti-theme-sage-elysee .sey-petals i { position: absolute; top: -40px; left: calc(var(--n) * 12% + 4%); width: 20px; height: 20px; background: url(assets/img/sey-petals.webp) calc(var(--p) * -20px) 0 / 60px 20px no-repeat; animation: sey-fall calc(17s + var(--n) * 1.9s) linear calc(var(--n) * -2.6s) infinite; }
@media (max-width: 559px) { .ti-theme-sage-elysee .sey-petals i:nth-child(n+6) { display: none; } }

/* NAV */
.ti-theme-sage-elysee .sey-nav { position: fixed; z-index: 45; top: calc(12px + env(safe-area-inset-top, 0px)); right: 12px; opacity: 0; visibility: hidden; transition: opacity .8s ease 2.2s, visibility 0s linear 2.2s; }
.ti-opened.ti-theme-sage-elysee .sey-nav { opacity: 1; visibility: visible; }
.ti-theme-sage-elysee .sey-nav__toggle { position: relative; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(253,252,248,.95); background: rgba(253,252,248,.72); box-shadow: 0 0 0 1px rgba(206,183,138,.5), 0 10px 22px -12px rgba(50,65,45,.6); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); cursor: pointer; padding: 0; }
.ti-theme-sage-elysee .sey-nav__toggle span { position: absolute; left: 13px; right: 13px; height: 1.2px; background: var(--sey-green); transition: transform .35s; }
.ti-theme-sage-elysee .sey-nav__toggle span:nth-child(1) { top: 17px; } .ti-theme-sage-elysee .sey-nav__toggle span:nth-child(2) { top: 24px; }
.ti-theme-sage-elysee .sey-nav.is-open .sey-nav__toggle span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
.ti-theme-sage-elysee .sey-nav.is-open .sey-nav__toggle span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }
.ti-theme-sage-elysee .sey-nav__menu { position: absolute; right: 0; top: 52px; min-width: 180px; padding: 10px 6px; border-radius: 16px; background: rgba(253,252,248,.93); box-shadow: 0 0 0 1px rgba(206,183,138,.45), 0 20px 40px -20px rgba(50,65,45,.6); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); opacity: 0; transform: translateY(-6px); pointer-events: none; transition: opacity .3s, transform .3s; }
.ti-theme-sage-elysee .sey-nav.is-open .sey-nav__menu { opacity: 1; transform: none; pointer-events: auto; }
.ti-theme-sage-elysee .sey-nav__menu a { display: block; padding: 8px 16px; font-family: "Manrope", sans-serif; font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--sey-green); text-decoration: none; text-align: right; }

/* ================================ MAIN ================================ */
.ti-theme-sage-elysee .sey-main { position: relative; z-index: 1; max-width: 1440px; margin: 0 auto; background: var(--sey-ivory); overflow: clip; box-shadow: 0 0 80px rgba(50,65,45,.18); }
.ti-theme-sage-elysee .sey-section { position: relative; padding: 90px 22px; text-align: center; background: radial-gradient(70% 36% at 50% 0%, rgba(168,182,159,.22), rgba(168,182,159,0) 70%), var(--sey-ivory); }
/* HERO: scroll-driven camera push-in */
.ti-theme-sage-elysee .sey-hero { position: relative; height: 210vh; }
.ti-theme-sage-elysee .sey-hero__sticky { position: sticky; top: 0; height: var(--sey-sh); overflow: hidden; }
.ti-theme-sage-elysee .sey-stage--hero::after { content: ""; position: absolute; inset: 0; z-index: 7; background: linear-gradient(180deg, rgba(247,244,235,0) 40%, rgba(247,244,235,.85) 85%, var(--sey-ivory) 100%); opacity: calc(var(--hq, 0) * 1.8 - .6); pointer-events: none; }
.ti-theme-sage-elysee .sey-stage--hero .sey-entrance { scale: calc(1 + var(--hq, 0) * .14); }
.ti-theme-sage-elysee .sey-stage--hero .sey-entrance__fore { scale: calc(1 + var(--hq, 0) * .4); opacity: calc(1 - var(--hq, 0) * 1.2); }
.ti-opened.ti-theme-sage-elysee .sey-stage--hero .sey-entrance { animation: sey-settle 2.6s var(--ti-ease) .9s both; }
.ti-theme-sage-elysee .sey-hero__text { translate: 0 calc(var(--hq, 0) * -120px); opacity: calc(1 - var(--hq, 0) * 2.4); }
.ti-theme-sage-elysee .sey-hero__text .sey-names { opacity: 0; }
.ti-opened.ti-theme-sage-elysee .sey-hero__text .sey-names { animation: sey-in-text 1.6s var(--ti-ease) 1.4s both; }
.ti-theme-sage-elysee .sey-hero__text .sey-caps { margin-top: 14px; color: var(--sey-charcoal); text-shadow: 0 0 12px rgba(253,252,248,.95); }
.ti-theme-sage-elysee .sey-scroll { position: absolute; z-index: 6; left: 50%; bottom: calc(var(--sey-sh) * .05 + env(safe-area-inset-bottom, 0px)); translate: -50% 0; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 14px; border-radius: 30px; background: rgba(253,252,248,.7); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 0 0 1px rgba(206,183,138,.45); font-family: "Manrope", sans-serif; font-size: 9.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--sey-green); opacity: calc(1 - var(--hq, 0) * 5); }
.ti-theme-sage-elysee .sey-scroll i { width: 18px; height: 28px; border: 1.2px solid currentColor; border-radius: 10px; position: relative; }
.ti-theme-sage-elysee .sey-scroll i::after { content: ""; position: absolute; left: 50%; top: 5px; width: 2px; height: 6px; margin-left: -1px; border-radius: 2px; background: currentColor; animation: sey-wheel 2s ease-in-out infinite; }

/* ============================ SCENES 3D ============================ */
.ti-theme-sage-elysee .sey-scene { position: relative; height: 150vh; }
.ti-theme-sage-elysee .sey-scene--short { height: 115vh; }
.ti-theme-sage-elysee .sey-scene__sticky { position: sticky; top: 0; height: var(--sey-sh); overflow: hidden; }
.ti-theme-sage-elysee .sey-scene__bg, .ti-theme-sage-elysee .sey-scene__fore { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; will-change: transform; }
.ti-theme-sage-elysee .sey-scene__fore { pointer-events: none; animation: sey-leaf 10s ease-in-out infinite alternate; }
.ti-theme-sage-elysee .sey-scene__card { position: absolute; z-index: 3; left: 50%; bottom: calc(var(--sey-sh) * .08); translate: -50% 0; width: min(88%, 520px); padding: 28px 22px 24px; border-radius: 24px; text-align: center; }
.ti-theme-sage-elysee .sey-scene__quote { font-style: italic; font-size: 19px; line-height: 1.6; margin: 0; color: var(--sey-charcoal); }
.ti-theme-sage-elysee .sey-scene__title { position: absolute; z-index: 3; left: 0; right: 0; top: 12%; text-align: center; padding: 0 20px; }
.ti-theme-sage-elysee .sey-scene--walkway .sey-scene__title .sey-title { text-shadow: 0 0 24px rgba(253,252,248,.95); }
/* B Conservatory: parallax berlapis + refleksi kaca */
.ti-theme-sage-elysee .sey-scene--conservatory .sey-scene__bg { scale: 1.08; translate: 0 calc((var(--sp, .5) - .5) * -5%); }
.ti-theme-sage-elysee .sey-scene--conservatory .sey-scene__fore { translate: 0 calc((var(--sp, .5) - .5) * -22%); }
.ti-theme-sage-elysee .sey-glass-sweep { position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: soft-light; background: linear-gradient(110deg, transparent 0%, transparent 40%, rgba(255,255,255,.75) 47%, rgba(255,255,255,.15) 52%, transparent 60%) calc(var(--sp, .5) * 260% - 130%) 0 / 200% 100% no-repeat; }
/* C Courtyard: perspective shift */
.ti-theme-sage-elysee .sey-scene--courtyard .sey-scene__bg { transform: perspective(1200px) rotateX(calc((var(--sp, .5) - .5) * 7deg)) scale(1.12); transform-origin: 50% 80%; }
.ti-theme-sage-elysee .sey-scene--courtyard .sey-scene__sticky::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(40,50,35,.35), rgba(40,50,35,0) 40%); }
/* E Pavilion: camera pull-back, konten acara mengalir di atas scene */
.ti-theme-sage-elysee .sey-scene--tall { height: auto; }
.ti-theme-sage-elysee .sey-scene--pavilion .sey-scene__bg { scale: calc(1.16 - var(--sp, .5) * .16); }
.ti-theme-sage-elysee .sey-scene--pavilion .sey-scene__sticky::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(40,50,35,.3), rgba(40,50,35,.05) 35%, rgba(247,244,235,.2)); }
.ti-theme-sage-elysee .sey-scene__flow { position: relative; z-index: 2; margin-top: calc(var(--sey-sh) * -1); padding: 16vh 18px 24vh; text-align: center; display: grid; gap: 22px; justify-items: center; }
.ti-theme-sage-elysee .sey-event { width: min(100%, 460px); padding: 32px 20px 26px; border-radius: 22px; --ti-dur: 1.1s; }
.ti-theme-sage-elysee .sey-event__name { font-family: "Manrope", sans-serif; font-weight: 500; font-size: 12px; letter-spacing: .4em; text-transform: uppercase; color: var(--sey-deep); margin-bottom: 14px; }
.ti-theme-sage-elysee .sey-event__date { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 0 0 14px; }
.ti-theme-sage-elysee .sey-event__date span { font-family: "Manrope", sans-serif; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; padding: 7px 0; min-width: 84px; border-top: 1px solid var(--sey-champ); border-bottom: 1px solid var(--sey-champ); }
.ti-theme-sage-elysee .sey-event__date strong { font-family: "Cormorant", serif; font-weight: 500; font-size: 64px; line-height: 1; }
@media (min-width: 900px) { .ti-theme-sage-elysee .sey-scene__flow { grid-template-columns: repeat(2, minmax(0, 460px)); justify-content: center; } .ti-theme-sage-elysee .sey-scene__flow > .sey-title, .ti-theme-sage-elysee .sey-scene__flow > .sey-btn { grid-column: 1 / -1; } }
/* H Evening: lampu berkelip lembut */
.ti-theme-sage-elysee .sey-scene--evening .sey-scene__bg { scale: calc(1.06 - var(--sp, .5) * .06); }
.ti-theme-sage-elysee .sey-twinkle { position: absolute; inset: 0; pointer-events: none; }
.ti-theme-sage-elysee .sey-twinkle i { position: absolute; left: calc(8% + var(--i) * 7.6%); top: calc(20% + (var(--i) * 37 % 9) * 1.2%); width: 22px; height: 22px; margin: -11px; border-radius: 50%; background: radial-gradient(circle, rgba(255,226,170,.9), rgba(255,210,140,0) 70%); mix-blend-mode: screen; animation: sey-twinkle calc(2.4s + var(--i) * .37s) ease-in-out calc(var(--i) * -.5s) infinite alternate; }
.ti-theme-sage-elysee .sey-glass--dusk { background: linear-gradient(155deg, rgba(253,252,248,.78), rgba(247,244,235,.58)); }
.ti-theme-sage-elysee .sey-countdown { margin: 6px 0 16px; gap: 8px; }
.ti-theme-sage-elysee .sey-countdown .ti-countdown__item { width: 76px; padding: 14px 4px 10px; border-radius: 16px; background: rgba(253,252,248,.65); box-shadow: 0 0 0 1px rgba(206,183,138,.45); }
.ti-theme-sage-elysee .sey-countdown .ti-countdown__num { font-family: "Cormorant", serif; font-weight: 500; font-size: 40px; line-height: 1.05; color: var(--sey-charcoal); }
.ti-theme-sage-elysee .sey-countdown .ti-countdown__label { font-family: "Manrope", sans-serif; font-size: 9px; letter-spacing: .2em; text-transform: uppercase; color: var(--sey-deep); }
/* F Walkway: push-in + daun depan bergerak lebih cepat */
.ti-theme-sage-elysee .sey-scene--walkway .sey-scene__bg { scale: calc(1 + var(--sp, .5) * .16); transform-origin: 50% 45%; }
.ti-theme-sage-elysee .sey-scene--walkway .sey-scene__fore { scale: calc(1.05 + var(--sp, .5) * .45); }
.ti-theme-sage-elysee .sey-rays { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; opacity: .55; background: conic-gradient(from 160deg at 50% 38%, rgba(255,246,220,0) 0deg, rgba(255,246,220,.35) 6deg, rgba(255,246,220,0) 14deg, rgba(255,246,220,0) 22deg, rgba(255,246,220,.28) 27deg, rgba(255,246,220,0) 34deg, rgba(255,246,220,0) 360deg); animation: sey-rays 12s ease-in-out infinite alternate; }
/* J Closing: camera pull-back */
.ti-theme-sage-elysee .sey-scene--closing .sey-scene__bg { scale: calc(1.22 - min(var(--sp, .5), .6) * .366); transform-origin: 50% 55%; }
.ti-theme-sage-elysee .sey-closing__text { position: absolute; z-index: 3; left: 8%; right: 8%; top: 9%; text-align: center; }
.ti-theme-sage-elysee .sey-closing__text .sey-eyebrow { line-height: 1.8; text-shadow: 0 0 14px rgba(253,252,248,.95); }
.ti-theme-sage-elysee .sey-closing__text .sey-names { font-size: clamp(30px, 9.4vw, 70px); overflow-wrap: break-word; text-shadow: 0 0 26px rgba(253,252,248,.95); }

/* ============================ FOTOGRAFI (rasio asli) ============================ */
.ti-theme-sage-elysee .sey-photo { position: relative; margin: 0 auto; aspect-ratio: var(--ar, 3/4); max-width: calc(var(--sey-sh) * .88 * var(--arn, 1.5)); overflow: hidden; background: linear-gradient(135deg, #e7e4d8, #dcd8c9); box-shadow: 0 34px 60px -40px rgba(40,50,35,.7); }
.ti-theme-sage-elysee .sey-photo img, .ti-theme-sage-elysee .sey-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--sey-focus); }
.ti-theme-sage-elysee [data-sey-reveal] > img { transition: opacity 1s ease, filter 1.1s ease, transform 1.2s var(--ti-ease); }
.ti-theme-sage-elysee [data-sey-reveal]:not(.sey-in) > img { opacity: 0; filter: blur(8px); transform: scale(1.04); }
.ti-theme-sage-elysee .sey-feature { position: relative; text-align: center; background: var(--sey-ivory); }
.ti-theme-sage-elysee .sey-feature--portrait { padding: 70px 14px 70px; background: linear-gradient(180deg, var(--sey-ivory), var(--sey-cream) 55%, var(--sey-ivory)); }
.ti-theme-sage-elysee .sey-heroportrait { position: relative; width: min(100%, 660px, calc(var(--sey-sh) * .86 * var(--arn, .75))); margin: 0 auto; }
.ti-theme-sage-elysee .sey-photo--hero { width: 100%; }
.ti-theme-sage-elysee .sey-heroportrait__piece { position: absolute; width: 46%; right: -12%; bottom: -8%; pointer-events: none; filter: drop-shadow(0 18px 24px rgba(40,50,35,.25)); transition: opacity 1s ease .8s, transform 1.2s var(--ti-ease) .8s; }
.ti-theme-sage-elysee .sey-heroportrait__piece:not(.sey-in) { opacity: 0; transform: translateY(24px); }
.ti-theme-sage-elysee .sey-names--editorial { font-size: clamp(42px, 11.5vw, 82px); margin: 36px 0 12px; }
.ti-theme-sage-elysee .sey-feature--landscape { padding: 40px 0 70px; }
.ti-theme-sage-elysee .sey-photo--land { width: calc(100% - 20px); }
@media (min-width: 760px) { .ti-theme-sage-elysee .sey-photo--land { width: calc(100% - 100px); } }
.ti-theme-sage-elysee .sey-caption { font-family: "Manrope", sans-serif; font-weight: 300; font-size: 10.5px; letter-spacing: .34em; text-transform: uppercase; color: var(--sey-deep); margin: 18px 0 0; }
.ti-theme-sage-elysee .sey-fullwidth { background: var(--sey-ivory); padding: 0; }
.ti-theme-sage-elysee .sey-photo--full { width: 100%; max-width: none; box-shadow: none; }
@media (min-width: 760px) {
  .ti-theme-sage-elysee .sey-fullwidth { background: linear-gradient(180deg, var(--sey-ivory), var(--sey-cream) 50%, var(--sey-ivory)); padding: 40px 0; }
  .ti-theme-sage-elysee .sey-photo--full.sey-is-portrait, .ti-theme-sage-elysee .sey-photo--full.sey-is-square { max-width: calc(var(--sey-sh) * .96 * var(--arn, .75)); box-shadow: 0 34px 60px -40px rgba(40,50,35,.7); }
}
/* couple */
.ti-theme-sage-elysee .sey-couple__grid { display: grid; gap: 10px; justify-items: center; }
.ti-theme-sage-elysee .sey-person { width: 100%; text-align: center; }
@media (min-width: 760px) { .ti-theme-sage-elysee .sey-couple__grid { grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; } }
.ti-theme-sage-elysee .sey-archframe { position: relative; width: min(88%, 380px); aspect-ratio: 1000 / 1218; margin: 10px auto 22px; transition: transform .6s var(--ti-ease); }
.ti-theme-sage-elysee .sey-archframe__photo { position: absolute; left: 14.8%; right: 14.8%; top: 25.4%; bottom: 2.2%; overflow: hidden; border-radius: 50% 50% 0 0 / 40% 40% 0 0; background: linear-gradient(160deg, #eceadf, #dcd9cb); }
.ti-theme-sage-elysee .sey-archframe__photo .sey-archframe__img { width: 100%; height: 100%; object-fit: cover; object-position: var(--sey-focus); }
.ti-theme-sage-elysee .sey-archframe__photo .ti-couple-monogram { display: grid; place-items: center; width: 100%; height: 100%; font-family: "Cormorant", serif; font-style: italic; font-size: 84px; color: var(--sey-deep); background: linear-gradient(160deg, #f3f1e8, #e2dfd2); }
.ti-theme-sage-elysee .sey-archframe__arch { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; filter: drop-shadow(0 18px 24px rgba(40,50,35,.22)); }
.ti-theme-sage-elysee .sey-archframe > * { transition: opacity 1s ease, transform 1.2s var(--ti-ease), filter 1.2s ease; }
.ti-theme-sage-elysee .sey-archframe:not(.sey-in) .sey-archframe__photo { opacity: 0; filter: blur(8px); transform: scale(1.04); }
.ti-theme-sage-elysee .sey-archframe:not(.sey-in) .sey-archframe__arch { opacity: 0; transform: translateY(16px); }
.ti-theme-sage-elysee .sey-archframe.sey-in .sey-archframe__arch { transition-delay: .45s; }
.ti-theme-sage-elysee .sey-person__nick { font-family: "Cormorant", serif; font-style: italic; font-weight: 500; font-size: 40px; line-height: 1.1; margin: 0; }
.ti-theme-sage-elysee .sey-person__name { font-family: "Manrope", sans-serif; font-weight: 400; font-size: 11.5px; letter-spacing: .28em; text-transform: uppercase; color: var(--sey-deep); margin: 10px 0 8px; }
.ti-theme-sage-elysee .sey-ig { display: inline-block; font-family: "Manrope", sans-serif; font-size: 12.5px; color: var(--sey-green); text-decoration: none; border-bottom: 1px solid var(--sey-champ); }
.ti-theme-sage-elysee .sey-amp { font-family: "Cormorant", serif; font-style: italic; font-size: 64px; color: var(--sey-champ); margin: 0; line-height: 1; }
/* story */
.ti-theme-sage-elysee .sey-story { padding-top: clamp(120px, 30vw, 210px); }
.ti-theme-sage-elysee .sey-hanging { position: absolute; left: 0; top: 0; width: 100%; height: clamp(90px, 24.7vw, 170px); object-fit: cover; object-position: 50% 0; pointer-events: none; animation: sey-leaf 11s ease-in-out infinite alternate; transform-origin: 50% 0; }
.ti-theme-sage-elysee .sey-chapter { margin: 30px auto 70px; max-width: 980px; }
.ti-theme-sage-elysee .sey-chapter .sey-photo { width: 100%; }
.ti-theme-sage-elysee .sey-chapter .sey-photo.sey-is-portrait { width: min(88%, 500px); }
.ti-theme-sage-elysee .sey-chapter .sey-photo.sey-is-square { width: min(88%, 540px); }
.ti-theme-sage-elysee .sey-chapter__text { max-width: 470px; margin: 24px auto 0; }
.ti-theme-sage-elysee .sey-chapter__no { display: block; font-family: "Manrope", sans-serif; font-size: 10.5px; letter-spacing: .4em; text-transform: uppercase; color: var(--sey-champ); margin-bottom: 6px; }
.ti-theme-sage-elysee .sey-chapter__text h3 { font-family: "Cormorant", serif; font-style: italic; font-weight: 500; font-size: 32px; line-height: 1.15; margin: 4px 0 8px; }
.ti-theme-sage-elysee .sey-chapter__text p { margin: 0; color: #5b5b51; font-size: 17.5px; }
@media (min-width: 900px) {
  .ti-theme-sage-elysee .sey-chapter { display: grid; grid-template-columns: 1.3fr 1fr; gap: 50px; align-items: center; text-align: left; }
  .ti-theme-sage-elysee .sey-chapter--alt { grid-template-columns: 1fr 1.3fr; }
  .ti-theme-sage-elysee .sey-chapter--alt .sey-photo { order: 2; }
  .ti-theme-sage-elysee .sey-chapter:has(.sey-is-landscape) { grid-template-columns: 1fr; text-align: center; }
  .ti-theme-sage-elysee .sey-chapter:has(.sey-is-landscape) .sey-photo { order: 0; }
}
/* gallery */
.ti-theme-sage-elysee .sey-details { margin: 0 auto 46px; max-width: 560px; }
.ti-theme-sage-elysee .sey-details img { display: block; width: 100%; height: auto; box-shadow: 0 34px 60px -40px rgba(40,50,35,.7); }
.ti-theme-sage-elysee .sey-details figcaption { margin-top: 14px; }
.ti-theme-sage-elysee .sey-editorial { display: flex; flex-direction: column; gap: 14px; max-width: 1080px; margin: 0 auto; }
.ti-theme-sage-elysee .sey-shot { position: relative; display: block; width: 100%; aspect-ratio: var(--ar, 3/4); overflow: hidden; background: #e2dfd2; box-shadow: 0 22px 40px -30px rgba(40,50,35,.7); cursor: zoom-in; }
/* HP: satu kolom editorial — potret 84% bergantian kiri/kanan, lanskap/persegi selebar kolom (foto tetap besar, rasio asli). */
.ti-theme-sage-elysee .sey-shot.sey-is-portrait { width: 84%; }
.ti-theme-sage-elysee .sey-shot.sey-alt { align-self: flex-end; }
@media (min-width: 760px) {
  .ti-theme-sage-elysee .sey-editorial { display: block; columns: 2; column-gap: 18px; }
  .ti-theme-sage-elysee .sey-shot, .ti-theme-sage-elysee .sey-shot.sey-is-portrait { width: 100%; margin: 0 0 18px; break-inside: avoid; }
}
@media (min-width: 1100px) { .ti-theme-sage-elysee .sey-editorial { columns: 3; } }
@media (hover: hover) { .ti-theme-sage-elysee .sey-shot:hover img { transform: scale(1.03); } }
/* wide couple scene */
.ti-theme-sage-elysee .sey-widescene { position: relative; padding: 14vh 0; overflow: hidden; }
.ti-theme-sage-elysee .sey-widescene__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(3px) saturate(1.05); transform: scale(1.06); }
.ti-theme-sage-elysee .sey-photo--wide { width: min(84%, 980px); box-shadow: 0 40px 70px -40px rgba(30,40,25,.8), 0 0 0 1px rgba(253,252,248,.6); }
/* venue */
.ti-theme-sage-elysee .sey-venue { display: flex; flex-direction: column; align-items: center; }
.ti-theme-sage-elysee .sey-venue__piece { width: min(56%, 260px); height: auto; transition: opacity 1s ease, transform 1.2s var(--ti-ease); }
.ti-theme-sage-elysee .sey-venue__piece:not(.sey-in) { opacity: 0; transform: translateY(24px); }
.ti-theme-sage-elysee .sey-venue__name { font-family: "Cormorant", serif; font-style: italic; font-size: 30px; margin: 0 0 6px; }
@media (min-width: 760px) { .ti-theme-sage-elysee .sey-venue { flex-direction: row; justify-content: center; gap: 40px; text-align: left; } .ti-theme-sage-elysee .sey-venue .sey-title::after { margin-left: 0; } }
/* buttons & forms (komponen core) */
.ti-theme-sage-elysee .ti-btn--primary, .ti-theme-sage-elysee .ti-btn--maps { background: var(--sey-green); color: var(--sey-glass); border: 1px solid var(--sey-green); font-family: "Manrope", sans-serif; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; font-size: 11px; transition: transform .3s, background .3s; }
.ti-theme-sage-elysee .ti-btn--primary:hover, .ti-theme-sage-elysee .ti-btn--maps:hover { background: var(--sey-deep); transform: translateY(-1px); }
.ti-theme-sage-elysee .ti-btn--ghost { color: var(--sey-green); border-color: var(--sey-champ); background: transparent; font-family: "Manrope", sans-serif; letter-spacing: .12em; text-transform: uppercase; font-size: 11px; }
.ti-theme-sage-elysee .sey-rsvp { padding-top: clamp(130px, 31vw, 220px); }
@media (min-width: 980px) { .ti-theme-sage-elysee .sey-rsvp__panels { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; max-width: 1040px; margin: 0 auto; align-items: start; } .ti-theme-sage-elysee .sey-rsvp__panels .sey-panel { max-width: none; margin: 0; } }
.ti-theme-sage-elysee .sey-panel { position: relative; max-width: 500px; margin: 0 auto 22px; padding: 32px 22px 26px; text-align: left; background: var(--sey-glass); border-radius: 22px; box-shadow: 0 0 0 1px rgba(206,183,138,.55), 0 30px 60px -40px rgba(40,50,35,.55); }
.ti-theme-sage-elysee .ti-field label, .ti-theme-sage-elysee .ti-field legend { font-family: "Manrope", sans-serif; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; font-size: 10px; color: var(--sey-deep); }
.ti-theme-sage-elysee .ti-field input[type="text"], .ti-theme-sage-elysee .ti-field input[type="number"], .ti-theme-sage-elysee .ti-field select, .ti-theme-sage-elysee .ti-field textarea, .ti-theme-sage-elysee .ti-choice span { font-family: "Cormorant Garamond", Georgia, serif; font-size: 17px; color: var(--sey-charcoal); border-color: rgba(168,182,159,.8); background: var(--sey-ivory); border-radius: 12px; transition: border-color .3s, box-shadow .3s; }
.ti-theme-sage-elysee .ti-field input:focus, .ti-theme-sage-elysee .ti-field select:focus, .ti-theme-sage-elysee .ti-field textarea:focus { border-color: var(--sey-deep); box-shadow: 0 0 0 3px rgba(168,182,159,.35); outline: none; }
.ti-theme-sage-elysee .ti-guestbook__item { background: var(--sey-ivory); border-left: 2px solid var(--sey-sage); border-radius: 0 12px 12px 0; }
.ti-theme-sage-elysee .sey-giftcard { max-width: 480px; margin: 20px auto 0; padding: 26px 18px; border-radius: 24px; }
.ti-theme-sage-elysee .sey-gift .ti-gift__card { background: rgba(253,252,248,.85); border-radius: 16px; box-shadow: 0 0 0 1px rgba(206,183,138,.5); }
.ti-theme-sage-elysee .sey-gift .ti-gift__bank { font-family: "Cormorant", serif; font-style: italic; font-size: 24px; color: var(--sey-green); }
.ti-theme-sage-elysee .sey-video { max-width: 980px; margin: 0 auto; overflow: hidden; border-radius: 4px; box-shadow: 0 34px 60px -40px rgba(40,50,35,.7); }
/* finale */
.ti-theme-sage-elysee .sey-finale { padding: 40px 0 80px; text-align: center; background: var(--sey-ivory); }
.ti-theme-sage-elysee .sey-photo--close { width: calc(100% - 20px); margin-bottom: 36px; }
@media (min-width: 760px) { .ti-theme-sage-elysee .sey-photo--close { width: calc(100% - 100px); } }
.ti-theme-sage-elysee .sey-finale .sey-text { padding: 0 22px; }
.ti-theme-sage-elysee .sey-finale__names { font-family: "Cormorant", serif; font-style: italic; font-weight: 500; font-size: clamp(36px, 9vw, 60px); margin: 6px 0 0; }
.ti-theme-sage-elysee .sey-finale__names em { font-size: .55em; color: var(--sey-champ); }
.ti-theme-sage-elysee .sey-footer { padding: 22px 16px 30px; text-align: center; background: var(--sey-cream); color: var(--sey-deep); font-family: "Manrope", sans-serif; font-size: 10px; letter-spacing: .3em; text-transform: uppercase; }

/* ============================== ANIMASI ============================== */
@keyframes sey-in-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sey-in-depth { 0% { opacity: 0; transform: scale(1.12); filter: blur(10px) brightness(1.15); } 60% { opacity: 1; } 100% { opacity: 1; transform: none; filter: none; } }
@keyframes sey-in-fore { from { opacity: 0; transform: scale(1.18); filter: blur(10px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes sey-in-text { from { opacity: 0; transform: translate3d(0, 14px, 0); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes sey-settle { from { scale: 1.18; } to { scale: 1; } }
@keyframes sey-lightpass { 0%, 100% { transform: translateX(-18%); opacity: .5; } 50% { transform: translateX(18%); opacity: 1; } }
@keyframes sey-leaf { 0% { transform: rotate(0deg) translate3d(0, 0, 0); } 50% { transform: rotate(.35deg) translate3d(3px, -2px, 0); } 100% { transform: rotate(-.25deg) translate3d(-2px, 1px, 0); } }
@keyframes sey-mote { 0%, 100% { transform: translate3d(0, 0, 0); opacity: 0; } 25% { opacity: .9; } 50% { transform: translate3d(16px, -38px, 0); opacity: .6; } 75% { opacity: .9; } }
@keyframes sey-fall { 0% { transform: translate3d(0, -5vh, 0) rotate(0deg); } 50% { transform: translate3d(36px, 52vh, 0) rotate(150deg); } 100% { transform: translate3d(-12px, 110vh, 0) rotate(300deg); } }
@keyframes sey-twinkle { from { opacity: .35; transform: scale(.8); } to { opacity: 1; transform: scale(1.15); } }
@keyframes sey-rays { from { opacity: .4; transform: rotate(-1.5deg); } to { opacity: .65; transform: rotate(1.5deg); } }
@keyframes sey-shine { 0%, 55% { left: -60%; } 80%, 100% { left: 130%; } }
@keyframes sey-wheel { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(9px); } }

.ti-theme-sage-elysee.sey-lite .sey-motes, .ti-theme-sage-elysee.sey-lite .sey-twinkle, .ti-theme-sage-elysee.sey-lite .sey-light, .ti-theme-sage-elysee.sey-lite .sey-rays { display: none; }
.ti-theme-sage-elysee.sey-lite .sey-scene__fore, .ti-theme-sage-elysee.sey-lite .sey-entrance__fore, .ti-theme-sage-elysee.sey-lite .sey-hanging { animation: none; }
.ti-theme-sage-elysee.sey-lite .sey-glass, .ti-theme-sage-elysee.sey-lite .sey-btn, .ti-theme-sage-elysee.sey-lite .sey-cover__guest { backdrop-filter: none; -webkit-backdrop-filter: none; }
.ti-theme-sage-elysee.sey-lite .sey-widescene__bg { filter: none; }

@media (prefers-reduced-motion: reduce) {
  .ti-theme-sage-elysee .sey-cover { transition: opacity .4s ease, visibility 0s linear .4s; }
  .ti-theme-sage-elysee .sey-nav { transition: opacity .3s ease .3s, visibility 0s linear .3s; }
  .ti-theme-sage-elysee .sey-petals, .ti-theme-sage-elysee .sey-motes, .ti-theme-sage-elysee .sey-twinkle, .ti-theme-sage-elysee .sey-light { display: none; }
  .ti-theme-sage-elysee *, .ti-theme-sage-elysee *::after { animation: none !important; }
  .ti-theme-sage-elysee .sey-hero__text .sey-names { opacity: 1; }
  .ti-theme-sage-elysee .sey-hero, .ti-theme-sage-elysee .sey-scene { height: auto; }
  .ti-theme-sage-elysee .sey-hero__sticky, .ti-theme-sage-elysee .sey-scene__sticky { position: relative; }
  .ti-theme-sage-elysee .sey-scene__flow { margin-top: 0; }
  .ti-theme-sage-elysee [data-sey-reveal]:not(.sey-in) > img, .ti-theme-sage-elysee [data-sey-reveal]:not(.sey-in), .ti-theme-sage-elysee .sey-archframe:not(.sey-in) > * { opacity: 1 !important; filter: none !important; transform: none !important; }
}
