/* Below-hero layout adapted from the supplied Aishwarya and Arjun project. */
/* Times New Roman supplies baseline-aligned digits while the existing serif keeps the lettering. */
@font-face{font-family:'Invitation Numerals';src:local('Times New Roman');font-style:normal;font-weight:400;unicode-range:U+0030-0039;font-display:swap}
@font-face{font-family:'Invitation Numerals';src:local('Times New Roman Bold');font-style:normal;font-weight:700;unicode-range:U+0030-0039;font-display:swap}
#home .hero-date,.desktop-caption{font-family:'Invitation Numerals',var(--serif);font-variant-numeric:lining-nums}
.reference-content{--maroon:var(--burgundy);--ivory:var(--paper);--muted-maroon:var(--muted);--champagne:#e8d8bb;--sans:var(--serif);--script:'Great Vibes',cursive;position:relative;isolation:isolate;width:100vw;margin-left:calc(50% - 50vw);background:var(--paper);overflow:clip;text-align:center}
main{overflow:visible}
#home h1{font-size:clamp(38px,11vw,74px);gap:10px}
@scope (.reference-content) {
main{position:relative;max-width:672px;margin:auto;isolation:isolate;opacity:0;transition:opacity 1.2s}body.opened main{opacity:1}.flowers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.flower{position:absolute;width:140px;mix-blend-mode:multiply;opacity:.5}.left{left:-44px}.right{right:-46px}.f1{top:2%;transform:rotate(-12deg)}.f2{top:8%;transform:rotate(12deg)}.f3{top:21%;transform:rotate(12deg)}.f4{top:31%;transform:rotate(-6deg)}.f5{top:43%;transform:rotate(6deg)}.f6{top:52%;transform:rotate(15deg)}.f7{top:66%;transform:rotate(-12deg)}.f8{top:76%;transform:rotate(-6deg)}.f9{top:89%}
.hero{min-height:100svh;padding:36px 24px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:24px}.blessing{font:26px/1.4 var(--serif);margin:0}.meaning{font:italic 10px/1.6 var(--serif);letter-spacing:.1em;text-transform:uppercase;margin:8px 0 0}.tiny-line{display:block;height:1px;width:26px;background:#6b243833;margin:8px auto}.eyebrow{font:500 9px/1.8 var(--sans);letter-spacing:.27em;text-transform:uppercase;color:var(--muted-maroon);margin:0}.parents{font:700 19px/1.3 var(--serif);letter-spacing:.05em;text-transform:uppercase;margin:12px 0}.invitation-line{letter-spacing:.18em}.hero h1{margin:6px 0 0;font-weight:700;width:100%}.name{display:block;font:400 90px/.8 GreatVibes,cursive;text-shadow:0 8px 14px #6b243817}.with{display:block;font:600 11px var(--sans);letter-spacing:.6em;text-transform:uppercase;opacity:.55;margin:25px 0 31px}.groom{transform:none}.groom-parents{font:700 14px/1.4 var(--serif);letter-spacing:.08em;text-transform:uppercase;margin:0;max-width:340px}.hero-date{font:italic 15px var(--serif);letter-spacing:.07em;margin:0}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;color:var(--maroon);padding:8px 20px 0;animation:float 3s infinite}.scroll-cue span{font-size:7px;letter-spacing:.7em;text-transform:uppercase}.scroll-cue i{height:28px;width:1px;background:linear-gradient(var(--maroon),transparent)}
.section{max-width:512px;margin:76px auto 0;padding:48px 20px;text-align:center;border-top:1px solid #6b243815}.section h2{font:700 60px/1 var(--script);margin:0 0 24px;text-shadow:0 4px 8px #6b243820;-webkit-text-stroke:.3px var(--maroon)}.scratch-grid{display:grid;grid-template-columns:repeat(2,150px);gap:32px 16px;justify-content:center;margin:40px auto 0}.scratch-card{position:relative;width:150px;height:100px;border:0;border-radius:12px;background:transparent;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:10px;touch-action:pan-y}.scratch-card:last-child:nth-child(odd){grid-column:1/-1;justify-self:center}.scratch-card small{font:600 10px var(--sans);letter-spacing:.14em;opacity:.65;margin-bottom:8px}.scratch-card strong{font:600 19px/1 var(--serif);text-transform:uppercase}.scratch-card canvas{position:absolute;inset:0;width:150px;height:100px;border-radius:12px;box-shadow:0 8px 14px #6b243820;touch-action:none;transition:opacity .65s;cursor:crosshair}.scratch-card.revealed canvas{opacity:0;pointer-events:none}.scratch-help{font:italic 13px var(--serif);opacity:.65;margin:24px 0 0}.countdown{margin-top:0}.clock{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:340px;margin:38px auto}.clock div{display:flex;flex-direction:column;align-items:center;gap:12px}.clock span{font:600 38px/1 var(--serif);width:100%;padding:16px 0;background:#6b243808;border:1px solid #6b24381a;border-radius:12px;box-shadow:0 5px 15px #6b243808}.clock small{font-size:8px;text-transform:uppercase;letter-spacing:.18em;opacity:.6}.until{font:italic 700 22px var(--serif);letter-spacing:.08em;margin:24px 0 0}.date-caption{font:14px var(--serif);margin:16px 0 0}.venues{margin-top:0}.venues h2{font-size:55px}.venue-list{margin-top:32px}.venue{border-bottom:1px solid #6b243812;transition:box-shadow .4s;border-radius:0}.venue-heading{width:100%;min-height:84px;padding:20px 8px;border:0;background:transparent;display:flex;justify-content:center;align-items:center;gap:8px}.venue-heading span{font:600 22px/1.25 var(--serif);letter-spacing:.15em;text-transform:uppercase;opacity:.8}.venue-heading img{width:22px;opacity:0;transition:opacity .4s}.venue-heading img:first-child{transform:scaleX(-1)}.venue.active{border:1px solid #6b24384d;border-radius:42px;margin:24px 0;box-shadow:0 20px 50px #6b24381c}.venue.active .venue-heading img{opacity:.65}.venue.active .venue-heading span{opacity:1}.venue-panel{padding:0 22px 32px;animation:panel-in .5s ease}.venue-art{width:100%;max-height:290px;object-fit:contain;filter:drop-shadow(0 8px 8px #6b24381a);margin:0 auto 12px}.event-date{font:700 18px var(--serif);letter-spacing:.08em;text-transform:uppercase;margin:12px 0}.event-time{font:500 10px var(--sans);letter-spacing:.1em;text-transform:uppercase}.venue-name{font:700 24px/1.2 var(--serif);letter-spacing:.06em;text-transform:uppercase;margin:24px 0 8px}.address{font:16px/1.5 var(--serif);margin:0}.description{font:italic 16px/1.5 var(--serif);margin:20px 0}.dress-code{font:600 14px var(--serif);margin:16px 0}.map-link,.blue-button{display:inline-flex;min-height:48px;justify-content:center;align-items:center;gap:8px;border:1px solid #6b243850;border-radius:28px;background:var(--maroon);color:var(--ivory);text-decoration:none;padding:12px 24px;font:500 10px var(--sans);text-transform:uppercase;letter-spacing:.12em;margin-top:22px}.map-link svg{width:14px;height:14px}.map-link:hover,.blue-button:hover{background:#501a2a}
.wishes{margin-top:0}.wishes h2{font-size:48px}.wishes-intro{font:18px/1.6 var(--serif);max-width:350px;margin:0 auto 28px}form{text-align:left;max-width:360px;margin:auto}form label{display:block;font:italic 16px var(--serif);margin:14px 0 8px}input,textarea{width:100%;font:16px var(--serif);border:1px solid #6b243833;background:#faf5ebaa;border-radius:12px;padding:15px;resize:vertical}input::placeholder,textarea::placeholder{color:#6b243880}.blue-button{margin-top:16px}.local-note{font:13px var(--serif);opacity:.7}.wish-status,#wish-status{font:15px var(--serif)}.wish{max-width:360px;margin:20px auto 0;border:1px solid #6b243820;border-radius:20px;padding:22px;background:#faf5ebb3;text-align:left}.wish p{font:italic 18px/1.5 var(--serif);margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.wish small{display:block;font:14px var(--serif);margin-top:14px}
footer{padding:76px 24px 32px;text-align:center}.footer-card{position:relative;border-radius:56px;background:linear-gradient(135deg,#542032,var(--maroon),#81354b);color:var(--ivory);padding:58px 24px 118px;box-shadow:0 25px 40px #6b243828;max-width:464px;margin:auto}.footer-names{font:700 66px/.85 var(--script);margin:0 0 36px}.footer-names span{font-size:40px}.footer-card .blessing{font-size:31px}.translation{font:italic 32px/1.2 Bickham,cursive;opacity:.8;margin:12px 0 34px}.footer-card .eyebrow{color:#faf5ebbb;font-size:8px;letter-spacing:.4em}.footer-families{font:700 46px/.9 var(--script);margin:26px 0}.footer-date{font:14px var(--serif);opacity:.8}.bouquet{position:absolute;width:min(100%,340px);height:230px;object-fit:contain;bottom:-85px;left:50%;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 20px 15px #54203230)}.closing{font:italic 15px/1.5 var(--serif);margin:112px 0 0}.music-toggle{position:fixed;z-index:50;bottom:calc(20px + env(safe-area-inset-bottom));left:20px;width:48px;height:48px;border:1px solid #faf5eb33;border-radius:50%;background:#6b2438ee;color:var(--ivory);box-shadow:0 4px 20px #6b243833;display:grid;place-items:center}.music-toggle svg{width:21px;height:21px}.sound-waves{display:none}.music-toggle[aria-pressed=true] .sound-waves{display:block}.music-toggle[aria-pressed=true] .sound-muted{display:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}
.remove-wish{background:transparent;border:0;text-decoration:underline;font:12px var(--sans);padding:14px 0;min-height:44px;margin-top:8px;opacity:.7}
.scratch-grid{width:100%;max-width:360px;grid-template-columns:repeat(2,150px);gap:32px 16px}
.scratch-card{position:relative;width:150px;height:100px;display:grid;place-items:center;padding:10px;border:0;border-radius:12px;background:transparent;touch-action:pan-y}
.scratch-card:last-child:nth-child(odd){width:150px;grid-column:1/-1;justify-self:center}
.scratch-caption{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%}
.scratch-card small{font-size:12px;line-height:1.25;letter-spacing:.12em;margin:0;color:#85635c;opacity:.7}
.scratch-card strong{font:600 20px/1 var(--serif);text-transform:uppercase;color:#6b2438}
.scratch-card canvas{position:absolute;inset:0;width:100%;height:100%;border-radius:12px;box-shadow:0 8px 14px #6b243820;touch-action:none;cursor:crosshair}
.scratch-card.revealed canvas{opacity:0;pointer-events:none}
.venue-art{max-height:none;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:18px;filter:none;box-shadow:0 8px 24px #6b243812;margin-bottom:24px}
.venue.active{background:#ffffff66}
.venue-heading img{width:26px}
.flower{mix-blend-mode:normal;opacity:.62}
.footer-card{background:linear-gradient(140deg,#81354b,#6b2438 55%,#501a2a);color:#faf5eb}
.footer-card .eyebrow{color:#e8d8bb}
.blue-button,.map-link{background:#6b2438;color:#faf5eb}
.envelope{background:#faf5eb}
.tap-open{color:#6b2438}
@media(max-width:359px){.scratch-grid{grid-template-columns:repeat(2,138px);gap:24px 10px}.scratch-card,.scratch-card:last-child:nth-child(odd){width:138px}.scratch-card strong{font-size:18px}}
@keyframes breathe{0%,100%{opacity:.55}50%{opacity:1}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes panel-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(min-width:640px){.hero{gap:28px;padding:40px 24px 20px;min-height:960px}.name{font-size:150px}.parents{font-size:24px}.eyebrow{font-size:11px}.meaning{font-size:13px}.groom-parents{font-size:21px;max-width:500px}.with{font-size:14px;margin:38px 0 46px}.flower{width:200px}.section h2{font-size:76px}.venues h2{font-size:68px}.wishes h2{font-size:64px}.venue-heading span{font-size:28px}.footer-names{font-size:90px}.footer-card{padding-top:70px}.hero-date{font-size:20px}}
@media(max-width:359px){.hero{padding-inline:20px;gap:20px}.name{font-size:80px}.parents{font-size:17px}.section{padding-inline:16px}.venues h2{font-size:48px}.venue-heading span{font-size:19px}.clock span{font-size:32px}.wishes h2{font-size:44px}.footer-names{font-size:58px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.venue-heading{margin:0}
.f1{top:calc(2% + 200px)}
.hero .family .eyebrow{font-size:12px}
@media(min-width:640px){.hero .family .eyebrow{font-size:14px}}

/* Each celebration occupies a complete screen within the invitation. */
.venues.section{max-width:none;width:100vw;margin-left:calc(50% - 50vw);padding:48px 0 0}
.venues>.eyebrow{padding:0 20px 36px}
.venue-list{margin:0}
.venue{min-height:100svh;margin:0;border:0;border-top:1px solid #6b243826;border-radius:0;position:relative;background:linear-gradient(150deg,#ffffff80,#eee2cf80);scroll-margin-top:0}
.venue:nth-child(even){background:linear-gradient(210deg,#f4ead990,#ffffff66)}
.event-page{min-height:100svh;width:min(100%,1080px);margin:auto;padding:30px 24px 22px;display:flex;flex-direction:column;justify-content:center;gap:18px}
.event-number{font:500 8px/1.5 var(--sans);letter-spacing:.28em;text-transform:uppercase;margin:0;opacity:.65}
.venue-heading{padding:0;min-height:0;gap:10px}
.venue-heading span{font:600 clamp(21px,5.5vw,30px)/1.2 var(--serif);letter-spacing:.11em;opacity:1}
.venue-heading img{width:24px;opacity:.65;flex-shrink:0}
.event-layout{display:grid;gap:22px;align-items:center}
.venue-art{display:block;width:100%;max-width:600px;max-height:none;margin:0 auto;border-radius:18px;box-shadow:0 14px 30px #6b243815;aspect-ratio:16/9;object-fit:cover}
.venue-panel{padding:0;animation:none;max-width:520px;margin:auto;width:100%}
.event-host{font:600 19px/1.25 var(--serif);margin:0 0 8px}
.event-invitation{font:italic 16px/1.35 var(--serif);margin:0 auto;max-width:430px}
.event-schedule{margin:20px 0 0}
.event-date,.event-time,.event-note{font:700 17px/1.3 var(--serif);letter-spacing:.06em;text-transform:uppercase}
.event-date{margin:0 0 8px;font-variant-numeric:lining-nums}
.event-time{margin:0;color:var(--maroon)}
.event-note{display:inline-block;border:1px solid #6b243833;border-radius:20px;padding:5px 14px;margin:12px 0 0}
.venue-name{font:700 25px/1.2 var(--serif);margin:20px 0 8px}
.address{font:16px/1.4 var(--serif);max-width:430px;margin:auto}
.dress-code{font:600 15px/1.4 var(--serif);margin:16px 0 0}
.footer-compliments{font:600 18px/1.5 var(--serif);margin:16px auto 0;max-width:390px}
.compliment-families{display:block;font:400 clamp(25px,6.2vw,32px)/1.5 GreatVibes,cursive;margin:14px 0}
.footer-date{font:700 18px/1.5 var(--serif);opacity:1;margin-top:28px}
.venue .map-link{margin-top:20px}
.event-next{align-self:center;display:inline-flex;align-items:center;gap:12px;font:500 8px/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--maroon);padding:12px;opacity:.7}
.event-next span{font-size:19px}
@media(min-width:800px){
  .event-page{padding:48px 48px 28px;gap:32px}
  .event-layout{grid-template-columns:1.1fr 1fr;gap:48px}
  .venue-heading span{font-size:34px}
  .venue-art{aspect-ratio:4/5;object-fit:cover}
  .event-host{font-size:25px}
  .event-invitation{font-size:20px;line-height:1.5}
  .event-date,.event-time,.event-note{font-size:22px}
  .venue-name{font-size:30px;margin-top:28px}
  .address{font-size:20px;line-height:1.5}
  .footer-compliments,.footer-date{font-size:21px}
  .event-number,.event-next{font-size:10px}
}
@media(max-width:359px){.event-page{padding:24px 18px 18px;gap:16px}.event-layout{gap:18px}.event-host{font-size:18px}.event-invitation,.address{font-size:15px}.event-date,.event-time,.event-note{font-size:16px}}

/* Royal floral stationery: warm ivory, wine maroon and antique gold. */
.hero .blessing,.parents,.groom-parents,.name,.section h2,.venue-heading,.venue-name,.event-host,.event-date,.until,.clock span{color:var(--maroon)}
.tiny-line{background:var(--gold)}
.section{border-top-color:#b08a4a33}
.clock span{background:#e8d8bb38;border-color:#b08a4a40;box-shadow:0 5px 15px #6b243808}
.footer-card{border:1px solid #b08a4a80}
.footer-card .eyebrow{color:var(--champagne);font-size:10px}
.footer-card .blessing{color:var(--ivory);margin-bottom:34px}
.scratch-card small{color:var(--muted-maroon);opacity:1}
.venue-heading img{opacity:.85}

/* Phone typography: readable details and room for the names' calligraphy. */
@media(max-width:639px){
  .hero{padding:clamp(28px,5svh,44px) 24px 24px;gap:clamp(16px,2.8svh,24px)}
  .hero .blessing{font-size:clamp(28px,8vw,34px);line-height:1.5}
  .meaning{font-size:12px;line-height:1.6;letter-spacing:.035em}
  .hero .family{width:100%;max-width:380px}
  .hero .family .eyebrow{font-size:clamp(11px,2.9vw,12px);line-height:1.75;letter-spacing:.12em}
  .parents{font-size:clamp(18px,5vw,21px);line-height:1.4;letter-spacing:.02em;margin:14px 0}
  .hero h1{margin:0;padding:4px 8px}
  .name{font-size:clamp(48px,14vw,62px);line-height:1.1}
  .with{font-size:11px;line-height:1.5;letter-spacing:.35em;margin:8px 0 12px}
  .groom-parents{font-size:clamp(16px,4.3vw,18px);line-height:1.5;letter-spacing:.04em}
  .scroll-cue{min-height:44px;gap:8px;padding-top:4px}
  .scroll-cue span{font-size:10px;letter-spacing:.3em}
  .section h2,.venues h2{font-size:clamp(42px,12vw,56px);line-height:1.15}
  .section>.eyebrow,.venues>.eyebrow{font-size:11px;line-height:1.7;letter-spacing:.15em}
  .scratch-help{font-size:15px;line-height:1.5}
  .clock small{font-size:10px;letter-spacing:.08em;opacity:.8}
  .event-number{font-size:10px;letter-spacing:.16em}
  .event-host{font-size:20px;line-height:1.4}
  .event-invitation,.address{font-size:18px;line-height:1.5}
  .event-date,.event-time,.event-note{font-size:18px;line-height:1.45;letter-spacing:.03em}
  .dress-code{font-size:17px;line-height:1.5}
  .map-link{font-size:12px;letter-spacing:.08em}
  .event-next{font-size:11px;line-height:1.5;letter-spacing:.08em;opacity:.85}
  .footer-card .eyebrow{font-size:11px;letter-spacing:.18em}
  .footer-date{overflow-wrap:anywhere}
}
@media(max-width:639px) and (max-height:700px){
  .hero{padding:24px 20px 20px;gap:12px}
  .name{font-size:clamp(46px,13vw,58px)}
}

.venues.section{width:100%;margin-left:0}
.venue-art{position:static;inset:auto;z-index:auto;background:none;opacity:1}
.countdown{border-top:1px solid #b08a4a33;padding-top:48px;max-width:512px}
.countdown>p{margin-bottom:0}
.section{padding-top:55px;padding-bottom:55px}
.eyebrow{font-size:11px;letter-spacing:.15em;line-height:1.7}
.family-introduction{margin-top:0;border:0;max-width:600px;padding-inline:28px}
.family-introduction h2{font:400 clamp(35px,7vw,48px)/1.25 var(--script);margin:30px 0 24px}
.invocation{font:26px/1.5 var(--serif);color:var(--burgundy);margin-bottom:22px}
.blessings{font-style:italic;font-size:21px;line-height:1.5}
.family-hosts{font-size:26px;margin:20px 0 10px;color:var(--burgundy)}
.family-introduction>p{position:relative}
.family-couple{margin:28px 0;display:grid;gap:18px}
.family-couple h3{font:400 50px/1.2 var(--serif);color:var(--burgundy);margin:0 0 12px}
.family-couple p,.family-message{font-size:21px;line-height:1.5}
.family-with{font-style:italic;color:var(--gold)}
.event-page{padding-top:48px;padding-bottom:32px}
.event-invitation{font-size:19px;line-height:1.55}
.event-time{line-height:1.7;text-transform:none}
.event-compliments{font-size:21px;line-height:1.5;margin:22px 0 0}
.compliments{font-size:20px;line-height:1.6;margin-top:20px}
.footer-card{padding-bottom:120px}
footer{border:0;background:none}
.functions h2{font-weight:400}
@media(min-width:800px){.event-page{gap:32px}.event-layout{align-items:start}.venue-art{position:sticky;top:40px}.event-invitation{font-size:20px}.family-couple{grid-template-columns:1fr auto 1fr;align-items:center;gap:15px}.family-couple h3{font-size:46px}}
@media(max-width:359px){.scratch-grid{grid-template-columns:repeat(2,130px);gap:20px 10px}.scratch-card,.scratch-card:last-child:nth-child(odd){width:130px}.family-introduction{padding-inline:20px}}
.event-date,.event-time,.event-number,.date-caption,.address,.scratch-card small,.clock span{font-family:'Invitation Numerals',var(--serif);font-variant-numeric:lining-nums}
.clock span{font-variant-numeric:lining-nums tabular-nums}
}
