/* ==========================================================
   DInvite — Tema Floral "Rosevale"
   Bingkai mawar blush, pembuka tirai, dan kelopak yang jatuh.
   ========================================================== */
.t-rosevale {
    --bg: #faf2ee; --bg-2: #f1dfdc; --card: #fffaf7; --ink: #513238; --muted: #82666b;
    --accent: #b96d7a; --accent-2: #d5a083; --on-accent: #fffaf7; --line: rgba(185,109,122,.27);
    --hero-rgb: 250,242,238; --tint-a: .78; --hero-ink: #513238;
    --serif-e: 'Bodoni Moda', Georgia, serif;
    --am-panel: linear-gradient(135deg, #f7e4e1, #efd4d1 55%, #f8ece7);
    --am-seam: linear-gradient(#d5a083, #b96d7a, #d5a083);
    color-scheme: light;
}
@keyframes rvRise { from { opacity: 0; transform: translateY(24px) scale(.96); } }
@keyframes rvFloat { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-7px) rotate(1deg); } }
@keyframes rvGlow { 0%, 100% { filter: drop-shadow(0 12px 20px rgba(130,68,78,.16)); } 50% { filter: drop-shadow(0 14px 26px rgba(185,109,122,.38)); } }
@keyframes rvLine { from { transform: scaleX(0); opacity: 0; } }
.t-rosevale body, .t-rosevale { letter-spacing: .008em; }
.t-rosevale .page { background-image: radial-gradient(circle at 15% 15%, rgba(185,109,122,.07) 0 1px, transparent 1.5px), radial-gradient(circle at 84% 80%, rgba(213,160,131,.08) 0 1px, transparent 1.5px); background-size: 30px 30px, 36px 36px; }
.t-rosevale .cover, .t-rosevale .hero, .t-rosevale .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none), radial-gradient(ellipse at 50% 12%, rgba(255,255,255,.84), transparent 48%), linear-gradient(145deg, #fff9f5, var(--bg-2)); }
.t-rosevale .cover::before { inset: 16px; border: 1px solid rgba(185,109,122,.46); border-radius: 30px; }
.t-rosevale .cover::after { inset: 26px; border: 1px solid rgba(213,160,131,.35); border-radius: 23px; }
.t-rosevale .cover__inner { gap: 1.1rem; }
.t-rosevale .cover .kicker, .t-rosevale .hero .kicker { letter-spacing: .4em; color: var(--accent); }
.t-rosevale .cover .names, .t-rosevale .hero .names, .t-rosevale .aside .names { font-family: var(--serif-e); font-style: italic; font-weight: 400; letter-spacing: -.06em; color: var(--hero-ink); }
.t-rosevale .cover .names { font-size: clamp(3.35rem, 14vw, 5.5rem); }
.t-rosevale .names i { font-family: var(--serif-e); color: var(--accent); }
.t-rosevale .cover__date, .t-rosevale .hero__date, .t-rosevale .aside__date { font: 500 1rem var(--serif-e); letter-spacing: .16em; color: var(--accent); }
.t-rosevale .cover__to strong { font: 500 1.5rem var(--serif-e); }
.t-rosevale .tm-frame { z-index: 1; }
.t-rosevale .tm-corner { width: clamp(92px, 22vw, 135px); opacity: .94; }
.t-rosevale .tm-house { filter: drop-shadow(0 12px 20px rgba(130,68,78,.16)); }
.t-rosevale .cover .tm-house { width: min(245px, 64vw); animation: rvRise 1.25s ease both, rvFloat 7s ease-in-out 1.25s infinite; }
.t-rosevale .hero .tm-house { width: min(270px, 68vw); animation: rvFloat 7s ease-in-out infinite; }
.t-rosevale .tm-house--sm { width: 170px; }
.t-rosevale .tm-divider { width: 225px; margin-bottom: 1.1rem; }
.t-rosevale .am-garland { height: clamp(58px, 17vw, 92px); background-size: auto 100%; }
.t-rosevale .am-fall i { filter: drop-shadow(0 2px 5px rgba(185,109,122,.32)); }
.t-rosevale .sec { padding-block: 4.8rem; }
.t-rosevale .sec__title { font: 500 2.35rem/1.08 var(--serif-e); letter-spacing: -.03em; color: var(--ink); }
.t-rosevale .sec__title::after { content: '❦'; margin-top: .45rem; font: 1.3rem var(--serif-e); color: var(--accent); }
.t-rosevale .lead-txt, .t-rosevale .person__parents, .t-rosevale .event__addr { color: var(--muted); }
.t-rosevale .quote { font: italic 400 1.27rem/1.72 var(--serif-e); }
.t-rosevale .ornament { font-size: 0; }
.t-rosevale .ornament::before { content: '❧'; font: 2.5rem/1 var(--serif-e); color: var(--accent); }
.t-rosevale .event, .t-rosevale .gift, .t-rosevale .rsvp, .t-rosevale .wish, .t-rosevale .qr-card, .t-rosevale .lstory__card { border-radius: 20px; background: rgba(255,250,247,.86); border-color: var(--line); box-shadow: 0 22px 42px -32px rgba(81,50,56,.58); }
.t-rosevale .event::before { inset: 7px; border: 1px solid rgba(213,160,131,.25); border-radius: 14px; }
.t-rosevale .event h3, .t-rosevale .lstory__title { font-family: var(--serif-e); font-weight: 500; color: var(--accent); }
.t-rosevale .pframe::before { border-color: var(--accent); border-radius: 999px 999px 24px 24px; }
.t-rosevale .pframe::after { background: var(--accent-2); }
.t-rosevale .pframe__arch { border-radius: 999px 999px 18px 18px; background: var(--bg-2); }
.t-rosevale .pframe__init { font-family: var(--serif-e); font-style: italic; color: var(--accent); background: radial-gradient(circle at 50% 35%, #fffaf7, var(--bg-2)); }
.t-rosevale .countdown div { border-radius: 16px; background: rgba(255,250,247,.9); border-color: var(--line); }
.t-rosevale .countdown b { font-family: var(--serif-e); color: var(--accent); }
.t-rosevale .ibtn { border-radius: 10px; border-color: var(--accent); }
.t-rosevale .ibtn--solid { background: var(--accent); }
.t-rosevale .music { border-radius: 50%; background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.t-rosevale .reveal .event, .t-rosevale .reveal .person, .t-rosevale .reveal .gift { opacity: 0; transform: translateY(18px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.t-rosevale .reveal.is-visible .event, .t-rosevale .reveal.is-visible .person, .t-rosevale .reveal.is-visible .gift { opacity: 1; transform: none; }
.t-rosevale .reveal.is-visible .event:nth-child(2), .t-rosevale .reveal.is-visible .person:nth-of-type(2), .t-rosevale .reveal.is-visible .gift:nth-child(2) { transition-delay: .16s; }
.t-rosevale .ifoot { border-top-color: var(--line); }
@media (min-width: 960px) {
    .t-rosevale .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none), radial-gradient(ellipse at 50% 12%, rgba(255,255,255,.76), transparent 48%), linear-gradient(145deg, #fff9f5, var(--bg-2)); }
    .t-rosevale .aside::after { content: '✽'; position: absolute; right: 12%; bottom: 10%; font: 3.2rem var(--serif-e); color: rgba(185,109,122,.22); animation: rvGlow 4s ease-in-out infinite; }
}
@media (prefers-reduced-motion: reduce) {
    .t-rosevale .tm-house, .t-rosevale .aside::after { animation: none; }
    .t-rosevale .reveal .event, .t-rosevale .reveal .person, .t-rosevale .reveal .gift { opacity: 1; transform: none; }
}
