/* ==========================================================
   DInvite — Tema Forest "Rainforest Luxe"
   Hutan tropis lebat, frame pakis, dan kelopak dedaunan.
   ========================================================== */
.t-rainforest {
    --bg: #10251d; --bg-2: #1b3b2d; --card: #234636; --ink: #f6f1dc; --muted: #c2ccb2;
    --accent: #b6c78d; --accent-2: #e2c77a; --on-accent: #10251d; --line: rgba(182,199,141,.3);
    --hero-rgb: 9,35,24; --tint-a: .64; --hero-ink: #f6f1dc;
    --serif-e: 'Cormorant Garamond', Georgia, serif;
    --am-panel: linear-gradient(135deg, #173b2b, #0c2419 55%, #2a5136);
    --am-seam: linear-gradient(#e2c77a, #b6c78d, #e2c77a);
    color-scheme: dark;
}
@keyframes rfRise { from { opacity: 0; transform: translateY(24px) scale(.96); } }
@keyframes rfFloat { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-7px) rotate(1deg); } }
@keyframes rfGlow { 0%, 100% { filter: drop-shadow(0 12px 22px rgba(0,0,0,.45)); } 50% { filter: drop-shadow(0 12px 30px rgba(226,199,122,.35)); } }
.t-rainforest body, .t-rainforest { letter-spacing: .008em; background: linear-gradient(rgba(8,27,18,.72), rgba(8,27,18,.78)), url(../../img/themes/rainforest/background.jpg) center top / cover fixed no-repeat; }
.t-rainforest .page { background: transparent; background-image: none; }
.t-rainforest .cover, .t-rainforest .hero, .t-rainforest .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), url(../../img/themes/rainforest/background.jpg), linear-gradient(145deg, #173b2b, #081b13); background-position: center; background-size: cover; }
.t-rainforest .cover::before { inset: 16px; border: 1px solid rgba(226,199,122,.58); border-radius: 10px; }
.t-rainforest .cover::after { inset: 27px; border: 1px solid rgba(182,199,141,.32); border-radius: 5px; }
.t-rainforest .cover__inner { gap: 1rem; padding: 1.5rem 1.35rem; border: 1px solid rgba(226,199,122,.38); border-radius: 12px; background: rgba(9,35,24,.38); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.t-rainforest .cover .kicker, .t-rainforest .hero .kicker { letter-spacing: .34em; color: var(--accent-2); }
.t-rainforest .cover .names, .t-rainforest .hero .names, .t-rainforest .aside .names { font-family: var(--serif-e); font-style: italic; font-weight: 600; letter-spacing: -.045em; color: var(--hero-ink); text-shadow: 0 2px 14px rgba(0,0,0,.45); }
.t-rainforest .cover .names { font-size: clamp(3.45rem, 14vw, 5.4rem); }
.t-rainforest .names i { font-family: var(--serif-e); color: var(--accent-2); }
.t-rainforest .cover__date, .t-rainforest .hero__date, .t-rainforest .aside__date { font: 600 1.1rem var(--serif-e); letter-spacing: .14em; color: var(--accent); }
.t-rainforest .cover__to strong { font: 600 1.55rem var(--serif-e); }
.t-rainforest .tm-frame { z-index: 1; }
.t-rainforest .tm-corner { width: clamp(102px, 24vw, 150px); opacity: .96; }
.t-rainforest .tm-house { filter: drop-shadow(0 14px 24px rgba(0,0,0,.46)); }
.t-rainforest .cover .tm-house { width: min(235px, 62vw); animation: rfRise 1.3s ease both, rfFloat 8s ease-in-out 1.3s infinite; }
.t-rainforest .hero .tm-house { width: min(260px, 67vw); animation: rfGlow 5s ease-in-out infinite; }
.t-rainforest .tm-house--sm { width: 175px; }
.t-rainforest .tm-divider { width: 235px; margin-bottom: 1.15rem; }
.t-rainforest .am-garland { height: clamp(60px, 18vw, 100px); background-size: auto 100%; }
.t-rainforest .am-fall i { filter: drop-shadow(0 0 5px rgba(226,199,122,.45)); }
.t-rainforest .sec { padding-block: 4.8rem; }
.t-rainforest .sec--tint { background: rgba(27,59,45,.58); }
.t-rainforest .sec__title { font: 600 2.45rem/1.04 var(--serif-e); letter-spacing: -.02em; color: var(--ink); }
.t-rainforest .sec__title::after { content: '❧'; margin-top: .4rem; font: 1.5rem var(--serif-e); color: var(--accent-2); }
.t-rainforest .lead-txt, .t-rainforest .person__parents, .t-rainforest .event__addr { color: var(--muted); }
.t-rainforest .quote { font: italic 500 1.3rem/1.72 var(--serif-e); }
.t-rainforest .ornament { font-size: 0; }
.t-rainforest .ornament::before { content: '❧'; font: 2.4rem/1 var(--serif-e); color: var(--accent-2); }
.t-rainforest .event, .t-rainforest .gift, .t-rainforest .rsvp, .t-rainforest .wish, .t-rainforest .qr-card, .t-rainforest .lstory__card { border-radius: 12px; background: rgba(35,70,54,.9); border-color: var(--line); box-shadow: 0 24px 42px -28px rgba(0,0,0,.7); }
.t-rainforest .event::before { inset: 7px; border: 1px solid rgba(226,199,122,.22); border-radius: 7px; }
.t-rainforest .event h3, .t-rainforest .lstory__title { font-family: var(--serif-e); font-weight: 600; color: var(--accent-2); }
.t-rainforest .pframe::before { border-color: var(--accent); border-radius: 12px; }
.t-rainforest .pframe::after { background: var(--accent-2); box-shadow: 0 0 0 4px var(--bg); }
.t-rainforest .pframe__arch { border-radius: 8px; background: var(--bg-2); }
.t-rainforest .pframe__init { font-family: var(--serif-e); color: var(--accent); background: radial-gradient(circle at 50% 35%, #315e45, var(--bg-2)); }
.t-rainforest .countdown div { border-radius: 9px; background: rgba(35,70,54,.9); border-color: var(--line); }
.t-rainforest .countdown b { font-family: var(--serif-e); color: var(--accent-2); }
.t-rainforest .ibtn { border-radius: 7px; border-color: var(--accent); }
.t-rainforest .ibtn--solid { background: var(--accent); }
.t-rainforest .music { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.t-rainforest .ifoot { border-top-color: var(--line); }
@media (prefers-reduced-motion: reduce) { .t-rainforest .tm-house { animation: none; } }
