:root{
  --ivory:#F4EEE4;
  --ivory-2:#FAF6EE;
  --paper:#FBF8F2;
  --espresso:#2B2520;
  --espresso-2:#231d18;
  --ink:#3A332C;
  --mute:#7A6E60;
  --gold:#A8854F;
  --gold-soft:#C2A06A;
  --gold-bright:#D2AF72;
  --line:rgba(168,133,79,.32);
  --line-soft:rgba(168,133,79,.16);
  --shadow:0 26px 60px -30px rgba(43,37,32,.5);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Jost",system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.entered{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--ivory);color:var(--ink);
  line-height:1.65;font-weight:300;overflow-x:hidden;-webkit-font-smoothing:antialiased}
html.locked,html.locked body{overflow:hidden;height:100%}
img{display:block;max-width:100%}

/* ---------- shared type ---------- */
.overline{font-family:var(--sans);font-weight:400;font-size:.7rem;letter-spacing:.4em;
  text-transform:uppercase;color:var(--gold)}
.divider{display:flex;align-items:center;justify-content:center;gap:13px;margin:24px auto}
.divider span{display:block;height:1px;width:40px;background:linear-gradient(90deg,transparent,var(--gold))}
.divider span:last-child{background:linear-gradient(90deg,var(--gold),transparent)}
.divider i{width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg);display:block}
.divider.light span{background:linear-gradient(90deg,transparent,var(--gold-soft))}
.divider.light span:last-child{background:linear-gradient(90deg,var(--gold-soft),transparent)}
.divider.light i{border-color:var(--gold-soft)}
.body-text{font-size:1.02rem;color:var(--mute);font-weight:300;text-wrap:pretty}

/* ---------- layout ---------- */
section{position:relative}
.wrap{max-width:660px;margin:0 auto;padding:0 30px}
.pad{padding-block:clamp(60px,14vw,110px)}

/* ===================== REVEAL SYSTEM ===================== */
[data-reveal]{opacity:0;transform:translateY(30px);
  transition:opacity 1.05s var(--ease),transform 1.05s var(--ease)}
[data-reveal="fade"]{transform:none}
[data-reveal="scale"]{transform:scale(.93)}
[data-reveal="left"]{transform:translateX(-34px)}
[data-reveal="right"]{transform:translateX(34px)}
[data-reveal].in{opacity:1;transform:none}

/* line-draw svg */
.draw [pathLength]{stroke-dasharray:1;stroke-dashoffset:1;
  transition:stroke-dashoffset 1.7s ease,opacity .6s ease;opacity:.9}
.draw.in [pathLength]{stroke-dashoffset:0}
.draw.in [pathLength]:nth-of-type(2){transition-delay:.16s}
.draw.in [pathLength]:nth-of-type(3){transition-delay:.32s}
.draw.in [pathLength]:nth-of-type(4){transition-delay:.46s}
.draw.in [pathLength]:nth-of-type(5){transition-delay:.6s}
.draw.in [pathLength]:nth-of-type(6){transition-delay:.72s}
.draw.in [pathLength]:nth-of-type(7){transition-delay:.84s}

/* ===================== ENVELOPE INTRO ===================== */
.env-stage{position:fixed;inset:0;z-index:120;display:grid;place-items:center;
  background:radial-gradient(120% 90% at 50% 38%,#332a22 0%,#221b15 55%,#17120e 100%);
  transition:opacity 1s ease,visibility 1s ease}
.env-stage.gone{opacity:0;visibility:hidden}
.env-stage.hidden{display:none}
.env-scene{display:flex;flex-direction:column;align-items:center;gap:30px;
  animation:scenein 1.2s var(--ease) both}
@keyframes scenein{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.envelope{--w:min(82vw,330px);position:relative;width:var(--w);height:calc(var(--w)*.66);
  perspective:1500px;cursor:pointer}
.env-back{position:absolute;inset:0;background:linear-gradient(#EFE6D5,#E4D8C2);
  border-radius:7px;box-shadow:0 34px 70px -24px rgba(0,0,0,.7)}
.env-card{position:absolute;left:5%;top:5%;width:90%;height:122%;
  background:linear-gradient(#FCF8F1,#F2EADC);border-radius:4px;z-index:2;
  transform:translateY(0);transition:transform 1s var(--ease),box-shadow 1s var(--ease);
  box-shadow:0 1px 8px rgba(0,0,0,.12);display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;text-align:center;padding:26px 22px 0;overflow:hidden}
.env-card .ec-ol{font-family:var(--sans);font-weight:400;font-size:.56rem;letter-spacing:.34em;
  text-transform:uppercase;color:var(--gold)}
.env-card .ec-mono{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--gold-soft);
  letter-spacing:.12em;margin-top:9px}
.env-card .ec-names{font-family:var(--serif);font-weight:500;color:var(--espresso);
  font-size:1.85rem;line-height:1.04;margin-top:6px}
.env-card .ec-date{font-family:var(--sans);font-weight:300;font-size:.6rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--mute);margin-top:10px}
.env-front{position:absolute;inset:0;z-index:3;background:linear-gradient(#ECE2D0,#E1D4BD);
  clip-path:polygon(0 0,50% 42%,100% 0,100% 100%,0 100%);border-radius:7px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.env-flap{position:absolute;top:0;left:0;width:100%;height:64%;transform-origin:top center;
  background:linear-gradient(#F1E7D6,#E6D9C2);clip-path:polygon(0 0,100% 0,50% 100%);
  border-radius:7px 7px 0 0;z-index:5;transform:rotateX(0deg);backface-visibility:hidden;
  transition:transform 1s cubic-bezier(.65,.02,.2,1);box-shadow:0 4px 8px -4px rgba(0,0,0,.25)}
.env-seal{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);z-index:7;
  width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;white-space:nowrap;
  font-family:var(--serif);font-style:italic;font-size:1.55rem;letter-spacing:.02em;
  color:#6f4f1f;
  background:
    radial-gradient(circle at 50% 38%,rgba(255,244,222,.55),rgba(255,244,222,0) 46%),
    radial-gradient(circle at 50% 116%,rgba(80,54,20,.55),rgba(80,54,20,0) 52%),
    radial-gradient(circle at 42% 40%,#D9B776 0%,#C2A063 40%,#9A7838 78%,#7d5e29 100%);
  text-shadow:0 1px 0 rgba(255,240,210,.5),0 -1px 1px rgba(70,46,16,.55);
  box-shadow:
    inset 0 0 0 2px rgba(122,92,42,.55),
    inset 0 3px 7px rgba(255,246,224,.42),
    inset 0 -5px 11px rgba(74,50,18,.5),
    0 7px 16px -5px rgba(0,0,0,.62);
  transition:opacity .45s ease,transform .55s var(--ease)}
.env-seal::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;
  width:104px;height:102px;transform:translate(-50%,-49%) rotate(-4deg);
  border-radius:48% 53% 50% 49% / 53% 47% 53% 47%;
  background:radial-gradient(circle at 44% 40%,#B58F4d,#8a6526 72%,#6f4f1f 100%);
  filter:blur(.3px);
  box-shadow:0 2px 5px rgba(0,0,0,.3),inset 0 -3px 8px rgba(70,46,16,.45)}
.env-seal::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:66px;height:66px;border-radius:50%;border:1px solid rgba(110,80,34,.45);pointer-events:none}
.env-seal small{font-size:.66em;margin:0 .12em;font-style:italic}
.env-hint{font-family:var(--sans);font-weight:300;font-size:.66rem;letter-spacing:.34em;
  text-transform:uppercase;color:rgba(246,239,227,.85);display:flex;align-items:center;gap:11px;
  transition:opacity .4s ease}
.env-hint::before,.env-hint::after{content:"";width:22px;height:1px;background:rgba(246,239,227,.32)}
.env-hint .pulse{display:inline-block;color:var(--gold-bright,#d8b773);
  animation:hintpulse 1.3s ease-in-out infinite}
@keyframes hintpulse{0%,100%{opacity:.25;transform:scale(.97)}50%{opacity:1;transform:scale(1.05)}}
.envelope.opening .env-flap{transform:rotateX(-178deg)}
.envelope.opening .env-seal{opacity:0;transform:translate(-50%,-50%) scale(.3)}
.env-stage.opening .env-hint{opacity:0}
.envelope.lift .env-card{transform:translateY(-46%);z-index:6;box-shadow:0 36px 54px -20px rgba(0,0,0,.55)}

/* ===================== HERO (big bg + packaged info) ===================== */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  text-align:center;color:#F7F0E4;padding:clamp(30px,6vh,52px) 26px clamp(40px,7vh,60px);overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;
  animation:heroZoom 18s ease-out both}
@keyframes heroZoom{from{transform:scale(1.09)}to{transform:scale(1)}}
.hero-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(22,16,11,.62) 0%,rgba(22,16,11,.34) 24%,rgba(22,16,11,.06) 44%,rgba(22,16,11,0) 60%,rgba(22,16,11,.28) 100%)}
.hero-card{position:relative;z-index:1;width:min(94%,500px);
  animation:heroCard 1.5s .15s var(--ease) both}
.hero-card::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;transform:translate(-50%,-50%);
  width:122%;height:188%;border-radius:50%;
  background:radial-gradient(ellipse 62% 58% at 50% 50%,rgba(20,14,9,.52) 0%,rgba(20,14,9,.4) 48%,rgba(20,14,9,.2) 70%,rgba(20,14,9,.06) 86%,rgba(20,14,9,0) 94%)}
@keyframes heroCard{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.hero-card .h-ol{font-family:var(--sans);font-weight:400;font-size:.62rem;letter-spacing:.36em;
  text-transform:uppercase;color:rgba(247,240,228,.9);text-shadow:0 1px 12px rgba(0,0,0,.5)}
.hero-card .h-names{font-family:var(--serif);font-weight:500;color:#FBF6EC;
  font-size:clamp(2rem,7.8vw,2.95rem);line-height:1;margin-top:13px;white-space:nowrap;
  text-shadow:0 2px 22px rgba(0,0,0,.6),0 1px 4px rgba(0,0,0,.45)}
.hero-card .h-names .amp{display:inline;font-style:italic;font-weight:400;color:var(--gold-bright);
  margin:0 .12em;text-shadow:0 2px 16px rgba(0,0,0,.55)}
.hero-card .h-sub{font-family:var(--serif);font-style:italic;font-size:1.3rem;
  color:rgba(247,240,228,.95);margin-top:6px;text-shadow:0 1px 14px rgba(0,0,0,.55)}
.hero-divider{display:flex;align-items:center;justify-content:center;gap:11px;margin:18px auto 0}
.hero-divider span{display:block;height:1px;width:30px;background:rgba(210,175,114,.7)}
.hero-divider i{width:5px;height:5px;border:1px solid var(--gold-bright);transform:rotate(45deg);display:block}
.hero-card .h-date{font-family:var(--sans);font-weight:400;letter-spacing:.28em;font-size:.78rem;
  text-transform:uppercase;color:#F7F0E4;margin-top:16px;text-indent:.28em;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.hero-card .h-place{font-family:var(--sans);font-weight:300;letter-spacing:.24em;font-size:.62rem;
  text-transform:uppercase;color:rgba(247,240,228,.82);margin-top:8px;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.hero-scroll{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:1;
  display:flex;flex-direction:column;align-items:center;gap:9px;
  font-family:var(--sans);font-size:.56rem;letter-spacing:.32em;text-transform:uppercase;
  color:rgba(247,240,228,.78);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.hero-scroll .l{width:1px;height:42px;background:linear-gradient(180deg,rgba(247,240,228,.7),transparent);
  animation:lineDrop 2.2s ease-in-out infinite}
@keyframes lineDrop{0%{transform:scaleY(.3);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.3);transform-origin:bottom;opacity:.4}}

/* ===================== INVITATION LEDE ===================== */
.intro{background:var(--ivory);text-align:center}
.intro p.lede{font-family:var(--serif);font-size:clamp(1.5rem,5.6vw,2.05rem);line-height:1.42;
  font-weight:400;color:var(--ink)}
.intro p.lede em{font-style:italic;color:var(--gold)}

/* ===================== US — SCROLL GALLERY ===================== */
.usgal{position:relative;background:var(--espresso)}
.usgal-head{text-align:center;padding:clamp(58px,13vw,98px) 26px clamp(26px,7vw,42px)}
.usgal-head .overline{color:var(--gold-soft);display:block;margin-bottom:13px}
.usgal-head h2{font-family:var(--serif);font-weight:500;font-style:italic;color:var(--paper);
  font-size:clamp(2.2rem,9vw,3.1rem)}
.usgal-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:20px;padding:clamp(54px,12vh,92px) 26px clamp(44px,9vh,78px);min-height:86svh}
.ug-frames{position:relative;width:min(84%,400px);aspect-ratio:1/1.32;touch-action:pan-y;cursor:grab}
.ug-frames:active{cursor:grabbing}
.ug-frame{position:absolute;inset:0;opacity:0;transform:translateX(112%);
  transition:transform 1.05s var(--ease),opacity .8s var(--ease)}
.ug-frame.is-active{opacity:1;transform:translateX(0)}
.ug-frame.is-prev{opacity:0;transform:translateX(-112%)}
.ug-frame img{width:100%;height:100%;object-fit:cover;border-radius:8px;filter:grayscale(1) contrast(1.02);
  box-shadow:0 30px 60px -26px rgba(0,0,0,.8);-webkit-user-drag:none;user-select:none;pointer-events:none}
.ug-frame figcaption{position:absolute;left:0;right:0;bottom:18px;text-align:center;
  font-family:var(--serif);font-style:italic;font-size:1.15rem;color:#FBF6EC;
  text-shadow:0 2px 14px rgba(0,0,0,.6)}
.ug-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(194,160,106,.4);background:rgba(35,29,24,.45);color:var(--gold-soft);
  font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;
  font-family:var(--serif);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:.3s;
  padding-bottom:3px}
.ug-nav:hover{background:rgba(35,29,24,.85);color:var(--gold-bright);border-color:var(--gold-soft)}
.ug-nav.prev{left:12px}
.ug-nav.next{right:12px}
.ug-nav[disabled]{opacity:.22;pointer-events:none}
.ug-meta{display:flex;align-items:center;gap:16px}
.ug-index{font-family:var(--serif);font-style:italic;color:var(--gold-soft);font-size:1.1rem;
  min-width:46px;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.ug-dots{display:flex;gap:2px}
.ug-dots b{width:6px;height:6px;border-radius:50%;background:rgba(194,160,106,.35);box-sizing:content-box;
  padding:8px 7px;background-clip:content-box;cursor:pointer;
  transition:background .4s,transform .4s;display:block}
.ug-dots b.on{background:var(--gold-soft);transform:scale(1.35)}
.ug-hint{font-family:var(--sans);font-weight:300;font-size:.58rem;letter-spacing:.26em;
  text-transform:uppercase;color:rgba(194,160,106,.55)}

/* ===================== THE DAY / VENUES (compact, framed) ===================== */
.day{background:var(--espresso-2);color:var(--paper);text-align:center}
.day .overline{color:var(--gold-soft);display:block;margin-bottom:14px}
.day .when{font-family:var(--serif);font-weight:500;color:var(--paper);
  font-size:clamp(1.9rem,7.5vw,2.7rem);line-height:1.1}
.day .when em{font-style:italic;color:var(--gold-soft)}
.venues{margin-top:clamp(34px,7vw,46px);display:flex;flex-direction:column;gap:18px}
.venue{display:flex;flex-direction:column;align-items:center;gap:12px;
  border:1px solid rgba(194,160,106,.24);border-radius:7px;padding:clamp(26px,6vw,34px) 22px}
.venue .vart{width:min(60%,190px);color:var(--gold-bright);margin-bottom:2px}
.venue .vart svg{width:100%;height:auto;display:block}
.venue .vk{font-family:var(--sans);font-weight:400;font-size:.6rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--gold-soft)}
.venue .vdate{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.18rem;
  color:var(--gold-soft);margin-top:2px;letter-spacing:0;text-transform:none}
.venue h3{font-family:var(--serif);font-weight:500;color:var(--paper);font-size:1.62rem;line-height:1.16}
.venue .vloc{font-size:.9rem;color:rgba(251,248,242,.62);margin-top:-4px}
.venue .vtime{font-family:var(--serif);font-style:italic;font-size:1.02rem;color:rgba(251,248,242,.82)}
.maplink{display:inline-flex;align-items:center;gap:9px;margin-top:6px;font-family:var(--sans);
  font-weight:400;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--paper);
  text-decoration:none;border-bottom:1px solid var(--gold-soft);padding-bottom:5px;transition:.3s}
.maplink:hover{color:var(--gold-soft);gap:13px}
.maplink svg{width:13px;height:13px}

.subvenues{display:flex;flex-direction:column;gap:24px;margin-top:20px;padding-top:22px;
  border-top:1px solid rgba(194,160,106,.18);width:100%;align-items:center}
.subvenue{display:flex;flex-direction:column;align-items:center;gap:9px}
.subvenue:not(:first-child){padding-top:24px;border-top:1px solid rgba(194,160,106,.18);width:100%}
.subvenue .svk{font-family:var(--sans);font-weight:400;font-size:.58rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--gold-bright)}

/* ===================== DRESS CODE (palette + inspiration collage) ===================== */
.dress{background:var(--ivory);text-align:center}
.dress .overline{display:block;margin-bottom:14px}
.dress .word{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--espresso);
  font-size:clamp(2.8rem,13vw,4.4rem);line-height:1}
.dress p{max-width:420px;margin:18px auto 0}
.palette{display:flex;max-width:430px;margin:clamp(30px,7vw,42px) auto 0;border-radius:5px;
  overflow:hidden;box-shadow:var(--shadow)}
.sw{flex:1;aspect-ratio:1/1.7;display:flex;align-items:flex-end;justify-content:center;padding-bottom:11px}
.sw span{font-family:var(--sans);font-weight:400;font-size:.46rem;letter-spacing:.12em;
  text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg)}
.inspo{margin-top:clamp(28px,7vw,42px);max-width:430px;margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;
  gap:13px}
.look{position:relative;aspect-ratio:3/4;border-radius:5px;border:1px solid var(--line);
  overflow:hidden}
.look img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.inspo-note{font-family:var(--sans);font-weight:300;font-size:.64rem;letter-spacing:.04em;
  color:var(--mute);margin-top:16px}

/* ===================== RSVP ===================== */
.rsvp{position:relative;background:var(--espresso);color:var(--paper);text-align:center;overflow:hidden}
.rsvp-bg{position:absolute;inset:0;z-index:0}
.rsvp-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;opacity:.2;filter:grayscale(.35)}
.rsvp-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,37,32,.85),rgba(43,37,32,.8))}
.rsvp .wrap{position:relative;z-index:1}
.rsvp .overline{color:var(--gold-soft);display:block;margin-bottom:16px}
.rsvp h2{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--paper);
  font-size:clamp(2.3rem,9.5vw,3.3rem);line-height:1.08}
.rsvp .rsub{color:rgba(251,248,242,.64);font-size:.96rem;margin-top:15px}
.form{max-width:400px;margin:40px auto 0;display:flex;flex-direction:column;gap:20px;text-align:left}
.field label{display:block;font-family:var(--sans);font-weight:400;font-size:.62rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--gold-soft);margin-bottom:11px}
.field input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(194,160,106,.5);
  color:var(--paper);font-family:var(--serif);font-size:1.4rem;padding:6px 2px 12px;outline:none;transition:border-color .3s}
.field input::placeholder{color:rgba(251,248,242,.3);font-style:italic}
.field input:focus{border-color:var(--gold-soft)}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.choice button{font-family:var(--sans);font-weight:400;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--paper);background:transparent;border:1px solid rgba(194,160,106,.45);
  border-radius:3px;padding:18px 10px;cursor:pointer;transition:.35s;display:flex;flex-direction:column;
  align-items:center;gap:7px;min-height:66px;justify-content:center}
.choice button .ci{font-family:var(--serif);font-style:italic;font-size:1.12rem;letter-spacing:0;
  text-transform:none;color:var(--gold-soft);transition:.35s}
.choice button:hover{border-color:var(--gold-soft);background:rgba(194,160,106,.08)}
.choice button[aria-pressed="true"]{background:var(--gold-soft);border-color:var(--gold-soft);color:#2B2520}
.choice button[aria-pressed="true"] .ci{color:#2B2520}
.submit{margin-top:6px;font-family:var(--sans);font-weight:400;font-size:.72rem;letter-spacing:.3em;
  text-transform:uppercase;color:#2B2520;background:var(--gold-soft);border:none;border-radius:3px;
  padding:19px;cursor:pointer;transition:.35s}
.submit:hover{background:#d4b67e}
.submit:disabled{opacity:.4;cursor:not-allowed}
.formnote{font-size:.64rem;letter-spacing:.04em;color:rgba(251,248,242,.4);margin-top:4px;text-align:center}
.thanks{max-width:420px;margin:38px auto 0;display:none;flex-direction:column;align-items:center;gap:14px}
.thanks.show{display:flex;animation:tup .9s var(--ease)}
@keyframes tup{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.thanks .tmark{width:56px;height:56px;border:1px solid var(--gold-soft);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--gold-soft)}
.thanks .tmark svg{width:24px;height:24px}
.thanks h3{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--paper);font-size:2rem}
.thanks p{color:rgba(251,248,242,.68);font-size:.98rem}
.thanks button{margin-top:6px;background:none;border:none;color:var(--gold-soft);font-family:var(--sans);
  font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;
  border-bottom:1px solid transparent;padding-bottom:3px;transition:.3s}
.thanks button:hover{border-color:var(--gold-soft)}

/* ===================== COUNTDOWN (closer) ===================== */
.count{background:var(--ivory-2);text-align:center;border-block:1px solid var(--line-soft)}
.count .overline{display:block;margin-bottom:8px}
.count h2{font-family:var(--serif);font-weight:500;font-style:italic;color:var(--espresso);
  font-size:clamp(1.9rem,7vw,2.6rem);margin-bottom:32px}
.cd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:440px;margin:0 auto}
.cd-cell{display:flex;flex-direction:column;align-items:center;gap:9px;padding:6px 2px;position:relative}
.cd-num{font-family:var(--serif);font-weight:500;color:var(--espresso);
  font-size:clamp(2.5rem,12vw,3.5rem);line-height:1;font-variant-numeric:tabular-nums}
.cd-lab{font-family:var(--sans);font-weight:400;font-size:.58rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--mute)}
.cd-cell+.cd-cell::before{content:"";position:absolute;left:-4px;top:14%;height:42%;width:1px;background:var(--line)}

/* ===================== FOOTER ===================== */
.foot{background:var(--ivory);text-align:center;padding:clamp(58px,12vw,88px) 26px}
.foot .fmono{font-family:var(--serif);font-style:italic;font-weight:500;font-size:2.3rem;color:var(--gold);letter-spacing:.06em}
.foot .fline{font-family:var(--serif);font-size:1.5rem;color:var(--espresso);margin-top:12px}
.foot .fmeta{font-family:var(--sans);font-weight:300;font-size:.62rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--mute);margin-top:18px}
.foot .fclose{font-family:var(--serif);font-style:italic;color:var(--mute);margin-top:28px;font-size:1.05rem}

/* ===================== FLOATING RSVP ===================== */
.fab{position:fixed;left:50%;bottom:22px;transform:translate(-50%,150%);z-index:40;
  font-family:var(--sans);font-weight:400;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
  color:#2B2520;background:var(--gold-soft);padding:15px 30px;border-radius:40px;text-decoration:none;
  box-shadow:0 14px 34px -10px rgba(43,37,32,.6);transition:transform .6s var(--ease),opacity .4s;
  opacity:0;pointer-events:none}
.fab.show{transform:translateX(-50%);opacity:1;pointer-events:auto}
.fab:hover{background:#d4b67e}

/* ===================== NEW: dress chip in venues ===================== */
.vdress{display:inline-flex;align-items:center;gap:11px;margin-top:8px;white-space:nowrap;
  border:1px solid rgba(194,160,106,.34);border-radius:30px;padding:9px 18px;
  font-family:var(--sans);font-weight:400;font-size:.58rem;letter-spacing:.24em;text-transform:uppercase}
.vdress .vd-lab{color:rgba(251,248,242,.55)}
.vdress i{width:4px;height:4px;border:1px solid var(--gold-soft);transform:rotate(45deg);display:block}
.vdress .vd-val{color:var(--gold-bright)}

/* ===================== NEW: save the date (wedding) ===================== */
.savedate{margin-top:clamp(26px,6vw,38px);border:1px solid rgba(194,160,106,.4);border-radius:8px;
  padding:clamp(30px,7vw,42px) 24px;
  background:linear-gradient(180deg,rgba(194,160,106,.09),rgba(194,160,106,.02));
  display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.savedate .sd-rule{display:flex;align-items:center;gap:11px;margin-bottom:8px}
.savedate .sd-rule span{display:block;height:1px;width:30px;background:rgba(210,175,114,.6)}
.savedate .sd-rule i{width:5px;height:5px;border:1px solid var(--gold-soft);transform:rotate(45deg);display:block}
.savedate .sd-ol{font-family:var(--sans);font-weight:400;font-size:.6rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--gold-soft)}
.savedate .sd-title{font-family:var(--serif);font-weight:500;font-style:italic;color:var(--paper);
  font-size:clamp(1.9rem,8vw,2.6rem);line-height:1.05;margin-top:2px}
.savedate .sd-date{font-family:var(--sans);font-weight:400;letter-spacing:.22em;font-size:.8rem;
  text-transform:uppercase;color:var(--gold-bright);margin-top:9px;text-indent:.22em}
.savedate .sd-place{font-family:var(--sans);font-weight:300;letter-spacing:.22em;font-size:.62rem;
  text-transform:uppercase;color:rgba(251,248,242,.7);margin-top:6px;text-indent:.22em}
.savedate .sd-note{font-family:var(--serif);font-style:italic;font-size:1.02rem;
  color:rgba(251,248,242,.66);max-width:360px;margin-top:15px;text-wrap:pretty}

/* ===================== NEW: dress code, split by day ===================== */
.dress-intro{max-width:440px;margin:14px auto 0}
.dress .dc-day{margin-top:clamp(42px,9vw,62px)}
.dress .dc-day:first-of-type{margin-top:clamp(28px,7vw,40px)}
.dc-head{display:flex;flex-direction:column;align-items:center;gap:3px}
.dc-date{font-family:var(--sans);font-weight:400;font-size:.62rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold)}
.dress .dc-day .word{margin-top:3px;font-size:clamp(2.6rem,12vw,4rem)}
.dc-sub{font-family:var(--serif);font-size:1.05rem;color:var(--mute);margin-top:2px}
.dc-sub em{font-style:italic;color:var(--gold);font-weight:500}
.dress .dc-day p.body-text{max-width:420px;margin:14px auto 0}

/* ===================== NEW: tour for swiss guests ===================== */
.tour{background:var(--ivory-2);text-align:center;border-block:1px solid var(--line-soft)}
.tour .overline{display:block;margin-bottom:14px}
.tour-title{font-family:var(--serif);font-weight:500;font-style:italic;color:var(--espresso);
  font-size:clamp(2.1rem,8.5vw,3rem);line-height:1.06}
.tour-lede{max-width:490px;margin:18px auto 0}
.tour-lede em{font-style:italic;color:var(--gold);font-weight:500}
.tour-list{list-style:none;max-width:420px;margin:clamp(26px,6vw,36px) auto 0;
  display:flex;flex-direction:column;text-align:left;border-top:1px solid var(--line-soft)}
.tour-list li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:15px 4px;border-bottom:1px solid var(--line-soft)}
.tour-list .tl-k{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--espresso);white-space:nowrap}
.tour-list .tl-v{font-family:var(--sans);font-weight:300;font-size:.78rem;letter-spacing:.03em;color:var(--mute);text-align:right}
.tour-cta{display:inline-flex;align-items:center;gap:11px;margin-top:clamp(28px,6vw,38px);
  font-family:var(--sans);font-weight:400;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
  color:#2B2520;background:var(--gold-soft);border-radius:40px;padding:16px 32px;text-decoration:none;
  box-shadow:0 14px 34px -14px rgba(43,37,32,.5);transition:background .3s,gap .3s}
.tour-cta:hover{background:#d4b67e;gap:14px}
.tour-cta svg{width:17px;height:17px}
.tour-note{font-family:var(--sans);font-weight:300;font-size:.66rem;letter-spacing:.04em;color:var(--mute);margin-top:16px}

/* ===================== NEW: RSVP extra fields ===================== */
[hidden]{display:none !important}
.rsvp-extra{display:flex;flex-direction:column;gap:20px}
.choice.triple{grid-template-columns:1fr}
.count-pills{display:flex;gap:8px}
.count-pills button{flex:1;min-width:0;font-family:var(--serif);font-size:1.3rem;color:var(--paper);
  background:transparent;border:1px solid rgba(194,160,106,.45);border-radius:3px;padding:13px 0;cursor:pointer;
  transition:.3s;font-variant-numeric:tabular-nums;min-height:48px}
.count-pills button:hover{border-color:var(--gold-soft);background:rgba(194,160,106,.08)}
.count-pills button[aria-pressed="true"]{background:var(--gold-soft);border-color:var(--gold-soft);color:#2B2520}
.gn-list{display:flex;flex-direction:column;gap:15px}
.gn-list input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(194,160,106,.5);
  color:var(--paper);font-family:var(--serif);font-size:1.18rem;padding:5px 2px 10px;outline:none;transition:border-color .3s}
.gn-list input::placeholder{color:rgba(251,248,242,.3);font-style:italic}
.gn-list input:focus{border-color:var(--gold-soft)}
.field-hint{font-family:var(--sans);font-weight:300;font-size:.66rem;letter-spacing:.02em;
  color:rgba(251,248,242,.45);margin-top:10px;line-height:1.5}

@media (min-width:720px){
  .venues{flex-direction:row;align-items:stretch}
  .venue{flex:1}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001s !important;transition-duration:.001s !important}
  [data-reveal]{opacity:1;transform:none}
  .draw [pathLength]{stroke-dashoffset:0;opacity:1}
  .hero-card,.hero-media img{opacity:1;transform:none}
  .usgal-sticky{position:static;height:auto;gap:16px;padding-block:20px}
  .usgal-track{height:auto !important}
  .ug-frames{height:auto;aspect-ratio:auto;width:min(84%,400px)}
  .ug-frame{position:relative;opacity:1;transform:none;margin-bottom:14px}
  .ug-frame figcaption{position:static;margin-top:8px;color:var(--gold-soft);text-shadow:none}
  html.entered{scroll-behavior:auto}
}
