:root{--navy:#061d2d;--navy-deep:#041521;--ivory:#f2e8d2;--paper:#eee1c5;--gold:#c9ad76;--gold-dark:#856633;--ink:#292a29;--serif:'Cormorant Garamond',Georgia,serif;--script:'Pinyon Script','Brush Script MT',cursive;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--navy);font-family:var(--serif);color:var(--ink);font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}a{color:inherit}svg{display:block;width:100%;height:100%}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.navy-paper{background-color:var(--navy);background-image:radial-gradient(ellipse at 48% 20%,#16334444,transparent 65%),url('assets/grain.svg');color:var(--ivory)}.ivory-paper{background-color:var(--ivory);background-image:radial-gradient(ellipse at 80% 30%,#d8c29325,transparent 65%),url('assets/grain.svg')}.eyebrow{text-transform:uppercase;font-size:14px;font-weight:600;letter-spacing:.2em;line-height:1.6;margin:0;color:var(--gold-dark)}.navy-paper .eyebrow{color:var(--gold)}.gold-rule{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--gold);margin:22px auto}.gold-rule:before,.gold-rule:after{content:'';width:55px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.script-heading{font-family:var(--script);font-weight:400;font-size:clamp(54px,7vw,86px);line-height:1.1;margin:8px 0}.serif-heading{display:block;font-size:clamp(30px,4.3vw,53px);font-weight:400;letter-spacing:.12em;line-height:1.35}.italic-copy{font-style:italic;margin:14px 0;color:var(--gold-dark);font-size:21px}.navy-paper .italic-copy{color:var(--gold)}.section-heading{text-align:center;position:relative;z-index:1}.section-heading h2{font-weight:400;margin:8px 0}.pill{min-height:54px;border-radius:999px;padding:13px 32px;display:flex;gap:26px;align-items:center;justify-content:center;line-height:1.2;font-size:21px;letter-spacing:.025em;box-shadow:0 8px 18px #0002;transition:transform .35s var(--ease),box-shadow .35s}.pill:hover{transform:translateY(-3px);box-shadow:0 12px 24px #0003}.ivory-button{color:#483b25;border:1px solid #ccb788;background:linear-gradient(145deg,#fff6df,#eddfbe);box-shadow:inset 0 0 0 4px #f8efd8,0 12px 25px #0005}.navy-button{color:var(--ivory);background:var(--navy);border:1px solid #253e4d}.site-header{position:absolute;top:0;left:0;right:0;height:66px;padding:10px clamp(20px,4vw,60px);display:flex;align-items:center;justify-content:space-between;z-index:10;color:var(--gold-dark)}.header-monogram{text-decoration:none;font-family:var(--script);font-size:29px;line-height:1}.header-monogram i{font-size:.65em}.music-toggle{display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#685837;font-size:14px;padding:9px 0}.music-bars{display:flex;align-items:center;gap:3px;height:17px}.music-bars i{width:2px;height:8px;background:currentColor}.music-bars i:nth-child(2){height:15px}.music-bars i:nth-child(3){height:11px}.music-toggle[aria-pressed=true] .music-bars i{animation:sound-wave 1.1s ease-in-out infinite alternate}.music-toggle[aria-pressed=true] .music-bars i:nth-child(2){animation-delay:-.35s}.music-toggle[aria-pressed=true] .music-bars i:nth-child(3){animation-delay:-.65s}@keyframes sound-wave{to{transform:scaleY(.35)}}
/* The invitation begins with the closed passport; the same book opens and moves into the hero. */
.passport-entry{--open-scale:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:88px 20px 48px;overflow:hidden;perspective:1600px}.passport-stage{position:relative;width:min(720px,104vw);aspect-ratio:4/3;perspective:1600px;transform-style:preserve-3d}.passport{position:absolute;inset:0;width:100%;height:100%;transform-style:preserve-3d;z-index:3;opacity:1;perspective:1500px;pointer-events:none;will-change:transform}.passport-stage .passport{transform:translateX(-25%)}.passport-stage .right-page{visibility:hidden}.passport-entry.is-opening .right-page{visibility:visible}.passport-action{text-align:center;position:relative;z-index:4}.passport-action .pill{min-width:290px;margin:auto}.passport-action p{color:#baa174;letter-spacing:.22em;font-size:13px;margin:20px 0 0}.page,.cover-face{position:absolute;inset:0;border-radius:6px 15px 15px 6px;backface-visibility:hidden;overflow:hidden}.right-page{left:50%;width:50%;border:7px solid #0c2130;border-left-width:2px;box-shadow:14px 14px 32px #0004;background:linear-gradient(90deg,#382d1929,transparent 12%),url('assets/passport-spread.webp') right center/200% 100%;transform:rotateY(-5deg);transform-origin:left center}.right-page:after,.inside-face:after{content:'';position:absolute;inset:0;border:1px solid #a78b5547;border-radius:5px;pointer-events:none;box-shadow:inset 0 -4px 0 #c6b39466}.turning-leaf{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform:rotateY(0);transform-style:preserve-3d;z-index:4;will-change:transform}.cover-face{transform:translateZ(2px);background:#071c2b url('assets/passport-cover.webp') center/100% 100%;box-shadow:6px 11px 22px #0007;border-left:2px solid #213445}.cover-copy{height:100%;position:relative;text-align:center;color:#d5b878;text-shadow:0 1px 1px #fff2}.passport-title{position:absolute;top:9%;left:4%;right:4%;margin:0;font-size:clamp(25px,3.7vw,42px);letter-spacing:.07em;line-height:1.1;font-weight:600}.passport-subtitle{position:absolute;top:20%;left:8%;right:8%;font-size:clamp(9px,1.25vw,14px);letter-spacing:.22em;margin:0;line-height:1.2}.cover-monogram{position:absolute;top:76%;left:0;right:0;font-family:var(--script);font-size:clamp(40px,5.3vw,66px);line-height:1;white-space:nowrap}.cover-monogram span{font-size:.5em;margin-inline:-.06em;vertical-align:.09em}.cover-date{position:absolute;top:89%;left:0;right:0;font-size:clamp(8px,1vw,12px);letter-spacing:.15em;margin:0}.cover-star{position:absolute;top:94%;left:0;right:0;font-size:11px}.inside-face{transform:rotateY(180deg);background:linear-gradient(270deg,#382d1930,transparent 12%),url('assets/passport-spread.webp') left center/200% 100%;border:7px solid #0c2130;border-right-width:2px;border-radius:15px 6px 6px 15px;box-shadow:-12px 12px 30px #0003}.page-inner{position:relative;width:100%;height:100%;text-align:center}.page-eyebrow{position:absolute;top:7%;left:5%;right:5%;margin:0;text-transform:uppercase;letter-spacing:.16em;font-size:clamp(9px,1.18vw,14px);font-weight:600;color:#927645}.page-bottom{position:absolute;bottom:4%;left:0;right:0;text-transform:uppercase;letter-spacing:.18em;font-size:clamp(8px,.92vw,12px);color:#95794a;line-height:1.9}.book-route{position:absolute;top:26%;left:5%;width:90%;height:55%;color:#aa853f}.book-heart-path{fill:none;stroke:currentColor;stroke-width:1.3;stroke-dasharray:3 4}.passport-stamp{position:absolute;bottom:6%;left:8%;width:42%;aspect-ratio:1;border:1px solid #ae966d77;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#aa8b54;transform:rotate(-13deg);box-shadow:inset 0 0 0 5px #efe3ca,inset 0 0 0 6px #ab956d66}.passport-stamp span{font-family:var(--script);font-size:clamp(15px,2vw,25px)}.passport-stamp small{font-size:clamp(7px,.85vw,10px);letter-spacing:.13em;line-height:1.7}.book-spine{position:absolute;left:calc(50% - 2px);width:4px;top:5px;bottom:5px;background:linear-gradient(90deg,#392f2250,#faf0d6,#382d2240);z-index:6;opacity:0}
/* The same book is placed here by a FLIP transition, never replaced by a second image. */
.hero{text-align:center;position:relative;padding:64px 20px 58px;overflow:hidden}.hero .eyebrow{font-size:14px;letter-spacing:.23em}.countdown{display:flex;justify-content:center;gap:19px;color:#8c7853;font-size:13px;letter-spacing:.06em;margin:10px auto 25px}.countdown b{font-size:22px;font-weight:500;color:#6e5731;margin-right:4px;font-variant-numeric:tabular-nums}.hero-compass{width:39px;height:39px;margin:0 auto 10px;color:#b89c63;opacity:.75}.names{font-family:var(--script);font-weight:400;font-size:clamp(74px,9.5vw,130px);line-height:1.02;margin:4px auto 8px;letter-spacing:0;max-width:960px;color:#272c2f}.names span{display:block}.names span+span{margin-top:5px}.names i{font-size:.64em;color:#b89b5c;font-style:normal;display:inline-block;vertical-align:.06em;margin-right:7px}.name-divider{display:flex;align-items:center;justify-content:center;gap:7px;color:#94753c;margin:22px auto 10px;font-size:13px}.name-divider span{height:1px;width:60px;background:linear-gradient(90deg,transparent,#9c834c)}.name-divider span:last-child{transform:rotate(180deg)}.adventure-line{font-size:26px;font-weight:500;font-style:italic;color:#7b6b50;margin:10px auto 15px}.date-line{font-size:14px;font-weight:600;letter-spacing:.24em;color:#806c45;display:block}.book-mount{position:relative;aspect-ratio:4/3;width:min(590px,88vw);margin:26px auto 8px;perspective:1600px}.book-mount .passport{--page-w:unset;position:absolute;inset:0;width:100%;height:100%;transform:none!important;opacity:1}.book-mount .turning-leaf{transform:rotateY(-180deg)}.book-mount .book-spine{opacity:1}.hero-welcome{font-size:19px;font-style:italic;color:#77674a;margin:26px 0 22px}.scroll-down{margin:0 auto;min-width:250px}.down-mark{font-family:Georgia,serif;font-size:24px}.story{padding:64px 25px 70px;overflow:hidden}.story-route{position:relative;width:min(1040px,100%);margin:38px auto 0;height:1280px}.flight-map{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.route-base{fill:none;stroke:#b99b5b55;stroke-width:1.6;stroke-dasharray:4 8;vector-effect:non-scaling-stroke}.route-progress{fill:none;stroke:#a3813e;stroke-width:1.5;vector-effect:non-scaling-stroke}.travelling-plane{position:absolute;left:0;top:0;width:38px;height:38px;color:#a7833d;pointer-events:none;will-change:transform;z-index:2}.story-stop{position:absolute;display:flex;align-items:center;gap:45px;width:100%;min-height:340px}.story-stop:nth-of-type(1){top:60px}.story-stop:nth-of-type(2){top:460px}.story-stop:nth-of-type(3){top:880px}.stop-left{padding-right:15%;justify-content:flex-start}.stop-right{padding-left:15%;justify-content:flex-end;flex-direction:row-reverse}.photo-frame{margin:0;background:#faf1dc;padding:12px 12px 3px;box-shadow:0 10px 35px #3c2e141c;width:310px;flex-shrink:0;transform:rotate(-5deg);border:1px solid #d0bd9544}.stop-right .photo-frame{transform:rotate(5deg)}.story-stop:nth-of-type(3) .photo-frame{transform:rotate(-3deg)}.photo-slot{position:relative;aspect-ratio:4/5;overflow:hidden;background:url('assets/passport-spread.webp') left center/auto 100%;box-shadow:inset 0 0 35px #97794322}.photo-slot:before{content:'';position:absolute;inset:0;background:#efe2c4bb}.photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-frame figcaption{font-family:var(--script);font-size:30px;line-height:1.8;text-align:center;color:#7a6236}.photo-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:13px;flex-direction:column;color:#8e7549;text-align:center;z-index:1}.photo-placeholder>svg{width:50px;height:50px;opacity:.65}.photo-placeholder>span:not(.placeholder-heart):not(.placeholder-monogram){font-size:13px;letter-spacing:.14em}.photo-placeholder small{font-size:14px;font-style:italic;letter-spacing:0}.placeholder-heart{font-size:65px;line-height:1}.placeholder-monogram{font-family:var(--script);font-size:54px}.photo-slot.has-photo:before,.photo-slot.has-photo .photo-placeholder{display:none}.story-copy{max-width:290px;background:#f2e8d2bc;padding:14px 10px;position:relative;z-index:1}.story-copy .eyebrow{font-size:13px}.story-copy h3{font-size:35px;font-weight:500;line-height:1.15;margin:9px 0 16px}.story-copy p:last-child{font-style:italic;font-size:19px;color:#8c7650;margin:0;line-height:1.7}
.destinations{position:relative;padding:78px 30px 0;overflow:hidden}.destinations .script-heading,.rsvp .script-heading{display:block;color:#cdbb93}.destinations .serif-heading,.rsvp .serif-heading{color:#efdfbb}.destination-route{width:min(960px,100%);position:relative;margin:42px auto 0;padding-left:90px}.destination-path{position:absolute;width:55px;left:0;top:0;height:100%;overflow:visible}.destination-path path{fill:none;stroke:#bd9f6388;stroke-width:1.4;stroke-dasharray:5 6;vector-effect:non-scaling-stroke}.destination-plane{position:absolute;left:0;top:0;width:32px;height:32px;color:#c4a35d;pointer-events:none;will-change:transform}.venue-ticket{position:relative;display:grid;grid-template-columns:1.1fr 1fr;min-height:360px;box-shadow:0 22px 42px #0003;isolation:isolate;overflow:hidden;border-radius:5px;mask:radial-gradient(circle 15px at 0 50%,transparent 98%,#000) left,radial-gradient(circle 15px at 100% 50%,transparent 98%,#000) right;mask-size:51% 100%;mask-repeat:no-repeat}.venue-ticket:before,.boarding-ticket:before{content:'';position:absolute;inset:0;pointer-events:none;border:1px solid #b7a07155;z-index:2}.ticket-copy{padding:30px 22px 27px 34px;color:#313634;text-align:left;position:relative;z-index:1}.ticket-kicker{font-size:14px;letter-spacing:.13em;font-weight:600;margin:0 0 11px;line-height:1.6;color:#6f624b}.ticket-copy .ticket-kicker{border-bottom:1px solid #b69d6870;padding-bottom:12px}.small-journey{font-size:13px;letter-spacing:.06em;font-style:italic;margin:0 0 4px;color:#8d784e}.ticket-copy h3{font-size:35px;line-height:1.12;margin:8px 0 10px;font-weight:500}.ticket-time{font-size:15px;letter-spacing:.07em;font-weight:600;margin:12px 0;color:#6e624b}.ticket-rule{font-size:23px;line-height:1;display:flex;align-items:center;gap:10px;justify-content:center;max-width:185px;margin:15px 0;color:#b2965c}.ticket-rule:before,.ticket-rule:after{content:'';height:1px;background:#bdab8166;flex:1}.venue-address{font-size:15px;line-height:1.5;color:#8a7b5f;margin:16px 0}.map-link{font-size:14px;letter-spacing:.11em;font-weight:600;display:inline-flex;gap:17px;align-items:center;text-decoration:none;border-bottom:1px solid #98845d;padding:5px 0;color:#746348;min-height:40px;transition:color .25s}.map-link:hover{color:#33250d}.map-link span{font-size:21px;line-height:1}.venue-illustration{width:100%;height:100%;min-height:350px;background-repeat:no-repeat;background-size:contain;background-position:center;background-origin:content-box;padding:12px;mix-blend-mode:multiply}.church-illustration{background-image:url('assets/art/church-sketch.svg')}.celebration-illustration{background-image:url('assets/art/celebration-sketch.svg')}.attire{position:relative;text-align:center;padding:72px 25px 66px;max-width:720px;margin:auto}.attire .script-heading{font-size:clamp(47px,6vw,69px);margin:12px 0 22px}.attire p:not(.eyebrow){font-size:19px;line-height:1.75;margin:8px auto;color:#c8bfa8}.attire strong{font-weight:600;color:#e6d8b6}.attire p.attire-formal{font-size:15px;letter-spacing:.13em;text-transform:uppercase;color:#d2b37a;margin-bottom:16px}.attire p.bride-note{font-size:23px;font-style:italic;color:#d1b984}.attire .intermission{display:flex;align-items:center;flex-direction:column;font-size:17px!important;font-style:italic;margin:35px 0 0!important;color:#a79c82!important}.intermission span{font-size:12px;letter-spacing:.17em;text-transform:uppercase;font-style:normal;color:#cfb888}.celebration-copy{font-size:22px;font-style:italic;line-height:1.35;margin:14px 0}.celebration-footer{position:relative;text-align:center;font-style:italic;color:#b49d71;font-size:19px;margin:34px 0 0}.coastline-art{width:min(1100px,calc(100% + 60px));height:210px;margin:15px auto 0;background-image:url('assets/art/coastline-hd.webp');background-size:cover;background-position:center 70%;background-repeat:no-repeat;mask-image:linear-gradient(transparent,#000 25%,#000 90%,transparent);opacity:.76;pointer-events:none}
.rsvp{padding:56px 25px 30px;position:relative;overflow:hidden}.rsvp .form-intro{font-style:italic;color:#c3b99e;font-size:19px;line-height:1.7;margin:20px 0 0}.boarding-ticket{position:relative;width:min(890px,100%);display:grid;grid-template-columns:minmax(0,1fr) 225px;margin:50px auto 25px;border-radius:4px;box-shadow:0 20px 35px #0003;overflow:hidden;color:#564a32;mask:radial-gradient(circle 16px at 0 50%,transparent 98%,#000) left,radial-gradient(circle 16px at 100% 50%,transparent 98%,#000) right;mask-size:51% 100%;mask-repeat:no-repeat}.boarding-main{padding:29px 38px 23px;min-width:0}.boarding-main>.ticket-kicker{font-size:13px;border-bottom:1px solid #c0aa7a88;display:inline-block;padding-bottom:10px}.ticket-plane-art{height:175px;width:100%;margin:0 0 7px;color:#a98b52}.ticket-plane-art svg{width:100%;height:100%}.ticket-flight-path{fill:none;stroke:currentColor;stroke-width:1.4;stroke-dasharray:5 7;opacity:.58}.ticket-names{font-size:23px;letter-spacing:.08em;line-height:1.4;margin:0 0 12px;font-weight:600}.boarding-details{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;color:#816f49}.boarding-details p{font-size:14px;letter-spacing:.1em;line-height:1.5;margin:3px 0}.boarding-details p:first-child{grid-column:1/-1}.boarding-details strong{font-weight:600}.boarding-stub{border-left:2px dashed #a9906055;padding:29px 15px;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:space-between;position:relative;transition:background-color .7s}.boarding-stub:before,.boarding-stub:after{content:'';position:absolute;left:-11px;top:-11px;width:20px;height:20px;border-radius:50%;background:var(--navy)}.boarding-stub:after{top:auto;bottom:-11px}.boarding-stub .ticket-kicker{font-size:13px;letter-spacing:.1em}.stub-globe{width:65px;height:65px;color:#b4975c;flex-shrink:0;margin:18px auto}.pending-copy{font-size:25px;line-height:1.25;margin:7px 0;font-style:italic;color:#a18b61}.boarding-stub small{font-size:15px;color:#9c8b66}.confirmed-stamp p,.declined-stamp p{font-size:22px;letter-spacing:.1em;font-weight:600;margin:10px 0;line-height:1.65;color:#8b7546}.confirmed-stamp span,.declined-stamp span{font-size:27px;color:#b5965b}.is-confirmed .confirmed-stamp{animation:stamp-in .85s var(--ease)}.is-confirmed .boarding-stub{background:#e1d1a838}.is-declined .boarding-stub{background:#e1d1a817}@keyframes stamp-in{0%{opacity:0;transform:scale(1.2) rotate(-8deg)}60%{opacity:1;transform:scale(.96) rotate(2deg)}100%{transform:none}}.barcode{height:64px;width:112px;background:repeating-linear-gradient(90deg,#a0844f 0 2px,transparent 2px 5px,#a0844f 5px 6px,transparent 6px 8px,#a0844f 8px 12px,transparent 12px 15px,#a0844f 15px 16px,transparent 16px 19px);opacity:.7;margin:20px auto 7px;flex-shrink:0}.stub-flight{font-size:12px;letter-spacing:.1em;color:#8c754b}.passenger-label{font-size:13px;letter-spacing:.12em;font-weight:600;color:#8e784b;margin:22px 0 8px}.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}form label{display:block;font-size:14px;color:#7a6743;line-height:1.6}input,textarea{width:100%;border:0;border-bottom:1px solid #aa925b88;border-radius:0;background:#f9f2df70;color:#433a2a;padding:9px 10px;min-height:44px;margin-top:4px;font-family:var(--serif);font-size:18px;line-height:1.4;resize:vertical}input::placeholder,textarea::placeholder{color:#a89673;font-style:italic}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#9b473c}.guest-names-label{margin-top:16px}.guest-names-label small{display:block;font-size:12px;letter-spacing:.02em;color:#9b885f}.reply-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0 0}.reply-button{border:1px solid #ac905a;min-height:47px;font-size:18px;border-radius:3px;line-height:1.2;padding:10px 8px;transition:transform .3s var(--ease),background .3s}.reply-button:hover{transform:translateY(-2px)}.accept-button{background:#071d2d;color:#f2e5c8;border-color:#071d2d}.accept-button span{margin-left:5px}.decline-button{background:transparent;color:#7f6940}.form-message{font-size:15px;line-height:1.6;color:#8b4336;margin:12px 0 0;min-height:0}.form-message:empty{display:none}.rsvp-response{padding-top:25px;max-width:500px;outline:none}.rsvp-response h4{font-family:var(--script);font-size:42px;font-weight:400;line-height:1.2;margin:0 0 13px;color:#887039}.rsvp-response p{font-size:18px;font-style:italic;margin:8px 0;line-height:1.6;color:#8a754f}.rsvp-response .reply-passenger{font-size:14px;font-style:normal;font-weight:600;letter-spacing:.07em;overflow-wrap:anywhere}.boarding-notes{text-align:center;max-width:660px;margin:28px auto 38px;color:#b6ab90;line-height:1.6}.boarding-notes p{font-size:19px;margin:8px 0}.boarding-notes .rsvp-deadline{font-size:21px;margin:21px 0;color:#dfc993}.boarding-notes .reservation-note{font-size:17px;color:#a7997a}.boarding-notes .final-destination{font-size:21px;font-style:italic;color:#b8a171;margin-top:17px}.awaiting-you{text-align:center;font-size:34px;font-style:italic;color:#c5b089;margin:30px 0 15px}.heart-divider{display:flex;align-items:center;justify-content:center;gap:12px;width:min(510px,88%);margin:auto;color:#ceb076;font-size:24px}.heart-divider span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#9a7f4855,#9a7f4877)}.heart-divider span:last-child{transform:rotate(180deg)}.calendar-button{display:flex;align-items:center;justify-content:center;gap:12px;margin:28px auto 0;background:linear-gradient(130deg,#e7ca8b,#ceb16e);color:#624d27;border:1px solid #a98c52;border-radius:5px;padding:16px 28px;min-height:56px;font-size:14px;font-weight:600;letter-spacing:.12em;box-shadow:0 7px 17px #0003;transition:transform .3s}.calendar-button:hover{transform:translateY(-2px)}.calendar-button svg{width:22px;height:22px}.closing{position:relative;text-align:center;color:#b5a88b;max-width:700px;margin:55px auto 0;padding:0 20px 70px}.closing-monogram{font-family:var(--script);color:#ccb17b;font-size:78px;line-height:1.1;margin:0 0 26px;letter-spacing:-.04em}.closing-monogram span{font-size:.45em;margin-inline:0;vertical-align:.1em}.closing>p:not(.closing-monogram){font-size:20px;line-height:1.7;margin:7px 0}.closing p.closing-small{font-size:15px;letter-spacing:.1em;color:#8c7b58;margin-top:20px}.closing-flight{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:245px;height:80px;color:#b6985d}.closing-flight path{fill:none;stroke:currentColor;stroke-width:1.2;stroke-dasharray:3 5}.calendar-dialog{border:1px solid #c1a573;border-radius:12px;padding:45px 35px 34px;width:min(480px,calc(100% - 36px));color:#5c4a29;text-align:center;box-shadow:0 25px 65px #0005}.calendar-dialog::backdrop{background:#041521bb;backdrop-filter:blur(5px)}.calendar-dialog .script-heading{font-size:55px;margin:17px 0}.calendar-dialog>p:not(.eyebrow){font-size:19px;margin:18px 0}.dialog-close{position:absolute;top:9px;right:14px;color:#91733d;border:0;background:none;font-size:30px;padding:3px 9px;min-height:44px}.calendar-event{border-top:1px solid #bca47166;padding:15px 0;text-align:left}.calendar-event span,.calendar-event strong{display:block}.calendar-event span{font-style:italic;color:#9e824e;font-size:17px}.calendar-event strong{font-size:17px;font-weight:500;margin-top:4px}.calendar-dialog p.calendar-timezone{font-size:14px;margin:8px 0 20px;color:#977f50}.calendar-option{display:block;text-decoration:none;border:1px solid #ac8e53;border-radius:4px;min-height:48px;padding:11px 15px;margin-top:10px;text-align:center;font-size:17px;width:100%;background:var(--navy);color:var(--ivory)}.calendar-option:last-child{background:transparent;color:#8a6f3b}.scroll-reveal{opacity:1;transform:none}.is-open .scroll-reveal.awaiting-reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.is-open .scroll-reveal.is-visible{opacity:1;transform:none}.no-js-note{position:fixed;z-index:100;left:20px;right:20px;bottom:20px;padding:20px;font-size:18px;text-align:center}
@media(min-width:1400px){.hero{padding-top:90px}.book-mount{width:610px}.story-route{width:1040px}}
@media(max-width:700px){body{font-size:17px}.site-header{height:56px;padding-inline:20px}.passport-entry{--open-scale:.65;padding:72px 10px 34px;gap:18px}.passport-stage{width:min(620px,148vw)}.passport-action .pill{font-size:19px;min-width:270px}.passport-action p{font-size:12px}.hero{padding:54px 16px 52px}.hero .eyebrow{font-size:12px;letter-spacing:.15em}.countdown{font-size:12px;gap:12px;margin-bottom:20px}.countdown b{font-size:19px}.hero-compass{width:32px;height:32px}.names{font-size:clamp(57px,13.5vw,88px);line-height:1.1}.names span+span{margin-top:10px}.names i{margin-right:0}.name-divider{margin-top:20px}.adventure-line{font-size:23px}.date-line{font-size:13px;letter-spacing:.15em}.book-mount{width:min(470px,96vw);margin-top:22px;margin-inline:calc((100% - min(470px,96vw)) / 2)}.hero-welcome{font-size:17px;max-width:310px;margin:24px auto}.scroll-down{min-width:220px;font-size:19px}.story{padding:48px 16px 54px}.script-heading{font-size:58px}.eyebrow{font-size:12px}.italic-copy{font-size:18px}.story-route{height:1060px;margin-top:28px}.story-stop{gap:19px;align-items:center;min-height:280px}.stop-left{padding-right:0;justify-content:space-between}.stop-right{padding-left:0;justify-content:space-between}.photo-frame{width:49%;padding:8px 8px 1px}.photo-frame figcaption{font-size:24px;line-height:1.8}.story-copy{max-width:46%;padding:12px 2px}.story-copy .eyebrow{font-size:11px;letter-spacing:.1em}.story-copy h3{font-size:27px;margin:8px 0 12px}.story-copy p:last-child{font-size:16px;line-height:1.55}.story-stop:nth-of-type(1){top:30px}.story-stop:nth-of-type(2){top:380px}.story-stop:nth-of-type(3){top:730px}.photo-placeholder small{font-size:11px}.photo-placeholder>span:not(.placeholder-heart):not(.placeholder-monogram){font-size:10px;letter-spacing:.09em}.placeholder-monogram{font-size:39px}.photo-placeholder>svg{width:38px;height:38px}.travelling-plane{width:28px;height:28px}.destinations{padding:54px 20px 0}.serif-heading{font-size:33px;letter-spacing:.1em}.destinations .italic-copy{font-size:17px}.destination-route{padding-left:22px;margin-top:28px}.destination-path{width:18px;left:-9px}.destination-plane{width:26px;height:26px;left:-8px}.venue-ticket{min-height:290px;grid-template-columns:1.22fr 1fr}.ticket-copy{padding:23px 8px 23px 19px}.ticket-kicker{font-size:11px;letter-spacing:.1em}.small-journey{font-size:11px}.ticket-copy h3{font-size:27px;line-height:1.13}.ticket-time{font-size:11px;letter-spacing:.025em}.ticket-rule{font-size:20px;max-width:140px;margin-block:13px}.venue-address{font-size:13px;line-height:1.45}.map-link{font-size:11px;letter-spacing:.075em;gap:8px}.map-link span{font-size:18px}.venue-illustration{min-height:290px}.attire{padding:58px 6px 54px}.attire .script-heading{font-size:49px;line-height:1.16}.attire p:not(.eyebrow){font-size:17px}.attire p.attire-formal{font-size:12px}.attire p.bride-note{font-size:21px}.attire .eyebrow{font-size:11px}.celebration-copy{font-size:18px}.coastline-art{height:125px;width:calc(100% + 40px);margin-left:-20px;margin-top:15px;background-size:cover;background-position:center 70%}.celebration-footer{font-size:17px;line-height:1.5;max-width:260px;margin:25px auto 0}.rsvp{padding:45px 18px 26px}.rsvp .form-intro{font-size:16px}.boarding-ticket{grid-template-columns:minmax(0,1fr) 89px;margin-top:28px}.boarding-main{padding:21px 17px 19px}.boarding-main>.ticket-kicker{font-size:10px;letter-spacing:.08em}.ticket-plane-art{height:120px;background-size:178% auto;background-position:20% 71.3%;margin-block:3px 10px}.ticket-names{font-size:17px;letter-spacing:.06em;line-height:1.45}.boarding-details{gap:2px;grid-template-columns:1fr}.boarding-details p{font-size:10px;letter-spacing:.065em}.boarding-stub{padding:23px 8px;justify-content:flex-start;gap:23px}.boarding-stub .ticket-kicker{font-size:10px;letter-spacing:.06em;line-height:1.55;margin:0}.stub-globe{width:45px;height:45px;margin:10px auto}.pending-copy{font-size:20px}.boarding-stub small{font-size:12px}.confirmed-stamp p,.declined-stamp p{font-size:12px;letter-spacing:.08em;line-height:1.9}.barcode{width:58px;height:56px;margin:30px auto 0}.stub-flight{font-size:9px;letter-spacing:.03em}.passenger-label{font-size:10px;letter-spacing:.06em;margin-top:21px}.name-fields{gap:10px}.name-fields label{font-size:12px}.name-fields input{font-size:16px;padding:8px 4px}.guest-names-label{font-size:12px;margin-top:15px}.guest-names-label small{font-size:10px;line-height:1.5}.guest-names-label textarea{font-size:16px;padding:9px 4px}.reply-buttons{grid-template-columns:1fr;gap:9px;margin-top:20px}.reply-button{min-height:45px;font-size:16px}.rsvp-response h4{font-size:35px}.rsvp-response p{font-size:16px}.boarding-notes p{font-size:17px;line-height:1.65}.boarding-notes .rsvp-deadline{font-size:19px}.boarding-notes .reservation-note{font-size:15px}.boarding-notes .final-destination{font-size:19px}.awaiting-you{font-size:28px;line-height:1.45;margin-inline:12px}.calendar-button{font-size:12px;padding:14px 23px}.closing{padding-inline:4px;margin-top:32px}.closing-monogram{font-size:72px}.closing>p:not(.closing-monogram){font-size:18px}.closing p.closing-small{font-size:13px}.calendar-dialog{padding-inline:25px}.calendar-dialog .script-heading{font-size:45px}}
@media(max-width:350px){.names{font-size:51px}.story-copy h3{font-size:23px}.ticket-copy h3{font-size:24px}.boarding-ticket{grid-template-columns:minmax(0,1fr) 80px}.boarding-main{padding-inline:13px}.ticket-names{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.scroll-reveal,.is-open .scroll-reveal.awaiting-reveal{opacity:1;transform:none}}

@media(max-width:700px){.ticket-time{font-size:13px}.ticket-kicker,.small-journey,.map-link{font-size:12px}.venue-address{font-size:14px}.boarding-details p{font-size:12px}.passenger-label{font-size:12px}.name-fields label,.guest-names-label{font-size:14px}.guest-names-label small{font-size:12px}.boarding-main>.ticket-kicker{font-size:12px}.stub-flight{font-size:11px}.story-copy .eyebrow{font-size:12px}}

.envelope-intro{position:fixed;inset:0;z-index:9999;background:#0b2131;opacity:1;transition:opacity 900ms cubic-bezier(.4,0,.2,1)}.envelope-intro video{width:100%;height:100%;object-fit:cover;display:block;transition:opacity 450ms ease}.envelope-intro.is-fading video{opacity:0}.envelope-intro.is-fading{opacity:0;pointer-events:none;transition:opacity 700ms cubic-bezier(.4,0,.2,1) 250ms}.envelope-tap{position:absolute;inset:0;width:100%;border:0;padding:0 0 max(9vh,calc(env(safe-area-inset-bottom) + 40px));background:transparent;display:flex;align-items:flex-end;justify-content:center;cursor:pointer}.envelope-hint{font-family:var(--serif);font-size:15px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:#e9d6a8;padding:12px 26px 12px 30px;border:1px solid #bf975a99;border-radius:999px;background:#081423b3;text-shadow:0 1px 6px #000a;animation:envelope-hint 2.4s ease-in-out infinite;transition:opacity .4s}.envelope-intro.is-opening .envelope-hint{opacity:0;animation:none}.envelope-tap:focus-visible{outline:none}.envelope-tap:focus-visible .envelope-hint{outline:2px solid var(--gold);outline-offset:4px}@keyframes envelope-hint{50%{opacity:.55}}html.intro-active,html.intro-active body{overflow:hidden}
.has-envelope .passport-action .pill{visibility:hidden}
.ticket-plane-art{background:url('assets/art/boarding-plane.webp') center/contain no-repeat;mix-blend-mode:multiply}.ticket-plane-art svg{display:none}
.coastline-art{display:none}.has-envelope .passport-entry{min-height:100vh;min-height:100svh}
.passport-stage .right-page{transform:translateZ(-1px)}
.reserved-for{margin:20px 0 0;font-size:13px;letter-spacing:.1em;color:#8e784b}
.reserved-for strong{color:#433a2a;font-weight:600;letter-spacing:.06em}
.party-fields{display:grid;grid-template-columns:minmax(0,170px) 1fr;gap:17px;margin-top:16px;align-items:start}
.party-fields .guest-names-label{margin-top:0}
.party-fields select{width:100%;border:0;border-bottom:1px solid #aa925b88;border-radius:0;background:#f9f2df70;color:#433a2a;padding:9px 10px;min-height:44px;margin-top:4px;font-family:var(--serif);font-size:18px}
@media(max-width:700px){.reserved-for{font-size:11px;letter-spacing:.06em}.party-fields{grid-template-columns:1fr;gap:10px}.party-fields select{font-size:16px}}
.color-note{margin:30px auto 0;max-width:600px;padding:30px 26px 26px;border:1px solid #c9ad7640;border-radius:3px;background:linear-gradient(180deg,#ffffff08,#ffffff02);position:relative}
.color-note:before,.color-note:after{content:'';position:absolute;left:50%;width:46px;height:1px;background:#c9ad76;transform:translateX(-50%)}
.color-note:before{top:-1px}.color-note:after{bottom:-1px}
.attire p.color-note-title{font-family:var(--script);font-size:40px;line-height:1.15;color:#d1b984;margin:0 0 10px}
.attire p.color-note-intro{font-size:18px;font-style:italic;margin:0 auto 24px;max-width:470px}
.color-swatches{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 auto;padding:0;max-width:520px}
.color-swatches li{display:flex;flex-direction:column;align-items:center;gap:7px}
.swatch{width:46px;height:46px;border-radius:50%;border:1px solid #c9ad76;box-shadow:0 0 0 4px #061d2d,0 0 0 5px #c9ad7655,0 6px 16px #0006}
.swatch-white{background:radial-gradient(circle at 35% 30%,#fff,#ece6d8)}
.swatch-blue{background:radial-gradient(circle at 35% 30%,#5b84c4,#24467e)}
.swatch-maroon{background:radial-gradient(circle at 35% 30%,#9a3a4a,#5a1522)}
.color-swatches strong{margin-top:6px;font-size:14px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:#e6d8b6}
.color-swatches small{font-size:16px;font-style:italic;line-height:1.35;color:#b8ad93}
.attire p.color-note-thanks{font-size:17px;font-style:italic;margin:26px auto 0;max-width:480px;color:#a99f86}
@media(max-width:700px){.color-note{padding:26px 12px 22px}.attire p.color-note-title{font-size:34px}.attire p.color-note-intro{font-size:16px}.color-swatches{gap:8px}.swatch{width:38px;height:38px}.color-swatches strong{font-size:12px;letter-spacing:.12em}.color-swatches small{font-size:14px}.attire p.color-note-thanks{font-size:15px}}
.story-copy .story-date{display:inline-block;margin:-6px 0 14px;padding:5px 2px;border-top:1px solid #b8995c66;border-bottom:1px solid #b8995c66;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#8e784b;font-weight:600}
@media(max-width:700px){.story-copy .story-date{font-size:11px;letter-spacing:.12em;margin:-4px 0 10px}}
.ticket-time{font-size:18px;color:#8a6a2c;letter-spacing:.06em}
.ticket-rule{color:#c49a4a}
.ticket-cross{width:20px;height:28px;flex:none;filter:drop-shadow(0 1px 0 #fff8)}
.boarding-details{color:#6f5c35}
.boarding-details p{font-size:16px}
@media(max-width:700px){.ticket-time{font-size:clamp(14px,4.3vw,16px);letter-spacing:.01em;white-space:nowrap}.ticket-cross{width:18px;height:25px}.boarding-details p{font-size:14px;letter-spacing:.07em}}
.names{font-size:clamp(90px,11.5vw,156px)}
.venue-address{font-weight:700;color:#5f5038}
@media(max-width:700px){.names{font-size:clamp(60px,18.6vw,108px)}.venue-address{font-size:15px}}
