/* Full reference sequence: carved arch, central paper, scratch and an invitation.
   Historical photographs stay illustrative; no venue photograph is substituted. */
:root{--reference-cream:#faf5ec;--reference-line:#c7a76e}
.paper-hero{background:radial-gradient(ellipse at 50% 33%,#fffdf9 12%,#faf4e9 62%,#ecdac064 100%)}
.paper-hero::before{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;background:url('/assets/invitation/ornament-01.svg') left -7px top 0/43% auto no-repeat,url('/assets/invitation/ornament-01.svg') right -9px bottom 20px/36% auto no-repeat;opacity:.8;filter:drop-shadow(0 1px 0 #fffdf7)}
.paper-hero .floral-top{width:44%;max-width:230px;right:-1px;top:0;opacity:.91;z-index:6;filter:drop-shadow(0 1px 0 #fffdf7)}
.paper-hero::after{width:43%;height:300px;left:-13px;bottom:20px;opacity:.8;filter:drop-shadow(0 1px 0 #fffdf7)}
.hero-copy{background-color:transparent}
.hero-art{background:radial-gradient(ellipse at 50% 70%,#f0dfc080,transparent 65%)}
.hero-art>.hero-palace{opacity:.36;filter:saturate(.38) contrast(.62) brightness(1.72)}
.hero-art>.hero-couple{opacity:.94;filter:saturate(.48) contrast(.83) brightness(1.16)}
.hero-art::after{background:linear-gradient(90deg,#faf5ed,transparent 12%,transparent 88%,#faf5ed)}
.scene-glow{opacity:.6;background:radial-gradient(ellipse at 52% 8%,#fffcf4 4%,#fffaf0a0 35%,transparent 65%),linear-gradient(transparent 76%,#fbf8f4d9)}
.hero-copy>.hero-signature{letter-spacing:.08em}
.scroll-cue{z-index:7}
.date-section{background:linear-gradient(#faf6f0,#fbf8f4 90px)}
.date-section>.section-floral{opacity:.24;top:-22px;width:105px}
.date-section>.script-heading{margin-bottom:9px}
.date-section>.fine-print{margin-top:8px}
.scratch-grid{gap:12px;margin-top:26px;margin-bottom:19px;max-width:306px}
.scratch-card{height:116px;border-radius:6px;border-color:#ccb78878;background:linear-gradient(132deg,#fffdf9,#f7edd7 44%,#e5cc93 72%,#fdf8ed);box-shadow:inset 0 0 0 3px #fffaf4c9,0 2px 5px #b69b6220}
.scratch-card.is-revealed{background:linear-gradient(145deg,#fffdf9,#faf5e9);border-color:#d6c7a760;box-shadow:inset 0 0 0 2px #fffdf8}
.scratch-label{font-size:11px;letter-spacing:.2em}
.scratch-value{font-size:31px;font-weight:400}
.scratch-item:nth-child(2) .scratch-value{font-size:22px;letter-spacing:0}
.scratch-access{font-size:12px}
.invitation-copy.arch-frame{background-color:#fffdf72e}
.invitation-copy .divider{opacity:.64}
.paper-timeline::before{width:1px;background:linear-gradient(transparent,#c8aa748a 5%,#c8aa748a 96%,transparent)}
.timeline-item::after{width:5px;height:5px;left:calc(50% - 2.5px);background:#fffdf8;box-shadow:0 0 0 3px #fbf8f4;border-color:#c2a16a}
.timeline-mark{opacity:.82;filter:drop-shadow(0 1px 0 #fffdf3)}
.programme-section>.fine-print{font-size:13px}
.timeline-copy small{font-size:12px;color:var(--muted-text)}
.programme-section>.section-floral{opacity:.21}
.section-floral{filter:drop-shadow(0 1px 0 #fffdfa)}
.scene-image>img{filter:saturate(.48) contrast(.8) brightness(1.2)}
.paper-countdown .divider{width:155px;opacity:.64}

@media(max-width:1023px){
  .paper-hero{padding:0 8px 24px;min-height:max(100svh,820px)}
  .paper-hero .arch-frame{min-height:max(calc(100svh - 24px),796px);padding:153px 41px 260px}
  .hero-copy>.eyebrow:not(.hero-signature){max-width:200px;margin:0 auto 16px;font-size:11px;line-height:1.6;letter-spacing:.12em}
  .hero-copy .brand-title{font-size:clamp(57px,16.5vw,76px);line-height:.94}
  .hero-copy .brand-title>span+span{font-size:.77em;line-height:1.1;margin-top:6px}
  .hero-tagline{font-size:21px;line-height:1.2;margin-top:15px}
  .hero-copy>.divider{width:106px;margin:13px auto}
  .hero-date{font-size:32px;line-height:1.22}
  .hero-time{font-size:16px;letter-spacing:.18em;margin-top:5px}
  .hero-art{left:25px;right:25px;top:auto;bottom:53px;height:62%;mask-image:linear-gradient(180deg,transparent,#000 19%,#000 79%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 19%,#000 79%,transparent)}
  .hero-art>.hero-couple{width:108%;height:108%;left:-4%;top:-8%;object-position:center bottom}
  .hero-copy>.hero-signature{left:38px;right:38px;bottom:57px;margin:0;font-size:9px;line-height:1.5}
  .scroll-cue{bottom:31px;font-size:27px;gap:5px}
  .scroll-cue>span{font-size:18px}
  .date-section{padding-top:45px;padding-bottom:38px}
  .date-section>.script-heading{font-size:43px}
  #the-story{display:flex;flex-direction:column;padding-top:8px;padding-bottom:54px;gap:28px}
  #the-story>.invitation-copy{order:0;width:100%;padding:128px 39px 68px;min-height:0}
  #the-story>.story-scene{order:1;width:calc(100% + 24px);margin:0 -12px}
  .story-scene>img{aspect-ratio:5/3;opacity:.6}
  .invitation-copy>.script-heading{font-size:43px}
  .invitation-copy .eyebrow{font-size:10px;line-height:1.6;letter-spacing:.11em;margin-bottom:22px}
  .invitation-copy .copy{font-size:20px;line-height:1.55}
  .invitation-copy .closing-script{font-size:36px}
  .invitation-copy .divider{width:118px;margin:22px auto}
  #the-masquerade{padding-top:39px;padding-bottom:49px}
  .programme-section{padding-top:48px;padding-bottom:30px}
  .programme-section>.script-heading{font-size:43px;margin-bottom:12px}
  .paper-timeline{margin-top:36px;padding-bottom:0}
  .timeline-item{min-height:158px;column-gap:48px;padding-bottom:34px}
  .timeline-mark{width:77px;height:83px}
  .timeline-time{font-size:28px;margin-bottom:8px}
  .timeline-copy h3{font-size:20px;line-height:1.15}
  .timeline-copy p{font-size:15px;line-height:1.4;margin-top:7px}
  .timeline-copy small{margin-top:9px;line-height:1.4}
  .paper-countdown{padding-top:38px;padding-bottom:48px}
  .paper-countdown>.script-heading{font-size:42px}
  .paper-countdown .countdown-clock{margin-top:27px}
  .countdown-unit>[data-countdown-unit]{font-size:43px}
  .countdown-unit>small{font-size:10px;letter-spacing:.1em}
  #the-palace{padding-top:39px}
  #your-invitation .invitation-copy.arch-frame{padding-top:127px}
}

@media(min-width:600px) and (max-width:1023px){
  .paper-hero .arch-frame{padding-top:178px;padding-inline:67px;padding-bottom:285px}
  .hero-copy>.eyebrow:not(.hero-signature){max-width:235px;font-size:12px}
  .hero-copy .brand-title{font-size:79px}
  .hero-tagline{font-size:24px}
  .hero-date{font-size:37px}
  .hero-time{font-size:18px}
  .hero-art{left:31px;right:31px;height:63%;bottom:58px}
  .hero-copy>.hero-signature{font-size:10px}
  .date-section{padding-top:54px}
  #the-story>.invitation-copy{padding-inline:51px}
}

@media(max-width:380px){
  .paper-hero .arch-frame{padding-inline:34px;padding-top:148px}
  .hero-copy .brand-title{font-size:60px}
  .hero-copy>.eyebrow:not(.hero-signature){font-size:10px;max-width:188px}
  .hero-art{left:22px;right:22px}
  .hero-date{font-size:30px}
  .hero-tagline{font-size:20px}
  #the-story>.invitation-copy{padding-inline:34px}
  .timeline-item{column-gap:37px}
  .timeline-copy h3{font-size:19px}
  .timeline-time{font-size:26px}
}

@media(min-width:1024px){
  .paper-hero{background:radial-gradient(ellipse at 75% 46%,#f6ecdc,#fffdf9 55%,#faf5ef)}
  .paper-hero::before{inset:27px 28px 42px 46%;background-size:40% auto,36% auto;opacity:.8}
  .paper-hero .floral-top{width:230px;right:15px;top:17px}
  .paper-hero::after{left:44%;bottom:56px;width:190px;height:245px;opacity:.76}
  .hero-copy::before{opacity:1}
  .hero-art{left:49%;right:3%;top:45px;bottom:37px}
  .hero-art>.hero-palace{opacity:.41;filter:saturate(.35) contrast(.58) brightness(1.75)}
  .hero-art>.hero-couple{width:147%;height:147%;left:-23.5%;top:-47%;filter:saturate(.48) contrast(.82) brightness(1.18)}
  .hero-copy>.hero-signature{left:50%;right:4%;font-size:9px}
  .scratch-grid{max-width:370px;gap:20px}
  .scratch-card{height:139px}
  .scratch-value{font-size:37px}
  .scratch-item:nth-child(2) .scratch-value{font-size:27px}
  #the-date{padding-top:80px;padding-bottom:48px}
  #the-story{padding-top:70px}
  #the-story>.invitation-copy{padding-top:146px}
  .paper-timeline{max-width:710px}
  .timeline-item{min-height:182px}
  .timeline-copy small{font-size:13px}
}

@keyframes reference-light-breathe{from{opacity:.46}to{opacity:.66}}
@media(prefers-reduced-motion:no-preference){
  .motion-ready .hero-art .scene-glow{animation:reference-light-breathe 11s ease-in-out infinite alternate;animation-play-state:paused}
  .invitation-open .hero-art.is-photo-visible .scene-glow{animation-play-state:running}
}
body.intro-active .hero-art .scene-glow,body.page-hidden .hero-art .scene-glow{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.hero-art .scene-glow{animation:none!important}}
