/* ==========================================================
   DInvite — Tema "Fotografer Bingkai Lensa" (Profesi Premium)
   Hitam, krom & sepia untuk pasangan fotografer, videografer, atau kreator: pita film yang tersibak, kamera klasik berlensa krom yang berkilau seperti benda nyata, dan pita film sepia berisi kenangan.
   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-fotografer {
    --bg: #121214; --bg-2: #17171a; --card: #1d1d21; --ink: #f2efe9; --muted: #bdb6aa;
    --accent: #e2b458; --accent-2: #f6dc94; --on-accent: #121214; --line: rgba(226,180,88,.38);
    --hero-rgb: 18,18,20; --tint-a: .8; --hero-ink: #f2efe9;
    --velvet: url(../../img/themes/fotografer/tekstur.webp) 0 0 / 256px 256px;
    --pattern: url(../../img/themes/fotografer/pola.svg) 0 0 / 60px 60px;
    --tapis: url(../../img/themes/fotografer/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 ftReveal { 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 ftRise { from { opacity: 0; transform: translateY(26px) scale(.97); } }
@keyframes ftSheen { from { background-position: 0% 50%; } to { background-position: 200% 50%; } }
@keyframes ftSpin { to { transform: rotate(1turn); } }
@keyframes ftGlow { 0%, 100% { opacity: .55; transform: scale(.96); } 50% { opacity: .9; transform: scale(1.04); } }
@keyframes ftUnroll { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes ftShine { 0%, 62% { transform: translateX(-120%) skewX(-18deg); } 100% { transform: translateX(240%) skewX(-18deg); } }

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

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

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

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

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

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

.t-fotografer .kicker, .t-fotografer .sec__title, .t-fotografer .event h3 { font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
