*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-variant-numeric:lining-nums;background:var(--background);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.65}img{max-width:100%;display:block}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;font-weight:400;line-height:1.1}p{margin:0}a{color:inherit}.eyebrow{font-family:var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:500}.muted{color:var(--muted)}.ornament{color:var(--accent);justify-content:center;margin:1.25rem auto;display:flex}.ornament svg{width:min(160px,50vw);height:auto}.ornament--small svg{width:96px}.link-subtle{color:var(--muted);text-underline-offset:4px;margin-top:1.5rem;font-size:.85rem;display:inline-block}.button{border:1px solid var(--accent);background:var(--accent);min-height:48px;color:var(--background);font:500 .8rem / 1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:.75rem 1.75rem;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.button--outline{color:var(--accent);background:0 0}.button:hover,.button:focus-visible{background:var(--text);border-color:var(--text);color:var(--background)}.button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.stack{gap:.75rem;max-width:22rem;margin:1.75rem auto 0;display:grid}.preview-bar{z-index:10;background:var(--text);color:var(--background);text-align:center;padding:.6rem 1rem;font-size:.8rem;position:sticky;top:0}.hero{text-align:center;place-items:center;min-height:100svh;padding:4rem 1.5rem;display:grid;position:relative;overflow:hidden}.hero__photo{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero--photo:after{content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--background) 25%, transparent), color-mix(in srgb, var(--background) 88%, transparent) 70%);position:absolute;inset:0}.hero__inner{z-index:1;width:100%;max-width:34rem;animation:1.2s cubic-bezier(.2,.7,.2,1) both rise;position:relative}.hero__guest{font-family:var(--font-display);color:var(--muted);margin-bottom:1.5rem;font-size:1.25rem;font-style:italic}.hero__names{flex-direction:column;align-items:center;gap:.1em;font-size:clamp(3rem,15vw,5.5rem);display:flex}.hero__amp{color:var(--accent);font-size:.5em;font-style:italic}.hero__date{letter-spacing:.3em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.6rem;font-size:.75rem;display:flex}.hero__date strong{border-block:1px solid var(--accent);font-family:var(--font-display);letter-spacing:.02em;text-transform:none;padding:.5rem 1.25rem;font-size:clamp(1.5rem,7vw,1.9rem);font-weight:400;line-height:1.2}.countdown{grid-template-columns:repeat(4,1fr);gap:.5rem;max-width:20rem;margin:2.25rem auto 0;display:grid}.countdown span{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:2rem;line-height:1;display:block}.countdown small{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.65rem}.section{text-align:center;max-width:40rem;margin:0 auto;padding:5rem 1.5rem}.section+.section{border-top:1px solid color-mix(in srgb, var(--accent) 22%, transparent)}.section__heading{margin-bottom:2rem}.section__heading h2{margin-top:.5rem;font-size:clamp(2.1rem,9vw,2.9rem)}.section__heading .ornament{margin-bottom:0}.prose{max-width:32rem;margin:0 auto;font-size:1.05rem}.photos{grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:2.5rem;display:grid}.photos img{aspect-ratio:4/5;object-fit:cover;width:100%}.photos--single{grid-template-columns:1fr}.photos--single img{aspect-ratio:4/3}.song{font-family:var(--font-display);gap:.4rem;margin-top:2rem;font-size:1.5rem;font-style:italic;display:grid}.timeline{gap:2.25rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.timeline li{gap:.2rem;display:grid}.timeline time{font-family:var(--font-display);color:var(--accent);font-size:1.9rem;line-height:1}.timeline strong{letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;font-weight:500}.timeline span{color:var(--muted);font-size:.92rem}.cards{gap:1.25rem;display:grid}.card{background:var(--surface);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);justify-items:center;gap:.5rem;padding:2.25rem 1.5rem;display:grid}.card h3{font-size:1.75rem}.card__time{font-weight:500}.card__address{max-width:22rem;color:var(--muted);font-size:.92rem}.card .button{margin-top:1rem}.roles{gap:2rem;display:grid}.roles__group .eyebrow{margin-bottom:.6rem}.roles__name{font-family:var(--font-display);font-size:1.45rem;line-height:1.35}.dresscode{font-family:var(--font-display);margin-bottom:.75rem;font-size:2rem}.swatches{justify-content:center;gap:.6rem;margin-top:1.75rem;display:flex}.swatches span{width:2.25rem;height:2.25rem;box-shadow:0 0 0 1px color-mix(in srgb, var(--text) 15%, transparent);border-radius:50%}.card--bank{margin-top:1.75rem}.clabe{font-variant-numeric:tabular-nums;letter-spacing:.08em;font-size:1.15rem}.rsvp__seats{font-family:var(--font-display);margin-bottom:1rem;font-size:1.5rem}.rsvp__seats strong{color:var(--accent);font-weight:500}.signature{text-align:center;font-family:var(--font-display);padding:4rem 1.5rem 3rem;font-size:1.6rem}.signature__brand{font-family:var(--font-body);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:2.5rem;font-size:.68rem;text-decoration:none;display:inline-block}.rsvp__thanks{font-family:var(--font-display);margin-bottom:.75rem;font-size:1.6rem}.rsvp__form{text-align:left;gap:1.5rem;max-width:22rem;margin:2.25rem auto 0;display:grid}.rsvp__choice{border:0;gap:.5rem;margin:0;padding:0;display:grid}.rsvp__choice legend{text-align:center;margin-bottom:.75rem}.rsvp__choice label{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:var(--surface);cursor:pointer;align-items:center;gap:.75rem;min-height:48px;padding:0 1.25rem;display:flex}.rsvp__choice label:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.rsvp__choice input{accent-color:var(--accent);width:1.1rem;height:1.1rem}.rsvp__field{gap:.4rem;display:grid}.rsvp__field label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.rsvp__field input,.rsvp__field select{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:var(--surface);width:100%;min-height:48px;color:var(--text);font:400 1rem / 1.4 var(--font-body);appearance:none;border-radius:0;padding:0 .9rem}.rsvp__field input:focus-visible,.rsvp__field select:focus-visible,.rsvp__choice label:focus-within{outline:2px solid var(--accent);outline-offset:2px}.rsvp__form .button{width:100%}.rsvp__legal{color:var(--muted);text-align:center;font-size:.8rem;line-height:1.5}.rsvp__error{color:#b3261e;font-size:.85rem}.tpl-noir .rsvp__legal{color:var(--muted);text-align:center;font-size:.8rem;line-height:1.5}.signature__legal{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.75rem;font-size:.68rem;display:block}.rsvp__error{color:#f2b8b5}.album__upload{justify-items:center;gap:.6rem;margin-top:1.75rem;display:grid}.album__upload .button{cursor:pointer}.qr{background:var(--surface);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);justify-items:center;gap:.75rem;max-width:20rem;margin:2rem auto 0;padding:1.5rem;display:grid}.qr__code svg{width:200px;height:200px;display:block}.js .reveal{opacity:0;transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.2,1);transform:translateY(24px)}.js .reveal.is-visible{opacity:1;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__inner{animation:none}.js .reveal{opacity:1;transition:none;transform:none}}.tpl-aurora .hero--photo{align-content:end;padding-top:0}.tpl-aurora .hero--photo .hero__photo{width:100%;height:54svh;margin-bottom:2.5rem;position:relative;inset:auto}.tpl-aurora .hero--photo:after{display:none}.tpl-aurora .hero,.tpl-noir .hero{padding-inline:2.5rem}.tpl-aurora .hero:before{content:"";z-index:1;border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);outline:1px solid color-mix(in srgb, var(--accent) 25%, transparent);outline-offset:-7px;pointer-events:none;position:absolute;inset:1rem}.tpl-aurora .hero__names{font-weight:300}.tpl-jardin .hero--photo{align-content:end;padding-top:0}.tpl-jardin .hero--photo .hero__photo{border-radius:999px 999px 0 0;width:min(100%,24rem);height:58svh;margin:3rem auto 0;position:relative;inset:auto}.tpl-jardin .hero--photo:after{display:none}.tpl-jardin .hero__names{font-style:italic}.tpl-jardin .card{border-radius:999px 999px 1rem 1rem;padding-top:3.25rem}.tpl-jardin .photos img{border-radius:999px 999px .5rem .5rem}.tpl-jardin .section+.section{border-top:0}.tpl-jardin .section:nth-of-type(2n){background:var(--surface);max-width:none;padding-inline:max(1.5rem,50% - 18.5rem)}.tpl-noir .hero:before,.tpl-noir .hero:after{content:"";z-index:1;border:1px solid var(--accent);pointer-events:none;position:absolute;inset:1.25rem}.tpl-noir .hero:after{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:0 0;inset:1.75rem}.tpl-noir .hero--photo .hero__photo{opacity:.35;filter:grayscale()contrast(1.1)}.tpl-noir .hero__names{letter-spacing:.06em;text-transform:uppercase;font-size:clamp(2.6rem,12vw,4.75rem)}.tpl-noir .hero__amp{text-transform:none;letter-spacing:0}.tpl-noir .section__heading h2{letter-spacing:.08em;text-transform:uppercase;font-size:clamp(1.7rem,7vw,2.3rem)}.tpl-noir .card{border-color:var(--accent);outline:1px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:-6px}.tpl-noir .button{border-radius:0}.tpl-noir .photos img{filter:grayscale()}@media (width>=60rem){.hero--photo{grid-template-columns:1fr 1fr;place-items:stretch stretch;min-height:100svh;padding:0}.hero--photo .hero__photo{width:100%;height:100%;min-height:100svh;position:relative;inset:auto}.hero--photo:after{display:none}.hero--photo .hero__inner{align-content:center;max-width:none;padding:4rem clamp(2rem,5vw,4.5rem);display:grid}.tpl-aurora .hero--photo:before,.tpl-noir .hero--photo:before{inset:1.25rem 1.25rem 1.25rem calc(50% + 1.25rem)}.tpl-noir .hero--photo:after{background:0 0;display:block;inset:1.75rem 1.75rem 1.75rem calc(50% + 1.75rem)}.tpl-jardin .hero--photo{align-content:stretch}.tpl-jardin .hero--photo .hero__photo{border-radius:0;width:100%;height:100%;margin:0}.tpl-noir .hero--photo .hero__photo{opacity:1;filter:grayscale()contrast(1.05)}.tpl-aurora .hero--photo .hero__photo,.tpl-jardin .hero--photo .hero__photo{grid-area:1/2}.tpl-aurora .hero--photo .hero__inner,.tpl-jardin .hero--photo .hero__inner{grid-area:1/1}.tpl-aurora .hero--photo:before{inset:1.25rem calc(50% + 1.25rem) 1.25rem 1.25rem}.tpl-jardin .hero--photo .hero__photo{border-radius:0}}@media (width>=48rem){.roles{grid-template-columns:repeat(2,1fr)}.cards:has(>:nth-child(2)){grid-template-columns:repeat(2,1fr)}.photos:not(.photos--single){grid-template-columns:repeat(3,1fr)}}
