/* ==========================================================
   DInvite — Tema "Jawa Keraton" (adat beranimasi)
   Hijau tua & emas keraton. Pintu gebyok berukir yang terbuka, gunungan
   bercahaya yang bergoyang, ronce melati, dan melati berguguran.
   Gerak dimatikan otomatis bila perangkat meminta gerak minimal.
   ========================================================== */
.t-keraton {
    --bg: #0f261c; --bg-2: #133024; --card: #0c2018; --ink: #f6ead0; --muted: #cdbb92;
    --accent: #d9b45f; --accent-2: #f3d68d; --on-accent: #10291f; --line: rgba(217,180,95,.36);
    --hero-rgb: 15,38,28; --tint-a: .84; --hero-ink: #fbf1d8;
    --pattern: url(../../img/themes/keraton/pola.svg) 0 0 / 48px 48px;
    --am-seam: linear-gradient(#f3d68d, #b98d36, #f3d68d);
    color-scheme: dark;
}
@keyframes krRise { from { opacity: 0; transform: translateY(26px) scale(.97); } }
@keyframes krShine { 0%, 60% { transform: translateX(-120%) skewX(-18deg); } 100% { transform: translateX(220%) skewX(-18deg); } }
@keyframes krGlow { 0%, 100% { text-shadow: 0 0 14px rgba(243,214,141,.25), 0 2px 10px rgba(0,0,0,.45); } 50% { text-shadow: 0 0 26px rgba(243,214,141,.6), 0 2px 10px rgba(0,0,0,.45); } }
@keyframes krUnfold { from { opacity: 0; transform: scaleX(.2); } }
@keyframes krFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

/* Huruf: nama bersambung keraton, judul tegak klasik */
.t-keraton .names { font-family: 'Pinyon Script', 'Great Vibes', cursive; font-weight: 400; color: var(--accent-2); animation: krGlow 4.5s ease-in-out infinite; }
.t-keraton .names i { font-family: 'Cinzel', serif; font-style: normal; font-size: .42em; color: var(--accent); vertical-align: middle; }
.t-keraton .cover .names { font-size: clamp(3.1rem, 13vw, 4.7rem); line-height: 1.2; }
.t-keraton .names--md { color: var(--accent-2); animation: none; }
.t-keraton .kicker { font-family: 'Cinzel', serif; font-weight: 600; letter-spacing: .34em; color: var(--accent); }
.t-keraton .sec__title { font-family: 'Cinzel', serif; font-weight: 600; font-size: 1.42rem; letter-spacing: .07em; color: var(--accent-2); }
.t-keraton .sec__title::after { content: ''; display: block; width: 220px; height: 36px; margin: .6rem auto 0; background: url(../../img/themes/keraton/pembatas.svg) center / contain no-repeat; }
.t-keraton .reveal .sec__title::after { transform: scaleX(.2); opacity: 0; transition: transform 1.3s cubic-bezier(.2,.7,.2,1) .25s, opacity 1s ease .25s; }
.t-keraton .reveal.is-visible .sec__title::after { transform: none; opacity: 1; }
.t-keraton .cover__date, .t-keraton .hero__date, .t-keraton .aside__date, .t-keraton .thanks, .t-keraton .countdown__date { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 600; letter-spacing: .02em; }
.t-keraton .cover__to strong { font-family: 'Cormorant Garamond', serif; font-weight: 600; color: var(--accent-2); }
.t-keraton .quote { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.22rem; line-height: 1.75; }

/* Sampul: pintu gebyok, gunungan, sudut berukir */
.t-keraton .am-panel::before { background: url(../../img/themes/keraton/pintu.svg) right center / auto 100% repeat-x, #10291f; }
.t-keraton .cover::before { inset: 20px; border: 1.5px solid var(--line); border-radius: 0; z-index: 1; }
.t-keraton .cover::after { inset: 27px; border: 1px solid rgba(217,180,95,.22); border-radius: 0; z-index: 1; opacity: 1; }
.t-keraton .cover__inner { padding: 1.6rem 1.2rem; border-radius: 22px; background: radial-gradient(ellipse at center, rgba(10,28,20,.86) 0%, rgba(10,28,20,.72) 55%, rgba(10,28,20,0) 78%); }
.t-keraton .tm-band { display: none; }
.t-keraton .tm-corner { width: clamp(64px, 17vw, 104px); filter: drop-shadow(0 2px 6px rgba(0,0,0,.4)); }
.t-keraton .tm-frame { z-index: 1; }
.t-keraton .tm-house { filter: drop-shadow(0 18px 28px rgba(0,0,0,.55)); }
.t-keraton .cover .tm-house { width: min(170px, 44vw); animation: krRise 1.5s ease both, krFloat 6s ease-in-out 1.5s infinite; }
.t-keraton .hero .tm-house { width: min(180px, 48vw); }
.t-keraton .aside .tm-house { width: 220px; }
.t-keraton .tm-house--sm { width: 120px; }
.t-keraton .cover .kicker { animation: krRise 1.1s ease .35s both; }
.t-keraton .cover .names { animation: krRise 1.2s ease .55s both, krGlow 4.5s ease-in-out 2s infinite; }
.t-keraton .cover__date { animation: krRise 1.1s ease .8s both; }
.t-keraton .cover__to { animation: krRise 1.1s ease 1s both; }
.t-keraton .cover .ibtn { animation: krRise 1.1s ease 1.2s both; }

/* Bagian pembuka & panel kiri */
.t-keraton .hero, .t-keraton .aside {
    background: radial-gradient(ellipse at 50% 38%, rgba(243,214,141,calc(var(--tint-a) * .16)), transparent 60%),
        linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none) center / cover no-repeat, var(--bg);
    overflow: hidden;
}

/* Kartu: hijau keraton bergaris emas ganda, kilau emas melintas */
.t-keraton .event, .t-keraton .gift, .t-keraton .rsvp, .t-keraton .wish, .t-keraton .qr-card, .t-keraton .lstory__card {
    border-radius: 4px; border: 1px solid var(--line); background: var(--card);
    box-shadow: inset 0 0 0 4px var(--card), inset 0 0 0 5px rgba(217,180,95,.25), 0 18px 34px -20px rgba(0,0,0,.8);
}
.t-keraton .event { position: relative; overflow: hidden; }
.t-keraton .event::before { inset: 9px; border: 1px solid rgba(217,180,95,.18); border-radius: 2px; }
.t-keraton .event::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(243,214,141,.14), transparent); animation: krShine 7s ease-in-out infinite; pointer-events: none; }
.t-keraton .event h3 { font-family: 'Cinzel', serif; font-weight: 600; font-size: 1.35rem; letter-spacing: .06em; color: var(--accent-2); }
.t-keraton .reveal .event, .t-keraton .reveal .gift, .t-keraton .reveal .person { opacity: 0; transform: translateY(24px); transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.t-keraton .reveal.is-visible .event, .t-keraton .reveal.is-visible .gift, .t-keraton .reveal.is-visible .person { opacity: 1; transform: none; }
.t-keraton .reveal.is-visible .event:nth-child(2), .t-keraton .reveal.is-visible .gift:nth-child(2), .t-keraton .reveal.is-visible .person:nth-of-type(2) { transition-delay: .25s; }
.t-keraton .reveal.is-visible .event:nth-child(3) { transition-delay: .45s; }
.t-keraton .countdown div { border-radius: 4px; background: #0a1c14; border-color: var(--line); box-shadow: inset 0 -3px 0 rgba(217,180,95,.5); }
.t-keraton .countdown b { font-family: 'Cinzel', serif; color: var(--accent-2); }
.t-keraton .divider { background: var(--accent); }

/* Tombol emas dengan kilau melintas */
.t-keraton .ibtn { border-radius: 4px; border-width: 1.5px; }
.t-keraton .ibtn--solid { position: relative; overflow: hidden; background: linear-gradient(180deg, #f3d68d, #c4993f); color: #10291f; border-color: #f3d68d; box-shadow: 0 10px 26px -12px rgba(217,180,95,.85); }
.t-keraton .ibtn--solid::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 45%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent); animation: krShine 4.5s ease-in-out infinite 1.5s; pointer-events: none; }
.t-keraton .ibtn--solid:hover { background: linear-gradient(180deg, #fbe4a6, #d6ab4f); color: #10291f; }

/* The Couple, love story, galeri */
.t-keraton .pframe::before { border-color: var(--accent); border-width: 1.5px; }
.t-keraton .pframe__arch { box-shadow: 0 24px 46px -26px rgba(0,0,0,.9), inset 0 0 0 1px var(--line); }
.t-keraton .lstory__dot { box-shadow: 0 0 0 4px var(--bg), 0 0 14px 2px rgba(243,214,141,.55); }
.t-keraton .lstory__title { font-family: 'Cinzel', serif; font-size: 1.15rem; letter-spacing: .04em; color: var(--accent-2); }
.t-keraton .gslider, .t-keraton .gallery__item { border-radius: 4px; box-shadow: 0 0 0 1px var(--line); }
.t-keraton .sec--tint { background-color: var(--bg-2); background-image: var(--pattern); }
.t-keraton .amp { font-family: 'Pinyon Script', cursive; color: var(--accent); }
.t-keraton .music { border-radius: 4px; }
.t-keraton .ifoot { border-top: 1px solid var(--line); }

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