/* ==========================================================
   DInvite — Tema "Modern Luxury" (Editorial · Majalah Pernikahan)
   Kertas gading, sutra & linen, garis emas tipis, rangkaian bunga putih
   (mawar, anggrek bulan, baby's breath, eukaliptus). Foto pasangan sebagai
   pusat: sampul membuka seperti kartu lipat, foto pembuka tampil sinematik,
   tata letak editorial asimetris. Hiasan & gerak dipasang modernluxury.js;
   semua gerak dimatikan bila perangkat meminta gerak minimal.
   ========================================================== */
.t-modernluxury {
    --bg: #f7f2ea; --bg-2: #efe7dc; --card: #fffdf9; --ink: #3b2c24; --muted: #7d6c60;
    --accent: #9c7b5b; --accent-2: #3b2c24; --on-accent: #fff; --line: rgba(156,123,91,.26);
    --taupe: #a89584; --blush: #e8d5ce; --champ: #e8dccb; --gold-1: #c2a273;
    --gold: linear-gradient(100deg, #b8976a 0%, #e9d6b0 38%, #c4a477 55%, #f2e4c6 72%, #a98a5e 100%);
    --hero-rgb: 42,31,25; --tint-a: .42; --hero-ink: #fbf7f1;
    --paper: url(../../img/themes/modernluxury/kertas.webp) 0 0 / 400px 400px;
    --linen: url(../../img/themes/modernluxury/linen.webp) 0 0 / 300px 300px;
    --silk: url(../../img/themes/modernluxury/sutra.jpg) center / cover no-repeat;
    --ease: cubic-bezier(.22,.61,.12,1);
    --ease-in: cubic-bezier(.65,.02,.2,1);
    color-scheme: light;
}
@keyframes mlUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes mlFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mlShine { 0%, 62% { background-position: 160% 0; } 100% { background-position: -60% 0; } }
@keyframes mlWindow { from { clip-path: inset(0 0 100% 0); transform: scale(1.18); } to { clip-path: inset(0 0 0 0); transform: scale(1); } }
@keyframes mlKen { from { transform: translate3d(0, var(--py, 0px), 0) scale(1.16); } to { transform: translate3d(0, var(--py, 0px), 0) scale(1.04); } }
@keyframes mlSway { 0%, 100% { rotate: -1deg; } 50% { rotate: 1.2deg; } }
@keyframes mlTick { from { opacity: 0; transform: translateY(-45%); filter: blur(2px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes mlPulse { from { box-shadow: 0 0 0 0 rgba(194,162,115,.55); } to { box-shadow: 0 0 0 18px rgba(194,162,115,0); } }

/* ---------- Tipografi editorial ---------- */
.t-modernluxury { font-family: 'Jost', 'Plus Jakarta Sans', sans-serif; font-weight: 300; letter-spacing: .01em; background: var(--paper), var(--bg); }
.t-modernluxury .names { font-family: 'Bodoni Moda', 'Didot', Georgia, serif; font-weight: 400; font-style: normal; letter-spacing: -.015em; color: var(--ink); text-transform: none; }
.t-modernluxury .names i { font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 400; font-size: .62em; color: var(--accent); letter-spacing: 0; }
.t-modernluxury .cover .names { font-size: clamp(2.6rem, 12vw, 3.9rem); line-height: 1; text-shadow: none; }
.t-modernluxury .cover .kicker, .t-modernluxury .cover__date, .t-modernluxury .cover__to, .t-modernluxury .cover__to * { text-shadow: none; }
.t-modernluxury .names--lg { font-size: clamp(3.3rem, 17vw, 5.6rem); line-height: .92; }
.t-modernluxury .names--xl { font-size: clamp(3.6rem, 5.4vw, 5.8rem); line-height: .92; }
.t-modernluxury .names--md { font-size: 1.9rem; line-height: 1.12; }
.t-modernluxury .kicker { font-family: 'Jost', sans-serif; font-weight: 400; font-size: .68rem; letter-spacing: .48em; text-transform: uppercase; color: var(--accent); padding-left: .48em; }
.t-modernluxury .sec__title { font-family: 'Bodoni Moda', Georgia, serif; font-weight: 400; font-size: clamp(2rem, 9vw, 2.6rem); letter-spacing: -.01em; line-height: 1.05; color: var(--ink); }
.t-modernluxury .sec__title::before { content: attr(data-ml-no); display: block; margin-bottom: .7rem; font: 400 .66rem/1 'Jost', sans-serif; letter-spacing: .44em; text-transform: uppercase; color: var(--taupe); }
.t-modernluxury .sec__title::after { content: ''; display: block; width: 56px; height: 1px; margin: 1.05rem auto 0; background: var(--gold); background-size: 250% 100%; animation: mlShine 6s ease-in-out infinite; }
.t-modernluxury .cover__date, .t-modernluxury .hero__date, .t-modernluxury .aside__date, .t-modernluxury .countdown__date {
    font-family: 'Jost', sans-serif; font-style: normal; font-weight: 400; font-size: .74rem; letter-spacing: .38em; text-transform: uppercase; color: var(--accent); }
.t-modernluxury .quote { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 400; font-size: 1.42rem; line-height: 1.6; color: var(--ink); max-width: 30ch; margin-inline: auto; }
.t-modernluxury .lead-txt, .t-modernluxury .person__parents, .t-modernluxury .story { font-weight: 300; line-height: 1.85; color: var(--muted); }
.t-modernluxury .thanks { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 400; font-size: 2.4rem; color: var(--accent); }
.t-modernluxury .amp { font-family: 'Cormorant Garamond', serif; font-style: italic; color: var(--accent); font-size: 3rem; }
.t-modernluxury .ornament { color: var(--gold-1); }
.t-modernluxury .sec { padding-block: 5.2rem; padding-inline: 1.6rem; }

/* ---------- Tombol: garis tipis, huruf berjarak, kilau emas halus ---------- */
.t-modernluxury .ibtn { border-radius: 0; border: 1px solid var(--ink); color: var(--ink); background: transparent; font: 400 .7rem/1 'Jost', sans-serif; letter-spacing: .3em; text-transform: uppercase;
    padding: 1.05rem 1.6rem; transition: background .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease), letter-spacing .5s var(--ease); }
.t-modernluxury .ibtn:hover { background: var(--ink); color: var(--bg); }
.t-modernluxury .ibtn--solid { position: relative; overflow: hidden; background: var(--ink); color: #fbf7f1; border-color: var(--ink); }
.t-modernluxury .ibtn--solid::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 38%, rgba(242,228,198,.35) 50%, transparent 62%) 160% 0 / 250% 100% no-repeat; animation: mlShine 6s ease-in-out infinite 1.5s; }
.t-modernluxury .ibtn--solid:hover { background: #2a1f19; color: #fff; letter-spacing: .34em; }
.t-modernluxury .ibtn svg { width: 15px; height: 15px; }

/* ==========================================================
   SAMPUL — kartu undangan kertas gading (lipatan gatefold)
   ========================================================== */
.t-modernluxury .cover { background: var(--paper), var(--bg); color: var(--ink); }
body.t-modernluxury .cover.has-photo { background: var(--paper), var(--bg); }
.t-modernluxury .cover::before { inset: 14px; border: 1px solid rgba(156,123,91,.45); border-radius: 0; z-index: 1; }
.t-modernluxury .cover::after { inset: 19px; border: 1px solid rgba(156,123,91,.2); border-radius: 0; opacity: 1; z-index: 1; }
.t-modernluxury .cover__inner { position: relative; z-index: 2; width: min(340px, calc(100vw - 64px)); gap: .7rem; padding: 0; background: none; border: 0; box-shadow: none; color: var(--ink); }
.t-modernluxury .cover .kicker { animation: mlUp 1.2s var(--ease) .2s both; }
.t-modernluxury .cover .names { animation: mlUp 1.4s var(--ease) .55s both; }
.t-modernluxury .cover__date { animation: mlUp 1.2s var(--ease) .8s both; }
.t-modernluxury .cover__to { margin: .5rem 0 .7rem; animation: mlUp 1.2s var(--ease) 1s both; }
.t-modernluxury .cover__to small { color: var(--muted); letter-spacing: .04em; }
.t-modernluxury .cover__to strong { font-family: 'Bodoni Moda', serif; font-weight: 400; font-size: 1.35rem; color: var(--ink); }
.t-modernluxury .cover .ibtn { animation: mlUp 1.2s var(--ease) 1.2s both; }
/* Jendela foto berbingkai di kartu sampul (foto pasangan → foto tema → sutra) */
.t-modernluxury .ml-window { position: relative; width: min(176px, 46vw); aspect-ratio: 3 / 4; margin: .45rem auto .35rem; overflow: hidden; border-radius: 999px 999px 0 0; }
.t-modernluxury .ml-window::after { content: ''; position: absolute; inset: 7px; border: 1px solid rgba(255,253,249,.75); border-radius: inherit; pointer-events: none; }
.t-modernluxury .ml-window span { position: absolute; inset: 0; background: var(--cover, var(--tp-hero, var(--silk))) center 25% / cover no-repeat; animation: mlWindow 2s var(--ease) .1s both; }
body.ml-nophoto .ml-window span { background: url(../../img/themes/modernluxury/sutra.jpg) center / cover; }
body.ml-nophoto .ml-window span::after { content: ''; position: absolute; inset: auto -30% 4% -30%; height: 62%; background: url(../../img/themes/modernluxury/rangkaian.webp) center / contain no-repeat; }
@media (max-height: 700px) { .t-modernluxury .ml-window { width: 120px; } .t-modernluxury .cover__inner { gap: .45rem; } .t-modernluxury .cover__to { margin: .2rem 0 .4rem; } }
/* Bunga di sudut kartu (ikut terlipat bersama panel) */
.t-modernluxury .ml-corner { position: absolute; width: min(260px, 62vw); pointer-events: none; z-index: 1; }
.t-modernluxury .ml-corner--tl { top: -4px; left: -6px; }
.t-modernluxury .ml-corner--br { right: -6px; bottom: -4px; rotate: 180deg; }

/* Panel kartu lipat: kertas gading dengan bayangan lipatan di tengah */
.t-modernluxury .am-open { perspective: 2000px; }
.t-modernluxury .am-panel { transition: transform 2s var(--ease-in) .25s; }
.t-modernluxury .am-panel::before { background: var(--paper), var(--bg); }
.t-modernluxury .am-panel--b::before { transform: none; }
.t-modernluxury .am-panel::after { content: ''; position: absolute; inset: 0; pointer-events: none; transition: opacity 2s var(--ease-in) .25s; }
.t-modernluxury .am-panel--a::after { background: linear-gradient(90deg, transparent 70%, rgba(90,67,48,.06) 92%, rgba(90,67,48,.14)); }
.t-modernluxury .am-panel--b::after { background: linear-gradient(270deg, transparent 70%, rgba(90,67,48,.06) 92%, rgba(90,67,48,.14)); }
.t-modernluxury .cover.is-open .am-panel::after { background-color: rgba(90,67,48,.07); }
.t-modernluxury .cover.is-open .am-open--doors .am-panel--a { transform: rotateY(-112deg); }
.t-modernluxury .cover.is-open .am-open--doors .am-panel--b { transform: rotateY(112deg); }
.t-modernluxury .am-panel { box-shadow: 0 0 40px rgba(59,44,36,.0); }
.t-modernluxury .cover.is-open .am-panel { box-shadow: 0 0 60px rgba(59,44,36,.25); }
.t-modernluxury .am-has-opening .cover__inner, body.am-has-opening.t-modernluxury .cover__inner { transition: opacity .55s var(--ease), transform .7s var(--ease); }
body.am-has-opening.t-modernluxury .cover.is-open .cover__inner { opacity: 0; transform: translateY(-14px) scale(.97); }
/* Tombol buka: mikro-interaksi (denyut halus + ikon amplop terangkat) */
.t-modernluxury #openBtn { padding-inline: 1.9rem; }
.t-modernluxury #openBtn:not(:hover) { animation: mlUp 1.2s var(--ease) 1.2s both, mlPulse 2.6s ease-out 2.6s 3; }
.t-modernluxury #openBtn svg { transition: transform .5s var(--ease); }
.t-modernluxury #openBtn:hover svg { transform: translateY(-2px) rotate(-8deg); }
.t-modernluxury #openBtn:active { transform: scale(.97); }

/* ==========================================================
   PEMBUKA — foto layar penuh, tampil sinematik (masker + zoom pelan)
   ========================================================== */
.t-modernluxury .ml-host { position: relative; overflow: hidden; isolation: isolate; }
.t-modernluxury .hero, .t-modernluxury .aside { min-height: 100svh; color: var(--hero-ink); background: #2a1f19; place-items: end center; padding-bottom: 3.4rem; }
body.t-modernluxury .hero.has-photo, body.t-modernluxury .aside.has-photo { background: #2a1f19; }
.t-modernluxury .ml-photo { position: absolute; inset: -6% 0; z-index: 0; pointer-events: none; overflow: hidden; clip-path: inset(9% 12% 9% 12%); transition: clip-path 2.2s var(--ease) .35s; }
.t-modernluxury .ml-photo::before { content: ''; position: absolute; inset: 0; background: var(--cover, var(--tp-hero)) center 26% / cover no-repeat; transform: translate3d(0, var(--py, 0px), 0) scale(1.16); transition: transform 3.2s var(--ease) .3s; will-change: transform; }
.t-modernluxury .ml-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(42,31,25,.38) 0%, rgba(42,31,25,0) 26%, rgba(42,31,25,0) 44%, rgba(42,31,25,.55) 70%, rgba(36,27,22,.9) 100%); }
body.t-modernluxury:not(.is-locked) .ml-photo, .t-modernluxury .aside .ml-photo { clip-path: inset(0 0 0 0); }
body.t-modernluxury:not(.is-locked) .ml-photo::before, .t-modernluxury .aside .ml-photo::before { transform: translate3d(0, var(--py, 0px), 0) scale(1.04); }
.t-modernluxury .hero__inner, .t-modernluxury .aside__inner { position: relative; z-index: 2; gap: .8rem; }
.t-modernluxury .hero .names, .t-modernluxury .aside .names { color: #fbf7f1; text-shadow: 0 6px 40px rgba(0,0,0,.25); }
.t-modernluxury .hero .names i, .t-modernluxury .aside .names i { color: #ead8bd; }
.t-modernluxury .hero .kicker, .t-modernluxury .aside .kicker, .t-modernluxury .hero__date, .t-modernluxury .aside__date { color: #f3e6d2; text-shadow: 0 1px 14px rgba(20,14,10,.55); }
body.ml-nophoto .hero .kicker, body.ml-nophoto .hero__date, body.ml-nophoto .aside .kicker, body.ml-nophoto .aside__date { text-shadow: none; }
.t-modernluxury .hero .tm-house, .t-modernluxury .aside .tm-house, .t-modernluxury .hero .lx-tilt { display: none; }
.t-modernluxury .hero__date { display: flex; align-items: center; gap: .9rem; }
.t-modernluxury .hero__date::before, .t-modernluxury .hero__date::after { content: ''; width: 34px; height: 1px; background: currentColor; opacity: .6; }
.t-modernluxury .hero__scroll { border-color: rgba(251,247,241,.55); color: #fbf7f1; }
body.t-modernluxury:not(.is-locked) .hero .kicker { animation: mlUp 1.3s var(--ease) 1.1s both; }
body.t-modernluxury:not(.is-locked) .hero .names { animation: mlUp 1.6s var(--ease) 1.3s both; }
body.t-modernluxury:not(.is-locked) .hero__date { animation: mlUp 1.3s var(--ease) 1.7s both; }
/* Tanpa foto: sutra lembut + rangkaian bunga, teks cokelat tua */
body.ml-nophoto.t-modernluxury .hero, body.ml-nophoto.t-modernluxury .aside { background: var(--silk), var(--bg); color: var(--ink); place-items: center; padding-bottom: 0; }
body.ml-nophoto .hero .names, body.ml-nophoto .aside .names { color: var(--ink); text-shadow: none; }
body.ml-nophoto .hero .names i, body.ml-nophoto .aside .names i { color: var(--accent); }
body.ml-nophoto .hero .kicker, body.ml-nophoto .aside .kicker, body.ml-nophoto .hero__date, body.ml-nophoto .aside__date { color: var(--accent); }
body.ml-nophoto .hero__scroll { border-color: var(--taupe); color: var(--taupe); }
.t-modernluxury .ml-bouquet { position: absolute; left: 50%; bottom: -2%; width: min(760px, 150vw); translate: -50% 0; z-index: 1; pointer-events: none; }
.t-modernluxury .ml-bouquet img { display: block; width: 100%; height: auto; transform: translate3d(0, var(--py, 0px), 0); }
.t-modernluxury .ml-bouquet--top { top: -4%; bottom: auto; rotate: 180deg; width: min(600px, 120vw); opacity: .9; }
body.ml-nophoto .hero__inner { padding-block: 4rem 9rem; }

/* ==========================================================
   ISI — ruang lega, nomor bagian ala majalah, transisi bertopeng
   ========================================================== */
.t-modernluxury .page { background: var(--paper), var(--bg); }
.t-modernluxury .sec--tint, .t-modernluxury .sec--countdown { background: var(--linen), var(--bg-2); }
.t-modernluxury .sec--quote { padding-block: 6rem; }
.t-modernluxury .sec--quote .ornament, .t-modernluxury .sec--quote .tm-divider { display: none; }
.t-modernluxury .sec--quote::before { content: '\201C'; display: block; font: 400 5rem/0.6 'Bodoni Moda', serif; color: var(--champ); margin-bottom: 1rem; }

/* Gerak masuk saat digulir: pudar + naik halus */
.t-modernluxury .reveal { opacity: 1; transform: none; transition: none; }
.t-modernluxury .reveal > * { opacity: 0; transform: translateY(26px); transition: opacity 1.1s var(--ease), transform 1.3s var(--ease); }
.t-modernluxury .reveal.is-visible > * { opacity: 1; transform: none; }
.t-modernluxury .reveal.is-visible > :nth-child(2) { transition-delay: .12s; }
.t-modernluxury .reveal.is-visible > :nth-child(3) { transition-delay: .24s; }
.t-modernluxury .reveal.is-visible > :nth-child(4) { transition-delay: .36s; }
.t-modernluxury .reveal.is-visible > :nth-child(n+5) { transition-delay: .46s; }
.t-modernluxury .reveal > .ml-flora { opacity: 1; transform: none; transition: none; }
/* Foto tampil dengan topeng (clip-path) yang membuka dari bawah */
.t-modernluxury .ml-mask { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s var(--ease); }
.t-modernluxury .ml-mask.is-in { clip-path: inset(0 0 0 0); }
.t-modernluxury .ml-mask img { transform: scale(1.12); transition: transform 2s var(--ease); }
.t-modernluxury .ml-mask.is-in img { transform: scale(1); }

/* Bunga sisi dengan parallax */
.t-modernluxury .ml-flora { position: absolute; z-index: 0; pointer-events: none; }
.t-modernluxury .ml-flora img { display: block; width: 100%; height: auto; transform: translate3d(0, var(--py, 0px), 0); transform-origin: 50% 0; animation: mlSway 9s ease-in-out infinite; }
.t-modernluxury .ml-flora--l { left: -38px; top: 1.5rem; width: min(150px, 34vw); }
.t-modernluxury .ml-flora--r { right: -38px; top: 1.5rem; width: min(150px, 34vw); scale: -1 1; }
.t-modernluxury .ml-flora--corner { left: -18px; top: -14px; width: min(230px, 56vw); }
.t-modernluxury .ml-flora--corner-r { right: -18px; bottom: -14px; width: min(230px, 56vw); rotate: 180deg; }
.t-modernluxury .ml-flora--corner img, .t-modernluxury .ml-flora--corner-r img { animation: none; }
.t-modernluxury .ml-host > :not(.ml-flora):not(.ml-photo):not(.ml-bouquet) { position: relative; z-index: 1; }

/* ---------- Mempelai: potret editorial asimetris ---------- */
.t-modernluxury #mempelai { padding-top: 6rem; }
.t-modernluxury .couple { gap: 3.2rem; }
.t-modernluxury .couple--framed .person { max-width: 300px; margin-inline: auto; text-align: center; }
.t-modernluxury .couple--framed .person__soc { justify-content: center; }
.t-modernluxury .pframe { width: min(230px, 62vw); margin: 0 auto 1.4rem; position: relative; translate: -10% 0; }
.t-modernluxury .person:last-child .pframe { translate: 10% 0; }
.t-modernluxury .pframe::before { content: ''; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--gold-1); border-radius: 0; box-shadow: none; z-index: 0; opacity: .8; }
.t-modernluxury .person:last-child .pframe::before { inset: 14px 14px -14px -14px; }
.t-modernluxury .pframe::after { display: none; }
.t-modernluxury .pframe__arch { position: relative; z-index: 1; aspect-ratio: 3 / 4; border-radius: 0; box-shadow: 0 30px 50px -34px rgba(59,44,36,.55); background: var(--silk); }
.t-modernluxury .pframe__init { font-family: 'Bodoni Moda', serif; font-size: 4.4rem; color: rgba(255,253,249,.92); }
.t-modernluxury .person .names--md { font-size: 1.75rem; }
.t-modernluxury .person__parents { font-size: .9rem; }
.t-modernluxury .person__soc .psoc { background: transparent; border: 1px solid var(--line); color: var(--ink); border-radius: 0; }
.t-modernluxury .couple .amp { align-self: center; margin: -1.6rem 0; }

/* ---------- Love story: garis waktu tipis ---------- */
.t-modernluxury .lstory::before { background: linear-gradient(var(--line), var(--gold-1), var(--line)); width: 1px; }
.t-modernluxury .lstory__dot { width: 9px; height: 9px; background: var(--bg); border: 1px solid var(--gold-1); box-shadow: 0 0 0 5px var(--bg); }
.t-modernluxury .lstory__card { border-radius: 0; border: 0; background: transparent; box-shadow: none; padding: 0; }
.t-modernluxury .lstory__img { border-radius: 0; aspect-ratio: 4 / 5; object-fit: cover; }
.t-modernluxury .lstory__date { font: 400 .66rem/1 'Jost', sans-serif; letter-spacing: .36em; text-transform: uppercase; color: var(--accent); }
.t-modernluxury .lstory__title, .t-modernluxury .tale__title { font-family: 'Bodoni Moda', serif; font-weight: 400; font-style: normal; font-size: 1.5rem; color: var(--ink); }
.t-modernluxury .lstory__text { color: var(--muted); line-height: 1.8; }
.t-modernluxury .tale__end { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.3rem; color: var(--accent); }

/* ---------- Hitung mundur: angka besar yang berganti halus ---------- */
.t-modernluxury .countdown { gap: 0; }
.t-modernluxury .countdown div { min-width: 0; flex: 1; max-width: 86px; padding: .2rem 0; border: 0; border-left: 1px solid var(--line); background: none; border-radius: 0; box-shadow: none; }
.t-modernluxury .countdown div:first-child { border-left: 0; }
.t-modernluxury .countdown b { display: block; overflow: hidden; font-family: 'Bodoni Moda', serif; font-weight: 400; font-size: clamp(2.3rem, 11vw, 3rem); line-height: 1.1; color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }
.t-modernluxury .countdown b.ml-tick { animation: mlTick .7s var(--ease); }
.t-modernluxury .countdown small { font: 400 .6rem/1 'Jost', sans-serif; letter-spacing: .3em; text-transform: uppercase; color: var(--taupe); }
.t-modernluxury .countdown__done { font-family: 'Cormorant Garamond', serif; color: var(--ink); }

/* Hitung mundur di bagian pembuka (di atas foto) */
.t-modernluxury .hero .countdown b, .t-modernluxury .aside .countdown b { color: #fbf7f1; font-size: 2.1rem; }
.t-modernluxury .hero .countdown small { color: rgba(251,247,241,.75); }
.t-modernluxury .hero .countdown div { border-left-color: rgba(251,247,241,.3); max-width: 70px; }
.t-modernluxury .hero .ibtn:not(.ibtn--solid) { color: #fbf7f1; border-color: rgba(251,247,241,.7); }
body.ml-nophoto .hero .countdown b { color: var(--ink); }
body.ml-nophoto .hero .countdown small { color: var(--taupe); }
body.ml-nophoto .hero .countdown div { border-left-color: var(--line); }
body.ml-nophoto .hero .ibtn:not(.ibtn--solid) { color: var(--ink); border-color: var(--ink); }

/* ---------- Acara: foto venue bertopeng + kartu bersih ---------- */
.t-modernluxury .ml-venue { position: relative; width: calc(100% + 3.2rem); margin: -1.4rem -1.6rem 2.6rem; aspect-ratio: 4 / 3; overflow: hidden; }
.t-modernluxury .ml-venue img { width: 100%; height: 100%; object-fit: cover; display: block; }
.t-modernluxury .ml-venue figcaption { position: absolute; left: 1.4rem; bottom: 1.1rem; font: italic 400 1.15rem 'Cormorant Garamond', serif; color: #fbf7f1; text-shadow: 0 2px 16px rgba(0,0,0,.4); }
.t-modernluxury .events { gap: 1.4rem; }
.t-modernluxury .event { position: relative; border-radius: 0; border: 1px solid var(--line); background: var(--card); color: var(--ink); padding: 2.6rem 1.6rem 2.3rem; box-shadow: 0 30px 60px -48px rgba(59,44,36,.6); }
.t-modernluxury .event::before { content: ''; position: absolute; inset: 8px; border: 1px solid rgba(194,162,115,.28); border-radius: 0; pointer-events: none; height: auto; }
.t-modernluxury .event h3 { font-family: 'Bodoni Moda', serif; font-weight: 400; font-style: normal; font-size: 1.85rem; color: var(--ink); }
.t-modernluxury .event__date { font: 400 .72rem/1.6 'Jost', sans-serif; letter-spacing: .3em; text-transform: uppercase; color: var(--accent); }
.t-modernluxury .event__time { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.2rem; color: var(--ink); }
.t-modernluxury .event__place { font-family: 'Bodoni Moda', serif; font-size: 1.05rem; color: var(--ink); }
.t-modernluxury .event__addr { color: var(--muted); }
.t-modernluxury .divider { width: 40px; height: 1px; background: var(--gold); background-size: 250% 100%; animation: mlShine 6s ease-in-out infinite; }
.t-modernluxury .event__btns { gap: .6rem; }
.t-modernluxury .event__btns .ibtn { padding: .9rem 1.1rem; font-size: .64rem; }

/* ---------- Galeri: tata letak majalah asimetris ---------- */
.t-modernluxury .gallery { gap: .7rem; }
.t-modernluxury .gallery__item { border-radius: 0; background: var(--bg-2); }
.t-modernluxury .gallery--grid { grid-template-columns: repeat(6, 1fr); grid-auto-flow: dense; }
.t-modernluxury .gallery--grid .gallery__item { aspect-ratio: auto; grid-column: span 3; height: 46vw; max-height: 260px; }
.t-modernluxury .gallery--grid .gallery__item:nth-child(5n+1) { grid-column: span 6; height: 72vw; max-height: 420px; }
.t-modernluxury .gallery--grid .gallery__item:nth-child(5n+2) { grid-column: span 4; }
.t-modernluxury .gallery--grid .gallery__item:nth-child(5n+3) { grid-column: span 2; }
.t-modernluxury .gallery--grid .gallery__item:nth-child(5n+4) { grid-column: span 2; }
.t-modernluxury .gallery--grid .gallery__item:nth-child(5n+5) { grid-column: span 4; }
.t-modernluxury .gallery--grid .gallery__item:last-child:nth-child(odd) { aspect-ratio: auto; }
.t-modernluxury .gallery__item img { transition: transform 1.4s var(--ease); }
.t-modernluxury .gallery__item:hover img { transform: scale(1.04); }
.t-modernluxury .gslider__slide, .t-modernluxury .gslider__track, .t-modernluxury .gslider { border-radius: 0; }
.t-modernluxury .gslider__slide img { border-radius: 0; }
.t-modernluxury .gslider__nav { border-radius: 0; background: rgba(255,253,249,.9); color: var(--ink); border: 1px solid var(--line); }
.t-modernluxury .gslider__count { border-radius: 0; font-family: 'Jost', sans-serif; letter-spacing: .2em; }
.t-modernluxury .gslider__dots button { border-radius: 0; width: 16px; height: 1px; }
.t-modernluxury .gslider__dots button.is-active { background: var(--ink); width: 28px; }
.t-modernluxury .gslider__hint { font-size: .72rem; letter-spacing: .06em; color: var(--taupe); }

/* ---------- Kartu RSVP, ucapan, hadiah, QR ---------- */
.t-modernluxury .gift, .t-modernluxury .rsvp, .t-modernluxury .wish, .t-modernluxury .qr-card, .t-modernluxury .gift-atm {
    border-radius: 0; border: 1px solid var(--line); background: var(--card); color: var(--ink); box-shadow: 0 30px 60px -50px rgba(59,44,36,.55); }
.t-modernluxury .rsvp { padding: 2rem 1.4rem; }
.t-modernluxury .ifld > span { font: 400 .64rem/1 'Jost', sans-serif; letter-spacing: .3em; text-transform: uppercase; color: var(--accent); }
.t-modernluxury .ifld input, .t-modernluxury .ifld textarea, .t-modernluxury .ifld select { border-radius: 0; border: 0; border-bottom: 1px solid rgba(59,44,36,.25); background: transparent; padding-inline: 0; font-family: 'Jost', sans-serif; font-weight: 300; color: var(--ink); transition: border-color .4s var(--ease); }
.t-modernluxury .ifld input:focus, .t-modernluxury .ifld textarea:focus, .t-modernluxury .ifld select:focus { border-bottom-color: var(--ink); box-shadow: 0 1px 0 0 var(--ink); outline: none; }
.t-modernluxury .att label, .t-modernluxury .att span, .t-modernluxury .att button { border-radius: 0; }
.t-modernluxury .wishes__title { font-family: 'Bodoni Moda', serif; font-weight: 400; color: var(--ink); }
.t-modernluxury .wish { border-left: 0; border-top: 0; border-right: 0; box-shadow: none; background: transparent; padding-inline: 0; }
.t-modernluxury .wish__head strong { font-family: 'Bodoni Moda', serif; font-weight: 400; font-size: 1.05rem; }
.t-modernluxury .tag { border-radius: 0; letter-spacing: .14em; text-transform: uppercase; font-size: .58rem; }
.t-modernluxury .gift-atm { overflow: hidden; }

/* ---------- Penutup ---------- */
.t-modernluxury .sec--closing { padding-block: 6.5rem 12rem; background: var(--silk), var(--bg); }
.t-modernluxury .sec--closing .tm-house, .t-modernluxury .sec--closing .lx-tilt { display: none; }
.t-modernluxury .sec--closing .names--md { font-size: clamp(2.4rem, 11vw, 3.2rem); }
.t-modernluxury .sec--closing.ml-has-photo { background: #2a1f19; color: #fbf7f1; padding-bottom: 7rem; }
.t-modernluxury .sec--closing.ml-has-photo .names, .t-modernluxury .sec--closing.ml-has-photo .lead-txt { color: #fbf7f1; }
.t-modernluxury .sec--closing.ml-has-photo .thanks, .t-modernluxury .sec--closing.ml-has-photo .names i { color: #ead8bd; }
.t-modernluxury .sec--closing .ml-photo { inset: -10% 0; clip-path: none; }
.t-modernluxury .sec--closing .ml-photo::after { background: linear-gradient(rgba(36,27,22,.62), rgba(36,27,22,.78)); }
.t-modernluxury .ifoot { border-top: 1px solid var(--line); background: var(--paper), var(--bg); }

/* Kelopak yang jatuh — jarang & lembut */
.t-modernluxury .am-fall i { width: calc(14px * var(--s)); height: calc(14px * var(--s)); opacity: calc(var(--o) * .7); filter: drop-shadow(0 2px 2px rgba(90,67,48,.15)); }

/* Desktop: panel kiri foto layar penuh, kolom isi seperti halaman majalah */
@media (min-width: 960px) {
    .t-modernluxury .aside { padding-bottom: 4.5rem; }
    .t-modernluxury .sec { padding-inline: 2.6rem; }
    .t-modernluxury .ml-venue { width: calc(100% + 5.2rem); margin-inline: -2.6rem; }
    .t-modernluxury .gallery--grid .gallery__item { height: 220px; }
    .t-modernluxury .gallery--grid .gallery__item:nth-child(5n+1) { height: 360px; }
}

@media (prefers-reduced-motion: reduce) {
    .t-modernluxury .reveal > *, .t-modernluxury .ml-mask, .t-modernluxury .ml-mask img { opacity: 1; transform: none; clip-path: none; transition: none; }
    .t-modernluxury .ml-photo, .t-modernluxury .ml-photo::before { clip-path: none !important; transition: none; transform: none !important; }
    .t-modernluxury .ml-window span, .t-modernluxury .ml-flora img, .t-modernluxury .sec__title::after, .t-modernluxury .divider,
    .t-modernluxury .ibtn--solid::after, .t-modernluxury #openBtn, .t-modernluxury .countdown b.ml-tick,
    .t-modernluxury .cover *, body.t-modernluxury .hero * { animation: none !important; }
    .t-modernluxury .am-panel, .t-modernluxury .am-panel::after { transition-duration: .01s; }
}
