@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Italiana&family=Parisienne&display=swap');

:root{
  --wine:#740914;--wine2:#4e050b;--gold:#b27a19;--gold2:#e7c36c;--pale:#fff8e8;
  --cream:#fbefd0;--ink:#3d1d16;--line:#c69637;--shadow:rgba(74,38,8,.22);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Cormorant Garamond",Georgia,serif;background:#f8e9bd;overflow-x:hidden}
body.locked{overflow:hidden}.ambient{position:fixed;inset:0;pointer-events:none;z-index:-1;background:
radial-gradient(circle at 10% 10%,#fff8d9 0 5%,transparent 19%),
radial-gradient(circle at 90% 15%,#e2b65a88 0 4%,transparent 17%),
linear-gradient(135deg,#d7aa49,#fff9e3 44%,#d4a03b)}
.cover{height:100svh;min-height:650px;position:relative;display:grid;place-items:center;overflow:hidden;background:#6b0a14}
.cover-photo{position:absolute;inset:0;background:url('assets/ruth-gold.jpg') left center/cover no-repeat;transform:scale(1.02)}
.cover-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(65,5,10,.08) 0 34%,rgba(81,12,10,.2) 44%,rgba(255,244,205,.76) 58%,rgba(255,248,224,.97) 100%)}
.cover-content{position:relative;z-index:2;width:min(52%,760px);margin-left:auto;margin-right:6vw;text-align:center;padding:32px}
.overline,.label{text-transform:uppercase;letter-spacing:.22em;font-weight:700;color:var(--wine)}
.overline{font-size:clamp(.75rem,1.2vw,1.05rem)}.brand{display:flex;justify-content:center;align-items:center;line-height:.78;margin:24px 0 12px}
.five{font-family:Italiana,serif;font-size:clamp(9rem,19vw,17rem);color:#c58c20;text-shadow:0 2px #fff1a7,0 5px 8px #72430b66}
.brand>div{display:grid;text-align:left}.decades{font-family:Italiana,serif;text-transform:uppercase;font-size:clamp(2.7rem,6vw,6rem);color:#80510c}.of{font-family:Parisienne,cursive;font-size:clamp(2.2rem,4vw,4rem);color:var(--wine);margin-left:1.1em}.ruth{font-family:Parisienne,cursive;font-size:clamp(4.5rem,9vw,8.5rem);color:var(--wine);margin-left:.4em}
.tagline{font-size:clamp(1.15rem,2vw,1.7rem);font-style:italic}.primary,.outline{border-radius:999px;padding:14px 28px;font:600 1rem "Cormorant Garamond",serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.25s}
.primary{background:linear-gradient(#941321,#690711);color:#fff0bd;border:1px solid #f1d17b;box-shadow:0 8px 25px #54080b44}.primary:hover{transform:translateY(-2px);box-shadow:0 11px 30px #54080b55}
.outline{background:#fff9e9aa;color:var(--wine);border:1px solid var(--gold)}.outline:hover{background:#fff4ce}
.cover-guest{font-size:1.15rem;font-style:italic;color:var(--wine);min-height:1.4em}.down{position:absolute;z-index:3;bottom:20px;left:50%;border:1px solid #f6d98c;background:#710b14cc;color:#fff0c3;border-radius:50%;width:44px;height:44px;font-size:1.4rem;animation:bob 1.8s infinite;cursor:pointer}@keyframes bob{50%{transform:translateY(7px)}}
main{background:linear-gradient(180deg,#fff8e8,#f4d98d)}.welcome{padding:90px 24px;text-align:center;max-width:850px;margin:auto}.ornament{color:var(--gold);font-size:2rem}.script{font-family:Parisienne,cursive;color:var(--wine);font-size:clamp(2.4rem,5vw,4.6rem);margin:.1em 0}.welcome h1,.dress h2,.rsvp-card h2{font-family:Italiana,serif;text-transform:uppercase;letter-spacing:.12em;color:#6d130f;font-size:clamp(1.7rem,3vw,2.8rem)}.welcome>p:last-child{font-size:1.3rem;line-height:1.55}
.event-strip{display:grid;grid-template-columns:repeat(3,1fr);max-width:1200px;margin:0 auto 80px;background:#fff9eadd;border:1px solid var(--line);box-shadow:0 18px 50px var(--shadow)}.event-strip article{text-align:center;padding:38px 30px;position:relative}.event-strip article+article:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:#c89a45}.event-strip h2{color:var(--wine);font-size:1.45rem;margin:.4em 0}.event-strip p{font-size:1.1rem}.icon{font-size:2rem;color:#a66c0c}.event-strip small{font-size:.95rem}.countdown{background:linear-gradient(90deg,#5b0710,#850e19,#5b0710);color:#f7d981;display:flex;align-items:center;justify-content:center;gap:55px;padding:35px 25px;border-block:1px solid #e4bd5e}.countdown .script{color:#f7d981;font-size:2.5rem}.clock{display:flex}.clock div{min-width:110px;text-align:center;padding:0 24px;border-left:1px solid #d8aa4e88}.clock strong{display:block;font:500 3.3rem Italiana,serif}.clock span{text-transform:uppercase;letter-spacing:.15em;font-size:.8rem}
.dress{padding:90px 30px;max-width:1150px;margin:auto;text-align:center}.dress header{margin-bottom:30px}.attire-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.attire-grid article{background:#fff9e7bb;border:1px solid #d1a24a;padding:28px;border-radius:18px}.dress-icon{font-size:3rem;color:var(--wine)}.attire-grid h3{color:var(--wine);font-size:1.45rem}.attire-grid p{font-size:1.1rem}.palette{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin:38px 0}.palette>div{width:88px;display:grid;justify-items:center;gap:8px}.palette i{display:block;width:58px;height:58px;border-radius:50%;background:var(--c);box-shadow:0 3px 10px #3d1d1633}.palette span{font-size:.9rem}.palette .gold{border-left:1px solid #c99b3d;padding-left:24px;width:135px}.palette .gold i{background:radial-gradient(circle at 35% 30%,#fff3a8,#c18a1d 45%,#f1d36e 70%,#98630c)}.gold-note{font-size:1.15rem;font-style:italic}.gold-note strong{color:#a66d0b}
.rsvp-section{padding:90px 24px;background:radial-gradient(circle at 50% 0,#fff5d1,transparent 45%),linear-gradient(145deg,#c49331,#f8e6a9)}.rsvp-card{max-width:760px;margin:auto;background:#fffaf0e8;border:1px solid #bd8726;border-radius:24px;padding:42px;box-shadow:0 25px 65px #69400e3d;text-align:center}.rsvp-card>p{font-size:1.12rem}.guest-fields{margin:28px 0;text-align:left}.guest-row{display:flex;align-items:center;gap:14px;padding:15px;border-bottom:1px solid #d9ba73;font-size:1.2rem;cursor:pointer}.guest-row input{width:20px;height:20px;accent-color:var(--wine)}.field{text-align:left;display:block;margin:18px 0;font-weight:700}.field input,.field textarea{width:100%;margin-top:7px;padding:13px;border:1px solid #c79a42;border-radius:10px;background:#fffdf7;font:1rem Georgia,serif}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:25px}.existing-status{margin:20px auto;padding:12px;border:1px solid #d2a84d;background:#fff3c9;border-radius:10px}.confirmation{padding:30px 0}.confirmation-mark{width:70px;height:70px;border-radius:50%;margin:auto;display:grid;place-items:center;background:var(--wine);color:#f5d477;font-size:2rem;border:2px solid #e3bc5b}.confirmation h3{font-size:1.4rem}.message{color:var(--wine);font-weight:700;min-height:1.3em}.deadline{border-top:1px solid #d0a14b;margin-top:32px;padding-top:22px;line-height:1.6}.deadline a{color:var(--wine);text-decoration:none}.deadline span{padding:0 7px}
footer{text-align:center;padding:65px 20px;background:#650912;color:#f5d67c}footer .script{color:#f5d67c;margin:0}footer span{letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}
.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){
 .cover{min-height:720px}.cover-photo{background-position:35% center}.cover-shade{background:linear-gradient(180deg,rgba(59,4,8,.08) 0 38%,rgba(255,246,215,.75) 58%,rgba(255,248,228,.98) 100%)}.cover-content{width:100%;margin:0;align-self:end;padding:30px 20px 70px}.brand{transform:scale(.82);margin:-5px 0}.tagline{margin-top:-10px}.event-strip{grid-template-columns:1fr;margin-inline:18px}.event-strip article+article:before{top:0;left:20%;width:60%;height:1px}.countdown{display:block;text-align:center}.clock{justify-content:center}.clock div{min-width:auto;padding:0 14px}.clock strong{font-size:2.1rem}.attire-grid{grid-template-columns:1fr}.palette{gap:13px}.palette>div{width:64px}.palette i{width:48px;height:48px}.palette .gold{border-left:0;border-top:1px solid #c99b3d;padding:16px 0 0;width:100%}.rsvp-card{padding:30px 20px}
}
@media(max-width:480px){.brand{transform:scale(.72)}.cover-content{padding-inline:5px}.clock div{padding:0 9px}.clock strong{font-size:1.75rem}.clock span{font-size:.65rem}.actions button{width:100%}}

/* v2.2 widescreen + venue */
.mini-link{display:inline-block;margin-top:14px;color:var(--wine);font-weight:700;text-transform:uppercase;letter-spacing:.09em;text-decoration:none;border-bottom:1px solid #b57b1d}
.venue{width:min(92vw,1400px);margin:0 auto 35px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);align-items:stretch;background:#fff9e9d9;border:1px solid var(--line);box-shadow:0 22px 60px var(--shadow);overflow:hidden}
.venue-photo-wrap{min-height:430px;background:#7b0b15;overflow:hidden}.venue-photo-wrap img{width:100%;height:100%;display:block;object-fit:cover}
.venue-copy{padding:clamp(35px,5vw,70px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.venue-copy h2{font:500 clamp(2rem,3.2vw,3.6rem) Italiana,serif;color:var(--wine);line-height:1.08;margin:.15em 0 .3em}
.hotel-name{font-size:1.35rem;font-weight:700;margin:.2em 0}.venue-copy>p{font-size:1.15rem;line-height:1.45}.venue-note{font-style:italic;max-width:520px}.map-button{display:inline-block;text-decoration:none;margin-top:14px}
.attire-card{display:grid;grid-template-columns:minmax(120px,190px) 1fr;align-items:center;text-align:left;gap:28px;overflow:hidden}
.attire-figure{width:100%;max-height:270px;object-fit:contain;mix-blend-mode:multiply;border-radius:12px}.attire-card h3{font:600 1.8rem Italiana,serif;text-transform:uppercase;letter-spacing:.08em;margin:.2em 0;color:var(--wine)}.attire-card p{line-height:1.5}
@media(min-width:1200px){.welcome{max-width:980px;padding-block:105px}.event-strip{max-width:1400px}.event-strip article{padding:48px 42px}.dress{max-width:1400px}.rsvp-card{max-width:820px}}
@media(min-width:1600px){.cover-content{margin-right:max(6vw,calc((100vw - 1500px)/2))}.venue,.event-strip,.dress{max-width:1500px}}
@media(max-width:950px){.venue{grid-template-columns:1fr;width:min(94vw,760px)}.venue-photo-wrap{min-height:300px}.venue-copy{align-items:center;text-align:center}}
@media(max-width:650px){.attire-card{grid-template-columns:115px 1fr;gap:18px;padding:18px!important}.attire-figure{max-height:210px}.venue-photo-wrap{min-height:230px}}


/* v2.2.1 layout correction */
.venue{
  width:calc(100% - 64px) !important;
  max-width:1320px !important;
  margin:70px auto !important;
  display:flex !important;
  align-items:stretch !important;
  border-radius:22px;
}
.venue-photo-wrap{
  flex:1.15 1 0 !important;
  min-width:0 !important;
  min-height:430px !important;
}
.venue-copy{
  flex:.85 1 0 !important;
  min-width:360px !important;
  padding:clamp(36px,4vw,64px) !important;
}
.venue-photo-wrap img{
  width:100% !important;
  height:100% !important;
  min-height:430px !important;
  object-fit:cover !important;
  object-position:center center !important;
}
.attire-grid{
  max-width:1050px;
  margin-inline:auto;
  gap:28px;
}
.attire-card{
  grid-template-columns:150px minmax(0,1fr) !important;
  min-height:310px;
  padding:28px 34px !important;
}
.attire-figure{
  width:135px !important;
  height:250px !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  mix-blend-mode:multiply;
  justify-self:center;
}
@media(max-width:950px){
  .venue{
    width:calc(100% - 36px) !important;
    max-width:760px !important;
    margin:45px auto !important;
    display:block !important;
  }
  .venue-photo-wrap,.venue-photo-wrap img{min-height:0 !important;height:auto !important}
  .venue-copy{min-width:0 !important;align-items:center !important;text-align:center !important}
}
@media(max-width:700px){
  .attire-card{
    grid-template-columns:110px minmax(0,1fr) !important;
    padding:22px !important;
    min-height:260px;
  }
  .attire-figure{width:100px !important;height:210px !important}
}
@media(max-width:430px){
  .attire-card{grid-template-columns:1fr !important;text-align:center !important}
  .attire-figure{width:120px !important;height:220px !important}
}


/* v2.2.2 — definitive venue centering */
main > section.venue.reveal,
main > section.venue.reveal.visible {
  box-sizing: border-box !important;
  width: min(1180px, calc(100vw - 64px)) !important;
  max-width: 1180px !important;
  margin: 72px auto !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 58% 42% !important;
  align-items: stretch !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  float: none !important;
  clear: both !important;
  overflow: hidden !important;
  border: 1px solid var(--line) !important;
  border-radius: 22px !important;
  background: rgba(255,249,233,.92) !important;
  box-shadow: 0 22px 60px var(--shadow) !important;
}
main > section.venue .venue-photo-wrap {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 410px !important;
  height: 100% !important;
  margin: 0 !important;
}
main > section.venue .venue-photo-wrap img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 410px !important;
  object-fit: cover !important;
  object-position: center !important;
}
main > section.venue .venue-copy {
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 52px 48px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
}
@media (max-width: 900px) {
  main > section.venue.reveal,
  main > section.venue.reveal.visible {
    width: min(720px, calc(100vw - 32px)) !important;
    grid-template-columns: 1fr !important;
    margin: 48px auto !important;
  }
  main > section.venue .venue-photo-wrap,
  main > section.venue .venue-photo-wrap img {
    min-height: 0 !important;
    height: auto !important;
  }
  main > section.venue .venue-copy {
    padding: 36px 28px !important;
    align-items: center !important;
    text-align: center !important;
  }
}

/* v2.2.2 — attire back to simple symbols */
.attire-grid article {
  display: block !important;
  text-align: center !important;
}
.dress-icon {
  display: block !important;
  font-size: 3rem !important;
  color: var(--wine) !important;
}
