: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{margin:0;background-color:var(--ivory);color:var(--ink);font:16px/1.55 var(--sans)}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}.skip{position:absolute;left:-999px;top:1rem}.skip:focus{left:1rem;z-index:99;background:#fff;padding:.8rem;outline:3px solid var(--blue)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}header{position:sticky;top:0;z-index:20;background:var(--ivory);border-bottom:1px solid var(--line)}.bar{max-width:1180px;margin:auto;min-height:72px;padding:.6rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font:1.45rem var(--serif);text-decoration:none}.brand small{display:block;font:700 .62rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}nav[aria-label=Primary]{display:flex;gap:.25rem;flex-wrap:wrap}.nav{border:0;background:transparent;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{font-size:.72rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#526a5b}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);padding:1rem 0;margin:1.6rem 0;display:flex;gap:1rem;justify-content:space-between;align-items:center}.date-strip strong{font:1.25rem var(--serif)}.hero{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(2rem,6vw,6rem);align-items:center}.photo-stack{position:relative;min-width:0;padding:1rem}.hero-img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border:solid var(--paper);border-width:12px 12px 48px;box-shadow:var(--shadow);transform:rotate(-1.2deg)}.tape{z-index:1;top:3px;left:44%;width:95px;height:28px;background:#e8d78c;box-shadow:0 1px 2px #594a3020;opacity:.85;transform:rotate(3deg)}.postmark,.tape{position:absolute}.postmark{right:-4px;bottom:0;display:grid;width:118px;height:118px;place-items:center;border:2px solid #687b6b;border-radius:50%;background:#f6f0e4ed;font-size:.67rem;letter-spacing:.12em;text-transform:uppercase;transform:rotate(-11deg)}.btn,.postmark{text-align:center}.btn{display:inline-block;padding:.8rem 1.1rem;border:1px solid var(--ink);border-radius:4px;background:var(--ink);color:#fff;font-weight:800;text-decoration:none}.btn.secondary{background:transparent;color:var(--ink)}.scrap-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;align-items:start;margin-top:4rem}.scrap-card{background:var(--paper);border:1px solid #d9d1c3;box-shadow:var(--shadow);padding:1.2rem;max-width:28rem;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{margin:0;padding:.6rem .6rem 2.2rem;background:#fff;box-shadow:var(--shadow);transform:rotate(-2deg)}.mini-photo img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.mini-photo figcaption{margin:.6rem 0 0;font:italic 1rem var(--serif)}.intro{max-width:48rem}.intro>p:not(.eyebrow){font:1.12rem var(--serif)}.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,6vw,5rem);margin-top:3rem}.timeline{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}.timeline li{display:grid;grid-template-columns:105px minmax(0,1fr);gap:1rem;padding:1.35rem 0;border-bottom:1px solid var(--line)}.timeline time{font:1.15rem var(--serif)}.timeline h2{margin:0;font-size:1.3rem}.timeline p{margin:.25rem 0;color:var(--muted)}.notes{display:grid;gap:1rem}.note{padding:1.3rem;border:1px solid var(--line);background:var(--paper);box-shadow:6px 6px 0 #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{padding:.8rem 1rem;border-left:7px solid var(--butter);background:var(--paper)}.form-card{margin-top:1.5rem;padding:clamp(1.15rem,4vw,2.6rem);border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow)}.form-card h2{margin:.2rem 0;font-size:clamp(1.8rem,4vw,2.6rem)}.progress{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.5rem}.progress span{height:7px;background:#d5cfc3}.progress span.on{background:var(--sage)}.badge{display:inline-block;padding:.35rem .65rem;border-radius:999px;background:#e4ebdf;font-size:.78rem;font-weight:800}.person{min-width:0;margin:0;padding:1.25rem 0;border:0;border-top:1px solid var(--line)}.person legend{padding:0 0 .7rem;font:1.25rem var(--serif)}.choices{display:flex;flex-wrap:wrap;gap:.6rem}.choice{position:relative}.choice input{position:absolute;opacity:0}.choice span{display:block;padding:.6rem .85rem;border:1px solid #817b70;border-radius:3px;background:#fff}.choice input:checked+span{background:var(--ink);color:#fff}.choice input:focus-visible+span{outline:3px solid var(--focus);outline-offset:3px}.field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.field{min-width:0;margin:1rem 0}.field label{display:block;margin-bottom:.35rem;font-weight:800}.field input,.field select,.field textarea{width:100%;min-width:0;padding:.75rem;border:1px solid #777168;border-radius:3px;background:#fff}.fine{margin:.35rem 0;color:var(--muted);font-size:.87rem}.field-error{margin:.4rem 0 0;color:#8b1e1e;font-weight:700}.actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.6rem}.actions-end{justify-content:flex-end}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.review-grid article{min-width:0;padding:1rem;background:#f4f0e7;overflow-wrap:anywhere}.review-grid h3{margin:0 0 .35rem;font-size:1.12rem}.form-status{min-height:1.55em;margin-top:1rem;font-weight:700}.confirm{padding-block:2.5rem;text-align:center}.family-flowers{display:block;width:154px;height:72px;margin:1rem auto}.deadline-card{border:2px solid #8d6c18;background:#fff7de}footer{border-top:1px solid var(--line);padding:2rem 1rem;text-align:center;color:var(--muted);font-size:.88rem}@media (max-width:760px){.bar{align-items:flex-start;flex-direction:column}nav[aria-label=Primary]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.nav{text-align:center}.detail-grid,.field-grid,.hero,.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{align-items:flex-start;flex-direction:column}}@media (max-width:430px){.wrap{padding-inline:1rem}.nav{font-size:.78rem;padding:.5rem}.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}*,:after,:before{animation:none!important;transition:none!important}}