@font-face{font-family:Scatter Ink;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/scatter-ink.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/cormorant-garamond.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/eb-garamond.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400 600;font-display:swap;src:url(/fonts/eb-garamond-italic.woff2) format("woff2")}:root{--cream: #faf6ee;--cream-deep: #f1ece0;--card: #fffdf9;--ink: #4b4038;--ink-soft: #6f6358;--ink-slate: #4c4a54;--muted: #938676;--line: #e9ddca;--line-soft: #f0e7d7;--green: #517b5e;--green-deep: #3f6249;--green-tint: #e5ede8;--bronze: #573710;--bronze-deep: #43290b;--rose: #b76e79;--rose-tint: #f4e6e6;--sage: #8ca77b;--gold: #c9a15a;--shadow: 0 18px 40px -28px rgba(122, 90, 70, .55);--shadow-sm: 0 8px 22px -18px rgba(122, 90, 70, .6);--font-script: "Scatter Ink", "Snell Roundhand", cursive;--font-head: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body: "EB Garamond", Georgia, "Times New Roman", serif;--maxw: 1080px;color:var(--ink);font-family:var(--font-body)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background-color:var(--cream);background-image:radial-gradient(1000px 480px at 50% -240px,var(--green-tint),transparent 70%),radial-gradient(900px 500px at 100% 8%,rgba(140,167,123,.08),transparent 70%);background-attachment:fixed;font-family:var(--font-body);font-size:1.06rem;line-height:1.65;-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}h1,h2,h3{font-family:var(--font-head);font-weight:600;line-height:1.12;color:var(--ink)}p{margin:0 0 1rem}a{color:var(--green-deep)}.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}.app{position:relative;min-height:100vh}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.7rem clamp(1rem,4vw,2rem);background:#faf6eed1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}.brand{font-family:var(--font-head);font-size:1.4rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--bronze);text-decoration:none;white-space:nowrap}.site-nav{display:none;order:3;flex-basis:100%}.site-nav ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.15rem .4rem;margin:0;padding:.15rem 0}.nav-link{display:inline-block;padding:.28rem .6rem;border-radius:999px;font-family:var(--font-head);font-size:.98rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--ink-soft);transition:color .18s,background-color .18s}.nav-link:hover,.nav-link:focus-visible{color:var(--green-deep);background:var(--green-tint)}@media (min-width: 780px){.site-nav{display:block;order:0;flex:1;flex-basis:auto}}.btn{display:inline-block;border:none;cursor:pointer;font-family:var(--font-head);font-size:1rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-radius:999px;padding:.6rem 1.5rem;background:var(--green);color:#fff;box-shadow:var(--shadow-sm);transition:background-color .18s,transform .18s}.btn:hover,.btn:focus-visible{background:var(--green-deep);transform:translateY(-1px)}.btn-rsvp{padding:.45rem 1.15rem;font-size:.9rem}.btn-ghost{background:transparent;color:var(--green-deep);border:1px solid var(--green);box-shadow:none}.btn-ghost:hover,.btn-ghost:focus-visible{background:var(--green-tint);color:var(--green-deep)}.hero{position:relative;min-height:100vh;min-height:100svh;padding:5.5rem 1.25rem 2rem;display:grid;place-items:center;background-color:#eae9e9;background-image:url(/flowers.webp);background-size:cover;background-position:center;background-repeat:no-repeat}.hero-card{position:relative;z-index:1;width:-moz-fit-content;width:fit-content;min-width:min(295px,84vw);max-width:92vw;text-align:center;background:#fff;border-radius:16px;padding:2.5em 2.25em}.hero-card-names{display:flex;flex-direction:column;align-items:center;gap:.05rem;margin:0 0 1.1em;font-weight:400;color:#5c606d}.hero-name{font-family:var(--font-script);font-size:clamp(3.5rem,17vw,5rem);line-height:1}.hero-amp{font-family:var(--font-script);font-size:clamp(2rem,9vw,2.75rem);line-height:1;margin:.1rem 0}.hero-card-date{font-family:var(--font-head);font-size:clamp(1.05rem,3.6vw,1.3rem);font-weight:700;color:#5c606d;margin:0 0 1.4em}.hero-card .btn{padding:.7rem 2.4rem;font-size:1.05rem;font-weight:700}@media (min-width: 780px){.hero{min-height:auto;height:min(92vh,940px);background-color:#fff;background-size:contain}.hero-card{min-width:420px;padding:4em 3.75em}.hero-name{font-size:5.5rem}.hero-amp{font-size:3rem}}.app-main{display:block}section[id],#rsvp-heading{scroll-margin-top:96px}.section{max-width:var(--maxw);margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1.1rem,4vw,2rem)}.section-head{text-align:center;margin:1rem 0 3.5rem}.section-head h2{font-family:var(--font-script);font-size:clamp(2.25rem,7vw,3.3rem);font-weight:400;margin:0;color:var(--bronze);letter-spacing:.01em}.section-intro{max-width:36rem;margin:-.6rem auto 2rem;text-align:center;color:var(--ink-soft)}.section-alt{position:relative;max-width:none}.section-alt:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--cream-deep);z-index:-1}.section-alt>.section-inner{max-width:var(--maxw);margin:0 auto}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:clamp(1.25rem,3vw,2rem)}.story-list{max-width:40.5rem;margin:0 auto;display:grid;gap:2.75rem}.story-chapter{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(13rem,.92fr);align-items:stretch;gap:clamp(1.25rem,4vw,2.5rem);padding:clamp(1.5rem,4vw,2rem);background:#fffdf8;border:1px solid rgba(87,55,16,.12);border-radius:22px;box-shadow:0 16px 32px -25px #5737107a}.story-photo{min-height:25rem;overflow:hidden;border-radius:50% 50% .7rem .7rem/8rem 8rem .7rem .7rem;background:linear-gradient(135deg,var(--green-tint),var(--rose-tint));display:grid;place-items:center}.story-photo img{width:100%;height:100%;object-fit:cover;display:block}.story-photo-ph{font-size:2.6rem;color:var(--bronze);opacity:.4;line-height:1}.story-body{align-self:center;padding:.25rem 0}.story-year{position:absolute;top:clamp(1.5rem,4vw,2rem);left:clamp(1.5rem,4vw,2rem);z-index:1;display:inline-block;font-family:var(--font-head);font-weight:600;font-size:.9rem;letter-spacing:.2em;color:var(--ink-soft);border:1px solid var(--ink-soft);border-radius:999px;padding:.18rem .9rem;margin:0}.story-chapter h3{font-family:var(--font-head);font-size:clamp(2rem,5vw,2.45rem);font-weight:600;color:var(--bronze-deep);margin:0 0 .55rem}.story-chapter p{margin:0;font-size:clamp(1.1rem,2.7vw,1.25rem);line-height:1.65;color:var(--bronze-deep)}@media (max-width: 540px){.story-chapter{grid-template-columns:1fr;gap:1.25rem}.story-photo{order:-1;min-height:0;aspect-ratio:3 / 4;border-radius:50% 50% .7rem .7rem/7rem 7rem .7rem .7rem}.story-year{position:static;display:block;width:fit-content;margin:0 0 .75rem}}.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.61,.36,1)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}.detail-grid{display:grid;gap:1.25rem;grid-template-columns:1fr;max-width:42rem;margin:0 auto}@media (min-width: 720px){.detail-grid{grid-template-columns:1fr 1fr}.detail-block.span-2{grid-column:1 / -1}}.detail-block{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:clamp(1.15rem,3vw,1.7rem)}.detail-block h3{font-size:1.4rem;color:var(--bronze);margin:0 0 .5rem;display:flex;align-items:baseline;gap:.5rem}.detail-block h3 .ico{color:var(--green);font-size:.85em}.detail-block p{margin:0 0 .4rem}.detail-block address{font-style:normal;color:var(--ink-soft)}.timeline{list-style:none;margin:.4rem 0 0;padding:0;position:relative}.timeline-item{position:relative;display:grid;grid-template-columns:1rem minmax(0,1fr);column-gap:.85rem;padding:0 0 clamp(1.75rem,4vw,2.5rem)}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"♥";grid-column:1;grid-row:1;z-index:1;align-self:start;color:var(--green);font-family:var(--font-body);font-size:1rem;line-height:1.3;text-align:center;transform:translateY(.08rem)}.timeline-item:not(:last-child):after{content:"";position:absolute;left:calc(.5rem - 1px);top:1.5rem;bottom:.35rem;width:2px;background:var(--green);opacity:.5}.timeline-content{grid-column:2}.timeline-header{margin-bottom:.3rem;font-family:var(--font-head);font-size:1.22rem;font-weight:600;line-height:1.3;letter-spacing:.05em;color:var(--bronze)}.timeline-desc{display:block;color:var(--ink-soft);font-size:.95rem;line-height:1.65;margin-bottom:.3rem}.timeline-address{display:flex;flex-direction:column;font-style:normal;color:var(--ink-soft);font-size:.95rem;margin:.2rem 0 .6rem}.timeline-address-line{display:block}.timeline-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;padding:.35rem .9rem;text-transform:none;letter-spacing:.02em}.party-group{margin:0 auto 2.25rem;max-width:var(--maxw)}.party-group:last-child{margin-bottom:0}.party-group>h3{text-align:center;font-family:var(--font-script);font-weight:400;font-size:2.4rem;color:var(--bronze);margin:0 0 1.25rem}.party-list{list-style:none;margin:0;padding:0;display:grid;gap:1.5rem 1rem;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.party-member{text-align:center}.party-avatar{width:clamp(96px,26vw,128px);height:clamp(96px,26vw,128px);margin:0 auto .65rem;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 32% 28%,#fff,var(--green-tint));border:2px solid var(--card);outline:1px solid var(--line);box-shadow:var(--shadow-sm);font-family:var(--font-script);font-size:clamp(2.2rem,7vw,3rem);color:var(--bronze);line-height:1}.party-name{display:block;font-family:var(--font-head);font-weight:600;font-size:1.2rem;color:var(--ink)}.party-role{display:block;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin:.1rem 0 .4rem}.party-bio{margin:0 auto;max-width:16rem;font-size:.95rem;color:var(--muted)}.faq-list{margin:0 auto;max-width:42rem;display:grid;gap:.9rem}.faq-item{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);padding:1.1rem 1.3rem}.faq-question{font-family:var(--font-head);font-weight:600;font-size:1.22rem;color:var(--bronze);margin-bottom:.3rem}.faq-answer{margin:0;color:var(--ink-soft);white-space:pre-line}.faq-link{display:flex;align-items:center;gap:.4rem;width:fit-content;margin-top:.75rem;font-size:.85rem;padding:.35rem .9rem;text-transform:none;letter-spacing:.02em}.btn-icon{width:1em;height:1em;flex:none}.rsvp-section .section-inner{position:relative}.rsvp-form,.rsvp-confirmation,.rsvp-retry{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:clamp(1.4rem,4vw,2.25rem);max-width:42rem;margin:0 auto}.rsvp-form>h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.rsvp-form h3{font-size:1.3rem;color:var(--bronze)}.field{display:block;margin:1rem 0;border:none;padding:0;min-width:0}.field-label,legend.field-label{display:block;font-family:var(--font-head);font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.35rem;padding:0}.field input[type=text],.field input[type=email],.field textarea,.field select{width:100%;padding:.6rem .75rem;border:1px solid var(--line);border-radius:10px;background:#fffefb;color:var(--ink);font-family:var(--font-body);font-size:1.02rem;transition:border-color .15s,box-shadow .15s}.field textarea{resize:none}.field input:focus,.field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#c0505f}fieldset.field legend+label,.field label{cursor:pointer}.field input[type=radio],.field input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.05rem;height:1.05rem;margin:0 .4rem 0 0;border:2px solid var(--green);background:#fffefb;vertical-align:middle;cursor:pointer;flex-shrink:0}.field input[type=radio]{border-radius:50%}.field input[type=checkbox]{border-radius:.2rem;display:inline-flex;align-items:center;justify-content:center}.field input[type=radio]:checked,.field input[type=checkbox]:checked{background:var(--green);border-color:var(--green)}.field input[type=checkbox]:checked:after{content:"";width:.28rem;height:.5rem;margin-bottom:.1rem;border:solid #fffefb;border-width:0 .15rem .15rem 0;transform:rotate(45deg)}fieldset.field label{display:flex;align-items:center;padding:.15rem 0}.dietary-section{margin-top:.75rem}.dietary-toggle{display:flex;align-items:center;gap:.4rem;width:100%;padding:.55rem 0;border:0;background:transparent;cursor:pointer;text-align:left}.dietary-chevron{color:var(--green-deep);font-size:1rem;line-height:1;transition:transform .15s ease}.dietary-toggle[aria-expanded=true] .dietary-chevron{transform:rotate(90deg)}.dietary-details{padding-top:.25rem}.dietary-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.5rem 1rem}.dietary-check{padding:.4rem .65rem;border:1px solid var(--green);border-radius:999px;background:#fffefb;color:var(--green-deep);cursor:pointer;font-family:var(--font-body);font-size:.96rem;text-align:center;transition:background-color .15s,color .15s,box-shadow .15s}.dietary-check[aria-pressed=true]{background:var(--green);color:#fffefb}.dietary-check:focus-visible{outline:none;box-shadow:0 0 0 3px var(--green-tint)}.attendee{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}.attendee-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.75rem}.add-attendee,.remove-attendee{border-radius:10px;padding:.55rem .9rem;cursor:pointer;font-family:var(--font-head);font-size:.98rem;letter-spacing:.04em}.add-attendee{background:var(--green-tint);border:1px dashed var(--green);color:var(--green-deep)}.add-attendee:hover{background:#dbe6d2}.remove-attendee{background:var(--rose-tint);border:1px dashed var(--rose);color:var(--rose)}.remove-attendee:hover{background:#efd6da}.field-divider{border:none;border-top:1px solid var(--line);margin:1.75rem 0}.link-btn{background:transparent;border:1px solid var(--green);border-radius:999px;color:var(--green);cursor:pointer;padding:.75rem 1rem;font-family:var(--font-head);font-size:1.1rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.link-btn:hover{background:var(--green-tint)}.primary-btn{display:block;width:100%;margin-top:1.4rem;background:var(--green);color:#fff;border:none;border-radius:999px;padding:.75rem 1rem;font-family:var(--font-head);font-size:1.1rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color .18s,transform .18s}.primary-btn:hover:not(:disabled){background:var(--green-deep);transform:translateY(-1px)}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.rsvp-retry-actions{display:flex;width:min(100%,24rem);gap:.75rem;margin:0 auto}.rsvp-retry-actions .primary-btn,.rsvp-retry-actions .link-btn{flex:1;min-width:0;margin:0}.field-error,.submit-error{color:#b23a4a;font-size:.85rem;display:block;margin-top:.3rem}.rsvp-confirmation,.rsvp-retry{padding:clamp(1.8rem,5vw,2.75rem);text-align:center}.rsvp-confirmation{position:relative;z-index:11;overflow:hidden;animation:rsvp-result-enter .55s cubic-bezier(.22,.61,.36,1) both}@keyframes rsvp-result-enter{0%{opacity:0;transform:translateY(1.25rem) scale(.98)}to{opacity:1;transform:none}}.rsvp-confirmation>:not(.celebration-particles){position:relative;z-index:1}.celebration-particles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;overflow:hidden;pointer-events:none}.celebration-particle{position:absolute;left:var(--particle-left);bottom:-3rem;font-size:var(--particle-size);animation:celebration-float var(--particle-duration) cubic-bezier(.15,.75,.35,1) var(--particle-delay) both}@keyframes celebration-float{0%{opacity:0;transform:translateZ(0) rotate(0)}10%{opacity:1}to{opacity:0;transform:translate3d(var(--particle-drift),-115vh,0) rotate(var(--particle-rotation))}}.sad-particles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;overflow:hidden;pointer-events:none}.sad-particle{position:absolute;bottom:-2rem;left:var(--sad-left);font-size:var(--sad-size);animation:sad-float var(--sad-duration) linear var(--sad-delay) infinite both}@keyframes sad-float{0%{opacity:0;transform:translateZ(0)}8%,45%{opacity:.75}65%,to{opacity:0;transform:translate3d(var(--sad-drift),calc(-1 * var(--sad-rise)),0)}}.rsvp-retry .confirmation-corgi{margin-bottom:1.5rem}.rsvp-retry .confirmation-title,.rsvp-retry .confirmation-message{margin-bottom:2rem}.rsvp-confirmation--attending{animation:rsvp-result-enter .55s cubic-bezier(.22,.61,.36,1) both,attending-card-wiggle 8s ease-in-out .55s infinite}@keyframes attending-card-wiggle{0%,2%,7%,70%,75%,to{transform:rotate(0)}3%,71%{transform:rotate(1deg)}4%,72%{transform:rotate(-1deg)}5%,73%{transform:rotate(.7deg)}6%,74%{transform:rotate(-.5deg)}}@media (prefers-reduced-motion: reduce){.rsvp-confirmation,.rsvp-confirmation--attending,.celebration-particle,.corgi-heart,.sad-particle{animation:none}}.confirmation-corgi-wrap{position:relative;width:min(100%,19rem);margin:0 auto .75rem}.confirmation-corgi{display:block;width:100%}.corgi-hearts{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:visible;pointer-events:none}.corgi-heart{position:absolute;top:12%;left:var(--heart-left);opacity:0;font-size:1.15rem;animation:corgi-heart-float var(--heart-duration) ease-out var(--heart-delay) infinite}@keyframes corgi-heart-float{0%{opacity:0;transform:translate3d(-50%,0,0) scale(.65)}15%{opacity:.9}to{opacity:0;transform:translate3d(calc(-50% + var(--heart-drift)),-7rem,0) scale(1.1)}}.confirmation-title{margin:0 0 1.5rem;font-family:var(--font-script);font-size:clamp(2rem,6vw,2.6rem);line-height:1;color:var(--bronze)}.confirmation-title--error{font-weight:400}.confirmation-message{margin:0;font-family:var(--font-body);font-size:clamp(1.05rem,2.8vw,1.35rem);font-style:italic;line-height:1.2;color:var(--ink-soft)}.countdown-section{text-align:center}.countdown-grid{list-style:none;margin:0 auto;padding:0;max-width:62rem;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.75rem,6vw,3rem) 1rem}@media (min-width: 420px){.countdown-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 900px){.countdown-grid{grid-template-columns:repeat(6,1fr)}}.countdown-cell{display:flex;flex-direction:column;align-items:center;gap:.15rem}.countdown-num{font-family:var(--font-script);font-size:clamp(3rem,12vw,4.5rem);line-height:1;color:var(--bronze);font-variant-numeric:tabular-nums}.countdown-label{font-family:var(--font-head);font-size:clamp(1rem,3.6vw,1.25rem);letter-spacing:.04em;color:var(--bronze)}.site-footer{position:relative;text-align:center;padding:3rem 1.25rem 3.5rem;color:var(--muted);background-color:var(--cream)}.footer-flowers-corner,.footer-flowers-corner--right{position:absolute;bottom:0;width:min(440px,58vw);mix-blend-mode:multiply;pointer-events:none}.footer-flowers-corner{left:0}.footer-flowers-corner--right{right:0;transform:scaleX(-1)}.footer-note{font-family:var(--font-head);letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;margin:0}
