:root{
  --cream: #faf6ee;
  --cream-2: #f3ecdd;
  --olive: #5c5e3f;
  --olive-dark: #43452e;
  --terracotta: #c15c46;
  --terracotta-dark: #a44532;
  --blush: #f3e0d1;
  --ink: #33341f;
  --line: rgba(92,94,63,0.35);
  --font-display: 'Fraunces', Georgia, serif;
  --font-mono: 'Courier Prime', monospace;
  --font-body: 'Nunito', 'Helvetica Neue', sans-serif;
  --card: #fffdf8;
  --shadow: 0 14px 36px rgba(67,69,46,0.09);
  --r-card: 28px;
  --r-input: 14px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-weight:400;
  font-size:1.02rem;
  line-height:1.65;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
/* paper grain over the whole page (waves, bands and cards included) */
body::after{
  content:"";
  position:fixed;inset:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.36 0 0 0 0 0.37 0 0 0 0 0.25 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") repeat;
  pointer-events:none;
  z-index:9999;
}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--font-display);margin:0;font-variation-settings:"SOFT" 100;}

.eyebrow{
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:0.25em;
  font-size:0.75rem;
  color:var(--terracotta);
  margin:0 0 0.5rem;
}
.eyebrow.center{text-align:center;}

.section-title{
  font-size:clamp(1.8rem,4vw,2.6rem);
  color:var(--olive-dark);
  margin-bottom:1.5rem;
}
.section-title.center{text-align:center;}

.section{
  padding:5rem 1.5rem;
  max-width:1100px;
  margin:0 auto;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:700;
  letter-spacing:0.01em;
  font-size:0.95rem;
  padding:0.85rem 1.9rem;
  border-radius:999px;
  border:1.5px solid var(--olive-dark);
  cursor:pointer;
  transition:all .25s ease;
  background:transparent;
  color:var(--olive-dark);
}
.btn--primary{
  background:var(--terracotta);
  border-color:var(--terracotta);
  color:#fff;
}
.btn--primary:hover{background:var(--terracotta-dark);border-color:var(--terracotta-dark);transform:translateY(-1px);}
.btn--outline:hover{background:var(--olive-dark);color:#fff;}
.btn--small{font-size:0.85rem;padding:0.55rem 1.2rem;margin-top:0.8rem;}

/* ---------- language gate ---------- */
.lang-gate{
  position:fixed;inset:0;z-index:200;
  background:rgba(51,52,31,0.92);
  display:flex;align-items:center;justify-content:center;
  padding:1.5rem;
}
.lang-gate[hidden]{display:none;}
.lang-gate__card{
  background:var(--cream);
  border-radius:var(--r-card);
  box-shadow:0 24px 60px rgba(0,0,0,0.25);
  padding:2.5rem 2rem;
  text-align:center;
  max-width:340px;
  width:100%;
}
.lang-gate__stamp{margin:0 auto 1.2rem;}
.lang-gate__title{
  font-family:var(--font-mono);
  font-size:0.95rem;
  margin-bottom:1.5rem;
  color:var(--olive-dark);
}
.lang-gate__buttons{display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap;}

/* ---------- stamp badge ---------- */
.stamp-badge{
  width:128px;height:128px;
  border:2px solid var(--olive);
  border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--font-mono);
  font-size:0.58rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--olive-dark);
  position:relative;
  text-align:center;
  transform:rotate(-6deg);
}
.stamp-badge span{white-space:nowrap;}
.stamp-badge::before{
  content:"";
  position:absolute;
  inset:7px;
  border:1px dashed var(--olive);
  border-radius:50%;
}
.stamp-badge__center{font-size:1.5rem;margin:0.25rem 0;}
.stamp-badge--round{
  border-color:var(--terracotta);
  color:var(--terracotta-dark);
  margin:0 auto 1.2rem;
}
.stamp-badge--round::before{border-color:var(--terracotta);}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 2rem;
  background:rgba(250,246,238,0.9);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav__brand{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.3rem;
  color:var(--olive-dark);
}
.nav__brand span{color:var(--terracotta);}
.nav__links{display:flex;gap:0.4rem;}
.nav__links a{
  font-family:var(--font-body);
  font-weight:600;
  font-size:0.9rem;
  color:var(--olive-dark);
  padding:0.3rem 0.8rem;
  border-radius:999px;
  transition:background .2s ease,color .2s ease;
}
.nav__links a:hover{background:var(--blush);color:var(--terracotta-dark);}
.nav__lang{display:flex;gap:0.4rem;}
.lang-pill{
  font-family:var(--font-mono);
  font-size:0.72rem;
  border:1px solid var(--olive);
  background:transparent;
  color:var(--olive-dark);
  border-radius:20px;
  padding:0.25rem 0.7rem;
  cursor:pointer;
}
.lang-pill.active{background:var(--olive-dark);color:#fff;border-color:var(--olive-dark);}
.nav__burger{display:none;background:none;border:none;font-size:1.4rem;color:var(--olive-dark);cursor:pointer;}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  overflow:hidden;
}
.hero__photo{
  position:absolute;inset:0;
}
.hero__bg{
  position:absolute;inset:0;
  background-image:url('../img/first.jpeg');
  background-image:image-set(url('../img/first.webp') type('image/webp'),url('../img/first.jpeg') type('image/jpeg'));
  background-size:cover;
  background-position:center 25%;
  transform:scale(1.05);
}
.hero__scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(30,30,18,0.08) 0%,rgba(30,30,18,0.22) 40%,rgba(20,20,12,0.55) 75%,rgba(15,15,9,0.8) 100%);
}
.hero__panel{
  position:relative;
  z-index:2;
  width:100%;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.hero__content{
  text-align:center;
  color:#fdfaf3;
  padding:1.5rem clamp(1.5rem,6vw,4rem) 2.5rem;
  max-width:94vw;
  display:flex;flex-direction:column;align-items:center;
}
.hero__content .eyebrow{
  color:#f0c9b8;
  text-shadow:0 2px 12px rgba(0,0,0,0.55);
  font-size:1.05rem;
  letter-spacing:0.3em;
}
.hero__title{
  font-size:clamp(2.6rem,7.5vw,5.4rem);
  letter-spacing:-0.01em;
  line-height:1.05;
  display:flex;
  gap:0.5rem;
  align-items:center;
  flex-wrap:wrap;
  justify-content:center;
  text-shadow:0 4px 24px rgba(0,0,0,0.55),0 2px 6px rgba(0,0,0,0.7);
}
.hero__title .amp{
  color:var(--terracotta);
  font-family:var(--font-display);
  font-style:italic;
  font-weight:400;
  font-size:0.85em;
}
.passport-stamp{
  margin:1.2rem 0 0.8rem;
  border:2px solid #f0e6d6;
  padding:0.7rem 1.4rem;
  display:flex;flex-direction:column;align-items:center;gap:0.2rem;
  font-family:var(--font-mono);
  letter-spacing:0.15em;
  font-size:0.85rem;
  background:rgba(24,25,15,0.4);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-radius:14px;
}
.passport-stamp__date{
  color:var(--terracotta);
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:0.1em;
}
.hero__place{
  font-family:var(--font-mono);
  font-size:0.85rem;
  letter-spacing:0.05em;
  text-shadow:0 2px 10px rgba(0,0,0,0.6);
}
.hero__scroll{
  position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);
  z-index:2;color:#fdfaf3;font-size:1.4rem;
  animation:bounce 2s infinite;
}
@keyframes bounce{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,8px);}}

/* ---------- waves / bands ---------- */
.wave{
  position:absolute;left:0;width:100%;height:56px;display:block;
  fill:currentColor;pointer-events:none;
}
.wave--hero{bottom:-1px;color:var(--cream);z-index:1;}
.band{position:relative;z-index:1;}
.band--olive{background:var(--olive-dark);color:var(--cream);}
.band--blush{background:var(--blush);}
.band .wave--top{top:-55px;}
.band .wave--bottom{bottom:-55px;transform:scaleY(-1);}
.band--olive .wave{color:var(--olive-dark);}
.band--blush .wave{color:var(--blush);}
.band + .section,.section + .band{margin-top:55px;}

/* ---------- hero: split layout on wide (16:9-ish) screens ---------- */
@media (min-width:920px) and (min-aspect-ratio:16/10){
  .hero{flex-direction:row;}
  .hero__photo{position:relative;inset:auto;width:56%;flex-shrink:0;}
  .hero__bg{background-position:center 8%;}
  .hero__scrim{background:linear-gradient(180deg,rgba(20,20,12,0.28) 0%,rgba(15,15,9,0.05) 18%,rgba(15,15,9,0.05) 70%,rgba(15,15,9,0.35) 100%);}
  .hero__panel{
    width:44%;
    min-height:100vh;
    align-items:center;
    justify-content:center;
    background:var(--cream);
  }
  .hero__content{
    align-items:flex-start;
    text-align:left;
    padding:2rem 3rem;
    max-width:none;
  }
  .hero__content .eyebrow{color:var(--terracotta);text-shadow:none;}
  .hero__title{
    color:var(--olive-dark);
    justify-content:flex-start;
    text-shadow:none;
  }
  .passport-stamp{
    border-color:var(--olive);
    color:var(--olive-dark);
    background:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    align-items:flex-start;
  }
  .hero__place{color:var(--ink);text-shadow:none;opacity:1;}
  .hero__scroll{left:auto;right:calc(22% - 0.7rem);}
  .hero__photo{border-radius:0 0 var(--r-card) 0;overflow:hidden;}
  .wave--hero{display:none;}
}

/* ---------- couple ---------- */
.couple__grid{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2rem;
  flex-wrap:wrap;
  margin:2.5rem 0;
}
.arch{
  width:260px;
  margin:0;
  text-align:center;
}
.arch img{
  width:100%;
  height:340px;
  object-fit:cover;
  object-position:center 20%;
  border-radius:130px 130px 28px 28px;
  box-shadow:0 20px 44px rgba(51,52,31,0.18);
  transition:transform .35s ease;
}
.arch:hover img{transform:translateY(-4px);}
.arch figcaption{
  padding-top:1rem;
  display:flex;flex-direction:column;
}
.arch__name{
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.35rem;
  color:var(--olive-dark);
  font-variation-settings:"SOFT" 100;
}
.arch__origin{
  font-family:var(--font-mono);
  font-size:0.7rem;
  letter-spacing:0.08em;
  color:var(--terracotta-dark);
  text-transform:uppercase;
  margin-top:0.2rem;
}
.couple__plane{font-size:2.2rem;transform:rotate(15deg);}
.couple__text{
  max-width:640px;
  margin:0 auto;
  text-align:center;
  font-size:1.05rem;
  color:var(--olive-dark);
}

/* ---------- countdown ---------- */
.countdown-section{
  padding-top:3.2rem;
  padding-bottom:3.2rem;
}
.countdown-section .eyebrow{color:#e8b89f;}
.countdown{
  display:flex;justify-content:center;gap:1.2rem;flex-wrap:wrap;
}
.countdown__unit{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  min-width:96px;
  padding:1.6rem 0.8rem 1rem;
  background:rgba(250,246,238,0.07);
  border:1px solid rgba(250,246,238,0.28);
  border-radius:60px 60px 18px 18px;
}
.countdown__unit span{
  font-family:var(--font-display);
  font-size:clamp(2rem,5vw,3rem);
  font-weight:700;
  color:var(--cream);
}
.countdown__unit small{
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.7rem;
  color:#e8b89f;
  margin-top:0.3rem;
}

/* ---------- event ---------- */
.event__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2.5rem;
  margin-top:2rem;
}
.event-card{
  text-align:center;
  background:var(--card);
  border-radius:var(--r-card);
  padding:2.4rem 1.6rem 2rem;
  box-shadow:var(--shadow);
  transition:transform .25s ease, box-shadow .25s ease;
}
.event-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 36px rgba(67,69,46,0.13);
}
.event-card h3{
  font-size:1.3rem;
  color:var(--olive-dark);
  margin-bottom:0.4rem;
}
.event-card__place{
  font-weight:700;
  font-size:1.2rem;
  color:var(--terracotta-dark);
}
.event-card__time{
  display:block;
  font-family:var(--font-body);
  font-style:italic;
  font-weight:500;
  font-size:1rem;
  color:var(--olive-dark);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:0.65rem 0;
  margin:0.7rem 0 1.3rem;
}
.map-embed{
  border-radius:20px;
  overflow:hidden;
  margin-top:0.5rem;
}
.map-embed iframe{
  width:100%;height:190px;border:0;display:block;
  filter:sepia(0.25) saturate(1.15) hue-rotate(-6deg) brightness(0.98) contrast(1.02);
}
.event__extras{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2.5rem;
  margin-top:2.5rem;
}
.dresscode,.calendar{
  text-align:center;
  background:var(--card);
  border-radius:var(--r-card);
  padding:2rem 1.75rem;
  box-shadow:var(--shadow);
}
.dresscode__icon{
  display:block;
  font-size:1.8rem;
  margin-bottom:0.7rem;
}
.dresscode__level{
  font-family:var(--font-display);
  font-size:1.6rem;
  color:var(--olive-dark);
  margin:0 0 0.6rem;
}
.dresscode__note{
  font-size:0.92rem;
  font-style:italic;
  color:var(--terracotta-dark);
  margin:0;
}

/* ---------- calendar ---------- */
.calendar__buttons{display:flex;gap:0.6rem;justify-content:center;flex-wrap:wrap;}
.calendar .btn--small{margin-top:0;}

/* ---------- info / faq ---------- */
.faq{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
  margin-top:2rem;
  max-width:900px;
  margin-left:auto;margin-right:auto;
}
.faq__item{
  background:var(--card);
  border-radius:var(--r-card);
  padding:1.9rem 1.8rem;
  box-shadow:var(--shadow);
}
.faq__item--wide{
  grid-column:1 / -1;
  display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;
}
.faq__item--wide h3{margin-bottom:0.2rem;}
.faq__item--wide .faq__icon{margin:0;}
.faq__item--wide > p{flex:1 1 220px;}
.faq__item--wide .faq__contacts{margin-top:0;width:auto;}
.faq__icon{display:block;font-size:1.7rem;margin-bottom:0.6rem;}
.faq__item h3{
  font-size:1.15rem;
  color:var(--olive-dark);
  margin-bottom:0.5rem;
  line-height:1.35;
}
.faq__item p{margin:0;font-size:0.95rem;color:var(--ink);}

.faq__contacts{display:flex;gap:0.6rem;flex-wrap:wrap;margin-top:1rem;}
.faq__contacts:empty{display:none;}
.btn--whatsapp{
  display:inline-flex;align-items:center;gap:0.45rem;
  border-color:#3d8f5f;color:#2f7a4d;
}
.btn--whatsapp:hover{background:#3d8f5f;color:#fff;}
.btn--whatsapp svg{width:1em;height:1em;fill:currentColor;}

/* ---------- gifts ---------- */
.gifts{
  text-align:center;
  padding-top:4rem;
  padding-bottom:4.5rem;
}
.gifts__text{max-width:560px;margin:0 auto 1.5rem;}

.pix{margin-top:1.8rem;}
.pix[hidden]{display:none;}
.pix__label{margin:0 0 0.6rem;font-size:0.95rem;color:var(--olive-dark);}
.pix__row{display:inline-flex;align-items:center;gap:0.6rem;flex-wrap:wrap;justify-content:center;}
.pix__key{
  font-family:var(--font-mono);
  font-size:0.95rem;
  background:var(--card);
  border:1.5px dashed var(--terracotta);
  border-radius:999px;
  padding:0.5rem 1.1rem;
  color:var(--terracotta-dark);
  user-select:all;
}
.pix .btn--small{margin-top:0;}

/* ---------- rsvp ---------- */
.rsvp{text-align:center;}
.rsvp-deadline{
  display:inline-flex;flex-direction:column;align-items:center;
  margin:0.5rem auto 2.2rem;
  padding:0.9rem 2rem;
  background:var(--blush);
  border:2px solid var(--terracotta);
  outline:1px dashed var(--terracotta);
  outline-offset:-7px;
  border-radius:14px;
  transform:rotate(-2deg);
  color:var(--terracotta-dark);
}
.rsvp-deadline__label{
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
}
.rsvp-deadline__date{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.25rem,3.5vw,1.6rem);
  line-height:1.2;
  margin-top:0.15rem;
}
.rsvp-form__welcome{
  max-width:560px;
  margin:0 auto 1.5rem;
  font-family:var(--font-mono);
  font-size:0.9rem;
  color:var(--olive-dark);
}
.rsvp-form__welcome--error{color:var(--terracotta-dark);}
.rsvp-form .btn:disabled{opacity:0.6;cursor:not-allowed;}
.rsvp-form{
  max-width:560px;
  margin:0 auto;
  text-align:left;
  background:var(--card);
  border-radius:var(--r-card);
  box-shadow:var(--shadow);
  padding:2.5rem;
}
.field{margin-bottom:1.3rem;}
.field label{
  display:block;
  font-family:var(--font-mono);
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--olive-dark);
  margin-bottom:0.4rem;
}
.field input[type="text"],
.field input[type="email"],
.field input[type="number"],
.field select,
.field textarea{
  width:100%;
  padding:0.8rem 1rem;
  border:1.5px solid rgba(92,94,63,0.22);
  border-radius:var(--r-input);
  background:var(--cream);
  transition:border-color .2s ease,box-shadow .2s ease;
  font-family:var(--font-body);
  font-size:0.95rem;
  color:var(--ink);
}
.field select{cursor:pointer;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--terracotta);box-shadow:0 0 0 4px rgba(193,92,70,0.15);}
.field textarea{resize:vertical;}
.field-row{display:flex;gap:1rem;flex-wrap:wrap;}
.field-row .field{flex:1;min-width:180px;}
.rsvp-form .btn{width:100%;margin-top:0.5rem;}
.rsvp-form__status{
  margin-top:1rem;
  font-family:var(--font-mono);
  font-size:0.85rem;
  color:var(--terracotta-dark);
  text-align:center;
}

/* ---------- footer ---------- */
.footer{
  text-align:center;
  padding:3.5rem 1.5rem 2.5rem;
  margin-top:55px;
}
.footer__stamp{
  border-color:var(--cream);
  color:var(--cream);
  margin:0 auto 1rem;
}
.footer__stamp::before{border-color:var(--cream);}
.footer__tag{
  font-family:var(--font-mono);
  letter-spacing:0.1em;
  color:#e8b89f;
  margin-top:0.3rem;
}

/* ---------- responsive ---------- */
@media (max-width:820px){
  .event__grid,.event__extras{grid-template-columns:1fr;}
  .faq{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .nav__links{
    position:fixed;top:64px;left:0;right:0;
    background:var(--cream);
    flex-direction:column;
    padding:1.2rem 2rem;
    gap:1rem;
    border-bottom:1px solid var(--line);
    display:none;
  }
  .nav__links.open{display:flex;}
  .nav__burger{display:block;}
  .couple__plane{order:3;width:100%;text-align:center;}
  .hero__bg{background-position:22% center;}
  .wave{height:36px;}
  .band .wave--top{top:-35px;}
  .band .wave--bottom{bottom:-35px;}
  .band + .section,.section + .band,.footer{margin-top:35px;}
  .faq__item--wide{display:block;}

  .faq__item h3{
    cursor:pointer;
    position:relative;
    padding-right:1.6rem;
    margin-bottom:0;
  }
  .faq__item h3::after{
    content:"+";
    position:absolute;
    right:0;
    top:0;
    font-size:1.2rem;
    line-height:1.35;
    color:var(--olive-dark);
    transition:transform 0.2s ease;
  }
  .faq__item.is-open h3::after{transform:rotate(45deg);}
  .faq__item p{
    display:grid;
    grid-template-rows:minmax(0,0fr);
    opacity:0;
    overflow:hidden;
    transition:grid-template-rows 0.25s ease, opacity 0.2s ease, margin-top 0.25s ease;
  }
  .faq__item.is-open p{
    grid-template-rows:minmax(0,1fr);
    opacity:1;
    margin-top:0.5rem;
  }
  .faq__contacts{display:none;}
  .faq__item.is-open .faq__contacts{display:flex;}
}
@media (max-width:480px){
  .section{padding:3.5rem 1.2rem;}
  .arch{width:72vw;max-width:260px;}
  .arch img{height:300px;}
  .rsvp-form{padding:1.8rem 1.3rem;}
  .countdown{gap:0.6rem;}
  .countdown__unit{min-width:70px;padding:1.2rem 0.5rem 0.8rem;border-radius:44px 44px 14px 14px;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .hero__scroll{animation:none;}
  .event-card,.btn,.arch img{transition:none;}
}
