*{margin:0;padding:0;box-sizing:border-box}
:root{--green:#0c4a3e;--green2:#0f5a4b;--gold:#caa24a;--gold-l:#ecd9a4;--cream:#faf6ee;--ink:#1d2b27}
body{font-family:'Jost',sans-serif;background:var(--cream);color:var(--ink);line-height:1.7;font-weight:300}
.cg{font-family:'Cormorant Garamond',serif} .script{font-family:'Pinyon Script',cursive}
a{color:inherit;text-decoration:none}
.ribbon-bar{background:var(--green);color:var(--gold-l);font-size:11px;letter-spacing:1px;text-align:center;padding:8px 14px;text-transform:uppercase}
.ribbon-bar a{color:#fff;font-weight:500;border-bottom:1px solid var(--gold)}
.wrap{max-width:860px;margin:0 auto;padding:0 24px}
/* hero with ribbon */
.hero{background:radial-gradient(120% 90% at 50% -10%,var(--green2),var(--green) 70%);color:var(--cream);text-align:center;padding:90px 24px 110px;position:relative;overflow:hidden}
.hero .conf{position:absolute;inset:0;z-index:0;background-image:radial-gradient(3px 8px at 12% 18%,var(--gold) 50%,transparent 51%),radial-gradient(3px 8px at 80% 14%,var(--gold-l) 50%,transparent 51%),radial-gradient(3px 8px at 30% 70%,var(--gold) 50%,transparent 51%),radial-gradient(3px 8px at 68% 80%,var(--gold-l) 50%,transparent 51%),radial-gradient(3px 8px at 92% 55%,var(--gold) 50%,transparent 51%),radial-gradient(3px 8px at 6% 50%,var(--gold-l) 50%,transparent 51%);opacity:.5}
.hero>*{position:relative;z-index:2}
.hero .eyebrow{font-size:11px;letter-spacing:6px;text-transform:uppercase;color:var(--gold-l)}
.hero .grand{font-family:'Pinyon Script',cursive;font-size:clamp(3rem,14vw,6.5rem);color:var(--gold);line-height:.9;margin:6px 0}
.hero .opening{font-family:'Cormorant Garamond',serif;font-weight:600;letter-spacing:10px;text-transform:uppercase;font-size:clamp(1.2rem,4vw,1.8rem);color:#fff}
.hero .of{margin:26px 0 6px;font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold-l)}
.hero .brand{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(2rem,7vw,3.2rem);color:#fff}
.hero .tag{color:var(--gold-l);margin-top:6px}
/* ribbon strip */
.cut{background:var(--gold);color:var(--green);text-align:center;padding:18px 24px;font-family:'Cormorant Garamond',serif;font-weight:600;letter-spacing:3px;text-transform:uppercase;font-size:.95rem;position:relative}
.cut .sc{margin:0 12px}
/* countdown */
.cdsec{text-align:center;padding:56px 24px;background:var(--cream)}
.eyebrow2{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);font-weight:500}
.h2{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(1.8rem,5vw,2.6rem);color:var(--green);margin:6px 0 4px}
.cd{display:flex;gap:14px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.cd .u{background:#fff;border:1px solid rgba(202,162,74,.4);border-radius:12px;padding:16px 18px;min-width:80px;box-shadow:0 14px 30px rgba(12,74,62,.08)}
.cd .n{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:2.2rem;color:var(--green)}.cd .l{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#8a9591;margin-top:2px}
/* ceremony schedule */
.sec{padding:60px 24px;max-width:860px;margin:0 auto}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px}
@media(max-width:640px){.steps{grid-template-columns:1fr 1fr}}
.step{background:#fff;border:1px solid rgba(202,162,74,.3);border-radius:14px;padding:24px 16px;text-align:center}
.step .ic{font-size:1.6rem}.step .t{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--green);margin:8px 0 2px}.step small{color:#7e8b87}
/* invite card / details */
.invite{background:var(--green);color:var(--cream);border-radius:18px;padding:44px 30px;text-align:center;margin-top:10px;position:relative;border:1px solid var(--gold)}
.invite .small{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold-l)}
.invite .big{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.6rem;margin:8px 0}
.invite .addr{color:var(--gold-l)}
.btn{display:inline-block;font-family:'Cormorant Garamond',serif;font-weight:600;letter-spacing:2px;text-transform:uppercase;font-size:.85rem;padding:13px 30px;border-radius:100px;cursor:pointer;border:1px solid var(--gold);background:var(--gold);color:var(--green);transition:.25s}
.btn:hover{background:var(--gold-l);border-color:var(--gold-l)}
.btn-o{background:transparent;color:var(--gold-l);border-color:var(--gold-l)}.btn-o:hover{background:rgba(236,217,164,.12);color:#fff}
.btn-g{background:var(--green);color:var(--gold-l);border-color:var(--green)}.btn-g:hover{background:var(--green2)}
.rsvp{text-align:center;padding:60px 24px;background:var(--cream)}
.rsvp form{max-width:420px;margin:22px auto 0;display:flex;flex-direction:column;gap:12px}
.rsvp input,.rsvp select{padding:13px;border:1px solid rgba(12,74,62,.2);border-radius:10px;background:#fff;font-family:inherit}
.rsvp .ok{display:none;font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--green);margin-top:6px;font-size:1.1rem}.rsvp .ok.show{display:block}
.cta{background:radial-gradient(120% 90% at 50% 0,var(--green2),var(--green) 70%);color:var(--cream);text-align:center;padding:70px 24px}
.cta h2{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(1.6rem,4.5vw,2.4rem);color:#fff}
.cta p{color:var(--gold-l);max-width:440px;margin:10px auto 22px}.cta .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.foot{background:var(--green);color:rgba(236,217,164,.7);text-align:center;padding:24px;font-size:.82rem}.foot a{color:#fff}
.rv{opacity:0;transform:translateY(18px);transition:.8s}.rv.in{opacity:1;transform:none}
