/* Shared stationery and a consistent route from the invitation to the entrance. */
.site-frame{max-width:1160px;margin:auto;padding:25px 45px 55px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#e6d3b9;margin-bottom:22px}
.home-signature{font:italic 28px var(--serif);text-decoration:none}
.site-header>span{font-size:11px;letter-spacing:1px}
.stationery-nav{display:flex;justify-content:center;gap:4px;margin:0 auto 38px;max-width:720px;border-bottom:1px solid #d2b68b60}
.stationery-nav a{color:#e3cdb3;font-size:13px;padding:12px 20px;text-decoration:none;white-space:nowrap;border-radius:3px 3px 0 0}
.stationery-nav a:hover{background:#f4e9d115}
.stationery-nav a[aria-current]{background:var(--paper);color:var(--wine)}
.site-frame .button{font-size:12px;letter-spacing:.3px;line-height:1.5;min-height:48px;padding:15px 22px;text-transform:none;text-align:center;white-space:normal}
.site-frame .ink-link,.site-frame .text-link{font-size:13px;min-height:44px;align-items:center;gap:9px}
.site-frame .eyebrow{font-size:11px;letter-spacing:1.6px}
.welcome{max-width:930px;margin:0 auto 55px;text-align:center;color:var(--paper)}
.welcome>.eyebrow{color:#ddbd87;margin-bottom:18px}
.welcome h1{font-size:66px;line-height:1.04;letter-spacing:-1.2px}
.welcome h1 em{color:#e3c38e}
.welcome-note{font:25px/1.35 var(--serif);max-width:630px;margin:23px auto}
.welcome .letter-date{font-size:12px;letter-spacing:1.3px;margin:27px 0 18px}
.invitation-days{display:grid;grid-template-columns:1fr 1fr;text-align:left;gap:0;border-block:1px solid #d2b68b60;margin:0 auto 24px;max-width:790px}
.invitation-days>div{padding:20px 26px}
.invitation-days>div+div{border-left:1px solid #d2b68b60}
.invitation-days>div>span{font-size:12px;color:#e3c38e}
.invitation-days strong{display:block;font:26px/1.15 var(--serif);margin:7px 0}
.invitation-days p{font-size:13px}
.welcome-actions{display:flex;align-items:center;justify-content:center;gap:27px;flex-wrap:wrap}
.welcome .button{background:var(--paper);color:var(--wine)}
.welcome .ink-link{color:var(--paper);border-color:#d2b68b80}
.journey-note{font-size:12px;max-width:520px;margin:17px auto 0;color:#e1cfb9;line-height:1.7}
.invitation-home .invitation-scene{padding:12px 0 30px;min-height:420px;margin:0 auto;max-width:1000px}
.invitation-home.invite-ready .invitation-scene:not(.is-open){min-height:430px;padding-bottom:40px}
.invitation-home .letter{width:670px;max-width:calc(100% - 285px);margin-left:25px;padding:30px 44px 45px}
.invitation-home .letter-heading h2{font:italic 36px var(--serif);margin-top:8px}
.invitation-home .letter-heading .couple-names{font-size:23px}
.invitation-home .envelope-back{top:75px;left:8px;max-width:calc(100% - 260px);height:235px}
.invitation-home .envelope-front{top:130px;left:4px;max-width:calc(100% - 250px);height:220px}
.invitation-home .envelope-address{top:108px;left:30px;font-size:26px}
.invitation-home .envelope-address em{font-size:24px}
.invitation-home .wax-seal{top:173px;left:calc((100% - 250px)/2 - 45px);width:90px;height:90px}
.invitation-home .seal-action{top:99px;font-size:10px;letter-spacing:1px;color:#4c3026;padding:3px 7px;background:#d3ae8e;border:0}
.invitation-home .photo-pile,.invitation-home .is-open .photo-pile{top:12px;right:8px;width:215px}
.invitation-home .keepsake-card{height:259px}
.invitation-home .keepsake-card img{height:208px}
.invitation-home .keepsake-card figcaption{font-size:18px}
.invitation-home .photo-back{font-size:20px;padding:20px}
.invitation-home .photo-tools{font-size:15px}
.invitation-home .photo-tools button{min-height:44px}
.invitation-home .key-tag,.invitation-home .is-open .key-tag{top:335px;right:30px;width:190px}
.invitation-home .key-tag svg{width:110px;height:45px}
.invitation-home .key-tag>span{font-size:20px;margin-top:8px}
.personal-note{margin-top:22px;padding-top:24px}
.personal-note p:not(.signature){font-size:24px;line-height:1.4}
.personal-note p+p{margin-top:17px}
.letter-actions{border-top:1px solid #b9a07b69;margin-top:25px;padding-top:17px;text-align:center}
.page-footer{display:flex;justify-content:space-between;gap:20px;max-width:1000px;margin:30px auto 0;color:#e8d1ac;font:italic 23px var(--serif)}
.page-footer a{padding:10px 0;text-decoration:none;text-underline-offset:5px}
.page-footer a:hover{text-decoration:underline}
.weekend-sheet{background:var(--paper);box-shadow:9px 14px 32px #160b144d;max-width:1000px;margin:auto}
.weekend-heading{background:var(--green);color:var(--paper);text-align:center;padding:36px 26px;border:9px double #bb9e6460}
.weekend-heading h1{font-size:55px;margin:12px 0}
.weekend-heading h1 em{color:#dfc08a}
.weekend-heading>p:last-child{font:23px/1.4 var(--serif)}
.weekend-days{display:grid;grid-template-columns:1fr 1fr}
.day-card{padding:33px 36px 35px}
.day-card+.day-card{border-left:1px solid #ad906160}
.day-card .program-date{font-size:18px;line-height:1.5;font-weight:700;letter-spacing:1px;color:var(--wine)}
.day-card h2{font-size:43px;line-height:1.02;margin:17px 0 20px}
.day-card h2 em{color:var(--wine)}
.day-time{font:600 34px var(--serif);color:var(--wine);margin-bottom:5px}
.day-card .program-venue{font-size:14px;margin:0 0 24px;font-weight:600}
.day-schedule{list-style:none;padding:0;margin:0}
.day-schedule li+li{margin-top:24px;padding-top:20px;border-top:1px solid #ad906150}
.day-schedule strong{font:600 25px/1.2 var(--serif)}
.day-schedule p,.day-description,.day-detail p{font-size:14px;line-height:1.7}
.day-schedule p{margin-top:6px}
.day-detail{margin-top:23px;border-top:1px solid #ad906150;padding-top:17px}
.day-detail>span{font-size:10px;letter-spacing:1.2px;color:var(--wine);font-weight:700}
.day-detail p{margin-top:5px}
.day-detail .ink-link{margin-top:9px}
.venue-description{display:inline-block;margin-top:6px;font-weight:400;font-style:italic}
.friday-note{border-block:1px solid #ad906160;border-left:3px solid var(--wine);background:#713c4209;margin:0 36px;padding:22px 20px;color:#574532}
.site-frame .friday-note .eyebrow{font-size:14px;font-weight:700;letter-spacing:1px;color:var(--wine);line-height:1.6}
.friday-note>p+p{margin-top:8px;font-size:14px;line-height:1.7}
.weekend-reply{padding:30px 36px 36px;text-align:center;max-width:700px;margin:auto}
.weekend-reply h2{font-size:38px}
.weekend-reply p{font-size:14px;line-height:1.7;margin:12px 0 20px}
.weekend-reply>.ink-link{display:flex;width:fit-content;margin:13px auto 0}
.album-sheet{background:#eadebf;max-width:980px;margin:auto;padding:38px 40px 30px;box-shadow:9px 14px 32px #160b144d;border-left:12px solid #314d40}
.album-page-heading{text-align:center;max-width:580px;margin:0 auto 28px}
.album-page-heading h1{font-size:55px;margin:12px 0 18px}
.album-page-heading h1 em{color:var(--wine)}
.album-page-heading p:not(.eyebrow){font:23px/1.4 var(--serif);margin-bottom:14px}
.album-polaroid{text-decoration:none;display:block;transition:transform .2s}
.album-polaroid:hover{transform:rotate(0deg) translateY(-5px)}
.album-sheet .album-grid{gap:27px}
.album-sheet .album-polaroid img{height:250px}
.album-dialog-top{align-items:center}
.album-dialog-top button,.album-photo-nav button{min-width:44px;min-height:44px}
.album-contribution{margin:35px auto 0;padding:30px 0 0;border-top:1px solid #ad906180;max-width:590px;scroll-margin-top:24px}
.album-contribution h2{font-size:38px;margin:7px 0 16px}
.album-contribution p{font-size:14px;line-height:1.7;margin:12px 0}
.album-contribution .album-link-help,.album-contribution .upload-help{font-size:12px;color:#695b49}
.album-contribution input{max-width:100%;min-height:48px;font-size:16px}
.album-contribution .form-row{margin:20px 0;gap:20px}
.album-contribution .form-row input{display:block;width:100%;background:#fff6e580;border:1px solid #ad906180;padding:12px}
.album-contribution .checkbox-label{font-size:13px;align-items:center;margin:20px 0}
.album-contribution .checkbox-label input{min-height:0}
.album-contribution .photo-disclosure{font-size:13px;color:var(--wine)}
.album-file-label{display:block;margin:20px 0 10px;font-weight:600;font-size:14px}
#album-upload-preview{max-width:100%;max-height:230px;object-fit:contain;margin:18px auto}
#album-upload-message{padding:14px 16px;background:#fff6e580;border-left:3px solid var(--wine)}
.album-contribution .button{margin-top:10px}
@media(max-width:900px){.site-frame{padding:24px 28px 40px}.site-header>span{font-size:10px}.welcome h1{font-size:55px}.invitation-home .letter{padding:27px 30px 35px}.day-card{padding:28px}.day-card h2{font-size:38px}.album-sheet .album-grid{gap:19px}.album-sheet .album-polaroid img{height:200px}}
@media(max-width:650px){
 .site-frame{padding:18px 20px 35px}.site-header{display:block;text-align:center;margin-bottom:16px}.site-header>span{display:block;font-size:9px;margin-top:4px;letter-spacing:.7px}
 .stationery-nav{margin-bottom:30px;gap:0}.stationery-nav a{flex:1;padding:12px 7px;text-align:center;font-size:11px}
 .site-frame .button{font-size:12px;padding:14px 17px}.site-frame .eyebrow{font-size:10px;letter-spacing:1px}
 .welcome{margin-bottom:35px}.welcome h1{font-size:44px;letter-spacing:-.7px}.welcome-note{font-size:23px;margin:20px auto}.welcome .letter-date{font-size:11px;letter-spacing:.7px}
 .invitation-days{grid-template-columns:1fr}.invitation-days>div{padding:15px 4px}.invitation-days>div+div{border-left:0;border-top:1px solid #d2b68b40}.invitation-days strong{font-size:25px}.invitation-days p{font-size:13px}
 .welcome-actions{gap:8px 20px}.journey-note{font-size:12px}
 .invitation-home .invitation-scene{padding:12px 0 0;min-height:660px}.invitation-home.invite-ready .invitation-scene:not(.is-open){min-height:660px}
 .invitation-home .letter{width:100%;max-width:100%;margin:0;padding:27px}.invitation-home .letter-heading h2{font-size:32px}.invitation-home .envelope-back{top:75px;left:-5px;width:calc(100% + 10px);max-width:none;height:225px}.invitation-home .envelope-front{top:132px;left:-5px;width:calc(100% + 10px);max-width:none;height:200px}
 .invitation-home .wax-seal{left:calc(50% - 45px);top:158px}.invitation-home .seal-action{top:95px;font-size:10px;color:#4c3026;letter-spacing:.7px}
 .invitation-home .envelope-address{top:140px;left:23px;font-size:22px;line-height:1}.invitation-home .envelope-address em{font-size:20px}
 .invitation-home .photo-pile{top:375px;right:8px;width:175px}.invitation-home .keepsake-card{height:220px}.invitation-home .keepsake-card img{height:174px}.invitation-home .keepsake-card figcaption{font-size:15px}.invitation-home .photo-back{font-size:17px;padding:14px}.invitation-home .photo-back-signature{font-size:15px;margin-top:10px}.invitation-home .photo-tools{display:flex;font-size:13px}.invitation-home .photo-tools>span{display:none}
 .invitation-home .key-tag{top:415px;left:0;right:auto;width:130px}.invitation-home .key-tag>span{font-size:18px;padding:14px 13px 14px 22px}.invitation-home .key-tag svg{width:90px}
 .invitation-home .is-open .letter{transform:none}.invitation-home .is-open .photo-pile{display:block;position:relative;top:auto;right:auto;width:210px;margin:35px auto 15px;transform:rotate(5deg)}.invitation-home .is-open .keepsake-card{height:260px}.invitation-home .is-open .keepsake-card img{height:208px}.invitation-home .is-open .keepsake-card figcaption{font-size:18px}.invitation-home .is-open .key-tag{display:none}
 .personal-note p:not(.signature){font-size:23px}.letter-actions .ink-link{font-size:13px}
 .weekend-heading{padding:25px 20px;border-width:6px}.weekend-heading h1{font-size:42px}.weekend-heading>p:last-child{font-size:21px}.weekend-days{grid-template-columns:1fr}.day-card{padding:28px 25px}.day-card+.day-card{border-left:0;border-top:1px solid #ad906160}.day-card h2{font-size:42px}.friday-note{margin:0 25px}.weekend-reply{padding:28px 25px}.weekend-reply h2{font-size:34px}
 .page-footer{font-size:21px;gap:18px}.page-footer>a:last-child{text-align:right}
 .album-sheet{padding:28px 20px 25px;border-left-width:6px}.album-page-heading h1{font-size:43px}.album-page-heading p:not(.eyebrow){font-size:22px}.album-sheet .album-grid{grid-template-columns:1fr 1fr;gap:19px 14px}.album-sheet .album-polaroid:first-child{grid-column:1/-1;margin:0 8px 5px}.album-sheet .album-polaroid:first-child img{height:220px}.album-sheet .album-polaroid img{height:155px}.album-polaroid span{font-size:18px}.album-contribution .form-row{grid-template-columns:1fr}
}
@media(max-width:350px){.site-frame{padding-inline:15px}.stationery-nav a{font-size:10px;padding-inline:5px}.welcome h1{font-size:39px}.invitation-home .letter{padding:23px}.invitation-home .photo-pile{width:155px}.invitation-home .keepsake-card img{height:155px}.invitation-home .keepsake-card{height:200px}.invitation-home .key-tag{width:110px}.invitation-home .key-tag>span{font-size:16px}.day-card{padding:25px 20px}.day-card h2{font-size:38px}.album-sheet .album-polaroid img{height:125px}}
@media print{.site-header,.stationery-nav,.page-footer,.welcome-actions,.key-tag,.album-contribution{display:none}.site-frame{padding:0}.welcome{color:#332b26}.welcome h1 em,.welcome>.eyebrow,.invitation-days>div>span{color:#713c42}.weekend-sheet,.album-sheet{box-shadow:none}.day-card{break-inside:avoid}.invitation-home .letter{max-width:none;width:100%;margin:0}.invitation-body{display:block!important}}
/* The opened envelope's invisible transforms must not widen the viewport. */
.site-frame{overflow-x:clip}
.site-frame .button{display:inline-flex;align-items:center;justify-content:center;gap:12px}
.weekend-heading .eyebrow{color:#e0c38f}
.invitation-home .photo-tools{position:relative;z-index:6;margin-top:24px}
.invitation-home .photo-tools button{padding:4px 0}

.album-contribution label{font-size:14px}
.album-contribution input[type=file]{display:block;width:100%;padding:12px;border:1px dashed #a48962;background:#fff6e580;line-height:1.5}
.album-contribution input[type=file]::file-selector-button{font:inherit;color:var(--wine);background:var(--paper);border:1px solid #a4896280;border-radius:2px;padding:8px 12px;margin-right:12px;cursor:pointer}

/* The envelope is the invitation's first impression, with the essentials on the letter. */
.envelope-led .invitation-scene{--envelope-top:540px;max-width:1070px;padding:23px 0 60px;min-height:0}
.envelope-led.invite-ready .invitation-scene:not(.is-open){min-height:calc(var(--envelope-top) + 280px)}
.envelope-led .letter{width:705px;max-width:calc(100% - 245px);margin-left:35px;padding:32px 48px 40px}
.envelope-led .letter-heading .couple-names{font-size:30px}
.envelope-led .letter-heading h1{font-size:56px;line-height:.98;letter-spacing:-1px}
.envelope-led .letter-ornament{margin:6px auto 12px}
.envelope-led .envelope-intro{font:italic 23px/1.25 var(--serif);color:#695440;margin:20px 0 0}
.envelope-led .letter-date{font-size:11px;letter-spacing:1px;margin-top:20px}
.envelope-led .invitation-days{display:block;text-align:center;border:0;margin:12px 0 5px;color:#574732}
.envelope-led .invitation-days p{font-size:12px;line-height:1.9}
.envelope-led .invitation-days strong{display:inline;font:600 12px var(--sans);margin:0}
.envelope-led .letter-heading .ink-link{font-size:12px;margin-top:3px;min-height:40px}
.envelope-led .envelope-back{top:calc(var(--envelope-top) - 200px);left:10px;width:790px;max-width:calc(100% - 185px);height:440px}
.envelope-led .envelope-front{top:var(--envelope-top);left:7px;width:800px;max-width:calc(100% - 170px);height:255px}
.envelope-led .envelope-address{top:115px;left:44px;font-size:28px;line-height:1.2}
.envelope-led .envelope-address em{font-size:24px}
.envelope-led .wax-seal{top:calc(var(--envelope-top) + 44px);left:calc((min(100%, 970px) - 170px)/2 - 48px);width:100px;height:100px}
.envelope-led .seal-action{top:112px;font-size:10px;letter-spacing:1px;padding:4px 7px;white-space:nowrap}
.envelope-led .photo-pile,.envelope-led .is-open .photo-pile{top:120px;right:-3px;width:230px}
.envelope-led .keepsake-card{height:277px}
.envelope-led .keepsake-card img{height:225px}
.envelope-led .keepsake-card figcaption{font-size:19px}
.envelope-led .key-tag,.envelope-led .is-open .key-tag{top:520px;right:8px;width:195px}
.envelope-led .key-tag svg{width:140px;height:60px}
.envelope-led .key-tag>span{font-size:21px}
.envelope-led .letter-actions{display:flex;flex-direction:column;align-items:center;gap:12px}
@media(min-width:651px) and (max-width:950px){.envelope-led .letter{max-width:calc(100% - 185px);margin-left:10px;padding:28px}.envelope-led .letter-heading h1{font-size:44px}.envelope-led .photo-pile,.envelope-led .is-open .photo-pile{width:170px;right:-4px}.envelope-led .keepsake-card{height:216px}.envelope-led .keepsake-card img{height:167px}.envelope-led .keepsake-card figcaption{font-size:15px}.envelope-led .envelope-front{max-width:calc(100% - 150px)}.envelope-led .envelope-back{max-width:calc(100% - 160px)}.envelope-led .key-tag,.envelope-led .is-open .key-tag{width:150px;right:0}.envelope-led .key-tag>span{font-size:19px}.envelope-led .wax-seal{left:calc((100% - 150px)/2 - 50px)}}
@media(max-width:650px){
 .envelope-led .invitation-scene{padding:12px 0 20px}
 .envelope-led.invite-ready .invitation-scene:not(.is-open){min-height:calc(var(--envelope-top) + 475px)}
 .envelope-led .letter{width:100%;max-width:100%;margin:0;padding:25px 24px 35px}
 .envelope-led .letter-heading .couple-names{font-size:25px}
 .envelope-led .letter-heading h1{font-size:39px;line-height:1;letter-spacing:-.7px}
 .envelope-led .letter-ornament{margin:5px auto 10px;font-size:15px}
 .envelope-led .envelope-intro{font-size:21px;margin-top:17px}
 .envelope-led .letter-date{font-size:10px;letter-spacing:.5px;margin-top:18px}
 .envelope-led .invitation-days{margin-top:10px}
 .envelope-led .invitation-days p,.envelope-led .invitation-days strong{font-size:11px;line-height:1.9}
 .envelope-led .letter-heading .ink-link{font-size:12px}
 .envelope-led .envelope-back{top:calc(var(--envelope-top) - 160px);left:-5px;width:calc(100% + 10px);max-width:none;height:355px}
 .envelope-led .envelope-front{left:-5px;width:calc(100% + 10px);max-width:none;height:215px}
 .envelope-led .wax-seal{left:calc(50% - 45px);top:calc(var(--envelope-top) + 28px);width:90px;height:90px}
 .envelope-led .seal-action{top:96px;font-size:9px;letter-spacing:.6px}
 .envelope-led .envelope-address{top:158px;left:25px;font-size:23px;line-height:1}
 .envelope-led .envelope-address em{font-size:21px}
 .envelope-led .photo-pile{top:calc(var(--envelope-top) + 260px);right:15px;width:155px;transform:rotate(7deg)}
 .envelope-led .keepsake-card{height:192px}
 .envelope-led .keepsake-card img{height:147px}
 .envelope-led .keepsake-card figcaption{font-size:14px}
 .envelope-led .photo-back{font-size:15px;padding:11px}
 .envelope-led .photo-back-signature{font-size:13px;margin-top:7px}
 .envelope-led .photo-tools{margin-top:18px;font-size:12px}
 .envelope-led .key-tag{top:calc(var(--envelope-top) + 282px);left:0;right:auto;width:135px}
 .envelope-led .key-tag svg{width:95px;height:45px}
 .envelope-led .key-tag>span{font-size:18px}
 .envelope-led .is-open .photo-pile{position:relative;top:auto;right:auto;width:210px;margin:35px auto 15px}
 .envelope-led .is-open .keepsake-card{height:255px}
 .envelope-led .is-open .keepsake-card img{height:207px}
 .envelope-led .is-open .keepsake-card figcaption{font-size:18px}
}
@media(max-width:350px){.envelope-led .letter{padding-inline:20px}.envelope-led .letter-heading h1{font-size:34px}.envelope-led .invitation-days p,.envelope-led .invitation-days strong{font-size:10px}.envelope-led .photo-pile{right:0;width:140px}.envelope-led .key-tag{width:120px}.envelope-led .key-tag>span{font-size:17px}}
@media print{.envelope-led .letter{width:100%;max-width:none;margin:0;transform:none}.envelope-led #close-invitation{display:none}}

/* A short visible card sits inside a substantial envelope; opening reveals the details. */
.envelope-led .invitation-scene{--envelope-top:310px}
.envelope-led.invite-ready .invitation-scene:not(.is-open){min-height:calc(var(--envelope-top) + 330px)}
.envelope-led .invitation-scene:not(.is-open) .letter{padding-top:27px;padding-bottom:185px}
.envelope-led .invitation-scene:not(.is-open) .letter-ornament{display:none}
.envelope-led .invitation-scene:not(.is-open) .couple-names{font-size:25px;margin-bottom:15px}
.envelope-led .invitation-scene:not(.is-open) .letter-heading h1{font-size:52px;line-height:.98}
.envelope-led .letter-weekend{font:italic 19px/1.3 var(--serif);margin-top:6px;color:#695440}
.envelope-led .envelope-back{top:calc(var(--envelope-top) - 85px);height:375px}
.envelope-led .envelope-front{height:300px}
.envelope-led .wax-seal{top:calc(var(--envelope-top) + 53px)}
.envelope-led .envelope-address{top:166px}
.envelope-led .invitation-summary{text-align:center;border-top:1px solid #b9a07b69;margin-top:25px;padding-top:5px}
.envelope-led .invitation-summary .ink-link{font-size:12px}
.envelope-led .photo-pile,.envelope-led .is-open .photo-pile{top:60px}
.envelope-led .key-tag,.envelope-led .is-open .key-tag{top:440px}
@media(min-width:651px) and (max-width:950px){.envelope-led .invitation-scene:not(.is-open) .letter-heading h1{font-size:40px}}
@media(max-width:650px){
 .envelope-led.invite-ready .invitation-scene:not(.is-open){min-height:calc(var(--envelope-top) + 510px)}
 .envelope-led .invitation-scene:not(.is-open) .letter{padding-top:23px;padding-bottom:155px}
 .envelope-led .invitation-scene:not(.is-open) .couple-names{font-size:23px;margin-bottom:13px}
 .envelope-led .invitation-scene:not(.is-open) .letter-heading h1{font-size:37px}
 .envelope-led .letter-weekend{font-size:17px}
 .envelope-led .envelope-back{top:calc(var(--envelope-top) - 65px);height:310px}
 .envelope-led .envelope-front{height:255px}
 .envelope-led .wax-seal{top:calc(var(--envelope-top) + 38px)}
 .envelope-led .envelope-address{top:181px}
 .envelope-led .photo-pile{top:calc(var(--envelope-top) + 295px)}
 .envelope-led .key-tag{top:calc(var(--envelope-top) + 320px)}
 .envelope-led .is-open .photo-pile{top:auto}
}
@media(max-width:350px){.envelope-led .invitation-scene:not(.is-open) .letter-heading h1{font-size:32px}.envelope-led .letter-weekend{font-size:15px}}
/* Five tabs remain fully visible at phone widths. */
@media(max-width:650px){.stationery-nav a{display:flex;align-items:center;justify-content:center;white-space:normal;min-width:0;line-height:1.4;padding:12px 5px}}
/* Photos are keepsakes to browse, without a reverse side or flip control. */
.keepsake-card{display:block;margin:0;background:#f9f0da;padding:10px 10px 0;text-align:center;box-shadow:4px 8px 16px #11070955}
.keepsake-card img{display:block;width:100%;object-fit:cover;object-position:49% center}
.keepsake-card figcaption{font-family:var(--serif);font-style:italic;line-height:1.8}
.invitation-home .photo-tools{justify-content:flex-end}
.arrival-note{background:#713c420b;border-left:3px solid var(--wine);padding:14px 16px;margin:0 0 24px;font-size:14px;line-height:1.65;color:#59343a}
.arrival-note>strong{display:block;font-size:17px}
.arrival-inline{color:var(--wine);font-weight:600}
.schedule-time{display:block;color:var(--wine);font-size:20px;letter-spacing:1px;font-weight:700;margin-bottom:5px}
.memory-board-note{display:block;background:#713c4209;border-left:3px solid var(--wine);padding:12px 15px;margin-top:16px;line-height:1.7}
.details-sheet{max-width:1000px;margin:auto;padding:38px 40px;background:var(--paper);box-shadow:9px 14px 32px #160b144d}
.details-heading{text-align:center;margin-bottom:30px}
.details-heading h1{font-size:56px;line-height:1.03;margin:14px 0 18px}
.details-heading h1 em{color:var(--wine)}
.details-heading>p:last-child{font:24px/1.35 var(--serif)}
.details-events{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #ad906160}
.details-events>section{padding:27px 28px 27px 0}
.details-events>section+section{border-left:1px solid #ad906160;padding-left:28px;padding-right:0}
.details-events h2{font-size:34px;margin:10px 0 20px}
.details-events p:not(.eyebrow){font-size:14px;line-height:1.7;margin-bottom:16px}
.details-events .details-time{font:600 25px var(--serif)!important;color:var(--wine)}
.entry-note{color:var(--wine)}
.guest-details{padding-top:32px}
.guest-details>h2{font-size:36px;margin-bottom:6px}
.details-list{margin:0}
.details-list>div{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;padding:24px 0;border-bottom:1px solid #ad906150}
.details-list dt{font:600 26px/1.15 var(--serif);color:var(--wine)}
.details-list dd{margin:0;font-size:14px;line-height:1.75}
.details-list a{text-underline-offset:3px;color:var(--wine)}
.details-reply{text-align:center;padding-top:28px}
.stationery-nav{max-width:820px}
@media(max-width:650px){
 .stationery-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .stationery-nav a{font-size:12px;white-space:nowrap;padding:11px 5px}
 .details-sheet{padding:28px 24px}
 .details-heading h1{font-size:46px}
 .details-events{grid-template-columns:1fr}
 .details-events>section{padding:24px 0}
 .details-events>section+section{border-left:0;border-top:1px solid #ad906160;padding:24px 0}
 .details-events h2{font-size:33px}
 .guest-details>h2{font-size:32px}
 .details-list>div{grid-template-columns:1fr;gap:10px;padding:22px 0}
 .details-list dt{font-size:26px}
}
@media(max-width:350px){.stationery-nav a{font-size:11px}.details-sheet{padding:24px 20px}}

/* Dates lead the invitation; the city remains a quiet second line. */
.envelope-led .letter-date{font-size:21px;line-height:1.4;letter-spacing:1px;margin-top:20px;color:var(--wine)}
.envelope-led .letter-date>span{display:block}
.envelope-led .letter-date .letter-city{font-size:11px;letter-spacing:1.8px;margin:5px 0 0;color:var(--ink)}
.envelope-led .invite-postscript{font:21px/1.5 var(--serif);margin-top:26px;padding-top:20px;border-top:1px solid #b9a07b69}
.invite-postscript em{color:var(--wine);font-weight:600}
.invite-postscript a{color:var(--wine);text-underline-offset:4px}
.album-page-heading .album-invitation{font:14px/1.7 var(--sans);margin-top:22px}
.album-invitation a{color:var(--wine);text-underline-offset:4px}
@media(max-width:650px){.envelope-led .letter-date{font-size:18px;letter-spacing:.5px}.envelope-led .invite-postscript{font-size:20px}.day-card .program-date{font-size:17px}}
@media(max-width:350px){.envelope-led .letter-date{font-size:16px}}

.envelope-led .key-tag>span{padding:13px 15px 11px 23px}
.envelope-led .key-tag>span b{position:static;display:block;text-align:right;font:400 20px/1 var(--sans);margin-top:6px}

/* The invitation is a single centered envelope. */
.envelope-led .invitation-scene{max-width:820px;padding-top:18px}
.envelope-led .letter{width:calc(100% - 70px);max-width:none;margin:0 auto;padding:32px 48px 40px}
.envelope-led .envelope-front,.envelope-led .envelope-back{left:0;width:100%;max-width:none}
.envelope-led .wax-seal{left:calc(50% - 50px)}
.envelope-led .seal-action{font-size:10px;letter-spacing:.6px}
.envelope-led.invite-ready .invitation-scene:not(.is-open){min-height:max(calc(var(--envelope-top) + 340px),calc(100svh + 80px));padding-bottom:0}
.envelope-led .letter-heading h1,.envelope-led .invitation-scene:not(.is-open) .letter-heading h1{font-size:48px}
@media(max-width:650px){
 .envelope-led .letter{width:calc(100% - 16px);padding:25px 24px 35px}
 .envelope-led .letter-heading h1,.envelope-led .invitation-scene:not(.is-open) .letter-heading h1{font-size:34px}
 .envelope-led .envelope-front,.envelope-led .envelope-back{left:-5px;width:calc(100% + 10px)}
 .envelope-led .wax-seal{left:calc(50% - 45px)}
 .envelope-led .seal-action{font-size:9px;letter-spacing:.2px}
 .envelope-led.invite-ready .invitation-scene:not(.is-open){min-height:max(calc(var(--envelope-top) + 285px),calc(100svh + 60px))}
}
@media(max-width:350px){.envelope-led .letter-heading h1,.envelope-led .invitation-scene:not(.is-open) .letter-heading h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){.envelope-led .letter,.envelope-led .envelope-front,.envelope-led .envelope-back,.envelope-led .wax-seal{transition:none!important}}

.venue-address{font-weight:400;font-size:14px;line-height:1.7}
.venue-address a,a.venue-address{color:var(--wine);text-underline-offset:3px}
