:root{--paper:#f4ecdc;--paper-2:#efe5d1;--ink:#1f1a17;--red:#b23a2a;--red-deep:#8f2c1f;--muted:#6f655c;--display:"Libre Bodoni", "Times New Roman", serif;--text:"Montserrat", system-ui, sans-serif;--m:clamp(22px, 5.5vw, 88px);--gap:clamp(100px, 16vw, 220px)}*{box-sizing:border-box}html{background:var(--paper)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{color:var(--ink);background:var(--paper);font:400 17px/1.65 var(--text);-webkit-font-smoothing:antialiased;margin:0}body:before{content:"";pointer-events:none;z-index:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .3 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;position:relative}img{max-width:100%;display:block}p{margin:0 0 1em}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0;font-weight:400;line-height:1.04}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.button{cursor:pointer;background:var(--red);color:#fff;font:500 15px/1 var(--text);border:0;border-radius:999px;padding:20px 34px;transition:background .25s,transform .25s;display:inline-block}.button:hover:not(:disabled){background:var(--red-deep);transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:default}.button:focus-visible,a:focus-visible,input:focus-visible,.text-link:focus-visible{outline:2px solid var(--red);outline-offset:4px}.text-link{font:inherit;color:var(--ink);text-underline-offset:5px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.ink-photo{position:relative}.ink-photo>svg{width:100%;height:100%;position:absolute;inset:0}.print{position:relative}.print img{width:100%;height:auto}.print .print-key{filter:grayscale()brightness(1.7)contrast(3.2);mix-blend-mode:multiply}.print .print-colour{transition:transform .15s linear;position:absolute;inset:0}.wash{z-index:50;pointer-events:none;position:fixed;inset:0}.wash svg{width:100%;height:100%}.wash-blob{fill:var(--paper);transform-origin:50% 55%;transition:transform .8s cubic-bezier(.7,0,.3,1);transform:scale(0)}.wash-in .wash-blob{transform:scale(1)}.wash-out .wash-blob{transition-duration:.9s;transform:scale(0)}.wash-in,.wash-out{pointer-events:auto}.nav{z-index:5;padding:26px var(--m);align-items:center;gap:36px;display:flex;position:relative}.wordmark{font:italic 400 22px/1 var(--display);color:var(--ink);margin-right:auto;text-decoration:none}.nav ul{gap:30px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.nav a{color:var(--ink);text-decoration:none}.nav a[aria-current],.nav a:hover{text-underline-offset:6px;text-decoration:underline}.soon{opacity:.45;cursor:default}.nav-rsvp{color:var(--red);font-size:14px}.gate{grid-template-columns:1fr 1fr;align-items:center;min-height:100vh;display:grid;position:relative;overflow:hidden}.gate-copy{z-index:3;padding:0 var(--m) 16vh;max-width:640px;position:relative}.gate-title{max-width:7em;font-size:clamp(54px,7vw,104px);line-height:1}.gate-form{gap:12px;max-width:520px;margin-top:44px;transition:opacity .4s;display:flex}.gate-form input{min-width:0;font:400 17px/1 var(--text);color:var(--ink);background:#fffaf0bf;border:0;border-radius:999px;flex:1;padding:19px 26px}.gate.wrong .gate-form input{animation:.4s shake}@keyframes shake{25%{transform:translate(-7px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.gate-error{min-height:1.6em;color:var(--red);margin:14px 0 0 26px;font-size:15px}.gate-help{color:var(--muted);margin-left:26px;font-size:15px}.gate-photo{z-index:1;width:46vw;height:92vh;position:absolute;top:4vh;right:2vw}.gate-lotus{z-index:2;width:min(16vw,230px);position:absolute;bottom:3vh;right:1vw}.gate-thread{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gate-thread path{fill:none;stroke:var(--red);stroke-width:2.2px;stroke-linecap:round}.gate-band{z-index:2;width:min(21vw,300px);transition:transform 1.5s cubic-bezier(.5,0,.7,.3);animation:1.1s ease-in-out infinite alternate bob;position:absolute;bottom:2vh;left:4vw}.gate.unfolding .gate-band{transform:translate(110vw)}.gate.unfolding .gate-photo,.gate.unfolding .gate-lotus{opacity:0;transition:opacity 1.2s .3s}@keyframes bob{0%{translate:0}to{translate:0 -4px}}.reveal{min-height:calc(100vh - 90px);padding:0 var(--m);grid-template-columns:1.05fr 1fr;align-items:center;gap:2vw;display:grid}.reveal h1{max-width:9em;font-size:clamp(46px,5.6vw,86px)}.reveal-note{max-width:33em;margin-top:36px}.reveal-note .button{margin:12px 0 30px}.tagline{font:italic 400 22px/1.4 var(--display)}.reveal-parasol{height:min(84vh,760px);position:relative}.parasol{cursor:grab;touch-action:pan-y;position:absolute;inset:0}.parasol:active{cursor:grabbing}.reveal-parasol>.print{width:80%;margin:0 auto}.hint{text-align:right;color:var(--muted);margin:0;font-size:14px;position:absolute;bottom:4%;right:0}.strip{height:34vh;min-height:280px;position:relative;overflow:hidden}.strip-row{will-change:transform;align-items:flex-end;gap:2vw;display:flex;position:absolute;bottom:6vh;left:0}.walker{animation:.9s ease-in-out infinite alternate bob}.w-band{width:min(30vw,440px)}.w-trays{width:min(32vw,470px);animation-delay:.3s}.w-grooms{width:min(22vw,320px);animation-delay:.15s}.teaser{padding:8vh var(--m) var(--gap);grid-template-columns:1fr 1fr;align-items:center;gap:6vw;display:grid}.teaser-art{justify-self:end;width:100%;max-width:520px}.teaser h2{max-width:11em;margin-bottom:20px;font-size:clamp(36px,4vw,60px)}.teaser .button{margin-top:18px}.story-body{padding:0 var(--m) 12vh;position:relative}.thread{z-index:1;pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.chapter{margin-top:var(--gap);position:relative}.chapter>*,.chapter .photo-stage{z-index:2;position:relative}.thread-start{width:1px;height:1px;margin-top:36px;display:block}.ink-photo,.photo-stage{z-index:2}.print{z-index:3}.year{font:400 clamp(110px, 17vw, 260px)/.85 var(--display);letter-spacing:-.05em;z-index:2;margin:0;display:inline-block;position:relative}.moment{opacity:0;z-index:3;max-width:30em;transition:opacity 1s,transform 1s;position:relative;transform:translateY(18px)}.moment.in{opacity:1;transform:none}.moment h3{margin:24px 0 16px;font-size:clamp(30px,3vw,44px)}.intro{grid-template-columns:1fr 1fr;align-items:center;gap:5vw;min-height:82vh;margin-top:3vh;display:grid}.intro h1{font-size:clamp(72px,10vw,150px)}.lede{font:400 clamp(22px, 2.2vw, 30px)/1.4 var(--display);max-width:19em;margin-top:28px}.intro-photo{height:78vh}.intro-carp{width:min(15vw,210px);position:absolute;top:-2vh;right:-1vw}.c2016{grid-template-columns:1fr 1fr;align-items:end;gap:5vw;display:grid}.year-block{padding-top:20vw;position:relative}.sit-boba{width:min(30vw,400px);position:absolute;top:0;left:6%}.c2017{text-align:right}.c2017 .pair{text-align:left;grid-template-columns:1.1fr 1fr;align-items:center;gap:5vw;margin-top:4vw;display:grid}.pnw{max-width:520px}.cMay{grid-template-columns:1.4fr 1fr;align-items:center;gap:5vw;display:grid}.photo-stage{position:relative}.may-photo{aspect-ratio:3/2}.may-cher{width:42%;position:absolute;bottom:-14%;right:-10%}.c2024 .pair{grid-template-columns:1fr 1.2fr;align-items:center;gap:5vw;margin-top:4vw;display:grid}.c2024 .pair .photo-stage{order:2}.oct-photo{aspect-ratio:4/5;max-height:86vh}.oct-proposal{width:56%;position:absolute;bottom:-8%;left:-22%}.leaves{pointer-events:none;z-index:4;position:absolute;inset:-10vh 0 0;overflow:hidden}.leaves svg{opacity:0;width:26px;position:absolute;top:-40px}.leaves.falling svg{animation:linear infinite fall}@keyframes fall{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}to{opacity:0;transform:translate(60px,120vh)rotate(380deg)}}.c2028{text-align:right}.c2028 .photo-stage{text-align:left;margin-top:4vw}.hue-photo{aspect-ratio:3/2;width:82%;margin-left:auto}.hue-grooms{width:min(26vw,360px);position:absolute;bottom:-6%;left:0}.c2028 .moment{text-align:left;margin:5vw 0 0 auto}.finale{grid-template-columns:1fr 1.1fr;align-items:center;gap:5vw;min-height:90vh;display:grid}.finale h2{max-width:7.5em;font-size:clamp(52px,6.4vw,100px)}.finale-dates{color:var(--muted);margin-top:22px}.bow-anchor{width:200px;height:140px;margin:10px 0 16px 40px}.bow{width:100%;height:100%;overflow:visible}.bow path{fill:none;stroke:var(--red);stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1)}.bow.tied path{stroke-dashoffset:0}.bow.tied path+path{transition-delay:.9s}.soon-note{color:var(--muted);margin-top:12px;font-size:14px}.finale-photo{aspect-ratio:4/5;max-height:88vh}.finale-boat{width:38%;animation:7s ease-in-out infinite alternate drift;position:absolute;bottom:-6%;left:-16%}@keyframes drift{0%{translate:0;rotate:-2deg}to{translate:26px -8px;rotate:2deg}}.story-foot{text-align:center;z-index:3;margin-top:10vh;position:relative}@media (width<=860px){.nav ul{display:none}.gate{grid-template-columns:1fr;align-items:start}.gate-copy{padding-top:12vh;padding-bottom:2vh}.gate-photo{width:100%;height:62vh;margin-top:4vh;position:relative;top:auto;right:auto}.gate-form{flex-direction:column}.gate-band{width:52vw}.gate-lotus{width:30vw}.reveal,.teaser,.intro,.c2016,.c2017 .pair,.cMay,.c2024 .pair,.finale{grid-template-columns:1fr}.reveal-parasol{height:60vh}.w-band,.w-trays{width:70vw}.w-grooms{width:50vw}.teaser-art{justify-self:start}.intro-photo{height:60vh}.year-block{padding-top:48vw}.sit-boba{width:62vw}.c2024 .pair .photo-stage{order:0}.oct-proposal{width:52%;left:auto;right:-6%}.hue-photo{width:100%}.hue-grooms{width:44vw}.may-cher{width:46%;right:-2%}}@media (prefers-reduced-motion:reduce){.walker,.gate-band,.finale-boat{animation:none}.moment{opacity:1;transition:none;transform:none}}:root{--headline:"Cormorant Garamond", serif;--hw:400;--hls:-.015em;--hscale:1.08}[data-headline=cormorant]{--headline:"Cormorant Garamond", serif;--hw:400;--hls:-.015em;--hscale:1.1}[data-headline=bevietnam]{--headline:"Be Vietnam Pro", sans-serif;--hw:200;--hls:-.04em;--hscale:.92}[data-headline=garamond]{--headline:"EB Garamond", serif;--hw:400;--hls:-.025em;--hscale:1}[data-headline=fraunces]{--headline:"Fraunces", serif;--hw:300;--hls:-.03em;--hscale:.95}[data-headline=bodoni]{--headline:"Libre Bodoni", serif;--hw:400;--hls:-.02em;--hscale:1}.gate-title,.reveal h1,.teaser h2,.intro h1,.finale h2,.page-head h1,.event-title,.page-cta h2,.still h2,.stay-copy h2,.lede,.tagline{font-family:var(--headline);font-weight:var(--hw);letter-spacing:var(--hls)}.gate-title{font-size:calc(clamp(54px, 7vw, 104px) * var(--hscale))}.reveal h1{font-size:calc(clamp(46px, 5.6vw, 86px) * var(--hscale))}.intro h1,.page-head h1{font-size:calc(clamp(64px, 9vw, 140px) * var(--hscale));line-height:.98}.finale h2{font-size:calc(clamp(52px, 6.4vw, 100px) * var(--hscale))}.lede{font-size:calc(clamp(22px, 2.2vw, 30px) * var(--hscale))}.tagline{font-style:italic;font-size:calc(24px * var(--hscale))}[data-headline=bevietnam] .tagline{font-style:normal}.ribbon{fill:none;stroke:var(--red);stroke-width:9px;stroke-linecap:round;stroke-linejoin:round}.ribbon-sheen{fill:none;stroke:#e0786a;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;opacity:.6;mix-blend-mode:screen}.gate-thread .ribbon{stroke-width:9px}@media (width<=860px){.ribbon{stroke-width:6px}.bow path{stroke-width:6px!important}}.photo{z-index:2;position:relative}.photo .photo-inner{position:absolute;inset:0;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%}.photo-arch{border-radius:50% 50% 0 0/34% 34% 0 0;overflow:hidden}.photo-deckle .deckle-paper{filter:url(#deckle-edge);background:#fbf6ea;position:absolute;inset:-16px}.photo-deckle .photo-inner{inset:0}.photo-print img:first-child{filter:url(#duotone)contrast(1.05)}.photo-print .photo-colour{opacity:0;transition:opacity .8s;position:absolute;inset:0}.photo-print:hover .photo-colour{opacity:1}.gate-photo.photo{position:absolute}.gate-photo.photo-deckle{height:84vh;top:8vh}.design-panel{z-index:60;font-size:14px;position:fixed;bottom:18px;right:18px}.dp-toggle{background:var(--ink);color:var(--paper);font:500 13px/1 var(--text);cursor:pointer;float:right;border:0;border-radius:999px;padding:12px 18px}.dp-body{clear:both;background:#fffaf0;border-radius:18px;width:290px;margin-top:0;margin-bottom:10px;padding:18px 20px;position:absolute;bottom:52px;right:0;box-shadow:0 12px 40px #1f1a172e}.dp-body fieldset{border:0;margin:0 0 14px;padding:0}.dp-body legend{margin-bottom:8px;font-weight:500}.dp-body label{cursor:pointer;align-items:center;gap:10px;padding:5px 0;display:flex}.dp-body input{accent-color:var(--red)}.dp-body [data-font=cormorant]{font:400 19px/1 Cormorant Garamond}.dp-body [data-font=bevietnam]{font:300 16px/1 Be Vietnam Pro}.dp-body [data-font=garamond]{font:400 18px/1 EB Garamond}.dp-body [data-font=bodoni]{font:400 16px/1 Libre Bodoni}.nav ul a,.nav-rsvp{text-decoration:none}.nav-rsvp{border:1.5px solid var(--red);color:var(--red);border-radius:999px;padding:9px 18px}.nav-rsvp[aria-current]{background:var(--red);color:#fff}.page-body{padding:0 var(--m) 14vh;position:relative}.page-head{z-index:2;max-width:980px;padding-top:8vh;position:relative}.page-head .lede{max-width:24em;margin-top:26px}.page-cta,.still{z-index:2;text-align:center;margin:var(--gap) auto 0;max-width:680px;position:relative}.page-cta h2,.still h2{font-size:calc(clamp(38px, 4.4vw, 64px) * var(--hscale));margin-bottom:26px}.still p{margin-bottom:28px}.event{z-index:2;margin-top:var(--gap);grid-template-columns:1.15fr 1fr;align-items:center;gap:6vw;display:grid;position:relative}.event.flip .event-art{order:2}.event-art{min-height:40vh;position:relative}.event-photo{aspect-ratio:4/5;width:74%;max-height:82vh}.event.flip .event-photo{margin-left:auto}.event-figure{width:62%;position:absolute;bottom:-10%;right:-6%}.event.flip .event-figure{left:-6%;right:auto}.event-figure.solo{width:100%;position:relative;bottom:0;left:0;right:0}.day{font:400 clamp(90px, 12vw, 190px)/.85 var(--display);letter-spacing:-.05em;margin:0 0 18px;display:inline-block}.kicker{font:italic 400 22px/1.3 var(--display);margin:0 0 6px}.event-title{font-size:calc(clamp(44px, 5vw, 76px) * var(--hscale))}.event-date{color:var(--red);margin:10px 0 18px;font-weight:500}.details{gap:6px;margin:22px 0 0;display:grid}.details div{grid-template-columns:110px 1fr;gap:12px;display:grid}.details dt{font:400 18px/1.5 var(--display)}.details dd{margin:0}.sky{height:26vh;margin-top:2vh;position:relative;overflow:visible}.plane{width:min(30vw,420px);position:absolute;top:0;left:0}.tgrid{z-index:2;grid-template-columns:1fr 1fr;gap:5vw 6vw;margin-top:8vh;display:grid;position:relative}.tblock h3,.stay-copy h3{margin-bottom:14px;font-size:clamp(30px,3vw,44px)}.tblock a{color:var(--red)}.road{z-index:2;margin-top:var(--gap);align-items:flex-end;min-height:46vh;display:flex;position:relative;overflow:hidden}.grab{width:min(36vw,520px);position:absolute;top:0;left:0}.road-copy{max-width:30em;margin-left:auto;padding-bottom:4vh}.stay{z-index:2;margin-top:var(--gap);grid-template-columns:1fr 1.05fr;align-items:center;gap:6vw;display:grid;position:relative}.stay-art{position:relative}.stay-photo{aspect-ratio:3/2}.stay-boat{width:38%;animation:7s ease-in-out infinite alternate drift;position:absolute;bottom:-14%;right:-8%}.stay-copy h2{font-size:calc(clamp(44px, 5vw, 76px) * var(--hscale));margin-bottom:20px}.offer{background:#b23a2a12;border-radius:16px;padding:18px 22px}.small{color:var(--muted);font-size:15px}.qhead{grid-template-columns:1fr auto;align-items:end;gap:4vw;max-width:none;display:grid}.q-carp{width:min(20vw,260px)}.qa-list{z-index:2;max-width:860px;margin:8vh auto 0;position:relative}.qa{border-radius:18px;padding:4px 0}.qa+.qa{margin-top:6px}.qa summary{cursor:pointer;font:400 calc(26px * var(--hscale))/1.25 var(--headline);font-weight:var(--hw);letter-spacing:var(--hls);background:#fffaf099;border-radius:18px;justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;list-style:none;display:flex}.qa summary::-webkit-details-marker{display:none}.qa summary i{border-right:2px solid var(--red);border-bottom:2px solid var(--red);flex:none;width:14px;height:14px;margin-top:-6px;transition:transform .3s;transform:rotate(45deg)}.qa[open] summary i{margin-top:6px;transform:rotate(-135deg)}.qa p{max-width:40em;padding:6px 24px 18px}.rhead{grid-template-columns:1fr auto;align-items:end;gap:4vw;max-width:none;display:grid}.r-grooms{width:min(22vw,300px)}.rsvp-form{z-index:2;gap:30px;max-width:680px;margin:7vh auto 0;display:grid;position:relative}.field{border:0;gap:8px;margin:0;padding:0;display:grid}.field>label,.field legend{font:400 22px/1.3 var(--display);padding:0}.help{color:var(--muted);margin:0;font-size:15px}.field input,.field textarea,.count input{font:400 17px/1.4 var(--text);color:var(--ink);background:#fffaf0d9;border:1.5px solid #0000;border-radius:16px;width:100%;padding:16px 20px}.field textarea{resize:vertical}.has-error input,.has-error .choice,.has-error .check{border-color:var(--red)!important}.form-error{color:var(--red);font-weight:500}.choices{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.choices.col{flex-direction:column}.choice,.check{cursor:pointer;background:#fffaf0d9;border:1.5px solid #0000;border-radius:999px;align-items:center;gap:12px;padding:14px 20px;display:flex}.choice.on,.check.on{border-color:var(--red)}.choice input,.check input{accent-color:var(--red);width:18px;height:18px}.count{grid-template-columns:1fr 1fr;gap:12px;display:grid}.count label{gap:6px;font-size:15px;display:grid}.song-row{grid-template-columns:1fr 150px;align-items:end;gap:20px;display:grid}.song-cher{width:150px}.send{padding-top:8px}.send .button{width:100%}.rsvp-done{z-index:2;width:240px;height:170px;margin:6vh auto 0;position:relative}@media (width<=860px){.event,.tgrid,.stay,.qhead,.rhead{grid-template-columns:1fr}.event.flip .event-art{order:0}.event-photo{width:100%}.q-carp,.r-grooms{width:46vw}.song-row{grid-template-columns:1fr 90px}.song-cher{width:90px}.design-panel{bottom:10px;right:10px}}html,body{overflow-x:clip}.gate,.strip,.road,.sky,.leaves{overflow:visible}.strip{height:auto;min-height:0;padding:6vh 0 4vh}.strip-row{position:relative;bottom:auto}.leaves{inset:-20vh -5vw 0}.reveal-parasol{overflow:visible}.parasol{inset:-14% -22% -10%}.moment p,.moment h3,.event-copy p,.event-copy h2,.lede,.page-head h1,.intro h1,.finale h2,.tblock p,.tblock h3,.stay-copy p,.stay-copy h2,.still p,.still h2,.page-cta h2,.details,.kicker,.event-date,.help,.field>label,.field legend{text-shadow:0 0 2px var(--paper), 0 0 6px var(--paper), 0 0 12px var(--paper), 0 0 18px var(--paper)}.c2016{grid-template-columns:auto minmax(0,32em);justify-content:start;gap:3vw}.c2017 .pair,.c2024 .pair{gap:3.5vw}.cMay{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:3.5vw}.c2028 .moment{margin:3vw 0 0 auto}.finale,.teaser,.stay{gap:3.5vw}.event{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:3.5vw}.event-photo{width:82%}.road{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3.5vw;min-height:0;display:grid}.road-photo{aspect-ratio:4/5;grid-area:1/1;max-height:80vh}.road .road-copy{grid-area:1/2;margin:0;padding:0}.grab{z-index:4;width:min(30vw,440px);position:absolute;top:auto;bottom:-6%;left:0}.mar-photo{aspect-ratio:4/3}.c2017 .pair .photo-stage{position:relative}.c2017 .pnw{width:54%;max-width:none;position:absolute;bottom:-18%;right:0}.photo-stage{overflow:visible}@media (width<=860px){.nav{flex-wrap:wrap;gap:14px 18px;padding:18px 20px 8px}.nav ul{scrollbar-width:none;white-space:nowrap;order:3;gap:22px;width:100%;padding-bottom:6px;display:flex;overflow-x:auto}.nav ul::-webkit-scrollbar{display:none}.nav-rsvp{padding:7px 14px}.parasol{inset:-6% -8% -4%}.c2016,.road,.event{grid-template-columns:1fr}.road .road-copy,.road-photo{grid-area:auto/1}.grab{width:62vw;top:50vh;bottom:auto}.c2017 .pnw{width:60%;right:-4%}.event-photo{width:100%}.event-figure,.event.flip .event-figure{width:64%;left:auto;right:-4%}.day{font-size:96px}.moment,.event-copy{max-width:none}.gate-lotus{top:58vh;bottom:auto;right:2vw}.gate-band{margin:2vh 0 4vh 4vw;position:relative;bottom:auto;left:auto}.gate{padding-bottom:6vh}.strip-row{gap:4vw}.dp-body{width:min(290px,86vw)}.cMay,.finale,.teaser,.stay,.c2017 .pair,.c2024 .pair,.intro{grid-template-columns:1fr}.dp-toggle{padding:9px 14px;font-size:12px}}.site-foot{z-index:3;text-align:center;padding:12vh var(--m) 9vh;position:relative}.foot-name{font-family:var(--headline);font-weight:var(--hw);letter-spacing:var(--hls);font-size:calc(clamp(56px, 9vw, 130px) * var(--hscale));margin:0;line-height:1}.foot-meta{color:var(--muted);margin:18px 0 34px;font-size:15px}.site-foot ul{flex-wrap:wrap;justify-content:center;gap:14px 34px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.site-foot a{color:var(--ink);text-decoration:none}.site-foot a:hover,.site-foot a[aria-current]{text-underline-offset:6px;text-decoration:underline}@media (width<=860px){.site-foot ul{gap:12px 22px}.site-foot{padding-bottom:12vh}}:root,[data-headline=fraunces]{--headline:"Fraunces", serif;--hw:300;--hls:-.03em;--hscale:.96}[data-headline=prata]{--headline:"Prata", serif;--hw:400;--hls:-.025em;--hscale:.9}.lede{max-width:34em;line-height:1.65;font-family:var(--text)!important;letter-spacing:0!important;font-size:clamp(18px,1.45vw,21px)!important;font-weight:300!important}.qa summary{font-size:calc(24px * var(--hscale))}.dp-body [data-font=fraunces]{font:300 18px/1 Fraunces}.dp-body [data-font=prata]{font:400 17px/1 Prata}@media (width<=860px){.may-cher,.oct-proposal,.hue-grooms,.finale-boat,.event-figure,.event.flip .event-figure,.stay-boat,.c2017 .pnw,.intro-carp,.gate-lotus{max-width:340px;animation:none;display:block;width:64%!important;margin:-24% 0 0 auto!important;position:relative!important;inset:auto!important}.event.flip .event-figure,.oct-proposal{margin:-24% auto 0 0!important}.event-figure.solo{width:86%!important;margin:0 auto!important}.intro-carp{width:34%!important;margin:-18% 4% 0 auto!important}.gate-lotus{width:32%!important;margin:-30% 4% 0 auto!important}.event-art{min-height:0}.event-copy,.moment{margin-top:26px}.road .grab{margin:-20% 0 0 auto;width:72%!important;position:relative!important;inset:auto!important;transform:none!important}.road{gap:18px}.year-block{padding-top:54vw}.page .thread{display:none}.strip{padding:4vh 0 2vh}.w-band,.w-trays{width:58vw!important}.w-grooms{width:40vw!important}.chapter,.event{margin-top:90px}.page-head{padding-top:4vh}.design-panel{bottom:8px;right:8px}}:root,[data-figures=muted]{--fig-colour:.6}[data-figures=full]{--fig-colour:1}.may-cher{width:34%;bottom:-10%;right:-6%}.oct-proposal{width:44%;left:-14%}.hue-grooms{width:min(21vw,290px)}.finale-boat{width:30%;left:-10%}.event-figure{width:48%;bottom:-8%;right:-4%}.event.flip .event-figure{left:-4%}.c2017 .pnw{width:44%}.stay-boat{width:30%}.intro-carp{width:min(12vw,170px)}.gate-lotus{width:min(13vw,190px)}.sit-boba{width:min(26vw,350px)}@media (width<=860px){.may-cher,.oct-proposal,.hue-grooms,.finale-boat,.event-figure,.event.flip .event-figure,.stay-boat,.c2017 .pnw{max-width:280px;width:52%!important}}.photo-develop .photo-inner{transition:filter .2s linear}:root,[data-figures=muted],[data-figures=full]{--fig-colour:1}[data-figures=muted] .print .print-colour{filter:saturate(.48)sepia(.2)brightness(1.06)contrast(.94);mix-blend-mode:multiply}[data-figures=ink]{--fig-colour:0}[data-figures=ink] .print .print-key{filter:grayscale()brightness(2.3)contrast(5);opacity:1!important}:root{--fig-colour:1}.drawn{position:relative}.drawn .drawn-colour{opacity:0;clip-path:inset(100% 0 0);width:100%;height:auto;transition:opacity .9s 2.6s,clip-path 2s cubic-bezier(.55,0,.25,1) 2.6s;display:block}.drawn.go .drawn-colour{opacity:1;clip-path:inset(0)}.drawn .drawn-lines{pointer-events:none;width:100%;height:100%;transition:opacity 1s 4.8s;position:absolute;inset:0;overflow:visible}.drawn .drawn-lines path{fill:var(--ink);fill-opacity:0;stroke:var(--red);stroke-width:1.1px;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.1s cubic-bezier(.45, .05, .3, 1) calc(var(--d) * 1.5s), fill-opacity .9s ease 2.2s, stroke .9s ease 2.2s}.drawn.go .drawn-lines path{stroke-dashoffset:0;fill-opacity:1;stroke:var(--ink)}.drawn.go .drawn-lines{opacity:0}.drawn.instant .drawn-colour{opacity:1;clip-path:none;transition:none}.year,.day{letter-spacing:-.035em;font-family:Playfair Display,Libre Bodoni,serif;font-weight:400}:root,[data-figures]{--fig-colour:1}[data-figures] .print .print-colour{filter:none;mix-blend-mode:normal}.drawn .drawn-lines path{stroke-width:1.15px;transition:stroke-dashoffset 1.2s cubic-bezier(.45, .05, .3, 1) calc(var(--d) * 1.6s), stroke 1s ease 2s;fill-opacity:0!important}.drawn .drawn-lines path{stroke:var(--red)!important;transition:stroke-dashoffset .8s cubic-bezier(.45, .05, .3, 1) calc(var(--d) * .9s)!important}.drawn.go .drawn-lines path{stroke:var(--red)!important}.drawn .drawn-colour{clip-path:none!important;transition:opacity 1s 1.5s!important}.drawn.go .drawn-colour{opacity:1}.drawn .drawn-lines path{transition:stroke-dashoffset .8s cubic-bezier(.45, .05, .3, 1) calc(var(--s,0s) + var(--d) * .9s)!important}.drawn .drawn-colour{transition:opacity 1s ease calc(var(--s,0s) + 1.5s)!important}.drawn .drawn-lines{transition:opacity .7s ease calc(var(--s,0s) + 2.1s)!important}.festival-gate{height:100dvh;min-height:560px;position:relative;padding:0!important;display:block!important;overflow:hidden!important}.festival{background:var(--paper);touch-action:pan-y;position:absolute;inset:0;overflow:hidden}.festival.narrow{cursor:grab;touch-action:none}.festival .scene{transition:transform .25s ease-out;position:absolute;bottom:0;left:0}.festival .layer{will-change:transform;position:absolute}.festival .layer .print img{width:100%}.motion{transform-origin:50% 100%}@keyframes f-drift{0%{translate:-1.5%}to{translate:1.5%}}@keyframes f-breeze{0%{rotate:-.8deg}to{rotate:.8deg}}@keyframes f-sway{0%{rotate:-.6deg}to{rotate:.6deg}}@keyframes f-cheer{0%,to{translate:0}50%{translate:0 -1.2%}}@keyframes f-dragon{0%{translate:-1%;rotate:-1.2deg}50%{translate:1% -2%;rotate:1.2deg}to{translate:-1%;rotate:-1.2deg}}@keyframes f-lion{0%,to{translate:0;rotate:-2deg}50%{translate:0 -4%;rotate:2deg}}@keyframes f-walk{0%{translate:0}to{translate:0 -2.5%}}@keyframes f-hop{0%,70%,to{translate:0}80%{translate:0 -7%}90%{translate:0}}@keyframes f-crackle{0%,to{rotate:-1.5deg}50%{rotate:1.5deg}}@keyframes f-wave{0%{translate:-1%}to{translate:1%}}.m-drift{animation:14s ease-in-out infinite alternate f-drift}.m-breeze{animation:5s ease-in-out infinite alternate f-breeze}.m-sway{transform-origin:50% 0;animation:4s ease-in-out infinite alternate f-sway}.m-cheer{animation:1.4s ease-in-out infinite f-cheer}.m-dragon{animation:3.2s ease-in-out infinite f-dragon}.m-lion{animation:1s ease-in-out infinite f-lion}.m-walk{animation:.55s ease-in-out infinite alternate f-walk;animation-delay:calc(var(--i) * -.13s)}.m-hop{animation:2.6s ease-in-out infinite f-hop;animation-delay:calc(var(--i) * -.7s)}.m-crackle{transform-origin:50% 0;animation:.16s linear infinite f-crackle}.m-wave{animation:6s ease-in-out infinite alternate f-wave}.sparks{width:0;height:0;position:absolute;bottom:8%;left:50%}.sparks i{width:7px;height:7px;animation:1s ease-out infinite spark;animation-delay:calc(3.4s + var(--dl));opacity:0;background:#f2b534;border-radius:50%;position:absolute;box-shadow:0 0 6px #ffcf5a}.sparks i:nth-child(3n){background:#d63a2a}@keyframes spark{0%{transform:rotate(var(--a)) translateX(0) scale(1);opacity:1}to{transform:rotate(var(--a)) translateX(60px) scale(.2);opacity:0}}.confetti{pointer-events:none;z-index:150;position:absolute;inset:0}.confetti i{background:var(--red);opacity:0;width:9px;height:13px;animation:linear infinite confetti;position:absolute;top:-20px}.confetti i:nth-child(3n){background:#d9a441}@keyframes confetti{0%{opacity:0;transform:translateY(0)rotate(0)}8%{opacity:.9}to{opacity:0;transform:translateY(105vh)translate(40px)rotate(540deg)}}.festival.burst .motion{animation:.5s ease-out 2 f-jump!important}@keyframes f-jump{0%,to{translate:0}40%{translate:0 -6%}}.festival.burst .sparks i{animation-duration:.6s;animation-delay:0s!important}.festival.burst .confetti i{animation-duration:2.4s!important;animation-delay:0s!important}.banner{z-index:200;text-align:center;background:var(--red);color:#fdf3e2;border-radius:4px;min-width:min(560px,88vw);padding:18px 46px 20px;animation:1.2s cubic-bezier(.2,.8,.2,1) 3.1s both banner-in;position:absolute;top:max(3vh,18px);left:50%;transform:translate(-50%);box-shadow:0 10px 30px #781e1440}.banner:before,.banner:after{content:"";background:#7a2418;border-radius:7px;width:14px;position:absolute;top:-8px;bottom:-8px}.banner:before{left:-7px}.banner:after{right:-7px}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-30px)}to{opacity:1;transform:translate(-50%)}}.banner-names{font:italic 400 20px/1 var(--display);opacity:.9;margin:0 0 6px}.banner-title{font-family:var(--headline);font-weight:var(--hw);letter-spacing:var(--hls);font-size:calc(clamp(30px, 3.6vw, 52px) * var(--hscale));line-height:1.05}.banner-when{opacity:.85;margin:8px 0 0;font-size:13px}.seal{z-index:200;background:#fbf6eaf0;border-radius:999px;grid-template-columns:1fr auto;gap:10px;width:min(560px,92vw);padding:10px;animation:1s 3.4s both banner-in2;display:grid;position:absolute;bottom:max(4vh,18px);left:50%;transform:translate(-50%);box-shadow:0 10px 30px #1f1a1729}@keyframes banner-in2{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.seal input{font:400 17px/1 var(--text);color:var(--ink);background:0 0;border:0;min-width:0;padding:14px 18px}.seal input:focus-visible{outline:none}.seal:focus-within{box-shadow:0 0 0 2px var(--red), 0 10px 30px #1f1a1729}.seal .button{padding:16px 26px}.seal-msg{text-align:center;color:var(--muted);grid-column:1/-1;margin:0 0 4px;font-size:13px}.seal-msg.err{color:var(--red)}.festival-gate.wrong .seal{animation:.4s shake}.pan-hint{z-index:190;text-align:center;color:var(--ink);opacity:.7;margin:0;font-size:13px;animation:1s 4s both banner-in2;position:absolute;bottom:calc(max(4vh,18px) + 118px);left:0;right:0}@media (width<=860px){.festival .scene{transition:none;bottom:12vh}.banner{padding:14px 26px 16px}.seal{border-radius:24px;grid-template-columns:1fr}.seal .button{width:100%}}@media (prefers-reduced-motion:reduce){.motion,.sparks i,.confetti i,.banner,.seal{animation:none!important}}@media (width<=860px){.pan-hint{bottom:calc(max(4vh,18px) + 176px)}}.dragon-layer{pointer-events:none}.dragon{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dragon-sketch{fill:none;stroke:var(--red);stroke-width:2.2px;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.8s cubic-bezier(.45,.05,.3,1),opacity .8s 3.4s}.dragon.go .dragon-sketch{stroke-dashoffset:0;opacity:0}.dragon-reveal{fill:none;stroke:#fff;stroke-width:100px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 2s cubic-bezier(.45,.05,.3,1)}.dragon.go .dragon-reveal{stroke-dashoffset:0}.dragon-spine{animation:1.6s linear infinite slither}@keyframes slither{to{stroke-dashoffset:-76px}}.dragon-head,.dragon-tail{opacity:0;transition:opacity .7s}.dragon.go .dragon-head,.dragon.go .dragon-tail{opacity:1}.dragon-head-bob{transform-origin:0 0;transform-box:view-box;animation:2.4s ease-in-out infinite head-bob}@keyframes head-bob{0%,to{transform:rotate(-5deg)}50%{transform:rotate(6deg)}}@media (prefers-reduced-motion:reduce){.dragon-spine,.dragon-head-bob{animation:none}}@keyframes f-fly{0%{translate:0;rotate:-1deg}50%{translate:-3% -6%;rotate:1.5deg}to{translate:0;rotate:-1deg}}.m-fly{animation:7s ease-in-out infinite f-fly}body{font-size:17px;font-weight:300;line-height:1.72}p{max-width:36ch}.lede{font-family:var(--text)!important;max-width:34ch!important;font-weight:300!important}.moment p,.event-copy p,.tblock p,.stay-copy p,.qa p,.still p{max-width:38ch}.details dd,.help,.small{font-weight:300}strong{font-weight:500}.button{font-family:var(--text);font-weight:400}.festival-gate .festival{transform-origin:50% 40%;transition:transform 1.5s cubic-bezier(.7,0,.2,1),opacity .7s .85s}.festival-gate.zoom .festival{opacity:0;transform:scale(3.2)}.festival-gate.zoom .banner,.festival-gate.zoom .seal{opacity:0;transition:opacity .4s}.welcome2{animation:.9s both w-in;position:relative;overflow:clip}@keyframes w-in{0%{opacity:0}to{opacity:1}}.w-lanterns{z-index:1;pointer-events:none;height:0;position:absolute;inset:0 0 auto}.w-lantern{width:min(30vw,420px);position:absolute;top:-40px}.welcome2 .nav{z-index:3;position:relative}.rise{opacity:0;transition:opacity 1s,transform 1.2s cubic-bezier(.16,1,.3,1);transform:translateY(16px)}.rise.in{opacity:1;transform:none}.w-hero{z-index:2;text-align:center;padding:6vh var(--m) 10vh;flex-direction:column;align-items:center;display:flex;position:relative}.w-couple{width:min(220px,46vw);margin-bottom:18px}.w-title{font-family:var(--headline);font-weight:var(--hw);letter-spacing:var(--hls);font-size:calc(clamp(38px, 4.6vw, 66px) * var(--hscale));max-width:13ch;line-height:1.06}.w-note{margin-top:30px}.w-note p{max-width:34ch;color:var(--ink);margin:0 auto 1em}.w-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.button.ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);background:0 0}.button.ghost:hover{background:#1f1a170f}.w-days{z-index:2;padding:6vh var(--m) 12vh;max-width:1200px;margin:0 auto;position:relative}.w-days-head{grid-template-columns:1fr minmax(260px,420px);align-items:center;gap:4vw;display:grid}.w-days-title{font-family:var(--headline);font-weight:var(--hw);letter-spacing:var(--hls);font-size:calc(clamp(34px, 3.8vw, 56px) * var(--hscale));max-width:14ch;line-height:1.08}.w-parasol{height:min(48vh,420px);position:relative}.w-parasol .parasol{inset:-10% -14%}.w-parasol .hint{bottom:-4px;right:0}.w-day-list{grid-template-columns:repeat(3,1fr);gap:4vw;margin:6vh 0 0;padding:0;list-style:none;display:grid}.w-day-fig{align-items:flex-end;height:190px;display:flex}.w-day-fig .print{width:100%;max-width:260px}.w-day-date{color:var(--red);margin:18px 0 2px;font-weight:400}.w-day-date .day-num{color:var(--ink);letter-spacing:-.03em;margin-right:6px;font:400 44px/1 Playfair Display,serif}.w-day h3{font-family:var(--headline);font-weight:var(--hw);font-size:calc(30px * var(--hscale));margin:6px 0 4px}.w-day-line{color:var(--muted);margin:0}.w-days-more{margin-top:5vh}.w-teaser{z-index:2;padding:4vh var(--m) 10vh;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:4vw;max-width:1200px;margin:0 auto;display:grid;position:relative}.w-teaser-art .print{max-width:460px;margin-left:auto}.w-teaser-copy h2{font-family:var(--headline);font-weight:var(--hw);letter-spacing:var(--hls);font-size:calc(clamp(32px, 3.4vw, 50px) * var(--hscale));max-width:14ch;margin-bottom:16px;line-height:1.1}@media (width<=860px){.w-lantern{width:52vw;top:-24px}.w-lantern.l{left:-14vw}.w-lantern.r{right:-14vw}.w-hero{padding-top:14vh}.w-days-head,.w-day-list,.w-teaser{grid-template-columns:1fr}.w-parasol{height:46vh}.w-day-list{gap:48px}.w-day{text-align:center}.w-day-fig{justify-content:center}.w-teaser-art .print{max-width:320px;margin:0 auto}}.w-lanterns{top:78px}.w-lantern{width:min(22vw,320px);top:0}.w-lantern.l{left:-2vw}.w-lantern.r{right:-2vw}.site-foot p,.seal-msg,.banner p,.page-cta p,.still p,.w-days-more p{max-width:none}.still p{max-width:38ch;margin-left:auto;margin-right:auto}@media (width<=860px){.w-lanterns{top:96px}.w-lantern{width:40vw}.w-lantern.l{left:-12vw}.w-lantern.r{right:-12vw}}.ribbon,.gate-thread .ribbon{stroke-width:4px!important}.ribbon-sheen{display:none}.bow path{stroke-width:4px!important}@media (width<=860px){.ribbon,.bow path{stroke-width:3px!important}}.hscroll{margin:0;padding-top:16%;position:relative}.hs-string{background:linear-gradient(to top right,#0000 calc(50% - 1px),#5a3a22 50%,#0000 calc(50% + 1px)) 0/50% 100% no-repeat,linear-gradient(to top left,#0000 calc(50% - 1px),#5a3a22 50%,#0000 calc(50% + 1px)) 100%/50% 100% no-repeat;width:46%;height:18%;position:absolute;top:0;left:50%;transform:translate(-50%)}.hs-rod{z-index:2;background:#6b4428;border-radius:99px;height:0;margin:0 -9%;padding-top:7%;display:block;position:relative;box-shadow:inset 0 -2px #00000040}.hs-rod:before,.hs-rod:after{content:"";background:#3b2a1e;border-radius:3px;width:9%;height:140%;position:absolute;top:-20%}.hs-rod:before{left:0}.hs-rod:after{right:0}.hs-mount{clip-path:inset(0 0 100%);transition:clip-path 1.4s cubic-bezier(.55, 0, .25, 1) var(--s,0s);background:#b23a2a;padding:9% 9% 11%;box-shadow:inset 0 0 0 3px #d9a441,inset 0 0 0 6px #b23a2a,inset 0 0 0 7px #f2d27a}.hs-mount img{aspect-ratio:3/5;object-fit:cover;width:100%;display:block}.hs-rod.bottom{transition:transform 1.4s cubic-bezier(.55, 0, .25, 1) var(--s,0s);transform:translateY(-100%)}.hscroll.go .hs-mount{clip-path:inset(0)}.hscroll.go .hs-rod.bottom{transform:none}.hs-rod.bottom{margin-top:-1px}.hscroll .hs-mount{position:relative}@keyframes f-hang{0%{rotate:-1.2deg}to{rotate:1.2deg}}.m-hang{transform-origin:50% 0;animation:4.5s ease-in-out infinite alternate f-hang}@media (prefers-reduced-motion:reduce){.hs-mount{clip-path:none;transition:none}.hs-rod.bottom{transform:none}}.w-hero{text-align:left;max-width:1240px;padding:4vh var(--m) 10vh;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:5vw;margin:0 auto;display:grid}.w-hero-copy{padding-top:4vh}.w-title{max-width:12ch}.w-note p{margin:0 0 1em}.w-hero-art{position:relative}.w-hands,.w-hands.photo{height:min(78vh,760px)}.w-hands-lotus{z-index:4;width:34%;position:absolute;bottom:-4%;left:-16%}.w-dock{z-index:2;max-width:1340px;padding:2vh var(--m) 4vh;margin:0 auto;position:relative}.w-dock-photo{aspect-ratio:16/8.5;width:100%}@media (width<=860px){.w-hero{text-align:left;grid-template-columns:1fr;padding-top:12vh}.w-hands,.w-hands.photo{height:58vh}.w-hands-lotus{width:38%;bottom:-6%;left:auto;right:-2%}.w-dock-photo{aspect-ratio:4/3}}.w-dock{padding-top:4vh;padding-bottom:0}.gate-panel{z-index:200;background:#fbf6eaf5;border-radius:18px;grid-template-columns:auto 1fr;align-items:stretch;width:min(900px,94vw);animation:1s 3.1s both banner-in2;display:grid;position:absolute;bottom:max(3vh,16px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 12px 34px #1f1a1733}.gate-panel .banner{box-shadow:none;text-align:left;border-radius:0;flex-direction:column;justify-content:center;min-width:0;padding:16px 30px 18px;animation:none;display:flex;position:relative;top:auto;left:auto;transform:none}.gate-panel .banner:before,.gate-panel .banner:after{display:none}.gate-panel .banner-names{margin-bottom:4px;font-size:16px}.gate-panel .banner-title{font-size:calc(clamp(24px, 2.3vw, 32px) * var(--hscale));white-space:nowrap}.gate-panel .banner-when{margin-top:6px;font-size:12.5px}.gate-panel .seal{width:auto;box-shadow:none;background:0 0;border-radius:0;align-content:center;padding:16px 18px 10px;animation:none;position:static;transform:none}.gate-panel .seal input{background:#fff;border-radius:999px;box-shadow:inset 0 0 0 1px #1f1a1724}.gate-panel .seal:focus-within{box-shadow:none}.gate-panel .seal input:focus-visible{box-shadow:inset 0 0 0 2px var(--red)}.gate-panel .seal-msg{text-align:left;padding-left:18px}.festival-gate.wrong .gate-panel .seal{animation:.4s shake}.festival-gate.zoom .gate-panel{opacity:0;transition:opacity .4s}@media (width<=860px){.gate-panel{border-radius:18px;grid-template-columns:1fr;width:min(520px,94vw)}.gate-panel .banner{text-align:center;padding:12px 18px}.gate-panel .banner-names{margin-bottom:2px;font-size:14px}.gate-panel .banner-title{white-space:normal;font-size:24px}.gate-panel .banner-when{margin-top:4px;font-size:12px}.gate-panel .seal{gap:8px;padding:12px 12px 6px}.gate-panel .seal input{padding:12px 18px}.gate-panel .seal .button{padding:13px 20px}.gate-panel .seal-msg{text-align:center;padding-left:0}.pan-hint{bottom:calc(max(3vh,16px) + 236px)}}@media (prefers-reduced-motion:reduce){.gate-panel{animation:none!important}}@media (width<=860px){.festival-gate .festival .scene{bottom:calc(max(3vh,16px) + 226px)}}.w-top{position:relative}.w-top-bg{z-index:0;height:max(100svh,660px);position:absolute;inset:0 0 auto;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0 70%,#0000 100%);mask-image:linear-gradient(#000 0 70%,#0000 100%)}.w-top-bg img{object-fit:cover;object-position:50% 30%;transform-origin:50% 40%;width:100%;height:100%;animation:2.2s cubic-bezier(.2,.7,.2,1) both w-photo-in;display:block}@keyframes w-photo-in{0%{opacity:0;transform:scale(1.14)}40%{opacity:1}to{opacity:1;transform:scale(1)}}.w-top-bg:after{content:"";background:linear-gradient(#180e088c,#180e0800);height:190px;position:absolute;inset:0 0 auto}.welcome2 .w-top .nav a,.welcome2 .w-top .wordmark{color:#fbf3e4}.welcome2 .w-top .nav-rsvp{color:#fbf3e4;border-color:#fbf3e4}.welcome2 .w-top .nav-rsvp:hover{background:#fbf3e424}.w-thread-start{width:1px;height:1px;position:absolute;top:132px;left:4vw}.welcome2 .w-lanterns,.welcome2 .nav{z-index:3}.welcome2 .w-hero{max-width:none;padding:calc(max(100svh, 660px) - 250px) var(--m) 8vh;text-align:left;margin:0;display:block}.welcome2 .w-hero-copy{z-index:2;background:var(--paper,#f6efe2);max-width:660px;margin:0 auto;padding:52px 60px 40px;position:relative;box-shadow:0 -18px 50px #1f1a171f}.welcome2 .w-title{max-width:13ch}@media (width<=860px){.w-top-bg{height:116vw}.w-top-bg img{object-position:50% 100%}.w-top-bg:after{height:130px}.w-thread-start{top:118px;left:14px}.welcome2 .w-lanterns{display:none}.welcome2 .w-hero{padding:calc(116vw - 90px) 22px 6vh 26px}.welcome2 .w-hero-copy{padding:30px 24px 18px}}.thread-bridge{z-index:400;pointer-events:none;position:fixed;inset:0;overflow:visible}.thread-bridge .ribbon{stroke-dasharray:1 1;stroke-dashoffset:1px}.thread-bridge.draw .ribbon{stroke-dashoffset:0;transition:stroke-dashoffset 1.5s cubic-bezier(.65,0,.3,1)}.thread-bridge.handoff .ribbon{stroke-dashoffset:-1px;transition:stroke-dashoffset 1.4s cubic-bezier(.5,0,.3,1)}.w-lantern .swing{transform-origin:50% 0;will-change:transform}.welcome2 .w-lanterns{pointer-events:none}.w-story-btn.tied{animation:1.1s cubic-bezier(.3,1.6,.5,1) .1s thread-tug}@keyframes thread-tug{0%{transform:none}30%{transform:translate(5px)rotate(.6deg)}60%{transform:translate(-2px)}to{transform:none}}@media (prefers-reduced-motion:reduce){.w-story-btn.tied{animation:none}}.w-top-bg{-webkit-mask-image:none;mask-image:none}.welcome2 .w-hero-copy{max-width:720px;padding:56px 64px 44px}.welcome2 .w-hero-copy .w-title{max-width:none}.welcome2 .w-hero-copy .w-note p{max-width:none;margin-left:0;margin-right:0}.w-minis{border-top:1px solid #1f1a171f;align-items:flex-end;gap:clamp(18px,3vw,36px);margin-top:26px;padding-top:22px;display:flex}.w-mini{align-items:flex-end;height:78px;transition:transform .5s cubic-bezier(.3,1.6,.5,1);display:flex}.w-mini .print,.w-mini .print img,.w-mini .print svg{width:auto;height:100%}.w-mini-plane{height:64px}.w-mini-boat{height:74px}.w-mini:hover{transform:translateY(-6px)rotate(-3deg)}@media (width<=860px){.welcome2 .w-hero-copy{padding:30px 24px 22px}.w-minis{justify-content:space-between;gap:14px}.w-mini{height:54px}.w-mini-plane{height:44px}.w-mini-boat{height:52px}.welcome2 .w-hero{padding-top:calc(116vw - 150px)}}.w-minis{border-top:0;margin-top:22px;padding-top:0;justify-content:flex-start!important;gap:22px!important}.w-mini{height:76px}.welcome2>.thread{z-index:4}@media (width<=860px){.w-mini{height:58px}}.confetti-burst{z-index:5;pointer-events:none;width:0;height:0;position:absolute;top:36%;left:50%}.cf{width:var(--w);height:calc(var(--w) * .55);background:var(--c);opacity:0;animation-name:cf-fly;animation-timing-function:linear;animation-fill-mode:both;position:absolute;top:0;left:0}.cf-1{height:var(--w);width:calc(var(--w) * .8);border-radius:50%}.cf-2{width:calc(var(--w) * .4);height:calc(var(--w) * 1.6);border-radius:2px}@keyframes cf-fly{0%{opacity:0;transform:translate(0)rotate(0)scale(.4)}6%{opacity:1}30%{transform:translate(var(--dx), var(--dy)) rotate(calc(var(--spin) * .4)) scale(1);animation-timing-function:cubic-bezier(.4,0,.9,.6)}80%{opacity:1}to{opacity:0;transform:translate(calc(var(--dx) * 1.25), calc(var(--dy) + var(--fall))) rotate(var(--spin)) scale(.9)}}.welcome2 .w-days{padding-bottom:22vh}.welcome2 .w-teaser{padding-top:8vh}.w-minis{z-index:3;align-items:flex-end;position:absolute;bottom:-40px;left:64px;margin:0!important}@media (width<=860px){.welcome2 .w-days{padding-bottom:14vh}.welcome2 .w-hero-copy{padding-bottom:64px}.w-minis{bottom:-30px;left:24px}.w-mini-pig{height:46px!important}.w-mini-goat{height:64px!important}}.w-minis{transform:translate(-50%);left:50%!important}.w-mini-pig{height:72px!important}.w-mini-goat{height:82px!important}@media (width<=860px){.w-minis{left:50%!important}.w-mini-pig{height:54px!important}.w-mini-goat{height:62px!important}}.lp-frame{width:100%;max-width:260px;position:relative}.w-day-fig .lp-frame .print{max-width:none}.lp-stack{opacity:0;pointer-events:none;position:absolute;inset:0}.lp-layer{will-change:transform;width:100%;height:auto;display:block;position:absolute;top:0;left:0}.live-print.live .lp-stack{opacity:1}.live-print.live .drawn-colour,.live-print.live .drawn-lines{visibility:hidden}.live-print{cursor:default}.lp-toast.play .lp-stack{animation:.5s ease-in-out infinite alternate lp-laugh}.lp-toast.play .lp-lantern{animation:1.5s ease-in-out infinite lp-swing}.lp-toast.play .lp-lantern-2{animation-delay:-.4s}@keyframes lp-laugh{0%{transform:translateY(0)}to{transform:translateY(-2.5px)}}@keyframes lp-swing{0%,to{transform:rotate(0)}25%{transform:rotate(7deg)}75%{transform:rotate(-7deg)}}.lp-sparkle{aspect-ratio:1;opacity:0;width:22%;height:auto;position:absolute;overflow:visible;transform:translate(-50%,-50%)scale(0)}.lp-sparkle line{stroke:#e0a92e;stroke-width:2.2px;stroke-linecap:round}.lp-toast.play .lp-sparkle{animation:1.1s ease-out infinite lp-spark}@keyframes lp-spark{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(0)}25%{opacity:1}60%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(12deg)}to{opacity:0;transform:translate(-50%,-50%)scale(1.15)rotate(18deg)}}.lp-tea.play .lp-bow{animation:2.8s ease-in-out infinite lp-bow}@keyframes lp-bow{0%,to{transform:rotate(0)}35%,65%{transform:rotate(2.2deg)}}.lp-steam{width:9%;height:auto;position:absolute;overflow:visible;transform:translate(-50%,-100%)}.lp-steam path{fill:none;stroke:#78685a8c;stroke-width:1.8px;stroke-linecap:round;opacity:0}.lp-tea.play .lp-steam path{animation:2.4s ease-out infinite lp-steam}@keyframes lp-steam{0%{opacity:0;transform:translateY(6px)}30%{opacity:.9}to{opacity:0;transform:translateY(-14px)}}.lp-band.play .lp-march{animation:.56s ease-in-out infinite lp-march}.lp-band.play .lp-march-2{animation-delay:-.19s}.lp-band.play .lp-flag{animation:.56s ease-in-out -.38s infinite lp-flag}@keyframes lp-march{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(-1deg)}}@keyframes lp-flag{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(2deg)}}.lp-note{color:var(--red);opacity:0;font:400 15px/1 Playfair Display,serif;position:absolute;transform:translate(-50%,-50%)}.lp-note:nth-of-type(2n){color:var(--ink)}.lp-band.play .lp-note{animation:1.8s ease-out infinite lp-note}@keyframes lp-note{0%{opacity:0;transform:translate(-50%,-50%)}20%{opacity:1}to{opacity:0;transform:translate(calc(26px - 50%),calc(-50% - 40px))rotate(18deg)}}.lp-boom{aspect-ratio:1;opacity:0;border:2px solid #b8392b8c;border-radius:50%;width:26%;position:absolute;transform:translate(-50%,-50%)scale(.5)}.lp-band.play .lp-boom{animation:1.12s ease-out infinite lp-boom}@keyframes lp-boom{0%{opacity:.8;transform:translate(-50%,-50%)scale(.55)}to{opacity:0;transform:translate(-50%,-50%)scale(1.25)}}@media (prefers-reduced-motion:reduce){.live-print *{animation:none!important}}.lp-sparkle{width:12%}.lp-sparkle line{stroke-width:2.6px}.w-minis{display:none}.w-keepsake{transform-origin:50% 46%;z-index:3;pointer-events:none;width:380px;height:250px;position:absolute;bottom:-135px;left:50%;transform:translate(-50%)}.w-cloth{background:repeating-linear-gradient(0deg,#785a3c09 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#785a3c09 0 1px,#0000 1px 3px),#fbf5e8;border-radius:2px;width:230px;height:230px;position:absolute;top:0;left:40px;transform:rotate(-3deg);box-shadow:0 1px #1f1a170f,0 14px 30px #3c281429}.w-stitch{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.w-stitch rect,.w-stitch .x{fill:none;stroke:var(--red);stroke-width:2.2px;stroke-linecap:round}.w-stitch rect{stroke-dasharray:8 6}.w-cloth-figs{justify-content:center;align-items:center;gap:14px;padding-top:8px;display:flex;position:absolute;inset:0}.w-cloth .w-mini{height:auto}.w-cloth .w-mini .print,.w-cloth .w-mini .print img{width:auto;height:100%}.w-cloth-thread{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.w-cloth-thread path{fill:none;stroke:var(--red);stroke-width:2.4px;stroke-linecap:round}.w-spool{width:88px;position:absolute;top:118px;left:282px}.w-spool .print img{width:100%;height:auto}@media (width<=860px){.welcome2 .w-hero-copy{padding-bottom:112px}.welcome2 .w-hero{padding-bottom:16vh}.w-keepsake{transform:translate(-50%)scale(.72)}}.w-cloth{background:radial-gradient(120% 90% at 22% 12%,#ffd2aa38,#0000 55%),repeating-linear-gradient(0deg,#0000000d 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#ffffff0a 0 1px,#0000 1px 3px),#a9372c;border-radius:3px;width:180px;height:180px;left:32px;transform:rotate(-3deg);box-shadow:inset 0 0 0 1px #ffdcb42e,0 14px 28px #50140a38}.w-cloth-figs{gap:8px;padding-top:4px}.w-cloth .w-mini-pig{height:70px!important}.w-cloth .w-mini-goat{height:80px!important}@media (width<=860px){.welcome2 .w-hero-copy{padding-bottom:96px}.w-keepsake{transform:translate(-50%)scale(.8)}}.w-cloth{background:radial-gradient(120% 90% at 22% 12%,#fff5e147,#0000 55%),repeating-linear-gradient(0deg,#5a402412 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#5a40240d 0 1px,#0000 1px 3px),#cfbc98;box-shadow:inset 0 0 0 1px #5a40241f,0 12px 26px #46301833}.w-cloth{display:none}.w-keepsake{transform-origin:50% 41%;width:400px;height:300px;bottom:-176px}.w-flag{filter:drop-shadow(0 10px 18px #4630182e);width:286px;position:absolute;top:0;left:30px}.w-flag .print img{width:100%;height:auto;display:block}.w-flag-figs{justify-content:center;align-items:center;gap:4px;padding-top:4px;display:flex;position:absolute;inset:10.5% 22.3% 21.2% 22.2%}.w-flag .w-mini-pig{height:66px!important}.w-flag .w-mini-goat{height:76px!important}.w-flag .w-mini{align-items:flex-end;display:flex}.w-flag .w-mini .print,.w-flag .w-mini .print img{width:auto;height:100%}.w-spool{width:54px;top:196px;left:300px}.welcome2 .w-hero{padding-bottom:30vh}@media (width<=860px){.w-keepsake{transform:translate(-50%)scale(.74)}.welcome2 .w-hero-copy{padding-bottom:110px}.welcome2 .w-hero{padding-bottom:22vh}}@media (width<=860px){.w-keepsake{transform:translate(calc(20px - 50%))scale(.74)}}.welcome2 .w-hero-copy{border-radius:50% 50% 0 0/230px 230px 0 0;padding-top:140px}@media (width<=860px){.w-top-bg{height:90vw}.w-top-bg img{object-position:50% 100%}.welcome2 .w-hero{padding-top:calc(90vw - 200px)}.welcome2 .w-hero-copy{border-radius:50% 50% 0 0/90px 90px 0 0;padding-top:70px}}@media (width<=860px){.w-keepsake{transform:translate(calc(17px - 50%))scale(.62)}.welcome2 .w-hero-copy{padding-bottom:94px}}.w-keepsake{transform:translate(calc(21px - 50%))scale(.756)}.welcome2 .w-hero-copy{padding-bottom:116px}@media (width<=860px){.w-keepsake{transform:translate(calc(15px - 50%))scale(.558)}.welcome2 .w-hero-copy{padding-bottom:86px}}.welcome2 .w-teaser{z-index:5}.w-story-btn{position:relative}.ribbon,.gate-thread .ribbon{stroke-width:2.6px!important}.ribbon-sheen{stroke-width:.8px}.w-cloth-thread path{stroke-width:3.4px}@media (width<=860px){.ribbon{stroke-width:2px!important}.w-cloth-thread path{stroke-width:3.6px}}.festival-gate{min-height:0;height:auto!important;overflow:visible!important}.gate-stage{height:100dvh;min-height:560px;position:relative;overflow:hidden}.festival-gate .festival .scene{bottom:0}.festival.narrow{touch-action:pan-y}@media (width<=860px){.festival-gate .festival .scene{bottom:4vh}}.gate-cue{z-index:160;color:var(--ink);letter-spacing:.04em;opacity:0;flex-direction:column;align-items:center;gap:8px;font-size:13px;text-decoration:none;animation:1s 3.4s both banner-in2;display:flex;position:absolute;bottom:max(2.4vh,14px);left:50%;transform:translate(-50%)}.gate-cue span{background:#f4ecdcd1;border-radius:999px;padding:3px 10px}.gate-cue i{background:var(--red);transform-origin:50% 0;border-radius:2px;width:2px;height:34px;animation:2.2s ease-in-out 4.2s infinite cue-drop;display:block}@keyframes cue-drop{0%{opacity:1;transform:scaleY(0)}55%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.festival-gate.zoom .gate-cue,.festival-gate.unfolding .gate-cue{transition:opacity .3s;opacity:0!important}.gate-panel{z-index:2;text-align:center;width:auto;max-width:640px;padding:16vh var(--m) 22vh;box-shadow:none;background:0 0;border-radius:0;flex-direction:column;align-items:center;margin:0 auto;animation:none;display:flex;position:relative;bottom:auto;left:auto;overflow:visible;transform:none}.gate-panel .banner{color:var(--ink);text-align:center;background:0 0;align-items:center;padding:0}.gate-panel .banner-title{color:var(--ink);font-size:calc(clamp(40px, 5.4vw, 72px) * var(--hscale));white-space:normal;line-height:1.04}.gate-panel .banner-when{color:var(--muted);opacity:1;margin-top:18px;font-size:15px}.gate-panel .seal{width:min(520px,100%);margin-top:44px;padding:0}.gate-panel .seal-msg{text-align:center;margin-top:6px;padding-left:0}@media (width<=860px){.gate-panel{width:auto;padding:12vh 22px 16vh}.gate-panel .banner{padding:0}.gate-panel .banner-title{font-size:calc(40px * var(--hscale))}.gate-panel .banner-when{margin-top:14px;font-size:14px}.gate-panel .seal{margin-top:34px;padding:0}}@media (prefers-reduced-motion:reduce){.gate-cue,.gate-cue i{opacity:1;animation:none!important}}.gate-stage,.festival-gate .festival{overflow:clip visible}.gate-head{z-index:200;text-align:center;width:min(92vw,900px);min-width:0;color:var(--ink);box-shadow:none;pointer-events:none;background:0 0;border-radius:0;padding:0;animation:1s 3.1s both banner-in2;position:absolute;top:auto;bottom:max(4.5vh,22px);left:50%;transform:translate(-50%)}.gate-head:before,.gate-head:after{display:none}.gate-head .banner-title{color:var(--ink);font-size:calc(clamp(34px, 4.2vw, 60px) * var(--hscale));line-height:1.04}.gate-head .banner-when{color:var(--ink);opacity:.72;margin-top:10px;font-size:14px}.festival-gate.zoom .gate-head{opacity:0;transition:opacity .4s}.gate-panel{padding:14vh var(--m) 18vh;justify-content:center;min-height:46vh}.gate-panel .seal{margin-top:0}@media (width<=860px){.festival-gate .festival .scene{bottom:0}.gate-head{bottom:18px}.gate-head .banner-title{font-size:calc(32px * var(--hscale))}.gate-head .banner-when{margin-top:6px;font-size:12.5px}.gate-panel{min-height:40vh;padding:12vh 22px 14vh}}@media (prefers-reduced-motion:reduce){.gate-head{animation:none!important}}@media (width>=861px){.gate-head{bottom:max(1.2vh,8px)}}.festival-gate{overflow:clip!important}.gate-stage{z-index:1}.scene-water{z-index:99;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='180' viewBox='0 0 640 180'%3E%3Cg fill='none' stroke='%232f3d45' stroke-linecap='round' stroke-opacity='.55'%3E%3Cpath d='M40 30h92M58 35h58' stroke-width='1.6'/%3E%3Cpath d='M300 22h70M318 27h40' stroke-width='1.4'/%3E%3Cpath d='M500 46h96M520 51h54' stroke-width='1.6'/%3E%3Cpath d='M150 92h120M176 97h70' stroke-width='1.6'/%3E%3Cpath d='M420 110h84M436 115h46' stroke-width='1.4'/%3E%3Cpath d='M8 140h64' stroke-width='1.3'/%3E%3Cpath d='M250 158h96M268 163h50' stroke-width='1.5'/%3E%3Cpath d='M560 150h66' stroke-width='1.3'/%3E%3C/g%3E%3C/svg%3E") 0 26px/640px 180px,linear-gradient(#bdccd200,#bdccd2 12px);height:300vh;position:absolute;left:-50vw;right:-50vw}.gate-panel{padding:7vh var(--m) 12vh;min-height:0}@media (width<=860px){.gate-panel{padding:6vh 22px 10vh}}.layer-pond3 .print{-webkit-mask-image:linear-gradient(#000 80%,#0000 100%);mask-image:linear-gradient(#000 80%,#0000 100%)}.gate-head .banner-when{opacity:.85;letter-spacing:.01em;font-weight:500}.gate-panel .seal-msg{color:#3e4a50;background:#bdccd2;border-radius:999px;justify-self:center;padding:4px 14px}.gate-panel .seal-msg.err{color:var(--red)}.site-foot a[aria-current]{color:var(--red);-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);border-color:var(--red)}.site-foot a[aria-current]:after{background:var(--red)}.gate-head{bottom:calc(18px * var(--fest-scale,.9) + 16px)!important}.gate-head .banner-title{font-size:calc(clamp(32px, 3.8vw, 56px) * var(--hscale))}.gate-head .banner-when{margin-top:6px}@media (width>=861px){.welcome2{--top-h:max(min(100svh, 52vw), 600px)}.w-top-bg{height:var(--top-h)}.welcome2 .w-hero{padding-top:calc(var(--top-h) - 200px)}}.story .intro{align-items:center;min-height:0;padding-bottom:6vh}.intro-stage{position:relative}.story .intro-carp{z-index:3;inset:auto auto -48px -64px;width:min(11vw,160px)!important;margin:0!important;position:absolute!important}.story .c2016{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);justify-content:stretch;align-items:center;gap:4vw;display:grid}.c2016-copy{flex-direction:column;gap:18px;display:flex}.c2016-copy .moment{max-width:32em}.story .boba-2016{justify-self:center;width:min(34vw,440px)}.story .may-photo{aspect-ratio:4/5;max-height:82vh}.story .hue-photo{aspect-ratio:4/3}@media (width<=860px){.story .intro-carp{bottom:-36px;left:-10px;width:30vw!important}.story .c2016{grid-template-columns:1fr;gap:10px}.story .boba-2016{order:-1;width:70vw}.story .may-photo{max-height:70vh;aspect-ratio:4/5!important}.story .intro-carp{bottom:-22px;left:auto;right:-8px;width:26vw!important}.story .intro{padding-bottom:4vh}}.story .intro-carp{inset:auto auto -48px -64px!important}@media (width<=860px){.story .intro-carp{inset:auto -8px -22px auto!important}}.drawn-body{height:100%;position:relative}.print.playable{cursor:pointer;-webkit-tap-highlight-color:transparent}.drawn-body.hop-0{transform-origin:50% 100%;animation:.7s cubic-bezier(.3,1.6,.5,1) hopA}.drawn-body.hop-1{transform-origin:50% 100%;animation:.7s cubic-bezier(.3,1.6,.5,1) hopB}@keyframes hopA{0%{transform:none}25%{transform:scale(1.04,.95)}55%{transform:translateY(-5%)scale(.98,1.03)}to{transform:none}}@keyframes hopB{0%{transform:none}25%{transform:scale(1.04,.95)}55%{transform:translateY(-5%)scale(.98,1.03)}to{transform:none}}.burst{pointer-events:none;z-index:6;width:0;height:0;position:absolute}.burst>*{opacity:0;animation:burst-fly 1.4s cubic-bezier(.15, .7, .35, 1) var(--dl) forwards;position:absolute;top:0;left:0}@keyframes burst-fly{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(0)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(1) rotate(var(--r))}}.burst-drop>i{background:#3f7fb0;border:1.5px solid #1f1a17;border-radius:50%/60% 60% 40% 40%;width:8px;height:11px}.burst-bubble>i{background:#5a3b26;border:1.5px solid #1f1a17;border-radius:50%;width:10px;height:10px}.burst-snow>i{background:#fff;border:1.5px solid #1f1a17;border-radius:50%;width:8px;height:8px}.burst-note>i{color:var(--c);font:400 24px/1 Playfair Display,serif}.burst-leaf>svg{width:20px;height:20px;animation-duration:1.9s;animation-timing-function:cubic-bezier(.3,.2,.5,1)}.burst-paper>i{background:var(--c);width:8px;height:12px}.burst-spark>i{background:#e8b23a;width:9px;height:9px;transform:rotate(45deg);box-shadow:0 0 8px #ffd36a}@media (prefers-reduced-motion:reduce){.burst,.drawn-body.hop-0,.drawn-body.hop-1{animation:none;display:none}.drawn-body.hop-0,.drawn-body.hop-1{display:block}}.year.odo{white-space:nowrap;margin:-.075em 0;line-height:1}.odo-d{vertical-align:top;height:1em;display:inline-block;position:relative;overflow:hidden}.odo-w{visibility:hidden;line-height:1em;display:block}.odo-strip{position:absolute;top:0;left:50%;transform:translate(-50%)}.odo-strip>span{text-align:center;height:1em;line-height:1em;display:block}.year.odo.roll .odo-strip{transform:translate(-50%, calc(var(--n) * -1em));transition:transform 1.7s cubic-bezier(.2, .75, .15, 1) calc(var(--i) * .13s)}@media (prefers-reduced-motion:reduce){.year.odo .odo-strip{transform:translate(-50%, calc(var(--n) * -1em))!important;transition:none!important}}.story-rail{z-index:40;opacity:0;flex-direction:column;align-items:flex-end;gap:16px;transition:opacity .5s;display:none;position:fixed;top:50%;right:20px;transform:translateY(-50%)}.story-rail.on{opacity:1}.story-rail button{cursor:pointer;background:0 0;border:0;justify-content:flex-end;align-items:center;padding:4px;display:flex;position:relative}.story-rail i{border:1.5px solid var(--ink);background:var(--paper);border-radius:99px;width:8px;height:8px;transition:height .35s,background .35s,border-color .35s;display:block}.story-rail .past i{background:var(--ink)}.story-rail .here i{background:var(--red);border-color:var(--red);height:26px}.story-rail span{white-space:nowrap;color:var(--ink);background:var(--paper);opacity:0;pointer-events:none;border-radius:99px;padding:3px 10px;font-size:13px;transition:opacity .25s,transform .25s;position:absolute;right:22px;transform:translate(6px);box-shadow:0 2px 10px #1f1a171f}.story-rail span b{color:var(--red);margin-right:6px;font-weight:500}.story-rail button:hover span,.story-rail button:focus-visible span{opacity:1;transform:none}@media (width>=1100px){.story-rail{display:flex}}.story .hue-photo{width:62%}@media (width<=860px){.story .hue-photo{width:100%}}.odo-d{height:1.5em}.odo-w{line-height:1.5em}.odo-strip>span{height:1.5em;line-height:1.5em}.year.odo.roll .odo-strip{transform:translate(-50%, calc(var(--n) * -1.5em))}@media (prefers-reduced-motion:reduce){.year.odo .odo-strip{transform:translate(-50%, calc(var(--n) * -1.5em))!important}}.year.odo{margin:-.075em 0}.odo-d{margin:-.25em 0}.story .year{opacity:0;transition:opacity 1s,transform 1s;transform:translateY(16px)}.story .year.in{opacity:1;transform:none}.keepsake{color:var(--ink);opacity:0;transform:translateY(26px) rotate(calc(var(--tilt) + 3deg));background:#fbf6ea;margin:0;transition:opacity .9s,transform 1.1s cubic-bezier(.2,.8,.25,1);position:relative;box-shadow:0 1px 2px #1f1a1714,0 16px 36px #1f1a1729}.keepsake.in{opacity:1;transform:rotate(var(--tilt))}.keepsake:hover{transform:rotate(calc(var(--tilt) * .4)) translateY(-3px)}.ks-photo{background:#e9e0cd;overflow:hidden}.ks-photo img{object-fit:cover;width:100%;height:100%;display:block}.ks-text{display:block}.ks-postcard{width:min(100%,440px);padding:14px 14px 20px}.ks-postcard .ks-photo{aspect-ratio:4/5}.ks-postcard .ks-text{margin-top:14px;padding-left:4px}.ks-hand{font:italic 300 17px/1.2 var(--headline);color:var(--muted);display:block}.ks-place{font-family:var(--headline);font-weight:var(--hw);margin-top:2px;font-size:28px;line-height:1.15;display:block}.ks-stamp{z-index:3;position:absolute}.ks-stamp.framed{filter:drop-shadow(0 4px 8px #1f1a172e);background:radial-gradient(circle at 6px 6px,#0000 3.6px,#fffaf0 4px) -6px -6px/12px 12px;width:128px;padding:11px;top:-26px;right:-30px;transform:rotate(5deg)}.ks-stamp.framed:before{content:"";outline-offset:-4px;background:#fffaf0;outline:1px solid #1f1a1724;position:absolute;inset:6px}.ks-stamp .print{z-index:1;width:100%;position:relative}.ks-stamp.sticker{filter:drop-shadow(2px 0 #fffaf0)drop-shadow(-2px 0 #fffaf0)drop-shadow(0 2px #fffaf0)drop-shadow(0 -2px #fffaf0)drop-shadow(0 8px 12px #1f1a1733)}.ks-postmark{z-index:4;pointer-events:none;opacity:0;mix-blend-mode:multiply;width:190px;position:absolute;top:4px;right:54px}.ks-postmark circle,.ks-postmark path{fill:none;stroke:var(--red);stroke-width:2.4px}.ks-postmark text{fill:var(--red);font:500 11px/1 var(--text);letter-spacing:.16em}.keepsake.in .ks-postmark{animation:.4s cubic-bezier(.3,1.4,.5,1) 1s forwards ink-thunk}@keyframes ink-thunk{0%{opacity:0;transform:scale(1.25)rotate(-8deg)}to{opacity:.72;transform:rotate(-8deg)}}.ks-ticket{grid-template-columns:42% 1fr;width:min(100%,600px);display:grid}.ks-ticket .ks-photo{min-height:330px}.ks-ticket .ks-text{border-left:2px dashed #1f1a1740;flex-direction:column;justify-content:center;gap:6px;padding:28px 30px 28px 34px;display:flex}.ks-ticket:before,.ks-ticket:after{content:"";background:var(--paper);border-radius:50%;width:24px;height:24px;position:absolute;left:calc(42% - 12px)}.ks-ticket:before{top:-12px}.ks-ticket:after{bottom:-12px}.ks-small{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:12px}.ks-big{font-family:var(--headline);font-weight:var(--hw);color:var(--red);margin:4px 0;font-size:clamp(54px,5vw,76px);line-height:.95}.ks-row{margin-top:10px;font-size:15px}.ks-row b,.ks-fields b{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-right:6px;font-size:11px;font-weight:500}.ks-pass{grid-template-columns:38% 1fr;width:min(100%,680px);margin:0 auto 0 6%;display:grid}.ks-band{background:var(--red);color:#fdf3e2;letter-spacing:.2em;text-transform:uppercase;grid-column:1/-1;padding:11px 22px;font-size:12px}.ks-pass .ks-photo{aspect-ratio:3/4}.ks-pass .ks-text{display:contents}.ks-fields{grid-template-columns:1fr 1fr;align-content:center;gap:18px 24px;padding:26px 28px 26px 30px;display:grid}.ks-fields>span{font-family:var(--headline);font-weight:var(--hw);font-size:23px;line-height:1.15}.ks-fields b{font-family:var(--text);margin:0 0 4px;display:block}.ks-pass .ks-stamp{width:168px;bottom:-44px;right:-40px;transform:rotate(-4deg)}@media (width<=860px){.keepsake.in{transform:rotate(calc(var(--tilt) * .5))}.ks-postcard{width:calc(100% - 26px)}.ks-stamp.framed{width:92px;padding:9px;top:-18px;right:-14px}.ks-postmark{width:140px;top:0;right:44px}.ks-ticket,.ks-pass{width:calc(100% - 16px);margin:0}.ks-ticket .ks-photo{min-height:230px}.ks-ticket .ks-text{padding:18px 16px 18px 20px}.ks-big{font-size:46px}.ks-ticket .ks-stamp{width:104px;bottom:-40px;right:-8px}.ks-fields{grid-template-columns:1fr;gap:10px;padding:16px 16px 18px 18px}.ks-fields>span{font-size:17px}.ks-pass .ks-stamp{width:112px;bottom:-40px;right:-8px}.story .keepsake+.moment{margin-top:46px}}@media (prefers-reduced-motion:reduce){.keepsake{transition:none}.ks-postmark{opacity:.72;transform:rotate(-8deg);animation:none!important}}.ks-band{grid-area:1/1/auto/-1}.ks-pass .ks-photo{grid-area:2/1}.ks-fields{grid-area:2/2}.ks-stamp.framed{width:150px}.ks-postmark{width:200px;top:62px;right:-44px}@media (width<=860px){.ks-stamp.framed{width:100px}.ks-postmark{width:140px;top:40px;right:-26px}.ks-pass{grid-template-columns:42% 1fr}}.ks-postmark{top:18px;right:-34px}.ks-postmark circle,.ks-postmark path{stroke-width:2.8px}@media (width<=860px){.ks-postmark{top:8px;right:-22px}.story .keepsake{margin-top:34px}.ks-ticket,.ks-pass{margin-bottom:64px}.ks-row{flex-wrap:wrap;gap:2px 10px;display:flex}.ks-ticket .ks-stamp,.ks-pass .ks-stamp{width:96px;bottom:-70px;right:6px}.story .ks-ticket+.moment,.story .ks-pass+.moment{margin-top:20px}}.ks-row{color:var(--ink);display:block!important}.ks-fields{text-align:left}@media (width<=860px){.ks-pass .ks-stamp{bottom:-62px;left:8px;right:auto}.story .ks-pass+.moment{margin-top:44px}}.c2023 .pair{grid-template-columns:1.1fr 1fr;align-items:center;gap:5vw;margin-top:4vw;display:grid}.c2023 .pair+.pair{margin-top:9vw}.c2023 .pair.flip .keepsake{order:2;justify-self:center}.ks-art .print{width:100%}.burst-puff>i{background:#ffffffe6;border:1.5px solid #1f1a1740;border-radius:50%;width:16px;height:16px}.ks-order{flex-direction:column;width:min(100%,430px);padding-bottom:20px;display:flex}.ks-order .ks-text{display:contents}.ks-order-head{background:var(--red);color:#fdf3e2;letter-spacing:.16em;text-transform:uppercase;order:-1;justify-content:space-between;align-items:baseline;padding:12px 22px;font-size:12px;display:flex}.ks-order-head b{font-family:var(--headline);font-weight:var(--hw);letter-spacing:0;text-transform:none;font-size:22px}.ks-order .ks-art{padding:18px 22px 4px}.ks-items{margin:6px 22px 0;padding:0;list-style:none}.ks-items li{border-bottom:1px dashed #1f1a1738;justify-content:space-between;align-items:center;padding:8px 0;font-size:15px;display:flex}.ks-stamps{gap:5px;display:flex}.ks-stamps i{border:2px solid var(--red);background:radial-gradient(circle, var(--red) 0 2.5px, transparent 3px);opacity:0;border-radius:50%;width:17px;height:17px;display:block;transform:scale(1.3)rotate(-10deg)}.keepsake.in .ks-stamps i{animation:.3s ease-out forwards ks-stamp}.ks-items li:first-child i{animation-delay:.9s!important}.ks-items li:nth-child(2) i{animation-delay:1.05s!important}.ks-items li:nth-child(3) i{animation-delay:1.2s!important}.ks-items li:nth-child(4) i{animation-delay:1.35s!important}.ks-items li:nth-child(5) i{animation-delay:1.5s!important}@keyframes ks-stamp{to{opacity:.85;transform:rotate(-10deg)}}.ks-order-foot{justify-content:space-between;align-items:baseline;margin:14px 22px 0;display:flex}.ks-order-foot span{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:11px}.ks-order-foot b{font-family:var(--headline);font-weight:var(--hw);font-size:22px}.ks-tag{text-align:center;width:min(100%,340px);box-shadow:none;filter:drop-shadow(0 14px 22px #1f1a172e)drop-shadow(0 1px 1px #1f1a171f);background:0 0;padding:66px 26px 28px}.ks-tag:before{content:"";clip-path:polygon(24% 0,76% 0,100% 11%,100% 100%,0 100%,0 11%);background:#ead6aa;position:absolute;inset:0}.ks-tag:after{content:"";background:var(--paper);border:5px solid #d8bd84;border-radius:50%;width:16px;height:16px;margin-left:-13px;position:absolute;top:18px;left:50%}.ks-tag>*{z-index:1;position:relative}.ks-string{width:120px;height:90px;margin-left:-60px;top:-62px;left:50%;overflow:visible;z-index:3!important;position:absolute!important}.ks-string path{fill:none;stroke:var(--red);stroke-width:2.6px;stroke-linecap:round}.ks-tag .ks-art{margin:0 6px 12px}.ks-tag .ks-small{margin-top:10px;display:block}@media (width<=860px){.c2023 .pair{grid-template-columns:1fr;gap:0}.c2023 .pair.flip .keepsake{order:0}.ks-order{width:calc(100% - 16px)}.ks-tag{width:min(80%,320px);margin:70px auto 0}}.ks-tag .ks-tag-note{margin-top:4px}@media (width<=860px){.story .ks-tag+.moment{margin-top:36px}}.ks-ticket{width:min(100%,600px);box-shadow:none;background:0 0;padding-top:120px;display:block}.ks-ticket:before,.ks-ticket:after{display:none}.ks-ticket .ks-photo{z-index:0;aspect-ratio:4/5;border:8px solid #fbf6ea;width:38%;min-height:0;position:absolute;top:0;left:5%;transform:rotate(-7deg);box-shadow:0 8px 22px #1f1a172e}.ks-ticket .ks-text{z-index:1;background:#f6ead0 repeating-linear-gradient(45deg,#b23a2a0b 0 2px,#0000 2px 9px);border:0;grid-template-columns:1fr 116px;gap:0;padding:0;display:grid;position:relative;box-shadow:0 1px 2px #1f1a171a,0 16px 34px #1f1a172e}.ks-ticket .ks-text:before,.ks-ticket .ks-text:after{content:"";background:var(--paper);border-radius:50%;width:24px;height:24px;position:absolute;left:calc(100% - 128px)}.ks-ticket .ks-text:before{top:-12px}.ks-ticket .ks-text:after{bottom:-12px}.tk-main{grid-template-columns:36px 1fr;display:grid}.tk-side{background:var(--red);color:#fdf3e2;writing-mode:vertical-rl;letter-spacing:.32em;text-transform:uppercase;justify-content:center;align-items:center;font-size:11px;display:flex;transform:rotate(180deg)}.tk-body{flex-direction:column;padding:18px 24px 16px;display:flex}.tk-top{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);justify-content:space-between;font-size:10.5px;display:flex}.tk-title{font-family:var(--headline);font-weight:var(--hw);color:var(--red);margin:8px 0 2px;font-size:clamp(54px,5vw,70px);line-height:.95}.tk-sub{letter-spacing:.16em;text-transform:uppercase;font-size:12px}.tk-grid{border-top:1px solid #1f1a1733;grid-template-columns:repeat(3,auto);justify-content:space-between;margin-top:14px;padding-top:10px;display:grid}.tk-grid>span{font-family:var(--headline);font-weight:var(--hw);font-size:21px;line-height:1.1}.tk-grid b{font:500 10px/1.4 var(--text);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:block}.tk-code{background:repeating-linear-gradient(90deg,#1f1a17 0 2px,#0000 2px 4px,#1f1a17 4px 5px,#0000 5px 8px,#1f1a17 8px 11px,#0000 11px 13px,#1f1a17 13px 14px,#0000 14px 17px);width:72%;height:26px;margin-top:14px;display:block}.tk-stub{letter-spacing:.14em;text-transform:uppercase;text-align:center;border-left:2px dashed #1f1a174d;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:16px 10px;font-size:10.5px;display:flex}.tk-stub-title{font-family:var(--headline);font-weight:var(--hw);letter-spacing:0;text-transform:none;color:var(--red);margin-bottom:2px;font-size:28px}.tk-code.v{width:78%;height:34px;margin-top:10px}.ks-ticket .ks-stamp{width:132px;bottom:-48px;right:-26px;transform:rotate(7deg)}@media (width<=860px){.ks-ticket{width:calc(100% - 8px);margin-bottom:56px;padding-top:92px}.ks-ticket .ks-photo{border-width:6px;width:44%}.ks-ticket .ks-text{grid-template-columns:1fr 78px}.ks-ticket .ks-text:before,.ks-ticket .ks-text:after{left:calc(100% - 90px)}.tk-main{grid-template-columns:26px 1fr}.tk-side{font-size:9px}.tk-body{padding:14px 14px 12px}.tk-top span:last-child{display:none}.tk-title{font-size:44px}.tk-grid>span{font-size:16px}.tk-stub-title{font-size:20px}.tk-stub{padding:12px 6px;font-size:9px}.ks-ticket .ks-stamp{width:92px;bottom:-64px;right:4px}}.ks-ticket .ks-stamp{width:138px;top:6px;bottom:auto;right:2%;transform:rotate(6deg)}@media (width<=860px){.ks-ticket .ks-stamp{width:98px;top:0;bottom:auto;right:4%}.ks-ticket{margin-bottom:24px}}.ks-ticket{padding-top:215px}@media (width<=860px){.ks-ticket{padding-top:150px}}.drawn.scrub .drawn-lines path{stroke:var(--red)!important;stroke-dashoffset:calc(1 - clamp(0, (var(--p,0) * 1.6 - var(--d)) * 2.2, 1))!important;transition:none!important}.drawn.scrub .drawn-colour{opacity:clamp(0, (var(--p,0) - .74) * 4.5, 1)!important;transition:none!important}.drawn.scrub .drawn-lines{opacity:calc(1 - clamp(0, (var(--p,0) - .9) * 10, 1))!important;transition:none!important}.ks-hole{z-index:2;border-radius:50%;width:16px;height:16px;margin-left:-13px;position:absolute;top:18px;left:50%}.ks-tag:after{z-index:0}@media (width>=861px){.story .chapter:not(.intro):not(.finale){max-width:1120px;margin-left:auto;margin-right:auto}.story .c2016,.story .c2017 .pair,.story .cMay,.story .c2023 .pair,.story .c2024 .pair,.story .c2028{grid-template-columns:minmax(0,1fr) minmax(0,1fr);justify-content:stretch;align-items:center;column-gap:80px;display:grid}.story .c2028>.year{grid-column:1/-1}.story .c2028>.keepsake{grid-column:1}.story .c2028>.moment{grid-column:2}.story :is(.pair,.cMay,.c2028)>.keepsake{order:0;justify-self:end}.story :is(.pair,.cMay,.c2028)>.moment{order:1;justify-self:start;max-width:30em;margin:0}.story .pair.flip>.keepsake{order:2;justify-self:start}.story .pair.flip>.moment{order:1;justify-self:end}.story .c2016-copy{justify-self:end}.story .boba-2016{justify-self:start}.story .ks-pass{margin:0}.story .c2023 .pair+.pair{margin-top:7vw}.story .ks-pass{grid-template-columns:34% 1fr;width:min(100%,560px)}.story .ks-fields>span{font-size:21px}}.story-body>.thread{z-index:8}body{font-weight:300}:root{--text:"Montserrat", "Be Vietnam Pro", system-ui, sans-serif}body{font-size:16px;font-weight:300}.lede{max-width:40ch!important;font-size:clamp(16px,1.15vw,17.5px)!important;line-height:1.75!important}.story .ks-pass,.ks-pass{width:min(100%,640px);box-shadow:none;background:0 0;grid-template-columns:none;padding-top:190px;display:block}.ks-pass .ks-photo{z-index:0;aspect-ratio:4/5;border:8px solid #fbf6ea;grid-area:auto;width:34%;position:absolute;top:0;left:6%;transform:rotate(-6deg);box-shadow:0 8px 22px #1f1a172e}.ks-pass .ks-text{z-index:1;background:#fbf6ea;border-radius:10px;grid-template-rows:auto 1fr;grid-template-columns:1fr 132px;position:relative;overflow:hidden;box-shadow:0 1px 2px #1f1a171a,0 16px 34px #1f1a172e;display:grid!important}.ks-pass .ks-text:before,.ks-pass .ks-text:after{content:"";z-index:2;background:var(--paper);border-radius:50%;width:22px;height:22px;position:absolute;left:calc(100% - 143px)}.ks-pass .ks-text:before{top:-11px}.ks-pass .ks-text:after{bottom:-11px}.bp-head{background:var(--red);color:#fdf3e2;letter-spacing:.22em;text-transform:uppercase;grid-column:1/-1;justify-content:space-between;align-items:center;padding:11px 22px;font-size:11px;display:flex}.bp-vn{letter-spacing:.08em;text-transform:none;opacity:.9;font-size:12px}.bp-main{flex-direction:column;padding:18px 22px 16px;display:flex}.bp-route{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid}.bp-route b,.bp-grid b,.bp-stub b{font:500 9.5px/1.4 var(--text);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:block}.bp-route em{font:normal 400 clamp(36px, 3.4vw, 48px)/1 var(--headline);letter-spacing:.02em;color:var(--ink);display:block}.bp-route small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.bp-to{text-align:right}.bp-plane{width:100%;height:22px;fill:var(--red);background:linear-gradient(var(--muted), var(--muted)) center / 100% 1px no-repeat;transform-box:fill-box;transform:rotate(90deg)}.bp-route .bp-plane{background:0 0;transform:none}.bp-route .bp-plane path{transform-origin:12px 12px;transform:rotate(90deg)}.bp-grid{border-top:1px dashed #1f1a1740;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:10px 14px;margin-top:14px;padding-top:12px;display:grid}.bp-grid>span{font-family:var(--headline);font-weight:var(--hw);font-size:17px;line-height:1.15}.ks-pass .tk-code{width:64%;height:24px;margin-top:14px}.bp-stub{border-left:2px dashed #1f1a174d;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;padding:16px 14px;display:flex}.bp-stub>span{font-family:var(--headline);font-weight:var(--hw);font-size:15px;line-height:1.15}.bp-stub-route{letter-spacing:.02em;font-size:18px!important}.bp-stub-route i{color:var(--red);font-style:normal}.bp-qr{width:64px;height:64px;fill:var(--ink);margin-top:4px}.ks-pass .ks-stamp{width:150px;inset:10px 4% auto auto;transform:rotate(5deg)}@media (width<=860px){.story .ks-pass,.ks-pass{width:calc(100% - 6px);margin:0 0 20px;padding-top:140px}.ks-pass .ks-photo{border-width:6px;width:42%}.ks-pass .ks-text{grid-template-columns:1fr 86px}.ks-pass .ks-text:before,.ks-pass .ks-text:after{left:calc(100% - 97px)}.bp-head{padding:9px 14px;font-size:9.5px}.bp-vn{font-size:10px}.bp-main{padding:14px 12px 12px}.bp-route{gap:6px}.bp-route em{font-size:30px}.bp-route small{font-size:9.5px}.bp-grid{grid-template-columns:repeat(2,auto)}.bp-grid>span{font-size:14px}.bp-stub{gap:6px;padding:12px 8px}.bp-stub>span{font-size:12px}.bp-stub-route{font-size:13px!important}.bp-qr{width:52px;height:52px}.ks-pass .ks-stamp{width:100px;inset:0 4% auto auto}.story .ks-pass+.moment{margin-top:28px}}.ks-pass .ks-text{text-align:left}.ks-pass .bp-to{text-align:right}.bp-stub-route{white-space:nowrap;font-size:15px!important}@media (width<=860px){.bp-stub-route{font-size:10.5px!important}.ks-pass .ks-text{grid-template-columns:1fr 90px}.ks-pass .ks-text:before,.ks-pass .ks-text:after{left:calc(100% - 101px)}}.ks-pass{padding-top:0!important}.ks-pass .ks-photo{margin:0 0 0 auto;display:block;top:auto;left:auto;transform:rotate(3deg);width:62%!important;position:relative!important}.ks-pass .ks-text{margin-top:-120px;transform:rotate(-2deg)}.ks-pass .ks-stamp{width:150px;transform:rotate(-6deg);top:46px!important;left:2%!important;right:auto!important}@media (width>=861px){.story .c2028>.keepsake{grid-area:2/2;justify-self:start}.story .c2028>.moment{grid-area:2/1;justify-self:end}.story .c2028>.year{text-align:left}}@media (width<=860px){.ks-pass .ks-photo{width:66%!important}.ks-pass .ks-text{margin-top:-80px}.ks-pass .ks-stamp{width:100px;top:30px!important;left:0!important}}.ks-pass .ks-text{margin-top:-44px}@media (width<=860px){.ks-pass .ks-text{margin-top:-28px}.story .keepsake+.moment,.story .ks-ticket+.moment,.story .ks-pass+.moment,.story .ks-tag+.moment{margin-top:52px!important}.story .ks-ticket,.story .ks-pass{margin-bottom:0!important}}.ks-pass .ks-stamp{z-index:3;top:228px!important;left:calc(38% - 118px)!important}@media (width<=860px){.ks-pass .ks-stamp{top:172px!important;left:calc(34% - 80px)!important}}.ks-pass .ks-stamp{top:196px!important}@media (width<=860px){.ks-pass .ks-stamp{top:148px!important}}.nav ul a[aria-current]{text-decoration:underline;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);text-underline-offset:6px;color:var(--red)!important}.stay2{z-index:2;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:4vw;margin-top:8vh;display:grid;position:relative}.diorama{aspect-ratio:16/11;perspective:1100px;perspective-origin:50% 30%;touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative}.dio-stage{transform-style:preserve-3d;will-change:transform;position:absolute;inset:0;transform:rotateX(8deg)}.dio-layer{pointer-events:none;-webkit-user-drag:none;display:block;position:absolute}.dio-mtn{opacity:.9;width:112%;top:2%;left:-6%}.dio-bay{width:100%;top:6%;left:0}.dio-villas{filter:drop-shadow(0 14px 18px #1f1a1729);width:80%;bottom:-3%;right:-3%}.dio-tag{letter-spacing:.04em;color:var(--ink);white-space:nowrap;pointer-events:none;background:#fbf6ea;border-radius:999px;padding:5px 11px;font-size:12px;position:absolute;box-shadow:0 2px 8px #1f1a1724}.dio-tag:before{content:"";background:var(--red);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.tag-villa{bottom:8%;right:6%}.dio-hint{text-align:center;color:var(--muted);max-width:none;margin:10px 0 0;font-size:12.5px}.stay2 .stay-copy h2{font-family:var(--headline);font-weight:var(--hw);letter-spacing:var(--hls)}.tgrid-trip{margin-top:14vh}.travel-cta{text-align:center;margin:10vh 0 4vh}@media (hover:none){.dio-hint{display:none}}@media (width<=860px){.stay2{grid-template-columns:1fr;gap:28px}.dio-tag{padding:4px 9px;font-size:10.5px}}.dio-hint{position:absolute;bottom:-34px;left:0;right:0}.tag-mtn{top:3%;left:30%}.tag-bay{top:44%;left:10%}@media (width<=860px){.tag-bay{left:12%}.tag-mtn{left:34%}}.diorama{margin-bottom:52px}.dio-hint{bottom:-50px}.tag-bay{top:34%}.travel-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:5vw;max-width:none;padding-top:4vh;display:grid}.travel-head-art{position:relative}.travel-photo{aspect-ratio:4/5;max-height:78vh}.travel-head .plane{z-index:3;width:min(22vw,300px);position:absolute;top:6%;left:-14%}.stay2{gap:7vw}.dio-villas{right:0}.stay2 .stay-copy p strong{font-weight:500}.offer2{background:var(--red);color:#fdf3e2;border-radius:4px;margin:26px 0 22px;padding:24px 28px 26px;box-shadow:0 14px 30px #781e1438}.offer2 p{color:#fdf3e2;max-width:none;margin:0}.offer-big{font-family:var(--headline);font-weight:var(--hw);letter-spacing:.01em;margin-bottom:12px!important;font-size:26px!important;line-height:1!important}.offer-big span{margin-right:6px;font-family:Playfair Display,serif;font-size:64px;line-height:.9}.road .grab-solo{grid-area:1/1;justify-self:center;width:min(100%,520px);position:relative;top:auto;bottom:auto;left:auto;transform:none}@media (width<=860px){.travel-head{grid-template-columns:1fr;gap:30px}.travel-head .plane{width:40vw;top:-6%;left:-4%}.offer2{padding:20px 20px 22px}.offer-big span{font-size:54px}.road .grab-solo{width:86vw}}.offer2,.offer2 *{text-shadow:none!important}.travel-cta{justify-content:center;display:flex}.offer-label{letter-spacing:.2em;text-transform:uppercase;opacity:.85;margin-bottom:8px!important;font-size:11px!important}.offer-big{margin-bottom:10px!important;font-size:20px!important}.offer-big span{margin-right:4px;font-size:38px}@media (width<=860px){.offer-big span{font-size:34px}}.stay2{margin-top:20vh}@media (width<=860px){.stay2{margin-top:12vh}}.stay2 .stay-copy{position:relative}.stay-anchor{width:1px;height:1px;position:absolute;top:-14vh;right:0;top:-10vh!important}@media (width<=860px){.stay-anchor{top:-6vh!important}}.trip{z-index:2;margin:14vh 0 12vh;position:relative}.trip-head h2{font-family:var(--display);letter-spacing:-.02em;margin:0 0 14px;font-size:clamp(30px,3vw,44px);font-weight:400;line-height:1.04}.trip-head>p{max-width:40em;margin:0}.trip-days{max-width:440px;margin:26px 0 0}.trip-days label{justify-content:space-between;align-items:baseline;gap:16px;font-size:15px;font-weight:500;display:flex}.trip-days output{font-family:var(--display);color:var(--red);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:28px;font-weight:400;line-height:1}.trip-days input[type=range]{appearance:none;cursor:pointer;touch-action:pan-y;background:0 0;width:100%;height:28px;margin:6px 0 0;display:block}.trip-days input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--red) calc(var(--v,0) * 100%), #1f1a1738 0);border-radius:2px;height:2px}.trip-days input[type=range]::-moz-range-track{background:#1f1a1738;border-radius:2px;height:2px}.trip-days input[type=range]::-moz-range-progress{background:var(--red);height:2px}.trip-days input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--red);background:#fbf6ea;border-radius:50%;width:22px;height:22px;margin-top:-10px;box-shadow:0 2px 6px #1f1a1733}.trip-days input[type=range]::-moz-range-thumb{border:2px solid var(--red);background:#fbf6ea;border-radius:50%;width:18px;height:18px;box-shadow:0 2px 6px #1f1a1733}.trip-days input[type=range]:focus-visible{outline:none}.trip-days input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #b23a2a40}.trip-ticks{letter-spacing:.06em;text-transform:uppercase;height:16px;color:var(--muted);margin-top:2px;font-size:11px;position:relative}.trip-ticks span{top:0;left:calc(11px + (100% - 22px) * var(--f));white-space:nowrap;position:absolute;transform:translate(-50%)}.trip-ticks span:first-child{left:0;transform:none}.trip-ticks span:last-child{left:auto;right:0;transform:none}.trip-body{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:4vw;max-width:1200px;margin-top:30px;display:grid}.vm{aspect-ratio:840/660;perspective:1800px;perspective-origin:50% 35%;touch-action:pan-y;-webkit-user-select:none;user-select:none;margin:18px 0 60px;position:relative}.vm-stage{aspect-ratio:840/975;width:100%;transform-style:preserve-3d;will-change:transform;margin-top:-64%;position:absolute;top:50%;left:0;transform:rotateX(48deg)}.vm-sheet{background:#fbf5e6;position:absolute;inset:0;transform:translateZ(0);box-shadow:0 1px 2px #1f1a171a,0 30px 50px -14px #1f1a1747}.vm-sheet svg{width:100%;height:100%;display:block;overflow:visible}.vm-frame{fill:none;stroke:var(--red);stroke-width:.8px;opacity:.55}.vm-land{fill:#f0e4c9;stroke:var(--red);stroke-width:1.7px;stroke-linejoin:round}.vm-isles .isle{fill:#f0e4c9;stroke:var(--red);stroke-width:1.3px}.vm-isles .reef{fill:none;stroke:var(--red);stroke-width:1.1px}.vm-route{fill:none;stroke:var(--red);stroke-width:2.8px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.8s cubic-bezier(.5,0,.3,1) .15s forwards trip-draw}@keyframes trip-draw{to{stroke-dashoffset:0}}.vm-lead{stroke:var(--ink);stroke-width:.9px;stroke-dasharray:2.5 3;opacity:.4;transition:opacity .3s,stroke .3s}.vm-tick{fill:var(--ink);opacity:.4}.vm-dot{fill:#fbf5e6;stroke:var(--red);stroke-width:1.6px;transition:fill .3s}.vm-spot.on .vm-dot,.vm-heart{fill:var(--red)}.vm-spot.sel .vm-lead{opacity:.9;stroke:var(--red)}.vm-spot.sel .vm-tick{fill:var(--red);opacity:1}.vm-pin{width:0;height:0;transform-style:preserve-3d;position:absolute}.vm-foot{left:calc(var(--P) * -.3);width:calc(var(--P) * .6);pointer-events:none;background:radial-gradient(closest-side,#1f1a1738,#1f1a1700);border-radius:50%;height:11px;position:absolute;top:-5px}.vm-stand{width:var(--P);transform-origin:50% 100%;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;justify-content:flex-end;align-items:center;margin:0;padding:0 0 2px;display:flex;position:absolute;bottom:0;left:0;transform:translate(-50%)rotateX(-54deg)}.vm-fig{filter:drop-shadow(0 5px 5px #1f1a1729);transform-origin:50% 100%;width:100%;transition:transform .4s cubic-bezier(.3,.9,.4,1);display:block}.vm-fig .print{width:100%}.vm-pin.sel .vm-fig{transform:scale(1.1)translateY(-3px)}.vm-stand:hover .vm-fig{transform:translateY(-3px)}.vm-pin.sel .vm-stand:hover .vm-fig{transform:scale(1.1)translateY(-5px)}.vm-cap{letter-spacing:.02em;color:var(--muted);white-space:nowrap;background:#fbf5e6eb;border-radius:3px;margin-top:3px;padding:4px 7px 3px;font-size:12px;line-height:1;transition:color .3s,box-shadow .3s;display:inline-block;box-shadow:0 1px 3px #1f1a171f}.vm-pin.on .vm-cap{color:var(--ink)}.vm-pin.sel .vm-cap{color:var(--red);font-weight:500}.vm-stand:focus-visible{outline:none}.vm-stand:focus-visible .vm-cap{box-shadow:0 0 0 2px var(--red);color:var(--red)}.vm-cap-heart{vertical-align:-1px;background:var(--red);width:9px;height:9px;margin:0 5px 0 0;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 18'%3E%3Cpath d='M0 7 C -10 -1, -9 -10, 0 -4.5 C 9 -10, 10 -1, 0 7 Z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 18'%3E%3Cpath d='M0 7 C -10 -1, -9 -10, 0 -4.5 C 9 -10, 10 -1, 0 7 Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.vm-hint{text-align:center;color:var(--muted);pointer-events:none;max-width:none;margin:0;font-size:12.5px;position:absolute;bottom:-52px;left:0;right:0}.vm .print.drawn{transition-duration:.6s}.trip-plan{padding-top:6px}.trip-sum{color:var(--muted);max-width:none;margin:0 0 10px;font-size:15px}.trip-sum strong{color:var(--ink);font-weight:500}.trip-list{border-top:1px solid #1f1a1729;margin:0;padding:0;list-style:none}.trip-list li{border-bottom:1px solid #1f1a1729}.trip-list button{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:3px;grid-template-columns:54px minmax(0,1fr);gap:12px;margin:0;padding:13px 10px 13px 0;transition:background .25s;display:grid}.trip-list button:hover{background:#1f1a1709}.trip-list button:focus-visible{outline:2px solid var(--red);outline-offset:2px}.trip-list li.sel button{background:#b23a2a0f}.trip-n{color:var(--red);flex-direction:column;align-items:center;padding-top:4px;display:flex}.trip-n b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:30px;font-weight:400;line-height:.9}.trip-n small{letter-spacing:.12em;text-transform:uppercase;margin-top:4px;font-size:10px}.trip-what{min-width:0;display:block}.trip-name{font-family:var(--display);color:var(--ink);font-size:22px;font-weight:400;line-height:1.1;transition:color .25s;display:block}.trip-list li.sel .trip-name{color:var(--red)}.trip-when{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:11px;display:block}.trip-why{margin-top:6px;font-size:14.5px;line-height:1.5;display:block}.trip-more{color:var(--muted);margin-top:8px;font-size:14px;line-height:1.55;display:block}.trip-more em{color:var(--red);font-style:normal}.trip-aside{color:var(--muted);max-width:none;margin:14px 0 0;font-size:14px;line-height:1.55}.trip-aside strong{color:var(--ink);font-weight:500}.trip-fine{color:var(--muted);max-width:none;margin:16px 0 0;font-size:12.5px;line-height:1.55}.trip.trip-still .vm-route{stroke-dashoffset:0;animation:none}.trip.trip-still .vm-fig,.trip.trip-still .vm-cap,.trip.trip-still .vm-lead,.trip.trip-still .vm-dot,.trip.trip-still .trip-list button,.trip.trip-still .trip-name{transition:none}@media (prefers-reduced-motion:reduce){.vm-route{stroke-dashoffset:0;animation:none}.vm-fig,.vm-cap,.vm-lead{transition:none}}@media (hover:none){.vm-hint{display:none}.vm-stand:hover .vm-fig{transform:none}.vm-pin.sel .vm-stand:hover .vm-fig{transform:scale(1.1)translateY(-3px)}}@media (width<=860px){.trip{margin:10vh 0 8vh}.trip-body{grid-template-columns:1fr;gap:26px}.vm{aspect-ratio:840/700;margin:44px 0 36px}.vm-cap{padding:3px 6px 2px;font-size:10.5px}.trip-list button{grid-template-columns:46px minmax(0,1fr);gap:10px;padding:12px 6px 12px 0}.trip-n b{font-size:26px}.trip-name{font-size:20px}}.vm-sheet{box-shadow:none!important;background:0 0!important}.vm-frame{display:none}.vm-land{filter:drop-shadow(0 10px 10px #1f1a1724)}.travel-cta{text-align:center;display:block;margin:14vh auto 4vh!important}.tblock-art{flex-direction:column;align-items:flex-start;display:flex}.tblock-art .tb-print{order:-1;margin-bottom:18px}.tb-airport{width:min(86%,380px)}.tb-visa{width:min(62%,262px);width:90px!important}.tb-airport{max-width:86%;width:340px!important}.grab-note strong{font-weight:500}:root{--muted:#625951}.offer-label,.bp-vn{opacity:1!important}.tb-airport{margin-top:35px;width:250px!important}.cel-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;column-gap:5vw;max-width:none;display:grid}.cel-head .lion-dance{grid-area:1/2/span 3}.cel-head h1,.cel-head .lede,.cel-head .thread-start{grid-column:1}.lion-dance{aspect-ratio:1362/898;justify-self:end;width:100%;max-width:640px;position:relative}.ld{opacity:0;width:100%;height:100%;animation:.9s .2s forwards ld-in;display:block;position:absolute;inset:0}.ld-lion{transform-origin:22% 96%;animation:.9s .2s forwards ld-in,1.8s ease-in-out 1.1s infinite ld-lion}.ld-dia{transform-origin:58% 96%;animation:.9s .35s forwards ld-in,2.6s ease-in-out 1.1s infinite ld-sway}.ld-drum{transform-origin:86% 96%;animation:.9s .5s forwards ld-in,.9s ease-in-out 1.1s infinite ld-beat}@keyframes ld-in{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0}}@keyframes ld-lion{0%,to{transform:rotate(-1.6deg)translateY(0)}50%{transform:rotate(1.6deg)translateY(-1.6%)}}@keyframes ld-sway{0%,to{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg)}}@keyframes ld-beat{0%,to{transform:translateY(0)}40%{transform:translateY(-.9%)}}@media (prefers-reduced-motion:reduce){.ld{opacity:1;animation:none!important}}@media (width<=860px){.cel-head{grid-template-columns:1fr}.cel-head .lion-dance{order:-1;grid-area:auto/1;justify-self:center;margin:0 0 8px}}.qa-wrap{z-index:2;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:5vw;margin-top:8vh;display:grid;position:relative}.qa-wrap .qa-list{grid-area:1/1;max-width:none;margin:0}.qa-photo{background:#fbf6ea;grid-area:1/2;margin:0;padding:14px;position:sticky;top:12vh;box-shadow:0 1px 2px #1f1a1714,0 18px 40px #1f1a1724}.qa-photo:after{content:"";border:1px solid var(--red);opacity:.55;pointer-events:none;position:absolute;inset:7px}.qa-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 60%;width:100%;display:block}@media (width<=860px){.qa-wrap{grid-template-columns:1fr;gap:28px;margin-top:5vh}.qa-photo{grid-area:1/1;padding:10px;position:relative;top:auto}.qa-photo:after{inset:5px}.qa-photo img{aspect-ratio:3/2;object-position:50% 50%}.qa-wrap .qa-list{grid-row:2}.qhead .q-carp{justify-self:end;margin-top:-10px;width:34vw!important}}.qa-wrap .qa p{max-width:none!important}@media (width>=861px){.qa-wrap{grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:7vw}}@media (width<=860px){.celebrations .event{row-gap:0}.celebrations .event-copy{margin-top:8px!important}}@media (width>=861px){.qa-wrap{grid-template-columns:minmax(0,640px) minmax(240px,340px);justify-content:space-between;gap:10vw}}.qa-photo{box-shadow:none!important;background:0 0!important;padding:0 0 18%!important}.qa-photo:after{display:none}.qa-shot{background:#fbf6ea;padding:12px;display:block;position:relative;box-shadow:0 1px 2px #1f1a1714,0 18px 40px #1f1a1729}.qa-shot:after{content:"";border:1px solid var(--red);opacity:.55;pointer-events:none;position:absolute;inset:6px}.qa-shot img{object-fit:cover;width:100%;display:block}.qa-back{width:74%;margin-left:auto;transform:rotate(2.5deg)}.qa-back img{object-position:50% 70%;aspect-ratio:2/3!important}.qa-front{z-index:1;width:76%;position:absolute;bottom:0;left:0;transform:rotate(-3deg)}.qa-front img{object-position:50% 55%;aspect-ratio:3/2!important}@media (width>=861px){.qa-wrap{grid-template-columns:minmax(0,640px) minmax(280px,400px);justify-content:start;gap:8vw}}@media (width<=860px){.qa-photo{padding:0 0 22%!important}.qa-back{width:64%}.qa-front{width:74%}.qa-shot{padding:8px}.qa-shot:after{inset:4px}.qhead{row-gap:8px}.qhead .q-carp{z-index:3;position:relative;margin:0 0 -56px!important}.qa-wrap{margin-top:0!important}.qhead{z-index:4!important}.qhead .q-carp{margin-bottom:-40px!important}}@media (width<=860px){.qhead .q-carp{justify-self:start!important;width:32vw!important;margin:0 0 -38vw!important}}.qa-back img{aspect-ratio:4/5!important;object-position:50% 100%!important}.qa-crop{display:block;overflow:hidden}.qa-back img{transform-origin:50% 96%;transform:scale(1.45);aspect-ratio:4/5!important;object-position:50% 100%!important}@media (width<=860px){.qhead .q-scholar{width:34vw!important;margin-bottom:-30vw!important}}.festival-gate{background-color:var(--paper);background-repeat:repeat;background-size:420px 420px}.festival-gate .festival{background:0 0}.joy{z-index:2;max-width:860px;margin:8vh auto 0;position:relative}.joy-card{background:#fbf6ea;border-radius:4px;padding:34px 38px 36px;box-shadow:0 1px 2px #1f1a1714,0 18px 40px #1f1a171f}.joy-card h2{margin:0 0 12px;font-size:clamp(30px,3vw,44px)}.joy-card p{max-width:46ch;margin:0}.joy-cta{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:24px;display:flex}.joy-url{color:var(--muted);font-size:13px}.joy-frame{background:#fff;border:0;border-radius:4px;width:100%;height:1400px;margin-top:28px;display:block;box-shadow:0 1px 2px #1f1a1714,0 18px 40px #1f1a171f}@media (width<=860px){.joy-card{padding:24px 22px 26px}.joy-frame{height:1600px}}.joy-cta .button,.nav-rsvp,.nav-rsvp[aria-current]{text-decoration:none!important}.joy-frame{height:1050px}@media (width<=860px){.joy-frame{height:1200px}}
