/* ==========================================================
   DInvite — Tema Floral "Nocturne Bloom"
   Plum malam, lavender, dan bunga tembaga untuk nuansa dramatis.
   ========================================================== */
.t-nocturne {
    --bg: #1f182b; --bg-2: #2b2039; --card: #332642; --ink: #f4e9ed; --muted: #c7b5c0;
    --accent: #d39aa9; --accent-2: #e8b9c2; --on-accent: #281d31; --line: rgba(211,154,169,.28);
    --hero-rgb: 31,24,43; --tint-a: .74; --hero-ink: #f4e9ed;
    --serif-e: 'Playfair Display', Georgia, serif;
    color-scheme: dark;
}
.t-nocturne body, .t-nocturne { letter-spacing: .01em; }
.t-nocturne .page { background-image: radial-gradient(circle at 18% 12%, rgba(211,154,169,.08) 0 1px, transparent 1.5px), radial-gradient(circle at 82% 80%, rgba(232,185,194,.06) 0 1px, transparent 1.5px); background-size: 32px 32px, 48px 48px; }
.t-nocturne .cover, .t-nocturne .hero, .t-nocturne .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none), radial-gradient(ellipse at 50% 18%, rgba(128,75,118,.42), transparent 45%), linear-gradient(145deg, #261b35, #17121f); }
.t-nocturne .cover::before { inset: 17px; border: 1px solid rgba(211,154,169,.5); border-radius: 22px; box-shadow: inset 0 0 0 7px rgba(211,154,169,.035); }
.t-nocturne .cover::after { inset: 29px; border: 1px solid rgba(232,185,194,.2); border-radius: 16px; }
.t-nocturne .cover__inner { gap: 1.12rem; }
.t-nocturne .cover .kicker, .t-nocturne .hero .kicker { letter-spacing: .4em; color: var(--accent); }
.t-nocturne .cover .names, .t-nocturne .hero .names, .t-nocturne .aside .names { font-family: var(--serif-e); font-style: italic; font-weight: 400; letter-spacing: -.045em; color: var(--hero-ink); text-shadow: 0 3px 18px rgba(0,0,0,.35); }
.t-nocturne .cover .names { font-size: clamp(3.45rem, 14vw, 5.4rem); }
.t-nocturne .names i { font-family: var(--serif-e); color: var(--accent); }
.t-nocturne .cover__date, .t-nocturne .hero__date, .t-nocturne .aside__date { font: 500 1rem var(--serif-e); letter-spacing: .15em; color: var(--accent); }
.t-nocturne .cover__to strong { font: 500 1.45rem var(--serif-e); }
.t-nocturne .tm-house { filter: drop-shadow(0 16px 22px rgba(0,0,0,.45)); }
.t-nocturne .cover .tm-house { width: min(245px, 64vw); }
.t-nocturne .hero .tm-house { width: min(265px, 68vw); }
.t-nocturne .tm-corner { width: clamp(84px, 20vw, 128px); opacity: .95; }
.t-nocturne .tm-divider { width: 220px; margin-bottom: 1.15rem; }
.t-nocturne .sec { padding-block: 4.8rem; }
.t-nocturne .sec--tint { background: rgba(43,32,57,.72); }
.t-nocturne .sec__title { font: 500 2.35rem/1.08 var(--serif-e); letter-spacing: -.025em; color: var(--ink); }
.t-nocturne .sec__title::after { content: '✦'; margin-top: .5rem; font: 1rem var(--serif-e); color: var(--accent); }
.t-nocturne .lead-txt, .t-nocturne .person__parents, .t-nocturne .event__addr { color: var(--muted); }
.t-nocturne .quote { font: italic 400 1.22rem/1.75 var(--serif-e); }
.t-nocturne .ornament { font-size: 0; }
.t-nocturne .ornament::before { content: '✦'; font: 1.9rem/1 var(--serif-e); color: var(--accent); }
.t-nocturne .event, .t-nocturne .lstory__card, .t-nocturne .gift-card, .t-nocturne .wish { border-radius: 18px; background: rgba(51,38,66,.88); border-color: var(--line); box-shadow: 0 24px 42px -28px rgba(0,0,0,.7); }
.t-nocturne .event::before { inset: 7px; border: 1px solid rgba(211,154,169,.2); border-radius: 12px; }
.t-nocturne .event h3, .t-nocturne .lstory__title { font-family: var(--serif-e); font-weight: 500; color: var(--accent); }
.t-nocturne .pframe::before { border-color: var(--accent); border-radius: 999px 999px 22px 22px; }
.t-nocturne .pframe::after { background: var(--accent); box-shadow: 0 0 0 4px var(--bg); }
.t-nocturne .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-nocturne .pframe__init { font-family: var(--serif-e); font-style: italic; color: var(--accent); background: radial-gradient(circle at 50% 35%, #46334e, var(--bg-2)); }
.t-nocturne .countdown div { border-radius: 15px; background: rgba(51,38,66,.88); border-color: var(--line); }
.t-nocturne .countdown b { font-family: var(--serif-e); color: var(--accent); }
.t-nocturne .ibtn { border-radius: 9px; border-color: var(--accent); }
.t-nocturne .ibtn--solid { background: var(--accent); }
.t-nocturne .music { border-radius: 50%; background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.t-nocturne .ifoot { border-top-color: var(--line); }
@media (min-width: 960px) {
    .t-nocturne .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none), radial-gradient(ellipse at 50% 18%, rgba(128,75,118,.42), transparent 45%), linear-gradient(145deg, #261b35, #17121f); }
    .t-nocturne .aside::after { content: '✦'; position: absolute; right: 12%; bottom: 10%; font: 3rem var(--serif-e); color: rgba(211,154,169,.25); }
}
@media (prefers-reduced-motion: reduce) {
    .t-nocturne .tm-house { animation: none; }
}
