@font-face{font-family:Instrument;src:url('assets/serif.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Instrument;src:url('assets/serif-italic.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:DM;src:url('assets/sans.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#f6f3df;--butter:#f4e8a5;--green:#365342;--sage:#c5d4ac;--muted:#65715c;--line:rgba(54,83,66,.2);--serif:Instrument,Georgia,serif;--sans:DM,'Helvetica Neue',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--green);font-family:var(--sans);-webkit-font-smoothing:antialiased}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.4' filter='url(%23n)'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.3}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:8px}button{cursor:pointer}button:disabled{cursor:default}[hidden]{display:none!important}.svg-library{width:0;height:0;position:absolute;overflow:hidden}.airmail-edge{height:7px;background:repeating-linear-gradient(125deg,#aebf96 0px,#aebf96 24px,var(--paper) 24px,var(--paper) 38px,#e8d78b 38px,#e8d78b 62px,var(--paper) 62px,var(--paper) 76px)}
.masthead{height:101px;max-width:1320px;margin:auto;padding:0 52px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit;font-size:12px;font-weight:600;letter-spacing:2.2px;line-height:1.5}.wordmark>svg{width:35px;height:35px;stroke-width:1}.wordmark-sub{display:block;font-size:7px;letter-spacing:1.65px;font-weight:450}.header-note{font-size:9px;letter-spacing:1.8px;display:flex;align-items:center;gap:24px}.header-note span{font-size:23px;font-weight:300}
.arrival{max-width:1100px;margin:0 auto;min-height:calc(100svh - 108px);padding:44px 32px 20px;display:flex;align-items:center;flex-direction:column;position:relative}.intro{text-align:center;position:relative;z-index:1;transition:opacity .18s ease,transform .18s ease}.is-unsealing .intro{opacity:0;transform:translateY(-8px)}.is-unsealing .margin-note,.is-unsealing .open-hint{opacity:0;transition:opacity .18s ease}.is-unsealing .envelope{animation:envelope-depart .22s .78s ease both}@keyframes envelope-depart{from{opacity:1}to{opacity:0}}.eyebrow{font-size:9px;letter-spacing:2.4px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 20px}.tiny-dot{height:5px;width:5px;border-radius:50%;background:#80956b;display:inline-block}h1{font-family:var(--serif);font-size:clamp(62px,7.1vw,98px);font-weight:400;line-height:.95;letter-spacing:-2.3px;margin:0}h1 em{font-weight:400}.intro-copy{font-size:12px;color:var(--muted);margin:22px 0 0;letter-spacing:.2px}.envelope-stage{position:relative;width:min(100%,760px);display:flex;align-items:center;flex-direction:column;padding-top:52px;padding-bottom:36px}.envelope{width:min(490px,88%);aspect-ratio:1.71;position:relative;border:0;background:none;padding:0;isolation:isolate;transform:rotate(-4deg);transition:transform .45s ease,filter .45s;filter:drop-shadow(0 23px 18px rgba(71,79,48,.16));perspective:1000px}.envelope:hover{transform:rotate(-2deg) translateY(-6px);filter:drop-shadow(0 28px 22px rgba(71,79,48,.19))}.envelope-back{position:absolute;inset:0;border-radius:6px;background:#a9bb91;z-index:0}.insert{position:absolute;width:83%;height:82%;left:8.5%;top:-10px;background:#fffbeb;border:1px solid #e5e0c8;transform:rotate(2deg);border-radius:4px;padding:24px 0;display:grid;justify-items:center;align-content:start;z-index:1;transition:transform .55s .2s}.insert svg{width:40px;height:40px;opacity:.38}.envelope-side{position:absolute;inset:0;z-index:3}.side-left{clip-path:polygon(0 0,55% 59%,0 100%);background:#c8d5b2}.side-right{clip-path:polygon(100% 0,45% 59%,100% 100%);background:#c1d0a9}.envelope-bottom{position:absolute;inset:0;background:linear-gradient(170deg,#d0dbb9,#c4d2ae);clip-path:polygon(0 100%,0 98%,50% 43%,100% 98%,100% 100%);border-radius:0 0 6px 6px;z-index:4}.envelope-flap{position:absolute;inset:-1px 0 auto;height:62%;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(170deg,#d7dfc3,#b9cba2);transform-origin:top;backface-visibility:visible;z-index:5;transition:transform .65s ease,z-index 0s .3s}.envelope-print{position:absolute;inset:22px 24px;display:flex;justify-content:space-between;align-items:flex-start;z-index:6;pointer-events:none}.mail-label{font-size:7px;letter-spacing:1.2px;border:1px solid rgba(54,83,66,.45);padding:5px 7px;transform:rotate(-1deg);line-height:1.6;color:#4d634b}.mail-label span{display:block;font-size:5px;letter-spacing:1px}.postmark{height:62px;width:51px;background:var(--paper);outline:1px dashed var(--paper);outline-offset:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transform:rotate(7deg)}.postmark svg{height:29px;width:29px;stroke-width:.9}.postmark span{font-size:5px;letter-spacing:.5px}.seal{position:absolute;width:66px;height:66px;border:1px solid #ddce8a;border-radius:50%;background:var(--butter);box-shadow:inset 0 0 0 5px #f2e5a2,inset 0 0 0 6px #e5d595,0 3px 6px #65794c20;left:calc(50% - 33px);top:calc(53% - 33px);z-index:7;display:grid;place-items:center;transition:opacity .3s,transform .35s}.seal svg{width:30px;height:30px;stroke-width:1.2;transform:rotate(10deg)}.open-label{position:absolute;bottom:31px;left:0;right:0;z-index:7;display:flex;align-items:center;justify-content:center;gap:13px;font-size:12px;font-weight:500;letter-spacing:.3px}.open-label svg{width:17px;height:17px;transition:transform .3s}.envelope:hover .open-label svg{transform:translateX(4px)}.open-hint{margin-top:32px;font-size:7px;letter-spacing:2.3px;color:var(--muted)}.route-doodle{position:absolute;width:185px;left:-35px;top:70px;color:#92a37e;z-index:-1;stroke-width:1;stroke-dasharray:4 6}.route-arrow{stroke-dasharray:none}.margin-note{position:absolute;right:-6px;top:98px;font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.2;transform:rotate(9deg);color:#6e805c}.arrival-footer{margin-top:auto;width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:20px;font-size:7px;letter-spacing:1.6px;color:var(--muted)}.arrival-footer svg{width:20px;height:20px}.is-opening,.is-opening:hover{transform:rotate(0deg) translateY(10px);pointer-events:none}.is-opening .seal{opacity:0;transform:scale(.6)}.is-opening .envelope-flap{transform:rotateX(180deg);z-index:0}.is-opening .insert{transform:translateY(-105px) rotate(0)}.is-opening .envelope-print,.is-opening .open-label{opacity:0;transition:opacity .25s}.noscript-note{text-align:center;font-size:13px}
.itinerary{max-width:1060px;margin:auto;text-align:center;padding:47px 40px 25px;animation:arrive .9s ease both}.reveal-intro h1{font-size:clamp(57px,6.6vw,88px);line-height:1.04}.reveal-intro .eyebrow{margin-bottom:21px}.reveal-copy{font-size:13px;line-height:1.9;color:var(--muted);margin:21px 0 0}.boarding-pass{display:flex;text-align:left;width:100%;max-width:920px;margin:40px auto 0;border-radius:12px;background:#f1e7ae;box-shadow:0 14px 33px #5d684616;transform:rotate(-1deg);position:relative;overflow:hidden}.pass-main{padding:24px 30px 18px;flex:1;min-width:0}.pass-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:15px;font-size:7px;letter-spacing:1.3px}.pass-header>span:first-child{display:flex;gap:8px;align-items:center;font-weight:600;font-size:9px}.pass-header svg{width:21px;height:21px}.flight-route{display:grid;grid-template-columns:1fr 65px 1.2fr;align-items:center;gap:15px;padding:27px 0 25px}.field-label{display:block;font-size:7px;font-weight:500;letter-spacing:1.4px;margin-bottom:8px}.flight-route strong{font-family:var(--serif);font-size:clamp(27px,3.2vw,39px);font-weight:400;line-height:1.1;white-space:nowrap}.airport-code{display:block;font-size:6px;letter-spacing:1.2px;margin-top:8px;opacity:.8}.flight-line{display:flex;gap:6px;align-items:center;padding-top:7px}.flight-line svg{width:25px;min-width:25px;height:25px;transform:rotate(23deg);stroke-width:1.2}.flight-line span{height:1px;flex:1;border-top:1px dashed #6c7e54}.pass-details{display:grid;grid-template-columns:1.2fr .8fr 1.1fr;gap:13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.pass-details strong{font-size:12px;font-weight:450}.pass-details>div:first-child strong{font-size:17px;font-weight:500}.pass-bottom{display:flex;justify-content:space-between;align-items:center;font-size:6px;letter-spacing:1px;padding-top:15px;gap:12px}.pass-bottom svg{height:16px;width:16px}.pass-stub{width:190px;flex-shrink:0;background:#cbd7b5;border-left:1px dashed #8d9d73;padding:25px 21px 17px;text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:13px}.pass-stub:before,.pass-stub:after{content:"";width:22px;height:22px;position:absolute;border-radius:50%;background:var(--paper);left:-11px}.pass-stub:before{top:-11px}.pass-stub:after{bottom:-11px}.stub-label{font-size:6px;letter-spacing:1.1px;line-height:1.8}.stub-mark{width:100px;height:100px;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid #7e9168;border-radius:50%;outline:1px solid #7e9168;outline-offset:4px;transform:rotate(-12deg)}.stub-mark svg{height:29px;width:29px;stroke-width:1}.stub-mark>span{font-family:var(--serif);font-size:18px;line-height:1.15;margin-top:3px}.stub-mark em{font-size:20px}.stub-date{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:500}.barcode{width:100%;height:27px;background:repeating-linear-gradient(90deg,var(--green) 0px,var(--green) 2px,transparent 2px,transparent 4px,var(--green) 4px,var(--green) 5px,transparent 5px,transparent 8px,var(--green) 8px,var(--green) 12px,transparent 12px,transparent 14px);opacity:.8}.stub-fine{font-size:5px;letter-spacing:1.1px}.closing-note{font-family:var(--serif);font-size:33px;line-height:1.15;margin:36px 0 16px}.sign-off{font-size:10px;letter-spacing:.5px;color:var(--muted);margin:0}.back-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 1px 5px;margin-top:27px;font-size:10px;color:var(--muted)}.back-button:hover{color:var(--green);border-color:var(--green)}.back-button>span{font-size:17px}.reveal-footer{border-top:1px solid var(--line);padding-top:22px;margin:34px 0 0;font-size:7px;letter-spacing:1.8px;color:var(--muted);display:flex;gap:13px;align-items:center;justify-content:center}.reveal-footer svg{width:13px;height:13px}.photo-card{width:min(400px,calc(100% - 18px));margin:38px auto 0;padding:12px 12px 18px;background:#fffcf0;box-shadow:0 6px 20px #36534216;transform:rotate(2deg)}.photo-card img{display:block;width:100%;height:auto}.photo-card figcaption{font-family:var(--serif);font-size:24px;font-style:italic;margin-top:14px}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:20}.confetti i{position:absolute;left:var(--left);top:-25px;width:7px;height:12px;background:#acbf94;animation:fall var(--duration) var(--delay) ease-in both}.confetti .piece-1{background:#e8cf73;width:6px;height:6px;border-radius:50%}.confetti .piece-2{background:#d7dcb9;width:5px;height:13px}@keyframes arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes fall{0%{transform:translateY(-20px) rotate(0);opacity:0}10%{opacity:.85}85%{opacity:.8}100%{transform:translate(var(--drift),105vh) rotate(var(--rotation));opacity:0}}
@media(min-width:1500px){.arrival{padding-top:64px}.envelope-stage{padding-top:68px;padding-bottom:45px}.envelope{width:530px}}
@media(max-width:900px){.masthead{margin:0 28px;padding:0 8px;height:88px}.arrival{min-height:calc(100svh - 95px);padding-top:47px}.route-doodle{left:0;width:135px;top:80px}.margin-note{right:-3px;font-size:18px;top:114px}.envelope-stage{max-width:650px}.envelope{width:min(460px,82%)}.boarding-pass{max-width:800px}.pass-main{padding:21px}.pass-stub{width:156px;padding:22px 15px 16px}.flight-route{grid-template-columns:1fr 38px 1.2fr;gap:10px}.flight-route strong{font-size:30px}.pass-header>span:last-child{font-size:6px;letter-spacing:.7px}.pass-details{gap:10px}.pass-details strong{font-size:10px}}
@media(max-width:600px){.masthead{height:78px;margin:0 22px;padding:0}.wordmark{font-size:10px;gap:8px;letter-spacing:1.5px}.wordmark>svg{width:29px;height:29px}.wordmark-sub{font-size:6px;letter-spacing:1.05px}.header-note{font-size:7px;letter-spacing:.8px;gap:8px}.header-note span{font-size:19px}.arrival{min-height:calc(100svh - 85px);padding:45px 22px 22px;justify-content:flex-start}.eyebrow{font-size:7px;letter-spacing:1.7px;gap:7px;margin-bottom:21px}h1{font-size:70px;letter-spacing:-1.8px}.intro-copy{font-size:11px;margin-top:20px}.envelope-stage{padding-top:60px;padding-bottom:47px;flex:1;justify-content:center;min-height:285px;max-height:370px;width:100%}.envelope{width:94%;max-width:390px}.envelope:hover{transform:rotate(-4deg)}.envelope-print{inset:16px 18px}.mail-label{font-size:6px}.mail-label span{font-size:4px}.postmark{width:39px;height:47px}.postmark svg{width:23px;height:23px}.postmark span{font-size:4px}.seal{height:56px;width:56px;left:calc(50% - 28px);top:calc(53% - 28px)}.seal svg{width:25px;height:25px}.open-label{bottom:23px;font-size:11px;gap:9px}.open-label svg{width:15px;height:15px}.open-hint{margin-top:27px;font-size:6px;letter-spacing:1.8px}.margin-note{display:none}.route-doodle{width:85px;left:-16px;top:17px}.arrival-footer{font-size:5px;letter-spacing:.8px;gap:9px;padding-top:17px}.arrival-footer svg{width:15px;height:15px;flex-shrink:0}.itinerary{padding:38px 22px 22px}.reveal-intro .eyebrow{font-size:6px;letter-spacing:1.6px}.reveal-intro h1{font-size:55px;letter-spacing:-1.7px;line-height:1.04}.reveal-copy{font-size:11px;line-height:1.9;margin-top:21px}.boarding-pass{margin-top:30px;flex-direction:column;transform:rotate(-1deg);max-width:440px}.pass-main{padding:19px 20px 16px}.pass-header{font-size:6px;padding-bottom:13px}.pass-header>span:first-child{font-size:8px;gap:5px}.pass-header svg{width:17px;height:17px}.pass-header>span:last-child{font-size:5px}.flight-route{grid-template-columns:1fr 30px 1.2fr;gap:9px;padding:23px 0}.flight-route strong{font-size:29px}.field-label{font-size:6px;letter-spacing:1px;margin-bottom:8px}.airport-code{font-size:5px;letter-spacing:.65px;margin-top:7px}.flight-line svg{width:21px;min-width:21px;height:21px}.pass-details{grid-template-columns:1.2fr .8fr 1.15fr;padding:16px 0;gap:8px}.pass-details strong{font-size:9px}.pass-details>div:first-child strong{font-size:14px}.pass-bottom{font-size:5px;letter-spacing:.5px;padding-top:13px}.pass-bottom svg{width:14px;height:14px}.pass-stub{width:100%;border-left:0;border-top:1px dashed #8d9d73;padding:16px 20px;display:grid;grid-template-columns:1fr 84px;gap:7px 13px;text-align:left;align-items:center}.pass-stub:before,.pass-stub:after{top:-11px;bottom:auto}.pass-stub:after{left:auto;right:-11px}.stub-label{font-size:6px;grid-column:1;grid-row:1}.stub-mark{display:none}.stub-date{grid-column:1;grid-row:2;font-size:13px}.barcode{grid-column:2;grid-row:1/3;height:31px}.stub-fine{grid-column:1/3;font-size:5px;margin-top:3px}.closing-note{font-size:32px;margin-top:30px}.sign-off{font-size:9px}.back-button{margin-top:24px}.reveal-footer{font-size:5px;letter-spacing:1px;gap:8px;margin-top:28px;padding-top:19px}.reveal-footer svg{height:11px;width:11px}.insert{padding:18px 0}.insert svg{width:34px;height:34px}}
@media(min-width:801px) and (max-width:900px){.margin-note{right:-40px}}
@media(max-width:800px){.margin-note{display:none}}
@media(max-width:360px){.arrival{padding-left:18px;padding-right:18px}h1{font-size:62px}.header-note{font-size:6px}.reveal-intro h1{font-size:47px}.itinerary{padding-left:16px;padding-right:16px}.flight-route strong{font-size:26px}.pass-main{padding-left:16px;padding-right:16px}.pass-details strong{font-size:8px}.pass-details>div:first-child strong{font-size:13px}.arrival-footer{font-size:4.5px}.intro-copy{font-size:10px}.envelope-stage{padding-top:49px;min-height:260px}.open-label{bottom:21px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.envelope:hover{transform:rotate(-4deg)}.confetti{display:none}}

html{background:#f6f3df}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
