:root{--ink: #5c2a3e;--sky: #8d4d66;--sky-mid: #b56b86;--cream: #fff7f4;--paper: #f7f1e6;--yellow: #f6d24a;--line: rgba(244, 239, 228, .16);--serif: "Fraunces", "Iowan Old Style", Palatino, serif;--sans: "Outfit", "Avenir Next", sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--sans);font-weight:360;line-height:1.5}::selection{background:var(--yellow);color:var(--ink)}a{color:inherit}img,svg{display:block;max-width:100%}button,input,textarea{font:inherit}.grain{position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.leak{position:fixed;z-index:1;width:46vw;height:46vw;right:-8vw;top:8vh;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 68%);filter:blur(6px);animation:drift 16s ease-in-out infinite alternate}@keyframes drift{to{transform:translate3d(-10vw,14vh,0) scale(1.08)}}.sprocket{display:none}@media(min-width:980px){.sprocket{display:block;position:fixed;top:0;bottom:0;width:28px;z-index:30;background:radial-gradient(circle at 50% 16px,transparent 6px,#120e0c 6.6px) 0 0 / 28px 42px repeat-y,#1a1410}.sprocket.left{left:0}.sprocket.right{right:0}body{padding-inline:28px}}.hud{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1.2rem;padding:.85rem 6vw;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#5a2438;background:linear-gradient(to bottom,rgba(255,248,250,.92),rgba(255,248,250,.4) 70%,transparent)}.hud-site{margin-right:auto;letter-spacing:.08em;color:#b85c78}a.hud-site{text-decoration:none}.rec:before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.45rem;border-radius:50%;background:#ff4d3a;box-shadow:0 0 8px #ff4d3a;animation:blink 1.4s steps(1) infinite}@keyframes blink{50%{opacity:.25}}.hud-link{text-decoration:none;color:var(--ink);background:var(--yellow);padding:.35rem .7rem;border-radius:999px;font-weight:500}.hero{position:relative;min-height:calc(100svh - 3rem);display:flex;flex-direction:column;justify-content:flex-end;padding:8vh 7vw 10vh;overflow:hidden;color:#5a2438;background:radial-gradient(ellipse at 78% 0%,rgba(255,255,255,.92),transparent 42%),radial-gradient(ellipse at 12% 100%,rgba(255,214,226,.95),transparent 48%),linear-gradient(180deg,#f4a8c2,#fbd6e3 46%,#fff8fb)}.night{position:absolute;inset:0;z-index:2;pointer-events:none}.star{position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 6px 1px #fffffff2,0 0 12px 2px #f6d24a73;animation-name:blink-star;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes blink-star{0%,38%{opacity:1}44%,54%{opacity:0}60%,to{opacity:1}}.star.bright{background:transparent;box-shadow:none}.star.bright:before,.star.bright:after{content:"";position:absolute;left:50%;top:50%;background:#fff;border-radius:999px;transform:translate(-50%,-50%);box-shadow:0 0 8px 1px #fffffff2,0 0 14px 2px #f6d24a8c}.star.bright:before{width:140%;height:18%}.star.bright:after{width:18%;height:140%}.hero>:not(.night){position:relative;z-index:3}.hero>.hero-scan{position:absolute;z-index:3;right:7vw;bottom:12vh;width:min(26vw,250px);margin:0;transform:rotate(4deg)}.hero-scan img,.scan-still img,.reveal img,.sheet-scan img{width:100%;display:block;background:#14080d;border:7px solid #1a1014;box-shadow:0 22px 50px #5c2a3e47}.hero-scan figcaption,.sheet-scan figcaption,.reveal figcaption{margin-top:.55rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.glimpse{margin:2.4rem 0 0;max-width:40rem}.glimpse img{width:100%;height:auto;object-fit:contain;background:#14080d;border:7px solid #1a1014;box-shadow:0 22px 50px #5c2a3e2e}.glimpse figcaption{margin:.75rem 0 0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:1.15rem;letter-spacing:0;text-transform:none;color:var(--sky)}.scan-still{margin:2.5rem 0 0;max-width:920px}.scan-still figcaption{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:.8rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-mid)}.reveal{display:grid;gap:2rem;align-items:center;padding:clamp(4rem,9vw,7rem) 7vw;background:radial-gradient(circle at 80% 20%,rgba(246,210,74,.16),transparent 32%),#3a1828;color:var(--cream)}.reveal h2{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(3.4rem,8vw,6.4rem);line-height:.9}.reveal p:last-of-type{max-width:22rem;font-size:1.1rem}.reveal figure{margin:0}.sheet-scan{margin:2.4rem 0 0;width:min(100%,340px);transform:rotate(-2deg)}@media(min-width:980px){.reveal{grid-template-columns:.8fr 1.2fr}.sheet-scan{position:absolute;right:7vw;bottom:3.5rem;margin:0}}@media(max-width:800px){.hero>.hero-scan{position:relative;right:auto;bottom:auto;width:min(78vw,280px);margin-top:2.2rem}}.kicker{margin:0 0 .8rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--yellow)}.hero h1{position:relative;margin:0;font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(5.5rem,18vw,12.5rem);line-height:.78;letter-spacing:-.045em}.hero .kicker{color:#b85c78}.hero h1 span{text-shadow:0 0 36px rgba(255,255,255,.85)}.hero .deck,.hero .hero-meta{color:#5a2438b8}.hero .btn-ghost{color:#5a2438;box-shadow:inset 0 0 0 1px #5a243859}.family{margin:.4rem 0 0;font-family:var(--serif);font-size:clamp(1.8rem,4vw,3rem);font-weight:300;letter-spacing:.18em;text-transform:uppercase}.deck{margin:1rem 0 0;font-size:1.15rem;color:#f4efe4d1}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}.hero-meta{display:grid;gap:.35rem;margin:1.4rem 0 0;max-width:min(34rem,58%);font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.45;color:#f4efe4b3}.hero-place{font-family:var(--sans);font-size:1.05rem;font-weight:500;letter-spacing:0;text-transform:none;line-height:1.4}.hero-links{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.3rem;margin-top:1.1rem;max-width:min(34rem,58%)}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;text-decoration:none;background:var(--yellow);color:var(--ink);border-radius:999px;padding:.95rem 1.3rem;font-size:.82rem;font-weight:580;letter-spacing:.08em;text-transform:uppercase}.btn:hover{transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1px #f4efe466}.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}.marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--sky)}.marquee div{display:flex;width:max-content;animation:ticker 32s linear infinite}.marquee p{display:flex;gap:2rem;margin:0;padding:.8rem 1rem}.marquee span{font-family:var(--mono);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase}.marquee span:before{content:"✦";color:var(--yellow);margin-right:2rem}@keyframes ticker{to{transform:translate(-50%)}}.story,.dates,.sheet,.rsvp,.registry,.credits{padding:clamp(4rem,9vw,7.5rem) 7vw}.story{background:var(--paper);color:var(--ink)}.story .kicker{color:var(--sky-mid)}.story h2,.dates h2,.rsvp h2,.registry h2,.sheet h2{margin:0;font-family:var(--serif);font-weight:300;letter-spacing:-.03em;line-height:.95}.story h2{font-size:clamp(3rem,7vw,6rem);max-width:11ch}.story-grid{display:grid;gap:1.2rem;max-width:40rem;margin-top:1.5rem;font-size:1.12rem}.story-grid p{margin:0}.still{margin:3rem 0 0}.perf{height:28px;background:radial-gradient(circle at 18px 50%,#f7f1e6 6px,transparent 6.5px) 0 0 / 42px 28px repeat-x,#1a1410}.still-frame{position:relative;overflow:hidden;background:#4a2434}.still-frame img{width:100%;height:min(72vw,640px);object-fit:cover;object-position:center 40%;animation:ken 26s ease-in-out infinite alternate;transform-origin:62% 42%}.portrait-row{display:grid;grid-template-columns:1.1fr 1fr .8fr;gap:.8rem;margin-top:1rem}.portrait-row img{width:100%;height:28rem;object-fit:cover}.portrait-row figcaption,.reel figcaption{margin-top:.45rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-mid)}.reel{overflow:hidden;background:var(--sky);padding:1.4rem 0 1.6rem}.reel>div{display:flex;width:max-content;animation:ticker 70s linear infinite}.reel-track{display:flex;gap:.8rem;padding-right:.8rem}.reel figure{width:280px;margin:0}.reel img{width:100%;height:180px;object-fit:cover}.reel figcaption{color:#f4efe4b3}@keyframes ken{to{transform:scale(1.07) translate3d(-1.5%,-1%,0)}}.corner{position:absolute;width:1.4rem;height:1.4rem;border:1.5px solid rgba(244,239,228,.8)}.c1{top:.8rem;left:.8rem;border-right:0;border-bottom:0}.c2{top:.8rem;right:.8rem;border-left:0;border-bottom:0}.c3{bottom:.8rem;left:.8rem;border-right:0;border-top:0}.c4{bottom:.8rem;right:.8rem;border-left:0;border-top:0}.still figcaption{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:.8rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-mid)}.dates{display:grid;gap:2rem;background:radial-gradient(circle at 80% 0%,rgba(245,197,24,.14),transparent 36%),var(--ink)}@media(min-width:860px){.dates{grid-template-columns:1fr auto 1fr;align-items:end}}.dates h2{font-size:clamp(7rem,18vw,13rem);line-height:.8;margin:.2rem 0}.num-outline{color:transparent;-webkit-text-stroke:1.5px rgba(244,239,228,.88)}.num-solid{color:var(--yellow)}.dates p,.dates strong,.dates em{display:block}.dates strong{margin-top:.4rem;font-family:var(--serif);font-size:1.8rem;font-weight:300}.dates em{margin-top:.6rem;font-family:var(--mono);font-style:normal;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#f4efe4b3}.dates .slot{margin:.35rem 0 0;font-family:var(--sans);font-size:1.02rem;letter-spacing:0;text-transform:none;color:#f4efe4e6}.bridge{align-self:center;text-align:center;max-width:12rem}.bridge span{font-family:var(--serif);font-size:3rem;color:var(--yellow)}.bridge p{margin:.3rem 0 0}.sheet{position:relative;background:var(--paper);color:var(--ink)}.sheet h2{font-size:clamp(3rem,7vw,5.4rem);max-width:10ch}.sheet-no{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;font-size:.75rem;color:var(--sky-mid)}.sheet dl{margin:2rem 0 0;max-width:680px}.sheet dl div{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding:.95rem 0;border-top:1px solid rgba(92,42,62,.16)}.sheet dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sky-mid)}.sheet dd{margin:0;font-size:1.15rem}.place-name{display:block}.place-address{display:block;margin-top:.3rem;font-size:1.08rem;line-height:1.45}.sheet-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.6rem;max-width:680px}.map-frame{margin:1.5rem 0 0;width:min(100%,680px)}.map-frame iframe{display:block;width:100%;height:280px;border:7px solid #1a1014;background:#14080d;box-shadow:0 22px 50px #5c2a3e2e}.map-frame figcaption{margin-top:.55rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sky-mid)}@media(min-width:980px){.map-frame{width:min(680px,calc(100% - 380px))}.map-frame iframe{height:340px}}.stamp{position:absolute;top:clamp(2rem,6vw,4rem);right:7vw;width:7.2rem;height:7.2rem;display:grid;place-items:center;border:2px solid var(--sky-mid);border-radius:50%;color:var(--sky-mid);font-family:var(--serif);letter-spacing:.14em;text-transform:uppercase;transform:rotate(12deg)}@media(max-width:700px){.stamp{display:none}}.rsvp{display:grid;gap:2rem;background:var(--sky)}@media(min-width:900px){.rsvp{grid-template-columns:.9fr 1.1fr;align-items:start}}.rsvp.rsvp-teaser{grid-template-columns:minmax(0,42rem)}.rsvp-teaser .btn{margin-top:1.5rem}.rsvp h2,.registry h2{font-size:clamp(3.2rem,7vw,5.5rem);max-width:10ch}.invite h1{margin:0;max-width:11ch;font-family:var(--serif);font-weight:300;letter-spacing:-.03em;line-height:.95;font-size:clamp(3rem,7.4vw,5.4rem)}.invite .sheet-no{margin:0 0 .85rem}.invite-copy{max-width:36rem;margin:1.25rem 0 0;font-size:1.16rem}@media(min-width:701px){.invite h1{max-width:14ch;padding-right:8rem}}#rsvp-form{scroll-margin-top:4.5rem}.rsvp-private{max-width:34rem;color:#f4efe4cc}.field{display:grid;gap:.45rem}.field-label{line-height:1.45}.req,.opt{color:#f4efe4c7}.rsvp-form input,.rsvp-form textarea{scroll-margin-top:5.5rem}.rsvp-form input[aria-invalid=true],.rsvp-form textarea[aria-invalid=true]{border-bottom-color:#ffe1d8}.rsvp-form input:disabled,.rsvp-form textarea:disabled{opacity:1;color:var(--cream);-webkit-text-fill-color:var(--cream)}.hp-wrap{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.rsvp-done .btn,.rsvp-done .quiet-link{justify-self:start}.btn:disabled{cursor:progress;opacity:.72}.btn:disabled:hover{transform:none}.rsvp-form,.rsvp-done,.crew-lock{display:grid;gap:1rem}label,legend{display:grid;gap:.4rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}fieldset{border:0;margin:0;padding:0}input,textarea{width:100%;border:0;border-bottom:1px solid rgba(244,239,228,.3);background:transparent;color:var(--cream);padding:.7rem 0;border-radius:0;font-size:1.05rem;letter-spacing:0;text-transform:none;font-family:var(--sans)}.sheet input,.crew input{color:var(--ink)}.choices{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.choices label{position:relative;display:inline-flex;align-items:center;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:.95rem;padding:.7rem .9rem;min-height:2.75rem;border-radius:999px;box-shadow:inset 0 0 0 1px #f4efe44d;cursor:pointer}.choices label.on{background:var(--yellow);color:var(--ink);box-shadow:none}.choices label:focus-within{outline:2px solid var(--yellow);outline-offset:3px}.choices input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.choices input:focus-visible{outline:none}.hp{position:absolute;left:-9999px;height:0;width:0}.form-error,.field-error{margin:0;color:#9a3044;font-family:var(--sans);font-size:1rem;font-weight:400;letter-spacing:0;line-height:1.4;text-transform:none}.rsvp .form-error,.rsvp .field-error{color:#ffe1d8}.count-line,.rsvp-done p{color:#f4efe4bf}.rsvp-done h3{margin:0;font-family:var(--serif);font-size:clamp(2.6rem,5vw,4rem);font-weight:300}.registry{background:linear-gradient(120deg,rgba(245,197,24,.12),transparent 40%),var(--ink)}.registry p:last-of-type{max-width:38rem}.credits{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.credits p{margin:0}.credits a{color:var(--yellow)}.title-card{position:fixed;inset:0;z-index:70;border:0;background:var(--ink);color:var(--cream);cursor:pointer;animation:iris .8s ease 1.7s forwards}.title-card div{display:grid;justify-items:center;gap:.2rem}.title-card svg{width:min(240px,70vw);margin-bottom:1rem}.title-card p{margin:0;letter-spacing:.28em;text-transform:uppercase;font-size:.85rem}.title-card strong{font-family:var(--serif);font-weight:300;font-style:italic;font-size:2.4rem}.title-card em{margin-top:2rem;font-family:var(--mono);font-style:normal;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#f4efe48c}@keyframes iris{to{clip-path:circle(0% at 50% 42%);visibility:hidden}}.crew{min-height:100svh;padding:6vw;background:var(--paper);color:var(--ink)}.crew-top,.crew-actions{display:flex;justify-content:space-between;gap:1rem;align-items:center}.crew-top a{font-family:var(--serif);font-style:italic;font-size:1.6rem;text-decoration:none}.crew-top p{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem}.crew-lock,.crew-report{max-width:820px;margin:8vh auto 0}.crew h1{font-family:var(--serif);font-weight:300;font-size:clamp(2.8rem,6vw,4.5rem);margin:0 0 1rem}.crew input{color:var(--ink);border-bottom-color:#5c2a3e4d}.crew-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.crew-stats article{background:var(--ink);color:var(--cream);padding:1rem;border-radius:1rem}.crew-stats strong{display:block;font-family:var(--serif);font-size:2.4rem;font-weight:300;color:var(--yellow)}.crew-stats span{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.crew-actions{margin:1.4rem 0}.crew-actions .btn-ghost{color:var(--ink);box-shadow:inset 0 0 0 1px #5c2a3e4d}.crew-list{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}.crew-list li{border-top:1px solid rgba(92,42,62,.16);padding-top:.9rem}.crew-list li div{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.crew-list button{border:0;background:transparent;color:var(--sky-mid);padding:0;cursor:pointer;text-decoration:underline}.pill{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.2rem .5rem}.pill-yes{background:var(--yellow);color:var(--ink)}.pill-maybe{background:#f8d5e0}.pill-no{background:#efe4d4}.crew-empty{font-family:var(--serif);font-size:1.8rem}blockquote{margin:.4rem 0;color:var(--sky-mid)}@media(max-width:800px){.hero-meta,.hero-links{max-width:none}.hero-place{font-size:1.12rem}}@media(max-width:700px){.crew-stats{grid-template-columns:1fr 1fr}.sheet dl div{grid-template-columns:1fr;gap:.2rem}.place-address{font-size:1.15rem}.hero-links,.sheet-actions{flex-direction:column;align-items:stretch}.hero-links .btn,.sheet-actions .btn,.map-frame{width:100%}.map-frame iframe{height:240px}.choices{flex-direction:column;align-items:stretch}.choices label{justify-content:center}.rsvp-form .btn,.rsvp-done .btn{width:100%}.hud span:nth-child(4){display:none}.portrait-row{grid-template-columns:1fr}.portrait-row img{height:22rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
