/* ==========================================================
   DInvite — Tema Floral "Magnolia Nocturne"
   Midnight blue, magnolia ivory, dan kilau rose-gold.
   ========================================================== */
.t-magnolia {
    --bg: #0f162b; --bg-2: #18223d; --card: #202d4a; --ink: #f8eee8; --muted: #c0bfca;
    --accent: #e3a6a8; --accent-2: #d7b56d; --on-accent: #1b1b30; --line: rgba(227,166,168,.28);
    --hero-rgb: 15,22,43; --tint-a: .72; --hero-ink: #f8eee8;
    --serif-e: 'Bodoni Moda', Georgia, serif;
    --am-panel: linear-gradient(135deg, #121d38, #273251 55%, #131a31);
    --am-seam: linear-gradient(#d7b56d, #e3a6a8, #d7b56d);
    color-scheme: dark;
}
@keyframes mgRise { from { opacity: 0; transform: translateY(25px) scale(.95); } }
@keyframes mgFloat { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(-1deg); } }
@keyframes mgGlow { 0%, 100% { filter: drop-shadow(0 12px 22px rgba(0,0,0,.45)); } 50% { filter: drop-shadow(0 12px 28px rgba(227,166,168,.4)); } }
.t-magnolia body, .t-magnolia { letter-spacing: .01em; }
.t-magnolia .page { background-image: radial-gradient(circle at 14% 12%, rgba(227,166,168,.09) 0 1px, transparent 1.5px), radial-gradient(circle at 86% 78%, rgba(215,181,109,.07) 0 1px, transparent 1.5px); background-size: 34px 34px, 46px 46px; }
.t-magnolia .cover, .t-magnolia .hero, .t-magnolia .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none), radial-gradient(ellipse at 50% 12%, rgba(72,68,122,.45), transparent 46%), linear-gradient(145deg, #192542, #090e1e); }
.t-magnolia .cover::before { inset: 17px; border: 1px solid rgba(227,166,168,.52); border-radius: 25px; box-shadow: inset 0 0 0 7px rgba(227,166,168,.035); }
.t-magnolia .cover::after { inset: 29px; border: 1px solid rgba(215,181,109,.28); border-radius: 18px; }
.t-magnolia .cover__inner { gap: 1.1rem; }
.t-magnolia .cover .kicker, .t-magnolia .hero .kicker { letter-spacing: .4em; color: var(--accent); }
.t-magnolia .cover .names, .t-magnolia .hero .names, .t-magnolia .aside .names { font-family: var(--serif-e); font-style: italic; font-weight: 400; letter-spacing: -.055em; color: var(--hero-ink); text-shadow: 0 3px 20px rgba(0,0,0,.42); }
.t-magnolia .cover .names { font-size: clamp(3.4rem, 14vw, 5.45rem); }
.t-magnolia .names i { font-family: var(--serif-e); color: var(--accent); }
.t-magnolia .cover__date, .t-magnolia .hero__date, .t-magnolia .aside__date { font: 500 1rem var(--serif-e); letter-spacing: .15em; color: var(--accent); }
.t-magnolia .cover__to strong { font: 500 1.5rem var(--serif-e); }
.t-magnolia .tm-frame { z-index: 1; }
.t-magnolia .tm-corner { width: clamp(92px, 22vw, 136px); opacity: .97; }
.t-magnolia .tm-house { filter: drop-shadow(0 12px 22px rgba(0,0,0,.45)); }
.t-magnolia .cover .tm-house { width: min(250px, 65vw); animation: mgRise 1.3s ease both, mgFloat 8s ease-in-out 1.3s infinite; }
.t-magnolia .hero .tm-house { width: min(270px, 69vw); animation: mgGlow 5s ease-in-out infinite; }
.t-magnolia .tm-house--sm { width: 175px; }
.t-magnolia .tm-divider { width: 230px; margin-bottom: 1.1rem; }
.t-magnolia .am-garland { height: clamp(58px, 17vw, 94px); background-size: auto 100%; }
.t-magnolia .am-fall i { filter: drop-shadow(0 0 6px rgba(227,166,168,.58)); }
.t-magnolia .sec { padding-block: 4.9rem; }
.t-magnolia .sec--tint { background: rgba(24,34,61,.78); }
.t-magnolia .sec__title { font: 500 2.4rem/1.06 var(--serif-e); letter-spacing: -.03em; color: var(--ink); }
.t-magnolia .sec__title::after { content: '✦'; margin-top: .45rem; font: 1.05rem var(--serif-e); color: var(--accent-2); }
.t-magnolia .lead-txt, .t-magnolia .person__parents, .t-magnolia .event__addr { color: var(--muted); }
.t-magnolia .quote { font: italic 400 1.25rem/1.75 var(--serif-e); }
.t-magnolia .ornament { font-size: 0; }
.t-magnolia .ornament::before { content: '✦'; font: 1.9rem/1 var(--serif-e); color: var(--accent-2); }
.t-magnolia .event, .t-magnolia .gift, .t-magnolia .rsvp, .t-magnolia .wish, .t-magnolia .qr-card, .t-magnolia .lstory__card { border-radius: 18px; background: rgba(32,45,74,.9); border-color: var(--line); box-shadow: 0 24px 44px -28px rgba(0,0,0,.75); }
.t-magnolia .event::before { inset: 7px; border: 1px solid rgba(215,181,109,.22); border-radius: 12px; }
.t-magnolia .event h3, .t-magnolia .lstory__title { font-family: var(--serif-e); font-weight: 500; color: var(--accent); }
.t-magnolia .pframe::before { border-color: var(--accent); border-radius: 999px 999px 22px 22px; }
.t-magnolia .pframe::after { background: var(--accent-2); box-shadow: 0 0 0 4px var(--bg); }
.t-magnolia .pframe__arch { border-radius: 999px 999px 16px 16px; background: var(--bg-2); box-shadow: 0 22px 44px -26px rgba(0,0,0,.7), inset 0 0 0 1px var(--line); }
.t-magnolia .pframe__init { font-family: var(--serif-e); font-style: italic; color: var(--accent); background: radial-gradient(circle at 50% 35%, #354466, var(--bg-2)); }
.t-magnolia .countdown div { border-radius: 15px; background: rgba(32,45,74,.9); border-color: var(--line); }
.t-magnolia .countdown b { font-family: var(--serif-e); color: var(--accent); }
.t-magnolia .ibtn { border-radius: 9px; border-color: var(--accent); }
.t-magnolia .ibtn--solid { background: var(--accent); }
.t-magnolia .music { border-radius: 50%; background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.t-magnolia .reveal .event, .t-magnolia .reveal .person, .t-magnolia .reveal .gift { opacity: 0; transform: translateY(18px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.t-magnolia .reveal.is-visible .event, .t-magnolia .reveal.is-visible .person, .t-magnolia .reveal.is-visible .gift { opacity: 1; transform: none; }
.t-magnolia .reveal.is-visible .event:nth-child(2), .t-magnolia .reveal.is-visible .person:nth-of-type(2), .t-magnolia .reveal.is-visible .gift:nth-child(2) { transition-delay: .16s; }
.t-magnolia .ifoot { border-top-color: var(--line); }
@media (min-width: 960px) {
    .t-magnolia .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none), radial-gradient(ellipse at 50% 12%, rgba(72,68,122,.45), transparent 46%), linear-gradient(145deg, #192542, #090e1e); }
    .t-magnolia .aside::after { content: '✦'; position: absolute; right: 12%; bottom: 10%; font: 3.1rem var(--serif-e); color: rgba(227,166,168,.24); animation: mgGlow 5s ease-in-out infinite; }
}
@media (prefers-reduced-motion: reduce) {
    .t-magnolia .tm-house, .t-magnolia .aside::after { animation: none; }
    .t-magnolia .reveal .event, .t-magnolia .reveal .person, .t-magnolia .reveal .gift { opacity: 1; transform: none; }
}
