@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Lora:wght@400;600&display=swap";:root{--color-bg:#f3f2f2;--color-surface:#eae9e9;--color-text:#201f1d;--color-accent:#b68235;--color-divider:#201f1d29;--color-neutral-600:#7d7979;--color-neutral-700:#605d5d;--color-accent-200:#ffe3bf;--color-accent-700:#7d5411;--font-heading:"Cormorant Garamond", system-ui, sans-serif;--font-heading-weight:600;--font-body:"Lora", system-ui, sans-serif;--space-1:4.6px;--space-2:9.2px;--space-3:13.8px;--space-4:18.4px;--space-5:23px;--space-6:27.6px;--space-7:64px;--space-8:36.8px;--space-9:96px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0;font-size:15px;font-weight:400;line-height:1.55}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:-.015em;margin:0;line-height:1.12}p{margin:0}a{color:var(--color-accent);text-underline-offset:3px}button{font:inherit}::selection{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@keyframes scrollDrip{0%{transform:translateY(-100%)}60%{transform:translateY(100%)}to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.hero{--color-accent-200:#dcedf1;--color-accent-700:#3f6d82;--color-text:#26363c;--color-neutral-600:#6c7d83;--color-neutral-700:#4c5d63;--color-divider:#b7d4dc;height:100dvh;min-height:680px;transition:opacity 1.4s ease-out;position:relative;overflow:hidden}.hero__media{object-fit:cover;object-position:center 30%;z-index:0;width:100%;height:100%;position:absolute;inset:0}.hero__video{transition:opacity .5s ease-out}.hero__canvas{transition:opacity 1.5s ease-out}.hero__scrim{z-index:1;background:linear-gradient(#ffffff40 0%,#ffffff0d 35%,#ffffff4d 100%);position:absolute;inset:0}.hero__curtain{z-index:3;will-change:transform;background-image:url(/assets/curtain.png);background-repeat:no-repeat;background-size:200% 100%;width:50%;height:100%;transition:transform 1.1s cubic-bezier(.83,0,.17,1);position:absolute;top:0;box-shadow:0 0 40px #0003}.hero__curtain--left{background-position:0 0;left:0;transform:translate(0)}.hero__curtain--left.is-split{transform:translate(-100%)}.hero__curtain--right{background-position:100% 0;right:0;transform:translate(0)}.hero__curtain--right.is-split{transform:translate(100%)}.hero__grid{z-index:2;height:100%;padding:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(280px,620px) minmax(0,1fr);align-items:center;display:grid;position:relative}.hero__monogram{font-family:var(--font-heading);color:var(--color-accent-200);letter-spacing:-.02em;-webkit-user-select:none;user-select:none;font-size:clamp(64px,13vw,220px);font-weight:500;line-height:1;transition:opacity 6s,transform 6s ease-out}.hero__monogram--left{transform-origin:100%;grid-column:1;justify-self:end;margin-right:-.05em}.hero__monogram--right{transform-origin:0;grid-column:3;justify-self:start;margin-left:-.05em}.hero__panel{align-items:stretch;gap:var(--space-5);grid-column:2;justify-content:center;display:flex}.hero__seam{background:var(--color-divider);transform-origin:top;width:1px;transition:transform .4s ease-out}.hero__content{text-align:center;padding:var(--space-2) 0}.hero__eyebrow{font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;color:var(--color-accent-700);margin:0 0 var(--space-4) 0;transform-origin:50%;font-size:12px;transition:opacity 6s,transform 6s ease-out}.hero__title{font-family:var(--font-heading);color:var(--color-text);white-space:nowrap;text-shadow:0 2px 20px #00000040;margin:0;font-size:clamp(44px,6.4vw,76px);font-weight:500;line-height:1.08}.hero__letter{transform-origin:50%;transition:opacity 6s,transform 6s ease-out;display:inline-block}.hero__letter--amp{color:var(--color-accent-700);font-style:italic}.hero__invitation{font-family:var(--font-heading);letter-spacing:.01em;margin:var(--space-4) 0 0 0;color:var(--color-neutral-700);transform-origin:50%;font-size:18px;font-style:italic;transition:opacity 6s,transform 6s ease-out}.hero__meta{justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-3);transform-origin:50%;font-family:var(--font-body);color:var(--color-neutral-700);font-size:14px;transition:opacity 6s,transform 6s ease-out;display:flex}.hero__meta span:first-child{font-variant-numeric:tabular-nums}.hero__meta-dot{background:var(--color-accent-700);flex:none;width:4px;height:4px;transform:rotate(45deg)}.hero__scrollcue{bottom:var(--space-6);align-items:center;gap:var(--space-1);color:var(--color-neutral-600);flex-direction:column;transition:opacity 2s;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hero__scrollcue span{font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;font-size:12px}.hero__scrollcue-track{background:var(--color-divider);width:1px;height:32px;overflow:hidden}.hero__scrollcue-drip{background:var(--color-accent-700);width:100%;height:100%;transition:transform 1.4s ease-in-out .5s;transform:translateY(-100%)}.hero__scrollcue-drip.is-active{animation:1.8s ease-in-out 2s infinite scrollDrip;transform:translateY(0)}@media (width<=1024px){.hero__media{object-fit:fill}}@media (width<=640px){.hero{min-height:480px}.hero__grid{padding:var(--space-3)}.hero__panel{gap:var(--space-3)}}.details{max-width:1100px;padding:var(--space-9) var(--space-4);margin:0 auto;transition:opacity .3s ease-out,transform .3s ease-out}.details__header{text-align:center;margin-bottom:var(--space-7);transition:opacity .3s ease-out,transform .3s ease-out}.details__kicker{font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;color:var(--color-accent-700);margin:0 0 var(--space-3) 0;font-size:13px}.details__title{color:var(--color-text);font-size:clamp(34px,4.5vw,52px);font-style:italic}.details__grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid;position:relative}.details__card{padding:0 var(--space-6);border-left:1px solid var(--color-divider);text-align:center;transition:opacity .3s ease-out,transform .3s ease-out}.details__card-kicker{font-family:var(--font-heading);letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent-700);margin:0 0 var(--space-4) 0;font-size:12px}.details__card-title{margin:0 0 var(--space-4) 0;color:var(--color-text);font-size:clamp(38px,4vw,56px);font-weight:500;line-height:1}.details__card-lines{font-family:var(--font-body);color:var(--color-neutral-700);margin:0 0 var(--space-4) 0;font-size:16px;line-height:1.7}.details__directions{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-700);border:1px solid var(--color-accent-700);border-radius:999px;padding:10px 22px;font-size:12px;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.details__directions:hover{background:var(--color-accent-700);color:var(--color-bg)}@media (width<=640px){.details__card{padding:0 var(--space-4);border-left:none;border-top:1px solid var(--color-divider);padding-top:var(--space-6)}.details__card:first-child{border-top:none;padding-top:0}}.gallery{max-width:1100px;padding:var(--space-9) var(--space-4);margin:0 auto;transition:opacity .3s ease-out,transform .3s ease-out}.gallery__header{text-align:center;margin-bottom:var(--space-7);transition:opacity .3s ease-out,transform .3s ease-out}.gallery__kicker{font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;color:var(--color-accent-700);margin:0 0 var(--space-3) 0;font-size:13px}.gallery__title{color:var(--color-text);font-size:clamp(34px,4.5vw,52px);font-style:italic}.gallery__grid{gap:var(--space-3);grid-template-rows:repeat(2,clamp(140px,18vw,220px)) clamp(160px,22vw,260px);grid-template-columns:repeat(4,1fr);grid-template-areas:"a a b c""a a d e""f f f f";display:grid}.gallery__cell{border-radius:3px;transition:opacity .4s ease-out,transform .4s ease-out;position:relative;overflow:hidden}.gallery__image,.gallery__placeholder{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);display:block}.gallery__placeholder{color:color-mix(in srgb, var(--color-accent-700) 45%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent-700) 10%, var(--color-surface)), color-mix(in srgb, var(--color-accent-700) 3%, var(--color-surface)));justify-content:center;align-items:center;display:flex}.gallery__cell:nth-child(2n) .gallery__placeholder{background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent-700) 5%, var(--color-surface)), color-mix(in srgb, var(--color-accent-700) 14%, var(--color-surface)))}.gallery__cell:hover .gallery__image,.gallery__cell:hover .gallery__placeholder{transform:scale(1.08)}.gallery__caption{z-index:1;pointer-events:none;font-family:var(--font-heading);color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#26363c8c;border-radius:999px;padding:4px 10px;font-size:13px;font-style:italic;position:absolute;bottom:10px;left:10px}@media (width<=640px){.gallery__grid{grid-template-rows:repeat(3,clamp(140px,40vw,220px)) clamp(160px,44vw,220px);grid-template-columns:repeat(2,1fr);grid-template-areas:"a a""b c""d e""f f"}}.rsvp{max-width:620px;padding:var(--space-9) var(--space-4);text-align:center;margin:0 auto;transition:opacity .3s ease-out,transform .3s ease-out}.rsvp__kicker{font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;color:var(--color-accent-700);margin:0 0 var(--space-3) 0;font-size:13px}.rsvp__title{margin:0 0 var(--space-3) 0;color:var(--color-text);font-size:clamp(30px,4vw,40px);font-style:italic}.rsvp__subtitle{font-family:var(--font-body);color:var(--color-neutral-700);margin:0 0 var(--space-7) 0;font-size:16px}.rsvp__form{text-align:left;gap:var(--space-5);flex-direction:column;display:flex}.rsvp__attend-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.rsvp__attend-card{cursor:pointer;font-family:var(--font-heading);letter-spacing:.02em;color:var(--color-text);border:1px solid var(--color-divider);-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px 12px;font-size:15px;transition:transform .2s cubic-bezier(.34,1.56,.64,1),border-color .2s,background .2s,color .2s;display:flex}.rsvp__attend-card:hover{border-color:var(--color-accent-700);transform:scale(1.02)}.rsvp__attend-card.is-selected{border-color:var(--color-accent-700);background:color-mix(in srgb, var(--color-accent-700) 10%, transparent);color:var(--color-accent-700);transform:scale(1.02)}.rsvp__attend-icon{border:1px solid var(--color-divider);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;transition:border-color .2s;display:flex}.is-selected .rsvp__attend-icon{border-color:var(--color-accent-700)}.rsvp__row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.rsvp__field{flex-direction:column;gap:8px;display:flex}.rsvp__field--narrow{max-width:160px}.rsvp__field label{font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;color:var(--color-neutral-600);font-size:11px}.rsvp__optional{text-transform:none;letter-spacing:0;font-family:var(--font-body);color:var(--color-neutral-600)}.rsvp__input{font-family:var(--font-body);border:none;border-bottom:1px solid var(--color-divider);color:var(--color-text);background:0 0;outline:none;width:100%;padding:12px 4px;font-size:16px;transition:border-color .2s}.rsvp__input:focus{border-bottom-color:var(--color-accent-700)}.rsvp__textarea{border:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);resize:vertical;border-radius:6px;padding:12px}.rsvp__textarea:focus{border-color:var(--color-accent-700)}.rsvp__submit{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--color-bg);background:var(--color-accent-700);cursor:pointer;border:none;border-radius:999px;align-self:center;margin-top:4px;padding:14px 40px;font-size:13px;transition:transform .15s cubic-bezier(.34,1.56,.64,1),opacity .2s}.rsvp__submit:disabled{cursor:not-allowed;opacity:.4}.rsvp__submit:not(:disabled):hover{transform:scale(1.04)}.rsvp__submit:not(:disabled):active{transform:scale(.97)}.rsvp__confirm{padding:var(--space-7) var(--space-5);border:1px solid var(--color-divider);animation:.5s cubic-bezier(.34,1.56,.64,1) rsvpSpringIn}@keyframes rsvpSpringIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.rsvp__confirm-badge{border:1px solid var(--color-accent-700);width:44px;height:44px;color:var(--color-accent-700);margin:0 auto var(--space-4) auto;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex}.rsvp__confirm-title{font-family:var(--font-heading);color:var(--color-text);margin:0;font-size:24px;font-style:italic}.rsvp__confirm-sub{font-family:var(--font-body);color:var(--color-neutral-700);margin:var(--space-2) 0 0 0;font-size:15px}.site-footer{padding:var(--space-6) var(--space-4);text-align:center;border-top:1px solid var(--color-divider)}.site-footer p{font-family:var(--font-heading);color:var(--color-neutral-600);font-size:20px;font-style:italic}.page{background:var(--color-bg);font-family:var(--font-body);position:relative}.divider{background:var(--color-divider);width:100%;max-width:1040px;height:1px;margin:0 auto}
