
:root{
  --ink:#1c3429;
  --forest:#22372d;
  --sage:#87988a;
  --cream:#f5f0e6;
  --paper:#fffdf8;
  --gold:#c9aa72;
  --line:rgba(28,52,41,.17);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Inter",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#000}
body{margin:0;background:#000;color:var(--ink);font-family:var(--sans);font-weight:300;overflow-x:hidden}
body.is-locked{overflow:hidden}
body.is-opening main{visibility:hidden}
body.is-opening .opening,
body.is-opening .film,
body.is-opening .transition-screen{visibility:visible}
img{display:block;max-width:100%}
button,a{font:inherit}
a{color:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:500}
.eyebrow{font-size:.68rem;letter-spacing:.38em;text-transform:uppercase;font-weight:600}

/* Absolute black cover prevents any page/background flash while media loads. */
.page-blackout{position:fixed;inset:0;z-index:1000;background:#000;pointer-events:none;opacity:1}
.page-blackout.is-clear{opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}

/* OPENING */
.opening{position:fixed;inset:0;z-index:900;display:grid;place-items:center;background:#17251e;color:#fff;overflow:hidden}
.opening:before,.opening:after{content:"";position:absolute;width:min(34vw,390px);height:min(52vw,580px);background:url("../assets/botanical/accents/olive-branch.svg") center/contain no-repeat;filter:brightness(0) invert(1);opacity:.055}
.opening:before{left:-8vw;bottom:-12vw;transform:rotate(18deg)}
.opening:after{right:-8vw;top:-12vw;transform:rotate(198deg)}
.opening__content{position:relative;text-align:center;width:min(92vw,690px);padding:34px 20px;z-index:1}
.opening h1{font-size:clamp(4.2rem,9vw,7.5rem);line-height:.77;margin:28px 0 18px}
.opening h1 span{display:block}
.opening h1 em{font-size:.39em;font-weight:400}
.opening__botanical{width:112px;margin:8px auto 24px;filter:brightness(0) invert(1);opacity:.75}
.language-choice{display:inline-flex;border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:4px;margin-bottom:17px}
.language-choice__button{border:0;background:transparent;color:#fff;padding:10px 18px;border-radius:999px;font-size:.65rem;letter-spacing:.12em;cursor:pointer}
.language-choice__button.is-active{background:#fff;color:var(--forest)}
.opening__button{display:flex;align-items:center;gap:18px;margin:0 auto;padding:15px 8px;border:0;border-bottom:1px solid rgba(255,255,255,.58);background:transparent;color:#fff;font-size:.66rem;font-weight:600;letter-spacing:.21em;text-transform:uppercase;cursor:pointer}
.opening__loading{display:none;margin-top:24px}
.opening__loading.is-visible{display:block}
.opening__loading span{display:block;width:30px;height:30px;border:1px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:50%;margin:0 auto 12px;animation:spin 1s linear infinite}
.opening__loading p{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;opacity:.72}
@keyframes spin{to{transform:rotate(360deg)}}

/* FILM: framed and black, not the hero beneath it */
.film{position:fixed;inset:0;z-index:880;display:grid;place-items:center;background:#000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s,visibility .45s}
.film.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.film__frame{position:relative;width:min(430px,90vw);aspect-ratio:9/16;overflow:hidden;border-radius:24px;background:#000;box-shadow:0 40px 120px rgba(0,0,0,.65)}
.film__video{width:100%;height:100%;object-fit:cover;background:#000}
.film__skip{position:absolute;right:18px;bottom:16px;padding:8px 10px;border:0;background:transparent;color:rgba(255,255,255,.78);font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .2s,transform .2s}
.film__skip:hover{color:#fff;transform:translateX(2px)}
.transition-screen{position:fixed;inset:0;z-index:870;background:#000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s,visibility .7s}
.transition-screen.is-visible{opacity:1;visibility:visible}

/* MINIMAL NAV */
.site-header{position:fixed;top:0;left:0;z-index:400;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:62px;padding:0 34px;color:#fff;background:linear-gradient(to bottom,rgba(5,5,5,.7),rgba(5,5,5,0));opacity:0;visibility:hidden;transform:translateY(-14px);transition:opacity .5s,visibility .5s,transform .5s,background .35s,color .35s,box-shadow .35s}
.site-header.is-visible{opacity:1;visibility:visible;transform:none}
.site-header.is-scrolled{color:var(--ink);background:rgba(246,242,234,.91);box-shadow:0 1px 0 rgba(23,24,21,.08);backdrop-filter:blur(14px)}
.site-header__brand{font-family:var(--serif);font-size:20px;text-decoration:none}
.site-header__brand span{margin:0 4px;font-style:italic}
.site-navigation{display:flex;align-items:center;gap:25px}
.site-navigation a{position:relative;padding:10px 0;font-size:9px;font-weight:600;letter-spacing:.18em;text-decoration:none;text-transform:uppercase;opacity:.65;transition:opacity .22s}
.site-navigation a:after{content:"";position:absolute;right:0;bottom:5px;left:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .25s}
.site-navigation a:hover,.site-navigation a.is-active{opacity:1}
.site-navigation a.is-active:after{transform:scaleX(1)}
.site-header__menu-button{display:none;width:42px;height:42px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}
.site-header__menu-button span{display:block;width:22px;height:1px;margin:6px auto;background:currentColor;transition:transform .25s}
.reading-progress{position:fixed;top:50%;right:15px;z-index:390;width:1px;height:112px;opacity:0;visibility:hidden;transform:translateY(-50%);transition:.45s}
.reading-progress.is-visible{opacity:1;visibility:visible}
.reading-progress__track,.reading-progress__bar{position:absolute;inset:0;width:1px;display:block}
.reading-progress__track{background:rgba(127,127,127,.25)}
.reading-progress__bar{background:var(--sage);transform:scaleY(0);transform-origin:top}

/* HERO */
.hero{position:relative;min-height:100svh;background:var(--forest);color:#fff;overflow:hidden;display:none}
.hero.is-visible{display:block}
.hero__image{position:absolute;inset:0;background:url("../assets/images/hero-veil.jpg") center 50%/cover no-repeat}
.hero__shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(18,29,23,.09),rgba(18,29,23,.18) 38%,rgba(18,29,23,.83))}
.hero__content{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:88px 20px 68px}
.hero__topline{font-size:.63rem;letter-spacing:.35em;text-transform:uppercase;font-weight:600}
.hero h2{font-size:clamp(4.1rem,8.2vw,7rem);line-height:.79;margin:24px 0 22px;text-shadow:0 2px 28px rgba(0,0,0,.16)}
.hero h2 span{display:block}
.hero h2 em{font-size:.38em;font-weight:400}
.fine-divider{display:flex;align-items:center;gap:14px;width:min(330px,78vw);margin:0 auto 24px}
.fine-divider span{height:1px;flex:1;background:rgba(255,255,255,.48)}
.fine-divider b{font-size:.58rem}
.hero__details p{margin:0;font-size:.61rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;line-height:1.75}
.countdown{width:min(390px,88vw);margin-top:27px}
.countdown__major strong{display:block;font-family:var(--serif);font-size:4.1rem;font-weight:400;line-height:.8}
.countdown small{display:block;font-size:.54rem;font-weight:600;letter-spacing:.34em;text-transform:uppercase}
.countdown__minor{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:25px;padding-top:18px;border-top:1px solid rgba(255,255,255,.35)}
.countdown__minor strong{font-family:var(--serif);font-size:1.5rem;font-weight:500}
.scroll-cue{position:absolute;bottom:20px;text-decoration:none;color:#fff;font-size:.55rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase}
.scroll-cue i{display:block;width:1px;height:34px;background:rgba(255,255,255,.5);margin:11px auto 0}

/* GENERAL */
main{background:var(--paper)}
.section-heading{text-align:center;width:min(780px,90vw);margin:0 auto}
.section-heading h2{font-size:clamp(3.8rem,7.2vw,6.3rem);line-height:.9;margin:12px 0 20px}
.section-heading>p:last-of-type{font-size:.97rem;line-height:1.8;color:#637168}
.section-heading--compact h2{font-size:clamp(3.5rem,6vw,5.6rem)}
.botanical-divider{width:115px;max-height:44px;object-fit:contain;margin:28px auto 0;opacity:.7}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .85s,transform .85s}
.reveal.is-visible{opacity:1;transform:none}

/* DETAILS */
.details-intro{position:relative;padding:118px 5vw 112px;background:var(--cream);overflow:hidden}
.botanical-corner{position:absolute;width:min(260px,28vw);opacity:.13}
.botanical-corner--left{top:0;left:0}
.botanical-corner--right{right:0;bottom:0}

/* TIMELINE */
.wedding-day{padding:115px 5vw 130px;background:var(--paper)}
.schedule{position:relative;width:min(760px,92vw);margin:70px auto 0}
.schedule:before{content:"";position:absolute;left:171px;top:14px;bottom:14px;width:1px;background:linear-gradient(to bottom,transparent,var(--gold) 7%,var(--gold) 93%,transparent)}
.schedule-row{position:relative;display:grid;grid-template-columns:135px 72px 1fr;align-items:start;min-height:125px}
.schedule-row time{padding-top:2px;text-align:right;font-family:var(--serif);font-size:1.65rem;letter-spacing:.05em;white-space:nowrap}
.schedule-dot{grid-column:2;width:13px;height:13px;margin:8px auto 0;border-radius:50%;background:var(--gold);border:4px solid var(--paper);box-shadow:0 0 0 1px rgba(201,170,114,.48);z-index:1}
.schedule-row div{padding-left:22px}
.schedule-row h3{font-size:2rem;margin:0 0 6px}
.schedule-row p{font-size:.85rem;line-height:1.55;color:#6b786f;margin:0}

/* MARIOR */
.marior-welcome{position:relative;min-height:72svh;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}
.marior-welcome>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.marior-welcome__overlay{position:absolute;inset:0;background:linear-gradient(rgba(20,34,27,.22),rgba(20,34,27,.57))}
.marior-welcome__content{position:relative;width:min(760px,90vw);padding:40px 20px}
.marior-welcome h2{font-size:clamp(4.3rem,8vw,7.2rem);line-height:.88;margin:15px 0 20px}
.marior-welcome__content>p:last-child{font-family:var(--serif);font-size:1.4rem;line-height:1.5;text-shadow:0 2px 18px rgba(0,0,0,.2)}

.venue{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);background:var(--cream);min-height:720px}
.venue__image{padding:68px 0 68px 5vw}
.venue__image img{width:100%;height:100%;min-height:570px;object-fit:cover;border-radius:0 220px 0 0}
.venue__content{display:flex;flex-direction:column;justify-content:center;padding:82px 7vw}
.venue__content h2{font-size:clamp(4rem,6.5vw,6rem);line-height:.86;margin:17px 0 26px}
.venue__content>p{font-size:.97rem;line-height:1.8;color:#5e6d64}
.venue-facts{margin:22px 0 28px}
.venue-facts div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--line)}
.venue-facts div:last-child{border-bottom:1px solid var(--line)}
.venue-facts dt,.venue-facts dd{margin:0;font-size:.8rem}
.venue-facts dt{font-weight:500}
.map-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%}
.map-buttons a,.primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:47px;padding:0 19px;border:1px solid var(--forest);border-radius:999px;text-decoration:none;font-size:.63rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;transition:.25s}
.map-buttons a:hover,.primary-button:hover{background:var(--forest);color:#fff}

/* PLAN YOUR VISIT */
.visit{position:relative;padding:125px 5vw 135px;background:var(--paper);overflow:hidden}
.visit__botanical{position:absolute;opacity:.08;pointer-events:none}
.visit__botanical--one{width:min(500px,42vw);left:-120px;top:80px;transform:rotate(-18deg)}
.visit__botanical--two{width:min(430px,38vw);right:-100px;bottom:10px;transform:rotate(195deg)}
.visit-grid{position:relative;width:min(1120px,92vw);margin:72px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.visit-card{min-height:440px;padding:48px 38px 42px;background:rgba(245,240,230,.72);border:1px solid var(--line);border-radius:180px 180px 18px 18px;text-align:center}
.visit-card>span{font-family:var(--serif);font-size:1.35rem;color:var(--gold)}
.visit-card h3{font-size:2.25rem;margin:18px 0 18px}
.visit-card p{font-size:.84rem;line-height:1.7;color:#647169}

/* MOMENTS */
.moments{padding:130px 5vw;background:var(--cream);overflow:hidden}
.moments-grid{width:min(1180px,92vw);margin:80px auto 0;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:72px;gap:17px}
.moment{margin:0;overflow:hidden;background:#e7e3da}
.moment img{width:100%;height:100%;object-fit:cover;transition:transform 1s}
.moment:hover img{transform:scale(1.025)}
.moment--a{grid-column:1/6;grid-row:1/8;border-radius:210px 0 0 0}
.moment--b{grid-column:7/13;grid-row:1/5}
.moment--c{grid-column:6/10;grid-row:5/10;border-radius:0 0 170px 0}
.moment--d{grid-column:1/5;grid-row:8/13}
.moment--e{grid-column:10/13;grid-row:6/12;border-radius:150px 150px 0 0}

/* STORY / HANBOK */
.story-intro{position:relative;min-height:760px;padding:105px 5vw;display:grid;grid-template-columns:minmax(230px,1fr) minmax(430px,1.7fr) minmax(230px,1fr);gap:38px;align-items:center;background:var(--paper);overflow:hidden}
.story-intro__botanical{position:absolute;left:50%;top:50%;width:min(600px,65vw);opacity:.06;transform:translate(-50%,-50%) rotate(-15deg)}
.story-intro__portrait{position:relative}
.story-intro__portrait img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 38%;border-radius:190px 190px 12px 12px}
.story-intro__portrait--left{transform:translateY(42px)}
.story-intro__portrait--right{transform:translateY(-42px)}
.story-intro__copy{position:relative;text-align:center}
.story-intro__copy h2{font-size:clamp(3.5rem,6vw,5.7rem);line-height:.92;margin:20px 0 24px}
.story-intro__copy>p:last-child{font-family:var(--serif);font-size:1.3rem;color:#69766e}

.story-block{padding:115px 6vw;background:var(--paper)}
.story-block__header{text-align:center;margin-bottom:65px}
.story-block__header span{display:block;width:70px;height:1px;background:var(--gold);margin:0 auto 20px}
.story-block__header h2{font-size:clamp(4rem,7.3vw,6.7rem);line-height:.88;margin:0 0 14px}
.story-block__header p{font-family:var(--serif);font-size:1.35rem;color:#68766e}
.miles-copy{width:min(720px,90vw);margin:0 auto;text-align:center;font-family:var(--serif);font-size:1.32rem;line-height:1.8}
.story-emphasis{font-size:1.75rem;font-style:italic;color:var(--forest)}
.story-block--together{background:var(--cream)}
.together-gallery{width:min(1080px,94vw);margin:0 auto;display:grid;grid-template-columns:.82fr 1.45fr .82fr;gap:22px;align-items:center}
.together-gallery figure{margin:0}
.together-gallery img{width:100%;object-fit:cover}
.together-gallery__selfie img{aspect-ratio:3/4;border-radius:160px 160px 0 0}
.together-gallery__couple img{aspect-ratio:4/3}
.together-gallery__selfie--left{transform:rotate(-2deg) translateY(28px)}
.together-gallery__selfie--right{transform:rotate(2deg) translateY(28px)}
.together-copy{width:min(690px,90vw);margin:80px auto 0;text-align:center;font-family:var(--serif);font-size:1.42rem;line-height:1.8}

.proposal{position:relative;padding:145px 20px;text-align:center;background:var(--forest);color:#fff;overflow:hidden}
.proposal h2{font-size:clamp(4rem,7.5vw,6.7rem);line-height:.9;margin:21px 0}
.proposal>p:last-of-type{font-family:var(--serif);font-size:1.4rem;opacity:.8}
.proposal__branch{position:absolute;width:290px;opacity:.11;filter:brightness(0) invert(1)}
.proposal__branch--left{left:-75px;bottom:-15px;transform:rotate(25deg)}
.proposal__branch--right{right:-75px;top:-15px;transform:rotate(205deg)}

/* RSVP & GRATITUDE */
.rsvp{padding:125px 20px;background:var(--paper)}
.rsvp__inner{text-align:center;width:min(720px,90vw);margin:0 auto;padding:74px 48px;border:1px solid var(--line);border-radius:230px 230px 18px 18px}
.primary-button{margin-top:26px;background:var(--forest);color:#fff}
.small-note{font-size:.71rem;color:#7b877f;margin-top:13px}
.gratitude{position:relative;padding:125px 5vw;background:var(--cream);overflow:hidden}
.gratitude__botanical{position:absolute;width:min(260px,29vw);opacity:.12}
.gratitude__botanical--left{left:0;top:0}
.gratitude__botanical--right{right:0;bottom:0}
.gratitude__copy{width:min(760px,90vw);margin:40px auto 52px;text-align:center;font-family:var(--serif);font-size:1.26rem;line-height:1.65}
.account-grid{width:min(840px,92vw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:21px}
.account-card{text-align:center;padding:40px 24px;background:var(--paper);border:1px solid var(--line);border-radius:145px 145px 16px 16px}
.account-card p{font-size:.62rem;letter-spacing:.23em;text-transform:uppercase}
.account-card h3{font-size:2.45rem;margin:10px 0}
.account-card span,.account-card strong{display:block}
.account-card span{font-size:.77rem;color:#6b786f}
.account-card strong{font-family:var(--serif);font-size:1.45rem;margin-top:8px}
.closing{text-align:center;padding:110px 20px;background:var(--forest);color:#fff}
.closing img{width:110px;margin:0 auto 24px;filter:brightness(0) invert(1);opacity:.7}
.closing h2{font-size:clamp(3.4rem,6.5vw,5.8rem);margin:12px 0}
.closing h2 em{font-weight:400}
.closing>p:not(.eyebrow){font-family:var(--serif);font-size:1.3rem;opacity:.8}
.closing small{display:block;margin-top:32px;letter-spacing:.28em}

/* TABLET */
@media(max-width:920px){
  .site-header{padding:0 18px}
  .site-header__menu-button{display:block}
  .site-navigation{position:absolute;top:0;right:0;display:flex;flex-direction:column;align-items:flex-start;width:min(80vw,330px);min-height:100svh;padding:110px 38px 40px;color:var(--ink);background:rgba(246,242,234,.98);box-shadow:-30px 0 80px rgba(0,0,0,.18);transform:translateX(105%);transition:transform .4s cubic-bezier(.2,.75,.2,1)}
  .site-navigation.is-open{transform:translateX(0)}
  .site-navigation a{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:0;text-transform:none}
  .site-header__menu-button{position:relative;z-index:2}
  .site-header__menu-button.is-open span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .site-header__menu-button.is-open span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .reading-progress{right:8px}
  .venue{grid-template-columns:1fr}
  .venue__image{padding:0}
  .venue__image img{min-height:0;aspect-ratio:4/3;border-radius:0}
  .venue__content{padding:72px 9vw 90px;text-align:center}
  .venue-facts{text-align:left}
  .visit-grid{grid-template-columns:1fr;max-width:720px}
  .visit-card{min-height:0;border-radius:170px 170px 16px 16px;padding:50px 11vw}
  .story-intro{grid-template-columns:1fr 1.35fr 1fr;gap:20px;padding-left:3vw;padding-right:3vw}
}

/* MOBILE */
@media(max-width:640px){
  .opening h1{font-size:4rem}
  .opening__botanical{width:82px}
  .film__frame{width:100vw;height:100svh;aspect-ratio:auto;border-radius:0}
  .film__video{object-fit:contain}
  .hero__image{background-position:center 44%}
  .hero__content{justify-content:flex-end;padding:95px 18px 72px}
  .hero__topline{font-size:.54rem}
  .hero h2{font-size:4.15rem;margin-top:20px}
  .countdown{margin-top:23px}
  .countdown__major strong{font-size:3.8rem}
  .details-intro,.wedding-day,.visit,.moments,.story-block,.gratitude{padding-left:20px;padding-right:20px}
  .details-intro{padding-top:92px;padding-bottom:92px}
  .section-heading h2{font-size:3.7rem}
  .section-heading>p:last-of-type{font-size:.91rem}
  .wedding-day{padding-top:92px;padding-bottom:100px}
  .schedule{width:100%;margin-top:55px}
  .schedule:before{left:9px;top:12px;bottom:12px}
  .schedule-row{grid-template-columns:28px 1fr;min-height:128px}
  .schedule-row time{grid-column:2;text-align:left;padding:0 0 7px 18px;font-size:1.45rem}
  .schedule-dot{grid-column:1;grid-row:1;width:12px;height:12px;margin:7px 0 0 3px}
  .schedule-row div{grid-column:2;padding-left:18px}
  .schedule-row h3{font-size:1.82rem;margin-bottom:4px}
  .schedule-row p{font-size:.8rem}
  .marior-welcome{min-height:78svh}
  .marior-welcome>img{object-position:center}
  .marior-welcome h2{font-size:4rem}
  .marior-welcome__content>p:last-child{font-size:1.18rem}
  .venue__image img{aspect-ratio:3/4}
  .venue__content{padding:64px 22px 82px}
  .map-buttons a{flex:1 1 46%}
  .visit{padding-top:95px;padding-bottom:105px}
  .visit-grid{margin-top:55px}
  .visit-card{padding:45px 25px 38px;border-radius:145px 145px 14px 14px}
  .visit-card h3{font-size:2.05rem}
  .moments{padding-top:100px;padding-bottom:100px}
  .moments-grid{display:block;width:100%;margin-top:55px}
  .moment{margin:0 0 15px;border-radius:0!important}
  .moment img{height:auto;aspect-ratio:4/5}
  .moment:nth-child(3) img{aspect-ratio:4/3}
  .story-intro{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-height:0;padding:95px 20px}
  .story-intro__copy{grid-column:1/-1;grid-row:1;margin-bottom:26px}
  .story-intro__copy h2{font-size:3.45rem}
  .story-intro__portrait--left,.story-intro__portrait--right{transform:none}
  .story-intro__portrait img{border-radius:120px 120px 10px 10px}
  .story-block{padding-top:92px;padding-bottom:95px}
  .story-block__header{margin-bottom:48px}
  .story-block__header h2{font-size:4rem}
  .miles-copy{font-size:1.16rem}
  .together-gallery{grid-template-columns:1fr 1fr;gap:10px}
  .together-gallery__couple{grid-column:1/-1;grid-row:1}
  .together-gallery__couple img{aspect-ratio:4/3}
  .together-gallery__selfie--left,.together-gallery__selfie--right{transform:none}
  .together-gallery__selfie img{aspect-ratio:1;border-radius:0}
  .together-copy{margin-top:48px;font-size:1.2rem}
  .proposal{padding:110px 20px}
  .proposal h2{font-size:3.8rem}
  .rsvp{padding:90px 18px}
  .rsvp__inner{padding:68px 23px;border-radius:165px 165px 12px 12px}
  .account-grid{grid-template-columns:1fr}
  .gratitude__copy{font-size:1.12rem}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* ===== V8 FINAL APPROVED IMPROVEMENTS ===== */
:root{--ivory:#f7f3eb;--forest:#1d3328;--sage:#a7b3a3;--lavender:#9fa6c8;--gold:#b69b66;--ink:#243029}
html{scroll-behavior:smooth}body.lang-ko{font-family:'Noto Sans KR',sans-serif}.lang-ko h1,.lang-ko h2,.lang-ko h3,.lang-ko .site-header__brand{font-family:'Noto Serif KR',serif}.reading-progress{position:fixed;left:0;top:0;width:100%;height:2px;z-index:1100}.reading-progress span{display:block;height:100%;width:0;background:var(--gold)}
.site-header{backdrop-filter:blur(12px)}.site-header.is-scrolled{background:rgba(247,243,235,.94);color:var(--forest);box-shadow:0 1px 0 rgba(29,51,40,.12)}.site-header__brand i{font-family:'Cormorant Garamond';font-style:italic}.nav-language{border:1px solid currentColor;border-radius:99px;background:transparent;color:inherit;padding:.55rem 1rem;font:inherit}
.music-control{position:fixed;right:1rem;bottom:1rem;z-index:1000;border:1px solid rgba(255,255,255,.45);background:rgba(29,51,40,.86);color:white;border-radius:99px;padding:.65rem .9rem;display:flex;gap:.45rem;align-items:center;box-shadow:0 8px 30px rgba(0,0,0,.18)}.music-control.is-playing span{animation:pulse 1.6s infinite}@keyframes pulse{50%{transform:scale(1.22)}}
.hero__content{width:min(94%,1050px)}.countdown{display:grid!important;grid-template-columns:repeat(4,minmax(90px,1fr));gap:clamp(.75rem,2vw,2.5rem);align-items:end;max-width:760px;margin:2.2rem auto 0}.countdown>div{display:flex;flex-direction:column;align-items:center;padding:0 1rem;border-right:1px solid rgba(255,255,255,.35)}.countdown>div:last-child{border-right:0}.countdown strong{font-family:'Cormorant Garamond';font-size:clamp(2.7rem,6vw,5.3rem);font-weight:400;line-height:.85}.countdown small{letter-spacing:.18em;text-transform:uppercase;margin-top:.65rem;font-size:.66rem}
.editorial-details{min-height:760px;display:grid;grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr);align-items:center;gap:clamp(3rem,8vw,9rem);padding:clamp(6rem,10vw,10rem) max(5vw,2rem);overflow:hidden}.details-hanbok{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end}.details-hanbok img{width:100%;height:clamp(420px,52vw,680px);object-fit:cover}.details-hanbok img:first-child{transform:translateY(-2rem)}.editorial-details .section-heading{text-align:left;max-width:570px}.editorial-details .section-heading h2{font-family:'Cormorant Garamond';font-size:clamp(4rem,7vw,7rem);line-height:.88}.lang-ko .editorial-details .section-heading h2{font-family:'Noto Serif KR'}
.wedding-day{position:relative;padding:clamp(5rem,8vw,8rem) max(4vw,1.25rem);background:#f3eee5}.wedding-day__botanical{position:absolute;width:220px;right:2%;top:4%;opacity:.17}.wedding-day__editorial{display:grid;grid-template-columns:minmax(220px,.78fr) minmax(430px,1.25fr) minmax(190px,.55fr);gap:clamp(2rem,5vw,5rem);align-items:center;max-width:1320px;margin:3rem auto 0}.schedule-image img{width:100%;aspect-ratio:4/5;object-fit:cover}.schedule{margin:0}.schedule-row{grid-template-columns:90px 24px 1fr;padding:.75rem 0}.schedule-row p{margin:.15rem 0 0}.ring-detail{align-self:start;margin-top:1.5rem}.ring-detail img{width:100%;aspect-ratio:1/1.18;object-fit:cover;filter:saturate(.65)}.ring-detail figcaption{font-family:'Cormorant Garamond';font-style:italic;font-size:1.3rem;margin-top:1rem;color:var(--forest)}
.marior-welcome{min-height:85vh}.venue{position:relative;min-height:auto;padding:clamp(5rem,8vw,8rem) max(4vw,1.5rem)}.venue-decoration{position:absolute;width:260px;right:0;bottom:0;opacity:.12}.venue__image img{max-height:680px;object-fit:cover}.map-buttons a,.primary-button{border-radius:99px}
.visit{background:linear-gradient(180deg,#f8f4ec 0%,#eef1eb 100%)}.visit-grid{grid-template-columns:repeat(4,1fr);max-width:1350px}.visit-card{background:rgba(255,255,255,.66);border-top:3px solid var(--lavender);box-shadow:0 18px 60px rgba(29,51,40,.06)}.visit-card:nth-child(even){border-top-color:var(--sage)}.contact-accent{color:var(--forest);font-weight:500}
.moments{padding:clamp(6rem,10vw,10rem) 0;background:var(--forest);color:white;overflow:hidden}.moments .section-heading{padding:0 1.5rem}.album-shell{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;max-width:1200px;margin:4rem auto 0;padding:0 1rem}.album-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:1.2rem}.album-track::-webkit-scrollbar{display:none}.album-page{flex:0 0 min(66vw,720px);scroll-snap-align:center}.album-page img{width:100%;height:min(72vh,720px);object-fit:cover}.gallery-arrow{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:transparent;color:white;font-size:1.25rem}.gallery-dots{display:flex;justify-content:center;gap:.45rem;margin-top:1.4rem}.gallery-dots button{width:6px;height:6px;border-radius:50%;border:0;background:rgba(255,255,255,.35)}.gallery-dots button.active{background:white;transform:scale(1.5)}
.story-intro{min-height:70vh;display:flex;justify-content:center;text-align:center;padding:8rem 1.5rem;background:var(--ivory)}.story-intro__copy{max-width:830px}.story-intro__copy h2{font-size:clamp(3.4rem,7vw,7rem);line-height:.95}.story-intro__copy p:last-child{max-width:650px;margin:2rem auto 0}.story-chapter{padding:clamp(6rem,10vw,11rem) max(6vw,1.5rem);background:#fff}.story-chapter>div,.story-chapter.split{max-width:1180px;margin:auto}.story-chapter.text-only>div{max-width:780px;text-align:center}.story-chapter.text-only h3{font-size:clamp(2.8rem,5vw,5rem)}.story-invitations{background:#eef1eb}.story-chapter.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem);align-items:center}.story-chapter.split.reverse figure{order:2}.story-chapter figure img{width:100%;max-height:760px;object-fit:cover}.story-chapter h3{font-size:clamp(2.4rem,4.5vw,4.7rem);line-height:1}.story-chapter p{font-size:1.03rem;line-height:1.9}.concealed-portrait{position:relative;overflow:hidden}.portrait-cover{position:absolute!important;right:-5%;bottom:-8%;width:52%!important;height:auto!important;object-fit:contain!important;background:var(--ivory);padding:1.5rem;border-radius:55% 0 0 0}.proposal-chapter{background:#f3eee5}.final-chapter{background:#e8ece6}.story-thanks{font-family:'Cormorant Garamond';font-size:2rem!important;font-style:italic}
.rsvp{background:var(--forest);color:white}.rsvp__inner{padding:clamp(6rem,10vw,10rem) 1.5rem}.gratitude{background:#e8ece6}.account-card{border-radius:2px;border-top:3px solid var(--lavender)}
.closing{position:relative;min-height:86vh;background:url('../assets/images/footer-night-kiss.jpg') center 42%/cover no-repeat;display:flex;align-items:center;justify-content:center;color:white;text-align:center}.closing>img{display:none}.closing__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,18,14,.28),rgba(10,18,14,.68))}.closing__content{position:relative;z-index:1}.closing h2{font-size:clamp(3.5rem,8vw,8rem)}
@media(max-width:980px){.visit-grid{grid-template-columns:repeat(2,1fr)}.wedding-day__editorial{grid-template-columns:.8fr 1.2fr}.ring-detail{grid-column:1/-1;display:grid;grid-template-columns:180px 1fr;gap:1.5rem;align-items:center}.ring-detail img{aspect-ratio:1}.editorial-details{grid-template-columns:1fr;min-height:auto}.details-hanbok{max-width:680px;margin:auto}.editorial-details .section-heading{text-align:center;margin:auto}}
@media(max-width:720px){.site-navigation{padding-top:5rem}.nav-language{margin-top:1rem}.music-control small{display:none}.countdown{grid-template-columns:repeat(4,1fr);gap:0;width:100%;margin-top:1.5rem}.countdown>div{padding:0 .35rem}.countdown strong{font-size:clamp(2.2rem,12vw,3.5rem)}.countdown small{font-size:.52rem;letter-spacing:.09em}.hero__content{padding-inline:.75rem}.editorial-details{padding:7rem 1.25rem 8rem}.details-hanbok{gap:.55rem}.details-hanbok img{height:55vh;min-height:390px}.details-hanbok img:first-child{transform:translateY(-1rem)}.editorial-details .section-heading h2{font-size:clamp(3.4rem,17vw,5.4rem)}.wedding-day{padding:6rem 1.15rem}.wedding-day__editorial{display:flex;flex-direction:column;margin-top:2rem}.ring-detail{order:0;display:block;width:48%;align-self:center;margin:0}.ring-detail figcaption{text-align:center}.schedule{order:1;width:100%}.schedule-image{order:2;width:100%;margin-top:1rem}.schedule-image img{aspect-ratio:4/5}.schedule-row{grid-template-columns:76px 20px 1fr}.schedule-row h3{font-size:1.2rem}.schedule-row p{font-size:.84rem}.marior-welcome{min-height:100svh}.venue{display:block;padding:5.5rem 1.15rem}.venue__image img{height:48vh;min-height:330px}.venue__content{padding:3rem .2rem 0}.visit{padding:6rem 1.15rem}.visit-grid{grid-template-columns:1fr}.visit-card{min-height:310px;padding:2rem}.album-shell{grid-template-columns:1fr}.gallery-arrow{display:none}.album-page{flex-basis:84vw}.album-page img{height:62vh}.story-intro{min-height:85svh;padding:8rem 1.3rem}.story-chapter{padding:7rem 1.25rem}.story-chapter.split{display:flex;flex-direction:column}.story-chapter.split.reverse figure{order:0}.story-chapter figure{width:100%}.story-chapter figure img{max-height:70vh}.story-chapter h3{font-size:clamp(2.6rem,12vw,4rem)}.closing{min-height:100svh;background-position:58% center}.account-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Opening-state reliability fixes */
.opening{transition:opacity .55s ease,visibility .55s ease}
.opening.is-fading{opacity:0;pointer-events:none}
.opening.is-hidden{opacity:0;visibility:hidden;pointer-events:none}

/* RC1 stability fixes */
.primary-button.is-disabled{opacity:.58;cursor:not-allowed;pointer-events:none}
.site-header__menu-button.is-open span:first-child{transform:translateY(3.5px) rotate(45deg)}
.site-header__menu-button.is-open span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media(max-width:720px){
  .site-header{padding-inline:18px}
  .site-navigation{max-height:100svh;overflow-y:auto}
  .film__frame{width:min(100vw,430px);height:100svh;aspect-ratio:auto;border-radius:0}
}

/* ===== RC2.1 CONTROLLED CORRECTION PASS ===== */
/* Keep the stable RC1 spacing system. Only apply the approved content changes below. */
.site-header.is-scrolled{
  background:rgba(239,243,236,.82);
  color:var(--forest);
  border-bottom:1px solid rgba(29,51,40,.10);
  box-shadow:none;
  backdrop-filter:blur(16px) saturate(110%);
}
.hero__image{background-image:url('../assets/images/hero-main.jpg');background-position:center 42%}

/* Simplified Wedding Day */
.wedding-day{overflow:hidden}
.wedding-day__editorial{display:block;max-width:760px;margin:3rem auto 0;position:relative}
.schedule{width:100%;max-width:650px;margin:0 auto}
.schedule-row{grid-template-columns:110px 28px 1fr;min-height:92px;align-items:start;padding:.8rem 0}
.schedule-row h3{font-size:1.8rem;margin:0}
.wedding-day__ring{position:absolute;width:min(340px,28vw);right:-20%;bottom:-18%;opacity:.16;transform:rotate(-8deg);pointer-events:none}

/* Correct Marior image: restore a large editorial presentation */
.venue__image{display:flex;align-items:stretch;min-height:650px;overflow:hidden}
.venue__image img{width:100%;height:100%;min-height:650px;object-fit:cover;object-position:center;border-radius:0 220px 0 0;background:#eef1eb}

/* Plan Your Visit: retain the original rounded cards while adding restrained colour and botanicals */
.visit{position:relative;background:linear-gradient(180deg,#f8f4ec 0%,#edf2ec 52%,#f2ede7 100%);overflow:hidden}
.visit__botanical{opacity:.18;z-index:0}
.visit__botanical--one{width:min(520px,44vw);left:-150px;top:30px}
.visit__botanical--two{width:min(430px,38vw);right:-120px;bottom:-30px}
.visit .section-heading,.visit-grid{position:relative;z-index:1}
.visit-grid{grid-template-columns:repeat(4,1fr);max-width:1350px}
.visit-card{position:relative;overflow:hidden;background:rgba(255,255,255,.76);border-top:3px solid var(--lavender);box-shadow:0 18px 60px rgba(29,51,40,.06)}
.visit-card:nth-child(even){border-top-color:var(--sage)}
.visit-card::after{content:"";position:absolute;width:145px;height:145px;right:-52px;bottom:-50px;background:url('../assets/botanical/accents/olive-branch.svg') center/contain no-repeat;opacity:.08;transform:rotate(-18deg);pointer-events:none}
.visit-card:nth-child(even)::after{background-image:url('../assets/botanical/accents/accent-eucalyptus.svg');transform:rotate(18deg)}

/* Gallery: restore the square album styling and show each full photograph without aggressive zoom. */
.album-page{flex:0 0 min(58vw,620px);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;background:#f5f0e8;padding:18px;box-shadow:0 14px 45px rgba(0,0,0,.18)}
.album-page img{width:100%;height:100%;object-fit:contain;object-position:center;background:#f5f0e8}

/* Story: full-width landscape colour sections, no photographs, with more botanical detail. */
.story-intro{position:relative;min-height:70vh;padding:8rem 1.5rem;background:#e8ece6;overflow:hidden}
.story-intro__botanical{opacity:.14;width:min(500px,42vw);right:-8%;bottom:-18%}
.story-chapter.story-landscape{position:relative;display:flex;align-items:center;min-height:620px;padding:clamp(6rem,9vw,9rem) max(7vw,1.5rem);overflow:hidden}
.story-chapter.story-landscape>div{position:relative;z-index:1;width:min(980px,100%);margin:auto}
.story-chapter.story-landscape h3{max-width:900px;font-size:clamp(3rem,5vw,5rem);line-height:1;margin:0 0 2rem}
.story-chapter.story-landscape p{max-width:760px;font-size:1.03rem;line-height:1.9}
.story-landscape--1{background:#e8ece6}
.story-landscape--2{background:#f3eee5}
.story-landscape--3{background:#dfe7df}
.story-botanical{position:absolute;width:min(480px,40vw);right:-7%;bottom:-20%;opacity:.14;transform:rotate(-12deg);pointer-events:none}
.story-landscape--2 .story-botanical{left:-8%;right:auto;top:-18%;bottom:auto;transform:rotate(25deg)}
.story-landscape--3 .story-botanical{right:-5%;top:4%;bottom:auto;transform:rotate(-24deg)}
.story-chapter.story-landscape::before{content:"";position:absolute;width:220px;height:220px;left:4%;bottom:-90px;background:url('../assets/botanical/corners/corner-bottom-right.svg') center/contain no-repeat;opacity:.08}

.account-contact{display:block;margin-top:1rem;font-size:.82rem;letter-spacing:.08em;color:#5f6e65}

/* Closing: preserve image and keep text above faces. */
.closing{background-image:url('../assets/images/footer-night-kiss-new.jpg');background-position:center 48%;align-items:flex-start;padding-top:9vh}
.closing__overlay{background:linear-gradient(180deg,rgba(10,18,14,.62) 0%,rgba(10,18,14,.25) 42%,rgba(10,18,14,.18) 70%,rgba(10,18,14,.58) 100%)}
.closing__content{max-width:900px;padding:1rem}

@media(max-width:980px){
  .visit-grid{grid-template-columns:repeat(2,1fr)}
  .venue__image{min-height:520px}
  .venue__image img{min-height:520px;border-radius:0 140px 0 0}
}

@media(max-width:720px){
  /* Restore stable mobile spacing rather than overriding every section globally. */
  .hero__image{background-position:center 40%}
  .wedding-day{padding:6rem 1.15rem 7rem}
  .wedding-day__editorial{margin-top:2.2rem}
  .schedule-row{grid-template-columns:78px 20px 1fr;min-height:84px;padding:.65rem 0}
  .schedule-row h3{font-size:1.25rem;line-height:1.25}
  .wedding-day__ring{width:220px;right:-115px;bottom:-40px;opacity:.13}

  .venue{display:block;padding:5.5rem 1.15rem}
  .venue__image{min-height:0;height:auto}
  .venue__image img{height:auto;min-height:0;aspect-ratio:4/3;object-fit:cover;border-radius:0 70px 0 0}
  .venue__content{padding:3rem .2rem 0}

  .visit{padding:6rem 1.15rem}
  .visit-grid{grid-template-columns:1fr}
  .visit-card{min-height:310px;padding:2rem;border-radius:145px 145px 14px 14px}
  .visit__botanical--one{width:330px;left:-180px;top:70px}
  .visit__botanical--two{width:300px;right:-160px;bottom:10px}

  .album-page{flex-basis:84vw;aspect-ratio:1/1;padding:10px}
  .album-page img{object-fit:contain}

  .story-intro{min-height:78svh;padding:7rem 1.3rem}
  .story-chapter.story-landscape{min-height:auto;padding:7rem 1.25rem}
  .story-chapter.story-landscape h3{font-size:clamp(2.55rem,12vw,4rem);line-height:1.03;margin-bottom:1.8rem}
  .story-chapter.story-landscape p{font-size:.98rem;line-height:1.82}
  .story-botanical{width:300px;right:-135px;bottom:-80px}
  .story-landscape--2 .story-botanical{left:-140px;top:-80px}

  .rsvp__inner{padding-top:7rem;padding-bottom:7rem}
  .closing{min-height:100svh;padding:7vh 1rem 4rem;background-position:center 48%}

  /* Korean: only typography and line breaking, not blanket oversized spacing. */
  body.lang-ko .hero__topline{font-size:.52rem;letter-spacing:.18em;line-height:1.7}
  body.lang-ko .hero__content h2{font-size:clamp(3.3rem,16vw,4.7rem);line-height:1.08;word-break:keep-all}
  body.lang-ko .section-heading h2{font-size:clamp(2.55rem,11vw,3.65rem);line-height:1.28;word-break:keep-all}
  body.lang-ko .section-heading>p:last-of-type{line-height:1.85;word-break:keep-all}
  body.lang-ko .schedule-row h3{font-size:1.22rem;line-height:1.45;word-break:keep-all}
  body.lang-ko .visit-card h3{font-size:1.8rem;line-height:1.35;word-break:keep-all}
  body.lang-ko .visit-card p{line-height:1.9;word-break:keep-all}
  body.lang-ko .story-intro__copy h2{font-size:clamp(2.45rem,10.5vw,3.5rem);line-height:1.35;word-break:keep-all}
  body.lang-ko .story-chapter.story-landscape h3{font-size:clamp(2.15rem,9.4vw,3.2rem);line-height:1.42;word-break:keep-all}
  body.lang-ko .story-chapter.story-landscape p{line-height:2;word-break:keep-all}
  body.lang-ko .rsvp .section-heading h2{font-size:clamp(2.5rem,10.5vw,3.5rem);line-height:1.4;word-break:keep-all}
  body.lang-ko .closing h2{font-size:clamp(2.8rem,12vw,4rem);line-height:1.35;word-break:keep-all}
}

/* ======================================================================
   RC3 RESPONSIVE FOUNDATION
   One fluid layout system for desktop, tablet and mobile.
   This block intentionally comes last so it replaces earlier patchwork.
   ====================================================================== */
:root{
  --page-gutter:clamp(1.1rem,4vw,4.5rem);
  --section-space:clamp(5.5rem,9vw,10rem);
  --content-wide:1320px;
  --content-copy:760px;
  --fluid-gap:clamp(1.25rem,4vw,4.5rem);
}

*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
main>section,main>footer{width:100%}
.section-heading{width:min(100%,900px);margin-inline:auto}
.section-heading h2{font-size:clamp(2.8rem,6.2vw,6.7rem);line-height:.98;text-wrap:balance}
.section-heading>p:last-of-type{max-width:680px;margin-inline:auto}

/* Header remains distinct from page backgrounds without becoming opaque. */
.site-header,
.site-header.is-scrolled{
  background:rgba(238,242,235,.82);
  color:var(--forest);
  border-bottom:1px solid rgba(29,51,40,.11);
  backdrop-filter:blur(18px) saturate(120%);
  -webkit-backdrop-filter:blur(18px) saturate(120%);
}

/* Hero scales with viewport rather than relying on fixed mobile offsets. */
.hero{min-height:100svh}
.hero__content{
  width:min(calc(100% - (2 * var(--page-gutter))),1050px);
  min-height:100svh;
  padding:clamp(6.5rem,12vh,9rem) 0 clamp(3.2rem,8vh,6rem);
  margin-inline:auto;
}
.hero h2{font-size:clamp(4rem,10vw,8.5rem);line-height:.78;text-wrap:balance}
.countdown{
  width:min(100%,760px);
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
}
.countdown>div{min-width:0;padding-inline:clamp(.3rem,1.8vw,1.25rem)}
.countdown strong{font-size:clamp(2.5rem,6vw,5.3rem)}
.countdown small{font-size:clamp(.48rem,1vw,.68rem);white-space:nowrap}

/* Standard section rhythm. */
.wedding-day,.venue,.visit,.moments,.story-intro,.story-chapter,.rsvp,.gratitude{
  padding-inline:var(--page-gutter);
}
.wedding-day,.venue,.visit,.moments,.story-intro,.story-chapter,.gratitude{
  padding-block:var(--section-space);
}

/* Wedding day: simple timeline with a restrained ring accent. */
.wedding-day__editorial{
  width:min(100%,1050px);
  margin:clamp(2.5rem,5vw,5rem) auto 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(150px,18vw,230px);
  align-items:center;
  gap:var(--fluid-gap);
}
.schedule{width:100%;margin:0}
.schedule-row{grid-template-columns:clamp(78px,10vw,120px) 24px minmax(0,1fr);min-height:auto;padding:clamp(.8rem,1.6vw,1.3rem) 0}
.schedule-row h3{font-size:clamp(1.45rem,2.3vw,2.2rem);margin:0}
.schedule-row p,.schedule-image,.ring-detail figcaption{display:none!important}
.ring-detail{display:block!important;width:100%;margin:0;align-self:center}
.ring-detail img{width:100%;aspect-ratio:1/1;object-fit:contain;background:transparent;filter:none}

/* Venue: large, legible editorial image with decoration. */
.venue{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);
  align-items:center;
  gap:var(--fluid-gap);
  max-width:none;
}
.venue__image{padding:0;min-height:clamp(520px,62vw,820px);overflow:hidden}
.venue__image img{
  width:100%;height:100%;min-height:inherit;max-height:none;
  object-fit:cover;object-position:center;
  border-radius:0 clamp(80px,12vw,220px) 0 0;
}
.venue__content{padding:clamp(1rem,4vw,4rem) 0}
.venue-decoration{width:clamp(190px,22vw,340px);opacity:.18}

/* Plan your visit: flexible cards, varied colour, visible botanicals. */
.visit{position:relative;background:linear-gradient(135deg,#f7f2e8 0%,#edf2eb 48%,#eef0f7 100%);overflow:hidden}
.visit__botanical{display:block!important;opacity:.16!important;width:clamp(180px,22vw,330px)!important}
.visit__botanical--one{left:-4%;top:2%;transform:rotate(-10deg)}
.visit__botanical--two{right:-3%;bottom:0;transform:rotate(18deg)}
.visit-grid{
  width:min(100%,var(--content-wide));
  margin:clamp(3rem,6vw,5.5rem) auto 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.8rem);
}
.visit-card{
  min-height:clamp(330px,31vw,440px);
  padding:clamp(2.2rem,3.5vw,3.2rem) clamp(1.3rem,2.5vw,2.4rem);
  border-radius:clamp(90px,12vw,180px) clamp(90px,12vw,180px) 18px 18px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(29,51,40,.12);
  border-top:4px solid var(--lavender);
  box-shadow:0 18px 50px rgba(29,51,40,.08);
}
.visit-card:nth-child(even){background:rgba(238,243,236,.86);border-top-color:var(--sage)}
.visit-card::after{width:175px;height:175px;right:-45px;bottom:-45px;opacity:.13}
.visit-card h3{font-size:clamp(1.8rem,2.5vw,2.35rem)}

/* Gallery: retain the square album styling and show the whole photograph. */
.album-shell{width:min(100%,1200px);margin:clamp(3rem,6vw,5rem) auto 0;padding:0}
.album-track{gap:clamp(.8rem,2vw,1.4rem)}
.album-page{
  flex:0 0 clamp(290px,48vw,620px);
  aspect-ratio:1/1;
  padding:clamp(.55rem,1.4vw,1.15rem);
  background:#f5f0e8;
  box-shadow:0 14px 45px rgba(0,0,0,.2);
  overflow:hidden;
}
.album-page img{width:100%;height:100%;object-fit:contain!important;object-position:center;background:#f5f0e8}

/* Story: one landscape block system with botanical accents. */
.story-intro{min-height:auto}
.story-chapter.story-landscape{
  width:100%;min-height:clamp(500px,62vh,680px);
  display:flex;align-items:center;
  padding-block:var(--section-space);
}
.story-chapter.story-landscape>div{width:min(100%,980px)}
.story-chapter.story-landscape h3{font-size:clamp(2.7rem,5vw,5rem);line-height:1.04;text-wrap:balance}
.story-chapter.story-landscape::before{width:clamp(180px,20vw,300px);height:clamp(180px,20vw,300px);opacity:.12}
.story-chapter.story-landscape:nth-of-type(even)::after{
  content:"";position:absolute;width:clamp(150px,17vw,250px);height:clamp(150px,17vw,250px);
  right:3%;top:-55px;background:url('../assets/botanical/accents/accent-eucalyptus.svg') center/contain no-repeat;
  opacity:.1;pointer-events:none;
}

/* RSVP, gratitude and footer scale without arbitrary fixed heights. */
.rsvp{padding-inline:var(--page-gutter)}
.rsvp__inner{width:min(100%,980px);margin-inline:auto;padding:clamp(5rem,9vw,9rem) clamp(1.2rem,5vw,4rem)}
.account-grid{width:min(100%,960px);margin-inline:auto}
.closing{min-height:100svh;background-position:center 42%}
.closing__content{width:min(calc(100% - 2.2rem),820px);top:clamp(5.5rem,12vh,9rem);bottom:auto;transform:none}

/* Tablet */
@media(max-width:980px){
  .visit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .venue{grid-template-columns:1fr}
  .venue__image{min-height:clamp(460px,74vw,680px)}
  .venue__content{width:min(100%,760px);margin-inline:auto}
  .wedding-day__editorial{grid-template-columns:minmax(0,1fr) 180px}
}

/* Mobile */
@media(max-width:720px){
  :root{--page-gutter:clamp(1rem,5vw,1.4rem);--section-space:clamp(5rem,16vw,7rem)}
  .section-heading h2{font-size:clamp(2.7rem,13vw,4.1rem);line-height:1.04}
  .hero__content{justify-content:flex-end;padding-top:5.5rem;padding-bottom:4.2rem}
  .hero h2{font-size:clamp(3.7rem,17vw,5.4rem);line-height:.82}
  .countdown{margin-top:1.6rem}
  .countdown>div{padding-inline:.2rem}
  .countdown strong{font-size:clamp(2.1rem,11vw,3.25rem)}
  .countdown small{font-size:.46rem;letter-spacing:.05em}

  .wedding-day__editorial{display:flex;flex-direction:column;gap:2.2rem}
  .schedule{order:1}
  .ring-detail{order:2;width:min(58%,220px)}
  .schedule-row{grid-template-columns:74px 18px minmax(0,1fr);padding:1rem 0}
  .schedule-row time{font-size:1.2rem}
  .schedule-row h3{font-size:clamp(1.35rem,6.5vw,1.8rem)}

  .venue{padding-inline:0}
  .venue__image{min-height:0;height:auto}
  .venue__image img{height:auto;min-height:0;aspect-ratio:4/3;border-radius:0 64px 0 0}
  .venue__content{padding:clamp(3.5rem,12vw,5rem) var(--page-gutter) 0}
  .venue-decoration{right:-6%;bottom:1%;opacity:.2}

  .visit-grid{grid-template-columns:1fr;gap:1.2rem}
  .visit-card{min-height:0;padding:clamp(2.6rem,10vw,3.4rem) 1.5rem;border-radius:120px 120px 16px 16px}
  .visit__botanical{opacity:.13!important}

  .album-shell{display:block}
  .gallery-arrow{display:none}
  .album-page{flex-basis:min(84vw,420px);padding:.65rem}

  .story-chapter.story-landscape{min-height:auto;padding-block:clamp(5.5rem,18vw,7.5rem)}
  .story-chapter.story-landscape h3{font-size:clamp(2.5rem,11.5vw,3.8rem);line-height:1.08}
  .story-chapter.story-landscape p{font-size:1rem;line-height:1.82}

  .rsvp__inner{padding-inline:.5rem}
  .closing{background-position:center 40%}
  .closing__content{top:5.8rem}
}

/* Korean requires more line height and less aggressive display sizing. */
body.lang-ko h1,body.lang-ko h2,body.lang-ko h3{
  word-break:keep-all;overflow-wrap:normal;line-height:1.28;
}
body.lang-ko p{word-break:keep-all;line-height:1.85}
body.lang-ko .section-heading h2{font-size:clamp(2.55rem,5.4vw,5.7rem)}
body.lang-ko .hero h2{font-size:clamp(3.5rem,8vw,7rem);line-height:1.14}
body.lang-ko .story-chapter.story-landscape h3{font-size:clamp(2.45rem,4.3vw,4.3rem);line-height:1.34}

@media(max-width:720px){
  body.lang-ko .section-heading h2{font-size:clamp(2.35rem,10vw,3.35rem);line-height:1.38}
  body.lang-ko .hero h2{font-size:clamp(3rem,13vw,4.3rem);line-height:1.22}
  body.lang-ko .story-intro__copy h2{font-size:clamp(2.35rem,10vw,3.25rem);line-height:1.4}
  body.lang-ko .story-chapter.story-landscape h3{font-size:clamp(2.15rem,9vw,3.1rem);line-height:1.45}
  body.lang-ko .rsvp .section-heading h2{font-size:clamp(2.25rem,9.5vw,3.2rem);line-height:1.42}
  body.lang-ko .closing h2{font-size:clamp(2.7rem,11.5vw,3.8rem);line-height:1.35}
}

/* ======================================================================
   RC4 FINAL LAYOUT REFINEMENT
   Keeps the RC3 fluid system; refines Korean, cards, gallery and story.
   ====================================================================== */

/* Wedding day: airy editorial timeline, no couple photograph. */
.wedding-day{
  position:relative;
  background:#fbf8f1;
  overflow:hidden;
}
.wedding-day::before,
.wedding-day::after{
  content:"";position:absolute;pointer-events:none;background-repeat:no-repeat;background-size:contain;opacity:.20;
}
.wedding-day::before{
  width:clamp(180px,22vw,360px);height:clamp(180px,22vw,360px);
  left:-55px;top:80px;background-image:url('../assets/botanical/corners/corner-top-left.svg');
}
.wedding-day::after{
  width:clamp(210px,25vw,390px);height:clamp(210px,25vw,390px);
  right:-65px;bottom:-55px;background-image:url('../assets/botanical/corners/corner-bottom-right.svg');
}
.wedding-day__botanical{display:none!important}
.wedding-day__editorial{grid-template-columns:minmax(0,760px) minmax(150px,220px);justify-content:center;position:relative;z-index:1}
.schedule{max-width:760px}
.schedule-row{grid-template-columns:clamp(95px,10vw,130px) 28px minmax(0,1fr);align-items:center;padding:clamp(1rem,2vw,1.45rem) 0}
.schedule-row time{white-space:nowrap}
.ring-detail{filter:drop-shadow(0 20px 30px rgba(57,43,29,.10))}
.ring-detail img{max-height:260px}

/* Venue image should feel substantial on every screen. */
.venue{background:#fffdf8}
.venue__image{min-height:clamp(600px,68vw,900px)}
.venue__image img{object-fit:cover;object-position:center}
.venue-decoration{opacity:.27}
.venue::after{
  content:"";position:absolute;right:-30px;top:8%;width:clamp(160px,18vw,290px);height:clamp(160px,18vw,290px);
  background:url('../assets/botanical/accents/olive-branch.svg') center/contain no-repeat;opacity:.14;pointer-events:none;
}

/* Visit: alternate white and ivory; restore polished rounded cards. */
.visit{background:#f5f1e8}
.visit::before{
  content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.72),transparent 45%,rgba(255,255,255,.38));pointer-events:none;
}
.visit-grid{position:relative;z-index:1}
.visit-card{
  background:#fff!important;
  border:1px solid rgba(35,55,43,.12);
  border-top:3px solid rgba(154,170,151,.85);
  border-radius:150px 150px 24px 24px;
  box-shadow:0 18px 45px rgba(34,49,40,.07);
  transition:transform .25s ease,box-shadow .25s ease;
}
.visit-card:nth-child(even){background:#f8f3e9!important;border-top-color:rgba(175,163,205,.92)}
.visit-card:hover{transform:translateY(-5px);box-shadow:0 24px 55px rgba(34,49,40,.11)}
.visit-card::before{
  content:"";position:absolute;width:120px;height:60px;top:20px;right:22px;
  background:url('../assets/botanical/dividers/divider-botanical.svg') center/contain no-repeat;opacity:.12;
}
.visit-card::after{background:url('../assets/botanical/accents/olive-branch.svg') center/contain no-repeat!important;opacity:.11!important}
.visit__botanical{opacity:.23!important}

/* Gallery: visible arrows on touch devices and a dark image stage. */
.moments{background:#fffdf8}
.album-shell{position:relative;padding-inline:clamp(2.8rem,6vw,5.5rem)}
.album-track{scroll-padding-inline:clamp(2.8rem,6vw,5.5rem)}
.album-page{background:#111!important;border:10px solid #f5f0e8;border-radius:2px}
.album-page img{background:#111!important;object-fit:contain!important}
.gallery-arrow{
  display:grid!important;place-items:center;width:48px;height:48px;border-radius:50%;
  background:rgba(255,253,248,.94);color:var(--forest);border:1px solid rgba(29,51,40,.18);
  box-shadow:0 8px 24px rgba(0,0,0,.14);z-index:5;
}
.gallery-arrow.prev{left:0}.gallery-arrow.next{right:0}
.gallery-dots{margin-top:1.7rem}

/* Story intro should occupy a complete page and never reveal the next chapter. */
.story-intro{
  min-height:100svh;display:flex;align-items:center;justify-content:center;
  background:#edf2eb;position:relative;overflow:hidden;
}
.story-intro__copy{width:min(100%,900px);margin:auto;text-align:center;padding-block:clamp(3rem,8vh,6rem)}
.story-intro__copy h2{max-width:820px;margin-inline:auto}
.story-intro__copy p:last-child{max-width:690px;margin-inline:auto}
.story-intro::after{
  content:"";position:absolute;width:clamp(220px,28vw,430px);height:clamp(220px,28vw,430px);left:-90px;bottom:-120px;
  background:url('../assets/botanical/corners/corner-bottom-right.svg') center/contain no-repeat;transform:scaleX(-1);opacity:.14;pointer-events:none;
}
.story-intro__botanical{opacity:.16!important}
.story-chapter.story-landscape:nth-of-type(odd){background:#fffdf8}
.story-chapter.story-landscape:nth-of-type(even){background:#f4efe5}

/* Footer: keep text in the clear upper area and preserve the couple. */
.closing__content{top:clamp(5.8rem,10vh,8rem);text-shadow:0 2px 18px rgba(0,0,0,.35)}
.closing__content h2{margin-block:.7rem}

/* Korean typography and layout: wider usable measure, calmer scale. */
body.lang-ko .venue__content h2{font-family:'Noto Serif KR',serif;line-height:1.2}
body.lang-ko .schedule-row h3{font-size:clamp(1.25rem,2vw,1.85rem);line-height:1.35;word-break:keep-all}
body.lang-ko .schedule-row time{font-size:clamp(1rem,1.7vw,1.35rem);letter-spacing:0}
body.lang-ko .story-intro__copy{max-width:820px}
body.lang-ko .story-intro__copy h2{max-width:760px}

@media(max-width:720px){
  .wedding-day{padding-inline:clamp(1.25rem,6vw,1.65rem)}
  .wedding-day::before{width:210px;height:210px;left:-95px;top:120px;opacity:.13}
  .wedding-day::after{width:230px;height:230px;right:-105px;bottom:-60px;opacity:.14}
  .wedding-day__editorial{width:100%;display:block;margin-top:2.5rem}
  .schedule{width:100%;max-width:none}
  .schedule-row{grid-template-columns:88px 22px minmax(0,1fr);width:100%;padding:1.05rem 0}
  .schedule-row h3{max-width:none}
  .ring-detail{width:min(52vw,190px);margin:2rem auto 0}

  .venue{padding-inline:var(--page-gutter)}
  .venue__image{min-height:0;width:100%;height:auto}
  .venue__image img{width:100%;height:auto;aspect-ratio:4/3;border-radius:0 72px 0 0;object-fit:cover}
  .venue__content{padding-inline:0}
  .venue::after{width:190px;height:190px;right:-80px;top:43%;opacity:.14}

  .visit-card{border-radius:110px 110px 22px 22px;padding:3.2rem 1.5rem 2.7rem}
  .visit-card::before{width:95px;height:45px;right:25px;top:20px}

  .album-shell{padding-inline:2.5rem}
  .album-page{flex-basis:min(82vw,390px);border-width:8px}
  .gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px}
  .gallery-arrow.prev{left:.15rem}.gallery-arrow.next{right:.15rem}

  .story-intro{min-height:100svh;padding:6.5rem 1.4rem 5rem}
  .story-intro__copy{padding:0}
  .story-intro__copy h2{font-size:clamp(2.45rem,11vw,3.45rem);line-height:1.22}
  .story-intro__copy p:last-child{font-size:1rem;line-height:1.9;margin-top:2rem}

  .closing__content{top:5.2rem;width:calc(100% - 2rem)}
  .closing__content p:not(.eyebrow){max-width:330px;margin-inline:auto}

  body.lang-ko .wedding-day .section-heading h2{font-size:clamp(2.55rem,11vw,3.35rem);line-height:1.25}
  body.lang-ko .schedule-row{grid-template-columns:96px 20px minmax(0,1fr);align-items:center}
  body.lang-ko .schedule-row h3{font-size:clamp(1.2rem,5.7vw,1.55rem);line-height:1.35;word-break:keep-all}
  body.lang-ko .schedule-row time{font-size:clamp(.98rem,4.5vw,1.18rem);white-space:nowrap}
  body.lang-ko .venue__content h2{font-size:clamp(3rem,14vw,4.3rem)}
  body.lang-ko .visit-card h3{font-size:clamp(1.65rem,8vw,2.15rem)}
  body.lang-ko .story-intro__copy h2{font-size:clamp(2.25rem,9.5vw,3.05rem);line-height:1.42}
  body.lang-ko .story-intro__copy p:last-child{font-size:.98rem;line-height:2}
  body.lang-ko .closing__content{top:5.5rem}
  body.lang-ko .closing h2{font-size:clamp(2.65rem,11vw,3.65rem);line-height:1.3}
}

/* ======================================================================
   RC5 DEBUG PASS — targeted fixes only
   ====================================================================== */

/* Hero: preserve faces, especially in Korean mobile. */
@media (max-width:720px){
  .hero__content{justify-content:flex-end;padding-bottom:clamp(3.2rem,7vh,5rem)}
  body.lang-ko .hero__content{padding-bottom:clamp(2.8rem,6vh,4.4rem)}
  body.lang-ko .hero__content h2{font-size:clamp(3.15rem,15vw,4.55rem);line-height:1.08;margin:.6rem 0}
  body.lang-ko .hero__topline{margin-bottom:.35rem}
  body.lang-ko .hero__details{margin-top:.2rem}
  body.lang-ko .countdown{margin-top:1rem}
}

/* Wedding day: reference-inspired, image-free, balanced and compact. */
.wedding-day{padding-top:clamp(5rem,8vw,7rem);padding-bottom:clamp(6rem,10vw,9rem)}
.wedding-day .section-heading{max-width:980px;margin-inline:auto;text-align:left;padding-inline:clamp(1rem,4vw,3rem)}
.wedding-day .section-heading h2{font-size:clamp(3.7rem,7vw,7rem);line-height:.95;margin:.65rem 0 1rem}
.wedding-day .section-heading>p:last-child{font-size:clamp(1rem,1.6vw,1.25rem)}
.wedding-day__editorial{display:block;max-width:760px;margin:3rem auto 0;padding-inline:clamp(1rem,3vw,2rem)}
.schedule{width:100%;max-width:none;position:relative}
.schedule-row{grid-template-columns:120px 28px minmax(0,1fr);min-height:106px;padding:.7rem 0;align-items:center}
.schedule-row h3{font-size:clamp(1.45rem,2.4vw,2.1rem);line-height:1.15;margin:0;white-space:normal}
.schedule-row time{font-size:clamp(1.15rem,2vw,1.55rem)}
.wedding-day__ring{width:min(330px,26vw);right:-8%;bottom:-9%;opacity:.13}

/* Gallery title and spacing. */
.moments .section-heading h2{font-size:clamp(3.8rem,8vw,7rem);line-height:.95}
.moments .section-heading .eyebrow{color:var(--sage-dark)}
.album-shell{margin-top:clamp(2.8rem,6vw,4.5rem)}
.album-page{box-shadow:0 20px 50px rgba(0,0,0,.12)}

/* Story pages: each chapter gets a full, centred visual page. */
.story-chapter{min-height:100svh;display:flex;align-items:center;justify-content:center}
.story-chapter>div,.story-chapter.split{width:min(100%,1080px)}
.story-chapter.text-only>div{max-width:860px}
.story-chapter h3{text-align:center}
.story-chapter p{text-align:center;max-width:760px;margin-left:auto;margin-right:auto}
.story-chapter.split{display:block}
.story-chapter.split figure{display:none!important}

/* Gratitude cards borrow the rounded visual language of visit cards. */
.account-grid{gap:clamp(1.5rem,3vw,2.5rem)}
.account-card{background:#fffdf8;border:1px solid rgba(35,55,43,.13);border-top:3px solid rgba(175,163,205,.92);border-radius:120px 120px 24px 24px;box-shadow:0 18px 44px rgba(34,49,40,.07);padding:clamp(2.8rem,5vw,4rem) 1.5rem}
.account-card:nth-child(2){background:#f8f3e9;border-top-color:rgba(154,170,151,.9)}

/* Footer: move text decisively above faces. */
.closing{align-items:flex-start}
.closing__content{top:auto;margin-top:clamp(6.2rem,10vh,8.5rem);padding:1rem 1.2rem}
.closing__content h2{font-size:clamp(3.25rem,7vw,6.8rem)}

@media(max-width:720px){
  .wedding-day{padding:5.8rem 1.1rem 7rem}
  .wedding-day .section-heading{text-align:center;padding-inline:0}
  .wedding-day .section-heading h2{font-size:clamp(3rem,13vw,4.25rem);line-height:1.05}
  .wedding-day__editorial{padding-inline:0;margin-top:2.2rem}
  .schedule-row{grid-template-columns:96px 22px minmax(0,1fr);min-height:104px;padding:.65rem 0}
  .schedule-row h3{font-size:clamp(1.25rem,5.7vw,1.6rem);line-height:1.2;word-break:keep-all}
  .schedule-row time{font-size:clamp(1rem,4.5vw,1.18rem)}
  .wedding-day__ring{width:190px;right:-80px;bottom:-25px}

  body.lang-ko .wedding-day .section-heading h2{font-size:clamp(2.85rem,12.5vw,3.8rem);line-height:1.15}
  body.lang-ko .schedule-row{grid-template-columns:92px 22px minmax(0,1fr)}
  body.lang-ko .schedule-row h3{font-size:clamp(1.18rem,5.25vw,1.48rem);line-height:1.25;word-break:keep-all;overflow-wrap:normal}
  body.lang-ko .schedule-row time{font-size:clamp(.95rem,4.1vw,1.1rem)}

  .moments{padding-top:7rem;padding-bottom:7rem}
  .moments .section-heading h2{font-size:clamp(3rem,14vw,4.5rem)}
  body.lang-ko .moments .section-heading h2{font-size:clamp(2.65rem,12vw,3.7rem);line-height:1.22}
  .album-shell{margin-top:2.8rem}

  .story-intro,.story-chapter{min-height:100svh}
  .story-chapter{padding:7.5rem 1.35rem}
  .story-chapter h3{font-size:clamp(2.55rem,11vw,3.65rem);line-height:1.2}
  body.lang-ko .story-chapter h3{font-size:clamp(2.15rem,9.5vw,3rem);line-height:1.42;word-break:keep-all}
  body.lang-ko .story-chapter p{font-size:1rem;line-height:2;word-break:keep-all}

  .account-card{border-radius:90px 90px 22px 22px;padding:3rem 1.25rem}

  .closing__content{margin-top:4.6rem;width:calc(100% - 1.5rem)}
  body.lang-ko .closing__content{margin-top:4.2rem}
  .closing__content h2{font-size:clamp(2.8rem,11vw,3.7rem);line-height:1.2}
  .closing__content p:not(.eyebrow){font-size:1rem;line-height:1.8}
}

/* ======================================================================
   RC6 MOBILE-FIRST CORRECTION — mobile is the primary layout
   ====================================================================== */

/* WEDDING DAY: reference-style editorial timeline, no couple photograph */
.wedding-day{
  position:relative;
  overflow:hidden;
  background:#fffaf2;
}
.wedding-day::before,
.wedding-day::after{
  content:"";
  position:absolute;
  pointer-events:none;
  background-repeat:no-repeat;
  background-size:contain;
  opacity:.22;
  z-index:0;
}
.wedding-day::before{
  background-image:url('../assets/botanical/corners/corner-top-left.svg');
  width:240px;height:240px;left:-70px;top:70px;
}
.wedding-day::after{
  background-image:url('../assets/botanical/corners/corner-bottom-right.svg');
  width:270px;height:270px;right:-85px;bottom:-65px;
}
.wedding-day .section-heading,
.wedding-day__editorial,
.wedding-day__ring{position:relative;z-index:1}
.wedding-day__editorial{max-width:820px}
.schedule-row{
  grid-template-columns:48px 112px 28px minmax(0,1fr);
  column-gap:12px;
}
.schedule-icon{
  width:42px;height:42px;
  display:grid;place-items:center;
  font-family:serif;
  font-size:1.55rem;
  color:#344c40;
  filter:grayscale(1);
}
.wedding-day__ring{
  display:block!important;
  position:absolute;
  width:clamp(180px,22vw,330px);
  right:clamp(1rem,7vw,8rem);
  top:clamp(8rem,15vw,13rem);
  bottom:auto;
  opacity:.34;
}

/* GALLERY: title must always be visible and prominent */
.moments .section-heading{position:relative;z-index:2}
.moments .section-heading .eyebrow,
.moments .section-heading h2{
  color:#20372d!important;
  opacity:1!important;
  visibility:visible!important;
  text-shadow:none!important;
}
.moments .section-heading h2{margin-top:.55rem}

/* STORY: every chapter must read as its own full mobile page */
.story-intro,
.story-chapter{
  min-height:max(100svh,760px)!important;
}
.story-chapter{
  box-sizing:border-box;
  padding-block:clamp(8rem,18vh,12rem)!important;
}
.story-chapter>div{margin:auto}

/* CLOSING: text is anchored in the upper clear area, away from faces */
.closing{position:relative;align-items:flex-start!important}
.closing__content{
  position:absolute!important;
  top:clamp(2.2rem,5vh,4rem)!important;
  margin-top:0!important;
  left:50%;
  transform:translateX(-50%)!important;
  bottom:auto!important;
}

@media (max-width:720px){
  /* Korean Wedding Day is deliberately wider and smaller to prevent stacked words */
  .wedding-day{padding:5.6rem 1rem 7rem!important}
  .wedding-day .section-heading{margin-bottom:1rem}
  .wedding-day .section-heading h2{margin:.45rem 0 .8rem}
  .wedding-day__editorial{margin-top:2rem!important;width:100%;max-width:none}
  .schedule{width:100%;padding:0 .1rem}
  .schedule-row{
    grid-template-columns:34px 82px 20px minmax(0,1fr)!important;
    column-gap:7px!important;
    min-height:112px!important;
    align-items:center;
  }
  .schedule-icon{width:32px;height:32px;font-size:1.15rem}
  .schedule-row time{white-space:nowrap;font-size:.98rem!important}
  .schedule-row h3{
    font-size:clamp(1.28rem,5.4vw,1.62rem)!important;
    line-height:1.18!important;
    max-width:none!important;
  }
  body.lang-ko .schedule-row{
    grid-template-columns:32px 88px 20px minmax(0,1fr)!important;
  }
  body.lang-ko .schedule-row time{font-size:.94rem!important;letter-spacing:-.02em}
  body.lang-ko .schedule-row h3{
    font-size:clamp(1.18rem,4.8vw,1.48rem)!important;
    line-height:1.35!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    white-space:normal!important;
  }
  body.lang-ko .schedule-row h3[data-ko="케이크 커팅 & 퍼스트 댄스"]{
    font-size:clamp(1.05rem,4.25vw,1.3rem)!important;
  }
  body.lang-ko .schedule-row h3[data-ko="이브닝 셀러브레이션"]{
    font-size:clamp(1.02rem,4.15vw,1.26rem)!important;
  }
  .wedding-day__ring{
    width:145px!important;
    right:-36px!important;
    top:118px!important;
    opacity:.24!important;
  }
  .wedding-day::before{width:175px;height:175px;left:-72px;top:105px;opacity:.18}
  .wedding-day::after{width:190px;height:190px;right:-78px;bottom:-30px;opacity:.2}

  /* Gallery mobile hierarchy and spacing */
  .moments{padding:6.2rem 1rem 6.5rem!important}
  .moments .section-heading{padding:0 .5rem!important;margin-bottom:2.1rem!important}
  .moments .section-heading .eyebrow{font-size:.72rem!important;letter-spacing:.3em}
  .moments .section-heading h2{
    font-size:clamp(2.65rem,12vw,3.65rem)!important;
    line-height:1.12!important;
    margin:.7rem 0 0!important;
  }
  body.lang-ko .moments .section-heading h2{
    font-size:clamp(2.25rem,10vw,3rem)!important;
    line-height:1.3!important;
  }
  .album-shell{margin-top:1.6rem!important}

  /* Story pages: no following chapter visible in same viewport */
  .story-intro,.story-chapter{
    min-height:max(112svh,860px)!important;
  }
  .story-chapter{
    padding:9rem 1.4rem!important;
  }
  body.lang-ko .story-chapter{padding-block:10rem!important}

  /* Footer: move substantially upward */
  .closing__content{
    top:2.1rem!important;
    width:calc(100% - 2rem)!important;
    padding:.6rem .5rem!important;
  }
  body.lang-ko .closing__content{top:1.7rem!important}
  .closing__content h2{margin:.35rem 0!important}
  .closing__content p:not(.eyebrow){margin:.4rem auto!important}
  .closing__content small{margin-top:.6rem!important}
}

@media (min-width:721px){
  .wedding-day .section-heading{padding-right:330px}
  .schedule-row{grid-template-columns:52px 120px 28px minmax(0,1fr)}
  .closing__content{top:4rem!important}
}

/* ======================================================================
   RC7 MOBILE POLISH — mobile first, consistent full-page sections
   ====================================================================== */

/* Keep major editorial sections visually consistent on phones. */
.story-intro,
.story-chapter,
.rsvp,
.gratitude {
  min-height: max(112svh, 860px);
  box-sizing: border-box;
}
.story-intro,
.story-chapter,
.rsvp {
  display: flex;
  align-items: center;
  justify-content: center;
}
.story-intro__copy,
.story-chapter > div,
.rsvp__inner {
  width: min(100%, 880px);
  margin-inline: auto;
  text-align: center;
}
.story-chapter h3,
.story-chapter p,
.rsvp .section-heading,
.rsvp .section-heading h2,
.rsvp .section-heading p {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Wedding Day — mobile-first editorial timeline with visible icons, rings and botanicals. */
.wedding-day {
  min-height: auto;
  padding: clamp(5.5rem, 9vw, 8rem) var(--page-gutter) clamp(7rem, 11vw, 10rem) !important;
  background: #fffaf2;
}
.wedding-day::before {
  width: clamp(240px, 31vw, 430px) !important;
  height: clamp(240px, 31vw, 430px) !important;
  left: clamp(-150px, -8vw, -65px) !important;
  top: 72px !important;
  opacity: .32 !important;
}
.wedding-day::after {
  width: clamp(250px, 32vw, 440px) !important;
  height: clamp(250px, 32vw, 440px) !important;
  right: clamp(-150px, -8vw, -65px) !important;
  bottom: -80px !important;
  opacity: .32 !important;
}
.wedding-day .section-heading {
  text-align: center;
  max-width: 900px;
  padding: 0;
}
.wedding-day__editorial {
  width: min(100%, 790px);
  max-width: 790px;
  margin: clamp(2.6rem, 6vw, 4.5rem) auto 0 !important;
  padding: 0;
}
.schedule {
  width: 100%;
  position: relative;
}
.schedule::before {
  content: "";
  position: absolute;
  left: 64px;
  top: 30px;
  bottom: 34px;
  width: 1px;
  background: #c7a65f;
}
.schedule-row {
  display: grid !important;
  grid-template-columns: 46px 22px 118px minmax(0, 1fr) !important;
  column-gap: 12px !important;
  align-items: center !important;
  min-height: 118px !important;
  padding: .75rem 0 !important;
}
.schedule-icon {
  grid-column: 1;
  width: 44px !important;
  height: 44px !important;
  font-size: 1.75rem !important;
  color: #30483c !important;
  opacity: .95;
  filter: grayscale(1) contrast(1.2);
}
.schedule-dot {
  grid-column: 2;
  position: relative;
  z-index: 2;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 2px solid #d3b36f;
  background: #fffaf2;
  justify-self: center;
}
.schedule-row time {
  grid-column: 3;
  white-space: nowrap;
  text-align: right;
  font-size: clamp(1rem, 1.8vw, 1.35rem) !important;
}
.schedule-row > div {
  grid-column: 4;
  min-width: 0;
}
.schedule-row h3 {
  margin: 0 !important;
  font-size: clamp(1.45rem, 2.4vw, 2rem) !important;
  line-height: 1.15 !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}
.wedding-day__ring {
  display: block !important;
  width: clamp(250px, 30vw, 430px) !important;
  right: clamp(-25px, 4vw, 90px) !important;
  top: clamp(7.5rem, 12vw, 11rem) !important;
  opacity: .5 !important;
  z-index: 0 !important;
}

/* Gallery — centred title and frame, predictable mobile sizing. */
.moments {
  min-height: max(112svh, 860px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(6rem, 10vw, 9rem) var(--page-gutter) !important;
}
.moments .section-heading {
  width: min(100%, 850px);
  margin: 0 auto clamp(2rem, 5vw, 3.5rem) !important;
  padding: 0 !important;
  text-align: center;
}
.album-shell {
  width: min(100%, 980px) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) 56px !important;
  gap: clamp(.7rem, 2vw, 1.4rem) !important;
  align-items: center;
  padding: 0 !important;
}
.album-track {
  width: 100%;
  margin: 0 auto;
}
.album-page {
  flex: 0 0 min(70vw, 620px) !important;
  aspect-ratio: 1 / 1 !important;
  margin-inline: auto;
  background: #111 !important;
  padding: clamp(.6rem, 1.4vw, 1rem) !important;
}
.album-page img {
  background: #111 !important;
  object-fit: contain !important;
}
.gallery-arrow {
  display: grid !important;
  place-items: center;
  justify-self: center;
  background: rgba(255,255,255,.92) !important;
  color: #20372d !important;
  border-color: rgba(32,55,45,.22) !important;
}
.gallery-dots { margin-top: 1.8rem !important; }

/* RSVP gets the same visual height and centring as Story. */
.rsvp {
  padding: clamp(5.5rem, 10vw, 8rem) var(--page-gutter) !important;
}
.rsvp__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(84svh, 780px);
  border-radius: 180px 180px 22px 22px;
}

/* Closing — lower than RC6 but still above the couple's faces. */
.closing__content {
  top: clamp(5.7rem, 10vh, 7.4rem) !important;
}

@media (max-width: 720px) {
  .story-intro,
  .story-chapter,
  .rsvp,
  .gratitude,
  .moments {
    min-height: max(112svh, 860px) !important;
  }

  .wedding-day {
    padding: 5.7rem 1.05rem 7.5rem !important;
  }
  .wedding-day::before {
    width: 220px !important;
    height: 220px !important;
    left: -92px !important;
    top: 105px !important;
    opacity: .28 !important;
  }
  .wedding-day::after {
    width: 235px !important;
    height: 235px !important;
    right: -94px !important;
    bottom: -50px !important;
    opacity: .28 !important;
  }
  .wedding-day__editorial {
    width: 100%;
    margin-top: 2.5rem !important;
  }
  .schedule::before {
    left: 23px;
    top: 26px;
    bottom: 30px;
  }
  .schedule-row {
    grid-template-columns: 46px 78px minmax(0, 1fr) !important;
    column-gap: 10px !important;
    min-height: 124px !important;
    align-items: center !important;
  }
  .schedule-icon {
    grid-column: 1;
    width: 46px !important;
    height: 46px !important;
    font-size: 1.6rem !important;
    align-self: center;
  }
  .schedule-dot {
    position: absolute;
    left: 16px;
    width: 14px;
    height: 14px;
  }
  .schedule-row time {
    grid-column: 2;
    text-align: left;
    align-self: center;
    font-size: .98rem !important;
  }
  .schedule-row > div {
    grid-column: 3;
    align-self: center;
  }
  .schedule-row h3 {
    font-size: clamp(1.24rem, 5.2vw, 1.55rem) !important;
    line-height: 1.22 !important;
  }
  body.lang-ko .schedule-row {
    grid-template-columns: 46px 82px minmax(0, 1fr) !important;
  }
  body.lang-ko .schedule-row time {
    font-size: .94rem !important;
    letter-spacing: -.025em;
  }
  body.lang-ko .schedule-row h3 {
    font-size: clamp(1.18rem, 4.9vw, 1.46rem) !important;
    line-height: 1.28 !important;
    white-space: normal !important;
  }
  body.lang-ko .schedule-row h3[data-ko="케이크 커팅 & 퍼스트 댄스"],
  body.lang-ko .schedule-row h3[data-ko="이브닝 셀러브레이션"] {
    font-size: clamp(1.05rem, 4.35vw, 1.3rem) !important;
  }
  .wedding-day__ring {
    width: 210px !important;
    right: -52px !important;
    top: 128px !important;
    opacity: .42 !important;
  }

  .moments {
    padding: 6.3rem 1rem 7rem !important;
  }
  .moments .section-heading {
    margin-bottom: 2.5rem !important;
  }
  .album-shell {
    width: 100% !important;
    grid-template-columns: 48px minmax(0, 1fr) 48px !important;
    gap: .35rem !important;
  }
  .album-page {
    flex-basis: min(70vw, 380px) !important;
    width: min(70vw, 380px) !important;
    padding: .55rem !important;
  }
  .gallery-arrow {
    width: 46px !important;
    height: 46px !important;
    font-size: 1.25rem !important;
  }

  .story-intro,
  .story-chapter {
    padding: 8rem 1.35rem !important;
  }
  .story-intro__copy,
  .story-chapter > div {
    width: 100%;
    max-width: 560px;
  }
  .rsvp {
    padding: 5.8rem 1rem !important;
  }
  .rsvp__inner {
    min-height: 82svh;
    width: 100%;
    padding: 4.5rem 1.15rem !important;
    border-radius: 110px 110px 22px 22px;
  }
  body.lang-ko .rsvp .section-heading h2 {
    font-size: clamp(2.2rem, 9vw, 3rem) !important;
    line-height: 1.35 !important;
  }

  .closing__content,
  body.lang-ko .closing__content {
    top: 5.4rem !important;
    width: calc(100% - 2rem) !important;
  }
}

@media (min-width: 721px) {
  .wedding-day .section-heading { padding-right: 0 !important; }
  .closing__content { top: 5.8rem !important; }
}

/* RC8 — targeted gallery, botanical and wedding-icon fixes */
.schedule-icon img{
  width:100%;height:100%;object-fit:contain;display:block;
  filter:none!important;opacity:.88;
}
.wedding-day__ring{
  object-fit:contain!important;
  mix-blend-mode:multiply;
  filter:saturate(.88) contrast(.96);
}
.wedding-day::before,.wedding-day::after{
  opacity:.48!important;
  filter:saturate(.85) contrast(1.05);
}
.story-intro__botanical,.story-chapter::before,.story-chapter::after,
.moments::before,.moments::after,.visit__botanical,.venue-decoration{
  opacity:.34!important;
}

/* Gallery: stable viewport with one centred image at a time. */
.album-shell{
  width:min(100%,820px)!important;
  grid-template-columns:52px minmax(0,620px) 52px!important;
  justify-content:center!important;
  align-items:center!important;
  overflow:visible!important;
}
.album-track{
  display:flex!important;
  width:100%!important;
  max-width:620px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  scrollbar-width:none!important;
  margin:0!important;
  padding:0!important;
}
.album-track::-webkit-scrollbar{display:none!important}
.album-page{
  flex:0 0 100%!important;
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
  margin:0!important;
  scroll-snap-align:center!important;
  aspect-ratio:1/1!important;
  box-sizing:border-box!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:#111!important;
  padding:.7rem!important;
}
.album-page img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}
.gallery-dots{display:flex!important;justify-content:center!important;align-items:center!important}

@media(max-width:720px){
  .wedding-day::before{
    width:270px!important;height:270px!important;left:-105px!important;top:90px!important;opacity:.46!important;
  }
  .wedding-day::after{
    width:285px!important;height:285px!important;right:-118px!important;bottom:-42px!important;opacity:.46!important;
  }
  .schedule-row{grid-template-columns:58px 84px minmax(0,1fr)!important;column-gap:10px!important}
  .schedule-icon{width:54px!important;height:54px!important;padding:3px!important}
  .wedding-day__ring{width:245px!important;right:-62px!important;top:105px!important;opacity:.58!important}
  .album-shell{
    width:100%!important;
    grid-template-columns:46px minmax(0,76vw) 46px!important;
    gap:.25rem!important;
  }
  .album-track{width:76vw!important;max-width:76vw!important}
  .album-page{width:76vw!important;min-width:76vw!important;flex-basis:76vw!important;padding:.6rem!important}
  .gallery-arrow{position:relative!important;z-index:4!important}
  .moments::before,.moments::after{opacity:.38!important}
}

/* =========================================================
   RC9 — mobile-first final spacing and composition pass
   ========================================================= */

/* Opening / landing: retain approved botanical, slightly larger. */
.opening__botanical{
  width:clamp(90px,16vw,150px)!important;
  margin-block:clamp(.75rem,2vh,1.25rem)!important;
}

/* Hero / countdown: bring the typography into one cohesive group. */
.hero__content{
  gap:clamp(.45rem,1.2vh,.85rem)!important;
}
.hero__topline{margin-bottom:.15rem!important}
.hero__content h2{margin:.05rem 0!important;line-height:.88!important}
.hero__details{margin-top:.15rem!important;gap:.15rem!important}
.countdown{margin-top:.55rem!important}
.scroll-cue{margin-top:.35rem!important}

/* Wedding Day: shorter editorial timeline, larger icons and visible rings. */
.wedding-day{
  overflow:hidden!important;
}
.wedding-day__editorial{margin-top:clamp(1.4rem,3vw,2.2rem)!important}
.schedule{max-width:760px!important;margin-inline:auto!important}
.schedule-row{min-height:clamp(84px,9vw,108px)!important}
.schedule-icon{width:58px!important;height:58px!important}
.schedule-icon img{transform:scale(1.12)}
.wedding-day__ring{
  width:clamp(190px,25vw,330px)!important;
  top:clamp(76px,8vw,120px)!important;
  right:clamp(-75px,-4vw,-30px)!important;
  opacity:.82!important;
  z-index:0!important;
}
.wedding-day::before,.wedding-day::after{
  opacity:.62!important;
  width:clamp(230px,27vw,380px)!important;
  height:clamp(230px,27vw,380px)!important;
}

/* Venue: slightly tighter editorial rhythm without changing section height. */
.venue__content{gap:.65rem!important}
.venue__content h2{margin:.1rem 0 .45rem!important}
.venue__content>p{margin:0 0 .75rem!important;line-height:1.75!important}
.venue-facts{margin-top:.65rem!important}

/* Visit cards: smaller, but keep rounded silhouettes and page heights. */
.visit-grid{gap:clamp(1rem,2.3vw,1.65rem)!important}
.visit-card{
  min-height:clamp(290px,31vw,390px)!important;
  padding:clamp(2rem,4vw,3.2rem) clamp(1.4rem,3.3vw,2.6rem)!important;
}
.visit-card h3{margin:.55rem 0 1rem!important}
.visit-card p{line-height:1.75!important}

/* Gallery: use available vertical space, centre the controls, remove dead space. */
.moments{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding-top:clamp(5.4rem,9vh,7rem)!important;
  padding-bottom:clamp(4.8rem,8vh,6.5rem)!important;
}
.moments .section-heading{margin-bottom:clamp(1.25rem,3vh,2rem)!important}
.album-shell{
  width:min(100%,900px)!important;
  grid-template-columns:1fr!important;
  position:relative!important;
  display:grid!important;
}
.album-track{
  width:min(100%,620px)!important;
  max-width:620px!important;
  margin-inline:auto!important;
}
.album-page{
  width:100%!important;
  min-width:100%!important;
  flex-basis:100%!important;
}
.gallery-arrow{
  position:absolute!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  z-index:8!important;
  background:rgba(255,255,255,.58)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  border-color:rgba(32,55,45,.16)!important;
  box-shadow:0 8px 25px rgba(20,35,28,.08)!important;
}
.gallery-arrow.prev{left:clamp(.25rem,2vw,1.25rem)!important}
.gallery-arrow.next{right:clamp(.25rem,2vw,1.25rem)!important}
.gallery-dots{margin-top:1.05rem!important}

/* Story botanicals: corners only, never behind text. */
.story-intro__botanical,.story-botanical{display:none!important}
.story-intro,.story-chapter{position:relative!important;overflow:hidden!important}
.story-intro::before,.story-chapter::before{
  content:""!important;
  position:absolute!important;
  width:clamp(160px,25vw,310px)!important;
  height:clamp(160px,25vw,310px)!important;
  top:-55px!important;
  right:-65px!important;
  background:url('../assets/botanical/corners/corner-bottom-right.svg') center/contain no-repeat!important;
  opacity:.28!important;
  pointer-events:none!important;
}
.story-intro::after,.story-chapter::after{
  content:""!important;
  position:absolute!important;
  width:clamp(150px,23vw,290px)!important;
  height:clamp(150px,23vw,290px)!important;
  left:-58px!important;
  bottom:-55px!important;
  background:url('../assets/botanical/corners/corner-top-left.svg') center/contain no-repeat!important;
  opacity:.24!important;
  pointer-events:none!important;
}
.story-intro__copy,.story-chapter>div{position:relative!important;z-index:2!important}

/* RSVP and Gratitude: same full-page rhythm and centred alignment. */
.rsvp,.gratitude{display:grid!important;place-items:center!important}
.rsvp__inner{width:min(100%,980px)!important;text-align:center!important}
.rsvp .section-heading,.gratitude .section-heading,.gratitude__copy{text-align:center!important;margin-inline:auto!important}
.gratitude__copy{max-width:760px!important}

@media(max-width:720px){
  /* Hero — compact Korean/English groups and prevent countdown overlap. */
  .hero__content{
    width:calc(100% - 1.7rem)!important;
    padding:4.8rem .7rem 1.2rem!important;
    gap:.42rem!important;
  }
  .hero__topline{font-size:.61rem!important;letter-spacing:.08em!important}
  .hero__content h2{font-size:clamp(3.15rem,15vw,4.75rem)!important;line-height:.86!important}
  .hero__details{font-size:.68rem!important;line-height:1.35!important}
  .countdown{
    width:100%!important;
    gap:0!important;
    margin-top:.35rem!important;
  }
  .countdown>div{min-width:0!important;padding-inline:.15rem!important}
  .countdown strong{font-size:clamp(2rem,10.3vw,3rem)!important}
  .countdown small{font-size:.5rem!important;letter-spacing:.02em!important;white-space:nowrap!important}
  .scroll-cue{margin-top:.05rem!important;font-size:.56rem!important}
  body.lang-ko .hero__content{padding-top:4.55rem!important;gap:.34rem!important}
  body.lang-ko .hero__content h2{font-size:clamp(3.05rem,14.2vw,4.4rem)!important;line-height:.93!important}
  body.lang-ko .hero__topline{font-size:.59rem!important}
  body.lang-ko .hero__details{font-size:.64rem!important;line-height:1.28!important}

  /* Wedding Day — compact timeline with readable, side-by-side columns. */
  .wedding-day{padding:5.6rem .8rem 5.4rem!important}
  .wedding-day .section-heading{position:relative;z-index:2}
  .wedding-day__editorial{margin-top:1.2rem!important}
  .schedule{width:100%!important;padding-inline:.1rem!important}
  .schedule::before{left:31px!important;top:30px!important;bottom:30px!important}
  .schedule-row{
    grid-template-columns:64px 78px minmax(0,1fr)!important;
    min-height:96px!important;
    column-gap:7px!important;
  }
  .schedule-icon{width:60px!important;height:60px!important;padding:1px!important}
  .schedule-dot{left:24px!important}
  .schedule-row time{font-size:.9rem!important;white-space:nowrap!important}
  .schedule-row h3{font-size:clamp(1.06rem,4.4vw,1.3rem)!important;line-height:1.25!important}
  body.lang-ko .schedule-row{grid-template-columns:64px 80px minmax(0,1fr)!important}
  body.lang-ko .schedule-row h3{font-size:clamp(1.02rem,4.25vw,1.22rem)!important;word-break:keep-all!important}
  .wedding-day__ring{width:190px!important;top:74px!important;right:-48px!important;opacity:.84!important}
  .wedding-day::before{width:235px!important;height:235px!important;left:-90px!important;top:90px!important;opacity:.5!important}
  .wedding-day::after{width:245px!important;height:245px!important;right:-92px!important;bottom:-58px!important;opacity:.5!important}

  .venue__content{padding-top:2.4rem!important;padding-bottom:3rem!important}
  .venue__content>p{line-height:1.7!important;margin-bottom:.55rem!important}

  .visit-card{
    min-height:310px!important;
    padding:2.25rem 1.25rem!important;
    border-radius:100px 100px 22px 22px!important;
  }

  .moments{
    min-height:max(100svh,760px)!important;
    padding:5.3rem .65rem 4.6rem!important;
  }
  .moments .section-heading{margin-bottom:1.25rem!important}
  .moments .section-heading h2{font-size:clamp(2.5rem,11vw,3.6rem)!important}
  .album-shell{width:100%!important}
  .album-track{width:min(82vw,430px)!important;max-width:min(82vw,430px)!important}
  .album-page{aspect-ratio:1/1!important;padding:.55rem!important}
  .gallery-arrow{width:44px!important;height:44px!important}
  .gallery-arrow.prev{left:.15rem!important}
  .gallery-arrow.next{right:.15rem!important}

  .story-intro::before,.story-chapter::before{width:190px!important;height:190px!important;right:-70px!important;top:-50px!important;opacity:.25!important}
  .story-intro::after,.story-chapter::after{width:180px!important;height:180px!important;left:-70px!important;bottom:-55px!important;opacity:.22!important}

  .rsvp,.gratitude{min-height:max(112svh,860px)!important;padding:5.6rem 1rem!important}
  .rsvp__inner{min-height:82svh!important;padding:4rem 1.15rem!important}
  .gratitude__copy p{line-height:1.75!important}
}

/* RC11 refinements */
.hero__content h2{transform:translateY(-.45rem);margin-bottom:.2rem}
.hero__details{margin-top:.45rem}
.opening__botanical{width:clamp(190px,24vw,330px)!important}

.wedding-day{min-height:100svh;padding-top:clamp(7rem,10vw,10rem);padding-bottom:clamp(7rem,10vw,10rem);display:flex;flex-direction:column;justify-content:flex-start}
.wedding-day .section-heading{position:relative;z-index:2}
.wedding-day__editorial{width:min(760px,92%);margin:2.2rem auto 0}
.schedule{position:relative;padding:0}
.schedule::before{content:"";position:absolute;left:123px;top:32px;bottom:32px;width:1px;background:rgba(29,51,40,.28)}
.schedule-row{display:grid;grid-template-columns:62px 92px minmax(0,1fr);gap:1rem;align-items:center;padding:.52rem 0;position:relative}
.schedule-row .schedule-icon{width:52px;height:52px;display:grid;place-items:center;z-index:1;background:#f3eee5}
.schedule-row .schedule-icon img{width:44px;height:44px;object-fit:contain}
.schedule-row time{font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1;color:var(--forest);text-align:right;white-space:nowrap}
.schedule-row .schedule-dot{position:absolute;left:118px;width:11px;height:11px;border-radius:50%;background:var(--forest);border:3px solid #f3eee5;z-index:2}
.schedule-row>div{padding-left:1rem}
.schedule-row h3{margin:0;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.12}
.wedding-day__ring{width:min(300px,24vw);right:-10%;bottom:-25%;opacity:.16}
.wedding-day__botanical{width:min(280px,24vw);right:1%;top:2%;opacity:.2}

.visit{min-height:70vh;padding-top:clamp(6rem,8vw,8rem);padding-bottom:clamp(6rem,8vw,8rem)}
.visit-grid{align-items:stretch;gap:clamp(1rem,2vw,1.5rem)}
.visit-card{min-height:0!important;padding:clamp(1.4rem,2.2vw,2rem)!important}
.visit-card p{font-size:1.02rem;line-height:1.7}
.visit-card h3{margin-bottom:.7rem}

.moments{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center}
.moments__botanical{position:absolute;left:-3%;bottom:-6%;width:min(390px,34vw);opacity:.24;pointer-events:none}
.album-shell{width:min(1240px,100%);margin-top:2.5rem}
.gallery-arrow{align-self:center;background:transparent!important;border-color:rgba(255,255,255,.38)!important;position:relative;z-index:2}
.album-page img{height:min(68vh,680px)}

.story-intro,.story-chapter.story-landscape{display:flex;align-items:center;justify-content:center;text-align:center}
.story-chapter.story-landscape>div{margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center}
.story-chapter.story-landscape h3,.story-chapter.story-landscape p{margin-left:auto;margin-right:auto}
.story-intro__botanical{right:-10%;bottom:-22%;opacity:.18}
.story-botanical{right:-12%;bottom:-24%;opacity:.16}
.story-landscape--2 .story-botanical{left:-12%;top:-22%}

.account-grid--updated{grid-template-columns:repeat(2,minmax(0,1fr));max-width:850px}
.revolut-button{display:inline-flex;align-items:center;justify-content:center;margin-top:1.1rem;padding:.9rem 1.35rem;border:1px solid var(--forest);color:var(--forest);text-decoration:none;letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;transition:.25s ease}
.revolut-button:hover{background:var(--forest);color:white}
.rsvp__inner{padding-bottom:clamp(5rem,8vw,8rem)}
.rsvp-form-wrap{width:min(760px,100%);margin:3rem auto 0;background:white;border-radius:2px;overflow:hidden}
.rsvp-form-wrap iframe{display:block;width:100%;border:0;background:white}

@media(max-width:720px){
.hero__content h2{transform:translateY(-.65rem)}
.opening__botanical{width:210px!important}
.wedding-day{min-height:100svh;padding-top:7.5rem;padding-bottom:8rem}
.wedding-day__editorial{width:100%;margin-top:2rem}
.schedule::before{left:89px;top:27px;bottom:27px}
.schedule-row{grid-template-columns:46px 74px minmax(0,1fr);gap:.55rem;padding:.48rem 0}
.schedule-row .schedule-icon{width:42px;height:42px}
.schedule-row .schedule-icon img{width:37px;height:37px}
.schedule-row time{font-size:1.35rem;text-align:right}
.schedule-row .schedule-dot{left:84px;width:10px;height:10px}
.schedule-row>div{padding-left:.7rem}
.schedule-row h3{font-size:1.08rem}
.wedding-day__ring{width:180px;right:-55px;bottom:-80px}
.visit{min-height:85svh;padding-top:6rem;padding-bottom:6rem}
.visit-card{padding:1.55rem!important}
.visit-card p{font-size:1rem}
.moments{min-height:100svh;padding-top:6rem;padding-bottom:6rem}
.moments__botanical{width:230px;left:-65px;bottom:-35px}
.album-shell{margin-top:2rem}
.album-page img{height:60vh}
.story-intro__botanical,.story-botanical{width:230px;opacity:.13}
.account-grid--updated{grid-template-columns:1fr}
.rsvp-form-wrap{margin-top:2rem}
}

/* RC12 — final mobile composition corrections */
/* Hero: lift the names and tighten the divider/details/countdown group. */
.hero__content h2{transform:translateY(-.9rem)!important;margin-bottom:-.05rem!important}
.hero .fine-divider{margin-top:-.3rem!important;margin-bottom:.05rem!important}
.hero__details{margin-top:.05rem!important;margin-bottom:.05rem!important;gap:.06rem!important}
.hero .countdown{margin-top:.55rem!important}

/* Wedding Day: icon | line/dot | time | event. Icons remain fully transparent. */
.wedding-day{position:relative;overflow:hidden;background:#fffaf2!important}
.wedding-day__editorial{width:min(760px,94%)!important;margin-top:2rem!important}
.schedule{position:relative!important;padding:0!important}
.schedule::before{left:73px!important;top:25px!important;bottom:25px!important;background:#c9a45d!important;width:1px!important}
.schedule-row{
  display:grid!important;
  grid-template-columns:56px 20px 92px minmax(0,1fr)!important;
  column-gap:10px!important;
  align-items:center!important;
  min-height:78px!important;
  padding:.35rem 0!important;
}
.schedule-row .schedule-icon{
  grid-column:1!important;
  width:52px!important;height:52px!important;
  display:grid!important;place-items:center!important;
  background:transparent!important;
  border:0!important;box-shadow:none!important;
  filter:none!important;
}
.schedule-row .schedule-icon img{width:46px!important;height:46px!important;object-fit:contain!important;background:transparent!important;filter:none!important}
.schedule-row .schedule-dot{
  grid-column:2!important;
  position:relative!important;left:auto!important;
  justify-self:center!important;
  width:12px!important;height:12px!important;
  border:2px solid #c9a45d!important;
  background:#fffaf2!important;
  border-radius:50%!important;z-index:3!important;
}
.schedule-row time{grid-column:3!important;font-size:clamp(1.45rem,2.5vw,1.9rem)!important;text-align:left!important;white-space:nowrap!important}
.schedule-row>div{grid-column:4!important;padding-left:0!important}
.schedule-row h3{font-size:clamp(1.12rem,2vw,1.48rem)!important;line-height:1.15!important}
.wedding-day__ring{top:7.6rem!important;right:-3.5rem!important;bottom:auto!important;width:min(240px,25vw)!important;opacity:.78!important;z-index:1!important}
.wedding-day__botanical{top:auto!important;right:-3%!important;bottom:-4%!important;width:min(320px,31vw)!important;opacity:.26!important}
.wedding-day::before{content:""!important;position:absolute!important;left:-5%!important;top:18%!important;width:min(240px,24vw)!important;aspect-ratio:1!important;background:url('../assets/botanical/new/leaf-branch.svg') center/contain no-repeat!important;opacity:.16!important;pointer-events:none!important}

/* Venue: a clearly landscape image rather than a near-square block. */
.venue__image{min-height:0!important;height:auto!important;align-self:start!important}
.venue__image img{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/10!important;object-fit:cover!important;object-position:center!important;border-radius:0 110px 0 0!important}

/* Gallery: each slide occupies the full viewport, with the whole photograph visible. */
.moments{overflow:hidden!important;padding-bottom:7rem!important}
.album-shell{position:relative!important;display:grid!important;grid-template-columns:52px minmax(0,1fr) 52px!important;width:min(1080px,96%)!important;gap:.65rem!important;align-items:center!important}
.album-track{display:flex!important;width:100%!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;gap:0!important}
.album-page{flex:0 0 100%!important;width:100%!important;aspect-ratio:4/3!important;padding:.65rem!important;margin:0!important;background:#f8f4ec!important;scroll-snap-align:start!important;box-sizing:border-box!important}
.album-page img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;background:#f8f4ec!important}
.gallery-arrow{position:relative!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important;align-self:center!important;background:transparent!important;color:white!important;border-color:rgba(255,255,255,.42)!important}
.moments__botanical{left:-2rem!important;bottom:-1rem!important;width:min(300px,28vw)!important;height:auto!important;opacity:.24!important;object-fit:contain!important;object-position:left bottom!important}

/* Gratitude: compact named cards for bride and groom. */
.gratitude{padding-top:6rem!important;padding-bottom:6rem!important;min-height:auto!important}
.gratitude__copy{margin-bottom:1.5rem!important}
.account-grid--updated{width:min(760px,94%)!important;max-width:760px!important;gap:1.2rem!important}
.account-card{min-height:0!important;padding:2rem 1.35rem!important;border-radius:80px 80px 18px 18px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
.account-card .account-person{font-size:.72rem!important;letter-spacing:.14em!important;text-transform:uppercase!important;margin:0 0 1rem!important}
.account-card h3{font-size:clamp(2rem,4vw,3rem)!important;margin:.1rem 0 .45rem!important}
.account-card strong{font-size:clamp(1.15rem,2.5vw,1.55rem)!important}
.account-contact{margin-top:.55rem!important}
.revolut-button{margin-top:1.1rem!important;padding:.7rem 1.05rem!important}

@media(max-width:720px){
  .hero__content h2{transform:translateY(-.92rem)!important}
  .hero .fine-divider{margin-top:-.42rem!important;margin-bottom:0!important}
  .hero__details{margin-top:0!important}
  .hero .countdown{margin-top:.35rem!important}

  .wedding-day{padding-top:6.8rem!important;padding-bottom:7rem!important}
  .wedding-day__editorial{width:100%!important;margin-top:1.65rem!important}
  .schedule::before{left:51px!important;top:23px!important;bottom:23px!important}
  .schedule-row{grid-template-columns:40px 14px 67px minmax(0,1fr)!important;column-gap:6px!important;min-height:72px!important;padding:.28rem 0!important}
  .schedule-row .schedule-icon{width:38px!important;height:38px!important}
  .schedule-row .schedule-icon img{width:36px!important;height:36px!important}
  .schedule-row .schedule-dot{width:10px!important;height:10px!important}
  .schedule-row time{font-size:1.22rem!important}
  .schedule-row h3{font-size:1.02rem!important}
  .wedding-day__ring{top:7.9rem!important;right:-38px!important;width:145px!important;opacity:.75!important}
  .wedding-day__botanical{width:210px!important;right:-60px!important;bottom:-35px!important}
  .wedding-day::before{width:150px!important;left:-58px!important;top:30%!important}

  .venue__image img{aspect-ratio:16/10!important;border-radius:0 58px 0 0!important}

  .moments{min-height:100svh!important;padding:6rem 0 6.5rem!important}
  .album-shell{grid-template-columns:42px minmax(0,1fr) 42px!important;width:100%!important;gap:0!important;padding:0 .2rem!important}
  .album-page{aspect-ratio:3/4!important;padding:.5rem!important}
  .gallery-arrow{display:grid!important;width:40px!important;height:40px!important;font-size:1.15rem!important;z-index:4!important}
  .moments__botanical{width:190px!important;left:-35px!important;bottom:-5px!important}

  .gratitude{min-height:auto!important;padding:5.5rem .85rem 6rem!important}
  .account-grid--updated{grid-template-columns:1fr!important;width:100%!important;gap:1rem!important}
  .account-card{padding:1.7rem 1rem!important;border-radius:64px 64px 16px 16px!important}
  .account-card h3{font-size:2.25rem!important}
}


/* RC13 — six targeted corrections only */
@media (min-width: 721px){
  body.lang-ko .opening__content{transform:translateY(-1.1rem)!important}
  body.lang-ko .opening h1{margin-top:18px!important;margin-bottom:10px!important;line-height:.72!important}
  body.lang-ko .opening h1 em{display:block;margin:-.08em 0!important}
  body.lang-ko .opening__botanical{margin-top:2px!important;margin-bottom:18px!important}
}

/* Hero names: reduce only the gap between the first name, ampersand and second name. */
.hero__content h2{line-height:.76!important}
.hero__content h2 em{display:block;margin:-.12em 0 -.08em!important;line-height:.75!important}
body.lang-ko .hero__content h2{line-height:.92!important}
body.lang-ko .hero__content h2 em{margin:-.2em 0 -.15em!important}

/* Wedding Day: line sits immediately right of icons; dots are centred directly on it. */
.schedule::before{left:69px!important;z-index:1!important}
.schedule-row{grid-template-columns:54px 18px 88px minmax(0,1fr)!important;column-gap:8px!important}
.schedule-row .schedule-dot{grid-column:2!important;justify-self:center!important;position:relative!important;z-index:3!important}
.schedule-row time{font-size:clamp(1.25rem,2.2vw,1.7rem)!important}
.schedule-row .schedule-icon,.schedule-row .schedule-icon img{background:transparent!important}

/* Venue: use a genuine wide crop. */
.venue__image{aspect-ratio:16/9!important;min-height:0!important;overflow:hidden!important}
.venue__image img{width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center 76%!important;border-radius:0 110px 0 0!important}

/* Gallery: one complete image at a time, no neighbouring slide visible. */
.album-shell{position:relative!important;display:block!important;width:min(760px,92%)!important;margin-inline:auto!important}
.album-track{display:block!important;overflow:hidden!important;width:100%!important;max-width:100%!important}
.album-page{display:none!important;width:100%!important;aspect-ratio:auto!important;margin:0!important;padding:.6rem!important;background:#f8f4ec!important}
.album-page.is-active{display:block!important}
.album-page img{display:block!important;width:100%!important;height:min(68vh,720px)!important;object-fit:contain!important;background:#f8f4ec!important}
.gallery-arrow{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;z-index:5!important;background:rgba(255,255,255,.34)!important;color:var(--forest)!important;border-color:rgba(29,51,40,.18)!important}
.gallery-arrow.prev{left:-22px!important}.gallery-arrow.next{right:-22px!important}
.moments__botanical{content:url('../assets/botanical/new/blue-floral-corner.svg')!important;width:min(290px,28vw)!important;left:-20px!important;bottom:-10px!important;opacity:.32!important}

/* Closing page: restore the smaller composition so faces remain unobstructed. */
.closing__content{top:2.8rem!important;margin-top:0!important;width:min(calc(100% - 2rem),680px)!important;padding:.6rem 1rem!important}
.closing__content h2{font-size:clamp(2.7rem,5.5vw,5rem)!important;line-height:1.05!important;margin:.35rem 0!important}
.closing__content p:not(.eyebrow){font-size:clamp(.9rem,1.4vw,1.05rem)!important;line-height:1.65!important;margin:.25rem auto!important}
.closing__content small{margin-top:.45rem!important}

@media(max-width:720px){
  .hero__content h2{line-height:.78!important}
  .hero__content h2 em{margin:-.18em 0 -.13em!important}
  body.lang-ko .hero__content h2{line-height:.9!important}
  body.lang-ko .hero__content h2 em{margin:-.24em 0 -.17em!important}
  .schedule::before{left:47px!important}
  .schedule-row{grid-template-columns:38px 14px 62px minmax(0,1fr)!important;column-gap:5px!important}
  .schedule-row time{font-size:1.02rem!important}
  .schedule-row h3{font-size:.98rem!important}
  .venue__image{aspect-ratio:16/9!important}
  .venue__image img{border-radius:0 58px 0 0!important;object-position:center 76%!important}
  .album-shell{width:86%!important}
  .album-page img{height:min(62vh,560px)!important}
  .gallery-arrow{display:grid!important;width:40px!important;height:40px!important}
  .gallery-arrow.prev{left:-20px!important}.gallery-arrow.next{right:-20px!important}
  .moments__botanical{width:205px!important;left:-38px!important;bottom:-8px!important}
  .closing__content,body.lang-ko .closing__content{top:1.6rem!important;margin-top:0!important;width:calc(100% - 1.5rem)!important}
  .closing__content h2,body.lang-ko .closing h2{font-size:clamp(2.15rem,9.5vw,3rem)!important;line-height:1.15!important;margin:.25rem 0!important}
  .closing__content p:not(.eyebrow){font-size:.9rem!important;line-height:1.55!important;max-width:300px!important;margin:.2rem auto!important}
}

/* RC14 — rebuild the failing components; no unrelated design changes. */
/* Opening and hero: restore deliberate separation without the oversized gap. */
.opening h1,
body.lang-ko .opening h1{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:clamp(.2rem,.8vw,.55rem)!important;
  line-height:.96!important;
  margin:clamp(.8rem,2vh,1.3rem) 0 clamp(1rem,2.4vh,1.65rem)!important;
}
.opening h1 em,
body.lang-ko .opening h1 em{
  display:block!important;
  margin:0!important;
  line-height:.8!important;
  font-size:.48em!important;
}
body.lang-ko .opening__content{transform:none!important}

.hero__content h2,
body.lang-ko .hero__content h2{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:clamp(.05rem,.3vw,.22rem)!important;
  transform:translateY(-.35rem)!important;
  line-height:.94!important;
  margin:.05rem 0 .15rem!important;
}
.hero__content h2 em,
body.lang-ko .hero__content h2 em{
  display:block!important;
  margin:0!important;
  line-height:.7!important;
  font-size:.48em!important;
}

/* Wedding Day: clean icon | rail | time + event structure. */
.wedding-day__editorial{width:min(820px,94%)!important}
.schedule{position:relative!important;padding:0!important}
.schedule::before{
  left:72px!important;
  top:28px!important;
  bottom:28px!important;
  width:1px!important;
  background:#c9a45d!important;
  z-index:0!important;
}
.schedule-row{
  display:grid!important;
  grid-template-columns:56px 32px minmax(0,1fr)!important;
  column-gap:0!important;
  align-items:center!important;
  min-height:82px!important;
  padding:.35rem 0!important;
}
.schedule-row .schedule-icon{
  grid-column:1!important;
  width:50px!important;
  height:50px!important;
  background:transparent!important;
}
.schedule-row .schedule-icon img{width:44px!important;height:44px!important;background:transparent!important}
.schedule-row .schedule-dot{
  grid-column:2!important;
  position:relative!important;
  left:auto!important;
  justify-self:center!important;
  width:12px!important;
  height:12px!important;
  margin:0!important;
  border:2px solid #c9a45d!important;
  background:#fffaf2!important;
  z-index:2!important;
}
.schedule-row time{
  grid-column:3!important;
  grid-row:1!important;
  justify-self:start!important;
  width:100px!important;
  padding:0!important;
  text-align:left!important;
  font-size:clamp(1.2rem,2vw,1.55rem)!important;
}
.schedule-row>div{
  grid-column:3!important;
  grid-row:1!important;
  padding:0 0 0 118px!important;
  min-width:0!important;
}
.schedule-row h3{
  margin:0!important;
  font-size:clamp(1.12rem,1.8vw,1.4rem)!important;
  line-height:1.22!important;
  word-break:keep-all!important;
}

/* Venue: retain the wide crop but make the frame slightly taller. */
.venue__image{aspect-ratio:16/10!important}
.venue__image img{object-position:center 72%!important}

/* Gallery: completely new single-image viewer, no horizontal track or neighbouring slides. */
.moments{overflow:hidden!important}
.gallery-viewer{
  position:relative!important;
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) 52px!important;
  align-items:center!important;
  gap:.75rem!important;
  width:min(860px,94%)!important;
  margin:2.4rem auto 0!important;
}
.gallery-frame{
  grid-column:2!important;
  margin:0!important;
  width:100%!important;
  height:min(68vh,690px)!important;
  padding:.65rem!important;
  background:#f8f4ec!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.gallery-frame img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#f8f4ec!important;
}
.gallery-viewer .gallery-arrow{
  position:static!important;
  transform:none!important;
  display:grid!important;
  place-items:center!important;
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.38)!important;
}
.gallery-viewer .gallery-arrow.prev{grid-column:1!important}
.gallery-viewer .gallery-arrow.next{grid-column:3!important}
.moments__botanical{
  content:normal!important;
  width:min(320px,30vw)!important;
  left:-26px!important;
  bottom:-18px!important;
  opacity:.34!important;
  object-fit:contain!important;
}

/* Story panels: shorten slightly, while retaining centred content. */
.story-intro,
.story-chapter,
.story-chapter.story-landscape{min-height:92svh!important}

@media(max-width:720px){
  .opening h1,body.lang-ko .opening h1{gap:.12rem!important;line-height:.98!important;margin:.65rem 0 1rem!important}
  .hero__content h2,body.lang-ko .hero__content h2{gap:0!important;line-height:.96!important;transform:translateY(-.3rem)!important}
  .hero__content h2 em,body.lang-ko .hero__content h2 em{font-size:.43em!important;line-height:.72!important}

  .wedding-day__editorial{width:100%!important}
  .schedule::before{left:49px!important;top:24px!important;bottom:24px!important}
  .schedule-row{grid-template-columns:38px 22px minmax(0,1fr)!important;min-height:72px!important;padding:.28rem 0!important}
  .schedule-row .schedule-icon{width:38px!important;height:38px!important}
  .schedule-row .schedule-icon img{width:35px!important;height:35px!important}
  .schedule-row .schedule-dot{width:10px!important;height:10px!important}
  .schedule-row time{width:68px!important;font-size:.94rem!important;letter-spacing:-.02em!important}
  .schedule-row>div{padding-left:76px!important}
  .schedule-row h3{font-size:.98rem!important;line-height:1.2!important}
  body.lang-ko .schedule-row h3{font-size:.94rem!important;line-height:1.24!important}

  .venue__image{aspect-ratio:16/10!important}
  .venue__image img{object-position:center 72%!important}

  .gallery-viewer{grid-template-columns:40px minmax(0,1fr) 40px!important;gap:0!important;width:100%!important;margin-top:1.8rem!important;padding:0 .2rem!important}
  .gallery-frame{height:min(61vh,545px)!important;padding:.5rem!important}
  .gallery-viewer .gallery-arrow{width:40px!important;height:40px!important}
  .moments__botanical{width:215px!important;left:-34px!important;bottom:-10px!important}

  .story-intro,.story-chapter,.story-chapter.story-landscape{min-height:92svh!important;padding-block:6.6rem!important}
  body.lang-ko .story-chapter{padding-block:7.4rem!important}
}


/* RC15 — use supplied finished Wedding Day artwork; restore only requested spacing. */
.wedding-day-static{
  min-height:100svh!important;
  padding:clamp(5.5rem,8vw,8rem) var(--page-gutter)!important;
  display:grid!important;
  place-items:center!important;
  background:#fbfaf6!important;
  overflow:hidden!important;
}
.wedding-day-static::before,.wedding-day-static::after{display:none!important}
.wedding-day-static__frame{
  width:min(720px,100%)!important;
  margin:auto!important;
  display:grid!important;
  place-items:center!important;
}
.wedding-day-static__image{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:calc(100svh - 8rem)!important;
  object-fit:contain!important;
}
.wedding-day-static__image--ko{display:none!important}
body.lang-ko .wedding-day-static__image--en{display:none!important}
body.lang-ko .wedding-day-static__image--ko{display:block!important}

/* Korean opening: a little more breathing room around &, without lowering the group. */
body.lang-ko .opening h1{gap:.34rem!important;transform:translateY(-.45rem)!important}
body.lang-ko .opening h1 em{margin:.08rem 0!important}

/* Korean hero/countdown: separate the names from &, and lift the complete title away from countdown. */
body.lang-ko .hero__content h2{
  gap:.18rem!important;
  transform:translateY(-1.15rem)!important;
  margin-bottom:.05rem!important;
}
body.lang-ko .hero__content h2 em{margin:.05rem 0!important}
body.lang-ko .hero .fine-divider{margin-top:-.55rem!important;margin-bottom:.2rem!important}
body.lang-ko .hero__details{margin-top:.1rem!important}
body.lang-ko .hero .countdown{margin-top:.7rem!important}

/* Venue: clean original photo, genuinely landscape, with more depth below the building. */
.venue__image{
  aspect-ratio:16/10!important;
  overflow:hidden!important;
  background:#eef1e8!important;
}
.venue__image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center 64%!important;
  border-radius:0 110px 0 0!important;
}

/* Story panels: restore a little height, midway between RC13 and RC14. */
.story-intro,.story-chapter,.story-chapter.story-landscape{
  min-height:96svh!important;
}

@media(max-width:720px){
  .wedding-day-static{padding:5.1rem .5rem 5.8rem!important;min-height:100svh!important}
  .wedding-day-static__frame{width:min(100%,430px)!important}
  .wedding-day-static__image{max-height:none!important;width:100%!important}
  body.lang-ko .opening h1{gap:.28rem!important;transform:translateY(-.35rem)!important}
  body.lang-ko .opening h1 em{margin:.06rem 0!important}
  body.lang-ko .hero__content h2{gap:.14rem!important;transform:translateY(-1rem)!important}
  body.lang-ko .hero__content h2 em{margin:.04rem 0!important}
  body.lang-ko .hero .fine-divider{margin-top:-.48rem!important;margin-bottom:.16rem!important}
  body.lang-ko .hero .countdown{margin-top:.62rem!important}
  .venue__image{aspect-ratio:16/10!important}
  .venue__image img{object-position:center 64%!important;border-radius:0 58px 0 0!important}
  .story-intro,.story-chapter,.story-chapter.story-landscape{min-height:96svh!important}
}

/* RC16 FINAL — only the requested finishing adjustments. */
/* Opening screen: bring the title, botanical and controls into one balanced group. */
.opening__content{padding-top:20px!important;padding-bottom:20px!important}
.opening h1{margin-bottom:.35rem!important}
.opening__botanical{
  width:clamp(170px,20vw,250px)!important;
  margin:.15rem auto .8rem!important;
}
.language-choice{margin-top:0!important}
.opening__button{margin-top:.55rem!important}
body.lang-ko .opening h1{gap:.38rem!important;transform:translateY(-.2rem)!important}
body.lang-ko .opening h1 em{margin:.1rem 0!important}

/* Countdown hero: remove the duplicate topline and final discovery cue; keep date + Marior only. */
.hero__topline,.scroll-cue{display:none!important}
.hero__content{padding-bottom:clamp(2.2rem,5vh,3.4rem)!important}
.hero__content h2{transform:translateY(-.2rem)!important}
body.lang-ko .hero__content h2{gap:.3rem!important;transform:translateY(-.35rem)!important}
body.lang-ko .hero__content h2 em{margin:.11rem 0!important}
.hero__details{margin-top:.35rem!important}
.hero .countdown{margin-top:1rem!important}

/* Wedding Day: transparent supplied artwork, scaled to fill the available page. */
.wedding-day-static{
  min-height:100svh!important;
  padding:clamp(4.7rem,7vh,6rem) 1rem 2rem!important;
  background:#fbfaf6!important;
}
.wedding-day-static__frame{
  width:min(92vw,620px)!important;
  height:calc(100svh - clamp(6.7rem,10vh,8rem))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.wedding-day-static__image{
  width:auto!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  filter:none!important;
}

/* Every story panel uses the same height as the correctly proportioned third panel. */
.story-intro,.story-chapter,.story-chapter.story-landscape{
  min-height:100svh!important;
}

/* Closing page: lower the copy slightly without changing its size. */
.closing__content,
body.lang-ko .closing__content{
  top:4.2rem!important;
  margin-top:0!important;
}

@media(max-width:720px){
  .opening__content{padding-top:12px!important;padding-bottom:12px!important}
  .opening h1{margin-bottom:.2rem!important}
  .opening__botanical{width:150px!important;margin:.05rem auto .65rem!important}
  .opening__button{margin-top:.45rem!important}
  body.lang-ko .opening h1{gap:.32rem!important;transform:translateY(-.1rem)!important}
  body.lang-ko .opening h1 em{margin:.09rem 0!important}

  .hero__content{padding-bottom:1.2rem!important}
  .hero__content h2{transform:translateY(-.05rem)!important}
  body.lang-ko .hero__content h2{gap:.24rem!important;transform:translateY(-.15rem)!important}
  body.lang-ko .hero__content h2 em{margin:.09rem 0!important}
  .hero__details{margin-top:.3rem!important}
  .hero .countdown{margin-top:.8rem!important}

  .wedding-day-static{padding:4.2rem .35rem 1.25rem!important}
  .wedding-day-static__frame{
    width:min(96vw,520px)!important;
    height:calc(100svh - 5.45rem)!important;
  }
  .wedding-day-static__image{height:100%!important;width:auto!important}

  .story-intro,.story-chapter,.story-chapter.story-landscape{min-height:100svh!important}

  .closing__content,
  body.lang-ko .closing__content{top:3rem!important}
}

/* =========================================================
   RC17 — approved botanical refresh and locked page sizing
   ========================================================= */
:root{--rc17-page-height:100svh}

/* Wedding Day exactly matches the first Our Story page height. */
.wedding-day-static,
.story-intro,
.story-chapter,
.story-chapter.story-landscape{
  min-height:var(--rc17-page-height)!important;
  height:auto!important;
  box-sizing:border-box!important;
}
.wedding-day-static{
  position:relative!important;
  isolation:isolate!important;
}
.wedding-day-static::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  width:clamp(180px,23vw,340px)!important;
  height:clamp(180px,23vw,340px)!important;
  right:clamp(-75px,-4vw,-25px)!important;
  bottom:clamp(-75px,-5vw,-25px)!important;
  background:url('../assets/botanical/rc17/succulent-arrangement.svg') center/contain no-repeat!important;
  opacity:.18!important;
  pointer-events:none!important;
  z-index:0!important;
}
.wedding-day-static__frame{position:relative!important;z-index:1!important}

/* New approved botanical family: consistent, subtle and clear of copy. */
.opening__botanical{opacity:.92!important;object-fit:contain!important}
.details-intro .botanical-corner{opacity:.18!important}
.details-intro .botanical-divider{content:url('../assets/botanical/rc17/curved-branch.svg')!important;opacity:.18!important}

.marior-welcome,.venue,.visit,.moments,.story-intro,.story-chapter,.rsvp,.gratitude,.closing{
  position:relative!important;
  overflow:hidden!important;
}
.marior-welcome::after{
  content:"";position:absolute;right:-45px;bottom:-55px;width:clamp(180px,22vw,310px);height:clamp(180px,22vw,310px);
  background:url('../assets/botanical/rc17/curved-branch.svg') center/contain no-repeat;opacity:.16;pointer-events:none;z-index:2
}
.venue-decoration{content:url('../assets/botanical/rc17/curved-branch.svg')!important;opacity:.18!important}
.visit__botanical--one{content:url('../assets/botanical/rc17/eucalyptus-tall.svg')!important;opacity:.16!important}
.visit__botanical--two{content:url('../assets/botanical/rc17/curved-branch.svg')!important;opacity:.16!important}
.moments__botanical{content:url('../assets/botanical/rc17/floral-arrangement.svg')!important;opacity:.28!important}

/* Story botanicals alternate by panel and remain outside the text area. */
.story-intro__botanical,.story-botanical{display:none!important}
.story-intro::before,.story-chapter::before{
  background-image:url('../assets/botanical/rc17/curved-branch.svg')!important;
  opacity:.17!important;
}
.story-intro::after,.story-chapter::after{
  background-image:url('../assets/botanical/rc17/eucalyptus-tall.svg')!important;
  opacity:.14!important;
}
.story-chapter:nth-of-type(even)::before{background-image:url('../assets/botanical/rc17/succulent-arrangement.svg')!important;opacity:.13!important}

.gratitude__botanical--left{content:url('../assets/botanical/rc17/succulent-arrangement.svg')!important;opacity:.16!important}
.gratitude__botanical--right{content:url('../assets/botanical/rc17/curved-branch.svg')!important;opacity:.16!important}
.rsvp::after{
  content:"";position:absolute;left:-60px;bottom:-70px;width:clamp(190px,24vw,340px);height:clamp(190px,24vw,340px);
  background:url('../assets/botanical/rc17/floral-arrangement.svg') center/contain no-repeat;opacity:.13;pointer-events:none
}
.closing::after{
  content:"";position:absolute;right:-55px;top:-55px;width:clamp(180px,22vw,320px);height:clamp(180px,22vw,320px);
  background:url('../assets/botanical/rc17/floral-arrangement.svg') center/contain no-repeat;opacity:.15;pointer-events:none;z-index:1
}
.closing__content{z-index:2!important}

@media(max-width:720px){
  .wedding-day-static::after{width:210px!important;height:210px!important;right:-72px!important;bottom:-55px!important;opacity:.15!important}
  .marior-welcome::after{width:190px;height:190px;right:-65px;bottom:-60px;opacity:.14}
  .rsvp::after{width:210px;height:210px;left:-75px;bottom:-70px;opacity:.11}
  .closing::after{width:205px;height:205px;right:-75px;top:-65px;opacity:.13}
}


/* =========================================================
   RC18 — selective botanical art-direction pass
   ========================================================= */
/* Restore the original invitation divider on the opening screen. */
.opening__botanical{
  content:url('../assets/botanical/opening-botanical.png')!important;
  width:clamp(165px,19vw,235px)!important;
  height:auto!important;
  opacity:.92!important;
  object-fit:contain!important;
}

/* Before We Celebrate: turn the branch into the corner rather than pointing into the portraits. */
.details-intro .botanical-corner--left{
  content:url('../assets/botanical/rc17/curved-branch.svg')!important;
  width:clamp(170px,22vw,300px)!important;
  left:-78px!important;
  top:38px!important;
  transform:rotate(42deg)!important;
  transform-origin:center!important;
  opacity:.16!important;
}
.details-intro .botanical-divider{display:none!important}

/* Wedding Day: no extra mobile botanical. A soft photographic accent appears on desktop only. */
.wedding-day-static::after{display:none!important;content:none!important}
.wedding-day-static::before{
  content:"";
  display:block;
  position:absolute;
  width:clamp(250px,28vw,470px);
  aspect-ratio:1/1;
  right:clamp(1rem,5vw,7rem);
  top:50%;
  transform:translateY(-50%);
  background:url('../assets/images/wedding-rings-gold.png') center/contain no-repeat;
  opacity:.11;
  filter:blur(.2px);
  pointer-events:none;
  z-index:0;
}
.wedding-day-static__frame{z-index:1!important}

/* These pages are deliberately clean: the photograph or form is the focal point. */
.marior-welcome::before,.marior-welcome::after,
.rsvp::before,.rsvp::after,
.closing::before,.closing::after{
  display:none!important;
  content:none!important;
  background:none!important;
}

/* Story botanicals: compose each page individually instead of mirroring one rule. */
.story-intro::before{
  width:clamp(190px,24vw,330px)!important;
  height:clamp(190px,24vw,330px)!important;
  right:-72px!important;left:auto!important;
  top:35px!important;bottom:auto!important;
  transform:rotate(-26deg)!important;
  opacity:.13!important;
}
.story-intro::after{
  width:clamp(150px,19vw,260px)!important;
  height:clamp(150px,19vw,260px)!important;
  left:-68px!important;right:auto!important;
  bottom:-55px!important;top:auto!important;
  transform:rotate(24deg)!important;
  opacity:.11!important;
}
.story-chapter::before,.story-chapter::after{pointer-events:none!important}
.story-chapter:nth-of-type(1)::before{
  width:260px!important;height:260px!important;left:-95px!important;right:auto!important;bottom:-80px!important;top:auto!important;
  transform:rotate(27deg)!important;opacity:.13!important;
}
.story-chapter:nth-of-type(1)::after{
  width:220px!important;height:220px!important;right:-72px!important;left:auto!important;top:-70px!important;bottom:auto!important;
  transform:rotate(-22deg)!important;opacity:.10!important;
}
.story-chapter:nth-of-type(2)::before{
  width:300px!important;height:300px!important;left:-105px!important;right:auto!important;top:-95px!important;bottom:auto!important;
  transform:rotate(18deg)!important;opacity:.13!important;
}
.story-chapter:nth-of-type(2)::after{display:none!important}
.story-chapter:nth-of-type(3)::before{
  width:245px!important;height:245px!important;right:-82px!important;left:auto!important;top:-60px!important;bottom:auto!important;
  transform:rotate(-31deg)!important;opacity:.12!important;
}
.story-chapter:nth-of-type(3)::after{
  width:175px!important;height:175px!important;left:-68px!important;right:auto!important;bottom:-70px!important;top:auto!important;
  transform:rotate(20deg)!important;opacity:.09!important;
}
.story-chapter:nth-of-type(4)::before{
  width:285px!important;height:285px!important;left:-105px!important;right:auto!important;top:-92px!important;bottom:auto!important;
  transform:rotate(16deg)!important;opacity:.12!important;
}
.story-chapter:nth-of-type(4)::after{display:none!important}
.story-chapter:nth-of-type(5)::before{
  width:245px!important;height:245px!important;right:-88px!important;left:auto!important;top:-70px!important;bottom:auto!important;
  transform:rotate(-28deg)!important;opacity:.12!important;
}
.story-chapter:nth-of-type(5)::after{
  width:155px!important;height:155px!important;left:-55px!important;right:auto!important;bottom:-55px!important;top:auto!important;
  transform:rotate(19deg)!important;opacity:.09!important;
}
.story-chapter:nth-of-type(6)::before{
  width:290px!important;height:290px!important;left:-110px!important;right:auto!important;top:-100px!important;bottom:auto!important;
  transform:rotate(15deg)!important;opacity:.12!important;
}
.story-chapter:nth-of-type(6)::after{display:none!important}

@media(max-width:900px){
  .wedding-day-static::before{display:none!important}
}
@media(max-width:720px){
  .opening__botanical{width:145px!important}
  .details-intro .botanical-corner--left{
    width:175px!important;left:-72px!important;top:20px!important;transform:rotate(46deg)!important;opacity:.14!important;
  }
  .story-intro::before{width:210px!important;height:210px!important;right:-90px!important;top:50px!important}
  .story-intro::after{width:165px!important;height:165px!important;left:-78px!important;bottom:-48px!important}
  .story-chapter:nth-of-type(n)::before{max-width:220px!important;max-height:220px!important}
  .story-chapter:nth-of-type(n)::after{max-width:160px!important;max-height:160px!important}
}

/* =========================================================
   RC19 — desktop wedding portrait + curated botanical pass
   ========================================================= */

/* Exact original photograph: desktop only. No AI alteration. */
.wedding-day-desktop-photo{display:none}
.wedding-day-static::before,.wedding-day-static::after{display:none!important;content:none!important}

@media (min-width:901px){
  .wedding-day-static{
    display:grid!important;
    grid-template-columns:minmax(0,44%) minmax(0,56%)!important;
    align-items:stretch!important;
    min-height:100vh!important;
    padding:0!important;
    background:var(--cream)!important;
  }
  .wedding-day-desktop-photo{
    display:block!important;
    min-width:0;
    height:100%;
    min-height:100vh;
    overflow:hidden;
    background:#eef1e9;
  }
  .wedding-day-desktop-photo img{
    display:block;
    width:100%;
    height:100%;
    min-height:100vh;
    object-fit:cover;
    object-position:52% center;
  }
  .wedding-day-static__frame{
    width:100%!important;
    max-width:none!important;
    min-height:100vh!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:clamp(3.8rem,5vw,6.5rem) clamp(2rem,4vw,5rem)!important;
    box-sizing:border-box!important;
  }
  .wedding-day-static__image{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:calc(100vh - 8rem)!important;
    object-fit:contain!important;
  }
}

@media (max-width:900px){
  .wedding-day-desktop-photo{display:none!important}
  .wedding-day-static{display:block!important}
}

/* Curated botanical placement: fewer, softer, and kept outside copy. */
.details-intro .botanical-corner--left{
  content:url('../assets/botanical/new/blue-floral-sprig.svg')!important;
  width:clamp(150px,18vw,245px)!important;
  left:-52px!important;
  top:26px!important;
  transform:rotate(20deg)!important;
  opacity:.18!important;
}

/* Venue / welcome / RSVP / closing remain deliberately clean. */
.marior-welcome::before,.marior-welcome::after,
.venue-decoration,
.rsvp::before,.rsvp::after,
.closing::before,.closing::after{
  display:none!important;
  content:none!important;
  background:none!important;
}

.visit__botanical--one{
  content:url('../assets/botanical/new/eucalyptus-cluster.svg')!important;
  width:clamp(190px,22vw,320px)!important;
  left:-72px!important;
  top:14px!important;
  transform:rotate(-16deg)!important;
  opacity:.12!important;
}
.visit__botanical--two{
  content:url('../assets/botanical/new/leaf-branch.svg')!important;
  width:clamp(175px,20vw,285px)!important;
  right:-62px!important;
  bottom:18px!important;
  transform:rotate(168deg)!important;
  opacity:.11!important;
}

.moments__botanical{
  content:url('../assets/botanical/new/blue-floral-corner.svg')!important;
  left:-22px!important;
  bottom:-12px!important;
  width:min(300px,30vw)!important;
  opacity:.30!important;
}

/* Story pages use one corner accent each, alternating direction. */
.story-intro::before,.story-intro::after,.story-chapter::before,.story-chapter::after{
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  pointer-events:none!important;
}
.story-intro::before{
  background-image:url('../assets/botanical/new/eucalyptus-cluster.svg')!important;
  width:270px!important;height:270px!important;
  right:-90px!important;top:20px!important;left:auto!important;bottom:auto!important;
  transform:rotate(-22deg)!important;opacity:.11!important;
}
.story-intro::after{display:none!important}
.story-chapter::after{display:none!important}
.story-chapter::before{
  background-image:url('../assets/botanical/new/leaf-branch.svg')!important;
  width:230px!important;height:230px!important;
  opacity:.11!important;
}
.story-chapter:nth-of-type(odd)::before{
  left:-82px!important;right:auto!important;top:auto!important;bottom:-58px!important;
  transform:rotate(28deg)!important;
}
.story-chapter:nth-of-type(even)::before{
  right:-82px!important;left:auto!important;top:-62px!important;bottom:auto!important;
  transform:rotate(-26deg)!important;
}
.story-chapter:nth-of-type(3)::before,
.story-chapter:nth-of-type(6)::before{
  background-image:url('../assets/botanical/new/blue-floral-sprig.svg')!important;
  opacity:.13!important;
}

.gratitude__botanical--left{
  content:url('../assets/botanical/new/blue-floral-sprig.svg')!important;
  width:clamp(145px,17vw,230px)!important;
  left:-50px!important;top:18px!important;
  transform:rotate(18deg)!important;
  opacity:.15!important;
}
.gratitude__botanical--right{display:none!important}

@media(max-width:720px){
  .details-intro .botanical-corner--left{width:150px!important;left:-58px!important;top:18px!important}
  .visit__botanical--one{width:185px!important;left:-92px!important;top:12px!important;opacity:.10!important}
  .visit__botanical--two{width:175px!important;right:-88px!important;bottom:8px!important;opacity:.09!important}
  .moments__botanical{width:205px!important;left:-38px!important;bottom:-8px!important}
  .story-intro::before{width:190px!important;height:190px!important;right:-82px!important;top:34px!important}
  .story-chapter::before{width:165px!important;height:165px!important;opacity:.09!important}
  .story-chapter:nth-of-type(odd)::before{left:-72px!important;bottom:-45px!important}
  .story-chapter:nth-of-type(even)::before{right:-72px!important;top:-42px!important}
  .gratitude__botanical--left{width:145px!important;left:-62px!important;top:14px!important;opacity:.12!important}
}

/* RC20 — move decorative botanicals safely inside the viewport */
.details-intro .botanical-corner--left{
  left:clamp(18px,3vw,54px)!important;
  top:clamp(18px,3vw,42px)!important;
}
.visit__botanical--one{
  left:clamp(12px,2.5vw,48px)!important;
  top:clamp(24px,4vw,72px)!important;
}
.visit__botanical--two{
  right:clamp(12px,2.5vw,48px)!important;
  bottom:clamp(16px,3vw,52px)!important;
}
.moments__botanical{
  left:clamp(8px,2vw,38px)!important;
  bottom:clamp(8px,2vw,30px)!important;
}
.gratitude__botanical--left{
  left:clamp(12px,2.5vw,46px)!important;
  top:clamp(16px,3vw,48px)!important;
}
@media (max-width: 700px){
  .details-intro .botanical-corner--left{left:8px!important;top:14px!important}
  .visit__botanical--one{left:6px!important;top:18px!important}
  .visit__botanical--two{right:5px!important;bottom:12px!important}
  .moments__botanical{left:4px!important;bottom:4px!important}
  .gratitude__botanical--left{left:6px!important;top:12px!important}
}

/* =========================================================
   Version 1.0 — final desktop Wedding Day integration
   ========================================================= */
@media (min-width:901px){
  .wedding-day-static{
    grid-template-columns:minmax(0,calc(44% - 25px)) minmax(0,calc(56% + 25px))!important;
  }
  .wedding-day-desktop-photo{
    position:relative!important;
    z-index:1!important;
    overflow:visible!important;
    box-shadow:14px 0 28px rgba(28,52,41,.07)!important;
  }
  .wedding-day-desktop-photo::after{
    content:"";
    position:absolute;
    top:0;
    right:-1px;
    width:clamp(72px,7vw,112px);
    height:100%;
    background:linear-gradient(to right,rgba(245,240,230,0) 0%,rgba(245,240,230,.28) 48%,var(--cream) 100%);
    pointer-events:none;
    z-index:2;
  }
  .wedding-day-static__frame{
    position:relative!important;
    z-index:2!important;
    padding-left:clamp(2.35rem,4.3vw,5.35rem)!important;
    padding-right:clamp(2rem,4vw,5rem)!important;
  }
}

/* Version 1.0 repackage — supplied desktop Wedding Day composites only */
.wedding-day-desktop-composite{display:none}
@media (min-width:901px){
  .wedding-day-static{
    display:block!important;
    padding:0!important;
    background:var(--cream)!important;
  }
  .wedding-day-desktop-photo,
  .wedding-day-static__frame{display:none!important}
  .wedding-day-desktop-composite{
    display:flex!important;
    align-items:center;
    justify-content:center;
    width:100%;
    margin:0 auto;
    background:transparent;
    overflow:hidden;
  }
  .wedding-day-desktop-composite__image{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
    background:transparent;
  }
  .wedding-day-desktop-composite__image--ko{display:none}
  body.lang-ko .wedding-day-desktop-composite__image--en{display:none}
  body.lang-ko .wedding-day-desktop-composite__image--ko{display:block}
}
@media (max-width:900px){
  .wedding-day-desktop-composite{display:none!important}
  .wedding-day-static__frame{display:flex!important}
}


/* Version 1.1 Mobile polish */
@media (max-width: 768px){
  section{
    padding-top: 88px !important;
    padding-bottom: 88px !important;
  }
  section[id]{
    min-height: 90vh;
  }
  .section-title,
  h2{
    margin-bottom: 24px !important;
  }
  p, .section-subtitle{
    margin-bottom: 18px;
  }
}

/* =========================================================
   Version 1.2 — final mobile rhythm and micro-polish
   ========================================================= */
.reveal{
  transition-duration:1s;
  transition-timing-function:cubic-bezier(.22,.68,.32,1);
}

@media (max-width:768px){
  /* Replace the blanket 90vh treatment with section-specific pacing. */
  section{padding-left:22px!important;padding-right:22px!important}
  section[id]{min-height:0}

  .details-intro{
    min-height:92svh!important;
    padding-top:clamp(6rem,13svh,8.5rem)!important;
    padding-bottom:clamp(5.5rem,12svh,8rem)!important;
  }
  .wedding-day-static{
    min-height:auto!important;
    padding-top:clamp(4.5rem,10svh,6.5rem)!important;
    padding-bottom:clamp(4.5rem,10svh,6.5rem)!important;
  }
  .marior-welcome{min-height:100svh!important}
  .venue{
    min-height:94svh!important;
    padding-top:clamp(5.5rem,12svh,8rem)!important;
    padding-bottom:clamp(5.5rem,12svh,8rem)!important;
  }
  .visit{
    min-height:auto!important;
    padding-top:clamp(5.5rem,12svh,8rem)!important;
    padding-bottom:clamp(5.5rem,12svh,8rem)!important;
  }
  .moments{
    min-height:100svh!important;
    padding-top:clamp(5rem,11svh,7.5rem)!important;
    padding-bottom:clamp(5rem,11svh,7.5rem)!important;
  }
  .rsvp{
    min-height:auto!important;
    padding-top:clamp(5rem,11svh,7.5rem)!important;
    padding-bottom:clamp(5rem,11svh,7.5rem)!important;
  }
  .gratitude{
    min-height:96svh!important;
    padding-top:clamp(5.5rem,12svh,8rem)!important;
    padding-bottom:clamp(5.5rem,12svh,8rem)!important;
  }

  .section-heading{max-width:34rem;margin-left:auto;margin-right:auto}
  .section-heading h2{margin-bottom:1.35rem!important;line-height:1.04}
  .section-heading>p:last-of-type{line-height:1.8;margin-bottom:0}
  .eyebrow{margin-bottom:1rem}

  .visit-grid{gap:1.15rem}
  .visit-card{padding-top:2rem!important;padding-bottom:2rem!important}
  .map-buttons{gap:.75rem}
  .map-buttons a{min-height:50px}

  /* Keep decorative artwork comfortably inside the phone canvas. */
  .details-intro .botanical-corner--left{left:-44px!important}
  .visit__botanical--one{left:-48px!important}
  .visit__botanical--two{right:-42px!important}
  .moments__botanical{left:-8px!important}
  .gratitude__botanical--left{left:-44px!important}
  .gratitude__botanical--right{right:-44px!important}
}

@media (max-width:430px){
  .section-heading h2{font-size:clamp(2.25rem,12vw,3.35rem)!important}
  .section-heading>p:last-of-type{font-size:.96rem}
  .venue__content>p,.visit-card p,.gratitude__copy p{line-height:1.82}
}

/* =========================================================
   Final production polish — restored from the known-good v1.2 base
   ========================================================= */

/* Coordinated sage action buttons. */
.map-buttons a,
.revolut-button{
  background:var(--sage);
  border-color:var(--sage);
  color:var(--forest);
}
.map-buttons a:hover,
.map-buttons a:focus-visible,
.revolut-button:hover,
.revolut-button:focus-visible{
  background:var(--forest);
  border-color:var(--forest);
  color:#fff;
}

/* Countdown hero restored to the original v1.2 mobile layout. */

/* =========================================================
   Final correction: full-bleed mobile film + unified outline actions
   ========================================================= */

/* Option 1: ivory/white button with sage outline and sage lettering. */
.map-buttons a,
.revolut-button{
  background:var(--paper)!important;
  border:1px solid var(--sage)!important;
  color:var(--sage)!important;
  min-height:47px;
  padding:0 19px!important;
  border-radius:999px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.63rem!important;
  font-weight:600;
  letter-spacing:.17em!important;
  line-height:1;
  text-transform:uppercase;
  text-decoration:none;
  transition:background-color .25s ease,color .25s ease,border-color .25s ease;
}
.map-buttons a:hover,
.map-buttons a:focus-visible,
.revolut-button:hover,
.revolut-button:focus-visible{
  background:var(--sage)!important;
  border-color:var(--sage)!important;
  color:#fff!important;
}
.revolut-button{margin-top:1.1rem!important;}

@media (max-width:768px){
  /* The invitation film fills the phone viewport. No contain, scaling,
     margins or framed 9:16 wrapper that can expose black strips. */
  .film{
    display:block!important;
    width:100vw!important;
    height:100svh!important;
    overflow:hidden!important;
  }
  .film__frame{
    position:absolute!important;
    inset:0!important;
    width:100vw!important;
    height:100svh!important;
    max-width:none!important;
    aspect-ratio:auto!important;
    margin:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:hidden!important;
    background:#000!important;
  }
  .film__video{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    margin:0!important;
    object-fit:cover!important;
    object-position:50% 50%!important;
    transform:none!important;
    background:#000!important;
  }
  .film__skip{right:max(18px,env(safe-area-inset-right))!important;bottom:max(16px,env(safe-area-inset-bottom))!important;}
  .revolut-button{min-width:0;}
}
