/* ==========================================================
   DInvite — Tema "Insinyur Roda Gigi" (Profesi Premium)
   Abu baja & kuningan untuk pasangan insinyur atau teknisi: pelat baja bermotif berlian yang tersibak, roda gigi kuningan dan baja yang saling bertaut dengan hati di tengahnya, dan jembatan gantung yang menghubungkan dua sisi.
   Objek profesi hampir nyata (logam, kayu, kain) dirender sebagai WebP; tanpa lambang resmi instansi.
   Pembuka: panel bertema tersibak ke samping; objek utama miring halus mengikuti jari/kursor
   dengan kilau cahaya (relief.js) dan kilau berjatuhan. Gerak dimatikan bila perangkat meminta gerak minimal.
   ========================================================== */
.t-insinyur {
    --bg: #15181c; --bg-2: #1a1e23; --card: #20252b; --ink: #eef1f4; --muted: #b4bcc6;
    --accent: #e2b458; --accent-2: #f6dc94; --on-accent: #15181c; --line: rgba(226,180,88,.38);
    --hero-rgb: 21,24,28; --tint-a: .8; --hero-ink: #eef1f4;
    --velvet: url(../../img/themes/insinyur/tekstur.webp) 0 0 / 256px 256px;
    --pattern: url(../../img/themes/insinyur/pola.svg) 0 0 / 60px 60px;
    --tapis: url(../../img/themes/insinyur/pita.webp) center / auto 100% repeat-x;
    --am-seam: linear-gradient(#f6dc94, #b5832c, #f6dc94);
    --gold-text: linear-gradient(100deg, #b98a35 0%, #f7e1a0 22%, #d9a647 40%, #fff2c4 50%, #c99635 62%, #f3d68a 80%, #b4842f 100%);
    color-scheme: dark;
}
@keyframes isReveal { from { opacity: 0; filter: blur(10px) drop-shadow(0 2px 8px rgba(0,3,10,.55)); letter-spacing: .12em; transform: translateY(10px); } to { opacity: 1; filter: blur(0) drop-shadow(0 2px 8px rgba(0,3,10,.55)); transform: none; } }
@keyframes isRise { from { opacity: 0; transform: translateY(26px) scale(.97); } }
@keyframes isSheen { from { background-position: 0% 50%; } to { background-position: 200% 50%; } }
@keyframes isSpin { to { transform: rotate(1turn); } }
@keyframes isGlow { 0%, 100% { opacity: .55; transform: scale(.96); } 50% { opacity: .9; transform: scale(1.04); } }
@keyframes isUnroll { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes isShine { 0%, 62% { transform: translateX(-120%) skewX(-18deg); } 100% { transform: translateX(240%) skewX(-18deg); } }

/* Huruf: nama bersambung berwarna emas berkilau, judul Cinzel Decorative */
.t-insinyur .names { font-family: 'Great Vibes', cursive; font-weight: 400; color: var(--accent-2);
    background: var(--gold-text); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    animation: isSheen 7s linear infinite; text-shadow: none; filter: drop-shadow(0 2px 8px rgba(0,3,10,.55)); padding-inline: .12em; }
.t-insinyur .names i { font-family: 'Marcellus', serif; font-style: normal; font-size: .4em; vertical-align: middle; }
.t-insinyur .cover .names { font-size: clamp(3.1rem, 13vw, 4.7rem); line-height: 1.22; }
.t-insinyur .names--md { animation: none; }
.t-insinyur .kicker { font-family: 'Marcellus', serif; font-weight: 700; font-size: .78rem; letter-spacing: .3em; color: var(--accent); }
.t-insinyur .sec__title { font-family: 'Marcellus', serif; font-weight: 700; font-size: 1.36rem; letter-spacing: .06em; color: var(--accent-2); }
.t-insinyur .sec__title::after { content: ''; display: block; width: 230px; height: 35px; margin: .55rem auto 0; background: url(../../img/themes/insinyur/pembatas.webp) center / contain no-repeat; }
.t-insinyur .reveal .sec__title::after { clip-path: inset(0 50% 0 50%); transition: clip-path 1.4s cubic-bezier(.2,.7,.2,1) .2s; }
.t-insinyur .reveal.is-visible .sec__title::after { clip-path: inset(0 0 0 0); }
.t-insinyur .cover__date, .t-insinyur .hero__date, .t-insinyur .aside__date, .t-insinyur .thanks, .t-insinyur .countdown__date { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 600; color: var(--accent-2); }
.t-insinyur .cover__to strong { font-family: 'Cormorant Garamond', serif; font-weight: 600; color: var(--accent-2); }
.t-insinyur .quote { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.22rem; line-height: 1.75; }
.t-insinyur .tm-divider { width: 230px; }

/* Sampul: beludru marun, pita tapis atas-bawah, sorot cahaya di belakang siger */
.t-insinyur .am-panel::before { background: url(../../img/themes/insinyur/kain.webp) right top / cover no-repeat, #4a5058;
    box-shadow: inset -18px 0 26px -14px rgba(0,0,0,.6); }
.t-insinyur .cover, .t-insinyur .hero, .t-insinyur .aside {
    background: radial-gradient(ellipse 70% 46% at 50% 36%, rgba(242,196,106,calc(var(--tint-a) * .2)), transparent 70%),
        linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, var(--tp-latar, none)) center / cover no-repeat, var(--velvet), var(--bg);
    overflow: hidden;
}
.t-insinyur .cover::before, .t-insinyur .cover::after { inset: 0 0 auto; height: 30px; border: 0; border-radius: 0; opacity: 1; z-index: 1;
    background: var(--tapis); box-shadow: 0 6px 14px -6px rgba(0,0,0,.6); }
.t-insinyur .cover::after { inset: auto 0 0; }
.t-insinyur .cover .am-garland { top: 26px; }
.t-insinyur .cover__inner { width: min(330px, calc(100vw - 44px)); padding: 1.2rem 1.1rem 1.6rem; gap: .7rem; border-radius: 170px 170px 16px 16px;
    background: radial-gradient(ellipse 80% 40% at 50% 18%, rgba(255,214,130,.16), transparent 70%), var(--velvet), #1a1e23;
    border: 1.5px solid #c99a45; box-shadow: inset 0 0 0 5px rgba(26,30,35,.95), inset 0 0 0 6px rgba(226,180,88,.45), 0 30px 60px -18px rgba(0,0,0,.9); }
.t-insinyur .cover__to { margin: .5rem 0 .4rem; }
@media (min-width: 960px) { .t-insinyur .cover__inner { width: 380px; } }
.t-insinyur .tm-band { display: none; }
.t-insinyur .tm-frame { z-index: 1; }
.t-insinyur .cover .tm-frame, .t-insinyur .hero .tm-frame { inset: 34px 0; }
.t-insinyur .tm-corner { width: clamp(64px, 17vw, 104px); }
.t-insinyur .tm-house { filter: drop-shadow(0 16px 24px rgba(0,3,10,.6)); }
.t-insinyur .cover .tm-house { width: min(250px, 64vw); animation: isRise 1.5s cubic-bezier(.2,.7,.2,1) both; }
.t-insinyur .hero .tm-house { width: min(340px, 86vw); }
.t-insinyur .aside .tm-house { width: 380px; }
.t-insinyur .tm-house--sm { width: 190px; }
@media (max-height: 740px) { .t-insinyur .cover .tm-house { width: min(190px, 52vw); } .t-insinyur .cover__inner { gap: .45rem; padding-top: .9rem; } .t-insinyur .cover__to { margin: .2rem 0; } }
/* sinar emas berputar pelan di belakang siger */
.t-insinyur .lx-tilt::before { content: ''; position: absolute; left: 50%; top: 52%; width: 150%; aspect-ratio: 1; margin: -75% 0 0 -75%; z-index: -1; pointer-events: none; border-radius: 50%;
    background: repeating-conic-gradient(from 0deg, rgba(255,214,130,.13) 0 5deg, rgba(255,214,130,0) 5deg 15deg);
    -webkit-mask-image: radial-gradient(closest-side, #000 20%, transparent 100%); mask-image: radial-gradient(closest-side, #000 20%, transparent 100%);
    animation: isSpin 60s linear infinite; }
.t-insinyur .lx-tilt::after { content: ''; position: absolute; left: 50%; top: 60%; width: 90%; aspect-ratio: 2; margin: -22.5% 0 0 -45%; z-index: -1; pointer-events: none; border-radius: 50%;
    background: radial-gradient(closest-side, rgba(255,205,120,.32), transparent); animation: isGlow 5s ease-in-out infinite; }
.t-insinyur .lx-tilt--sm::before { display: none; }
.t-insinyur .cover .kicker { animation: isRise 1.1s ease .4s both; }
.t-insinyur .cover .names { animation: isReveal 1.6s cubic-bezier(.2,.7,.2,1) .6s both, isSheen 7s linear 2.2s infinite; }
.t-insinyur .hero .names, .t-insinyur .aside .names { animation: isReveal 1.6s cubic-bezier(.2,.7,.2,1) .2s both, isSheen 7s linear 1.8s infinite; }
.t-insinyur .cover__date { animation: isRise 1.1s ease .9s both; }
.t-insinyur .cover__to { animation: isRise 1.1s ease 1.05s both; }
.t-insinyur .cover .ibtn { animation: isRise 1.1s ease 1.25s both; }
.t-insinyur .am-garland { height: clamp(48px, 13vw, 70px); background-size: auto 100%; filter: drop-shadow(0 6px 6px rgba(0,0,0,.4)); }
.t-insinyur .am-fall i { filter: drop-shadow(0 0 6px rgba(255,214,130,.7)); }

/* Halaman: beludru gelap bermotif belah ketupat, pita tapis pemisah */
.t-insinyur .page { background: var(--pattern), var(--velvet), var(--bg); }
.t-insinyur .sec--tint { background: linear-gradient(rgba(255,214,130,.035), rgba(255,214,130,.035)), var(--pattern), var(--velvet), var(--bg-2); }
.t-insinyur .sec--tint::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 18px; background: var(--tapis); opacity: .9; }

/* Kartu: beludru bergaris emas ganda, pita tapis di atas, kilau emas melintas */
.t-insinyur .event, .t-insinyur .gift, .t-insinyur .rsvp, .t-insinyur .wish, .t-insinyur .qr-card, .t-insinyur .lstory__card {
    border-radius: 6px; border: 1px solid var(--line); background: linear-gradient(rgba(255,214,130,.035), rgba(0,0,0,.08)), var(--velvet), var(--card);
    box-shadow: inset 0 0 0 4px rgba(32,37,43,.92), inset 0 0 0 5px rgba(226,180,88,.28), 0 20px 36px -22px rgba(0,0,0,.85);
}
.t-insinyur .event { position: relative; overflow: hidden; padding-top: 2.6rem; }
.t-insinyur .event::before { inset: 0 0 auto; height: 22px; border: 0; border-radius: 0; background: var(--tapis); opacity: 1; }
.t-insinyur .event::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(246,220,148,.12), transparent); animation: isShine 8s ease-in-out infinite; pointer-events: none; }
.t-insinyur .event h3 { font-family: 'Marcellus', serif; font-weight: 700; font-size: 1.3rem; letter-spacing: .04em; color: var(--accent-2); }
.t-insinyur .event > * { position: relative; }
.t-insinyur .reveal .event, .t-insinyur .reveal .gift, .t-insinyur .reveal .person { opacity: 0; transform: translateY(26px) scale(.98); filter: blur(4px); transition: opacity 1.1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1), filter 1.1s ease; }
.t-insinyur .reveal.is-visible .event, .t-insinyur .reveal.is-visible .gift, .t-insinyur .reveal.is-visible .person { opacity: 1; transform: none; filter: none; }
.t-insinyur .reveal.is-visible .event:nth-child(2), .t-insinyur .reveal.is-visible .gift:nth-child(2), .t-insinyur .reveal.is-visible .person:nth-of-type(2) { transition-delay: .25s; }
.t-insinyur .reveal.is-visible .event:nth-child(3) { transition-delay: .45s; }
.t-insinyur .countdown div { border-radius: 6px; background: linear-gradient(180deg, #262c33, #15181c); border-color: var(--line); box-shadow: inset 0 1px 0 rgba(246,220,148,.25), inset 0 -3px 0 rgba(226,180,88,.55); }
.t-insinyur .countdown b { font-family: 'Marcellus', serif; font-weight: 700; color: var(--accent-2); }
.t-insinyur .divider { background: var(--accent); }

/* Tombol emas timbul */
.t-insinyur .ibtn { border-radius: 999px; border-width: 1.5px; }
.t-insinyur .ibtn--solid { position: relative; overflow: hidden; background: linear-gradient(180deg, #f8e2a2 0%, #dcab4e 48%, #b88430 52%, #e7bf66 100%); color: #15181c; border-color: #f6dc94;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 10px 26px -12px rgba(226,180,88,.9); }
.t-insinyur .ibtn--solid::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 45%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent); animation: isShine 4.5s ease-in-out infinite 1.5s; pointer-events: none; }
.t-insinyur .ibtn--solid:hover { background: linear-gradient(180deg, #fff0bd 0%, #e8b95c 48%, #c8943c 52%, #f0cc77 100%); color: #15181c; }

/* The Couple, love story, galeri */
.t-insinyur .pframe::before { border-color: var(--accent); border-width: 1.5px; }
.t-insinyur .pframe::after { box-shadow: 0 0 0 4px var(--bg); }
.t-insinyur .pframe__arch { box-shadow: 0 24px 46px -26px rgba(0,0,0,.9), 0 0 0 1px var(--line); }
.t-insinyur .lstory__dot { background: var(--accent); box-shadow: 0 0 0 4px var(--bg), 0 0 14px 2px rgba(246,220,148,.55); }
.t-insinyur .lstory__title, .t-insinyur .tale__title { font-family: 'Marcellus', serif; font-weight: 700; font-size: 1.1rem; color: var(--accent-2); }
.t-insinyur .gslider, .t-insinyur .gallery__item { border-radius: 6px; box-shadow: 0 0 0 1px var(--line); }
.t-insinyur .amp { font-family: 'Great Vibes', cursive; color: var(--accent); }
.t-insinyur .music { border-radius: 999px; }
.t-insinyur .ifoot { border-top: 1px solid var(--line); }

@media (prefers-reduced-motion: reduce) {
    .t-insinyur .names { animation: none !important; }
    .t-insinyur .lx-tilt::before, .t-insinyur .lx-tilt::after { animation: none; }
    .t-insinyur .reveal .event, .t-insinyur .reveal .gift, .t-insinyur .reveal .person { opacity: 1; transform: none; filter: none; }
    .t-insinyur .reveal .sec__title::after { clip-path: none; }
}
