/* Final Royal Gateway matching and compact-phone refinements. */
.site-header{font:11px/28px Arial,sans-serif;background:#a41b23}
.hero-art{background-position:center 80%;filter:blur(2px) brightness(.94);transform:scale(1.02)}
.parchment{background-color:#fff6e8;background-image:radial-gradient(circle at 2% 9%,#f2bfbe67 0,transparent 31%),radial-gradient(circle at 93% 44%,#f9d5a266 0,transparent 38%)}
.parchment:before{background-image:url('assets/diamond-flower.svg');background-size:106px 106px;background-repeat:repeat;opacity:.65;inset:18px;z-index:-1;pointer-events:none}
.parchment:after{display:block;content:'';position:absolute;inset:18px;border:1px solid #d9ad6688;pointer-events:none;z-index:-1}
.invitation-message{max-width:750px;margin:14px auto 0!important;font-size:30px!important;line-height:1.38!important;font-style:italic;font-weight:600;color:#7a0c15!important}
.countdown-items>div{aspect-ratio:100/140}
.countdown-items span{font-size:clamp(7px,1vw,14px);bottom:6%;color:#fff7d8;text-shadow:0 1px 2px #6b2b27}
.date-plaque span{padding-top:0}.date-plaque strong{margin:0;font-size:16px}.date-plaque>div>span{font:16px var(--serif);line-height:1.8;text-transform:uppercase}
.plaque-venue{text-transform:uppercase;font-size:14px;letter-spacing:3px}
.scratch-card{max-width:672px;min-height:436px;margin:64px auto 0;padding:27px 24px 14px;border:2px solid #dfb659;background:#fffbef;box-shadow:0 15px 35px #aa63302a;text-align:center;position:relative}
.scratch-card h3{font:29px var(--serif);text-transform:uppercase;color:#332421;margin:0}
.scratch-instruction{font:16px Arial,sans-serif;margin:8px 0 37px;color:#777}
.scratch-area{width:min(384px,100%);height:288px;margin:0 auto;border:0;border-radius:13px;overflow:hidden;background:#faf1dc}
.scratch-area canvas{border-radius:13px}
.scratch-card>#reveal-date{position:absolute;bottom:15px;left:calc(50% + 142px);margin:0;z-index:3;font:11px Arial,sans-serif;text-decoration:underline;color:#6d4c3c;background:#ffedcda8;padding:3px 7px;border-radius:2px}
.revealed-date .script{font-size:32px}.revealed-date strong{font:29px var(--serif)}
.couple .couple-grid{max-width:1030px;gap:125px}.person h3{text-transform:uppercase}.person>p:last-child{font-size:21px;color:#956b43}
.family-member .small-frame{width:242px}.family-member .family-ribbon{width:225px;font-size:11px}.family-member h4{font-size:24px;text-transform:uppercase}
.wishes{padding-top:100px}.wishes-panel{width:min(770px,100%);margin:0 auto;background:#fffbef;border:2px solid #dab154;border-radius:22px;padding:54px 24px 30px;box-shadow:0 15px 30px #9b511a18}
.wishes-panel h2{font:29px var(--serif);color:#332421;text-align:center;text-transform:uppercase;margin:0 0 38px}
#wishes-list{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#wishes-list blockquote{background:#fff;border:0;border-radius:13px;box-shadow:0 1px 3px #a48d762e;padding:16px 15px;font:15px/1.35 Arial,sans-serif;color:#444}
#wishes-list cite{font:12px/1.5 Arial,sans-serif;color:#686868;margin-top:9px;text-align:left;font-style:normal}
.wish-form{background:none;border:0;box-shadow:none;margin:32px auto 0;padding:0;max-width:448px;display:grid;gap:10px}
.wish-form label{display:block;margin:0}.wish-form input,.wish-form textarea{width:100%;background:#fff;border:1px solid #d7d0c4;color:#3d3331;font:15px Arial,sans-serif;margin:0;padding:10px 15px;min-height:40px}
.wish-form textarea{min-height:80px}.wish-form .wine-button{background:#a21423;border-radius:50px;min-height:36px;padding:6px 15px;font:14px Arial,sans-serif;letter-spacing:0;text-transform:none}
.wish-form .preview-note{margin:0;text-align:center;font-size:11px}
.contacts{padding-top:110px;min-height:690px}.contacts .section-heading h2{font-size:58px}
.contact-grid{max-width:650px;gap:55px}.contact-grid article{padding:10px;border:0;background:none;border-radius:0}
.contact-grid h3{font:25px var(--serif);text-transform:uppercase;color:#9e1b29}
.contact-grid article p.script{font:26px var(--script);color:#a36d2c;margin:0}
.contact-grid article .contact-number{font:13px var(--serif);letter-spacing:3px;color:#aa7c3c;margin:18px 0}
.contact-actions{display:flex;justify-content:center;gap:11px}.contact-actions button{min-width:108px;border-radius:100px;padding:10px 14px;border:1px solid #9d2934;background:#f9f0df;color:#9d2934;font:10px var(--serif);letter-spacing:1.2px;opacity:1;cursor:default}.contact-actions button:first-child{background:linear-gradient(100deg,#f9e8a5,#d9ae44);border:0;color:#6c2a1d;box-shadow:0 6px 15px #b98a3d69}
.contact-note{text-align:center;font:11px Arial,sans-serif;color:#947b59;margin-top:20px}
.desert-footer{min-height:950px;padding-top:100px}.desert-footer:after{inset:235px 0 0}
.footer-copy .rosette{width:90px;height:90px}.footer-copy>.script{font-size:46px}.footer-copy h2{font:400 clamp(46px,7.6vw,106px)/1.2 var(--serif);color:#9e141e;margin:22px 0 20px;text-transform:uppercase}.footer-copy h2 i{font:70px var(--script);color:#b38633;text-transform:none}
.footer-copy .footer-date{font:17px var(--serif);letter-spacing:2px;text-transform:uppercase;color:#8c462c}.footer-copy .footer-hashtag{font:27px var(--script);color:#a32632;margin-top:14px}
.footer-bottom{background:#fff3ddbc;display:flex;justify-content:center;gap:22px;padding:15px}.footer-bottom button{font:11px var(--sans);text-transform:none;color:#8a4b34}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.site-header{font-size:8px;line-height:25px}.invitation-message{font-size:21px!important;padding:0 8px}.scratch-card{max-width:100%;min-height:0;padding:24px 12px 18px;margin-top:47px}.scratch-card h3{font-size:21px}.scratch-instruction{font-size:13px;margin:7px 0 19px}.scratch-area{width:min(320px,100%);height:250px}.scratch-card>#reveal-date{left:auto;right:18px;bottom:21px}.couple .couple-grid{gap:17px}.family-member h4{font-size:20px}.wishes{padding:70px 18px}.wishes-panel{padding:30px 17px 25px}.wishes-panel h2{font-size:24px;margin-bottom:22px}#wishes-list{grid-template-columns:1fr}#wishes-list blockquote{font-size:14px}.wish-form{margin-top:23px}.contacts{min-height:0;padding:65px 18px 80px}.contacts .section-heading h2{font-size:36px}.contact-grid{gap:30px;grid-template-columns:1fr 1fr}.contact-grid h3{font-size:15px}.contact-grid article p.script{font-size:21px}.contact-grid article .contact-number{font-size:8px;letter-spacing:1px}.contact-actions{display:grid;gap:6px}.contact-actions button{font-size:8px;padding:8px;min-width:0}.desert-footer{min-height:590px;padding-top:60px}.desert-footer:after{inset:205px 0 0;background-size:auto 58%}.footer-copy .rosette{width:70px;height:70px}.footer-copy>.script{font-size:31px}.footer-copy h2{font-size:43px}.footer-copy h2 i{font-size:40px}.footer-copy .footer-date{font-size:11px}.footer-copy .footer-hashtag{font-size:23px}.footer-bottom{flex-wrap:wrap;gap:12px;padding:12px}.footer-bottom button{font-size:10px}}
@media(max-width:360px){.event-scroll{width:min(100%,215px);height:345px}.event-copy{left:21%;right:21%;top:41px;bottom:20px}.event-copy h3{font-size:21px}.event-copy p:not(.script):not(.eyebrow){font-size:11px}.visible .scroll-bottom{transform:translateY(304px)}.event-timeline{max-width:100%}.event{grid-template-columns:minmax(0,1fr) 30px;gap:0}.event-date{display:none}.timeline-car{display:none}}
@media(max-width:600px){.hero{height:100svh;min-height:720px;max-height:none;position:relative}.hero-copy{position:relative;z-index:2;padding-top:80px}.hero-copy>.script{font-size:32px}.hero-copy h2{font-size:clamp(39px,11vw,45px);line-height:1.12}.hero-copy h2>.ampersand{font-size:48px;line-height:1.04}.hero-rays{background:repeating-conic-gradient(from -70deg at 50% 75%,#ffe5ac72 0 6deg,transparent 6deg 14deg);-webkit-mask-image:linear-gradient(to bottom,transparent 23%,#000 70%);mask-image:linear-gradient(to bottom,transparent 23%,#000 70%)}.palace-cutout{position:absolute;top:65svh;left:-40%;width:180%;margin:0;max-width:none}.scroll-cue{z-index:3;bottom:20px;color:#fff6e7;font-size:9px;letter-spacing:3px;text-shadow:0 1px 4px #3a151c}}
@media(max-width:360px){.event-timeline:before,.event-date,.timeline-node,.timeline-car{display:none!important}.event,.event.reverse{display:block;min-height:0;max-width:100%;margin:0 auto 24px}.event-scroll,.event.reverse .event-scroll{display:block;grid-column:auto;grid-row:auto;width:215px;min-width:215px;max-width:215px;margin:0 auto 40px;justify-self:auto}}

/* Keep the invitation itself as spare as the template's guest-facing preview. */
html{scrollbar-width:none}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0}
.music-toggle,.footer-bottom{display:none!important}
.painted-frame .portrait-door{transition:transform 1.25s cubic-bezier(.22,.75,.24,1),opacity .5s .8s}
.door-frame.visible .door-left,.visible .door-frame .door-left{transform:translateX(-101%)}
.door-frame.visible .door-right,.visible .door-frame .door-right{transform:translateX(101%)}
.gallery-slide{transition:transform .7s cubic-bezier(.2,.68,.2,1),opacity .65s,filter .65s;filter:brightness(calc(1 - var(--abs-position,0)*.45))}
.gallery-slide.adjacent{opacity:1}
@media(max-width:900px){.gallery-slide{transform:translateX(calc(var(--position,0)*260px)) translateZ(calc(var(--abs-position,0)*-280px)) rotateY(calc(var(--position,0)*-64deg)) scale(calc(1 - var(--abs-position,0)*.18))}}
.event-scroll .velvet-body{top:11.7188%;bottom:auto;height:72.2656%;transform:none;clip-path:inset(0 0 var(--unroll-clip,100%) 0);transition:none}
.event-scroll .scroll-bottom{top:82.6823%;height:17.3177%;transform:translateY(var(--unroll-y,-433.083%));transition:none}
.event-scroll .event-copy{opacity:var(--unroll-opacity,0);transition:none}
.scratch-confetti{position:fixed;inset:0;z-index:50;overflow:hidden;pointer-events:none}
.scratch-confetti i{position:absolute;top:-3%;left:var(--x);width:var(--size,9px);height:calc(var(--size,9px)*1.7);background:var(--color,#a6172d);border-radius:40% 5% 40% 5%;opacity:0;animation:scratch-confetti-fall var(--duration,3s) var(--delay,0s) cubic-bezier(.3,.35,.8,.8) forwards}
@keyframes scratch-confetti-fall{0%{opacity:0;transform:translate3d(0,-10px,0) rotate(0)}8%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift,20px),105vh,0) rotate(var(--spin,650deg))}}
.rsvp-names{font:13px var(--serif);letter-spacing:3px;text-transform:uppercase;color:#f2d59b}
.rsvp-card .preview-note{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.attendance-options span::before{display:block;content:'♥';font:25px Georgia,serif;margin-bottom:7px;color:#9d2134}
.attendance-options label:nth-child(2) span::before{content:'♡';color:#f0cb7e}
.attendance-options span::after{display:block;content:'We will be there';font:italic 13px var(--sans);margin-top:4px;text-transform:none;letter-spacing:0}
.attendance-options label:nth-child(2) span::after{content:'With you in spirit'}

@media(max-width:600px){
  .site-header{font-size:11px;letter-spacing:.1px}
  .invitation{padding-bottom:181px}
  .invitation .section-heading{margin-top:126px;margin-bottom:75px}
  .invitation .rosette{width:128px;height:128px}
  .scratch-card{margin-top:119px}
  .scratch-area{height:207px}
  .gallery-slide{transform:translateX(calc(var(--position,0)*175px)) translateZ(calc(var(--abs-position,0)*-280px)) rotateY(calc(var(--position,0)*-64deg)) scale(calc(1 - var(--abs-position,0)*.18))}
  .gallery{padding-top:80px;padding-bottom:80px}
  .gallery-track{height:407px}
  .gallery-caption{margin-top:-8px;margin-bottom:28px}
  .gallery-controls{margin-top:24px}
  .gallery-arrow{width:48px;height:48px}
  .rsvp{padding-top:80px;padding-bottom:95px}
  .rsvp-card{padding:70px 25px 55px}
  .rsvp-card:before{border:1px dashed #f3c9727a;inset:16px}
  .rsvp-card .rsvp-seal{font-size:13px;letter-spacing:1px}
  .rsvp-card>h3{font-size:42px;margin-bottom:12px}
  .rsvp-names{margin-bottom:27px}
  .attendance-options span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;font-size:12px;line-height:1.1}
  .guest-stepper{min-height:65px}
  .rsvp-card textarea{min-height:110px}
  .wishes{padding:42px 18px}
  .wishes-panel{padding:22px 17px}
  .wishes-panel h2{margin-bottom:32px}
  .wish-form{gap:8px}
  .wish-form .preview-note{display:none}
  .contacts{padding-bottom:61px}
  .contacts .section-heading{margin-bottom:28px}
  .contacts .section-heading h2{font-size:30px}
  .contact-grid{grid-template-columns:1fr;gap:50px;max-width:350px}
  .contact-note{display:none}
  .event-timeline{margin-top:-119px}
  .event-date{display:none}
  .event,.event.reverse{margin-bottom:12px}
  .event-scroll,.event.reverse .event-scroll{width:310px;height:465px;grid-row:1;margin:0 -8px 0 0}
  .celebrations{padding-bottom:155px}
}
@media(prefers-reduced-motion:reduce){.scratch-confetti i{animation:none;display:none}}
@media(max-width:360px){
  .event-scroll,.event.reverse .event-scroll{width:min(100%,215px);min-width:0;height:345px;margin:0 auto 30px}
  .event-timeline{margin-top:-62px}
  .venue-reference .venue-card{padding-left:20px;padding-right:20px}
}
