/* ==========================================================
   DInvite — Tema "Arsitek Cetak Biru" (Profesi Premium)
   Biru cetak biru & kuningan untuk pasangan arsitek atau desainer interior: kertas cetak biru berkisi yang tersibak, jangka kuningan di atas penggaris dan gulungan gambar kerja, serta sketsa fasad gedung bergaris putih.
   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-arsitek {
    --bg: #0b1c33; --bg-2: #0e2440; --card: #112a4a; --ink: #eef4fb; --muted: #b6c6dc;
    --accent: #e2b458; --accent-2: #f6dc94; --on-accent: #0b1c33; --line: rgba(226,180,88,.38);
    --hero-rgb: 11,28,51; --tint-a: .8; --hero-ink: #eef4fb;
    --velvet: url(../../img/themes/arsitek/tekstur.webp) 0 0 / 256px 256px;
    --pattern: url(../../img/themes/arsitek/pola.svg) 0 0 / 60px 60px;
    --tapis: url(../../img/themes/arsitek/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 arReveal { 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 arRise { from { opacity: 0; transform: translateY(26px) scale(.97); } }
@keyframes arSheen { from { background-position: 0% 50%; } to { background-position: 200% 50%; } }
@keyframes arSpin { to { transform: rotate(1turn); } }
@keyframes arGlow { 0%, 100% { opacity: .55; transform: scale(.96); } 50% { opacity: .9; transform: scale(1.04); } }
@keyframes arUnroll { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes arShine { 0%, 62% { transform: translateX(-120%) skewX(-18deg); } 100% { transform: translateX(240%) skewX(-18deg); } }

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

/* Sampul: beludru marun, pita tapis atas-bawah, sorot cahaya di belakang siger */
.t-arsitek .am-panel::before { background: url(../../img/themes/arsitek/kain.webp) right top / cover no-repeat, #1f4f8f;
    box-shadow: inset -18px 0 26px -14px rgba(0,0,0,.6); }
.t-arsitek .cover, .t-arsitek .hero, .t-arsitek .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-arsitek .cover::before, .t-arsitek .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-arsitek .cover::after { inset: auto 0 0; }
.t-arsitek .cover .am-garland { top: 26px; }
.t-arsitek .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), #0e2440;
    border: 1.5px solid #c99a45; box-shadow: inset 0 0 0 5px rgba(14,36,64,.95), inset 0 0 0 6px rgba(226,180,88,.45), 0 30px 60px -18px rgba(0,0,0,.9); }
.t-arsitek .cover__to { margin: .5rem 0 .4rem; }
@media (min-width: 960px) { .t-arsitek .cover__inner { width: 380px; } }
.t-arsitek .tm-band { display: none; }
.t-arsitek .tm-frame { z-index: 1; }
.t-arsitek .cover .tm-frame, .t-arsitek .hero .tm-frame { inset: 34px 0; }
.t-arsitek .tm-corner { width: clamp(64px, 17vw, 104px); }
.t-arsitek .tm-house { filter: drop-shadow(0 16px 24px rgba(0,3,10,.6)); }
.t-arsitek .cover .tm-house { width: min(250px, 64vw); animation: arRise 1.5s cubic-bezier(.2,.7,.2,1) both; }
.t-arsitek .hero .tm-house { width: min(340px, 86vw); }
.t-arsitek .aside .tm-house { width: 380px; }
.t-arsitek .tm-house--sm { width: 190px; }
@media (max-height: 740px) { .t-arsitek .cover .tm-house { width: min(190px, 52vw); } .t-arsitek .cover__inner { gap: .45rem; padding-top: .9rem; } .t-arsitek .cover__to { margin: .2rem 0; } }
/* sinar emas berputar pelan di belakang siger */
.t-arsitek .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: arSpin 60s linear infinite; }
.t-arsitek .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: arGlow 5s ease-in-out infinite; }
.t-arsitek .lx-tilt--sm::before { display: none; }
.t-arsitek .cover .kicker { animation: arRise 1.1s ease .4s both; }
.t-arsitek .cover .names { animation: arReveal 1.6s cubic-bezier(.2,.7,.2,1) .6s both, arSheen 7s linear 2.2s infinite; }
.t-arsitek .hero .names, .t-arsitek .aside .names { animation: arReveal 1.6s cubic-bezier(.2,.7,.2,1) .2s both, arSheen 7s linear 1.8s infinite; }
.t-arsitek .cover__date { animation: arRise 1.1s ease .9s both; }
.t-arsitek .cover__to { animation: arRise 1.1s ease 1.05s both; }
.t-arsitek .cover .ibtn { animation: arRise 1.1s ease 1.25s both; }
.t-arsitek .am-garland { height: clamp(48px, 13vw, 70px); background-size: auto 100%; filter: drop-shadow(0 6px 6px rgba(0,0,0,.4)); }
.t-arsitek .am-fall i { filter: drop-shadow(0 0 6px rgba(255,214,130,.7)); }

/* Halaman: beludru gelap bermotif belah ketupat, pita tapis pemisah */
.t-arsitek .page { background: var(--pattern), var(--velvet), var(--bg); }
.t-arsitek .sec--tint { background: linear-gradient(rgba(255,214,130,.035), rgba(255,214,130,.035)), var(--pattern), var(--velvet), var(--bg-2); }
.t-arsitek .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-arsitek .event, .t-arsitek .gift, .t-arsitek .rsvp, .t-arsitek .wish, .t-arsitek .qr-card, .t-arsitek .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(17,42,74,.92), inset 0 0 0 5px rgba(226,180,88,.28), 0 20px 36px -22px rgba(0,0,0,.85);
}
.t-arsitek .event { position: relative; overflow: hidden; padding-top: 2.6rem; }
.t-arsitek .event::before { inset: 0 0 auto; height: 22px; border: 0; border-radius: 0; background: var(--tapis); opacity: 1; }
.t-arsitek .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: arShine 8s ease-in-out infinite; pointer-events: none; }
.t-arsitek .event h3 { font-family: 'Marcellus', serif; font-weight: 700; font-size: 1.3rem; letter-spacing: .04em; color: var(--accent-2); }
.t-arsitek .event > * { position: relative; }
.t-arsitek .reveal .event, .t-arsitek .reveal .gift, .t-arsitek .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-arsitek .reveal.is-visible .event, .t-arsitek .reveal.is-visible .gift, .t-arsitek .reveal.is-visible .person { opacity: 1; transform: none; filter: none; }
.t-arsitek .reveal.is-visible .event:nth-child(2), .t-arsitek .reveal.is-visible .gift:nth-child(2), .t-arsitek .reveal.is-visible .person:nth-of-type(2) { transition-delay: .25s; }
.t-arsitek .reveal.is-visible .event:nth-child(3) { transition-delay: .45s; }
.t-arsitek .countdown div { border-radius: 6px; background: linear-gradient(180deg, #14305a, #0b1c33); 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-arsitek .countdown b { font-family: 'Marcellus', serif; font-weight: 700; color: var(--accent-2); }
.t-arsitek .divider { background: var(--accent); }

/* Tombol emas timbul */
.t-arsitek .ibtn { border-radius: 999px; border-width: 1.5px; }
.t-arsitek .ibtn--solid { position: relative; overflow: hidden; background: linear-gradient(180deg, #f8e2a2 0%, #dcab4e 48%, #b88430 52%, #e7bf66 100%); color: #0b1c33; border-color: #f6dc94;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 10px 26px -12px rgba(226,180,88,.9); }
.t-arsitek .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: arShine 4.5s ease-in-out infinite 1.5s; pointer-events: none; }
.t-arsitek .ibtn--solid:hover { background: linear-gradient(180deg, #fff0bd 0%, #e8b95c 48%, #c8943c 52%, #f0cc77 100%); color: #0b1c33; }

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

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