@font-face{font-family:Pinyon Script;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pinyon-script.ttf)format("truetype")}:root{--cream:#f7f3ec;--cream-dark:#ece5d6;--stone:#e4dcc9;--ink:#211f1a;--ink-soft:#211f1aa6;--burgundy:#3f4a29;--burgundy-light:#5f6d3a;--olive-dark:#3f4a29;--olive:#5f6d3a;--gold:#5f6d3a;--ring:#3f4a2929;--font-display:"Montserrat", sans-serif;--font-accent:"Montserrat", sans-serif;--font-script:"Pinyon Script", "Cormorant Garamond", cursive;--font-sans:"Montserrat", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.65;overflow-x:hidden}@keyframes fadeUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceCue{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(10px)}}@keyframes gentlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.reveal{opacity:0}.reveal.in-view{animation:.9s cubic-bezier(.16,.84,.32,1) forwards fadeUp}.reveal-group .reveal.in-view:nth-child(2){animation-delay:80ms}.reveal-group .reveal.in-view:nth-child(3){animation-delay:.16s}.reveal-group .reveal.in-view:nth-child(4){animation-delay:.24s}.reveal-group .reveal.in-view:nth-child(5){animation-delay:.32s}.kicker{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.3em;color:var(--olive-dark);font-size:.68rem;font-weight:600}.kicker.light{color:#f7f3ecd9}.kicker.center{text-align:center;margin-bottom:1rem}.btn-solid,.btn-link{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-solid{background:var(--ink);color:var(--cream);border:none;border-radius:999px;padding:1rem 2.5rem;transition:background .25s,transform .25s,box-shadow .25s}.btn-solid:hover{background:#3b382f;transform:translateY(-3px);box-shadow:0 16px 28px #211f1a47}.btn-link{color:var(--burgundy);border-bottom:1px solid #0000;padding-bottom:2px;transition:border-color .2s}.btn-link:hover{border-color:var(--burgundy)}#navbar{z-index:100;-webkit-backdrop-filter:blur(16px)saturate(160%);backdrop-filter:blur(16px)saturate(160%);background:#f7f3ecd1;border-bottom:1px solid #211f1a0f;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;max-width:1160px;margin:0 auto;padding:1.15rem 1.5rem;display:flex}.nav-logo{align-items:center;line-height:0;display:flex}.nav-logo img{width:auto;height:34px;display:block}#nav-links{align-items:center;gap:2.2rem;list-style:none;display:flex}#nav-links a{font-family:var(--font-sans);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;opacity:.75;padding-bottom:3px;font-size:.76rem;font-weight:600;text-decoration:none;transition:opacity .2s;position:relative}#nav-links a:hover{opacity:1}#nav-links a:not(.nav-cta):after{content:"";background:var(--burgundy);width:0;height:1.5px;transition:width .25s;position:absolute;bottom:-2px;left:0}#nav-links a:not(.nav-cta):hover:after{width:100%}#nav-links a.nav-cta{background:var(--olive-dark);color:var(--cream);opacity:1;border-radius:999px;padding:.6rem 1.4rem;transition:background .25s,transform .25s}#nav-links a.nav-cta:hover{background:var(--burgundy);transform:translateY(-2px)}#nav-toggle{color:var(--ink);cursor:pointer;background:0 0;border:none;font-size:1.4rem;display:none}.hero{text-align:center;background:var(--olive-dark);min-height:96vh;color:var(--cream);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex;position:relative;overflow:hidden}.name-break{display:none}.hero-photo-bg{--hero-scrim:linear-gradient(180deg, #3f4a2966, #3f4a29a6 55%, var(--olive-dark) 100%);background-image:var(--hero-scrim), url(/photos/hero-mobile-800.jpg);background-image:var(--hero-scrim), image-set(url(/photos/hero-mobile-800.webp) type("image/webp"), url(/photos/hero-mobile-800.jpg) type("image/jpeg"));z-index:0;background-position:50% 15%;background-size:cover;position:absolute;inset:0}@media (width<=640px) and (resolution>=1.5x){.hero-photo-bg{background-image:var(--hero-scrim), url(/photos/hero-mobile-1600.jpg);background-image:var(--hero-scrim), image-set(url(/photos/hero-mobile-1600.webp) type("image/webp"), url(/photos/hero-mobile-1600.jpg) type("image/jpeg"))}}@media (width<=640px){.hero{justify-content:flex-end;min-height:calc(100dvh - 72px);padding:1.2rem 1.5rem 1rem}.hero-photo-bg{background-position:50% 8%}.hero .kicker{margin-bottom:.4rem}.hero-names{margin:.15rem 0 .3rem;font-size:clamp(2.1rem,11.5vw,3.4rem);line-height:1.05}.name-break{display:block}.hero-date{margin-bottom:.7rem;font-size:.74rem}.countdown{gap:1.3rem;margin-bottom:.8rem}.count-box span{font-size:1.2rem}.count-box small{font-size:.5rem}.hero .btn-solid{padding:.65rem 1.8rem}.hero .scroll-cue{display:none}}@media (width>=641px){.hero-photo-bg{background-image:var(--hero-scrim), url(/photos/hero-1600.jpg);background-image:var(--hero-scrim), image-set(url(/photos/hero-1600.webp) type("image/webp"), url(/photos/hero-1600.jpg) type("image/jpeg"));background-position:50% 20%;background-size:cover}}@media (width>=900px),(width>=641px) and (resolution>=1.5x){.hero-photo-bg{background-image:var(--hero-scrim), url(/photos/hero-2560.jpg);background-image:var(--hero-scrim), image-set(url(/photos/hero-2560.webp) type("image/webp"), url(/photos/hero-2560.jpg) type("image/jpeg"))}}@media (width>=2200px),(width>=1100px) and (resolution>=1.5x){.hero-photo-bg{background-image:var(--hero-scrim), url(/photos/hero-3840.jpg);background-image:var(--hero-scrim), image-set(url(/photos/hero-3840.webp) type("image/webp"), url(/photos/hero-3840.jpg) type("image/jpeg"))}}.hero>:not(.hero-photo-bg){z-index:1;position:relative}.hero-names{font-family:var(--font-script);letter-spacing:0;color:var(--cream);margin:.4rem 0 .6rem;font-size:clamp(4.2rem,12vw,9rem);font-weight:400;animation:1s cubic-bezier(.16,.84,.32,1) .15s both fadeUp}.hero-date{font-family:var(--font-sans);letter-spacing:.08em;margin-bottom:2.8rem;font-size:.88rem;animation:1s cubic-bezier(.16,.84,.32,1) .32s both fadeUp}.countdown{gap:2.4rem;margin-bottom:2.8rem;animation:1s cubic-bezier(.16,.84,.32,1) .48s both fadeUp;display:flex}.count-box{border-bottom:1px solid #f7f3ec40;flex-direction:column;align-items:center;min-width:56px;padding-bottom:.6rem;transition:border-color .25s,transform .25s;display:flex}.count-box:hover{border-color:var(--gold);transform:translateY(-4px)}.count-box span{font-family:var(--font-display);letter-spacing:-.02em;font-size:2.1rem;font-weight:500}.count-box small{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;opacity:.6;margin-top:.35rem;font-size:.6rem}.scroll-cue{border:1.5px solid #f7f3ec80;border-radius:12px;width:22px;height:34px;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-cue span{background:var(--cream);border-radius:2px;width:4px;height:8px;animation:1.6s infinite bounceCue;position:absolute;top:6px;left:50%;transform:translate(-50%)}.divider{background:linear-gradient(90deg, transparent, var(--gold), transparent);opacity:.6;max-width:220px;height:1px;margin:0 auto}.section{max-width:1040px;margin:0 auto;padding:6rem 1.5rem}.section.alt{background:var(--cream-dark);max-width:100%}.section.alt>*,.section.alt .details-grid,.section.alt .glance-strip,.section.alt .party-grid{max-width:1040px;margin-left:auto;margin-right:auto}.section-title{font-family:var(--font-script);letter-spacing:0;text-align:center;color:var(--ink);margin-bottom:3.2rem;font-size:clamp(3rem,6.5vw,4.4rem);font-weight:400}.details-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:3rem;display:grid}.detail-card{background:var(--cream);text-align:center;border:1px solid #211f1a0f;border-radius:18px;padding:2.4rem 1.9rem;transition:transform .3s,box-shadow .3s;box-shadow:0 1px 2px #211f1a0a}.detail-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px #211f1a1a}.section.alt .detail-card{background:var(--cream)}.detail-card h3{font-family:var(--font-sans);color:var(--ink);letter-spacing:.02em;margin-bottom:.5rem;font-size:1.05rem;font-weight:700}.detail-time{font-family:var(--font-sans);letter-spacing:.08em;color:var(--burgundy);margin-bottom:.7rem;font-size:.85rem;font-weight:600}.venue-card{max-width:520px;margin:0 auto 3rem}.venue-times{border-bottom:1px solid #211f1a14;justify-content:center;gap:3rem;margin-bottom:1.4rem;padding-bottom:1.4rem;display:flex}.glance-title{text-align:center;font-family:var(--font-script);color:var(--ink);margin-bottom:1.8rem;font-size:2.1rem;font-weight:400}.glance-strip{flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-bottom:3rem;display:flex}.glance-item{border-radius:14px;flex-direction:column;align-items:center;gap:.2rem;min-width:96px;padding:1.2rem .8rem;transition:transform .25s,background .25s;display:flex}.glance-item:hover{background:#fff9;transform:translateY(-4px)}.glance-item strong{font-family:var(--font-sans);color:var(--ink);font-weight:700}.glance-item small{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);opacity:.5;font-size:.68rem}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;display:grid}.gallery-tile{aspect-ratio:4/5;border-radius:18px;position:relative;overflow:hidden;box-shadow:0 1px 2px #211f1a0f}.gallery-tile .photo{background-color:var(--stone);background-position:50% 20%;background-size:cover;transition:transform .5s cubic-bezier(.16,.84,.32,1);position:absolute;inset:0}.gallery-tile:after{content:"";opacity:1;background:linear-gradient(#0000 45%,#14120ea6);transition:opacity .3s;position:absolute;inset:0}.gallery-tile span{font-family:var(--font-sans);letter-spacing:.03em;color:var(--cream);opacity:1;z-index:1;font-size:.88rem;font-weight:600;transition:opacity .3s,transform .3s;position:absolute;bottom:1rem;left:1.1rem;transform:translateY(0)}.gallery-tile:hover .photo{transform:scale(1.08)}.party-grid{text-align:center;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem;display:grid}.party-photo{aspect-ratio:4/5;background:linear-gradient(145deg, var(--gold), var(--burgundy-light));border:3px solid var(--cream);background-position:50% 15%;background-size:cover;border-radius:18px;width:100%;max-width:220px;margin:0 auto 1.1rem;transition:transform .3s,box-shadow .3s;box-shadow:0 1px 2px #211f1a14}.party-card:hover .party-photo{transform:scale(1.03);box-shadow:0 18px 34px #211f1a26}.party-grid-small{margin-top:2rem}.party-grid-small .party-photo{max-width:190px}.party-card h4{font-family:var(--font-sans);color:var(--ink);font-size:1.02rem;font-weight:700}.party-card small{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--burgundy);font-size:.68rem}.faq-list{max-width:720px;margin:0 auto}.faq-item{border-bottom:1px solid #211f1a14;padding:1.4rem 0}.faq-item summary{font-family:var(--font-sans);color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:var(--burgundy);margin-left:1rem;font-size:1.4rem;transition:transform .25s}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-item p{color:var(--ink-soft);margin-top:.9rem;font-size:.98rem}.rsvp-sub{text-align:center;color:var(--ink-soft);font-style:italic;font-family:var(--font-accent);margin-top:-2.2rem;margin-bottom:3rem;font-size:1.1rem}.rsvp-form{flex-direction:column;gap:1.4rem;max-width:560px;margin:0 auto;display:flex}.rsvp-form label{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);opacity:.7;flex-direction:column;gap:.5rem;font-size:.74rem;font-weight:600;display:flex}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{font-family:var(--font-sans);background:var(--cream);color:var(--ink);border:1px solid #211f1a24;border-radius:12px;padding:.85rem 1rem;font-size:.98rem;transition:border-color .2s,box-shadow .2s}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--burgundy);box-shadow:0 0 0 4px var(--ring);outline:none}.field-note{text-transform:none;letter-spacing:.01em;opacity:.6;font-size:.72rem;font-weight:400}.rsvp-form button{align-self:center;margin-top:.5rem}.rsvp-thanks{text-align:center;padding:2rem}.rsvp-thanks h3{font-family:var(--font-script);color:var(--ink);margin:.5rem 0;font-size:2.3rem;font-weight:400}.footer{text-align:center;background:var(--olive-dark);color:var(--cream);padding:3.8rem 1.5rem 2.4rem}.footer-names{font-family:var(--font-script);color:var(--cream);font-size:3.2rem;font-weight:400;line-height:1.15}.footer-note{font-family:var(--font-sans);opacity:.5;margin-top:1.2rem;font-size:.72rem}#back-to-top{background:var(--ink);color:var(--cream);cursor:pointer;opacity:0;pointer-events:none;z-index:90;border:none;border-radius:50%;width:44px;height:44px;font-size:1.1rem;transition:opacity .3s,transform .2s,background .2s;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 8px 20px #00000040}#back-to-top:hover{background:var(--burgundy);transform:translateY(-3px)}#back-to-top.show{opacity:1;pointer-events:auto}.audio-player{z-index:9999;background:#fff;border:1px solid #ccc;border-radius:25px;align-items:center;gap:10px;max-width:calc(100vw - 40px);padding:10px 20px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 10px #0000004d}.audio-player-label{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.audio-player button{background:var(--ink);color:var(--cream);font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:none;border-radius:999px;padding:.45rem 1.2rem;font-size:.75rem;font-weight:600;transition:background .25s}.audio-player button:hover{background:#3b382f}.envelope-overlay{z-index:300;background:var(--cream);justify-content:center;align-items:center;transition:opacity .5s .3s;display:flex;position:fixed;inset:0}.envelope-overlay.leaving{opacity:0;pointer-events:none}.envelope-intro{flex-direction:column;align-items:center;gap:.9rem;padding:2rem;display:flex}.envelope-heading{font-family:var(--font-script);color:var(--ink);text-align:center;font-size:clamp(2.4rem,7vw,3.4rem);font-weight:400;transition:opacity .35s}.envelope-intro.opening .envelope-heading,.envelope-intro.leaving .envelope-heading{opacity:0}.envelope-names{font-family:var(--font-script);color:var(--ink);margin-top:.4rem;font-size:clamp(1.5rem,4vw,2rem);font-weight:400;transition:opacity .35s}.envelope-intro.opening .envelope-names,.envelope-intro.leaving .envelope-names{opacity:0}.envelope-intro.leaving{opacity:0;transition:opacity .45s}.envelope{aspect-ratio:3/2;cursor:pointer;perspective:1200px;background:0 0;border:none;width:min(300px,74vw);padding:0;animation:2.4s ease-in-out infinite gentlePulse;position:relative}.envelope.opening{animation:none}.envelope-back{background:#e6e2d6;border-radius:4px;position:absolute;inset:0;box-shadow:0 26px 44px #504a3c26,0 8px 16px #504a3c17,0 1px 3px #504a3c14}.envelope-letter{background:var(--cream);opacity:0;z-index:1;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;height:82%;transition:transform .9s cubic-bezier(.16,.84,.32,1) .55s,opacity .3s .5s;display:flex;position:absolute;top:10%;left:6%;right:6%;transform:translateY(0);box-shadow:0 4px 14px #14120e2e}.envelope.opening .envelope-letter{opacity:1;transform:translateY(-58%)}.envelope-letter-monogram{font-family:var(--font-script);color:var(--olive-dark);font-size:2.4rem}.envelope-letter-text{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);font-size:.62rem}.envelope-front{z-index:2;width:100%;height:100%;display:block;position:absolute;inset:0}.envelope-flap{transform-origin:top;width:100%;height:100%;transform-style:preserve-3d;backface-visibility:hidden;z-index:3;transition:transform .9s cubic-bezier(.7,0,.3,1);display:block;position:absolute;inset:0}.envelope.opening .envelope-flap{transform:rotateX(180deg)}.envelope-seal{z-index:5;width:76px;height:76px;transition:opacity .4s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.envelope-seal-scallop{filter:drop-shadow(0 1px 2px #322d2329);width:100%;height:100%;position:absolute;inset:0}.envelope-seal img{object-fit:contain;width:46%;height:46%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.envelope.opening .envelope-seal{opacity:0}.envelope-cue{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.2em;color:var(--ink-soft);white-space:nowrap;margin-bottom:.6rem;font-size:.66rem}@media (width<=720px){#nav-toggle{display:block}#nav-links{background:var(--cream);border-bottom:1px solid var(--cream-dark);flex-direction:column;padding:1rem 1.5rem 1.5rem;display:none;position:absolute;top:100%;left:0;right:0}#nav-links.open{display:flex}.countdown{gap:1.2rem}.count-box{min-width:46px}.count-box span{font-size:1.5rem}.audio-player{justify-content:center;max-width:calc(100vw - 32px);inset:84px auto auto 50%;transform:translate(-50%)}}
