:root{--bg:#f4ead6;--surface:#ece0c9;--surface-2:#e3d4b8;--text:#22231d;--muted:#22231d9e;--green:#6a7c4b;--green-600:#5a6b3f;--green-700:#495732;--green-800:#3a4528;--green-900:#2a3220;--green-100:#eef3e2;--green-300:#c6d3aa;--divider:#22231d24;--radius-lg:28px;--radius-md:16px;--shadow-md:0 4px 16px #2a322021;--shadow-lg:0 18px 44px #2a322033;--heading:"Cormorant Garamond", Georgia, serif;--body:"Figtree", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:400;line-height:1.6}body,button,input,textarea{font-family:var(--body)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--heading);letter-spacing:.005em;font-weight:400;line-height:1.08}img{max-width:100%;display:block}a{color:var(--green-700);text-underline-offset:3px}a:hover{color:var(--green-900)}button,a{-webkit-tap-highlight-color:transparent}::selection{background:#6a7c4b40}:focus{outline:none}:focus-visible{outline:2px solid var(--green);outline-offset:3px}[hidden]{display:none!important}.lang-ca,.lang-en,.lang-fr,html[data-lang=ca] .lang-es,html[data-lang=en] .lang-es,html[data-lang=fr] .lang-es{display:none}html[data-lang=ca] .lang-ca,html[data-lang=en] .lang-en,html[data-lang=fr] .lang-fr{display:inline}.site-nav{z-index:50;border-bottom:1px solid var(--divider);-webkit-backdrop-filter:blur(12px);background:#f4ead6d6;align-items:center;gap:1.5rem;padding:1rem clamp(1.25rem,5vw,4rem);display:flex;position:sticky;top:0}.scroll-progress{background:var(--green);pointer-events:none;transform-origin:0;will-change:transform;width:100%;height:2px;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.nav-brand{color:var(--text);font-family:var(--heading);letter-spacing:.02em;white-space:nowrap;margin-right:auto;font-size:1.5rem;text-decoration:none}.nav-brand span{color:var(--green)}.nav-links{align-items:center;gap:clamp(.9rem,2.4vw,1.65rem);display:flex}.nav-links a{color:var(--text);letter-spacing:.03em;font-size:.84rem;text-decoration:none;transition:color .16s}.nav-links a:hover{color:var(--green-700)}.language-switcher{border:1px solid var(--divider);background:var(--bg);border-radius:999px;flex:none;display:inline-flex;overflow:hidden}.language-switcher button{color:var(--muted);cursor:pointer;letter-spacing:.05em;background:0 0;border:0;padding:.44rem .85rem;font-size:.75rem}.language-switcher button[aria-pressed=true]{background:var(--green);color:#f6f1e3}.hero,.section{width:min(100%,1180px);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,4rem)}.hero{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(2rem,5vw,4.5rem);padding-top:clamp(2.5rem,7vw,5.5rem);padding-bottom:clamp(3rem,8vw,6rem);display:grid}.hero-copy{animation:.9s both fade-up}.kicker,.detail-label{color:var(--green-700);letter-spacing:.28em;text-transform:uppercase;margin-bottom:1rem;font-size:.75rem;font-weight:500}.hero .kicker{letter-spacing:.32em;margin-bottom:1.4rem}.hero h1{margin-bottom:0;font-size:clamp(4rem,11vw,7.5rem);line-height:.92}.hero h1 em{color:var(--green);font-weight:300}.short-rule{background:var(--green);width:4rem;height:1px;margin:2rem 0 1.75rem}.hero-date{font-family:var(--heading);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.6rem;font-size:clamp(1.5rem,4vw,2rem)}.hero-place{max-width:34ch;color:var(--muted);margin-bottom:2rem}.button{letter-spacing:.03em;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;padding:.8rem 1.65rem;font-size:.88rem;text-decoration:none;transition:background-color .16s,color .16s,border-color .16s;display:inline-flex}.button-primary{background:var(--green);box-shadow:var(--shadow-md);color:#f7f1e2}.button-primary:hover{background:var(--green-700);color:#fff}.button-secondary{border:1px solid var(--green);color:var(--green-700);background:0 0}.button-secondary:hover{background:var(--green-100);color:var(--green-900)}.photo-frame{box-shadow:var(--shadow-lg);overflow:hidden}.photo-frame img{object-fit:cover;filter:saturate(.72)contrast(.94)brightness(1.05);width:100%;height:100%}.hero-photo{aspect-ratio:4/5;width:min(100%,440px);margin-inline:auto;animation:1.1s both fade-up}.hero-photo img{transform-origin:0;transform:scale(1.28)}.photo-arch-top{border-radius:230px 230px var(--radius-lg) var(--radius-lg)}.scroll-cue{color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;padding-bottom:1.5rem;animation:2.4s ease-in-out infinite floaty;display:flex}.scroll-cue span{letter-spacing:.24em;text-transform:uppercase;font-size:.68rem}.scroll-cue b{font-size:1.1rem;font-weight:400;line-height:1}.section{padding-top:clamp(3.5rem,9vw,7.5rem);padding-bottom:clamp(3.5rem,9vw,7.5rem)}.story{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}.story-copy{max-width:31rem}.story h2,.section-heading h2{margin-bottom:1.75rem;font-size:clamp(2.3rem,5.5vw,3.65rem)}.story p:not(.kicker){margin-bottom:1.1rem;font-size:1.05rem}.muted{color:var(--muted)}.story-photo{aspect-ratio:3/4;width:min(100%,460px)}.photo-arch-bottom{border-radius:var(--radius-lg) var(--radius-lg) 200px 200px}.venue{background:var(--surface)}.section-heading{text-align:center;margin-bottom:clamp(2.5rem,6vw,4rem)}.section-heading h2{margin-bottom:.65rem;font-size:clamp(2.6rem,6vw,4rem)}.venue-details{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(1.5rem,4vw,3rem);margin-bottom:clamp(2.25rem,5vw,3.5rem);display:grid}.date-block,.place-block{text-align:center;padding:.5rem}.detail-label{color:var(--muted);letter-spacing:.2em;margin-bottom:.8rem;font-size:.68rem}.calendar-date{color:var(--green-800);font-family:var(--heading);flex-direction:column;align-items:center;display:flex}.calendar-date>span{letter-spacing:.2em;text-transform:uppercase;font-size:1.25rem}.calendar-date strong{margin:.2rem 0 1rem;font-size:clamp(5rem,14vw,8.25rem);font-weight:500;line-height:.72;display:block}.calendar-date small{font-family:var(--body);letter-spacing:.45em;padding-left:.45em;font-size:.85rem;font-weight:500;line-height:1}.date-block>p:last-child{margin:1rem 0 0;font-size:.94rem}.place-block h3{margin-bottom:.85rem;font-size:clamp(2rem,4.5vw,2.75rem)}.place-block address{color:var(--muted);margin-bottom:1.5rem;font-size:.94rem;font-style:normal;line-height:1.7}.venue-gallery{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.venue-gallery .photo-frame{border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.gallery-portrait{aspect-ratio:3/4;grid-row:1/3}.gallery-landscape{aspect-ratio:16/10}.program{width:min(100%,900px)}.program .section-heading{margin-bottom:clamp(2.5rem,6vw,4rem)}.timeline{border-bottom:1px solid var(--divider)}.timeline-item{border-top:1px solid var(--divider);grid-template-columns:110px 1fr;align-items:baseline;gap:clamp(1rem,4vw,2.5rem);padding:1.6rem 0;display:grid}.timeline-item time{color:var(--green);font-family:var(--heading);letter-spacing:.04em;font-size:clamp(1.75rem,4vw,2.4rem)}.timeline-item h3{margin-bottom:.25rem;font-size:clamp(1.6rem,3.5vw,2rem)}.timeline-item p{margin:0;font-size:.94rem}.rsvp{background:var(--green-900);color:#f2ecdd}.rsvp-inner{width:min(100%,640px);margin-inline:auto;padding:clamp(3.5rem,9vw,7.5rem) clamp(1.25rem,5vw,4rem)}.rsvp-heading{text-align:center;margin-bottom:clamp(2rem,5vw,3rem)}.rsvp-heading .kicker{color:var(--green-300)}.rsvp-heading h2{color:#f6f1e3;margin-bottom:1rem;font-size:clamp(2.6rem,6vw,3.75rem)}.rsvp-heading>p:last-child{color:#f6f1e3b3;max-width:44ch;margin-inline:auto}.rsvp-form{flex-direction:column;gap:1.25rem;display:flex}.field>span,.attendance legend{color:var(--green-300);letter-spacing:.04em;margin-bottom:.45rem;font-size:.75rem;display:block}.field input,.field textarea{color:#f6f1e3;background:#f6f1e30f;border:1px solid #f6f1e338;border-radius:999px;width:100%;font-size:.94rem}.field input{padding:.8rem 1.1rem}.field textarea{border-radius:var(--radius-md);resize:vertical;min-height:6rem;padding:.8rem 1.1rem}.field input:hover,.field textarea:hover{border-color:#f6f1e36b}.field input:focus-visible,.field textarea:focus-visible{border-color:var(--green-300);outline-color:var(--green-300);outline-offset:1px}.attendance{border:0;margin:0;padding:0}.attendance>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.attendance label{color:#f6f1e3;cursor:pointer;background:#f6f1e30f;border:1px solid #f6f1e338;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.88rem;display:flex}.attendance label:hover{border-color:#f6f1e36b}.attendance input{accent-color:var(--green-300)}.attendance label:has(input:checked){border-color:var(--green-300);background:#c6d3aa26}.conditional-panel{border-radius:var(--radius-lg);background:#f6f1e30b;border:1px solid #f6f1e329;gap:1.35rem;padding:clamp(1rem,4vw,1.4rem);animation:.32s both conditional-appear;display:grid}.companion-choice{padding-top:.15rem}.companion-details{border-top:1px solid #f6f1e329;gap:1.25rem;padding-top:1.35rem;animation:.32s both conditional-appear;display:grid}.companion-heading{color:#f6f1e3;font-family:var(--heading);margin:0;font-size:1.55rem;line-height:1.1}.submit-button{color:var(--green-900);cursor:pointer;letter-spacing:.03em;background:#f6f1e3;border:0;border-radius:999px;margin-top:.4rem;padding:.95rem;font-size:.94rem;transition:background-color .16s}.submit-button:hover{background:#fff}.deadline{color:#f6f1e380;text-align:center;margin:.15rem 0 0;font-size:.8rem}.rsvp-success{border-radius:var(--radius-lg);text-align:center;background:#f6f1e314;border:1px solid #f6f1e333;padding:clamp(2rem,6vw,3.5rem)}.rsvp-success>div{margin-bottom:.85rem;font-size:2.5rem}.rsvp-success h3{color:#f6f1e3;margin-bottom:.6rem;font-size:2rem}.rsvp-success p{color:#f6f1e3b8;margin:0}.site-footer{text-align:center;padding:clamp(3rem,7vw,5rem) 1.5rem}.site-footer p{margin:0}.footer-logo-wrap{aspect-ratio:1;filter:drop-shadow(0 .7rem 1.25rem #2a322029);width:clamp(7.5rem,16vw,9.5rem);margin:0 auto 1.5rem}.footer-logo{width:100%;height:100%;display:block}.footer-details{color:var(--muted);letter-spacing:.28em;text-transform:uppercase;font-size:.75rem}.footer-signoff{color:var(--green);font-family:var(--heading);font-size:1.4rem;font-style:italic;margin-top:1.35rem!important}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes conditional-appear{0%{opacity:0;transform:translateY(-.4rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){html[data-reveal-ready=true] [data-reveal]{opacity:0;will-change:opacity, transform;transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1);transform:translateY(1.875rem)}html[data-reveal-ready=true] [data-reveal=mask]{clip-path:inset(0 0 100%);transition:opacity 1s,transform 1s cubic-bezier(.22,.61,.36,1),clip-path 1s cubic-bezier(.22,.61,.36,1);transform:translateY(.875rem)}html[data-reveal-ready=true] [data-reveal=image]{transition:opacity 1.1s,transform 1.4s cubic-bezier(.22,.61,.36,1);transform:scale(1.05)}html[data-reveal-ready=true] [data-reveal].is-visible{opacity:1;transform:none}html[data-reveal-ready=true] [data-reveal=mask].is-visible{clip-path:inset(0)}}@media (width<=760px){html{scroll-padding-top:4.5rem}.site-nav{gap:.75rem;padding:.8rem 1.1rem}.nav-links{display:none}.language-switcher button{padding:.4rem .72rem}.hero,.story,.venue-details{grid-template-columns:1fr}.hero{gap:2.75rem}.hero-copy{text-align:center}.hero-place,.short-rule{margin-inline:auto}.story-copy{max-width:none}.story-photo{margin-inline:auto}.venue-gallery{grid-template-rows:auto;grid-template-columns:1fr}.gallery-portrait{aspect-ratio:4/5;grid-row:auto}.gallery-landscape{aspect-ratio:16/10}}@media (width<=480px){.hero h1{font-size:clamp(3.7rem,21vw,5rem)}.timeline-item{grid-template-columns:84px 1fr;gap:.85rem}.attendance>div{grid-template-columns:1fr}.footer-details{letter-spacing:.18em}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
