*{margin:0;padding:0;box-sizing:border-box}
:root{--paper:#f3efe8;--ink:#15130f;--soft:#6b6358;--accent:#9a2b2b;--line:#15130f}
body{font-family:'Archivo',sans-serif;background:var(--paper);color:var(--ink);line-height:1.6}
.pf{font-family:'Playfair Display',Georgia,serif}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}
.ribbon{background:var(--ink);color:var(--paper);font-size:11px;letter-spacing:.5px;text-align:center;padding:8px 14px}
.ribbon a{color:#fff;font-weight:700;text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
/* masthead */
.masthead{border-bottom:3px solid var(--ink);text-align:center;padding:26px 28px 14px}
.masthead .title{font-family:'Playfair Display',serif;font-weight:900;font-size:clamp(2.6rem,11vw,6rem);line-height:.9;letter-spacing:-.01em}
.masthead .sub{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--soft);margin-top:14px;border-top:1px solid var(--ink);padding-top:8px}
@media(max-width:560px){.masthead .sub{flex-direction:column;gap:4px}}
/* cover spread */
.cover{display:grid;grid-template-columns:1.05fr .95fr;gap:0;border-bottom:2px solid var(--ink)}
@media(max-width:760px){.cover{grid-template-columns:1fr}}
.cover .img{min-height:60vh;background:linear-gradient(160deg,#c9bca6,#8f8675 60%,#3a352c);position:relative}
.cover .img .tagline{position:absolute;bottom:24px;left:24px;color:#fff;font-family:'Playfair Display',serif;font-style:italic;font-size:1.4rem;max-width:70%}
.cover .txt{padding:48px 40px;display:flex;flex-direction:column;justify-content:center;border-left:2px solid var(--ink)}
@media(max-width:760px){.cover .txt{border-left:none;border-top:2px solid var(--ink)}}
.cover .kick{color:var(--accent);font-weight:700;letter-spacing:3px;text-transform:uppercase;font-size:12px}
.cover h1{font-family:'Playfair Display',serif;font-weight:900;font-size:clamp(2.4rem,7vw,4rem);line-height:1;margin:14px 0}
.cover h1 em{font-weight:400;color:var(--accent)}
.cover .stand{color:var(--soft);font-size:1.05rem;margin-top:6px}
/* editorial article */
.article{padding:60px 0}
.article .hdr{text-align:center;margin-bottom:30px}
.article .hdr .lbl{color:var(--accent);font-weight:700;letter-spacing:3px;text-transform:uppercase;font-size:12px}
.article .hdr h2{font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(1.8rem,5vw,2.8rem)}
.cols{column-count:2;column-gap:40px;font-size:1.02rem}
@media(max-width:640px){.cols{column-count:1}}
.cols p{margin-bottom:14px}
.cols p:first-of-type::first-letter{font-family:'Playfair Display',serif;font-weight:900;float:left;font-size:4.2rem;line-height:.72;padding:6px 10px 0 0;color:var(--accent)}
.pull{break-inside:avoid;font-family:'Playfair Display',serif;font-style:italic;font-size:1.5rem;line-height:1.3;color:var(--ink);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:18px 0;margin:8px 0 18px}
/* details — boxed sidebar style */
.facts{border-top:3px double var(--ink);border-bottom:3px double var(--ink);display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:50px 0}
@media(max-width:640px){.facts{grid-template-columns:1fr 1fr}}
.facts .f{padding:24px;text-align:center;border-right:1px solid var(--ink)}
.facts .f:last-child{border-right:none}
.facts .f .k{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--soft)}.facts .f .v{font-family:'Playfair Display',serif;font-size:1.3rem;margin-top:6px}
/* countdown ticker */
.ticker{background:var(--ink);color:var(--paper);text-align:center;padding:30px 28px}
.ticker .lbl{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#c9bca6}
.cd{display:flex;gap:26px;justify-content:center;margin-top:10px}
.cd .n{font-family:'Playfair Display',serif;font-weight:700;font-size:2.2rem}.cd .l{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#9a9285}
/* rsvp + cta */
.btn{display:inline-block;border:2px solid var(--ink);background:var(--ink);color:var(--paper);padding:13px 30px;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;font-weight:700;cursor:pointer;transition:.25s}
.btn:hover{background:var(--accent);border-color:var(--accent)}
.btn-o{background:transparent;color:var(--ink)}.btn-o:hover{background:var(--ink);color:var(--paper)}
.rsvp{text-align:center;padding:60px 0}
.rsvp form{max-width:440px;margin:20px auto 0;display:flex;flex-direction:column;gap:12px}
.rsvp input,.rsvp select{padding:13px;border:1px solid var(--ink);background:var(--paper);font-family:inherit}
.rsvp .ok{display:none;font-family:'Playfair Display',serif;font-style:italic;color:var(--accent);margin-top:6px}.rsvp .ok.show{display:block}
.cta{border-top:3px solid var(--ink);text-align:center;padding:60px 28px}
.cta h2{font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(1.6rem,4.5vw,2.4rem)}
.cta p{color:var(--soft);max-width:440px;margin:10px auto 22px}.cta .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.foot{background:var(--ink);color:#c9bca6;text-align:center;padding:24px 28px;font-size:.8rem;letter-spacing:1px}.foot a{color:#fff;text-decoration:underline}
.rv{opacity:0;transform:translateY(18px);transition:.8s}.rv.in{opacity:1;transform:none}
