/* ==========================================================
   DInvite — Tema "Kebun Binatang" (koleksi Anak)
   Krem hangat, hijau daun, terakota & mustard. Pembuka: tirai daun
   tropis tersibak; jerapah, gajah & singa yang lucu, bendera segitiga,
   dan balon yang terbang. Cocok untuk ulang tahun anak & aqiqah.
   Gerak dimatikan otomatis bila perangkat meminta gerak minimal.
   ========================================================== */
.t-safari {
    --bg: #fbf5ea; --bg-2: #f2ead9; --card: #fffdf7; --ink: #4a3b2c; --muted: #7d6c58;
    --accent: #d98c5f; --accent-2: #5f9468; --on-accent: #fffdf7; --line: rgba(217,140,95,.28);
    --hero-rgb: 251,245,234; --tint-a: .86; --hero-ink: #4a3b2c;
    --pattern: url(../../img/themes/safari/pola.svg) 0 0 / 64px 64px;
    --am-seam: #e8b35f;
    color-scheme: light;
}
@keyframes sfPop { 0% { opacity: 0; transform: translateY(30px) scale(.85); } 70% { opacity: 1; transform: translateY(-4px) scale(1.03); } 100% { transform: none; } }
@keyframes sfWiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } }
@keyframes sfBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

.t-safari .names { font-family: 'Fredoka', 'Plus Jakarta Sans', sans-serif; font-weight: 600; letter-spacing: -.01em; color: var(--ink); }
.t-safari .names i { font-family: 'Fredoka', sans-serif; font-style: normal; font-weight: 500; font-size: .5em; color: var(--accent); vertical-align: middle; }
.t-safari .cover .names { font-size: clamp(2.6rem, 11vw, 3.8rem); line-height: 1.1; }
.t-safari .names--lg { font-size: clamp(2.6rem, 11vw, 3.4rem); line-height: 1.1; }
.t-safari .names--xl { font-size: clamp(3rem, 5vw, 4.2rem); line-height: 1.1; }
.t-safari .names--md { font-size: 1.9rem; color: var(--accent-2); }
.t-safari .kicker { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .86rem; letter-spacing: .22em; color: var(--accent-2); }
.t-safari .sec__title { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 1.85rem; color: var(--ink); }
.t-safari .sec__title::after { content: ''; display: block; width: 220px; height: 36px; margin: .3rem auto 0; background: url(../../img/themes/safari/pembatas.svg) center / contain no-repeat; }
.t-safari .cover__date, .t-safari .hero__date, .t-safari .aside__date, .t-safari .countdown__date, .t-safari .thanks { font-family: 'Fredoka', sans-serif; font-style: normal; font-weight: 500; color: var(--accent); }
.t-safari .cover__to strong { font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--ink); }
.t-safari .quote { font-family: 'Fredoka', sans-serif; font-style: normal; font-size: 1.05rem; line-height: 1.75; color: var(--ink); }

.t-safari .am-panel::before { background: url(../../img/themes/safari/dedaunan.svg) right center / auto 100% no-repeat, #d6e6cb; }
.t-safari .cover, .t-safari .page { background-color: var(--bg); background-image: var(--pattern); }
.t-safari .cover::before { inset: 16px; border: 2px dashed rgba(95,148,104,.35); border-radius: 26px; z-index: 1; }
.t-safari .cover::after { display: none; }
.t-safari .cover__inner { width: min(340px, calc(100vw - 56px)); gap: .7rem; padding: 1.3rem 1.1rem 1.5rem; border-radius: 30px; background: #fffaf0;
    border: 2px dashed rgba(217,140,95,.55); box-shadow: 0 0 0 7px #fffaf0, 0 22px 44px -18px rgba(60,90,50,.55); }
.t-safari .cover__to { margin: .5rem 0 .4rem; }
@media (min-width: 960px) { .t-safari .cover__inner { width: 380px; } }
@media (max-height: 700px) { .t-safari .cover .tm-house { width: 200px; } .t-safari .cover__inner { gap: .45rem; } }
.t-safari .tm-band { display: none; }
.t-safari .tm-corner { width: clamp(70px, 20vw, 112px); }
.t-safari .tm-frame { z-index: 1; }
.t-safari .tm-house { filter: drop-shadow(0 10px 18px rgba(74,59,44,.15)); }
.t-safari .cover .tm-house { width: min(260px, 70vw); animation: sfPop 1.1s cubic-bezier(.2,.8,.2,1) both; }
.t-safari .hero .tm-house { width: min(250px, 66vw); }
.t-safari .aside .tm-house { width: 300px; }
.t-safari .tm-house--sm { width: 180px; animation: sfWiggle 4s ease-in-out infinite; }
.t-safari .hero, .t-safari .aside { background: radial-gradient(ellipse at 50% 40%, rgba(232,179,95,.18), transparent 62%), linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none) center / cover no-repeat, var(--pattern), var(--bg); overflow: hidden; }
.t-safari .am-garland { height: clamp(34px, 10vw, 54px); background-size: auto 100%; }
.t-safari .am-rise i { width: calc(26px * var(--s)); height: calc(38px * var(--s)); }
.t-safari .am-rise i:nth-child(3n+2) { filter: hue-rotate(40deg) saturate(1.1); }
.t-safari .am-rise i:nth-child(3n) { filter: hue-rotate(150deg) saturate(.8); }
.t-safari .cover .kicker { animation: sfPop .9s ease .35s both; }
.t-safari .cover .names { animation: sfPop 1s ease .55s both; }
.t-safari .cover__date { animation: sfPop .9s ease .8s both; }
.t-safari .cover__to { animation: sfPop .9s ease 1s both; }
.t-safari .cover .ibtn { animation: sfPop .9s ease 1.2s both, sfBounce 2.4s ease-in-out 2.4s infinite; }

/* Kartu membulat dengan aksen warna-warni */
.t-safari .event, .t-safari .gift, .t-safari .rsvp, .t-safari .wish, .t-safari .qr-card, .t-safari .lstory__card {
    border-radius: 24px; border: 2px solid var(--line); background: var(--card); box-shadow: 0 12px 0 -6px rgba(217,140,95,.18);
}
.t-safari .event::before { inset: auto 22px -2px 22px; height: 6px; border: 0; border-radius: 6px 6px 0 0; background: linear-gradient(90deg, #e58f6b, #e8b35f, #7fb1aa, #9fbf8f); }
.t-safari .event h3 { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 1.45rem; color: var(--accent); }
.t-safari .reveal .event, .t-safari .reveal .gift, .t-safari .reveal .person { opacity: 0; transform: translateY(26px) scale(.96); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1.2); }
.t-safari .reveal.is-visible .event, .t-safari .reveal.is-visible .gift, .t-safari .reveal.is-visible .person { opacity: 1; transform: none; }
.t-safari .countdown div { border-radius: 18px; background: var(--card); border: 2px solid var(--line); }
.t-safari .countdown div:nth-child(1) { border-color: rgba(229,143,107,.45); }
.t-safari .countdown div:nth-child(2) { border-color: rgba(232,179,95,.5); }
.t-safari .countdown div:nth-child(3) { border-color: rgba(127,177,170,.5); }
.t-safari .countdown div:nth-child(4) { border-color: rgba(159,191,143,.6); }
.t-safari .countdown b { font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--ink); }
.t-safari .divider { background: var(--accent); }
.t-safari .ibtn { border-radius: 999px; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .92rem; border-width: 2px; }
.t-safari .ibtn--solid { background: #d98c5f; border-color: #d98c5f; color: #fffdf7; box-shadow: 0 6px 0 #b9704a; }
.t-safari .ibtn--solid:hover { background: #e39a6d; color: #fffdf7; }
.t-safari .ibtn--solid:active { transform: translateY(3px); box-shadow: 0 3px 0 #b9704a; }
.t-safari .pframe::before { border: 2px dashed var(--accent-2); }
.t-safari .pframe::after { background: var(--accent); }
.t-safari .lstory__dot { background: var(--accent); }
.t-safari .lstory__title, .t-safari .tale__title { font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--ink); }
.t-safari .sec--tint { background-color: var(--bg-2); background-image: var(--pattern); }
.t-safari .amp { font-family: 'Fredoka', sans-serif; font-style: normal; color: var(--accent); }

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