@font-face{font-family:WeddingBrush;src:url('assets/ceremony-brush.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:WeddingSerif;src:url('assets/wedding-serif.woff') format('woff');font-weight:400 600;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-regular.ttf') format('truetype');font-weight:400 600;font-display:swap}
:root{--red:#a6232d;--red-bright:#bc3036;--red-dark:#751521;--red-ink:#762832;--gold:#d9b477;--gold-light:#f2dbab;--ivory:#f7ecda;--paper:#f6eddd;--muted:#a67c70;--line:#d9b47740;--serif:WeddingSerif,'Songti SC','STSong',serif;--brush:WeddingBrush,'Songti SC','STSong',serif;--latin:Cormorant,'Baskerville',serif;--sans:'PingFang SC','Microsoft YaHei',sans-serif;--ease:cubic-bezier(.22,1,.36,1);--scroll-progress:0;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--paper);color:var(--red-ink);font-family:var(--serif);-webkit-font-smoothing:antialiased}body::before{content:'';position:fixed;inset:0;z-index:45;opacity:.09;pointer-events:none;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='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;border:0;background:none;cursor:pointer}button:disabled{cursor:default;opacity:.35}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}svg{display:block}p,h1,h2,h3,figure{margin:0}h1,h2,h3{font-weight:400}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}::selection{color:var(--ivory);background:var(--red)}[hidden]{display:none!important}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip-link{position:fixed;z-index:200;top:10px;left:10px;transform:translateY(-150%);padding:13px 20px;background:var(--ivory);color:var(--red)}.skip-link:focus{transform:none}.modal-open{overflow:hidden}
.site-header{height:90px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 5.4%;color:var(--gold-light);background:#981d28f5;border-bottom:1px solid var(--line);backdrop-filter:blur(14px);transition:height .4s var(--ease),background .4s}.site-header.scrolled{height:72px;background:#8b1b27f5}.site-header::after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(var(--scroll-progress));transform-origin:left}.brand{display:flex;align-items:center;gap:13px}.brand-seal{font:35px/1 var(--brush);border:1px solid #d9b47788;padding:3px 4px 2px;position:relative}.brand-seal::after{content:'';position:absolute;inset:3px;border:1px solid #d9b47744}.brand>span:last-child{font-size:20px;letter-spacing:4px}.brand small{font:6px var(--sans);display:block;letter-spacing:2.2px;margin-top:8px;opacity:.75}.site-header nav{display:flex;gap:39px}.site-header nav a{font-size:12px;letter-spacing:2px;padding:14px 0;position:relative}.site-header nav a::after{content:'';position:absolute;bottom:5px;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .4s var(--ease)}.site-header nav a:hover::after,.site-header nav a.is-active::after{transform:scaleX(1)}.header-invite{display:flex;align-items:center;gap:20px;letter-spacing:2px;font-size:11px;border-bottom:1px solid #d9b47788;padding:11px 0}.header-invite .icon{width:17px;transform:rotate(-40deg)}
.hero{position:relative;isolation:isolate;min-height:810px;height:calc(100svh - 90px);max-height:1200px;overflow:hidden;background:var(--red);color:var(--gold-light);display:grid;place-items:center;padding:40px 70px 70px}.hero-background{position:absolute;inset:-5% 0;z-index:-3;overflow:hidden}.hero-background img{opacity:.5;transform:translate3d(0,var(--parallax-y,0px),0);object-position:center;filter:saturate(.9) brightness(.9)}.hero-background::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#b3283266 0%,#8a152445 80%)}#ambient-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.hero-frame{position:absolute;inset:24px 34px 28px;border:1px solid #d9b47766;pointer-events:none;z-index:-1}.hero-frame::before{content:'';position:absolute;inset:7px;border:1px solid #d9b47725}.corner{position:absolute;width:95px;height:95px;object-fit:contain}.corner-tl{top:-2px;left:-2px}.corner-tr{top:-2px;right:-2px;transform:rotate(90deg)}.corner-bl{bottom:-2px;left:-2px;transform:rotate(-90deg)}.corner-br{bottom:-2px;right:-2px;transform:rotate(180deg)}.hero-content{text-align:center;position:relative;margin-top:-5px}.hero-eyebrow{display:flex;align-items:center;justify-content:center;gap:18px;font-size:11px;letter-spacing:4px}.hero-eyebrow>span{height:1px;width:40px;background:linear-gradient(90deg,transparent,var(--gold))}.hero-eyebrow>span:last-child{transform:rotate(180deg)}.hero-emblem{position:relative;width:215px;height:215px;margin:29px auto 20px;display:grid;place-items:center}.hero-emblem>span{font:155px/1 var(--brush);padding-top:10px;background:linear-gradient(110deg,#b5884c,#f4dfaa 36%,#d5b16e 53%,#ffedc0 72%,#bf9454);background-size:150% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 2px #59132260)}.emblem-orbit{position:absolute;inset:0;border:1px solid #e4c48a8a;border-radius:50%;transform:rotate(12deg);box-shadow:0 0 0 7px #d9b47708}.emblem-orbit::before,.emblem-orbit::after{content:'';position:absolute;width:5px;height:5px;background:var(--gold-light);transform:rotate(45deg);top:30px;left:28px}.emblem-orbit::after{top:auto;left:auto;bottom:30px;right:28px}.orbit-inner{inset:9px;border-style:dashed;border-width:1px;opacity:.32;transform:rotate(0)}.orbit-inner::before,.orbit-inner::after{display:none}.hero-emblem>b{font-size:8px;font-weight:400;position:absolute;bottom:-4px;letter-spacing:5px;background:var(--red);padding:3px 10px}.hero h1{font:76px/1.25 var(--brush);letter-spacing:13px;padding-left:13px;text-shadow:0 2px 12px #64141c33}.couple{display:flex;align-items:center;justify-content:center;gap:34px;margin:21px 0 15px;font-size:28px;letter-spacing:7px;padding-left:7px}.couple i{font-size:13px;font-style:normal;letter-spacing:0;opacity:.7;position:relative}.couple i::before,.couple i::after{content:'';width:21px;height:1px;background:#d9b47770;position:absolute;top:50%;left:-31px}.couple i::after{left:auto;right:-31px}.hero-description{font-size:12px;letter-spacing:2px;opacity:.85;line-height:2}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;min-height:53px;padding:0 27px;font-size:12px;letter-spacing:2px;position:relative;isolation:isolate;overflow:hidden;transition:box-shadow .4s,translate .35s var(--ease)}.button::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 10%,#fff7 50%,transparent 90%);transform:translateX(-120%) skewX(-18deg);transition:transform .8s var(--ease)}.button:hover::after{transform:translateX(120%) skewX(-18deg)}.button .icon{width:22px;transition:transform .4s var(--ease)}.button:hover .icon{transform:translateX(5px)}.button-gold{background:linear-gradient(110deg,#c9a466,#f1d7a0 45%,#d6b374);color:#81232b;border:1px solid #f1d7a077;box-shadow:0 5px 20px #57121d22}.button-red{background:var(--red);color:var(--ivory);border:1px solid var(--red)}[data-magnetic]{translate:var(--magnetic-x,0px) var(--magnetic-y,0px)}.hero .button{margin-top:26px;min-width:220px}.hero-date{display:flex;align-items:center;justify-content:center;gap:17px;margin-top:24px;font-size:9px;letter-spacing:2px;opacity:.8}.hero-date strong{font-size:12px;font-weight:400;letter-spacing:3px;border-left:1px solid #d9b47766;border-right:1px solid #d9b47766;padding:0 17px}.hero-verse{position:absolute;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-size:17px;letter-spacing:8px;line-height:2.3;opacity:.75}.hero-verse span{display:block;margin-top:36px}.verse-left{left:15%}.verse-right{right:15%}.scroll-hint{position:absolute;left:50%;bottom:44px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;font-size:8px;letter-spacing:3px}.scroll-hint i{height:23px;width:1px;background:#e4c48a99;position:relative;overflow:hidden}.scroll-hint i::after{content:'';position:absolute;inset:-100% 0 0;background:#fff3ce;animation:scroll-line 2.5s ease infinite}.preview-label{position:absolute;bottom:43px;right:59px;font-family:var(--sans);font-size:8px;letter-spacing:.5px;color:#e2bfa499}.section-pad{padding:95px 9% 105px}.section-index{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid #a6232d25;margin-bottom:65px}.section-index>span{font-size:12px;letter-spacing:3px}.section-index small{font:8px var(--sans);letter-spacing:2px;opacity:.6}.eyebrow{font-size:10px;letter-spacing:4px;line-height:1.7}h2{font:54px/1.5 var(--brush);letter-spacing:3px}h2 em{font-style:normal;color:#b04042}.invitation{background:var(--paper);position:relative}.formal-invite{position:relative;max-width:960px;margin:0 auto;padding:52px 100px 40px;border:1px solid #ad7f454d;background:#fcf4e7;box-shadow:0 10px 45px #5d241407}.formal-invite::before{content:'';position:absolute;inset:9px;border:1px solid #ad7f4525;pointer-events:none}.formal-invite::after{content:'';position:absolute;left:-5px;right:-5px;top:38%;height:1px;background:linear-gradient(90deg,#a6232d25,transparent 20%,transparent 80%,#a6232d25);pointer-events:none}.formal-center{text-align:center;position:relative;z-index:1}.square-seal{display:inline-grid;place-items:center;font:34px/1 var(--brush);width:45px;height:45px;border:1px solid #a6232d99;color:var(--red);margin-bottom:22px}.formal-invite .eyebrow{font-size:9px;letter-spacing:5px;color:#ac795e}.formal-invite h2{font-size:58px;line-height:1.45;letter-spacing:7px;margin-top:19px;padding-left:7px}.formal-invite h2 em{color:var(--red)}.formal-names{display:flex;align-items:center;justify-content:center;gap:45px;margin:32px 0 27px}.formal-names>div{display:flex;flex-direction:column;align-items:center;gap:13px}.formal-names small{font-size:8px;letter-spacing:2px;color:#a17c66}.formal-names strong{font-size:27px;letter-spacing:8px;font-weight:400;padding-left:8px}.name-knot{font:21px var(--brush);color:#b27952;margin-top:17px;opacity:.6}.formal-copy{font-size:13px;line-height:2.7;letter-spacing:2px;color:#94665b}.formal-copy strong{font-weight:400;color:var(--red-ink)}.formal-ending{font-size:11px;letter-spacing:4px;margin-top:27px}.cloud-divider{width:55%;height:auto;margin:20px auto 13px;opacity:.7}.formal-small{font-size:9px;letter-spacing:2px;color:#ac8c73}.invite-side{position:absolute;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;letter-spacing:6px;font-size:10px;color:#a27858;line-height:2}.invite-side.left{left:47px}.invite-side.right{right:47px}.story{background:#eee2cf;display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center;position:relative;overflow:hidden;padding-top:88px;padding-bottom:85px}.story-ornament{position:absolute;left:-55px;bottom:-75px;width:285px;height:370px;opacity:.3;transform:rotate(-25deg)}.story-ornament img{object-fit:contain}.story-text{position:relative;padding-left:30px}.story-text h2{margin-top:23px;font-size:52px}.story-text>p:not(.eyebrow){font-size:13px;letter-spacing:1.5px;line-height:2.3;color:#93695d;margin-top:21px}.story-text>.eyebrow{font-size:9px;letter-spacing:3px}.story-signature{display:flex;align-items:center;gap:22px;margin-top:33px;font-size:21px;letter-spacing:4px}.story-signature i{font:20px var(--latin);color:#ac7b60}.story-photo{position:relative;padding:0 15px 20px 0;transform:rotate(3deg)}.photo-border{padding:10px;background:#fbf1df;border:1px solid #c39c6e77;height:405px;box-shadow:9px 11px 0 #a6232d0a}.photo-border img{object-position:53% center}.story-photo>span{display:block;margin-top:18px;font-size:11px;letter-spacing:3px;text-align:center;color:#a87b60}
.moments{background:var(--red-dark);color:var(--gold-light);position:relative;overflow:hidden}.moments::before{content:'囍';position:absolute;right:-90px;top:18%;font:550px var(--brush);color:#f4d8ab05;pointer-events:none}.moments .section-index{border-color:var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:47px;position:relative}.section-heading h2{font-size:48px;margin-top:17px}.section-heading h2 em{color:#e3bc7f}.section-heading>.eyebrow{font-size:9px}.section-heading>p{font-size:11px;line-height:2;letter-spacing:1.5px;opacity:.8;margin-bottom:12px}.section-heading>p small{display:block;font-size:8px;letter-spacing:.4px;margin-top:9px;opacity:.7}.gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;position:relative;align-items:start}.gallery-item{text-align:left;padding:0;width:100%;color:var(--gold-light)}.gallery-img{display:block;overflow:hidden;border:1px solid #d9b47780;padding:7px;position:relative;background:#9b2934}.gallery-img img{transition:transform 1.5s var(--ease),filter 1s;filter:saturate(.84)}.gallery-item:hover img{transform:scale(1.05);filter:saturate(1)}.gallery-tall .gallery-img{height:440px}.gallery-mid{margin-top:80px}.gallery-mid .gallery-img{height:335px}.gallery-mid img{object-position:47% center}.gallery-low{margin-top:30px}.gallery-low .gallery-img{height:405px}.gallery-low img{object-position:21% center}.gallery-open{position:absolute;top:50%;left:50%;transform:translate(-50%,-40%);white-space:nowrap;font-size:10px;letter-spacing:2px;border:1px solid #ecd0a577;background:#79172666;backdrop-filter:blur(8px);padding:13px 19px;opacity:0;transition:opacity .4s,transform .4s var(--ease)}.gallery-item:hover .gallery-open,.gallery-item:focus-visible .gallery-open{opacity:1;transform:translate(-50%,-50%)}.gallery-caption{display:flex;justify-content:space-between;align-items:center;padding:19px 0 0;font-size:10px;letter-spacing:2px}.gallery-caption>span>i{font-style:normal;font-size:14px;letter-spacing:3px;margin-left:12px}.gallery-caption>span:last-child{font-size:21px;font-family:var(--latin)}.moments-cloud{width:47%;height:auto;margin:55px auto -5px;opacity:.55}
.wedding{background:var(--paper)}.wedding-grid{display:grid;grid-template-columns:1fr 1fr;gap:15%;align-items:center}.wedding-intro>.eyebrow{font-size:9px;letter-spacing:3px}.wedding h2{font-size:55px;margin-top:20px;line-height:1.55}.wedding-description{font-size:13px;line-height:2.3;letter-spacing:2px;color:#9c7163;margin-top:25px}.countdown{display:flex;align-items:center;gap:18px;margin:34px 0 20px}.countdown>div{text-align:center;min-width:42px}.countdown strong{display:block;font:52px/1 var(--latin);font-variant-numeric:tabular-nums}.countdown>div:first-child strong{min-width:66px}.countdown span{display:block;font-size:9px;color:#ac8773;margin-top:10px}.countdown>i{font:22px var(--latin);color:#b89475;margin-top:-17px}.text-button{display:inline-flex;align-items:center;gap:26px;font-size:11px;letter-spacing:1.5px;border-bottom:1px solid #aa6d5880;padding:12px 0 9px;transition:gap .3s var(--ease)}.text-button:hover{gap:34px}.text-button .icon{height:18px;width:18px}.demo-note{display:block;font-size:8px;color:#ae8c77;letter-spacing:.6px;margin-top:14px}.date-card{background:#a3242e;color:var(--gold-light);padding:28px 30px;position:relative;box-shadow:10px 10px 0 #e4d4ba}.date-card::after{content:'';position:absolute;inset:9px;border:1px solid #d9b47766;pointer-events:none}.date-card-top{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.7px;border-bottom:1px solid var(--line);padding-bottom:17px}.date-card-top>span:nth-child(2){font-size:13px;letter-spacing:2px}.date-number{display:flex;align-items:center;justify-content:center;gap:22px;margin:14px 0 18px}.date-number>span{font:110px/.9 var(--latin);letter-spacing:-4px}.date-number>div{display:flex;flex-direction:column;gap:9px;margin-top:9px}.date-number strong{font-weight:400;font-size:16px;letter-spacing:3px}.date-number small{font:7px var(--sans);letter-spacing:1.7px}.date-number i{font-size:9px;font-style:normal;letter-spacing:1px;color:#e8bd8a}.calendar{padding:0 8px}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:0}.calendar-week{font-size:9px;letter-spacing:1px;padding-bottom:12px;border-bottom:1px solid var(--line)}.calendar-days{margin-top:8px;row-gap:3px;font:16px var(--latin)}.calendar-days>span{height:32px;position:relative;display:grid;place-items:center}.chosen-date{color:#7d1b27;isolation:isolate;font-weight:600}.chosen-date::before{content:'';position:absolute;inset:0;left:50%;transform:translateX(-50%);width:31px;height:31px;border-radius:50%;background:var(--gold-light);z-index:-1;box-shadow:0 0 0 3px #d9b47725}.chosen-date i{position:absolute;font:8px var(--brush);bottom:-5px;right:0;color:var(--gold-light);background:var(--red);border-radius:50%;width:13px;height:13px;padding:2px}.date-card-foot{display:block;text-align:center;font-size:8px;letter-spacing:2px;color:#e3bc8d;border-top:1px solid var(--line);margin-top:13px;padding-top:17px}.banquet{display:grid;grid-template-columns:1fr 1fr;gap:9%;border-top:1px solid #a6232d25;margin-top:72px;padding-top:42px}.venue{display:flex;gap:23px;align-items:flex-start}.venue-seal{font:35px var(--brush);color:var(--red);border:1px solid #ac755155;padding:6px 8px;line-height:1.2}.venue .eyebrow{font-size:8px;letter-spacing:2px}.venue h3{font-size:23px;letter-spacing:3px;margin:12px 0}.venue p:not(.eyebrow){font-size:10px;letter-spacing:.6px;color:#ab806c;line-height:2}.venue .text-button{font-size:10px;padding-top:14px;gap:18px}.schedule{display:flex;list-style:none;padding:0;gap:0;margin:0;align-items:flex-start}.schedule>li{flex:1;position:relative;padding-top:24px}.schedule>li::before{content:'';position:absolute;top:5px;width:100%;height:1px;left:0;background:#b3836355}.schedule>li:last-child::before{width:50%}.schedule-dot{position:absolute;left:0;top:1px;width:8px;height:8px;border:1px solid #b78756;transform:rotate(45deg);background:var(--paper)}.schedule time{display:block;font:29px var(--latin);margin-bottom:8px}.schedule strong{font-size:12px;letter-spacing:2px;font-weight:400;display:block}.schedule small{font-size:8px;color:#b08970;display:block;letter-spacing:.6px;margin-top:8px}.wedding-demo{text-align:right;font-size:8px;letter-spacing:.7px;color:#ba9b82;margin-top:32px}
.rsvp{background:#ecdecb;position:relative;overflow:hidden}.rsvp-layout{display:grid;grid-template-columns:1fr 1fr;gap:15%;align-items:center}.rsvp-copy{position:relative}.rsvp-copy>.eyebrow{font-size:9px;letter-spacing:3px}.rsvp h2{font-size:55px;line-height:1.6;margin-top:20px}.rsvp-copy>p:not(.eyebrow){font-size:12px;line-height:2.3;letter-spacing:1px;color:#9f7162;margin-top:25px;position:relative}.rsvp-copy>p.rsvp-salute{font-size:19px;letter-spacing:4px;margin-top:30px;color:var(--red)}.rsvp-character{position:absolute;top:-90px;right:0;font:240px/1 var(--brush);color:#a6232d05;pointer-events:none}.rsvp-peony{position:absolute;width:160px;height:auto;right:-15px;bottom:-115px;opacity:.5;transform:rotate(15deg);pointer-events:none}.rsvp-panel{background:#fbf3e6;padding:35px 38px;position:relative;border:1px solid #a9744a55;box-shadow:10px 10px 0 #dbc5a626;min-height:580px}.rsvp-panel::before{content:'';position:absolute;inset:7px;border:1px solid #a9744a20;pointer-events:none}.form-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid #a6232d25;margin-bottom:25px}.form-heading h3{font-size:20px;letter-spacing:3px}.form-heading>span{font:28px var(--brush);color:#b05e4d;line-height:1}form label,fieldset legend{font-size:11px;letter-spacing:1px;display:block;margin-bottom:10px}form label>span,fieldset legend>span{color:#b77662}form label small{font-size:9px;letter-spacing:0;color:#b18d78;margin-left:7px}input[type=text],textarea{border:0;border-bottom:1px solid #c8aa8b88;background:transparent;width:100%;border-radius:0;padding:4px 0 12px;font-size:13px;line-height:1.8;color:var(--red-ink);resize:vertical;transition:border-color .3s}input::placeholder,textarea::placeholder{font-size:11px;letter-spacing:1px;color:#b69b82}input[type=text]:focus,textarea:focus{outline:none;border-color:var(--red)}fieldset{padding:0;border:0;margin:24px 0 0;min-width:0}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:3px}.attendance-options label{position:relative;margin:0}.attendance-options input{position:absolute;width:1px;height:1px;opacity:0}.attendance-options label>span{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #c3a07f77;padding:13px 8px;color:#ac8a73;transition:all .3s}.attendance-options input:checked+span{border-color:var(--red);background:#a6232d07;color:var(--red)}.attendance-options .icon{width:14px;height:14px;display:none}.attendance-options input:checked+span .icon{display:block}.attendance-options input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}.guest-count-row{display:flex;align-items:center;justify-content:space-between;margin:24px 0}.guest-count-row label{margin:0}.stepper{display:flex;border:1px solid #c3a07f77}.stepper button{width:32px;height:32px;font-size:18px;transition:background .2s}.stepper button:hover{background:#a6232d08}.stepper input{width:35px;height:32px;border:0;background:none;text-align:center;font:18px var(--latin);padding:0;color:var(--red-ink);appearance:textfield;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper.is-disabled{opacity:.5}.rsvp-panel textarea{min-height:63px}.rsvp-panel .button{width:100%;margin-top:24px}.form-note{font-size:8px;text-align:center;letter-spacing:.4px;color:#b1967e;line-height:1.8;margin-top:16px}.rsvp-success{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:505px;text-align:center}.success-seal{font:55px var(--brush);color:var(--red);border:1px solid #a6232d66;padding:8px 12px;margin-bottom:30px}.rsvp-success h3{font:25px/1.7 var(--brush);letter-spacing:2px;margin:20px 0}.rsvp-success>p:not(.eyebrow){font-size:12px;line-height:2.2;letter-spacing:.6px;color:#a47a65}.rsvp-success .success-demo{font-size:9px!important;color:#b89d85!important;margin:20px 0 26px}.site-footer{background:var(--red);color:var(--gold-light);text-align:center;position:relative;padding:55px 7% 23px;border-top:1px solid #c99f6680}.footer-seal{font:62px/1 var(--brush);display:block;margin-bottom:23px}.footer-main{font-size:20px;letter-spacing:5px}.footer-names{font-size:22px;letter-spacing:5px;margin-top:27px}.footer-names i{font-size:10px;font-style:normal;opacity:.65;margin:0 10px;vertical-align:middle;letter-spacing:0}.footer-date{display:block;font-size:9px;letter-spacing:3px;margin-top:15px;opacity:.7}.back-top{display:flex;align-items:center;justify-content:center;gap:12px;font-size:9px;letter-spacing:2px;margin:30px auto 40px}.back-top .icon{width:17px;height:17px;transform:rotate(-90deg)}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;justify-content:space-between;font:8px var(--sans);letter-spacing:.7px;opacity:.6}.music-toggle{position:fixed;right:23px;bottom:22px;z-index:55;display:flex;align-items:center;gap:10px;padding:12px 16px;background:#8d1c28ef;color:var(--gold-light);border:1px solid #d9b47780;border-radius:30px;box-shadow:0 4px 20px #56141c20;font-size:9px;letter-spacing:1px;backdrop-filter:blur(12px)}.music-bars{display:flex;align-items:center;gap:3px;height:17px}.music-bars i{width:1.5px;height:5px;background:var(--gold-light)}.music-bars i:nth-child(2){height:12px}.music-bars i:nth-child(3){height:16px}.music-bars i:nth-child(4){height:8px}.music-toggle[aria-pressed=true] .music-bars i{animation:music-bar 1s ease-in-out infinite alternate}.music-toggle[aria-pressed=true] .music-bars i:nth-child(2){animation-delay:-.6s}.music-toggle[aria-pressed=true] .music-bars i:nth-child(3){animation-delay:-.3s}.music-toggle[aria-pressed=true] .music-bars i:nth-child(4){animation-delay:-.8s}.toast{position:fixed;bottom:85px;left:50%;z-index:220;transform:translate(-50%,20px);max-width:calc(100% - 40px);padding:14px 24px;color:var(--ivory);background:#791b28f5;border:1px solid #d9b47755;box-shadow:0 10px 30px #4a0e1a20;font-size:12px;letter-spacing:1px;line-height:1.8;text-align:center;pointer-events:none;opacity:0;transition:all .35s var(--ease)}.toast.is-visible{opacity:1;transform:translate(-50%,0)}#celebration-canvas{position:fixed;inset:0;z-index:190;width:100%;height:100%;pointer-events:none}
/* The opening is a ceremonial double gate, with a real letter behind it. */
dialog{padding:0;border:0;color:var(--red-ink)}dialog::backdrop{background:#3e0913c7;backdrop-filter:blur(10px)}.ceremony-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;inset:0;margin:0;background:#761721 url('assets/crimson-peony.webp') center/cover no-repeat;overflow:hidden;isolation:isolate}.ceremony-dialog::before{content:'';position:absolute;inset:0;background:#6a0d1cb3;z-index:-1}.ceremony-stage{position:relative;width:100%;height:100%;display:grid;place-items:center;perspective:1800px;overflow:hidden}.ceremony-skip{position:absolute;z-index:20;top:30px;right:35px;display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:2px;color:var(--gold-light);padding:10px 0;border-bottom:1px solid #d9b47755}.ceremony-skip .icon{height:15px;width:15px}.ceremony-door{position:absolute;top:0;bottom:0;width:50%;z-index:4;transform-style:preserve-3d;backface-visibility:hidden;transition:transform 1.6s cubic-bezier(.65,0,.23,1),filter 1.4s;overflow:hidden}.ceremony-door::before{content:'';position:absolute;inset:0;pointer-events:none;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='.62' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.45' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.22;mix-blend-mode:soft-light}.ceremony-door.left{left:0;transform-origin:0 50%;background:linear-gradient(100deg,#8d1c29,#ad2b34 62%,#a6232d 96%,#71121f);border-right:1px solid #cf9d6070;box-shadow:inset -12px 0 28px #4d0a1b17}.ceremony-door.right{right:0;transform-origin:100% 50%;background:linear-gradient(-100deg,#8d1c29,#ad2b34 62%,#a6232d 96%,#71121f);border-left:1px solid #cf9d6070;box-shadow:inset 12px 0 28px #4d0a1b17}.door-border{position:absolute;top:26px;bottom:26px;border-top:1px solid #d9b47788;border-bottom:1px solid #d9b47788}.left .door-border{left:27px;right:0;border-left:1px solid #d9b47788}.right .door-border{left:0;right:27px;border-right:1px solid #d9b47788}.door-border::after{content:'';position:absolute;inset:7px;border-top:1px solid #d9b47730;border-bottom:1px solid #d9b47730}.left .door-border::after{border-left:1px solid #d9b47730;border-right:0;right:0}.right .door-border::after{border-right:1px solid #d9b47730;border-left:0;left:0}.door-corner{position:absolute;width:124px;height:124px;opacity:.9;pointer-events:none}.left .door-corner-top{top:26px;left:27px}.left .door-corner-bottom{left:27px;bottom:26px;transform:rotate(-90deg)}.right .door-corner-top{top:26px;right:27px;transform:rotate(90deg)}.right .door-corner-bottom{right:27px;bottom:26px;transform:rotate(180deg)}.door-peony{position:absolute;width:290px;height:auto;opacity:.67;pointer-events:none}.left .door-peony{left:4%;bottom:0;transform:rotate(8deg)}.right .door-peony{right:4%;top:0;transform:rotate(188deg)}.door-verse{position:absolute;writing-mode:vertical-rl;font-size:21px;letter-spacing:9px;line-height:2.4;top:46%;transform:translateY(-50%);color:var(--gold-light);opacity:.9}.left .door-verse{left:32%}.right .door-verse{right:32%}.door-bottom{position:absolute;bottom:55px;font-size:9px;letter-spacing:5px;color:#e0b77e99}.left .door-bottom{right:45px}.right .door-bottom{left:45px}.ceremony-heading{position:absolute;z-index:7;top:12.5%;left:0;right:0;color:var(--gold-light);text-align:center;pointer-events:none;transition:opacity .5s,transform .7s var(--ease)}.ceremony-heading>p{font-size:10px;letter-spacing:4px;color:#e1bd8a;margin-bottom:23px}.ceremony-heading h2{font:72px/1.2 var(--brush);letter-spacing:10px;padding-left:10px;background:linear-gradient(100deg,#cfaa70,#f6e1b2 50%,#c99c5d);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 2px 1px #71152150)}.ceremony-heading>span{font:8px var(--sans);letter-spacing:4px;display:block;margin-top:20px;color:#e0ba8299}.gold-clasp{position:absolute;z-index:10;left:50%;top:51.5%;transform:translate(-50%,-50%);width:136px;height:136px;border-radius:50%;color:#8d1d29;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#f5dfa7,#d6ad6c 62%,#b78a4d);box-shadow:0 6px 15px #500e1a55,inset 0 0 0 1px #f6dda9,inset 0 0 0 5px #c19a5e,inset 0 0 0 6px #e8cb93;transition:opacity .35s,transform .6s var(--ease);padding-bottom:3px}.gold-clasp::before{content:'';position:absolute;inset:11px;border:1px solid #9d713d66;border-radius:50%}.gold-clasp::after{content:'';position:absolute;inset:-10px;border:1px solid #e7c88a66;border-radius:50%;animation:clasp-breathe 3s ease-in-out infinite;pointer-events:none}.clasp-ring{position:absolute;inset:-20px;border:1px solid #d9b47722;border-radius:50%;pointer-events:none}.clasp-character{font:66px/.95 var(--brush);padding-top:8px;text-shadow:0 1px 1px #fff4c088}.clasp-tag{font-size:7px;letter-spacing:2px;margin-top:13px;padding-left:2px}.gold-clasp:hover{transform:translate(-50%,-50%) scale(1.045)}.gold-clasp:focus-visible{outline:1px solid #f4dbab;outline-offset:15px}.ceremony-couple{position:absolute;z-index:7;bottom:20%;left:0;right:0;text-align:center;color:var(--gold-light);pointer-events:none;transition:opacity .5s,transform .7s var(--ease)}.ceremony-couple p{font-size:30px;letter-spacing:7px;padding-left:7px}.ceremony-couple i{font-size:12px;letter-spacing:0;font-style:normal;vertical-align:middle;margin:0 16px;opacity:.7}.ceremony-couple>span{display:block;font-size:10px;letter-spacing:4px;margin-top:19px;color:#d9b477cc}.ceremony-hint{position:absolute;z-index:7;left:0;right:0;bottom:10%;display:flex;align-items:center;justify-content:center;gap:16px;font-size:11px;letter-spacing:3px;color:#e2bf8a;pointer-events:none;transition:opacity .4s}.ceremony-hint>span{width:35px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.ceremony-hint>span:last-child{transform:rotate(180deg)}.ceremony-sample{position:absolute;z-index:7;left:0;right:0;bottom:43px;text-align:center;font:8px var(--sans);letter-spacing:1px;color:#dbb08877;pointer-events:none;transition:opacity .4s}.ceremony-letter{position:relative;z-index:2;width:470px;max-width:calc(100vw - 50px);height:min(680px,calc(100dvh - 76px));padding:30px 35px;text-align:center;background:#faf0de;box-shadow:0 20px 80px #3b061d66;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateY(25px) scale(.93);transition:opacity .9s .35s,transform 1.3s .35s var(--ease);overflow:auto;pointer-events:none}.inner-paper-border{position:absolute;inset:10px;border:1px solid #b18a4b66;pointer-events:none}.inner-paper-border::after{content:'';position:absolute;inset:5px;border:1px solid #b18a4b22}.inner-seal{font:40px/1 var(--brush);color:var(--red);margin-bottom:13px}.ceremony-letter>.eyebrow{font-size:8px;letter-spacing:3px;color:#a67d5b}.ceremony-letter h2{font:47px/1.35 var(--brush);color:var(--red);letter-spacing:6px;margin:17px 0 18px;padding-left:6px}.inner-names{display:flex;align-items:center;gap:25px;font-size:24px;letter-spacing:5px;padding-left:5px}.inner-names i{font-size:10px;font-style:normal;letter-spacing:0;color:#b18a65}.inner-divider{width:42px;height:1px;background:#bc986677;position:relative;margin:21px auto}.inner-divider::after{content:'';position:absolute;left:50%;top:0;width:5px;height:5px;transform:translate(-50%,-50%) rotate(45deg);background:#c09a64}.inner-date{font-size:11px;letter-spacing:2px;color:#9b7054}.inner-message{font-size:11px;line-height:2;letter-spacing:1px;color:#a27b65;margin-top:15px}.ceremony-letter .button{min-height:47px;font-size:11px;margin-top:22px;padding:0 23px;gap:30px}.replay-letter{font-size:9px;letter-spacing:1px;color:#aa8a6b;padding:9px 5px 5px;margin-top:7px;border-bottom:1px solid #bc986633}.ceremony-letter>small{font:7px var(--sans);letter-spacing:.6px;color:#bba58c;margin-top:14px}.ceremony-letter:focus{outline:none}.is-open .ceremony-door.left{transform:rotateY(-104deg);filter:brightness(.8)}.is-open .ceremony-door.right{transform:rotateY(104deg);filter:brightness(.8)}.is-open .gold-clasp{opacity:0;transform:translate(-50%,-50%) scale(.65);pointer-events:none}.is-open .ceremony-heading{opacity:0;transform:translateY(-15px)}.is-open .ceremony-couple{opacity:0;transform:translateY(15px)}.is-open .ceremony-hint,.is-open .ceremony-sample{opacity:0}.is-open .ceremony-letter{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.lightbox-dialog{width:calc(100% - 70px);height:calc(100dvh - 50px);max-width:1400px;max-height:none;background:#4e101bef;color:var(--gold-light);overflow:hidden}.dialog-close{position:absolute;z-index:10;top:17px;right:17px;width:36px;height:36px;border:1px solid #d9b47766;border-radius:50%;display:grid;place-items:center;background:#4e101b44;transition:transform .35s}.dialog-close:hover{transform:rotate(90deg)}.dialog-close .icon{height:17px;width:17px}.lightbox-dialog figure{height:100%;width:100%;padding:50px 70px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.lightbox-dialog figure img{object-fit:contain;width:100%;flex:1;min-height:0}.lightbox-dialog figcaption{font-size:12px;letter-spacing:2px}.lightbox-nav{position:absolute;top:50%;z-index:4;width:45px;height:45px;border:1px solid #d9b47766;border-radius:50%;font-size:22px;background:#4e101b66}.lightbox-prev{left:13px}.lightbox-next{right:13px}.js-ready [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}.js-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}.js-ready .story-photo.is-visible{transform:rotate(3deg)}
.is-open .ceremony-skip{color:var(--red-ink);border-color:#a6232d44}
@keyframes scroll-line{0%{transform:translateY(-100%)}80%,100%{transform:translateY(200%)}}@keyframes music-bar{from{height:4px}to{height:17px}}@keyframes clasp-breathe{0%,100%{opacity:.45;transform:scale(.98)}50%{opacity:1;transform:scale(1.03)}}
@media(min-width:1600px){.section-pad{padding-left:15%;padding-right:15%}.hero-verse.verse-left{left:22%}.hero-verse.verse-right{right:22%}}
@media(max-width:1100px){.site-header nav{gap:25px}.site-header{padding-left:4%;padding-right:4%}.section-pad{padding-left:7%;padding-right:7%}.hero-verse.verse-left{left:12%}.hero-verse.verse-right{right:12%}.story{gap:8%}.story-text{padding-left:12px}.wedding-grid,.rsvp-layout{gap:9%}.banquet{gap:5%}.gallery{gap:24px}.gallery-tall .gallery-img{height:390px}.gallery-mid .gallery-img{height:300px}.gallery-low .gallery-img{height:355px}.section-heading h2{font-size:43px}.section-heading>p{font-size:9px;letter-spacing:.5px}.rsvp-panel{padding:32px 29px}.formal-invite{padding-left:80px;padding-right:80px}.left .door-verse{left:27%}.right .door-verse{right:27%}.door-peony{width:250px}.left .door-peony{left:-5%}.right .door-peony{right:-5%}}
@media(max-width:800px){html{scroll-padding-top:78px}.site-header{height:76px;padding:0 6%}.site-header.scrolled{height:66px}.site-header nav{display:none}.brand>span:last-child{font-size:17px;letter-spacing:3px}.brand-seal{font-size:29px;padding:3px}.brand{gap:10px}.brand small{font-size:5px;letter-spacing:1.5px;margin-top:7px}.header-invite{font-size:10px;gap:13px;letter-spacing:1px}.hero{height:calc(100svh - 76px);min-height:770px;padding:45px 60px 90px}.hero h1{font-size:67px;letter-spacing:10px;padding-left:10px}.hero-emblem{width:195px;height:195px;margin-top:29px;margin-bottom:23px}.hero-emblem>span{font-size:140px}.hero-verse{font-size:14px;letter-spacing:7px}.hero-verse.verse-left{left:11%}.hero-verse.verse-right{right:11%}.hero-eyebrow{font-size:9px;letter-spacing:3px;gap:12px}.hero-eyebrow>span{width:25px}.hero-description{font-size:11px;letter-spacing:1.3px}.hero .button{min-height:50px;min-width:210px;margin-top:25px}.hero-date{font-size:8px;letter-spacing:1px;gap:13px}.hero-date strong{font-size:11px;letter-spacing:2px;padding:0 13px}.hero-frame{inset:20px 23px 25px}.corner{height:76px;width:76px}.preview-label{right:42px;font-size:6px;bottom:39px}.scroll-hint{font-size:7px;bottom:36px;gap:10px}.section-pad{padding:70px 7% 75px}.section-index{margin-bottom:45px;padding-bottom:18px}.section-index>span{font-size:10px;letter-spacing:2px}.section-index small{font-size:6px;letter-spacing:1.5px}.formal-invite{padding:40px 70px 35px}.formal-invite h2{font-size:49px;letter-spacing:5px}.invite-side{font-size:8px;letter-spacing:4px}.invite-side.left{left:30px}.invite-side.right{right:30px}.formal-copy{font-size:12px;letter-spacing:1px}.formal-names{gap:34px;margin:28px 0 25px}.formal-names strong{font-size:24px;letter-spacing:6px;padding-left:6px}.formal-ending{font-size:9px;letter-spacing:2px}.story{grid-template-columns:1fr 1fr;gap:8%;padding:65px 7%}.story-text{padding-left:0}.story-text h2{font-size:38px}.story-text>p:not(.eyebrow){font-size:10px;letter-spacing:.6px}.story-text>.eyebrow{font-size:7px;letter-spacing:2px}.story-signature{font-size:18px;letter-spacing:3px;margin-top:26px;gap:17px}.story-photo{padding-right:0}.photo-border{height:335px;padding:8px}.story-photo>span{font-size:9px;letter-spacing:2px}.story-ornament{width:230px;height:300px;left:-60px}.section-heading{display:block;margin-bottom:35px}.section-heading h2{font-size:40px;margin-top:14px}.section-heading>p{margin-top:17px;font-size:10px;letter-spacing:1px}.section-heading>p small{font-size:7px;margin-top:7px}.section-heading .eyebrow{font-size:8px;letter-spacing:2px}.gallery{gap:18px}.gallery-tall .gallery-img{height:300px}.gallery-mid{margin-top:50px}.gallery-mid .gallery-img{height:235px}.gallery-low{margin-top:23px}.gallery-low .gallery-img{height:275px}.gallery-caption{font-size:8px;letter-spacing:1px}.gallery-caption>span>i{font-size:11px;letter-spacing:2px;margin-left:8px}.gallery-caption>span:last-child{font-size:18px}.moments-cloud{width:60%;margin-top:42px}.wedding-grid{gap:8%;grid-template-columns:44% 48%}.wedding h2{font-size:40px;letter-spacing:2px;line-height:1.6}.wedding-intro>.eyebrow{font-size:7px;letter-spacing:2px}.wedding-description{font-size:11px;letter-spacing:1px;margin-top:20px}.countdown{gap:10px;margin-top:25px}.countdown strong{font-size:39px}.countdown>div{min-width:31px}.countdown>div:first-child strong{min-width:48px}.countdown span{font-size:7px}.countdown>i{font-size:17px}.text-button{font-size:10px;letter-spacing:1px;gap:20px}.demo-note{font-size:7px}.date-card{padding:25px 20px}.date-card-top{font-size:6px;letter-spacing:1px}.date-card-top>span:nth-child(2){font-size:10px;letter-spacing:1px}.date-number{gap:17px;margin:18px 0}.date-number>span{font-size:85px}.date-number strong{font-size:13px;letter-spacing:2px}.date-number small{font-size:6px;letter-spacing:1px}.date-number i{font-size:7px}.calendar{padding:0}.calendar-week{font-size:8px}.calendar-days{font-size:14px;row-gap:1px}.calendar-days>span{height:28px}.chosen-date::before{width:28px;height:28px}.chosen-date i{right:-4px;font-size:7px;bottom:-5px;width:12px;height:12px}.date-card-foot{font-size:7px;letter-spacing:1px}.banquet{grid-template-columns:1fr;gap:35px;margin-top:55px;padding-top:35px}.venue{gap:20px}.venue h3{font-size:21px}.venue p:not(.eyebrow){font-size:10px}.schedule{padding-left:5px}.schedule time{font-size:27px}.schedule strong{font-size:12px}.schedule small{font-size:8px}.wedding-demo{font-size:7px}.rsvp-layout{grid-template-columns:42% 52%;gap:6%}.rsvp h2{font-size:39px;letter-spacing:2px}.rsvp-copy>.eyebrow{font-size:7px;letter-spacing:1.5px}.rsvp-copy>p:not(.eyebrow){font-size:10px;letter-spacing:.5px}.rsvp-copy>p.rsvp-salute{font-size:17px;letter-spacing:3px}.rsvp-peony{right:-20px;bottom:-140px;width:145px}.rsvp-panel{padding:28px 24px;min-height:555px}.form-heading h3{font-size:17px;letter-spacing:2px}.form-heading>span{font-size:25px}.attendance-options{gap:10px}.attendance-options label>span{padding:12px 5px;font-size:10px}.form-note{font-size:7px;letter-spacing:0}.rsvp-success{min-height:490px}.rsvp-success h3{font-size:22px}.footer-main{font-size:17px;letter-spacing:3px}.footer-bottom{font-size:6px;letter-spacing:.3px}.music-toggle{right:16px;bottom:17px;padding:11px 13px;font-size:8px}.ceremony-heading{top:14%}.ceremony-heading h2{font-size:64px}.ceremony-heading>p{font-size:9px;letter-spacing:3px}.ceremony-heading>span{font-size:7px;letter-spacing:3px}.door-verse{font-size:17px;letter-spacing:7px;line-height:2.2}.left .door-verse{left:24%}.right .door-verse{right:24%}.door-peony{width:220px;opacity:.55}.left .door-peony{left:-12%;bottom:-10px}.right .door-peony{right:-12%;top:-10px}.door-corner{width:100px;height:100px}.ceremony-couple p{font-size:26px}.ceremony-sample{bottom:42px;font-size:7px}}
@media(max-width:600px){.hero{height:calc(100svh - 76px);min-height:730px;max-height:940px;padding:42px 35px 82px}.hero-frame{inset:16px 15px 21px}.hero-background{inset:-5% -42%}.hero-background img{opacity:.45;object-position:50% center}.hero-content{margin-top:0}.hero-eyebrow{font-size:8px;letter-spacing:2px;gap:10px}.hero-eyebrow>span{width:22px}.hero-emblem{width:170px;height:170px;margin:29px auto 25px}.hero-emblem>span{font-size:125px}.hero-emblem>b{font-size:7px;letter-spacing:4px}.hero h1{font-size:57px;letter-spacing:7px;padding-left:7px}.couple{font-size:24px;letter-spacing:5px;gap:32px;margin:24px 0 17px;padding-left:5px}.couple i{font-size:10px}.couple i::before,.couple i::after{width:17px;left:-27px}.couple i::after{left:auto;right:-27px}.hero-description{font-size:10px;letter-spacing:1px;line-height:2}.hero .button{margin-top:24px;font-size:11px;min-height:49px;min-width:205px;padding:0 23px}.hero-date{margin-top:25px;gap:10px;font-size:7px;letter-spacing:.3px;flex-wrap:wrap;max-width:280px;margin-left:auto;margin-right:auto}.hero-date strong{font-size:10px;letter-spacing:1px;padding:0 10px}.hero-date>span:last-child{font-size:6px}.hero-verse{font-size:10px;letter-spacing:5px;line-height:2;top:41%;opacity:.6}.hero-verse span{margin-top:25px}.hero-verse.verse-left{left:29px}.hero-verse.verse-right{right:29px}.corner{height:62px;width:62px}.scroll-hint{bottom:34px;font-size:7px;letter-spacing:2px;gap:8px}.scroll-hint i{height:20px}.preview-label{font-size:5px;right:31px;bottom:28px;writing-mode:vertical-rl;letter-spacing:.5px}.section-pad{padding:52px 6% 60px}.section-index{margin-bottom:34px;padding-bottom:16px}.section-index>span{font-size:9px;letter-spacing:2px}.section-index small{font-size:5px;letter-spacing:1px}.formal-invite{padding:33px 30px 29px}.formal-invite::before{inset:7px}.formal-invite h2{font-size:44px;line-height:1.45;letter-spacing:4px;padding-left:4px;margin-top:17px}.square-seal{width:38px;height:38px;font-size:29px;margin-bottom:19px}.formal-invite .eyebrow{font-size:7px;letter-spacing:3px}.invite-side{font-size:6px;letter-spacing:4px;line-height:1.6;top:43%}.invite-side.left{left:17px}.invite-side.right{right:17px}.formal-names{gap:25px;margin:28px 0 24px}.formal-names small{font-size:7px;letter-spacing:1px}.formal-names strong{font-size:23px;letter-spacing:5px;padding-left:5px}.name-knot{font-size:17px;margin-top:18px}.formal-copy{font-size:10px;line-height:2.8;letter-spacing:.5px}.formal-ending{font-size:8px;letter-spacing:1.4px;margin-top:24px}.cloud-divider{width:80%;margin:17px auto 11px}.formal-small{font-size:7px;letter-spacing:1px}.story{display:flex;flex-direction:column;gap:35px;padding:55px 8% 60px}.story-text{width:100%;padding:0 5px}.story-text h2{font-size:42px;line-height:1.5;margin-top:19px}.story-text>.eyebrow{font-size:8px;letter-spacing:2px}.story-text>p:not(.eyebrow){font-size:11px;letter-spacing:.7px;line-height:2.3;margin-top:21px}.story-signature{font-size:20px;letter-spacing:4px;margin-top:27px;gap:20px}.story-photo{width:90%;align-self:center;padding-bottom:0}.photo-border{height:295px;padding:8px;box-shadow:7px 8px 0 #a6232d0a}.story-photo>span{font-size:9px;letter-spacing:2px;margin-top:18px}.story-ornament{left:auto;right:-80px;top:55px;bottom:auto;width:200px;height:260px;transform:rotate(10deg);opacity:.25}.section-heading{margin-bottom:30px}.section-heading h2{font-size:35px;letter-spacing:1.5px;margin-top:14px}.section-heading .eyebrow{font-size:8px;letter-spacing:2px}.section-heading>p{font-size:9px;line-height:2;letter-spacing:.8px;margin-top:17px}.section-heading>p small{font-size:7px;letter-spacing:0;margin-top:8px}.gallery{grid-template-columns:1fr 1fr;gap:24px 17px}.gallery-tall .gallery-img{height:250px}.gallery-mid{margin-top:35px}.gallery-mid .gallery-img{height:215px}.gallery-low{grid-column:1 / -1;width:79%;margin:0 auto}.gallery-low .gallery-img{height:275px}.gallery-low img{object-position:20% center}.gallery-img{padding:5px}.gallery-caption{padding-top:14px;font-size:8px;letter-spacing:.5px}.gallery-caption>span>i{font-size:11px;letter-spacing:1.3px;margin-left:7px}.gallery-caption>span:last-child{font-size:19px}.gallery-open{display:none}.moments-cloud{width:74%;margin:35px auto -10px}.wedding-grid{display:flex;flex-direction:column;align-items:stretch;gap:35px}.wedding-intro{padding:0 7px}.wedding-intro>.eyebrow{font-size:8px;letter-spacing:2px}.wedding h2{font-size:43px;letter-spacing:3px;line-height:1.5;margin-top:18px}.wedding-description{font-size:11px;line-height:2.2;letter-spacing:1px;margin-top:21px}.countdown{gap:17px;margin:28px 0 20px}.countdown strong{font-size:45px}.countdown>div{min-width:35px}.countdown>div:first-child strong{min-width:56px}.countdown span{font-size:8px;margin-top:8px}.countdown>i{font-size:20px;margin-top:-15px}.text-button{font-size:10px;letter-spacing:1px;gap:22px}.demo-note{font-size:7px;margin-top:13px}.date-card{padding:28px 25px;margin:0 6px;box-shadow:8px 8px 0 #e4d4ba}.date-card-top{font-size:7px;letter-spacing:1px;padding-bottom:18px}.date-card-top>span:nth-child(2){font-size:12px;letter-spacing:1.6px}.date-number{margin:19px 0 20px;gap:22px}.date-number>span{font-size:100px}.date-number strong{font-size:15px;letter-spacing:2px}.date-number small{font-size:7px;letter-spacing:1.3px}.date-number i{font-size:8px;letter-spacing:1px}.calendar{padding:0 5px}.calendar-week{font-size:9px;padding-bottom:13px}.calendar-days{font-size:16px;row-gap:3px;margin-top:10px}.calendar-days>span{height:31px}.chosen-date::before{height:30px;width:30px}.chosen-date i{bottom:-6px;right:-2px;height:13px;width:13px;font-size:8px}.date-card-foot{font-size:8px;letter-spacing:1.4px;margin-top:18px;padding-top:17px}.banquet{margin-top:48px;padding-top:31px;gap:30px}.venue{gap:16px}.venue-seal{font-size:30px;padding:5px 7px}.venue h3{font-size:20px;letter-spacing:2px;margin:12px 0}.venue .eyebrow{font-size:7px;letter-spacing:1.3px}.venue p:not(.eyebrow){font-size:8px;letter-spacing:.3px}.venue .text-button{font-size:9px;gap:17px}.schedule{padding-left:4px}.schedule time{font-size:27px}.schedule strong{font-size:11px;letter-spacing:1px}.schedule small{font-size:7px;letter-spacing:.3px}.schedule-dot{height:7px;width:7px}.schedule>li{padding-top:21px}.wedding-demo{font-size:6px;text-align:left;margin-top:26px;letter-spacing:.5px}.rsvp-layout{display:flex;flex-direction:column;gap:32px;align-items:stretch}.rsvp-copy{padding:0 7px}.rsvp-copy>.eyebrow{font-size:8px;letter-spacing:2px}.rsvp h2{font-size:42px;letter-spacing:3px;line-height:1.5;margin-top:18px}.rsvp-copy>p:not(.eyebrow){font-size:11px;letter-spacing:.5px;line-height:2.2;margin-top:21px}.rsvp-copy>p.rsvp-salute{font-size:18px;letter-spacing:3px;margin-top:24px}.rsvp-character{font-size:220px;right:5px;top:0}.rsvp-peony{right:-24px;bottom:-20px;width:133px;opacity:.4}.rsvp-panel{padding:28px 25px;min-height:550px}.form-heading{margin-bottom:25px}.form-heading h3{font-size:19px;letter-spacing:2px}.form-heading>span{font-size:28px}form label,fieldset legend{font-size:11px}.attendance-options label>span{font-size:11px;padding:13px 5px}input[type=text],textarea{font-size:16px}input::placeholder,textarea::placeholder{font-size:11px;letter-spacing:.6px}.rsvp-panel .button{font-size:11px;min-height:50px}.form-note{font-size:7px;line-height:1.8;letter-spacing:0}.rsvp-success{min-height:490px}.rsvp-success h3{font-size:23px;letter-spacing:1px}.rsvp-success>p:not(.eyebrow){font-size:11px}.site-footer{padding:43px 7% 24px}.footer-seal{font-size:54px;margin-bottom:23px}.footer-main{font-size:14px;letter-spacing:2px}.footer-names{font-size:21px;letter-spacing:4px;margin-top:25px}.footer-date{font-size:8px;letter-spacing:2px}.back-top{font-size:8px;letter-spacing:1px;margin:27px auto 33px}.footer-bottom{flex-wrap:wrap;gap:13px 0;line-height:1.5;font-size:6px;letter-spacing:.4px}.footer-bottom>span:first-child{width:50%;text-align:left}.footer-bottom>span:nth-child(2){width:50%;text-align:right}.footer-bottom>span:last-child{width:100%;text-align:left;font-size:5px}.music-toggle{right:13px;bottom:15px;padding:10px 12px;font-size:8px}.toast{font-size:11px;padding:12px 17px;bottom:78px;width:max-content}.ceremony-skip{top:20px;right:23px;font-size:9px;letter-spacing:1px;gap:8px}.ceremony-skip .icon{height:13px;width:13px}.door-border{top:17px;bottom:17px}.left .door-border{left:17px}.right .door-border{right:17px}.door-corner{height:85px;width:85px}.left .door-corner-top{top:17px;left:17px}.left .door-corner-bottom{bottom:17px;left:17px}.right .door-corner-top{top:17px;right:17px}.right .door-corner-bottom{bottom:17px;right:17px}.ceremony-heading{top:15%}.ceremony-heading>p{font-size:8px;letter-spacing:2.5px;margin-bottom:20px}.ceremony-heading h2{font-size:50px;letter-spacing:6px;padding-left:6px;line-height:1.2}.ceremony-heading>span{font-size:6px;letter-spacing:2.5px;margin-top:17px}.gold-clasp{width:108px;height:108px;top:51%;padding-bottom:4px}.gold-clasp::before{inset:10px}.gold-clasp::after{inset:-9px}.clasp-ring{inset:-17px}.clasp-character{font-size:51px;padding-top:6px}.clasp-tag{font-size:6px;letter-spacing:1.5px;margin-top:10px}.ceremony-couple{bottom:20.5%}.ceremony-couple p{font-size:25px;letter-spacing:5px;padding-left:5px}.ceremony-couple i{font-size:10px;margin:0 11px}.ceremony-couple>span{font-size:8px;letter-spacing:3px;margin-top:18px}.ceremony-hint{font-size:9px;letter-spacing:1.6px;gap:12px;bottom:10.5%}.ceremony-hint>span{width:27px}.ceremony-sample{font-size:6px;bottom:32px;letter-spacing:.5px}.door-verse{font-size:13px;letter-spacing:5px;line-height:1.9;top:48%;opacity:.85}.left .door-verse{left:23%}.right .door-verse{right:23%}.door-bottom{bottom:43px;font-size:6px;letter-spacing:3px}.left .door-bottom{right:21px}.right .door-bottom{left:21px}.door-peony{width:190px;opacity:.55}.left .door-peony{left:-34%;bottom:15px}.right .door-peony{right:-34%;top:15px}.ceremony-letter{max-width:calc(100vw - 44px);height:min(640px,calc(100dvh - 64px));padding:25px 25px}.inner-seal{font-size:36px;margin-bottom:11px}.ceremony-letter>.eyebrow{font-size:7px;letter-spacing:2px}.ceremony-letter h2{font-size:43px;line-height:1.3;letter-spacing:4px;padding-left:4px;margin:16px 0 17px}.inner-names{font-size:23px;letter-spacing:4px;gap:23px;padding-left:4px}.inner-names i{font-size:9px}.inner-divider{margin:19px auto;width:35px}.inner-date{font-size:10px;letter-spacing:1px}.inner-message{font-size:10px;line-height:2.1;letter-spacing:.5px;margin-top:15px}.ceremony-letter .button{margin-top:22px;font-size:10px;min-height:46px;padding:0 23px;gap:25px}.replay-letter{font-size:8px;margin-top:7px}.ceremony-letter>small{font-size:6px;letter-spacing:.3px;margin-top:13px}.lightbox-dialog{width:calc(100% - 16px);height:calc(100dvh - 30px);max-width:none}.lightbox-dialog figure{padding:55px 12px 66px;gap:18px}.lightbox-dialog figcaption{font-size:10px;letter-spacing:1px}.lightbox-nav{top:auto;bottom:16px;height:36px;width:36px;font-size:19px}.lightbox-prev{left:calc(50% - 50px)}.lightbox-next{right:calc(50% - 50px)}}
@media(max-width:360px){.hero h1{font-size:50px;letter-spacing:5px;padding-left:5px}.hero-verse.verse-left{left:25px}.hero-verse.verse-right{right:25px}.hero-verse{font-size:9px;letter-spacing:4px}.hero-description{font-size:9px;letter-spacing:.5px}.hero-eyebrow{font-size:7px;letter-spacing:1.3px;gap:8px}.hero-eyebrow>span{width:16px}.hero-date{gap:7px;max-width:250px}.hero-date strong{font-size:9px;padding:0 8px}.hero-date>span{font-size:6px}.formal-invite{padding-left:23px;padding-right:23px}.formal-invite h2{font-size:40px}.formal-copy{font-size:9px}.formal-names{gap:20px}.formal-names strong{font-size:21px}.invite-side.left{left:14px}.invite-side.right{right:14px}.formal-ending{font-size:7px;letter-spacing:1px}.section-heading h2{font-size:30px;letter-spacing:1px}.gallery-tall .gallery-img{height:225px}.gallery-mid .gallery-img{height:190px}.gallery-low .gallery-img{height:245px}.countdown{gap:12px}.countdown strong{font-size:41px}.rsvp-panel{padding-left:21px;padding-right:21px}.rsvp h2,.wedding h2{font-size:39px}.ceremony-heading h2{font-size:44px;letter-spacing:5px;padding-left:5px}.ceremony-heading>p{font-size:7px;letter-spacing:2px}.ceremony-heading>span{font-size:5px;letter-spacing:2px}.door-verse{font-size:11px;letter-spacing:4px}.left .door-verse{left:23%}.right .door-verse{right:23%}.door-peony{width:170px}.gold-clasp{width:100px;height:100px}.clasp-character{font-size:46px}.clasp-tag{font-size:5px}.ceremony-couple p{font-size:23px}.ceremony-letter{padding-left:19px;padding-right:19px;max-width:calc(100vw - 34px)}.ceremony-letter h2{font-size:40px}.inner-message{font-size:9px;letter-spacing:.3px}.inner-date{font-size:9px}.ceremony-letter .button{font-size:9px;gap:25px;padding:0 19px}.date-card{padding:25px 21px}.date-card-top{font-size:6px;letter-spacing:.7px}.date-card-top>span:nth-child(2){font-size:11px}.footer-main{font-size:12px;letter-spacing:1.4px}}
@media(max-height:680px){.ceremony-heading{top:12%}.ceremony-heading>p{margin-bottom:15px}.ceremony-heading>span{margin-top:13px}.ceremony-couple{bottom:18%}.ceremony-hint{bottom:8%}.ceremony-sample{bottom:22px}.ceremony-letter{padding-top:22px;padding-bottom:22px}.inner-seal{font-size:30px;margin-bottom:8px}.ceremony-letter h2{font-size:38px;line-height:1.25;margin:11px 0 13px}.inner-names{font-size:22px}.inner-divider{margin:15px auto}.inner-message{margin-top:12px}.ceremony-letter .button{margin-top:17px;min-height:44px}.replay-letter{padding-top:7px;margin-top:5px}.ceremony-letter>small{margin-top:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js-ready [data-reveal]{opacity:1;transform:none}.hero-background img{transform:none!important}.is-open .ceremony-door.left{transform:translateX(-101%)}.is-open .ceremony-door.right{transform:translateX(101%)}}

.js-ready .formal-invite[data-reveal]{clip-path:inset(0 0 12% 0);transform:perspective(1400px) rotateX(3deg) translateY(30px);transform-origin:top;transition:clip-path 1.5s var(--ease),transform 1.3s var(--ease),opacity 1.1s var(--ease)}
.js-ready .formal-invite[data-reveal].is-visible{clip-path:inset(0);transform:none}
.gallery-item:nth-child(2){transition-delay:.12s}.gallery-item:nth-child(3){transition-delay:.24s}
@media(prefers-reduced-motion:reduce){.js-ready .formal-invite[data-reveal]{clip-path:none;transform:none}}
