/* ==========================================================
   DInvite — Tema "Hutan Senja" (koleksi Alam)
   Krem berkabut, hijau pinus & emas lembut. Pembuka: tirai pakis
   tersibak; lanskap hutan berlapis yang bergeser pelan, kunang-kunang
   naik, lampu gantung berpendar, daun berguguran.
   Gerak dimatikan otomatis bila perangkat meminta gerak minimal.
   ========================================================== */
.t-hutan {
    --bg: #f4efe2; --bg-2: #e9e5d4; --card: #fbf8ef; --ink: #22362a; --muted: #5f6f5f;
    --accent: #4c6e52; --accent-2: #b98c4b; --on-accent: #fbf8ef; --line: rgba(76,110,82,.26);
    --hero-rgb: 244,239,226; --tint-a: .84; --hero-ink: #22362a;
    --pattern: url(../../img/themes/hutan/pola.svg) 0 0 / 70px 70px;
    --am-seam: linear-gradient(#e8cf96, #b98c4b, #e8cf96);
    color-scheme: light;
}
@keyframes htRise { from { opacity: 0; transform: translateY(24px) scale(.97); } }
@keyframes htFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

.t-hutan .names { font-family: 'Allura', 'Great Vibes', cursive; font-weight: 400; color: var(--ink); }
.t-hutan .names i { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: .45em; color: var(--accent-2); vertical-align: middle; }
.t-hutan .cover .names { font-size: clamp(3.1rem, 13vw, 4.7rem); line-height: 1.15; }
.t-hutan .names--md { color: var(--accent); }
.t-hutan .kicker { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: .82rem; letter-spacing: .38em; color: var(--accent-2); }
.t-hutan .sec__title { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 1.6rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.t-hutan .sec__title::after { content: ''; display: block; width: 220px; height: 36px; margin: .45rem auto 0; background: url(../../img/themes/hutan/pembatas.svg) center / contain no-repeat; }
.t-hutan .reveal .sec__title::after { transform: scaleX(.2); opacity: 0; transition: transform 1.2s cubic-bezier(.2,.7,.2,1) .25s, opacity 1s ease .25s; }
.t-hutan .reveal.is-visible .sec__title::after { transform: none; opacity: 1; }
.t-hutan .cover__date, .t-hutan .hero__date, .t-hutan .aside__date, .t-hutan .thanks, .t-hutan .countdown__date { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 600; color: var(--accent); }
.t-hutan .cover__to strong { font-family: 'Cormorant Garamond', serif; font-weight: 600; color: var(--ink); }
.t-hutan .quote { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.22rem; line-height: 1.75; }

/* Sampul & bagian pembuka: lanskap hutan berkabut di bawah */
.t-hutan .am-panel::before { background: url(../../img/themes/hutan/pakis.svg) right center / auto 100% no-repeat, #22382a; }
.t-hutan .cover, .t-hutan .hero, .t-hutan .aside {
    background: url(../../img/themes/hutan/lanskap.svg) center bottom / 100% auto no-repeat,
        linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none) center / cover no-repeat,
        linear-gradient(#f4ead6, #e6dcc4);
}
@media (min-aspect-ratio: 3/4) { .t-hutan .cover, .t-hutan .hero, .t-hutan .aside { background-size: auto 46%, auto, cover, auto; } }
.t-hutan .cover::before { inset: 18px; border: 1px solid rgba(185,140,75,.45); border-radius: 0; z-index: 1; }
.t-hutan .cover::after { display: none; }
.t-hutan .cover__inner { width: min(330px, calc(100vw - 64px)); gap: .75rem; padding: 1.6rem 1.2rem 1.5rem; border-radius: 170px 170px 18px 18px;
    background: linear-gradient(rgba(251,248,239,.97), rgba(240,233,214,.97)); border: 1.5px solid #c9a46a;
    box-shadow: inset 0 0 0 6px rgba(251,248,239,.9), inset 0 0 0 7px rgba(185,140,75,.4), 0 24px 50px -22px rgba(10,30,18,.7); }
.t-hutan .cover__to { margin: .6rem 0 .5rem; }
@media (min-width: 960px) { .t-hutan .cover__inner { width: 380px; } }
@media (max-height: 700px) { .t-hutan .cover .tm-house { width: 100px; } .t-hutan .cover__inner { padding-top: 1.2rem; gap: .5rem; } }
.t-hutan .tm-band { display: none; }
.t-hutan .tm-corner { width: clamp(60px, 17vw, 100px); }
.t-hutan .tm-frame { z-index: 1; }
.t-hutan .tm-house { filter: drop-shadow(0 12px 22px rgba(34,54,42,.25)); }
.t-hutan .cover .tm-house { width: min(130px, 34vw); animation: htRise 1.4s ease both, htFloat 6s ease-in-out 1.4s infinite; }
.t-hutan .hero .tm-house { width: min(120px, 32vw); }
.t-hutan .aside .tm-house { width: 170px; }
.t-hutan .tm-house--sm { width: 110px; }
.t-hutan .hero { place-items: start center; padding-top: 16vh; }
.t-hutan .aside { place-items: start center; padding-top: 14vh; }
.t-hutan .am-garland { height: clamp(40px, 12vw, 66px); background-size: auto 100%; }
.t-hutan .cover .kicker { animation: htRise 1.1s ease .35s both; }
.t-hutan .cover .names { animation: htRise 1.2s ease .55s both; }
.t-hutan .cover__date { animation: htRise 1.1s ease .8s both; }
.t-hutan .cover__to { animation: htRise 1.1s ease 1s both; }
.t-hutan .cover .ibtn { animation: htRise 1.1s ease 1.2s both; }
.t-hutan .am-rise i { width: calc(14px * var(--s)); height: calc(14px * var(--s)); mix-blend-mode: screen; }

/* Kartu krem bergaris pinus */
.t-hutan .event, .t-hutan .gift, .t-hutan .rsvp, .t-hutan .wish, .t-hutan .qr-card, .t-hutan .lstory__card {
    border-radius: 14px; border: 1px solid var(--line); background: var(--card); box-shadow: 0 16px 32px -24px rgba(34,54,42,.4);
}
.t-hutan .event { position: relative; overflow: hidden; padding-bottom: 3.6rem; }
.t-hutan .event::before { inset: auto 0 0 0; height: 46px; border: 0; border-radius: 0; opacity: .55; background: url(../../img/themes/hutan/lanskap.svg) center bottom / 140% auto no-repeat; }
.t-hutan .event h3 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 1.55rem; color: var(--accent); }
.t-hutan .event__btns { z-index: 1; }
.t-hutan .reveal .event, .t-hutan .reveal .gift, .t-hutan .reveal .person { opacity: 0; transform: translateY(22px); transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.t-hutan .reveal.is-visible .event, .t-hutan .reveal.is-visible .gift, .t-hutan .reveal.is-visible .person { opacity: 1; transform: none; }
.t-hutan .reveal.is-visible .event:nth-child(2), .t-hutan .reveal.is-visible .gift:nth-child(2), .t-hutan .reveal.is-visible .person:nth-of-type(2) { transition-delay: .25s; }
.t-hutan .countdown div { border-radius: 12px; background: var(--card); border-color: var(--line); }
.t-hutan .countdown b { font-family: 'Cormorant Garamond', serif; color: var(--accent); }
.t-hutan .divider { background: var(--accent-2); }
.t-hutan .ibtn { border-radius: 999px; }
.t-hutan .ibtn--solid { background: linear-gradient(180deg, #5b7f61, #3f5f46); border-color: #3f5f46; color: #fbf8ef; box-shadow: 0 10px 24px -12px rgba(63,95,70,.7); }
.t-hutan .ibtn--solid:hover { background: linear-gradient(180deg, #67906d, #4c6e52); color: #fbf8ef; }
.t-hutan .pframe::before { border-color: var(--accent); }
.t-hutan .pframe::after { background: var(--accent-2); }
.t-hutan .lstory__dot { background: var(--accent); }
.t-hutan .lstory__title, .t-hutan .tale__title { font-family: 'Cormorant Garamond', serif; color: var(--accent); }
.t-hutan .sec--tint { background-color: var(--bg-2); background-image: var(--pattern); }
.t-hutan .amp { font-family: 'Allura', cursive; color: var(--accent-2); }

@media (prefers-reduced-motion: reduce) {
    .t-hutan .reveal .event, .t-hutan .reveal .gift, .t-hutan .reveal .person { opacity: 1; transform: none; }
    .t-hutan .reveal .sec__title::after { transform: none; opacity: 1; }
}
