:root{--cream:#f7f4ec;--paper:#fffdf8;--sage:#8a9b83;--sage-dark:#52664f;--ink:#29352b;--muted:#70766a;--line:#d9ddcf;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font:15px/1.65 var(--sans)}a{color:inherit}
.hero{min-height:92vh;display:flex;flex-direction:column;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#f7f4ec 0%,#e9ecdf 58%,#dce3d4 100%);isolation:isolate}
.hero:before,.hero:after{content:"";position:absolute;z-index:-1;border:1px solid #52664f38;border-radius:50%;width:min(75vw,760px);height:min(75vw,760px);top:14%;left:50%;transform:translateX(-50%)}
.hero:after{width:min(61vw,620px);height:min(61vw,620px);top:22%}
.top-nav,footer{display:flex;justify-content:space-between;align-items:center;padding:24px clamp(22px,5vw,76px);letter-spacing:.12em;font-size:11px;text-transform:uppercase}
.top-nav span:first-child,footer span:first-child,.admin-header>span{font:20px var(--serif);letter-spacing:.04em}.top-nav i{color:var(--sage-dark)}
.hero-content{margin:auto;text-align:center;padding:65px 22px 70px;max-width:800px}.eyebrow{letter-spacing:.2em;font-size:10px;font-weight:600;color:var(--sage-dark)}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em;line-height:1.08}h1 em,h2 em{color:var(--sage-dark);font-weight:400}.hero h1{font-size:clamp(56px,10vw,104px);margin:20px 0 12px}.hero-date{letter-spacing:.18em;font-size:12px;text-transform:uppercase}.sprig{margin:32px auto;color:var(--sage-dark);font-size:25px}.hero-note{color:#586454;font:clamp(17px,2vw,21px)/1.65 var(--serif)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;border:0;padding:15px 22px;font:500 12px var(--sans);letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--sage-dark);color:white}.button-dark:hover{background:#3d503a}.hero-content .button{margin-top:20px}.hero-bottom{text-align:center;padding:18px;font-size:9px;letter-spacing:.22em;color:#687662}
.section{padding:clamp(70px,10vw,130px) 22px}.intro{text-align:center;max-width:800px;margin:auto}h2{font-size:clamp(38px,6vw,64px);margin:18px 0 25px}.body-copy{max-width:520px;margin:0 auto;color:var(--muted)}.small-line{width:44px;height:1px;background:var(--sage);margin:36px auto 0}
.details{background:#e9ece2;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding-left:max(22px,calc((100vw - 1000px)/2));padding-right:max(22px,calc((100vw - 1000px)/2))}.details-heading h2{margin-bottom:0}.date-card{text-align:center;border:1px solid #bdc8b6;padding:28px;max-width:300px;width:100%;justify-self:center}.date-month,.date-weekday{letter-spacing:.18em;font-size:10px}.date-day{font:clamp(80px,11vw,130px)/1.05 var(--serif);color:var(--sage-dark)}
.detail-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:24px}.detail-item{border-top:1px solid #c8d0c0;padding-top:18px}.detail-icon{color:var(--sage-dark);font-size:10px;letter-spacing:.1em}.detail-item h3{font:400 23px var(--serif);margin:12px 0 8px}.detail-item p{font-size:13px;color:var(--muted);margin:0}
.rsvp{display:grid;grid-template-columns:.8fr 1fr;gap:clamp(40px,9vw,120px);max-width:1120px;margin:auto}.rsvp-copy{align-self:start;position:sticky;top:35px}.rsvp-copy h2{font-size:clamp(42px,6vw,68px)}.rsvp-copy p:not(.eyebrow){color:var(--muted);max-width:340px}.deadline{font-size:12px;border-left:2px solid var(--sage);padding-left:14px;margin-top:30px}
.rsvp-form{background:var(--paper);border:1px solid #e7e4da;padding:clamp(22px,4vw,44px);box-shadow:0 14px 45px #32412d0a}label,legend{display:block;font-size:12px;font-weight:600;margin:18px 0 7px}input:not([type=radio]):not([type=checkbox]),select,textarea{display:block;width:100%;background:#fffefa;color:var(--ink);border:1px solid var(--line);padding:13px 12px;border-radius:0;font:14px var(--sans)}input:focus,select:focus,textarea:focus{outline:2px solid #a5b39d;outline-offset:1px}fieldset{border:0;margin:18px 0 8px;padding:0}fieldset legend{margin-bottom:10px}.choice{display:flex;align-items:center;gap:9px;font-weight:400;margin:10px 0}.choice input,.privacy input{accent-color:var(--sage-dark)}.field-hint,.privacy-note{font-size:11px;color:var(--muted)}.field-hint{margin-top:6px}.privacy{display:flex;align-items:flex-start;gap:9px;font-weight:400;font-size:11px;line-height:1.5;margin:22px 0}.privacy input{margin-top:3px;flex-shrink:0}.submit-button{width:100%}.form-status{color:#8b493d;font-size:12px;min-height:1.5em}.form-status.success{color:#426644}.privacy-note{text-align:center}
.closing{text-align:center;background:#e9ece2}.closing h2{font-size:clamp(48px,8vw,86px)}.closing p:not(.eyebrow){color:var(--muted)}.closing-flower{display:block;color:var(--sage-dark);font-size:28px;margin-top:26px}footer{color:var(--muted)}
.admin-body{min-height:100vh}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:22px clamp(20px,5vw,70px);border-bottom:1px solid var(--line)}.back-link{text-decoration:none;font-size:12px}.admin-main{max-width:1200px;margin:auto;padding:65px 22px 100px}.admin-main h1{font-size:clamp(40px,6vw,66px)}.admin-main .body-copy{margin:0}.admin-card{margin-top:38px;max-width:460px;background:var(--paper);padding:28px;border:1px solid var(--line)}.admin-card h2{font-size:30px}.admin-card .button{margin-top:20px;width:100%}[hidden]{display:none!important}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0 20px}.stat{padding:20px;border:1px solid var(--line);background:var(--paper)}.stat span{display:block;color:var(--muted);font-size:11px}.stat strong{display:block;font:400 36px var(--serif);margin-top:8px}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.button-outline{background:transparent;border:1px solid var(--sage-dark);color:var(--sage-dark)}.table-wrap{overflow:auto;margin-top:18px;background:var(--paper);border:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:12px;border-bottom:1px solid #e7e7df;vertical-align:top;min-width:105px}th{background:#e9ece2;font-weight:600}
@media(max-width:700px){.hero{min-height:88vh}.hero:before{width:100vw;height:100vw;top:21%}.hero:after{width:83vw;height:83vw;top:25%}.details{grid-template-columns:1fr;gap:32px}.details-heading{text-align:center}.date-card{max-width:260px}.detail-grid{grid-template-columns:1fr;gap:22px}.rsvp{grid-template-columns:1fr;gap:26px}.rsvp-copy{position:static}.stats{grid-template-columns:repeat(2,1fr)}.admin-main{padding-top:42px}.admin-actions .button{flex:1}}
