/* A love journal: paper, photography and chapters. Two editions, one story. */
body.editorial-wedding{--primary-red:#792a39;--primary-dark:#4b1824;--primary-light:#9b4855;--paper:#f5f0e6;--paper-light:#fffcf5;--ink:#362f29;--muted:#7b7165;--gold-accent:#9a793c;--border-gold:#bfa77b66;--border-subtle:#93836633;--text-main:var(--ink);--text-muted:var(--muted);background:var(--paper);color:var(--ink)}
body.editorial-wedding[data-house="trai"]{--primary-red:#28594c;--primary-dark:#163c33;--primary-light:#437766;--paper:#f1f0e5;--paper-light:#fafbf3}
body::before{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23847350' opacity='.10' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px;z-index:2;opacity:.35}
.main-container{max-width:1600px;width:100%;background:transparent;box-shadow:none;overflow:clip}
a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{font-family:inherit}a:focus-visible,button:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--gold-accent);outline-offset:5px}
section[id]{scroll-margin-top:25px}.main-container>section{padding:100px max(32px,calc((100% - 1120px)/2));}
.editorial-masthead{max-width:1320px;margin:auto;padding:27px 40px 23px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);position:relative;z-index:3;gap:20px}
.wedding-wordmark{font:30px/.9 var(--font-serif);letter-spacing:-3px;text-decoration:none;color:var(--primary-red);position:relative;min-width:120px}.wedding-wordmark>span:first-child{font-size:23px;font-style:italic;color:var(--gold-accent);margin:0 3px}.wordmark-note{font:8px var(--font-sans);letter-spacing:1.5px;display:block;margin-top:8px;color:var(--muted)}
.masthead-edition,.masthead-rsvp{font:10px var(--font-sans);letter-spacing:2px;text-decoration:none;color:var(--muted)}.masthead-rsvp{color:var(--primary-red);font-size:11px;letter-spacing:.5px}.masthead-rsvp span{margin-left:10px;font-size:20px}
.guest-welcome-card{border:0;border-bottom:1px solid var(--border-subtle);background:transparent;padding:15px;text-align:center}.greeting-label{font-size:9px;letter-spacing:2px}.guest-name-highlight{font-size:23px}
.hero-section{display:grid;grid-template-columns:1.13fr 1fr;gap:58px;max-width:1240px;margin:0 auto;padding:64px 40px 80px;text-align:left;overflow:visible;background:none;min-height:760px;align-items:center}
.hero-copy{position:relative;z-index:1}.wedding-badge{font:9px/1.7 var(--font-sans);font-weight:500;letter-spacing:2.3px;border:0;padding:0;margin:0 0 25px;color:var(--muted)}
.hero-prelude{font:italic 23px/1.4 var(--font-serif);color:var(--muted);margin-bottom:18px}.couple-names-wrap{margin:0 0 25px;position:relative}.couple-name{font:400 clamp(64px,7.2vw,103px)/1.06 var(--font-serif);letter-spacing:-5px;display:block;color:var(--primary-red)}.couple-ampersand{display:block;font:italic 53px/.72 var(--font-serif);margin:2px 0 1px 45%;color:var(--gold-accent)}
.hero-intro{font:12px/1.95 var(--font-sans);color:var(--muted)}.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:16px;margin-top:26px}.editorial-button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--primary-red);color:var(--paper-light);padding:16px 23px;font:11px var(--font-sans);letter-spacing:.5px;text-decoration:none;border:1px solid var(--primary-red);transition:background .3s,transform .3s}.editorial-button:hover{background:var(--primary-dark);transform:translateY(-2px)}.editorial-button span{font-size:20px;line-height:1}.editorial-text-link{font:10px var(--font-sans);color:var(--primary-red);text-decoration:none;border-bottom:1px solid var(--border-gold);padding-bottom:5px}
.hero-footnote{margin-top:30px;max-width:360px;border-top:1px solid var(--border-subtle);padding-top:15px;display:flex;justify-content:space-between;font:8px var(--font-sans);letter-spacing:1.8px;color:var(--muted)}
.hero-art{position:relative;margin:20px 18px 15px 0;min-width:0}.hero-photo-container{width:100%;max-width:none;margin:0;padding:10px 10px 0;background:var(--paper-light);border:1px solid var(--border-gold);border-radius:240px 240px 0 0;transform:rotate(3deg);box-shadow:12px 20px 40px #50402514}.hero-photo-container::after{inset:5px;box-shadow:none;animation:none;border-radius:inherit;border-color:var(--border-gold)}.hero-photo-frame{aspect-ratio:4/5.3;border-radius:230px 230px 0 0;background:#b68c77}.hero-photo-img{object-position:center 35%}.hero-photo-frame::after{animation-duration:14s}.hero-photo-container figcaption{font:8px var(--font-sans);letter-spacing:2px;padding:16px 0;text-align:center;color:var(--muted)}
.hero-snapshot{position:absolute;left:-65px;bottom:-25px;width:172px;background:#fffcf5;padding:8px 8px 0;transform:rotate(-10deg);box-shadow:5px 10px 25px #2c1d1933;z-index:3}.hero-snapshot img{display:block;width:100%;height:177px;object-fit:cover;object-position:50% 32%}.hero-snapshot figcaption{font:italic 17px var(--font-serif);padding:9px 0 12px;text-align:center;color:#775744}
.hero-date-stamp{position:absolute;right:-30px;top:0;width:118px;height:118px;border-radius:50%;background:var(--paper);border:1px solid var(--gold-accent);box-shadow:0 0 0 5px var(--paper),0 0 0 6px var(--border-gold);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(10deg);z-index:3;color:var(--primary-red)}.hero-date-stamp>span{font:8px var(--font-sans);letter-spacing:1px}.hero-date-stamp strong{font:50px/.95 var(--font-serif);margin:6px 0}.hero-script{position:absolute;top:-38px;left:-8px;font:italic 24px var(--font-serif);z-index:3;color:var(--gold-accent);transform:rotate(-7deg)}.hero-art-orbit{position:absolute;inset:-55px -30px -35px;border:1px solid var(--border-gold);border-radius:50%;transform:rotate(-20deg);opacity:.65;pointer-events:none}
.promise-ribbon{background:var(--primary-red);color:var(--paper-light);overflow:hidden;padding:20px 0;border-top:1px solid var(--primary-dark);border-bottom:1px solid var(--primary-dark)}.promise-track{display:flex;width:max-content;animation:promise-scroll 38s linear infinite}.promise-track>span{display:flex;align-items:center;gap:40px;padding-right:40px;font:italic 29px var(--font-serif);white-space:nowrap}.promise-track i{font-style:normal;color:#d6bc82;font-size:22px}.promise-ribbon:hover .promise-track{animation-play-state:paused}
@keyframes promise-scroll{to{transform:translateX(-50%)}}
.chapter-index,.section-subtitle{font:9px var(--font-sans);letter-spacing:2.2px;color:var(--gold-accent);margin-bottom:21px;display:block}.chapter-heading h2,.section-title{font:400 clamp(38px,4.4vw,60px)/1.16 var(--font-serif);letter-spacing:-1.8px;color:var(--primary-red)}.chapter-heading h2 em,.section-title em{font-weight:400;color:var(--primary-red)}.chapter-heading>p,.section-intro{font:12px/1.95 var(--font-sans);color:var(--muted);margin-top:23px}.chapter-flower{font:110px var(--font-serif);color:var(--gold-accent);display:block;margin-top:45px;line-height:1}.section-header{margin-bottom:40px;text-align:left}
.invitation-section{background:var(--paper);display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:center}.invitation-card{background:var(--paper-light);border-radius:0;padding:44px 35px;box-shadow:10px 10px 0 #a98b5310;position:relative;outline:1px solid var(--border-gold);outline-offset:-10px;text-align:center}.invitation-card::before{content:'T & N';font:italic 16px var(--font-serif);letter-spacing:4px;position:absolute;top:-16px;left:50%;transform:translateX(-50%);padding:3px 16px;background:var(--paper-light);color:var(--gold-accent);border:1px solid var(--border-gold)}.invitation-card:hover{box-shadow:10px 10px 0 #a98b5310}.invitation-letter-badge{font:9px var(--font-sans);letter-spacing:3px;background:none;padding:0;color:var(--muted);border:0}.invitation-letter-title{font-size:33px;margin-bottom:28px}.parent-name{font-size:11px;letter-spacing:.3px}.parent-holy{font-size:9px}.parent-role{font-size:10px}.family-box-title{font-size:12px}.family-address{font-size:10px;line-height:1.7}.family-columns{gap:20px;margin-bottom:26px}.couple-focus-name{font-size:21px}.couple-focus-wrap{gap:8px}.couple-role-tag{font-size:9px}.invitation-announcement{font-size:12px}.invitation-card>p:last-child{font-size:12px!important;font-weight:400!important;margin-top:22px;padding-top:18px;border-top:1px solid var(--border-subtle)}
.foreword-section{background:var(--primary-red);display:grid;grid-template-columns:1fr 1fr;gap:0 85px;align-items:start;color:var(--paper-light);position:relative}.foreword-section .section-header{grid-column:1;grid-row:1;margin-bottom:26px}.foreword-section .section-subtitle{color:#d9c69e}.foreword-section .section-title,.foreword-section .section-title em{color:var(--paper-light)}.letter-photo{grid-row:2;grid-column:1;position:relative;transform:rotate(-3deg);background:var(--paper-light);padding:10px 10px 0;margin:15px 15px 0 0;box-shadow:4px 12px 30px #0002}.letter-photo img{width:100%;height:280px;object-fit:cover;display:block}.letter-photo figcaption{font:italic 18px/1.5 var(--font-serif);padding:16px;text-align:center;color:#77664f}.photo-tape{position:absolute;top:-13px;left:38%;height:28px;width:100px;background:#e8d9b56b;transform:rotate(5deg)}.foreword-card{grid-column:2;grid-row:1/span 2;padding:40px 0 0;background:none;box-shadow:none;border:0;border-radius:0;text-align:left}.foreword-quote-icon{width:34px;height:34px;color:#d9c69e;margin-bottom:20px}.foreword-content{font:13px/2.1 var(--font-sans);color:#f3e8d9}.foreword-content strong{font-weight:500}.foreword-content p{margin-bottom:20px}.foreword-signature{font:italic 30px var(--font-serif);color:#e0c796;margin-top:35px}
.main-container>.story-section{background:var(--paper);display:grid;grid-template-columns:290px minmax(0,1fr);gap:55px;padding-right:0;padding-bottom:75px}.story-section>.section-header{padding-top:25px;margin:0}.story-section .section-title{font-size:47px}.story-timeline{display:flex;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--gold-accent) transparent;padding:22px 40px 35px 8px;align-items:stretch;overscroll-behavior-x:contain;scroll-padding-left:8px;counter-reset:story}.story-timeline::before{display:none}.story-item{flex:0 0 340px;min-width:0;padding:0 0 22px;margin:0;scroll-snap-align:start;position:relative;background:var(--paper-light);border:1px solid var(--border-subtle)}.story-photo{background:var(--paper-light);padding:10px 10px 0;margin:0}.story-photo img{width:100%;height:235px;object-fit:cover;display:block;filter:saturate(.85)}.story-photo figcaption{font:italic 16px var(--font-serif);padding:11px 0;text-align:center;color:var(--muted)}.story-chapter-number{position:absolute;right:13px;top:215px;display:grid;place-items:center;width:40px;height:40px;background:var(--primary-red);color:var(--paper-light);font:italic 20px var(--font-serif);border-radius:50%}.story-card{background:none;border:0;border-radius:0;box-shadow:none;padding:17px 24px 0}.story-time-tag{font:9px var(--font-sans);letter-spacing:1.2px;margin-bottom:12px}.story-card-title{font:400 24px/1.25 var(--font-serif);letter-spacing:-.3px;min-height:60px;margin-bottom:12px}.story-card-desc{font:11px/1.9 var(--font-sans);color:var(--muted)}.story-controls{display:flex;align-items:center;gap:18px;margin-top:30px}.story-controls[hidden]{display:none}.story-controls button{width:43px;height:43px;border:1px solid var(--border-gold);border-radius:50%;font-size:19px;background:transparent;color:var(--primary-red);cursor:pointer;transition:background .3s}.story-controls button:hover{background:var(--paper-light)}.story-controls button:disabled{opacity:.3;cursor:default}.story-page{font:10px var(--font-sans);letter-spacing:1.5px;color:var(--muted)}.story-instruction{display:block;font:9px var(--font-sans);margin-top:18px;letter-spacing:.2px;color:var(--muted)}
.events-section{background:var(--paper-light)}.events-section>.section-header{text-align:center}.event-cards-wrap{display:grid;grid-template-columns:1fr 1fr;gap:28px}.event-item-card{display:grid;grid-template-columns:90px minmax(0,1fr);border-radius:0;background:var(--paper-light);border:1px solid var(--border-gold);box-shadow:0 6px 0 #a9906010;overflow:visible}.event-item-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #80613c14}.ticket-stub{grid-column:1;grid-row:1/span 2;border-right:1px dashed var(--border-gold);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;background:var(--paper);position:relative}.ticket-stub::before,.ticket-stub::after{content:'';position:absolute;width:18px;height:18px;background:var(--paper-light);border:1px solid var(--border-gold);border-radius:50%;right:-10px;top:-10px}.ticket-stub::after{top:auto;bottom:-10px}.ticket-stub>span{font:7px var(--font-sans);letter-spacing:.5px;color:var(--muted)}.ticket-stub strong{font:52px var(--font-serif);color:var(--primary-red);line-height:1}.ticket-stub-mark{font:italic 17px var(--font-serif);color:var(--gold-accent);margin-top:36px;writing-mode:vertical-rl;letter-spacing:6px}.event-card-header{grid-column:2;background:none;color:var(--primary-red);padding:25px 15px 0}.event-card-header .event-tag{color:var(--gold-accent);font:8px var(--font-sans);letter-spacing:1px}.event-card-header .event-title{font:400 28px var(--font-serif);margin-top:10px}.event-card-body{grid-column:2;padding:15px 20px 28px}.event-time-highlight{padding:10px 0;background:none;border:0;margin-bottom:15px}.event-hour{font:400 23px var(--font-serif);margin-bottom:5px}.event-time-highlight>span:not(.event-hour){font-size:10px!important}.event-day-lunar{font-size:9px}.event-venue-name{font:400 18px/1.4 var(--font-serif)}.event-venue-address{font-size:10px;line-height:1.8;min-height:48px}.event-actions{gap:8px}.btn-event-action{font-size:9px;padding:11px 13px;border-radius:0;box-shadow:none;font-weight:500}.btn-primary-action{background:var(--primary-red);color:var(--paper-light)}.btn-secondary-action{background:transparent;color:var(--primary-red);border:1px solid var(--border-gold)}.btn-primary-action:hover{box-shadow:none;background:var(--primary-dark)}.btn-secondary-action:hover{background:var(--paper)}
.main-container>.countdown-section{padding-top:60px;padding-bottom:60px;background:var(--primary-dark);color:var(--paper-light);display:grid;grid-template-columns:1fr 1fr;gap:15px 90px;align-items:center}.countdown-section .section-header{grid-column:1;margin-bottom:10px}.countdown-section .section-subtitle{color:#cfb986}.countdown-section .section-title{color:var(--paper-light);font-size:40px}.countdown-box-wrap{grid-column:1;justify-content:flex-start;gap:25px;margin:0}.countdown-item{border:0;background:none;border-radius:0;box-shadow:none;padding:0;min-width:55px}.countdown-num{font:400 46px/1.3 var(--font-serif);color:#eddfc3}.countdown-label{font:9px var(--font-sans);text-transform:uppercase;letter-spacing:2px;color:#d2bd96}.calendar-card{grid-column:2;grid-row:1/span 2;max-width:340px;width:100%;justify-self:end;background:var(--paper);border-radius:0;padding:24px;box-shadow:none;transform:rotate(2deg)}.calendar-header{font:11px var(--font-sans);letter-spacing:2px;color:var(--primary-red)}.calendar-grid{gap:3px}.calendar-day-name,.calendar-cell{font-size:10px;min-height:26px}.calendar-card>div:last-child{font-size:9px!important}.calendar-cell.wedding-highlight{background:var(--primary-red);color:var(--paper-light);animation:none}
.gallery-section{background:var(--paper)}.gallery-section .section-header{display:block;margin-bottom:50px}.gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:50px 30px;align-items:start}.gallery-item{grid-column:span 4;aspect-ratio:auto;border-radius:0;overflow:visible;background:none;box-shadow:none;cursor:zoom-in}.gallery-item:first-child{grid-column:span 5;grid-row:span 2;aspect-ratio:auto}.gallery-item:nth-child(2){grid-column:span 4;margin-top:80px}.gallery-item:nth-child(3){grid-column:span 3}.gallery-item:nth-child(4){grid-column:span 3}.gallery-item:nth-child(5){grid-column:span 4}.gallery-item:nth-child(6){grid-column:span 5}.gallery-item:nth-child(7){grid-column:span 7;margin-top:40px}.gallery-item img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;border:8px solid var(--paper-light);box-shadow:3px 7px 15px #45301b0d}.gallery-item:first-child img{aspect-ratio:3/4.7}.gallery-item:nth-child(5) img,.gallery-item:nth-child(7) img{aspect-ratio:4/3;object-position:50% 40%}.gallery-item:nth-child(6) img{aspect-ratio:1}.gallery-item:hover img{transform:translateY(-5px) rotate(-1deg)}.gallery-item-overlay{display:none}.gallery-caption{display:flex;align-items:baseline;gap:13px;padding:15px 5px;color:var(--primary-red)}.gallery-caption>span:first-child{font:9px var(--font-sans);color:var(--muted)}.gallery-caption>span:last-child{margin-left:auto;font-size:18px}.gallery-caption p{font:italic 18px/1.3 var(--font-serif)}
.rsvp-section{background:var(--paper-light);display:grid;grid-template-columns:.8fr 1.2fr;gap:0 90px;align-items:start;border-top:1px solid var(--border-subtle)}.rsvp-section>.section-header{grid-column:1;position:sticky;top:35px}.postcard-stamp{width:142px;height:155px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;border:1px dashed var(--gold-accent);outline:1px solid var(--border-gold);outline-offset:-7px;transform:rotate(-7deg);margin:40px 0 30px;background:var(--paper)}.postcard-stamp span{font:8px var(--font-sans);letter-spacing:1px;color:var(--muted)}.postcard-stamp strong{font:38px var(--font-serif);color:var(--primary-red)}.rsvp-day-note{font:11px/1.9 var(--font-sans);color:var(--muted)}.rsvp-form-card{grid-column:2;padding:35px;background:var(--paper);box-shadow:none;border:1px solid var(--border-gold);border-radius:0;position:relative}.rsvp-form-card::before{content:'HỒI ÂM';position:absolute;top:-10px;right:25px;background:var(--paper-light);padding:0 12px;font:9px var(--font-sans);letter-spacing:3px;color:var(--gold-accent)}.form-label{font-size:11px;font-weight:400;color:var(--primary-red)}.form-input,.form-select,.form-textarea{border-radius:0;background:var(--paper-light);border:0;border-bottom:1px solid var(--border-gold);font-size:11px;padding:13px 12px;color:var(--ink)}.form-group{margin-bottom:22px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary-red);box-shadow:0 2px 0 var(--primary-red);outline:none}.radio-pills-group{gap:8px}.radio-pill-label span{border-radius:0;font-size:10px;border-color:var(--border-gold);padding:11px 12px;white-space:normal}.radio-pill-label input:checked+span{background:var(--primary-red);border-color:var(--primary-red);color:var(--paper-light)}.btn-submit-rsvp{background:var(--primary-red);border-radius:0;box-shadow:none;font-size:11px;letter-spacing:.7px;padding:17px}.btn-submit-rsvp:hover{background:var(--primary-dark);box-shadow:none}.guestbook-wrap{grid-column:1/-1;margin-top:65px;padding-top:40px;border-top:1px solid var(--border-subtle)}.guestbook-title{font:400 27px var(--font-serif);color:var(--primary-red)}.guestbook-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-height:450px;overflow-y:auto}.guestbook-item{border-radius:0;border:1px solid var(--border-gold);background:var(--paper);box-shadow:none;margin:0;padding:24px}.guestbook-author{font-size:12px}.guestbook-role,.guestbook-footer{font-size:9px}.guestbook-msg{font:italic 17px/1.6 var(--font-serif)}
.gift-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;background:var(--paper);border-top:1px solid var(--border-subtle)}.gift-card-box{background:none;border:0;border-radius:0;box-shadow:none;padding:0;display:grid;grid-template-columns:170px 1fr;gap:0 25px;align-items:center}.gift-intro-text{grid-column:1/-1;max-width:none;font-size:11px;line-height:2;text-align:left;margin-bottom:26px}.qr-code-frame{grid-column:1;grid-row:2/span 2;border:1px solid var(--border-gold);border-radius:0;padding:7px;margin:0;background:white;width:170px;box-shadow:none}.qr-code-frame img{border-radius:0}.bank-info-details{grid-column:2;padding:0;background:none;border:0;text-align:left;margin:0}.bank-name-label{font-size:9px;letter-spacing:.5px;color:var(--muted)}.bank-account-num{font-size:23px;letter-spacing:1px;overflow-wrap:anywhere}.bank-account-owner{font-size:9px;line-height:1.8}.gift-btn-group{grid-column:2;justify-content:flex-start;margin-top:14px;gap:7px}.gift-btn-group .btn-event-action{padding:8px;font-size:8px}
.site-footer{position:relative;text-align:center;background:var(--primary-red);color:var(--paper-light);padding:75px 25px 125px;overflow:hidden}.footer-art{width:130px;height:155px;margin:0 auto 35px;border:5px solid var(--paper-light);transform:rotate(-6deg);border-radius:70px 70px 0 0;overflow:hidden}.footer-art img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.footer-prelude{font:8px var(--font-sans);letter-spacing:2px;color:#d8c397}.footer-names{font:italic clamp(35px,5vw,65px)/1.3 var(--font-serif);color:var(--paper-light);margin:20px 0}.footer-thankyou{font:11px/1.9 var(--font-sans);color:#eadfcf;max-width:460px;margin:0 auto 30px}.footer-copy{font:8px var(--font-sans);letter-spacing:1px;color:#d6c4ab;border:0;padding:0}.footer-final-date{font:40px var(--font-serif);letter-spacing:10px;color:#d2b87e;margin-top:35px}.footer-final-date span{color:#c6a47788}.floating-music-btn{top:auto;bottom:24px;right:24px;width:43px;height:43px;background:var(--paper-light);border:1px solid var(--gold-accent);z-index:120;box-shadow:0 2px 15px #29201522;cursor:pointer;padding:3px}.disc-wrapper{width:100%;height:100%}.bottom-nav{z-index:110;bottom:22px;border:1px solid var(--border-gold);border-radius:3px;background:#fffdf5ed;box-shadow:0 6px 25px #31251b12;padding:10px 22px;gap:24px}.bottom-nav a{font-size:8px;gap:2px}.bottom-nav a svg{width:16px;height:16px}.lightbox-modal{z-index:1500}
body.invitation-entered .couple-names-wrap,body.invitation-entered .hero-photo-container{animation:none}.invitation-entered .hero-copy{animation:invitation-rise 1.2s both cubic-bezier(.2,.7,.2,1)}.invitation-entered .hero-art{animation:invitation-rise 1.5s .15s both cubic-bezier(.2,.7,.2,1)}
@media(min-width:1601px){.main-container>section{padding-left:240px;padding-right:240px}.main-container>.story-section{padding-right:0}}
@media(max-width:1100px){.hero-section{gap:45px;min-height:690px}.hero-art{margin-right:20px}.couple-name{font-size:76px;letter-spacing:-4px}.hero-snapshot{width:140px;left:-35px}.hero-snapshot img{height:145px}.hero-date-stamp{width:100px;height:100px;right:-20px}.hero-date-stamp strong{font-size:42px}.main-container>section{padding:75px 35px}.invitation-section,.foreword-section,.rsvp-section,.gift-section{gap:45px}.main-container>.story-section{grid-template-columns:250px minmax(0,1fr);gap:25px}.story-section .section-title{font-size:40px}.event-item-card{grid-template-columns:65px minmax(0,1fr)}.ticket-stub>span{font-size:6px}.ticket-stub strong{font-size:42px}.event-card-body{padding:15px 15px 25px}.gift-card-box{grid-template-columns:135px 1fr;gap:0 16px}.qr-code-frame{width:135px}.bank-account-num{font-size:19px}.main-container>.countdown-section{gap:20px 50px}.letter-photo img{height:240px}}
@media(min-width:0px){.editorial-masthead{padding:21px 23px 19px;gap:10px}.masthead-edition{font-size:8px;letter-spacing:1px}.masthead-rsvp{font-size:9px}.masthead-rsvp span{margin-left:3px}.wedding-wordmark{font-size:27px;min-width:70px}.wordmark-note{font-size:6px;letter-spacing:.6px}.hero-section{grid-template-columns:1fr;gap:0;padding:40px 27px 65px;min-height:auto;max-width:540px}.wedding-badge{font-size:8px;letter-spacing:1.3px;margin-bottom:18px}.hero-prelude{font-size:19px;margin-bottom:12px}.couple-name{font-size:clamp(60px,14vw,85px);letter-spacing:-3px;line-height:1.06}.couple-ampersand{font-size:38px;margin:1px 0 0 43%}.couple-names-wrap{margin-bottom:20px}.hero-intro{font-size:10px;line-height:1.9}.hero-actions{flex-direction:row;align-items:center;gap:19px;margin-top:21px}.editorial-button{font-size:9px;gap:15px;padding:13px 14px}.editorial-text-link{font-size:8px;max-width:105px;line-height:1.7}.hero-footnote{margin-top:25px;font-size:7px;max-width:none}.hero-art{width:calc(100% - 35px);max-width:350px;margin:68px 0 10px 15px;justify-self:center}.hero-photo-frame{aspect-ratio:4/5}.hero-photo-container figcaption{font-size:7px;padding:13px 0}.hero-snapshot{width:118px;left:-30px;bottom:-13px;padding:6px 6px 0}.hero-snapshot img{height:122px}.hero-snapshot figcaption{font-size:14px;padding:7px 0}.hero-script{font-size:20px;top:-33px;left:0}.hero-date-stamp{width:89px;height:89px;right:-23px;top:5px}.hero-date-stamp strong{font-size:37px}.hero-date-stamp>span{font-size:6px}.hero-art-orbit{inset:-28px -15px -15px}.promise-ribbon{padding:15px 0}.promise-track>span{font-size:24px;gap:25px;padding-right:25px}.promise-track i{font-size:18px}.main-container>section{padding:65px 24px}.chapter-heading h2,.section-title{font-size:41px;letter-spacing:-1.3px}.chapter-index,.section-subtitle{font-size:8px;letter-spacing:1.8px;margin-bottom:17px}.chapter-heading>p,.section-intro{font-size:11px;margin-top:18px}.invitation-section{grid-template-columns:1fr;gap:38px}.chapter-flower{display:none}.invitation-card{padding:38px 22px}.invitation-letter-title{font-size:29px}.family-columns{gap:12px}.family-box{flex:1;min-width:0}.parent-name{font-size:10px}.family-address{font-size:9px}.family-box-title{font-size:11px}.parent-holy{font-size:8px}.couple-focus-wrap{flex-direction:column;gap:9px}.couple-focus-sym{font-size:27px}.couple-focus-name{font-size:24px}.couple-role-tag{margin-bottom:4px}.foreword-section{grid-template-columns:1fr;gap:0}.foreword-section .section-header{grid-column:1;grid-row:auto;margin-bottom:15px}.letter-photo{grid-column:1;grid-row:auto;margin:20px 5px 25px}.letter-photo img{height:auto;aspect-ratio:3/2}.letter-photo figcaption{font-size:16px;padding:13px}.foreword-card{grid-column:1;grid-row:auto;padding:22px 0 0}.foreword-content{font-size:12px;line-height:2}.foreword-quote-icon{height:26px;width:26px;margin-bottom:13px}.foreword-signature{font-size:26px;margin-top:25px}.main-container>.story-section{grid-template-columns:minmax(0,1fr);gap:10px;padding-right:0;padding-bottom:45px}.story-section>.section-header{padding:0 24px 0 0}.story-section .section-title{font-size:41px}.story-controls{margin-top:22px}.story-controls button{width:38px;height:38px}.story-instruction{font-size:8px;margin-top:13px}.story-timeline{padding:15px 24px 25px 0;gap:18px;scroll-padding-left:0}.story-item{flex-basis:min(310px,83vw)}.story-photo img{height:220px}.story-chapter-number{top:200px}.story-card-title{font-size:25px}.story-card-desc{font-size:11px}.story-card{padding:15px 23px 0}.story-photo figcaption{font-size:15px}.events-section>.section-header{text-align:left}.event-cards-wrap{grid-template-columns:1fr;gap:28px}.event-item-card{grid-template-columns:70px minmax(0,1fr)}.event-card-header{padding-top:25px}.event-card-header .event-title{font-size:28px}.event-card-body{padding:15px 15px 25px}.event-venue-name{font-size:18px}.event-venue-address{font-size:10px;min-height:0}.event-hour{font-size:22px}.ticket-stub>span{font-size:6px}.ticket-stub strong{font-size:44px}.btn-event-action{font-size:9px;padding:11px 12px}.main-container>.countdown-section{grid-template-columns:1fr;gap:0;padding:50px 24px}.countdown-section .section-title{font-size:34px}.countdown-section .section-header{grid-column:1}.countdown-box-wrap{grid-column:1;margin:15px 0 35px;gap:24px}.countdown-num{font-size:43px}.countdown-label{font-size:8px}.countdown-item{min-width:45px}.calendar-card{grid-column:1;grid-row:auto;max-width:320px;justify-self:center;padding:22px;transform:rotate(-2deg)}.calendar-day-name,.calendar-cell{min-height:30px;font-size:11px}.gallery-section .section-header{margin-bottom:35px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.gallery-item,.gallery-item:first-child,.gallery-item:nth-child(n){grid-column:span 1;grid-row:auto;margin:0}.gallery-item:first-child{grid-column:span 2}.gallery-item:first-child img{aspect-ratio:4/4.5}.gallery-item:nth-child(4){margin-top:-10px;transform:rotate(-3deg)}.gallery-item:nth-child(5){transform:rotate(3deg)}.gallery-item:nth-child(5) img,.gallery-item:nth-child(7) img{aspect-ratio:3/4}.gallery-item:nth-child(6) img{aspect-ratio:3/4}.gallery-item img{border-width:5px}.gallery-caption{gap:7px;padding:10px 2px}.gallery-caption p{font-size:14px}.gallery-caption>span:first-child{font-size:7px}.gallery-caption>span:last-child{font-size:15px}.rsvp-section{grid-template-columns:1fr;gap:0}.rsvp-section>.section-header{position:relative;top:0;grid-column:1;margin-bottom:32px;padding-right:95px}.rsvp-section .section-title{font-size:37px}.postcard-stamp{position:absolute;right:0;top:38px;width:85px;height:100px;margin:0;gap:8px}.postcard-stamp strong{font-size:26px}.postcard-stamp span{font-size:5px;letter-spacing:.5px}.rsvp-day-note{font-size:9px;margin-top:20px}.rsvp-form-card{grid-column:1;padding:26px 20px}.guestbook-wrap{margin-top:45px;padding-top:30px}.guestbook-title{font-size:25px}.guestbook-list{grid-template-columns:1fr;max-height:450px}.gift-section{grid-template-columns:1fr;gap:0}.gift-section .section-header{margin-bottom:25px}.gift-card-box{grid-template-columns:130px minmax(0,1fr);gap:0 17px}.qr-code-frame{width:130px}.bank-account-num{font-size:20px}.bank-name-label{font-size:8px;line-height:1.8}.bank-account-owner{font-size:8px}.gift-btn-group{grid-column:1/-1;margin-top:22px;justify-content:center;gap:12px}.gift-btn-group .btn-event-action{padding:11px 15px;font-size:9px}.site-footer{padding:60px 24px 120px}.footer-names{font-size:36px}.footer-prelude{font-size:7px;letter-spacing:1.2px}.footer-final-date{font-size:30px;letter-spacing:6px}.footer-copy{font-size:7px;line-height:1.8}.footer-thankyou{font-size:10px}.bottom-nav{max-width:calc(100% - 24px);width:420px;bottom:max(12px,env(safe-area-inset-bottom));gap:0;justify-content:space-around;padding:10px 8px;overflow:auto;border-radius:3px}.bottom-nav a{font-size:7px;padding:0 5px;gap:3px}.bottom-nav a svg{width:16px;height:16px}.floating-music-btn{width:38px;height:38px;bottom:85px;right:15px}.lightbox-img-wrap{max-width:94vw}.cover-names{font-family:var(--font-serif)}}
@media(max-width:350px){.masthead-rsvp{display:none}.hero-section{padding-inline:22px}.couple-name{font-size:55px}.hero-actions{gap:12px}.editorial-button{font-size:8px;padding:13px 11px;gap:10px}.main-container>section{padding-left:19px;padding-right:19px}.chapter-heading h2,.section-title{font-size:36px}.rsvp-section .section-title{font-size:31px}.parent-name{font-size:9px}.gift-card-box{grid-template-columns:110px minmax(0,1fr);gap:0 12px}.qr-code-frame{width:110px}.bank-account-num{font-size:18px}.bottom-nav a{font-size:6px;padding:0 3px}}
@media(prefers-reduced-motion:reduce){.promise-track{animation:none}.hero-art,.hero-copy{animation:none!important}.hero-photo-container{transform:none}}

/* Keep the photographs in the first mobile view; supporting text follows. */
.family-box{background:none;border:0;border-radius:0;padding:12px 6px}.family-box:first-child{border-right:1px solid var(--border-subtle)}
.radio-pill-label{border-radius:0;background:var(--paper-light);padding:13px 12px;border-color:var(--border-gold)}.radio-pill-label span{padding:0;font-size:11px}.radio-pill-label input:checked+span{background:none;color:var(--primary-red)}.radio-pill-label:has(input:checked){background:var(--paper);color:var(--primary-red)}
.story-memory{height:235px;background:#e9e5d9;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--primary-red);gap:10px;border:1px solid var(--border-gold)}.story-memory span{font:8px var(--font-sans);letter-spacing:3px}.story-memory strong{font:400 64px/1 var(--font-serif);letter-spacing:-3px}.story-memory em{font:italic 19px/1.35 var(--font-serif);text-align:center}.story-memory svg{width:34px;height:34px;stroke:var(--gold-accent);fill:none;stroke-width:1}
@media(min-width:0px){.hero-copy{display:contents}.hero-copy>.wedding-badge{order:0}.hero-prelude{order:1;font-size:17px;margin-bottom:17px}.couple-names-wrap{order:2}.hero-art{order:3;margin-top:48px;margin-bottom:20px}.hero-intro{order:4;margin-top:25px;font-size:11px}.hero-actions{order:5}.hero-footnote{order:6}.form-label{font-size:12px}.form-input,.form-select,.form-textarea{font-size:13px}.story-memory{height:220px}.event-time-highlight>span:not(.event-hour){font-size:11px!important}.event-venue-address{font-size:11px}.btn-event-action{font-size:10px}.family-columns{gap:0}.parent-name{line-height:1.8}.parent-role{font-size:11px}}
/* The invitation is a phone-sized reading experience on every screen. */
body.editorial-wedding{background:#e9e3d8;background-image:radial-gradient(ellipse at 0 15%,#c5aa7c18,transparent 55%)}
.main-container{max-width:680px;margin:0 auto;background:var(--paper);box-shadow:0 0 65px #3d2c2310}
.editorial-masthead{padding:19px 22px 17px}.masthead-edition{font-size:10px;letter-spacing:.8px}.masthead-rsvp{font-size:11px}.wordmark-note{font-size:7px}.hero-section{padding:28px 24px 44px;max-width:500px;text-align:center}.wedding-badge{font-size:10px;letter-spacing:1.2px;margin:0 0 14px}.hero-prelude{display:none}.couple-names-wrap{margin-bottom:0}.couple-name{font-size:clamp(40px,11.5vw,54px);letter-spacing:-1.7px;line-height:1.12}.couple-ampersand{font-size:29px;line-height:.8;margin:5px 0 7px}.hero-art{width:calc(100% - 40px);max-width:280px;margin:36px 0 12px;justify-self:center}.hero-photo-frame{aspect-ratio:4/4.15}.hero-photo-container{padding:7px 7px 0}.hero-photo-img{object-position:50% 33%}.hero-photo-container figcaption{font-size:8px;letter-spacing:1.2px;padding:12px 0}.hero-script{font-size:16px;top:-25px;left:5px}.hero-date-stamp{width:78px;height:78px;right:-15px;top:8px}.hero-date-stamp strong{font-size:32px;margin:4px 0}.hero-date-stamp>span{font-size:6px}.hero-snapshot{width:95px;left:-25px;bottom:4px}.hero-snapshot img{height:100px}.hero-snapshot figcaption{font-size:12px;padding:7px 0}.hero-art-orbit{inset:-16px -16px -12px}.hero-actions{order:4;flex-direction:column;align-items:center;gap:12px;margin:22px 0 0}.hero-intro{order:5;font-size:12px;line-height:1.8;margin-top:24px}.hero-footnote{order:6;font-size:8px;width:100%;margin-top:22px}.editorial-button{font-size:12px;min-height:46px;padding:14px 20px;gap:24px}.editorial-text-link{font-size:11px;max-width:none;min-height:32px;padding:6px}.chapter-index,.section-subtitle{font-size:10px;letter-spacing:1.4px;line-height:1.7}.chapter-heading h2,.section-title{font-size:38px}.chapter-heading>p,.section-intro{font-size:13px;line-height:1.8}.main-container>section{padding:54px 24px}.section-header{margin-bottom:30px}.invitation-section{gap:30px}.invitation-card{padding:34px 20px}.family-box-title{font-size:13px}.parent-name{font-size:11px}.parent-role{font-size:12px}.parent-holy{font-size:10px}.family-address{font-size:11px;line-height:1.7}.invitation-announcement{font-size:13px}.invitation-card>p:last-child{font-size:13px!important}.invitation-letter-badge{font-size:11px}.couple-role-tag{font-size:11px}.couple-focus-name{font-size:25px}.foreword-content{font-size:14px;line-height:1.95}.foreword-content p{margin-bottom:18px}.foreword-signature{font-size:28px}.letter-photo figcaption{font-size:17px}.story-section .section-title{font-size:38px}.story-card-desc{font-size:13px;line-height:1.85}.story-time-tag{font-size:10px;line-height:1.6}.story-card-title{font-size:25px}.story-controls button{width:44px;height:44px}.story-page{font-size:12px}.story-instruction{font-size:11px;line-height:1.7}.story-item{flex-basis:min(310px,81vw)}.event-item-card{grid-template-columns:62px minmax(0,1fr)}.ticket-stub>span{font-size:6px;letter-spacing:0}.event-card-body{padding:13px 13px 23px}.event-card-header .event-tag{font-size:9px;line-height:1.7}.event-card-header .event-title{font-size:27px}.event-hour{font-size:23px}.event-time-highlight>span:not(.event-hour){font-size:12px!important;line-height:1.7}.event-venue-name{font-size:21px}.event-venue-address{font-size:12px;line-height:1.7}.event-venue-address small{font-size:11px}.event-actions{flex-direction:column;align-items:stretch}.btn-event-action{justify-content:center;font-size:12px;min-height:44px;padding:12px}.countdown-section .section-title{font-size:32px}.countdown-label{font-size:10px}.calendar-day-name,.calendar-cell{font-size:12px;min-height:32px}.calendar-card>div:last-child{font-size:11px!important;line-height:1.7}.calendar-header{font-size:12px}.gallery-caption p{font-size:16px}.gallery-caption>span:first-child{font-size:9px}.rsvp-section .section-title{font-size:36px}.rsvp-day-note{font-size:12px;line-height:1.8}.form-label{font-size:13px;line-height:1.7}.form-input,.form-select,.form-textarea{font-size:16px;min-height:46px;padding:13px 10px}.form-textarea{min-height:120px}.radio-pill-label{min-height:48px}.radio-pill-label span{font-size:13px;line-height:1.6}.btn-submit-rsvp{font-family:var(--font-sans);font-size:13px;letter-spacing:0;min-height:49px}.guestbook-author{font-size:13px}.guestbook-role,.guestbook-footer{font-size:11px}.guestbook-msg{font-size:19px}.gift-intro-text{font-size:13px;line-height:1.9}.bank-name-label{font-size:10px}.bank-account-owner{font-size:10px}.gift-btn-group .btn-event-action{font-size:12px;padding:12px;min-height:44px}.footer-thankyou{font-size:13px;line-height:1.85}.footer-prelude{font-size:9px;line-height:1.8}.footer-copy{font-size:9px;line-height:1.8}.bottom-nav{width:calc(100% - 24px);max-width:520px;padding:6px 5px}.bottom-nav a{min-height:44px;justify-content:center;font-size:9px;padding:0 4px}.bottom-nav a svg{width:18px;height:18px}.floating-music-btn{width:43px;height:43px;right:max(15px,calc((100vw - 680px)/2 + 15px));bottom:88px}.story-timeline{scrollbar-width:none}.story-timeline::-webkit-scrollbar{display:none}
@media(min-width:761px){.editorial-masthead{padding-inline:30px}.main-container>section{padding-inline:40px}.main-container>.story-section{padding-right:0}.main-container>.story-section>.section-header{padding-right:40px}.hero-section{padding-top:35px}.hero-art{max-width:310px}.story-item{flex-basis:340px}.invitation-cover .cover-content{max-width:540px}.bottom-nav{bottom:16px}}
@media(max-width:350px){.hero-section{padding:25px 20px 40px}.masthead-edition{font-size:9px}.hero-art{max-width:245px}.couple-name{font-size:39px}.main-container>section{padding-inline:18px}.parent-name{font-size:10px}.family-address{font-size:10px}.chapter-heading h2,.section-title{font-size:34px}.rsvp-section .section-title{font-size:30px}.event-item-card{grid-template-columns:52px minmax(0,1fr)}.ticket-stub>span:first-child{font-size:5px}.ticket-stub strong{font-size:36px}.event-card-body{padding-inline:10px}.event-hour{font-size:21px}.bottom-nav a{font-size:8px;padding:0 2px}.bottom-nav a svg{width:17px;height:17px}.gift-card-box{grid-template-columns:110px minmax(0,1fr)}.bank-account-num{font-size:18px}}

.guest-welcome-card{padding:12px 20px;line-height:1.5}.guest-welcome-card .greeting-label{display:inline;font-size:9px;letter-spacing:.7px}.guest-welcome-card .guest-name-highlight{display:inline;font-size:17px;margin-left:9px;overflow-wrap:anywhere}

/* Restore the original, full-width QR block for easy scanning. */
.gift-card-box{display:block;padding:32px 20px;background:#fff;border:1px solid var(--border-gold);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center}
.gift-intro-text{max-width:460px;margin:0 auto 24px;text-align:center}
.qr-code-frame{width:100%;max-width:260px;margin:0 auto 20px;padding:12px;background:#fff;border:2px solid var(--gold-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.qr-code-frame img{display:block;width:100%;height:auto;border-radius:0}
.bank-info-details{padding:16px;margin-bottom:20px;background:var(--paper);border:1px solid var(--border-subtle);border-radius:var(--radius-md);text-align:center}
.bank-name-label{font-size:12px;line-height:1.7}.bank-account-num{font-size:24px;letter-spacing:2px;margin:6px 0}.bank-account-owner{font-size:12px;line-height:1.7}
.gift-btn-group{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:0}
