:root {
  --forest-950: #171c15;
  --forest-900: #202819;
  --forest-800: #2d3726;
  --forest-700: #3d4a34;
  --moss: #7c8465;
  --paper: #f3efe5;
  --paper-2: #e8dfcf;
  --paper-3: #d6c8ad;
  --ink: #292720;
  --muted: #746e60;
  --line: rgba(41, 39, 32, 0.18);
  --white-ink: #f6efe2;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --script: "Pinyon Script", "Cormorant Garamond", cursive;
  --pad: clamp(22px, 5vw, 80px);
  --max: 1180px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  min-width: 320px;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.75;
  color: var(--ink);
  background:
    radial-gradient(circle at 20% 0%, rgba(255,255,255,0.65), transparent 34rem),
    linear-gradient(90deg, rgba(0,0,0,0.025) 1px, transparent 1px),
    var(--paper);
  background-size: auto, 5px 5px, auto;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
strong { font-weight: 500; }
address { font-style: normal; }

::selection { background: var(--forest-800); color: var(--paper); }

.micro {
  font-family: var(--sans);
  font-size: 0.67rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--muted);
}
.micro--light { color: rgba(246, 239, 226, 0.66); }

.hand {
  font-family: var(--script);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 0.95;
}

h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 300;
  line-height: 0.98;
  letter-spacing: 0.02em;
}

h2 {
  font-size: clamp(2.45rem, 5.2vw, 4.75rem);
  margin: 0.75rem 0 1.5rem;
}
h2 .hand { display: inline-block; font-size: 0.78em; color: var(--forest-700); }
h3 { font-size: clamp(1.65rem, 2.6vw, 2.15rem); }

.paper {
  position: relative;
  background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,0.72), transparent 28rem),
    linear-gradient(90deg, rgba(32,40,25,0.025) 1px, transparent 1px),
    var(--paper);
  background-size: auto, 4px 4px, auto;
}

.paper::before,
.paper::after {
  content: "";
  position: absolute;
  pointer-events: none;
  opacity: 0.34;
}

.paper::before {
  width: 100px;
  height: 190px;
  border-left: 1px solid rgba(61, 74, 52, 0.35);
  border-bottom: 1px solid rgba(61, 74, 52, 0.22);
  border-radius: 55% 0 45% 0;
}

.photo {
  position: relative;
  background: #d8d1c3;
  box-shadow: 0 20px 55px rgba(21, 25, 17, 0.18);
}
.photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.76) contrast(1.04) brightness(0.94);
}
.photo--bw img { filter: grayscale(1) contrast(0.96) brightness(0.86); }
.taped::before {
  content: "";
  position: absolute;
  z-index: 2;
  width: 104px;
  height: 28px;
  top: -15px;
  left: 50%;
  transform: translateX(-50%) rotate(-2deg);
  background: rgba(31, 31, 27, 0.72);
  box-shadow: 0 2px 8px rgba(0,0,0,0.14);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 13px 28px;
  border: 1px solid currentColor;
  font-size: 0.68rem;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}
.button:hover { transform: translateY(-2px); }
.button--light { color: var(--white-ink); }
.button--light:hover { background: var(--white-ink); color: var(--forest-900); }

/* HERO */
.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  color: var(--white-ink);
  background: var(--forest-950);
}
.hero__image,
.hero__shade {
  position: absolute;
  inset: 0;
}
.hero__image {
  background-image: url("images/0095Dominika-Kuba-SN.jpg");
  background-size: cover;
  background-position: center 48%;
  filter: saturate(0.52) contrast(1.08) brightness(0.82);
  transform: scale(1.012);
}
.hero__shade {
  background:
    linear-gradient(180deg, rgba(10,12,9,0.42), rgba(10,12,9,0.15) 36%, rgba(10,12,9,0.58)),
    radial-gradient(circle at 55% 48%, rgba(0,0,0,0.05), rgba(0,0,0,0.62) 72%),
    linear-gradient(90deg, rgba(10,12,9,0.62), transparent 36%, rgba(10,12,9,0.42));
}
.hero__nav {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  padding: 28px var(--pad);
  color: rgba(246, 239, 226, 0.86);
}
.hero__mark,
.hero__date-small,
.hero__links a {
  font-family: var(--serif);
  font-size: 0.92rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
.hero__mark { justify-self: start; }
.hero__date-small { justify-self: end; font-family: var(--sans); font-size: 0.68rem; }
.hero__links { display: flex; gap: clamp(1.1rem, 3vw, 3.3rem); }
.hero__links a {
  font-family: var(--sans);
  font-size: 0.62rem;
  opacity: 0.82;
  transition: opacity 0.2s ease;
}
.hero__links a:hover { opacity: 1; }
.hero__title-card {
  position: relative;
  z-index: 2;
  width: min(590px, calc(100% - 44px));
  margin: clamp(120px, 22svh, 220px) auto 0;
  text-align: center;
  text-shadow: 0 6px 34px rgba(0,0,0,0.45);
}
.hero__title-card .micro { color: rgba(246, 239, 226, 0.8); margin-bottom: 1.1rem; }
.hero h1 {
  display: grid;
  gap: 0.02em;
  font-size: clamp(4rem, 9.4vw, 8.4rem);
  text-transform: none;
}
.hero h1 em {
  position: relative;
  display: inline-block;
  width: 100%;
  margin: -0.17em 0 -0.09em;
  font-family: var(--script);
  font-size: 0.36em;
  font-style: normal;
  line-height: 1;
}
.ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 1.3rem auto 1.1rem;
  color: rgba(246, 239, 226, 0.8);
}
.ornament span { width: 92px; height: 1px; background: currentColor; opacity: 0.58; }
.ornament i { font-style: normal; font-size: 0.85rem; }
.hero__meta {
  font-size: 0.75rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
}
.hero__meta--sub { margin-top: 0.65rem; opacity: 0.78; }
.hero__scroll {
  position: absolute;
  left: 50%;
  bottom: 28px;
  z-index: 3;
  width: 30px;
  height: 30px;
  transform: translateX(-50%) rotate(45deg);
  border-right: 1px solid rgba(246, 239, 226, 0.82);
  border-bottom: 1px solid rgba(246, 239, 226, 0.82);
  opacity: 0.8;
}

/* INTRO */
.intro {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(420px, 1.18fr);
  gap: clamp(3rem, 8vw, 7rem);
  max-width: 1320px;
  margin: 0 auto;
  padding: clamp(86px, 11vw, 150px) var(--pad) clamp(70px, 9vw, 120px);
}
.intro::before { left: 4vw; bottom: 4rem; transform: rotate(-18deg); }
.intro__copy { align-self: center; max-width: 430px; }
.intro__copy p:not(.micro):not(.signature) { margin-top: 1rem; color: #4f4a40; }
.signature {
  margin-top: 1.5rem;
  font-family: var(--script);
  font-size: 2rem;
  color: var(--forest-700);
}
.intro__photos {
  position: relative;
  min-height: 540px;
}
.photo--large {
  width: 67%;
  height: 470px;
}
.photo--small {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 48%;
  height: 390px;
  border: 12px solid var(--paper);
  transform: rotate(1.2deg);
}

/* INFO STRIP */
.invitation-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  max-width: 1280px;
  margin: 0 auto;
  padding: 42px var(--pad) 54px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.invitation-strip::before { display: none; }
.invitation-strip article {
  min-height: 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 clamp(18px, 3vw, 44px);
  text-align: center;
  border-right: 1px solid var(--line);
}
.invitation-strip article:last-child { border-right: 0; }
.invitation-strip svg {
  width: 46px;
  height: 46px;
  margin-bottom: 1rem;
  color: var(--forest-700);
}
.invitation-strip svg path { fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.invitation-strip strong {
  display: block;
  margin-top: 0.65rem;
  font-family: var(--serif);
  font-size: 1.16rem;
  font-weight: 400;
  line-height: 1.25;
}

/* DAY */
.day {
  display: grid;
  grid-template-columns: minmax(360px, 0.95fr) minmax(320px, 1.05fr);
  align-items: center;
  gap: clamp(3rem, 8vw, 7rem);
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(80px, 10vw, 140px) var(--pad);
}
.day::before { right: 5vw; top: 4rem; transform: rotate(20deg); }
.day__photo { height: 430px; }
.day__content { max-width: 530px; }
.day__content > p:not(.micro) { color: #4f4a40; margin-bottom: 2rem; }
.timeline {
  list-style: none;
  border-top: 1px solid var(--line);
}
.timeline li {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 1.4rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
}
.timeline time {
  font-family: var(--serif);
  font-style: italic;
  color: var(--forest-700);
  font-size: 1.12rem;
}
.timeline span { font-size: 0.92rem; color: #454137; }

/* WEEKEND */
.dark-section {
  position: relative;
  overflow: hidden;
  color: var(--white-ink);
  background:
    radial-gradient(circle at 10% 0%, rgba(255,255,255,0.08), transparent 32rem),
    linear-gradient(135deg, var(--forest-800), var(--forest-950));
}
.dark-section::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
  background-size: 4px 4px;
  mix-blend-mode: screen;
  opacity: 0.55;
}
.weekend {
  display: grid;
  grid-template-columns: minmax(320px, 0.75fr) minmax(460px, 1.25fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center;
  padding: clamp(80px, 11vw, 145px) var(--pad);
}
.weekend__copy {
  z-index: 1;
  justify-self: end;
  max-width: 440px;
}
.weekend h2 .hand { color: var(--paper-2); }
.weekend__copy p:not(.micro) { color: rgba(246, 239, 226, 0.86); margin-bottom: 1.75rem; }
.leaf-list { list-style: none; border-top: 1px solid rgba(246, 239, 226, 0.18); }
.leaf-list li {
  position: relative;
  padding: 0.86rem 0 0.86rem 1.4rem;
  border-bottom: 1px solid rgba(246, 239, 226, 0.18);
  color: rgba(246, 239, 226, 0.88);
  font-size: 0.92rem;
}
.leaf-list li::before {
  content: "〰";
  position: absolute;
  left: 0;
  color: var(--paper-3);
}
.weekend__collage {
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 0.86fr 1fr;
  grid-template-rows: 210px 190px 210px;
  gap: 10px;
  max-width: 770px;
}
.weekend__collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.68) brightness(0.84) contrast(1.03);
}
.weekend__collage img:nth-child(1) { grid-row: 1 / 3; object-position: 68% 50%; }
.weekend__collage img:nth-child(2) { grid-column: 2 / 4; }
.weekend__collage img:nth-child(3) { grid-column: 1 / 3; }
.weekend__collage img:nth-child(4) { grid-column: 3; grid-row: 2 / 4; filter: grayscale(1) brightness(0.76); }

/* PLACE */
.place {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  min-height: 610px;
}
.place::before { display: none; }
.place__image { min-height: 610px; box-shadow: none; }
.place__image img { object-position: center 45%; filter: saturate(0.62) contrast(1.03) brightness(0.9); }
.dark-card {
  background:
    radial-gradient(circle at 110% 0%, rgba(255,255,255,0.08), transparent 20rem),
    var(--forest-900);
  color: var(--white-ink);
}
.place__card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(52px, 7vw, 88px);
}
.place__card h2 .hand { color: var(--paper-2); }
.place__card p {
  max-width: 44ch;
  color: rgba(246, 239, 226, 0.86);
}
.place__card address {
  margin: 1.5rem 0 1.7rem;
  font-family: var(--serif);
  font-size: 1.16rem;
  font-style: italic;
  color: var(--paper-3);
}

/* GALLERY */
.gallery {
  display: grid;
  grid-template-columns: 1.05fr 0.8fr 1.1fr 0.8fr 1.05fr;
  background: var(--forest-950);
  border-top: 10px solid var(--paper);
  border-bottom: 10px solid var(--paper);
}
.gallery img {
  width: 100%;
  height: clamp(210px, 24vw, 360px);
  object-fit: cover;
  cursor: zoom-in;
  filter: saturate(0.62) brightness(0.82) contrast(1.05);
  transition: filter 0.28s ease, transform 0.28s ease;
}
.gallery img:nth-child(2), .gallery img:nth-child(4) { filter: grayscale(1) brightness(0.8); }
.gallery img:hover { filter: saturate(0.9) brightness(0.98); transform: scale(1.015); z-index: 1; }

/* DETAILS */
.details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  padding: 1px;
}
.details::before { display: none; }
.detail-card {
  min-height: 310px;
  padding: clamp(38px, 5vw, 66px);
  background: var(--paper);
}
.detail-card h3 { margin: 0.7rem 0 1rem; }
.detail-card p:not(.micro) { max-width: 38ch; color: #514c42; }

/* RSVP */
.rsvp {
  position: relative;
  padding: clamp(80px, 10vw, 130px) var(--pad);
  background:
    linear-gradient(rgba(23,28,21,0.74), rgba(23,28,21,0.74)),
    url("images/0016Dominika-Kuba-SN.jpg") center 55% / cover;
}
.rsvp__paper {
  position: relative;
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: clamp(2rem, 5vw, 5rem);
  max-width: 1030px;
  margin: 0 auto;
  padding: clamp(42px, 6vw, 74px);
  background:
    radial-gradient(circle at 0% 0%, rgba(255,255,255,0.86), transparent 24rem),
    var(--paper);
  box-shadow: 0 24px 70px rgba(0,0,0,0.28);
}
.rsvp__paper::before {
  content: "";
  position: absolute;
  width: 132px;
  height: 34px;
  top: -18px;
  left: 52%;
  transform: translateX(-50%) rotate(1deg);
  background: rgba(29, 28, 25, 0.72);
}
.rsvp h2 {
  margin-bottom: 1rem;
  font-size: clamp(2.25rem, 4.8vw, 4.3rem);
}
.rsvp .hand { font-size: clamp(2rem, 4vw, 3rem); color: var(--forest-700); }
.rsvp__side {
  border-left: 1px solid var(--line);
  padding-left: clamp(1.5rem, 4vw, 3.4rem);
  align-self: center;
}
.rsvp__side > p { color: #514c42; margin-bottom: 1.3rem; }
.contacts { display: grid; gap: 0.75rem; }
.contacts a {
  display: block;
  padding: 15px 18px;
  border: 1px solid var(--line);
  font-family: var(--serif);
  font-size: 1.3rem;
  transition: background 0.2s ease;
}
.contacts a:hover { background: rgba(32,40,25,0.07); }
.contacts span {
  display: block;
  margin-bottom: 0.1rem;
  font-family: var(--sans);
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--muted);
}

.footer {
  padding: 54px var(--pad) 44px;
  text-align: center;
  color: rgba(246, 239, 226, 0.72);
  background: var(--forest-950);
}
.footer__names {
  margin-bottom: 0.4rem;
  font-family: var(--serif);
  font-size: 1.75rem;
  color: var(--white-ink);
}
.footer p:last-child {
  font-size: 0.68rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

/* LIGHTBOX */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vw;
  background: rgba(14, 17, 12, 0.94);
  opacity: 0;
  pointer-events: none;
  cursor: zoom-out;
  transition: opacity 0.25s ease;
}
.lightbox.is-open { opacity: 1; pointer-events: auto; }
.lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }

@media (max-width: 980px) {
  .hero__links { display: none; }
  .hero__nav { grid-template-columns: 1fr 1fr; }
  .intro, .day, .weekend, .place, .rsvp__paper { grid-template-columns: 1fr; }
  .intro__copy, .weekend__copy { justify-self: start; max-width: 620px; }
  .intro__photos { min-height: 520px; }
  .photo--large { width: 72%; }
  .photo--small { width: 46%; }
  .invitation-strip { grid-template-columns: repeat(2, 1fr); }
  .invitation-strip article:nth-child(2) { border-right: 0; }
  .invitation-strip article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .place__image { min-height: 440px; }
  .details { grid-template-columns: 1fr; }
  .rsvp__side { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; padding-top: 2rem; }
}

@media (max-width: 680px) {
  body { font-size: 15px; }
  .hero__nav { padding-top: 22px; }
  .hero__date-small { font-size: 0.6rem; letter-spacing: 0.18em; }
  .hero__image { background-image: url("images/0067Dominika-Kuba-SN.jpg"); background-position: center 48%; }
  .hero__title-card { margin-top: 20svh; }
  .hero h1 { font-size: clamp(2.65rem, 13.4vw, 4rem); }
  .ornament span { width: 56px; }
  .intro, .day, .weekend { padding-top: 70px; padding-bottom: 76px; }
  .intro__photos { min-height: auto; display: grid; gap: 20px; }
  .photo--large, .photo--small { position: relative; width: 100%; height: auto; aspect-ratio: 4 / 3; inset: auto; transform: none; }
  .photo--small { border: 8px solid var(--paper); }
  .invitation-strip { grid-template-columns: 1fr; padding-left: 0; padding-right: 0; }
  .invitation-strip article { border-right: 0; border-bottom: 1px solid var(--line); }
  .invitation-strip article:last-child { border-bottom: 0; }
  .timeline li { grid-template-columns: 1fr; gap: 0.2rem; }
  .weekend__collage { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 160px); }
  .weekend__collage img:nth-child(n) { grid-column: auto; grid-row: auto; }
  .weekend__collage img:nth-child(1), .weekend__collage img:nth-child(4) { grid-row: span 2; }
  .gallery { grid-template-columns: repeat(2, 1fr); }
  .gallery img { height: 230px; }
  .gallery img:first-child { grid-column: span 2; }
  .rsvp__paper { padding: 34px 24px; }
  .contacts a { font-size: 1.15rem; }
  .footer p:last-child { letter-spacing: 0.16em; }
}

/* ------------------ SECOND PASS: editorial polish ------------------ */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.055;
  background-image:
    linear-gradient(0deg, transparent 0 48%, rgba(32, 28, 22, 0.45) 50%, transparent 52%),
    linear-gradient(90deg, transparent 0 48%, rgba(32, 28, 22, 0.24) 50%, transparent 52%);
  background-size: 3px 3px, 4px 4px;
  mix-blend-mode: multiply;
}

.hero::after {
  content: "";
  position: absolute;
  left: -3vw;
  right: -3vw;
  bottom: -1px;
  z-index: 4;
  height: 42px;
  background: var(--paper);
  clip-path: polygon(
    0 55%, 5% 63%, 11% 48%, 18% 60%, 25% 50%, 32% 66%,
    40% 52%, 49% 62%, 57% 47%, 65% 64%, 73% 53%, 82% 61%,
    91% 49%, 100% 58%, 100% 100%, 0 100%
  );
}

.hero__title-card {
  margin-top: clamp(135px, 24svh, 235px);
}

.hero__title-card::before,
.hero__title-card::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 54px;
  height: 54px;
  transform: translateX(-50%);
  opacity: 0.75;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23f6efe2' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round' opacity='.9'%3E%3Cpath d='M40 68V16'/%3E%3Cpath d='M40 33c-10-7-15-14-10-22 9 5 11 13 10 22Z'/%3E%3Cpath d='M40 42c11-6 18-12 15-22-10 3-14 11-15 22Z'/%3E%3Cpath d='M40 54c-9-4-16-10-14-19 9 2 13 9 14 19Z'/%3E%3Cpath d='M40 62c8-3 13-8 12-16-8 2-11 8-12 16Z'/%3E%3C/g%3E%3C/svg%3E");
}
.hero__title-card::before { top: -78px; }
.hero__title-card::after { display: none; }

.hero h1 {
  letter-spacing: 0.035em;
  text-shadow: 0 4px 18px rgba(0,0,0,0.38), 0 18px 60px rgba(0,0,0,0.42);
}
.hero__shade {
  background:
    linear-gradient(180deg, rgba(10,12,9,0.48), rgba(10,12,9,0.10) 34%, rgba(10,12,9,0.70)),
    radial-gradient(circle at 50% 47%, rgba(0,0,0,0.02), rgba(0,0,0,0.66) 73%),
    linear-gradient(90deg, rgba(10,12,9,0.66), transparent 42%, rgba(10,12,9,0.50));
}

.paper {
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.68);
}

.paper::after {
  width: 160px;
  height: 270px;
  right: clamp(18px, 6vw, 90px);
  bottom: clamp(24px, 6vw, 86px);
  opacity: 0.16;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%232d3726' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M60 210C58 165 62 108 57 22'/%3E%3Cpath d='M57 47C39 41 30 27 33 12c17 7 24 19 24 35Z'/%3E%3Cpath d='M61 72c21-10 32-25 28-43-21 7-29 22-28 43Z'/%3E%3Cpath d='M60 103c-22-8-35-23-34-41 22 6 34 20 34 41Z'/%3E%3Cpath d='M64 129c20-6 34-20 35-37-21 4-32 18-35 37Z'/%3E%3Cpath d='M61 158c-19-5-34-17-37-34 20 3 33 15 37 34Z'/%3E%3Cpath d='M63 184c16-4 27-14 31-29-17 1-28 12-31 29Z'/%3E%3C/g%3E%3C/svg%3E");
}

.intro {
  background:
    linear-gradient(90deg, rgba(255,255,255,0.48), transparent 34%, rgba(32,40,25,0.035)),
    var(--paper);
}
.intro__copy {
  position: relative;
  padding-left: clamp(0px, 1vw, 18px);
}
.intro__copy::before {
  content: "";
  position: absolute;
  left: -28px;
  top: 0.25rem;
  width: 1px;
  height: 92%;
  background: linear-gradient(transparent, var(--line), transparent);
}
.intro__copy h2 .hand,
.day__content h2 .hand,
.place__card h2 .hand,
.weekend h2 .hand {
  transform: rotate(-1deg);
}
.photo {
  border: 1px solid rgba(41,39,32,0.12);
}
.photo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.13), inset 0 -80px 90px rgba(20,24,16,0.08);
}
.photo--small {
  box-shadow: 0 22px 50px rgba(21,25,17,0.24), 0 2px 0 rgba(255,255,255,0.55) inset;
}

.invitation-strip {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.34), rgba(255,255,255,0)),
    var(--paper);
}
.invitation-strip article {
  position: relative;
}
.invitation-strip article::after {
  content: "";
  position: absolute;
  bottom: 18px;
  left: 50%;
  width: 34px;
  height: 1px;
  transform: translateX(-50%);
  background: rgba(41,39,32,0.28);
}

.day__photo {
  transform: rotate(-1.2deg);
}
.day__photo::before {
  content: "";
  position: absolute;
  top: -18px;
  right: 46px;
  z-index: 2;
  width: 118px;
  height: 31px;
  background: rgba(32, 31, 28, 0.72);
  transform: rotate(2.5deg);
}
.timeline li {
  transition: background 0.22s ease, padding-left 0.22s ease;
}
.timeline li:hover {
  background: rgba(45,55,38,0.045);
  padding-left: 0.6rem;
}

.weekend::before {
  content: "";
  position: absolute;
  left: -3vw;
  right: -3vw;
  top: -1px;
  z-index: 2;
  height: 36px;
  background: var(--paper);
  clip-path: polygon(0 0,100% 0,100% 42%,94% 55%,88% 38%,80% 51%,72% 40%,64% 58%,55% 43%,46% 56%,37% 41%,29% 54%,21% 39%,12% 57%,4% 44%,0 52%);
}
.weekend__copy {
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid rgba(246,239,226,0.12);
  background: rgba(16, 20, 14, 0.22);
  backdrop-filter: blur(1px);
}
.weekend__collage img {
  border: 1px solid rgba(246,239,226,0.12);
}
.weekend__collage {
  filter: drop-shadow(0 30px 55px rgba(0,0,0,0.30));
}

.place__card {
  position: relative;
  overflow: hidden;
}
.place__card::after {
  content: "";
  position: absolute;
  right: -18px;
  bottom: -28px;
  width: 190px;
  height: 320px;
  opacity: 0.13;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23f6efe2' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M58 210c1-46 0-98 5-190'/%3E%3Cpath d='M62 49c-16-8-24-20-22-35 16 5 22 18 22 35Z'/%3E%3Cpath d='M62 80c18-6 30-18 30-34-18 3-28 15-30 34Z'/%3E%3Cpath d='M60 118c-20-4-33-16-36-33 20 2 32 14 36 33Z'/%3E%3Cpath d='M62 153c18-4 30-15 34-31-19 1-31 13-34 31Z'/%3E%3C/g%3E%3C/svg%3E");
}

.gallery {
  border-top-width: 14px;
  border-bottom-width: 14px;
}
.gallery img {
  transform-origin: center;
}
.details {
  border-top: 1px solid rgba(41,39,32,0.12);
}
.detail-card {
  position: relative;
  overflow: hidden;
}
.detail-card::after {
  content: "";
  position: absolute;
  left: clamp(38px, 5vw, 66px);
  bottom: clamp(28px, 4vw, 44px);
  width: 42px;
  height: 1px;
  background: rgba(41,39,32,0.25);
}

.rsvp__paper {
  border: 1px solid rgba(255,255,255,0.58);
}
.rsvp h2 {
  max-width: 760px;
}

@media (max-width: 680px) {
  body::before { opacity: 0.04; }
  .hero__title-card { margin-top: 24svh; }
  .hero__title-card::before { top: -58px; width: 40px; height: 40px; }
  .intro__copy::before { display: none; }
  .paper::after { width: 110px; height: 190px; opacity: 0.11; }
  .weekend__copy { padding: 0; border: 0; background: transparent; }
  .day__photo { transform: none; }
}

/* ------------------ THIRD PASS: small tactile details ------------------ */
:root {
  --hairline: rgba(41, 39, 32, 0.14);
  --paper-shadow: 0 18px 42px rgba(28, 30, 22, 0.13);
}

/* slightly less digital-perfect edges */
.photo,
.detail-card,
.rsvp__paper,
.weekend__copy,
.invitation-strip article {
  border-radius: 2px 5px 3px 4px;
}

.photo {
  padding: 8px;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.72), rgba(232,223,207,0.88)),
    var(--paper-2);
  outline: 1px solid rgba(255,255,255,0.42);
  outline-offset: -4px;
}
.photo img {
  border-radius: 1px 4px 2px 3px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.1);
}
.photo--small {
  padding: 7px;
  border-width: 10px;
}
.photo--large {
  padding: 10px;
  transform: rotate(-0.45deg);
}
.intro__photos .photo--small {
  transform: rotate(1.6deg) translateY(-4px);
}

/* tiny worn-paper corner accents */
.intro__photos .photo--large::before,
.place__image::before {
  content: "";
  position: absolute;
  z-index: 3;
  width: 34px;
  height: 34px;
  right: 8px;
  top: 8px;
  border-top: 1px solid rgba(41,39,32,0.26);
  border-right: 1px solid rgba(41,39,32,0.20);
  opacity: 0.55;
}
.place__image::before {
  right: 18px;
  top: 18px;
  border-color: rgba(246,239,226,0.28);
}

/* make section paper feel more like a sheet placed on the page */
.intro,
.day {
  box-shadow: inset 0 18px 38px rgba(255,255,255,0.36), inset 0 -1px 0 rgba(41,39,32,0.06);
}
.intro {
  padding-top: clamp(96px, 12vw, 164px);
  padding-bottom: clamp(76px, 10vw, 132px);
}
.day {
  padding-top: clamp(90px, 11vw, 150px);
  padding-bottom: clamp(86px, 11vw, 148px);
}

/* quieter, more intentional text blocks */
.intro__copy p:not(.micro):not(.signature),
.day__content > p:not(.micro),
.place__card p,
.detail-card p:not(.micro) {
  text-wrap: pretty;
}
.intro__copy p:not(.micro):not(.signature),
.day__content > p:not(.micro) {
  max-width: 39rem;
}
.micro {
  text-underline-offset: 0.38em;
}

/* invitation strip: more like letterpress cards, not plain columns */
.invitation-strip {
  gap: 0;
  padding-top: 48px;
  padding-bottom: 58px;
}
.invitation-strip article {
  margin: 0 5px;
  background: rgba(255,255,255,0.16);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.32);
}
.invitation-strip svg {
  padding: 7px;
  border: 1px solid rgba(45,55,38,0.16);
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
}

/* timeline and cards need hand-finished spacing */
.timeline {
  margin-top: 0.35rem;
  padding-left: 0.25rem;
  border-top-color: rgba(41,39,32,0.22);
}
.timeline li {
  padding-top: 1.08rem;
  padding-bottom: 1.08rem;
}
.timeline time {
  letter-spacing: 0.015em;
}
.detail-card {
  padding-top: clamp(44px, 5.6vw, 74px);
  padding-bottom: clamp(50px, 5.8vw, 78px);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.36);
}
.detail-card h3 {
  margin-top: 0.85rem;
}
.detail-card:nth-child(2) {
  background:
    radial-gradient(circle at 100% 0%, rgba(61,74,52,0.055), transparent 16rem),
    var(--paper);
}

/* dark areas: add cloth/ink depth */
.dark-section,
.rsvp,
.dark-card,
.footer {
  background-blend-mode: multiply, normal;
}
.dark-section::before,
.rsvp::before,
.footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.075;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.18) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(90deg, rgba(0,0,0,0.18) 0 1px, transparent 1px 5px);
  mix-blend-mode: overlay;
}
.weekend::before { z-index: 3; }
.weekend__copy,
.weekend__collage,
.rsvp__paper,
.footer > * { position: relative; z-index: 2; }

.weekend__collage {
  gap: 12px;
}
.weekend__collage img {
  border-radius: 2px 6px 3px 4px;
  box-shadow: 0 0 0 1px rgba(246,239,226,0.09), 0 12px 24px rgba(0,0,0,0.16);
}
.weekend__collage img:nth-child(1) { object-position: 62% 46%; }
.weekend__collage img:nth-child(2) { object-position: 48% 46%; }
.weekend__collage img:nth-child(3) { object-position: 50% 42%; }
.weekend__collage img:nth-child(4) { object-position: 50% 36%; }

/* place image should feel mounted against the dark info card */
.place__image {
  padding: 0;
  border: 0;
  outline: 0;
}
.place__image img {
  border-radius: 0;
}
.place__image::after {
  box-shadow: inset -80px 0 80px rgba(23,28,21,0.18), inset 0 0 0 1px rgba(255,255,255,0.05);
}
.place__card {
  box-shadow: inset 1px 0 0 rgba(246,239,226,0.12), inset 0 0 0 1px rgba(255,255,255,0.025);
}

/* gallery: tiny gutters and better crops */
.gallery {
  gap: 2px;
  padding: 2px 0;
  background: var(--paper);
}
.gallery img {
  border-radius: 1px;
}
.gallery img:nth-child(1) { object-position: center 42%; }
.gallery img:nth-child(2) { object-position: center 34%; }
.gallery img:nth-child(3) { object-position: center 48%; }
.gallery img:nth-child(4) { object-position: center 48%; }
.gallery img:nth-child(5) { object-position: 68% 50%; }

/* RSVP paper: softer margins, more real-card edge */
.rsvp__paper {
  border-radius: 3px 7px 4px 6px;
  box-shadow:
    0 30px 80px rgba(0,0,0,0.30),
    0 1px 0 rgba(255,255,255,0.6) inset,
    0 0 0 1px rgba(41,39,32,0.08) inset;
}
.rsvp__paper::after {
  content: "";
  position: absolute;
  inset: 14px;
  pointer-events: none;
  border: 1px solid rgba(41,39,32,0.08);
  border-radius: 2px 5px 3px 4px;
}
.contacts a {
  border-radius: 2px 4px 2px 3px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.3);
}

@media (max-width: 980px) {
  .invitation-strip article { margin: 5px; }
}

@media (max-width: 680px) {
  .photo { padding: 6px; }
  .photo--small { border-width: 7px; }
  .intro { padding-top: 78px; padding-bottom: 82px; }
  .day { padding-top: 78px; padding-bottom: 84px; }
  .invitation-strip { padding: 22px 14px 28px; }
  .invitation-strip article { margin: 6px 0; min-height: 136px; }
  .gallery { gap: 2px; }
  .rsvp__paper::after { inset: 9px; }
}

/* restore the torn paper lip after adding dark texture */
.weekend::before {
  content: "";
  position: absolute;
  left: -3vw;
  right: -3vw;
  top: -1px;
  bottom: auto;
  z-index: 3;
  height: 36px;
  opacity: 1;
  background: var(--paper);
  mix-blend-mode: normal;
  background-image: none;
  clip-path: polygon(0 0,100% 0,100% 42%,94% 55%,88% 38%,80% 51%,72% 40%,64% 58%,55% 43%,46% 56%,37% 41%,29% 54%,21% 39%,12% 57%,4% 44%,0 52%);
}
.footer { position: relative; overflow: hidden; }

/* ------------------ FOURTH PASS: closer to the reference concept ------------------ */
:root {
  --paper: #f6f1e8;
  --paper-2: #eee6d8;
  --paper-3: #d7c7aa;
  --ink: #25231d;
  --muted: #746d61;
  --forest-950: #171b14;
  --forest-900: #202719;
}

body {
  background:
    radial-gradient(circle at 12% 10%, rgba(255,255,255,0.74), transparent 34rem),
    linear-gradient(90deg, rgba(32,40,25,0.018) 1px, transparent 1px),
    var(--paper);
  background-size: auto, 6px 6px, auto;
}
body::before { opacity: 0.035; }

/* Hero: less movie poster, more printed monochrome invitation */
.hero {
  min-height: clamp(690px, 92svh, 860px);
  background: #1f211c;
}
.hero__image {
  background-image: url("images/0095Dominika-Kuba-SN.jpg");
  background-position: center 45%;
  filter: grayscale(1) saturate(0) contrast(0.96) brightness(0.84);
  transform: scale(1.005);
}
.hero__shade {
  background:
    linear-gradient(180deg, rgba(12,13,10,0.30), rgba(12,13,10,0.08) 34%, rgba(12,13,10,0.46)),
    radial-gradient(circle at 50% 46%, rgba(0,0,0,0.02), rgba(0,0,0,0.36) 78%),
    linear-gradient(90deg, rgba(12,13,10,0.30), transparent 38%, rgba(12,13,10,0.22));
}
.hero__nav { padding-top: 24px; }
.hero__links a, .hero__date-small, .hero__mark { opacity: 0.72; }
.hero__title-card {
  margin-top: clamp(118px, 19svh, 178px);
  width: min(520px, calc(100% - 44px));
}
.hero__title-card::before { width: 42px; height: 42px; top: -62px; opacity: 0.62; }
.hero h1 {
  gap: 0;
  font-size: clamp(4.2rem, 8.1vw, 7.25rem);
  letter-spacing: 0.018em;
  text-shadow: 0 5px 28px rgba(0,0,0,0.38);
}
.hero h1 em { margin: -0.22em 0 -0.13em; font-size: 0.31em; }
.hero__title-card .micro, .hero__meta { letter-spacing: 0.32em; }
.hero__meta--sub { margin-top: 0.5rem; }
.ornament { margin: 1rem auto 0.9rem; }
.ornament span { width: 108px; opacity: 0.48; }
.hero::after, .weekend::before { display: none; }

/* Story: cleaner editorial photographs, less scrapbook */
.intro {
  grid-template-columns: minmax(280px, 0.72fr) minmax(520px, 1.28fr);
  gap: clamp(4rem, 8vw, 8rem);
  padding-top: clamp(92px, 10vw, 138px);
}
.intro__copy::before { opacity: 0.5; }
.intro__photos { min-height: 470px; }
.photo {
  padding: 0;
  border: 0;
  outline: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.photo img { border-radius: 0; box-shadow: none; }
.photo::after { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); }
.photo--large {
  width: 58%;
  height: 430px;
  transform: none;
}
.intro__photos .photo--small {
  width: 54%;
  height: 360px;
  right: 0;
  bottom: 16px;
  padding: 0;
  border: 0;
  transform: none;
}
.taped::before, .day__photo::before, .rsvp__paper::before { display: none; }
.paper::before { opacity: 0.16; }
.paper::after { opacity: 0.10; }

/* The day: stationery moment + three refined info columns */
.day {
  grid-template-columns: minmax(420px, 0.96fr) minmax(420px, 1.04fr);
  max-width: none;
  padding: clamp(78px, 9vw, 126px) var(--pad);
  gap: clamp(3.4rem, 7vw, 6rem);
  background:
    linear-gradient(90deg, rgba(32,40,25,0.035), transparent 45%),
    var(--paper);
}
.stationery-scene {
  position: relative;
  min-height: 470px;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 10%, rgba(215,199,170,0.36), transparent 18rem),
    linear-gradient(135deg, #ebe3d6, #faf7ef 58%, #e5dac8);
  box-shadow: inset 0 0 0 1px rgba(41,39,32,0.06);
}
.stationery-scene__envelope {
  position: absolute;
  left: 6%;
  bottom: 13%;
  width: 58%;
  height: 38%;
  transform: rotate(-7deg);
  background: #22221f;
  box-shadow: 0 22px 48px rgba(30,28,23,0.22);
}
.stationery-scene__envelope::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, transparent 49%, rgba(255,255,255,0.08) 50%, transparent 51%),
              linear-gradient(215deg, transparent 49%, rgba(255,255,255,0.06) 50%, transparent 51%);
}
.stationery-scene__card {
  position: absolute;
  left: 28%;
  top: 16%;
  display: grid;
  place-items: center;
  width: 42%;
  min-height: 52%;
  padding: 36px 24px;
  text-align: center;
  color: var(--ink);
  background: rgba(250,247,239,0.92);
  box-shadow: 0 18px 38px rgba(30,28,23,0.14), inset 0 0 0 1px rgba(41,39,32,0.08);
  transform: rotate(1.5deg);
}
.stationery-scene__card span {
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4vw, 4.2rem);
  line-height: 0.9;
}
.stationery-scene__card em { font-family: var(--script); font-size: 1.45rem; font-style: normal; color: var(--forest-700); }
.stationery-scene__card small { margin-top: 1rem; font-size: 0.64rem; letter-spacing: 0.32em; color: var(--muted); }
.stationery-scene__ribbon {
  position: absolute;
  left: 14%;
  bottom: 5%;
  width: 78%;
  height: 20px;
  background: #171714;
  transform: rotate(-9deg);
  box-shadow: 0 10px 22px rgba(0,0,0,0.18);
}
.stationery-scene__ribbon::after {
  content: "";
  position: absolute;
  right: 18%;
  top: -75px;
  width: 22px;
  height: 180px;
  background: #171714;
  transform: rotate(82deg);
}
.stationery-scene__sprig {
  position: absolute;
  right: 6%;
  top: 8%;
  width: 150px;
  height: 270px;
  opacity: 0.34;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23746d61' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M62 210C60 160 65 102 57 18'/%3E%3Cpath d='M57 42C42 35 34 24 37 10c14 5 20 16 20 32Z'/%3E%3Cpath d='M61 75c20-8 31-21 28-39-19 5-27 20-28 39Z'/%3E%3Cpath d='M60 112c-20-7-31-20-31-37 20 4 30 18 31 37Z'/%3E%3Cpath d='M63 151c18-5 30-17 32-33-18 2-29 15-32 33Z'/%3E%3C/g%3E%3C/svg%3E");
}
.day__content { max-width: 620px; }
.day__facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 2.2rem;
  border-top: 0;
}
.day__facts article {
  min-height: 160px;
  padding: 0 26px;
  text-align: center;
  border-right: 1px solid var(--line);
}
.day__facts article:first-child { padding-left: 0; }
.day__facts article:last-child { border-right: 0; padding-right: 0; }
.day__facts svg {
  width: 44px;
  height: 44px;
  margin: 0 auto 1rem;
  color: var(--forest-700);
}
.day__facts svg path { fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.day__facts strong {
  display: block;
  margin-top: 0.55rem;
  font-family: var(--serif);
  font-size: 1.12rem;
  font-weight: 400;
  line-height: 1.22;
}
.timeline, .invitation-strip { display: none; }

/* Weekend: reference-style light editorial strip */
.weekend {
  display: grid;
  grid-template-columns: minmax(280px, 0.42fr) minmax(620px, 0.58fr);
  gap: clamp(2.4rem, 5vw, 5rem);
  align-items: end;
  padding: clamp(76px, 9vw, 118px) var(--pad);
  color: var(--ink);
  background:
    radial-gradient(circle at 0% 55%, rgba(215,199,170,0.18), transparent 20rem),
    var(--paper);
}
.weekend::after {
  content: "";
  position: absolute;
  left: -18px;
  bottom: 22px;
  width: 150px;
  height: 280px;
  opacity: 0.28;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%237c8465' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M56 215c7-51 8-113 4-196'/%3E%3Cpath d='M60 52C43 44 35 31 38 15c16 6 23 19 22 37Z'/%3E%3Cpath d='M60 91c20-8 32-22 31-40-20 4-30 20-31 40Z'/%3E%3Cpath d='M58 133c-22-5-35-19-37-38 22 3 34 18 37 38Z'/%3E%3C/g%3E%3C/svg%3E");
}
.weekend__copy {
  justify-self: start;
  max-width: 450px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  backdrop-filter: none;
}
.weekend h2 .hand { color: var(--forest-700); }
.weekend__copy p:not(.micro) { color: #514c42; }
.weekend__note {
  margin-top: 2rem;
  font-size: 0.86rem;
  letter-spacing: 0.03em;
  text-transform: none;
}
.weekend__note::before {
  content: "CZEKAJĄ NA WAS:";
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  color: var(--muted);
}
.weekend__collage {
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(5, minmax(100px, 1fr));
  grid-template-rows: auto;
  gap: clamp(12px, 1.5vw, 20px);
  max-width: none;
  filter: none;
}
.weekend__collage figure { min-width: 0; }
.weekend__collage img {
  width: 100%;
  height: clamp(132px, 13vw, 190px);
  object-fit: cover;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  filter: saturate(0.78) contrast(1.02) brightness(0.92);
}
.weekend__collage figure:nth-child(2) img,
.weekend__collage figure:nth-child(4) img { filter: grayscale(1) contrast(0.94) brightness(0.88); }
.weekend__collage figcaption {
  margin-top: 0.9rem;
  text-align: center;
  font-size: 0.68rem;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #3f3b32;
}

/* Place: keep dark card, make it more like the concept */
.place__card h2::after {
  content: "";
  display: inline-block;
  width: min(150px, 36%);
  height: 1px;
  margin-left: 0.28em;
  vertical-align: middle;
  background: rgba(246,239,226,0.45);
}
.place__card .button {
  border: 0;
  min-height: auto;
  padding: 0;
  margin-top: 0.2rem;
  letter-spacing: 0.22em;
  text-decoration: underline;
  text-underline-offset: 0.55em;
}
.place__card .button:hover { background: transparent; color: var(--paper-3); transform: none; }

.gallery {
  grid-template-columns: 1.1fr 0.82fr 0.95fr 0.82fr 1.05fr;
  border: 0;
  padding: 2px 0;
}
.gallery img { height: clamp(160px, 16vw, 245px); }
.gallery img:hover { transform: none; }

/* Details: thin editorial columns, not cards */
.details {
  background: var(--paper);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 0 var(--pad);
}
.detail-card {
  min-height: 260px;
  padding-left: clamp(28px, 4vw, 54px);
  padding-right: clamp(28px, 4vw, 54px);
  border-right: 1px solid var(--line);
  box-shadow: none;
}
.detail-card:last-child { border-right: 0; }
.detail-card::after { width: 34px; }

/* RSVP: light paper composition with physical envelope cue */
.rsvp {
  display: grid;
  grid-template-columns: minmax(260px, 0.34fr) minmax(620px, 0.66fr);
  gap: 0;
  padding: 0;
  background: var(--paper);
}
.rsvp::before { display: none; }
.rsvp__image {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  background:
    radial-gradient(circle at 16% 14%, rgba(255,255,255,0.65), transparent 18rem),
    linear-gradient(135deg, #e8dfd0, #f8f3ea);
  border-right: 1px solid var(--line);
}
.rsvp__envelope {
  position: absolute;
  left: 12%;
  top: 29%;
  width: 78%;
  height: 42%;
  transform: rotate(-5deg);
  background: #1c1b18;
  box-shadow: 0 22px 52px rgba(27,25,22,0.26);
}
.rsvp__envelope::before,
.rsvp__envelope::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, transparent 49%, rgba(255,255,255,0.08) 50%, transparent 51%);
}
.rsvp__envelope::after { background: linear-gradient(215deg, transparent 49%, rgba(255,255,255,0.06) 50%, transparent 51%); }
.rsvp__seal {
  position: absolute;
  left: 52%;
  top: 46%;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  color: #f7efe2;
  background: #9b7541;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,0.16), 0 8px 18px rgba(0,0,0,0.18);
  transform: rotate(-5deg);
}
.rsvp__ribbon {
  position: absolute;
  left: 8%;
  top: 59%;
  width: 86%;
  height: 18px;
  background: #161512;
  transform: rotate(-13deg);
}
.rsvp__paper {
  display: grid;
  grid-template-columns: 1.12fr 0.88fr;
  gap: clamp(1.8rem, 4vw, 4.2rem);
  max-width: none;
  margin: 0;
  padding: clamp(52px, 7vw, 92px) var(--pad);
  background: var(--paper);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.rsvp__paper::after { display: none; }
.rsvp__main { text-align: center; align-self: center; }
.rsvp h2 {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(2.2rem, 4.6vw, 4rem);
}
.ornament--dark { color: var(--ink); text-shadow: none; }
.rsvp__side {
  padding-left: clamp(1.5rem, 3vw, 3rem);
  border-left: 1px solid var(--line);
}
.rsvp__side > p { display: grid; grid-template-columns: 28px 1fr; gap: 0.85rem; align-items: start; }
.contact-icon { color: var(--forest-700); }
.contacts { gap: 0.45rem; }
.contacts a {
  padding: 0;
  border: 0;
  box-shadow: none;
  font-size: 1.08rem;
}
.contacts a:hover { background: transparent; color: var(--forest-700); }

/* Footer: final emotional photo panel */
.footer {
  position: relative;
  overflow: hidden;
  min-height: 265px;
  display: grid;
  place-items: center;
  align-content: center;
  padding: 64px var(--pad);
  background:
    linear-gradient(rgba(17,19,15,0.54), rgba(17,19,15,0.62)),
    url("images/0039Dominika-Kuba-SN.jpg") center 45% / cover;
}
.footer__waiting {
  font-family: var(--serif);
  font-size: clamp(2.35rem, 4.6vw, 4.4rem);
  line-height: 1;
  color: var(--white-ink);
}
.footer .ornament { margin: 0.8rem auto 0.5rem; }
.footer__names { font-size: clamp(1.5rem, 2.4vw, 2.2rem); }

@media (max-width: 980px) {
  .hero { min-height: 760px; }
  .intro, .day, .weekend, .rsvp, .rsvp__paper { grid-template-columns: 1fr; }
  .intro__photos { min-height: 470px; }
  .stationery-scene { min-height: 420px; }
  .day__facts { grid-template-columns: repeat(3, 1fr); }
  .weekend__collage { grid-template-columns: repeat(3, 1fr); }
  .rsvp__image { min-height: 280px; border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 680px) {
  .hero { min-height: 100svh; }
  .hero__image { background-image: url("images/0067Dominika-Kuba-SN.jpg"); background-position: center 44%; }
  .hero h1 { font-size: clamp(3rem, 13vw, 4.4rem); }
  .hero__title-card { margin-top: 19svh; }
  .intro__photos { display: grid; gap: 16px; min-height: auto; }
  .photo--large, .intro__photos .photo--small { position: relative; width: 100%; height: auto; aspect-ratio: 4 / 3; inset: auto; }
  .day { padding-top: 64px; }
  .stationery-scene { min-height: 360px; }
  .stationery-scene__card { width: 48%; left: 28%; top: 14%; min-height: 50%; }
  .day__facts { grid-template-columns: 1fr; border-top: 1px solid var(--line); }
  .day__facts article { border-right: 0; border-bottom: 1px solid var(--line); padding: 24px 0; min-height: auto; }
  .day__facts article:last-child { border-bottom: 0; }
  .weekend__collage { grid-template-columns: repeat(2, 1fr); }
  .weekend__collage figcaption { font-size: 0.62rem; letter-spacing: 0.12em; }
  .details { grid-template-columns: 1fr; padding: 0; }
  .detail-card { border-right: 0; border-bottom: 1px solid var(--line); }
  .detail-card:last-child { border-bottom: 0; }
  .rsvp__paper { padding: 44px 24px; }
  .rsvp__side { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; padding-top: 2rem; }
  .gallery img { height: 190px; }
}

/* ------------------ FIFTH PASS: alignment and copy rhythm fixes ------------------ */
.intro__copy {
  max-width: 500px;
}
.intro h2 {
  font-size: clamp(2.7rem, 4.7vw, 4.25rem);
}
.intro h2 .hand {
  white-space: nowrap;
  font-size: 0.72em;
}
.intro__copy p:not(.micro):not(.signature) {
  max-width: 34rem;
}

/* RSVP: give the confirmation block enough breathing room and make icons real icons */
.rsvp {
  grid-template-columns: minmax(300px, 0.32fr) minmax(760px, 0.68fr);
}
.rsvp__paper {
  grid-template-columns: minmax(360px, 1fr) minmax(260px, 320px);
  gap: clamp(2rem, 4.2vw, 4.8rem);
  align-items: center;
  padding-top: clamp(58px, 6.5vw, 82px);
  padding-bottom: clamp(58px, 6.5vw, 82px);
}
.rsvp h2 {
  max-width: 560px;
  font-size: clamp(2.15rem, 3.65vw, 3.45rem);
  line-height: 1.02;
  text-wrap: balance;
}
.rsvp__main .button {
  margin-top: 0.3rem;
}
.rsvp__side {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.35rem;
  padding-left: clamp(1.8rem, 3.2vw, 3.6rem);
}
.rsvp__side > p {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 1rem;
  margin-bottom: 0;
  line-height: 1.55;
}
.rsvp__side > p span:not(.contact-icon) {
  min-width: 0;
}
.contact-icon {
  width: 34px;
  height: 34px;
  margin-top: 0.08rem;
  color: var(--forest-700);
}
.contact-icon path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.contacts {
  padding-left: 52px;
  gap: 0.35rem;
}
.contacts a {
  line-height: 1.28;
}
.contacts span {
  margin-bottom: 0;
  letter-spacing: 0.22em;
}

.footer {
  min-height: 235px;
  padding-top: 54px;
  padding-bottom: 54px;
}
.footer__waiting {
  text-align: center;
  text-wrap: balance;
}
.footer p:last-child {
  text-align: center;
}

@media (max-width: 1180px) {
  .rsvp { grid-template-columns: 0.34fr 0.66fr; }
  .rsvp__paper { grid-template-columns: 1fr minmax(240px, 285px); }
  .rsvp h2 { font-size: clamp(2rem, 3.4vw, 3rem); }
}

@media (max-width: 980px) {
  .intro__copy { max-width: 620px; }
  .rsvp { grid-template-columns: 1fr; }
  .rsvp__paper { grid-template-columns: 1fr; }
  .rsvp__side {
    align-self: auto;
    display: grid;
    justify-content: stretch;
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-top: 2rem;
  }
  .contacts { padding-left: 52px; }
}

@media (max-width: 680px) {
  .intro h2 { font-size: clamp(2.55rem, 11vw, 3.5rem); }
  .intro h2 .hand {
    white-space: normal;
    font-size: 0.7em;
  }
  .rsvp h2 { font-size: clamp(2.05rem, 10vw, 3rem); }
  .rsvp__side > p { grid-template-columns: 38px 1fr; }
  .contact-icon { width: 31px; height: 31px; }
  .contacts { padding-left: 48px; }
}

/* ------------------ SIXTH PASS: focused polish for story, RSVP and footer ------------------ */
/* Story heading: intentional two-line lockup, not accidental wrapping */
.intro__copy {
  max-width: 540px;
}
.intro h2 {
  margin-top: 0.65rem;
  margin-bottom: 1.35rem;
  font-size: clamp(2.85rem, 4.45vw, 4.05rem);
  line-height: 0.96;
}
.intro h2 .hand {
  display: block;
  width: max-content;
  max-width: 100%;
  margin-top: 0.03em;
  font-size: 0.68em;
  line-height: 0.94;
  white-space: nowrap;
}
.intro__copy p:not(.micro):not(.signature) {
  max-width: 31.5rem;
  line-height: 1.72;
}
.signature {
  margin-top: 1.35rem;
}

/* RSVP/contact: less cramped, stronger icons, cleaner reading column */
.rsvp {
  grid-template-columns: minmax(300px, 0.31fr) minmax(800px, 0.69fr);
}
.rsvp__paper {
  grid-template-columns: minmax(340px, 0.95fr) minmax(320px, 0.72fr);
  gap: clamp(2.4rem, 4.6vw, 5.4rem);
  padding-left: clamp(52px, 6vw, 96px);
  padding-right: clamp(52px, 6vw, 96px);
}
.rsvp h2 {
  max-width: 520px;
  font-size: clamp(2.05rem, 3.35vw, 3.15rem);
  line-height: 1.03;
}
.rsvp__side {
  gap: 1.55rem;
  padding-left: clamp(2rem, 3.4vw, 3.8rem);
}
.rsvp__side > p {
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 1.05rem;
  font-size: 0.94rem;
  line-height: 1.62;
}
.contact-icon {
  width: 39px;
  height: 39px;
  margin-top: 0.02rem;
  opacity: 0.9;
}
.contact-icon path {
  stroke-width: 1.32;
}
.contacts {
  padding-left: 58px;
  gap: 0.28rem;
}
.contacts a {
  font-size: 1.03rem;
}
.contacts span {
  font-size: 0.58rem;
  letter-spacing: 0.2em;
}

/* Footer: more intentional final image crop and calmer contrast */
.footer {
  min-height: 250px;
  background:
    linear-gradient(rgba(17,19,15,0.44), rgba(17,19,15,0.58)),
    url("images/0098Dominika-Kuba-SN.jpg") center 42% / cover;
}
.footer__waiting {
  text-shadow: 0 10px 34px rgba(0,0,0,0.42);
}
.footer p:last-child {
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.45;
}

@media (max-width: 1180px) {
  .rsvp { grid-template-columns: 0.3fr 0.7fr; }
  .rsvp__paper {
    grid-template-columns: minmax(300px, 0.9fr) minmax(295px, 0.75fr);
    gap: 2.6rem;
  }
  .rsvp h2 { font-size: clamp(1.95rem, 3.15vw, 2.85rem); }
}

@media (max-width: 980px) {
  .rsvp { grid-template-columns: 1fr; }
  .rsvp__paper {
    grid-template-columns: 1fr;
    max-width: 760px;
    margin: 0 auto;
  }
  .rsvp__side { padding-left: 0; }
  .contacts { padding-left: 58px; }
}

@media (max-width: 680px) {
  .hero__image {
    background-position: center 64%;
  }
  .hero__title-card {
    margin-top: 16svh;
  }
  .intro h2 {
    font-size: clamp(2.62rem, 10.6vw, 3.35rem);
  }
  .intro h2 .hand {
    width: auto;
    font-size: 0.66em;
    white-space: normal;
  }
  .rsvp__paper {
    padding: 42px 28px 46px;
  }
  .rsvp h2 {
    max-width: 330px;
    font-size: clamp(2rem, 9.2vw, 2.75rem);
  }
  .rsvp__side > p {
    grid-template-columns: 42px 1fr;
    gap: 0.95rem;
    font-size: 0.92rem;
  }
  .contact-icon {
    width: 35px;
    height: 35px;
  }
  .contacts { padding-left: 52px; }
  .footer {
    min-height: 280px;
    background-position: center 38%;
  }
}

/* Story title correction: keep the script phrase readable while preventing bad wraps */
.intro h2 {
  font-size: clamp(2.75rem, 4.55vw, 4.15rem);
  line-height: 0.98;
}
.intro h2 .hand {
  font-size: 0.76em;
  line-height: 0.9;
  margin-top: 0.02em;
  letter-spacing: -0.015em;
}
@media (max-width: 680px) {
  .intro h2 .hand {
    font-size: 0.7em;
    letter-spacing: -0.01em;
  }
}

/* ------------------ SEVENTH PASS: make history section use the same full-width rhythm as the day section ------------------ */
.intro {
  max-width: none;
  width: 100%;
  margin: 0;
  grid-template-columns: minmax(420px, 0.88fr) minmax(620px, 1.12fr);
  padding-left: var(--pad);
  padding-right: var(--pad);
  background:
    linear-gradient(90deg, rgba(255,255,255,0.42), transparent 38%, rgba(32,40,25,0.032)),
    var(--paper);
}
.intro__copy {
  justify-self: center;
  width: min(100%, 540px);
}
.intro__photos {
  justify-self: center;
  width: min(100%, 820px);
}

@media (max-width: 980px) {
  .intro {
    grid-template-columns: 1fr;
  }
  .intro__copy,
  .intro__photos {
    justify-self: start;
    width: 100%;
  }
}
