/* The new chapters continue the original illustrated palace. */
html{scroll-behavior:smooth;scroll-padding-top:26px}
.wedding-intro{font-family:"Amiri",serif;font-size:clamp(17px,4cqw,24px);font-weight:400;line-height:2;margin:0 0 2cqw}
.discover{position:absolute;bottom:calc(29px + var(--safe-bottom));inset-inline:20%;z-index:10;display:flex;align-items:center;justify-content:center;gap:15px;color:#6c593b;text-decoration:none;font-family:"Amiri",serif;font-size:17px;opacity:0;visibility:hidden;transition:opacity 1.5s;background:#f8f3e6ab;padding:7px 16px;border-radius:30px;backdrop-filter:blur(6px)}
html[data-state=open] .discover{opacity:1;visibility:visible}
.discover span{font-family:Georgia,serif;animation:discoverBreathe 2.4s ease-in-out infinite}
.music-toggle{display:flex;gap:7px;align-items:center;border:1px solid #aa94632e;border-radius:30px;background:#fcf8ee9c;padding:7px 13px;font-size:14px;cursor:pointer;backdrop-filter:blur(7px)}
.music-toggle>span:first-child{font-size:23px}.music-toggle[aria-pressed=true]{color:#725421;background:#fff9e7}
.wedding-details{position:relative;z-index:1;max-width:790px;width:min(100%,calc(100svh * .79));margin:0 auto;background:linear-gradient(#f4eee2,#faf5eb 15%,#f4eddf 60%,#faf6ec);display:none;text-align:center;overflow:hidden}
html[data-state=opening] .wedding-details,html[data-state=open] .wedding-details{display:block}
.wedding-details section{position:relative;padding:78px 30px}
.wedding-details h2,.ticket-dialog h2{font-family:"Amiri",serif;font-size:clamp(27px,6vw,36px);font-weight:400;line-height:1.9;margin:8px 0 23px;color:#76613f}
.small-english{font-size:14px;letter-spacing:.13em;color:#8c7752;text-transform:uppercase;line-height:1.6;margin:0}
.love-letter{border-top:1px solid #b7a17b25}
.love-letter::before,.rsvp-section::before{content:"";position:absolute;inset:20px;border:1px solid #b7a17b32;pointer-events:none}
.love-letter>p:not(.small-english):not(.letter-signature){font-family:"Amiri",serif;font-size:19px;line-height:2.1;margin:16px 0}
.family-letter{font-family:"Amiri",serif;font-size:19px;line-height:2.1}.family-letter .family-label{font-size:16px;color:#8b7758;margin:20px 0 0}.family-letter p{margin:0}.family-letter .family-name{font-size:22px}.family-letter .family-and{font-size:24px;margin:10px 0}.family-letter .honor{display:flex;align-items:center;justify-content:center;gap:16px;font-size:17px;margin:28px 0}.honor::before,.honor::after{content:"";width:36px;height:1px;background:#ad96715c}
.letter-signature,.wedding-footer>p{font-family:"Kapakana",Georgia,serif;font-size:clamp(40px,9vw,57px);line-height:1.4;margin:32px 0;color:#8e7750}
.wedding-date{display:flex;align-items:center;justify-content:center;gap:21px;border-block:1px solid #af957a3d;padding:17px 0;margin:27px auto 0;max-width:340px}.wedding-date>span{font-family:"Amiri",serif;font-size:17px}.wedding-date strong{font-weight:400;font-size:57px;line-height:1}
.wedding-details .evening{padding-inline:0}.evening h2{margin-bottom:8px}.schedule-note{font-family:"Amiri",serif;font-size:15px;line-height:1.8;margin:0 20px 30px;color:#87775c}
.timeline{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:20px 12% 30px;overscroll-behavior-x:contain;scroll-behavior:smooth;align-items:stretch;outline-offset:-5px}.timeline::-webkit-scrollbar{display:none}.moment{position:relative;flex:0 0 92%;scroll-snap-align:center;border:1px solid #b59a6c70;outline:1px solid #b59a6c20;outline-offset:6px;border-radius:46% 46% 3px 3px;background:linear-gradient(145deg,#fffaf1cf,#eee4d28c);padding:29px 18px 25px;box-shadow:0 15px 30px #66523509;min-width:0;transition:opacity .6s,transform .8s;transform:scale(.94);opacity:.62}.moment.is-current{transform:scale(1);opacity:1}.moment-number{display:block;letter-spacing:.15em;font-size:15px;color:#9b855f}.moment img{display:block;width:100%;height:155px;object-fit:contain;margin:14px auto 4px;opacity:.8}.moment:nth-child(2) img{transform:rotate(24deg)}.moment time{display:block;font-size:clamp(36px,8vw,51px);line-height:1.3;color:#725b35}.moment time small{font-size:16px;letter-spacing:.1em}.moment h3{font-family:"Amiri",serif;font-size:26px;font-weight:400;line-height:1.9;margin:4px 0}.moment p{font-family:"Amiri",serif;font-size:16px;line-height:1.8;color:#8b7758;margin:0}
.timeline-nav{display:flex;align-items:center;justify-content:center;gap:26px;font-size:15px;letter-spacing:.14em}.round-control{border:1px solid #b39a7059;border-radius:50%;width:42px;height:42px;background:#fffaf24f;color:#8e7650;font-size:21px;cursor:pointer}.round-control:disabled{opacity:.3}.swipe-hint{font-family:"Amiri",serif;font-size:16px;line-height:1.8;color:#8b7758}.swipe-hint span{display:inline-block;margin-right:8px}
.wedding-details .rsvp-section{padding-top:40px}.rsvp-envelope{width:160px;height:135px;object-fit:contain;filter:drop-shadow(0 8px 10px #8d734c17);margin-bottom:12px;animation:envelopeFloat 8s ease-in-out infinite}.rsvp-description{font-family:"Amiri",serif;font-size:18px;line-height:1.9;max-width:360px;margin:0 auto 30px}
#rsvp-form{position:relative;text-align:right;max-width:370px;margin:auto;font-family:"Amiri",serif}.field-label{display:block;font-size:17px;line-height:1.8;margin:19px 0 8px}.field-label>span{font-size:14px;color:#8f7e64;margin-inline-start:6px}input,select,textarea{width:100%;font:inherit;font-size:17px;color:#63533c;background:#fffbf47d;border:1px solid #b8a18170;border-radius:3px;padding:13px 15px;outline-offset:3px;line-height:1.6}input:focus,select:focus,textarea:focus{outline:1px solid #a18555;border-color:#a18555}input::placeholder,textarea::placeholder{color:#9d8d75}textarea{resize:vertical;min-height:95px}#guest-phone{font-family:Georgia,serif;font-size:16px}.attendance-choice{padding:0;border:0;margin:22px 0 0;display:grid;gap:10px}.attendance-choice legend{font-size:17px;margin-bottom:12px}.attendance-choice label{display:flex;align-items:center;gap:10px;font-size:16px;line-height:1.8;cursor:pointer;padding:12px;border:1px solid #b8a18155;border-radius:3px}.attendance-choice label:has(input:checked){border-color:#a1875d;background:#f3e8d68f}.attendance-choice input{accent-color:#8e7449;width:17px;height:17px;margin:0;flex-shrink:0}
.gold-button{display:flex;justify-content:center;align-items:center;gap:16px;width:100%;padding:14px 17px;margin-top:22px;border:1px solid #947745;border-radius:3px;background:linear-gradient(110deg,#8d7044,#aa8c59);box-shadow:0 7px 18px #8b734918;color:#fffaf0;font-family:"Amiri",serif;font-size:18px;line-height:1.8;cursor:pointer;transition:filter .25s,transform .25s}.gold-button:hover{filter:brightness(1.06);transform:translateY(-1px)}.gold-button:disabled{opacity:.55;transform:none;cursor:wait}.privacy-note,.ticket-help{font-family:"Amiri",serif;font-size:14px;line-height:1.9;text-align:center;color:#8b7b63;margin:15px 0 0}.form-error,#ticket-error{font-family:"Amiri",serif;color:#944630;font-size:16px;line-height:1.9}.form-error:empty,#ticket-error:empty{display:none}.saved-response{max-width:360px;margin:auto;font-family:"Amiri",serif;line-height:2}.saved-response h3{font-size:26px;font-weight:400}.saved-response p{font-size:18px}
.wedding-details .music-section{padding-top:25px;padding-bottom:38px}.music-section h2{font-size:27px}.music-player{width:min(100%,320px);height:210px;margin:auto;border:1px solid #b59a6c55;background:#eee7db}.music-player iframe{display:block;width:100%;height:100%;border:0}.music-section #music-status{font-family:"Amiri",serif;font-size:15px;line-height:1.8}.text-link{font-family:"Amiri",serif;font-size:15px;color:#806b46;text-underline-offset:5px}.wedding-footer{padding:20px 25px 65px}.wedding-footer>p{font-size:36px;margin:15px 0}.wedding-footer>span{font-family:"Amiri",serif;font-size:17px}
.reveal-section{transition:opacity 1.2s,transform 1.4s}.reveal-section.reveal-pending{opacity:0;transform:translateY(30px)}
.ticket-dialog{width:calc(100% - 28px);max-width:420px;max-height:calc(100dvh - 32px);padding:47px 26px 26px;border:1px solid #af9568;background:linear-gradient(#fcf7ee,#f0e7d7);color:#6d5b3c;text-align:center;overflow:auto;box-shadow:0 30px 100px #352e2a4d}.ticket-dialog::backdrop{background:#39342b70;backdrop-filter:blur(7px)}.ticket-dialog[open]{animation:ticketArrival .7s ease both}.ticket-close{position:absolute;top:10px;left:10px;width:34px;height:34px}.ticket-dialog h2{font-size:27px;margin:8px 0 0}.ticket-signature{font-family:"Kapakana",serif;font-size:44px;line-height:1.4;margin:5px 0 12px}.ticket-guest{font-family:"Amiri",serif;font-size:24px;line-height:1.8;margin:10px 0;overflow-wrap:anywhere}.ticket-date{font-size:21px}.ticket-qr{width:220px;max-width:100%;margin:20px auto;background:#fff}.ticket-qr svg{display:block;width:100%;height:auto}.ticket-body>p:not([class]){font-family:"Amiri",serif;font-size:17px}.ticket-reference{font-family:monospace;font-size:14px}.ticket-note{font-family:"Amiri",serif;font-size:16px;line-height:1.8}.ticket-help{font-size:14px}.ticket-dialog .gold-button{font-size:17px}
html[data-motion=still] .discover span,html[data-motion=still] .rsvp-envelope{animation-play-state:paused}html[data-motion=still] .reveal-section{transition:none;transform:none}
@keyframes discoverBreathe{50%{transform:translateY(4px)}}@keyframes ticketArrival{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:480px){.wedding-details section{padding:65px 27px}.moment{flex-basis:94%}.moment img{height:145px}.invitation-controls{gap:6px}.music-toggle{padding:6px 10px}.wedding-details .music-section{padding-inline:30px}}
@media(orientation:landscape) and (max-height:599px){.wedding-details{width:580px;max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.timeline{scroll-behavior:auto}.reveal-section,.moment{transition:none}.reveal-section.reveal-pending{opacity:1;transform:none}.ticket-dialog[open]{animation:none}.discover span,.rsvp-envelope{animation:none}}

/* Names remain readable as a pair in the original portrait composition. */
.cover-name{font-size:clamp(52px,13cqw,95px);line-height:1.4}.signature{font-size:clamp(57px,14.5cqw,105px);line-height:1.4}.arabic-name{font-size:clamp(32px,8cqw,55px)}.loading-initial{font-size:60px}.letter-signature{font-size:clamp(39px,9vw,55px)}

.name-calligraphy{display:block;width:112%;height:auto;max-height:245px;object-fit:contain;margin:0 -6%}.invitation-copy{top:27%}.invitation-copy .signature{font-size:clamp(36px,9cqw,65px);margin-top:-10px}.invitation-copy .date-reveal{margin-top:1cqw}.letter-calligraphy{display:block;width:100%;height:auto;max-height:300px;object-fit:contain;margin:25px auto 0}.letter-signature{margin-top:-5px;font-size:35px}
@media(max-height:700px){.invitation-copy{top:23%}.name-calligraphy{max-height:185px}.invitation-copy .signature{font-size:8cqw}}

/* Reference invitation typography and compact, swipe-first composition. */
:root{--page-width:min(100vw,calc(100svh * .79),790px);font-family:"Amiri",serif}
body,input,select,textarea,button{font-family:"Amiri",serif}
[lang=en],.date-reveal time,.ticket-date{font-family:"Cormorant Garamond",Georgia,serif}
.cover-name,.signature,.letter-signature,.ticket-signature,.wedding-footer>p{font-family:"Kapakana",cursive}
.small-english{font-family:"Tangerine",cursive!important;font-size:44px;letter-spacing:0;text-transform:none;line-height:1.1}
.eyebrow{font-family:"Montserrat",sans-serif;font-size:14px;letter-spacing:.18em}
.architecture,.parallax-front{transform:none!important;transition:none!important}
.palace{animation:palaceJourney 27s ease-in-out infinite alternate}
html[data-state=opening] .stage,html[data-state=open] .stage{height:max(100svh,calc(var(--page-width) * 2.48));min-height:1010px}
.cover{height:100svh;min-height:600px}
.cover-heading{top:22%}.envelope-travel{top:38%}.open-prompt{top:81%}
.invitation-copy{top:9%;inset-inline:8%;filter:none}
.invitation-copy::before{inset:-8% -8% -7%;background:radial-gradient(ellipse,#faf5e8db,#faf5e8a6 52%,transparent 76%)}
.hero-families{font-family:"Amiri",serif;font-size:17px;line-height:1.8;color:#65533c;text-shadow:0 1px 8px #fff9e8}
.hero-families>p{margin:0 0 15px;line-height:1.75;font-size:17px}
.family-letter{font-family:"Amiri",serif;line-height:1.8;font-size:17px}
.family-letter .honor{margin:14px 0;font-size:16px}.family-letter .family-label{margin:9px 0 0;font-size:15px}.family-letter .family-name{font-size:19px;line-height:1.9}.family-letter .family-and{margin:3px 0;font-size:18px}
.family-letter p[style]{margin-top:18px!important}
.name-calligraphy{width:115%;max-height:235px;margin:24px -7.5% 0;object-fit:contain}
.invitation-copy .signature{font-size:clamp(42px,11cqw,72px);line-height:1.25;margin:-10px -6% 8px}
.invitation-copy .date-reveal{margin-top:15px}.date-reveal time{font-size:clamp(22px,5cqw,30px)}.arabic-date{font-family:"Amiri",serif;font-size:16px;margin-top:3px}
.swans-reveal{bottom:3%;height:19%}.bride-reveal{bottom:11%;height:24%;width:28%}.record-reveal{bottom:19%;width:14%}
.discover{bottom:25px;font-family:"Amiri",serif;font-size:16px}
.wedding-details{background:#f8f4ec}
.wedding-details .garden-scene{padding:0;height:min(95svh,850px);min-height:540px;isolation:isolate;overflow:hidden;margin-top:-1px}
.garden-art{width:100%;height:100%;object-fit:cover;object-position:center;animation:gardenJourney 28s ease-in-out infinite alternate}
.garden-scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#f4eee2,transparent 12%,transparent 82%,#f8f4ec)}
.wedding-details .evening{padding:45px 0 32px}
.evening h2{font-size:28px;margin:5px 15px 7px;line-height:1.7}
.schedule-note{font-size:14px;margin:7px 18px 18px;color:#91836e}
.timeline{position:relative;gap:4px;padding:12px 22px 16px;scroll-snap-type:none;align-items:flex-start;cursor:grab;user-select:none;scroll-behavior:auto}
.timeline.dragging{cursor:grabbing}.timeline:focus-visible{outline:1px solid #ab9472;outline-offset:-4px}
.moment,.moment.is-current{flex:0 0 126px;width:126px;min-width:126px;border:0;outline:0;border-radius:0;box-shadow:none;background:none;padding:10px 6px;transform:none;opacity:1;transition:none}
.moment-icon{display:grid;place-items:center;position:relative;width:58px;height:74px;border:1px solid #baa2788c;border-radius:50%;margin:0 auto 13px;background:#ede3d538}
.moment-icon::before{content:"";position:absolute;inset:4px;border:1px solid #baa27833;border-radius:50%}
.moment-icon svg{width:23px;height:23px;color:#a88b5d}
.moment time{font-family:"Cormorant Garamond","Amiri",serif;font-size:19px;line-height:1.5;color:#78644b;white-space:nowrap}
.moment h3{font-family:"Amiri",serif;font-size:15px;line-height:1.65;max-width:122px;margin:7px auto 0;color:#8a7c68;font-weight:400}
.swipe-hint{font-family:"Amiri",serif;font-size:14px;margin:8px 0 0;color:#968770}
.wedding-details .rsvp-section{padding:45px 29px 55px}
.rsvp-section::before{display:none}
.rsvp-blessing{font-family:"Amiri",serif;font-size:18px;line-height:1.8;margin:0 0 9px;color:#776957}
.rsvp-notice{font-family:"Amiri",serif;font-size:15px;line-height:1.8;margin:0 0 33px;color:#9a8973}
.rsvp-section h2{font-size:31px;margin:0 0 18px}.rsvp-section .small-english{font-size:48px;margin-bottom:5px}
.rsvp-chair{display:block;width:112px;height:140px;object-fit:contain;margin:0 auto 30px}
#rsvp-form{max-width:350px;font-family:"Amiri",serif}
.field-label{font-family:"Amiri",serif;font-size:16px;margin:17px 0 7px;line-height:1.65}
input,select,textarea{font-size:16px;padding:11px 13px;line-height:1.65;border:1px solid #b9a78b63;background:#f6f0e5;border-radius:0}
textarea{min-height:92px}.attendance-choice{display:flex;flex-wrap:wrap;gap:12px;margin-top:19px}.attendance-choice legend{font-size:16px;margin-bottom:8px}.attendance-choice label{font-size:16px;border:0!important;background:none!important;padding:5px 0;gap:7px}.attendance-choice input{width:16px;height:16px}
.gold-button{font-family:"Amiri",serif;font-size:17px;border-radius:0;padding:11px 16px;background:#b79c78;border-color:#b79c78;box-shadow:none;line-height:1.8}
.privacy-note{font-family:"Amiri",serif;font-size:14px;margin-top:12px;color:#998c77;line-height:1.8}
.wedding-footer{padding:0 25px 65px}.wedding-footer>p{font-size:40px}.wedding-footer>span{font-family:"Amiri",serif;font-size:16px}
.invitation-controls{position:fixed;inset-inline:auto;right:max(24px,calc((100vw - var(--page-width))/2 + 24px));top:25px;z-index:40}
.music-toggle{width:42px;height:42px;justify-content:center;padding:0;border-radius:50%}.music-toggle>span:first-child{font-size:25px}#music-label{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}
.music-engine{position:fixed;width:1px;height:1px;overflow:hidden;left:-400px;top:0;pointer-events:none}.music-engine iframe{width:320px;height:210px;border:0}
.music-feedback{position:fixed;bottom:20px;left:20px;right:20px;z-index:45;max-width:380px;margin:auto;padding:12px 15px;background:#fff8e9f5;border:1px solid #c3ad89;color:#796440;font-family:"Amiri",serif;font-size:16px;line-height:1.8;text-align:center;box-shadow:0 8px 35px #75614818}
/* The original illustrated flap and its seal lift together along their top fold. */
.envelope{perspective:1000px;transform-style:preserve-3d}
.envelope-body{clip-path:polygon(0 8%,42% 55%,42% 72%,58% 72%,58% 55%,100% 8%,100% 100%,0 100%)}
.envelope .envelope-flap{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;clip-path:polygon(0 0,100% 0,100% 8%,58% 55%,58% 72%,42% 72%,42% 55%,0 8%);transform-origin:50% 9%;backface-visibility:visible;transform:rotateX(0deg);z-index:2}
html[data-state=opening] .envelope-float{animation-play-state:paused}
html[data-state=opening] .envelope-flap{animation:flapLift 3.4s cubic-bezier(.3,.1,.16,1) both}
html[data-state=opening] .seal-gleam{opacity:0;animation:none}
@keyframes flapLift{0%,10%{transform:rotateX(0deg);filter:brightness(1)}65%,100%{transform:rotateX(168deg);filter:brightness(.93)}}
@keyframes envelopeDeparture{0%,40%{transform:translateY(0) scale(1);opacity:1}70%{transform:translateY(-4%) scale(1.02);opacity:.65}100%{transform:translateY(-16%) scale(1.04);opacity:0}}
@keyframes gardenJourney{from{transform:scale(1.08) translateY(1.3%)}to{transform:scale(1.015) translateY(-1.3%)}}
html[data-motion=still] .envelope-flap{animation:none!important}
@media(min-width:700px){.hero-families>p{font-size:20px}.family-letter{font-size:19px}.family-letter .family-name{font-size:22px}.family-letter .family-label{font-size:18px}.family-letter .honor{margin:20px 0}.name-calligraphy{max-height:300px;margin-top:38px}.invitation-copy{top:10%}.moment{flex-basis:135px;min-width:135px}.moment-icon{width:67px;height:86px}}
@media(max-width:480px){.cover-heading{top:24%}.envelope-travel{top:41%;inset-inline:3%}.open-prompt{top:81%}.invitation-copy{top:10%;inset-inline:9%}.name-calligraphy{margin-top:22px;max-height:220px}.wedding-details .rsvp-section{padding:40px 28px}.record-reveal{bottom:19%;width:14%}.bride-reveal{bottom:11%;height:24%}.swans-reveal{bottom:3%;height:19%}}
@media(max-height:700px){.cover-heading{top:17%}.envelope-travel{top:33%}.open-prompt{top:76%}}
@media(prefers-reduced-motion:reduce){.garden-art{animation:none}.envelope-flap{animation:none!important}.discover span{animation:none}}
.envelope{max-width:calc(39svh * 1.24955);margin-inline:auto}.envelope img{max-height:none}
.language-switch{position:fixed;left:max(24px,calc((100vw - var(--page-width))/2 + 24px));top:25px;z-index:42;display:flex;gap:2px;border:1px solid #b49c7559;border-radius:30px;padding:3px;background:#fffaf0c9;backdrop-filter:blur(8px);direction:rtl}
.language-switch button{border:0;background:none;border-radius:22px;min-width:43px;min-height:34px;padding:3px 10px;font-size:15px;cursor:pointer;color:#7d6949;line-height:1.6}.language-switch button[aria-pressed=true]{background:#ae946d;color:#fffaf0}.language-switch button[data-language=en]{font-family:"Montserrat",sans-serif;font-size:13px}
.rsvp-chair{width:135px;height:172px;object-fit:contain;margin-bottom:24px}
html[data-state=closed] .palace,html[data-state=closed] .sunbeams,html[data-state=closed] .daylight{animation-play-state:paused}
html[data-state=opening][data-motion=full] .palace,html[data-state=open][data-motion=full] .palace{animation-play-state:running}
html[lang=en] .hero-families,html[lang=en] .family-letter{font-family:"Cormorant Garamond",serif;font-size:18px;line-height:1.5}
html[lang=en] .hero-families>p{font-family:"Cormorant Garamond",serif;font-size:19px;line-height:1.4}
html[lang=en] .family-letter .family-name{font-size:22px;line-height:1.55}html[lang=en] .family-letter .family-label{font-family:"Montserrat",sans-serif;font-size:13px;line-height:1.6}
html[lang=en] .name-calligraphy,html[lang=en] .arabic-date{display:none}
html[lang=en] .invitation-copy .signature{font-size:clamp(68px,17cqw,110px);margin:35px 0 25px;line-height:1.15}
html[lang=en] .wedding-details h2,html[lang=en] .ticket-dialog h2{font-family:"Cormorant Garamond",serif;line-height:1.4}
html[lang=en] .moment h3{font-family:"Montserrat",sans-serif;font-size:14px;line-height:1.6}
html[lang=en] #rsvp-form{text-align:left;font-family:"Cormorant Garamond",serif}
html[lang=en] .field-label,html[lang=en] input,html[lang=en] textarea,html[lang=en] .attendance-choice,html[lang=en] .gold-button,html[lang=en] .privacy-note,html[lang=en] .rsvp-notice,html[lang=en] .schedule-note,html[lang=en] .swipe-hint,html[lang=en] .ticket-note,html[lang=en] .ticket-help,html[lang=en] .saved-response,html[lang=en] .form-error,html[lang=en] #ticket-error,html[lang=en] .music-feedback{font-family:"Cormorant Garamond",serif}
html[lang=en] .rsvp-blessing{font-family:"Cormorant Garamond",serif;font-size:20px}html[lang=en] .attendance-choice label{font-size:17px}
.personal-invitation>span:first-child{font-family:"Amiri",serif;font-size:27px;line-height:1.8;letter-spacing:0;color:#806c4b}
html[lang=en] .personal-invitation>span:first-child{font-family:"Tangerine",cursive;font-size:42px}
.seal-letter-layer{position:absolute;inset:0;z-index:4;transform-origin:50% 9%;pointer-events:none;transform-style:preserve-3d}
.seal-letter-layer>span{position:absolute;left:43%;top:55%;width:14%;height:14%;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-family:"Cormorant Garamond",serif;font-size:clamp(17px,4.1cqw,26px);letter-spacing:.05em;line-height:1;color:#79603d;text-shadow:0 1px 1px #f8dfa4;direction:ltr}
html[data-state=opening] .seal-letter-layer{animation:flapLift 3.4s cubic-bezier(.3,.1,.16,1) both}
@media(prefers-reduced-motion:reduce){html[data-motion=full] .garden-art{animation:gardenJourney 28s ease-in-out infinite alternate}html[data-motion=full][data-state=opening] .envelope-flap,html[data-motion=full][data-state=opening] .seal-letter-layer{animation:flapLift 3.4s cubic-bezier(.3,.1,.16,1) both!important}}
.wedding-details .garden-scene{height:clamp(230px,48vw,390px);min-height:0;width:calc(100% - 48px);margin:24px auto 8px}
.garden-art{object-position:50% 68%}.garden-scene::after{background:linear-gradient(#f8f4ec,transparent 9%,transparent 88%,#f8f4ec)}
#swipe-arrow{display:inline-block;direction:ltr}.swipe-hint{display:flex;align-items:center;justify-content:center;gap:8px}
html[lang=en] .swipe-hint{flex-direction:row-reverse}
.discover{inset-inline:auto;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100% - 64px);min-width:170px;bottom:27px;gap:18px;padding:10px 25px;border:1px solid #bca47c80;border-radius:35px;background:#fffaf0e8;box-shadow:0 5px 19px #7964480d,inset 0 1px 0 #fffdf5;font-family:"Amiri",serif;font-size:18px;line-height:1.6;color:#87704c;text-align:center;backdrop-filter:blur(9px);transition:opacity 1.5s,background .3s,box-shadow .3s}
.discover:hover{background:#fffdf7;box-shadow:0 7px 22px #7964481c}.discover:focus-visible{outline:2px solid #a58a60;outline-offset:5px}.discover span{display:flex;align-items:center;justify-content:center;width:20px;height:24px}.discover svg{width:14px;height:21px}
html[lang=en] .discover{font-family:"Cormorant Garamond",serif;font-size:19px;gap:16px}

.personal-invitation>span:first-child{font-style:normal}
.store-credit{display:flex;flex-direction:column;align-items:center;gap:7px;width:max-content;max-width:100%;margin:38px auto 0;padding-top:24px;text-decoration:none;color:#9c896a;position:relative}.store-credit::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:42px;height:1px;background:#b9a37d55}.credit-copy{font-family:"Amiri",serif;font-size:14px;line-height:1.6}.store-credit strong{font-family:"Cormorant Garamond",serif;font-size:27px;line-height:1.2;font-weight:400;letter-spacing:.22em;color:#806a48}.credit-rights{font-family:"Amiri",serif;font-size:13px;line-height:1.6;opacity:.85}.store-credit:hover strong{color:#ad8d56}html[lang=en] .credit-copy,html[lang=en] .credit-rights{font-family:"Cormorant Garamond",serif}
/* Explicit vector geometry keeps the swipe arrow independent of bidi shaping. */
#swipe-arrow{display:flex;width:29px;height:20px;align-items:center;justify-content:center;direction:ltr;unicode-bidi:isolate;flex-shrink:0;margin:0}
#swipe-arrow svg{display:block;width:28px;height:20px;transform:none!important}
html[lang=en] #swipe-arrow{transform:scaleX(-1)}html[lang=ar] #swipe-arrow{transform:none!important}
.wedding-details .garden-scene{width:min(78%,310px);height:auto;min-height:0;margin:30px auto 15px;padding:7px;border:1px solid #bba27b55;background:#fbf7ef;overflow:visible;box-shadow:0 8px 22px #8d74460a}
.garden-scene::after{display:none}.garden-art{display:block;width:100%;height:auto;object-fit:contain;object-position:center;animation:gardenPaperLight 18s ease-in-out infinite alternate;transform:none}
@keyframes gardenPaperLight{from{filter:brightness(1)}to{filter:brightness(1.035)}}
@media(prefers-reduced-motion:reduce){html[data-motion=full] .garden-art{animation:gardenPaperLight 18s ease-in-out infinite alternate}}
/* The reference uses a text-and-chevron scroll cue, with no button surface. */
.discover,.discover:hover{min-width:0;width:max-content;display:flex;flex-direction:column;gap:3px;padding:6px 12px;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;font-family:"Amiri",serif;font-size:16px;line-height:1.5;color:#786342;text-shadow:0 1px 8px #fff9e6}
.discover span{width:28px;height:29px}.discover svg{width:25px;height:29px;stroke-width:1.65}
html[lang=en] .discover{font-family:"Cormorant Garamond",serif;font-size:17px;gap:3px}
.envelope .seal-engraving{position:absolute;left:38%;top:47.5%;width:24%;height:auto;max-height:none;aspect-ratio:1;object-fit:contain;clip-path:circle(26% at 50% 50%)}
.personal-calligraphy{display:block;width:min(65cqw,285px);height:auto;object-fit:contain;opacity:.92}.personal-invitation .personal-invitation-en{display:none}
html[lang=en] .personal-calligraphy{display:none}html[lang=en] .personal-invitation .personal-invitation-en{display:block;font-family:"Tangerine",cursive;font-size:43px;line-height:1.5;color:#8b7859;text-shadow:0 1px 0 #fff9e8}
.ticket-dialog{padding:43px 25px 23px;border:1px solid #bda178;border-radius:7px;background:linear-gradient(145deg,#fcf8ef,#f0e7d6);box-shadow:0 22px 80px #473c3047}
.ticket-body{border:1px solid #c9b58e6b;padding:25px 16px 19px;position:relative;outline:1px solid #c9b58e22;outline-offset:5px}
.ticket-dialog .small-english{font-family:"Cormorant Garamond",serif!important;text-transform:uppercase;font-size:14px;letter-spacing:.13em;line-height:1.6}
.ticket-dialog h2{font-size:24px;line-height:1.7;margin:8px 0 1px;color:#8b734d}
.ticket-signature{font-family:"Kapakana",cursive;font-size:44px;line-height:1.2;margin:8px 0 22px;color:#80613b}
.ticket-guest-label{font-family:"Amiri",serif;font-size:15px;line-height:1.7;margin:0;color:#9b876a}
.ticket-guest{font-size:25px;line-height:1.7;margin:6px 0 7px;color:#6f5836}
.ticket-date{font-family:"Cormorant Garamond",serif;font-size:21px;margin:5px 0 20px;letter-spacing:.025em;color:#8b734d}
.ticket-qr{width:190px;max-width:100%;padding:7px;margin:21px auto 17px;background:#fbf7ee;border:1px solid #c6ac80;outline:1px solid #c6ac8033;outline-offset:4px;box-shadow:0 5px 14px #92744609}
.ticket-reference{font-family:"Cormorant Garamond",serif;letter-spacing:.13em;font-size:14px;color:#a08963;margin:14px 0}
.ticket-note{font-family:"Amiri",serif;font-size:15px;line-height:1.8;color:#8c7859;margin:13px 0 0}
.ticket-dialog .gold-button{margin-top:23px;background:#a98c60;border-color:#a98c60;font-size:17px;padding:10px 12px;box-shadow:0 5px 12px #8b734918}
.ticket-dialog .ticket-help{font-size:14px;line-height:1.7;margin-top:12px}.ticket-brand{display:block;font-family:"Cormorant Garamond",serif;font-size:18px;letter-spacing:.2em;color:#a28a62;margin-top:15px}
html[lang=en] .ticket-guest-label{font-family:"Cormorant Garamond",serif}
/* An open illustrated vignette blends directly into the invitation paper. */
.wedding-details{background:#f4eee2}
.wedding-details .garden-scene{display:flex;justify-content:center;align-items:center;width:100%;height:350px;min-height:0;padding:20px 25px;margin:0 auto 8px;background:transparent;border:0;outline:0;box-shadow:none;overflow:hidden}
.garden-scene::before,.garden-scene::after{display:none}
.garden-art{display:block;width:auto;max-width:85%;height:100%;object-fit:contain;object-position:center;mix-blend-mode:multiply;animation:harpSway 14s ease-in-out infinite alternate;transform-origin:center bottom}
@keyframes harpSway{from{transform:translateY(3px) rotate(-.6deg)}to{transform:translateY(-3px) rotate(.6deg)}}
@media(max-width:480px){.wedding-details .garden-scene{height:300px;padding:15px 20px}}
@media(prefers-reduced-motion:reduce){html[data-motion=full] .garden-art{animation:harpSway 14s ease-in-out infinite alternate}}

.portfolio-return{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:1000;padding:7px 15px;border:1px solid #bba27b66;border-radius:24px;background:#f4eee2ee;color:#79613d;font:14px Georgia,serif;text-decoration:none;white-space:nowrap;backdrop-filter:blur(8px)}.portfolio-demo{text-align:center;font-size:14px;color:#79613d;line-height:1.8}.store-credit{padding-bottom:70px}
