:root{--maroon:#65151d;--wine:#3b0d16;--indigo:#082f49;--gold:#d7a84b;--pale-gold:#f3d993;--ivory:#fff4d8;--cream:#f8e8c4;--emerald:#17553d;--ink:#3b211b;--serif:Cormorant Garamond,serif;--display:Cinzel,serif;--sans:Manrope,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:16px var(--sans)}
img{display:block;width:100%}
a{color:inherit}
.hero{height:100svh;min-height:690px;position:relative;overflow:hidden;background:var(--wine)}
.hero-image{height:100%;object-fit:cover;object-position:center 54%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(37,10,10,.25),rgba(37,10,10,.03) 48%,rgba(37,10,10,.58))}
.hero-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:8vh 22px 28px;color:var(--ivory);text-shadow:0 3px 20px rgba(40,7,8,.8)}
.kicker{text-transform:uppercase;letter-spacing:.24em;font-size:.78rem;font-weight:600;margin:0;color:var(--maroon)}
.hero .kicker{color:var(--pale-gold)}
.hero h1{font:500 clamp(3rem,7.4vw,7rem)/.82 var(--display);text-transform:uppercase;margin:4vh 0 .8rem;display:flex;flex-direction:column}
.hero h1 i{font:500 .48em/1.1 var(--serif);color:var(--gold)}
.announcement{text-transform:uppercase;letter-spacing:.28em;color:var(--pale-gold);font-size:.75rem}
.open-invite{margin-top:auto;text-decoration:none;border:1px solid rgba(242,209,132,.8);background:rgba(80,15,24,.55);backdrop-filter:blur(10px);padding:13px 18px;border-radius:999px;font-size:.78rem;text-transform:uppercase;letter-spacing:.09em}
.open-invite span{margin-left:8px}
.music{position:fixed;z-index:30;right:16px;top:16px;border:1px solid rgba(255,232,178,.8);background:rgba(75,13,23,.84);color:var(--ivory);border-radius:999px;padding:8px 13px 8px 8px;display:flex;align-items:center;gap:8px;cursor:pointer}
.music span{width:28px;height:28px;display:grid;place-items:center;background:var(--gold);color:var(--wine);border-radius:50%}
.music b{font:600 .72rem var(--sans);text-transform:uppercase}
.formal-invite{min-height:100svh;padding:clamp(70px,10vw,140px) 20px;display:grid;place-items:center;background:url('assets/andhra-kalamkari-background.png') center/cover}
.invite-panel{width:min(790px,92vw);text-align:center;padding:clamp(48px,8vw,92px) clamp(25px,8vw,90px);background:rgba(255,246,221,.94);border:2px solid var(--gold);outline:1px solid rgba(215,168,75,.65);outline-offset:9px;border-radius:180px 180px 8px 8px;box-shadow:0 30px 90px rgba(35,8,12,.36)}
.sanskrit{font-family:var(--serif);color:#b3394f;letter-spacing:.08em;font-weight:600}
.family{font:italic clamp(2.8rem,6vw,5.3rem)/1 var(--serif);color:#0b6f8c;margin:24px 0}
.invite-line{font:1.35rem/1.35 var(--serif)}
.invite-panel h2{font:500 clamp(2.8rem,7vw,6.1rem)/.95 var(--display);color:#bd842e;text-transform:uppercase;margin:28px 0}
.invite-panel h2 em{display:block;font:italic .7em var(--serif);color:#0b6f8c}
.parent-lines{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;font:1.15rem var(--serif)}
.parent-lines p{margin:0}
.parent-lines strong{font-weight:500;color:var(--maroon)}
.divider{font-size:1.8rem;color:var(--gold)}
.date-mark{margin:38px 0 20px;color:var(--maroon);text-transform:uppercase;letter-spacing:.16em;font-weight:600}
.text-link{color:var(--maroon);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;text-underline-offset:5px}
.story{padding:clamp(90px,13vw,170px) 20px;background:linear-gradient(rgba(69,12,21,.78),rgba(69,12,21,.86)),url('assets/rama-sita-ramayana-background.png') center 48%/cover fixed;color:var(--ivory)}
.story-copy{width:min(840px,92vw);margin:auto;text-align:center;padding:clamp(45px,8vw,85px);background:rgba(62,10,20,.88);border:1px solid var(--gold)}
.gold{color:var(--pale-gold)}
.story h2,.section-title h2,.venues h2,footer h2{font:500 clamp(2.8rem,7vw,5.8rem)/1 var(--display);margin:14px 0 20px}
.story h2{color:var(--pale-gold)}
.ornament{display:block;color:var(--gold);font-size:1.8rem;margin-bottom:25px}
.story-copy>p:not(.kicker){font:clamp(1.15rem,2vw,1.45rem)/1.5 var(--serif)}
.celebrations{padding:clamp(80px,10vw,140px) max(18px,5vw);background:linear-gradient(rgba(248,232,196,.94),rgba(248,232,196,.96)),url('assets/andhra-kalamkari-background.png') center/900px auto}
.section-title{text-align:center;max-width:800px;margin:0 auto 70px}
.section-title h2{color:var(--maroon)}
.section-title>p:last-child{font:1.3rem var(--serif)}
.event{--tone:var(--maroon);max-width:1120px;margin:0 auto 68px;display:grid;grid-template-columns:1.05fr .95fr;background:var(--tone);color:var(--ivory);border:8px solid var(--gold);box-shadow:0 25px 65px rgba(67,27,18,.23);overflow:hidden}
.event.reverse{grid-template-columns:.95fr 1.05fr}
.event.reverse figure{order:2}
.event[data-tone=turmeric]{--tone:#9b5b09}
.event[data-tone=emerald]{--tone:#174b38}
.event[data-tone=indigo]{--tone:#092f4b}
.event[data-tone=vermilion]{--tone:#7a1823}
.event[data-tone=royal]{--tone:#542d68}
.event figure{margin:0;min-height:520px}
.event figure img{height:100%;object-fit:cover}
.event-copy{position:relative;padding:clamp(42px,6vw,76px);display:flex;flex-direction:column;justify-content:center;text-align:center}
.event-copy:before{content:"";position:absolute;inset:13px;border:1px solid rgba(244,214,146,.6);pointer-events:none}
.event-number{color:var(--pale-gold);text-transform:uppercase;letter-spacing:.22em;font-size:.7rem}
.event h3{font:500 clamp(3.6rem,7vw,6.5rem)/1 var(--serif);margin:10px 0 28px}
.when{display:flex;justify-content:center;gap:18px;text-transform:uppercase;letter-spacing:.11em;color:var(--pale-gold)}
.when span:before{content:"•";margin-right:18px}
.where{font:500 1.65rem var(--serif);margin:22px 0 6px}
.address{font-size:.76rem;line-height:1.55;opacity:.8;max-width:400px;margin:0 auto}
.actions{display:flex;justify-content:center;gap:9px;margin-top:30px;position:relative}
.actions a,.actions button{border:1px solid rgba(244,214,146,.75);background:transparent;color:var(--ivory);border-radius:999px;padding:11px 14px;text-decoration:none;font:600 .7rem var(--sans);text-transform:uppercase;cursor:pointer}
.venues{padding:clamp(85px,11vw,150px) max(22px,8vw);background:var(--indigo);color:var(--ivory)}
.venues-heading{text-align:center}
.venues h2{color:var(--pale-gold)}
.venue-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:1050px;margin:50px auto}
.venue-cards article{border:1px solid rgba(242,211,147,.5);padding:40px}
.venue-cards span{color:var(--gold)}
.venue-cards h3{font:500 2rem var(--serif);margin:12px 0 5px}
.venue-cards p{color:#b9cbd2}
.venue-cards a{display:inline-block;margin-top:20px;color:var(--pale-gold);font-size:.78rem;text-transform:uppercase}
footer{text-align:center;padding:clamp(90px,12vw,160px) 20px;background:linear-gradient(rgba(255,244,216,.91),rgba(255,244,216,.94)),url('assets/andhra-kalamkari-background.png') center bottom/cover}
footer h2{color:var(--maroon);max-width:860px;margin:22px auto}
.contact{display:inline-block;margin-top:18px;background:var(--maroon);color:var(--ivory);text-decoration:none;padding:14px 20px;text-transform:uppercase;font-size:.75rem}
.signature{font:1.15rem var(--serif);margin-top:55px}
.signature span{font-size:2.5rem;font-style:italic;color:#0b6f8c}
nav{position:fixed;z-index:25;left:50%;bottom:14px;transform:translateX(-50%);display:flex;padding:5px;border-radius:999px;background:rgba(255,247,226,.91);backdrop-filter:blur(12px)}
nav a{text-decoration:none;padding:9px 13px;border-radius:999px;color:var(--maroon);font-size:.7rem;font-weight:600}
#youtubePlayer{position:fixed;left:-5px;bottom:-5px;width:1px;height:1px}
.reveal{opacity:0;transform:translateY(24px);transition:.8s}
.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.parent-lines{grid-template-columns:1fr}
.event,.event.reverse{grid-template-columns:1fr}
.event.reverse figure{order:0}
.event figure{min-height:auto;aspect-ratio:1}
.venue-cards{grid-template-columns:1fr}
.story{background-attachment:scroll}
}
@media(max-width:540px){.hero-image{object-position:center 58%}
.hero-content{padding-top:11vh}
.hero h1{font-size:clamp(3rem,15vw,4.8rem)}
.music b{display:none}
.music{padding:7px}
.invite-panel{border-radius:90px 90px 6px 6px;padding:48px 22px}
.event{border-width:5px;margin-bottom:30px}
.event-copy{padding:44px 22px}
.event h3{font-size:3.8rem}
.when{flex-direction:column}
.when span:before{display:none}
.actions{flex-wrap:wrap}
nav{width:calc(100% - 18px);justify-content:center}
nav a{padding:9px 10px}
}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}
}

body.envelope-closed{overflow:hidden}
.opening-screen{position:fixed;inset:0;z-index:100;background:#240b0e;display:grid;place-items:center;overflow:hidden;transition:opacity .8s ease,visibility .8s ease,transform .8s ease}
.opening-screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.opening-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,7,10,.06) 45%,rgba(32,7,10,.78) 100%)}
.opening-copy{position:relative;z-index:2;align-self:end;text-align:center;color:var(--ivory);padding:0 20px max(7vh,45px);text-shadow:0 2px 14px rgba(31,5,8,.85)}
.opening-copy p{font:500 clamp(1.5rem,3vw,2.2rem) var(--display);letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px}
.opening-copy button{border:1px solid var(--pale-gold);background:rgba(92,18,28,.9);color:var(--ivory);padding:15px 25px;border-radius:999px;font:600 .78rem var(--sans);letter-spacing:.13em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 30px rgba(31,4,7,.35)}
.opening-copy button:hover{background:var(--pale-gold);color:var(--wine)}
.opening-screen.opened{opacity:0;visibility:hidden;transform:scale(1.04);pointer-events:none}
.envelope-closed>.music,.envelope-closed>nav{opacity:0;pointer-events:none}
.music,nav{transition:opacity .45s ease}
@media(max-width:540px){.opening-screen img{object-position:center 46%}.opening-copy{padding-bottom:max(8vh,55px)}
}
