:root{--peach:#F8CBBC;--sage:#BCC898;--amber:#E4A25F;--olive:#717B54;--cream:#F0E6D7;--ink:#263126;--white:#fffdf8;--serif:"DM Serif Display",Georgia,serif;--sans:"Noto Sans Thai",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-bottom:88px}body{margin:0;background:#d7d6cf;color:var(--ink);font-family:var(--sans);font-weight:300}body::before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,#b6c094,#f0dfc9);z-index:-1}main{width:min(100%,520px);margin:auto;background:var(--cream);overflow:hidden;box-shadow:0 0 60px #36402f33}img{display:block;max-width:100%}a{color:inherit}.section{padding:88px 26px;position:relative}.eyebrow{margin:0 0 18px;font:600 10px/1 var(--sans);letter-spacing:.24em}.eyebrow.light{color:#fff}.section-no{font:400 11px/1 var(--sans);letter-spacing:.15em;margin:0;color:var(--olive)}h2{font:400 clamp(43px,12vw,62px)/.92 var(--serif);margin:0;letter-spacing:-.025em}h2 em{color:var(--olive);font-weight:400}.hero{height:100svh;min-height:680px;position:relative;color:white;display:flex;align-items:flex-end;justify-content:center;background:#566044}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-photo{object-fit:cover;object-position:center 38%}.hero-shade{background:linear-gradient(180deg,#14220f55 0%,transparent 27%,#12210a22 52%,#182414cc 100%)}.topbar{position:absolute;z-index:1;top:0;left:0;right:0;padding:24px 22px;display:flex;justify-content:space-between;font:500 9px var(--sans);letter-spacing:.18em}.hero-copy{position:relative;z-index:1;width:100%;padding:20px 30px 78px;text-align:center;text-shadow:0 2px 16px #23301f88}.monogram{width:82px;height:82px;object-fit:contain;margin:0 auto 8px}.monogram--light{mix-blend-mode:screen;filter:grayscale(1) brightness(4);opacity:.9}.hero h1{font:400 clamp(64px,19vw,96px)/.72 var(--serif);margin:0;letter-spacing:-.05em}.hero h1 span{display:block}.hero h1 i{font-size:.48em;font-weight:400;color:var(--peach);display:inline-block;margin:9px 0}.thai-title{font-size:12px;margin:20px auto 14px;max-width:310px}.date-lockup{display:flex;align-items:center;justify-content:center;gap:16px;margin:16px auto 22px}.date-lockup span{font:500 8px/1.5 var(--sans);letter-spacing:.12em;text-align:left}.date-lockup strong{font:400 38px/1 var(--serif);padding:0 17px;border-left:1px solid #ffffff88;border-right:1px solid #ffffff88}.primary-btn{border:0;border-radius:100px;padding:14px 22px;background:var(--amber);color:#263126;font:500 12px var(--sans);box-shadow:0 9px 28px #1d241b33}.primary-btn span{font-size:18px;margin-left:14px}.scroll-cue{position:absolute;z-index:2;bottom:25px;left:50%;height:32px;width:20px;transform:translateX(-50%)}.scroll-cue::before{content:"";height:28px;border-left:1px solid #fff9;position:absolute;left:10px}.scroll-cue span{position:absolute;width:5px;height:5px;border-right:1px solid white;border-bottom:1px solid white;transform:rotate(45deg);bottom:1px;left:8px}.intro{background:var(--cream)}.intro .section-no{position:absolute;right:28px;top:31px}.intro h2{margin-bottom:28px}.body-copy{font-size:14px;line-height:1.9;max-width:390px}.palette{display:flex;gap:10px;margin:34px 0 17px}.palette span{width:32px;height:32px;background:var(--swatch);border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px #28322120}.dress-note{font-size:9px;letter-spacing:.16em}.program{background:var(--sage)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:44px}.schedule article{display:grid;grid-template-columns:56px 45px 1fr;gap:10px;padding:23px 0;border-top:1px solid #4d59402c;align-items:center}.schedule article:last-child{border-bottom:1px solid #4d59402c}.schedule time{font:400 17px var(--serif)}.event-icon{width:38px;height:38px;border:1px solid #626f51;border-radius:50%;display:grid;place-items:center}.event-icon svg{width:18px;height:18px;fill:none;stroke:var(--olive);stroke-width:1.4}.schedule h3{margin:0 0 4px;font:400 21px var(--serif)}.schedule p{margin:0;font-size:11px}.gallery{background:#fbf7ef}.photo-grid{display:grid;grid-template-columns:1fr .72fr;grid-template-rows:320px 175px;gap:10px}.photo{margin:0;position:relative;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover}.photo--main{grid-row:1/3}.photo--main img{object-position:center}.photo--detail img{object-position:56% center}.photo figcaption{position:absolute;bottom:13px;left:13px;color:white;font:500 8px var(--sans);letter-spacing:.18em}.photo-grid blockquote{margin:0;background:var(--peach);padding:20px 15px;display:flex;align-items:center;font:italic 17px/1.3 var(--serif)}.sample-note{font-size:9px;color:#6d7365;margin:14px 0 0}.location{background:var(--cream)}.venue-card{background:#fff9f1;padding:10px;box-shadow:0 18px 50px #4e5c4230}.map-art{height:245px;background:var(--sage);position:relative;overflow:hidden;display:grid;place-items:center}.road{position:absolute;height:420px;width:32px;border-left:2px solid #eef1d5;border-right:2px solid #eef1d5;transform:rotate(42deg)}.r2{transform:rotate(-62deg);left:85px}.r3{transform:rotate(5deg);right:40px}.map-art .pin{position:relative;width:30px;height:30px;fill:var(--amber);stroke:#fff;stroke-width:1.5}.map-art b{position:absolute;top:143px;font:600 8px/1.3 var(--sans);letter-spacing:.15em;text-align:center}.venue-info{padding:25px 15px 20px}.venue-info h3{font:400 29px var(--serif);margin:0 0 8px}.venue-info>p:not(.eyebrow){font-size:12px;line-height:1.7}.outline-btn{margin-top:13px;display:flex;justify-content:space-between;text-decoration:none;border:1px solid var(--olive);padding:13px 15px;font-size:11px}.contact-row{margin-top:20px;background:var(--olive);color:white;padding:19px;display:flex;align-items:center;justify-content:space-between}.contact-row .eyebrow{margin-bottom:7px}.contact-row p{font-size:11px;margin:0}.contact-row a{border:1px solid #ffffff66;width:39px;height:39px;border-radius:50%;display:grid;place-items:center}.contact-row svg{width:17px;height:17px;fill:none;stroke:white;stroke-width:1.6}footer{background:var(--peach);text-align:center;padding:60px 20px 115px}footer img{width:72px;margin:0 auto 20px;mix-blend-mode:multiply}footer p{font:500 9px var(--sans);letter-spacing:.2em}footer small{font:400 9px var(--sans);letter-spacing:.12em}.bottom-nav{position:fixed;z-index:10;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(calc(100% - 24px),496px);height:68px;border:1px solid #ffffff77;border-radius:22px;background:#fbf8efeb;backdrop-filter:blur(16px);display:grid;grid-template-columns:repeat(4,1fr);box-shadow:0 13px 35px #28332233;padding:7px}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;font:500 8px var(--sans);color:#777f6c;border-radius:16px;transition:.25s}.bottom-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.bottom-nav a.active{background:var(--olive);color:white}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}dialog{width:min(calc(100% - 30px),460px);border:0;border-radius:28px;background:var(--cream);padding:40px 28px;color:var(--ink);box-shadow:0 30px 80px #1d281d80}dialog::backdrop{background:#1d281dbb;backdrop-filter:blur(5px)}dialog h2{font-size:42px}dialog>p:not(.eyebrow){font-size:12px}.dialog-close{position:absolute;right:17px;top:14px;border:0;background:transparent;font-size:27px;color:var(--olive)}form{margin-top:25px;display:grid;gap:14px}label{display:grid;gap:6px;font-size:11px}input,select{width:100%;border:1px solid #717b5444;background:#fffaf1;border-radius:10px;padding:13px;font:400 12px var(--sans);color:var(--ink)}form .primary-btn{margin-top:5px}.success-message{text-align:center;padding:35px 0 20px}.success-message b{font:400 38px var(--serif)}.success-message p{font-size:12px}.reveal{animation:rise .9s cubic-bezier(.2,.8,.2,1) both}@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@media(min-width:720px){body{padding:30px 0}.hero{border-radius:28px 28px 0 0}.bottom-nav{bottom:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{animation:none}}

/* Keep the mobile navigation attached to the viewport edge. */
.bottom-nav{
  position:fixed;
  z-index:1000;
  right:0;
  bottom:0;
  left:0;
  transform:none;
  width:min(100%,520px);
  min-height:68px;
  height:auto;
  margin-inline:auto;
  padding:7px 7px max(7px,env(safe-area-inset-bottom));
  border-bottom:0;
  border-radius:22px 22px 0 0;
  box-shadow:0 -8px 30px #28332226;
  -webkit-backdrop-filter:blur(16px);
}

@media(min-width:720px){.bottom-nav{bottom:0}}

/* Compact footer while keeping its content clear of the fixed navigation. */
footer{padding:28px 20px 88px}
footer img{width:48px;margin:0 auto 10px}
footer p{margin:0 0 5px;font-size:8px;line-height:1.3}
footer small{display:block;font-size:8px;line-height:1.2}

footer{display:flex;align-items:center;justify-content:center;gap:16px;text-align:left}
footer img{flex:0 0 auto;width:100px;margin:0}
.footer-copy{min-width:0}.footer-copy p{margin:0 0 6px;white-space:nowrap}.footer-copy small{white-space:nowrap}
@media(max-width:359px){footer{gap:8px;padding-inline:10px}footer img{width:84px}.footer-copy p{font-size:7px;letter-spacing:.1em}.footer-copy small{font-size:7px}}

/* Section 02 — a winding woodland trail timeline. */
.trail-schedule{position:relative;height:650px;margin:0 -8px}
.trail-path{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.trail-shadow,.trail-line{fill:none;stroke-linecap:round}
.trail-shadow{stroke:#4450391f;stroke-width:9}
.trail-line{stroke:#fffaf0;stroke-width:3;stroke-dasharray:2 9}
.schedule .trail-stop{position:absolute;z-index:3;display:block;width:162px;min-height:118px;padding:14px 13px;background:#fffaf3f7;border:1px solid #fff;border-radius:18px;box-shadow:0 12px 28px #37412e28;backdrop-filter:blur(8px)}
.schedule .trail-stop:last-child{border-bottom:1px solid #ffffff80}
.trail-stop .event-icon{position:absolute;top:-19px;width:42px;height:42px;background:var(--cream);box-shadow:0 5px 14px #4d583b25}
.trail-stop .event-icon svg{width:19px;height:19px}
.trail-stop div{padding-top:12px}
.trail-stop time{display:block;margin-bottom:5px;color:#53603f;font:600 10px/1 var(--sans);letter-spacing:.16em}
.trail-stop h3{margin:0 0 6px;color:#253020;font:400 19px/1.08 var(--serif)}
.trail-stop p{margin:0;color:#3f4938;font-size:10px;font-weight:400;line-height:1.55}
.trail-marker{position:absolute;width:13px;height:13px;border:3px solid var(--sage);border-radius:50%;background:var(--olive);box-shadow:0 0 0 4px #f0e6d7aa}
.stop--one{top:30px;right:2px}.stop--one .event-icon{right:14px}.stop--one .trail-marker{left:-28px;top:19px}
.stop--two{top:185px;left:0}.stop--two .event-icon{left:14px}.stop--two .trail-marker{right:-29px;top:19px}
.stop--three{top:343px;right:0}.stop--three .event-icon{right:14px}.stop--three .trail-marker{left:-29px;top:19px}
.stop--four{top:507px;left:30px}.stop--four .event-icon{left:14px}.stop--four .trail-marker{right:-29px;top:15px}
.forest-icon{position:absolute;z-index:1;color:#596744;opacity:.68}
.forest-icon svg{width:100%;height:100%;fill:currentColor;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.tree--one{top:119px;left:8px;width:34px;height:45px}.tree--two{top:277px;right:2px;width:57px;height:44px}.tree--three{bottom:7px;right:17px;width:39px;height:51px}
.deer--one{top:151px;right:12px;width:48px;height:38px}.deer--one svg,.rabbit--one svg,.birds--one svg{fill:none}
.rabbit--one{top:455px;left:3px;width:39px;height:34px}.birds--one{top:8px;right:55px;width:48px;height:22px;opacity:.5}

/* Compact, fluid woodland timeline across mobile sizes. */
.program{padding:clamp(64px,16vw,82px) clamp(18px,5vw,26px)}
.program .section-heading{margin-bottom:clamp(28px,8vw,40px)}
.trail-schedule{height:clamp(520px,140vw,610px);margin-inline:-4px}
.schedule .trail-stop{width:clamp(138px,42vw,160px);min-height:auto;padding:clamp(11px,3.2vw,14px);border-radius:clamp(14px,4vw,18px)}
.trail-stop .event-icon{top:-17px;width:clamp(35px,10vw,41px);height:clamp(35px,10vw,41px)}
.trail-stop .event-icon svg{width:clamp(16px,4.8vw,19px);height:clamp(16px,4.8vw,19px)}
.trail-stop time{font-size:clamp(8px,2.5vw,10px)}
.trail-stop h3{font-size:clamp(16px,4.8vw,19px)}
.trail-stop p{font-size:clamp(8px,2.6vw,10px);line-height:1.45}
.stop--one{top:5%;right:0}.stop--two{top:29%;left:0}.stop--three{top:53%;right:0}.stop--four{top:77%;left:7%}
.tree--one{top:21%;left:1%;width:clamp(27px,8vw,34px);height:clamp(36px,11vw,45px)}
.tree--two{top:44%;right:0;width:clamp(44px,14vw,57px);height:clamp(34px,11vw,44px)}
.tree--three{bottom:1%;right:4%;width:clamp(31px,10vw,39px);height:clamp(41px,13vw,51px)}
.deer--one{top:25%;right:3%;width:clamp(39px,12vw,48px);height:clamp(31px,9vw,38px)}
.rabbit--one{top:71%;left:0;width:clamp(32px,10vw,39px);height:clamp(28px,9vw,34px)}
.birds--one{top:1%;right:14%;width:clamp(39px,12vw,48px);height:clamp(18px,5.5vw,22px)}

@media(max-width:359px){
  .program{padding-inline:14px}
  .trail-schedule{height:500px}
  .schedule .trail-stop{width:132px;padding:10px}
  .trail-stop p{font-size:8px}
  .stop--four{left:4%}
  .trail-marker{width:11px;height:11px;border-width:2px}
}

@media(min-width:480px){
  .trail-schedule{height:600px;margin-inline:6px}
  .schedule .trail-stop{width:168px}
  .trail-stop p{font-size:10px}
}

/* Section 04 — editorial venue showcase. */
.location{padding-inline:clamp(18px,5vw,26px);background:#f7f0e4}
.location .section-heading{margin-bottom:34px}
.venue-showcase{overflow:hidden;border-radius:28px;background:#fffaf2;box-shadow:0 24px 55px #4550382b}
.venue-photo{position:relative;height:clamp(350px,105vw,490px);overflow:hidden;color:white}
.venue-photo>img{width:100%;height:100%;object-fit:cover;object-position:center}
.venue-photo__shade{position:absolute;inset:0;background:linear-gradient(180deg,#2632223d 0%,transparent 35%,#1b2818c9 100%)}
.venue-label{position:absolute;top:18px;left:18px;display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #ffffff70;border-radius:100px;background:#26322250;backdrop-filter:blur(8px);font:500 8px/1 var(--sans);letter-spacing:.14em}
.venue-label svg{width:13px;height:13px;fill:none;stroke:white;stroke-width:1.7}
.venue-photo__copy{position:absolute;right:22px;bottom:24px;left:22px}
.venue-photo__copy p{margin:0 0 8px;font:500 8px/1 var(--sans);letter-spacing:.2em}
.venue-photo__copy h3{margin:0;font:400 clamp(42px,13vw,60px)/.84 var(--serif);letter-spacing:-.02em}
.venue-details{padding:23px 19px 19px}
.venue-address{display:grid;grid-template-columns:34px 1fr;gap:12px;padding-bottom:19px;border-bottom:1px solid #717b5430}
.detail-number{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--sage);font:600 9px var(--sans)}
.detail-label{margin:0 0 5px!important;color:var(--olive);font:600 8px/1 var(--sans)!important;letter-spacing:.18em}
.venue-address p{margin:0;font-size:11px;line-height:1.65}
.venue-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:17px 0}
.venue-meta>div{display:flex;align-items:center;gap:9px;padding:7px 12px;background:transparent}
.venue-meta>div:first-child{padding-left:2px;border-right:1px solid #717b5440}
.venue-meta>div:last-child{padding-right:2px}
.venue-meta svg{width:20px;height:20px;fill:none;stroke:var(--olive);stroke-width:1.5}
.venue-meta span{display:grid;gap:3px}.venue-meta small{font:500 7px/1 var(--sans);letter-spacing:.12em;color:#69715f}.venue-meta b{font:500 10px/1 var(--sans)}
.direction-btn{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-radius:15px;background:var(--olive);color:white;text-decoration:none}
.direction-btn .google-maps-icon{flex:0 0 auto;width:34px;height:34px;margin-right:11px;object-fit:contain;border-radius:7px}.direction-btn span{display:grid;flex:1;gap:4px;font-size:11px;font-weight:500}.direction-btn small{font-size:7px;letter-spacing:.16em;opacity:.7}.direction-btn i{display:grid;flex:0 0 auto;place-items:center;width:35px;height:35px;border:1px solid #ffffff70;border-radius:50%;font:400 18px var(--serif)}
.location-note{position:relative;margin-top:14px;padding:18px 58px 18px 17px;border:1px solid #717b5438;border-radius:18px}
.location-note>span{display:block;margin-bottom:6px;color:var(--olive);font:600 8px/1 var(--sans);letter-spacing:.16em}.location-note p{margin:0;font-size:10px;line-height:1.6}.location-note a{position:absolute;right:14px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:var(--amber)}.location-note svg{width:16px;height:16px;fill:none;stroke:var(--ink);stroke-width:1.6}

/* Section 01 — clear, tactile theme palette. */
.theme-palette{margin:34px -8px 17px;padding:14px;border:1px solid #717b5430;border-radius:22px;background:#fffaf2}
.theme-palette__heading{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 12px}.theme-palette__heading span{font:600 9px/1 var(--sans);letter-spacing:.18em}.theme-palette__heading small{font:400 9px/1 var(--sans);color:#6d7464}
.color-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:106px 90px;gap:6px}
.color-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:10px;border-radius:13px;background:var(--swatch);color:#31382c}
.color-card i{position:absolute;top:9px;right:10px;font:500 8px/1 var(--sans);font-style:normal;opacity:.55}
.color-card b{font:500 clamp(8px,2.6vw,10px)/1.15 var(--sans)}
.color-card small{margin-top:3px;font:500 7px/1 var(--sans);letter-spacing:.08em;opacity:.7}
.color-card--peach,.color-card--sage,.color-card--amber{grid-column:span 2}
.color-card--olive{grid-column:span 3;color:#fff}.color-card--cream{grid-column:span 3;border:1px solid #d7ccbd}
.intro .dress-note{display:flex;align-items:center;gap:9px;margin:14px 0 0;font-size:9px;font-weight:500;letter-spacing:.13em}
.intro .dress-note span{padding:6px 8px;border-radius:100px;background:var(--olive);color:white;font-size:7px;letter-spacing:.15em}
@media(max-width:359px){.theme-palette{margin-inline:-4px;padding:10px}.color-grid{grid-template-rows:94px 82px}.color-card{padding:8px}.color-card b{font-size:8px}}

/* Top music control. */
.music-control{position:absolute;z-index:3;top:72px;left:50%;display:flex;align-items:center;gap:14px;width:max-content;padding:10px 18px 10px 10px;border:1px solid #ffffff8f;border-radius:100px;background:linear-gradient(135deg,#263222d9,#566447c7);box-shadow:0 14px 38px #101a0d66,0 0 0 4px #ffffff18;transform:translateX(-50%);color:white;backdrop-filter:blur(14px)}
.music-toggle{position:relative;display:grid;place-items:center;width:62px;height:62px;padding:0;border:2px solid #fff;border-radius:50%;background:var(--amber);color:var(--ink);box-shadow:0 8px 22px #101a0d70,0 0 0 5px #ffffff20;cursor:pointer;transition:transform .2s,background .2s}
.music-toggle::after{content:"";position:absolute;inset:-7px;border:1px solid #ffffff8c;border-radius:50%;opacity:0}
.music-toggle:active{transform:scale(.94)}
.music-toggle svg{width:28px;height:28px;fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.music-toggle__pause{display:none}
.music-control.is-playing .music-toggle{background:var(--peach)}
.music-control.is-playing .music-toggle::after{animation:music-pulse 1.5s ease-out infinite}
.music-control.is-playing .music-toggle__play{display:none}
.music-control.is-playing .music-toggle__pause{display:block}
.music-status{display:grid;gap:7px}
.music-label{display:grid;gap:4px;min-width:104px;text-shadow:0 2px 10px #152010aa;font:600 10px/1 var(--sans);letter-spacing:.16em}
.music-label small{font:400 10px/1.3 var(--sans);letter-spacing:0;color:#fffdeb}
.music-wave{display:flex;align-items:center;gap:3px;height:14px;opacity:.55}
.music-wave i{display:block;width:2px;height:3px;border-radius:3px;background:white;transform-origin:center}
.music-control.is-playing .music-wave{opacity:1}
.music-control.is-playing .music-wave i{animation:music-wave .8s ease-in-out infinite alternate}
.music-control.is-playing .music-wave i:nth-child(2){animation-delay:-.55s}.music-control.is-playing .music-wave i:nth-child(3){animation-delay:-.25s}.music-control.is-playing .music-wave i:nth-child(4){animation-delay:-.7s}.music-control.is-playing .music-wave i:nth-child(5){animation-delay:-.4s}.music-control.is-playing .music-wave i:nth-child(6){animation-delay:-.1s}
@keyframes music-wave{from{height:3px}to{height:14px}}
@keyframes music-pulse{0%{opacity:.8;transform:scale(.9)}100%{opacity:0;transform:scale(1.35)}}
@media(max-width:359px){.music-control{top:65px;gap:10px;padding:8px 14px 8px 8px}.music-toggle{width:54px;height:54px}.music-toggle svg{width:24px;height:24px}.music-label{min-width:92px;font-size:8px}.music-label small{font-size:9px}}

/* Section 05 — image-led wedding gift poster. */
.gift{padding:64px clamp(16px,5vw,26px);background:var(--sage)}
.gift-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}
.gift-heading .eyebrow{margin-bottom:10px;font-size:8px;color:#4f5b40}
.gift-heading h2{font-size:clamp(42px,11vw,56px);line-height:.9}
.gift-heading .section-no{padding-top:4px}
.gift-card{background:transparent}
.gift-card__copy{padding:0 18px 18px;text-align:center}
.gift-card h3{margin:0 0 10px;color:var(--ink);font:500 clamp(20px,5.5vw,24px)/1.4 var(--sans);letter-spacing:.01em}
.gift-card__copy p{max-width:370px;margin:0 auto;color:#4a5245;font-size:10px;line-height:1.7}
.gift-qr{width:100%;margin:0;padding:0}
.gift-qr img{width:min(100%,390px);height:auto;margin:auto}
.gift-qr figcaption{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:5px;padding-top:13px;border-top:1px solid #717b5430;text-align:center}
.gift-qr figcaption span{padding:5px 7px;border-radius:100px;background:var(--olive);color:white;font:600 7px/1 var(--sans);letter-spacing:.14em}
.gift-qr figcaption b{color:#5d6557;font:400 9px/1.3 var(--sans)}
@media(max-width:359px){.gift{padding:52px 12px}.gift-heading{margin-inline:5px}.gift-card__copy{padding:0 10px 14px}.gift-qr figcaption{gap:6px}.gift-qr figcaption b{font-size:8px}}

/* Couple names — light, elegant wedding typography. */
.hero .monogram--light{width:120px;height:120px;margin-bottom:12px}
.hero h1{margin:0;font:300 clamp(36px,10vw,52px)/.86 "Cormorant Garamond",Georgia,serif;letter-spacing:.045em}
.hero h1 i{display:inline-block;margin:10px 0 8px;color:var(--peach);font-size:.62em;font-weight:300}
