*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#451015;color:#511419;font:16px/1.65 'EB Garamond',Georgia,serif}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}main{max-width:450px;margin:0 auto;background:#f5f0e4 url('assets/paper.webp') repeat;background-size:450px;overflow:hidden;box-shadow:0 0 80px #22040755}section{position:relative;text-align:center;padding:48px 28px}h1,h2,h3,p{margin-top:0}h1,h3{font-weight:400}h2{font:600 18px/1.5 'EB Garamond',Georgia,serif;letter-spacing:.7px;margin-bottom:25px}h3{font-size:18px}a{color:inherit}button{color:inherit}.eyebrow{font-size:14px;letter-spacing:3px}.button{display:inline-block;background:#511419;color:#f5ecdf;padding:11px 27px;border:1px solid #511419;border-radius:40px;text-decoration:none;font:15px/1.4 'EB Garamond',Georgia,serif;cursor:pointer}.button:hover{background:#74252d}.ornament{font-size:23px;color:#996f68;line-height:1.2;margin:20px auto}.hero{padding:55px 18px 40px;background:url('assets/castle-background.webp') center bottom/100% auto no-repeat}.envelope-scene{height:435px;position:relative;margin:35px auto 15px;width:100%;max-width:370px;isolation:isolate}.envelope-scene>img{position:absolute;object-fit:contain}.envelope-back{width:90%;height:83%;left:5%;bottom:0;z-index:0}.envelope-photo{width:59%;height:65%;left:34%;top:8%;object-fit:cover!important;transform:rotate(12deg);border:8px solid #fff;z-index:1}.envelope-flower{width:47%;height:75%;left:5%;top:0;z-index:2;transform:rotate(-10deg)}.envelope-front{width:90%;height:60%;left:5%;bottom:0;z-index:3}.hero h1{font:48px/1.15 'Viaoda Libre',Georgia,serif;margin:50px 0 20px}.ampersand{display:block;color:#b89f94;font:italic 52px/1 Georgia;opacity:.7;margin:5px auto}.hero-date{font-size:18px;letter-spacing:4px}.scroll-hint{font-size:10px;letter-spacing:2px;margin:30px 0 0}.scroll-hint span{display:block;font-size:25px;margin-top:8px}.ceremony{padding-top:40px}.families{display:grid;grid-template-columns:1fr 1fr;gap:18px;font-size:14px;line-height:1.7;margin:30px -10px 40px}.families p:first-child{font-size:11px;letter-spacing:2px}.announcement{font-size:12px;line-height:1.9}.names{margin:30px -10px}.names h3{font:36px/1.4 'Viaoda Libre',serif;margin:0}.names .ampersand{font-size:38px;margin:15px 0}.ceremony-note{font-size:12px;letter-spacing:.7px;margin-top:40px}.quote{font-style:italic;font-size:17px;line-height:1.8}.section-subtitle{font-style:italic;opacity:.75;font-size:15px}.album-section{padding:30px 24px 45px}.album{position:relative;aspect-ratio:4/5;overflow:hidden;border:7px solid white;box-shadow:0 5px 20px #42282226;background:#e7dbce}.album img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;opacity:0;transition:opacity .8s;cursor:zoom-in;pointer-events:none}.album img.active{opacity:1;pointer-events:auto}.album-dots{display:flex;justify-content:center;gap:9px;margin-top:23px}.album-dots button{border:1px solid #511419;background:transparent;width:7px;height:7px;padding:0;border-radius:50%}.album-dots button[aria-current=true]{background:#511419}.reception{padding:20px 26px}.reception-card{padding:35px 20px;background:#511419;color:#f6eddf;border-radius:8px;box-shadow:0 5px 10px #4c182832}.reception h2{font-size:17px}.reception h3{font-size:15px;line-height:1.8;letter-spacing:.5px}.reception .ornament{color:#ccb7a0}.reception-time{font-size:28px;letter-spacing:2px}.reception-date{display:flex;justify-content:center;align-items:center;gap:19px;font-size:12px;line-height:1.6;margin:10px 0 25px}.reception-date strong{font-size:61px;font-weight:400;border-inline:1px solid #ccb7a066;padding:0 16px;line-height:1.2}.schedule-summary{display:flex;justify-content:space-evenly;font-size:11px;letter-spacing:.5px}.schedule-summary strong{display:block;font-size:21px;font-weight:400;letter-spacing:1px;margin-top:3px}.calendar-paper{background:#eee6d9;color:#511419;border-radius:8px;padding:20px 15px 25px;margin:20px 0}.calendar-month{font-size:20px;margin-bottom:15px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px 0;font-size:13px}.calendar span{display:grid;place-items:center;height:28px;position:relative}.calendar .weekday{font-size:11px;opacity:.65}.calendar .chosen{background:#511419;color:#fff;border-radius:50%;width:28px;justify-self:center}.calendar .chosen:after{content:'';position:absolute;color:#511419;font-size:34px;z-index:0}.calendar .chosen{isolation:isolate}.calendar .chosen:after{z-index:-1}.reception-card .button{background:#eee6d9;color:#511419;border-color:#eee6d9;font-size:13px;margin-top:22px;padding:9px 23px}.venue{padding:45px 35px 15px;background:url('assets/castle-background.webp') center bottom/cover no-repeat}.venue h3{font-size:17px;font-weight:600}.venue p{font-size:14px}.venue .venue-name{font-size:22px;margin-bottom:5px}.directions{display:inline-block;text-decoration:none;font-size:16px;margin:15px 0 0}.dresscode{padding-top:30px}.dresscode h2{margin-bottom:4px}.swatches{display:flex;justify-content:center;gap:15px;margin:20px auto 0}.swatches span{width:39px;height:39px;border-radius:50%;background:var(--swatch);border:1px solid #0002;box-shadow:0 2px 3px #0002}.timeline-section{padding-top:20px}.timeline{position:relative;margin:35px 15px 20px}.timeline:before{content:'';position:absolute;left:48%;top:15px;bottom:15px;border-left:1px solid #a58376}.timeline>div{display:grid;grid-template-columns:1fr 1.1fr 1fr;align-items:center;gap:20px;min-height:105px;position:relative}.timeline>div:before{content:'';position:absolute;left:calc(48% - 4px);top:46%;width:9px;height:9px;border-radius:50%;background:#511419;border:2px solid #eae1d2}.timeline time{font-size:24px;text-align:left}.timeline>div>span:not(.timeline-icon){grid-column:1;text-align:left;font-size:13px;position:absolute;left:0;top:65px}.timeline img,.timeline .timeline-icon{grid-column:3;width:70px;height:70px;object-fit:contain;font-size:53px;line-height:1}.demo-note{font-size:10px;opacity:.5}.guestbook{padding:25px 27px 50px}.guestbook form{text-align:left}.guestbook input,.guestbook textarea{background:#fffcf6;border:1px solid #bda697;border-radius:4px;width:100%;padding:12px;color:#511419}.guestbook label{display:block;margin:13px 0 7px;font-size:14px}.guestbook .button{width:100%;margin-top:15px}.thanks{padding:20px 20px 35px;background:url('assets/castle-background.webp') center bottom/100% auto no-repeat}.thanks h2{font:48px 'Viaoda Libre',serif;text-transform:none;letter-spacing:0;margin:25px 0}.thanks p{font-size:15px}.thanks .thanks-names{font:25px 'Viaoda Libre',serif;margin-top:30px}.end-date{font-size:13px!important;letter-spacing:3px}footer{text-align:center;padding:15px 15px 100px;font-size:9px;letter-spacing:3px;opacity:.6}.dock{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);background:#f4eddeef;border:1px solid #fff8;border-radius:30px;box-shadow:0 4px 20px #260b1533;display:flex;align-items:center;padding:6px;z-index:20;white-space:nowrap}.dock button{background:transparent;border:0;border-radius:30px;padding:10px 13px;font-size:13px}.sheet{font-family:'EB Garamond',Georgia,serif}.sheet input,.sheet textarea{display:block;width:100%;padding:12px;color:#511419;border-radius:4px}.sheet fieldset{border:0;padding:0;margin:15px 0}.sheet fieldset label{font-size:14px;display:flex;gap:8px;align-items:center}.sheet fieldset input{width:auto}.form-note{font-size:11px;line-height:1.6;opacity:.7}#rsvp{padding:0;text-align:left}#rsvp h2{text-align:center;font-size:19px}#rsvp>p{font-size:14px;text-align:center}#rsvp-form>label{display:block;margin:15px 0 8px}.rsvp-dialog .close-rsvp{position:static;display:block;margin-left:auto;margin-bottom:15px;border:0;background:none;color:#511419;font-size:25px}#rsvp-form .button{width:100%;margin-top:20px}dialog{max-width:94vw;border:0;background:transparent;padding:0}dialog::backdrop{background:#25080ad9}#lightbox{overflow:hidden}#lightbox img{display:block;max-width:90vw;max-height:82vh;object-fit:contain}#lightbox button{position:absolute;right:8px;top:8px;width:35px;height:35px;background:#fff9;border:0;border-radius:50%;font-size:25px;color:#511419;cursor:pointer}.opening{position:fixed;inset:0;background:linear-gradient(125deg,#68191e,#30090d);z-index:1000;display:grid;place-items:center;padding:22px;transition:opacity 1s,visibility 1s}.opening-card{width:min(600px,100%);background:#f8f1e9;border-radius:8px;text-align:center;padding:25px 25px 32px;box-shadow:0 15px 40px #16060866;position:relative;overflow:hidden;color:#511419}.opening-flower{position:absolute;top:24px;width:110px;height:220px;object-fit:contain;pointer-events:none}.opening-flower.left{left:-16px}.opening-flower.right{right:-16px;transform:scaleX(-1)}.seal{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,#691e25,#280409);color:#f9f2e7;font-size:29px;box-shadow:0 4px 20px #3a11145c;margin:auto auto 20px}.opening h1{font:36px/1.05 'Viaoda Libre',serif;margin-bottom:0}.opening h1 span{display:block;font:20px/1.4 Georgia}.opening .ornament{font-size:16px;opacity:.6;margin:17px 0 12px}.opening p{font-size:19px;margin-bottom:20px}.opening .dear{margin:24px 0}.opening .button{font-size:19px;min-width:140px;box-shadow:0 4px 15px #51141944}.opening-hearts{position:absolute;top:8%;left:12%;color:#e1c89455;font-size:27px;animation:float-heart 6s ease-in-out infinite}.invitation-closed{overflow:hidden}.invitation-closed .dock,.invitation-closed #music-toggle,.invitation-closed .scroll-controls{visibility:hidden}.opening.opened{opacity:0;visibility:hidden;pointer-events:none}.wish-suggestions{background:transparent;color:#511419;border:0;text-decoration:underline;text-underline-offset:4px;font-size:12px;margin:8px 0}.album-nav{display:flex;justify-content:space-between;margin-top:15px}.album-nav button{background:transparent;border:1px solid #bda697;color:#511419;border-radius:50%;width:32px;height:32px;font-size:20px}.album-count{font-size:12px;align-self:center}.guestbook #wish-list{max-height:420px;overflow:auto;text-align:left}#inline-guestbook .form-note{font-size:11px}.opening-card .button:focus-visible{outline:3px solid #b69362;outline-offset:5px}@keyframes float-heart{50%{transform:translate(35px,70px) rotate(15deg);opacity:.3}}@media(max-width:380px){.envelope-scene{height:370px}.hero h1{font-size:42px}.opening h1{font-size:30px}.opening-flower{width:80px;opacity:.8}.names h3{font-size:30px}.reception{padding-inline:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.opening{transition:none}.opening-hearts{animation:none}}

