/* ==========================================================
   DeInvite — W-103 "Amalfi Lemon"
   Putih kapur · biru kobalt · kuning lemon · hijau daun.
   Ubin majolika halus sebagai latar; tanpa animasi tambahan.
   ========================================================== */
.t-tramalfi {
    --bg: #fbfaf6; --bg-2: #eef3fb; --card: #ffffff; --ink: #1d2b4a; --muted: #5f6b84;
    --accent: #1f4fa3; --accent-2: #e2b42c; --on-accent: #ffffff; --line: rgba(31,79,163,.22);
    --hero-rgb: 251,250,246; --tint-a: .88; --hero-ink: #1d2b4a;
    --tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%231f4fa3' stroke-opacity='.13' stroke-width='1.2'%3E%3Crect x='.5' y='.5' width='63' height='63'/%3E%3Cpath d='M32 10c6 6 6 10 0 22c-6-12-6-16 0-22zM32 54c6-6 6-10 0-22c-6 12-6 16 0 22zM10 32c6-6 10-6 22 0c-12 6-16 6-22 0zM54 32c-6-6-10-6-22 0c12 6 16 6 22 0z'/%3E%3Ccircle cx='32' cy='32' r='3'/%3E%3Cpath d='M0 8a8 8 0 0 0 8-8M56 0a8 8 0 0 0 8 8M64 56a8 8 0 0 0-8 8M8 64a8 8 0 0 0-8-8'/%3E%3C/g%3E%3C/svg%3E");
    color-scheme: light;
}
.t-tramalfi .names { font-family: 'Fraunces', Georgia, serif; font-weight: 500; font-style: italic; letter-spacing: -.01em; color: var(--accent); }
.t-tramalfi .names i { font-style: italic; font-weight: 400; color: var(--accent-2); }
.t-tramalfi .cover .names { font-size: clamp(2.5rem, 10.5vw, 3.5rem); line-height: 1.12; }
.t-tramalfi .kicker { font-family: 'Jost', sans-serif; font-weight: 600; font-size: .7rem; letter-spacing: .34em; color: var(--accent); }
.t-tramalfi .sec__title { font-family: 'Fraunces', serif; font-style: italic; font-weight: 500; font-size: 1.85rem; color: var(--accent); }
.t-tramalfi .sec__title::after { content: ''; display: block; width: 190px; height: 24px; margin: .45rem auto 0; background: url(../../img/themes/tramalfi/pembatas.svg) center / contain no-repeat; }
.t-tramalfi .cover__date, .t-tramalfi .hero__date, .t-tramalfi .aside__date, .t-tramalfi .countdown__date { font-family: 'Jost', sans-serif; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; font-size: .78rem; color: var(--muted); }
.t-tramalfi .thanks, .t-tramalfi .quote { font-family: 'Fraunces', serif; font-style: italic; }
.t-tramalfi .cover__to strong { font-family: 'Fraunces', serif; font-weight: 600; }

/* Sampul: latar ubin majolika, kartu putih kapur bertepi biru */
.t-tramalfi .cover, .t-tramalfi .hero, .t-tramalfi .aside { background: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none) center / cover no-repeat, var(--tile) 0 0 / 64px 64px, var(--bg); }
.t-tramalfi .cover::before { inset: 16px; border: 1.5px solid var(--accent); border-radius: 0; opacity: .9; }
.t-tramalfi .cover::after { inset: 22px; border: 1px dashed rgba(31,79,163,.35); border-radius: 0; }
.t-tramalfi .cover__inner { width: min(318px, calc(100vw - 64px)); gap: .5rem; padding: 1.3rem 1.2rem 1.5rem; background: rgba(255,255,255,.94); border-radius: 160px 160px 18px 18px; box-shadow: 0 0 0 1px var(--line), 0 24px 50px -28px rgba(31,79,163,.5); }
.t-tramalfi .cover .tm-house { width: min(170px, 46vw); margin-top: .4rem; }
.t-tramalfi .hero .tm-house { width: min(230px, 62vw); }
.t-tramalfi .aside .tm-house { width: 250px; }
.t-tramalfi .tm-house--sm { width: 150px; }
.t-tramalfi .tm-corner { width: clamp(50px, 13vw, 78px); }
.t-tramalfi .tm-band { display: none; }
.t-tramalfi .sec--tint { background: var(--tile) 0 0 / 64px 64px, var(--bg-2); }

.t-tramalfi .event, .t-tramalfi .gift, .t-tramalfi .rsvp, .t-tramalfi .wish, .t-tramalfi .qr-card, .t-tramalfi .lstory__card, .t-tramalfi .evinfo__dc, .t-tramalfi .gaddr, .t-tramalfi .glist__item { border-radius: 16px; background: var(--card); border: 1px solid var(--line); box-shadow: 0 16px 34px -26px rgba(31,79,163,.45); }
.t-tramalfi .event { border-top: 4px solid var(--accent-2); }
.t-tramalfi .event h3 { font-family: 'Fraunces', serif; font-style: italic; font-weight: 500; font-size: 1.6rem; color: var(--accent); }
.t-tramalfi .countdown div { border-radius: 14px; background: var(--card); border-color: var(--line); box-shadow: inset 0 -3px 0 var(--accent-2); }
.t-tramalfi .countdown b { font-family: 'Fraunces', serif; color: var(--accent); }
.t-tramalfi .ibtn { border-radius: 999px; font-family: 'Jost', sans-serif; letter-spacing: .04em; }
.t-tramalfi .ibtn--solid { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 10px 22px -12px rgba(31,79,163,.7); }
.t-tramalfi .amp { font-family: 'Fraunces', serif; font-style: italic; color: var(--accent-2); }
.t-tramalfi .pframe, .t-tramalfi .person__photo { border-radius: 50%; box-shadow: 0 0 0 2px var(--accent), 0 0 0 7px #fff, 0 0 0 8px var(--line); }
.t-tramalfi .divider { background: var(--accent); }

/* Foto pengantin di tengah karangan lemon */
.t-tramalfi .cportrait { aspect-ratio: 1; }
.t-tramalfi .cportrait::before { content: ''; position: absolute; inset: 0; z-index: 2; background: url(../../img/themes/tramalfi/karangan-lemon.svg) center / contain no-repeat; pointer-events: none; }
.t-tramalfi .cportrait__in { inset: 23.5%; border-radius: 50%; }
.t-tramalfi .cover .cportrait { width: min(180px, 48vw); }
.t-tramalfi .hero .cportrait { width: min(240px, 64vw); }
.t-tramalfi .cportrait__in { background: #fff; }
.t-tramalfi .cportrait__init { font-family: 'Fraunces', serif; font-style: italic; font-size: 1.9rem; color: var(--accent); }
.t-tramalfi .cportrait__init i { color: var(--accent-2); }
