/* Post-cover composition. Cover and existing lower sections retain their styles. */
.wedding-hero{
    position:relative;
    isolation:isolate;
    box-sizing:border-box;
    min-height:100vh;
    min-height:100svh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    padding:calc(44px + env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) calc(94px + env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
    background:#063d32;
    color:#f8f2e7;
    text-align:center;
}
.hero-atmosphere,
.wedding-hero::after{
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
}
.hero-atmosphere{
    inset:-2%;
    background:url("images/bg/bg-01.jpg.jfif") center/cover no-repeat;
    animation:heroSlowZoom 28s ease-in-out infinite alternate;
}
.hero-atmosphere::after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(ellipse at 40% 35%, rgba(54,151,115,.28), transparent 60%), linear-gradient(115deg, transparent 35%, rgba(227,201,145,.07) 50%, transparent 65%);
    animation:heroLightDrift 22s ease-in-out infinite alternate;
}
.wedding-hero::after{
    content:"";
    background:radial-gradient(ellipse at 50% 40%, rgba(3,44,35,.12) 20%, rgba(2,28,24,.58) 100%), linear-gradient(180deg, rgba(3,43,35,.2), rgba(3,43,35,.06) 45%, #052e27);
}
.hero-content{ width:min(100%, 650px); }
.hero-kicker{
    font-size:9px;
    line-height:1.5;
    letter-spacing:.38em;
    text-transform:uppercase;
    color:#ddcda9;
}
.hero-names{
    margin:18px 0 22px;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(43px, 12.2vw, 88px);
    font-weight:500;
    letter-spacing:-.04em;
    line-height:1.08;
    white-space:nowrap;
    color:#fffaf0;
    text-shadow:0 3px 24px rgba(10,60,45,.2);
}
.hero-names span{
    color:#d8ba78;
    font-family:'Great Vibes',cursive;
    font-weight:400;
    font-size:.85em;
    margin-inline:.04em;
}
.hero-message{
    font-size:clamp(11px, 3vw, 13px);
    font-weight:300;
    line-height:1.95;
    color:rgba(248,242,231,.8);
}
.hero-countdown{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    width:min(100%, 390px);
    margin:36px auto 26px;
}
.hero-time{ position:relative; min-width:0; }
.hero-time + .hero-time::before{
    content:"";
    position:absolute;
    left:0;
    top:10px;
    width:1px;
    height:27px;
    background:linear-gradient(transparent, rgba(216,186,120,.35), transparent);
}
.hero-time > span{
    display:block;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(34px, 9vw, 48px);
    line-height:1;
    font-weight:500;
    font-variant-numeric:tabular-nums;
    color:#efdfba;
}
.hero-time small{
    display:block;
    margin-top:10px;
    font-size:8px;
    line-height:1.5;
    letter-spacing:.19em;
    text-transform:uppercase;
    color:rgba(248,242,231,.66);
}
.hero-date{
    font-family:'Cormorant Garamond',serif;
    font-size:18px;
    line-height:1.5;
    letter-spacing:.025em;
}
.save-date{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:9px;
    min-height:44px;
    box-sizing:border-box;
    margin-top:16px;
    padding:10px 20px;
    border:1px solid rgba(216,186,120,.5);
    border-radius:999px;
    background:rgba(234,214,171,.07);
    color:#eddbb7;
    font-size:9px;
    letter-spacing:.18em;
    text-transform:uppercase;
    text-decoration:none;
    transition:background-color .3s ease, transform .3s ease;
}
.save-date svg{ width:15px; height:15px; }
.save-date:hover{ background:rgba(234,214,171,.14); transform:translateY(-1px); }
.save-date:focus-visible,
.hero-scroll:focus-visible{ outline:2px solid #efdfba; outline-offset:5px; }
.hero-scroll{
    position:absolute;
    bottom:calc(20px + env(safe-area-inset-bottom));
    left:50%;
    transform:translateX(-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-width:44px;
    min-height:44px;
    text-decoration:none;
    color:rgba(248,242,231,.52);
    font-size:7px;
    line-height:1.5;
    letter-spacing:.28em;
    text-transform:uppercase;
}
.hero-mouse{
    position:relative;
    width:16px;
    height:27px;
    border:1px solid rgba(216,186,120,.42);
    border-radius:12px;
}
.hero-mouse > span{
    position:absolute;
    top:6px;
    left:50%;
    width:3px;
    height:3px;
    border-radius:50%;
    background:#ddc99c;
    animation:refinedScroll 4s ease-in-out infinite;
}
.islamic-opening{
    padding:clamp(78px, 12vw, 132px) max(28px, env(safe-area-inset-right)) clamp(78px, 12vw, 132px) max(28px, env(safe-area-inset-left));
    background:linear-gradient(#fffaf2, #f4eee3);
    text-align:center;
    color:#194e40;
}
.islamic-bismillah{
    font-family:serif;
    font-size:clamp(22px, 6vw, 32px);
    line-height:1.8;
    color:#a48750;
}
.islamic-opening h2{
    margin:26px 0 0;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(26px, 6.6vw, 36px);
    font-weight:500;
    line-height:1.3;
}
.islamic-rule{
    display:block;
    width:48px;
    height:1px;
    margin:25px auto;
    background:linear-gradient(90deg, transparent, #b29967, transparent);
}
.islamic-message{
    max-width:460px;
    margin-inline:auto;
    font-size:12px;
    font-weight:300;
    line-height:2.1;
    color:#6e6a5f;
}
.wedding-verse{
    padding:64px max(30px, env(safe-area-inset-right)) 80px max(30px, env(safe-area-inset-left));
    background:#f4eee3;
    text-align:center;
    color:#315646;
}
.wedding-verse blockquote{
    max-width:600px;
    margin:28px auto;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(23px, 5.6vw, 31px);
    font-style:italic;
    line-height:1.65;
}
.wedding-verse > p{ color:#927642; font-size:9px; letter-spacing:.2em; text-transform:uppercase; }
/* Preserve the cover control; use the requested compact size once opened. */
body:not(.invitation-locked) #musicBtn{ width:40px; height:40px; }
body.invitation-locked .hero-atmosphere,
body.invitation-locked .hero-atmosphere::after{ animation-play-state:paused; }
@keyframes heroSlowZoom{
    from{ transform:scale(1) translateY(-.2%); }
    to{ transform:scale(1.035) translateY(.2%); }
}
@keyframes heroLightDrift{
    from{ opacity:.55; transform:translateX(-1%); }
    to{ opacity:.95; transform:translateX(1%); }
}
@media (max-height:620px){
    .wedding-hero{ padding-top:calc(30px + env(safe-area-inset-top)); padding-bottom:calc(86px + env(safe-area-inset-bottom)); }
    .hero-names{ margin-block:13px 16px; }
    .hero-countdown{ margin-block:25px 20px; }
}
@media (prefers-reduced-motion:reduce){
    .hero-atmosphere,
    .hero-atmosphere::after,
    .hero-mouse > span{ animation:none; }
    .save-date{ transition:none; }
    .save-date:hover{ transform:none; }
}
/* Couple, verse and event: editorial details, scoped to these sections only. */
.couple{
    min-height:0;
    padding:32px max(28px, env(safe-area-inset-right)) 90px max(28px, env(safe-area-inset-left));
    background:#f4eee3;
    border:0;
}
.couple .couple-subtitle{ font-size:21px; color:#9a804d; }
.couple .couple-title{ margin-top:20px; font-size:clamp(38px, 10vw, 54px); }
.couple .couple-text{ max-width:520px; font-size:12px; line-height:2; margin:24px auto 52px; }
.couple .couple-wrapper{ max-width:900px; gap:38px; }
.couple .person{ max-width:340px; min-width:0; }
.couple .person-photo{
    width:min(100%, 248px);
    aspect-ratio:4 / 5;
    padding:5px;
    border:1px solid rgba(166,136,76,.4);
    border-radius:8px;
    background:transparent;
    box-shadow:none;
}
.couple .person-photo::after{ content:none; }
.couple .person-photo img{
    border-radius:3px;
    object-fit:cover;
    object-position:center bottom;
    transform:none;
    filter:none;
}
.couple .person h3{
    margin-top:26px;
    max-width:100%;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(29px, 8vw, 38px);
    font-weight:500;
    line-height:1.15;
    color:#164f41;
    text-wrap:balance;
}
.couple .parent{ margin-top:20px; }
.couple .parent-label{ font-size:8px; color:#88713f; letter-spacing:.2em; margin-bottom:10px; }
.couple .parent-names{ font-family:'Poppins',sans-serif; font-size:12px; font-weight:400; line-height:1.9; color:#5f665b; }
.couple .parent-ampersand{ font-size:18px; line-height:1.25; color:#a78b50; }
.couple .ampersand{ width:120px; margin:0; font-size:36px; opacity:.7; }
.wedding-verse{
    padding:76px max(32px, env(safe-area-inset-right)) 88px max(32px, env(safe-area-inset-left));
    background:#faf7f0;
}
.wedding-verse .islamic-rule{ width:52px; margin:0 auto 30px; }
.wedding-verse blockquote{ max-width:630px; font-size:clamp(24px, 5.5vw, 32px); line-height:1.65; font-weight:400; margin:0 auto 27px; color:#345448; text-wrap:pretty; }
.wedding-verse > p{ font-size:9px; font-weight:400; color:#8b7345; letter-spacing:.17em; }
.event{
    box-sizing:border-box;
    min-height:0;
    padding:80px max(28px, env(safe-area-inset-right)) 100px max(28px, env(safe-area-inset-left));
    background:linear-gradient(180deg, #faf7f0, #f2ede2);
    color:#164f41;
}
.event .event-subtitle{ font-size:9px; letter-spacing:.28em; color:#947b47; }
.event .event-title{ font-size:clamp(40px, 10vw, 56px); font-weight:500; line-height:1.1; color:#164f41; margin:16px 0 50px; }
.event .event-wrapper{ display:grid; grid-template-columns:minmax(0, 1fr); gap:46px; max-width:960px; margin:0 auto; }
.event .event-card{ box-sizing:border-box; width:100%; min-width:0; padding:34px 0 0; border:0; border-top:1px solid rgba(166,136,76,.32); border-radius:0; box-shadow:none; background:none; }
.event .event-card h3{ font-family:'Cormorant Garamond',serif; font-size:clamp(35px, 9vw, 44px); font-weight:500; line-height:1.2; color:#164f41; margin:0 0 25px; }
.event .event-card .event-day{ font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:#8b7345; }
.event .event-card .event-date{ margin:5px 0 9px; font-family:'Cormorant Garamond',serif; font-size:25px; line-height:1.4; color:#315646; }
.event .event-card .event-time{ font-size:12px; color:#65695c; }
.event .location{ margin:30px auto 0; max-width:330px; }
.event .location h4{ font-family:'Poppins',sans-serif; font-size:9px; font-weight:500; letter-spacing:.17em; text-transform:uppercase; color:#8b7345; margin:0 0 12px; }
.event .location p{ font-size:12px; line-height:1.95; color:#65695c; margin:0; overflow-wrap:break-word; }
.event .maps-btn{
    box-sizing:border-box;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    max-width:100%;
    margin-top:23px;
    padding:10px 19px;
    border:1px solid rgba(166,136,76,.6);
    border-radius:999px;
    background:transparent;
    color:#3d5b48;
    font-size:9px;
    line-height:1.5;
    letter-spacing:.14em;
    text-transform:uppercase;
    transition:background-color .25s ease, border-color .25s ease;
}
.event .maps-btn svg{ width:15px; height:15px; flex:none; }
.event .maps-btn:hover{ background:rgba(166,136,76,.08); border-color:#9b804a; }
.event .maps-btn:focus-visible{ outline:2px solid #164f41; outline-offset:5px; }
[data-detail-reveal].detail-reveal{ opacity:0; transform:translateY(12px); transition:opacity .75s ease, transform .75s cubic-bezier(.22,.61,.36,1); }
[data-detail-reveal].detail-visible,
[data-detail-reveal]:focus-within{ opacity:1; transform:none; }
@media (min-width:768px){
    .couple{ padding-top:48px; padding-bottom:110px; }
    .couple .couple-wrapper{ grid-template-columns:minmax(0, 1fr) 50px minmax(0, 1fr); gap:24px; align-items:start; }
    .couple .person-photo{ width:min(100%, 270px); }
    .couple .ampersand{ width:50px; margin-top:145px; }
    .couple .ampersand::before,
    .couple .ampersand::after{ content:none; }
    .wedding-verse{ padding-block:100px 108px; }
    .event{ padding-block:100px 120px; }
    .event .event-wrapper{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:64px; }
}
@media (prefers-reduced-motion:reduce){
    [data-detail-reveal].detail-reveal{ opacity:1; transform:none; transition:none; }
    .event .maps-btn{ transition:none; }
}
/* Keep a clear lane for the existing floating music control at every scroll position. */
@media (max-width:767px){
    .couple,
    .wedding-verse,
    .event{ padding-left:max(68px, env(safe-area-inset-left)); padding-right:max(68px, env(safe-area-inset-right)); }
    .couple .couple-subtitle{ font-size:18px; }
    .couple .couple-title,
    .event .event-title{ font-size:clamp(32px, 9vw, 44px); }
}
@media (min-width:768px) and (max-width:1023px){
    .couple,
    .wedding-verse,
    .event{ padding-left:max(68px, env(safe-area-inset-left)); padding-right:max(68px, env(safe-area-inset-right)); }
}
/* Tonal emerald, sage and stone palette. Color-only overrides. */
.wedding-hero{ background-color:var(--w-emerald); color:var(--w-ivory); }
.hero-kicker,
.hero-names span,
.hero-time > span,
.save-date{ color:var(--w-gold); }
.hero-names,
.hero-date{ color:var(--w-ivory); }
.hero-message{ color:var(--w-dark-body); }
.save-date{ border-color:var(--w-border); }
.islamic-opening{
    background:linear-gradient(180deg, var(--deep-emerald), var(--muted-emerald));
    color:var(--w-ivory);
}
.couple{ background:linear-gradient(180deg, var(--olive-greige) 80%, var(--dusty-sage)); }
.islamic-opening h2{ color:var(--w-ivory); }
.islamic-message{ color:var(--w-dark-body); }
.islamic-bismillah{ color:var(--w-gold); }
.couple .couple-title,
.couple .person h3{ color:var(--w-emerald); }
.couple .couple-text,
.couple .parent-names{ color:var(--w-body); }
.couple .couple-subtitle,
.couple .parent-label,
.couple .parent-ampersand,
.couple .ampersand{ color:var(--w-gold-ink); }
.couple .person-photo{ border-color:var(--w-border); }
.islamic-rule,
.couple .ampersand::before,
.couple .ampersand::after{ background:linear-gradient(90deg, transparent, var(--w-gold), transparent); }
.wedding-verse{
    background:var(--muted-emerald);
    color:var(--w-ivory);
}
.wedding-verse blockquote{ color:var(--w-ivory); }
.wedding-verse > p{ color:var(--w-gold); }
.event{
    background:linear-gradient(180deg, var(--warm-stone) 85%, var(--olive-greige));
    color:var(--w-emerald-deep);
}
.event .event-title,
.event .event-card h3,
.event .event-card .event-date{ color:var(--w-emerald-deep); }
.event .event-subtitle,
.event .event-card .event-day,
.event .location h4{ color:var(--w-gold-ink); }
.event .event-card .event-time,
.event .location p{ color:var(--w-body); }
.event .event-card,
.event .maps-btn{ border-color:var(--w-border); }
.event .maps-btn{ color:var(--w-gold-ink); background:transparent; }
.event .maps-btn:hover{ color:var(--deep-emerald); background:rgba(181,154,98,.12); border-color:var(--muted-gold); }
.event .maps-btn:focus-visible{ outline-color:var(--w-emerald-deep); }
/* Final palette for image overlays and small accents; geometry is unchanged. */
.cover{
    background:linear-gradient(90deg, rgba(18,53,47,.48), rgba(18,53,47,.12) 50%, rgba(18,53,47,.48)), url("images/cover/cover-01.jpg.jfif") center/cover no-repeat, var(--deep-emerald);
    color:var(--soft-ivory);
}
.cover::after{
    background:radial-gradient(ellipse at 50% 40%, rgba(44,81,72,.1), rgba(18,53,47,.52)), linear-gradient(180deg, rgba(18,53,47,.18), rgba(18,53,47,.06) 42%, rgba(18,53,47,.62));
}
.cover-frame,
.cover-frame::before,
.cover-frame::after{ border-color:var(--muted-gold); }
.cover-names,
.guest-name,
.cover-eyebrow,
.cover-recipient-label{ color:var(--soft-ivory); }
.cover-ampersand,
.cover-date{ color:var(--muted-gold); }
.cover-invitation{ background:linear-gradient(135deg, rgba(44,81,72,.46), rgba(18,53,47,.4)); border-color:var(--w-border); }
.cover .open-button{ background:var(--muted-gold); color:var(--deep-emerald); border-color:var(--muted-gold); }
.cover .open-button:hover{ background:var(--warm-stone); }
.cover .open-button:focus-visible{ outline-color:var(--soft-ivory); }
.wedding-hero::after{
    background:radial-gradient(ellipse at 50% 40%, rgba(18,53,47,.12) 20%, rgba(18,53,47,.58)), linear-gradient(180deg, rgba(18,53,47,.2), rgba(18,53,47,.06) 45%, var(--deep-emerald));
}
.hero-atmosphere::after{
    background:radial-gradient(ellipse at 40% 35%, rgba(44,81,72,.28), transparent 60%), linear-gradient(115deg, transparent 35%, rgba(181,154,98,.07) 50%, transparent 65%);
}
.cover .overlay::before{
    background:radial-gradient(ellipse at 40% 38%, rgba(44,81,72,.18), transparent 58%), linear-gradient(115deg, transparent 36%, rgba(181,154,98,.045) 49%, transparent 62%);
}
.hero-time + .hero-time::before{ background:linear-gradient(transparent, var(--w-border), transparent); }
.hero-time small,
.hero-scroll{ color:var(--soft-ivory); }
.hero-mouse{ border-color:var(--w-border); }
.hero-mouse > span{ background:var(--muted-gold); }
.save-date{ background:rgba(181,154,98,.07); }
.save-date:hover{ background:rgba(181,154,98,.14); }
.save-date:focus-visible,
.hero-scroll:focus-visible{ outline-color:var(--soft-ivory); }
.couple .parent-ampersand,
.couple .ampersand,
.event .maps-btn svg{ color:var(--muted-gold); }
#musicBtn{ background:rgba(18,53,47,.8); color:var(--muted-gold); border-color:var(--muted-gold); }
#musicBtn:hover{ background:rgba(44,81,72,.92); border-color:var(--muted-gold); }
#musicBtn::after{ border-color:rgba(181,154,98,.3); }
#musicBtn:focus-visible{ outline-color:var(--soft-ivory); }
/* Palette hooks for these sections when present; no sections are added. */
.gallery,
.closing{ background-color:var(--deep-emerald); color:var(--soft-ivory); }
.rsvp,
.gift{ background-color:var(--olive-greige); color:var(--deep-emerald); }
/* Love Story: a continuous editorial timeline, using the existing palette. */
.story{
    box-sizing:border-box;
    padding:100px max(72px, env(safe-area-inset-right)) 100px max(24px, env(safe-area-inset-left));
    background:linear-gradient(180deg, var(--olive-greige), var(--muted-emerald) 80px, var(--deep-emerald));
    color:var(--soft-ivory);
}
.story .story-subtitle{ font-size:9px; line-height:1.6; letter-spacing:.28em; color:var(--muted-gold); }
.story .story-title{
    max-width:700px;
    margin:18px auto 28px;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(34px, 8.5vw, 58px);
    font-weight:500;
    line-height:1.12;
    letter-spacing:.025em;
    color:var(--soft-ivory);
    text-wrap:balance;
}
.story .story-text{
    max-width:570px;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(20px, 5vw, 25px);
    line-height:1.6;
    color:var(--soft-ivory);
    text-wrap:pretty;
}
.story .story-verse{ margin-top:20px; font-size:9px; line-height:1.6; letter-spacing:.16em; font-weight:400; color:var(--muted-gold); }
.story .timeline{ position:relative; max-width:900px; margin:60px auto 0; }
.story .timeline::before{
    content:"";
    position:absolute;
    left:5px;
    top:17px;
    bottom:0;
    width:1px;
    background:linear-gradient(var(--muted-gold), rgba(181,154,98,.28) 85%, transparent);
    pointer-events:none;
}
.story .timeline-item{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:15px;
    align-items:start;
    padding:0 0 52px 26px;
    margin:0;
    text-align:left;
}
.story .timeline-item:last-child{ padding-bottom:0; }
.story .timeline-item::before{
    content:"";
    position:absolute;
    left:2px;
    top:13px;
    width:7px;
    height:7px;
    box-sizing:border-box;
    border:1px solid var(--muted-gold);
    border-radius:50%;
    background:var(--muted-emerald);
}
.story .timeline-date{
    min-width:0;
    font-family:'Cormorant Garamond',serif;
    font-size:28px;
    font-weight:500;
    line-height:1.25;
    color:var(--muted-gold);
}
.story .timeline-content{
    min-width:0;
    padding:0;
    background:none;
    border:0;
    border-radius:0;
    box-shadow:none;
}
.story .timeline-content h3{
    margin:0 0 16px;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(25px, 6vw, 32px);
    font-weight:500;
    line-height:1.25;
    color:var(--soft-ivory);
    text-wrap:pretty;
}
.story .timeline-content p{
    font-family:'Poppins',sans-serif;
    font-size:14px;
    font-weight:400;
    line-height:1.95;
    color:var(--soft-ivory);
    overflow-wrap:break-word;
}
@media (min-width:768px){
    .story{ padding:110px max(72px, env(safe-area-inset-right)) 120px max(72px, env(safe-area-inset-left)); }
    .story .timeline{ margin-top:80px; }
    .story .timeline::before{ left:170px; }
    .story .timeline-item{ grid-template-columns:145px minmax(0, 1fr); column-gap:56px; padding:0 0 64px; }
    .story .timeline-item::before{ left:167px; }
    .story .timeline-date{ font-size:30px; text-align:right; }
    .story .timeline-content p{ font-size:15px; }
}
/* Final sequence: local confirmation, wishes and a quiet closing. */
.response-section{ box-sizing:border-box; padding:80px max(72px, env(safe-area-inset-right)) 80px max(24px, env(safe-area-inset-left)); text-align:center; }
.response-section[hidden]{ display:none; }
.response-inner{ max-width:520px; margin-inline:auto; }
.rsvp.response-section{ background:linear-gradient(var(--deep-emerald), var(--muted-emerald) 130px); color:var(--soft-ivory); }
.guestbook.response-section{ background:var(--muted-emerald); color:var(--soft-ivory); }
.gift.response-section{ background:var(--olive-greige); color:var(--deep-emerald); }
.response-section h2{ margin:14px 0 20px; font-family:'Cormorant Garamond',serif; font-size:clamp(36px, 9vw, 48px); font-weight:500; line-height:1.15; }
.response-kicker{ color:var(--muted-gold); font-size:9px; letter-spacing:.19em; text-transform:uppercase; line-height:1.7; }
.response-intro{ font-size:14px; line-height:1.85; }
.response-section .local-notice{ margin:20px 0 28px; color:var(--soft-ivory); font-size:12px; line-height:1.8; }
.response-form{ margin-top:30px; text-align:left; }
.response-form label{ display:block; margin:20px 0 9px; font-size:13px; line-height:1.5; }
.response-form input,
.response-form select,
.response-form textarea{
    box-sizing:border-box; display:block; width:100%; min-width:0; min-height:48px; padding:12px;
    border:1px solid rgba(181,154,98,.65); border-radius:4px; background:var(--deep-emerald); color:var(--soft-ivory);
    font:400 16px/1.6 'Poppins',sans-serif; scroll-margin-block:90px;
}
.response-form textarea{ min-height:160px; resize:vertical; }
.response-form input:focus-visible,
.response-form select:focus-visible,
.response-form textarea:focus-visible,
.response-button:focus-visible{ outline:2px solid var(--soft-ivory); outline-offset:4px; }
.response-section .response-button{ display:inline-block; max-width:100%; min-height:46px; padding:12px 17px; margin-top:25px; border:1px solid var(--muted-gold); border-radius:999px; background:transparent; color:var(--soft-ivory); font-size:12px; line-height:1.6; font-weight:400; transition:background-color .25s ease; }
.response-section .response-button:hover{ background:rgba(181,154,98,.12); transform:none; }
.response-section .response-button:disabled{ opacity:.6; cursor:wait; }
.form-feedback{ margin-top:16px; font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.form-feedback[data-state="error"]{ border-left:2px solid var(--muted-gold); padding-left:12px; }
.wish-list-heading{ margin-top:44px; padding-top:25px; border-top:1px solid var(--w-border); font-family:'Cormorant Garamond',serif; font-size:24px; }
.wish-empty{ margin-top:18px; font-size:13px; line-height:1.9; }
.wish-list{ list-style:none; padding:0; margin:22px 0 0; text-align:left; }
.wish-list li{ padding:22px 0; border-bottom:1px solid var(--w-border); overflow-wrap:anywhere; }
.wish-list h3{ font-family:'Cormorant Garamond',serif; font-size:25px; line-height:1.3; font-weight:500; margin:0 0 10px; }
.wish-list p{ font-size:14px; line-height:1.9; white-space:pre-wrap; }
.wish-list time{ display:block; margin-top:12px; font-size:10px; line-height:1.6; }
.closing.response-section{ background:linear-gradient(var(--muted-emerald), var(--deep-emerald)); color:var(--soft-ivory); padding-bottom:calc(90px + env(safe-area-inset-bottom)); }
.closing-rule{ display:block; width:56px; height:1px; margin:0 auto 36px; background:linear-gradient(90deg, transparent, var(--muted-gold), transparent); }
.closing-message{ font-size:14px; line-height:2; }
.closing-salam{ font-family:'Cormorant Garamond',serif; font-size:clamp(22px, 5vw, 27px); line-height:1.6; margin-top:32px; }
.closing #closingNames{ margin:35px 0 0; font-size:clamp(39px, 10vw, 64px); letter-spacing:-.035em; }
.closing #closingNames span{ font-family:'Great Vibes',cursive; color:var(--muted-gold); }
.closing footer{ margin-top:64px; font-size:10px; line-height:1.8; letter-spacing:.1em; color:var(--muted-gold); }
@media(min-width:768px){ .response-section{ padding:90px max(72px, env(safe-area-inset-right)) 90px max(72px, env(safe-area-inset-left)); } }
@media(prefers-reduced-motion:reduce){ .response-section .response-button{ transition:none; } }
