@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500&family=Cormorant+Garamond:ital,wght@1,400;1,500&family=Jost:wght@400;500;600&display=swap');

:root{
  --bone:#F5F1E8; --bone2:#EFEAE0; --ink:#22211D; --cypress:#3E4A3D;
  --terra:#B4633A; --olive:#7C7A60; --line:rgba(34,33,29,.16);
  --serif:"Bodoni Moda",serif; --accent:"Cormorant Garamond",serif; --sans:"Jost",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0} html{scroll-behavior:smooth}
body{background:var(--bone) url("assets/texture-paper.png");background-size:520px;color:var(--ink);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit}.wrap{width:min(1120px,calc(100% - 40px));margin:auto}
.eyebrow,.smallcaps{font-family:var(--sans);font-weight:500;text-transform:uppercase;letter-spacing:.32em}
.eyebrow{font-size:12px;color:var(--terra)} .smallcaps{font-size:11px;color:var(--olive)}
h1,h2,h3{font-family:var(--serif);font-weight:500} h2{font-size:clamp(34px,5vw,56px);line-height:1.08}
.accent{font-family:var(--accent);font-style:italic;color:var(--cypress)}
.section{padding:96px 0}.section.alt{background:var(--bone2)}.section.dark{background:var(--cypress);color:var(--bone)}
.section-head{display:flex;align-items:baseline;gap:16px;margin-bottom:38px}.section-num{font-size:11px;letter-spacing:.28em;color:var(--olive)}
header{position:sticky;top:0;z-index:50;background:rgba(245,241,232,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{font-family:var(--serif);font-size:22px;white-space:nowrap}.brand em{font-family:var(--accent);font-style:italic;color:var(--terra)}
.menu{display:flex;gap:22px;align-items:center}.menu a{text-decoration:none;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.menu a:hover{color:var(--terra)} .btn{display:inline-block;text-decoration:none;background:var(--ink);color:var(--bone);padding:15px 30px;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;border:1px solid var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)} .dark .btn.ghost{color:var(--bone);border-color:var(--bone)}
.mobile-toggle{display:none;border:0;background:none;font-size:26px}
.hero{min-height:calc(100vh - 72px);display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;padding:80px 0}
.hero .villa{position:absolute;left:50%;bottom:-40px;transform:translateX(-50%);width:min(760px,90vw);opacity:.15;pointer-events:none}
.hero-inner{position:relative;z-index:2}.names{font-size:clamp(54px,10vw,120px);line-height:.98;margin:20px 0 10px}.amp{font-family:var(--accent);font-style:italic;color:var(--terra)}
.subtitle{font-size:clamp(18px,2.4vw,28px)} .date-line{margin-top:25px;font-size:12px;letter-spacing:.26em;text-transform:uppercase}
.olive{width:200px;margin:28px auto 18px;display:block}.reply{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--olive)}
.story-grid,.details-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:64px}.story-copy p+p{margin-top:18px}.quote{font-size:30px;line-height:1.35}
.event-row{display:grid;grid-template-columns:110px 1fr;gap:38px;padding:28px 0;border-top:1px solid var(--line)}.event-row:last-child{border-bottom:1px solid var(--line)}
.event-day b{font-family:var(--serif);font-size:28px}.event-day small{display:block;color:var(--olive);letter-spacing:.25em;text-transform:uppercase}.event-body h3{font-size:23px}.event-time{font-family:var(--accent);font-style:italic;color:var(--terra);font-size:18px}
.itin-day{margin-top:44px}.itin-day h3{font-size:28px;margin-bottom:14px}.itin-row{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:13px 0;border-top:1px solid var(--line)}.itin-row:last-child{border-bottom:1px solid var(--line)}
.itin-row time{font-family:var(--accent);font-style:italic;color:var(--terra)}
.travel-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(245,241,232,.25);border:1px solid rgba(245,241,232,.25)}
.travel-card{background:var(--cypress);padding:38px 32px;min-width:0}.travel-card .roman{color:#D8B28F;font-family:var(--serif)}.travel-card h3{margin:12px 0 8px;font-size:22px}.travel-card p{color:#D8D8CE}
.swatches{display:flex;gap:13px;margin:24px 0}.swatch{width:45px;height:45px;border-radius:50%;border:1px solid var(--line)}
.fact{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid var(--line)}.fact:last-child{border-bottom:1px solid var(--line)}.fact b{color:var(--olive);text-transform:uppercase;letter-spacing:.16em;font-size:12px}.fact span{text-align:right}
.party-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:34px}.person{text-align:center}.avatar{width:132px;height:132px;margin:0 auto 14px;border-radius:50%;border:1px solid var(--line);background:var(--bone2);display:grid;place-items:center;font-family:var(--serif);font-size:34px;color:var(--olive)}.person h3{font-size:20px}.person small{color:var(--terra);letter-spacing:.2em;text-transform:uppercase}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.gallery-tile{aspect-ratio:4/5;border:1px solid var(--line);background:var(--bone);display:grid;place-items:center;color:var(--olive);font-family:var(--accent);font-style:italic}
.center{text-align:center}.narrow{max-width:680px;margin-inline:auto}.actions{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.qa{padding:24px 0;border-top:1px solid var(--line)}.qa:last-child{border-bottom:1px solid var(--line)}.qa h3{font-size:21px}.qa p{margin-top:7px;max-width:70ch}
.thanks-olive{width:160px;margin:0 auto 22px;display:block;filter:grayscale(1) brightness(2);opacity:.5}
.footer{padding:36px 0;text-align:center;border-top:1px solid var(--line);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive)}
@media(max-width:920px){
  .menu{position:absolute;top:72px;left:0;right:0;background:var(--bone);padding:22px;display:none;flex-direction:column;border-bottom:1px solid var(--line)} .menu.open{display:flex}
  .mobile-toggle{display:block}.story-grid,.details-grid{grid-template-columns:1fr}.party-grid{grid-template-columns:repeat(2,1fr)}.travel-cards{grid-template-columns:1fr}
}
@media(max-width:600px){
  .section{padding:72px 0}.wrap{width:min(100% - 30px,1120px)}.hero{min-height:auto;padding:90px 0 80px}.hero .villa{position:static;transform:none;width:90%;opacity:.65;margin:24px auto 0}
  .names{font-size:54px}.date-line{font-size:10px;line-height:1.7}.event-row{grid-template-columns:1fr;gap:8px}.itin-row{grid-template-columns:78px 1fr}.party-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}.quote{font-size:24px}
  .fact{flex-direction:column;gap:4px}.fact span{text-align:left}.actions{flex-direction:column;align-items:stretch}.btn{text-align:center}
}
