:root{--red:#741b23;--red-deep:#55131b;--paper:#f7f0e5;--ink:#67242a;--muted:#88675c;--gold:#d9ba80;--line:#d8c2a6;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--script:'Great Vibes',cursive}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #be914b;outline-offset:5px}::selection{background:var(--red);color:var(--paper)}.skip-link{position:fixed;left:16px;top:-80px;background:var(--paper);padding:12px;z-index:20}.skip-link:focus{top:16px}.script{font-family:var(--script);font-weight:400}.eyebrow{font-size:.75rem;letter-spacing:.18em;font-weight:500;line-height:1.7}.keepsake{width:48%;position:fixed;inset:0 auto 0 0;min-height:600px;background:#741b23 url('peonies.webp') center center/cover;color:#f2d8a6;display:flex;flex-direction:column;text-align:center;overflow:hidden}.keepsake:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(47,4,9,.12));pointer-events:none}.keepsake-border{position:absolute;inset:23px;border:1px solid #d6b37666;pointer-events:none}.keepsake-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;margin:37px 46px;font-size:.75rem;letter-spacing:.14em}.keepsake-top>span:first-child{font-family:var(--serif);font-size:1.5rem;letter-spacing:.08em}.keepsake-top i{font-size:1rem;font-weight:400}.keepsake-content{position:relative;z-index:1;margin:auto;padding:6px 24px 40px}.double-happiness{font-family:'Songti SC','SimSun',serif;font-size:3.1rem;line-height:1.3;display:inline-block}.keepsake-content .eyebrow{margin:21px 0 24px;font-size:.75rem;letter-spacing:.27em}.keepsake-names{font-family:var(--serif);font-size:clamp(4.3rem,6.6vw,7.8rem);font-weight:400;line-height:.92;margin:0}.keepsake-names span{display:block;font-family:var(--script);font-size:.47em;line-height:1.1;margin:8px 0}.gold-line{height:1px;width:48px;background:currentColor;margin:27px auto 20px;opacity:.6}.keepsake-date{font-size:.8rem;letter-spacing:.22em}.keepsake-bottom{position:relative;z-index:1;padding:0 20px 49px}.keepsake-bottom>span{font-family:serif;font-size:1.2rem;letter-spacing:.45em}.keepsake-bottom p{font-size:.75rem;margin:8px 0;color:#edd3a2}main{margin-left:48%;width:52%}.section{position:relative;text-align:center;padding:70px 48px}.cover{min-height:100svh;padding:33px 38px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#fffcf6 0,var(--paper) 78%)}.cover-edge{pointer-events:none;position:absolute;inset:15px;border:1px solid var(--line)}.cover-edge:before,.cover-edge:after{content:'';position:absolute;width:13px;height:13px;border:1px solid var(--line);background:var(--paper);transform:rotate(45deg)}.cover-edge:before{top:-7px;left:calc(50% - 7px)}.cover-edge:after{bottom:-7px;left:calc(50% - 7px)}.cover-top{width:100%;max-width:520px;display:flex;align-items:center;justify-content:space-between;font-size:.75rem;letter-spacing:.15em;margin-bottom:20px}.cover-top>span:last-child{font-family:serif;font-size:1.15rem;letter-spacing:.2em}.cover-script{font-size:2.05rem;margin:0 0 -6px;color:#9e754c}.cover h1{font-family:var(--serif);font-weight:500;line-height:1.1;font-size:clamp(2.3rem,3.6vw,3.5rem);margin:0 0 24px;letter-spacing:-.025em}.cover h1 em{font-weight:400;font-size:.76em;margin:0 3px}.portrait-arch{position:relative;flex-shrink:0;height:230px;width:180px;border-radius:100px 100px 100px 100px;background:var(--red) url('peonies.webp') center bottom/cover;border:5px solid var(--paper);outline:1px solid #b99c70;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px #75202c14}.portrait-monogram{position:relative;color:#f1d7a6;font-family:var(--serif);font-size:3.9rem;display:flex;align-items:center;line-height:1;padding-bottom:25px}.portrait-monogram span{font-family:var(--script);font-size:2rem;margin:-1px -3px 0}.arch-mark{position:absolute;top:143px;font-family:serif;font-size:1.3rem;color:var(--gold)}.date-line{display:flex;align-items:center;justify-content:center;gap:18px;font-family:var(--serif);font-size:1.75rem;margin-top:16px;line-height:1.2}.date-line i{height:20px;width:1px;background:var(--line);transform:rotate(18deg)}.weekday{font-size:.75rem;letter-spacing:.14em;margin:8px 0 17px}.recipient p{font-size:.78rem;color:var(--muted);margin:0 0 3px}.recipient strong{font-family:var(--serif);font-weight:600;font-size:1.45rem;overflow-wrap:anywhere}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:47px;padding:11px 27px;text-decoration:none;border:1px solid var(--red);font:500 .82rem/1.5 var(--sans);letter-spacing:.04em;transition:background .2s,transform .2s,color .2s;border-radius:2px}.button svg,.text-link svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4;flex:none}.button:hover{transform:translateY(-2px)}.primary{background:var(--red);color:var(--paper);box-shadow:0 5px 14px #741b2320}.primary:hover{background:var(--red-deep)}.open-invitation{margin-top:17px}.cover-foot{font-size:.75rem;color:var(--muted);margin:13px 0 0}.section-number{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:1.1rem;text-align:left;margin-bottom:55px;color:var(--muted)}.section-number:after{content:'';flex:1;height:1px;background:var(--line);margin-left:12px}.section-number span{font-family:var(--sans);font-size:.75rem;letter-spacing:.16em}.tiny-seal{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--red);font:2rem serif;margin-bottom:28px}.section h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.65rem,3.7vw,3.5rem);line-height:1.03;letter-spacing:-.035em;margin:15px 0 25px}.section h2 em{font-weight:400}.intro{font-size:1rem;max-width:390px;margin:0 auto;color:var(--muted);line-height:1.85}.couple{padding-bottom:80px}.couple-names{padding-top:45px}.initial-seal{width:70px;height:83px;border:1px solid var(--line);border-radius:40px 40px 0 0;font-family:var(--serif);font-size:2.8rem;display:inline-flex;align-items:center;justify-content:center;color:var(--red);background:#f0e4d44d}.couple-names .eyebrow{margin:19px 0 5px;color:var(--muted);font-size:.75rem}.couple-names h3{font-family:var(--serif);font-size:2.6rem;line-height:1.1;font-weight:500;margin:0}.couple-amp{display:block;font-size:3.1rem;color:#a38151;margin:20px 0;line-height:1}.bride-alias{font-family:var(--script);font-size:2.2rem;color:#a38151;line-height:1.1;margin:5px 0 0}.ornament-rule{display:flex;justify-content:center;align-items:center;gap:18px;margin:43px auto 22px}.ornament-rule span{height:1px;width:63px;background:var(--line)}.ornament-rule b{font:1.3rem serif;color:#a38151}.closing-note{font-family:var(--serif);font-size:1.3rem;color:var(--muted);line-height:1.5}.celebration{background:var(--red-deep);color:var(--paper);padding-bottom:78px}.celebration .section-number{color:var(--gold)}.celebration .section-number:after{background:#c8a76d4a}.celebration>.script{font-size:2.3rem;color:var(--gold);margin:0}.celebration h2{margin-top:4px}.event-date{display:flex;flex-direction:column;align-items:center;margin:34px auto 28px}.event-date>span{font-size:.75rem;letter-spacing:.22em}.event-date strong{font-family:var(--serif);font-size:6.5rem;font-weight:400;line-height:1.05;color:var(--gold)}.event-details{border-top:1px solid #d9ba8040;border-bottom:1px solid #d9ba8040;margin:35px 0;display:grid;grid-template-columns:1fr 1fr;padding:30px 0;gap:22px}.event-details article+article{border-left:1px solid #d9ba8040;padding-left:22px}.event-details .eyebrow{font-size:.75rem;letter-spacing:.12em;color:var(--gold);margin:0 0 12px}.event-details h3{font-family:var(--serif);font-size:1.9rem;font-weight:400;line-height:1.2;margin:0}.until{font-size:.75rem;color:#d9c7b4}.event-details p:not(.eyebrow){font-size:.9rem;line-height:1.8;margin:14px 0 0}.event-details p strong{font-weight:500}.text-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:.75rem;color:var(--gold);margin-top:15px;text-underline-offset:5px}.text-link svg{width:14px;height:14px}.outlined{border-color:#d9ba8099;color:var(--gold);background:transparent}.outlined:hover{background:#d9ba8019}.countdown-wrap{margin-top:55px}.countdown-wrap .eyebrow{font-size:.75rem;letter-spacing:.15em;color:#dfcfae}.countdown{display:flex;justify-content:center;gap:13px;margin-top:22px}.countdown div{width:58px;display:flex;flex-direction:column}.countdown strong{font-family:var(--serif);font-weight:400;font-size:2.6rem;line-height:1}.countdown div span{font-size:.75rem;letter-spacing:.13em;margin-top:9px;color:#dbc6a3}.countdown i{font-family:var(--serif);font-size:1.6rem;line-height:1.3;font-style:normal;color:#d9ba8080}.moments{padding-bottom:80px}.moments .section-number{margin-bottom:44px}.memory-composition{position:relative;height:375px;max-width:430px;margin:40px auto 20px}.memory-frame{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border:6px solid #fffaf2;box-shadow:0 7px 24px #56212d18;outline:1px solid #e4cfad;background:var(--red) url('peonies.webp') center/cover;color:var(--gold)}.memory-one{left:0;top:0;width:46%;height:240px;transform:rotate(-7deg)}.memory-two{right:1%;top:45px;width:49%;height:245px;transform:rotate(6deg)}.memory-three{left:26%;top:140px;width:45%;height:225px;transform:rotate(-2deg)}.memory-frame>.script{font-size:2.6rem}.memory-two>span:first-child{font:3rem serif}.photo-label{position:absolute;bottom:10px;font-size:.75rem;letter-spacing:.14em;color:#f3dfb9}.photo-note{font-size:.85rem;line-height:1.8;color:var(--muted);margin:24px 0 0}.thank-you{background:var(--red) url('peonies.webp') center/cover;color:#f2d8a6;padding:100px 45px;min-height:660px;display:flex;align-items:center;justify-content:center}.thank-you-inner{max-width:370px;padding:20px 10px}.thank-you .eyebrow{margin-top:28px}.thank-you h2{font-size:3.7rem;margin:10px 0 23px}.thank-you p:not(.eyebrow,.script,.thank-you-date,.blessing){font-size:.95rem;line-height:1.9;color:#f6e4c7}.signoff{font-size:3.3rem;margin:36px 0 0;line-height:1.2}.thank-you-date{font-size:.8rem;letter-spacing:.22em}.blessing{font-family:serif;font-size:1rem;letter-spacing:.2em;margin-top:40px}footer{text-align:center;padding:36px 24px 100px}footer>span{font-family:var(--serif);font-size:1.6rem}footer p{font-size:.75rem;color:var(--muted);margin:5px 0}footer a{display:inline-block;font-size:.75rem;margin-top:8px;text-underline-offset:4px}.bottom-nav{position:fixed;z-index:10;bottom:20px;left:calc(48% + 25px);right:25px;max-width:460px;margin:auto;display:flex;align-items:center;justify-content:space-around;padding:6px;background:#fcf8f0f5;backdrop-filter:blur(12px);border:1px solid #d6bda4;border-radius:3px;box-shadow:0 4px 24px #3905111c;opacity:0;visibility:hidden;transform:translateY(15px);transition:opacity .25s,transform .25s,visibility .25s}.bottom-nav.visible{opacity:1;visibility:visible;transform:translateY(0)}.bottom-nav a{padding:10px 13px;text-decoration:none;font-size:.75rem;color:var(--muted);border-radius:2px}.bottom-nav a.active{background:var(--red);color:var(--paper)}
@media(min-width:1450px){.cover{padding-top:42px;padding-bottom:42px}.portrait-arch{height:280px;width:215px}.portrait-monogram{font-size:4.8rem}.arch-mark{top:177px}.cover h1{margin-bottom:28px}.cover-top{margin-bottom:28px}.weekday{margin-bottom:24px}}
@media(max-width:1050px) and (min-width:761px){.section{padding-left:30px;padding-right:30px}.cover{padding-left:27px;padding-right:27px}.event-details{grid-template-columns:1fr;gap:27px}.event-details article+article{border-left:0;border-top:1px solid #d9ba8040;padding:25px 0 0}.keepsake-names{font-size:5rem}.keepsake-content .eyebrow{font-size:.75rem}}
@media(max-width:760px){html{scroll-padding-top:12px}.keepsake{display:none}main{margin:0;width:100%}.section{padding:55px 28px}.cover{min-height:100svh;padding:31px 26px 34px}.cover-top{margin-bottom:22px}.cover-script{font-size:2.25rem}.cover h1{font-size:3rem;margin-bottom:24px}.portrait-arch{height:255px;width:196px}.portrait-monogram{font-size:4.3rem}.arch-mark{top:163px}.cover-edge{inset:12px}.date-line{font-size:1.9rem;margin-top:22px}.weekday{margin-bottom:23px}.recipient strong{font-size:1.55rem}.recipient p{font-size:.78rem}.open-invitation{margin-top:20px;padding:12px 30px}.cover-foot{margin-top:16px}.section-number{margin-bottom:40px}.section h2{font-size:2.9rem}.couple{padding-top:48px;padding-bottom:65px}.intro{font-size:1rem}.event-details{gap:15px}.event-details article+article{padding-left:15px}.event-details h3{font-size:1.9rem}.event-details p:not(.eyebrow){font-size:.86rem}.celebration{padding-bottom:62px}.memory-composition{height:340px}.memory-one{height:215px}.memory-two{height:220px}.memory-three{top:128px;height:204px}.memory-frame>.script{font-size:2.35rem}.moments{padding-bottom:65px}.thank-you{min-height:690px;padding:80px 30px}.thank-you h2{font-size:3.6rem}.bottom-nav{left:16px;right:16px;bottom:14px}.bottom-nav a{padding:11px 16px;font-size:.75rem}footer{padding-bottom:100px}}
@media(max-width:370px){.cover h1{font-size:2.6rem}.section{padding-left:22px;padding-right:22px}.event-details{grid-template-columns:1fr}.event-details article+article{padding:23px 0 0;border-left:0;border-top:1px solid #d9ba8040}.bottom-nav a{padding:10px 12px}.memory-frame>.script{font-size:2rem}}
@media(max-height:750px) and (min-width:761px){.cover-top{margin-bottom:9px}.cover-script{font-size:1.85rem}.cover h1{font-size:2.6rem;margin-bottom:16px}.portrait-arch{height:190px;width:150px}.portrait-monogram{font-size:3.3rem}.arch-mark{top:117px}.date-line{margin-top:12px}.weekday{margin-bottom:12px}.cover-foot{margin-top:10px}.keepsake-names{font-size:5.5rem}.keepsake-content{padding-bottom:15px}.keepsake-bottom{padding-bottom:35px}.keepsake-top{margin-top:31px;margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.button{font-size:.875rem}.bottom-nav a{font-size:.875rem;padding:10px 11px}.text-link{font-size:.875rem}.photo-label{font-size:.75rem;letter-spacing:.045em}.event-details .eyebrow{letter-spacing:.08em}
