/* =============================================================
   MOUHAMAD & KHADEEJAH — V3 CINEMATIC ENVELOPE
   ============================================================= */

:root {
    --gold:       #D4AF37;
    --gold-l:     #E8D48B;
    --gold-p:     #F5ECD0;
    --gold-d:     #B8941F;
    --white:      #FFFFFF;
    --white-w:    #FFFDF8;
    --dark:       #0C0A06;
    --dark-w:     #1A1610;
    --dark-m:     #2C261C;
    --text:       #2A2520;
    --text-s:     #6B6358;
    --text-m:     #9E9487;

    --shadow:     0 16px 48px rgba(0,0,0,0.08);
    --shadow-g:   0 16px 48px rgba(212,175,55,0.2);
    --shadow-h:   0 32px 80px rgba(0,0,0,0.12);
    --r:          24px;
    --r-sm:       16px;
    --ease:       cubic-bezier(0.22, 1, 0.36, 1);
}


/* ═══════════════════════════════════
   RESET
   ═══════════════════════════════════ */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

html {
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: var(--gold) var(--white-w);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html, body {
    width:100%;
    max-width:100%;
}

::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:var(--white-w); }
::-webkit-scrollbar-thumb { background:var(--gold); border-radius:99px; }

body {
    font-family: "Inter", -apple-system, sans-serif;
    font-size: 1rem;
    line-height: 1.75;
    color: var(--text);
    background: var(--dark);
    overflow-x: clip;
    -webkit-font-smoothing: antialiased;
}

body.menu-open {
    overflow:hidden;
}

a { color:inherit; text-decoration:none; }
button { border:none; outline:none; cursor:pointer; font-family:inherit; background:transparent; }
::selection { background:var(--gold); color:var(--white); }


/* ═══════════════════════════════════
   TYPOGRAPHY
   ═══════════════════════════════════ */

h1,h2,h3,h4 {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 600;
    line-height: 1.15;
}

.heading { font-size:clamp(2rem,4.5vw,3.4rem); text-align:center; }
.heading--w { color:var(--white); }

.eyebrow {
    display:block; text-align:center;
    font-size:0.82rem; font-weight:600;
    letter-spacing:3px; text-transform:uppercase;
    color:var(--gold); margin-bottom:14px;
}

.arabic, .verse-ar {
    font-family:"Amiri", serif;
    direction:rtl; text-align:center;
}


/* ═══════════════════════════════════
   LAYOUT
   ═══════════════════════════════════ */

.container { width:min(90%,1200px); margin-inline:auto; }
.narrow { max-width:820px; }

.sec-head { text-align:center; margin-bottom:56px; }
.sec-head::after {
    content:""; display:block; width:72px; height:2px;
    margin:20px auto 0;
    background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.sec-sub { margin-top:12px; font-size:1rem; color:var(--text-s); }
.scene--dark .sec-sub { color:rgba(255,255,255,0.5); }

.gold-ornament {
    text-align:center; font-size:0.9rem;
    color:var(--gold); letter-spacing:12px;
    margin-bottom:28px;
}


/* ═══════════════════════════════════════════════════════
   ★ ENVELOPE INTRO SCREEN ★
   ═══════════════════════════════════════════════════════ */

.envelope-screen {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, #1A1610, #0C0A06);
    transition: opacity 0.8s ease, visibility 0.8s ease;
}

.envelope-screen.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Particles in envelope screen */
.env-particles {
    position:absolute; inset:0;
    pointer-events:none; overflow:hidden;
}

.env-particles span {
    position:absolute; border-radius:50%;
    background:rgba(212,175,55,0.35);
    animation: envFloat linear infinite;
}

@keyframes envFloat {
    0%   { transform:translateY(0) rotate(0); opacity:0; }
    10%  { opacity:0.7; }
    100% { transform:translateY(-110vh) rotate(360deg); opacity:0; }
}

/* ── Envelope Container ── */
.envelope {
    position: relative;
    width: 360px;
    height: 260px;
    cursor: pointer;
    perspective: 800px;
    z-index: 2;
    transition: transform 0.6s var(--ease);
}

.envelope:hover { transform: scale(1.03); }

/* ── Envelope Body (back) ── */
.env-body {
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, #2C261C, #1E1B14);
    border-radius: 8px;
    border: 1px solid rgba(212,175,55,0.25);
    overflow: hidden;
    box-shadow:
        0 20px 60px rgba(0,0,0,0.4),
        inset 0 -2px 8px rgba(212,175,55,0.1);
}

/* ── Gold lining inside ── */
.env-body::before {
    content:"";
    position:absolute;
    inset:6px;
    border:1px solid rgba(212,175,55,0.15);
    border-radius:4px;
    pointer-events:none;
}

/* ── Card inside envelope ── */
.env-card {
    position: absolute;
    left: 10%;
    right: 10%;
    top: 8%;
    bottom: 0;
    background: var(--white-w);
    border-radius: 6px 6px 0 0;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
    transform: translateY(62%);
    transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: 3;
}

/* Au clic : la carte sort juste assez pour montrer le haut */
.envelope.is-open .env-card {
    transform: translateY(-25%);
}

/* Image de fond de la carte */
.env-card-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    opacity: 0.1;
    pointer-events: none;
    z-index: 0;
}

.env-card-inner {
    position: relative;
    z-index: 1;
    padding: 24px 22px;
    text-align: center;
    background: rgba(255,253,248,0.85);
    border-radius: 6px 6px 0 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: 16px;
    opacity: 0;
    transition: opacity 0.5s ease 0.5s;
}

/* Texte visible quand on ouvre */
.envelope.is-open .env-card-inner {
    opacity: 1;
}

.env-bismillah {
    font-family: "Amiri", serif;
    direction: rtl;
    font-size: 1.4rem;
    color: var(--gold-d);
    margin-bottom: 10px;
    text-shadow: 0 1px 2px rgba(0,0,0,0.08);
}

.env-ornament {
    color: var(--gold-d);
    font-size: 0.8rem;
    margin: 8px 0;
    letter-spacing: 6px;
    opacity: 0.6;
}

.env-youre-invited {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.1rem;
    font-weight: 600;
    font-style: italic;
    letter-spacing: 1px;
    color: var(--gold-d);
    margin-bottom: 6px;
}

.env-names {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--dark-w);
    margin-bottom: 8px;
    text-shadow: 0 1px 2px rgba(0,0,0,0.06);
}

.env-names span {
    color: var(--gold);
    font-style: italic;
    font-weight: 400;
    margin: 0 4px;
}

.env-date {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text);
    letter-spacing: 2px;
}

/* ── Envelope Flap (top triangle) ── */
.env-flap {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50%;
    z-index: 5;
    transform-origin: top center;
    transform: rotateX(0deg);
    transition: transform 0.8s var(--ease);
}

.envelope.is-open .env-flap {
    transform: rotateX(180deg);
}

.env-flap-inner {
    width: 100%;
    height: 100%;
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    background: linear-gradient(160deg, #3D3527, #2C261C);
    border: 1px solid rgba(212,175,55,0.2);
    position: relative;
}

/* Gold seal on flap */
.env-flap-inner::after {
    content: "💍";
    position: absolute;
    bottom: 18%;
    left: 50%;
    transform: translateX(-50%);
    font-size: 1.4rem;
    filter: drop-shadow(0 2px 8px rgba(212,175,55,0.4));
}

/* ── Envelope Front (bottom section) ── */
.env-front {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 65%;
    z-index: 4;
    clip-path: polygon(0 35%, 50% 0, 100% 35%, 100% 100%, 0 100%);
    background: linear-gradient(170deg, #342E22, #28231A);
    border-radius: 0 0 8px 8px;
    border: 1px solid rgba(212,175,55,0.15);
}

/* ── CTA text ── */
.env-cta {
    position: relative;
    z-index: 2;
    margin-top: 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    animation: envPulse 2.5s ease-in-out infinite;
}

.env-cta-icon {
    font-size: 2rem;
    animation: envBounce 2s ease infinite;
}

.env-cta-text {
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
}

.envelope.is-open ~ .env-cta {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.5s ease;
}

@keyframes envBounce {
    0%,100% { transform:translateY(0); }
    50%     { transform:translateY(-8px); }
}

@keyframes envPulse {
    0%,100% { opacity:1; }
    50%     { opacity:0.6; }
}


/* ═══════════════════════════════════
   SITE WRAPPER
   ═══════════════════════════════════ */

.site-wrapper {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(30px);
    transition: opacity 1s ease 0.3s, transform 1s var(--ease) 0.3s;
    position: relative;
    width:100%;
    max-width:100%;
}

.site-wrapper.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}


/* ═══════════════════════════════════
   PARTICLES
   ═══════════════════════════════════ */

#particles {
    position:fixed; inset:0;
    width:100%; height:100%;
    pointer-events:none; z-index:0;
}


/* ═══════════════════════════════════
   SCENES (cinematic sections)
   ═══════════════════════════════════ */

.scene {
    position:relative;
    display:flex; align-items:center; justify-content:center;
    padding:110px 24px;
    overflow:hidden; z-index:1;
}

.scene > .container,
.scene > .container.narrow {
    position:relative;
    z-index:2;
}

.scene-photo {
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}

.scene-photo::before {
    content:"";
    position:absolute;
    inset:0;
}

.scene-photo--programme {
    background-image:url("mosque.jpg");
}

.scene-photo--programme::before {
    background:linear-gradient(160deg, rgba(255,253,248,0.9), rgba(255,253,248,0.86) 45%, rgba(240,230,200,0.78));
}

.scene-photo--lieu {
    background-image:url("venu.jpg");
}

.scene-photo--lieu::before {
    background:linear-gradient(160deg, rgba(12,10,6,0.8), rgba(26,22,16,0.76), rgba(12,10,6,0.82));
}

.scene-photo--message {
    background-image:url("recep.jpg");
}

.scene-photo--message::before {
    background:linear-gradient(155deg, rgba(12,10,6,0.84), rgba(34,28,19,0.7), rgba(12,10,6,0.86));
}

.scene--hero {
    min-height:100vh; min-height:100dvh;
    flex-direction:column; text-align:center;
    color:var(--white); padding:160px 24px 100px;
}

.scene--white { background:var(--white); }
.scene--light { background:var(--white-w); }

.scene--dark {
    background:linear-gradient(160deg, var(--dark-w), var(--dark));
    color:var(--white);
}


/* ═══════════════════════════════════
   REVEAL
   ═══════════════════════════════════ */

.reveal {
    opacity:0;
    transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}

.reveal[data-r="fade"]  { transform:translateY(0); }
.reveal[data-r="up"]    { transform:translateY(60px); }
.reveal[data-r="zoom"]  { transform:scale(0.9); }
.reveal[data-r="left"]  { transform:translateX(-60px); }
.reveal[data-r="right"] { transform:translateX(60px); }

.reveal.is-visible {
    opacity:1;
    transform:translate(0) scale(1);
}

/* Hero cinematic */
.cin {
    opacity:0; transform:translateY(40px);
    animation: cinIn 1s var(--ease) forwards;
}
.cin[data-cin="1"] { animation-delay:0.2s; }
.cin[data-cin="2"] { animation-delay:0.4s; }
.cin[data-cin="3"] { animation-delay:0.6s; }
.cin[data-cin="4"] { animation-delay:0.8s; }
.cin[data-cin="5"] { animation-delay:1.0s; }
.cin[data-cin="6"] { animation-delay:1.2s; }
.cin[data-cin="7"] { animation-delay:1.4s; }

@keyframes cinIn {
    to { opacity:1; transform:translateY(0); }
}


/* ═══════════════════════════════════
   BUTTONS
   ═══════════════════════════════════ */

.btn {
    display:inline-flex; align-items:center; justify-content:center;
    gap:10px; padding:17px 38px; border-radius:999px;
    font-weight:600; font-size:0.95rem;
    line-height:1.3;
    text-align:center;
    position:relative; overflow:hidden;
    transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}

.btn::after {
    content:""; position:absolute; inset:0;
    background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,0.3) 50%,transparent 70%);
    transform:translateX(-120%); transition:transform 0.65s var(--ease);
}
.btn:hover::after { transform:translateX(120%); }
.btn i { font-size:1.15rem; }

.btn-gold {
    background:linear-gradient(135deg, var(--gold-l), var(--gold-d));
    color:var(--white); box-shadow:var(--shadow-g);
}
.btn-gold:hover { transform:translateY(-3px); box-shadow:0 20px 56px rgba(212,175,55,0.35); }

.btn-outline {
    background:transparent;
    border:2px solid var(--gold);
    color:var(--gold);
}
.btn-outline:hover {
    background:var(--gold); color:var(--white); transform:translateY(-3px);
}

.btn--full { width:100%; }
.btn--sm { padding:13px 26px; font-size:0.88rem; }

.btn--full + .btn--full { margin-top:12px; }


/* ═══════════════════════════════════
   HEADER
   ═══════════════════════════════════ */

.header {
    position:fixed; top:16px; left:50%;
    transform:translateX(-50%);
    width:min(92%,1200px); z-index:100;
    border-radius:var(--r);
    background:rgba(255,255,255,0.06);
    backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
    border:1px solid rgba(255,255,255,0.08);
    transition:all 0.5s var(--ease);
}

.header.is-scrolled {
    top:10px;
    background:rgba(255,255,255,0.94);
    border-color:rgba(212,175,55,0.12);
    box-shadow:0 8px 32px rgba(0,0,0,0.06);
}

.header-inner {
    display:flex; align-items:center;
    justify-content:space-between; padding:14px 28px;
}

.logo {
    font-family:"Cormorant Garamond", serif;
    font-size:1.9rem; font-weight:700;
    color:var(--white);
    transition:color 0.4s var(--ease);
}
.header.is-scrolled .logo { color:var(--text); }
.logo span { color:var(--gold); margin:0 3px; }

.nav { display:flex; align-items:center; gap:32px; }

.nav-link {
    font-size:0.88rem; font-weight:500;
    color:rgba(255,255,255,0.75);
    position:relative; transition:color 0.3s var(--ease);
}
.header.is-scrolled .nav-link { color:var(--text-s); }

.nav-link::after {
    content:""; position:absolute;
    left:0; bottom:-4px;
    width:0; height:2px;
    background:var(--gold);
    transition:width 0.3s var(--ease);
}
.nav-link:hover { color:var(--gold); }
.nav-link:hover::after { width:100%; }

/* Hamburger */
.menu-toggle {
    display:none; width:44px; height:44px;
    border-radius:50%;
    background:rgba(255,255,255,0.1);
    position:relative;
    z-index:1001;
    flex-direction:column; align-items:center;
    justify-content:center; gap:5px;
}
.header.is-scrolled .menu-toggle { background:rgba(0,0,0,0.05); }

.menu-toggle span {
    display:block; width:20px; height:2px;
    background:var(--white); border-radius:2px;
    transition:all 0.35s var(--ease);
}
.header.is-scrolled .menu-toggle span { background:var(--text); }

.menu-toggle.is-active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-toggle.is-active span:nth-child(2) { opacity:0; transform:scaleX(0); }
.menu-toggle.is-active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }


/* ═══════════════════════════════════
   HERO
   ═══════════════════════════════════ */

.scene-bg {
    position:absolute; inset:0;
    background:linear-gradient(160deg, #1A1610, #2C261C 40%, #1E1B14 70%, #0C0A06);
    z-index:0;
}

.scene-bg::before,
.scene-bg::after {
    content:""; position:absolute; border-radius:50%;
    filter:blur(80px); pointer-events:none;
}

.scene-bg::before {
    width:700px; height:700px; top:-20%; left:-10%;
    background:radial-gradient(circle,rgba(212,175,55,0.15),transparent 70%);
    animation:gFloat 14s ease-in-out infinite;
}

.scene-bg::after {
    width:500px; height:500px; bottom:-15%; right:-5%;
    background:radial-gradient(circle,rgba(232,212,139,0.1),transparent 70%);
    animation:gFloat 18s ease-in-out infinite reverse;
}

@keyframes gFloat {
    0%,100% { transform:translate(0); }
    50%     { transform:translate(30px,-20px); }
}

.hero-content { position:relative; z-index:2; max-width:860px; }

.hero-content .arabic {
    font-size:clamp(1.6rem,3.5vw,2.6rem);
    color:var(--gold-l); margin-bottom:32px;
    line-height:1.6;
}

.hero-title {
    display:flex; flex-direction:column;
    align-items:center; margin-bottom:16px; color:var(--white);
}

.hero-name {
    display:inline-block;
    font-size:clamp(3rem,8vw,6.5rem);
    text-shadow:0 8px 30px rgba(0,0,0,0.3);
}

.hero-name-line { display:block; overflow:hidden; }

.hero-amp {
    font-family:"Cormorant Garamond", serif;
    font-size:clamp(1.5rem,3.5vw,2.5rem);
    font-style:italic; font-weight:400;
    color:var(--gold); line-height:1.6;
}

.hero-tag {
    font-size:1.1rem; color:rgba(255,255,255,0.65);
    letter-spacing:1px; margin-bottom:32px;
}

.hero-verse { margin-bottom:28px; }

.verse-ar {
    font-size:clamp(1.8rem,4vw,3rem);
    color:var(--gold); margin-bottom:8px;
}

.verse-fr {
    font-size:1rem; color:rgba(255,255,255,0.6);
}

.hero-intro {
    font-size:1.05rem; color:rgba(255,255,255,0.7);
    line-height:1.85; margin-bottom:24px;
}

.hero-badge {
    display:inline-flex; align-items:center; gap:12px;
    padding:16px 32px; border-radius:999px;
    background:rgba(212,175,55,0.12);
    border:1px solid rgba(212,175,55,0.25);
    font-weight:600; font-size:1.05rem;
    color:var(--gold-l); margin-bottom:20px;
}
.hero-badge i { font-size:1.3rem; color:var(--gold); }

.hero-doua {
    font-size:0.95rem; color:rgba(255,255,255,0.55);
    font-style:italic; margin-bottom:36px;
}

.hero-cta {
    display:flex; justify-content:center;
    gap:16px; flex-wrap:wrap;
}

/* Scroll hint */
.scroll-hint {
    position:absolute; bottom:32px; left:50%;
    transform:translateX(-50%); z-index:5;
    display:flex; flex-direction:column;
    align-items:center; gap:8px;
}

.scroll-mouse {
    width:24px; height:38px;
    border:2px solid rgba(212,175,55,0.4);
    border-radius:12px; position:relative;
}

.scroll-dot {
    position:absolute; top:6px; left:50%;
    transform:translateX(-50%);
    width:3px; height:3px; border-radius:50%;
    background:var(--gold);
    animation:sDot 2s ease infinite;
}

.scroll-hint span {
    font-size:0.68rem; letter-spacing:2px;
    text-transform:uppercase;
    color:rgba(255,255,255,0.35);
}

@keyframes sDot {
    0%  { opacity:1; transform:translate(-50%,0); }
    60% { opacity:0; transform:translate(-50%,14px); }
    100%{ opacity:0; transform:translate(-50%,0); }
}


/* ═══════════════════════════════════
   QURAN
   ═══════════════════════════════════ */

.scene--light { padding:80px 24px; text-align:center; }

.quran {
    font-family:"Cormorant Garamond", serif;
    font-size:clamp(1.5rem,3.2vw,2.4rem);
    font-style:italic; font-weight:500;
    line-height:1.65; color:var(--text);
    max-width:720px; margin:0 auto 24px;
    position:relative;
}

.quran::before {
    content:"\201C"; position:absolute;
    top:-28px; left:-14px;
    font-size:4.5rem; font-style:normal;
    color:rgba(212,175,55,0.2);
    font-family:"Cormorant Garamond", serif;
    line-height:1;
}

.quran-ref {
    display:block; font-style:normal;
    font-size:0.82rem; font-weight:600;
    letter-spacing:2.5px; text-transform:uppercase;
    color:var(--gold);
}


/* ═══════════════════════════════════
   INVITATION
   ═══════════════════════════════════ */

.inv-card {
    max-width:760px; margin:0 auto;
    text-align:center;
    border-radius:var(--r);
    background:var(--white-w);
    border:1px solid var(--gold-p);
    box-shadow:var(--shadow-h);
    position:relative;
    overflow:hidden;
}

/* Image de fond floral */
.inv-card-bg {
    position:absolute;
    inset:0;
    width:100%; height:100%;
    object-fit:cover;
    object-position:center;
    opacity:0.35;
    pointer-events:none;
    z-index:0;
}

.inv-card-content {
    position:relative;
    z-index:1;
    padding:64px 48px;
}

/* Gold corner accents */
.inv-corner {
    position:absolute; width:32px; height:32px;
    border-color:var(--gold); border-style:solid;
    opacity:0.5; z-index:2;
}
.inv-corner--tl { top:16px; left:16px;  border-width:2px 0 0 2px; border-radius:4px 0 0 0; }
.inv-corner--tr { top:16px; right:16px; border-width:2px 2px 0 0; border-radius:0 4px 0 0; }
.inv-corner--bl { bottom:16px; left:16px;  border-width:0 0 2px 2px; border-radius:0 0 0 4px; }
.inv-corner--br { bottom:16px; right:16px; border-width:0 2px 2px 0; border-radius:0 0 4px 0; }

.inv-card .heading { margin-bottom:16px; }

.inv-sub {
    font-size:1.1rem; color:var(--text-s);
    line-height:1.8; margin-bottom:32px;
}

.inv-details {
    display:flex; flex-direction:column;
    gap:14px; align-items:center;
}

.inv-pill {
    display:inline-flex; align-items:center; gap:12px;
    padding:14px 28px; border-radius:999px;
    background:rgba(212,175,55,0.06);
    border:1px solid rgba(212,175,55,0.15);
    font-weight:500; font-size:0.95rem;
    transition:all 0.3s var(--ease);
}
.inv-pill:hover { background:rgba(212,175,55,0.12); transform:translateY(-2px); }
.inv-pill i { color:var(--gold); font-size:1.15rem; }

.inv-note {
    margin-top:20px;
    display:inline-flex; align-items:flex-start; gap:10px;
    padding:12px 16px;
    border-radius:12px;
    background:rgba(212,175,55,0.08);
    color:var(--text-s);
    font-size:0.9rem;
    line-height:1.5;
}

.inv-note i {
    color:var(--gold);
    font-size:1rem;
    margin-top:2px;
}


/* ═══════════════════════════════════
   COUNTDOWN
   ═══════════════════════════════════ */

.cd-grid {
    display:flex; align-items:center;
    justify-content:center; gap:16px;
    flex-wrap:wrap; margin-bottom:28px;
}

.cd-box {
    width:120px; padding:32px 12px;
    text-align:center; border-radius:var(--r-sm);
    background:rgba(212,175,55,0.08);
    border:1px solid rgba(212,175,55,0.18);
    transition:all 0.4s var(--ease);
}
.cd-box:hover {
    background:rgba(212,175,55,0.16);
    transform:translateY(-6px);
    box-shadow:0 16px 40px rgba(212,175,55,0.12);
}

.cd-num {
    display:block; font-family:"Cormorant Garamond", serif;
    font-size:3.2rem; font-weight:700;
    color:var(--gold); line-height:1;
    margin-bottom:8px;
}

.cd-lbl {
    display:block; font-size:0.72rem; font-weight:600;
    text-transform:uppercase; letter-spacing:2.5px;
    color:rgba(255,255,255,0.45);
}

.cd-sep { color:var(--gold); font-size:2rem; opacity:0.3; padding-bottom:20px; }

.cd-sub { text-align:center; font-size:0.95rem; color:rgba(255,255,255,0.45); }


/* ═══════════════════════════════════
   TIMELINE
   ═══════════════════════════════════ */

.timeline {
    max-width:680px; margin:0 auto;
    position:relative; padding-left:100px;
}

.tl-track {
    position:absolute; left:80px; top:0; bottom:0;
    width:2px;
    background:linear-gradient(transparent, var(--gold-p), var(--gold-p), transparent);
}

.tl-step {
    display:flex; align-items:flex-start;
    gap:24px; margin-bottom:40px;
    position:relative;
}
.tl-step:last-child { margin-bottom:0; }

.tl-hour {
    position:absolute; left:-100px; top:10px;
    width:68px; text-align:right;
    font-family:"Cormorant Garamond", serif;
    font-size:1.15rem; font-weight:700;
    color:var(--gold);
}

.tl-dot {
    width:50px; height:50px; min-width:50px;
    border-radius:50%;
    background:linear-gradient(135deg, var(--gold), var(--gold-d));
    display:flex; align-items:center; justify-content:center;
    color:var(--white); font-size:1.15rem;
    box-shadow:var(--shadow-g); z-index:2;
    transition:transform 0.4s var(--ease);
}
.tl-step:hover .tl-dot { transform:scale(1.12) rotate(8deg); }

.tl-info {
    flex:1; padding:22px 26px;
    background:var(--white-w);
    border:1px solid var(--gold-p);
    border-radius:var(--r-sm);
    box-shadow:var(--shadow);
    transition:all 0.4s var(--ease);
}
.tl-step:hover .tl-info {
    transform:translateY(-4px);
    box-shadow:var(--shadow-h);
    border-color:rgba(212,175,55,0.3);
}

.tl-info h3 { margin-bottom:4px; font-size:1.15rem; }
.tl-info p { font-size:0.9rem; color:var(--text-m); line-height:1.6; }

.prog-note {
    margin-top:36px;
    text-align:center;
    font-size:0.9rem;
    color:var(--text-m);
    font-style:italic;
}


/* ═══════════════════════════════════
   LOCATION
   ═══════════════════════════════════ */

.loc-grid {
    display:grid; grid-template-columns:340px 1fr;
    gap:24px; align-items:stretch;
}

.loc-info {
    padding:44px 28px;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    text-align:center; border-radius:var(--r);
    background:rgba(212,175,55,0.06);
    border:1px solid rgba(212,175,55,0.15);
}

.loc-icon {
    width:64px; height:64px; margin-bottom:18px;
    border-radius:50%;
    background:linear-gradient(135deg, var(--gold), var(--gold-d));
    display:flex; align-items:center; justify-content:center;
    color:var(--white); font-size:1.5rem;
    box-shadow:var(--shadow-g);
}

.loc-info h3 { color:var(--white); margin-bottom:4px; font-size:1.4rem; }
.loc-info p { color:rgba(255,255,255,0.5); margin-bottom:24px; }

.loc-tips {
    width:100%;
    text-align:left;
    margin:0 0 20px;
    padding-left:18px;
    color:rgba(255,255,255,0.7);
    font-size:0.88rem;
    line-height:1.6;
}

.loc-map { border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-h); }
.loc-map iframe { width:100%; height:100%; min-height:380px; border:none; }


/* ═══════════════════════════════════
   RSVP
   ═══════════════════════════════════ */

.rsvp-card {
    max-width:520px; margin:0 auto;
    padding:52px 40px; border-radius:var(--r);
    background:var(--white-w);
    border:1px solid var(--gold-p);
    box-shadow:var(--shadow-h);
    display:flex; flex-direction:column; gap:20px;
}

.form-group--hidden {
    position:absolute;
    left:-9999px;
    width:1px;
    height:1px;
    overflow:hidden;
}

.form-group label {
    display:block; font-size:0.82rem; font-weight:600;
    color:var(--text); margin-bottom:7px; letter-spacing:0.3px;
}

.form-group input[type="text"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
    width:100%; padding:14px 16px;
    border:1px solid rgba(212,175,55,0.18);
    border-radius:12px; font-family:inherit;
    font-size:0.95rem; color:var(--text);
    background:var(--white); outline:none;
    transition:all 0.3s var(--ease);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color:var(--gold);
    box-shadow:0 0 0 3px rgba(212,175,55,0.1);
}

.form-group input::placeholder { color:var(--text-m); }

.form-group select {
    cursor:pointer; appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23D4AF37' stroke-width='1.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 16px center;
    padding-right:40px;
}

/* Custom radio */
.radio-group { display:flex; flex-direction:column; gap:10px; }

.radio-opt {
    position:relative;
    display:flex; align-items:center; gap:12px;
    cursor:pointer; font-size:0.92rem; color:var(--text-s);
    padding:12px 16px; border-radius:12px;
    border:1px solid rgba(212,175,55,0.1);
    transition:all 0.3s var(--ease);
}
.radio-opt:hover { background:rgba(212,175,55,0.05); border-color:rgba(212,175,55,0.2); }

.radio-opt.is-selected {
    background:rgba(212,175,55,0.12);
    border-color:rgba(212,175,55,0.45);
    color:var(--text);
    box-shadow:0 10px 24px rgba(212,175,55,0.1);
}

.radio-opt input {
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.radio-label-text {
    font-weight:500;
}

.radio-opt.is-selected .radio-label-text {
    font-weight:600;
}

.radio-dot {
    width:20px; height:20px; min-width:20px;
    border-radius:50%; border:2px solid var(--gold);
    position:relative; transition:all 0.3s var(--ease);
}

.radio-dot::after {
    content:""; position:absolute; inset:3px;
    border-radius:50%; background:var(--gold);
    transform:scale(0); transition:transform 0.25s var(--ease);
}

.radio-opt input:checked ~ .radio-dot::after { transform:scale(1); }
.radio-opt input:checked ~ .radio-dot { box-shadow:0 0 0 3px rgba(212,175,55,0.12); }

.presence-feedback {
    margin-top:8px;
    min-height:1.3em;
    font-size:0.84rem;
    font-weight:600;
    color:#6b7f44;
}

.rsvp-note {
    font-size:0.84rem;
    color:var(--text-s);
    line-height:1.65;
    text-align:center;
}

.rsvp-status {
    min-height:1.4em;
    text-align:center;
    font-size:0.9rem;
    font-weight:600;
    color:var(--text-s);
}

.rsvp-status.is-error {
    color:#a04444;
}

.rsvp-status.is-success {
    color:#56743b;
}

.rsvp-success {
    padding:20px 18px;
    border-radius:18px;
    background:rgba(212,175,55,0.08);
    border:1px solid rgba(212,175,55,0.18);
}

.rsvp-success h3 {
    margin-bottom:8px;
    text-align:center;
    font-size:1.3rem;
}

.rsvp-success p {
    text-align:center;
    color:var(--text-s);
    font-size:0.92rem;
    line-height:1.6;
}

.rsvp-summary {
    margin-top:14px;
    padding-left:18px;
    color:var(--text);
    font-size:0.9rem;
    line-height:1.7;
}


/* ═══════════════════════════════════
   ADMIN
   ═══════════════════════════════════ */

.admin-page {
    min-height:100vh;
    background:
        radial-gradient(circle at top left, rgba(212,175,55,0.14), transparent 30%),
        linear-gradient(160deg, #f7f3e8, #fffdf8 45%, #f0ead9);
    color:var(--text);
    background-color:#fffdf8;
}

.admin-shell {
    width:min(92%, 1240px);
    margin:0 auto;
    padding:48px 0 72px;
}

.admin-hero {
    text-align:center;
    margin-bottom:28px;
}

.admin-title {
    font-size:clamp(2.4rem, 5vw, 4rem);
    margin-bottom:10px;
}

.admin-subtitle {
    max-width:760px;
    margin:0 auto;
    color:#5e5549;
}

.admin-actions {
    margin-top:24px;
    display:flex;
    gap:14px;
    justify-content:center;
    flex-wrap:wrap;
}

.admin-auth-card,
.admin-table-card {
    background:rgba(255,255,255,0.85);
    border:1px solid rgba(212,175,55,0.2);
    border-radius:var(--r);
    box-shadow:var(--shadow);
}

.admin-auth-card {
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:24px;
    align-items:end;
    padding:28px;
    margin-bottom:24px;
}

.admin-auth-card h2,
.admin-table-card h2 {
    font-size:1.5rem;
    margin-bottom:8px;
}

.admin-auth-card p {
    color:var(--text-s);
}

.admin-auth-form label,
.admin-filter span {
    display:block;
    font-size:0.8rem;
    font-weight:600;
    color:var(--text-s);
    margin-bottom:8px;
    text-transform:uppercase;
    letter-spacing:1.2px;
}

.admin-auth-row {
    display:flex;
    gap:12px;
}

.admin-auth-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-bottom:12px;
}

.admin-auth-row input,
.admin-filter input {
    width:100%;
    padding:14px 16px;
    border:1px solid rgba(212,175,55,0.18);
    border-radius:12px;
    font:inherit;
    font-size:1rem;
    background:var(--white);
}

.admin-auth-row input:focus,
.admin-filter input:focus {
    outline:none;
    border-color:var(--gold);
    box-shadow:0 0 0 3px rgba(212,175,55,0.1);
}

.admin-status {
    grid-column:1 / -1;
    min-height:1.4em;
    font-weight:600;
}

.admin-status.is-error {
    color:#a04444;
}

.admin-status.is-success {
    color:#56743b;
}

.admin-locked {
    margin-bottom:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:18px;
    border-radius:18px;
    background:rgba(255,255,255,0.72);
    border:1px dashed rgba(212,175,55,0.4);
    color:#5e5549;
    font-weight:600;
}

.admin-locked i {
    color:var(--gold-d);
    font-size:1.1rem;
}

#adminProtected[hidden] {
    display:none !important;
}

.admin-stats {
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:18px;
    margin-bottom:24px;
}

.admin-stat-card {
    padding:24px;
    border-radius:22px;
    background:rgba(255,255,255,0.82);
    border:1px solid rgba(212,175,55,0.18);
    box-shadow:var(--shadow);
    text-align:center;
}

.admin-stat-card span {
    display:block;
    color:var(--text-s);
    font-size:0.85rem;
    margin-bottom:8px;
}

.admin-stat-card strong {
    font-family:"Cormorant Garamond", serif;
    font-size:2.2rem;
    color:var(--gold-d);
}

.admin-table-card {
    padding:28px;
}

.admin-table-head {
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:end;
    margin-bottom:18px;
}

.admin-table-head p {
    color:#5e5549;
}

.admin-filter {
    min-width:min(320px, 100%);
}

.admin-table-wrap {
    overflow:auto;
}

.admin-table {
    width:100%;
    border-collapse:collapse;
    min-width:880px;
}

.admin-table th,
.admin-table td {
    padding:15px 14px;
    text-align:left;
    border-bottom:1px solid rgba(212,175,55,0.14);
    vertical-align:top;
    font-size:0.92rem;
}

.admin-table th {
    font-size:0.78rem;
    text-transform:uppercase;
    letter-spacing:1.3px;
    color:#5e5549;
}

.admin-empty {
    text-align:center !important;
    color:#5e5549;
    padding:28px 14px !important;
}

.admin-presence {
    font-weight:600;
}

.admin-presence.is-yes {
    color:#56743b;
}

.admin-presence.is-no {
    color:#a04444;
}

.admin-delete-btn {
    padding:8px 12px;
    border-radius:999px;
    border:1px solid rgba(160,68,68,0.4);
    background:rgba(160,68,68,0.08);
    color:#8f3737;
    font:inherit;
    font-size:0.82rem;
    font-weight:600;
    cursor:pointer;
    transition:all 0.2s var(--ease);
}

.admin-delete-btn:hover {
    background:rgba(160,68,68,0.14);
    border-color:rgba(160,68,68,0.6);
}


/* ═══════════════════════════════════
   MESSAGE
   ═══════════════════════════════════ */

.msg-card {
    padding:64px 44px; text-align:center;
    border-radius:var(--r);
    background:rgba(212,175,55,0.05);
    border:1px solid rgba(212,175,55,0.12);
}

.msg-emoji { font-size:2.5rem; margin-bottom:18px; }

.msg-card .heading { margin-bottom:24px; }

.msg-card p {
    color:rgba(255,255,255,0.65); font-size:1.02rem;
    line-height:1.85; margin-bottom:10px;
    max-width:580px; margin-inline:auto;
}

.msg-sig {
    margin-top:32px;
    display:flex; flex-direction:column;
    align-items:center; gap:5px;
}
.msg-sig span { font-size:0.92rem; color:rgba(255,255,255,0.45); }
.msg-sig strong {
    font-family:"Cormorant Garamond", serif;
    font-size:1.45rem; color:var(--gold);
}


/* ═══════════════════════════════════
   CONTACTS
   ═══════════════════════════════════ */

.ct-grid {
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:22px; max-width:880px; margin:0 auto;
}

.ct-card {
    display:flex; flex-direction:column;
    align-items:center; text-align:center;
    padding:36px 20px; border-radius:var(--r);
    background:var(--white-w);
    border:1px solid var(--gold-p);
    box-shadow:var(--shadow);
    cursor:pointer; text-decoration:none;
    transition:all 0.4s var(--ease);
}
.ct-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-h); border-color:rgba(212,175,55,0.3); }

.ct-icon {
    width:60px; height:60px; border-radius:50%;
    background:linear-gradient(135deg, var(--gold), var(--gold-d));
    display:flex; align-items:center; justify-content:center;
    color:var(--white); font-size:1.3rem;
    margin-bottom:16px; box-shadow:var(--shadow-g);
    transition:transform 0.4s var(--ease);
}
.ct-card:hover .ct-icon { transform:scale(1.1); }

.ct-icon--wa {
    background:linear-gradient(135deg, #25D366, #128C7E);
    box-shadow:0 12px 32px rgba(37,211,102,0.2);
}

.ct-card h3 { margin-bottom:4px; font-size:1.1rem; }
.ct-card span { font-size:0.88rem; color:var(--text-m); }

.ct-cta {
    margin-top:12px; font-size:0.75rem !important;
    font-weight:600; text-transform:uppercase;
    letter-spacing:1.5px; color:var(--gold) !important;
}


/* ═══════════════════════════════════
   FOOTER
   ═══════════════════════════════════ */

.footer {
    background:var(--dark); color:var(--white);
    padding:64px 24px 40px; text-align:center;
    position:relative; overflow:hidden;
}

.footer::before {
    content:""; position:absolute;
    width:500px; height:500px;
    bottom:-250px; left:50%; transform:translateX(-50%);
    border-radius:50%;
    background:radial-gradient(circle, rgba(212,175,55,0.06), transparent 70%);
    filter:blur(60px); pointer-events:none;
}

.footer-orn {
    font-size:0.8rem; color:var(--gold);
    letter-spacing:14px; margin-bottom:20px;
}

.footer-names {
    font-size:clamp(1.9rem,4vw,3rem);
    color:var(--white); margin-bottom:8px;
}
.footer-names span { color:var(--gold); font-style:italic; font-weight:400; margin:0 6px; }

.footer-date {
    color:rgba(255,255,255,0.45);
    font-size:0.9rem; letter-spacing:1px;
    margin-bottom:20px;
}

.footer-line {
    width:60px; height:1.5px;
    margin:0 auto 20px;
    background:linear-gradient(90deg,transparent,var(--gold),transparent);
}

.footer small { font-size:0.8rem; color:rgba(255,255,255,0.3); }


/* ═══════════════════════════════════
    LIVRE D'OR
    ═══════════════════════════════════ */

.lor-quotes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 960px;
    margin: 0 auto 56px;
}

.lor-quote {
    padding: 36px 28px;
    text-align: center;
    border-radius: var(--r);
    background: var(--white);
    border: 1px solid var(--gold-p);
    box-shadow: var(--shadow);
    transition: all 0.4s var(--ease);
    position: relative;
    overflow: hidden;
}

.lor-quote::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(212,175,55,0.04), transparent);
    opacity: 0;
    transition: opacity 0.4s var(--ease);
}

.lor-quote:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-h);
    border-color: rgba(212,175,55,0.3);
}

.lor-quote:hover::before {
    opacity: 1;
}

.lor-emoji {
    font-size: 2.2rem;
    margin-bottom: 16px;
}

.lor-quote p {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.1rem;
    font-style: italic;
    line-height: 1.7;
    color: var(--text-s);
}

/* ── Formulaire Livre d'Or ── */

.lor-form {
    max-width: 560px;
    margin: 0 auto;
    padding: 52px 40px;
    border-radius: var(--r);
    background: var(--white);
    border: 1px solid var(--gold-p);
    box-shadow: var(--shadow-h);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.lor-form-title {
    text-align: center;
    font-size: 1.3rem;
    color: var(--text);
    margin-bottom: 8px;
}

.lor-form textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(212,175,55,0.18);
    border-radius: 12px;
    font-family: inherit;
    font-size: 0.95rem;
    color: var(--text);
    background: var(--white-w);
    outline: none;
    resize: vertical;
    min-height: 120px;
    transition: all 0.3s var(--ease);
}

.lor-form textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212,175,55,0.1);
}

.lor-form textarea::placeholder {
    color: var(--text-m);
}

.lor-counter {
    margin-top:8px;
    text-align:right;
    font-size:0.78rem;
    color:var(--text-m);
}

.lor-counter.is-limit {
    color:#a04444;
    font-weight:600;
}

.music-toggle {
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:120;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    border-radius:999px;
    background:rgba(26,22,16,0.86);
    color:var(--white);
    border:1px solid rgba(212,175,55,0.25);
    box-shadow:var(--shadow);
    font-size:0.84rem;
    font-weight:600;
    letter-spacing:0.3px;
    transition:all 0.3s var(--ease);
}

.music-toggle i { color:var(--gold); font-size:1rem; }

.music-toggle:hover {
    transform:translateY(-2px);
    border-color:rgba(212,175,55,0.5);
}

.music-toggle.is-on {
    background:rgba(212,175,55,0.16);
}


/* ── Responsive Livre d'Or ── */

@media (max-width: 768px) {
    .lor-quotes {
        grid-template-columns: 1fr;
        max-width: 400px;
    }

    .lor-quote {
        padding: 28px 22px;
    }

    .lor-form {
        padding: 36px 22px;
    }
}

/* ═══════════════════════════════════
   RESPONSIVE — TABLETTE
   ═══════════════════════════════════ */

@media (max-width:1024px) {
    .scene { padding:80px 24px; }

    .header {
        left:16px;
        right:16px;
        width:auto;
        transform:none;
    }

    .nav {
        position:fixed; top:0; left:0; right:0;
        width:100%; height:100vh; height:100dvh;
        flex-direction:column; align-items:flex-start;
        gap:0; padding:100px 28px 40px;
        background:rgba(255,255,255,0.97);
        backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
        box-shadow:none;
        transform:translateX(100%);
        transition:transform 0.4s var(--ease);
        z-index:999;
    }
    .nav.is-open { transform:translateX(0); }

    .nav-link {
        width:100%; padding:14px 0; font-size:1rem;
        color:var(--text) !important;
        border-bottom:1px solid rgba(0,0,0,0.06);
    }

    .menu-toggle { display:flex; }
    .loc-grid { grid-template-columns:1fr; }
    .ct-grid { grid-template-columns:1fr 1fr; }
    .timeline { padding-left:80px; }
    .tl-track { left:60px; }
    .tl-hour { left:-80px; width:56px; font-size:1rem; }

    .music-toggle {
        right:14px;
        bottom:14px;
    }

    .admin-auth-card {
        grid-template-columns:1fr;
        align-items:start;
    }

    .admin-stats {
        grid-template-columns:repeat(2, 1fr);
    }

    .admin-table-head {
        flex-direction:column;
        align-items:stretch;
    }

    .admin-filter {
        min-width:0;
    }
}


/* ═══════════════════════════════════
   RESPONSIVE — MOBILE
   ═══════════════════════════════════ */

@media (max-width:768px) {
    .scene { padding:56px 16px; }

    .scene-photo {
        background-position:center center;
    }

    .admin-shell {
        width:min(94%, 1240px);
        padding:28px 0 48px;
    }

    .admin-actions,
    .admin-auth-row {
        flex-direction:column;
    }

    .admin-actions .btn,
    .admin-auth-row .btn,
    .admin-auth-grid input {
        width:100%;
    }

    .container {
        width:min(92%, 1200px);
    }

    .admin-auth-grid {
        grid-template-columns:1fr;
    }

    .admin-stats {
        grid-template-columns:1fr;
    }

    .admin-auth-card,
    .admin-table-card {
        padding:20px;
    }

    .header { top:8px; left:8px; right:8px; width:auto; transform:none; }
    .header-inner { padding:10px 14px; }
    .logo { font-size:1.5rem; }
    .nav {
        position:absolute;
        top:calc(100% + 8px);
        left:0;
        right:0;
        width:100%;
        max-width:none;
        height:auto;
        max-height:calc(100dvh - 82px);
        padding:8px 16px;
        background:rgba(255,253,248,0.985);
        border:1px solid rgba(212,175,55,0.2);
        border-radius:18px;
        z-index:1000;
        overflow-y:auto;
        box-shadow:0 18px 36px rgba(0,0,0,0.14);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transform:translateY(-8px);
        transition:opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
    }

    .nav-link {
        padding:14px 4px;
        font-size:1rem;
    }

    .nav.is-open {
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transform:translateY(0);
    }

    .scene--hero {
        min-height:100vh;
        min-height:100dvh;
        padding:calc(148px + env(safe-area-inset-top)) 16px 58px;
    }
    .hero-content { width:100%; }
    .hero-content .arabic { font-size:1.15rem; margin-bottom:18px; }
    .hero-name { font-size:clamp(2rem,9vw,3rem); }
    .hero-tag { font-size:0.88rem; margin-bottom:18px; }
    .verse-ar { font-size:1.35rem; }
    .verse-fr { font-size:0.92rem; }
    .hero-intro {
        font-size:0.9rem;
        line-height:1.72;
        margin-bottom:20px;
    }
    .hero-badge {
        width:100%;
        justify-content:center;
        flex-wrap:wrap;
        font-size:0.88rem;
        padding:12px 18px;
    }
    .hero-doua {
        font-size:0.9rem;
        margin-bottom:28px;
    }
    .hero-cta { flex-direction:column; align-items:center; }
    .hero-cta .btn { width:100%; max-width:none; }
    .scroll-hint { display:none; }

    .sec-head { margin-bottom:36px; }
    .heading { font-size:clamp(1.7rem,6vw,2.5rem); }

    .inv-card-content { padding:34px 18px; }
    .inv-sub {
        font-size:1rem;
    }
    .inv-details { align-items:stretch; }
    .inv-pill,
    .inv-note {
        width:100%;
        justify-content:center;
        text-align:center;
    }
    .inv-pill { font-size:0.85rem; padding:11px 18px; }
    .inv-note {
        flex-direction:column;
        align-items:center;
    }

    .cd-grid { gap:10px; }
    .cd-box { width:90px; padding:24px 8px; }
    .cd-num { font-size:2.4rem; }
    .cd-sep { display:none; }

    .timeline { padding-left:0; }
    .tl-track { display:none; }
    .tl-step { flex-direction:column; align-items:center; text-align:center; gap:10px; }
    .tl-hour { position:static; width:auto; text-align:center; }
    .tl-info { padding:18px 22px; }

    .rsvp-card { padding:32px 18px; }
    .radio-opt { align-items:flex-start; }
    .presence-feedback { text-align:center; }
    .form-group label { font-size:0.88rem; }
    .form-group input[type="text"],
    .form-group input[type="tel"],
    .form-group select,
    .form-group textarea,
    .admin-auth-row input,
    .admin-auth-grid input {
        font-size:16px;
        min-height:52px;
    }
    .form-group textarea {
        min-height:120px;
    }

    .loc-info {
        padding:34px 22px;
    }

    .loc-tips {
        padding-left:0;
        list-style-position:inside;
        text-align:center;
    }

    .loc-info .btn--sm {
        width:100%;
    }

    .msg-card { padding:38px 18px; }
    .msg-card p {
        font-size:0.98rem;
    }

    .ct-grid { grid-template-columns:1fr; max-width:320px; }
    .ct-card { padding:28px 18px; }

    .footer { padding:42px 16px 30px; }
    .footer-names { font-size:1.8rem; }

    /* Envelope */
    .envelope {
        width:clamp(220px, 78vw, 300px);
        height:auto;
        aspect-ratio:18 / 13;
    }
    .env-cta { margin-top:32px; }
    .env-names { font-size:1.4rem; }
    .env-bismillah { font-size:1.15rem; }
}


@media (max-width:640px) {
    .admin-shell {
        width:min(95%, 1240px);
    }

    .admin-auth-card,
    .admin-table-card,
    .admin-stat-card {
        border-radius:20px;
    }

    .admin-table,
    .admin-table thead,
    .admin-table tbody,
    .admin-table tr,
    .admin-table td {
        display:block;
        width:100%;
    }

    .admin-table {
        min-width:0;
    }

    .admin-table thead {
        display:none;
    }

    .admin-table tr {
        padding:14px 14px 10px;
        margin-bottom:14px;
        border:1px solid rgba(212,175,55,0.14);
        border-radius:16px;
        background:rgba(255,255,255,0.7);
    }

    .admin-table td {
        display:flex;
        justify-content:space-between;
        gap:12px;
        padding:10px 0;
        border-bottom:1px solid rgba(212,175,55,0.1);
        text-align:right;
        font-size:0.88rem;
    }

    .admin-table td:last-child {
        border-bottom:none;
        padding-bottom:0;
    }

    .admin-table td::before {
        content:attr(data-label);
        flex:0 0 42%;
        text-align:left;
        font-size:0.74rem;
        font-weight:700;
        letter-spacing:1px;
        text-transform:uppercase;
        color:#5e5549;
    }

    .admin-empty {
        display:block !important;
        text-align:center !important;
    }

    .admin-empty::before {
        content:none !important;
    }

    .admin-delete-btn {
        width:100%;
    }
}


@media (max-width:420px) {
    .scene { padding:52px 14px; }

    .header {
        left:5px;
        right:5px;
        width:auto;
        transform:none;
        top:6px;
    }

    .header-inner {
        padding:9px 11px;
    }

    .nav {
        top:calc(100% + 6px);
        padding:6px 14px;
    }

    .hero-content .arabic {
        font-size:1.05rem;
    }

    .hero-name { font-size:1.85rem; }
    .hero-amp { font-size:1.05rem; }
    .hero-tag { font-size:0.82rem; }
    .verse-ar { font-size:1.22rem; }
    .verse-fr,
    .hero-intro,
    .hero-doua { font-size:0.88rem; }
    .cd-box { width:42%; }
    .loc-map iframe { min-height:240px; }

    .btn {
        padding:14px 18px;
    }

    .hero-cta .btn,
    .admin-actions .btn,
    .admin-auth-row .btn {
        max-width:none;
    }

    .rsvp-card,
    .lor-form,
    .admin-auth-card,
    .admin-table-card {
        padding:22px 14px;
    }

    .admin-title {
        font-size:2.1rem;
    }

    .admin-subtitle,
    .admin-auth-card p {
        font-size:0.95rem;
    }

    .music-toggle {
        right:10px;
        bottom:10px;
        padding:9px 12px;
    }

    .envelope { width:clamp(210px, 76vw, 270px); }
    .env-card-inner { padding:18px 14px; }
    .env-names { font-size:1.2rem; }
    .env-bismillah { font-size:1rem; }
    .env-youre-invited { font-size:0.72rem; }
}


@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        animation-duration:0.01ms !important;
        transition-duration:0.01ms !important;
    }
    #particles { display:none; }
    .env-particles { display:none; }
}