:root{--cream:#faf8f5;--paper:#fffdfb;--gold:#b89758;--gold-deep:#8d7340;--gold-light:#e6dcc8;--sage:#6b8068;--sage-dark:#556752;--sage-soft:#eef2ec;--ink:#2c302b;--muted:#4f564d;--line:#ddd4c4;--danger:#7a4032;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;color:var(--ink);background-color:var(--cream);background-image:radial-gradient(circle at 100% 0,#e7eee6 0%,#0000 42%),radial-gradient(circle at 0 100%,#f3ecdf 0%,#0000 48%);margin:0;font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:17px}::selection{color:var(--ink);background:#efe4cc}.sprite{width:0;height:0;position:absolute;overflow:hidden}.stage{justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.frame{border:1px solid var(--gold);background:linear-gradient(#fffdfb8c,#fffdfb33);width:min(500px,100%);padding:9px;animation:.7s both rise;box-shadow:0 22px 55px #48381814}.card{background:var(--paper);border:1px solid var(--gold-light);text-align:center;padding:46px 36px 30px;position:relative}.sprig{pointer-events:none;width:104px;height:104px;position:absolute}.sprig.tl{top:-4px;left:-4px}.sprig.tr{top:-4px;right:-4px;transform:scaleX(-1)}.sprig.bl{bottom:-4px;left:-4px;transform:scaleY(-1)}.sprig.br{bottom:-4px;right:-4px;transform:scale(-1)}.invite,form,.success,.footer{z-index:1;position:relative}.cross{width:26px;height:36px;color:var(--gold);margin:0 auto 6px;display:block}.eyebrow{color:#3f463d;text-wrap:balance;max-width:18em;margin:0 auto;font-size:1.18rem;font-style:italic;line-height:1.35}h1{color:var(--gold-deep);margin:6px 0 12px;font-family:Great Vibes,cursive;font-size:clamp(2.7rem,10vw,4rem);font-weight:400;line-height:.95}.ornament{align-items:center;gap:10px;width:min(210px,68%);margin:0 auto 18px;display:flex}.ornament-line{background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:1px}.ornament-diamond{background:var(--gold);width:6px;height:6px;transform:rotate(45deg)}.when{margin:0}.when strong{letter-spacing:.01em;font-size:1.28rem;font-weight:600;display:block}.when span{color:var(--muted);margin-top:2px;font-size:1.16rem;font-style:italic;display:block}.where{text-wrap:balance;margin:14px 0 10px;font-size:1.18rem;line-height:1.4}.map{max-width:100%;color:var(--sage-dark);text-align:left;border-bottom:1px dotted var(--sage-dark);justify-content:center;align-items:flex-start;gap:6px;font-size:1.02rem;font-weight:600;line-height:1.35;text-decoration:none;display:inline-flex}.map svg{flex:none;width:15px;height:15px;margin-top:2px}.map:hover{color:var(--gold-deep);border-bottom-color:var(--gold-deep)}.reply-label{color:var(--gold-deep);letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:12px;margin:26px 0 4px;font-size:.78rem;font-weight:700;display:flex}.reply-label:before,.reply-label:after{content:"";background:var(--gold-light);flex:1;height:1px}form{text-align:left}fieldset{border:0;min-inline-size:0;margin:0;padding:0}.field{margin-top:16px}.field label,.field legend{letter-spacing:.08em;text-transform:uppercase;color:var(--sage-dark);margin-bottom:6px;padding:0;font-size:.92rem;font-weight:700;display:block}.req{color:var(--gold-deep)}.optional{letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px;font-style:italic;font-weight:500}input[type=text],textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fbf9f6;border-radius:8px;padding:12px 14px;font-size:1.12rem}textarea{resize:vertical;min-height:84px;line-height:1.4}input[type=text]:focus,textarea:focus{border-color:var(--gold);background:#fff;outline:none;box-shadow:0 0 0 3px #b8975833}::placeholder{color:#7a8176}.choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice{cursor:pointer;display:block;position:relative}.choice input{opacity:0;width:1px;height:1px;margin:0;position:absolute}.choice span{border:1px solid var(--line);text-align:center;letter-spacing:0;text-transform:none;min-height:68px;color:var(--ink);background:#fbf9f6;border-radius:10px;justify-content:center;align-items:center;padding:10px 12px;font-size:1.12rem;font-weight:600;line-height:1.25;display:flex}.choice input:checked+span{border-color:var(--sage-dark);background:var(--sage-soft);box-shadow:inset 0 0 0 1px var(--sage-dark)}.choice input:focus-visible+span{outline:2px solid var(--gold-deep);outline-offset:2px}.counts{grid-template-columns:1fr 1fr;gap:12px;display:grid}.counts .field{margin-top:0}.stepper{border:1px solid var(--line);background:#fbf9f6;border-radius:8px;align-items:stretch;display:flex;overflow:hidden}.stepper:focus-within{border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px #b8975833}.stepper button{width:44px;color:var(--sage-dark);cursor:pointer;background:0 0;border:0;font-family:inherit;font-size:1.45rem;line-height:1}.stepper button:hover{background:#55675214}.stepper button:focus-visible{outline:2px solid var(--gold-deep);outline-offset:-2px}.stepper input[type=number]{text-align:center;width:100%;font:inherit;font-variant-numeric:lining-nums tabular-nums;color:var(--ink);appearance:textfield;background:0 0;border:0;padding:10px 0;font-size:1.28rem;font-weight:600}.stepper input:focus{outline:none}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.party-line{text-align:center;color:var(--sage-dark);margin:10px 0 0;font-size:1.08rem;font-style:italic}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.submit{background:var(--sage-dark);color:#fff;letter-spacing:.03em;cursor:pointer;border:0;border-radius:999px;width:100%;margin-top:22px;padding:13px 18px;font-family:inherit;font-size:1.2rem;font-weight:600}.submit:hover{background:#3f4d3d}.submit:disabled{opacity:.68;cursor:wait}.submit:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}.form-error{color:var(--danger);background:#f8f1ea;border:1px solid #ead5c8;border-radius:8px;margin:14px 0 0;padding:10px 12px;font-size:1.05rem;line-height:1.35}.preview-note{text-align:center;color:var(--muted);margin:12px 0 0;font-size:.98rem;font-style:italic;line-height:1.35}.success h2{color:var(--gold-deep);margin:8px 0;font-family:Great Vibes,cursive;font-size:clamp(2.8rem,9vw,3.5rem);font-weight:400;line-height:1}.success p{text-wrap:balance;max-width:28em;margin:0 auto;font-size:1.22rem;line-height:1.45}.cal-actions{flex-direction:column;align-items:center;gap:10px;margin-top:18px;display:flex}.cal-btn{border:1.5px solid var(--gold);color:var(--ink);background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:1.08rem;font-weight:600;text-decoration:none;display:inline-flex}.cal-btn svg{width:18px;height:18px;color:var(--gold-deep)}.cal-btn:hover{background:#fbf8f2}.cal-btn:focus-visible,.map:focus-visible,.ics-link:focus-visible,.text-btn:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}.ics-link,.text-btn{color:var(--sage-dark);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;font-family:inherit;font-size:1.05rem;font-weight:600;text-decoration:underline}.text-btn{margin-top:16px}.footer{color:var(--muted);margin:26px 0 4px;font-size:1.16rem;font-style:italic}[hidden]{display:none!important}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (width<=520px){.stage{padding:16px 10px}.card{padding:40px 18px 24px}.sprig{width:76px;height:76px}.choices{grid-template-columns:1fr}.choice span{min-height:52px}}@media (width<=380px){.counts{grid-template-columns:1fr}.map{font-size:.98rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
