.envelope{grid-template-rows:auto minmax(360px,55vh);gap:22px;background:radial-gradient(circle at 30% 20%,#faf7f0 0,#f2eee9 45%,#ded5cb 100%)}.envelope-intro{z-index:2;text-align:center}.envelope-intro h1{margin:4px 0 0}.envelope-intro .envelope-date{margin:10px 0 0}.envelope-card{width:min(82vw,740px);min-height:min(48vh,410px);padding:0;background:linear-gradient(140deg,#ded4c8,#f0e9df 50%,#d1c6ba);box-shadow:0 26px 55px rgba(41,30,22,.2)}.envelope-card:before{background:linear-gradient(145deg,transparent 49.65%,rgba(72,56,43,.16) 50%,transparent 50.35%)}.envelope-card:after{background:linear-gradient(35deg,transparent 49.65%,rgba(72,56,43,.12) 50%,transparent 50.35%)}.seal{width:132px;height:132px;background:radial-gradient(circle at 35% 30%,#51453b,#201b18 66%);border:5px double #d9ccbb;box-shadow:0 7px 0 #120e0c,0 15px 22px rgba(0,0,0,.3)}.seal:before{content:"";position:absolute;inset:8px;border:1px solid #cdbda8;border-radius:50%}.open-copy{margin-top:-70px;transform:translateY(104px);color:#3a302a}.calendar{position:absolute;left:clamp(100px,14vw,230px);bottom:clamp(72px,10vw,145px);width:225px;padding:18px;background:rgba(242,238,233,.68)}.calendar p{margin-bottom:13px;font:500 22px var(--serif)}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center;font-size:12px}.calendar-week{margin-bottom:8px;color:var(--soft);font-weight:700}.calendar-days span,.calendar-days strong{display:grid;place-items:center;min-height:22px}.calendar-days strong{border-radius:50%;background:var(--ink);color:var(--inverse)}.calendar-link{display:inline-block;margin-top:16px;font-size:13px;font-weight:700}.underlined{display:inline-block;border-bottom:2px solid currentColor}.family-icon{display:block;margin-bottom:14px;font:400 31px var(--serif);animation:softPulse 5s ease-in-out infinite}.family-grid article{padding:25px 0 5px}.event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.event+.event{margin-top:0}.event{display:grid;grid-template-columns:1fr;gap:18px;padding:0 0 34px;background:transparent}.venue-photo{margin:0}.venue-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(1)}.event-time{padding:0;margin-top:14px}.event h3{font-size:clamp(30px,3.2vw,46px)}.dress-notes article{position:relative;padding:32px;background:#211e1b}.dress-scene{height:170px;position:relative;display:grid;place-items:center}.dress-icon{font-size:118px;line-height:1}.accessory{position:absolute;font-size:30px;color:#c7beb5;animation:floatAccessory 5s ease-in-out infinite}.accessory-bag{top:20px;left:22%}.accessory-shoe{bottom:20px;right:20%}.accessory-tie{top:15px;right:23%;animation-delay:-2s}.accessory-watch{bottom:18px;left:23%;animation-delay:-3s}.gallery{min-height:900px}.print-five{left:5%;top:12%;transform:rotate(-5deg);width:clamp(110px,14vw,210px)}.print-six{right:24%;bottom:6%;transform:rotate(-4deg);width:clamp(120px,15vw,230px)}.print{cursor:zoom-in}.details{padding-top:0;padding-bottom:0;gap:0;background:var(--paper)}.details>article{padding:clamp(90px,11vw,170px) var(--frame)}.details .gift{background:var(--paper);color:var(--ink)}.details .zoom{background:var(--ink);color:var(--inverse)}.gift h2:before,.zoom h2:before{display:block;margin-bottom:18px;font:400 36px var(--serif)}.gift h2:before{content:"✦  ◇  ✦"}.zoom h2:before{content:"◌  ◷  ◌"}.gallery-modal{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:30px;background:rgba(16,14,13,.94);opacity:0;visibility:hidden;transition:.25s}.gallery-modal.is-open{opacity:1;visibility:visible}.gallery-modal img{max-width:min(88vw,760px);max-height:82svh;object-fit:contain}.gallery-modal button{position:absolute;top:20px;right:25px;border:0;background:none;color:white;font:400 46px var(--serif);cursor:pointer}@keyframes floatAccessory{50%{transform:translateY(-10px) rotate(8deg)}}@media(max-width:700px){.envelope{grid-template-rows:auto 360px;gap:10px}.envelope-card{width:88vw;min-height:340px}.calendar{position:relative;left:auto;bottom:auto;grid-column:1/-1;justify-self:end;margin-top:-40px}.date-section{display:flex;flex-wrap:wrap}.date-number{width:100%}.date-details{bottom:72px}.event-list{grid-template-columns:1fr}.dress-notes article{padding:26px}.gallery{min-height:860px}.print-five{left:5%;top:10%;width:28vw}.print-six{right:10%;bottom:8%;width:30vw}.details>article{padding:90px 20px}.details{gap:0}}

