@font-face{font-family:Cormorant;src:url('assets/cormorant.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-italic.woff2') format('woff2');font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
:root{--paper:#faf7ee;--cream:#f1eadb;--sage:#8c9a78;--sage-light:#dce2cc;--ink:#344b3c;--muted:#687260;--gold:#af8650;--line:#d5d8c8;--serif:Cormorant,Georgia,serif;--sans:Manrope,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}body.gate-locked{overflow:hidden}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a,input,select{touch-action:manipulation}button{color:inherit}a{color:inherit;text-decoration:none}button{border:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.06}h2{font-size:clamp(48px,5.1vw,72px);letter-spacing:-.035em}h2 em{font-weight:400;color:#788561}img{max-width:100%;display:block}::selection{background:#dce2cc;color:#253e2f}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;line-height:1.8;display:block}.section-shell{max-width:1160px;margin:auto;padding:120px 50px}.icon-button{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border-radius:50%;transition:background .2s}.icon-button:hover{background:#e6e9dc}.icon-button svg{width:19px;height:19px}.decor-star{position:absolute;color:var(--gold);font-size:60px;font-family:Georgia,serif;line-height:1;animation:star-pulse 6s ease-in-out infinite}.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .85s ease,transform .85s cubic-bezier(.16,1,.3,1)}.js .reveal.visible{opacity:1;transform:none}.reveal:nth-child(2){transition-delay:.12s}
/* The opening letter */
.gate{display:none}.js .gate{position:fixed;z-index:100;inset:0;min-height:100svh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:32px;overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#576b4d 0%,#3e543f 45%,#263e31 100%);color:var(--paper);transition:opacity .75s ease,visibility .75s;isolation:isolate}.gate::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.08;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}.gate-heading{text-align:center}.gate-heading .eyebrow{font-size:9px;color:#d1d9bb;letter-spacing:.28em;margin-bottom:17px}.gate-heading p{font-family:var(--serif);font-size:clamp(38px,5.4vw,62px);line-height:1.03;letter-spacing:-.025em;font-weight:400}.gate-orbit{position:absolute;border:1px solid #f0e2ba17;border-radius:50%;pointer-events:none;z-index:-1}.orbit-one{width:min(78vw,900px);height:min(78vw,900px)}.orbit-two{width:min(60vw,690px);height:min(60vw,690px);border-style:dashed}.gate-stars span{position:absolute;color:#dec18a;font-family:Georgia,serif;animation:star-pulse 5s infinite}.gate-stars span:nth-child(1){left:16%;top:20%;font-size:32px}.gate-stars span:nth-child(2){right:19%;top:27%;font-size:55px;animation-delay:-2s}.gate-stars span:nth-child(3){left:24%;bottom:19%;font-size:22px}.gate-stars span:nth-child(4){right:11%;bottom:28%;font-size:38px}.gate-stars span:nth-child(5){left:9%;top:53%;font-size:13px}.envelope{position:relative;width:400px;height:255px;max-width:82vw;background:none;perspective:1200px;isolation:isolate;filter:drop-shadow(0 24px 23px #14271f55);transition:transform .5s;margin:12px 0 0}.envelope:hover{transform:translateY(-5px)}.envelope-back{position:absolute;inset:0;background:#a2ad8b;border-radius:5px}.letter{position:absolute;left:6%;right:6%;top:7%;height:84%;padding-top:20px;background:#fbf6e9;display:flex;align-items:center;flex-direction:column;color:var(--ink);box-shadow:0 0 4px #14271f22;transition:transform .9s .42s cubic-bezier(.2,.8,.2,1);z-index:1;border:1px solid #dfd5c0}.letter .eyebrow{font-size:9px}.letter-name{font-size:58px;font-family:var(--serif);font-style:italic;line-height:1.4}.letter-rule{width:40px;height:1px;background:var(--gold);margin:6px}.letter-date{font-size:10px;letter-spacing:.3em}.envelope-front{position:absolute;inset:0;background:linear-gradient(25deg,#c8ceb4,#e0e3cb);clip-path:polygon(0 0,50% 51%,100% 0,100% 100%,0 100%);z-index:3;border-radius:4px}.envelope-front::after{content:"";position:absolute;inset:0;background:#d5dac1;clip-path:polygon(0 100%,50% 44%,100% 100%);box-shadow:0 -1px 1px #fff}.envelope-flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 58%);background:linear-gradient(#dee2cb,#b4bfa0);transform-origin:top center;transition:transform .65s ease,z-index 0s .3s;z-index:4;backface-visibility:hidden}.wax-seal{position:absolute;z-index:5;left:calc(50% - 33px);top:calc(51% - 33px);width:66px;height:66px;border-radius:48% 52% 46% 54% / 51% 46% 54% 49%;background:radial-gradient(circle at 35% 20%,#eed7a3,#bc9558 58%,#8f6835);box-shadow:0 5px 8px #4d482b44,inset 0 0 0 3px #caa871,inset 0 0 0 5px #f8dfac66;color:#735729;transition:opacity .3s,transform .4s;animation:seal-pulse 3.5s infinite}.wax-seal>span{font-family:var(--serif);font-size:42px;font-style:italic;line-height:64px;text-shadow:0 1px #ffefc388}.seal-star{position:absolute;right:10px;top:12px;width:9px;height:9px;fill:currentColor;stroke:none}.gate-footer{text-align:center;margin-top:2px}.gate-footer>p{font-family:var(--serif);font-size:19px;font-style:italic;color:#dce1cd}.gate-footer>span{display:block;font-size:10px;letter-spacing:.18em;margin-top:8px}.gate.opening .wax-seal{opacity:0;transform:scale(1.3)}.gate.opening .envelope-flap{transform:rotateX(180deg);z-index:0}.gate.opening .letter{transform:translateY(-55%)}.gate.opening .envelope{transform:translateY(30px)}.gate.leaving{opacity:0;visibility:hidden;pointer-events:none}.gate.is-hidden{display:none}
.story{overflow:hidden}html,body{overflow-x:clip}
/* Main sky */
.site-header{height:90px;display:flex;justify-content:space-between;align-items:center;padding:0 6%;position:absolute;top:0;left:0;width:100%;z-index:10}.monogram{font-family:var(--serif);font-style:italic;font-size:40px;line-height:1;display:flex;gap:1px;align-items:start}.monogram span{font-size:13px;color:var(--gold);margin-top:5px}.site-header nav{display:flex;gap:35px;margin-left:auto;margin-right:38px}.site-header nav a{font-size:11px;letter-spacing:.05em;border-bottom:1px solid transparent;padding:10px 0}.site-header nav a:hover{border-color:var(--gold)}.header-actions{display:flex;gap:5px}.hero{min-height:820px;height:min(900px,100svh);position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;padding:90px 7% 140px;background:radial-gradient(ellipse at 75% 48%,#e2e6d0 0%,#eff0e0 35%,#f7f5e9 75%)}.hero-grain{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.hero-copy{position:relative;z-index:3;padding-top:30px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:.22em;display:flex;align-items:center;gap:11px;margin-bottom:34px}.hero-copy>.eyebrow i{height:6px;width:6px;display:block;border-radius:50%;background:var(--gold)}.hero-intro{font-family:var(--serif);font-size:clamp(27px,3.2vw,44px);line-height:1.15;font-weight:400}.hero h1{font-size:clamp(95px,10.5vw,163px);font-style:italic;line-height:1.1;letter-spacing:-.06em;margin:7px 0 0 -8px;font-weight:500}.hero-subtitle{display:flex;align-items:center;gap:15px;margin:4px 0 25px}.hero-subtitle p{font-family:var(--serif);font-size:26px;font-style:italic;color:var(--muted)}.hero-subtitle span{width:37px;height:1px;background:#afbb98}.hero-description{font-size:13px;color:var(--muted);line-height:1.9}.date-link{display:inline-flex;align-items:center;gap:19px;margin-top:34px;font-size:10px;font-weight:700;letter-spacing:.17em;border-bottom:1px solid #a9b18f;padding:0 0 12px}.date-link i{width:3px;height:3px;border-radius:50%;background:var(--gold)}.date-link svg{width:20px;margin-left:15px;transition:transform .3s}.date-link:hover svg{transform:translateX(5px)}.hero-art{position:relative;z-index:2;width:125%;margin-left:-12%;margin-top:0;transform:translateY(var(--hero-drift,0px))}.airplane-float{animation:airplane-float 7s ease-in-out infinite;filter:drop-shadow(0 20px 18px #4c5d3320)}.airplane-float img{width:100%;height:auto}.sun-halo{position:absolute;width:77%;aspect-ratio:1;top:-15%;left:15%;border-radius:50%;background:radial-gradient(circle,#f6efd7a8 0%,#e8e9d49c 55%,transparent 70%);z-index:-1}.hero-orbit{position:absolute;width:620px;height:620px;right:1%;top:12%;border:1px solid #90a27a23;border-radius:50%;z-index:-1}.hero-orbit::before{content:"";position:absolute;inset:32px;border:1px solid #90a27a16;border-radius:50%}.art-caption{text-align:center;display:block;font-size:8px;letter-spacing:.3em;margin-top:5px;color:#758066;transform:rotate(-5deg)}.flight-trail{position:absolute;right:-8%;top:5%;width:76%;height:88%;stroke:#9caa7c;stroke-width:1;stroke-dasharray:5 9;opacity:.6;z-index:-1}.hero-star-one{left:51%;top:20%;font-size:50px;transform:rotate(12deg)}.hero-star-two{right:9%;bottom:23%;font-size:24px;animation-delay:-2s}.cloud{position:absolute;pointer-events:none;background:radial-gradient(ellipse at 50% 65%,#fffcf6 5%,#fffdf4b8 38%,transparent 68%);filter:blur(12px);width:460px;height:180px;z-index:1;opacity:.8}.cloud::before,.cloud::after{content:"";position:absolute;bottom:22%;background:inherit;filter:blur(3px);width:70%;height:120%;border-radius:50%}.cloud::before{left:-14%;bottom:-5%}.cloud::after{right:-10%;bottom:5%}.cloud-hero-one{right:-120px;bottom:130px;animation:cloud-drift 15s ease-in-out infinite}.cloud-hero-two{left:31%;bottom:50px;opacity:.6;animation:cloud-drift 18s ease-in-out infinite reverse}.scroll-cue{position:absolute;bottom:62px;left:7%;z-index:4;display:flex;align-items:center;gap:23px}.scroll-cue span{font-size:8px;letter-spacing:.23em}.scroll-cue svg{height:30px;width:15px;animation:scroll-nudge 2.5s infinite}.cloud-edge{position:absolute;bottom:-2px;left:0;width:100%;height:55px;background:var(--paper);clip-path:ellipse(65% 85% at 50% 100%);z-index:2}.story{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding-top:110px;padding-bottom:140px}.story-picture{position:relative;padding:20px 15px 55px}.polaroid{position:relative;padding:16px 16px 25px;max-width:360px;width:100%;background:#fffdf6;transform:rotate(-7deg);box-shadow:0 20px 50px #4b4a2a19,0 2px 8px #3d452b10;transition:transform .5s;border:1px solid #e9e4d8}.polaroid:hover{transform:rotate(-3deg) translateY(-4px)}.polaroid img{width:100%;height:auto;aspect-ratio:.98;object-fit:cover}.polaroid>span:not(.paper-tape){display:block;font-family:var(--serif);font-size:21px;font-style:italic;margin:16px 0 0}.polaroid>svg{width:22px;height:22px;display:block;margin:5px auto 0;color:var(--gold)}.paper-tape{position:absolute;top:-16px;left:calc(50% - 46px);width:92px;height:35px;transform:rotate(3deg);z-index:2;opacity:.8;background-color:#c8d2b3;background-image:repeating-linear-gradient(90deg,transparent 0 8px,#fff9 8px 16px),repeating-linear-gradient(0deg,transparent 0 8px,#fff6 8px 16px);clip-path:polygon(2% 0,100% 3%,97% 100%,0 95%)}.photo-orbit{position:absolute;width:420px;height:420px;max-width:110%;border:1px dashed #c8d0b7;border-radius:50%;top:1%;left:-20px;transform:rotate(-12deg)}.photo-star{font-size:34px;right:-4px;top:-15px;z-index:2}.photo-note{position:absolute;bottom:-5px;right:3px;font-size:26px;font-family:var(--serif);line-height:1.15;transform:rotate(-8deg)}.photo-note em{color:#83916c}.photo-note svg{position:absolute;width:70px;height:60px;left:-85px;top:-20px;stroke:#a4ad90;stroke-width:1}.story-copy .eyebrow{font-size:9px;margin-bottom:25px;color:var(--gold)}.story-copy h2{margin-bottom:28px}.story-copy>p{font-size:13px;max-width:350px;line-height:1.9;color:var(--muted);margin:15px 0}.story-copy>p:first-of-type{font-weight:600;color:var(--ink)}.parents{margin-top:35px;padding-top:27px;border-top:1px solid var(--line)}.parents>span{font-size:8px;letter-spacing:.18em}.parents p{font-family:var(--serif);font-size:30px;margin-top:10px}.parents em{font-size:24px;color:var(--gold);margin:0 5px}
/* Time, and the invitation ticket */
.countdown-section{background:#344b3c;color:var(--paper);text-align:center;padding:80px 20px 75px;position:relative;overflow:hidden;isolation:isolate}.countdown-section .eyebrow{font-size:8px;letter-spacing:.24em;color:#c2cba8}.countdown-section h2{font-size:clamp(44px,5vw,64px);margin-top:20px;line-height:1.05}.countdown-section h2 em{color:#d5dcbf}.countdown-stars{font-size:18px;font-family:Georgia,serif;color:#cfb27a;display:flex;gap:24px;justify-content:center;margin-bottom:23px;align-items:center}.countdown-stars span{font-size:28px}.countdown{display:flex;align-items:center;justify-content:center;gap:25px;margin:40px auto 28px;max-width:590px}.countdown>div{display:flex;flex-direction:column;min-width:85px}.countdown>div>span{font-family:var(--serif);font-weight:400;font-size:80px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.countdown small{font-size:8px;letter-spacing:.2em;color:#c7d0b5;margin-top:13px}.countdown>b{font-family:var(--serif);font-size:35px;font-weight:300;opacity:.3;align-self:flex-start;margin-top:12px}.countdown-footer{font-family:var(--serif);font-size:21px;font-style:italic;color:#d4dbc5}.countdown-route{position:absolute;right:-80px;top:-80px;height:420px;width:650px;stroke:#bbc79b;opacity:.13;stroke-dasharray:5 10;stroke-width:.8;z-index:-1}.celebration{padding-top:105px;padding-bottom:90px}.section-heading{text-align:center;margin-bottom:50px}.section-heading .eyebrow{font-size:9px;color:var(--gold);margin-bottom:22px}.boarding-pass{max-width:900px;margin:auto;display:grid;grid-template-columns:1fr 220px;background:#f3eddd;filter:drop-shadow(0 12px 20px #383d2310);position:relative;border:1px solid #d9d7c2;border-radius:3px}.ticket-main{padding:35px 45px}.ticket-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.ticket-heading .eyebrow{font-size:8px;letter-spacing:.19em;color:#7d886d}.ticket-heading svg{fill:var(--gold);stroke:none;width:20px;height:20px}.ticket-destination{font-family:var(--serif);font-size:28px}.ticket-destination em{font-size:33px}.ticket-data{display:flex;gap:80px;margin:28px 0 30px}.ticket-data>div{display:flex;flex-direction:column}.ticket-data span{font-size:8px;letter-spacing:.18em;margin-bottom:7px;color:var(--muted)}.ticket-data strong{font-family:var(--serif);font-size:44px;font-weight:500;line-height:1.15}.ticket-data small{font-size:10px;color:var(--muted);margin-top:7px}.text-link{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:600;padding:0 0 6px;border-bottom:1px solid #adb596;background:transparent}.text-link svg{width:16px;height:16px}.text-link svg:last-child{margin-left:10px}.ticket-stub{border-left:1px dashed #acb194;padding:34px 32px 25px;text-align:center;position:relative}.ticket-stub::before,.ticket-stub::after{position:absolute;content:"";width:20px;height:20px;background:var(--paper);border-radius:50%;left:-10px;border:1px solid #d9d7c2}.ticket-stub::before{top:-11px}.ticket-stub::after{bottom:-11px}.ticket-stub>svg{height:22px;width:22px;margin:0 auto 12px;color:var(--gold)}.ticket-stub>span{display:block;font-size:8px;letter-spacing:.2em;color:var(--muted)}.ticket-stub>p{font-family:var(--serif);font-size:34px;line-height:1.05;margin-top:14px}.ticket-stub p em{color:#85916e}.barcode{width:108px;height:27px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 8px,var(--ink) 8px 11px,transparent 11px 13px);opacity:.55;margin:25px auto 4px}.ticket-stub>small{font-size:7px;letter-spacing:.13em}.location-row{display:flex;gap:22px;align-items:center;max-width:900px;margin:42px auto 0;padding:0 12px}.location-icon{border:1px solid #b7bea1;border-radius:50%;width:52px;height:52px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.location-icon svg{width:22px;height:22px}.location-copy .eyebrow{font-size:8px;letter-spacing:.13em;color:var(--gold);margin-bottom:7px}.location-copy h3{font-size:27px}.location-copy p{font-size:11px;color:var(--muted);margin-top:7px}.pill-link{display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:10px;font-weight:600;border:1px solid #b0b99c;border-radius:30px;padding:13px 20px;white-space:nowrap;margin-left:auto;transition:background .2s}.pill-link:hover{background:#e9eddc}.pill-link svg{width:17px;height:17px}.closing{position:relative;isolation:isolate;overflow:hidden;display:flex;gap:50px;justify-content:center;align-items:center;padding:80px 7% 95px;background:radial-gradient(ellipse at 25% 70%,#e1e5d0,#eef0e1 45%,#f6f5e8)}.closing-art{max-width:260px;width:27%;z-index:2}.closing-art img{height:auto;width:100%;max-height:390px;object-fit:contain;animation:balloon-float 9s ease-in-out infinite;filter:drop-shadow(0 15px 15px #73794416)}.closing-copy{position:relative;z-index:3}.closing-copy .eyebrow{font-size:9px;color:#7d886c;margin-bottom:20px}.closing-copy h2{font-size:clamp(44px,4.7vw,65px)}.closing-copy>p{font-size:13px;color:var(--muted);line-height:1.9;margin:24px 0 28px}.primary-button{display:inline-flex;gap:25px;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);padding:18px 25px;border-radius:2px;font-size:11px;font-weight:600;transition:background .25s,transform .25s;letter-spacing:.02em}.primary-button:hover{background:#476347;transform:translateY(-2px)}.primary-button svg{width:18px;height:18px}.closing-signature{display:flex;align-items:center;gap:11px;margin-top:27px}.closing-signature svg{width:16px;height:16px;color:var(--gold)}.closing-signature p{font-family:var(--serif);font-size:20px;font-style:italic}.cloud-closing{left:0;bottom:-40px;width:600px;opacity:.8}.closing-star{font-size:28px;right:9%;top:18%}.footer{text-align:center;padding:45px 7% 22px;background:#faf7ee}.footer-name{font-family:var(--serif);font-size:45px;font-style:italic;display:inline-flex;position:relative}.footer-name span{font-size:13px;margin-left:6px;color:var(--gold);margin-top:10px}.footer>p{font-size:9px;letter-spacing:.07em;color:var(--muted);margin:7px 0 30px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:8px;letter-spacing:.12em}.footer-bottom button{display:inline-flex;align-items:center;gap:10px;background:transparent;font-size:9px;padding:8px}.footer-bottom button svg{width:14px;height:14px}.footer-bottom button:hover{color:var(--gold)}.reading-progress{position:fixed;bottom:0;left:0;width:100%;height:2px;z-index:20;pointer-events:none}#reading-progress-bar{height:100%;width:0;background:#b9a273}
.experience-ready .hero-copy>*{animation:soft-arrive 1.1s cubic-bezier(.16,1,.3,1) both}.experience-ready .hero-copy>:nth-child(2){animation-delay:.13s}.experience-ready .hero-copy>:nth-child(3){animation-delay:.25s}.experience-ready .hero-copy>:nth-child(4){animation-delay:.37s}.experience-ready .hero-copy>:nth-child(5){animation-delay:.48s}.experience-ready .hero-copy>:nth-child(6){animation-delay:.58s}.experience-ready .airplane-float img{animation:flight-arrive 1.8s cubic-bezier(.16,1,.3,1) both}.motion-paused .hero-copy>*,.motion-paused .airplane-float img{animation:none!important}@keyframes soft-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes flight-arrive{from{opacity:0;transform:translate(100px,25px) rotate(8deg)}to{opacity:1;transform:translate(0,0) rotate(0)}}
/* Dialogs */
dialog{border:0;color:var(--ink);padding:45px;background:var(--paper);max-height:90svh;max-width:calc(100vw - 30px);overflow:auto;box-shadow:0 30px 90px #17291e55}dialog::backdrop{background:#172b22b8;backdrop-filter:blur(8px)}.dialog-close{position:absolute;top:12px;right:12px}.photo-dialog{padding:30px 20px 20px;width:min(510px,90vw)}.photo-dialog img{width:100%;height:auto;margin-top:20px}.photo-dialog p{text-align:center;font-family:var(--serif);font-size:23px;font-style:italic;margin:15px 0 5px}.rsvp-dialog{width:470px}.rsvp-dialog>.eyebrow{font-size:8px;color:var(--gold);margin:12px 0}.rsvp-dialog h2{font-size:47px}.rsvp-intro{font-size:12px;color:var(--muted);margin:14px 0 24px}.rsvp-dialog form>label,.rsvp-dialog #guest-count-field>label{display:block;font-size:11px;font-weight:600;margin:17px 0 7px}.rsvp-dialog input[type=text],.rsvp-dialog input:not([type]),.rsvp-dialog select{width:100%;border:1px solid #c7cdb7;background:#fffdf6;border-radius:2px;padding:12px 13px;font-size:13px;color:var(--ink)}.rsvp-dialog input::placeholder{color:#939b89}.rsvp-dialog fieldset{border:0;padding:0;margin:20px 0 0;display:flex;gap:9px}.rsvp-dialog legend{font-size:11px;font-weight:600;padding:0;margin-bottom:8px}.radio-option{flex:1;display:flex;gap:8px;align-items:center;border:1px solid #c7cdb7;padding:10px;font-size:10px;cursor:pointer}.radio-option:has(input:checked){background:#e7ecd9;border-color:#9aa884}.radio-option input{accent-color:var(--ink);margin:0}.rsvp-dialog .primary-button{width:100%;margin-top:25px;gap:12px}.rsvp-note{font-size:9px;text-align:center;color:var(--muted);margin-top:13px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);z-index:150;background:var(--ink);color:var(--paper);font-size:12px;max-width:calc(100vw - 40px);padding:13px 22px;box-shadow:0 5px 25px #17291e33;opacity:0;visibility:hidden;transition:.3s;pointer-events:none;text-align:center}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
@keyframes airplane-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-17px) rotate(1deg)}}@keyframes balloon-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-15px) rotate(3deg)}}@keyframes star-pulse{0%,100%{opacity:.7}50%{opacity:1}}@keyframes cloud-drift{0%,100%{transform:translateX(0)}50%{transform:translateX(35px)}}@keyframes scroll-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes seal-pulse{0%,80%,100%{box-shadow:0 5px 8px #4d482b44,inset 0 0 0 3px #caa871,inset 0 0 0 5px #f8dfac66}40%{box-shadow:0 5px 8px #4d482b44,0 0 0 9px #d9bd7f15,inset 0 0 0 3px #caa871,inset 0 0 0 5px #f8dfac66}}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}.motion-paused .hero-art{transform:none!important}.motion-paused .reveal{transition:none!important;opacity:1!important;transform:none!important}.motion-paused{scroll-behavior:auto}.motion-paused .envelope,.motion-paused .letter,.motion-paused .envelope-flap{transition-duration:.01s!important;transition-delay:0s!important}
@media(min-width:1500px){.hero{padding-left:calc((100vw - 1280px)/2);padding-right:calc((100vw - 1280px)/2)}.hero-art{width:120%}}
@media(max-width:1000px){.hero{min-height:720px;padding-left:6%;padding-right:6%}.hero h1{font-size:115px}.hero-art{width:132%;margin-left:-21%}.hero-copy>.eyebrow{font-size:8px}.story{gap:65px;padding-left:45px;padding-right:45px}.story-copy h2{font-size:57px}.story-picture{padding-left:0;padding-right:0}.story-copy>p{font-size:12px}.ticket-main{padding:30px}.ticket-data{gap:55px}.closing{gap:40px}}
@media(max-width:900px){html{scroll-padding-top:20px}.site-header{height:72px;padding:0 24px}.monogram{font-size:34px}.site-header nav{display:none}.header-actions{gap:1px}.icon-button{width:40px;height:40px}.hero{height:auto;min-height:940px;display:flex;flex-direction:column;padding:112px 24px 110px;text-align:center}.hero-copy{padding-top:0}.hero-copy>.eyebrow{justify-content:center;font-size:8px;letter-spacing:.18em;gap:8px;margin-bottom:25px}.hero-intro{font-size:32px;line-height:1.12}.hero h1{font-size:100px;letter-spacing:-.065em;line-height:1.05;margin:8px 0 0 -7px}.hero-subtitle{justify-content:center;margin:5px 0 17px;gap:12px}.hero-subtitle p{font-size:24px}.hero-description{font-size:11px;line-height:1.9}.date-link{margin-top:22px;gap:15px;font-size:9px;padding-bottom:10px}.date-link svg{margin-left:6px}.hero-art{width:115%;max-width:510px;margin:18px -7.5% 0;flex-shrink:0;transform:none!important}.airplane-float{animation-duration:8s}.airplane-float img{width:100%}.sun-halo{width:80%;top:-8%;left:10%}.art-caption{font-size:7px;letter-spacing:.22em;margin-top:-1px}.hero-orbit{width:410px;height:410px;right:-25%;top:45%}.flight-trail{right:-48%;top:25%;width:130%;height:70%;opacity:.4}.hero-star-one{left:8%;top:51%;font-size:36px}.hero-star-two{right:8%;bottom:13%;font-size:20px}.scroll-cue{bottom:45px;left:50%;transform:translateX(-50%);flex-direction:column;gap:7px;white-space:nowrap}.scroll-cue span{font-size:7px}.scroll-cue svg{height:22px}.cloud-hero-one{bottom:100px;right:-150px;width:340px}.cloud-hero-two{left:-200px;bottom:110px;width:370px}.cloud-edge{height:28px}.section-shell{padding:75px 28px}.story{display:flex;flex-direction:column;gap:65px;padding-top:72px;padding-bottom:80px}.story-picture{max-width:320px;width:90%;padding:12px 8px 40px}.polaroid{padding:12px 12px 20px}.polaroid>span:not(.paper-tape){font-size:20px;margin-top:12px}.photo-note{font-size:24px;bottom:-25px;right:-6px}.photo-orbit{width:340px;height:340px;top:0;left:-16px}.photo-star{right:-20px;top:0;font-size:28px}.story-copy{max-width:410px;width:100%;text-align:center}.story-copy h2{font-size:56px}.story-copy .eyebrow{font-size:8px;margin-bottom:20px}.story-copy>p{font-size:12px;max-width:335px;margin:15px auto}.parents{margin:30px auto 0;padding-top:24px;max-width:320px}.parents>span{font-size:8px}.parents p{font-size:28px}.countdown-section{padding:59px 18px}.countdown-section .eyebrow{font-size:7px;letter-spacing:.17em}.countdown-section h2{font-size:48px}.countdown-stars{font-size:13px;gap:20px;margin-bottom:20px}.countdown-stars span{font-size:22px}.countdown{gap:9px;margin:30px auto 23px}.countdown>div{min-width:56px}.countdown>div>span{font-size:56px}.countdown>b{font-size:25px;margin-top:7px}.countdown small{font-size:6px;letter-spacing:.14em;margin-top:10px}.countdown-footer{font-size:19px}.countdown-route{right:-270px;top:-10px}.section-heading{margin-bottom:32px}.section-heading .eyebrow{font-size:7px;letter-spacing:.13em}.section-heading h2{font-size:49px}.boarding-pass{grid-template-columns:1fr;max-width:420px}.ticket-main{padding:26px 25px 28px}.ticket-heading .eyebrow{font-size:7px;letter-spacing:.14em}.ticket-heading{margin-bottom:17px}.ticket-heading svg{width:17px;height:17px}.ticket-destination{font-size:24px}.ticket-destination em{font-size:29px}.ticket-data{gap:0;justify-content:space-between;padding-right:15px;margin:24px 0}.ticket-data strong{font-size:40px}.ticket-data small{font-size:9px}.ticket-stub{border-left:0;border-top:1px dashed #acb194;display:grid;grid-template-columns:34px 1fr 105px;align-items:center;padding:20px 24px;text-align:left;gap:8px}.ticket-stub::before{top:-10px;left:-11px}.ticket-stub::after{top:-10px;right:-11px;left:auto;bottom:auto}.ticket-stub>svg{margin:0;width:21px;height:21px}.ticket-stub>span{display:none}.ticket-stub>p{font-size:20px;line-height:1.1;margin:0}.ticket-stub>p br{display:none}.barcode{width:90px;height:24px;margin:0 0 0 auto}.ticket-stub>small{grid-column:3;font-size:6px;text-align:right;letter-spacing:.07em;margin-top:-7px}.location-row{margin-top:30px;flex-wrap:wrap;gap:14px;padding:0 2px}.location-icon{height:42px;width:42px}.location-icon svg{width:20px;height:20px}.location-copy{flex:1}.location-copy .eyebrow{font-size:7px}.location-copy h3{font-size:23px}.location-copy p{font-size:10px;margin-top:5px}.pill-link{margin:5px 0 0 56px;font-size:10px;padding:11px 17px}.celebration{padding-bottom:65px}.closing{flex-direction:column;gap:20px;padding:52px 24px 65px;text-align:center}.closing-art{width:40%;max-width:160px;margin-bottom:0}.closing-art img{max-height:235px}.closing-copy .eyebrow{font-size:8px;margin:15px 0 20px}.closing-copy h2{font-size:48px}.closing-copy>p{font-size:12px;margin:23px 0}.closing-copy .primary-button{padding:17px 25px;font-size:11px;gap:25px}.closing-signature{justify-content:center;margin-top:25px;gap:8px}.closing-signature p{font-size:19px}.closing-star{font-size:21px;right:20%;top:18%}.cloud-closing{width:400px;left:-180px;top:130px;bottom:auto}.footer{padding:32px 24px 25px}.footer-name{font-size:42px}.footer>p{font-size:8px;margin-bottom:26px}.footer-bottom{flex-wrap:wrap;justify-content:center;gap:5px 15px;padding-top:13px}.footer-bottom>span{width:100%;font-size:8px;margin:4px 0}.footer-bottom button{font-size:8px}.footer-bottom button svg{width:12px;height:12px}.gate{gap:28px!important}.gate-heading p{font-size:46px}.gate-heading .eyebrow{font-size:8px;letter-spacing:.22em}.envelope{height:225px;width:350px;margin-top:18px}.letter-name{font-size:50px}.letter .eyebrow{font-size:8px}.wax-seal{width:60px;height:60px;left:calc(50% - 30px);top:calc(51% - 30px)}.wax-seal>span{font-size:39px;line-height:58px}.gate-footer>p{font-size:19px}.gate-footer>span{font-size:9px}.orbit-one{width:650px;height:650px}.orbit-two{width:480px;height:480px}.gate-stars span:nth-child(1){left:8%;top:14%;font-size:23px}.gate-stars span:nth-child(2){right:8%;top:33%;font-size:31px}.gate-stars span:nth-child(3){left:13%;bottom:16%;font-size:19px}.gate-stars span:nth-child(4){right:11%;bottom:12%;font-size:32px}.rsvp-dialog{padding:32px 25px}.rsvp-dialog h2{font-size:43px}.rsvp-intro{font-size:11px}.radio-option{font-size:10px;padding:10px 8px}.rsvp-dialog .primary-button{font-size:10px;padding:16px 13px}.toast{font-size:11px}}
@media(max-width:370px){.hero{min-height:875px;padding-top:100px}.hero h1{font-size:87px}.hero-intro{font-size:30px}.hero-copy>.eyebrow{font-size:7px}.hero-art{margin-top:22px}.hero-star-one{top:53%}.section-shell{padding-left:23px;padding-right:23px}.story-copy h2{font-size:50px}.countdown>div>span{font-size:50px}.countdown>div{min-width:49px}.countdown{gap:8px}.countdown small{font-size:6px}.closing-copy h2{font-size:43px}.envelope{height:205px}.gate-heading p{font-size:40px}.gate{gap:22px!important}.letter-name{font-size:43px}.letter-date{font-size:8px}.ticket-main{padding:25px 21px}.ticket-destination{font-size:22px}.ticket-destination em{font-size:28px}.ticket-data strong{font-size:37px}.location-copy h3{font-size:21px}}
@media(max-height:720px) and (min-width:701px){.gate{gap:22px!important}.gate-heading p{font-size:42px}.envelope{width:350px;height:225px}.gate-footer>p{font-size:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}.reveal{opacity:1!important;transform:none!important}.hero-art{transform:none!important}}

/* Lift the card above the envelope only after its flap has opened. */
.gate-heading{transition:opacity .35s,transform .35s}
.gate.opening .gate-heading{opacity:0;transform:translateY(-12px)}
.gate.opening .letter{z-index:6;transform:translateY(-75%);transition:transform .9s .42s cubic-bezier(.2,.8,.2,1),z-index 0s .65s}
.js .gate.is-hidden,.js .gate[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.gate.opening .letter{transition:none}}