:root{--pink:#f5d8dd;--ink:#673d46;--rose:#995766;--cream:#fffaf6;--line:#dfb9c0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.7}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--rose);outline-offset:5px}header{height:88px;padding:0 6.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #673d4617;background:#fffaf6;position:relative;z-index:3}.monogram{font-family:'Cormorant Garamond',serif;font-size:32px;letter-spacing:-3px}.monogram span{font-size:20px;font-style:italic;padding:0 5px}nav{display:flex;gap:38px;align-items:center;font-size:12px}nav a:hover{color:var(--rose)}.nav-rsvp{border:1px solid var(--line);padding:8px 19px;border-radius:30px}.nav-rsvp span{padding-left:16px}.hero{min-height:740px;height:calc(100vh - 88px);max-height:920px;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:55px 9% 95px;background:radial-gradient(ellipse at 85% 45%,#f5d8dd8a,transparent 60%);overflow:hidden}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:600;margin:0 0 25px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:400;line-height:1.02}h1{font-size:clamp(75px,7.8vw,118px);letter-spacing:-4px;margin-bottom:28px}h1 em,h2 em{font-weight:400;color:var(--rose)}.hero-desc{color:#8a6870;font-size:13px;line-height:1.9;margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;border:0;background:var(--rose);color:white;border-radius:40px;padding:16px 26px;font-size:12px;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#7a3c4b;transform:translateY(-2px)}.hero-date{display:flex;align-items:center;gap:18px;margin-top:35px}.hero-date p{font-size:10px;letter-spacing:1.6px;margin:0}.hero-date i{margin:0 7px;font-style:normal}.line{height:1px;width:34px;background:var(--rose)}.sample{display:block;font-size:10px;color:#977e84;margin-top:12px}.portrait-wrap{position:relative;margin-left:32px;padding:0 15px 50px}.arch{height:495px;position:relative;border-radius:220px 220px 8px 8px;background:linear-gradient(150deg,#eec6cf,#e2b2be);overflow:hidden}.arch-border{position:absolute;inset:13px;border:1px solid #fff8;border-radius:220px 220px 3px 3px;z-index:2;pointer-events:none}.arch img{position:absolute;width:115%;max-width:none;left:-7.5%;bottom:0}.arch-top{position:absolute;top:95px;text-align:center;width:100%;font-size:9px;letter-spacing:3px;color:#8d5362}.portrait-caption{position:absolute;top:137px;width:100%;text-align:center;font:italic 28px 'Cormorant Garamond',serif;color:#fffaf1}.portrait-label{position:absolute;bottom:-10px;left:0;right:0;text-align:center}.portrait-label>span{font:italic 42px 'Cormorant Garamond',serif}.portrait-label small{display:block;font-size:8px;letter-spacing:2.8px;margin-top:10px}.petal{position:absolute;font-family:serif;color:#b4758570;z-index:2;font-size:85px;line-height:1}.p1{top:50px;right:-27px;transform:rotate(20deg)}.p2{bottom:77px;left:-29px;font-size:65px}.p3{top:130px;right:-45px;font-size:40px}.scroll{position:absolute;bottom:27px;left:9%;font-size:8px;letter-spacing:2px;display:flex;align-items:center;gap:25px}.scroll span{font-size:20px}h2{font-size:65px;letter-spacing:-1.8px;margin-bottom:25px}.invitation{text-align:center;padding:105px 25px 80px;background:#f9e9eb}.arabic{font-size:28px;margin-bottom:27px}.invitation>p:not(.eyebrow):not(.arabic){font-size:13px;color:#89616b;line-height:2}.couple-names{display:flex;align-items:center;justify-content:center;gap:30px;margin:32px 0;font:48px 'Cormorant Garamond',serif}.couple-names em{font-size:30px;color:#b57a88}.prayer{font-style:italic}.ornament{font-size:30px;color:#b97d8c}.details{padding:110px 10%;display:grid;grid-template-columns:1fr 1fr;gap:70px}.muted{color:#92717a;font-size:13px}.detail-list article{display:flex;gap:27px;padding:25px 0;border-bottom:1px solid #e6cfd3}.detail-list article:first-child{padding-top:0}.detail-icon{font-size:27px}.detail-list small{font-size:9px;letter-spacing:2px}.detail-list h3{font-size:29px;margin:13px 0 10px}.detail-list p{font-size:12px;color:#987981;margin-bottom:8px}.text-link{padding:0;background:none;border:0;color:var(--rose);font-size:11px;border-bottom:1px solid var(--line);cursor:pointer}.text-link span{padding-left:15px}.programme{text-align:center;padding:90px 8%;background:#f7eff0}.timeline{display:grid;grid-template-columns:repeat(4,1fr);margin-top:55px;text-align:left;gap:30px}.timeline article{border-top:1px solid #d8b0bb;position:relative;padding-top:25px}.timeline small{font-size:9px;letter-spacing:1px}.timeline span{display:block;font:italic 30px 'Cormorant Garamond',serif;color:#c49aa5;margin:22px 0 17px}.timeline h3{font-size:26px;margin-bottom:10px}.timeline p{font-size:12px;color:#92717a}.rsvp{display:grid;grid-template-columns:1fr 1fr;padding:110px 10%;gap:100px}.rsvp-flower{font-size:100px;line-height:1.5;color:#c0929f;margin-top:15px}.rsvp-note{font-size:11px;max-width:330px;color:#96747e;border-left:2px solid var(--line);padding-left:15px}.rsvp-copy>p:not(.eyebrow):not(.rsvp-note){font-size:13px;color:#987981}form{padding:34px;border:1px solid #e6c8cf;border-radius:4px;background:#fffdfb}form>label,#pax-wrap>label{display:block;font-size:11px;font-weight:500;margin-bottom:9px}label small{font-size:10px;font-weight:400;color:#987981}input:not([type=radio]),select,textarea{width:100%;border:1px solid #e8d6da;background:#fffdfb;border-radius:4px;padding:12px 14px;color:var(--ink);font-size:12px;margin-bottom:22px;outline-color:var(--rose)}textarea{resize:vertical}fieldset{border:0;margin:0 0 22px;padding:0;display:flex;gap:9px}legend{font-size:11px;margin-bottom:10px}.choice{flex:1;cursor:pointer}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice span{display:block;text-align:center;border:1px solid #e8d6da;border-radius:4px;padding:10px 4px;font-size:10px}.choice input:checked+span{background:#f6e3e7;border-color:#b07989;color:#86505e}.choice input:focus-visible+span{outline:2px solid var(--rose)}form .button{width:100%}#status{font-size:12px;margin:14px 0 0}#download{margin-top:12px}.closing{text-align:center;padding:80px 20px;background:#f1d8df}.closing>span{font-size:35px}.closing h2{margin-top:20px;font-size:58px}.closing p{font-size:12px;color:#92717a}.closing .monogram{margin-top:30px}footer{display:flex;justify-content:space-between;padding:25px 6.5%;font-size:9px;letter-spacing:1px}footer p{margin:0}@media(min-width:1500px){.hero{padding-left:15%;padding-right:15%}.scroll{left:15%}}@media(max-width:800px){header{height:74px;padding:0 6%}nav{gap:18px}nav a:not(.nav-rsvp){font-size:10px}.hero{height:auto;min-height:0;padding:60px 7% 80px;grid-template-columns:1fr;gap:50px}.hero-copy{text-align:center}h1{font-size:86px}.hero-date{justify-content:center}.portrait-wrap{margin:auto;width:min(100%,390px)}.arch{height:450px}.scroll{left:50%;transform:translateX(-50%);white-space:nowrap}.details,.rsvp{grid-template-columns:1fr;gap:45px;padding:70px 7%}h2{font-size:56px}.invitation{padding:70px 20px}.couple-names{font-size:39px;gap:20px}.timeline{grid-template-columns:1fr 1fr;gap:30px 22px}.programme{padding:70px 7%}.rsvp-flower{display:none}.rsvp-note{margin-top:25px;max-width:none}form{padding:24px}.closing h2{font-size:51px}footer{font-size:8px}.desktop{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

[hidden]{display:none!important}.full-names{font-size:11px;letter-spacing:1.5px;margin:25px 0}.full-names p{margin:4px}.families{display:flex;justify-content:center;gap:60px;margin:35px 0}.families small{font-size:9px;letter-spacing:2px}.families p{font-size:12px;line-height:1.9;margin-top:10px}.whatsapp{margin-top:15px}#download{display:block}@media(max-width:600px){.families{flex-direction:column;gap:15px}.full-names{font-size:10px}.portrait-label>span{font-size:36px}}
@media(max-width:800px){.hero{max-height:none}}

body.invitation-closed{overflow:hidden}.opening{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:auto;background:#fcf7f5;transition:opacity .65s ease}.opening-content{width:100%;min-height:100%;position:relative;text-align:center;padding:35px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:cover-arrive .8s ease both;transition:transform .65s,opacity .65s}.opening-content .eyebrow{color:#a4838d;font-size:9px;letter-spacing:2.8px;margin:0 0 16px}.opening-art{display:block;width:auto;height:clamp(220px,40dvh,345px);max-width:85%;object-fit:contain;margin:0 auto 17px}.opening-intro{font:italic 18px 'Cormorant Garamond',serif;color:#a1848c;margin:0 0 12px}.opening-content h2{font-size:clamp(38px,7vw,56px);color:#795960;letter-spacing:-1px;line-height:1.1;margin:0 0 18px}.opening-content h2 em{font-size:.75em;color:#b28d98}.opening-date{font-size:9px;letter-spacing:2px;color:#9b7c85;margin:0 0 24px}.opening-content .button{background:#eedce2;color:#795960;border:1px solid #e6cfd7;font-size:12px;padding:13px 26px;box-shadow:none}.opening-content .button:hover{background:#e8d0d9}.opening-hint{font-size:10px;color:#aa9198;margin:14px 0 0}.opening.is-opening{opacity:0;pointer-events:none}.opening.is-opening .opening-content{opacity:0;transform:translateY(-12px)}@keyframes cover-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-height:600px){.opening-content{padding:20px}.opening-art{height:32dvh;margin-bottom:10px}.opening-content h2{font-size:36px;margin-bottom:12px}.opening-intro{font-size:16px}.opening-date{margin-bottom:16px}}@media(prefers-reduced-motion:reduce){.opening,.opening-content{transition:none;animation:none}}
.opening-art{mix-blend-mode:multiply}

.arch img{width:100%;left:0}

/* A quiet invitation cover, with a fully visible portrait and no navigation bar. */
:root{--cream:#fffcf9;--pink:#f7e9ed;--ink:#70545b;--rose:#a07886;--line:#e8d4dc}
.hero{display:flex;flex-direction:column;text-align:center;justify-content:center;min-height:0;height:auto;max-height:none;padding:65px 24px 45px;background:linear-gradient(180deg,#fffcf9,#faf0f2);overflow:visible;gap:0}
.hero .eyebrow{font-size:9px;letter-spacing:4px;margin-bottom:22px}.hero-blessing{font:italic 22px 'Cormorant Garamond',serif;color:#a58992;margin:0 0 15px}.hero h1{font-size:clamp(58px,7vw,88px);line-height:.95;letter-spacing:-2px;margin:0 0 18px}.hero h1 em{font-size:.58em;color:#b89aa5}.hero-subtitle{font-size:10px;letter-spacing:2px;color:#9d7f88;margin-bottom:30px}.portrait-frame{width:min(100%,460px);padding:25px 18px 0;background:#f4e5e9;border:1px solid #ead7df;border-radius:160px 160px 8px 8px;overflow:hidden;margin-bottom:28px}.portrait-frame img{display:block;width:100%;height:auto;mix-blend-mode:multiply}.date-ribbon{display:flex;flex-direction:column;gap:7px;color:#91717c;margin-bottom:25px}.date-ribbon span{font-size:8px;letter-spacing:3px}.date-ribbon strong{font:30px 'Cormorant Garamond',serif;letter-spacing:4px}.date-ribbon i{font-size:18px;color:#ccb1bb;font-style:normal}.hero .hero-desc{font-size:12px;margin:0 0 24px}.hero .scroll{position:static;transform:none;margin-top:32px;justify-content:center;letter-spacing:2px;font-size:8px}.invitation{background:#fcf5f6}.programme{background:#fbf5f6}.closing{background:#f5e7ec}h2{color:#70545b}.button{background:#a07886}.button:hover{background:#886572}footer{background:var(--cream)}@media(max-width:800px){.hero{padding:45px 24px 35px}.hero h1{font-size:66px}.portrait-frame{max-width:360px}.hero .scroll{left:auto}.details,.rsvp{padding-top:65px;padding-bottom:65px}}

.public-choice{display:flex!important;align-items:flex-start;gap:10px;font-weight:400!important;line-height:1.7;margin:0 0 22px!important}.public-choice input{width:auto!important;margin:4px 0 0!important;accent-color:var(--rose)}.honeypot{position:absolute;left:-9999px;opacity:0}.guestbook{padding:75px 10%;background:#fbf4f6;text-align:center}.guest-messages{max-width:800px;margin:30px auto;display:grid;grid-template-columns:1fr 1fr;gap:16px;max-height:600px;overflow:auto}.guest-message{padding:24px;text-align:left;background:#fffdfb;border:1px solid #ecdae1;border-radius:12px}.guest-message-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.guest-message h3{font-size:27px;margin:0}.guest-message small{font-size:10px;color:var(--rose)}.guest-message p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.8;margin:18px 0 12px}.guest-message time{font-size:9px;color:#aa8e99}#guestbook-status{font-size:12px;color:#92717a}form button:disabled{opacity:.6;cursor:wait}@media(max-width:650px){.guest-messages{grid-template-columns:1fr}.guestbook{padding:60px 7%}}

.message-help{font-size:11px;color:#92717a;margin:0 0 15px;line-height:1.8}.simple-timeline{max-width:550px;margin:40px auto 0;text-align:left}.simple-timeline article{display:flex;gap:24px;position:relative;padding:0 0 34px}.simple-timeline article:last-child{padding-bottom:0}.simple-timeline article:not(:last-child):before{content:'';position:absolute;left:20px;top:40px;bottom:0;width:1px;background:#e1c7d1}.event-marker{flex-shrink:0;width:41px;height:41px;display:grid;place-items:center;border-radius:50%;background:#eedde4;border:1px solid #dec1cd;color:#9c7281;font-size:11px}.simple-timeline h3{font-size:29px;margin:4px 0 8px}.simple-timeline p{font-size:12px;color:#997985;margin:0 0 8px}.simple-timeline small{font-size:9px;letter-spacing:.8px;color:#b18f9c}form button[type=submit]{margin-top:5px;min-height:52px}
/* Quiet motion that respects reduced-motion preferences. */
.reveal-motion{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}.reveal-motion.is-visible{opacity:1;transform:none}.portrait-frame{transition:box-shadow .4s ease,transform .5s ease}.portrait-frame:hover{transform:translateY(-3px);box-shadow:0 14px 36px #a0788614}.button span{display:inline-block;transition:transform .25s ease}.button:hover span{transform:translate(3px,-3px)}.guest-message{animation:message-arrive .5s ease both}.event-marker{transition:background .3s ease,transform .3s ease}.simple-timeline article:hover .event-marker{transform:scale(1.07);background:#e5cdd7}@keyframes message-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.reveal-motion{opacity:1;transform:none;transition:none}.portrait-frame,.button span,.event-marker{transition:none}.portrait-frame:hover,.simple-timeline article:hover .event-marker,.button:hover span{transform:none}.guest-message{animation:none}}

.section-indicator{position:fixed;z-index:30;right:12px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:0;align-items:center;padding:8px 13px 8px 0;background:transparent}.section-indicator a{display:grid;place-items:center;width:24px;height:24px;border-radius:50%}.section-indicator a:before{content:'';width:7px;height:7px;border:1px solid #a07886;border-radius:50%;background:#fffcf999;transition:background .2s,transform .2s}.section-indicator a[aria-current]:before{background:#a07886;transform:scale(1.35)}.section-indicator a:hover:before{background:#d7b3c1}.reading-track{position:absolute;right:0;top:8px;bottom:8px;width:4px;border-radius:8px;background:#e9d6dd;overflow:hidden}.reading-track>span{display:block;height:100%;background:#a07886;transform:scaleY(0);transform-origin:top;transition:transform .12s linear}.invitation-closed .section-indicator{visibility:hidden}@media(max-width:650px){.section-indicator{right:3px;padding-right:8px}.section-indicator a{width:20px;height:24px}.section-indicator a:before{width:6px;height:6px}.reading-track{width:3px}}@media(prefers-reduced-motion:reduce){.section-indicator a:before,.reading-track>span{transition:none}}
