:root{--paper:#f8f0dc;--ink:#427552;--accent:#639769;--mint:#c3dda8;--leaf:#dce9c6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 'Trebuchet MS',Arial,sans-serif}a{color:inherit}header{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1400px;margin:auto;padding:20px 6%;border-bottom:1px solid #42755230}.brand{font:bold 32px Georgia,serif;text-decoration:none;white-space:nowrap}.brand span{color:var(--accent);font-style:italic;padding:0 3px}nav{display:flex;gap:30px;align-items:center}nav a{text-decoration:none;font-size:15px;font-weight:bold}nav a:hover{text-decoration:underline;text-underline-offset:6px}.nav-rsvp{border:1px solid var(--ink);padding:9px 20px;border-radius:30px}.hero{max-width:1400px;margin:auto;padding:65px 6% 70px;display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:45px}.eyebrow{font-size:13px;letter-spacing:2px;font-weight:bold;margin:0 0 22px}h1{font-family:Georgia,serif;font-size:clamp(76px,9.5vw,142px);letter-spacing:-7px;line-height:.91;margin:0 0 30px;font-weight:normal}h1 span{color:var(--accent);font-style:italic;font-size:.8em}.date{font-weight:bold;font-size:16px}.date span{color:var(--accent);padding:0 8px}.intro{font-size:20px;line-height:1.5;margin:24px 0}.button{display:inline-block;padding:13px 26px;border-radius:30px;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:bold;font-size:16px;transition:transform .2s}.button:hover{transform:translateY(-3px)}.hero-art{position:relative;padding:12px 12px 0;background:#fff;transform:rotate(3deg);box-shadow:9px 10px 0 #427552}.hero-art img{display:block;width:100%;height:440px;object-fit:cover}.art-note{font:italic 23px Georgia,serif;text-align:center;padding:20px 8px;color:#427552}.ribbon{background:var(--accent);color:var(--paper);display:flex;justify-content:center;align-items:center;gap:35px;text-align:center;padding:17px 24px;font-size:14px;font-weight:bold;letter-spacing:2px}.ribbon span{font-size:25px}.section{padding:90px 6%;max-width:1400px;margin:auto}h2{font:normal clamp(42px,5vw,68px)/1.1 Georgia,serif;letter-spacing:-2px;margin:0 0 26px}h3{font:normal 32px/1.15 Georgia,serif;margin:0 0 20px}p{margin:0 0 18px}.welcome{text-align:center;max-width:850px;padding-top:85px;padding-bottom:75px}.signature{font:italic 29px Georgia,serif;color:var(--accent);margin-top:28px}.schedule{border-top:1px solid #42755235}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:center}.section-head>p{max-width:330px}.days{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:20px;margin-top:26px;align-items:stretch}.day{border:1px solid #42755260;padding:30px;display:flex;flex-direction:column}.day-date{letter-spacing:2px;font-size:14px;font-weight:bold;margin-bottom:32px}.tag{font-size:14px;display:inline-block;align-self:flex-start;line-height:1.4;border:1px solid currentColor;border-radius:24px;padding:6px 12px;margin-bottom:23px}.day>p:not(.day-date){font-size:16px}.day-bottom{border-top:1px solid #42755240;padding-top:19px;margin-top:auto;font-size:14px}.main-day{background:var(--mint);border-color:var(--mint)}.acts{display:grid;gap:9px;font-size:16px;margin-bottom:26px}.acts span:before{content:'✳';margin-right:10px}.location{display:grid;grid-template-columns:1fr 1fr;gap:90px;background:var(--ink);color:var(--paper);max-width:none;padding-left:max(6%,calc((100vw - 1232px)/2));padding-right:max(6%,calc((100vw - 1232px)/2))}.location>div>p{max-width:460px}.outline{border:1px solid var(--paper);margin-top:15px}.venue-card{border:1px solid #f8f0dc70;padding:35px;transform:rotate(-2deg)}.venue-card h3{font-size:54px;margin-bottom:4px}.venue-sub{font-size:18px}hr{border:0;border-top:1px solid #f8f0dc50;margin:24px 0}h4{font-size:16px;margin:0 0 5px}.venue-card div p{font-size:15px;max-width:360px}.venue-date{display:block;text-align:right;color:var(--mint);font:30px Georgia,serif;margin-top:25px}.faq{display:grid;grid-template-columns:.85fr 1.3fr;gap:80px}.faq>div>p{max-width:300px}details{border-bottom:1px solid #42755245}details:first-child{border-top:1px solid #42755245}summary{padding:23px 28px 23px 0;cursor:pointer;font-weight:bold;position:relative;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:2px;font-size:23px;top:17px}details[open] summary:after{content:'−'}details p{font-size:16px;padding-right:24px}.rsvp{max-width:none;background:var(--leaf);text-align:center}.rsvp h2{font-size:clamp(50px,7vw,90px)}.form-placeholder{max-width:630px;margin:36px auto 0;border:1px solid #42755270;padding:32px;background:#f8f0dc55}.form-placeholder h3{font-size:28px}.form-placeholder .tag{margin-bottom:18px}.small{font-size:14px;margin-bottom:0}footer{padding:30px 6%;display:flex;justify-content:space-between;align-items:center;gap:20px}footer p{font-size:14px;margin:0}.skip{position:absolute;top:-100px;background:var(--ink);color:white;padding:15px;z-index:5}.skip:focus{top:0}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
@media(min-width:1600px){.hero-art img{height:490px}}@media(max-width:900px){header{padding:18px 5%}nav{gap:18px}.hero{gap:25px;padding:55px 5%}.hero-art img{height:370px}h1{letter-spacing:-4px}.date{font-size:14px}.days{gap:12px}.day{padding:22px}.section{padding:70px 5%}.location,.faq{gap:40px}.ribbon{gap:20px;font-size:12px;letter-spacing:1px}}
@media(max-width:650px){header{display:block}.brand{display:block;text-align:center;margin-bottom:16px}nav{justify-content:space-between;gap:8px}nav a{font-size:14px}.nav-rsvp{padding:6px 9px}.hero{grid-template-columns:1fr;padding:43px 6% 52px;gap:40px}.hero-copy{text-align:center}.eyebrow{font-size:12px;letter-spacing:1.5px}h1{font-size:100px;letter-spacing:-5px}h1 br{display:none}h1 span{display:block;font-size:55px;margin:6px}h1{line-height:.9}.date{font-size:15px}.intro{font-size:18px}.hero-art{max-width:440px;margin:0 auto;transform:rotate(2deg)}.hero-art img{height:auto;aspect-ratio:1.3;object-fit:cover}.art-note{font-size:20px;padding:14px 2px}.ribbon{font-size:12px;display:block;padding:16px 20px}.ribbon span{display:block;font-size:18px;line-height:1.6}.section{padding:58px 6%}.section-head{display:block}.days{grid-template-columns:1fr;gap:18px}.day{padding:28px}.day-date{margin-bottom:20px}.day-bottom{margin-top:18px}.location,.faq{grid-template-columns:1fr;gap:30px}.venue-card{transform:none;padding:26px}.faq>div>p{max-width:none}.form-placeholder{padding:25px 20px}.form-placeholder p{font-size:16px}footer{flex-direction:column;text-align:center;gap:8px}footer .brand{margin-bottom:4px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

.bunting {
  position: relative;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  max-width: 920px;
  height: 78px;
  margin: 8px auto 22px;
  padding: 0 3%;
  overflow: hidden;
}

.bunting::before {
  content: "";
  position: absolute;
  top: -46px;
  left: 2%;
  width: 96%;
  height: 68px;
  border-bottom: 3px solid var(--accent);
  border-radius: 0 0 50% 50%;
}

.bunting span {
  --drop: 0px;
  position: relative;
  z-index: 1;
  color: var(--accent);
  font-size: 34px;
  line-height: 1;
  transform: translateY(var(--drop));
}

.bunting span:nth-child(2), .bunting span:nth-child(10) { --drop: 5px; }
.bunting span:nth-child(3), .bunting span:nth-child(9) { --drop: 10px; }
.bunting span:nth-child(4), .bunting span:nth-child(8) { --drop: 15px; }
.bunting span:nth-child(5), .bunting span:nth-child(7) { --drop: 19px; }
.bunting span:nth-child(6) { --drop: 22px; }
.bunting span:nth-child(3n + 2) { color: var(--mint); }
.bunting span:nth-child(3n) { color: #8fbd78; }

.welcome-lead:empty { display: none; }

.welcome h2 {
  font-size: clamp(34px, 4vw, 52px);
  letter-spacing: -1.2px;
}

.schedule-note {
  padding: 18px 22px;
  border-radius: 10px;
  background: var(--ink);
  color: var(--paper);
  font-weight: bold;
}

.location + .bunting { margin-top: 52px; }

.participation {
  grid-column: 1 / -1;
  margin-top: 18px;
  padding: 36px 40px;
  background: var(--leaf);
  border: 1px solid #42755240;
}

.participation h3 {
  margin-bottom: 14px;
  font-size: clamp(28px, 3.5vw, 42px);
}

.participation p:last-child {
  max-width: 900px;
  margin-bottom: 0;
}

.participation a { font-weight: bold; }

.memories {
  display: grid;
  grid-template-columns: 0.85fr 1.3fr;
  gap: 80px;
  align-items: center;
}

.memories-card {
  padding: 36px 40px;
  background: var(--mint);
  border: 1px solid #42755240;
  transform: rotate(1deg);
}

.upload-placeholder {
  display: inline-block;
  margin-top: 8px;
  padding: 10px 18px;
  border: 1px dashed var(--ink);
  border-radius: 24px;
  font-weight: bold;
}

@media (max-width: 900px) {
  header { flex-wrap: wrap; }
  nav { flex: 1 1 100%; justify-content: center; flex-wrap: wrap; row-gap: 10px; }
  .memories { gap: 40px; }
}

@media (max-width: 650px) {
  .bunting { height: 58px; margin: 4px auto 10px; }
  .bunting::before { top: -50px; height: 65px; }
  .bunting span { font-size: 26px; }
  .location + .bunting { margin-top: 38px; }
  .participation { padding: 28px 24px; }
  nav { gap: 8px 14px; }
  .memories { grid-template-columns: 1fr; gap: 20px; }
  .memories-card { padding: 28px 24px; transform: none; }
}
