@font-face{font-family:WeddingSerif;src:url('assets/serif.ttf');font-display:swap}@font-face{font-family:WeddingScript;src:url('assets/parisienne.ttf');font-display:swap}
:root{--ivory:#f6efe6;--ink:#62412b;--button:#805d43;--line:#bda48b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e5d8c8;color:var(--ink);font-family:WeddingSerif,Georgia,serif;font-size:21px;line-height:1.42}main{width:min(100%,520px);margin:auto;box-shadow:0 0 70px #5e3f291c;background:var(--ivory)}.panel{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fbf6ef55,transparent 75%),var(--ivory);text-align:center}.section-content{padding:70px 40px 35px}h1,h2,h3,p{margin:0}p+p{margin-top:23px}h2{font-weight:400;font-size:26px;text-transform:uppercase;letter-spacing:2px;line-height:1.45}h3{font-size:31px;font-weight:400;margin:12px 0 4px}.rule{width:52px;height:1px;background:var(--line);margin:23px auto 34px}.eyebrow{font-size:14px;letter-spacing:2px;text-transform:uppercase}.script,h1{font-family:WeddingScript,cursive;font-weight:400;line-height:1.08}.script{font-size:41px}.sprig{font-size:59px;line-height:1;color:#a28061;transform:rotate(-20deg);margin:30px auto 26px;font-family:Georgia,serif}.cover{min-height:880px;display:flex;align-items:flex-start;justify-content:center}.cover-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.cover-content{position:relative;width:100%;padding:80px 36px 100px}.monogram{display:block;width:100%;max-width:345px;margin:auto;height:auto}.cover .rule{margin:26px auto 34px}.cover .eyebrow{font-size:15px;letter-spacing:2.5px}h1{font-size:58px;margin:20px 0 45px}.cover-date{font-size:17px;letter-spacing:3px}.down{font-size:40px;text-decoration:none;display:block;width:50px;margin:13px auto 0;line-height:1}.ceremony-photo{display:block;width:100%;height:520px;object-fit:cover;object-position:center}.invitation .section-content{padding-top:40px}.date-card{background:#e9ddcd66;border:1px solid #c5ad962e;border-radius:18px;padding:21px 12px}.date-card>span{font-size:15px;letter-spacing:2px}.date-card p{font-size:28px;line-height:1.3;margin-top:5px}.date-card small{display:block;font-size:13px;margin-top:9px;letter-spacing:1px}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:13px;margin:38px auto 5px}.countdown strong{font-size:30px;font-weight:400;font-variant-numeric:tabular-nums;display:block;min-width:42px}.countdown span{font-family:Arial,sans-serif;text-transform:uppercase;font-size:8px;letter-spacing:1px;display:block}.countdown b{font-size:24px;font-weight:400}#countdown-message:empty{display:none}#countdown-message{font-size:17px;margin-top:22px}.location>h2{padding-top:68px}.venue-photo{display:block;width:100%;height:350px;object-fit:cover}.location .section-content{padding-top:27px}.pin{display:block;width:39px;height:39px;margin:auto}.button{display:flex;align-items:center;gap:17px;justify-content:space-between;background:var(--button);color:#fff9ef;border-radius:23px;min-height:90px;padding:20px 22px;margin:35px 0 0;text-decoration:none;font:14px/1.4 Arial,sans-serif;letter-spacing:.5px;text-transform:uppercase;transition:background .2s,transform .2s}.button>svg{width:41px;height:41px;flex-shrink:0}.button-icon{font-size:38px}.button>span:not(.arrow):not(.button-icon){flex:1}.button .arrow{font-size:42px;font-family:Georgia,serif}.button:hover{background:#69482f;transform:translateY(-2px)}.location .script{font-size:36px;margin-bottom:25px}.fine{font-size:15px;line-height:1.5}.rsvp .section-content{padding-bottom:0}.rsvp .rule{margin-bottom:38px}.soft-card{background:#e8dbcb55;border:1px solid #bea58c30;border-radius:20px;padding:28px 20px;font-size:19px}.heart{font-size:45px;line-height:1.2;display:block;margin-bottom:12px}.rsvp-flowers{display:block;width:100%;height:290px;object-fit:cover;object-position:left bottom;margin-top:10px;mask-image:linear-gradient(transparent,#000 25%)}.timeline{list-style:none;text-align:left;padding:5px 0 0;margin:0;position:relative}.timeline:before{content:'';position:absolute;width:1px;left:40px;top:28px;bottom:40px;background:#d3bda5}.timeline li{display:flex;align-items:center;gap:26px;margin-bottom:24px;position:relative;min-height:83px}.timeline p,.timeline strong{font-weight:400;font-size:22px}.icon-circle{border-radius:50%;width:82px;height:82px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#e9d6c1;margin:0 auto 30px;font-size:35px}.timeline .icon-circle{margin:0}.icon-circle svg{width:40px;height:40px}.program .eyebrow{font-size:14px}.program .section-content{padding-bottom:14px}.bottom-photo{width:100%;height:360px;display:block;object-fit:cover;mask-image:linear-gradient(transparent,#000 18%)}.romance .section-content{padding-bottom:35px}.couple-photo{width:100%;height:510px;object-fit:cover;display:block}.romance .closing-note{padding-top:34px;padding-bottom:8px}.live .section-content{padding-bottom:0}.live .icon-circle{margin-bottom:28px}.live-note{display:flex;gap:15px;align-items:flex-start;margin-top:30px;text-align:center;font-size:18px;padding:25px 20px}.live-note>span{font-size:25px}.live .bottom-photo{height:330px}footer .section-content{padding-top:75px;padding-bottom:0}footer h2{font-size:23px;letter-spacing:1px;margin-bottom:7px}footer .rule{margin-top:30px;margin-bottom:32px}.rings{width:100%;height:330px;object-fit:cover;display:block;mask-image:linear-gradient(transparent,#000 22%)}.back-top{display:block;color:var(--ink);font-size:13px;text-decoration:none;padding:17px;letter-spacing:1px}.menu-toggle{position:fixed;top:22px;left:max(22px,calc((100vw - 520px)/2 + 22px));z-index:50;border:0;background:#f6efe6db;border-radius:50%;width:44px;height:44px;padding:11px;cursor:pointer}.menu-toggle span{display:block;width:22px;height:1px;background:var(--ink);margin:5px 0}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-6px) rotate(-45deg)}nav{position:fixed;z-index:40;inset:0 auto 0 50%;transform:translateX(-50%);width:min(100%,520px);background:#f6efe6f9;padding:110px 50px 50px;overflow:auto}nav a{display:block;text-decoration:none;color:var(--ink);font-size:24px;padding:15px 0;border-bottom:1px solid #c5ad9650}nav[hidden]{display:none}.skip{position:fixed;top:-100px;background:var(--ivory);z-index:60;padding:10px;color:var(--ink)}.skip:focus{top:0}a:focus-visible,button:focus-visible{outline:3px solid #a47b52;outline-offset:5px}.js-motion .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s,transform .8s}.js-motion .reveal.visible{opacity:1;transform:none}@media(max-width:380px){body{font-size:19px}.section-content{padding-left:27px;padding-right:27px}.cover-content{padding:85px 28px 95px}.cover{min-height:820px}h1{font-size:50px}.button{font-size:12px;padding:18px 17px;gap:10px}.button>svg{width:34px}.date-card p{font-size:25px}.timeline li{gap:20px}.timeline p,.timeline strong{font-size:20px}.script{font-size:36px}.countdown{gap:9px}}@media(min-width:700px){body{padding:25px 0}main{border-radius:10px;overflow:hidden}.cover{min-height:940px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js-motion .reveal{opacity:1;transform:none}}
/* Refined calligraphy and high-resolution photography */
h1{font-size:49px;line-height:1.3;margin-top:24px}.script{font-size:34px;line-height:1.5}.location .script{font-size:31px}.cover-bg{object-position:center center}.couple-photo{object-position:center 45%}@media(max-width:380px){h1{font-size:43px}.script{font-size:31px}.location .script{font-size:29px}}

.cover{background:#f6efe6}.cover-bg{top:auto;bottom:0;height:48%;object-fit:cover;object-position:left bottom;mask-image:linear-gradient(transparent,#000 35%)}

/* Keep all cover lettering on solid ivory, above the floral photograph. */
.cover{min-height:0}.cover-content{padding:80px 36px 300px}.cover-bg{height:250px;mask-image:linear-gradient(transparent,#000 30%)}h1{color:#583820}.cover-date{color:#583820}.cover .down{position:relative;z-index:1}@media(max-width:380px){.cover{min-height:0}.cover-content{padding:80px 28px 285px}.cover-bg{height:235px}}


/* Simple cover and shared wedding album */
.cover{min-height:0}.cover-content{padding-bottom:60px}h1{font-size:43px;line-height:1.4}.photo-upload{width:100%;margin-top:0;margin-bottom:18px;cursor:pointer}.photo-upload:disabled{opacity:.65;cursor:default;transform:none}.closing-note .fine{margin-bottom:30px}@media(max-width:380px){.cover{min-height:0}.cover-content{padding-bottom:50px}h1{font-size:37px}}
