@import url('fonts.css');
:root{--paper:#fbf3f0;--ink:#624c4e;--muted:#806b6c;--rose:#a66e76;--dark-rose:#88535e;--line:#d9bcaf;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--script:'Great Vibes',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:20px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--dark-rose);outline-offset:5px}button:disabled{cursor:wait}[hidden]{display:none!important}::selection{background:#efd1d5}button{border:0;background:none}.paper-grain{position:fixed;inset:0;pointer-events:none;z-index:12;opacity:.045;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='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.masthead{height:100px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;width:100%;z-index:15}.brand{display:flex;align-items:center;gap:15px}.brand-monogram{font-family:var(--script);font-size:40px;line-height:1;border-right:1px solid var(--line);padding-right:18px;color:var(--rose)}.brand>span:last-child{font-family:var(--sans);font-size:9px;letter-spacing:2.6px}.masthead nav{display:flex;gap:34px;align-items:center;font-family:var(--sans);font-size:11px}.nav-rsvp{border-bottom:1px solid var(--rose);padding:10px 0;font-size:11px}.nav-rsvp span{margin-left:16px}.opening{position:relative;isolation:isolate;min-height:900px;min-height:max(860px,100svh);overflow:hidden;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 42%,#fffaf7 0,transparent 57%),radial-gradient(ellipse at 95% 86%,#f4e4e2 0,transparent 48%)}.opening-content{position:relative;text-align:center;z-index:4;width:100%;padding:114px 25px 61px}.tiny-flower{font-size:31px;color:#b69075;line-height:1;margin-bottom:22px}.eyebrow{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:2.8px;line-height:1.8}.opening .eyebrow{font-size:9px;letter-spacing:3.3px;margin:0 0 7px}.opening h1{font-family:var(--script);font-weight:400;font-size:clamp(105px,11.5vw,158px);line-height:1.17;color:var(--rose);margin:0 0 0 -25px;transform:rotate(-4deg)}.fifteen{font-family:var(--sans);font-size:9px;letter-spacing:4.2px;display:flex;align-items:center;justify-content:center;gap:17px;margin-top:-1px}.fifteen>span{width:43px;height:1px;background:var(--line)}.welcome{font-size:21px;line-height:1.42;font-weight:400;margin:28px auto 0;max-width:580px}.welcome em{font-size:20px;color:#8b6e72}.fine-arch{position:absolute;top:118px;bottom:56px;left:50%;width:min(670px,70%);transform:translateX(-50%);border:1px solid #d5b7a04f;border-radius:340px 340px 0 0;z-index:1}.fine-arch:after{content:'';position:absolute;inset:9px;border:1px solid #d5b7a02b;border-radius:inherit}.botanical{position:absolute;pointer-events:none;z-index:3;will-change:transform}.botanical img{width:100%;height:auto;display:block}.botanical-left{width:clamp(340px,39vw,660px);left:-180px;top:-145px;transform:rotate(160deg);transform-origin:40% 50%;animation:sway-left 12s ease-in-out infinite alternate}.botanical-right{width:clamp(360px,42vw,660px);bottom:-140px;right:-135px;transform:rotate(0deg);transform-origin:80% 80%;animation:sway-right 13s ease-in-out infinite alternate}.edge-note{position:absolute;top:52%;font-family:var(--sans);font-size:8px;letter-spacing:3px;writing-mode:vertical-rl;color:#967d7b;z-index:4}.edge-note-left{left:35px;transform:rotate(180deg)}.edge-note-right{right:35px}.corner{position:absolute;width:28px;height:28px;border-color:#bda28670;z-index:2}.corner-tl{top:100px;left:24px;border-top:1px solid;border-left:1px solid}.corner-tr{top:100px;right:24px;border-top:1px solid;border-right:1px solid}.corner-bl{bottom:24px;left:24px;border-bottom:1px solid;border-left:1px solid}.corner-br{bottom:24px;right:24px;border-bottom:1px solid;border-right:1px solid}
.envelope-stage{position:relative;width:330px;height:224px;margin:39px auto 9px;perspective:1200px}.envelope{position:absolute;width:300px;height:184px;top:17px;left:15px;display:block;transform:rotate(-6deg);animation:float 5s ease-in-out infinite;filter:drop-shadow(0 20px 19px #7d4b5221);padding:0;isolation:isolate}.envelope-back{position:absolute;inset:0;background:#d9b1b3;border-radius:3px;z-index:0;box-shadow:inset 0 0 0 1px #c79c9e}.envelope-front{position:absolute;inset:0;z-index:3;background:linear-gradient(145deg,#f1d6d4,#e4bdbf);clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%)}.envelope-front:before{content:'';position:absolute;inset:0;background:linear-gradient(165deg,#f1d9d6,#e8c4c3);clip-path:polygon(0 100%,50% 40%,100% 100%)}.envelope-front:after{content:'';position:absolute;inset:0;background:linear-gradient(32deg,transparent 49.7%,#b9868b38 50%,transparent 50.4%),linear-gradient(-32deg,transparent 49.7%,#b9868b24 50%,transparent 50.4%);opacity:.5}.envelope-flap{position:absolute;inset:0 0 auto;height:105px;z-index:4;background:linear-gradient(175deg,#f6e0dc,#e7c2c3);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;transition:transform .85s cubic-bezier(.2,.7,.2,1),filter .85s;filter:drop-shadow(0 3px 3px #98787c);backface-visibility:visible}.wax-seal{display:flex;align-items:center;justify-content:center;width:53px;height:53px;position:absolute;top:80px;left:123px;z-index:5;background:radial-gradient(circle at 34% 29%,#bd8189,#a26770 55%,#8e5560);border:3px solid #ba7e87;outline:1px solid #d2a0a6;border-radius:46% 50% 44% 49%;box-shadow:2px 5px 8px #6c354a2e,inset 0 0 0 2px #cb959a;transition:opacity .3s,transform .5s}.wax-seal span{font-family:var(--script);font-size:31px;line-height:1;color:#f3d5d6;text-shadow:0 1px #693341;transform:translateY(3px)}.letter{position:absolute;left:23px;right:23px;top:12px;height:156px;background:#fffaf5;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 7px #fffaf5,inset 0 0 0 8px #d8c3aa;transition:transform 1s .55s cubic-bezier(.2,.7,.2,1)}.letter-name{font-family:var(--script);font-size:46px;color:var(--rose)}.letter-flower{font-size:19px;color:#b59879}.letter-text{font-family:var(--sans);font-size:7px;letter-spacing:2px;text-transform:uppercase}.envelope-shadow{position:absolute;bottom:0;left:55px;right:55px;height:13px;border-radius:50%;background:#85616b;opacity:.09;filter:blur(8px);animation:shadow-breathe 5s ease-in-out infinite}.envelope:hover{filter:drop-shadow(0 24px 22px #7d4b5238)}.open-caption{display:flex;align-items:center;justify-content:center;gap:11px;font-family:var(--sans);font-size:8px;letter-spacing:2px;margin:12px auto 0;padding:10px}.little-spark{color:#b08a73;font-size:11px}.open-caption>span:last-child{font-size:17px;line-height:10px;letter-spacing:0}.opening-date{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:34px;font-family:var(--sans);font-size:8px;letter-spacing:2.1px;color:#8d7374}.date-dot{font-size:13px}.opening.is-opening .envelope{animation:none;transform:rotate(0deg);transition:transform .7s}.opening.is-opening .envelope-flap{transform:rotateX(180deg);filter:brightness(.96);z-index:1}.opening.is-opening .wax-seal{opacity:0;transform:translateY(14px)}.opening.is-opening .letter{transform:translateY(-107px)}.is-opened .envelope-stage{height:0;margin:0;opacity:0;overflow:hidden;transition:height .7s,opacity .5s,margin .7s}.is-opened .open-caption{display:none}.is-opened.opening{min-height:660px}.is-opened .opening-content{padding-bottom:100px}.is-opened .opening-date{margin-top:44px}
.section-nav{position:sticky;top:0;z-index:10;background:#fbf3f0f5;backdrop-filter:blur(15px);border-top:1px solid #dbc1b56e;border-bottom:1px solid #dbc1b56e;display:flex;justify-content:center;gap:30px;padding:24px;font-family:var(--sans);font-size:10px;letter-spacing:.5px}.section-nav>span{color:#b8977d}.section-nav a:hover{color:var(--rose)}.section{padding:110px max(7%,24px);scroll-margin-top:30px}.section h2{font-size:clamp(39px,4.4vw,61px);line-height:1.08;font-weight:400;margin:17px 0 25px;letter-spacing:-1.3px}.section h2 em{color:var(--rose);font-weight:400}.celebration{text-align:center;position:relative}.ornament{display:flex;align-items:center;justify-content:center;gap:15px;color:#b5927f;font-size:30px;margin:27px 0}.ornament span{height:1px;width:65px;background:#d9bdac}.section-copy{font-size:23px;line-height:1.5;margin:21px auto;max-width:660px}.section-copy strong{font-weight:500}.signature{font-family:var(--script);font-size:41px;color:var(--rose);margin:31px 0 60px}.countdown-wrap{max-width:630px;margin:auto;padding-top:28px;border-top:1px solid #d9bdac80}.countdown{display:flex;justify-content:center;gap:28px;margin-top:25px}.countdown div{display:flex;flex-direction:column;min-width:65px}.countdown b{font-size:58px;font-weight:400;line-height:1.1;font-variant-numeric:tabular-nums}.countdown span{font-family:var(--sans);font-size:8px;letter-spacing:2px;margin-top:9px}.countdown i{font-size:34px;font-style:normal;color:#bb9c94;padding-top:6px}.details{background:#f4e7e4;text-align:center}.event-grid{display:grid;grid-template-columns:1fr 1fr;max-width:930px;margin:62px auto 0;border-block:1px solid #d2b1a780}.date-panel,.venue-panel{padding:42px 36px}.date-panel{border-right:1px solid #d2b1a780}.line-icon{font-size:31px;color:#a17e69}.display-date{font-size:110px;line-height:1.1;color:var(--rose);margin:13px 0 22px}.display-date span{display:block;font-family:var(--sans);font-size:9px;letter-spacing:3px;margin-top:5px;color:var(--ink)}.date-panel>p:not(.eyebrow){font-size:25px;margin:12px 0 25px}.text-button{font-family:var(--sans);font-size:10px;border-bottom:1px solid #b88d87;padding:10px 0;letter-spacing:.3px;display:inline-flex;gap:28px;align-items:center}.text-button span{font-size:17px}.venue-panel{display:flex;align-items:center;flex-direction:column;justify-content:center}.venue-panel h3{font-size:40px;font-weight:400;margin:13px 0 4px}.venue-subtitle{font-family:var(--sans);font-size:8px;letter-spacing:2px;margin:0}.venue-rule{width:34px;height:1px;background:#b88d87;margin:22px 0 0}.venue-panel>p:not(.eyebrow):not(.venue-subtitle):not(.small-note){line-height:1.5;font-size:21px;margin:19px 0 9px}.small-note{font-family:var(--sans);font-size:10px;line-height:1.7;color:var(--muted);max-width:330px}.venue-panel .text-button{margin-top:10px}.evening{display:flex;justify-content:center;align-items:center;gap:30px;margin:50px auto 0;max-width:870px}.evening>div{min-width:155px}.evening>div>span{font-style:italic;color:var(--rose);font-size:28px}.evening p{font-size:17px;margin:6px 0}.timeline-line{width:65px;height:1px;background:#cfafa3;position:relative}.timeline-line:after{content:'✧';position:absolute;right:-5px;top:-11px;font-size:16px;background:#f4e7e4;color:#b3947b}.dress{display:grid;grid-template-columns:.65fr 1fr;gap:90px;max-width:1210px;margin:auto;align-items:center}.dress-art{width:255px;max-width:100%;justify-self:center;color:#b9848c;text-align:center;position:relative}.dress-art:before{content:'';position:absolute;inset:-30px -20px 20px;border:1px solid #d9bdac80;border-radius:150px 150px 0 0}.dress-art svg{width:200px;max-width:100%;display:block;margin:auto}.dress-art>span{font-family:var(--script);font-size:27px;display:block;position:relative;background:var(--paper);padding:10px 0}.dress h2{font-size:46px}.dress-copy>h3{font-size:29px;font-weight:500;margin:27px 0 10px}.dress-copy>p:not(.eyebrow){font-size:21px;line-height:1.5}.reserved-color{display:flex;gap:20px;align-items:center;border-top:1px solid #d9bdac80;margin-top:30px;padding-top:25px}.reserved-color p{font-size:18px;line-height:1.5;margin:0}.reserved-color strong{font-weight:600}.pink-swatch{display:block;flex-shrink:0;width:45px;height:45px;background:#efc9d0;box-shadow:0 0 0 5px var(--paper),0 0 0 6px #d9bdac80;border-radius:50%}.rsvp{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start;background:linear-gradient(120deg,#f2e3e0,#f9eeeb);padding-inline:max(calc((100vw - 1060px)/2),6%)}.rsvp-intro{padding:65px 0}.rsvp-intro>p:not(.eyebrow){font-size:21px;line-height:1.6}.rsvp-intro strong{font-weight:500}.rsvp-intro .ornament{justify-content:start}.rsvp-signature{font-family:var(--script);font-size:52px;color:var(--rose)}.rsvp-card{background:#fffaf6;padding:40px;box-shadow:0 14px 55px #936b7410;border:1px solid #e7cfc3}.rsvp-card h3{font-weight:400;font-size:32px;margin:0}.form-subtitle{font-size:19px;margin:7px 0 30px;color:var(--muted)}form>label,#companions-field>label,legend{font-family:var(--sans);font-size:10px;display:block;margin:23px 0 10px;font-weight:600}input:not([type=radio]),select,textarea{width:100%;border:1px solid #d8c4bc;border-radius:0;padding:13px 14px;font-family:var(--sans);font-size:11px;line-height:1.6;background:transparent;color:var(--ink)}input::placeholder,textarea::placeholder{color:#8d7978;opacity:1}textarea{resize:vertical}fieldset{padding:0;border:0;margin:0;display:flex;gap:9px}legend{margin-bottom:11px}.attendance-option{flex:1;position:relative;cursor:pointer}.attendance-option input{position:absolute;left:10px;top:13px;accent-color:var(--rose);width:13px;height:13px}.attendance-option>span{font-family:var(--sans);font-size:10px;display:block;border:1px solid #d8c4bc;padding:14px 9px 14px 32px}.attendance-option input:checked+span{border-color:#b17e84;background:#f7e9e7}.optional{font-weight:400;color:var(--muted)}.primary-button{background:var(--dark-rose);color:#fffaf6;display:flex;align-items:center;justify-content:space-between;font-family:var(--sans);font-size:11px;padding:18px 20px;width:100%;margin-top:26px;transition:background .2s}.primary-button:hover{background:#71424e}.primary-button span{font-size:19px}.demo-note{font-family:var(--sans);font-size:9px;line-height:1.8;color:var(--muted);margin:16px 0 0}.rsvp-success{padding:40px 0;text-align:center}.success-flower{font-size:75px;color:var(--rose);display:block;margin-bottom:30px}.rsvp-success .eyebrow{font-size:8px;letter-spacing:1.5px}.rsvp-success>p:not(.eyebrow):not(.demo-note){font-size:22px;line-height:1.5}.rsvp-success .text-button{margin-top:25px}.rsvp-success:focus{outline:none}footer{text-align:center;padding:80px 25px 35px;position:relative}.footer-name{font-family:var(--script);font-size:80px;color:var(--rose);display:block}footer>p{font-family:var(--sans);font-size:8px;letter-spacing:2px;margin:14px 0}footer>span:not(.footer-name){font-size:18px;font-style:italic}footer .text-button{display:flex;width:fit-content;margin:30px auto}footer small{font-family:var(--sans);font-size:9px;color:var(--muted);display:block}.petals{position:fixed;inset:0;pointer-events:none;z-index:9;overflow:hidden}.petal{position:absolute;top:-10%;width:12px;height:19px;background:linear-gradient(135deg,#e9bdc0a0,#f5d8db50);border-radius:80% 0 75% 15%;animation:fall var(--duration) linear var(--delay) infinite;left:var(--left);opacity:0}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}dialog{color:var(--ink);border:1px solid var(--line);background:#fff9f5;max-width:530px;width:calc(100% - 36px);text-align:center;padding:45px 30px;box-shadow:0 20px 100px #4b2a3b30}dialog::backdrop{background:#503a3e66;backdrop-filter:blur(6px)}dialog h2{font-size:41px;font-weight:400;margin:10px 0 22px}dialog p{font-size:20px;line-height:1.5}.dialog-close{position:absolute;right:12px;top:10px;font-size:30px;width:38px;height:38px}.venue-illustration{height:210px;position:relative;overflow:hidden;background:#f7ebe5;border:1px solid #d5baaa;display:grid;place-items:center}.venue-illustration img{position:absolute;width:220px;left:-60px;bottom:-70px;opacity:.7}.venue-illustration span{font-size:36px;font-style:italic;line-height:1;color:#a17779}.venue-illustration:after{content:'';position:absolute;inset:15px;border:1px solid #d5baaa80;border-radius:140px 140px 0 0}dialog .small-note{font-size:10px;margin:22px auto 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--dark-rose);color:white;padding:14px 22px;font-family:var(--sans);font-size:11px;z-index:30;max-width:calc(100% - 95px);box-shadow:0 10px 30px #624c4e22;text-align:center}
@keyframes sway-left{from{transform:rotate(160deg)}to{transform:rotate(162deg) translate(3px,4px)}}@keyframes sway-right{from{transform:rotate(0deg)}to{transform:rotate(-2deg) translate(3px,-3px)}}@keyframes float{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-12px) rotate(-4deg)}}@keyframes shadow-breathe{0%,100%{transform:scaleX(1);opacity:.09}50%{transform:scaleX(.8);opacity:.055}}@keyframes fall{0%{transform:translate(0,0) rotate(0);opacity:0}12%{opacity:.55}85%{opacity:.35}100%{transform:translate(100px,115vh) rotate(230deg);opacity:0}}
@media(min-width:1600px){.opening-content{padding-block:135px 75px}.envelope-stage{margin-top:48px}.opening-date{margin-top:50px}}
@media(max-width:900px){.botanical-left{left:-210px;top:-95px;width:490px}.botanical-right{right:-190px;bottom:-65px;width:510px}.edge-note{display:none}.masthead{padding-inline:30px}.dress{gap:40px}.dress h2{font-size:40px}.rsvp{gap:35px}.rsvp-card{padding:29px}.section{padding-block:85px}.evening{gap:15px}.evening>div{min-width:140px}.timeline-line{width:25px}}
@media(max-width:600px){body{font-size:18px}.masthead{height:77px;padding:0 24px}.brand{gap:10px}.brand-monogram{font-size:33px;padding-right:12px}.brand>span:last-child{font-size:7px;letter-spacing:1.8px}.masthead nav{gap:0}.nav-details{display:none}.nav-rsvp{font-size:9px}.nav-rsvp span{margin-left:9px}.opening{min-height:850px;min-height:max(810px,100svh);align-items:center}.opening-content{padding:127px 24px 58px}.tiny-flower{font-size:25px;margin-bottom:24px}.opening .eyebrow{font-size:7px;letter-spacing:2.3px}.opening h1{font-size:112px;line-height:1.25;margin-left:-17px}.fifteen{font-size:7px;letter-spacing:3.4px;gap:12px}.fifteen>span{width:27px}.welcome{font-size:19px;line-height:1.45;margin-top:27px;max-width:340px}.welcome em{font-size:18px;display:inline-block;margin-top:5px;max-width:310px}.desktop-break{display:none}.envelope-stage{margin-top:31px;transform:scale(.86);margin-bottom:-12px;height:224px}.open-caption{font-size:7px;letter-spacing:1.3px;gap:8px;margin-top:0}.opening-date{font-size:7px;letter-spacing:1.3px;gap:9px;margin-top:25px}.botanical-left{width:300px;left:-146px;top:-42px;opacity:.85}.botanical-right{width:320px;right:-145px;bottom:-70px;opacity:.9}.fine-arch{width:calc(100% - 62px);top:107px;bottom:35px}.fine-arch:after{inset:6px}.corner{width:15px;height:15px}.corner-tl,.corner-tr{top:90px}.corner-tl,.corner-bl{left:13px}.corner-tr,.corner-br{right:13px}.corner-bl,.corner-br{bottom:15px}.is-opened.opening{min-height:630px}.is-opened .opening-content{padding:130px 24px 80px}.section-nav{gap:11px;padding:20px 10px;font-size:8px;letter-spacing:0}.section-nav>span{font-size:10px}.section{padding:70px 25px}.eyebrow{font-size:8px;letter-spacing:2px}.section h2{font-size:41px;letter-spacing:-.8px}.section-copy{font-size:21px}.signature{font-size:36px;margin-bottom:45px}.countdown{gap:13px}.countdown div{min-width:48px}.countdown b{font-size:43px}.countdown span{font-size:6px;letter-spacing:1.2px}.countdown i{font-size:24px;padding-top:6px}.countdown-wrap>.eyebrow{font-size:7px;letter-spacing:1.5px}.event-grid{grid-template-columns:1fr;margin-top:35px}.date-panel{border-right:0;border-bottom:1px solid #d2b1a780}.date-panel,.venue-panel{padding:30px 15px}.display-date{font-size:90px}.venue-panel h3{font-size:37px}.evening{gap:10px;align-items:start;margin-top:38px}.evening>div{min-width:0;flex:1}.evening>div>span{font-size:24px}.evening p{font-size:15px}.timeline-line{width:15px;flex-shrink:0;margin-top:17px}.dress{grid-template-columns:1fr;gap:28px;text-align:center}.dress-art{width:190px}.dress-art:before{inset:0 -15px 20px}.dress-art svg{width:160px}.dress-art>span{font-size:25px}.dress h2{font-size:36px}.dress-copy>p:not(.eyebrow){font-size:20px}.reserved-color{text-align:left;max-width:340px;margin-inline:auto;gap:18px}.reserved-color p{font-size:17px}.pink-swatch{width:34px;height:34px}.rsvp{grid-template-columns:1fr;gap:28px}.rsvp-intro{padding:0;text-align:center}.rsvp-intro .ornament{justify-content:center}.rsvp-intro>p:not(.eyebrow){font-size:20px}.rsvp-intro h2{font-size:43px}.rsvp-signature{font-size:42px}.rsvp-card{padding:28px 22px}.rsvp-card h3{font-size:29px}.attendance-option>span{font-size:9px;padding-left:29px}footer{padding:60px 25px 35px}.footer-name{font-size:70px}footer>p{font-size:7px;line-height:1.8;letter-spacing:1.3px}footer small{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.petals{display:none}.reveal{opacity:1;transform:none}}
/* Karol: header with its own space, real invitation and short dress code. */
.masthead{position:relative;height:88px;background:#fbf3f0;border-bottom:1px solid #dcc2b54d;gap:25px}.brand{flex-shrink:0}.masthead nav{min-width:0;flex-shrink:0}.brand-monogram{min-width:39px}.opening{min-height:calc(100svh - 88px)}.opening-content{padding-top:65px;padding-bottom:50px}.fine-arch{top:50px;bottom:35px}.corner-tl,.corner-tr{top:25px}.botanical-left{top:-155px;left:-190px}.opening h1{font-size:140px;line-height:1.12;margin-left:-12px}.surname{font-family:var(--sans);font-size:10px;letter-spacing:5px;color:var(--rose);margin:2px 0 23px}.opening .welcome{margin-top:25px}.opening-date{position:relative;z-index:1}.opening.is-opened .opening-content{padding-top:65px}.dress-couple{margin:0;width:300px}.dress-couple:before{inset:-15px -15px 5px}.dress-couple svg{width:285px}.dress-couple figcaption{font-family:var(--sans);font-size:9px;letter-spacing:1px;position:relative;background:var(--paper);padding-top:15px}.dress-copy h2{font-size:63px;line-height:1.04}.dress-dash{font-size:40px}.dress-copy>p:not(.eyebrow){margin-top:15px}.reserved-color strong{font-size:20px}.field-help{font-family:var(--sans);font-size:9px;color:var(--muted);line-height:1.75;margin:9px 0 0}.group-summary{font-family:var(--sans);font-size:10px;color:var(--dark-rose);line-height:1.6;margin:10px 0 0}.required-mark{color:var(--dark-rose)}.form-error{font-family:var(--sans);font-size:11px;line-height:1.7;border-left:2px solid #a75c67;padding:9px 12px;background:#f9eeee;color:#7e3642;margin-top:23px}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.primary-button:disabled{opacity:.6}.response-help{text-align:center}.evening-note{font-size:23px;font-style:italic;margin:42px 0 0;color:var(--rose)}.venue-panel>p:not(.eyebrow):not(.venue-subtitle):not(.small-note){font-size:20px}.is-opened.opening{min-height:580px}
@media(max-width:600px){.masthead{height:78px;padding:0 20px;gap:16px}.masthead .brand-monogram{min-width:31px;padding-right:10px}.masthead .brand>span:last-child{font-size:7px;letter-spacing:1.4px}.nav-rsvp{font-size:9px;white-space:nowrap}.nav-rsvp span{margin-left:6px}.opening{min-height:calc(100svh - 78px)}.opening-content{padding:65px 25px 40px}.opening h1{font-size:105px;line-height:1.15;margin-left:-10px}.surname{font-size:8px;letter-spacing:4px;margin:1px 0 21px}.tiny-flower{margin-bottom:17px}.fine-arch{top:35px;bottom:22px}.botanical-left{top:-120px;left:-155px;width:280px;opacity:.7}.botanical-right{bottom:-135px;right:-164px;width:320px}.corner-tl,.corner-tr{top:17px}.opening .welcome{font-size:19px;margin-top:25px}.opening .welcome em{font-size:18px}.envelope-stage{margin-top:27px;height:215px}.opening-date{font-size:7px;letter-spacing:1.1px;gap:8px;margin-top:24px}.opening.is-opened .opening-content{padding:60px 25px 55px}.is-opened.opening{min-height:570px}.dress-copy h2{font-size:53px}.dress-copy>p:not(.eyebrow){font-size:20px}.reserved-color strong{font-size:18px}.dress-couple{width:245px}.dress-couple svg{width:235px}.dress-couple:before{inset:0 -10px 5px}.section-nav{gap:9px}.section-nav a{font-size:8px}.rsvp-card{padding:27px 20px}.attendance-option>span{font-size:9px}.evening-note{font-size:21px}.venue-panel>p:not(.eyebrow):not(.venue-subtitle):not(.small-note){font-size:19px}}
@media(max-width:359px){.masthead{padding-inline:14px}.brand>span:last-child{display:none}.opening h1{font-size:98px}.opening-date{font-size:6px}.section-nav{gap:6px}.section-nav a{font-size:7px}}
/* Organization area: password-protected list, distinct from the guest invitation. */
.admin-shell{min-height:100svh;background:#fbf4f1}.admin-header{height:90px;border-bottom:1px solid #dcc4b9;padding:0 6%;display:flex;justify-content:space-between;align-items:center;gap:25px}.admin-main{max-width:1100px;margin:auto;padding:65px 30px 30px}.admin-main>h1{font-size:clamp(40px,5vw,62px);line-height:1.1;font-weight:400;margin:8px 0 12px;letter-spacing:-1px}.admin-main>h1 em{color:var(--rose);font-weight:400}.admin-lead{font-size:21px;color:var(--muted);margin:0 0 42px}.admin-login{margin:55px auto 10px;background:#fffaf6;border:1px solid #e1c9bf;padding:40px;max-width:450px;text-align:center;box-shadow:0 15px 50px #88636d0a}.login-flower{font-size:35px;color:var(--rose)}.admin-login h2{font-weight:400;font-size:31px;margin:15px 0 12px}.admin-login>p{font-size:20px;line-height:1.4}.admin-login form{text-align:left;margin-top:25px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--sans);font-size:9px;color:var(--muted);margin-bottom:30px}.admin-toolbar>div{display:flex;gap:25px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-stats>div{border:1px solid #d9bdb2;padding:23px;background:#fff9f4;display:flex;flex-direction:column}.admin-stats strong{font-weight:400;font-size:49px;line-height:1.2;color:var(--rose);font-variant-numeric:tabular-nums}.admin-stats span{font-family:var(--sans);font-size:8px;letter-spacing:1px;margin-top:9px}.admin-list{margin-top:45px}.admin-list-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #d9bdb2;padding-bottom:20px}.admin-list-heading .eyebrow{font-size:8px;margin:0}.admin-list-heading h2{font-size:36px;font-weight:400;margin:8px 0 0}.admin-list-heading button:disabled{opacity:.5;cursor:default}.admin-filters{display:grid;grid-template-columns:1fr 250px;gap:17px;margin:25px 0}.admin-filters label>span{font-family:var(--sans);font-size:10px;display:block;margin-bottom:9px}.admin-filters input,.admin-filters select{background:#fffaf7;height:46px}.admin-result-count{font-family:var(--sans);font-size:9px;color:var(--muted);margin:23px 0 15px}.guest-list{border-top:1px solid #d9bdb2}.guest-row{border-bottom:1px solid #d9bdb2}.guest-row summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:24px 0}.guest-row summary::-webkit-details-marker{display:none}.guest-avatar{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:#f0dedd;color:var(--rose);font-size:27px;flex-shrink:0}.guest-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.guest-name>strong{font-size:24px;font-weight:500;overflow-wrap:anywhere}.guest-name>span{font-family:var(--sans);font-size:10px;color:var(--muted)}.guest-status{font-family:var(--sans);font-size:9px;padding:7px 10px;flex-shrink:0}.guest-status.yes{background:#e7ede1;color:#4f6246}.guest-status.no{background:#eddfde;color:#805758}.guest-total{display:flex;flex-direction:column;align-items:center;width:68px;flex-shrink:0}.guest-total strong{font-size:31px;line-height:1;font-weight:500}.guest-total>span{font-family:var(--sans);font-size:8px;margin-top:4px}.guest-expand{width:16px;text-align:center;color:var(--rose)}.guest-row[open] .guest-expand{transform:rotate(180deg)}.guest-details{padding:8px 28px 30px 61px;display:grid;grid-template-columns:1fr 1fr;gap:25px 35px}.detail-label{font-family:var(--sans);font-size:8px;letter-spacing:1px;display:block;color:var(--muted);margin-bottom:9px}.guest-details p,.guest-details a{font-size:20px;line-height:1.4;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.guest-details a{border-bottom:1px solid #b98a8f;padding-bottom:3px}.guest-message{grid-column:1/-1}.guest-message p{font-style:italic}.admin-empty{padding:65px 20px;text-align:center;border-bottom:1px solid #d9bdb2}.admin-empty>span{font-size:45px;color:var(--rose)}.admin-empty h3{font-size:29px;font-weight:400;margin:15px 0}.admin-empty p{font-size:21px;max-width:420px;margin:0 auto;line-height:1.5}.admin-footer{padding:50px 25px;font-size:18px;font-style:italic;color:var(--muted);text-align:center}
@media(max-width:600px){.admin-header{height:78px;padding-inline:20px}.admin-header .brand>span:last-child{font-size:7px;letter-spacing:1px}.admin-header>.text-button{font-size:8px;white-space:nowrap}.admin-main{padding:40px 20px 20px}.admin-main>h1{font-size:43px}.admin-lead{font-size:19px;margin-bottom:30px}.admin-login{padding:27px 23px;margin-top:35px}.admin-login h2{font-size:29px}.admin-toolbar{align-items:start;flex-direction:column;gap:10px}.admin-toolbar>div{gap:25px}.admin-stats{grid-template-columns:repeat(2,1fr);gap:10px}.admin-stats>div{padding:18px}.admin-stats strong{font-size:40px}.admin-stats span{font-size:7px}.admin-filters{grid-template-columns:1fr;gap:15px}.admin-list-heading h2{font-size:32px}.admin-list-heading .eyebrow{font-size:6px;letter-spacing:1px}.admin-list-heading .text-button{font-size:8px}.guest-row summary{gap:10px;flex-wrap:wrap;padding-block:20px}.guest-avatar{width:34px;height:34px;font-size:23px}.guest-name{min-width:140px}.guest-name strong{font-size:21px}.guest-name>span{font-size:9px}.guest-status{font-size:7px;padding:5px 7px;order:5;margin-left:44px}.guest-total{width:45px}.guest-total strong{font-size:28px}.guest-total span{font-size:7px}.guest-expand{width:10px}.guest-details{padding:8px 12px 25px 44px;grid-template-columns:1fr;gap:22px}.guest-message{grid-column:auto}.guest-details p,.guest-details a{font-size:19px}.admin-result-count{font-size:8px}.admin-empty h3{font-size:26px}.admin-empty p{font-size:19px}}
.opening .eyebrow{margin-bottom:24px}
@media(min-width:601px) and (max-height:820px){.opening-content{padding:28px 25px}.opening .tiny-flower{display:none}.opening .eyebrow{font-size:8px;margin-bottom:25px}.opening h1{font-size:108px;line-height:1.05}.surname{font-size:8px;margin-top:4px;margin-bottom:18px}.fifteen{font-size:8px}.opening .welcome{font-size:18px;line-height:1.4;margin-top:20px}.opening .welcome em{font-size:18px}.envelope-stage{height:170px;margin-top:17px;margin-bottom:0;transform:scale(.8);transform-origin:center top}.open-caption{margin-top:3px;font-size:7px}.opening-date{margin-top:16px}.fine-arch{top:25px;bottom:20px}}
@media(max-width:600px){.opening .eyebrow{margin-bottom:24px}}
@media(max-width:600px){.botanical-left{top:-40px;left:-155px;width:280px;opacity:.75}.botanical-right{bottom:-85px;right:-150px;width:300px;opacity:.75}}
/* Refined attire image, phone picker and small repeated botanical accents. */
.dress-couple{width:270px;display:flex;flex-direction:column;align-items:center;margin:0}.dress-couple:before{inset:-15px -10px 5px}.dress-couple .gala-illustration{display:block;width:220px;max-width:100%;height:auto;position:relative}.dress-couple figcaption{font-size:8px;padding-top:18px;letter-spacing:1.1px}.dress-copy{text-align:center}.dress-copy .eyebrow{text-align:center}.dress-copy h2{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;line-height:1;margin-block:22px}.dress-copy h2>span{font-size:49px;letter-spacing:3px}.dress-copy h2>em{font-size:63px}.dress-copy .reserved-color{justify-content:center;text-align:left;max-width:420px;margin-inline:auto}.venue-pin{width:37px;height:37px;color:var(--rose);margin:0 0 16px;flex-shrink:0}.section{position:relative;isolation:isolate}.section-bouquet{position:absolute;width:190px;height:auto;pointer-events:none;z-index:-1;opacity:.42;contain:paint}.bouquet-left{left:0;bottom:0;transform:rotate(-8deg);transform-origin:bottom left}.bouquet-right{right:0;top:0;transform:rotate(180deg);transform-origin:center}.rsvp .section-bouquet{width:210px;opacity:.28}.phone-input-group{display:grid;grid-template-columns:132px minmax(0,1fr);gap:8px;align-items:stretch}.phone-input-group select{padding:13px 7px;font-family:var(--sans);font-size:11px;width:100%;min-width:0;text-overflow:ellipsis}.phone-input-group input{min-width:0;width:100%}.guest-row summary{display:flex;align-items:center;flex-wrap:nowrap;gap:20px;min-height:76px;padding:15px 0}.guest-row summary:hover{background:#f4e8e444}.guest-name{flex:1;min-width:0}.guest-name>strong{font-size:22px;line-height:1.3}.guest-companions{font-family:var(--sans);font-size:10px;color:var(--muted);white-space:nowrap}.guest-companions strong{font-family:var(--serif);font-size:23px;font-weight:500;color:var(--ink);vertical-align:middle}.guest-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;min-height:40px;padding:9px 13px;border:1px solid #a5bca5;border-radius:4px;background:#edf3e8;color:#356641;font-family:var(--sans);font-size:10px;transition:background .2s}.guest-whatsapp:hover{background:#e0ecd9}.guest-whatsapp svg{width:19px;height:19px;flex-shrink:0}.guest-details{padding-left:18px;padding-top:13px;margin-bottom:12px;border-left:1px solid #d5b9ad}.guest-details .guest-message{grid-column:1/-1}
@media(max-width:600px){.dress-couple{width:235px}.dress-couple .gala-illustration{width:175px}.dress-copy h2>span{font-size:43px;letter-spacing:2.5px}.dress-copy h2>em{font-size:54px}.dress-copy .reserved-color{max-width:310px;gap:17px}.section-bouquet{width:115px;opacity:.29}.rsvp .section-bouquet{width:135px;opacity:.24}.phone-input-group{grid-template-columns:114px minmax(0,1fr);gap:7px}.phone-input-group select{font-size:11px}.guest-row summary{gap:12px;flex-wrap:nowrap;min-height:77px;padding-block:14px}.guest-name{min-width:0;flex:1}.guest-name strong{font-size:20px}.guest-companions strong{font-size:21px}.companions-label{display:none}.guest-whatsapp{min-height:44px;padding:8px 9px;gap:5px;font-size:9px}.guest-whatsapp svg{width:18px;height:18px}.guest-details{padding:10px 10px 20px 13px;gap:20px}.petal:nth-child(n+6){display:none}}
@media(max-width:359px){.phone-input-group{grid-template-columns:100px minmax(0,1fr)}.guest-row summary{gap:9px}.guest-name strong{font-size:18px}.guest-whatsapp{padding:8px;font-size:8px}.guest-whatsapp svg{width:16px;height:16px}}

.section[tabindex="-1"]:focus,.opening[tabindex="-1"]:focus{outline:none}
@media(max-width:600px){input:not([type=radio]),select,textarea{font-size:16px}.phone-input-group select{font-size:16px}.guest-whatsapp{font-size:11px}.guest-whatsapp svg{width:18px;height:18px}}

@media(prefers-reduced-motion:reduce){.envelope-stage{transition:none!important}}
