:root{color-scheme:light;--paper: #f7f4ee;--card: #ffffff;--navy: #14212c;--navy-hover: #22333f;--text: #26313a;--muted: #59636b;--brass: #9b8053;--brass-soft: rgba(155, 128, 83, .38);--divider: #ded8ce;--error: #b4271d;--error-bg: #fcf1ef;--t-names: 2.1rem;--t-h2: 1.375rem;--t-lead: 1.125rem;--t-body: 1rem;--t-note: .875rem;--gap-para: 22px;--gap-section: 48px;--radius: 8px;--tap: 48px;--mincho: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;--gothic: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;font-family:var(--gothic);font-size:var(--t-body);line-height:1.8;color:var(--text);background:var(--paper);overflow-wrap:break-word}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page{max-width:600px;margin:0 auto;padding:0 20px 56px}:focus-visible{outline:3px solid var(--brass);outline-offset:2px;border-radius:2px}.hero{position:relative;overflow:hidden;padding:56px 20px 44px;text-align:center;color:#f4f1ea;background-color:var(--navy);background-image:radial-gradient(1.8px 1.8px at 48% 63%,rgba(255,255,255,.53),transparent),radial-gradient(1.3px 1.3px at 39% 94%,rgba(255,255,255,.48),transparent),radial-gradient(1.5px 1.5px at 80% 66%,rgba(255,255,255,.45),transparent),radial-gradient(1.3px 1.3px at 2% 60%,rgba(255,255,255,.54),transparent),radial-gradient(1.5px 1.5px at 35% 23%,rgba(255,255,255,.83),transparent),radial-gradient(1.1px 1.1px at 9% 66%,rgba(255,255,255,.74),transparent),radial-gradient(.9px .9px at 79% 12%,rgba(255,255,255,.83),transparent),radial-gradient(1.3px 1.3px at 66% 24%,rgba(255,255,255,.92),transparent),radial-gradient(1px 1px at 13% 42%,rgba(255,255,255,.65),transparent),radial-gradient(1.8px 1.8px at 87% 54%,rgba(255,255,255,.88),transparent),radial-gradient(.9px .9px at 55% 50%,rgba(255,255,255,.56),transparent),radial-gradient(1.3px 1.3px at 42% 58%,rgba(255,255,255,.7),transparent),radial-gradient(.9px .9px at 54% 62%,rgba(255,255,255,.93),transparent),radial-gradient(1.1px 1.1px at 96% 64%,rgba(255,255,255,.91),transparent),radial-gradient(1.1px 1.1px at 85% 39%,rgba(255,255,255,.37),transparent),radial-gradient(1.5px 1.5px at 25% 37%,rgba(255,255,255,.67),transparent),radial-gradient(1.3px 1.3px at 75% 20%,rgba(255,255,255,.83),transparent),radial-gradient(1px 1px at 43% 51%,rgba(255,255,255,.74),transparent),radial-gradient(1.5px 1.5px at 6% 22%,rgba(255,255,255,.37),transparent),radial-gradient(1.8px 1.8px at 55% 20%,rgba(255,255,255,.48),transparent),radial-gradient(1.5px 1.5px at 44% 49%,rgba(255,255,255,.71),transparent),radial-gradient(1px 1px at 7% 45%,rgba(255,255,255,.52),transparent),radial-gradient(1.3px 1.3px at 46% 67%,rgba(255,255,255,.46),transparent),radial-gradient(1.5px 1.5px at 97% 46%,rgba(255,255,255,.54),transparent),radial-gradient(1.5px 1.5px at 20% 71%,rgba(255,255,255,.3),transparent),radial-gradient(1.1px 1.1px at 28% 73%,rgba(255,255,255,.42),transparent),radial-gradient(1px 1px at 78% 49%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 96% 94%,rgba(255,255,255,.4),transparent),radial-gradient(1.8px 1.8px at 91% 83%,rgba(255,255,255,.84),transparent),radial-gradient(1.5px 1.5px at 63% 25%,rgba(255,255,255,.63),transparent),linear-gradient(114deg,transparent 30%,rgba(188,204,232,.07) 41%,rgba(214,226,246,.13) 50%,rgba(188,204,232,.07) 59%,transparent 70%),radial-gradient(ellipse 72% 48% at 24% 34%,rgba(110,145,200,.2),transparent 72%),radial-gradient(ellipse 58% 42% at 80% 70%,rgba(155,128,83,.16),transparent 72%)}.hero-orbit{position:absolute;border:1px solid var(--brass-soft);border-radius:50%;pointer-events:none}.hero-orbit-1{width:520px;height:520px;left:-300px;top:-150px}.hero-orbit-2{width:780px;height:780px;right:-440px;top:-230px}.hero-inner{position:relative}.hero-kicker{margin:0 0 18px;font-family:var(--mincho);font-size:var(--t-note);letter-spacing:.42em;text-indent:.42em;color:#cfc7b6}.hero-names{margin:0;font-family:var(--mincho);font-size:var(--t-names);font-weight:400;letter-spacing:.12em;text-indent:.12em;line-height:1.3}.hero-date{margin:18px 0 0;font-size:var(--t-lead);letter-spacing:.24em;text-indent:.24em;color:#e6e1d6}.hero-ticks{display:block;width:200px;height:35px;margin:4px auto 0;fill:none;stroke:var(--brass);stroke-width:1;opacity:.75}.hero-venue{margin:6px 0 0;font-family:var(--mincho);font-size:var(--t-note);letter-spacing:.3em;text-indent:.3em;color:#cfc7b6}.addressee{margin:44px 0 0;font-family:var(--mincho);font-size:var(--t-h2);font-weight:400;letter-spacing:.1em;text-align:center;line-height:1.7}.greeting{margin:28px 0 0;font-family:var(--mincho);font-size:clamp(.8125rem,3.7vw,1rem);line-height:2.1;letter-spacing:.02em;text-align:center;white-space:pre-line}.unresolved{background:#fff3cd;border-bottom:2px dotted var(--error);padding:0 3px}.section{margin-top:var(--gap-section)}.section>h2{display:flex;align-items:center;gap:16px;margin:0 0 20px;font-family:var(--mincho);font-size:var(--t-h2);font-weight:400;letter-spacing:.14em;color:var(--text)}.section>h2:after{content:"";flex:1;height:1px;background:var(--brass-soft)}.section>p{margin:0 0 12px}.section>p:last-child{margin-bottom:0}.card{padding:24px;background:var(--card);border:1px solid var(--divider);border-radius:var(--radius)}.card-date{margin:0 0 16px;font-size:var(--t-lead);font-weight:700}.times{margin:0}.times>div{display:flex;align-items:baseline;gap:16px}.times>div+div{margin-top:10px}.times dt{flex:0 0 4.5em;color:var(--muted)}.times dd{flex:1;margin:0}.card-divider{margin:20px 0;border:0;border-top:1px solid var(--divider)}.card-venue{margin:0 0 8px;font-size:var(--t-lead);font-weight:700}.card-line{margin:0 0 4px;color:var(--muted);font-size:var(--t-note)}.card-line:last-child{margin-bottom:0}.card-link{display:inline-block;min-height:44px;padding:10px 0;color:var(--text);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--brass)}.rsvp .deadline{margin:0;font-weight:700}.rsvp .deadline-note{margin:4px 0 24px}.guest{padding-top:20px}.guest+.guest{border-top:1px solid var(--divider)}.guest[data-invalid=true] .guest-name{color:var(--error)}.guest-name{margin:0 0 12px;font-family:var(--mincho);font-size:var(--t-lead);font-weight:400;letter-spacing:.06em}.sub-label{margin:20px 0 8px;font-size:var(--t-note);color:var(--muted)}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{display:flex;align-items:center;justify-content:center;gap:10px;min-height:var(--tap);padding:8px 12px;background:var(--card);border:1px solid var(--divider);border-radius:var(--radius);cursor:pointer}.choice:hover{border-color:var(--brass)}.choice:has(input:checked){background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}.choice:has(input:focus-visible){outline:3px solid var(--brass);outline-offset:2px}.mark{position:relative;flex:0 0 auto;width:22px;height:22px;border:2px solid var(--muted);border-radius:50%}.choice:has(input:checked) .mark{background:#fff;border-color:#fff}.choice:has(input:checked) .mark:after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid var(--navy);border-width:0 2px 2px 0;transform:rotate(45deg)}.choice-text{font-size:var(--t-body)}.field-label{display:block;margin:24px 0 8px;font-size:var(--t-note);color:var(--muted)}.text-input,.textarea-input{display:block;width:100%;min-height:var(--tap);margin-top:8px;padding:10px 14px;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--divider);border-radius:var(--radius)}.textarea-input{min-height:6rem;resize:vertical}.message-input{min-height:7rem}.text-input[aria-invalid=true],.textarea-input[aria-invalid=true]{border-color:var(--error);border-width:2px}.postal-input{max-width:11em}.btn-primary,.btn-secondary{width:100%;min-height:var(--tap);padding:12px 24px;font:inherit;font-weight:700;letter-spacing:.06em;border-radius:var(--radius);cursor:pointer}.btn-primary{color:#fff;background:var(--navy);border:1px solid var(--navy)}.btn-primary:hover:not(:disabled){background:var(--navy-hover);border-color:var(--navy-hover)}.btn-secondary{color:var(--navy);background:var(--card);border:1px solid var(--navy)}.btn-secondary:hover:not(:disabled){background:#eef0f2}.btn-primary:disabled,.btn-secondary:disabled{color:#6d7278;background:#e6e3dc;border-color:#c6c1b7;cursor:not-allowed}.form-actions{margin-top:28px}.form-actions .btn-secondary{margin-top:12px}.form-actions .recovery{margin:12px 0 0;text-align:center;font-size:var(--t-note);color:var(--muted)}.error-block{margin:24px 0 0;padding:16px;background:var(--error-bg);border:1px solid var(--error);border-radius:var(--radius)}.error-block>h2,.error-block>.error-title{display:block;margin:0 0 8px;font-family:var(--gothic);font-size:var(--t-lead);font-weight:700;letter-spacing:0;color:var(--error)}.error-block>h2:after{content:none}.error-block>.error-body{margin:0;font-weight:700}.error-block>.error-note{margin:8px 0 0;font-size:var(--t-note);color:var(--muted)}.error-summary{margin-bottom:24px;padding:16px;background:var(--error-bg);border:1px solid var(--error);border-radius:var(--radius)}.error-summary>p{margin:0 0 8px;font-weight:700;color:var(--error)}.error-summary ul{margin:0;padding-left:1.2em}.error-summary a{color:var(--error)}.field-error{margin:12px 0 0;color:var(--error);font-weight:700}.rsvp-summary .stamp{margin:0;padding:20px;font-family:var(--mincho);font-size:var(--t-lead);letter-spacing:.18em;text-indent:.18em;text-align:center;color:var(--text);background:var(--card);border:1px solid var(--divider);border-radius:var(--radius)}.answer-list{list-style:none;padding:0;margin:20px 0}.answer-list>li{padding:14px 0;border-bottom:1px solid var(--divider)}.answer-list .who{display:block;font-family:var(--mincho);font-size:var(--t-lead);letter-spacing:.06em}.status{display:inline-block;padding:0 10px;border-left:3px solid var(--muted);border-radius:0;background:none;color:var(--muted);font-size:var(--t-note)}.status[data-attending=true]{border-left-color:var(--navy);color:var(--navy);font-weight:700}.note{color:var(--muted);font-size:var(--t-note)}.loading{text-align:center;padding:64px 0;color:var(--muted)}.page-footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--divider);text-align:center}.page-footer .thanks{margin:0;font-family:var(--mincho);font-size:1.5rem;font-weight:400;letter-spacing:.18em;text-indent:.18em;color:var(--brass)}.page-footer .footer-meta{margin:6px 0 0;font-size:var(--t-note);letter-spacing:.1em;color:var(--muted)}
