/* ==========================================================
   DInvite — Tema "Polisi Kehormatan" (koleksi Profesi)
   Biru dinas & emas. Pembuka: bagian depan seragam berkancing yang
   terbuka ke samping, lencana bintang berkilau, lorong pedang pora,
   dan bintang emas berjatuhan. Tanpa lambang resmi instansi.
   Gerak dimatikan otomatis bila perangkat meminta gerak minimal.
   ========================================================== */
.t-polisi {
    --bg: #0c1a36; --bg-2: #10224a; --card: #0b1a3a; --ink: #f2ecdc; --muted: #b9c0d4;
    --accent: #d9b45c; --accent-2: #f1d78f; --on-accent: #0c1a36; --line: rgba(217,180,92,.34);
    --hero-rgb: 12,26,54; --tint-a: .84; --hero-ink: #fbf3dc;
    --pattern: url(../../img/themes/polisi/pola.svg) 0 0 / 56px 56px;
    color-scheme: dark;
}
@keyframes plRise { from { opacity: 0; transform: translateY(26px) scale(.97); } }
@keyframes plShine { 0%, 60% { transform: translateX(-120%) skewX(-18deg); } 100% { transform: translateX(220%) skewX(-18deg); } }
@keyframes plGlow { 0%, 100% { text-shadow: 0 0 12px rgba(241,215,143,.22), 0 2px 10px rgba(0,0,0,.5); } 50% { text-shadow: 0 0 24px rgba(241,215,143,.55), 0 2px 10px rgba(0,0,0,.5); } }
@keyframes plFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes plSalute { from { opacity: 0; transform: scale(.6) translateY(20px); } 60% { opacity: 1; transform: scale(1.04); } }

/* Huruf: nama bersambung emas, judul kapital tegas */
.t-polisi .names { font-family: 'Great Vibes', cursive; font-weight: 400; color: var(--accent-2); animation: plGlow 4.5s ease-in-out infinite; }
.t-polisi .names i { font-family: 'Cinzel', serif; font-style: normal; font-size: .4em; color: var(--accent); vertical-align: middle; }
.t-polisi .cover .names { font-size: clamp(3.1rem, 13vw, 4.6rem); line-height: 1.15; }
.t-polisi .names--md { color: var(--accent-2); animation: none; }
.t-polisi .kicker { font-family: 'Cinzel', serif; font-weight: 700; letter-spacing: .34em; color: var(--accent); }
.t-polisi .sec__title { font-family: 'Cinzel', serif; font-weight: 700; font-size: 1.4rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-2); }
.t-polisi .sec__title::after { content: ''; display: block; width: 220px; height: 36px; margin: .55rem auto 0; background: url(../../img/themes/polisi/pembatas.svg) center / contain no-repeat; }
.t-polisi .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-polisi .reveal.is-visible .sec__title::after { transform: none; opacity: 1; }
.t-polisi .cover__date, .t-polisi .hero__date, .t-polisi .aside__date, .t-polisi .countdown__date { font-family: 'Cinzel', serif; font-style: normal; font-weight: 600; font-size: .95rem; letter-spacing: .14em; text-transform: uppercase; }
.t-polisi .thanks { font-family: 'Cinzel', serif; font-style: normal; letter-spacing: .12em; }
.t-polisi .cover__to strong { font-family: 'Cinzel', serif; font-weight: 600; letter-spacing: .04em; color: var(--accent-2); }
.t-polisi .quote { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.22rem; line-height: 1.75; }

/* Sampul: seragam dinas sebagai pembuka, lencana di tengah */
.t-polisi .am-panel::before { background: url(../../img/themes/polisi/seragam.svg) right center / auto 100% no-repeat, #0c1c3c; }
.t-polisi .am-seam { background: linear-gradient(#f1d78f, #a57b2a, #f1d78f); width: 3px; }
.t-polisi .cover::before { inset: 18px; border: 1.5px solid var(--line); border-radius: 0; z-index: 1; }
.t-polisi .cover::after { inset: 25px; border: 1px solid rgba(217,180,92,.2); border-radius: 0; z-index: 1; opacity: 1; }
.t-polisi .cover__inner { padding: 1.5rem 1.2rem; border-radius: 22px; background: radial-gradient(ellipse at center, rgba(10,22,48,.88) 0%, rgba(10,22,48,.72) 55%, rgba(10,22,48,0) 78%); }
.t-polisi .tm-band { display: none; }
.t-polisi .tm-corner { width: clamp(58px, 16vw, 96px); }
.t-polisi .tm-frame { z-index: 1; }
.t-polisi .cover .tm-house { width: min(150px, 40vw); animation: plSalute 1.4s cubic-bezier(.2,.8,.2,1) both, plFloat 6s ease-in-out 1.4s infinite; filter: drop-shadow(0 16px 26px rgba(0,0,0,.6)); }
.t-polisi .hero .tm-house { width: min(300px, 80vw); filter: drop-shadow(0 12px 22px rgba(0,0,0,.5)); }
.t-polisi .aside .tm-house { width: 340px; }
.t-polisi .tm-house--sm { width: 110px; }
.t-polisi .cover .kicker { animation: plRise 1.1s ease .35s both; }
.t-polisi .cover .names { animation: plRise 1.2s ease .55s both, plGlow 4.5s ease-in-out 2s infinite; }
.t-polisi .cover__date { animation: plRise 1.1s ease .8s both; }
.t-polisi .cover__to { animation: plRise 1.1s ease 1s both; }
.t-polisi .cover .ibtn { animation: plRise 1.1s ease 1.2s both; }

/* Bagian pembuka & panel kiri: biru dengan cahaya emas lembut */
.t-polisi .hero, .t-polisi .aside {
    background: radial-gradient(ellipse at 50% 36%, rgba(241,215,143,calc(var(--tint-a) * .14)), transparent 60%),
        linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none) center / cover no-repeat, var(--bg);
    overflow: hidden;
}

/* Kartu: biru tua bergaris emas ganda, kilau melintas */
.t-polisi .event, .t-polisi .gift, .t-polisi .rsvp, .t-polisi .wish, .t-polisi .qr-card, .t-polisi .lstory__card {
    border-radius: 6px; 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,92,.22), 0 18px 34px -20px rgba(0,0,0,.85);
}
.t-polisi .event { position: relative; overflow: hidden; border-top: 3px solid var(--accent); }
.t-polisi .event::before { inset: 9px; border: 1px solid rgba(217,180,92,.16); border-radius: 3px; }
.t-polisi .event::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(241,215,143,.12), transparent); animation: plShine 7s ease-in-out infinite; pointer-events: none; }
.t-polisi .event h3 { font-family: 'Cinzel', serif; font-weight: 700; font-size: 1.25rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-2); }
.t-polisi .reveal .event, .t-polisi .reveal .gift, .t-polisi .reveal .person { opacity: 0; transform: translateY(24px); transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1); }
.t-polisi .reveal.is-visible .event, .t-polisi .reveal.is-visible .gift, .t-polisi .reveal.is-visible .person { opacity: 1; transform: none; }
.t-polisi .reveal.is-visible .event:nth-child(2), .t-polisi .reveal.is-visible .gift:nth-child(2), .t-polisi .reveal.is-visible .person:nth-of-type(2) { transition-delay: .25s; }
.t-polisi .countdown div { border-radius: 6px; background: #0a1730; border-color: var(--line); box-shadow: inset 0 -3px 0 rgba(217,180,92,.55); }
.t-polisi .countdown b { font-family: 'Cinzel', serif; color: var(--accent-2); }
.t-polisi .divider { background: var(--accent); }

/* Tombol emas dengan kilau */
.t-polisi .ibtn { border-radius: 6px; border-width: 1.5px; letter-spacing: .03em; }
.t-polisi .ibtn--solid { position: relative; overflow: hidden; background: linear-gradient(180deg, #f6e1a2, #c49a3f); color: #0c1a36; border-color: #f1d78f; box-shadow: 0 10px 26px -12px rgba(217,180,92,.85); }
.t-polisi .ibtn--solid::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 45%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent); animation: plShine 4.5s ease-in-out infinite 1.5s; pointer-events: none; }
.t-polisi .ibtn--solid:hover { background: linear-gradient(180deg, #fbe9b8, #d4aa4f); color: #0c1a36; }

/* The Couple, love story, galeri */
.t-polisi .pframe::before { border-color: var(--accent); border-width: 1.5px; }
.t-polisi .pframe::after { box-shadow: 0 0 0 4px var(--bg); }
.t-polisi .pframe__arch { box-shadow: 0 24px 46px -26px rgba(0,0,0,.9), inset 0 0 0 1px var(--line); }
.t-polisi .lstory__dot { box-shadow: 0 0 0 4px var(--bg), 0 0 14px 2px rgba(241,215,143,.55); }
.t-polisi .lstory__title, .t-polisi .tale__title { font-family: 'Cinzel', serif; font-size: 1.12rem; letter-spacing: .05em; color: var(--accent-2); }
.t-polisi .gslider, .t-polisi .gallery__item { border-radius: 6px; box-shadow: 0 0 0 1px var(--line); }
.t-polisi .sec--tint { background-color: var(--bg-2); background-image: var(--pattern); }
.t-polisi .amp { font-family: 'Great Vibes', cursive; color: var(--accent); }
.t-polisi .ifoot { border-top: 1px solid var(--line); }

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