@font-face{font-family:Cormorant;src:url('assets/cormorant-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:GreatVibes;src:url('assets/great-vibes.ttf') format('truetype');font-display:swap}
:root{color-scheme:light;--paper:#faf8f1;--ink:#354839;--leaf:#637247;--gold:#a18c59;--muted:#74796c;--rule:#dfdfce;--sage:#eef0e5;--sans:Manrope,Arial,sans-serif;--serif:Cormorant,Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--leaf);outline-offset:6px}::selection{background:#d9e1c4;color:#263c2c}svg{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}img{display:block;max-width:100%;height:auto}.skip-link{position:absolute;left:20px;top:-70px;z-index:20;padding:14px;background:var(--ink);color:white}.skip-link:focus{top:16px}.site-header{height:108px;max-width:1440px;margin:auto;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid var(--rule)}.brand{display:inline-flex;align-items:center;gap:22px;white-space:nowrap}.brand-name{font:400 34px/1 var(--serif);letter-spacing:-1.1px}.brand-dot{color:var(--gold)}.brand-divider{width:1px;height:30px;background:var(--rule)}.brand-weddings{font:400 35px/1.2 GreatVibes,cursive;color:var(--leaf);padding-top:6px}.site-header nav{display:flex;align-items:center;gap:39px;font-size:11px;letter-spacing:.02em}.verse-nav{padding:12px 0}.verse-nav:hover{color:var(--leaf)}.nav-invitation{display:flex;align-items:center;gap:24px;padding:13px 0;border-bottom:1px solid var(--gold)}.nav-invitation svg{width:19px;height:19px}.hero{max-width:1440px;margin:auto;min-height:704px;display:grid;grid-template-columns:47% 53%;padding:48px 5.5% 50px;align-items:center}.hero-copy{position:relative;z-index:2;padding:15px 24px 15px 0}.eyebrow{display:flex;align-items:center;gap:14px;font:400 9px/1.8 var(--sans);letter-spacing:.23em;color:var(--leaf);margin:0 0 24px}.eyebrow>span{width:29px;height:1px;background:var(--gold)}h1{font:400 clamp(59px,5.65vw,82px)/.97 var(--serif);letter-spacing:-.038em;margin:0 0 30px}h1 em{font:400 clamp(48px,4.65vw,67px)/1.3 GreatVibes,cursive;letter-spacing:0;display:inline-block;color:var(--leaf);margin-top:9px;white-space:nowrap}.hero-intro{max-width:340px;font-size:12px;line-height:1.95;color:var(--muted);margin:0 0 28px}.button{border:1px solid transparent;padding:17px 23px;display:inline-flex;align-items:center;justify-content:center;gap:31px;font-size:11px;letter-spacing:.02em;min-height:52px;transition:background .25s,transform .25s,box-shadow .25s}.button-green{background:var(--ink);color:#fffef7;box-shadow:0 4px 12px #3548390b}.button svg{width:20px;height:20px;transition:transform .25s}.button:hover{background:#49613f;box-shadow:0 7px 19px #3548391c}.button:hover svg{transform:translateX(4px)}.button:active{transform:translateY(1px)}.button:disabled{opacity:.7;cursor:wait}.hero-note{display:flex;align-items:center;gap:15px;margin-top:34px;font:italic 16px/1.3 var(--serif);color:var(--muted)}.rings{width:48px;height:35px;color:var(--gold);stroke-width:1.05}.hero-art{position:relative;margin-left:17px}.photo-edge{position:relative;padding:9px;border:1px solid #d2cfb9;border-radius:240px 240px 2px 2px}.photo-window{height:550px;overflow:hidden;border-radius:231px 231px 0 0;background:#e7e6da}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:63% 50%;animation:photo-breathe 24s ease-in-out infinite alternate;transform-origin:65% 60%}.photo-caption{display:flex;align-items:center;gap:16px;padding:20px 7px 0;font-size:8px;color:var(--muted);letter-spacing:.17em}.photo-caption>span:last-child{font:italic 16px var(--serif);letter-spacing:0;white-space:nowrap}.caption-line{height:1px;background:var(--rule);flex:1}.hero-seal{position:absolute;left:-45px;bottom:79px;width:94px;height:94px;border-radius:50%;background:#fbf9f1;box-shadow:0 3px 0 #ded9c2,0 7px 28px #334b3320;outline:1px solid #bba979;outline-offset:-8px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--gold);gap:5px;transform:rotate(-13deg)}.hero-seal>span{font-size:6px;letter-spacing:.22em}.hero-seal svg{width:44px;height:31px;stroke-width:1.1}
.love-section{position:relative;overflow:hidden;background:var(--sage);border-block:1px solid #dfe3d3;min-height:420px;display:flex;align-items:center;justify-content:center;padding:60px 26px}.verse-content{position:relative;z-index:2;max-width:760px;text-align:center}.verse-content>.eyebrow{justify-content:center;font-size:8px;letter-spacing:.27em;margin:0 0 11px}.verse-ornament{display:flex;justify-content:center;align-items:center;gap:18px;color:var(--gold);margin-bottom:18px}.verse-ornament span{height:1px;width:45px;background:#c5cbb3}.verse-ornament svg{width:23px;height:23px;stroke-width:1.05}blockquote{margin:0}blockquote p{font:400 clamp(29px,3.1vw,42px)/1.25 var(--serif);letter-spacing:-.015em;margin:0 0 27px}blockquote em{color:#6c7a48}.verse-source{display:inline-flex;flex-direction:column;gap:8px;font-size:9px;letter-spacing:.2em;color:#526245;padding:5px}.translation{font-size:8px;letter-spacing:.025em;color:#737b68}.translation>span{padding-left:5px}.verse-source:hover .translation{text-decoration:underline}.botanical{position:absolute;width:285px;opacity:.78;pointer-events:none;transform-origin:85% 95%;animation:botanical-sway 11s ease-in-out infinite alternate}.botanical-left{left:-115px;bottom:-40px;rotate:-19deg}.botanical-right{right:-113px;top:-56px;rotate:168deg;animation-delay:-7s;opacity:.65}
.invitation-section{max-width:1180px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:75px;margin:auto;padding:90px 45px 55px;scroll-margin-top:25px}.stationery-scene{position:relative;height:420px;isolation:isolate}.stationery-circle{position:absolute;left:0;top:19px;width:365px;height:365px;border-radius:50%;background:#efeee2}.letter-paper{position:absolute;top:37px;left:77px;width:264px;height:312px;background:linear-gradient(120deg,#fffef9,#f5f0e3);box-shadow:2px 3px 20px #6c6c4f16;transform:rotate(-7deg);border:1px solid #ddd8c4;display:flex;align-items:center;flex-direction:column;padding:26px 12px;color:var(--leaf)}.letter-paper:after{content:"";position:absolute;inset:12px;border:1px solid #ded4b9;pointer-events:none}.letter-top{font:6px/1.4 var(--sans);letter-spacing:.18em}.letter-script{font:39px GreatVibes,cursive;margin-top:25px}.letter-rings{width:43px;height:30px;margin-top:10px;color:var(--gold)}.letter-bottom{font:6px var(--sans);letter-spacing:.2em;margin-top:14px}.envelope{position:absolute;left:49px;bottom:49px;width:325px;height:184px;background:#e7e7d3;transform:rotate(-7deg);box-shadow:6px 16px 28px #4d543320;overflow:hidden;border:1px solid #d0d3b8}.envelope:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,#eef0dd,#e0e3cb);clip-path:polygon(0 0,51% 60%,100% 0)}.envelope-folds{position:absolute;inset:0;background:linear-gradient(0deg,#e6e8d4,#f1f2e3);clip-path:polygon(0 100%,0 4%,50% 55%,100% 4%,100% 100%)}.envelope-folds:after{content:"";position:absolute;inset:0;background:#eaecdc;clip-path:polygon(0 100%,50% 40%,100% 100%)}.wax-seal{position:absolute;left:calc(50% - 25px);top:55px;width:50px;height:50px;border-radius:45% 52% 44% 49%;display:flex;justify-content:center;align-items:center;font:italic 24px var(--serif);color:#8e783f;text-shadow:0 1px #fff8cb;background:radial-gradient(circle at 32% 25%,#e5d9a6,#c0aa69);box-shadow:inset 0 0 0 4px #baa26355,0 2px 4px #6a61384d;outline:1px solid #d5c28a;outline-offset:-7px}.wax-seal span{font-size:20px;margin-left:-2px}.stationery-flower{position:absolute;width:190px;right:-5px;bottom:-9px;transform-origin:90% 100%;rotate:7deg;animation:botanical-sway 12s ease-in-out infinite alternate}.invitation-copy .eyebrow{font-size:8px;margin-bottom:15px}.invitation-copy h2{font:400 51px/1.02 var(--serif);letter-spacing:-.025em;margin:0 0 19px}.invitation-copy h2 em{color:var(--leaf);font-weight:400}.section-intro{font-size:12px;line-height:1.9;color:var(--muted);max-width:360px;margin:0 0 26px}form label{font-size:12px;color:var(--ink);display:block}.field-help{font-size:10px;line-height:1.7;color:var(--muted);margin:8px 0 15px}.invitation-input{position:relative;display:flex;align-items:center;background:#fffdf7;border:1px solid #c8cdbb;min-height:51px;margin-bottom:12px}.invitation-input:focus-within{outline:2px solid var(--leaf);outline-offset:2px}.invitation-input svg{width:17px;height:17px;color:var(--muted);margin-left:16px;flex-shrink:0;stroke-width:1.25}.invitation-input input{border:0;outline:0;background:transparent;min-width:0;width:100%;height:50px;color:var(--ink);padding:12px 12px 12px 11px;font-size:11px}.invitation-input input::placeholder{color:#858878;opacity:1}.invitation-input:has([aria-invalid=true]){border-color:#9b5b3c}form>.button{width:100%;justify-content:space-between;padding:14px 20px}.form-status{font-size:11px;line-height:1.7;margin:0;color:#81513c}.form-status:not(:empty){margin-top:12px}.personal-note{font-size:9px;line-height:1.8;color:var(--muted);margin:17px 0 0}.closing-note{max-width:1100px;margin:10px auto 60px;padding:0 35px;display:flex;align-items:center;justify-content:center;gap:30px}.closing-note>span{height:1px;background:var(--rule);flex:1}.closing-note p{font:400 22px var(--serif);text-align:center;white-space:nowrap;color:#627051}.closing-note em{font-weight:400}.site-footer{background:#354839;color:#faf8ef;padding:33px 5.5%;display:flex;align-items:center;justify-content:space-between;gap:30px}.site-footer .brand-name{font-size:29px}.site-footer .brand-weddings{font-size:29px;color:#e6e4cb}.site-footer .brand{gap:17px}.site-footer .brand-divider{background:#ffffff30;height:25px}.site-footer>p{font:italic 17px var(--serif);color:#d4dcc9}.footer-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px;font-size:10px}.footer-actions button{color:#cbd2bd;border:0;background:transparent;padding:4px 0;font-size:9px}.footer-actions a{padding:5px 0;border-bottom:1px solid #b3bc9866}.footer-actions a span{padding-left:17px}.site-footer a:focus-visible,.site-footer button:focus-visible{outline-color:#e7e9d9}.motion-paused *{animation-play-state:paused!important}
@keyframes photo-breathe{from{transform:scale(1)}to{transform:scale(1.045)}}@keyframes botanical-sway{from{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}
@media(min-width:1500px){.hero{min-height:760px;padding-top:65px;padding-bottom:65px}.photo-window{height:575px}}
@media(max-width:1050px){.site-header{padding-inline:5%;height:92px}.hero{padding:35px 5% 42px;min-height:630px;grid-template-columns:49% 51%}h1{font-size:62px}h1 em{font-size:48px}.photo-window{height:490px}.hero-intro{max-width:295px;font-size:11px}.hero-seal{width:80px;height:80px;left:-29px}.hero-seal svg{width:36px}.photo-caption{gap:10px;font-size:6px}.photo-caption>span:last-child{font-size:14px}.invitation-section{gap:45px;padding-inline:40px}.stationery-scene{transform:scale(.87);transform-origin:left center;margin-right:-35px}.invitation-copy h2{font-size:44px}.site-footer>p{display:none}.botanical{width:255px;opacity:.5}}
@media(max-width:700px){html{scroll-padding-top:18px}.site-header{height:85px;padding:0 22px;gap:12px}.brand{gap:12px}.brand-name{font-size:29px}.brand-weddings{font-size:30px;padding-top:6px}.brand-divider{height:25px}.site-header nav{font-size:9px}.verse-nav{display:none}.nav-invitation{gap:9px;padding:10px 0}.nav-invitation svg{width:16px}.hero{display:flex;flex-direction:column;padding:38px 26px 27px;gap:30px;min-height:0}.hero-copy{text-align:center;padding:0;width:100%}.hero-copy .eyebrow{justify-content:center;font-size:7px;letter-spacing:.23em;margin:0 0 22px}.hero-copy .eyebrow>span{width:20px}h1{font-size:57px;line-height:.99;letter-spacing:-.035em;margin-bottom:15px}h1 em{font-size:47px;line-height:1.2;margin-top:9px}.hero-intro{font-size:11px;max-width:293px;margin:0 auto 23px;line-height:1.9}.button{font-size:10px;min-height:49px;padding:14px 20px;gap:30px}.hero-note{display:none}.hero-art{width:100%;max-width:440px;margin:0}.photo-edge{border-radius:190px 190px 2px 2px;padding:7px}.photo-window{height:355px;border-radius:183px 183px 0 0}.hero-photo{object-position:65% 54%}.hero-seal{width:70px;height:70px;left:-10px;bottom:60px;outline-offset:-6px;gap:4px}.hero-seal>span{font-size:5px}.hero-seal svg{width:30px;height:24px}.photo-caption{font-size:6px;padding:15px 5px 0;letter-spacing:.13em}.photo-caption>span:last-child{font-size:14px}.love-section{min-height:357px;padding:51px 27px 47px}.verse-content{max-width:410px}.verse-content>.eyebrow{font-size:7px;margin-bottom:12px}.verse-ornament{margin-bottom:18px}.desktop-break{display:none}blockquote p{font-size:31px;line-height:1.22;letter-spacing:-.02em;margin-bottom:22px}.verse-source{font-size:8px}.translation{font-size:7px}.botanical{width:168px;opacity:.32}.botanical-left{left:-112px;bottom:-21px;rotate:-12deg}.botanical-right{right:-115px;top:-48px;rotate:165deg}.invitation-section{display:flex;flex-direction:column;padding:34px 28px 26px;gap:12px;max-width:475px}.stationery-scene{height:288px;width:340px;max-width:100%;transform:none;margin:0}.stationery-circle{left:15px;top:12px;width:265px;height:265px}.letter-paper{top:24px;left:69px;width:191px;height:220px;padding:20px 8px}.letter-paper:after{inset:9px}.letter-top{font-size:4.5px}.letter-script{font-size:29px;margin-top:15px}.letter-rings{width:34px;height:24px;margin-top:9px}.letter-bottom{font-size:4.5px;margin-top:10px}.envelope{left:44px;bottom:24px;width:245px;height:137px}.wax-seal{width:41px;height:41px;left:calc(50% - 20px);top:40px;font-size:21px}.wax-seal span{font-size:17px}.stationery-flower{width:137px;right:0;bottom:0}.invitation-copy{width:100%;text-align:center}.invitation-copy .eyebrow{justify-content:center;font-size:6.8px;margin-bottom:16px}.invitation-copy h2{font-size:44px;margin-bottom:18px;line-height:1.03}.section-intro{font-size:11px;margin:0 auto 25px;max-width:290px}.invitation-copy form{text-align:left}form label{font-size:12px}.field-help{font-size:10px;margin:8px 0 13px}.invitation-input input{font-size:16px;letter-spacing:-.04em}.invitation-input input::placeholder{font-size:10.5px;letter-spacing:0}.personal-note{font-size:9px;margin-top:16px}.closing-note{gap:15px;padding-inline:28px;margin:10px auto 34px}.closing-note p{font-size:18px;white-space:normal;line-height:1.4;margin-block:12px}.closing-note p em{display:block}.site-footer{padding:31px 26px;flex-direction:column;gap:18px}.site-footer .brand{gap:16px}.site-footer>p{display:block;font-size:15px;margin:0;text-align:center}.footer-actions{flex-direction:row;align-items:center;justify-content:space-between;gap:34px;width:100%;max-width:320px;padding-top:5px}.footer-actions a{font-size:9px}.footer-actions button{font-size:8px}}
@media(max-width:370px){.site-header{padding-inline:17px}.brand-name{font-size:25px}.brand-weddings{font-size:26px}.brand{gap:9px}.site-header nav{font-size:8px}.nav-invitation{gap:6px}.hero{padding-inline:22px}h1{font-size:52px}h1 em{font-size:41px}.photo-window{height:317px}.invitation-section{padding-inline:23px}.stationery-scene{transform:scale(.92);margin-block:-10px}.invitation-copy h2{font-size:40px}blockquote p{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Comfortable reading sizes across desktop and small screens. */
.hero-intro,.section-intro{font-size:14px}.site-header nav{font-size:12px}.button{font-size:12px}form label{font-size:14px}.field-help{font-size:12px}.invitation-input input{font-size:13px}.personal-note{font-size:11px}.footer-actions{font-size:12px}.footer-actions button{font-size:10px}
@media(max-width:700px){.hero-intro,.section-intro{font-size:13px}.site-header nav{font-size:10px}.button{font-size:12px}.field-help{font-size:11px}.invitation-input input{font-size:16px}.personal-note{font-size:10px}.footer-actions a,.footer-actions button{font-size:10px}}
@media(max-width:370px){.site-header nav{font-size:9px}}
