:root{--ivory:#f6f0e4;--paper:#fffdf7;--ink:#263930;--muted:#59665f;--line:#c9c2b4;--blush:#e7b9bd;--lilac:#b9add0;--butter:#ecd47e;--blue:#a9c9db;--sage:#91a98c;--focus:#527b91;--shadow:0 14px 34px #44382820;--sans:Arial, sans-serif;--serif:Georgia, serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--ivory);color:var(--ink);font:16px/1.55 var(--sans);margin:0}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}.skip{position:absolute;top:1rem;left:-999px}.skip:focus{z-index:99;outline:3px solid var(--blue);background:#fff;padding:.8rem;left:1rem}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}header{z-index:20;background:var(--ivory);border-bottom:1px solid var(--line);position:sticky;top:0}.bar{justify-content:space-between;align-items:center;gap:1rem;max-width:1180px;min-height:72px;margin:auto;padding:.6rem 1.25rem;display:flex}.brand{font:1.45rem var(--serif);text-decoration:none}.brand small{font:700 .62rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block}nav[aria-label=Primary]{flex-wrap:wrap;gap:.25rem;display:flex}.nav{background:0 0;border:0;border-radius:99px;padding:.62rem .82rem;font-weight:700;text-decoration:none}.nav[aria-current=page]{background:var(--ink);color:#fff}main{min-height:60vh}.wrap{max-width:1180px;margin:auto;padding:clamp(2.5rem,6vw,5.5rem) 1.25rem}.narrow-wrap{max-width:48rem}.eyebrow{letter-spacing:.17em;text-transform:uppercase;color:#526a5b;font-size:.72rem;font-weight:800}h1{font:400 clamp(2.4rem, 7vw, 5.2rem) / .94 var(--serif);margin:.15em 0}h2,h3{font-family:var(--serif);font-weight:400}.lede{font:1.22rem / 1.55 var(--serif);max-width:39rem}.date-strip{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin:1.6rem 0;padding:1rem 0;display:flex}.date-strip strong{font:1.25rem var(--serif)}.hero{grid-template-columns:1.12fr .88fr;align-items:center;gap:clamp(2rem,6vw,6rem);display:grid}.photo-stack{min-width:0;padding:1rem;position:relative}.hero-img{aspect-ratio:4/3;object-fit:cover;border:12px solid var(--paper);width:100%;height:auto;box-shadow:var(--shadow);border-bottom-width:48px;display:block;transform:rotate(-1.2deg)}.tape{z-index:1;opacity:.85;background:#e8d78c;width:95px;height:28px;position:absolute;top:3px;left:44%;transform:rotate(3deg);box-shadow:0 1px 2px #594a3020}.postmark{letter-spacing:.12em;text-align:center;text-transform:uppercase;background:#f6f0e4ed;border:2px solid #687b6b;border-radius:50%;place-items:center;width:118px;height:118px;font-size:.67rem;display:grid;position:absolute;bottom:0;right:-4px;transform:rotate(-11deg)}.btn{border:1px solid var(--ink);background:var(--ink);color:#fff;text-align:center;border-radius:4px;padding:.8rem 1.1rem;font-weight:800;text-decoration:none;display:inline-block}.btn.secondary{color:var(--ink);background:0 0}.scrap-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1.25rem;margin-top:4rem;display:grid}.scrap-card{background:var(--paper);box-shadow:var(--shadow);border:1px solid #d9d1c3;max-width:28rem;padding:1.2rem;transform:rotate(-1.2deg)}.scrap-card h2{font:1.5rem var(--serif);margin:.4rem 0}.scrap-row .scrap-card:nth-child(3){transform:rotate(1deg)}.mini-photo{box-shadow:var(--shadow);background:#fff;margin:0;padding:.6rem .6rem 2.2rem;transform:rotate(-2deg)}.mini-photo img{aspect-ratio:1;object-fit:cover;width:100%;height:auto;display:block}.mini-photo figcaption{font:italic 1rem var(--serif);margin:.6rem 0 0}.intro{max-width:48rem}.intro>p:not(.eyebrow){font:1.12rem var(--serif)}.detail-grid{grid-template-columns:1.15fr .85fr;gap:clamp(2rem,6vw,5rem);margin-top:3rem;display:grid}.timeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--line);grid-template-columns:105px minmax(0,1fr);gap:1rem;padding:1.35rem 0;display:grid}.timeline time{font:1.15rem var(--serif)}.timeline h2{margin:0;font-size:1.3rem}.timeline p{color:var(--muted);margin:.25rem 0}.notes{gap:1rem;display:grid}.note{border:1px solid var(--line);background:var(--paper);padding:1.3rem;box-shadow:6px 6px #e4d5c4}.note h2{margin:0 0 .4rem;font-size:1.3rem}.note address{font-style:normal}.callout{border-left:7px solid var(--lilac)}.unavailable{max-width:40rem}.unavailable p{font:1.12rem var(--serif)}.invitation-prompt h1{font-size:clamp(2.4rem,7vw,4.5rem)}.rsvp-shell{max-width:58rem}.override-note{border-left:7px solid var(--butter);background:var(--paper);padding:.8rem 1rem}.form-card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);margin-top:1.5rem;padding:clamp(1.15rem,4vw,2.6rem)}.form-card h2{margin:.2rem 0;font-size:clamp(1.8rem,4vw,2.6rem)}.progress{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.5rem;display:grid}.progress span{background:#d5cfc3;height:7px}.progress span.on{background:var(--sage)}.badge{background:#e4ebdf;border-radius:999px;padding:.35rem .65rem;font-size:.78rem;font-weight:800;display:inline-block}.person{border:0;border-top:1px solid var(--line);min-width:0;margin:0;padding:1.25rem 0}.person legend{font:1.25rem var(--serif);padding:0 0 .7rem}.choices{flex-wrap:wrap;gap:.6rem;display:flex}.choice{position:relative}.choice input{opacity:0;position:absolute}.choice span{background:#fff;border:1px solid #817b70;border-radius:3px;padding:.6rem .85rem;display:block}.choice input:checked+span{background:var(--ink);color:#fff}.choice input:focus-visible+span{outline:3px solid var(--focus);outline-offset:3px}.field-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}.field{min-width:0;margin:1rem 0}.field label{margin-bottom:.35rem;font-weight:800;display:block}.field input,.field select,.field textarea{background:#fff;border:1px solid #777168;border-radius:3px;width:100%;min-width:0;padding:.75rem}.fine{color:var(--muted);margin:.35rem 0;font-size:.87rem}.field-error{color:#8b1e1e;margin:.4rem 0 0;font-weight:700}.actions{justify-content:space-between;gap:1rem;margin-top:1.6rem;display:flex}.actions-end{justify-content:flex-end}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.review-grid article{overflow-wrap:anywhere;background:#f4f0e7;min-width:0;padding:1rem}.review-grid h3{margin:0 0 .35rem;font-size:1.12rem}.form-status{min-height:1.55em;margin-top:1rem;font-weight:700}.confirm{text-align:center;padding-block:2.5rem}.family-flowers{width:154px;height:72px;margin:1rem auto;display:block}.deadline-card{background:#fff7de;border:2px solid #8d6c18}footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);padding:2rem 1rem;font-size:.88rem}@media (max-width:760px){.bar{flex-direction:column;align-items:flex-start}nav[aria-label=Primary]{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.nav{text-align:center}.hero,.detail-grid,.field-grid,.review-grid{grid-template-columns:minmax(0,1fr)}.hero-copy{grid-row:1}.scrap-row{grid-template-columns:minmax(0,1fr)}.scrap-row .scrap-card:nth-child(3){transform:rotate(-1.2deg)}.postmark{right:8px}.date-strip{flex-direction:column;align-items:flex-start}}@media (max-width:430px){.wrap{padding-inline:1rem}.nav{padding:.5rem;font-size:.78rem}.hero-img{border-width:8px 8px 38px}.timeline li{grid-template-columns:72px minmax(0,1fr)}.actions{flex-direction:column-reverse;align-items:stretch}.actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
