/* Tema Azure Serenity — Dusty Blue Elegance. Namespace .ti-theme-azure-serenity, prefix kelas az-
   (Premium · Modern Dusty Blue Luxury: bunga putih, eucalyptus, gerbang lengkung silver + kristal, tirai satin)
   Sumber: assets/source/style.src.css → buildcss.py → style.css (lihat buildcss.py untuk arti penanda selektor). */
.ti-theme-azure-serenity {
  --az-dusty: #8FA9C4; --az-powder: #C9D9EA; --az-sky: #A9C8E3; --az-deep: #5F7E9E; --az-ivory: #FAF8F4; --az-warm: #F4F1EC;
  --az-silver: #C3CBD4; --az-silver-d: #8D98A6; --az-champ: #D9C7A7; --az-ink: #2E4157; --az-muted: #56677A; --az-navy: #3F5A78; --az-mist: #EEF3F8;
  --az-ease: cubic-bezier(.22,.61,.24,1); --az-ease2: cubic-bezier(.62,.02,.22,1);
  --az-satin: repeating-linear-gradient(102deg, rgba(255,255,255,0) 0, rgba(255,255,255,0) 46px, rgba(255,255,255,.16) 78px, rgba(255,255,255,0) 112px, rgba(255,255,255,0) 150px);
  --ti-ease: cubic-bezier(.22,.61,.24,1); --ti-dur: 1.1s;
  background: var(--az-ivory); color: var(--az-ink); font-family: "Manrope", "Segoe UI", system-ui, sans-serif; font-weight: 400; font-size: 15.5px; line-height: 1.75;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
.ti-theme-azure-serenity *, .ti-theme-azure-serenity *::before, .ti-theme-azure-serenity *::after { box-sizing: border-box; }
.ti-theme-azure-serenity h1, .ti-theme-azure-serenity h2, .ti-theme-azure-serenity h3 { margin: 0; font-weight: 400; }
.ti-theme-azure-serenity img { max-width: 100%; }
.ti-theme-azure-serenity .az-kicker { margin: 0 0 12px; padding-left: .34em; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .34em; text-transform: uppercase; color: var(--az-navy); }
.ti-theme-azure-serenity .az-script { margin: 0 0 4px; font-family: "Parisienne", "Bodoni Moda", cursive; font-weight: 400; font-size: clamp(25px, 7vw, 34px); line-height: 1.25; color: var(--az-deep); }
.ti-theme-azure-serenity .az-label { display: block; margin: 0 0 6px; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--az-silver-d); }
.ti-theme-azure-serenity .az-title { font-family: "Bodoni Moda", "Didot", Georgia, serif; font-weight: 400; font-size: clamp(31px, 8.6vw, 52px); line-height: 1.14; letter-spacing: .01em; color: var(--az-ink); }
.ti-theme-azure-serenity .az-sub { margin: 8px 0 0; font-family: "Bodoni Moda", serif; font-style: italic; font-size: 18px; color: var(--az-muted); }
.ti-theme-azure-serenity .az-text { max-width: 600px; margin: 0 auto 22px; color: var(--az-muted); }
.ti-theme-azure-serenity .az-text--lead { font-family: "Bodoni Moda", serif; font-style: italic; font-size: 18.5px; line-height: 1.6; color: var(--az-navy); }
.ti-theme-azure-serenity .az-text--sm { font-size: 14px; margin-bottom: 8px; }
.ti-theme-azure-serenity .az-center { text-align: center; }
.ti-theme-azure-serenity .az-divider { display: block; width: 280px; max-width: 78%; height: auto; margin: 14px auto 0; }
.ti-theme-azure-serenity .az-link { display: inline-block; padding-bottom: 2px; color: var(--az-deep); text-decoration: none; font-size: 13.5px; font-weight: 500; letter-spacing: .04em; background: linear-gradient(var(--az-dusty), var(--az-dusty)) 0 100% / 0 1px no-repeat; transition: background-size .6s var(--az-ease); }
.ti-theme-azure-serenity .az-link:hover { background-size: 100% 1px; }

/* Tombol: dusty blue satin dengan bingkai silver */
.ti-theme-azure-serenity .az-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 10px 30px; overflow: hidden; border: 1px solid rgba(255,255,255,.75); border-radius: 999px;
  background: linear-gradient(135deg, #8EA8C4 0%, #6C89AA 55%, #7F9BBA 100%); color: #FFFFFF; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  box-shadow: 0 0 0 1px rgba(141,152,166,.45), 0 14px 26px -14px rgba(46,65,87,.7), inset 0 1px 0 rgba(255,255,255,.4); transition: transform .45s var(--az-ease), box-shadow .45s; }
.ti-theme-azure-serenity .az-btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.38) 50%, transparent 70%); transform: translateX(-120%); transition: transform 1s var(--az-ease); }
.ti-theme-azure-serenity .az-btn:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(141,152,166,.55), 0 20px 32px -16px rgba(46,65,87,.75), inset 0 1px 0 rgba(255,255,255,.4); }
.ti-theme-azure-serenity .az-btn:hover::after { transform: translateX(120%); }
.ti-theme-azure-serenity .az-btn:focus-visible { outline: 2px solid var(--az-navy); outline-offset: 3px; }
.ti-theme-azure-serenity .az-btn--small { min-height: 42px; padding: 8px 22px; font-size: 10.5px; }
.ti-theme-azure-serenity .az-btn--ghost { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.8); }

/* ========== Loader ========== */
.ti-theme-azure-serenity .az-loader { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: radial-gradient(70% 55% at 50% 45%, #FFFFFF 0%, #EAF0F6 65%, #D8E3EE 100%); transition: opacity .8s ease, visibility .8s; animation: az-loader-auto 0s linear 6s forwards; }
.ti-theme-azure-serenity.az-loaded .az-loader { opacity: 0; visibility: hidden; pointer-events: none; }
.ti-theme-azure-serenity .az-loader__mono { position: relative; display: grid; place-items: center; width: 72px; animation: az-breathe 2.6s ease-in-out infinite; }
.ti-theme-azure-serenity .az-loader__mono img { width: 72px; }
.ti-theme-azure-serenity .az-loader__mono b, .ti-theme-azure-serenity .az-mono b { position: absolute; left: 0; right: 0; top: 54%; font-family: "Bodoni Moda", serif; font-style: italic; font-weight: 400; font-size: 19px; letter-spacing: .04em; color: var(--az-ink); text-align: center; }
.ti-theme-azure-serenity .az-loader__brand { margin: 0; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .5em; padding-left: .5em; text-transform: uppercase; color: var(--az-ink); }
.ti-theme-azure-serenity .az-loader__line { position: relative; width: 140px; height: 1px; overflow: hidden; background: rgba(95,126,158,.25); }
.ti-theme-azure-serenity .az-loader__line i { position: absolute; inset: 0; background: linear-gradient(90deg, transparent, var(--az-dusty), transparent); animation: az-line 1.4s ease-in-out infinite; }

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

.ti-theme-azure-serenity .az-gate { position: absolute; left: 50%; bottom: var(--gb); z-index: 2; height: var(--gh); width: calc(var(--gh) * 1080 / 1598); transform: translateX(-50%); perspective: 1700px; perspective-origin: 50% 58%; }
.ti-theme-azure-serenity .az-gate__arch { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; transition: opacity 1.5s ease 1.9s, transform 1.9s var(--az-ease2) 1.75s; }
.ti-opened.ti-theme-azure-serenity .az-gate__arch, .az-opened.ti-theme-azure-serenity .az-gate__arch { opacity: 0; transform: translateY(-2.5%); }
/* lubang pintu berbentuk lengkung: cahaya + tirai satin di dalamnya */
.ti-theme-azure-serenity .az-doorway { position: absolute; left: 17.84%; top: 10.43%; width: 64.33%; height: 86.96%; z-index: 1; overflow: hidden; border-radius: 50% 50% 0 0 / 25% 25% 0 0; transition: opacity 1s ease 2.5s; }
.ti-opened.ti-theme-azure-serenity .az-doorway, .az-opened.ti-theme-azure-serenity .az-doorway { opacity: 0; }
.ti-theme-azure-serenity .az-doorway__light { position: absolute; inset: 0; opacity: 0; background: radial-gradient(56% 46% at 50% 56%, rgba(255,255,255,.98) 0%, rgba(240,246,252,.7) 40%, rgba(201,217,234,0) 78%); }
.ti-opened.ti-theme-azure-serenity .az-doorway__light, .az-opened.ti-theme-azure-serenity .az-doorway__light { animation: az-light 2.6s ease 1.1s both; }
.ti-theme-azure-serenity .az-curtain { position: absolute; top: -1.06%; width: 53.1%; height: 101.1%; transition: transform 2s var(--az-ease2) .95s, opacity 1.1s ease 2s; }
.ti-theme-azure-serenity .az-curtain img { display: block; width: 100%; height: 100%; }
.ti-theme-azure-serenity .az-curtain--l { left: -1.54%; transform-origin: 0 50%; }
.ti-theme-azure-serenity .az-curtain--r { left: 48.44%; transform-origin: 100% 50%; }
.ti-theme-azure-serenity .az-curtain--r img { transform: scaleX(-1); }
.ti-opened.ti-theme-azure-serenity .az-curtain--l, .az-opened.ti-theme-azure-serenity .az-curtain--l { transform: translateX(-4%) scaleX(.16) skewY(2deg); opacity: 0; }
.ti-opened.ti-theme-azure-serenity .az-curtain--r, .az-opened.ti-theme-azure-serenity .az-curtain--r { transform: translateX(4%) scaleX(.16) skewY(-2deg); opacity: 0; }
.ti-theme-azure-serenity .az-door { position: absolute; top: 9.637%; width: 40%; height: 88.486%; z-index: 3; transform-origin: 10.095% 50%; transition: transform 2.2s cubic-bezier(.42,.04,.22,1) .3s, opacity .8s ease 2s; }
.ti-theme-azure-serenity .az-door--l { left: 13.796%; }
.ti-theme-azure-serenity .az-door--r { left: 46.204%; transform-origin: 89.905% 50%; }
.ti-theme-azure-serenity .az-door img { display: block; width: 100%; height: 100%; transition: filter 2.2s ease .3s; }
.ti-theme-azure-serenity .az-door--r img { transform: scaleX(-1); }
.ti-opened.ti-theme-azure-serenity .az-door--l, .az-opened.ti-theme-azure-serenity .az-door--l { transform: rotateY(104deg); opacity: 0; }
.ti-opened.ti-theme-azure-serenity .az-door--r, .az-opened.ti-theme-azure-serenity .az-door--r { transform: rotateY(-104deg); opacity: 0; }
.ti-opened.ti-theme-azure-serenity .az-door img, .az-opened.ti-theme-azure-serenity .az-door img { filter: brightness(.85); }
/* kilau kristal: berkedip singkat hanya saat gerbang dibuka */
.ti-theme-azure-serenity .az-glints { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.ti-theme-azure-serenity .az-glints i { position: absolute; width: 14px; height: 14px; opacity: 0; background: radial-gradient(closest-side, #fff, rgba(255,255,255,0)), conic-gradient(from 45deg, transparent 0 20%, rgba(255,255,255,.95) 25%, transparent 30% 45%, rgba(255,255,255,.95) 50%, transparent 55% 70%, rgba(255,255,255,.95) 75%, transparent 80%); border-radius: 50%; }
.ti-theme-azure-serenity .az-glints i:nth-child(1) { left: 40%; top: 15%; } .ti-theme-azure-serenity .az-glints i:nth-child(2) { left: 55%; top: 19%; } .ti-theme-azure-serenity .az-glints i:nth-child(3) { left: 48%; top: 23%; }
.ti-theme-azure-serenity .az-glints i:nth-child(4) { left: 33%; top: 21%; } .ti-theme-azure-serenity .az-glints i:nth-child(5) { left: 62%; top: 13%; }
.ti-opened.ti-theme-azure-serenity .az-glints i, .az-opened.ti-theme-azure-serenity .az-glints i { animation: az-glint 1.1s ease calc(.4s + var(--k, 0) * .18s) 2 both; }
.ti-theme-azure-serenity .az-glints i:nth-child(2) { --k: 1; } .ti-theme-azure-serenity .az-glints i:nth-child(3) { --k: 2; } .ti-theme-azure-serenity .az-glints i:nth-child(4) { --k: 3; } .ti-theme-azure-serenity .az-glints i:nth-child(5) { --k: 4; }

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

/* konten di atas panel tengah daun pintu (30–83% tinggi gerbang) */
.ti-theme-azure-serenity .az-cover__content { position: absolute; left: 50%; top: calc(var(--vh) - var(--gb) - var(--gh) * .7); bottom: calc(var(--gb) + var(--gh) * .17); z-index: 6; display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: min(calc(var(--gh) * .43), 92vw); transform: translateX(-50%); text-align: center; transition: opacity .7s ease, transform .9s var(--az-ease), filter .7s; }
.ti-opened.ti-theme-azure-serenity .az-cover__content, .az-opened.ti-theme-azure-serenity .az-cover__content { opacity: 0; transform: translate(-50%, -16px); filter: blur(5px); }
.ti-theme-azure-serenity .az-cover__content .az-script { font-size: clamp(21px, 2.9vh, 30px); color: #FFFFFF; text-shadow: 0 1px 12px rgba(46,65,87,.55); }
.ti-theme-azure-serenity .az-cover__names { display: flex; flex-direction: column; align-items: center; font-family: "Bodoni Moda", Georgia, serif; font-weight: 400; font-size: clamp(31px, 5.3vh, 58px); line-height: 1.02; color: #FFFFFF; text-shadow: 0 2px 18px rgba(36,54,76,.6), 0 0 2px rgba(36,54,76,.35); overflow-wrap: anywhere; }
.ti-theme-azure-serenity .az-cover__names em { margin: .04em 0 .06em; font-family: "Parisienne", cursive; font-style: normal; font-size: .72em; line-height: 1; color: #EEF3F8; }
.ti-theme-azure-serenity .az-cover__card { margin-top: 12px; padding: 12px 14px 14px; border-radius: 18px; background: rgba(250,248,244,.86); box-shadow: 0 0 0 1px rgba(255,255,255,.9), 0 0 0 5px rgba(255,255,255,.2), 0 18px 34px -20px rgba(36,54,76,.75); }
.ti-theme-azure-serenity .az-cover__date { margin: 0 0 8px; font-family: "Manrope", sans-serif; font-weight: 600; font-size: clamp(10.5px, 1.5vh, 12.5px); letter-spacing: .22em; text-transform: uppercase; color: var(--az-ink); }
.ti-theme-azure-serenity .az-cover__guest { margin: 0 0 12px; padding: 0 6px 10px; border-bottom: 1px solid rgba(141,152,166,.35); }
.ti-theme-azure-serenity .az-cover__guest p { margin: 0; }
.ti-theme-azure-serenity .az-cover__guest .ti-guest__label { font-size: 11px; letter-spacing: .04em; color: var(--az-muted); }
.ti-theme-azure-serenity .az-cover__guest .ti-guest__name { font-family: "Bodoni Moda", serif; font-weight: 500; font-size: 18px; line-height: 1.3; color: var(--az-ink); }
.ti-theme-azure-serenity .az-btn--open { min-height: 48px; padding: 11px 26px; }
.ti-theme-azure-serenity .az-btn--open svg { flex: none; }

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

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

/* ========== Navigasi & toast ========== */
.ti-theme-azure-serenity .az-nav { position: fixed; left: 12px; bottom: 12px; z-index: 30; display: flex; gap: 2px; max-width: calc(100vw - 84px); overflow-x: auto; scrollbar-width: none; padding: 5px 7px; border: 1px solid rgba(195,203,212,.85); border-radius: 999px;
  background: rgba(250,248,244,.88); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 16px 34px -18px rgba(46,65,87,.5); transform: translateY(160%); opacity: 0; transition: transform .7s var(--az-ease), opacity .7s; }
.ti-theme-azure-serenity .az-nav::-webkit-scrollbar { display: none; }
.ti-opened.ti-theme-azure-serenity .az-nav, .az-opened.ti-theme-azure-serenity .az-nav { transform: none; opacity: 1; transition-delay: 2.7s; }
.ti-opened.ti-theme-azure-serenity .az-nav.is-hidden, .az-opened.ti-theme-azure-serenity .az-nav.is-hidden { transform: translateY(160%); opacity: 0; transition-delay: 0s; }
.ti-theme-azure-serenity .az-nav a { position: relative; display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; color: var(--az-ink); text-decoration: none; transition: color .3s, background .4s; }
.ti-theme-azure-serenity .az-nav a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ti-theme-azure-serenity .az-nav a:hover, .ti-theme-azure-serenity .az-nav a.is-active { color: #fff; background: linear-gradient(135deg, #9DB4CC, #6C89AA); }
.ti-theme-azure-serenity .az-toast { position: fixed; left: 50%; bottom: 76px; z-index: 70; max-width: calc(100vw - 32px); padding: 12px 22px; border-radius: 999px; background: rgba(46,65,87,.96); color: #FFFFFF; font-size: 13.5px; letter-spacing: .03em; text-align: center;
  box-shadow: 0 18px 34px -16px rgba(20,30,45,.8); opacity: 0; transform: translate(-50%, 14px); pointer-events: none; transition: opacity .4s, transform .5s var(--az-ease); }
.ti-theme-azure-serenity .az-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.ti-theme-azure-serenity .az-toast::before { content: "\25C7"; margin-right: 10px; color: var(--az-powder); }

/* ========== Struktur & dekorasi ========== */
.ti-theme-azure-serenity .az-main { position: relative; z-index: 2; overflow: clip; }
.ti-theme-azure-serenity .az-section { position: relative; padding: 96px 22px; text-align: center; overflow: hidden; }
.ti-theme-azure-serenity .az-head { position: relative; z-index: 2; margin: 0 auto 34px; }
.ti-theme-azure-serenity .az-head__crest { display: block; width: 46px; height: auto; margin: 0 auto 8px; }
.ti-theme-azure-serenity .az-corner { position: absolute; z-index: 1; width: clamp(150px, 40vw, 420px); height: auto; pointer-events: none; }
.ti-theme-azure-serenity .az-corner--tl { left: -6vw; top: -10px; }
.ti-theme-azure-serenity .az-corner--tr { right: -6vw; top: -10px; transform: scaleX(-1); }
.ti-theme-azure-serenity .az-corner--bl { left: -6vw; bottom: -8px; }
.ti-theme-azure-serenity .az-corner--br { right: -6vw; bottom: -8px; transform: scaleX(-1); }
.ti-theme-azure-serenity .az-corner--soft { width: clamp(140px, 34vw, 360px); }
.ti-theme-azure-serenity .az-corner--low { width: clamp(140px, 32vw, 340px); }
.ti-theme-azure-serenity .az-sprig { position: absolute; top: 20px; z-index: 1; width: clamp(48px, 12vw, 110px); height: auto; pointer-events: none; }
.ti-theme-azure-serenity .az-sprig--l { left: 2px; }
.ti-theme-azure-serenity .az-sprig--r { right: 2px; transform: scaleX(-1); }

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

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

/* ========== MEMPELAI ========== */
.ti-theme-azure-serenity .az-couple { padding-top: clamp(120px, 14vw, 170px); background: radial-gradient(60% 40% at 50% 30%, rgba(255,255,255,.7), transparent 70%), linear-gradient(180deg, var(--az-mist) 0%, var(--az-ivory) 60%, var(--az-mist) 100%); }
.ti-theme-azure-serenity .az-couple .az-text { position: relative; z-index: 2; }
.ti-theme-azure-serenity .az-couple__grid { position: relative; z-index: 2; display: grid; gap: 22px; max-width: 980px; margin: 44px auto 0; }
.ti-theme-azure-serenity .az-couple__amp { margin: 0; font-family: "Parisienne", cursive; font-size: 56px; line-height: 1; color: var(--az-dusty); }
.ti-theme-azure-serenity .az-person { display: grid; justify-items: center; gap: 24px; }
.ti-theme-azure-serenity .az-portrait { position: relative; width: min(270px, 70vw); aspect-ratio: 3 / 4.2; margin-top: 26px; }
.ti-theme-azure-serenity .az-portrait__ring { position: absolute; left: 50%; top: -9%; width: 128%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; border: 1px solid rgba(141,152,166,.6); box-shadow: inset 0 0 0 6px rgba(201,217,234,.35); }
.ti-theme-azure-serenity .az-portrait::after { content: ""; position: absolute; inset: -8px; border: 1px solid rgba(195,203,212,.95); border-radius: 30px; pointer-events: none; }
.ti-theme-azure-serenity .az-portrait__photo { position: absolute; inset: 0; overflow: hidden; border-radius: 24px; background: linear-gradient(160deg, var(--az-mist), #CAD8E7); box-shadow: 0 36px 50px -32px rgba(46,65,87,.65); }
.ti-theme-azure-serenity .az-portrait__photo img, .ti-theme-azure-serenity .az-portrait__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 24%; }
.ti-theme-azure-serenity .az-portrait__photo .ti-couple-monogram { display: grid; place-items: center; width: 100%; height: 100%; font-family: "Bodoni Moda", serif; font-style: italic; font-size: 92px; color: var(--az-deep); }
.ti-theme-azure-serenity .az-portrait__spray { position: absolute; left: -20%; bottom: -8%; z-index: 2; width: 140%; max-width: none; height: auto; pointer-events: none; }
.ti-theme-azure-serenity .az-person__nick { font-family: "Bodoni Moda", serif; font-weight: 400; font-size: clamp(34px, 9vw, 46px); line-height: 1.12; color: var(--az-ink); }
.ti-theme-azure-serenity .az-person__name { margin: 4px 0 10px; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 12.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--az-deep); }

/* ========== ACARA (gradasi dusty blue + kilau satin) ========== */
.ti-theme-azure-serenity .az-events { color: #FFFFFF; background: var(--az-satin), radial-gradient(70% 40% at 15% 0%, rgba(201,217,234,.55), transparent 70%), radial-gradient(60% 40% at 90% 100%, rgba(169,200,227,.5), transparent 70%), linear-gradient(165deg, #A3B9D0 0%, #7F9BBA 50%, #8EA8C3 100%); }
.ti-theme-azure-serenity .az-events .az-title { color: #FFFFFF; }
.ti-theme-azure-serenity .az-events .az-script { color: #F4F8FC; }
.ti-theme-azure-serenity .az-events__grid { position: relative; z-index: 2; display: grid; gap: 34px; max-width: 980px; margin: 0 auto; }
.ti-theme-azure-serenity .az-card { position: relative; padding: 70px 24px 30px; color: var(--az-ink); border-radius: 26px; background: linear-gradient(180deg, #FFFFFF 0%, #F6F4EF 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 0 0 8px rgba(255,255,255,.16), 0 40px 56px -36px rgba(25,40,60,.8); }
.ti-theme-azure-serenity .az-card::before { content: ""; position: absolute; inset: 9px; border: 1px solid rgba(195,203,212,.85); border-radius: 19px; pointer-events: none; }
.ti-theme-azure-serenity .az-card__spray { position: absolute; left: 50%; top: -26px; width: 300px; max-width: 92%; height: auto; transform: translateX(-50%); pointer-events: none; }
.ti-theme-azure-serenity .az-card__name { font-family: "Bodoni Moda", serif; font-weight: 400; font-size: 31px; line-height: 1.15; color: var(--az-ink); }
.ti-theme-azure-serenity .az-card__day { margin: 10px 0 0; font-weight: 600; font-size: 11.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--az-deep); }
.ti-theme-azure-serenity .az-card__date { display: flex; align-items: baseline; justify-content: center; gap: 10px; margin: 0 0 14px; font-family: "Bodoni Moda", serif; font-size: 20px; color: var(--az-muted); }
.ti-theme-azure-serenity .az-card__date span { font-size: 60px; line-height: 1.05; color: var(--az-deep); }
.ti-theme-azure-serenity .az-card__info { display: grid; gap: 10px; max-width: 320px; margin: 0 auto 22px; padding: 16px 0 0; list-style: none; text-align: left; border-top: 1px solid rgba(195,203,212,.7); }
.ti-theme-azure-serenity .az-card__info li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 14px; line-height: 1.55; color: var(--az-muted); }
.ti-theme-azure-serenity .az-card__info svg { margin-top: 2px; color: var(--az-deep); }
.ti-theme-azure-serenity .az-card__info strong { font-weight: 600; color: var(--az-ink); }
.ti-theme-azure-serenity .az-card__actions { margin-top: 14px; }
.ti-theme-azure-serenity .az-card__actions:empty { display: none; }
.ti-theme-azure-serenity .az-card__actions .ti-btn--maps { display: none; }
.ti-theme-azure-serenity .az-events .az-center { position: relative; z-index: 2; margin: 34px 0 0; }

.ti-theme-azure-serenity .ti-btn { border-radius: 999px; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; transition: transform .4s var(--az-ease), background .4s, color .4s; }
.ti-theme-azure-serenity .ti-btn--primary, .ti-theme-azure-serenity .ti-btn--maps { background: linear-gradient(135deg, #8EA8C4, #6C89AA); border-color: #6C89AA; color: #FFFFFF; }
.ti-theme-azure-serenity .ti-btn--ghost { background: transparent; border-color: rgba(95,126,158,.55); color: var(--az-deep); }
.ti-theme-azure-serenity .ti-btn:hover { transform: translateY(-2px); }

/* ========== COUNTDOWN ========== */
.ti-theme-azure-serenity .az-count { padding-top: 100px; padding-bottom: 104px; background: linear-gradient(180deg, #8EA8C3 0%, #B4C8DD 36%, #DDE7F1 70%, var(--az-ivory) 100%); }
.ti-theme-azure-serenity .az-count .az-script { color: #FFFFFF; text-shadow: 0 2px 14px rgba(46,65,87,.3); }
.ti-theme-azure-serenity .az-count .az-title { position: relative; z-index: 2; color: #FFFFFF; text-shadow: 0 2px 18px rgba(46,65,87,.32); }
.ti-theme-azure-serenity .az-count__box { position: relative; z-index: 2; max-width: 560px; margin: 26px auto 0; }
.ti-theme-azure-serenity .az-countdown { display: flex; justify-content: center; gap: 10px; }
.ti-theme-azure-serenity .az-countdown .ti-countdown__item { position: relative; flex: 1; max-width: 120px; padding: 20px 4px 14px; border-radius: 18px; background: rgba(255,255,255,.72); box-shadow: 0 0 0 1px rgba(255,255,255,.95), inset 0 0 0 4px rgba(201,217,234,.35), 0 22px 30px -22px rgba(46,65,87,.6); }
.ti-theme-azure-serenity .az-countdown .ti-countdown__num { display: block; font-family: "Bodoni Moda", serif; font-weight: 400; font-size: clamp(34px, 10vw, 54px); line-height: 1.04; color: var(--az-ink); }
.ti-theme-azure-serenity .az-countdown .ti-countdown__label { display: block; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 9.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--az-deep); opacity: 1; }
.ti-theme-azure-serenity .az-count__date { position: relative; z-index: 2; margin: 22px 0 0; font-weight: 600; font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--az-ink); }

.ti-theme-azure-serenity .az-film { background: var(--az-ivory); }
.ti-theme-azure-serenity .az-video { max-width: 900px; margin: 0 auto; overflow: hidden; border-radius: 18px; box-shadow: 0 0 0 1px rgba(195,203,212,.8), 0 34px 50px -34px rgba(46,65,87,.6); }

/* ========== GALERI ========== */
.ti-theme-azure-serenity .az-gallery { padding-top: clamp(110px, 12vw, 160px); background: radial-gradient(50% 30% at 0% 40%, rgba(201,217,234,.35), transparent 70%), radial-gradient(50% 30% at 100% 70%, rgba(169,200,227,.25), transparent 70%), var(--az-ivory); }
.ti-theme-azure-serenity .az-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: dense; gap: 10px; max-width: 1180px; margin: 0 auto; }
.ti-theme-azure-serenity .az-shot { position: relative; display: block; overflow: hidden; aspect-ratio: 3 / 4; border-radius: 4px; background: linear-gradient(160deg, var(--az-mist), #D4E0EC); box-shadow: 0 22px 34px -26px rgba(46,65,87,.65); }
.ti-theme-azure-serenity .az-shot::after { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(255,255,255,.75); pointer-events: none; }
.ti-theme-azure-serenity .az-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; transition: filter .6s ease; }
.ti-theme-azure-serenity .az-shot:hover img { filter: brightness(1.05); }
.ti-theme-azure-serenity .az-shot.is-landscape { grid-column: span 2; aspect-ratio: 3 / 2; }
.ti-theme-azure-serenity .az-shot.is-feature { grid-column: 1 / -1; aspect-ratio: auto; justify-self: center; width: 100%; border-radius: 6px; padding: 10px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(195,203,212,.85), 0 30px 46px -30px rgba(46,65,87,.6); }
.ti-theme-azure-serenity .az-shot.is-feature.is-portrait, .ti-theme-azure-serenity .az-shot.is-feature.is-square { width: min(100%, 560px); }
.ti-theme-azure-serenity .az-shot.is-feature img { height: auto; max-height: 86vh; object-fit: contain; background: var(--az-mist); }
.ti-theme-azure-serenity .az-shot.is-feature::after { inset: 18px; border-color: rgba(255,255,255,.8); }

/* ========== KISAH ========== */
.ti-theme-azure-serenity .az-story { background: linear-gradient(180deg, var(--az-ivory) 0%, var(--az-mist) 50%, var(--az-ivory) 100%); }
.ti-theme-azure-serenity .az-timeline { position: relative; z-index: 2; max-width: 980px; margin: 0 auto; padding-left: 34px; text-align: left; }
.ti-theme-azure-serenity .az-timeline::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: 6px; width: 1px; background: linear-gradient(180deg, transparent, var(--az-silver) 8%, var(--az-dusty) 50%, var(--az-silver) 92%, transparent); }
.ti-theme-azure-serenity .az-chapter { position: relative; display: grid; gap: 18px; margin-bottom: 46px; }
.ti-theme-azure-serenity .az-chapter:last-child { margin-bottom: 0; }
.ti-theme-azure-serenity .az-chapter__node { position: absolute; left: -29px; top: 6px; width: 12px; height: 12px; transform: rotate(45deg); background: linear-gradient(135deg, #FFFFFF, var(--az-powder) 50%, var(--az-dusty)); box-shadow: 0 0 0 4px var(--az-ivory), 0 0 0 5px rgba(141,152,166,.7); }
.ti-theme-azure-serenity .az-chapter__media { overflow: hidden; border-radius: 18px; background: var(--az-mist); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 0 0 7px rgba(255,255,255,.75), 0 0 0 8px rgba(195,203,212,.8), 0 30px 44px -30px rgba(46,65,87,.6); }
.ti-theme-azure-serenity .az-chapter__media img { display: block; width: 100%; height: auto; }
.ti-theme-azure-serenity .az-chapter__media.is-portrait { max-width: 360px; }
.ti-theme-azure-serenity .az-chapter__body { position: relative; padding: 22px 22px 20px; border-radius: 16px; background: rgba(255,255,255,.88); box-shadow: 0 0 0 1px rgba(195,203,212,.6), 0 24px 36px -30px rgba(46,65,87,.5); }
.ti-theme-azure-serenity .az-chapter__no { position: absolute; right: 18px; top: 8px; font-family: "Bodoni Moda", serif; font-style: italic; font-size: 40px; line-height: 1; color: rgba(143,169,196,.32); }
.ti-theme-azure-serenity .az-chapter__body h3 { margin: 0 0 8px; font-family: "Bodoni Moda", serif; font-weight: 400; font-size: 25px; line-height: 1.22; color: var(--az-ink); }
.ti-theme-azure-serenity .az-chapter__body p { margin: 0; color: var(--az-muted); }

/* ========== LOKASI ========== */
.ti-theme-azure-serenity .az-venue { background: radial-gradient(60% 30% at 50% 0%, rgba(201,217,234,.7), transparent 70%), var(--az-ivory); }
.ti-theme-azure-serenity .az-venue__list { display: grid; gap: 52px; max-width: 1000px; margin: 52px auto 0; }
.ti-theme-azure-serenity .az-place { position: relative; padding: 46px 20px 26px; border-radius: 22px; background: linear-gradient(180deg, #FFFFFF, #F5F7FA); box-shadow: 0 0 0 1px rgba(195,203,212,.75), 0 30px 46px -34px rgba(46,65,87,.55); }
.ti-theme-azure-serenity .az-place__spray, .ti-theme-azure-serenity .az-form__spray { position: absolute; left: 50%; top: -30px; z-index: 2; width: 300px; max-width: 90%; height: auto; transform: translateX(-50%); pointer-events: none; }
.ti-theme-azure-serenity .az-place__name { font-family: "Bodoni Moda", serif; font-weight: 400; font-size: 27px; line-height: 1.22; color: var(--az-ink); }
.ti-theme-azure-serenity .az-place__addr { max-width: 460px; margin: 8px auto 18px; font-size: 14px; color: var(--az-muted); }
.ti-theme-azure-serenity .az-map { position: relative; margin: 0 0 20px; overflow: hidden; aspect-ratio: 16 / 11; border-radius: 14px; background: linear-gradient(160deg, var(--az-mist), #D4E0EC); box-shadow: 0 0 0 1px rgba(195,203,212,.8), inset 0 0 0 6px rgba(255,255,255,.6); }
.ti-theme-azure-serenity .az-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: saturate(.8); }

/* ========== RSVP & UCAPAN ========== */
.ti-theme-azure-serenity .az-rsvp { padding-bottom: 150px; background: radial-gradient(50% 30% at 50% 100%, rgba(255,255,255,.6), transparent 70%), linear-gradient(180deg, var(--az-mist) 0%, #DFE8F1 100%); }
.ti-theme-azure-serenity .az-rsvp .az-text { margin-bottom: 52px; }
.ti-theme-azure-serenity .az-wishes__box { margin-top: 52px; }
.ti-theme-azure-serenity .az-form, .ti-theme-azure-serenity .az-wishes__box { position: relative; z-index: 2; max-width: 620px; margin-left: auto; margin-right: auto; padding: 50px 22px 30px; text-align: left; border-radius: 22px; background: rgba(255,255,255,.93); box-shadow: 0 0 0 1px rgba(195,203,212,.75), 0 34px 50px -36px rgba(46,65,87,.55); }
.ti-theme-azure-serenity .ti-field label, .ti-theme-azure-serenity .ti-field legend { font-family: "Manrope", sans-serif; font-weight: 600; font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--az-ink); }
.ti-theme-azure-serenity .ti-field input[type="text"], .ti-theme-azure-serenity .ti-field input[type="number"], .ti-theme-azure-serenity .ti-field input[type="tel"], .ti-theme-azure-serenity .ti-field input[type="email"], .ti-theme-azure-serenity .ti-field select, .ti-theme-azure-serenity .ti-field textarea {
  width: 100%; min-height: 46px; font-family: "Manrope", sans-serif; font-weight: 400; font-size: 15px; color: var(--az-ink); border: 1px solid #CBD6E2; border-radius: 12px; background: #FFFFFF; }
.ti-theme-azure-serenity .ti-field input:focus, .ti-theme-azure-serenity .ti-field select:focus, .ti-theme-azure-serenity .ti-field textarea:focus { outline: none; border-color: var(--az-deep); box-shadow: 0 0 0 3px rgba(143,169,196,.28); }
.ti-theme-azure-serenity .ti-choice span { font-family: "Manrope", sans-serif; border-color: #CBD6E2; border-radius: 999px; }
.ti-theme-azure-serenity .az-form .ti-btn--primary, .ti-theme-azure-serenity .az-form button[type="submit"], .ti-theme-azure-serenity .az-wishes button[type="submit"] { width: 100%; min-height: 50px; border: 1px solid #6C89AA; border-radius: 999px; background: linear-gradient(135deg, #8EA8C4 0%, #6C89AA 60%, #7F9BBA 100%); color: #FFFFFF; font-family: "Manrope", sans-serif; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.ti-theme-azure-serenity .az-wishes { background: var(--az-ivory); }
.ti-theme-azure-serenity .az-wishes form, .ti-theme-azure-serenity .az-wishes .ti-guestbook__form { margin-bottom: 22px; padding: 20px; border-radius: 16px; background: #F8FAFC; box-shadow: inset 0 0 0 1px rgba(195,203,212,.6); }
.ti-theme-azure-serenity .az-wishes .ti-guestbook__item { position: relative; margin-bottom: 14px; padding: 18px 18px 14px 56px; border-radius: 16px; background: #FFFFFF; box-shadow: 0 0 0 1px rgba(203,214,226,.9), 0 16px 26px -24px rgba(46,65,87,.45); }
.ti-theme-azure-serenity .az-wishes .ti-guestbook__item::before { content: "\201C"; position: absolute; left: 16px; top: 4px; font-family: "Bodoni Moda", serif; font-size: 52px; line-height: 1; color: var(--az-dusty); }
.ti-theme-azure-serenity .az-wishes .ti-guestbook__item strong, .ti-theme-azure-serenity .az-wishes .ti-guestbook__item b { font-family: "Manrope", sans-serif; font-weight: 600; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--az-ink); }
.ti-theme-azure-serenity .az-wishes .ti-guestbook__item p { font-family: "Bodoni Moda", serif; font-style: italic; font-size: 16.5px; line-height: 1.6; color: var(--az-muted); }

/* ========== HADIAH ========== */
.ti-theme-azure-serenity .az-giftsec { color: #FFFFFF; background: var(--az-satin), radial-gradient(60% 40% at 85% 0%, rgba(201,217,234,.5), transparent 70%), linear-gradient(170deg, #A3B9D0 0%, #7F9BBA 60%, #8EA8C3 100%); }
.ti-theme-azure-serenity .az-giftsec .az-title, .ti-theme-azure-serenity .az-giftsec .az-text { position: relative; z-index: 2; color: #FFFFFF; }
.ti-theme-azure-serenity .az-giftsec .az-script { color: #F4F8FC; }
.ti-theme-azure-serenity .az-gift { position: relative; z-index: 2; display: grid; gap: 20px; max-width: 900px; margin: 0 auto; }
.ti-theme-azure-serenity .az-gift .ti-gift__card { position: relative; padding: 36px 24px 28px; overflow: hidden; color: var(--az-ink); border: 0; border-radius: 22px; background: linear-gradient(160deg, #FFFFFF 0%, #EEF3F8 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.95), 0 36px 52px -34px rgba(25,40,60,.8); transition: transform .5s var(--az-ease); }
.ti-theme-azure-serenity .az-gift .ti-gift__card::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(195,203,212,.85); border-radius: 16px; pointer-events: none; }
.ti-theme-azure-serenity .az-gift .ti-gift__card:hover { transform: translateY(-4px); }
.ti-theme-azure-serenity .az-gift .ti-gift__bank { font-family: "Manrope", sans-serif; font-weight: 600; font-size: 12.5px; letter-spacing: .28em; text-transform: uppercase; color: var(--az-deep); }
.ti-theme-azure-serenity .az-gift .ti-gift__no { font-family: "Bodoni Moda", serif; font-weight: 500; font-size: 27px; letter-spacing: .05em; color: var(--az-ink); overflow-wrap: anywhere; }
.ti-theme-azure-serenity .az-gift button, .ti-theme-azure-serenity .az-gift .ti-btn { position: relative; z-index: 1; border: 1px solid #6C89AA; border-radius: 999px; background: linear-gradient(135deg, #8EA8C4, #6C89AA); color: #FFFFFF; font-family: "Manrope", sans-serif; font-weight: 600; letter-spacing: .16em; cursor: pointer; }
.ti-theme-azure-serenity .az-gift .is-copied { background: var(--az-navy); }

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

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

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

.ti-theme-azure-serenity.az-lite .az-nav { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(250,248,244,.97); }
.ti-theme-azure-serenity.az-lite .az-drift, .ti-theme-azure-serenity.az-lite .az-glints { display: none; }

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

@keyframes az-loader-auto { to { opacity: 0; visibility: hidden; } }
@keyframes az-breathe { 0%, 100% { opacity: .75; } 50% { opacity: 1; } }
@keyframes az-line { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes az-light { 0% { opacity: 0; } 40% { opacity: 1; } 75% { opacity: .85; } 100% { opacity: 0; } }
@keyframes az-glint { 0% { opacity: 0; transform: scale(.4) rotate(0); } 50% { opacity: 1; transform: scale(1) rotate(45deg); } 100% { opacity: 0; transform: scale(.4) rotate(90deg); } }
@keyframes az-burst { 0% { opacity: 0; transform: translate(0, 0) rotate(0); } 12% { opacity: 1; } 70% { opacity: .9; } 100% { opacity: 0; transform: translate(var(--x), calc(var(--y) + 18vh)) rotate(var(--r)); } }
@keyframes az-fall { 0% { opacity: 0; transform: translate(0, 0) rotate(0); } 8% { opacity: .9; } 50% { transform: translate(5vw, 55vh) rotate(160deg); } 92% { opacity: .8; } 100% { opacity: 0; transform: translate(-3vw, 108vh) rotate(320deg); } }
@keyframes az-drop { 0% { transform: translateY(0) rotate(45deg); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(36px) rotate(45deg); opacity: 0; } }
