@font-face{font-family:Archivo;src:url('/fonts/archivo-var.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Playfair;src:url('/fonts/playfair-latin.woff2') format('woff2');font-display:swap}
@font-face{font-family:Playfair;src:url('/fonts/playfair-italic-latin.woff2') format('woff2');font-style:italic;font-display:swap}
:root{--ink:#10100f;--paper:#efe7d8;--red:#c91822;--cream:#fff8eb;--line:rgba(16,16,15,.25)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--ink);font-family:Archivo,Arial,sans-serif;font-size:16px;line-height:1.55}
a{color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
[hidden]{display:none!important}
.skip{position:fixed;left:1rem;top:-5rem;z-index:99;background:#fff;padding:.75rem 1rem}.skip:focus{top:1rem}
.nav{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.76),transparent);font-size:.78rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.nav div{display:flex;gap:1.5rem}.nav a{text-decoration:none}.nav a:hover{text-decoration:underline;text-underline-offset:.35rem}.wordmark{font-family:Playfair,serif;font-size:1rem;letter-spacing:.06em}
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:#111;color:#fff;text-align:center}
.hero-art{position:absolute;inset:0;background-image:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.58)),url('/assets/hero-background-plate.png');background-size:cover;background-position:center}
.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:7rem 1.5rem 4rem;text-shadow:0 2px 20px rgba(0,0,0,.35)}
.eyebrow{margin:0 0 1rem;font-size:.75rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.eyebrow.light{color:rgba(255,255,255,.75)}
.hero h1{margin:0;max-width:min(8em,100%);font-family:Playfair,Georgia,serif;font-size:clamp(3rem,10.8vw,10rem);font-weight:400;line-height:.76;letter-spacing:-.065em;text-align:center;text-transform:uppercase}
.hero h1 .hero-eunice{display:block;font-style:italic;font-size:.72em;line-height:1.05;letter-spacing:.01em;text-transform:none}
.hero h1 .hero-wonderland{display:block;white-space:nowrap}
.hero-date{margin:2.2rem 0 0;font-size:clamp(1.2rem,2vw,1.7rem);font-weight:750;letter-spacing:.14em;text-transform:uppercase}.hero-time{margin:.2rem 0 2rem;font-family:Playfair,serif;font-size:clamp(1.35rem,2.4vw,2rem);font-style:italic}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.1rem;padding:.8rem 1.4rem;border:1px solid transparent;border-radius:0;font:800 .8rem/1 Archivo,sans-serif;letter-spacing:.12em;text-decoration:none;text-transform:uppercase;cursor:pointer}.button:disabled{opacity:.6;cursor:wait}.button-light{background:var(--cream);color:var(--ink)}.button-red{background:var(--red);color:#fff}.button-dark{background:var(--ink);color:#fff}
.paper{background:var(--paper)}
.event{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);gap:8vw;padding:8rem max(5vw,2rem)}
.section-number{position:absolute;right:2rem;top:1.5rem;font-family:Playfair,serif;font-size:1.5rem;font-style:italic;opacity:.35}
.event h2,.rsvp h2{margin:.1rem 0 1.5rem;font-family:Playfair,Georgia,serif;font-size:clamp(3.3rem,6.5vw,7rem);font-weight:400;line-height:.9;letter-spacing:-.055em}
.lede{max-width:34em;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.5}
.facts{border-top:1px solid var(--ink)}.facts article{display:grid;grid-template-columns:5rem 1fr;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--ink)}.facts span{font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.facts strong{font-size:1.1rem;line-height:1.35}
.gallery{display:grid;grid-template-columns:1fr;background:#000}.gallery figure{position:relative;aspect-ratio:16/7;margin:0;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.18)}.gallery figure:last-child{border-bottom:0}.gallery img{filter:saturate(.9);transition:transform .5s ease,filter .5s ease}.gallery img.gallery-focus-eunice{transform:scale(1.55);transform-origin:right center}.gallery figure:hover img{transform:scale(1.015);filter:saturate(1)}.gallery figure:hover img.gallery-focus-eunice{transform:scale(1.575)}.gallery figcaption{position:absolute;left:1.5rem;bottom:1.5rem;padding:.5rem .75rem;background:var(--paper);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.rsvp{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(20rem,1.15fr);gap:8vw;padding:8rem max(5vw,2rem);color:#fff;background:#1a1917}.rsvp-copy{position:relative}.privacy{margin-top:2rem;color:rgba(255,255,255,.65);font-size:.9rem}.form-wrap{background:var(--paper);color:var(--ink);padding:clamp(1.5rem,4vw,3.5rem)}
.field{display:grid;gap:.45rem;margin-bottom:1.15rem}.field-row{display:grid;grid-template-columns:1fr 9rem;gap:1rem}.field label,.ops-gate label{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.field small{font-weight:500;color:#655f56;text-transform:none;letter-spacing:0}
input,select,textarea{width:100%;min-height:3rem;border:1px solid #8d867b;border-radius:0;background:#fffdf8;color:var(--ink);font:inherit;padding:.65rem .75rem}textarea{resize:vertical}.check{display:flex;gap:.7rem;align-items:flex-start;margin:1.5rem 0;font-size:.9rem}.check input{width:1.1rem;min-height:1.1rem;margin-top:.25rem}.honeypot{position:absolute;left:-9999px}.message{min-height:1.5rem}.error{color:#b00}.success h3{margin:.2rem 0;font-family:Playfair,serif;font-size:2.6rem}.code{margin:1.5rem 0;font-size:clamp(2.3rem,6vw,4.5rem);font-weight:850;letter-spacing:.12em}
.inviter-field{display:grid;gap:.7rem;margin:1.5rem 0;padding:0;border:0}.inviter-field legend{margin-bottom:.2rem;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.inviter-field label{display:flex;align-items:flex-start;gap:.7rem;padding:.9rem;border:1px solid #8d867b;background:#fffdf8;cursor:pointer}.inviter-field input{width:1.1rem;min-height:1.1rem;margin:.2rem 0 0;padding:0}.guestlist-policy{margin:1.5rem 0;padding:1.25rem;border:1px solid var(--line);background:#e5d9c6}.guestlist-policy p:last-child{margin-bottom:0}
footer{display:flex;justify-content:space-between;gap:1rem;padding:1.5rem 2rem;background:#000;color:rgba(255,255,255,.65);font-size:.7rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.utility-page{min-height:100svh;display:grid;place-items:center;padding:2rem;background:var(--paper)}.utility-card{width:min(42rem,100%);padding:clamp(1.5rem,5vw,4rem);background:#fff}.utility-card h1{margin:.2rem 0 2rem;font-family:Playfair,serif;font-size:clamp(3rem,8vw,5rem);font-weight:400}.back{display:inline-block;margin-bottom:3rem;font-size:.8rem;font-weight:800;text-transform:uppercase}.summary{display:grid;gap:.2rem;margin-bottom:2rem;padding:1.2rem;background:var(--paper)}.actions{display:flex;gap:.75rem;flex-wrap:wrap}
.ops-page{min-height:100svh;background:#12110f;color:#fff}.ops-shell{padding:clamp(1.5rem,4vw,4rem)}.ops-head{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.3)}.ops-head h1{margin:0;font-family:Playfair,serif;font-size:clamp(3rem,8vw,6rem);font-weight:400}.ops-gate{max-width:35rem;padding:4rem 0}.ops-gate .actions{margin-top:.7rem}.ops-gate input{flex:1}.ops-tools{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:2rem 0 0}.counts{display:flex;gap:.6rem;flex-wrap:wrap}.search-control input{width:min(18rem,70vw);min-height:3.1rem}.sort-control{display:flex;align-items:center;gap:.6rem}.sort-control span{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sort-control select{width:auto;min-width:11rem;background:#fffdf8}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.table-wrap{overflow:auto;border:1px solid rgba(255,255,255,.2)}table{width:100%;border-collapse:collapse;min-width:900px;background:#fff;color:var(--ink)}th,td{padding:.8rem;text-align:left;vertical-align:top;border-bottom:1px solid #ddd}th{background:var(--paper);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}td small{display:block;color:#6a655e;margin-top:.25rem}.row-actions{display:flex;gap:.45rem}.row-button{border:1px solid #777;background:#fff;padding:.45rem .65rem;font:750 .72rem Archivo,sans-serif;text-transform:uppercase;cursor:pointer}.row-button.danger{border-color:#a9151d;color:#a9151d}.status{display:inline-block;padding:.25rem .45rem;background:#e8e2d8;font-size:.72rem;font-weight:750;text-transform:uppercase}.status-going{background:#d9ead9}.status-declined{background:#f3d7d7}.status-waitlist{background:#f5e7bd}.guest-dialog{width:min(52rem,calc(100% - 2rem));max-height:calc(100svh - 2rem);padding:0;border:0;background:var(--paper);color:var(--ink)}.guest-dialog::backdrop{background:rgba(0,0,0,.75)}.guest-dialog form{padding:clamp(1.25rem,4vw,2.5rem);overflow:auto}.dialog-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.5rem}.dialog-head h2{margin:0;font:400 clamp(2.3rem,6vw,4rem)/.95 Playfair,serif}.dialog-close{border:0;background:transparent;font-size:2.2rem;line-height:1;cursor:pointer}.field-row.equal{grid-template-columns:1fr 1fr}.dialog-actions{justify-content:flex-end}
@media (max-width:760px){.nav{padding:1rem}.nav div{gap:.8rem}.wordmark{font-size:.76rem}.hero{min-height:92svh}.hero-art{background-image:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.38)),url('/assets/hero-background-plate.png');background-position:72% center}.hero-copy{width:100%;padding-inline:1rem}.hero h1{font-size:clamp(2.75rem,10.7vw,4.2rem)}.event,.rsvp{grid-template-columns:1fr}.event,.rsvp{padding:6rem 1.25rem}.facts{margin-top:1rem}.gallery figure{aspect-ratio:4/3}.gallery figcaption{left:1rem;bottom:1rem}.field-row,.field-row.equal{grid-template-columns:1fr}footer{flex-direction:column}.ops-tools{align-items:flex-start;flex-direction:column}.guest-dialog{width:calc(100% - 1rem);max-height:calc(100svh - 1rem)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery img{transition:none}}
