:root{--paper: #f6f2e9;--ink: #343f31;--olive: #58634a;--muted: #727365;--line: #d6d6c7;--rose: #8d5950;--serif: Georgia, "Times New Roman", serif;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.65;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a77b45;outline-offset:5px}p{line-height:1.8}h1,h2,h3,p{margin-top:0}h2{font-family:var(--serif);font-size:clamp(38px,4.8vw,65px);font-weight:400;line-height:1.12;letter-spacing:-2px;margin-bottom:28px}h2 i{font-weight:400;color:var(--olive)}h3{font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.25;margin-bottom:14px}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:2.8px;font-weight:500;display:block;line-height:1.8}.small,small{font-size:12px;color:var(--muted);line-height:1.6}.script,.signature{font-family:var(--serif);font-style:italic}.button{border-radius:2px;border:1px solid var(--ink);padding:18px 24px;display:inline-flex;gap:36px;align-items:center;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;min-height:52px;transition:background .25s,transform .25s}.button:hover{transform:translateY(-3px)}.dark{background:var(--ink);color:var(--paper)}.dark:hover{background:#536047}.outline{background:transparent}.button span{font-size:21px;line-height:1}.botanical{pointer-events:none;position:absolute}.left{left:0}.right{right:0;transform:scaleX(-1)}.envelope-screen{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;background:radial-gradient(ellipse at 50% 20%,#faf7f0,#dedfce);gap:34px}.cover-note{text-align:center}.envelope{position:relative;width:min(700px,100%);height:440px;background:#eee9dc;border:1px solid #d3cbbb;box-shadow:0 35px 75px #48513b22,0 3px 10px #61594215;overflow:hidden;color:var(--ink);transition:transform .8s,box-shadow .8s;isolation:isolate}.envelope:hover{transform:translateY(-7px) rotate(-.5deg);box-shadow:0 45px 90px #48513b33}.envelope:before{content:"";position:absolute;inset:12px;border:1px solid #ccc4ac}.envelope-seam{position:absolute;width:70%;height:100%;left:15%;top:-67%;transform:rotate(45deg);border-right:1px solid #cfc5ad;border-bottom:1px solid #cfc5ad;background:#f3eee3;box-shadow:8px 8px 25px #6f644414}.envelope-flower{height:110%;width:38%;top:-9%;opacity:.9;z-index:1}.ribbon{position:absolute;top:49%;height:43px;width:100%;background:linear-gradient(#b8bd9c,#d7d9bd 30%,#bfc5a2 80%,#909774);box-shadow:0 4px 5px #6b715c20;z-index:2}.wax{position:absolute;width:79px;height:79px;left:calc(50% - 39px);top:calc(49% - 18px);background:radial-gradient(circle at 32% 27%,#976951,#6e3e2c);color:#e7c4a1;z-index:3;border-radius:47% 49% 46% 50%;border:5px double #ad8062;box-shadow:1px 5px 8px #4f3a3a50;display:grid;place-items:center;font:italic 22px var(--serif)}.envelope-to{position:absolute;top:21%;left:0;right:0;font-size:9px;letter-spacing:2px;text-transform:uppercase;z-index:2}.envelope-names{position:absolute;top:29%;left:0;right:0;font:36px var(--serif);z-index:2}.envelope-names i{font-size:25px;margin:0 8px}.envelope-action{position:absolute;bottom:14%;left:0;right:0;text-transform:uppercase;font-size:9px;letter-spacing:2px;z-index:2}.envelope-action span{margin-left:12px}.cover-bottom{font:italic 17px var(--serif);margin:0;color:var(--olive)}.invitation{animation:unfold 1.2s ease both}.nav{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid var(--line);background:#f6f2e9f2;position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.monogram{font:italic 26px var(--serif)}nav{display:flex;gap:32px;align-items:center}nav a{font-size:11px;letter-spacing:1px}.nav-rsvp{border-bottom:1px solid var(--olive);padding:10px 0}main:focus{outline:none}.hero{min-height:830px;position:relative;display:grid;place-items:center;overflow:hidden;padding:90px 30px 42px;text-align:center}.hero-frame{position:absolute;inset:32px 5%;border:1px solid var(--line);border-radius:46% 46% 0 0;pointer-events:none}.hero-copy{position:relative;z-index:2}.hero .eyebrow{margin-bottom:30px}.hero .script{font-size:20px;color:var(--rose);margin-bottom:18px}.hero h1{font:clamp(70px,8vw,116px) / .92 var(--serif);letter-spacing:-5px;margin:0 0 28px}.hero h1 em{display:block;font-size:.43em;line-height:1.2;color:#929779;font-weight:400}.hero-sub{font:19px/1.5 var(--serif)}.hero-flower{height:84%;width:29%;bottom:0;transform-origin:bottom;animation:sway 9s ease-in-out infinite alternate}.hero-flower.right{animation-name:sway-right}.date-line{display:flex;justify-content:center;gap:22px;margin:28px 0;font-size:10px;letter-spacing:2px;text-transform:uppercase}.date-line span+span{border-left:1px solid var(--line);padding-left:22px}.scroll-note{display:flex;flex-direction:column;gap:12px;font-size:9px;text-transform:uppercase;letter-spacing:2px;margin-top:42px}.scroll-note span{font-size:21px;animation:bob 2s ease-in-out infinite}.section{max-width:1160px;margin:auto;padding:110px 40px}.letter{text-align:center;max-width:740px}.letter .eyebrow{margin-bottom:28px}.letter p{font-size:15px;max-width:480px;margin:0 auto 18px;color:#69705f}.signature{display:block;font-size:24px;color:var(--rose);margin:34px 0 45px}.letter .date-note{font-size:12px;padding-top:25px;border-top:1px solid var(--line);max-width:400px}.countdown{display:flex;justify-content:center;gap:40px}.countdown b{display:block;font:40px var(--serif)}.countdown span{font-size:9px;letter-spacing:2px;text-transform:uppercase}.marquee{background:#e8eadf;padding:25px 0;overflow:hidden;border-block:1px solid var(--line)}.marquee div{white-space:nowrap;width:max-content;font:italic 30px var(--serif);color:#768064;animation:marquee 40s linear infinite}.day{display:grid;grid-template-columns:1fr 1fr;gap:80px}.section-heading .eyebrow,.place-copy>.eyebrow,.rsvp-intro>.eyebrow{margin-bottom:30px}.section-heading p,.place-copy>p,.rsvp-intro>p{font-size:14px;color:var(--muted)}.timeline article{display:flex;gap:25px;position:relative;padding:0 0 45px}.timeline article:not(:last-of-type):before{content:"";position:absolute;left:19px;top:43px;bottom:5px;border-left:1px solid var(--line)}.timeline-number{flex-shrink:0;width:40px;height:40px;border:1px solid var(--line);display:grid;place-items:center;border-radius:50%;font:italic 17px var(--serif)}.timeline h3{margin:10px 0}.timeline article p{font-size:13px;color:var(--muted);margin-bottom:0}.timeline .small{margin-left:65px}.place{display:grid;grid-template-columns:1fr 1fr;background:#e9ebdf}.garden-art{min-height:650px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#f0efe1,#d8decb);display:grid;place-items:center}.arch{position:absolute;bottom:19%;width:49%;height:61%;border:14px double #a2a987;border-radius:50% 50% 0 0;display:flex;justify-content:center;align-items:center;background:linear-gradient(#f7f4e5,#e0e3cc);box-shadow:20px 20px #acb49524}.arch>span{position:absolute;top:25%;font:italic 40px var(--serif);color:#788564}.arch-door{height:55%;position:absolute;bottom:0;left:15%;right:15%;border:1px solid #a8b091;border-radius:50% 50% 0 0;background:repeating-linear-gradient(90deg,transparent 0 30px,#a8b09166 30px 31px)}.garden-flower{height:68%;width:48%;bottom:9%;z-index:2}.garden-flower.one{left:0;transform:rotate(-10deg)}.garden-flower.two{right:0;transform:scaleX(-1) rotate(-8deg)}.garden-ground{position:absolute;bottom:15%;left:5%;right:5%;height:1px;background:#a0a78d}.art-caption{position:absolute;bottom:7%;font:italic 19px var(--serif);color:#778064}.place-copy{padding:85px clamp(30px,6vw,100px)}.place-copy h2{font-size:clamp(36px,3.9vw,54px)}.place-copy h3{margin-top:35px}.venue-note{font-style:italic;font-family:var(--serif)}.dress{border-top:1px solid #c9ceba;margin-top:36px;padding-top:26px}.dress p{font:20px var(--serif);margin:18px 0 12px}.rsvp-section{display:grid;grid-template-columns:1fr 1.1fr;gap:70px}.rsvp-intro{position:relative;min-height:560px}.deadline{font-family:var(--serif);font-style:italic;margin-top:30px}.rsvp-flower{height:270px;width:180px;bottom:0;left:15px;transform:rotate(24deg);opacity:.8}.form-card{background:#fffdf6;border:1px solid #dedbce;padding:40px;box-shadow:0 15px 45px #464c3407}.rsvp-form{display:flex;flex-direction:column;gap:24px}fieldset{border:0;margin:0;padding:0;min-width:0}legend,label{font-size:11px;letter-spacing:.2px}legend{margin-bottom:12px}.choices{display:flex;gap:10px}.choices label{display:flex;gap:7px;align-items:center;border:1px solid var(--line);padding:13px 10px;flex:1;cursor:pointer;line-height:1.5}.choices .selected{border-color:var(--olive);background:#eff0e7}input[type=radio],input[type=checkbox]{accent-color:var(--olive);width:16px;height:16px;flex-shrink:0}label>input:not([type=checkbox],[type=radio]),select,textarea{display:block;width:100%;margin-top:10px;border:0;border-bottom:1px solid #cacbbb;border-radius:0;background:transparent;padding:11px 0;font-size:16px;color:var(--ink);min-height:44px}input::placeholder,textarea::placeholder{color:#8a8a7e;font-size:13px}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.form-row small{display:block;font-size:10px;margin-top:8px}.optional{color:var(--muted)}.consent{display:flex;align-items:flex-start;gap:10px;line-height:1.6;font-size:11px}.consent input{margin:0}.rsvp-form .button{width:100%}.privacy-note{text-align:center;margin:-10px 0 0;font-size:10px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.error{color:#9f3026;font-size:13px}.confirmation{text-align:center;padding:60px 0}.confirmation p{font-size:14px}.large-star{font:70px var(--serif);color:#a78e60;display:block;margin-bottom:25px}.closing{text-align:center;padding:90px 24px;background:var(--ink);color:var(--paper)}.closing>p{font:clamp(50px,6vw,80px) / 1.05 var(--serif);margin:35px 0}.closing p i{color:#c3c9ab}.closing-monogram{font:italic 28px var(--serif);margin:35px 0 20px}.closing>span:last-child{font-size:10px;letter-spacing:2px;text-transform:uppercase}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 6%;font-size:10px;color:var(--muted)}.text-button{border:0;background:transparent;color:inherit;text-decoration:underline;font-size:11px;min-height:44px}.privacy-banner{position:fixed;bottom:16px;left:16px;right:16px;z-index:10;max-width:620px;margin:auto;background:#fffdf6;border:1px solid var(--line);box-shadow:0 10px 55px #0003;padding:20px;font-size:12px}.privacy-banner p{margin:8px 0 14px;font-size:12px}.privacy-actions{display:flex;gap:12px;justify-content:flex-end}.privacy-actions button{border:1px solid var(--line);background:var(--paper);padding:12px;min-height:44px;color:var(--ink)}.privacy-actions button:last-child{background:var(--ink);color:var(--paper)}.reveal.ready{opacity:0;transform:translateY(26px);transition:opacity .9s,transform .9s}.reveal.seen{opacity:1;transform:none}@keyframes unfold{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes sway{0%{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes sway-right{0%{transform:scaleX(-1) rotate(-2deg)}to{transform:scaleX(-1) rotate(2deg)}}@keyframes bob{50%{transform:translateY(6px)}}@keyframes marquee{to{transform:translate(-30%)}}@media(min-width:1500px){.hero-flower{width:26%}.hero{min-height:900px}}@media(max-width:900px){.day{gap:35px}.rsvp-section{gap:30px}.form-card{padding:28px}.place-copy{padding:65px 30px}.garden-art{min-height:600px}.hero-flower{width:32%;opacity:.8}.hero-copy{max-width:70%}}@media(max-width:650px){.envelope-screen{padding:28px 18px;gap:30px}.envelope{height:520px;max-width:370px}.envelope-names{font-size:30px;top:33%}.envelope-to{top:26%;font-size:8px}.envelope-flower{width:42%;height:105%;top:-6%}.envelope-action{font-size:8px;letter-spacing:1.3px;bottom:20%}.cover-note{font-size:8px;letter-spacing:1.8px}.nav{height:65px;padding:0 22px}.monogram{font-size:22px}nav{gap:20px}nav a{font-size:10px;letter-spacing:.3px}.hero{min-height:790px;padding:65px 20px 40px}.hero h1{font-size:78px;letter-spacing:-4px}.hero .eyebrow{font-size:8px;letter-spacing:1.8px}.hero .script{font-size:18px}.hero-copy{max-width:100%}.hero-flower{height:78%;width:35%;opacity:.65;bottom:0}.hero-flower.left{left:-11%}.hero-flower.right{right:-11%}.hero-frame{inset:25px 18px}.hero-sub{font-size:17px}.date-line{font-size:8px;letter-spacing:1.3px;gap:12px}.date-line span+span{padding-left:12px}.hero .button{font-size:9px}.section{padding:75px 24px}h2{font-size:42px;letter-spacing:-1.5px}.letter p{font-size:14px}.signature{font-size:22px}.day{grid-template-columns:1fr;gap:35px}.timeline article{padding-bottom:32px}.place{grid-template-columns:1fr}.garden-art{min-height:470px}.arch{width:43%;height:65%}.garden-flower{height:83%;width:44%}.place-copy{padding:60px 28px}.rsvp-section{grid-template-columns:1fr;gap:25px}.rsvp-intro{min-height:0}.rsvp-flower{display:none}.form-card{padding:28px 20px}.choices label{font-size:10px}.form-row{gap:12px}.closing{padding:75px 24px}.closing>p{font-size:56px}footer{flex-direction:column;gap:2px;text-align:center;padding:20px}.privacy-banner{padding:16px}.privacy-banner p,.privacy-actions button{font-size:11px}.rsvp-intro>p{font-size:14px}}@media(max-width:360px){.hero h1{font-size:67px}.form-row{grid-template-columns:1fr}.choices{flex-direction:column}.envelope-names{font-size:26px}nav{gap:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal.ready{opacity:1;transform:none}}:root{--paper: #fcf5f0;--ink: #44543e;--olive: #758568;--muted: #797b71;--line: #dfdcd1;--rose: #ad7580;--photo-opacity: .21}body{background:radial-gradient(ellipse at 12% 10%,#e4ecd9,transparent 55%),radial-gradient(ellipse at 90% 80%,#efd3d8,transparent 55%),#f1e9e1;background-attachment:fixed}.invitation{max-width:520px;margin:36px auto;background:var(--paper);box-shadow:0 20px 90px #5263441c;position:relative;isolation:isolate;border:1px solid #e2d9cf}.envelope-screen{background:transparent;padding:35px 20px;gap:27px;min-height:100svh}.cover-note{font-size:9px;letter-spacing:2px;color:#69765d}.envelope{width:min(410px,100%);height:auto;aspect-ratio:2/3;background:linear-gradient(130deg,#fff8f2,#f5e7e6 60%,#ebeedf);border-color:#d8cbbf}.envelope:before{inset:15px;border-color:#d6c3c0;border-radius:46% 46% 0 0}.envelope-seam{width:92%;left:4%;top:-71%;height:100%;background:#fcf2ee;transform:rotate(45deg);border-color:#d5c5bf;transition:transform .85s ease,opacity .7s}.envelope-flower{height:103%;width:48%;top:-2%;opacity:.83}.envelope-flower.left{left:-7%;transform:rotate(-8deg)}.envelope-flower.right{right:-7%;transform:scaleX(-1) rotate(-8deg)}.envelope-to{top:27%;font-size:8px;letter-spacing:1.6px}.envelope-names{top:34%;font:30px var(--serif)}.envelope-names i{color:var(--rose);font-size:24px;margin:0 5px}.ribbon{top:53%;background:linear-gradient(#a2af8c,#d5dfc2 38%,#b7c7a4 85%,#8f9f7d);height:38px;transition:transform .8s,opacity .65s}.wax{top:calc(53% - 20px);background:radial-gradient(circle at 30% 25%,#d9acaf,#b77e8a);border-color:#e2b7bc;color:#fff1ed;box-shadow:1px 5px 8px #946a6b30;transition:transform .8s,opacity .65s}.envelope-action{bottom:20%;font-size:8px;letter-spacing:1.5px}.envelope.opening{opacity:1;cursor:default;transform:translateY(-5px)}.opening .ribbon{transform:translate(-110%);opacity:0}.opening .wax{transform:translateY(-80px) rotate(-18deg);opacity:0}.opening .envelope-seam{transform:translateY(-150px) rotate(45deg);opacity:0}.cover-bottom{font-size:15px;color:#8e6870}.nav{height:64px;padding:0 25px;background:#fcf5f0ed;border-color:#e0d9cc}.monogram{font-size:22px}nav{gap:22px}nav a{font-size:10px;letter-spacing:.3px}.hero{min-height:845px;padding:72px 25px 40px;background:linear-gradient(180deg,#f9eceb55,transparent 70%,#f1f0e255)}.couple-watermark{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 48%;opacity:var(--photo-opacity);filter:grayscale(1);mix-blend-mode:multiply;pointer-events:none;-webkit-mask-image:linear-gradient(transparent,#000 10%,#000 85%,transparent);mask-image:linear-gradient(transparent,#000 10%,#000 85%,transparent)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fcf5f03d,#fcf5f020 50%,#fcf5f060);pointer-events:none;z-index:0}.hero-frame{inset:24px 20px;border-color:#c8cbb780;z-index:1}.hero-copy{max-width:100%;z-index:2;width:100%}.hero .eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:40px}.hero .script{font-size:19px;margin-bottom:25px;color:#a4757e}.hero h1{font-size:clamp(65px,12vw,88px);letter-spacing:-3.5px;line-height:.97;text-shadow:0 2px 25px #fff9f1}.hero h1 em{color:#b48a91;font-size:.44em;line-height:1.4}.hero-sub{font:18px/1.6 var(--serif);margin-top:25px}.hero-flower{height:88%;width:42%;bottom:-3%;opacity:.72;z-index:1}.hero-flower.left{left:-14%}.hero-flower.right{right:-14%}.date-line{flex-direction:column;gap:10px;font-size:10px;letter-spacing:2px;margin:30px 0}.date-line span+span{padding:0;border:0;font-size:9px;color:#79826c}.hero .button{font-size:9px;padding:16px 22px;background:#607254;border-color:#607254}.scroll-note{font-size:8px;letter-spacing:1.6px;margin-top:36px}.section{padding:75px 34px;max-width:100%}h2{font-size:41px;letter-spacing:-1.5px}h2 i{color:#889274}h3{font-size:27px}.letter{position:relative;overflow:hidden;background:linear-gradient(#fcf5f0,#f8eeee)}.letter>*:not(.botanical){position:relative;z-index:1}.letter-bloom{width:190px;height:340px;left:-95px;bottom:-70px;opacity:.3;transform:rotate(15deg)}.letter p{font-size:14px;color:#73786b}.signature{font-size:22px;color:#ae7d88}.countdown{gap:33px;border-top:1px solid #ded7cd;padding-top:25px}.countdown b{font-size:35px;color:#708062}.countdown span{font-size:8px;letter-spacing:1.8px}.marquee{padding:20px 0;background:#e9eedf;border-color:#dce2d0}.marquee div{font-size:26px;color:#8c997a}.day{grid-template-columns:1fr;gap:32px;background:linear-gradient(135deg,#fcf5f0,#f5f4e8)}.section-heading{text-align:center}.section-heading p{font-size:13px}.section-heading .eyebrow{color:#9e7680}.timeline article{padding-bottom:32px;gap:20px}.timeline-number{border-color:#dcc1c4;color:#a78087;background:#f5e5e555}.timeline article p{font-size:13px}.timeline .eyebrow{font-size:9px;letter-spacing:1.8px}.place{grid-template-columns:1fr;background:#eaf0e2}.garden-art{min-height:440px;background:radial-gradient(ellipse at center,#f9f1e9,#e6ebda)}.arch{width:43%;height:64%;border-color:#b3bea2;background:linear-gradient(#fbf6ee,#e7ead9)}.arch>span{font-size:34px;color:#8e9a7c}.arch-door{border-color:#b3bca1;background:repeating-linear-gradient(90deg,transparent 0 30px,#b4bca066 30px 31px)}.garden-flower{height:85%;width:46%;opacity:.85}.garden-flower.one{left:-3%}.garden-flower.two{right:-3%}.art-caption{font-size:17px;color:#8e7d77}.place-copy{text-align:center;padding:55px 34px 65px}.place-copy h2{font-size:40px}.place-copy h3{color:#748264}.place-copy>p{font-size:13px}.dress{border-color:#ced7bf}.dress .eyebrow{font-size:9px}.dress p{font-size:20px}.dress small{font-size:12px}.rsvp-section{grid-template-columns:1fr;gap:25px;background:radial-gradient(ellipse at 90% 15%,#f2dfe2aa,transparent 65%),#fcf5f0;padding:65px 25px}.rsvp-intro{min-height:0;text-align:center}.rsvp-intro h2{font-size:42px}.rsvp-intro>p{font-size:14px}.rsvp-flower{display:none}.deadline{color:#a47b84!important;margin-top:24px}.form-card{padding:28px 23px;background:#fffbf6dc;border-color:#e3d4cf;box-shadow:0 15px 45px #a9808009}.choices{gap:8px}.choices label{font-size:10px;padding:12px 8px}.choices .selected{background:#edf1e5;border-color:#91a17d}.form-row{gap:12px;grid-template-columns:1fr 1fr}.consent{font-size:10px}.rsvp-form .dark{background:#718263;border-color:#718263}.rsvp-form .dark:hover{background:#5d7050}.privacy-note{font-size:10px}.closing{position:relative;overflow:hidden;background:linear-gradient(145deg,#e3ead8,#eff0e3 50%,#f2dfe2);color:var(--ink);padding:75px 24px}.closing>p{font-size:53px;position:relative;z-index:1}.closing p i{color:#ac7f89}.closing-monogram{font-size:29px;color:#7e8d6b}.closing>.eyebrow{font-size:8px;position:relative;z-index:1}.closing>span:last-child{font-size:8px;letter-spacing:1.4px}.closing-bloom{height:95%;width:45%;bottom:-20%;opacity:.42}.closing-bloom.left{left:-22%}.closing-bloom.right{right:-22%}footer{flex-direction:column;gap:0;padding:22px 20px;font-size:9px;text-align:center;background:#fcf5f0}.privacy-banner{max-width:470px;background:#fffbf6;border-color:#dccdcb}@media(max-width:560px){.invitation{margin:0 auto;border:0;box-shadow:none;min-height:100svh}.hero{min-height:820px}.envelope-screen{padding:25px 20px}.envelope{max-height:650px}.hero h1{font-size:clamp(65px,17vw,88px)}.section{padding:65px 28px}.rsvp-section{padding:60px 20px}.form-card{padding:26px 20px}}@media(max-width:360px){.hero{min-height:780px}.hero h1{font-size:64px}.nav{padding:0 18px}nav{gap:16px}.hero-flower{opacity:.52}.form-row{grid-template-columns:1fr}.choices{flex-direction:column}.envelope-names{font-size:26px}.section{padding-left:22px;padding-right:22px}}:root{--photo-opacity: .25;--paper: #fbf7ef;--rose: #ad7c86}.invitation{max-width:540px;background:#fbf7ef;border-color:#e4dbce}.envelope{background:linear-gradient(#fff9ef45,#fff9ef45),url(/garden-stationery.webp) center/cover;isolation:isolate}.envelope-seam{background:linear-gradient(145deg,#f9f2eacc,#e8edddbb);opacity:.75}.envelope-to{top:29%;color:#7f8d70}.envelope-names{top:36%;font-size:31px}.envelope-action{bottom:22%;color:#58684d}.envelope-names,.envelope-to,.envelope-action{text-shadow:0 1px 10px #fff8ed}.ribbon:before,.ribbon:after{content:"";position:absolute;width:94px;height:45px;top:-5px;background:linear-gradient(140deg,#dbe3c7,#a4b38d 55%,#d6dfc0);border:1px solid #aab894;box-shadow:0 4px 8px #657a4420}.ribbon:before{right:50%;transform:rotate(14deg);border-radius:65% 20% 20% 65%}.ribbon:after{left:50%;transform:rotate(-14deg);border-radius:20% 65% 65% 20%}.wax{width:56px;height:56px;left:calc(50% - 28px);top:calc(53% - 8px);border-width:3px;font-size:17px}.hero{min-height:880px;padding:74px 30px 45px;background:#fbf7ef;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:url(/garden-stationery.webp) center/100% 100%;opacity:.23;z-index:-1;pointer-events:none}.couple-watermark{opacity:var(--photo-opacity);filter:saturate(.72);object-position:50% 50%;mix-blend-mode:multiply;z-index:0;-webkit-mask-image:linear-gradient(transparent,#000 5%,#000 94%,transparent);mask-image:linear-gradient(transparent,#000 5%,#000 94%,transparent)}.hero:after{background:radial-gradient(ellipse at 50% 38%,#fff9f044,transparent 65%)}.hero-frame{border-color:#bbbea044;border-radius:48% 48% 0 0;inset:28px 25px}.hero-copy{padding:0 8px}.hero .eyebrow{font-size:8px;letter-spacing:2.4px;margin-bottom:32px}.hero .script{font-size:18px;margin-bottom:30px;color:#a67b81}.hero h1{font-size:clamp(64px,16vw,87px);font-weight:400;line-height:1.02;letter-spacing:-4px;color:#526447}.hero h1 em{font-size:.32em;line-height:1.8;color:#b5898b}.hero-sub{font-size:17px;line-height:1.8;margin-top:28px;color:#5b6850}.date-line{font-size:10px;line-height:1.6;margin:30px 0}.hero .button{background:#7c8f68;border-color:#7c8f68;font-size:8px;padding:15px 21px;letter-spacing:1.5px}.scroll-note{margin-top:33px;color:#7b816e}.letter{background:linear-gradient(#fff9f0d9,#fff8f1e8),url(/garden-stationery.webp) center/cover;padding-top:82px;padding-bottom:65px}.letter h2{font-size:38px}.letter .eyebrow{color:#a77c84;font-size:9px}.letter p{font-size:14px;line-height:1.9;max-width:350px}.signature{font-size:21px;margin:35px 0}.countdown{max-width:300px;margin:auto}.countdown b{font-size:31px}.chapter-divider{display:flex;align-items:center;justify-content:center;gap:18px;background:#edf0e4;padding:27px 15px;color:#8f9b7d;font:italic 17px var(--serif)}.chapter-divider span{width:38px;height:1px;background:#c5ceba}.day{background:radial-gradient(ellipse at 0 100%,#e5ecd988,transparent 65%),#fbf7ef;padding:65px 38px}.section-heading h2{font-size:39px}.timeline{padding:10px 10px 0}.timeline h3{font-size:26px}.timeline-number{background:#f6e9e5aa;border-color:#d9bbb9}.timeline article p{font-size:12px;line-height:1.9}.place{background:#ecf0e4}.venue-vignette{height:370px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;background:linear-gradient(#fffbf344,#fffbf344),url(/garden-stationery.webp) center 63% / cover;text-align:center}.venue-vignette>.eyebrow{font-size:8px;letter-spacing:1.8px;color:#79886b}.venue-medallion{width:170px;height:190px;border:1px solid #acb79777;outline:1px solid #b6bd9f44;outline-offset:7px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:#fffaf05e}.venue-medallion span{font:italic 38px var(--serif);color:#8b9978}.venue-medallion i{font:italic 13px var(--serif);color:#ad8284}.place-copy{padding:52px 38px 65px}.place-copy h2{font-size:38px}.place-copy>.eyebrow{font-size:8px;letter-spacing:2px}.rsvp-section{background:linear-gradient(#fff8f1e8,#fff8f1ec),url(/garden-stationery.webp) center/cover;padding:65px 29px}.rsvp-intro>.eyebrow{font-size:8px;color:#ac7f87}.rsvp-intro h2{font-size:41px}.form-card{background:#fffdf7c9;border:1px solid #dfd8ca;padding:28px 22px}.rsvp-form{gap:25px}.rsvp-form .button{background:#7f906e;border-color:#7f906e;letter-spacing:1.5px;font-size:9px}.closing{background:linear-gradient(#fcf7eeaa,#fcf7eeaa),url(/garden-stationery.webp) center/cover;padding:83px 24px}.closing>p{font-size:49px}.closing p i{color:#b0878b}.closing-monogram{color:#849475}.closing>span:last-child{font-size:8px}footer{background:#fbf7ef}@media(max-width:560px){.invitation{margin:0 auto;max-width:540px}.hero{min-height:840px;padding:67px 24px 40px}.hero h1{font-size:clamp(64px,16vw,86px)}.hero-copy{padding:0}.hero .eyebrow{font-size:7px;letter-spacing:1.9px}.hero-sub{font-size:16px}.day{padding:60px 28px}.rsvp-section{padding:60px 20px}.form-card{padding:25px 20px}.letter{padding-left:28px;padding-right:28px}}@media(max-width:360px){.hero{min-height:795px;padding-inline:20px}.hero h1{font-size:64px}.hero-sub{font-size:15px}.hero .script{font-size:16px}.envelope-names{font-size:25px}.form-row{grid-template-columns:1fr}.section-heading h2,.letter h2,.place-copy h2{font-size:35px}.place-copy{padding-inline:25px}.rsvp-section,.form-card{padding-inline:17px}}.portrait-opening{position:fixed;inset:0;z-index:100;background:#ecebe3;display:grid;place-items:center;overflow:hidden}.painted-cover{position:relative;width:min(100%,620px);height:100%;overflow:hidden;background:#f9f6ed;isolation:isolate;box-shadow:0 0 90px #54684a20}.cover-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%;z-index:-3}.cover-vellum{position:absolute;inset:0;z-index:-2;background:linear-gradient(#fffaf0e8 0%,#fffaf076 24%,transparent 43%,transparent 67%,#fffaf0d9 89%,#fffaf0 100%)}.cover-rule{position:absolute;inset:20px;border:1px solid #667c4e65;pointer-events:none}.cover-rule:after{content:"";position:absolute;inset:5px;border:1px solid #fffaf08c}.cover-heading{position:absolute;top:8%;width:100%;padding:0 30px;text-align:center;color:#425b40}.cover-heading h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(30px,7vw,47px);line-height:1.2;margin:18px 0 12px;letter-spacing:-1.6px}.cover-heading h1 i{font-weight:400;font-size:.65em;color:#98766e}.cover-heading p{font-size:12px;letter-spacing:.07em}.seal-position{position:absolute;top:57%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:17px;width:100%}.portrait-seal{width:103px;height:103px;border-radius:48% 51% 47% 53%;border:5px double #bc8e86;background:radial-gradient(at 35% 25%,#f5d9cf,#d9a99e 66%,#bc847c);color:#764c46;box-shadow:0 8px 20px #634c3547,inset 0 1px 4px #fff9,0 0 0 5px #eac3b960;cursor:pointer;transition:transform .4s,box-shadow .4s;display:flex;flex-direction:column;justify-content:center;align-items:center}.portrait-seal span{font:25px Georgia,serif;text-shadow:0 1px #ffead9}.portrait-seal small{font:italic 12px Georgia,serif;margin-top:6px}.portrait-seal:hover{transform:rotate(-7deg) scale(1.06);box-shadow:0 12px 30px #634c3547,inset 0 1px 4px #fff9}.portrait-seal:focus-visible{outline:3px solid #405a3a;outline-offset:9px}.seal-instruction{background:#fffaf0db;border-radius:30px;padding:8px 15px;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#526047}.cover-date{position:absolute;bottom:8%;width:100%;text-align:center;color:#41583d;display:grid;gap:12px}.cover-date time{font:clamp(27px,6vw,39px) Georgia,serif;letter-spacing:.02em}.cover-date time i{font-weight:400}.cover-date>span:last-child{font-size:11px;letter-spacing:.12em}.pastel-bird{position:absolute;width:56px;pointer-events:none;filter:drop-shadow(0 2px 2px #7771);animation:garden-flight 14s ease-in-out infinite alternate}.pastel-bird svg{overflow:visible;fill:#efe6db;stroke:#a1ae94;stroke-width:.9}.bird-1{top:34%;left:12%;transform:rotate(-10deg)}.bird-2{top:28%;right:11%;width:41px;animation-delay:-7s}.bird-2 svg{fill:#efcfc8;stroke:#b59a90}.bird-3{top:65%;right:18%;width:33px;animation-delay:-4s}.bird-3 svg{fill:#dce4cf}.bird-wing{transform-origin:52px 39px;animation:wingbeat 2.8s ease-in-out infinite alternate}.bird-wing.far{animation-delay:-1s;opacity:.7}@keyframes wingbeat{0%{transform:scaleY(.55) rotate(-8deg)}to{transform:scaleY(1) rotate(8deg)}}@keyframes garden-flight{0%{translate:-15px 14px;rotate:-4deg}to{translate:30px -23px;rotate:7deg}}.departing{pointer-events:none;animation:cover-depart 1.1s cubic-bezier(.65,0,.25,1) forwards}.departing .portrait-seal{animation:seal-release .35s ease forwards}.departing .seal-instruction{opacity:0;transition:opacity .25s}@keyframes seal-release{to{transform:rotate(18deg) scale(1.25);opacity:0}}@keyframes cover-depart{0%,20%{transform:translateY(0);opacity:1}65%{opacity:.85}to{transform:translateY(-90vh);opacity:0}}.refined-invitation{animation:none!important}.is-revealing{animation:page-arrive 1.1s ease both!important}@keyframes page-arrive{0%,20%{opacity:0;transform:translateY(45px)}to{opacity:1;transform:none}}.refined-invitation .couple-watermark{opacity:.3!important}.refined-invitation .date-line>span:first-child{font:clamp(28px,6vw,39px) Georgia,serif;letter-spacing:.025em;line-height:1.35;color:#405b3a}.countdown{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}.countdown b{font-variant-numeric:tabular-nums}.countdown span{font-size:10px!important}.reveal.ready{opacity:0;transform:translateY(25px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}.reveal.ready[data-reveal=left]{transform:translate(-22px)}.reveal.ready[data-reveal=right]{transform:translate(22px)}.reveal.ready[data-reveal=crossfade]{transform:none}.reveal.ready.seen{opacity:1;transform:none}.venue-map{display:block;width:100%;height:290px;margin:28px 0 0;border:1px solid #8a9a7b55;border-radius:120px 120px 6px 6px;background:#e7eada}.reply-summary{text-align:left;margin:25px 0;display:grid;gap:12px}.reply-summary div{border-bottom:1px solid #83907130;padding-bottom:9px}.reply-summary dt{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#66765c}.reply-summary dd{margin:4px 0;overflow-wrap:anywhere}.rsvp-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.recovery-panel{text-align:left;margin-top:22px;font-size:13px}.recovery-panel summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px}.recovery-panel form{display:grid;gap:12px;margin-top:14px}.recovery-code{display:block;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#f1efe6;padding:14px;font-size:12px}.rsvp-status{padding:20px 0}.success-note{color:#456441}.confirmation .button{margin-top:10px}@media(max-width:400px){.cover-rule{inset:12px}.cover-heading{top:7%}.cover-date{bottom:7%}.countdown b{font-size:28px!important}.countdown span{font-size:9px!important}}@media(prefers-reduced-motion:reduce){.pastel-bird,.bird-wing,.departing,.departing .portrait-seal,.is-revealing{animation:none!important}.reveal.ready{opacity:1;transform:none!important;transition:none}.portrait-seal{transition:none}}.floral-opening .cover-portrait{object-position:center}.floral-opening .cover-vellum{background:linear-gradient(transparent,#fffaf035 20%,#fffaf025 70%,transparent)}.floral-opening .cover-heading{top:23%}.floral-opening .cover-heading .eyebrow{font-size:9px}.floral-opening .seal-position{top:54%;gap:12px}.floral-opening .cover-date{bottom:18%}.floral-opening .portrait-seal{width:140px;height:145px;padding:0;border:0;border-radius:50%;background:none;box-shadow:none;transition:transform .22s ease}.floral-opening .portrait-seal:hover{transform:rotate(-4deg) translateY(-3px);box-shadow:none}.floral-opening .portrait-seal:active{transform:scale(.96)}.wax-art{width:100%;height:100%;overflow:visible}.floral-opening .seal-instruction{background:transparent;font-size:9px;letter-spacing:.18em}.breeze-toggle{position:absolute;bottom:5%;left:50%;transform:translate(-50%);border:0;border-bottom:1px solid #61725765;padding:7px 3px;background:#fffaf0b0;color:#526047;font:10px Georgia,serif;cursor:pointer;white-space:nowrap;z-index:3}.breeze-toggle:focus-visible{outline:2px solid #526047;outline-offset:3px}.floral-opening .pastel-bird{left:-16%;right:auto;animation:letter-flight 17s linear infinite;z-index:2;width:52px}.floral-opening .bird-1{top:17%;animation-delay:-5s}.floral-opening .bird-2{top:68%;animation-duration:23s;animation-delay:-12s;width:40px}.floral-opening .bird-3{top:40%;animation-duration:19s;animation-delay:-16s;width:32px}.floral-opening .bird-wing{animation-duration:.85s}@keyframes letter-flight{0%{left:-16%;translate:0 14px;rotate:-8deg;opacity:0}10%{opacity:1}45%{translate:0 -32px;rotate:6deg}80%{opacity:1}to{left:110%;translate:0 8px;rotate:-6deg;opacity:0}}.garden-breeze{position:absolute;inset:0;pointer-events:none;overflow:hidden}.swaying-sprig{position:absolute;width:100px;height:230px;opacity:.32;transform-origin:50% 100%;animation:sprig-sway 7s ease-in-out infinite alternate}.sprig-0{bottom:1%;left:-20px}.sprig-1{top:-50px;right:-24px;rotate:180deg;animation-delay:-3s}@keyframes sprig-sway{0%{transform:rotate(-5deg)}to{transform:rotate(6deg)}}.drifting-petal{position:absolute;top:-5%;left:calc(8% + var(--petal) * 15%);width:7px;height:13px;background:#d7a59a;border-radius:80% 0 80% 10%;opacity:0;animation:petal-fall 18s linear infinite;animation-delay:calc(var(--petal) * -3s)}@keyframes petal-fall{0%{transform:translate(0) rotate(0);opacity:0}15%{opacity:.45}80%{opacity:.3}to{transform:translate(40px,95vh) rotate(230deg);opacity:0}}.breeze-paused .pastel-bird,.breeze-paused .bird-wing,.breeze-paused .swaying-sprig,.breeze-paused .drifting-petal{animation-play-state:paused}@media(max-height:600px){.floral-opening .cover-heading{top:12%}.floral-opening .cover-date{bottom:10%}.floral-opening .portrait-seal{width:100px;height:105px}.breeze-toggle{bottom:1%}.floral-opening .cover-heading h1{margin:10px 0}}@media(prefers-reduced-motion:reduce){.floral-opening .pastel-bird,.floral-opening .bird-wing,.swaying-sprig,.drifting-petal{animation:none!important}.floral-opening .bird-1{left:15%}.floral-opening .bird-2{left:75%}.floral-opening .bird-3{left:80%}.breeze-toggle{display:none}}@font-face{font-family:Wedding Allura;src:url(/fonts/Allura-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}.refined-invitation .hero .hero-copy h1{font-family:Wedding Allura,Brush Script MT,cursive;font-size:clamp(64px,13vw,108px);font-weight:400;line-height:1.05;letter-spacing:0;padding-inline:12px}.refined-invitation .hero .hero-copy h1 em{font-family:inherit;font-style:normal;font-size:.57em;line-height:.9;letter-spacing:0}.refined-invitation .closing-blessing{position:relative;container-type:inline-size;padding-top:clamp(48px,9vw,64px)!important;background:#faf7ef;isolation:isolate}.closing-blessing .closing-artwork{position:relative}.refined-invitation .closing-blessing .closing-portrait{width:100%;height:auto;display:block;opacity:.1;filter:saturate(.85);-webkit-mask-image:linear-gradient(#000 92%,transparent);mask-image:linear-gradient(#000 92%,transparent)}.refined-invitation .closing-blessing .closing-copy{position:absolute;inset:3% 12% auto;margin:0;padding:0;z-index:4;text-align:center;color:#56694a}.closing-blessing .closing-copy .brand-mark{width:clamp(55px,13cqw,90px);height:clamp(55px,13cqw,90px);object-fit:contain;margin:0 auto}.refined-invitation .closing-blessing .closing-names{font:400 clamp(29px,7cqw,48px) / 1.15 "Wedding Allura",cursive;letter-spacing:0;margin:9px 0 5px}.refined-invitation .closing-blessing .closing-date{font:400 clamp(12px,2.8cqw,19px) / 1.4 Georgia,serif;letter-spacing:.06em;margin:0 0 9px}.refined-invitation .closing-blessing .closing-scripture{font:italic clamp(13px,3cqw,20px) / 1.4 Georgia,serif;margin:0;text-wrap:balance}.refined-invitation .closing-blessing .closing-verse{font:400 clamp(10px,2.1cqw,14px) / 1.5 Georgia,serif;letter-spacing:.08em;margin:5px 0 0}.closing-water{position:absolute;inset:55% 0 auto auto;width:24%;height:13%;overflow:hidden;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse,#000 15%,transparent 72%);mask-image:radial-gradient(ellipse,#000 15%,transparent 72%)}.closing-water span{position:absolute;inset:-10%;background:repeating-linear-gradient(177deg,transparent 0 12px,#fffcf1a3 13px 14px,transparent 16px 25px);opacity:.35;animation:pond-light 8s ease-in-out infinite alternate}.closing-water span+span{animation-delay:-4s;animation-duration:11s;opacity:.2}@keyframes pond-light{0%{transform:translate(-5px,-2px) scaleX(.96);opacity:.2}to{transform:translate(5px,2px) scaleX(1.06);opacity:.45}}.water-paused .closing-water span{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.closing-water{display:none}}.refined-invitation .hero .family-invitation{max-width:34em;margin:0 auto 1.25rem;font-size:clamp(.95rem,2.5vw,1.15rem);line-height:1.65;text-wrap:pretty}:root{--ivory: #f8f4eb;--sage: #586b50;--blush: #c7979a;--motion-ease: cubic-bezier(.22, .7, .15, 1)}html{scrollbar-color:#c69b9d #f8f4eb;scrollbar-width:thin;scroll-padding-top:90px}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:var(--ivory)}::-webkit-scrollbar-thumb{background:#c69b9d;border:2px solid var(--ivory);border-radius:12px}::-webkit-scrollbar-thumb:hover{background:#ab7e83}body{background:radial-gradient(ellipse at 10% 20%,#dfe5d4,transparent 50%),radial-gradient(ellipse at 95% 70%,#ead2d2,transparent 55%),#f5f1e7}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a.button{min-height:44px}:focus-visible{outline:2px solid #647e58;outline-offset:5px}input,select,textarea{font-size:16px!important;max-width:100%}img{max-width:100%}.brand-mark{display:inline-block;object-fit:contain;vertical-align:middle;flex-shrink:0}.brand-light{filter:brightness(0) invert(1)}.invitation.refined-invitation{width:min(100%,680px);max-width:680px;margin-inline:auto;box-shadow:0 15px 90px #53654820;transition:opacity .18s ease;overflow:clip}.invitation.refined-invitation[hidden]{display:none}.refined-invitation.is-revealing{opacity:0;animation:none!important}.refined-invitation.is-revealed{opacity:1;animation:invitation-bloom .9s ease both!important}.refined-invitation.returning{opacity:0;animation:none!important}@keyframes invitation-bloom{0%{opacity:0}to{opacity:1}}.nav{padding:8px 18px;height:auto;min-height:64px;gap:12px}.nav nav{gap:14px;flex-wrap:wrap;justify-content:flex-end}.return-envelope{font:inherit;font-size:10px;color:var(--sage);border:0;background:none;padding:4px 0;cursor:pointer}.nav .monogram{line-height:1}.nav a{display:inline-flex;align-items:center;min-height:44px}.letter-stage{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:#f8f4eb url(/garden-800.webp) center/cover;min-height:100svh}.letter-stage:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,#fffaf38c,transparent 75%)}.envelope-scene{width:min(84vw,530px);position:relative;perspective:1400px;z-index:3;margin-top:5vh}.physical-envelope{width:100%;aspect-ratio:1.44;position:relative;transform:rotate(-2deg);filter:drop-shadow(0 22px 24px #5b50422b);transform-style:preserve-3d}.envelope-back,.envelope-pocket,.envelope-fold,.envelope-flap,.paper-letter{position:absolute;inset:0;background-color:#f4ebdc;background-image:repeating-linear-gradient(13deg,#8d7d6910 0 .5px,transparent .5px 3px);border-radius:4px}.envelope-back{background-color:#ded2bd;box-shadow:inset 0 0 12px #8c795644}.paper-letter{inset:5% 5% 4%;z-index:1;background-color:#fffcf5;border:1px solid #c9bda45c;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px #85755b33}.envelope-pocket{z-index:3;clip-path:polygon(0 100%,50% 40%,100% 100%);background:linear-gradient(170deg,#efe4d1,#fffaf0);filter:drop-shadow(0 -2px 2px #8e7d5c44)}.envelope-fold{z-index:2;background:linear-gradient(135deg,#fffaf0,#e9dfce)}.fold-left{clip-path:polygon(0 0,55% 53%,0 100%)}.fold-right{clip-path:polygon(100% 0,45% 53%,100% 100%);background:linear-gradient(225deg,#fffaf0,#e9dfce)}.envelope-flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 59%);background:linear-gradient(180deg,#fffbf1,#eee2ce 58%,#d4c5aa 59%);transform-origin:50% 0;backface-visibility:visible;filter:drop-shadow(0 3px 2px #78654b44)}.seal-control{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:clamp(84px,23vw,120px);height:clamp(84px,23vw,120px);padding:0;border:0;background:none;z-index:6;cursor:pointer;filter:drop-shadow(1px 6px 4px #684c3a60)}.seal-control:focus-visible{outline-offset:7px;border-radius:48%}.wax-half{position:absolute;inset:0}.wax-half svg{display:block;width:100%;height:100%}.half-left{clip-path:polygon(0 0,52% 0,48% 25%,54% 43%,47% 62%,53% 79%,50% 100%,0 100%)}.half-right{clip-path:polygon(52% 0,100% 0,100% 100%,50% 100%,53% 79%,47% 62%,54% 43%,48% 25%)}.wax-monogram{display:grid;place-items:center;width:78px;height:78px;filter:sepia(.5);mix-blend-mode:multiply;opacity:.8}.unseal-label{display:block;text-align:center;margin-top:44px;font:italic 17px Georgia,serif;letter-spacing:.7px;color:#5d6750}.opening-complete{pointer-events:none}.unsealing .seal-control{animation:seal-compress var(--opening) var(--motion-ease) both}.unsealing .half-left{animation:wax-left var(--opening) ease both}.unsealing .half-right{animation:wax-right var(--opening) ease both}.unsealing .envelope-flap{animation:flap-lift var(--opening) var(--motion-ease) both}.unsealing .paper-letter{animation:letter-extract var(--opening) var(--motion-ease) both}.unsealing .physical-envelope{animation:envelope-away var(--opening) ease both}.unsealing .unseal-label{transition:opacity .2s;opacity:0}.unsealing{animation:scene-dissolve var(--opening) ease both}.unsealing .opening-complete{animation:opening-clock var(--opening) linear}@keyframes seal-compress{0%{transform:translate(-50%,-50%) scale(1)}8%{transform:translate(-50%,-50%) scale(.95);filter:drop-shadow(0 2px 1px #684c3a50)}16%,to{transform:translate(-50%,-50%) scale(1)}}@keyframes wax-left{0%,10%{transform:none;opacity:1}26%{transform:translate(-6px,3px) rotate(-7deg);opacity:1}42%,to{transform:translate(-12px,20px) rotate(-12deg);opacity:0}}@keyframes wax-right{0%,10%{transform:none;opacity:1}26%{transform:translate(6px,2px) rotate(6deg);opacity:1}42%,to{transform:translate(12px,15px) rotate(10deg);opacity:0}}@keyframes flap-lift{0%,18%{transform:rotateX(0);z-index:4}48%,to{transform:rotateX(178deg);z-index:0}}@keyframes letter-extract{0%,32%{transform:none}64%{transform:translateY(-52%) rotate(2deg);z-index:1}75%{transform:translateY(-53%) rotate(2deg);z-index:5;opacity:1}to{transform:translateY(-18%) rotate(2deg) scale(1.65);z-index:5;opacity:0}}@keyframes envelope-away{0%,65%{transform:rotate(-2deg);opacity:1}to{transform:translateY(8vh) rotate(0);opacity:0}}@keyframes scene-dissolve{0%,75%{opacity:1}to{opacity:0}}@keyframes opening-clock{0%{--clock: 0}to{--clock: 1}}.botanical-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;contain:layout paint}.living-floral{position:absolute;width:42%;height:58%;background-image:url(/garden-800.webp);background-size:238% 175%;opacity:.55;transform-origin:bottom center;-webkit-mask-image:linear-gradient(90deg,#000 45%,transparent),linear-gradient(#000 70%,transparent);mask-image:linear-gradient(90deg,#000 45%,transparent),linear-gradient(#000 70%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect;animation:branch-sway 13s ease-in-out infinite alternate}.floral-a{left:-4%;top:-8%;background-position:top left}.floral-b{right:-4%;bottom:-5%;background-position:bottom right;transform-origin:bottom right;animation-duration:17s;animation-delay:-7s;-webkit-mask-image:linear-gradient(270deg,#000 35%,transparent),linear-gradient(0deg,#000 70%,transparent);mask-image:linear-gradient(270deg,#000 35%,transparent),linear-gradient(0deg,#000 70%,transparent)}@keyframes branch-sway{0%{transform:rotate(-1.3deg) translateY(0)}to{transform:rotate(1.5deg) translateY(5px)}}.scene-bird{position:absolute;width:39px;left:-50px;top:18%;opacity:.65;animation:bird-flight 24s linear infinite}.scene-bird svg{width:100%;fill:#bba4a4;stroke:#827d7040;stroke-width:1}.bird-route-1{top:75%;animation:bird-flight-back 31s linear -14s infinite;width:31px}.bird-route-1 svg{fill:#8b9e83}.bird-wing{transform-origin:52px 39px;animation:wing-beat .9s ease-in-out infinite alternate}.bird-wing.far{animation-delay:-.3s;opacity:.6}@keyframes wing-beat{to{transform:scaleY(.25) rotate(9deg)}}@keyframes bird-flight{0%{left:-50px;transform:translateY(25px) rotate(-4deg)}40%{transform:translateY(-26px) rotate(4deg)}75%,to{left:110%;transform:translateY(12px) rotate(-5deg)}}@keyframes bird-flight-back{0%{left:110%;transform:scaleX(-1) translateY(0)}40%{transform:scaleX(-1) translateY(-38px)}80%,to{left:-50px;transform:scaleX(-1) translateY(20px)}}.scene-petal{position:absolute;top:-20px;left:calc(12% + var(--n) * 32%);width:7px;height:12px;background:#d6a9a280;border-radius:90% 15% 85%;animation:petal-fall calc(19s + var(--n) * 4s) linear infinite;animation-delay:calc(var(--n) * -8s)}@keyframes petal-fall{to{transform:translate(35px,100vh) rotate(240deg);opacity:0}}.scene-paused *{animation-play-state:paused!important}.hero{position:relative;min-height:890px}.refined-invitation .couple-watermark{opacity:var(--portrait-opacity, .43)!important;object-fit:cover;object-position:50% 45%;filter:saturate(.7)}.hero-copy{position:relative;z-index:4}.hero:after{background:radial-gradient(ellipse at 50% 35%,#fffaf06b,transparent 80%)}.hero-copy>*{animation:hero-rise .9s var(--motion-ease) both}.is-revealing .hero-copy>*{animation:none;opacity:0}.hero-copy>:nth-child(2){animation-delay:80ms}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(4){animation-delay:.24s}.hero-copy>:nth-child(5){animation-delay:.32s}@keyframes hero-rise{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}.transition{transition:opacity .65s ease var(--delay, 0ms),transform .65s var(--motion-ease) var(--delay, 0ms)}.transition.waiting{opacity:0}.transition.waiting[data-transition=vertical]{transform:translateY(20px)}.transition.waiting[data-transition=horizontal]{transform:translate(24px)}.transition.visible{opacity:1;transform:none}.state-leaving{opacity:0;transform:translateY(-5px);transition:.18s ease}.state-arriving{animation:state-enter .35s ease both}@keyframes state-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.progressive-timeline{position:relative}.progressive-timeline article{position:relative;z-index:1}.progressive-timeline article:before{display:none!important}.timeline-rail{position:absolute;left:20px;top:20px;bottom:95px;width:1px;background:#a6b49c44}.timeline-rail span{display:block;width:100%;height:100%;background:#8d9e7d;transform:scaleY(var(--line-progress, 0));transform-origin:top}.timeline-number{background:#f4f2e8}.timeline article p{overflow-wrap:anywhere}.venue-card{margin-top:30px;padding:30px 22px;border:1px solid #aeb79c88;border-radius:140px 140px 12px 12px;background:linear-gradient(#fcfaf2da,#fcfaf2de),url(/garden-480.webp) center/cover;text-align:center}.venue-card-heading p{font-size:14px}.venue-card .button{margin:20px auto 0;display:inline-flex}.styled-map{height:0;visibility:hidden;overflow:hidden;border-radius:16px}.styled-map:not(.map-ready){position:absolute;width:1px;height:1px;opacity:0}.styled-map.map-ready{height:300px;visibility:visible;margin-top:20px}.venue-pin{width:44px;height:44px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#697e5b;color:#fffaf2;border:3px solid #faf5e9;display:grid;place-items:center;font-size:25px;box-shadow:0 3px 7px #33472a44}.returning-guest{font-size:14px;border-bottom:1px solid #879a7333;padding-bottom:20px;margin-bottom:24px}.otp-access{display:grid;gap:16px}.otp-access label{display:grid;gap:8px}.otp-access input{width:100%;padding:14px;border:1px solid #9eac9255;background:#fffbf5;border-radius:4px}.botanical-confirmation{background:linear-gradient(#fffaf0e6,#fffaf0ed),url(/garden-480.webp) center/cover;border:1px solid #a4af9255;padding:26px 18px;text-align:center}.botanical-confirmation h3{font-size:27px;line-height:1.4}.confirmation-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.rsvp-form input[readonly]{background:#e9eddf;color:#526447}.privacy-note{margin-top:20px}.illustrated-closing{position:relative;padding:0!important;background:#f8f5ed;overflow:hidden;min-height:0;isolation:isolate}.closing-portrait{display:block;width:100%;height:auto;max-height:none;object-fit:contain;-webkit-mask-image:linear-gradient(transparent,#000 8%,#000 85%,transparent);mask-image:linear-gradient(transparent,#000 8%,#000 85%,transparent)}.closing-copy{position:relative;z-index:4;padding:10px 24px 65px;margin-top:-25px}.closing-copy p{font:34px/1.4 Georgia,serif;color:#56694a}.closing-copy .closing-date{font-size:13px;letter-spacing:2px;margin-top:15px}.illustrated-closing .floral-a{height:35%}.illustrated-closing .floral-b{height:42%}.botanical-progress{position:fixed;right:12px;top:35%;height:30vh;width:8px;z-index:10;pointer-events:none}.botanical-progress span{display:block;width:1px;height:100%;background:#9da98b66}.botanical-progress i{position:absolute;left:-6px;top:calc(var(--progress, 0) * 100%);font-size:20px;color:#869976}footer{gap:15px;flex-wrap:wrap;padding-bottom:max(25px,env(safe-area-inset-bottom))}.privacy-banner{padding-bottom:max(16px,env(safe-area-inset-bottom))}@media(min-width:1000px){body:before,body:after{content:"";position:fixed;top:0;bottom:0;width:calc((100vw - 680px)/2);background:url(/garden-800.webp) center/cover;opacity:.2;pointer-events:none;z-index:-1}body:before{left:0}body:after{right:0;transform:scaleX(-1)}.hero h1{font-size:94px}.hero{min-height:940px}.section{padding-inline:60px}}@media(max-width:430px){.nav{padding:6px 12px;gap:6px}.nav nav{gap:10px}.nav .brand-mark{width:32px;height:32px}.return-envelope,.nav a{font-size:9px}.hero{padding-inline:20px;min-height:850px}.hero h1{font-size:clamp(57px,16vw,72px)}.section{padding-inline:24px}.form-card{padding-inline:18px}.timeline article{grid-template-columns:40px minmax(0,1fr);gap:16px}.timeline-rail{left:19px}.botanical-progress{display:none}.scene-petal:nth-of-type(3){display:none}.envelope-scene{width:87vw}.unseal-label{margin-top:35px}.date-line>span:first-child{font-size:29px!important}.closing-copy p{font-size:30px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.transition.waiting,.reveal.ready{opacity:1!important;transform:none!important}.botanical-scene .scene-bird,.scene-petal{display:none}.timeline-rail span{transform:scaleY(1)}.is-revealing .hero-copy>*{opacity:1}.refined-invitation.is-revealed{opacity:1}}.otp-card form,.otp-card label{display:grid;gap:12px}.otp-card form{margin:20px 0}.otp-card input{width:100%;padding:14px;border:1px solid #9eac9266;background:#fffbf5;border-radius:4px}.otp-input{letter-spacing:.6em;text-align:center}.botanical-confirmation:after{content:"❧";display:block;color:#b88d8e;font-size:32px;margin-top:18px;animation:confirmation-bloom .9s ease both}@keyframes confirmation-bloom{0%{opacity:0;transform:translateY(-10px) rotate(-12deg)}to{opacity:1;transform:none}}.rsvp-flow .choices{display:grid;grid-template-columns:1fr;gap:10px}.rsvp-flow .choices label{min-height:48px}.rsvp-flow input,.rsvp-flow select,.rsvp-flow textarea,.admin-editor input,.admin-editor select,.admin-editor textarea{max-width:100%;min-width:0;font-size:16px}.rsvp-flow label,.admin-editor label{min-width:0}.rsvp-flow .field-error,.admin-shell .field-error{color:#8d3545;display:block;line-height:1.5}[aria-invalid=true]{border-color:#8d3545!important}.garden-error{background:linear-gradient(#fffaf2eb,#fffaf2eb),url(/garden-480.webp) center/cover;border:1px solid #b88b91;padding:22px;margin:18px 0;text-align:center;border-radius:18px;color:#573b40}.garden-error h3{font:italic 24px/1.3 Georgia,serif;margin:8px 0}.garden-error p{font-size:15px;line-height:1.6;overflow-wrap:anywhere}.garden-not-found{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:36px 24px;background:#faf6ec url(/garden-stationery.webp) center/cover;color:#465c3d}.garden-not-found h1{font:clamp(36px,7vw,64px) / 1.15 Georgia,serif}.garden-not-found p{max-width:38ch}.code-timer{color:#526447;font-variant-numeric:tabular-nums}.otp-card form{display:grid;gap:16px;margin:22px 0}.otp-card small,.admin-editor small{display:block;line-height:1.5;font-size:12px;margin-top:7px}.password-row{display:flex;gap:8px;align-items:center}.password-row input{flex:1;min-width:0}.password-row button{min-height:44px;flex-shrink:0}.login-card .remember{display:flex;align-items:center;gap:10px;font-size:14px;margin:20px 0}.login-card .remember input{width:20px}.admin-editor,.delete-confirmation{margin:24px 0;border:1px solid #a2ad94;background:#fffaf1;padding:clamp(20px,4vw,38px);border-radius:16px}.admin-editor form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-editor label{display:flex;flex-direction:column;gap:8px}.admin-editor input,.admin-editor select,.admin-editor textarea{width:100%;padding:12px;border:1px solid #a2ad94;background:#fffdf8}.admin-shell .stats{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-toolbar>div{display:flex;gap:8px;flex-wrap:wrap}.admin-shell td button{display:block;min-height:44px;margin-bottom:4px}.admin-shell button{cursor:pointer}.badge.maybe{background:#f1e5dc;color:#725938}.badge.pending{background:#e7e9e2;color:#526447}.admin-shell :focus-visible,.rsvp-flow :focus-visible{outline:3px solid #64794f;outline-offset:3px}@media(max-width:600px){.admin-editor form{grid-template-columns:1fr}.admin-shell .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.password-row{flex-wrap:wrap}}.phone-field-group{min-width:0;width:100%}.phone-inline-row{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:8px;align-items:start}.phone-inline-row label{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0}.phone-inline-row input,.phone-inline-row select{box-sizing:border-box;width:100%;min-width:0;height:48px;padding-inline:8px}.phone-field-group>small{display:block;margin-top:8px;font-size:12px;line-height:1.5}.rsvp-edit-at-end{margin-top:24px;padding-top:20px;border-top:1px solid #c8cdbd;text-align:center}
