:root {
  --ivory: #f6f1e8;
  --warm-white: #fffdf8;
  --paper: #f8f3e9;
  --paper-deep: #eee4d4;
  --gold: #92794d;
  --gold-deep: #765b2b;
  --champagne: #c5ac7b;
  --gold-pale: #e1d0aa;
  --ink: #493727;
  --muted: #806d57;
  --sage: #a9ad91;
  --line: rgba(146, 121, 77, .38);
  --shadow: 0 18px 55px rgba(76, 53, 24, .13);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --display: 'Playfair Display', Georgia, serif;
  --script: 'Great Vibes', 'Brush Script MT', cursive;
  --hindi: 'Noto Serif Devanagari', Georgia, serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 86px; }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--serif); font-size: 18px; line-height: 1.55; overflow-x: hidden; }
body.intro-locked { overflow: hidden; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
.section-anchor { scroll-margin-top: 86px; }
.section-pad { padding: 100px 24px; position: relative; }
.section-heading { text-align: center; max-width: 720px; margin: 0 auto 56px; }
.section-kicker, .hero-kicker, .eyebrow { font-family: var(--display); letter-spacing: .23em; font-size: 10px; line-height: 1.7; color: var(--gold-deep); font-weight: 600; }
.script-heading { font-family: var(--script); font-weight: 400; font-size: clamp(46px, 6vw, 72px); line-height: 1.14; color: #684522; margin: 10px 0 18px; }
.section-intro { max-width: 590px; margin: 0 auto; color: var(--muted); font-size: 20px; }
.ornament-rule, .floral-divider { display: flex; align-items: center; justify-content: center; gap: 13px; color: var(--gold); width: min(250px, 70%); margin: 22px auto; }
.ornament-rule span, .floral-divider span { height: 1px; flex: 1; background: linear-gradient(90deg, transparent, var(--champagne)); }
.ornament-rule span:last-child, .floral-divider span:last-child { background: linear-gradient(90deg, var(--champagne), transparent); }
.ornament-rule b { font-size: 18px; font-weight: 400; }
.floral-divider b { font-size: 27px; font-weight: 400; }
.gold-button { border: 1px solid #a88446; color: #fffaf0; background: linear-gradient(145deg, #9c7c45, #765322); box-shadow: inset 0 1px rgba(255,255,255,.38), 0 7px 16px rgba(103,72,28,.18); border-radius: 100px; padding: 13px 24px; font-family: var(--display); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; display: inline-flex; align-items: center; justify-content: center; gap: 17px; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.gold-button:hover { transform: translateY(-2px); box-shadow: inset 0 1px rgba(255,255,255,.38), 0 12px 22px rgba(103,72,28,.23); }
.inline-link { display: inline-flex; align-items: center; gap: 12px; font-family: var(--display); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-deep); border-bottom: 1px solid var(--champagne); padding-bottom: 5px; margin-top: 15px; }
.inline-link span { font-size: 16px; }
.text-button { border: 0; border-bottom: 1px solid var(--champagne); color: var(--gold-deep); background: transparent; padding: 8px 0; cursor: pointer; font-family: var(--display); font-size: 11px; letter-spacing: .08em; }

/* Opening envelope */
.intro-screen { min-height: 100svh; display: grid; place-items: center; position: relative; overflow: hidden; padding: 36px 18px; background: radial-gradient(ellipse at 50% 38%, #fffaf0 0%, #f4ead8 58%, #e9dcc7 100%); isolation: isolate; }
.intro-screen::before, .intro-screen::after { content: ''; position: absolute; inset: 15px; border: 1px solid rgba(146,121,77,.38); pointer-events: none; z-index: -1; }
.intro-screen::after { inset: 21px; border: 1px solid rgba(197,172,123,.35); }
.intro-grain { position: absolute; inset: 0; z-index: -1; opacity: .29; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.10'/%3E%3C/svg%3E"); }
.intro-ornament { position: absolute; left: 50%; transform: translateX(-50%); color: var(--gold); font-size: 48px; opacity: .55; }
.top-ornament { top: 3.5%; }
.bottom-ornament { bottom: 2.5%; transform: translateX(-50%) rotate(180deg); }
.envelope-wrap { position: relative; width: min(680px, 90vw); min-height: 520px; display: grid; place-items: center; perspective: 1300px; }
.envelope { width: min(620px, 88vw); aspect-ratio: 1.48; max-height: 430px; position: relative; filter: drop-shadow(0 25px 23px rgba(78,52,25,.19)); transform-style: preserve-3d; transition: filter .7s ease; }
.envelope-back { position: absolute; inset: 0; border: 1px solid #d9c8a7; background: linear-gradient(145deg,#fffdf8,#eee2ce); border-radius: 3px; box-shadow: inset 0 0 0 7px rgba(255,255,255,.4), inset 0 0 0 8px rgba(177,144,85,.25); }
.envelope-back::before { content: ''; position: absolute; inset: 15px; border: 1px solid rgba(146,121,77,.26); background: repeating-linear-gradient(135deg, transparent 0 13px, rgba(177,144,85,.035) 13px 14px); }
.envelope-letter-peek { position: absolute; width: 80%; height: 93%; left: 10%; top: -1%; background: #fffaf1; border: 1px solid #dac69e; transition: transform 1.1s cubic-bezier(.2,.7,.15,1); z-index: 1; }
.envelope-front { position: absolute; inset: 0; z-index: 3; background: linear-gradient(145deg, #f7efdf, #e9ddc8); clip-path: polygon(0 0, 50% 58%, 100% 0, 100% 100%, 0 100%); border: 1px solid #d2bd94; }
.envelope-front::before { content: ''; position: absolute; inset: 16px; border: 1px solid rgba(146,121,77,.32); clip-path: polygon(0 0, 50% 58%, 100% 0, 100% 100%, 0 100%); }
.envelope-flap { position: absolute; inset: 0 0 auto; height: 60%; z-index: 5; transform-origin: top center; background: linear-gradient(155deg, #fffaf1, #eadcc4); clip-path: polygon(0 0, 100% 0, 50% 100%); border-top: 1px solid #d9c8a7; filter: drop-shadow(0 5px 5px rgba(81,57,27,.08)); transition: transform .9s cubic-bezier(.5,.05,.2,1), z-index .2s 0s; backface-visibility: visible; }
.envelope-flap::after { content: ''; position: absolute; inset: 10px 10px 0; border: 1px solid rgba(146,121,77,.25); clip-path: polygon(0 0, 100% 0, 50% 100%); }
.wax-seal { position: absolute; z-index: 8; top: 48%; left: 50%; transform: translate(-50%,-50%); width: 116px; height: 116px; border-radius: 50%; border: 1px solid rgba(111,76,30,.7); background: radial-gradient(circle at 35% 25%, #e5c984 0%, #b18b45 42%, #89652f 78%, #6f4a20 100%); box-shadow: inset 0 2px 5px rgba(255,255,255,.5), inset 0 -6px 8px rgba(73,42,10,.33), 0 9px 14px rgba(79,51,20,.23); display: grid; place-items: center; cursor: pointer; padding: 0; transition: transform .35s ease, opacity .45s ease; }
.wax-seal::before { content: ''; position: absolute; inset: 8px; border: 1px solid rgba(255,241,204,.65); border-radius: 50%; box-shadow: 0 0 0 2px rgba(91,62,25,.2); }
.wax-seal:hover { transform: translate(-50%,-50%) scale(1.05) rotate(-3deg); }
.wax-ring { width: 76px; height: 76px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,239,193,.65); }
.wax-ring img { width: 49px; height: 54px; object-fit: contain; filter: brightness(0) invert(1); opacity: .86; }
.tap-instruction { position: absolute; bottom: 15px; margin: 0; font-family: var(--display); text-transform: uppercase; letter-spacing: .2em; color: #81683e; font-size: 10px; animation: breathe 2.4s ease-in-out infinite; }
.opening-card { position: absolute; z-index: 7; width: min(440px, 78vw); top: 50%; left: 50%; transform: translate(-50%, -33%) scale(.9); opacity: 0; pointer-events: none; text-align: center; padding: 45px 30px 35px; background: linear-gradient(135deg,#fffdf8,#f4ead9); border: 1px solid #c6a86e; box-shadow: 0 20px 55px rgba(76,53,24,.2), inset 0 0 0 8px rgba(255,255,255,.55), inset 0 0 0 9px rgba(181,146,84,.28); transition: opacity .85s ease .45s, transform .9s cubic-bezier(.16,.75,.18,1) .35s; }
.opening-card::before { content: ''; position: absolute; inset: 16px; border: 1px solid rgba(146,121,77,.3); pointer-events: none; }
.card-ornament { color: var(--gold); font-size: 22px; }
.opening-card .eyebrow { margin: 5px 0 15px; }
.opening-names { display: flex; flex-direction: column; align-items: center; font-family: var(--script); color: #6b4523; font-size: 49px; line-height: .95; }
.opening-names i { font-family: var(--serif); font-size: 20px; color: var(--gold); margin: 7px 0; }
.opening-copy { font-size: 17px; line-height: 1.35; color: #806d57; }
.opening-date { font: 600 10px var(--display); letter-spacing: .14em; margin: 16px 0 22px; }
.open-site-button { position: relative; z-index: 2; }
.envelope-wrap.is-opening .wax-seal { opacity: 0; transform: translate(-50%,-50%) scale(.35) rotate(35deg); pointer-events: none; }
.envelope-wrap.is-opening .envelope-flap { transform: rotateX(180deg); z-index: 0; }
.envelope-wrap.is-opening .envelope-letter-peek { transform: translateY(-35%) scale(1.04); }
.envelope-wrap.is-opening .envelope { filter: drop-shadow(0 30px 30px rgba(78,52,25,.13)); }
.envelope-wrap.is-opening .opening-card { opacity: 1; transform: translate(-50%,-50%) scale(1); pointer-events: auto; }
.envelope-wrap.is-opening .tap-instruction { opacity: 0; }

/* Header / hero */
.site-header::before { content: ""; flex: 0 0 120px; display: block; }
.site-header { position: sticky; z-index: 30; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 75px; padding: 10px clamp(20px,5.5vw,86px); background: rgba(255,251,243,.94); border-bottom: 1px solid rgba(146,121,77,.28); backdrop-filter: blur(16px); }
.brand-lockup { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.brand-monogram { width: 43px; height: 43px; object-fit: contain; }
.brand-wordmark { font: 600 18px var(--display); color: var(--gold-deep); letter-spacing: .04em; }
.brand-wordmark span { font: 400 14px var(--serif); margin: 0 2px; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px,3vw,40px); }
.main-nav a { font: 600 10px var(--display); letter-spacing: .08em; color: #5f4a34; text-transform: uppercase; position: relative; padding: 8px 0; }
.main-nav a::after { content: ''; position: absolute; width: 0; height: 1px; background: var(--gold); bottom: 1px; left: 0; transition: width .25s ease; }
.main-nav a:hover::after { width: 100%; }
.header-actions { display: flex; align-items: center; gap: 12px; }
.language-toggle { border: 1px solid rgba(146,121,77,.48); background: transparent; color: var(--gold-deep); border-radius: 100px; padding: 7px 13px; font-family: var(--hindi); font-size: 12px; cursor: pointer; }
.header-save { font: 600 9px var(--display); letter-spacing: .12em; text-transform: uppercase; padding: 10px 15px; border-radius: 100px; color: #fffaf0; background: var(--gold-deep); box-shadow: 0 5px 12px rgba(80,55,24,.14); }
.mobile-menu-toggle { display: none; width: 40px; height: 38px; border: 1px solid var(--line); background: transparent; border-radius: 50%; padding: 10px; }
.mobile-menu-toggle span { height: 1px; width: 100%; display: block; background: var(--gold-deep); margin: 5px 0; }
.hero { position: relative; min-height: min(790px, calc(100svh - 75px)); display: grid; place-items: center; padding: 68px 24px 92px; overflow: hidden; background: #e8ddc9; isolation: isolate; }
.hero-photo { position: absolute; inset: 0; z-index: 0; background: linear-gradient(rgba(250,245,235,.18),rgba(246,239,224,.36)), url('assets/images/venue.webp') center 47%/cover no-repeat; filter: saturate(.88); }
.hero::before { content: ''; position: absolute; inset: 18px; z-index: 3; border: 1px solid rgba(146,121,77,.65); outline: 1px solid rgba(255,253,248,.65); outline-offset: -7px; pointer-events: none; }
.hero::after { content: ''; position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse at 50% 50%, rgba(255,251,241,.65) 0%, rgba(255,249,234,.38) 46%, rgba(233,218,190,.06) 100%); }
.hero-frame { z-index: 2; width: min(780px, 92vw); min-height: 545px; padding: 44px 28px 52px; border: 1px solid rgba(146,121,77,.62); outline: 1px solid rgba(255,255,255,.72); outline-offset: -9px; background: rgba(255,250,239,.38); box-shadow: 0 14px 45px rgba(73,50,22,.08), inset 0 0 75px rgba(255,255,255,.26); text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; }
.hero-frame::before { content: ''; position: absolute; width: 80%; height: 90%; left: 10%; top: 5%; border: 1px solid rgba(146,121,77,.27); border-radius: 48% 48% 0 0 / 22% 22% 0 0; pointer-events: none; }
.hero-corner { position: absolute; font-size: 23px; color: var(--gold); opacity: .7; }
.corner-tl { top: 12px; left: 14px; }.corner-tr { top: 12px; right: 14px; }.corner-bl { bottom: 12px; left: 14px; }.corner-br { bottom: 12px; right: 14px; }
.hero-monogram { width: 68px; height: 74px; object-fit: contain; margin-bottom: 11px; opacity: .93; }
.hero-kicker { max-width: 320px; margin: 0 auto 17px; font-size: 10px; }
.hero h1 { display: flex; align-items: center; flex-direction: column; font: 400 clamp(60px, 8vw, 100px)/.85 var(--script); color: #684522; margin: 0; text-shadow: 0 1px 0 rgba(255,255,255,.55); }
.hero h1 em { font: 400 25px var(--serif); color: var(--gold-deep); margin: 15px 0; }
.hero-divider { display: flex; gap: 12px; align-items: center; width: 150px; justify-content: center; color: var(--gold); margin: 25px 0 17px; }
.hero-divider span { width: 47px; height: 1px; background: var(--champagne); }.hero-divider b { font-size: 16px; }
.hero-date { font: 600 11px var(--display); letter-spacing: .21em; color: #523b24; margin: 0; }.hero-date b { font-size: 18px; margin: 0 7px; }
.hero-subtitle { font: italic 18px var(--serif); color: #806d57; margin: 12px 0 0; }
.scroll-cue { display: flex; flex-direction: column; align-items: center; gap: 5px; position: absolute; bottom: -39px; color: var(--gold-deep); }
.scroll-cue span { border: 1px solid var(--gold); border-radius: 50%; background: #fffaf1; width: 38px; height: 38px; display: grid; place-items: center; font-size: 20px; box-shadow: 0 4px 15px rgba(76,53,24,.12); animation: bob 2.1s ease-in-out infinite; }
.scroll-cue small { font: 600 8px var(--display); letter-spacing: .2em; }
.hero-bottom-floral { position: absolute; bottom: -10px; left: 0; width: 100%; height: 75px; background: linear-gradient(0deg, rgba(245,237,220,.7), transparent); }

/* Invitation / devotional / couple */
.invitation-note { text-align: center; background: linear-gradient(180deg,#fffdf8,#f3ebdd); border-bottom: 1px solid rgba(146,121,77,.18); }
.invitation-note::before, .invitation-note::after { content: '✤'; position: absolute; top: 43%; color: var(--champagne); font-size: 35px; opacity: .47; }
.invitation-note::before { left: clamp(18px,10vw,150px); }.invitation-note::after { right: clamp(18px,10vw,150px); }
.invitation-note .section-kicker { margin: 0; }
.invitation-note .script-heading { margin-bottom: 10px; }
.intro-paragraph { max-width: 570px; margin: 0 auto; color: var(--muted); font-size: 19px; }
.couple-names-line { display: flex; justify-content: center; align-items: center; gap: clamp(16px,4vw,40px); margin: 27px auto 15px; font: 400 clamp(35px,5vw,50px) var(--script); color: #684522; }
.couple-names-line b { font: 400 23px var(--serif); color: var(--gold); }
.small-ar-mark { width: 86px; height: 42px; object-fit: contain; margin: 14px auto 0; opacity: .76; }
.ganesha-section { background: #eee5d6; overflow: hidden; }
.devanagari-heading { font: 600 clamp(24px,3vw,35px) var(--hindi); color: var(--gold-deep); margin: 12px 0 0; }
.ganesha-art-wrap { width: min(510px,90vw); margin: 0 auto; position: relative; padding: 18px 18px 56px; text-align: center; }
.ganesha-arch { position: absolute; inset: 0 18px 34px; border: 1px solid var(--champagne); border-radius: 50% 50% 0 0 / 34% 34% 0 0; box-shadow: inset 0 0 0 7px rgba(255,255,255,.25), 0 12px 30px rgba(76,53,24,.07); }
.ganesha-arch::before { content: ''; position: absolute; inset: 9px; border: 1px solid rgba(146,121,77,.38); border-radius: inherit; }
.ganesha-photo { width: min(340px,76vw); aspect-ratio: 3/4; object-fit: cover; object-position: center 28%; margin: 0 auto; position: relative; z-index: 1; border-radius: 48% 48% 3px 3px; box-shadow: 0 17px 35px rgba(73,50,22,.18); border: 5px solid rgba(255,250,239,.8); }
.ganesha-caption { position: relative; z-index: 2; max-width: 390px; margin: 19px auto 0; font: italic 19px var(--serif); color: #78634b; }
.couple-section { text-align: center; background: radial-gradient(ellipse at center,#fffdf7 0%,#f4ecdf 80%); }
.couple-section .script-heading { font-size: clamp(48px,7vw,80px); }
.couple-section .script-heading span { font: 400 25px var(--serif); color: var(--gold); margin: 0 10px; }
.couple-quote { font: italic 25px var(--serif); color: #705232; max-width: 620px; margin: 34px auto 15px; }
.couple-copy { max-width: 620px; margin: 0 auto; color: var(--muted); }
.couple-signature { display: flex; flex-direction: column; align-items: center; gap: 0; color: #76512a; font: 400 39px/.95 var(--script); margin-top: 35px; }
.couple-signature i { font: italic 15px var(--serif); color: var(--gold); margin: 8px; }

/* Date scratch cards */
.date-section { background: linear-gradient(180deg,#f0e7d8,#f9f5ec); text-align: center; }
.date-section .section-heading { margin-bottom: 42px; }
.scratch-grid { width: min(850px,100%); display: grid; grid-template-columns: repeat(3,1fr); gap: 23px; margin: 0 auto; }
.scratch-card { padding: 21px 17px 17px; background: #fffaf1; border: 1px solid #cbb27e; outline: 1px solid rgba(255,255,255,.85); outline-offset: -6px; box-shadow: 0 9px 23px rgba(79,56,25,.09); position: relative; }
.scratch-card::before { content: '✦'; position: absolute; top: 8px; right: 12px; color: var(--champagne); font-size: 12px; }
.scratch-label { color: var(--gold-deep); font: 600 10px var(--display); letter-spacing: .22em; margin: 0 0 13px; }
.scratch-window { position: relative; display: grid; place-items: center; height: 115px; background: linear-gradient(135deg,#f8efdf,#fffdf7); border: 1px solid rgba(146,121,77,.23); overflow: hidden; }
.scratch-value { font: 600 47px var(--display); color: #684522; letter-spacing: .04em; }
.scratch-canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.scratch-caption { display: block; font: 600 8px var(--display); color: #987c4a; letter-spacing: .16em; margin-top: 13px; }
.date-section .text-button { margin-top: 28px; }
.date-reveal-note { display: flex; align-items: center; justify-content: center; gap: 17px; color: var(--gold-deep); font: 600 10px var(--display); letter-spacing: .2em; margin-top: 32px; }
.date-reveal-note span { color: var(--gold); font-size: 17px; }

/* Pooja feature / timeline */
.pooja-feature { display: grid; grid-template-columns: minmax(280px, .95fr) minmax(300px,1fr); gap: clamp(38px,8vw,110px); align-items: center; padding: 88px max(24px,calc((100vw - 1100px)/2)); background: #fffaf1; }
.pooja-image-wrap { border: 1px solid var(--champagne); padding: 10px; background: #f2e8d7; box-shadow: var(--shadow); transform: rotate(-1deg); }
.pooja-image-wrap img { width: 100%; aspect-ratio: 1.25; object-fit: cover; }
.pooja-copy { max-width: 470px; }
.pooja-copy .script-heading { font-size: clamp(42px,5vw,61px); }
.devanagari-sub { font: 500 17px var(--hindi); color: var(--gold-deep); }
.pooja-copy > p:not(.section-kicker):not(.script-heading):not(.devanagari-sub) { color: var(--muted); max-width: 425px; }
.celebrations-section { background: #f2eadc; }
.celebrations-section .section-heading { margin-bottom: 72px; }
.event-timeline { max-width: 1060px; margin: 0 auto; position: relative; }
.event-timeline::before { content: ''; position: absolute; width: 1px; background: linear-gradient(180deg,transparent,var(--champagne) 5%,var(--champagne) 95%,transparent); top: 2%; bottom: 2%; left: 50%; transform: translateX(-50%); }
.event-row { display: grid; grid-template-columns: minmax(0,1fr) 58px minmax(0,1fr); gap: 28px; align-items: center; position: relative; margin-bottom: 78px; }
.event-row:last-child { margin-bottom: 0; }
.event-image { grid-column: 1; border: 1px solid var(--champagne); padding: 8px; background: #fffaf1; box-shadow: 0 12px 30px rgba(75,53,26,.10); min-height: 230px; display: grid; place-items: center; }
.event-image img { width: 100%; height: 270px; object-fit: cover; }
.event-marker { grid-column: 2; grid-row: 1; width: 54px; height: 54px; display: grid; place-items: center; justify-self: center; background: #f7f0e4; border: 1px solid var(--gold); transform: rotate(45deg); box-shadow: 0 0 0 6px #f2eadc; z-index: 1; }
.event-marker span { transform: rotate(-45deg); font: 600 12px var(--display); color: var(--gold-deep); }
.event-copy { grid-column: 3; grid-row: 1; padding: 8px 0 8px 12px; }
.event-row.reverse .event-image { grid-column: 3; }.event-row.reverse .event-copy { grid-column: 1; grid-row: 1; text-align: right; padding: 8px 12px 8px 0; }
.event-date { font: 600 9px var(--display); letter-spacing: .14em; color: var(--gold-deep); margin: 0 0 10px; }
.event-date span { display: block; font-size: 10px; letter-spacing: .19em; margin-top: 4px; }
.event-copy h3 { font: 400 clamp(31px,4vw,43px) var(--script); color: #6a4728; margin: 0 0 0; }
.event-hindi { font: 500 15px var(--hindi); color: #846a46; margin: 5px 0 12px; }
.event-time { font: 600 12px var(--display); letter-spacing: .12em; color: #4f3b26; margin: 0 0 10px; }
.event-time small { font: italic 15px var(--serif); letter-spacing: 0; text-transform: none; }
.event-description { max-width: 390px; color: var(--muted); margin: 0; font-size: 18px; }
.event-row.reverse .event-description { margin-left: auto; }
.event-duo { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; align-items: stretch; }
.event-duo figure { margin: 0; min-width: 0; background: #f7f0e3; border: 1px solid rgba(146,121,77,.2); padding: 4px; }
.event-duo img { height: 235px; }
.event-duo figcaption { color: var(--gold-deep); font: 600 8px var(--display); letter-spacing: .16em; text-align: center; padding: 7px 2px 3px; }
.mandap-image { background: radial-gradient(circle at center,#fffdf7,#eee1ce); }
.mandap-image img { object-fit: contain; height: 250px; padding: 12px; }

/* Countdown / venue */
.countdown-section { background: #e7ddcc; padding-top: 70px; padding-bottom: 70px; }
.countdown-frame { max-width: 900px; margin: 0 auto; text-align: center; padding: 55px 24px 48px; border: 1px solid rgba(146,121,77,.65); outline: 1px solid rgba(255,255,255,.75); outline-offset: -8px; background: linear-gradient(rgba(255,251,241,.69),rgba(255,251,241,.69)), repeating-linear-gradient(45deg,transparent 0 18px,rgba(176,143,86,.04) 18px 19px); }
.countdown-frame .script-heading { margin-bottom: 4px; }
.countdown-date { font: 600 10px var(--display); letter-spacing: .18em; color: var(--gold-deep); }
.countdown { display: flex; align-items: center; justify-content: center; gap: clamp(10px,3vw,36px); margin: 35px auto 24px; }
.countdown div { min-width: 85px; display: flex; flex-direction: column; gap: 4px; }
.countdown strong { font: 500 clamp(42px,6vw,62px) var(--display); color: #76572d; line-height: 1; font-variant-numeric: tabular-nums; }
.countdown span { font: 600 9px var(--display); text-transform: uppercase; letter-spacing: .16em; color: var(--muted); }
.countdown > i { font: 400 30px var(--serif); color: var(--champagne); margin-top: -16px; }
.countdown-footnote { font-style: italic; color: #806d57; margin: 0; }
.venue-section { background: #fffaf1; }
.venue-card { width: min(1100px,100%); margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; align-items: stretch; background: #f3eadb; border: 1px solid var(--champagne); padding: 11px; box-shadow: var(--shadow); }
.venue-image { min-height: 440px; overflow: hidden; }
.venue-image img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; object-position: center; }
.venue-details { padding: 46px 38px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; border: 1px solid rgba(146,121,77,.35); margin: 8px; background: linear-gradient(135deg,#fffaf0,#f2e7d5); position: relative; }
.venue-details::before { content: ''; position: absolute; inset: 9px; border: 1px solid rgba(146,121,77,.22); pointer-events: none; }
.venue-ornament { font-size: 30px; color: var(--gold); margin-bottom: 9px; }
.venue-label { font: 600 9px var(--display); letter-spacing: .2em; color: var(--gold-deep); margin: 0 0 10px; }
.venue-details h3 { font: 400 clamp(29px,3vw,39px) var(--script); color: #654422; margin: 0; }
.venue-devanagari { font: 500 19px var(--hindi); color: #846a46; margin: 4px 0 18px; }
.venue-meta { display: flex; flex-direction: column; gap: 7px; border-top: 1px solid var(--champagne); border-bottom: 1px solid var(--champagne); padding: 13px 0; width: 100%; color: var(--gold-deep); }
.venue-meta span { font: 600 9px var(--display); letter-spacing: .16em; }
.venue-meta b { font: 600 12px var(--display); letter-spacing: .08em; }
.venue-meta small { font: italic 15px var(--serif); letter-spacing: 0; font-weight: 400; }
.directions-button { margin-top: 23px; position: relative; z-index: 1; }
.venue-note { color: var(--muted); font: italic 17px var(--serif); margin: 18px 0 0; }

/* Wishes / footer */
.wishes-section { background: #eee4d4; padding-top: 90px; padding-bottom: 90px; }
.wishes-card { width: min(780px,100%); margin: 0 auto; position: relative; text-align: center; padding: 55px clamp(22px,6vw,70px) 50px; background: linear-gradient(135deg,#fffdf8,#f7efdf); border: 1px solid var(--champagne); outline: 1px solid rgba(255,255,255,.85); outline-offset: -8px; box-shadow: 0 18px 45px rgba(79,56,25,.10); }
.wishes-card::before { content: ''; position: absolute; inset: 16px; border: 1px solid rgba(146,121,77,.24); pointer-events: none; }
.wishes-card .section-kicker, .wishes-card h2, .wishes-card .section-intro { position: relative; z-index: 1; }
.wishes-card .script-heading { font-size: clamp(42px,6vw,65px); }
.wishes-flower { position: absolute; top: 22px; color: var(--champagne); font-size: 51px; opacity: .65; }
.flower-left { left: 25px; transform: rotate(-35deg); }.flower-right { right: 25px; transform: scaleX(-1) rotate(-35deg); }
.wishes-form { position: relative; z-index: 1; max-width: 530px; margin: 35px auto 0; display: flex; flex-direction: column; text-align: left; }
.wishes-form label { font: 600 10px var(--display); text-transform: uppercase; letter-spacing: .16em; color: var(--gold-deep); margin: 0 0 8px; }
.wishes-form input, .wishes-form textarea { border: 1px solid rgba(146,121,77,.42); background: rgba(255,255,255,.6); outline: none; color: var(--ink); padding: 14px 16px; margin-bottom: 23px; width: 100%; font: 18px var(--serif); border-radius: 0; box-shadow: inset 0 2px 5px rgba(78,53,22,.03); }
.wishes-form input:focus, .wishes-form textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(197,172,123,.18); }
.wishes-form input::placeholder, .wishes-form textarea::placeholder { color: #a28f75; font-style: italic; }
.wishes-form textarea { resize: vertical; min-height: 130px; }
.submit-wishes { align-self: center; min-width: 205px; }
.form-status { min-height: 25px; margin: 14px 0 0; text-align: center; color: #6d552f; font-size: 15px; }
.form-privacy { position: relative; z-index: 1; margin: 4px auto 0; color: #94816a; font-size: 13px; font-style: italic; max-width: 500px; }
.site-footer { background: #e4d7c1; padding: 58px 24px 28px; text-align: center; border-top: 1px solid rgba(146,121,77,.3); position: relative; overflow: hidden; }
.site-footer::before { content: ''; position: absolute; inset: 12px; border: 1px solid rgba(146,121,77,.28); pointer-events: none; }
.footer-emblem { width: 62px; height: 62px; border: 1px solid rgba(146,121,77,.55); border-radius: 50%; display: grid; place-items: center; margin: 0 auto 13px; }
.footer-emblem img { width: 31px; height: 38px; object-fit: contain; }
.footer-kicker { font: 600 9px var(--display); letter-spacing: .24em; color: var(--gold-deep); margin: 0 0 9px; }
.footer-names { font: 400 clamp(36px,5vw,52px) var(--script); color: #684522; margin: 0; }
.footer-names span { font: 400 17px var(--serif); color: var(--gold); }
.footer-date { font: 600 9px var(--display); letter-spacing: .22em; color: var(--gold-deep); margin: 13px 0; }
.footer-thanks { font-style: italic; color: #78654f; max-width: 440px; margin: 0 auto 23px; }
.back-to-top { font: 600 9px var(--display); letter-spacing: .15em; text-transform: uppercase; color: var(--gold-deep); border-bottom: 1px solid var(--champagne); padding-bottom: 5px; }
.footer-brand { position: relative; margin: 40px 0 0; font: 600 8px var(--display); color: #9b8563; letter-spacing: .2em; }
.music-control { position: fixed; z-index: 40; bottom: max(22px,env(safe-area-inset-bottom)); right: max(22px,env(safe-area-inset-right)); display: flex; align-items: center; gap: 9px; border: 1px solid rgba(146,121,77,.65); background: rgba(255,250,240,.94); border-radius: 100px; padding: 10px 14px; color: var(--gold-deep); box-shadow: 0 6px 18px rgba(65,46,21,.14); cursor: pointer; font: 600 9px var(--display); letter-spacing: .08em; }
.music-bars { display: flex; align-items: center; gap: 2px; height: 15px; }
.music-bars i { display: block; width: 2px; height: 6px; background: var(--gold); border-radius: 3px; }
.music-control.is-playing .music-bars i { animation: musicBar .7s ease-in-out infinite alternate; }
.music-control.is-playing .music-bars i:nth-child(2) { animation-delay: -.4s; }.music-control.is-playing .music-bars i:nth-child(3) { animation-delay: -.2s; }.music-control.is-playing .music-bars i:nth-child(4) { animation-delay: -.55s; }
.site-toast { position: fixed; z-index: 60; left: 50%; bottom: 28px; transform: translate(-50%,18px); opacity: 0; pointer-events: none; padding: 12px 18px; max-width: min(520px, calc(100vw - 36px)); border: 1px solid var(--champagne); background: #fffaf1; color: #684522; box-shadow: var(--shadow); font-size: 15px; text-align: center; transition: opacity .25s ease, transform .25s ease; }
.site-toast.show { opacity: 1; transform: translate(-50%,0); }
.hidden-frame { position: absolute; width: 1px; height: 1px; left: -9999px; top: -9999px; border: 0; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Language handling */
body.lang-hi { font-family: var(--hindi); }
body.lang-hi .script-heading, body.lang-hi .hero h1, body.lang-hi .opening-names, body.lang-hi .couple-names-line, body.lang-hi .couple-signature, body.lang-hi .event-copy h3, body.lang-hi .footer-names, body.lang-hi .venue-details h3 { font-family: var(--hindi); }
body.lang-hi .script-heading { font-size: clamp(30px,4.3vw,48px); font-weight: 500; }
body.lang-hi .hero h1 { font-size: clamp(39px,6vw,68px); }
body.lang-hi .couple-names-line, body.lang-hi .couple-signature, body.lang-hi .footer-names { font-size: clamp(27px,4vw,40px); }
body.lang-hi .event-copy h3 { font-size: clamp(25px,3vw,34px); }
body.lang-hi .wishes-card .script-heading { font-size: clamp(29px,4.6vw,48px); }

@keyframes breathe { 0%,100% { opacity:.55; transform:translateY(0); } 50% { opacity:1; transform:translateY(-4px); } }
@keyframes bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(5px); } }
@keyframes musicBar { from { height: 4px; } to { height: 14px; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }

@media (max-width: 900px) {
  .site-header { min-height: 68px; padding-inline: 22px; gap: 12px; }
  .main-nav { gap: 15px; }
  .main-nav a { font-size: 9px; }
  .header-save { display: none; }
  .hero { min-height: 700px; }
  .hero-frame { min-height: 500px; }
  .event-row { gap: 19px; grid-template-columns: minmax(0,1fr) 48px minmax(0,1fr); }
  .event-marker { width: 45px; height: 45px; }
  .event-image img { height: 235px; }
  .event-duo img { height: 200px; }
  .venue-image, .venue-image img { min-height: 380px; }
  .venue-details { padding: 35px 22px; }
}
@media (max-width: 650px) {
  body { font-size: 16px; }
  .section-pad { padding: 72px 20px; }
  .section-heading { margin-bottom: 38px; }
  .section-kicker { font-size: 9px; letter-spacing: .17em; }
  .section-intro { font-size: 18px; }
  .intro-screen { padding: 20px 15px; }
  .intro-screen::before { inset: 9px; }.intro-screen::after { inset: 15px; }
  .envelope-wrap { min-height: 410px; width: 94vw; }
  .envelope { width: 91vw; aspect-ratio: 1.18; max-height: 330px; }
  .wax-seal { width: 88px; height: 88px; }
  .wax-ring { width: 59px; height: 59px; }.wax-ring img { width: 38px; height: 43px; }
  .tap-instruction { bottom: 8px; font-size: 9px; }
  .opening-card { width: min(390px,86vw); padding: 36px 20px 27px; }
  .opening-names { font-size: 42px; }
  .opening-copy { font-size: 15px; }
  .opening-date { font-size: 8px; }
  .top-ornament { top: 2%; }.bottom-ornament { bottom: 1%; }
  .site-header { min-height: 64px; padding: 8px 16px; }
  .site-header::before { flex-basis: 59px; }
  .brand-lockup { min-width: 0; }.brand-monogram { width: 35px; height: 35px; }.brand-wordmark { font-size: 16px; }
  .header-actions { gap: 8px; }
  .language-toggle { padding: 6px 10px; font-size: 11px; }
  .mobile-menu-toggle { display: block; }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 13px 20px 20px; flex-direction: column; gap: 0; align-items: stretch; background: rgba(255,251,243,.98); border-bottom: 1px solid var(--line); box-shadow: 0 12px 20px rgba(65,46,21,.08); }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: 11px 4px; border-bottom: 1px solid rgba(146,121,77,.12); font-size: 10px; }
  .hero { min-height: 650px; padding: 35px 18px 65px; }
  .hero::before { inset: 9px; }
  .hero-frame { width: 95%; min-height: 455px; padding: 36px 17px 42px; }
  .hero-frame::before { width: 88%; left: 6%; }
  .hero-monogram { width: 54px; height: 60px; }
  .hero-kicker { font-size: 8px; max-width: 250px; letter-spacing: .18em; }
  .hero h1 { font-size: clamp(58px,15vw,78px); }
  .hero h1 em { font-size: 20px; margin: 12px 0; }
  .hero-divider { margin: 22px 0 13px; }
  .hero-date { font-size: 9px; letter-spacing: .14em; }
  .hero-date b { font-size: 15px; margin: 0 4px; }
  .hero-subtitle { font-size: 16px; }
  .scroll-cue { bottom: -36px; }
  .invitation-note::before, .invitation-note::after { font-size: 22px; top: auto; bottom: 22%; }
  .invitation-note::before { left: 8px; }.invitation-note::after { right: 8px; }
  .couple-names-line { flex-wrap: wrap; font-size: 37px; gap: 9px; }
  .ganesha-art-wrap { width: 100%; padding-inline: 6px; }
  .ganesha-arch { inset-inline: 5px; }
  .ganesha-photo { width: min(300px,78vw); }
  .couple-section .script-heading { font-size: 51px; }
  .couple-quote { font-size: 21px; }
  .scratch-grid { grid-template-columns: 1fr; gap: 14px; max-width: 350px; }
  .scratch-card { padding: 15px 16px 12px; display: grid; grid-template-columns: 80px 1fr; align-items: center; gap: 12px; }
  .scratch-label { grid-column: 1; grid-row: 1; text-align: left; margin: 0; }
  .scratch-window { grid-column: 2; grid-row: 1 / span 2; height: 82px; }
  .scratch-value { font-size: 37px; }
  .scratch-caption { grid-column: 1; grid-row: 2; text-align: left; margin: 0; font-size: 7px; }
  .date-reveal-note { gap: 8px; font-size: 8px; letter-spacing: .13em; }
  .pooja-feature { grid-template-columns: 1fr; gap: 33px; padding: 68px 24px; }
  .pooja-image-wrap { max-width: 500px; margin: 0 auto; }
  .pooja-image-wrap img { aspect-ratio: 1.35; }
  .pooja-copy { text-align: center; margin: 0 auto; }
  .event-timeline::before { left: 20px; }
  .event-row, .event-row.reverse { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 12px; margin-bottom: 51px; }
  .event-image, .event-row.reverse .event-image { grid-column: 2; grid-row: 1; min-height: 0; }
  .event-marker { grid-column: 1; grid-row: 1; width: 36px; height: 36px; align-self: start; margin-top: 16px; box-shadow: 0 0 0 5px #f2eadc; }
  .event-marker span { font-size: 9px; }
  .event-copy, .event-row.reverse .event-copy { grid-column: 2; grid-row: 2; text-align: left; padding: 15px 4px 0; }
  .event-row.reverse .event-description { margin-left: 0; }
  .event-image img { height: 230px; }
  .event-duo img { height: 205px; }
  .event-date { font-size: 8px; }.event-date span { font-size: 9px; }
  .event-copy h3 { font-size: 38px; }
  .event-hindi { font-size: 14px; }
  .event-description { font-size: 16px; }
  .countdown-section { padding: 53px 14px; }
  .countdown-frame { padding: 41px 10px 35px; }
  .countdown { gap: 5px; margin: 28px auto 19px; }
  .countdown div { min-width: 0; flex: 1; }
  .countdown strong { font-size: clamp(31px,9vw,45px); }
  .countdown span { font-size: 7px; letter-spacing: .1em; }
  .countdown > i { font-size: 20px; margin-top: -11px; }
  .countdown-date { font-size: 8px; letter-spacing: .12em; }
  .venue-card { grid-template-columns: 1fr; }
  .venue-image, .venue-image img { min-height: 265px; height: 265px; }
  .venue-details { padding: 34px 20px; }
  .wishes-card { padding: 50px 21px 38px; }
  .wishes-card .script-heading { font-size: 45px; }
  .wishes-flower { font-size: 32px; top: 12px; }.flower-left { left: 13px; }.flower-right { right: 13px; }
  .wishes-form { margin-top: 27px; }
  .site-footer { padding: 48px 20px 26px; }
  .music-control { bottom: max(14px,env(safe-area-inset-bottom)); right: max(14px,env(safe-area-inset-right)); padding: 9px 12px; }
}
@media (max-width: 370px) {
  .hero-frame { min-height: 425px; }
  .hero h1 { font-size: 56px; }
  .hero-date { font-size: 8px; }
  .event-duo { gap: 5px; }.event-duo img { height: 170px; }
  .countdown strong { font-size: 29px; }
}
.music-control { display: none; }
body.site-open .music-control { display: flex; }
.intro-screen.is-exiting { opacity: 0; transform: scale(1.025); pointer-events: none; transition: opacity .65s ease, transform .65s ease; }
.wedding-site.site-entered { animation: siteArrival .8s ease both; }
@keyframes siteArrival { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.google-form-toggle { display: block; margin: 14px auto 0; position: relative; z-index: 1; }
.google-form-embed { position: relative; z-index: 1; width: 100%; margin: 20px auto 0; border: 1px solid rgba(146,121,77,.35); background: #fff; }
.google-form-embed iframe { display: block; width: 100%; min-height: 610px; border: 0; background: #fff; }
.scratch-canvas { user-select: none; -webkit-user-select: none; }
