@font-face{font-family:Niko;src:url("/native/fonts/4b6e1a9fa8d1ef55115e9a04.woff2") format('woff2');font-display:swap}@font-face{font-family:FiraGO;src:url("/native/fonts/1d097371d53f43bcf36377e3.woff2") format('woff2');font-display:swap}
:root{--paper:#f8f6ef;--ink:#465b4c;--muted:#899182;--line:#d9ddcf;--gold:#b7a180;--body:FiraGO,Arial,sans-serif;--display:Niko,Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.9 var(--body);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.25' filter='url("https://mariam-luka-invitation.vercel.app/%23n")'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.svg-library{position:absolute;width:0;height:0;overflow:hidden}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h2{font:46px/1.45 var(--display)}h2 em{font-weight:400}img{display:block;max-width:100%;height:auto}.site-header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid #71816f20;position:absolute;z-index:8;top:0;width:100%;background:#f8f6efc9;backdrop-filter:blur(12px)}.monogram{font:32px Georgia,serif;letter-spacing:-4px}.monogram span{font-size:20px;font-style:italic;padding:0 4px}.site-header nav{display:flex;gap:35px;font-size:11px}.site-header a{transition:color .2s}.site-header a:hover{color:var(--gold)}.header-rsvp{font-size:11px;display:flex;gap:24px;align-items:center}.header-rsvp span{font-size:19px}.hero{height:max(780px,100svh);max-height:1100px;min-height:700px;position:relative;display:grid;place-items:center;overflow:hidden;background:#f7f5ef}.video-stage{position:absolute;inset:0}.video-stage video{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;inset:0}.video-stage #video-two{opacity:0}.video-stage.second #video-two{opacity:1}.video-stage.second #video-one{visibility:hidden}.hero-copy{position:relative;z-index:2;text-align:center;max-width:720px;padding:110px 24px 60px;opacity:0;transform:translateY(18px);visibility:hidden;transition:opacity 1.5s,transform 1.5s,visibility 1.5s}.hero-copy.visible{opacity:1;transform:none;visibility:visible}.hero-copy:before{content:"";position:absolute;inset:40px -60px;background:radial-gradient(ellipse,#f8f6efed 0%,#f8f6efb0 50%,transparent 75%);z-index:-1;filter:blur(16px)}.eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase;display:block;color:var(--muted)}h1{font:clamp(48px,6.8vw,92px)/1.5 var(--display);margin:18px 0 8px}h1 em{font:italic .8em Georgia,serif;color:var(--gold);padding:0 7px}.families{font-size:11px;letter-spacing:.035em}.families span{margin:0 14px;color:var(--gold)}.invitation{max-width:460px;margin:25px auto 20px;font-size:13px;line-height:2.1}.hero-date{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px 0 26px}.hero-date>span{font:54px Georgia,serif}.hero-date i{height:40px;width:1px;background:var(--line)}.hero-date div{font-size:12px;line-height:1.8;text-align:left}.hero-date small{letter-spacing:.28em;font:13px Georgia,serif}.button{display:inline-flex;justify-content:center;align-items:center;gap:34px;min-height:51px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:12px 25px;font-size:11px;cursor:pointer;transition:background .25s,transform .25s}.button:hover{background:#33473a;transform:translateY(-2px)}.button svg{width:20px}.skip-intro,.play-intro{position:absolute;z-index:4;border:1px solid #78877466;background:#f8f6efdd;color:var(--ink);padding:10px 18px;cursor:pointer;font-size:11px}.skip-intro{bottom:42px;right:4%}.skip-intro span{margin-left:20px}.play-intro{top:50%;left:50%;transform:translate(-50%,-50%)}[hidden]{display:none!important}.scroll-cue{position:absolute;bottom:24px;z-index:3;text-align:center;font-size:9px;letter-spacing:.13em;opacity:0;transition:opacity 1s}.scroll-cue.visible{opacity:1}.scroll-cue i{display:block;font-style:normal;font-size:23px;line-height:1.6}.countdown-section{padding:75px 24px 20px;text-align:center}.countdown-scene{width:min(660px,100%);height:390px;margin:25px auto 0;position:relative;display:grid;place-items:center}.column{position:absolute;width:100px;height:100%;top:0;background-image:url("https://mariam-luka-invitation.vercel.app/assets/countdown-reference.png");background-size:auto 100%;background-repeat:no-repeat;mix-blend-mode:multiply}.column-left{left:0;background-position:left center}.column-right{right:0;background-position:right center}.countdown-inner{width:65%;padding-bottom:16px}.english-script{font:italic 46px/1.3 'Baskerville','Palatino Linotype',Georgia,serif;letter-spacing:-2px}.until{font:10px Georgia,serif;letter-spacing:.3em;color:var(--muted);margin-top:12px}.timer{display:flex;justify-content:center;margin:40px auto 25px}.timer>div{flex:1;position:relative}.timer>div+div:before{content:"";width:1px;height:32px;background:var(--line);position:absolute;left:0;top:10px}.timer span{font:italic 40px Georgia,serif;font-variant-numeric:tabular-nums}.timer small{display:block;font-size:9px;color:var(--muted);letter-spacing:.18em;margin-top:10px}.countdown-label{font:18px var(--display);color:var(--muted)}.section{position:relative;text-align:center;padding:75px 24px;max-width:1440px;margin:auto}.section-number{display:flex;gap:13px;align-items:center;justify-content:center;font-size:9px;letter-spacing:.14em;color:var(--muted);margin-bottom:42px}.section-number i{height:1px;width:36px;background:var(--gold);opacity:.6}.story{padding-top:40px}.yacht{width:min(580px,75%);margin:0 auto 28px;mix-blend-mode:multiply}.tiny-star{color:var(--gold);font:30px Georgia,serif;display:block;margin-bottom:18px}.story h2{font-size:42px}.story-text{font:25px/1.95 var(--display);max-width:700px;margin:28px auto 20px}.signature{font:23px var(--display);color:var(--gold);margin-top:25px}.location{padding-top:60px;padding-bottom:5px}.location .eyebrow{margin-bottom:20px}.location h2{font:43px/1.35 Georgia,serif}.location h2 em{font-style:italic;color:#72806a}.location-date{font-size:11px;margin:23px 0}.location-date span{color:var(--gold);padding:0 12px}.location-actions{display:flex;justify-content:center;gap:32px}.text-link{font-size:10px;border-bottom:1px solid var(--line);padding-bottom:7px;display:flex;align-items:center;gap:9px}.text-link svg{width:16px;height:16px}.text-link:hover{border-color:var(--ink)}.resort{width:min(1120px,100%);margin:5px auto 0;mix-blend-mode:multiply}.schedule{max-width:940px;padding-top:85px}.schedule h2{margin-top:12px}.section-subtitle{color:var(--muted);font-size:11px;margin-top:12px}.timeline{width:min(620px,100%);margin:50px auto 0;text-align:left}.timeline article{display:grid;grid-template-columns:70px 74px 1fr;align-items:center;min-height:112px;gap:22px;position:relative}.timeline time{font:24px Georgia,serif;text-align:right}.timeline-icon{display:grid;place-items:center;position:relative;align-self:stretch}.timeline-icon:after{content:"";width:1px;background:var(--line);position:absolute;top:78px;bottom:-32px;left:50%}.timeline article:last-child .timeline-icon:after{display:none}.timeline-icon svg{width:39px;height:39px;stroke-width:1.1;z-index:1;background:var(--paper);box-sizing:content-box;padding:8px}.timeline h3{font:22px/1.6 var(--display)}.timeline p{font-size:10px;color:var(--muted);margin-top:4px}.candles{width:230px;margin:55px auto 0;mix-blend-mode:multiply;opacity:.9}.dresscode{max-width:1160px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:65px 40px}.dresscode .section-number{margin-bottom:20px}.dress-layout{display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:40px}.dress-copy{text-align:left}.dress-copy h2{font:44px/1.25 Georgia,serif;margin:18px 0}.dress-copy h2 em{color:#7c876e}.georgian-subtitle{font:23px var(--display);margin-bottom:17px}.dress-copy>p:last-of-type{font-size:11px;max-width:300px;color:var(--muted)}.swatches{display:flex;gap:12px;margin-top:25px}.swatches i{height:25px;width:25px;background:var(--swatch);border-radius:50%;outline:1px solid #a9ad971c;outline-offset:4px}.dress-art{mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at center,black 54%,transparent 73%)}.rsvp{padding-top:100px;max-width:740px}.rsvp .section-number{margin-bottom:28px}.rsvp h2{font-size:42px}.rsvp-intro{font-size:12px;max-width:440px;margin:18px auto 0}.deadline{font-size:10px;color:var(--muted);margin-top:9px}form{text-align:left;max-width:470px;margin:40px auto 0}form>label,#guest-count-wrap>label{display:block;font-size:11px;margin:18px 0 8px}form label span{color:var(--muted);font-size:10px}input:not([type=radio]),textarea,select{width:100%;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:13px 15px;font-size:12px;min-height:48px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#a2a696;font-size:11px}fieldset{padding:0;margin:25px 0 18px;border:0;display:flex;gap:24px}legend{font-size:11px;margin-bottom:12px}.radio-option{font-size:11px;display:flex;align-items:center;gap:8px;cursor:pointer}.radio-option span{color:var(--ink);font-size:11px}input[type=radio]{accent-color:var(--ink);width:15px;height:15px}form .button{width:100%;margin-top:25px}.demo-note{font-size:9px;color:var(--muted);text-align:center;margin-top:13px}#form-message{font-size:12px;border:1px solid var(--line);padding:15px;margin-top:20px;background:#ecf0e5}footer{text-align:center;padding:65px 24px 40px;border-top:1px solid var(--line);margin-top:20px}footer .english-script{font-size:30px;color:var(--gold)}footer h2{font-size:38px;margin:14px 0 20px}footer>div{font:10px Georgia,serif;letter-spacing:.22em;color:var(--muted)}footer>div span{padding:0 20px}footer>a{display:inline-block;font-size:9px;margin-top:40px;color:var(--muted)}
@media(min-width:1500px){.hero{height:950px}}@media(max-width:700px){.site-header{height:70px;padding:0 6%}.site-header nav{display:none}.header-rsvp{font-size:9px;gap:10px}.monogram{font-size:28px}.hero{height:100svh;min-height:720px;max-height:950px}.hero-copy{padding:90px 25px 60px}h1{font-size:55px}.hero-copy:before{inset:40px -10px}.eyebrow{font-size:9px}.families{font-size:10px}.families span{margin:0 8px}.invitation{font-size:11px;max-width:330px}.hero-date{margin:22px 0}.button{font-size:10px;gap:24px}.skip-intro{bottom:28px;right:6%}.scroll-cue{bottom:20px;font-size:8px}.countdown-section{padding:55px 15px 0}.countdown-scene{height:310px;margin-top:23px}.column{width:68px}.countdown-inner{width:65%}.english-script{font-size:34px}.until{font-size:8px;letter-spacing:.2em}.timer{margin:30px auto 23px}.timer span{font-size:31px}.timer small{font-size:8px}.timer>div+div:before{height:25px;top:5px}.countdown-label{font-size:15px}.section{padding:55px 24px}.section-number{font-size:8px;margin-bottom:30px}.story{padding-top:35px}.yacht{width:95%;margin-bottom:25px}.story h2{font-size:34px}.story-text{font-size:23px;line-height:1.8;margin-top:24px}.signature{font-size:21px}.location{padding-bottom:0}.location h2{font-size:29px}.location-date{font-size:9px;margin:18px 0}.location-date span{padding:0 5px}.location-actions{gap:18px}.text-link{font-size:9px;gap:5px}.resort{width:calc(100% + 36px);max-width:none;margin:30px -18px 0}.schedule{padding-top:65px}.schedule h2{font-size:37px}.timeline{margin-top:30px}.timeline article{grid-template-columns:49px 47px 1fr;gap:13px;min-height:116px}.timeline time{font-size:20px}.timeline-icon svg{width:31px;height:31px;padding:5px}.timeline h3{font-size:21px;line-height:1.45}.timeline p{font-size:9px;line-height:1.8}.timeline-icon:after{top:80px;bottom:-36px}.candles{width:175px;margin-top:30px}.dresscode{margin:0 24px;padding:45px 0}.dress-layout{display:flex;flex-direction:column;gap:12px}.dress-copy{text-align:center}.dress-copy h2{font-size:38px}.dress-copy>p:last-of-type{margin:auto}.swatches{justify-content:center}.dress-art{width:100%;max-width:450px}.rsvp{padding-top:65px}.rsvp h2{font-size:34px}.rsvp-intro{font-size:11px}.deadline{font-size:9px}fieldset{gap:13px;flex-wrap:wrap}.radio-option span{font-size:10px}footer{margin-top:0;padding-top:45px}footer h2{font-size:33px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* A single, intimate mobile invitation, including on a wide display. */
.timeline-three .painted-icon{background-image:url("https://mariam-luka-invitation.vercel.app/assets/timeline-blue.png");background-size:300% 100%;width:94px;height:94px}.timeline-three .painted-welcome{background-position:0 50%}.timeline-three .painted-supper{background-position:50% 50%}.timeline-three .painted-party{background-position:100% 50%}.timeline.timeline-three article{grid-template-columns:44px 94px 1fr;gap:10px;min-height:177px}.timeline-three .timeline-icon:after{top:124px;bottom:-53px;background:#aabfc950}.timeline.timeline-three time{color:#718d9b}.timeline.timeline-three h3{color:#58717a}.timeline-three .event-detail{display:block;color:#879ca2;margin-top:6px}.timeline.timeline-three p{line-height:1.9}.timeline-three .timeline-icon{align-items:center}
@font-face{font-family:FiraGO;src:url("/native/fonts/4ba7c0eac53335be2c78c832.woff2") format('woff2');font-style:italic;font-weight:400;font-display:swap}
html{background:#e6e5dd;scroll-padding-top:20px}body{max-width:480px;margin:0 auto;box-shadow:0 0 80px #465b4c14;font-style:italic;overflow-x:clip}body:before{max-width:480px;left:50%;transform:translateX(-50%)}h1,h2,h3,.story-text,.signature,.georgian-subtitle,.card-signature{font-style:normal}input,select,textarea,button{font-style:italic}.hero{height:auto;aspect-ratio:9/16;min-height:740px;max-height:940px}.video-stage video{object-fit:cover}.hero-copy{padding:65px 30px 55px;width:100%}.hero-copy:before{inset:70px 10px 65px;filter:blur(22px);background:radial-gradient(ellipse,#f8f6efcc, #f8f6ef55 65%,transparent 78%)}h1{font-size:55px;margin-top:17px}.eyebrow{font-size:9px;letter-spacing:.13em}.families{font-size:10px}.families span{margin:0 7px}.invitation{font-size:12px;max-width:310px;line-height:2.1;margin:22px auto}.hero-date{margin:24px 0}.hero-date>span{font-size:46px}.hero-date div{font-size:11px}.hero .button{font-size:10px;padding:11px 21px;min-height:46px;gap:25px}.scroll-cue{font-size:8px;bottom:22px}.skip-intro{bottom:30px;font-size:10px;right:22px}.section{padding:54px 25px}.section-number{font-size:8px;margin-bottom:30px}.countdown-section{padding:50px 0 0}.countdown-section>.eyebrow{margin-bottom:22px}.countdown-scene{width:100%;height:auto;aspect-ratio:1/1;margin:0;background:url("https://mariam-luka-invitation.vercel.app/assets/columns-roses.webp") center/100% 100% no-repeat}.countdown-inner{width:63%;padding-bottom:5px}.english-script{font-size:36px}.until{font-size:8px;letter-spacing:.17em;margin-top:12px}.timer{margin:29px auto 24px}.timer span{font-size:31px;font-weight:400}.timer small{font-size:8px;letter-spacing:.12em;margin-top:9px}.timer>div+div:before{height:26px;top:7px}.countdown-label{font:17px var(--display)}.story{padding-top:45px}.yacht{width:100%;margin-bottom:28px}.story h2{font-size:34px}.story-text{font-size:23px;line-height:1.85;margin-top:22px}.signature{font-size:22px}.tiny-star{font-size:25px}.location{padding-bottom:0}.location h2{font-size:29px}.location-date{font-size:9px;margin:19px 0}.location-date span{padding:0 5px}.location-actions{gap:17px}.text-link{font-size:9px;gap:6px}.resort{width:calc(100% + 40px);max-width:none;margin:28px -20px 0}.schedule{padding:65px 23px 40px}.schedule h2{font-size:36px}.section-subtitle{font-size:10px}.timeline{margin-top:32px}.timeline article{grid-template-columns:45px 86px 1fr;gap:10px;min-height:130px}.timeline time{font-size:20px;font-style:italic;color:#7b856e}.timeline h3{font-size:21px;line-height:1.45}.timeline p{font-size:9px;line-height:1.85;margin-top:7px}.timeline-icon:after{top:100px;bottom:-30px;background:#c8cdbb88}.painted-icon{display:block;width:86px;height:86px;background-image:url("https://mariam-luka-invitation.vercel.app/assets/timeline-watercolors.png");background-repeat:no-repeat;background-size:200% 300%;position:relative;z-index:1}.painted-glasses{background-position:0 0}.painted-rings{background-position:100% 0}.painted-sunset{background-position:0 50%}.painted-dinner{background-position:100% 50%}.painted-cake{background-position:0 100%}.painted-music{background-position:100% 100%}.candles{width:185px;margin:28px auto 0}.dresscode{margin:0 25px;padding:45px 0}.dress-layout{display:flex;flex-direction:column;gap:14px}.dress-copy{text-align:center}.dress-copy h2{font-size:38px}.dress-copy>p:last-of-type{margin:auto;font-size:11px;max-width:310px}.georgian-subtitle{font-size:23px}.swatches{justify-content:center;gap:15px}.swatches i{width:23px;height:23px}.dress-art{width:100%;max-width:430px}.rsvp{padding:65px 20px 35px}.rsvp-card{position:relative;background:#fcfbf6;border:1px solid #c7c8b393;border-radius:160px 160px 5px 5px;padding:75px 25px 30px;box-shadow:0 14px 35px #7a71530a}.rsvp-card:before{content:"";position:absolute;inset:8px;border:1px solid #d6d2bd99;border-radius:151px 151px 2px 2px;pointer-events:none}.wax-seal{position:absolute;top:-24px;left:50%;transform:translateX(-50%) rotate(-7deg);width:55px;height:55px;display:flex;align-items:center;justify-content:center;border-radius:44% 49% 45% 48%;background:linear-gradient(135deg,#d6cfb2,#a99f7c);box-shadow:1px 4px 6px #6a604233,inset 0 0 0 4px #d8d1b255,inset 0 0 0 6px #a99e7c33;font:20px Georgia,serif;color:#f6f1dc;text-shadow:0 1px #8c8365}.wax-seal span{font-size:13px}.rsvp-script{font:italic 30px Georgia,serif;color:var(--gold);margin-bottom:19px;letter-spacing:-1px}.rsvp .section-number{font-size:8px;letter-spacing:.19em;margin-bottom:15px}.rsvp h2{font-size:38px;line-height:1.4}.rsvp-intro{font-size:11px;line-height:2;max-width:265px;margin-top:20px}.deadline{font-size:9px;margin:9px auto 0;max-width:230px;color:#9a9e8b}form{position:relative;margin-top:29px}form>label,#guest-count-wrap>label{font-size:10px;margin:21px 0 8px}form>label span{font-size:8px}input:not([type=radio]),textarea{border:0;border-bottom:1px solid #c9cbbb;padding:10px 0;background:none;min-height:40px;font-size:12px;border-radius:0}input::placeholder,textarea::placeholder{font-size:10px;color:#a9ac9d}fieldset{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:25px 0 20px}legend{font-size:10px;margin-bottom:12px}.radio-option{display:block;position:relative}.radio-option input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.radio-option>span{min-height:99px;border:1px solid #d9dacb;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 5px;text-align:center;font-size:9px;line-height:1.7;transition:.2s;background:#faf9f2}.radio-option b{font:24px Georgia,serif;color:#9b9d7f;margin-bottom:4px;font-weight:400}.radio-option small{font-size:8px;color:#969c88;margin-top:4px}.radio-option input:checked+span{background:#e9eddf;border-color:#9ca98d;box-shadow:inset 0 0 0 3px #fcfbf6}.radio-option input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}.guest-stepper{display:flex;align-items:center;justify-content:center;border-top:1px solid #dddfd1;border-bottom:1px solid #dddfd1;padding:9px 0;gap:45px}.guest-stepper button{width:31px;height:31px;border:1px solid #cbd1bd;background:transparent;color:var(--ink);border-radius:50%;font:19px Georgia,serif;cursor:pointer}.guest-stepper button:disabled{opacity:.35;cursor:default}.guest-stepper>div{display:flex;align-items:baseline;gap:7px}.guest-stepper output{font:28px Georgia,serif}.guest-stepper span{font-size:9px;color:var(--muted)}textarea{min-height:75px}form .button{border-radius:1px;min-height:47px;font-size:10px;gap:18px;background:#6b7b61;border-color:#6b7b61;margin-top:27px;box-shadow:0 4px 0 #6b7b6112}form .button:hover{background:#55664c}.demo-note{font-size:8px;line-height:1.8;margin-top:13px;color:#999f8c}#form-message{font-size:10px;line-height:1.9}.card-signature{font:20px var(--display);color:var(--gold);margin-top:25px}footer{padding:40px 25px 30px;margin-top:0}footer h2{font-size:33px}footer .english-script{font-size:27px}footer>div{font-size:9px}footer>a{font-size:8px;margin-top:28px}@media(max-width:360px){h1{font-size:47px}.hero-copy{padding-left:22px;padding-right:22px}.hero{min-height:710px}.timeline article{grid-template-columns:40px 70px 1fr;gap:7px}.painted-icon{width:70px;height:70px}.timeline h3{font-size:19px}.rsvp{padding-left:13px;padding-right:13px}.rsvp-card{padding-left:22px;padding-right:22px}.countdown-inner{width:61%}.timer span{font-size:26px}.english-script{font-size:31px}.until{font-size:7px}}

/* Short copy, botanical stationery and a quiet typography-led schedule. */
.hero-copy{padding-top:0;padding-bottom:0;margin-top:-15px}.hero-copy h1{font-size:57px;line-height:1.9;margin:0}.hero-copy:before{inset:-65px 5px;opacity:.65}.hero-date{margin:16px 0 0}.hero-date>span{font-size:43px}.scroll-cue{bottom:30px}.countdown-section{padding:38px 0 0}.countdown-scene{aspect-ratio:1/1.04;position:relative}.countdown-inner{width:63%;padding:15px 0 0}.countdown-inner h2{font:35px/1.6 var(--display);margin:7px 0 20px}.countdown-ornament{font:27px Georgia,serif;color:#9aa58b}.timer{display:flex;align-items:flex-start;margin:0 0 27px;gap:2px}.timer>div{flex:1}.timer>div+div:before{display:none}.timer b{font:23px Georgia,serif;color:#bbc2af;padding-top:8px;font-weight:400}.timer span{font:italic 36px Georgia,serif;color:#657c6b;letter-spacing:-1px}.timer small{font-size:8px;letter-spacing:.08em;margin-top:10px;color:#8f9b85}.countdown-date{font:10px Georgia,serif;letter-spacing:.23em;color:#9a9d89}.story{padding:35px 30px 25px}.yacht{max-width:330px;margin:0 auto;opacity:.95}.ceremony{padding:30px 20px 22px}.event-time{font:italic 30px Georgia,serif;color:#8498a1;letter-spacing:.05em;margin-bottom:8px}.ceremony h2{font-size:42px}.place-name{font-size:12px;color:#8a978c;margin:9px 0 0}.monastery-art{width:100%;margin:25px auto 13px;mix-blend-mode:multiply}.quiet-link{font-size:10px;color:#879b9c;display:inline-block;border-bottom:1px solid #becac4;padding:0 3px 3px;margin-top:13px}.location{padding:25px 17px 18px}.location .resort{width:100%;max-width:100%;margin:0 auto 24px}.location h2{font:26px/1.5 Georgia,serif}.location .place-name{font:italic 21px Georgia,serif;color:#829691;margin:4px 0 0}.location .quiet-link{margin-top:17px}.schedule{padding:28px 40px 15px}.schedule>h2{font-size:34px;margin:0 0 24px}.simple-timeline{max-width:340px;margin:auto;text-align:left}.simple-timeline>div{display:grid;grid-template-columns:65px 1fr;gap:19px;align-items:center;padding:19px 0;border-bottom:1px solid #d9ded22e}.simple-timeline>div:last-child{border-bottom:0}.simple-timeline time{font:italic 23px Georgia,serif;color:#879fa7;position:relative}.simple-timeline p{font-size:12px;color:#60766c}.rose-divider{width:220px;margin:30px auto 0;opacity:.9}.dresscode{padding:35px 0 20px;border-bottom:0;margin:10px 25px 0}.dresscode h2{font:italic 29px/1.5 Georgia,serif;margin:12px 0 0}.dresscode .place-name{font-size:10px;margin-top:6px}.dress-art{width:100%;margin:15px auto 0;max-width:390px}.rsvp{padding:32px 22px 20px}.rsvp-card{border-radius:150px 150px 4px 4px;padding:142px 28px 87px;background:#fcfbf6;overflow:hidden;box-shadow:0 12px 25px #63745608}.rsvp-card:before{border-radius:143px 143px 3px 3px;inset:7px;border-color:#d3d8c899}.rsvp-roses{position:absolute;top:24px;left:8%;width:84%;height:104px;object-fit:contain;transform:rotate(-5deg)}.rsvp h2{font-size:38px;line-height:1.5;color:#617563}.rsvp form{margin:22px auto 0}.rsvp input:not([type=radio]){text-align:center;font-size:12px;min-height:47px;border-bottom-color:#d3d8c8}.rsvp input::placeholder{font-size:11px;color:#a2ab97}.rsvp fieldset{margin:22px 0 0;gap:10px}.rsvp .radio-option>span{min-height:47px;font-size:11px;padding:9px 4px;background:transparent;border:1px solid #d0d9c6;border-radius:2px}.rsvp .radio-option input:checked+span{background:#e8eddf;border-color:#a5b599;box-shadow:inset 0 0 0 3px #fcfbf6}.rsvp .button{width:100%;min-height:43px;margin-top:18px;font-size:11px;background:#82937a;border-color:#82937a}.demo-note{font-size:8px;margin-top:10px;opacity:.75}.rsvp-roses-bottom{position:absolute;bottom:-14px;right:-25px;width:195px;transform:rotate(-14deg);opacity:.7;pointer-events:none}#form-message{font-size:10px;padding:10px;margin-top:13px}.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap;border:0}footer{padding:28px 24px 35px;margin-top:20px;border-top:0}footer h2{font-size:28px;margin:0 0 13px}footer>div{font-size:9px;color:#9ca691}@media(max-width:370px){.hero-copy h1{font-size:49px}.countdown-inner h2{font-size:30px}.timer span{font-size:30px}.timer b{font-size:20px}.countdown-inner{width:62%}.schedule{padding-left:27px;padding-right:27px}.simple-timeline>div{gap:13px}.simple-timeline p{font-size:11px}.rsvp-card{padding-left:22px;padding-right:22px}.rsvp h2{font-size:34px}.rsvp .radio-option>span{font-size:10px}.location h2{font-size:24px}}

.countdown-inner{width:57%;max-width:274px;padding-top:0}.countdown-inner h2{margin:0 0 25px;font-size:34px}.timer{display:grid;grid-template-columns:minmax(0,1.25fr) 5px minmax(0,1fr) 5px minmax(0,1fr) 5px minmax(0,1fr);gap:2px;align-items:start;width:100%;margin-bottom:25px}.timer>div{min-width:0}.timer span{font-size:28px;letter-spacing:-1px;font-variant-numeric:tabular-nums;white-space:nowrap}.timer b{font-size:17px;padding-top:5px;line-height:1.3}.timer small{font-size:7px;letter-spacing:0;margin-top:11px}.countdown-date{font-size:9px;letter-spacing:.18em}.story{overflow:hidden;padding-top:42px;padding-bottom:40px}.yacht{animation:sea-sway 6.5s ease-in-out infinite;transform-origin:50% 75%;will-change:transform}@keyframes sea-sway{0%,100%{transform:translate3d(-3px,1px,0) rotate(-1deg)}50%{transform:translate3d(4px,-7px,0) rotate(1deg)}}.rose-divider{width:240px;opacity:.8}.rsvp-roses{width:87%;left:6.5%;top:28px;height:95px;transform:rotate(-3deg)}.rsvp-roses-bottom{width:210px;bottom:-5px;right:-40px;opacity:.45;transform:rotate(-18deg)}.wedding-footer{position:relative;overflow:hidden;margin-top:38px;padding:95px 25px 35px;background:linear-gradient(180deg,#f8f6ef,#eef0e7);border-top:1px solid #d7dece88}.footer-florals{position:absolute;top:-24px;left:50%;transform:translateX(-50%);width:300px;opacity:.75}.footer-love{font:23px var(--display);color:#9aa88c;margin-bottom:10px}.wedding-footer h2{font:38px/1.6 var(--display);margin:0;color:#617761}.wedding-footer h2 em{font:italic 29px Georgia,serif;color:#acaa8b}.footer-rule{height:1px;width:60px;background:#b9c5ad;margin:24px auto 20px}.footer-date{font:12px Georgia,serif;letter-spacing:.3em;color:#7a9185}.footer-place{font-size:10px;color:#99a58e;margin-top:10px}.wedding-footer .footer-top{display:grid;place-items:center;width:37px;height:37px;border:1px solid #c2cbb7;border-radius:50%;margin:27px auto 0;font:18px Georgia,serif;color:#84967b;transition:background .2s}.footer-top:hover{background:#e4e9dc}@media(max-width:370px){.countdown-inner{width:57%}.countdown-inner h2{font-size:28px}.timer span{font-size:23px}.timer b{font-size:14px}.timer small{font-size:6px}.timer{gap:1px}.countdown-date{font-size:8px}.wedding-footer h2{font-size:33px}}@media(prefers-reduced-motion:reduce){.yacht{animation:none;will-change:auto}}

.hero-copy{margin-top:6px;padding:0 27px}.hero-copy h1{display:flex;justify-content:center;align-items:baseline;gap:9px;font-size:39px;line-height:1.6;white-space:nowrap}.hero-copy h1 em{font-size:25px;padding:0;color:#9fa58b}.hero-date-line{font-size:12px;letter-spacing:.06em;color:#7f9287;margin:22px auto 0}.hero-date-line span{font:13px Georgia,serif;letter-spacing:.16em;margin-left:9px}.hero-copy:before{inset:-45px 35px;opacity:.45}.countdown-inner h2{font-size:29px}.ceremony h2{font-size:32px}.ceremony .event-time{font-size:25px}.place-name{font-size:11px}.location h2{font-size:23px}.location .place-name{font-size:18px}.schedule>h2{font-size:28px}.simple-timeline time{font-size:21px}.dresscode h2{font-size:25px}.rsvp h2{font-size:30px;line-height:1.55}.rsvp-card{padding-bottom:34px}.rsvp .button{margin-top:19px}.monastery-art{margin-top:22px}.wedding-footer{background:var(--paper);padding:48px 24px 24px;margin-top:15px;border-top:0}.footer-monogram{font:28px Georgia,serif;color:#98a78f;letter-spacing:-2px;display:flex;align-items:center;justify-content:center;gap:3px;margin:0 0 14px}.footer-monogram span{font-size:16px;font-style:italic}.wedding-footer h2{font:29px/1.6 var(--display);color:#617563}.wedding-footer h2 em{font:italic 20px Georgia,serif;color:#9da38c}.footer-date{font:11px Georgia,serif;letter-spacing:.25em;margin-top:17px;color:#93a096}.footer-place{font-size:9px;margin-top:8px}.footer-horizon{width:calc(100% + 48px);max-width:none;margin:20px -24px -5px;opacity:.73;mask-image:linear-gradient(to bottom,transparent,black 12%,black 80%,transparent);mix-blend-mode:multiply}.wedding-footer .footer-top{margin:3px auto 0;width:30px;height:30px;font-size:14px;border-color:#cbd3c2}.petal-layer{position:fixed;top:0;bottom:0;left:50%;width:min(480px,100%);transform:translateX(-50%);overflow:hidden;pointer-events:none;z-index:6;contain:layout paint}.petal{position:absolute;top:-50px;left:var(--left);width:var(--size);height:var(--size);opacity:0;animation:petal-fall var(--duration) linear var(--delay) infinite;will-change:transform,opacity}.petal-face{display:block;width:100%;height:100%;background:url("https://mariam-luka-invitation.vercel.app/assets/selected-petal-sheet.webp") 100% 100%/300% 200% no-repeat;animation:petal-drift 5s ease-in-out infinite alternate;filter:brightness(1.06)}@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(var(--rotation))}8%{opacity:var(--alpha)}88%{opacity:var(--alpha)}100%{opacity:0;transform:translate3d(var(--drift),calc(100svh + 90px),0) rotate(calc(var(--rotation) + 115deg))}}@keyframes petal-drift{from{transform:translateX(-9px) rotateY(12deg)}to{transform:translateX(9px) rotateY(55deg)}}.motion-ready .reveal-item{opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.65,.3,1)}.motion-ready .reveal-item.is-visible{opacity:1;transform:none}.page-hidden .petal,.page-hidden .petal-face,.page-hidden .yacht{animation-play-state:paused}@media(max-width:370px){.hero-copy h1{font-size:34px;gap:7px}.hero-copy h1 em{font-size:22px}.hero-date-line{font-size:11px}.countdown-inner h2{font-size:26px}.ceremony h2{font-size:29px}.location h2{font-size:21px}.schedule>h2{font-size:26px}.rsvp h2{font-size:28px}.wedding-footer h2{font-size:26px}}@media(prefers-reduced-motion:reduce){.petal-layer{display:none}.motion-ready .reveal-item{opacity:1;transform:none;transition:none}.yacht{animation:none}}

@font-face{font-family:GreatVibes;src:url("/native/fonts/8248de00b3fd0305015219db.woff2");font-display:swap}.footer-monogram{font-family:GreatVibes,cursive;font-size:57px;letter-spacing:0;gap:4px;line-height:1.2;transform:rotate(-5deg);margin-bottom:18px;color:#819777}.footer-monogram span{font:30px GreatVibes,cursive;margin:0 -1px;color:#a4ab92}.petal-face{animation:petal-soft-sway 8s ease-in-out infinite alternate;filter:none}.petal{animation-timing-function:linear}@keyframes petal-soft-sway{from{transform:translateX(-10px) rotate(-9deg)}to{transform:translateX(10px) rotate(9deg)}}@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-100px,0) rotate(var(--rotation))}12%{opacity:var(--alpha)}85%{opacity:var(--alpha)}100%{opacity:0;transform:translate3d(var(--drift),calc(100svh + 140px),0) rotate(calc(var(--rotation) + 38deg))}}@media(prefers-reduced-motion:reduce){.petal-layer{display:none}}

.invitation-letter{padding:25px 18px 5px;text-align:center}.invitation-envelope{position:relative;width:100%;max-width:410px;aspect-ratio:1;margin:0 auto;isolation:isolate}.invitation-envelope-image{position:absolute;inset:0;background:url("https://mariam-luka-invitation.vercel.app/assets/plain-bow-envelope-states.webp") center top/100% 200% no-repeat;pointer-events:none}.invitation-envelope.is-open .invitation-envelope-image{background-position:center bottom}.invitation-envelope-button{position:absolute;inset:0;width:100%;height:100%;border:0;background:none;cursor:pointer;z-index:2}.invitation-envelope-button:focus-visible{outline:1px solid #9eaf90;outline-offset:-20px;border-radius:4px}.envelope-caption{font:italic 10px FiraGO,Arial,sans-serif;color:#98a58d;margin:4px 0 0;min-height:20px}.envelope-reset{font:italic 9px FiraGO,Arial,sans-serif;color:#98a58d;background:none;border:0;border-bottom:1px solid #d0d9c4;padding:2px 0;cursor:pointer;margin-top:4px}.invitation-letter+.wedding-footer{padding-top:35px;margin-top:0}
.envelope-wish-form{position:relative;width:76%;max-width:310px;margin:8px auto 20px;padding:16px 18px 17px;background:#fffef8;border:1px solid #dce2d2;box-shadow:0 5px 18px #6c775008;text-align:center}.envelope-wish-form textarea{display:block;width:100%;border:0;border-radius:0;border-bottom:1px solid #d9e0ce;background:repeating-linear-gradient(transparent,transparent 28px,#e6ebdf 29px,transparent 30px);padding:0;resize:vertical;min-height:92px;font:italic 12px/30px FiraGO,Arial,sans-serif;color:#6c8262}.envelope-wish-form textarea::placeholder{font-size:11px;color:#a2af97}.envelope-wish-form button{margin-top:15px;padding:5px 3px;border:0;border-bottom:1px solid #b6c5a6;background:none;color:#829671;font:italic 10px FiraGO,Arial,sans-serif;cursor:pointer}.envelope-wish-form p{font-size:9px;color:#95a487;line-height:1.9;margin-top:12px}.envelope-caption:empty{display:none}

@font-face{font-family:Pinyon;src:url("/native/fonts/a5710e71a70fc9f3d61f8ced.woff2");font-display:swap}.footer-monogram{position:relative;display:flex;align-items:baseline;justify-content:center;font:69px/1.3 Pinyon,cursive;letter-spacing:-3px;gap:0;transform:none;margin:0 auto 20px;width:150px;color:#7b8e73}.footer-monogram span{font:37px/1 Pinyon,cursive;letter-spacing:0;color:#aaa88c;margin:0 -4px;transform:translateY(7px);position:relative;z-index:1}.footer-monogram:after{content:"";position:absolute;bottom:3px;left:23%;right:23%;height:1px;background:linear-gradient(90deg,transparent,#bbc4ab,transparent)}.petal-face{clip-path:url(#petal-outline);animation:petal-lilt var(--sway,9s) ease-in-out var(--sway-delay,0s) infinite;transform-origin:50% 55%;filter:none;backface-visibility:visible;mask-image:radial-gradient(ellipse at 50% 43%,black 45%,#000c 63%,transparent 76%)}@keyframes petal-lilt{0%,100%{transform:translateX(-7px) rotate(-13deg) rotateY(8deg)}27%{transform:translateX(8px) rotate(7deg) rotateY(29deg)}62%{transform:translateX(-3px) rotate(-4deg) rotateY(-17deg)}82%{transform:translateX(-10px) rotate(-16deg) rotateY(6deg)}}@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-90px,0) rotate(var(--rotation))}9%{opacity:var(--alpha)}29%{transform:translate3d(calc(var(--drift)*.55),29svh,0) rotate(calc(var(--rotation) + 13deg))}57%{transform:translate3d(calc(var(--drift)*-.18),58svh,0) rotate(calc(var(--rotation) - 6deg))}84%{opacity:var(--alpha);transform:translate3d(calc(var(--drift)*.8),85svh,0) rotate(calc(var(--rotation) + 16deg))}100%{opacity:0;transform:translate3d(var(--drift),calc(100svh + 110px),0) rotate(calc(var(--rotation) + 24deg))}}@media(prefers-reduced-motion:reduce){.petal-layer{display:none}}

.motion-ready .reveal-item{opacity:0;transform:translate3d(0,22px,0);transition:opacity 850ms ease var(--reveal-delay,0ms),transform 1100ms cubic-bezier(.16,.7,.2,1) var(--reveal-delay,0ms)}.motion-ready .reveal-item.is-visible{opacity:1;transform:translate3d(0,0,0)}.motion-ready img.reveal-item{transition-duration:1050ms,1300ms}.dress-art{mix-blend-mode:normal;mask-image:none}.hero{background-image:url("https://mariam-luka-invitation.vercel.app/assets/intro-final.webp");background-position:center;background-size:cover}.quiet-link{min-height:42px;display:inline-flex;align-items:center}.simple-timeline p{font-size:13px}.place-name{color:#788874}.timer small{font-size:9px;color:#78896d}@media(max-width:370px){.timer small{font-size:8px}}@media(prefers-reduced-motion:reduce){.motion-ready .reveal-item{opacity:1;transform:none;transition:none}}

/* One quiet editorial system: invitation, two places, attire, reply. */
:root{--paper:#faf8f2;--ink:#465e4d;--muted:#7c8b78;--line:#d9dfcf}body{background:var(--paper)}.hero-copy h1{font-size:41px;gap:9px;color:#435e4c}.hero-date-line{color:#667f6b;font-size:13px;letter-spacing:.055em}.hero-date-line span{color:#7d8c73}.hero-copy:before{background:radial-gradient(ellipse,#faf8f27d,transparent 72%);opacity:.55}.scroll-cue{bottom:23px}.countdown-section{padding:20px 0 0}.countdown-scene{aspect-ratio:1/.98}.countdown-inner h2{font-size:31px;color:#506c55;margin-bottom:23px}.timer span{color:#536f58}.timer small{color:#73856b;font-size:9px}.countdown-date{color:#829173}.celebration{padding:43px 24px 32px}.chapter-heading{text-align:center;margin-bottom:28px}.chapter-kicker{font:italic 10px FiraGO,Arial,sans-serif;letter-spacing:.12em;color:#8a9a80}.chapter-heading h2{font:36px/1.6 Niko,Georgia,serif;margin:6px 0 15px;color:#4e6953}.chapter-rule{display:block;width:32px;height:1px;margin:auto;background:#b7c5a9}.venue-card{position:relative;border:1px solid #d8dfce;background:#fdfcf7;border-radius:5px;padding:24px 17px 21px;overflow:hidden}.venue-card:before{content:"";position:absolute;inset:6px;border:1px solid #e7eadd;border-radius:2px;pointer-events:none}.venue-topline{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0 9px;color:#7c8d74}.venue-topline>span{font-size:10px;letter-spacing:.055em}.venue-topline time{font:italic 24px/1.3 Georgia,serif;color:#789197}.venue-card img{position:relative;width:calc(100% + 12px);max-width:none;height:auto;margin:13px -6px 10px;mix-blend-mode:multiply}.venue-copy{position:relative;text-align:center;padding:4px 12px 0}.venue-copy h3{font:32px/1.55 Niko,Georgia,serif;margin:0;color:#4b6550}.venue-name{font-size:13px;line-height:1.9;color:#667c64;margin:5px 0 0}.quiet-link{font-size:10px;color:#6e8673;border-bottom:1px solid #bac9ac;margin:10px 0 0;padding:0 1px;min-height:40px;line-height:1.5;display:inline-flex;align-items:center;justify-content:center}.quiet-link:hover{color:#405e46;border-color:#6a8567}.venue-connector{height:29px;display:grid;place-items:center}.venue-connector span{display:block;width:1px;height:17px;background:#bbc8af}.venue-copy .resort-name{font:23px/1.5 Georgia,serif;color:#4b6651}.venue-subname{font:italic 18px/1.4 Georgia,serif;color:#8a9d84;margin:3px 0 0}.reception-card .resort{margin-top:20px;margin-bottom:13px}.reception-card .schedule{max-width:none;padding:18px 14px 0;margin-top:17px;border-top:1px solid #e0e5d7}.simple-timeline{max-width:none}.simple-timeline>div{grid-template-columns:59px 1fr;gap:17px;padding:13px 0;border-bottom:1px solid #e2e7da80}.simple-timeline time{font:italic 22px/1.4 Georgia,serif;color:#789198}.simple-timeline p{font:italic 12px/1.9 FiraGO,Arial,sans-serif;color:#58715a}.calendar-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:20px auto 0;padding:8px 0;min-height:42px;font-size:10px;color:#829477}.calendar-link svg{width:15px;height:15px;stroke-width:1}.dresscode{border-top:1px solid #dfe5d5;border-bottom:1px solid #dfe5d5;margin:0 35px;padding:29px 0 22px}.dresscode .eyebrow{font-size:10px;letter-spacing:.1em;color:#7b8c71}.dresscode h2{font:italic 25px/1.5 Georgia,serif;color:#4e6953;margin:10px 0 0}.dresscode .place-name{font-size:11px;color:#819175;margin-top:6px}.dress-art{width:100%;max-width:350px;margin:17px auto 0;mix-blend-mode:normal;mask-image:none}.attendance-area{padding:38px 0 0}.rsvp{padding:0 29px 0}.rsvp-card{padding:113px 25px 27px;border-radius:130px 130px 4px 4px;background:#fdfcf7;border-color:#d7dfcb;box-shadow:none}.rsvp-card:before{border-radius:122px 122px 2px 2px;border-color:#e1e7d7}.rsvp-roses{width:76%;height:74px;left:12%;top:24px;transform:none;opacity:.9}.rsvp h2{font:31px/1.5 Niko,Georgia,serif;color:#4e6953}.rsvp form{margin-top:20px}.rsvp input:not([type=radio]){font-size:13px;min-height:43px;color:#526b54}.rsvp input::placeholder{font-size:12px;color:#87997d}.rsvp fieldset{gap:9px;margin-top:20px}.rsvp .radio-option>span{font-size:11px;min-height:46px;color:#5c755c;border-color:#d5deca}.rsvp .radio-option input:checked+span{background:#eaf0e1;border-color:#a8ba98}.rsvp .button{font-size:11px;min-height:45px;background:#6c8460;border-color:#6c8460;margin-top:17px}.rsvp .button:hover{background:#58754e}.invitation-letter{padding:29px 29px 0}.letter-heading{font:25px/1.5 Niko,Georgia,serif;color:#839579;margin:0 0 0}.invitation-envelope{max-width:325px;margin:-3px auto -14px}.envelope-caption{font-size:9px;color:#8d9f80;margin:0;min-height:22px}.envelope-wish-form{margin:6px auto 17px;width:84%;border-color:#d9e2cd;box-shadow:none;background:#fffef8}.envelope-wish-form textarea{font-size:12px}.envelope-wish-form button{min-height:37px;color:#758e68}.envelope-reset{min-height:35px}.invitation-letter+.wedding-footer{padding-top:28px}.wedding-footer{padding:36px 25px 26px;margin:0;border-top:none;background:var(--paper)}.footer-monogram{font-size:62px;line-height:1.2;color:#748b6c;margin-bottom:17px}.footer-monogram span{font-size:34px;color:#a3a88e}.footer-date{font-size:11px;color:#829579;letter-spacing:.25em;margin-top:0}.footer-place{font-size:9px;color:#95a48a;margin-top:9px}.footer-yacht{width:190px;max-width:62%;opacity:.8;margin:22px auto 12px;mix-blend-mode:multiply}.wedding-footer .footer-top{width:31px;height:31px;min-height:31px;margin:13px auto 0;color:#8b9d80}.motion-ready .reveal-item{transition-duration:800ms,1050ms}.petal-layer{z-index:4}.petal{filter:blur(.12px)}@media(max-width:370px){.hero-copy h1{font-size:35px}.hero-date-line{font-size:12px}.countdown-inner h2{font-size:27px}.timer small{font-size:8px}.celebration{padding:35px 20px 26px}.chapter-heading h2{font-size:33px}.venue-card{padding:21px 14px 18px}.venue-topline{padding:0 7px}.venue-topline>span{font-size:9px}.venue-copy .resort-name{font-size:21px}.venue-name{font-size:12px}.reception-card .schedule{padding-left:8px;padding-right:8px}.simple-timeline>div{gap:11px;grid-template-columns:55px 1fr}.simple-timeline p{font-size:11px}.dresscode{margin:0 29px}.dresscode h2{font-size:23px}.rsvp{padding:0 22px}.rsvp-card{padding-left:22px;padding-right:22px}.rsvp h2{font-size:29px}.rsvp .radio-option>span{font-size:10px}.invitation-letter{padding-left:22px;padding-right:22px}.footer-monogram{font-size:57px}}
.venue-copy .resort-name>span{display:block;font:26px/1.25 Georgia,serif}.venue-copy .resort-name>small{display:block;font:italic 15px/1.5 Georgia,serif;letter-spacing:.055em;color:#7e9376;margin-top:4px}.venue-subname{font-size:16px;margin-top:3px}.reception-card .resort{margin-top:7px}.simple-timeline>div{grid-template-columns:68px minmax(0,1fr);gap:14px}.simple-timeline time{font-size:21px;letter-spacing:-.25px}@media(max-width:370px){.simple-timeline>div{grid-template-columns:60px minmax(0,1fr);gap:12px}.simple-timeline time{font-size:20px}.simple-timeline p{font-size:11px;line-height:1.9}.venue-copy .resort-name>span{font-size:25px}}

/* Airy stationery composition: one arch, an open seascape and one reply area. */
:root{--watercolor-sage:#72866a;--watercolor-blue:#82999d;--watercolor-paper:#faf8f2}.countdown-section{padding:20px 0 2px}.countdown-scene{width:86%;max-width:400px;aspect-ratio:1;margin:0 auto;background-size:100% 100%}.countdown-inner{width:59%;padding:0}.countdown-inner h2{font-size:28px;margin-bottom:20px}.timer{margin-bottom:21px;gap:1px}.timer span{font-size:25px}.timer small{font-size:8px;margin-top:9px}.countdown-date{font-size:8px;letter-spacing:.18em}.celebration{padding-top:31px;padding-bottom:21px}.chapter-heading{margin-bottom:27px}.chapter-kicker{color:#8c9b80;font-size:9px}.chapter-heading h2{font-size:33px;margin-top:6px}.venue-card{border:0;border-radius:0;background:transparent;padding:0;overflow:visible}.venue-card:before{display:none}.ceremony-card{max-width:390px;margin:0 auto;border-radius:195px 195px 3px 3px;overflow:hidden;background:#f2f3ea;padding:39px 14px 27px}.ceremony-card:after{content:"";position:absolute;inset:8px 8px 0;border:1px solid #dbe2d0;border-bottom:0;border-radius:188px 188px 0 0;pointer-events:none;opacity:.66}.ceremony-card .venue-topline{display:flex;flex-direction:column;gap:8px;padding:0 20px;z-index:1}.venue-topline>span{font:italic 10px/1.6 FiraGO,Arial,sans-serif;letter-spacing:.08em;color:#7d9075}.venue-topline time,.simple-timeline time{font:italic 23px/1.4 Georgia,serif;color:var(--watercolor-blue);letter-spacing:0}.ceremony-card img{width:106%;max-width:none;margin:17px -3% 6px;filter:saturate(.86) contrast(.98);mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at 50% 50%,black 48%,#000d 68%,transparent 86%)}.ceremony-card .venue-copy{z-index:1;padding-top:4px}.venue-copy h3{font-size:31px;color:#50694f}.venue-name{font:italic 12px/1.9 FiraGO,Arial,sans-serif;color:#6c8066;margin-top:7px}.quiet-link{font:italic 10px/1.6 FiraGO,Arial,sans-serif;min-height:40px;border-bottom-color:#c1cfb5;color:#7d9370;margin-top:9px}.venue-connector{height:38px}.venue-connector span{height:21px;background:#c8d4bc}.reception-card{padding:3px 0 0}.reception-card .venue-topline{max-width:330px;margin:auto;padding:0 10px;align-items:center}.reception-card .resort{width:calc(100% + 46px);max-width:none;margin:10px -23px 13px;filter:saturate(.75) contrast(.96);mix-blend-mode:multiply;mask-image:linear-gradient(transparent,black 8%,black 86%,transparent)}.reception-card .venue-copy{padding-top:0}.venue-copy .resort-name>span{font-size:26px;color:#536d56}.venue-copy .resort-name>small{font-size:14px;color:#8b9c7f;margin-top:3px}.venue-subname{font:italic 14px/1.5 Georgia,serif;color:#8b9b80;margin-top:2px}.reception-card .schedule{max-width:304px;margin:21px auto 0;padding:16px 0 0;border-top-color:#dfe5d6}.simple-timeline>div{padding:12px 0;grid-template-columns:67px minmax(0,1fr);gap:17px;border-bottom-color:#e0e6d680}.simple-timeline time{font-size:21px}.simple-timeline p{font:italic 12px/1.85 FiraGO,Arial,sans-serif;color:#647c60}.calendar-link{margin-top:15px;font-size:10px;color:#829675}.dresscode{margin:8px 34px 0;padding:25px 0 23px;border-top:1px solid #dce5d1;border-bottom:1px solid #dce5d1}.dresscode .eyebrow{font-size:9px;letter-spacing:.12em}.dresscode h2{font:italic 24px/1.5 Georgia,serif;color:#5f795b;margin-top:9px}.dresscode .place-name{font:italic 11px/1.7 FiraGO,Arial,sans-serif;color:#8b9c80}.dress-art{width:96%;max-width:330px;margin:14px auto 0;filter:saturate(.83) contrast(.98);mix-blend-mode:normal}.attendance-area{position:relative;padding:22px 0 0;margin:15px 34px 0}.rsvp{padding:0}.rsvp-card{border:0;border-radius:0;padding:88px 0 0;background:transparent;box-shadow:none;overflow:visible}.rsvp-card:before{display:none}.rsvp-roses{top:10px;height:61px;width:74%;max-width:245px;left:50%;transform:translateX(-50%);opacity:.79;filter:saturate(.8)}.rsvp h2{font-size:30px;line-height:1.5;color:#56714e}.rsvp form{margin:22px auto 0;max-width:340px}.rsvp input:not([type=radio]){min-height:43px;font-size:12px;border-bottom-color:#cbd8be}.rsvp input::placeholder{font-size:11px;color:#8e9f81}.rsvp fieldset{margin-top:20px;gap:10px}.rsvp .radio-option>span{background:none;border:1px solid #d2dec5;min-height:45px}.rsvp .radio-option input:checked+span{background:#eaf0e1;border-color:#a3b891;box-shadow:inset 0 0 0 3px var(--paper)}.rsvp .button{min-height:44px;background:#748d65;border-color:#748d65}.invitation-letter{padding:27px 0 0}.invitation-letter:before{content:"";display:block;width:36px;height:1px;background:#c5d2b9;margin:0 auto 22px}.letter-heading{font-size:24px;color:#8a9f7b;margin:0}.invitation-envelope{width:94%;max-width:283px;margin:-2px auto -13px}.envelope-caption{font-size:9px;color:#91a582}.envelope-reset{font-size:9px;color:#879f77}.envelope-wish-form{width:91%;max-width:306px;background:none;border:0;box-shadow:none;padding:10px 3px 6px;margin:8px auto 13px}.envelope-wish-form textarea{border-bottom-color:#c7d6bb;background:repeating-linear-gradient(transparent,transparent 28px,#e0e8d6 29px,transparent 30px);font:italic 12px/30px FiraGO,Arial,sans-serif}.envelope-wish-form button{margin-top:15px;color:#79926a}.wedding-footer{padding-top:30px}.footer-yacht{filter:saturate(.8);opacity:.8}.motion-ready .reveal-item{transition-property:opacity,transform;transition-duration:850ms,1100ms;transition-timing-function:ease,cubic-bezier(.16,.7,.2,1);transform:translate3d(0,12px,0)}.motion-ready img.reveal-item:not(.yacht){transform:translate3d(0,20px,0) scale(.975);transition-duration:1150ms,1450ms}.motion-ready .reveal-item.reveal-title{transform:translate3d(0,10px,0)}.motion-ready .reveal-item.reveal-detail{transform:translate3d(0,7px,0)}.motion-ready .reveal-item.is-visible,.motion-ready img.reveal-item.is-visible:not(.yacht){opacity:1;transform:translate3d(0,0,0) scale(1)}.rsvp-roses.reveal-item{left:50%;transform:translateX(-50%)!important}.rsvp-roses.reveal-item.is-visible{transform:translateX(-50%)!important}.petal{filter:blur(.15px)}@media(max-width:370px){.countdown-scene{width:88%}.countdown-inner h2{font-size:25px}.timer span{font-size:22px}.timer small{font-size:7px}.countdown-date{font-size:7px}.celebration{padding-top:26px}.chapter-heading h2{font-size:31px}.ceremony-card{padding:32px 11px 23px;border-radius:160px 160px 2px 2px}.ceremony-card:after{border-radius:153px 153px 0 0}.venue-copy h3{font-size:29px}.venue-name{font-size:11px}.reception-card .venue-topline{padding:0 5px}.reception-card .venue-topline>span{font-size:9px}.reception-card .resort{width:calc(100% + 38px);margin-left:-19px;margin-right:-19px}.simple-timeline>div{grid-template-columns:59px minmax(0,1fr);gap:13px}.simple-timeline time{font-size:20px}.simple-timeline p{font-size:11px}.dresscode{margin-left:27px;margin-right:27px}.dresscode h2{font-size:22px}.attendance-area{margin-left:27px;margin-right:27px}.rsvp h2{font-size:28px}.rsvp .radio-option>span{font-size:10px}.rsvp-roses{height:56px}.rsvp-card{padding-top:80px}.letter-heading{font-size:23px}}@media(prefers-reduced-motion:reduce){.motion-ready .reveal-item,.motion-ready img.reveal-item:not(.yacht){opacity:1;transform:none;transition:none}}

.invitation-envelope-image{clip-path:inset(9% 3% 14% 3%)}.is-open .invitation-envelope-image{clip-path:inset(0 2% 8% 2%)}.invitation-envelope-button{inset:15% 7%;width:86%;height:70%}.envelope-caption{display:inline-flex;align-items:center;justify-content:center;gap:17px;min-height:44px;padding:8px 22px;margin:3px auto 10px;border:1px solid #d4decb;border-radius:30px;background:linear-gradient(140deg,#ffffffe0,#f0f3e8a0);color:#708565;font:italic 11px/1.7 FiraGO,Arial,sans-serif;cursor:pointer;box-shadow:0 4px 15px #6f826008;transition:background .3s,transform .3s,box-shadow .3s}.envelope-caption:after{content:'↗';font:17px Georgia,serif;color:#93a58a}.envelope-caption:hover{transform:translateY(-2px);background:#f0f4e9;box-shadow:0 5px 17px #6f826014}.envelope-caption:focus-visible{outline:2px solid #91a484;outline-offset:4px}.envelope-caption[hidden]{display:none}.petal-layer{transition:opacity 1.8s}.petal-layer.petals-rest{opacity:0}.wedding-footer{overflow:hidden;padding-bottom:27px}.sea-stage{position:relative;width:100%;height:200px;margin:1px auto 0;overflow:hidden;isolation:isolate;perspective:700px}.sea-haze{position:absolute;inset:20% -10% 0;background:radial-gradient(ellipse,#c2dce144,transparent 65%);filter:blur(10px)}.sea-waves{position:absolute;left:-35%;bottom:-5px;width:170%;height:170px;transform:rotateX(23deg);mask-image:linear-gradient(transparent,#000 35%,#000 70%,transparent)}.sea-waves path{will-change:transform}.wave-back{animation:sea-drift 17s ease-in-out infinite alternate}.wave-mid{animation:sea-drift 12s ease-in-out -5s infinite alternate-reverse}.wave-front{animation:sea-drift 9s ease-in-out -3s infinite alternate}.sea-stage .footer-yacht{position:absolute;width:70%;max-width:310px;height:auto;left:15%;top:20px;margin:0;z-index:2;opacity:.87;animation:yacht-at-sea 8s ease-in-out infinite;transform-origin:50% 75%}.sea-glimmer{position:absolute;width:36%;height:1px;left:32%;bottom:49px;background:linear-gradient(90deg,transparent,#ffffffc0,transparent);animation:sea-glow 7s ease-in-out infinite}.footer-top{position:relative;margin-top:0}.page-hidden .sea-stage *{animation-play-state:paused!important}@keyframes sea-drift{from{transform:translate(-65px,2px)}to{transform:translate(65px,-5px)}}@keyframes yacht-at-sea{0%,100%{transform:translate3d(-3px,3px,0) rotate(-1deg)}50%{transform:translate3d(4px,-4px,0) rotate(1deg)}}@keyframes sea-glow{0%,100%{opacity:.2;transform:scaleX(.7)}50%{opacity:.8;transform:scaleX(1.2)}}@media(prefers-reduced-motion:reduce){.sea-stage *{animation:none!important}.envelope-caption{transition:none}}
.sea-stage{mask-image:radial-gradient(ellipse at 50% 42%,#000 35%,#000 57%,transparent 76%)}.sea-waves{mask-image:linear-gradient(transparent,#000 35%,#000 70%,transparent)}

/* Shared ivory, sage and sea-blue palette; quieter detail text stays readable. */
:root{--paper:#faf8f2;--ink:#48634f;--muted:#667c68}.video-stage{filter:saturate(.83) contrast(.98)}.hero-copy h1{color:#405e49}.hero-date-line,.hero-date-line span{color:#536e59}.chapter-kicker,.venue-topline>span,.countdown-date,.timer small,.dresscode .eyebrow,.dresscode .place-name,.venue-subname,.footer-date,.footer-place{color:#647b65}.quiet-link,.calendar-link,.envelope-caption,.envelope-reset{color:#5d765e}.rsvp input::placeholder{color:#6b8069}.countdown-date{font-size:9px}.timer small{font-size:9px}.footer-place{font-size:11px}.chapter-kicker{font-size:10px}.reception-card .resort{filter:saturate(.77) contrast(.98)}.rsvp-roses{filter:saturate(.68)}.wave-front{stroke:none;filter:blur(3px)}.wave-mid{filter:blur(5px);opacity:.55}.wave-back{filter:blur(7px)}.sea-waves{opacity:.65}.sea-glimmer{filter:blur(1px)}
.closing-scene{position:relative;width:calc(100% + 50px);margin:0 -25px 22px;aspect-ratio:4/5;overflow:hidden;isolation:isolate;mask-image:linear-gradient(transparent,#000 8%,#000 90%,transparent)}.closing-landscape{position:absolute;inset:-2%;background:url("https://mariam-luka-invitation.vercel.app/assets/coastal-finale-v2.webp") center/cover no-repeat;transform:scale(1.035);animation:coastal-breathe 24s ease-in-out infinite alternate;animation-play-state:paused}.closing-water{position:absolute;left:23%;right:20%;top:45%;height:23%;opacity:.28;background:repeating-linear-gradient(175deg,transparent 0 11px,#fff9 12px,transparent 14px 24px);mask-image:radial-gradient(ellipse,#0008,transparent 69%);animation:coastal-water 9s ease-in-out infinite alternate;animation-play-state:paused;filter:blur(1.1px)}.closing-light{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 38%,#fff8,transparent 45%);mix-blend-mode:soft-light;animation:coastal-light 13s ease-in-out infinite alternate;animation-play-state:paused;pointer-events:none}.closing-line{position:absolute;bottom:5%;left:8%;right:8%;margin:0;font:24px/1.65 Niko,Georgia,serif;color:#526c59;text-shadow:0 1px 12px #faf8f2;opacity:0;transform:translateY(12px);transition:opacity 1.8s .3s,transform 2s .3s}.scene-in-view .closing-line{opacity:1;transform:none}.scene-in-view .closing-landscape,.scene-in-view .closing-water,.scene-in-view .closing-light{animation-play-state:running}.page-hidden .closing-scene *{animation-play-state:paused!important}.wedding-footer{padding-top:12px}.footer-monogram{margin-top:0}.sea-stage{height:155px}.sea-stage .footer-yacht{width:59%;left:20.5%;top:12px;opacity:.74}.sea-waves{height:135px}@keyframes coastal-breathe{from{transform:scale(1.025) translateY(2px)}to{transform:scale(1.07) translateY(-5px)}}@keyframes coastal-water{from{transform:translate(-6px,0) scaleX(.97);opacity:.17}to{transform:translate(7px,5px) scaleX(1.04);opacity:.32}}@keyframes coastal-light{from{opacity:.22}to{opacity:.65}}@media(prefers-reduced-motion:reduce){.closing-scene *{animation:none!important}.closing-line{opacity:1;transform:none;transition:none}}@media(max-width:370px){.timer small{font-size:8px}.closing-line{font-size:22px}}
.closing-landscape:before,.closing-landscape:after{content:'';position:absolute;inset:0;background:inherit;pointer-events:none;transform-origin:50% 0;animation:curtain-breeze 11s ease-in-out infinite alternate;animation-play-state:inherit}.closing-landscape:before{mask-image:linear-gradient(90deg,#000,transparent 25%);transform-origin:0 0}.closing-landscape:after{mask-image:linear-gradient(270deg,#000,transparent 25%);transform-origin:100% 0;animation-delay:-6s;animation-direction:alternate-reverse}.closing-water{top:44%;height:25%;left:29%;right:16%}@keyframes curtain-breeze{from{transform:skewX(-.35deg) translateX(-1px)}to{transform:skewX(.5deg) translateX(2px)}}

.closing-scene{mask-image:none}.closing-video{display:block;width:100%;height:100%;object-fit:cover;filter:none;transform:none}
/* Larger watercolor bouquet and a shared stationery button treatment. */
.rsvp-roses{width:90%;max-width:298px;height:84px;top:5px;opacity:.92}.rsvp-card{padding-top:109px}.rsvp .button,.envelope-wish-form button{position:relative;display:flex;align-items:center;justify-content:center;gap:15px;min-height:48px;border:1px solid #71866d;border-radius:6px;background:linear-gradient(145deg,#82967a,#647f66);color:#fffdf6;font:italic 12px/1.7 FiraGO,Arial,sans-serif;letter-spacing:.035em;box-shadow:inset 0 0 0 3px #ffffff16,0 5px 15px #4c684a12;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s}.rsvp .button:after,.envelope-wish-form button:after{content:'→';font:18px Georgia,serif;color:#e5eddf}.rsvp .button:hover,.envelope-wish-form button:hover{transform:translateY(-2px);background:linear-gradient(145deg,#738c6d,#56735b);box-shadow:inset 0 0 0 3px #ffffff20,0 8px 18px #4c684a20}.rsvp .button:active,.envelope-wish-form button:active,.envelope-caption:active{transform:translateY(1px)}.envelope-wish-form button{width:100%;margin-top:17px}.rsvp .radio-option>span{border-radius:6px;border-color:#cbd7c3;background:#fffdf76b;transition:background .25s,border-color .25s,box-shadow .25s}.rsvp .radio-option input:checked+span{background:#e8eee0;border-color:#94a889;box-shadow:inset 0 0 0 3px #faf8f2}.envelope-caption{min-height:46px;padding:9px 25px;border-radius:25px;border-color:#c0cfb7;background:linear-gradient(145deg,#fffef9,#eef2e7);box-shadow:inset 0 0 0 3px #fffaf780,0 4px 14px #52684909;font-size:11px}.quiet-link,.calendar-link{border-bottom:1px solid #becbb5;transition:color .25s,border-color .25s}.quiet-link:hover,.calendar-link:hover{color:#3f5e47;border-color:#688365}.rsvp .button:focus-visible,.envelope-wish-form button:focus-visible,.radio-option:has(input:focus-visible)>span{outline:2px solid #738e70;outline-offset:4px}@media(max-width:370px){.rsvp-roses{height:75px;width:92%}.rsvp-card{padding-top:99px}}@media(prefers-reduced-motion:reduce){.rsvp .button,.envelope-wish-form button,.rsvp .radio-option>span{transition:none}}
.rsvp input:not([type=radio]):focus{outline:none;border-bottom-color:#728b6b;box-shadow:0 1px 0 #728b6b;background:linear-gradient(transparent,#eef2e650)}.rsvp input:not([type=radio]):focus-visible{outline:none}.rsvp input:not([type=radio]){border-radius:0;transition:border-color .25s,box-shadow .25s}
/* Opening typography: a handwritten invitation, with a quiet continuation cue. */
.hero-copy{margin-top:3px;padding:0 24px;width:100%}.hero-invitation-line{font:italic 10px/1.8 FiraGO,Arial,sans-serif;letter-spacing:.05em;color:#667f6a;margin:0 0 17px}.hero-copy h1{gap:13px;align-items:center;font:43px/1.7 Niko,Georgia,serif;letter-spacing:-.035em;color:#405e49}.hero-copy h1>span:first-child{transform:rotate(-2deg)}.hero-copy h1>span:last-child{transform:rotate(1deg)}.hero-copy h1 em{font:italic 36px/1 Pinyon, 'Pinyon Script',Georgia,serif;color:#89997c;position:relative;top:4px;margin:0 -1px}.hero-date-rule{width:78px;height:1px;background:linear-gradient(90deg,transparent,#aebca2,transparent);margin:17px auto 14px}.hero-date-line{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:0;font:italic 12px/1.7 FiraGO,Arial,sans-serif;letter-spacing:.02em;color:#5e7762}.hero-date-line .hero-day{font:italic 20px/1.2 Georgia,serif;letter-spacing:0;margin:0;color:#58725e}.hero-date-line .hero-year{font:14px/1.2 Georgia,serif;letter-spacing:.09em;color:#788b73;margin:0 0 0 3px}.hero-copy:before{inset:-40px 35px;opacity:.25}.hero-copy.visible .hero-invitation-line{animation:opening-ink 1.5s both}.hero-copy.visible h1{animation:opening-ink 1.8s .15s both}.hero-copy.visible .hero-date-rule,.hero-copy.visible .hero-date-line{animation:opening-ink 1.8s .55s both}.scroll-cue{display:flex;justify-content:center;align-items:center;width:44px;height:62px;bottom:14px;left:50%;transform:translateX(-50%);background:none;border:0;border-radius:0;box-shadow:none}.scroll-thread{display:block;position:relative;width:1px;height:36px;overflow:hidden;background:linear-gradient(transparent,#83977a50,transparent)}.scroll-thread:after{content:'';position:absolute;width:1px;height:16px;top:-16px;left:0;background:linear-gradient(transparent,#617e60,transparent);animation:invitation-thread 2.8s ease-in-out infinite}.scroll-cue:focus-visible{outline:1px solid #8ea584;outline-offset:2px;border-radius:20px}@keyframes opening-ink{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes invitation-thread{0%{transform:translateY(0);opacity:0}25%{opacity:1}85%,100%{transform:translateY(54px);opacity:0}}@media(max-width:370px){.hero-copy{padding:0 19px}.hero-copy h1{font-size:37px;gap:10px}.hero-copy h1 em{font-size:31px}.hero-invitation-line{font-size:9px;margin-bottom:14px}.hero-date-line{font-size:11px}.hero-date-line .hero-day{font-size:18px}}@media(prefers-reduced-motion:reduce){.hero-copy.visible>*{animation:none!important}.scroll-thread:after{animation:none;top:10px}}
/* Let the columns sit on a soft paper baseline rather than a floating tile. */
.countdown-section{position:relative;padding-top:0;padding-bottom:16px}.countdown-scene{position:relative;width:100%;max-width:480px;aspect-ratio:1.04;margin:0 auto;background-color:var(--paper);isolation:isolate}.countdown-scene:after{content:'';position:absolute;z-index:-1;pointer-events:none;left:7%;right:7%;bottom:2.3%;height:12px;background:radial-gradient(ellipse,#858d7427,transparent 72%);filter:blur(3px)}.countdown-section:after{content:'';display:block;height:1px;width:79%;margin:-4px auto 0;background:linear-gradient(90deg,transparent,#bdc7b044,transparent)}.countdown-inner{width:57%}.countdown-inner h2{font-size:28px}.timer span{font-size:25px}.timer small{font-size:8px}.countdown-date{font-size:8px}.celebration{padding-top:22px}@media(max-width:370px){.countdown-inner h2{font-size:25px}.timer span{font-size:22px}.timer small{font-size:7px}.countdown-date{font-size:7px}}

/* Moonlit garden theme. Assets are loaded only when the guest chooses night. */
body{transition:background-color 1.1s,color 1.1s}.theme-toggle{position:fixed;z-index:20;top:max(16px,env(safe-area-inset-top));right:max(16px,calc((100vw - 480px)/2 + 16px));width:43px;height:43px;display:grid;place-items:center;border:1px solid #9aa98c60;border-radius:50%;background:#faf8f2db;backdrop-filter:blur(10px);color:#647a60;box-shadow:0 3px 16px #192d2610;cursor:pointer;transition:background .8s,color .8s,transform .3s}.theme-toggle:hover{transform:rotate(-10deg)}.theme-toggle:focus-visible{outline:2px solid #bba478;outline-offset:4px}.theme-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}.theme-toggle .theme-sun{display:none}.night-hero{position:absolute;inset:0;z-index:1;background-position:center;background-size:cover;opacity:0;pointer-events:none;transition:opacity 1.4s}.night-stars{position:fixed;z-index:3;pointer-events:none;inset:0;margin:auto;max-width:480px;opacity:0;transition:opacity 1.6s;background:radial-gradient(1px 1px at 17% 23%,#e8dcbdba,transparent),radial-gradient(1px 1px at 83% 15%,#c0d9eea0,transparent),radial-gradient(1px 1px at 34% 62%,#e8dcbd90,transparent),radial-gradient(1.5px 1.5px at 91% 71%,#e8dcbd95,transparent),radial-gradient(1px 1px at 9% 84%,#d8e9ff90,transparent),radial-gradient(1px 1px at 68% 47%,#e8dcbd88,transparent)}
body.night{--paper:#0c1b2c;--ink:#ede5d5;--muted:#afbdc7;--line:#bba47838;background:#0c1b2c;color:#e4dfd4;color-scheme:dark}body.night main,body.night .wedding-footer{background:#0c1b2c}body.night .theme-toggle{background:#12273ddd;color:#e5cca0;border-color:#c4ad794d;box-shadow:0 0 22px #e9cb9320}body.night .theme-sun{display:block}body.night .theme-moon{display:none}body.night .night-hero{opacity:1}body.night .night-stars{opacity:.75;animation:night-glimmer 9s ease-in-out infinite alternate}body.night .hero-copy{z-index:2}body.night .hero-copy:before{background:none}body.night .hero-copy h1{color:#f1e2c7;text-shadow:0 0 25px #e5c89820}body.night .hero-copy h1 em,body.night .hero-date-line,body.night .hero-date-line span{color:#dfcda8}body.night .hero-invitation-line{color:#d1d6d5}body.night .hero-date-rule{background:linear-gradient(90deg,transparent,#cdbb8e80,transparent)}body.night .hero-copy{margin-top:0}body.night .scroll-thread{background:linear-gradient(transparent,#e6d2a766,transparent)}body.night .scroll-thread:after{background:linear-gradient(transparent,#e6d2a7,transparent)}
body.night .countdown-scene{background-color:#0c1b2c;background-image:url("https://mariam-luka-invitation.vercel.app/assets/night-columns.webp")}body.night .countdown-inner h2,body.night .timer span{color:#e7d5b3}body.night .timer b{color:#8e9eac}body.night .timer small,body.night .countdown-date{color:#bbc6cc}body.night .chapter-heading h2,body.night .venue-copy h3,body.night .venue-copy .resort-name>span,body.night .dresscode h2,body.night .rsvp h2,body.night .letter-heading{color:#e5d5b6}body.night .chapter-kicker,body.night .venue-topline>span,body.night .venue-name,body.night .venue-subname,body.night .venue-copy .resort-name>small,body.night .dresscode .eyebrow,body.night .dresscode .place-name,body.night .simple-timeline p{color:#b7c5ca}body.night .venue-topline time,body.night .simple-timeline time{color:#c7d6e3}body.night .chapter-rule,body.night .venue-connector span,body.night .invitation-letter:before{background:#bda97b65}body.night .ceremony-card{background:radial-gradient(ellipse at 50% 35%,#29405455,transparent 75%)}body.night .ceremony-card:after{border-color:#ab95623d}body.night .venue-card img,body.night .dress-art,body.night .rsvp-roses,body.night .footer-yacht{mix-blend-mode:normal;filter:brightness(.85) saturate(.67) drop-shadow(0 0 12px #cbd9ed12)}body.night .ceremony-card .monastery-art{filter:brightness(.8) saturate(.55) drop-shadow(0 0 15px #e0cda412)}body.night .quiet-link,body.night .calendar-link,body.night .envelope-reset{color:#d4c39f;border-color:#a9946e66}body.night .simple-timeline>div,body.night .reception-card .schedule,body.night .dresscode{border-color:#9bb2bd28}body.night .rsvp-card{background:transparent}body.night .rsvp input:not([type=radio]){color:#eee7d7;border-bottom-color:#9cb2be70;background:transparent}body.night .rsvp input::placeholder,body.night .envelope-wish-form textarea::placeholder{color:#b1c0c6}body.night .rsvp .radio-option>span{background:#142b3c;color:#d3dce0;border-color:#7c97a04d}body.night .rsvp .radio-option input:checked+span{background:#22394b;border-color:#c5b389;box-shadow:inset 0 0 0 3px #0c1b2c}body.night .rsvp .button,body.night .envelope-wish-form button{background:linear-gradient(140deg,#b5a077,#877653);color:#fff5df;border-color:#ceb888;box-shadow:inset 0 0 0 3px #f6dfb118,0 0 20px #d7b56c13}body.night .envelope-caption{color:#e2cfaa;background:linear-gradient(140deg,#20364a,#122639);border-color:#af9d765c;box-shadow:inset 0 0 0 3px #f6dfb108,0 0 20px #d7b56c0a}body.night .envelope-caption:after{color:#d7c196}body.night .invitation-envelope-image{filter:brightness(.85) saturate(.6) drop-shadow(0 5px 16px #0004)}body.night .envelope-wish-form{background:transparent}body.night .envelope-wish-form textarea{color:#e5dfd1;border-color:#b4a27666;background:repeating-linear-gradient(transparent,transparent 28px,#8fa2b12b 29px,transparent 30px)}body.night .footer-monogram{color:#d5c09b;text-shadow:0 0 25px #e3cc9220}body.night .footer-monogram span{color:#a9b9c7}body.night .footer-date,body.night .footer-place,body.night .footer-top{color:#b4c3ce}body.night .sea-haze{background:radial-gradient(ellipse,#6b91b43d,transparent 65%)}body.night .sea-waves{opacity:.24}body.night .sea-glimmer{background:linear-gradient(90deg,transparent,#d3e9ffcc,transparent)}body.night .petal-layer{opacity:.35}body.night .petal-layer.petals-rest{opacity:0}body.night #form-message,body.night #envelope-wish-status{color:#d4dce1}
@keyframes night-glimmer{from{opacity:.35}to{opacity:.8}}@media(prefers-reduced-motion:reduce){.theme-toggle,.night-hero,body{transition:none}body.night .night-stars{animation:none;opacity:.5}}
body.night .petal-layer{opacity:.12}body.night .petal-layer.petals-rest{opacity:0}body.night .theme-toggle:disabled{opacity:.6;cursor:wait}
.hero{width:100%;min-width:0;grid-template-columns:minmax(0,1fr)}.hero-copy{min-width:0;max-width:100%;box-sizing:border-box}.hero-copy h1{font-size:clamp(32px,9vw,41px);gap:10px}.hero-copy h1 em{font-size:32px}body.night .hero{background-color:#0c1b2c}
.hero-copy h1,.hero-copy h1 em,.hero-invitation-line,.hero-date-line,.hero-date-line span,.timer span,.timer small,.countdown-inner h2,.venue-copy h3,.rsvp h2,.letter-heading,.footer-monogram{transition:color 1s,text-shadow 1s}.theme-toggle svg{pointer-events:none}
/* Flat midnight paper: illumination belongs to artwork, not background shadows. */
body.night{background:#0c1b2c;box-shadow:none}body.night main,body.night .wedding-footer,body.night .countdown-section,body.night .celebration,body.night .dresscode,body.night .attendance-area,body.night .rsvp,body.night .invitation-letter{background:#0c1b2c;box-shadow:none}body.night .ceremony-card,body.night .reception-card,body.night .rsvp-card{background:none;box-shadow:none}body.night .ceremony-card:after{border-color:#9db3c030}body.night .countdown-scene:after,body.night .countdown-section:after{display:none}body.night .countdown-scene{background-blend-mode:lighten}body.night .sea-haze{display:none}body.night .hero-copy h1,body.night .footer-monogram{text-shadow:none}body.night .venue-card img,body.night .ceremony-card .monastery-art,body.night .dress-art,body.night .footer-yacht{filter:none;mix-blend-mode:normal;opacity:1;mask-image:none}body.night .rsvp-roses{filter:none}body.night .invitation-envelope-image{filter:brightness(.9) saturate(.7)}body.night .sea-stage{mask-image:none}body.night .sea-waves{opacity:.12}
body.night::before{display:none!important;content:none!important;background:none!important}body.night .petal-layer{display:none!important}body.night .petal,body.night .petal-face{animation-play-state:paused!important}
/* Ceremony illustration is a landscape, not an oval framed vignette. */
.venue-card.ceremony-card{max-width:none;width:100%;margin:0 auto;padding:8px 0 20px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}.ceremony-card:before,.ceremony-card:after{display:none!important}.ceremony-card .venue-topline{max-width:330px;margin:0 auto;padding:0 10px}.ceremony-card .monastery-art{display:block;width:calc(100% + 48px);max-width:none;height:auto;margin:18px -24px 12px;filter:none;mask-image:none;mix-blend-mode:normal;border-radius:0}.ceremony-card .venue-copy{padding-top:0}.ceremony-card .venue-copy h3{font-size:30px}body.night .ceremony-card{background:transparent}@media(max-width:370px){.ceremony-card .monastery-art{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}.ceremony-card .venue-copy h3{font-size:28px}}
.ceremony-landscape{position:relative;isolation:isolate}.ceremony-starlight{display:none;position:absolute;inset:0;pointer-events:none;z-index:2;background:none}body.night .ceremony-starlight{display:block}.ceremony-starlight i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#eee3c4;opacity:.25;box-shadow:0 0 4px 1px #d9e5f13d;animation:ceremony-star 6s ease-in-out var(--lag) infinite}.ceremony-starlight i:nth-child(3n+2){width:7px;height:7px;border-radius:0;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);background:#e3eaf1;box-shadow:none;animation-duration:8s}.page-hidden .ceremony-starlight i{animation-play-state:paused}@keyframes ceremony-star{0%,100%{opacity:.13;transform:translateY(1px) scale(.7)}50%{opacity:.8;transform:translateY(-2px) scale(1.05)}}@media(prefers-reduced-motion:reduce){.ceremony-starlight i{animation:none;opacity:.45}}
/* Clear moonlit wave lines, without a blurred halo under the yacht. */
body.night .sea-waves{opacity:.65;mask-image:linear-gradient(transparent,#000 24%,#000 76%,transparent)}body.night .sea-waves path{filter:none}body.night .wave-back{fill:#325369;fill-opacity:.28;opacity:1}body.night .wave-mid{fill:#436880;fill-opacity:.25;opacity:1}body.night .wave-front{fill:#5c8095;fill-opacity:.19;stroke:#a4c2ce;stroke-opacity:.5;stroke-width:1.2}body.night .sea-glimmer{filter:none;height:1px;opacity:.6}body.night .sea-haze{display:none}
body.night .sea-waves{mask-image:radial-gradient(ellipse at 50% 48%,#000 30%,transparent 74%)}body.night .sea-waves path{fill:none;stroke:#9ab8ca;stroke-width:1.2}body.night .wave-back{stroke-opacity:.24}body.night .wave-mid{stroke-opacity:.36}body.night .wave-front{stroke-opacity:.65}
/* Lightweight stars: opacity-only motion, small fixed DOM, no extra downloads. */
.night-stars{background:none;overflow:hidden}body.night .night-stars{animation:none;opacity:1}.ambient-star{position:absolute;left:var(--x);top:var(--y);width:var(--star-size);height:var(--star-size);border-radius:50%;background:#e4edf6;opacity:.45;box-shadow:0 0 4px #c6dfff60;animation:ambient-twinkle var(--star-duration) ease-in-out var(--star-delay) infinite;animation-play-state:paused}.ambient-star:nth-child(3n){background:#ecd9b5;box-shadow:0 0 4px #e8d1a34d}.ambient-star.star-spark{width:7px;height:7px;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);border-radius:0;box-shadow:none}body.night .ambient-star{animation-play-state:running}.page-hidden .ambient-star{animation-play-state:paused!important}@keyframes ambient-twinkle{0%,100%{opacity:.22}50%{opacity:.88}}@media(prefers-reduced-motion:reduce){body.night .ambient-star{animation:none;opacity:.5}}
/* Matched architectural series and one airy guest illustration. */
.ceremony-card .monastery-art,.reception-card .resort{width:calc(100% + 48px);max-width:none;height:auto;margin:18px -24px 12px;filter:none;mask-image:none;mix-blend-mode:normal}.dress-art{display:block;width:calc(100% + 36px);max-width:none;height:auto;margin:20px -18px 0;filter:none;mix-blend-mode:normal}body.night .dress-art{filter:none;opacity:1}@media(max-width:370px){.ceremony-card .monastery-art,.reception-card .resort{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}.dress-art{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}}

/* One rhythm from opening stationery to the last seaside scene. */
:root{--composition-line:#9aaa933f;--composition-blue:#718c91}main,.wedding-footer{overflow-x:clip}
.hero-copy h1{gap:12px;font-size:clamp(33px,9.3vw,43px);font-weight:400;line-height:1.65}.hero-invitation-line{font-size:11px;letter-spacing:.025em;margin-bottom:17px}.hero-date-rule{width:102px;margin:18px auto}.hero-date-line{gap:8px;font-size:13px}.hero-date-line .hero-day{font-size:21px}.hero-date-line .hero-year{font-size:15px}
.countdown-section{padding:12px 0 0}.countdown-scene{width:92%;max-width:424px}.countdown-inner{width:57%;transform:translateY(1%)}.countdown-inner h2{font-size:28px;margin:0 0 24px;line-height:1.5}.timer{margin:0!important;grid-template-columns:minmax(0,1.2fr) 3px minmax(0,1fr) 3px minmax(0,1fr) 3px minmax(0,1fr);gap:2px}.timer span{display:block;font-size:26px;letter-spacing:-.7px;line-height:1.2}.timer small{font-size:8px;letter-spacing:0;margin-top:12px}.timer b{font-size:13px;opacity:.45;padding-top:3px}.timer>div+div:before{display:none}
.celebration{padding:34px 24px 22px}.chapter-heading{margin-bottom:30px}.chapter-heading h2{font-size:34px;margin:0 0 15px}.chapter-rule{width:48px;background:linear-gradient(90deg,transparent,#99ac91,transparent)}.venue-card.ceremony-card{padding:0 0 14px}.ceremony-card .venue-topline,.reception-card .venue-topline{max-width:none;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:0 8px;margin:0}.venue-topline>span{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:0;color:#60785f}.venue-index{font:11px/1 Georgia,serif;letter-spacing:.08em;color:#8b9d89;border-right:1px solid var(--composition-line);padding-right:12px}.venue-topline time{font-size:25px;color:var(--composition-blue)}.ceremony-card .monastery-art,.reception-card .resort{margin:9px -24px 9px;width:calc(100% + 48px)}.ceremony-card .venue-copy h3{font-size:32px}.venue-copy h3{line-height:1.5}.venue-name{font-size:13px;line-height:1.8;margin-top:5px;color:#5b725c}.quiet-link{font-size:11px;min-height:44px;margin-top:5px;padding:0 5px;gap:6px}.venue-connector{height:57px}.venue-connector span{height:31px;background:linear-gradient(transparent,#a2b39990,transparent)}.venue-copy .resort-name>span{font:30px/1.2 Georgia,serif;letter-spacing:-.02em}.venue-copy .resort-name>small{font-size:15px;margin-top:5px;letter-spacing:.04em}.venue-subname{font-size:15px;margin:2px 0 0}.reception-card .schedule{max-width:316px;margin:24px auto 0;padding:8px 4px 0;border-top:1px solid var(--composition-line)}.simple-timeline>div{padding:15px 0;grid-template-columns:64px minmax(0,1fr);gap:19px;border-bottom:1px solid #a3b29924;align-items:center}.simple-timeline>div:last-child{border-bottom:0}.simple-timeline time{font-size:22px;color:var(--composition-blue)}.simple-timeline p{font-size:13px;line-height:1.7;color:#536e58}.calendar-link{font-size:11px;margin-top:18px;min-height:44px}
.dresscode{margin:12px 30px 0;padding:30px 0 24px;border-color:var(--composition-line)}.dresscode .eyebrow{font-size:11px;letter-spacing:.04em}.dresscode h2{font-size:25px;margin-top:10px;letter-spacing:-.025em}.dress-art{width:calc(100% + 24px);margin:24px -12px 0}.attendance-area{margin:0 34px;padding:38px 0 15px}.rsvp{padding:0}.rsvp-card{padding:93px 0 0}.rsvp-roses{height:72px;width:88%;max-width:282px;top:4px;opacity:.82}.rsvp h2{font-size:33px;line-height:1.4}.rsvp form{margin-top:25px}.rsvp input:not([type=radio]){font-size:14px;min-height:49px;text-align:left;padding-left:6px}.rsvp input::placeholder{font-size:12px}.rsvp fieldset{margin-top:23px;gap:10px}.rsvp .radio-option>span{font-size:12px;min-height:49px;border-radius:3px}.rsvp .button{min-height:49px;border-radius:3px;font-size:12px;margin-top:16px;box-shadow:none;background:#627f68;border-color:#627f68;letter-spacing:0}.rsvp .button:hover{background:#506d57;box-shadow:none}
.wish-note{margin:23px 0 0;border-top:1px solid var(--composition-line);border-bottom:1px solid var(--composition-line);text-align:left}.wish-note summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:17px 5px;min-height:50px;font:italic 12px/1.7 FiraGO,Arial,sans-serif;color:#657e66}.wish-note summary::-webkit-details-marker{display:none}.wish-note summary span{font:21px/1 Georgia,serif;transition:transform .35s}.wish-note[open] summary span{transform:rotate(45deg)}.wish-note summary:focus-visible{outline:1px solid #9aaa8a;outline-offset:3px}.wish-note-paper{padding:3px 5px 20px;animation:note-unfold .5s ease both}.wish-note-paper label{display:block;font:24px/1.6 Niko,Georgia,serif;margin:0 0 8px;color:var(--ink)}.wish-note textarea{display:block;width:100%;min-height:105px;resize:vertical;border:0;border-radius:0;padding:0 2px;color:var(--ink);font:italic 13px/32px FiraGO,Arial,sans-serif;background:repeating-linear-gradient(transparent 0 31px,#a6b69a40 31px 32px)}.wish-note textarea::placeholder{color:#81917b}.wish-note textarea:focus-visible{outline:1px solid #a0b293;outline-offset:4px}
.wedding-footer{position:relative;padding:27px 24px 24px}.closing-scene{width:calc(100% + 48px);margin:0 -24px;aspect-ratio:4/5;mask-image:linear-gradient(transparent,#000 5%,#000 94%,transparent)}.closing-signature{position:absolute;inset:20% 17% auto;text-align:center;z-index:2;pointer-events:none;color:#4b6d61}.closing-invitation{font:24px/1.6 Niko,Georgia,serif;margin:0 0 13px;color:#4c6b5f}.closing-signature .footer-monogram{font-size:71px;line-height:1.2;margin:0 auto 20px;color:#526f60}.closing-signature .footer-monogram span{font-size:39px;color:#81937c}.footer-monogram:after{display:none}.closing-signature .footer-date{color:#536e65;font-size:11px;letter-spacing:.18em;margin-top:0}.closing-signature .footer-place{font-size:11px;color:#5f7b71;margin-top:9px}.sea-stage{height:113px;margin-top:-22px}.sea-stage .footer-yacht{width:42%;left:29%;top:0;opacity:.85}.sea-waves{height:100px}.sea-glimmer{display:none}.wedding-footer .footer-top{width:40px;height:40px;margin:0 auto;border-color:#a6b89a70}
.motion-ready img.reveal-item:not(.yacht){transform:translate3d(0,14px,0);transition-duration:950ms,1200ms}.motion-ready .reveal-item{transition-duration:750ms,1000ms}.motion-ready .reveal-item.is-visible,.motion-ready img.reveal-item.is-visible:not(.yacht){transform:none}
body.night{--composition-line:#a0b7c32d;--composition-blue:#bacfdd}body.night .venue-index{color:#8ca5b7}body.night .wish-note summary{color:#c7d3d8}body.night .wish-note textarea{color:#e5dfd1;background:repeating-linear-gradient(transparent 0 31px,#8fa2b12b 31px 32px)}body.night .wish-note textarea::placeholder{color:#9eb3c2}body.night .closing-signature,body.night .closing-invitation{color:#e9ddc5}body.night .closing-signature .footer-monogram{color:#e5d5b6}body.night .closing-signature .footer-monogram span{color:#b7cad8}body.night .closing-signature .footer-date,body.night .closing-signature .footer-place{color:#cad6df}body.night .rsvp .button{box-shadow:none;background:#a99470;border-color:#c4af85}
@keyframes note-unfold{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@media(max-width:370px){.hero-copy h1{font-size:33px;gap:9px}.hero-invitation-line{font-size:10px}.countdown-inner h2{font-size:25px}.timer span{font-size:23px}.timer small{font-size:7px}.celebration{padding-left:20px;padding-right:20px}.ceremony-card .monastery-art,.reception-card .resort{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}.venue-topline>span{font-size:10px;gap:9px}.venue-index{padding-right:9px}.simple-timeline p{font-size:12px}.simple-timeline>div{gap:12px;grid-template-columns:61px minmax(0,1fr)}.dresscode{margin-left:25px;margin-right:25px}.dresscode h2{font-size:23px}.attendance-area{margin-left:28px;margin-right:28px}.rsvp h2{font-size:31px}.rsvp .radio-option>span{font-size:11px}.closing-invitation{font-size:22px}.closing-signature .footer-monogram{font-size:62px}}@media(prefers-reduced-motion:reduce){.wish-note-paper{animation:none}.wish-note summary span{transition:none}.motion-ready img.reveal-item:not(.yacht){transform:none;transition:none}}
/* Keep the signature in the open sky; the terrace remains unobstructed. */
.closing-signature{top:17%;left:16%;right:16%}.closing-invitation{font-size:24px;line-height:1.4;margin-bottom:8px}.closing-signature .footer-monogram{font-size:66px;line-height:1.1;margin-bottom:13px}.closing-signature .footer-monogram span{font-size:36px}.closing-signature .footer-date{font-size:10px;letter-spacing:.18em}.closing-signature .footer-place{display:none}@media(max-width:370px){.closing-signature .footer-monogram{font-size:61px}.closing-invitation{font-size:23px}}

.music-toggle{position:fixed;z-index:20;top:max(16px,env(safe-area-inset-top));left:max(16px,calc((100vw - 480px)/2 + 16px));display:grid;place-items:center;width:43px;height:43px;padding:0;border:1px solid #9aa98c60;border-radius:50%;background:#faf8f2db;backdrop-filter:blur(10px);color:#647a60;cursor:pointer;transition:background .8s,color .8s,transform .3s}
.music-toggle:hover{transform:translateY(-1px)}.music-toggle:focus-visible{outline:2px solid #bba478;outline-offset:4px}.music-note{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}.music-bars{display:none;align-items:center;justify-content:center;gap:3px;height:21px}.music-bars i{display:block;width:2px;height:12px;border-radius:2px;background:currentColor;animation:music-breathe 1.4s ease-in-out infinite alternate}.music-bars i:nth-child(2){height:20px;animation-delay:-.8s}.music-bars i:nth-child(3){height:16px;animation-delay:-.3s}.music-bars i:nth-child(4){height:9px;animation-delay:-1s}.music-toggle.is-playing .music-note{display:none}.music-toggle.is-playing .music-bars{display:flex}body.night .music-toggle{background:#12273ddd;color:#e5cca0;border-color:#c4ad794d}.page-hidden .music-bars i{animation-play-state:paused}
.rsvp form .wish-note{margin:21px 0 0;border-bottom:0}.rsvp form .wish-note summary{padding:12px 5px;min-height:44px}.rsvp form .wish-note-paper{padding:4px 5px 13px}.rsvp form .wish-note textarea{font-size:13px}.rsvp form .wish-note-paper .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}
@keyframes music-breathe{from{transform:scaleY(.45)}to{transform:scaleY(1)}}@media(prefers-reduced-motion:reduce){.music-bars i{animation:none}.music-toggle{transition:none}}

/* Atelier: one watercolor palette, one grid and one restrained motion language. */
:root{--paper:#faf8f2;--ink:#4f695f;--muted:#75877a;--atelier-blue:#7894a3;--atelier-rule:#9aaa933b}
.hero-copy h1{color:#4e685d}.hero-copy h1 em{color:#899b89}.hero-copy:before{background:none;opacity:0}.hero-date-rule{width:86px}
.countdown-section{padding:45px 30px 41px;position:relative}.countdown-section:after{display:none}.countdown-scene,body.night .countdown-scene{width:100%;max-width:none;aspect-ratio:auto;min-height:0;background:none!important;border-top:1px solid var(--atelier-rule);border-bottom:1px solid var(--atelier-rule);padding:28px 0 30px;margin:0;display:block;box-shadow:none}.countdown-scene:before,.countdown-scene:after{display:none}.countdown-inner{position:relative;inset:auto;display:block;width:100%;max-width:none;padding:0;transform:none;margin:auto}.countdown-inner h2{font:29px/1.5 Niko,Georgia,serif;margin:0 0 24px;color:var(--ink)}.timer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;margin:0!important;align-items:start}.timer b{display:none}.timer>div{position:relative;min-width:0;padding:0 4px}.timer>div:not(:last-child){border-right:1px solid var(--atelier-rule)}.timer span{display:block;font:italic 34px/1.15 Georgia,serif;letter-spacing:-1px;color:#708c92;font-variant-numeric:tabular-nums}.timer small{font:italic 10px/1.4 FiraGO,Arial,sans-serif;letter-spacing:0;color:#75887a;margin:11px 0 0}
.celebration{padding:5px 24px 28px}.chapter-heading{margin:0 0 36px}.chapter-heading h2{font-size:31px;line-height:1.5;color:var(--ink);margin:0}.chapter-rule{display:none}.venue-index{font-size:10px;letter-spacing:.08em;color:#8e9d8e;padding-right:12px}.venue-topline>span{font-size:11px;letter-spacing:0;color:#718375}.venue-topline time{font:italic 25px/1.2 Georgia,serif;color:var(--atelier-blue)}.ceremony-card .venue-topline,.reception-card .venue-topline{padding:0 7px}.ceremony-card .monastery-art,.reception-card .resort{width:calc(100% + 48px);height:auto;margin:4px -24px 8px;filter:none;opacity:1;mix-blend-mode:normal;mask-image:none}.ceremony-card .venue-copy h3{font-size:31px;color:var(--ink);line-height:1.5}.venue-copy{padding-left:8px;padding-right:8px}.venue-name{font:italic 13px/1.9 FiraGO,Arial,sans-serif;color:#748575;margin-top:5px}.quiet-link{font:italic 11px/1.5 FiraGO,Arial,sans-serif;min-height:44px;margin-top:4px;padding:0 3px;border-bottom:1px solid var(--atelier-rule);color:#718675}.venue-connector{height:53px}.venue-connector span{height:25px}.reception-card .venue-copy .resort-name>span{font:30px/1.2 Georgia,serif;color:#536d64}.reception-card .venue-copy .resort-name>small{font:italic 13px/1.7 Georgia,serif;color:#7c8e80;margin-top:7px;letter-spacing:.015em}.reception-card .schedule{max-width:316px;border-top:1px solid var(--atelier-rule);padding-top:7px;margin:23px auto 0}.simple-timeline>div{grid-template-columns:65px minmax(0,1fr);gap:18px;padding:15px 0;border-color:#a3b29924}.simple-timeline time{font-size:22px;color:var(--atelier-blue)}.simple-timeline p{font-size:13px;line-height:1.8;color:#637d6b}.calendar-link{font-size:11px;min-height:44px;color:#738775;margin-top:16px}
.dresscode{margin:3px 30px 0;padding:31px 0 28px;border-color:var(--atelier-rule)}.dresscode .eyebrow{font-size:10px;letter-spacing:.05em;color:#7e907f}.dresscode h2{font:italic 25px/1.4 Georgia,serif;letter-spacing:-.03em;color:#5e786b;margin-top:12px}.dress-art{width:calc(100% + 36px);max-width:none;height:auto;margin:18px -18px 0;opacity:1;filter:none;mix-blend-mode:normal}
.attendance-area{padding-top:37px;margin-left:34px;margin-right:34px}.rsvp-card{padding-top:84px}.rsvp-roses{height:61px;top:0;width:83%;max-width:270px;opacity:.8;filter:none}.rsvp h2{font:32px/1.5 Niko,Georgia,serif;color:var(--ink)}.rsvp form{margin-top:25px}.rsvp input:not([type=radio]){font:italic 13px/1.6 FiraGO,Arial,sans-serif;border-color:var(--atelier-rule);min-height:49px}.rsvp .radio-option>span{border-radius:1px;border-color:#a5b69c80;background:none;font-size:12px;min-height:48px}.rsvp .radio-option input:checked+span{background:#e8eee5;border-color:#9daf98;box-shadow:inset 0 0 0 3px var(--paper)}.rsvp .button{border-radius:1px;background:#668172;border-color:#668172;box-shadow:inset 0 0 0 3px #faf8f212;font-size:12px;min-height:49px}.rsvp .button:hover{background:#526e5f;transform:translateY(-1px);box-shadow:inset 0 0 0 3px #faf8f216}.rsvp .button:after{font-size:17px}.rsvp form .wish-note{border-color:var(--atelier-rule)}.rsvp form .wish-note summary{color:#748877;font-size:12px}.rsvp form .wish-note textarea{color:var(--ink)}
.wedding-footer{padding:26px 24px 27px}.closing-scene{width:calc(100% + 48px);margin:0 -24px;mask-image:linear-gradient(transparent,#000 5%,#000 94%,transparent)}.closing-signature{top:17%;left:16%;right:16%}.closing-invitation{font:24px/1.4 Niko,Georgia,serif;color:#557367}.closing-signature .footer-monogram{font-size:66px;line-height:1.1;color:#577667;margin-bottom:13px}.closing-signature .footer-monogram span{font-size:36px;color:#849c88}.wedding-footer .footer-top{margin:15px auto 0;width:40px;height:40px;border-color:var(--atelier-rule);font-size:15px}
/* Entire background stays flat in night mode; moonlight is painted into the art. */
body.night{--ink:#e7dbc4;--muted:#b1c0ca;--atelier-blue:#b9cfdb;--atelier-rule:#a0b7c32b}body.night .countdown-scene{background:none!important}body.night .timer span{color:#e2d1ae}body.night .timer small{color:#aabfcb}body.night .venue-index{color:#8ca5b7}body.night .venue-topline>span,body.night .venue-name{color:#afc1cb}body.night .ceremony-card .monastery-art,body.night .reception-card .resort,body.night .dress-art{filter:none;opacity:1;mask-image:none;mix-blend-mode:normal}body.night .reception-card .venue-copy .resort-name>span{color:#e7dbc4}body.night .reception-card .venue-copy .resort-name>small{color:#adc1ca}body.night .rsvp form .wish-note summary{color:#bccbd3}body.night .rsvp .radio-option>span{background:transparent;border-color:#7c97a06b}body.night .rsvp .radio-option input:checked+span{background:#203647;border-color:#bca77e;box-shadow:inset 0 0 0 3px #0c1b2c}body.night .rsvp .button{background:#ae9973;border-color:#c2ad83;box-shadow:inset 0 0 0 3px #ffffff0b}body.night .closing-signature .footer-monogram{color:#e7d8b9}body.night .closing-signature .footer-monogram span{color:#b5c9d5}.night-stars{z-index:1}body.night .night-stars{opacity:.65}
/* One restrained reveal; no magnification or individual bouncing decorations. */
.motion-ready .reveal-item{transition-property:opacity,transform;transition-duration:850ms,1100ms;transition-timing-function:ease,cubic-bezier(.2,.65,.25,1)}.motion-ready img.reveal-item:not(.yacht){transform:translate3d(0,12px,0)}.motion-ready .reveal-item.is-visible,.motion-ready img.reveal-item.is-visible:not(.yacht){transform:none}.ceremony-starlight i{box-shadow:none}
@media(max-width:370px){.countdown-section{padding:36px 25px}.countdown-inner h2{font-size:27px}.timer span{font-size:30px}.timer small{font-size:9px}.celebration{padding-left:20px;padding-right:20px}.chapter-heading h2{font-size:29px}.chapter-heading{margin-bottom:31px}.venue-topline>span{font-size:10px}.venue-topline time{font-size:24px}.ceremony-card .monastery-art,.reception-card .resort{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}.venue-name{font-size:12px}.simple-timeline p{font-size:12px}.simple-timeline>div{gap:12px;grid-template-columns:61px minmax(0,1fr)}.dresscode{margin-left:25px;margin-right:25px}.dresscode h2{font-size:23px}.dress-art{width:calc(100% + 28px);margin-left:-14px;margin-right:-14px}.attendance-area{margin-left:28px;margin-right:28px}.rsvp h2{font-size:30px}.rsvp .radio-option>span{font-size:11px}.closing-signature .footer-monogram{font-size:61px}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal-item,.motion-ready img.reveal-item:not(.yacht){transition:none;transform:none}.rsvp .button{transition:none}}
/* Preserve the illustration's native portrait proportions on small phones. */
.hero{height:auto;min-height:0;max-height:none;aspect-ratio:9/16}
#countdown,#celebration,#ceremony,#location,#schedule,#dresscode,#rsvp{scroll-margin-top:76px}

/* Requested return to the floral-column countdown and supplied attire art. */
.countdown-section{padding:12px 0 0}.countdown-scene{display:grid;place-items:center;width:92%;max-width:424px;height:auto;min-height:0;aspect-ratio:1;margin:0 auto;padding:0;border:0;background:var(--paper) url("https://mariam-luka-invitation.vercel.app/assets/columns-roses.webp") center/100% 100% no-repeat!important;box-shadow:none}.countdown-scene:before,.countdown-scene:after{display:none}.countdown-inner{position:relative;inset:auto;width:57%;max-width:274px;padding:0;margin:auto;transform:translateY(1%)}.countdown-inner h2{font:28px/1.5 Niko,Georgia,serif;margin:0 0 24px}.timer{grid-template-columns:minmax(0,1.2fr) 3px minmax(0,1fr) 3px minmax(0,1fr) 3px minmax(0,1fr);gap:2px;align-items:start;margin:0!important}.timer>div{padding:0;border:0!important}.timer b{display:block;font:13px/1.3 Georgia,serif;opacity:.45;padding-top:3px}.timer span{font:italic 26px/1.2 Georgia,serif;letter-spacing:-.7px;font-variant-numeric:tabular-nums;white-space:nowrap}.timer small{font:italic 8px/1.4 FiraGO,Arial,sans-serif;letter-spacing:0;margin-top:12px}body.night .countdown-scene{background:#0c1b2c url("https://mariam-luka-invitation.vercel.app/assets/night-columns.webp") center/100% 100% no-repeat!important;background-blend-mode:lighten}.celebration{padding-top:30px}.dress-art{width:calc(100% + 24px);height:auto;margin:22px -12px 0}.rsvp-roses{width:calc(100% + 24px);max-width:344px;height:110px;top:0;opacity:.86;object-fit:contain}.rsvp-card{padding-top:136px}
@media(max-width:370px){.countdown-section{padding-top:10px}.countdown-inner h2{font-size:25px}.timer span{font-size:23px}.timer small{font-size:7px}.rsvp-roses{height:94px;max-width:300px}.rsvp-card{padding-top:119px}}

/* Keep the floral frame square in both themes; higher-specificity night rules must match. */
.countdown-scene,body.night .countdown-scene{display:grid;place-items:center;width:92%;max-width:424px;height:auto;min-height:0;aspect-ratio:1;margin:0 auto;padding:0;border:0}.countdown-inner{width:57%;max-width:274px}
/* The yacht is part of the requested closing composition again. */
.sea-stage{position:relative;height:164px;margin:0 -24px;width:calc(100% + 48px);overflow:hidden;isolation:isolate;mask-image:none}.sea-stage .footer-yacht{position:absolute;width:58%;max-width:none;height:auto;left:21%;top:4px;margin:0;opacity:.95;filter:none;mix-blend-mode:normal;animation:yacht-tide 10s ease-in-out infinite;transform-origin:50% 75%}.sea-haze,.sea-glimmer{display:none}.sea-waves{position:absolute;left:0;right:0;bottom:0;width:100%;height:130px;opacity:.7;mask-image:radial-gradient(ellipse at 50% 50%,#000 25%,transparent 74%)}.sea-waves path{fill:none;filter:none;stroke:#91b2bd;stroke-width:1.1}.wave-back{stroke-opacity:.25}.wave-mid{stroke-opacity:.4}.wave-front{stroke-opacity:.62}body.night .sea-waves{opacity:.8}body.night .sea-waves path{fill:none;stroke:#a8c7d9;filter:none}body.night .sea-stage .footer-yacht{opacity:1;filter:none}
/* Small stars at several depths and two very occasional, quiet shooting stars. */
body.night .night-stars{opacity:1}.ambient-star{box-shadow:0 0 3px #c6dfff45;background:#dceaff}.ambient-star:nth-child(6n){box-shadow:0 0 6px #c6dfff70}.ambient-star.star-spark{width:5px;height:5px;background:#f0e1c0}.night-meteor{position:absolute;left:var(--meteor-x);top:var(--meteor-y);width:42px;height:1px;opacity:0;background:linear-gradient(90deg,transparent,#d5e9ff);transform:rotate(32deg);transform-origin:right center;animation:night-meteor var(--meteor-duration) linear var(--meteor-delay) infinite;animation-play-state:paused}.night-meteor:after{content:'';position:absolute;right:0;top:-1px;width:3px;height:3px;border-radius:50%;background:#eaf3ff}body.night .night-meteor{animation-play-state:running}.page-hidden .night-meteor{animation-play-state:paused!important}body:has(.rsvp input:focus) .night-stars,body:has(.rsvp textarea:focus) .night-stars{opacity:.35}
@keyframes yacht-tide{0%,100%{transform:translate(0,1px) rotate(-.65deg)}50%{transform:translate(2px,-3px) rotate(.65deg)}}@keyframes night-meteor{0%,91%{opacity:0;transform:translate(0,0) rotate(32deg)}92%{opacity:.65}95%{opacity:0;transform:translate(130px,81px) rotate(32deg)}100%{opacity:0;transform:translate(130px,81px) rotate(32deg)}}
@media(max-width:370px){.sea-stage{height:145px}.sea-stage .footer-yacht{top:5px}}
@media(prefers-reduced-motion:reduce){.sea-stage .footer-yacht{animation:none}.night-meteor{display:none}}

/* Moonlit silk: mostly distant pinpoints, a few slow highlights, one rare meteor. */
.ambient-star{animation-name:moon-silk-twinkle;animation-duration:var(--star-duration);animation-timing-function:ease-in-out;animation-delay:var(--star-delay);animation-iteration-count:infinite;box-shadow:none;background:#d8e8f6;opacity:var(--star-low)}.ambient-star:nth-child(6n){box-shadow:0 0 4px #c6dfff45}.ambient-star:nth-child(11n+1){background:#f0e0bd;box-shadow:0 0 5px #ead6aa55}.ambient-star.star-spark{width:3.5px;height:3.5px;background:#e1edfa;box-shadow:none}.night-meteor{width:34px}.night-meteor:after{width:2px;height:2px;top:-.5px}body.night .night-stars{opacity:.88}
@keyframes moon-silk-twinkle{0%,100%{opacity:var(--star-low)}45%,58%{opacity:var(--star-high)}}
/* Let the original column painting fill the mobile invitation edge to edge. */
.countdown-section{padding-left:0;padding-right:0}.countdown-scene,body.night .countdown-scene{width:100%;max-width:480px;aspect-ratio:1;height:auto}.countdown-inner{width:58%;max-width:274px}.countdown-inner h2{font-size:29px}
/* A short optional letter, kept within the RSVP form. */
.rsvp form .wish-note{margin-top:22px;border-top:1px solid #a7b89d65}.rsvp form .wish-note summary{font:22px/1.6 Niko,Georgia,serif;letter-spacing:0;min-height:54px;padding:13px 3px;color:#657e69}.wish-note summary span{font:19px/1 Georgia,serif;color:#8c9d83;margin-right:3px}.rsvp form .wish-note-paper{position:relative;margin:4px 0 16px;padding:23px 19px 51px;border:1px solid #b5c6aa8c;border-radius:2px;background:#fcfbf6;box-shadow:none;transition:border-color .3s}.wish-note-paper:before{content:'';position:absolute;inset:7px;border:1px solid #d9e0cf80;pointer-events:none}.wish-note-paper:after{content:'M & L';position:absolute;right:22px;bottom:13px;font:29px/1 Pinyon,cursive;letter-spacing:0;color:#8fa084;pointer-events:none}.rsvp form .wish-note textarea{position:relative;z-index:1;display:block;width:100%;min-height:144px;margin:0;padding:0 1px;resize:vertical;border:0;border-radius:0;font:italic 16px/36px FiraGO,Arial,sans-serif;color:#4f6959;background:repeating-linear-gradient(transparent 0 35px,#acbd9f4d 35px 36px)}.rsvp form .wish-note textarea::placeholder{font-size:13px;color:#81927b;opacity:1}.rsvp form .wish-note textarea:focus-visible{outline:none}.rsvp form .wish-note-paper:focus-within{border-color:#819b77;outline:1px solid #9cb38f66;outline-offset:4px}
body.night .rsvp form .wish-note{border-color:#a0b7c33d}body.night .rsvp form .wish-note summary{color:#dccba9}body.night .wish-note summary span{color:#a9bccb}body.night .rsvp form .wish-note-paper{background:#102235;border-color:#a9956e70;box-shadow:none}body.night .wish-note-paper:before{border-color:#9db2c125}body.night .wish-note-paper:after{color:#c5b28b}body.night .rsvp form .wish-note textarea{color:#e5dfd2;background:repeating-linear-gradient(transparent 0 35px,#93acbd30 35px 36px)}body.night .rsvp form .wish-note textarea::placeholder{color:#a9bdca}body.night .rsvp form .wish-note-paper:focus-within{border-color:#c4ae80;outline-color:#c4ae804d}
@media(max-width:600px){.rsvp input:not([type=radio]),.rsvp .wish-note textarea{font-size:16px}}
@media(max-width:370px){.countdown-inner h2{font-size:26px}.rsvp form .wish-note summary{font-size:21px}.rsvp form .wish-note-paper{padding-left:16px;padding-right:16px}.rsvp form .wish-note textarea::placeholder{font-size:12px}}
@media(prefers-reduced-motion:reduce){body.night .ambient-star{animation:none;opacity:var(--star-high)}.wish-note-paper{transition:none}}

/* Clearly visible starlight, with an even blue sky and no painted haze. */
.night-stars{z-index:4}body.night .night-stars{opacity:1;animation:none}.ambient-star{background:#e4f2ff;box-shadow:0 0 4px #bddcff70}.ambient-star:nth-child(3n){background:#e0edff;box-shadow:0 0 5px #a9d4ff70}.ambient-star:nth-child(11n+1){background:#fff0d1;box-shadow:0 0 8px #e6cc9680}.ambient-star.star-spark{width:7px;height:7px;background:#f5edda;clip-path:polygon(50% 0,58% 40%,100% 50%,58% 59%,50% 100%,42% 59%,0 50%,42% 40%);filter:drop-shadow(0 0 3px #e3d0a985)}body:has(.rsvp input:focus) .night-stars,body:has(.rsvp textarea:focus) .night-stars{opacity:.25}
@media(prefers-reduced-motion:reduce){body.night .ambient-star{animation:none;opacity:var(--star-high)}.ambient-star.star-spark{filter:none}}
/* Moonlit sea: local ripples, rather than a glow across the whole invitation. */
.moon-reflection{display:none;position:absolute;z-index:0;pointer-events:none;left:31%;top:62px;width:38%;height:88px;overflow:hidden;transform:perspective(160px) rotateX(20deg);mask-image:linear-gradient(transparent,#000 12%,#000 78%,transparent)}body.night .moon-reflection{display:block}.moon-reflection i{position:absolute;left:50%;top:calc(var(--ripple)*7px);width:calc(22% + var(--ripple)*5%);height:1px;border-radius:50%;background:#e1dbbc;box-shadow:0 0 5px #c5dcff90;opacity:.12;transform:translateX(-50%);animation:moon-water 5.8s ease-in-out calc(var(--ripple)*-.57s) infinite;animation-play-state:paused}.sea-in-view .moon-reflection i{animation-play-state:running}.sea-stage .footer-yacht{z-index:2}.sea-waves{z-index:1}.page-hidden .moon-reflection i{animation-play-state:paused!important}@keyframes moon-water{0%,100%{opacity:.12;transform:translateX(-53%) scaleX(.68)}45%{opacity:.65;transform:translateX(-46%) scaleX(1.1)}75%{opacity:.25;transform:translateX(-51%) scaleX(.9)}}
/* Let each illustration breathe, followed by a few fleeting pinpoints. */
.venue-landscape{position:relative}.ceremony-landscape,.venue-landscape{isolation:isolate}.arrival-lights{position:absolute;inset:0;pointer-events:none;z-index:2}.arrival-lights i{position:absolute;width:5px;height:5px;background:#b9a474;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);opacity:0}.art-awake .arrival-lights i{animation:watercolor-light 2.4s ease-out var(--light-delay) both}body.night .arrival-lights i{background:#fff1c9;width:7px;height:7px;filter:drop-shadow(0 0 3px #e7dbad)}.motion-ready .venue-landscape>img.reveal-image,.motion-ready .ceremony-landscape>img.reveal-image{transition:opacity 1.3s ease,transform 1.6s cubic-bezier(.2,.65,.3,1);transform:translateY(19px) scale(.97)}.motion-ready .venue-landscape>img.is-visible,.motion-ready .ceremony-landscape>img.is-visible{transform:translateY(0) scale(1)}@keyframes watercolor-light{0%,100%{opacity:0;transform:scale(.3) rotate(-15deg)}30%{opacity:.9;transform:scale(1.15) rotate(0deg)}65%{opacity:.4;transform:scale(.8) rotate(8deg)}}
/* The wish opens as a small sheet of writing paper. */
.wish-note{perspective:900px}.wish-note[open] .wish-note-paper{transform-origin:50% 0;animation:letter-unfold .65s cubic-bezier(.2,.7,.2,1) both}.wish-note[open] textarea{animation:letter-ink .6s ease .15s both}@keyframes letter-unfold{from{opacity:0;transform:translateY(-8px) rotateX(-14deg) scaleY(.88)}to{opacity:1;transform:translateY(0) rotateX(0) scaleY(1)}}@keyframes letter-ink{from{opacity:0}to{opacity:1}}
/* Draw the actual Pinyon letter contours, then let the ink settle. */
.closing-signature .footer-monogram{display:block;width:170px;height:91px;margin:0 auto 10px;letter-spacing:0}.signature-ink{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.signature-ink path{fill:currentColor;fill-opacity:0;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke}.signature-written .signature-ink path{animation:signature-line 2.2s ease calc(var(--ink-order)*.65s) both,signature-fill 1s ease calc(1.65s + var(--ink-order)*.65s) both}.closing-signature .footer-date,.closing-signature .footer-place{opacity:0}.signature-written .footer-date,.signature-written .footer-place{animation:signature-date 1.3s ease 3.3s both}@keyframes signature-line{to{stroke-dashoffset:0}}@keyframes signature-fill{to{fill-opacity:1;stroke-opacity:0}}@keyframes signature-date{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:370px){.closing-signature .footer-monogram{width:151px;height:80px}.moon-reflection{top:56px;height:80px}}
@media(prefers-reduced-motion:reduce){.moon-reflection i{animation:none;opacity:.35}.arrival-lights{display:none}.motion-ready .venue-landscape>img.reveal-image,.motion-ready .ceremony-landscape>img.reveal-image{transition:none;transform:none}.wish-note[open] .wish-note-paper,.wish-note[open] textarea{animation:none}.signature-ink path{animation:none!important;fill-opacity:1;stroke:none}.closing-signature .footer-date,.closing-signature .footer-place{animation:none;opacity:1}}
/* Enchanted-night air: silver dust and faint violet currents over the flat blue. */
.enchanted-air{position:fixed;inset:0;max-width:480px;margin:auto;z-index:5;pointer-events:none;overflow:hidden;opacity:0;visibility:hidden;contain:layout paint;transition:opacity 1.6s ease,visibility 1.6s}body.night .enchanted-air{opacity:1;visibility:visible}.enchanted-dust{position:absolute;left:var(--dust-x);top:var(--dust-y);width:var(--dust-size);height:var(--dust-size);border-radius:50%;background:#edf5ff;box-shadow:0 0 6px 2px #b8cfff85,0 0 13px 3px #ad94e02e;opacity:0;animation:enchanted-drift var(--dust-time) ease-in-out var(--dust-lag) infinite;animation-play-state:paused}.enchanted-dust:nth-child(4n){background:#e4ceff;box-shadow:0 0 7px 2px #b7a3e885,0 0 15px 3px #b7a3e830}.enchanted-dust:nth-child(5n){border-radius:40%;background:#fff1dc;box-shadow:0 0 7px #fff0c6aa}.enchanted-currents{position:absolute;inset:0;width:100%;height:100%;fill:none;overflow:visible}.enchanted-currents path{stroke:#d2d9ff;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1 24 1 40 2 33;opacity:0;animation:enchanted-current 19s linear var(--current-lag) infinite;animation-play-state:paused}.enchanted-currents path:nth-child(2){stroke:#dcc7ed;stroke-width:1.3}body.night .enchanted-dust,body.night .enchanted-currents path{animation-play-state:running}body.night .ambient-star.star-spark{background:#eaf2ff;filter:drop-shadow(0 0 4px #bcb8fa85)}body.night .ambient-star:nth-child(11n+1){background:#ede5ff;box-shadow:0 0 9px #b9b1ef85}body.night .countdown-inner h2,body.night .closing-invitation{text-shadow:0 0 16px #becdf733}.touch-spell{position:absolute;width:4px;height:4px;border-radius:50%;background:#f2edff;box-shadow:0 0 7px 2px #b6bafc99;opacity:0;animation:touch-enchantment 1.25s ease-out var(--spell-lag) both}.touch-spell:nth-child(3n){width:6px;height:6px;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}body:has(.rsvp input:focus) .enchanted-air,body:has(.rsvp textarea:focus) .enchanted-air{opacity:.15}.page-hidden .enchanted-dust,.page-hidden .enchanted-currents path{animation-play-state:paused!important}@keyframes enchanted-drift{0%,100%{opacity:0;transform:translate3d(0,10px,0) scale(.4)}18%{opacity:.6}48%{opacity:.88;transform:translate3d(var(--dust-drift),calc(var(--dust-rise)*.45),0) scale(1)}72%{opacity:.4;transform:translate3d(calc(var(--dust-drift)*-.4),var(--dust-rise),0) scale(.7)}90%{opacity:0;transform:translate3d(0,calc(var(--dust-rise)*1.3),0) scale(.3)}}@keyframes enchanted-current{0%,100%{opacity:0;stroke-dashoffset:0}20%{opacity:.26}55%{opacity:.42}85%{opacity:0;stroke-dashoffset:-180}}@keyframes touch-enchantment{0%{opacity:0;transform:translate(0,0) scale(.3)}18%{opacity:1}100%{opacity:0;transform:translate(var(--spell-x),var(--spell-y)) scale(.1)}}
@media(prefers-reduced-motion:reduce){.enchanted-air{display:none}body.night .countdown-inner h2,body.night .closing-invitation{text-shadow:none}}
/* Keep the native scroll control, styled as a quiet part of the invitation. */
:root{--scroll-thumb:#9baa9a;--scroll-track:#f5f3ed;--scroll-hover:#708674;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track);color-scheme:light}:root:has(body.night){--scroll-thumb:#728ba5;--scroll-track:#0c1b2c;--scroll-hover:#b9cadb;color-scheme:dark}html::-webkit-scrollbar{width:7px;height:7px}html::-webkit-scrollbar-track{background:var(--scroll-track)}html::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--scroll-track);border-radius:12px}html::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}html::-webkit-scrollbar-corner{background:var(--scroll-track)}.rsvp textarea{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}

/* Cool white roses and hydrangea matched to the intro, with genuine alpha. */
.rsvp-roses,body.night .rsvp-roses{opacity:1;filter:none;mix-blend-mode:normal}
/* A companion light to the native mouse cursor, exclusively in enchanted night. */
.cursor-magic{display:none;position:fixed;inset:0;max-width:480px;margin:auto;pointer-events:none;z-index:18;overflow:hidden;contain:layout paint}.cursor-glow{position:absolute;left:0;top:0;width:12px;height:12px;opacity:0;border-radius:50%;background:radial-gradient(circle,#f0f4ffb3 0 5%,#bfcfff52 20%,#b8c3f31a 46%,transparent 72%);transition:opacity .18s ease;pointer-events:none}.cursor-present .cursor-glow{opacity:.8}.cursor-spark{position:absolute;width:2px;height:2px;border-radius:50%;background:#e9eeff;box-shadow:0 0 4px #c3c9f580;opacity:0;animation:cursor-stardust .56s ease-out both}.cursor-spark:nth-child(3n){width:3px;height:3px;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}@keyframes cursor-stardust{0%{opacity:.7;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--cursor-drift),9px) scale(.25)}}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){body.night .cursor-magic{display:block}}
/* A brief silver light under a real fingertip; scrolling remains fully native. */
@media(prefers-reduced-motion:no-preference){body.night .cursor-magic.touch-present{display:block}.touch-present .cursor-glow{width:19px;height:19px;opacity:.7}.touch-present .cursor-spark{width:3px;height:3px}}
/* Keep the approved white petal visible throughout the daytime schedule. */
body:not(.night) .petal-layer{opacity:1}.page-hidden .petal,.page-hidden .petal-face{animation-play-state:paused!important}body:has(.rsvp input:focus) .petal-layer,body:has(.rsvp textarea:focus) .petal-layer{opacity:.12}
/* Natural asymmetric oval petal from the same watercolor sheet; no heart mask. */
.petal-face{background-position:100% 0;clip-path:none;mask-image:none}
/* Four pale petals, independently spaced in time and height. */
.petal{animation-name:petal-airborne;animation-timing-function:linear}.petal-face{animation-duration:var(--sway,11s)}
@keyframes petal-airborne{0%{opacity:0;transform:translate3d(0,-100px,0) rotate(var(--rotation))}7%{opacity:var(--alpha)}28%{transform:translate3d(calc(var(--drift)*.7),28svh,0) rotate(calc(var(--rotation) + 17deg))}54%{opacity:var(--alpha);transform:translate3d(calc(var(--drift)*-.35),55svh,0) rotate(calc(var(--rotation) - 11deg))}78%{transform:translate3d(calc(var(--drift)*.9),80svh,0) rotate(calc(var(--rotation) + 9deg))}90%{opacity:var(--alpha)}100%{opacity:0;transform:translate3d(calc(var(--drift)*.2),calc(100svh + 110px),0) rotate(calc(var(--rotation) - 6deg))}}
/* Reference-scale petals: different natural folds and independent drift cycles. */
.petal{animation-name:petal-airborne;animation-timing-function:ease-in-out}.petal:nth-child(3n+1) .petal-face{background-position:100% 0}.petal:nth-child(3n+2) .petal-face{background-position:50% 0}.petal:nth-child(3n) .petal-face{background-position:0 100%}.petal-face{clip-path:none;mask-image:none}
/* Carry the introduction's floral language across the full invitation width. */
.rsvp-roses{width:calc(100% + 68px);max-width:480px;height:126px;object-fit:contain}.rsvp-card{padding-top:148px}
@media(max-width:370px){.rsvp-roses{width:calc(100% + 56px);height:106px}.rsvp-card{padding-top:130px}}
/* One pale natural petal, falling evenly from the countdown onward. */
body:not(.night) .petal-layer:not(.petals-started){opacity:0}.petal-layer:not(.petals-started) .petal,.petal-layer:not(.petals-started) .petal-face{animation-play-state:paused}.petal:nth-child(n) .petal-face{background-position:100% 0;clip-path:none;mask-image:none;animation-name:petal-calm-turn;animation-timing-function:ease-in-out}.petal{animation-name:petal-gentle-fall;animation-timing-function:linear}
@keyframes petal-gentle-fall{0%{opacity:0;transform:translate3d(0,-85px,0) rotate(var(--rotation))}8%{opacity:var(--alpha)}28%{transform:translate3d(calc(var(--drift)*.6),27svh,0) rotate(calc(var(--rotation) + 7deg))}53%{transform:translate3d(calc(var(--drift)*-.25),53svh,0) rotate(calc(var(--rotation) - 5deg))}78%{transform:translate3d(var(--drift),79svh,0) rotate(calc(var(--rotation) + 5deg))}90%{opacity:var(--alpha)}100%{opacity:0;transform:translate3d(calc(var(--drift)*.3),calc(100svh + 85px),0) rotate(calc(var(--rotation) - 3deg))}}
@keyframes petal-calm-turn{0%,100%{transform:rotate(-5deg) rotateY(5deg)}50%{transform:rotate(6deg) rotateY(17deg)}}
.petal-layer{clip-path:inset(var(--petal-start-y,100%) 0 0 0)}
/* Let the painted yacht reflection finish the night scene without extra lines. */
body.night .sea-waves,body.night .moon-reflection{display:none}

