:root{color-scheme:light;--ink:#392233;--paper:#fffaf4;--accent:#782b46;--line:#dac8c4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.7 system-ui,sans-serif}a{color:inherit}header{max-width:1120px;margin:auto;padding:28px 32px;display:flex;justify-content:space-between;gap:24px;align-items:center;border-bottom:1px solid var(--line)}.brand{font:italic 24px Georgia,serif;text-decoration:none}nav{display:flex;gap:28px}nav a{text-decoration:none;font-size:15px}nav a[aria-current=page]{border-bottom:1px solid var(--accent)}main{max-width:780px;margin:64px auto;padding:0 28px}.hero{text-align:center;padding:35px 0 65px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:13px;color:var(--accent)}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.12}h1{font-size:clamp(48px,9vw,90px);margin:26px 0}h2{font-size:32px}.amp{font-style:italic;color:var(--accent)}.lede{max-width:470px;margin:24px auto 32px}.button,button{display:inline-block;border:1px solid var(--accent);background:var(--accent);color:white;padding:13px 28px;text-decoration:none;font:inherit;cursor:pointer}.button:hover,button:hover{background:#542037}.details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px;display:flex;justify-content:center;gap:60px;margin:40px 0}.details p{margin:0}.details small{display:block;text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}footer{text-align:center;font:italic 19px Georgia,serif;padding:30px}.intro{font-size:19px;max-width:560px}.card{border:1px solid var(--line);padding:32px;margin-top:32px;background:#fffdf9}fieldset{border:0;padding:0;margin:24px 0}legend{margin-bottom:14px}label{display:flex;align-items:center;gap:14px;padding:17px;border:1px solid var(--line);margin-bottom:12px;cursor:pointer}label:has(input:checked){border-color:var(--accent);background:#f5e9eb}input{accent-color:var(--accent);width:20px;height:20px}button:disabled{opacity:.55;cursor:wait}details{border-bottom:1px solid var(--line);padding:22px 0}summary{font-family:Georgia,serif;font-size:24px;cursor:pointer}details p{max-width:600px}#status{min-height:1.7em}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #a25370;outline-offset:5px}[hidden]{display:none!important}@media(max-width:540px){header{padding:22px;flex-direction:column;gap:14px}main{margin:38px auto}.details{gap:24px;flex-direction:column}.card{padding:22px}nav{gap:26px}}
@media(min-width:541px){main.home{margin:44px auto}.home .hero{padding:25px 0 43px}}
.memories{text-align:center;align-self:center;min-width:0;margin:0 0 32px}.memories h2{margin:0 0 22px}.memory-slide{margin:0}.memory-photo{position:relative;aspect-ratio:4/3;background:#f5e9eb;border:1px solid var(--line);overflow:hidden;display:grid;place-items:center}.memory-photo img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0}.memory-placeholder{font:italic 24px Georgia,serif;color:var(--accent);padding:24px}.memory-slide figcaption{font:32px Georgia,serif;margin:18px 0}.memory-controls{display:flex;align-items:center;justify-content:center;gap:8px}.memory-controls button{padding:8px;min-width:36px;min-height:44px;background:transparent;color:var(--accent);border-color:transparent}.memory-controls button:hover,.memory-controls button[aria-current]{background:#f5e9eb;border-color:var(--line)}.memory-years{display:flex;justify-content:center;flex-wrap:wrap;gap:2px}.memory-years button{font-size:13px}.memory-controls>button{font-size:22px;flex-shrink:0}@media(min-width:1100px){main.home{max-width:1240px;display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center}.home h1{font-size:72px}.home .details{gap:24px;padding:18px 8px}.memories{margin:0}}
.fudge label{justify-content:space-between;gap:16px}.fudge select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:8px 12px;min-width:72px}.fudge select:focus-visible{outline:3px solid #a25370;outline-offset:5px}
#rsvp-confirmation{width:min(460px,calc(100% - 40px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);padding:32px;background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 16px 60px #39223333}#rsvp-confirmation::backdrop{background:#39223388}#rsvp-confirmation h2{margin:0 0 20px}#rsvp-confirmation p{margin:0 0 24px}
.dress-code{margin-top:24px;max-width:650px}.dress-code section+section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.dress-code h3{font:26px Georgia,serif;color:var(--accent);margin:0 0 14px}.dress-code ul{padding-left:24px;margin:0 0 18px}.dress-code li+li{margin-top:8px}.dress-code .dress-code-note{margin:0;padding:12px 16px;border-left:3px solid var(--line);background:#f5e9eb}
