/* ============================================================
   03 · GOLDEN AFFAIR — Luxury
   Derin siyah, metalik altin, sampanya, koyu mermer.
   ============================================================ */

.pem--golden {
    --ink: #ece6da;
    --bg: #0a0a0b;
    --soft: #16161a;
    --acc: #c9a227;
    --acc2: #e9d9a9;
    --line: rgba(201, 162, 39, .3);
    --serif: "Playfair Display", Georgia, serif;
    --sans: "Jost", system-ui, sans-serif;
    --gold: linear-gradient(104deg, #8a6d1f 0%, #e5cf86 26%, #fdf6dd 44%, #d8bb60 58%, #8a6d1f 86%);
    --e: cubic-bezier(.22, .61, .36, 1);

    background: #09090a;
    font-size: 17px;
}

.l-gold {
    background: var(--gold);
    background-size: 220% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: l-shine 9s ease-in-out infinite;
}
@keyframes l-shine { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

/* ---------------------------------------------- açılış */

.l-open {
    position: fixed; inset: 0; z-index: 60;
    display: grid; place-items: center;
    background: #050505;
    overflow: hidden;
    transition: opacity .9s var(--e) .9s, visibility .9s .9s;
}
.pem--golden.is-open .l-open { opacity: 0; visibility: hidden; }

.l-shimmer {
    position: absolute; inset: -30%;
    background:
        radial-gradient(28% 18% at 50% 46%, rgba(201, 162, 39, .34), transparent 70%),
        conic-gradient(from 210deg at 50% 50%, transparent, rgba(233, 217, 169, .1), transparent 40%);
    filter: blur(32px);
    animation: l-roam 14s ease-in-out infinite alternate;
}
@keyframes l-roam {
    from { transform: translate3d(-3%, 2%, 0) rotate(-4deg); }
    to { transform: translate3d(4%, -2%, 0) rotate(6deg); }
}

.l-opencore {
    position: relative; z-index: 2;
    display: grid; justify-items: center; gap: 26px;
    text-align: center;
    padding: 20px;
}

.l-mono3d {
    font-family: var(--serif); font-weight: 500;
    font-size: clamp(4.4rem, 22vw, 9rem);
    line-height: 1;
    color: #f6ecc8;
    letter-spacing: .02em;
    transform: perspective(700px) rotateX(16deg);
    text-shadow:
        0 1px 0 #b8982f, 0 2px 0 #a9892a, 0 3px 0 #997b25,
        0 4px 0 #8a6d20, 0 5px 0 #7b601c, 0 6px 0 #6c5318,
        0 7px 0 #5d4614, 0 10px 18px rgba(0, 0, 0, .66);
    opacity: 0;
    animation: l-emerge 2.1s var(--e) .35s forwards;
}
.l-mono3d i { font-style: normal; font-size: .42em; vertical-align: .34em; opacity: .74; margin: 0 .06em; }
@keyframes l-emerge {
    from { opacity: 0; transform: perspective(700px) rotateX(42deg) scale(.82); filter: blur(10px); }
    to { opacity: 1; transform: perspective(700px) rotateX(16deg) scale(1); filter: none; }
}
.l-mono3d--sm {
    font-size: clamp(2.4rem, 11vw, 4rem);
    animation: none; opacity: 1;
}

.l-open-t {
    font-family: var(--sans);
    font-size: .6rem; letter-spacing: .36em; text-transform: uppercase;
    color: rgba(236, 230, 218, .54);
    opacity: 0; animation: l-fade 1.3s ease 1.7s forwards;
}
@keyframes l-fade { to { opacity: 1; } }

.l-open-b {
    padding: 1.1em 2.4em;
    background: transparent;
    border: 1px solid var(--acc);
    color: var(--acc2);
    font-family: var(--sans);
    font-size: .64rem; letter-spacing: .28em; text-transform: uppercase;
    cursor: pointer;
    opacity: 0; animation: l-fade 1.2s ease 2.1s forwards;
    transition: background .5s var(--e), color .5s var(--e);
}
.l-open-b:hover { background: var(--acc); color: #0a0a0b; }
.pem--golden.is-opening .l-opencore { opacity: 0; transition: opacity .6s; }

/* altın kapılar */
.l-doors { position: absolute; inset: 0; z-index: 3; pointer-events: none; perspective: 1400px; }
.l-door {
    position: absolute; top: 0; bottom: 0; width: 50.5%;
    background:
        repeating-linear-gradient(90deg, rgba(201, 162, 39, .13) 0 1px, transparent 1px 26px),
        repeating-linear-gradient(0deg, rgba(201, 162, 39, .1) 0 1px, transparent 1px 26px),
        linear-gradient(100deg, #14120d, #1e1a11 40%, #0d0c08);
    transform-style: preserve-3d;
    transition: transform 1.5s var(--e), opacity 1.2s ease .5s;
    opacity: 0;
}
.l-door::after {
    content: ""; position: absolute; inset: 16px;
    border: 1px solid rgba(201, 162, 39, .34);
}
.l-door--l { left: 0; transform-origin: left center; }
.l-door--r { right: 0; transform-origin: right center; }

.pem--golden.is-opening .l-door { opacity: 1; transition-delay: 0s; }
.pem--golden.is-opening .l-door--l { transform: rotateY(-96deg); transition-delay: .35s; }
.pem--golden.is-opening .l-door--r { transform: rotateY(96deg); transition-delay: .35s; }

/* ---------------------------------------------- kahraman */

.l-hero {
    position: relative;
    min-height: 100svh;
    display: grid; place-items: center;
    overflow: hidden;
    padding-block: clamp(80px, 14vw, 140px);
}
.l-hero-bg {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover;
    opacity: .5;
    transform: scale(1.1) translateY(calc(var(--p, 0) * 3%));
}
.l-hero-veil {
    position: absolute; inset: 0;
    background:
        radial-gradient(70% 50% at 50% 50%, transparent, rgba(5, 5, 6, .72) 76%),
        linear-gradient(180deg, rgba(5, 5, 6, .8), rgba(5, 5, 6, .36) 42%, #09090a);
}
.l-hero-in { position: relative; }

.l-kick {
    font-family: var(--sans);
    font-size: .58rem; letter-spacing: .42em; text-transform: uppercase;
    color: var(--acc);
}
.l-names { margin: 26px 0 0; }
.l-ln, .l-amp { display: block; overflow: hidden; }
.l-ln b, .l-amp b {
    display: block;
    font-family: var(--serif); font-weight: 400;
    font-size: clamp(2.8rem, 15vw, 7rem);
    line-height: 1.02;
    letter-spacing: -.02em;
    background: var(--gold);
    -webkit-background-clip: text; background-clip: text; color: transparent;
    transform: translateY(104%);
}
.l-amp b { font-size: clamp(1.3rem, 5vw, 2.2rem); font-style: italic; padding: .3em 0; }
.pem--golden.is-open .l-ln b { animation: l-rise 1.4s var(--e) .5s both; }
.pem--golden.is-open .l-amp b { animation: l-rise 1.1s var(--e) .78s both; }
.pem--golden.is-open .l-ln:last-of-type b { animation-delay: 1.02s; }
@keyframes l-rise { to { transform: none; } }

.l-sur {
    margin-top: 24px;
    font-family: var(--sans);
    font-size: .62rem; letter-spacing: .34em; text-transform: uppercase;
    color: rgba(236, 230, 218, .54);
}

/* ---------------------------------------------- ışık süpürmesi */

.l-sweep { position: relative; overflow: hidden; }
.l-sweep::before {
    content: ""; position: absolute; top: 0; bottom: 0; width: 42%;
    background: linear-gradient(104deg, transparent, rgba(253, 246, 221, .07) 44%, rgba(253, 246, 221, .14) 52%, transparent);
    transform: translateX(-160%) skewX(-14deg);
    pointer-events: none;
}
.l-sweep.is-swept::before { animation: l-pass 2.4s var(--e) .2s; }
@keyframes l-pass { to { transform: translateX(340%) skewX(-14deg); } }

.l-h {
    font-family: var(--serif); font-weight: 400;
    font-size: clamp(1.8rem, 7vw, 3.2rem);
    letter-spacing: -.015em;
    margin-top: 16px;
}
.l-msg {
    max-width: 44ch; margin: 26px auto 0;
    font-size: 1.04rem; line-height: 1.9;
    color: rgba(236, 230, 218, .72);
}
.l-when {
    margin-top: 34px;
    font-family: var(--serif); font-size: 1.3rem;
    display: grid; gap: .3em;
}
.l-when span {
    font-family: var(--sans); font-size: .6rem; letter-spacing: .34em; color: var(--acc);
}

.pem--golden .pem-cd { max-width: 620px; margin-top: 30px; }
.pem--golden .pem-cd-i b {
    font-family: var(--serif);
    background: var(--gold);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.pem--golden .pem-cd-i span { color: rgba(236, 230, 218, .5); }

/* ---------------------------------------------- mekân */

.l-venue { padding: 0; }
.l-venue-art { position: relative; height: 72svh; overflow: hidden; }
.l-venue-art img {
    width: 100%; height: 100%; object-fit: cover;
    transform: scale(calc(1.06 + var(--p, 0) * -0.06));
    opacity: .78;
}
.l-venue-art::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(9, 9, 10, .66), transparent 36%, #09090a);
}
.l-venue-in { position: relative; margin-top: -90px; padding-bottom: clamp(70px, 11vw, 110px); }

.pem--golden .pem-venue-n {
    font-family: var(--serif);
    background: var(--gold);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.pem--golden .pem-venue-a { color: rgba(236, 230, 218, .62); }
.pem--golden .pem-extra { background: var(--line); border-color: var(--line); }
.pem--golden .pem-extra li { background: #0e0e10; }
.pem--golden .pem-extra b { font-family: var(--serif); color: var(--acc2); }

.pem--golden .pem-gal { gap: 4px; }
.pem--golden .pem-gal-i img { filter: contrast(1.1) saturate(.9) brightness(.92); }
.pem--golden .pem-gal-i:hover img { filter: contrast(1.06) saturate(1) brightness(1); }

.pem--golden .pem-story li::before { box-shadow: 0 0 0 4px #09090a; }
.pem--golden .pem-story h3 { color: var(--acc2); }

.l-rsvp { background: linear-gradient(180deg, #09090a, #121214 50%, #09090a); }
.pem--golden .pem-rsvp { max-width: 540px; margin-inline: auto; }
.pem--golden .pem-inp { background: rgba(255, 255, 255, .05); color: var(--ink); }
.pem--golden .pem-inp:focus { background: rgba(255, 255, 255, .09); }
.pem--golden .pem-choice input:checked + label { color: #0a0a0b; }
.pem--golden .pem-btn { color: var(--acc2); }
.pem--golden .pem-btn:hover { color: #0a0a0b; }

/* ---------------------------------------------- kapanış */

.l-close {
    position: relative;
    padding-block: clamp(80px, 14vw, 140px);
    background: radial-gradient(90% 70% at 50% 100%, rgba(201, 162, 39, .14), transparent 70%);
}
.l-close-t {
    max-width: 36ch; margin: 28px auto 0;
    font-family: var(--serif); font-style: italic;
    font-size: 1.2rem; line-height: 1.8;
    color: rgba(236, 230, 218, .76);
}
.l-tag { margin-top: 24px; font-family: var(--sans); font-size: .68rem; letter-spacing: .3em; color: var(--acc); }
.l-sig {
    margin-top: 48px;
    font-family: var(--sans); font-size: .5rem; letter-spacing: .36em; text-transform: uppercase;
    color: rgba(236, 230, 218, .28);
}
