@font-face { font-family:"Cormorant Garamond"; font-style:normal; font-weight:400; font-display:swap; src:url('assets/fonts/cormorant-garamond-regular.ttf') format('truetype'); }
@font-face { font-family:"Cormorant Garamond"; font-style:italic; font-weight:400; font-display:swap; src:url('assets/fonts/cormorant-garamond-italic.ttf') format('truetype'); }
/* Wide-screen composition; loaded only above the desktop breakpoint. */
.site-shell { width:min(100%,1440px); }
.compact-head { padding-inline:48px; background:#f7f1e6fa; }
.head-brand { letter-spacing:.24em; }
h2 { font-family:"Cormorant Garamond",Georgia,serif; font-size:84px; font-weight:400; font-style:italic; line-height:.95; letter-spacing:-.035em; text-transform:none; text-wrap:pretty; }
.section-intro { letter-spacing:.3em; }
.section-head { max-width:none; }
.paper-section { padding:112px 88px; }
.paper-section::before, .paper-section::after { display:none; }

/* The opening spread pairs a full portrait with a richly coloured invitation. */
.hero { grid-template-columns:1.12fr 1fr; background:#44232a; min-height:780px; }
.hero-image-wrap { min-height:780px; }
.hero-image-fade { background:linear-gradient(90deg,transparent 75%,#44232a); }
.hero-copy {
  position:relative; align-items:center; text-align:center;
  padding:70px 48px; margin:28px 28px 28px 0;
  border:0;
  background:url('assets/svg/pavilion-landscape.svg') bottom/100% auto no-repeat,linear-gradient(145deg,#663038,#361b23);
}
.hero-copy::before { content:""; position:absolute; left:48px; top:42px; width:64px; border-top:1px solid #d9b47b99; pointer-events:none; }
.hero .eyebrow { color:#d9b47b; }
.hero h2.hero-names { font-family:"Cormorant Garamond",Georgia,serif; font-style:italic; line-height:.95; font-size:clamp(70px,7.3vw,106px); color:var(--cream); margin:20px 0; }
.hero h2.hero-names em { font-family:"Cormorant Garamond",Georgia,serif; font-size:.4em; font-style:italic; text-transform:none; color:#d9b47b; margin:12px 0; }
.hero p { color:#f7f1e6; line-height:1.85; }
.hero .hero-fullnames { color:#e6cdb8!important; }
.hero .hero-date { max-width:100%; font-size:10px; color:#edd9b7; border-color:#d9b47b80; }
.hero .divider-img { margin:0 auto 16px; }

/* An event programme instead of a row of small cards. */
#details {
  display:grid; grid-template-columns:.8fr 1.2fr; gap:0 72px;
  background:url('assets/blossoms/branch-left.webp') left top/230px auto no-repeat,
    url('assets/svg/pavilion-landscape.svg') left bottom/46% auto no-repeat,#f7f1e6;
}
#details .section-head { grid-row:1/3; align-self:center; text-align:left; margin:0; padding-bottom:90px; }
#details h2 { font-size:94px; max-width:8ch; line-height:.9; margin-block:26px; }
#details .divider-img { margin-left:0; }
.detail-list { display:block; max-width:none; margin:0; border-block:1px solid #b9956670; }
.detail-row { padding:32px 0; border:0; border-radius:0; box-shadow:none; background:none; gap:24px; }
.detail-row + .detail-row { border-top:1px solid #b9956640; }
.detail-icon { width:52px; height:52px; padding:10px; border:1px solid #b9956680; border-radius:50%; }
.detail-row b { font-size:24px; font-weight:400; font-style:italic; }
.detail-row p { font-size:16px; }
.detail-row .detail-venue { border:0; padding-top:2px; font-size:14px; }
.details-actions { grid-column:2; margin:26px 0 0; text-align:left; }

/* The couple announcement, laid out as a two-name spread. */
#couple {
  display:grid; grid-template-columns:.8fr 1.2fr; gap:0 72px;
  background:url('assets/blossoms/branch-right.webp') right top/230px auto no-repeat,#f7f1e6;
}
#couple .section-head { align-self:center; text-align:left; margin:0; }
#couple h2 { font-size:94px; max-width:8ch; line-height:.9; margin-block:26px; }
#couple .divider-img { margin-left:0; }
#couple .couple-intro { margin:0; max-width:340px; font-size:16px; }
#couple::after {
  left:88px;
  right:88px;
  bottom:26px;
}
.couple-grid { flex-direction:row; align-items:stretch; max-width:none; margin:0; gap:28px; }
.couple-card { padding:34px 30px; text-align:center; display:flex; flex-direction:column; justify-content:center; }
.couple-role { font-size:11px; }
.couple-name { font-size:34px; }
.couple-card .divider-img { width:180px; margin:14px auto 12px; }
.couple-parents { font-size:16px; }
.couple-amp { align-self:center; font-size:56px; flex:none; }

.interlude-divider { padding:76px 88px 80px; }
.interlude-ornament span { width:120px; }
.interlude-divider .divider-img { width:160px; }
.interlude-quote { max-width:30ch; font-size:32px; line-height:1.45; }

.countdown-section {
  display:grid; grid-template-columns:.9fr 1.1fr; column-gap:60px; padding:68px 88px;
  text-align:left; position:relative;
  background:url('assets/blossoms/branch-right.webp') right center/220px auto no-repeat,linear-gradient(120deg,#471d29,#792a32);
}
.countdown-section > .section-intro { align-self:end; }
.countdown-section h2 { grid-column:1; font-size:64px; margin:14px 0; }
.countdown-grid { grid-column:2; grid-row:1/4; align-self:center; width:100%; max-width:none; margin:0; gap:0; }
.count-box { background:none; border:0; border-left:1px solid #d9b47b66; border-radius:0; padding:12px 4px; }
.count-box:first-child { border-left:0; }
.count-num { font-size:54px; }
.count-label { margin-top:14px; font-size:9px; }
.countdown-note { grid-column:1; font-size:9px; letter-spacing:.14em; }

.portrait-interlude { height:95svh; min-height:820px; max-height:1100px; }
.portrait-caption { width:55%; margin:0 0 60px 40px; text-align:left; padding:32px; border-left:1px solid #d9b47b99; }
.portrait-caption h2 { font-family:"Cormorant Garamond",Georgia,serif; font-size:84px; font-weight:400; font-style:italic; line-height:.95; letter-spacing:-.035em; text-transform:none; text-wrap:pretty; }
.portrait-caption .divider-img { margin-left:0; }
.portrait-interlude::after { background:linear-gradient(90deg,#281916a8,transparent 80%),linear-gradient(0deg,#281916b0,transparent 60%); }

.story-section { position:relative; padding:100px 88px; background:url('assets/blossoms/corner-top-right.webp') right 36px/190px auto no-repeat,url('assets/svg/cloud-pattern.svg') repeat,#45232c; color:#f7f1e6; }
.story-section > .section-head { text-align:left; margin-bottom:44px; }
.story-section h2 { font-size:104px; color:#f7f1e6; }
.story-section .section-intro { color:#d9b47b; }
.story-section .milestones h3 { color:#edd2a8; }
.story-section .milestones p { color:#f2e4d6; }
.story-section .milestones li::before { background:#45232c; }
.story-body { grid-template-columns:1fr 1fr; max-width:none; gap:80px; margin-top:0; }
.photo-frame { width:100%; max-width:none; padding:14px; aspect-ratio:4/5; transform:rotate(-3deg); border:1px solid #b99566; background:#fff8ed; box-shadow:14px 18px 0 #c4a16a24; }
.photo-frame .frame-overlay { display:none; }
.photo-frame::after { content:""; position:absolute; width:45%; aspect-ratio:4/5; right:-30px; bottom:-70px; border:8px solid #fff8ed; transform:rotate(8deg); background:url('assets/photos/placeholder-4.jpeg') center/cover; box-shadow:0 12px 30px #35252430; }
.story-lead { font-size:21px!important; line-height:1.65!important; border-bottom:1px solid #b9956680; padding-bottom:28px; }
.milestone-date { font-size:9px; }
.milestones h3 { font-size:25px; margin:7px 0; }
.milestones p { font-size:14px!important; line-height:1.8!important; }
.milestones li { padding-bottom:30px; }
.story-divider { margin-top:72px; }

.gallery-section { padding:100px 72px 110px; background:linear-gradient(90deg,#eee6db 82%,#d5b994 82%); overflow:hidden; }
.gallery-section .section-head { text-align:left; margin-left:16px; }
.gallery-section h2 { font-size:112px; max-width:12ch; line-height:.88; margin-block:24px; }
.gallery-section .divider-img { margin-left:0; }
.photo-gallery { max-width:none; grid-template-columns:1.15fr 1fr; gap:32px; margin-top:42px; }
.photo-gallery figure { padding:0; border:0; box-shadow:0 16px 40px #35252425; }
.photo-gallery .gallery-wide { grid-column:1; grid-row:1/3; transform:rotate(-2deg); align-self:center; }
.photo-gallery .gallery-wide img { aspect-ratio:3/4; }
.photo-gallery .gallery-second { grid-column:2; grid-row:1; margin-top:0; transform:rotate(2deg); }
.photo-gallery .gallery-second img { aspect-ratio:3/2; }
.photo-gallery .gallery-offset { grid-column:2; grid-row:2; margin:0 20px 0 -12px; transform:rotate(-2deg); }
.photo-gallery .gallery-offset img { aspect-ratio:3/2; }

/* An illustrated invitation facing a sheet of writing paper. */
.rsvp-section { background:url('assets/blossoms/branch-left.webp') left top/230px auto no-repeat,#dcd0c0; }
.rsvp-layout { grid-template-columns:1fr 1fr; gap:64px; max-width:none; align-items:start; }
.rsvp-copy { position:relative; padding-top:32px; }
.rsvp-copy h2 { font-size:88px; max-width:9ch; line-height:.92; margin-block:26px; }
.rsvp-intro { font-size:18px; line-height:1.8; }
.rsvp-deadline { font-size:13px; }
.rsvp-copy::after { content:""; display:block; margin-top:36px; width:90%; aspect-ratio:4/3; background:url('assets/photos/placeholder-5.jpeg') center 30%/cover; border:10px solid #fff8ed; outline:1px solid #b9956680; transform:rotate(-3deg); box-shadow:12px 14px 0 #c4a16a26; }
.rsvp-layout form { position:relative; background:#fffaf0; padding:34px; border:1px solid #b9956680; box-shadow:8px 8px 0 #f5ecdc,9px 9px 0 #b9956660,0 20px 44px #51362b12; }
.attendance legend, .events-choice legend { font-size:15px; }
.attendance { grid-template-columns:repeat(2,minmax(0,1fr)); }
.attendance legend { grid-column:1 / -1; }

.gift-section { display:grid; grid-template-columns:1fr 1fr; column-gap:72px; align-content:center; background:url('assets/blossoms/branch-right.webp') right top/220px auto no-repeat,#f7f1e6; }
.gift-section .section-head { grid-column:1; grid-row:1/3; text-align:left; margin:0; }
.gift-section h2 { font-size:88px; max-width:9ch; line-height:.92; margin-block:26px; }
.gift-section .divider-img { margin-left:0; }
.gift-intro { font-size:17px; line-height:1.85; max-width:36ch; margin:0; }
.gift-tabs { grid-column:2; width:100%; max-width:none; margin:0 0 20px; align-self:end; }
.gift-grid { grid-column:2; width:100%; max-width:none; margin:0; }
.gift-card { padding:36px; border-top:3px solid #b99566; background:#f0e3d0; box-shadow:8px 8px 0 #c4a16a18; }
.gift-bank { font-size:26px; }
.gift-number { font-size:30px; margin-block:16px 8px; }
.gift-owner, .gift-note, .gift-details dd { font-size:13px; }
.gift-copy { padding:11px 18px; font-size:12px; }
.gift-tag { font-size:9px; }

.wishes-section { background:url('assets/svg/cloud-pattern.svg') repeat,#45232c; padding:88px; }
.wishes-layout { max-width:none; grid-template-columns:1fr 1fr; gap:64px; }
.wishes-copy { padding:40px; background:#fff8ed; border:1px solid #b9956680; box-shadow:8px 8px 0 #c4a16a1f; }
.wishes-copy h2 { font-size:70px; line-height:.95; }
.wishes-intro { max-width:none; font-size:15px; }
.wish-form { max-width:none; }
.wishes-feed { border:0; padding:40px 0; min-height:450px; background:url('assets/blossoms/corner-top-right.webp') right top/230px auto no-repeat; }
.wishes-empty { margin:120px auto 0; padding:100px 25px 30px; max-width:34ch; text-align:center; font-size:17px; color:#ecd8bd; background:none; position:relative; }
.wishes-empty::before { content:""; position:absolute; top:10px; left:calc(50% - 32px); width:64px; height:64px; background:#d9b47b; mask:url('assets/svg/double-happiness.svg?v=emblem-5') center/contain no-repeat; -webkit-mask:url('assets/svg/double-happiness.svg?v=emblem-5') center/contain no-repeat; }
.wish-list { max-width:none; }
.wish-item { padding:24px; }
.wish-text { font-size:16px; }

@media (min-width:1500px) { .music-toggle { right:calc((100vw - 1440px)/2 + 18px); } }
@media (max-width:1100px) {
  .paper-section, .story-section, .gallery-section { padding:84px 48px; }
  .hero-copy { padding-inline:28px; }
  .hero h2.hero-names { font-size:74px; }
  #details { column-gap:40px; }
  #details h2 { font-size:70px; }
  .rsvp-layout, .gift-section, .wishes-layout { column-gap:36px; }
  .rsvp-layout form, .wishes-copy { padding:24px; }
  .countdown-section { padding-inline:48px; column-gap:28px; }
  .count-num { font-size:42px; }
  .story-body { gap:48px; }
}

/* Decorations sit in the margins, clear of copy and controls. */
.rsvp-section { background-size:150px auto,auto; }
.gift-section { background-size:125px auto,auto; }
.countdown-section { overflow:hidden; background:linear-gradient(120deg,#471d29,#792a32); }
.countdown-section::after { content:""; position:absolute; right:-25px; bottom:-40px; width:125px; height:125px; background:url('assets/blossoms/branch-right.webp') center/contain no-repeat; opacity:.55; pointer-events:none; }
#details { background:url('assets/blossoms/branch-left.webp') left top/230px auto no-repeat,#f7f1e6; }
#details::after { display:block; content:""; border:0; position:absolute; inset:auto auto 0 0; width:46%; height:200px; background:url('assets/svg/pavilion-landscape.svg') left bottom/100% auto no-repeat; -webkit-mask-image:linear-gradient(90deg,#000 70%,transparent); mask-image:linear-gradient(90deg,#000 70%,transparent); pointer-events:none; }
@media(max-width:1100px) {
  .compact-head { padding-inline:24px; }
  .head-nav a { padding-inline:9px; }
  .head-brand { font-size:9px; letter-spacing:.12em; }
  .gift-section h2 { font-size:68px; }
  .rsvp-copy h2 { font-size:70px; }
}

.closing-photo h2 { font-family:"Cormorant Garamond",Georgia,serif; font-style:italic; font-size:90px; line-height:.92; letter-spacing:-.035em; text-transform:none; }
.closing-photo .footer-names { font-family:"Cormorant Garamond",Georgia,serif; font-size:38px; }
@media(max-width:1100px) { .gallery-section h2 { font-size:88px; } .story-section h2 { font-size:88px; } .wishes-copy h2 { font-size:58px; } .portrait-caption h2 { font-size:62px; } }

@media(min-width:960px) {
  .closing-copy::after { background-image:url('assets/blossoms/corner-top-right.webp'); right:-36px; top:-44px; }
  .rsvp-section { background-image:url('assets/blossoms/side-left.webp'); background-position:-20px 18px; background-size:200px auto; }
}

/* Quiet silk grounds the page; branches grow from edges rather than float. */
body { background:#2c2026 url('assets/svg/silk-grain.svg') repeat; }
body::before {
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.23;
  background:radial-gradient(ellipse at left 20%,#b9956655,transparent 42%),radial-gradient(ellipse at right 80%,#792a3277,transparent 42%);
}
body::after { content:""; position:fixed; inset:18px; z-index:0; border:1px solid #d9b47b30; pointer-events:none; }
.site-shell { position:relative; z-index:1; box-shadow:0 0 70px #120b1080; }
.story-section {
  background:url('assets/blossoms/corner-top-right.webp') right -25px top -32px/220px auto no-repeat,
    url('assets/svg/cloud-pattern.svg') repeat,#45232c;
}
.wishes-section {
  position:relative;
  background:url('assets/blossoms/side-right.webp') right -8px top -16px/260px auto no-repeat,
    url('assets/svg/cloud-pattern.svg') repeat,#45232c;
}
.wishes-feed { background:none; }
.closing-copy::after { display:none; }
.closing-photo::after { background:none; }

/* Distinct branch silhouettes, with their stems meeting a section edge. */
.story-section { background-position:right -25px top -32px,0 0; }
#details { background-image:url('assets/blossoms/corner-top-right.webp'); background-position:right -20px top -28px; background-size:200px auto; background-color:#f7f1e6; }
.gift-section { background-position:right -8px top -12px; }
.closing-photo .closing-blossom { display:block; position:absolute; left:-12px; bottom:-10px; width:210px; height:210px; background:url('assets/blossoms/corner-bottom-left.webp') left bottom/contain no-repeat; pointer-events:none; z-index:0; }
.closing-photo .closing-copy { z-index:1; }

/* Equal event columns and denser spreads after the story. */
#details { grid-template-columns:1fr 1fr; column-gap:0; padding:88px 0; }
#details .section-head { padding:0 48px 72px; text-align:center; }
#details h2 { margin:26px auto; }
#details .divider-img { margin-inline:auto; }
#details .detail-list { padding-left:56px; margin-right:88px; border-block:0; border-left:1px solid #b9956670; }
#details .detail-row:first-child { border-top:1px solid #b9956670; }
#details .detail-row:last-child { border-bottom:1px solid #b9956670; }
#details .details-actions { padding-left:56px; margin-right:88px; }

.gallery-section {
  display:grid; grid-template-columns:.85fr 1.65fr; gap:48px;
  align-items:center; padding:80px 64px;
  background:linear-gradient(90deg,#45232c 34%,#dcc3a1 34%);
}
.gallery-section .section-head { margin:0; text-align:left; padding-right:12px; }
.gallery-section .section-intro { color:#d9b47b; line-height:1.9; }
.gallery-section h2 { color:#fff4e4; font-size:88px; max-width:8ch; line-height:.95; margin-block:26px; }
.gallery-section .photo-gallery { margin:0; gap:24px; }
.gallery-section .gallery-wide { transform:rotate(-2deg); }
.gallery-section .gallery-second { transform:rotate(2deg); }
.gallery-section .gallery-offset { margin-left:0; margin-right:0; }

.rsvp-section {
  padding-block:80px;
  background:url('assets/blossoms/side-left.webp') left -20px top 18px/180px auto no-repeat,
    url('assets/svg/cloud-pattern.svg') repeat,
    linear-gradient(90deg,#d5c3aa 48%,#e9ddcb 48%);
}
.rsvp-layout { gap:56px; align-items:center; }
.rsvp-copy { padding-top:0; }
.rsvp-copy h2 { max-width:10ch; font-size:80px; }
.rsvp-copy::after { margin-top:30px; width:94%; }
.rsvp-layout form { padding:30px; }

.gift-section {
  padding:72px 88px; column-gap:56px;
  background:url('assets/blossoms/branch-right.webp') right -8px top -12px/125px auto no-repeat,
    url('assets/svg/cloud-pattern.svg') repeat,
    linear-gradient(90deg,#eee1cb 50%,#ddc8a9 50%);
}
.gift-section h2 { font-size:76px; }
.gift-section .gift-intro { max-width:44ch; font-size:16px; line-height:1.75; }
.gift-section .gift-card { background:#fff6e5; padding:30px; box-shadow:8px 8px 0 #ae8c5d22; }
.gift-section .gift-tabs { background:#f7f1e6a8; }

@media(max-width:1100px) {
  #details .detail-list, #details .details-actions { padding-left:32px; margin-right:40px; }
  #details .section-head { padding-inline:32px; }
  .gallery-section { padding:64px 40px; gap:32px; grid-template-columns:.8fr 1.6fr; }
  .gallery-section h2 { font-size:66px; }
  .gallery-section .photo-gallery { gap:18px; }
  .rsvp-section { padding-block:64px; }
  .rsvp-copy h2 { font-size:68px; }
  .gift-section { padding:64px 48px; gap:24px 40px; }
  .gift-section h2 { font-size:66px; }
}

/* A moon-window photo spread, writing paper, and a framed gift panel. */
.gallery-section { position:relative; isolation:isolate; background:#45232c url('assets/svg/cloud-pattern.svg') repeat; padding-block:96px; }
.gallery-section::before { content:""; position:absolute; z-index:-1; width:590px; height:590px; right:90px; top:50%; transform:translateY(-50%); border-radius:50%; background:#dbc19a url('assets/svg/silk-grain.svg'); border:1px solid #d9b47b; outline:1px solid #d9b47b66; outline-offset:16px; }
.gallery-section::after { content:""; position:absolute; inset:24px; border:1px solid #d9b47b55; pointer-events:none; z-index:-1; }
.gallery-section .photo-gallery figure { border:8px solid #fff4e4; box-shadow:0 16px 32px #160e1c60; }
.gallery-section .gallery-wide { transform:rotate(-5deg); }
.gallery-section .gallery-second { transform:rotate(4deg); }
.gallery-section .gallery-offset { transform:rotate(-3deg); }

.rsvp-section { position:relative; isolation:isolate; background:url('assets/blossoms/side-left.webp') left -20px top 18px/180px auto no-repeat,url('assets/svg/silk-grain.svg') repeat,#e8ddcc; }
.rsvp-section::before { display:block; content:""; position:absolute; inset:24px; border:1px solid #aa805b66; z-index:-1; pointer-events:none; }
.rsvp-section::after { display:block; content:""; position:absolute; left:32px; bottom:32px; width:180px; height:180px; background:none; -webkit-mask-image:linear-gradient(45deg,#000,transparent 75%); mask-image:linear-gradient(45deg,#000,transparent 75%); z-index:-1; pointer-events:none; }
.rsvp-copy::after { border-width:12px 12px 40px; width:90%; transform:rotate(-5deg); box-shadow:8px 12px 24px #51362b25; }
.rsvp-layout form { outline:1px solid #b9956655; outline-offset:-9px; padding:38px; box-shadow:5px 6px 0 #f5ecdc,6px 7px 0 #b9956670,0 24px 44px #51362b20; }

/* The transfer area fills its half of the spread. */
.gift-section { position:relative; isolation:isolate; grid-template-columns:1fr 1fr; gap:0; padding:0; grid-template-rows:auto 1fr; align-content:stretch; background:#f1e5d2 url('assets/svg/silk-grain.svg') repeat; }
.gift-section::before { display:none; }
.gift-section::after { display:block; content:""; position:absolute; inset:0 0 0 50%; border:0; background:url('assets/blossoms/branch-right.webp') right -14px top -18px/180px auto no-repeat,url('assets/svg/wave-pattern.svg') repeat,#45232c; z-index:-1; pointer-events:none; }
.gift-section .section-head { padding:72px 64px; align-self:start; }
.gift-section h2 { font-size:88px; }
.gift-section .gift-intro { max-width:37ch; }
.gift-section .gift-tabs { width:auto; margin:72px 48px 0; padding:0 0 14px; border:0; border-bottom:1px solid #d9b47b66; border-radius:0; background:none; align-self:start; }
.gift-section .gift-tabs button { color:#ecd8bd; border-radius:0; background:none; padding:12px; }
.gift-section .gift-tabs button[aria-selected="true"] { background:#ecd8bd; color:#612b33; }
.gift-section .gift-grid { width:auto; margin:0 48px 64px; padding:0; border:0; background:none; box-shadow:none; }
.gift-section .gift-card { background:none; color:#fff4e4; border:0; border-radius:0; box-shadow:none; padding:32px 0 0; }
.gift-section .gift-bank { color:#fff4e4; font-size:30px; }
.gift-section .gift-number { color:#fff4e4; font-size:clamp(32px,3.2vw,46px); letter-spacing:.08em; margin:30px 0 12px; }
.gift-section .gift-tag, .gift-section .gift-owner, .gift-section .gift-note, .gift-section .gift-details dd { color:#e6cda7; }
.gift-section .gift-owner { font-size:15px; }
.gift-section .gift-copy { margin-top:20px; background:#edd6b1; color:#612b33; border-color:#d9b47b; padding:13px 22px; }
@media(max-width:1100px) {
  .gallery-section::before { width:450px; height:450px; right:44px; }
  .rsvp-layout form { padding:28px; }
  .gift-section .section-head { padding:56px 40px; }
  .gift-section .gift-tabs { margin:48px 32px 0; }
  .gift-section .gift-grid { margin:0 32px 48px; }
  .gift-section h2 { font-size:72px; }
}

/* Readable international details, aligned to the same panel edges as domestic. */
.gift-section .gift-details { gap:0; margin:20px 0 0; }
.gift-section .gift-details div { grid-template-columns:132px minmax(0,1fr); gap:16px; padding:12px 0; border-bottom:1px solid #d9b47b33; }
.gift-section .gift-details dt { color:#d9b47b; font-size:11px; line-height:1.6; }
.gift-section .gift-details dd { font-size:17px; line-height:1.6; overflow-wrap:anywhere; }
.gift-section .gift-note { font-size:15px; line-height:1.75; margin:22px 0; }
.gift-section .gift-actions { gap:12px; }
.wishes-section { border-top:0; }
@media(max-width:1100px) {
  .gift-section .gift-details div { grid-template-columns:106px minmax(0,1fr); gap:12px; }
  .gift-section .gift-details dd { font-size:16px; }
}

/* Separate the two decorative grounds with a continuous gold rule. */
.gift-section { border-bottom:1px solid #b99566; }

/* Deliberate section boundaries keep independently tiled patterns apart. */
.gallery-section { border-top:1px solid #b99566; background:#45232c url('assets/svg/silk-grain.svg') repeat; }

.gift-section::after { border-block:3px double #b9956680; }

/* Broad painted margins replace the small illustrated landscape and branches. */
#details { overflow:hidden; background-image:url('assets/svg/silk-grain.svg'); background-size:auto; background-repeat:repeat; }
#details::after { display:none; }
#details .painting-landscape { inset:auto auto 0 -110px; width:66%; height:100%; opacity:.42; background-position:left bottom; mask-image:linear-gradient(90deg,#000 45%,transparent),linear-gradient(0deg,#000 65%,transparent); mask-composite:intersect; }
.rsvp-section { overflow:hidden; background-image:url('assets/svg/silk-grain.svg'); }
.rsvp-section .painting-plum { top:0; left:-160px; width:67%; height:500px; opacity:.32; background-position:center; mask-image:linear-gradient(90deg,#000 65%,transparent),linear-gradient(#000 30%,transparent); mask-composite:intersect; }
.gift-section { overflow:hidden; }
.gift-section .painting-peonies { top:0; left:0; bottom:0; width:50%; opacity:.32; background-position:right bottom; mask-image:linear-gradient(90deg,transparent,#000 80%); }
.gift-section .section-head { background:#f1e5d260; }

#details .painting-landscape { left:-90px; width:72%; height:100%; opacity:.6; background-size:cover; mask-image:linear-gradient(90deg,#000 70%,transparent); }
.rsvp-section .painting-plum { left:0; top:0; width:55%; height:390px; opacity:.32; background-size:contain; background-position:left top; mask-image:none; }
.gift-section .painting-peonies { opacity:.4; background-size:contain; background-position:right bottom; mask-image:linear-gradient(90deg,transparent,#000 60%); }
.rsvp-section .painting-plum { width:360px; height:180px; opacity:.3; }

/* RSVP sits within a painted garden rather than an empty paper rectangle. */
.rsvp-section { background-color:#f2e7d6; }
.rsvp-section .painting-plum {
  inset:auto -80px -70px; width:auto; height:88%; opacity:.85;
  background:url('assets/ink-wash/panorama.webp') center bottom/100% auto no-repeat;
  mask-image:none;
}
.rsvp-section .painting-rsvp-side {
  top:0; right:-32px; bottom:0; width:360px; opacity:.62;
  background:url('assets/ink-wash/blossom-side.webp') right center/auto 100% no-repeat;
}
.rsvp-section::before { border-color:#b9956670; }
.rsvp-section .rsvp-copy { padding-left:14px; }
.rsvp-section .rsvp-copy::after { width:90%; margin-top:26px; }
.rsvp-section .rsvp-layout { gap:64px; }
@media(max-width:1100px) {
  .rsvp-section .rsvp-layout { gap:36px; }
  .rsvp-section .painting-rsvp-side { width:240px; }
}

/* Optical alignment with the inset strokes of the countdown numerals. */
.count-label { position:relative; left:5px; }
