#invitation{position:relative}.material-credits-trigger{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:20;border:0;background:transparent;color:var(--muted);font:12px/1.5 var(--sans);text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:8px;cursor:pointer}.material-credits-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;padding:28px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);font:15px/1.8 var(--sans)}.material-credits-dialog::backdrop{background:#24180f88}.material-credits-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px}.material-credits-dialog h2{margin:0;font-size:22px}.material-credits-dialog h3{margin:20px 0 4px;font-size:16px}.material-credits-dialog p{margin:6px 0}.material-credits-dialog a{text-decoration:underline;text-underline-offset:3px}.material-credits-dialog button{min-width:44px;min-height:44px;border:1px solid var(--line);background:transparent;cursor:pointer;font:inherit}@media(min-width:801px){.material-credits-trigger{right:160px}}@font-face{font-family:Editorial;src:local("Georgia");font-display:swap}.postcard .character,.story-portrait.character,.memory-scene .character,.invite-people .character{mix-blend-mode:normal}:root{--sand: #e5dbd1;--paper: #faf5e9;--cream: #f3ebdf;--red: #bb240a;--blue: #315fb5;--yellow: #edcc4d;--brown: #623f1b;--green: #647744;--ink: #382b22;--muted: #786451;--line: #cbbba8;--serif: Editorial, Georgia, "Songti SC", "STSong", serif;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{min-width:1100px;scroll-behavior:smooth;scroll-padding-top:94px;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body{margin:0;background:var(--sand);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:none;outline-offset:5px}button{color:inherit}::selection{background:var(--yellow);color:var(--brown)}.skip-link{position:fixed;left:20px;top:-100px;background:var(--paper);padding:10px;z-index:200}.skip-link:focus{top:10px}.site-header{height:100px;max-width:1440px;margin:auto;padding:0 5.3%;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:23px;line-height:1.05}.brand-mark{background:var(--red);border-radius:50%;height:43px;width:43px;display:grid;place-items:center;color:var(--paper);font-style:italic;font-size:32px}.brand-sub{display:block;font:10px/1.7 var(--sans);letter-spacing:2.1px;margin-top:5px}.site-header nav{margin-left:auto;display:flex;gap:36px;font-size:14px}.site-header nav a:hover{color:var(--red)}.cover{position:relative;max-width:1440px;min-height:720px;margin:auto;display:grid;grid-template-columns:1.12fr 1fr;align-items:center;padding:50px 5.3% 106px;column-gap:20px;overflow:hidden}.cover-copy{position:relative;z-index:2;padding-top:6px}.eyebrow{display:flex;align-items:center;gap:13px;font-size:11px;font-weight:600;letter-spacing:2px;color:var(--brown);margin:0 0 25px}.little-line{width:26px;height:2px;background:var(--red);display:inline-block}h1{font-family:var(--serif);font-size:clamp(44px,4.35vw,66px);font-weight:500;line-height:1.35;letter-spacing:-2px;color:var(--red);margin:0 0 24px}h1 span{display:block}.second-line{position:relative;white-space:nowrap}.cover-note{font-size:17px;color:var(--brown);margin:0 0 32px}.primary-link{display:inline-flex;gap:30px;align-items:center;background:var(--red);color:var(--paper);padding:15px 25px;border-radius:3px;font-size:15px}.primary-link:hover{background:#95200c}.primary-link span:last-child{font-size:23px;line-height:1}.cover-footnote{margin-top:54px}.handwritten{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--green);transform:rotate(-15deg);display:inline-block}.cover-footnote p{font-size:12px;color:var(--muted);margin-top:18px}.cover-art{position:relative;height:515px;max-width:510px;width:100%;justify-self:end;isolation:isolate}.paper-under{position:absolute;inset:20px 18px 6px 17px;background:var(--yellow);transform:rotate(6deg);box-shadow:0 12px 25px #623f1b12}.postcard{position:absolute;inset:0 25px 27px 12px;background:var(--paper);transform:rotate(-4deg);border:9px solid var(--paper);box-shadow:0 6px 16px #623f1b22;overflow:hidden}.postcard:before{content:"";position:absolute;inset:0;border:4px solid transparent;border-image:repeating-linear-gradient(45deg,var(--red) 0 9px,transparent 9px 15px,var(--blue) 15px 24px,transparent 24px 30px) 6;pointer-events:none;z-index:5}.postcard-top{position:absolute;left:21px;right:20px;top:19px;display:flex;align-items:center;justify-content:space-between;z-index:3;font-size:10px;letter-spacing:2px;color:var(--blue)}.postmark{font-size:9px;border:1px solid var(--blue);height:63px;width:63px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.4;transform:rotate(12deg)}.postmark strong{font-size:17px;letter-spacing:1px}.skyline-window{position:absolute;inset:90px 13px 64px;overflow:hidden;background:#efe8d8}.skyline-window img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;opacity:.95}.character-pair{position:absolute;left:20px;right:10px;bottom:37px;height:280px;display:flex;align-items:end;justify-content:center;pointer-events:none}.character{height:280px;width:230px;background-image:url(/assets/optimized/characters-transparent.webp);background-size:200% 200%;background-repeat:no-repeat;flex-shrink:0;transform-origin:50% 85%;filter:none}.character.boy{background-position:0 0;margin-right:-42px}.character.girl{background-position:0 100%}.waving .boy{animation:boy-wave .42s steps(1) 5}.waving .girl{animation:girl-wave .42s steps(1) 5 .15s}.waving .character-pair{animation:hello-bounce .6s ease-in-out 3}.postcard-caption{position:absolute;bottom:21px;left:0;right:0;text-align:center;color:var(--brown);font:italic 18px var(--serif)}.paper-label{position:absolute;background:var(--paper);border:1px solid var(--brown);box-shadow:2px 3px #623f1b1c;font-size:11px;letter-spacing:1.5px;padding:8px 13px;z-index:6}.country-one{top:125px;left:-25px;transform:rotate(-8deg);color:var(--blue)}.country-two{right:-3px;top:270px;transform:rotate(7deg);color:var(--red)}.cover-bottom{position:absolute;left:5.3%;right:5.3%;bottom:27px;border-top:1px solid var(--line);padding-top:21px;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1.5px;color:var(--muted)}.first-page{padding:100px 6%;background:var(--paper);text-align:center}.first-page .eyebrow{justify-content:center}h2{font:500 45px/1.3 var(--serif);margin:0 0 25px;color:var(--brown)}footer{display:flex;justify-content:space-between;padding:30px 6%;font-size:14px}.reading-progress{position:fixed;left:0;bottom:0;height:3px;background:var(--red);width:0;z-index:99}@keyframes boy-wave{0%,to{background-position:0 0}50%{background-position:100% 0}}@keyframes girl-wave{0%,to{background-position:0 100%}50%{background-position:100% 100%}}@keyframes hello-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(min-width:1500px){.cover{min-height:780px}.cover-art{height:545px}}@media(max-width:1000px){.cover{grid-template-columns:1fr 1fr;padding-left:5%;padding-right:5%;min-height:680px;gap:10px}.cover-art{height:465px}.character-pair{left:0;right:0;height:260px}.character{width:205px;height:250px}.country-one{left:-12px}.cover-note{font-size:15px}.cover-footnote{margin-top:35px}h1{font-size:45px}.cover-copy .eyebrow{font-size:10px;letter-spacing:1px}}@media(max-width:720px){.site-header{height:78px;padding:0 6%;gap:14px}.wordmark{font-size:20px}.brand-mark{width:37px;height:37px}.site-header nav{display:none}.cover{display:flex;flex-direction:column;padding:39px 6% 89px;overflow:hidden}.cover-copy{width:100%;padding:0}.cover-copy .eyebrow{font-size:10px;margin-bottom:17px}h1{font-size:clamp(37px,8.7vw,62px);line-height:1.3;letter-spacing:-1px;margin-bottom:16px}.cover-note{font-size:15px;margin-bottom:23px}.primary-link{padding:12px 19px;font-size:14px;gap:25px}.cover-footnote{margin-top:18px}.cover-footnote .handwritten{display:none}.cover-footnote p{font-size:11px;margin:0}.cover-art{margin-top:34px;width:94%;height:440px;align-self:center;max-width:410px}.country-one{left:-16px;top:115px;font-size:10px}.country-two{right:-15px;top:243px;font-size:10px}.postcard{inset:0 15px 22px 0}.paper-under{inset:13px 10px 8px}.character-pair{height:245px;bottom:41px}.character{height:245px;width:210px}.character.boy{margin-right:-54px}.postcard-caption{font-size:16px;bottom:23px}.cover-bottom{bottom:23px;left:6%;right:6%;font-size:9px;letter-spacing:.5px}.cover-bottom span:nth-child(2){font-size:11px}.first-page{padding:80px 7%}h2{font-size:32px}footer{gap:20px;flex-wrap:wrap}.brand-sub{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}.chapter{position:relative;padding:95px max(6%,calc((100vw - 1250px)/2));overflow:hidden}.chapter-heading{text-align:center;max-width:780px;margin:0 auto 50px}.chapter-heading .eyebrow,.invitation>.eyebrow{justify-content:center}h2{font-size:clamp(32px,3.2vw,47px);line-height:1.4;letter-spacing:-1px}h2 em{font-style:normal;color:var(--red);display:block}.chapter-intro{font-size:16px;color:var(--muted);line-height:1.9;margin:20px 0 0}.journey{background:var(--paper);padding-bottom:20px;border-top:1px solid var(--line)}.atlas-spread{background:#eee5d4;border:1px solid #d4c4aa;max-width:1080px;margin:auto;box-shadow:7px 9px #eee6db;position:relative;transform:rotate(-.7deg);padding:25px 34px 15px}.atlas-spread:before{content:"";position:absolute;width:1px;left:50%;top:0;bottom:0;background:#b7a79340;box-shadow:6px 0 15px #623f1b10}.atlas-meta{display:flex;justify-content:space-between;font-size:12px;letter-spacing:2px;color:var(--brown);padding-bottom:17px;border-bottom:1px solid #b9a98b80}.atlas-chart{position:relative;width:100%;aspect-ratio:900/410;margin:15px auto 0}.route-map{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.route-under{fill:none;stroke:#bba98f;stroke-width:2;stroke-dasharray:4 9;opacity:.3}.draw-route{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.blue-route{stroke:var(--blue)}.red-route{stroke:var(--red)}.arrival-halo{opacity:0;transition:opacity .3s}.arrived .arrival-halo{opacity:1}.map-label{position:absolute;display:flex;flex-direction:column;line-height:1.4;transform:translate(-50%,-50%)}.map-label strong{font:500 29px/1.4 var(--serif)}.map-person{font-size:12px;color:var(--muted);margin-bottom:5px}.map-country{font-size:12px;letter-spacing:1px;margin-top:5px}.map-china{left:16%;top:24%;color:var(--blue)}.map-india{left:9%;top:71%;color:var(--red)}.map-shanghai{left:85%;top:53%;color:var(--brown)}.map-shanghai strong{font-size:38px}.atlas-handwritten{font:italic 18px var(--serif);position:absolute;bottom:11%;left:40%;color:var(--green);transform:rotate(-5deg)}.atlas-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #b9a98b80;padding-top:10px;gap:15px}.atlas-bottom p{font-size:12px;color:var(--muted)}.atlas-bottom button{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--brown);padding:10px;font-size:14px}.atlas-bottom button:hover{color:var(--red)}.atlas-bottom button>span:first-child{font-size:23px}.chapter-transition{display:flex;justify-content:center;gap:17px;align-items:center;margin:60px auto 0;color:var(--green)}.chapter-transition span{width:60px;height:1px;background:var(--line)}.chapter-transition i{font-size:23px;font-style:normal}.voices{background:var(--paper);padding-top:65px;padding-bottom:100px}.voices-title{max-width:950px;margin-bottom:60px}.voices-title h2{margin-bottom:15px}.story-spread{display:grid;grid-template-columns:1fr 1fr;max-width:1160px;margin:auto;gap:34px;align-items:center}.window-page{background:#e9d69e;padding:23px 23px 18px;box-shadow:-5px 7px #d9c59755;transform:rotate(-3deg) translateY(var(--paper-y, 0px));position:relative}.window-page:before{content:"";position:absolute;background:#e5dbd1af;width:104px;height:30px;left:calc(50% - 52px);top:-14px;transform:rotate(3deg);z-index:5}.window-scene{position:relative;height:380px;border:9px solid var(--brown);border-radius:45% 45% 0 0;background:#e5dbc1;overflow:hidden}.window-city{position:absolute;width:110%;height:65%;object-fit:cover;left:-5%;top:-5%;transform:translateY(var(--window-y, 0px));will-change:transform}.window-mullion{position:absolute;z-index:1;left:0;right:0;top:47%;border-top:8px solid var(--brown)}.window-mullion:after{content:"";position:absolute;height:280px;width:7px;background:var(--brown);bottom:0;left:50%}.window-foreground{position:absolute;left:0;right:0;bottom:0;height:235px;display:flex;align-items:flex-end;justify-content:center;background:transparent;isolation:isolate}.window-foreground .character{width:230px;height:250px;mix-blend-mode:normal}.window-foreground .boy{margin-right:-50px}.window-caption{display:flex;align-items:center;justify-content:space-between;padding:20px 0 0;gap:10px}.window-caption .handwritten{font-size:20px;color:var(--brown);transform:none}.small-label{font-size:12px;color:var(--brown)}.voice-page{position:relative;min-height:510px;align-self:stretch;padding:30px 40px 45px;background:#fffaf1;border:1px solid #d7cbb8;box-shadow:5px 6px #f0e9dd;transform:rotate(1.4deg) translateY(var(--paper-y, 0px))}.voice-tabs{display:flex;border-bottom:1px solid var(--line);gap:26px}.voice-tabs button{position:relative;border:0;background:none;padding:6px 2px 16px;display:flex;align-items:center;gap:16px;font-size:14px;min-height:48px;color:var(--muted)}.voice-tabs button[aria-selected=true]{color:var(--red)}.voice-tabs button[aria-selected=true]:after{content:"";height:2px;position:absolute;bottom:-1px;background:var(--red);left:0;right:0}.tab-number{font-size:12px;opacity:.6}.voice-panel{position:relative;padding-top:30px;animation:ink-in .3s ease}.voice-panel[hidden]{display:none}.voice-eyebrow{font-size:12px;letter-spacing:2px;color:var(--muted);margin:0 0 14px}.quote-mark{position:absolute;left:-8px;top:45px;font:100px var(--serif);color:#bb240a17;pointer-events:none}.voice-panel blockquote{position:relative;margin:18px 0 25px;font:500 29px/1.7 var(--serif);color:var(--brown)}.voice-prompt{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:12px}.placeholder-note{font-size:12px;color:var(--muted);border-left:2px solid var(--yellow);padding-left:9px}.voice-signature{display:flex;gap:13px;align-items:center;margin-top:32px;font-size:14px;color:var(--green)}.signature-line{width:33px;border-top:1px solid var(--green)}.page-number{position:absolute;bottom:15px;right:27px;font-size:12px;color:var(--muted);letter-spacing:1.5px}.memories{background:#e5dbd1;background-image:linear-gradient(#623f1b04 1px,transparent 1px),linear-gradient(90deg,#623f1b04 1px,transparent 1px);background-size:26px 26px;padding-top:85px;padding-bottom:85px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.memory-heading{display:flex;justify-content:space-between;align-items:end;gap:35px}.memory-heading h2{margin-bottom:0}.flip-instruction{font-size:14px;color:var(--muted);max-width:220px}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin:65px auto 20px;max-width:1150px;padding:0 5px}.memory-card{height:385px;border:0;background:transparent;padding:0;position:relative;perspective:1200px;text-align:left;border-radius:0;transform:rotate(-4deg) translateY(var(--card-y, 0px));-webkit-appearance:none}.memory-two{transform:rotate(3deg) translateY(var(--card-y, 12px))}.memory-three{transform:rotate(-2deg) translateY(var(--card-y, 0px))}.memory-card:focus-visible{outline-offset:12px}.flip-inner{position:relative;width:100%;height:100%;display:block;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.22,.8,.24,1)}.memory-card[aria-pressed=true] .flip-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;inset:0;display:flex;flex-direction:column;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 7px 13px #623f1b20;background:var(--paper);padding:16px}.card-front img{height:245px;min-height:0;width:100%;object-fit:cover}.tape{position:absolute;top:-13px;left:calc(50% - 42px);width:84px;height:29px;background:#c8b79599;transform:rotate(4deg);z-index:2}.memory-two .tape{background:#bb240a36;transform:rotate(-9deg)}.card-title{font:23px/1.5 var(--serif);color:var(--brown);margin-top:16px}.card-meta{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.5px;color:var(--muted);margin-top:auto;gap:10px}.card-meta i{font-size:18px;font-style:normal}.card-back{transform:rotateY(180deg);padding:28px;justify-content:start;color:var(--brown);border:1px solid #b9a98b}.back-number{font:italic 27px var(--serif);color:var(--red);margin-bottom:15px}.card-back strong{font:500 25px/1.5 var(--serif);margin-bottom:18px}.card-back>span:not(.back-number){font-size:15px;line-height:1.9}.card-back small{font-size:12px;margin-top:auto;color:var(--muted)}.memory-scene{position:relative;height:245px;min-height:245px;background:#edcc4d70;display:flex;justify-content:center;align-items:end;overflow:hidden;isolation:isolate}.memory-scene .character{position:absolute;bottom:-38px;height:245px;width:220px;mix-blend-mode:normal}.memory-scene .boy{left:-25px}.memory-scene .girl{right:-25px}.memory-scenic-word{position:absolute;top:5px;left:15px;color:var(--red);font:italic 27px var(--serif);transform:rotate(-5deg);z-index:1}.ticket-front{background:var(--blue);color:var(--paper);padding:29px 24px;outline:1px dashed #e5dbd170;outline-offset:-10px}.ticket-eyebrow{font-size:12px;letter-spacing:2px}.ticket-heading{font:44px/.95 var(--serif);letter-spacing:-1px;margin-top:23px}.ticket-heading em{font-size:38px;color:var(--yellow);font-weight:400}.ticket-rule{margin:30px 0 18px;border-top:1px dashed #e5dbd180}.ticket-details{display:flex;justify-content:space-between;gap:15px;font-size:12px;line-height:2}.ticket-details strong{font-size:12px;font-weight:500}.ticket-footer{margin-top:auto;font-size:12px}.memory-margin{display:block;text-align:center;margin:42px auto 0;color:var(--brown);font-size:19px}.invitation{text-align:center;background:var(--paper);padding-top:92px;padding-bottom:65px}.invitation h2{margin-bottom:45px}.invitation-fold{max-width:700px;margin:auto;position:relative;background:var(--sand);padding:0 40px 24px;border:1px solid #c8b89c;box-shadow:5px 7px #e5dbd180;isolation:isolate}.invitation-flap{height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border-bottom:1px solid #bdac9360;transition:height .6s ease,opacity .4s ease;margin-bottom:24px;overflow:hidden}.seal{height:67px;width:67px;border-radius:50%;background:var(--red);color:var(--paper);border:3px double #eb7c53;display:grid;place-items:center;font:italic 46px var(--serif);box-shadow:2px 4px #623f1b18}.invitation-flap .handwritten{color:var(--brown);font-size:19px}.invitation-sheet{background:var(--paper);border:1px solid #d9cbb5;padding:36px 30px 28px;margin:0 0 23px;animation:letter-in .6s ease;transform-origin:center top}.invitation-sheet[hidden]{display:none}.invitation-fold.is-open .invitation-flap{height:0;opacity:0;margin-bottom:25px}.invite-kicker{font-size:12px;letter-spacing:3px;color:var(--red)}.invitation-sheet h3{font:500 29px/1.5 var(--serif);color:var(--brown);margin:20px auto 27px;max-width:410px}.invite-info{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);padding-top:24px}.invite-info>div{display:flex;flex-direction:column;gap:12px}.invite-info span{font-size:12px;color:var(--muted);letter-spacing:1px}.invite-info strong{font-size:17px;font-weight:500}.invitation-sheet>p{font-size:12px;color:var(--muted);margin:26px auto 0;line-height:1.8;max-width:410px}.ending-note{font-family:var(--serif);font-size:19px;margin-top:45px;color:var(--red)}.back-to-top{font-size:14px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:4px;display:inline-block;margin-top:16px}footer{align-items:center;border-top:1px solid var(--line);font-size:12px;padding:27px 6%;color:var(--muted)}.footer-brand{font:italic 22px var(--serif);color:var(--red)}.reveal{opacity:1;transform:translateY(0)}.motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(22px)}.motion-ready .reveal{transition:opacity .7s ease,transform .7s ease}.cover-footnote p{font-size:12px}.wave-button{font-size:14px}.character-pair{isolation:isolate;background:transparent}.postcard .character-pair{left:8px;right:8px;bottom:44px}.postcard .character{height:260px;width:230px}.postcard .boy{margin-right:-43px}.site-header{position:relative;z-index:10}@keyframes ink-in{0%{opacity:.3;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes letter-in{0%{opacity:0;transform:translateY(12px) rotateX(-15deg)}to{opacity:1;transform:none}}@media(max-width:1050px){.chapter{padding-left:5%;padding-right:5%}.story-spread{gap:24px}.voice-page{padding:27px}.voice-panel blockquote{font-size:25px}.window-scene{height:360px}.window-caption .handwritten{font-size:16px}.memory-grid{gap:22px}.memory-card{height:375px}.card-front img,.memory-scene{height:220px;min-height:220px}.card-title{font-size:19px}.ticket-heading{font-size:37px}.ticket-heading em{font-size:32px}.card-back{padding:22px}.card-back strong{font-size:22px}.card-back>span:not(.back-number){font-size:14px}.ticket-details{font-size:10px}.ticket-details strong{font-size:11px}}@media(max-width:720px){.chapter{padding:65px 6%}.chapter-heading{margin-bottom:36px}.eyebrow{font-size:12px;letter-spacing:1px}.chapter-intro{font-size:15px}.journey{padding-bottom:20px}.atlas-spread{padding:17px 13px 12px;transform:none;box-shadow:4px 5px #eee6db}.atlas-meta{font-size:10px;letter-spacing:1px;padding-bottom:14px}.atlas-chart{aspect-ratio:auto;height:300px}.atlas-chart .route-map{top:25px;height:255px}.map-label{background:#eee5d4b0;padding:2px 3px}.map-label strong{font-size:23px}.map-person{font-size:11px}.map-country{font-size:10px}.map-china{left:18%;top:28%}.map-india{left:16%;top:71%}.map-shanghai{left:79%;top:56%}.map-shanghai strong{font-size:28px}.map-shanghai .map-country{font-size:9px;letter-spacing:0}.atlas-handwritten{font-size:14px;left:21%;bottom:8%}.atlas-bottom{align-items:start;gap:4px;padding-top:7px}.atlas-bottom p{font-size:11px;max-width:170px}.atlas-bottom button{font-size:12px;white-space:nowrap;min-height:44px}.chapter-transition{margin-top:43px}.voices{padding-top:33px}.voices-title{margin-bottom:42px}.voices-title h2{font-size:31px}.story-spread{grid-template-columns:1fr;gap:32px}.window-page{margin:0 9px;padding:17px;transform:rotate(-1deg) translateY(var(--paper-y, 0px))}.window-scene{height:340px}.window-caption .handwritten{font-size:18px}.window-foreground .character{width:215px;height:245px}.window-foreground .boy{margin-right:-58px}.voice-page{margin:0 4px;min-height:465px;padding:25px 28px 40px;transform:rotate(1deg) translateY(var(--paper-y, 0px))}.voice-panel blockquote{font-size:27px}.voice-tabs{gap:30px}.voice-tabs button{font-size:15px}.placeholder-note,.voice-prompt{font-size:13px}.voice-eyebrow{font-size:11px}.memory-heading{display:block}.memory-heading h2{font-size:31px}.flip-instruction{max-width:100%;font-size:14px;margin-top:18px}.memory-grid{grid-template-columns:1fr;max-width:335px;gap:38px;margin-top:42px}.memory-card{height:385px}.memory-two{transform:rotate(3deg) translateY(var(--card-y, 0px))}.card-front img,.memory-scene{height:250px;min-height:250px}.card-title{font-size:23px}.card-meta{font-size:12px}.card-back{padding:28px}.card-back strong{font-size:27px}.card-back>span:not(.back-number){font-size:16px}.ticket-front{padding:31px}.ticket-heading{font-size:48px}.ticket-heading em{font-size:43px}.ticket-details{font-size:11px;line-height:2}.ticket-details strong{font-size:12px}.memory-margin{font-size:16px;margin-top:34px}.invitation h2{font-size:32px}.invitation-fold{padding:0 20px 23px}.invitation-flap{height:175px}.invitation-sheet{padding:28px 18px 23px}.invitation-sheet h3{font-size:25px}.invite-info{gap:12px}.invite-info strong{font-size:15px}.ending-note{font-size:18px}.back-to-top{min-height:44px;padding-top:13px}footer{padding:25px 6%;justify-content:center;text-align:center;gap:12px}footer>span:nth-child(2){width:100%}.footer-brand{font-size:25px}.cover-copy .eyebrow,.cover-bottom{font-size:10px}.cover-bottom span:nth-child(2){font-size:11px}.postcard .character{height:245px;width:210px}.postcard .boy{margin-right:-48px}.postcard .character-pair{bottom:41px}}@media(prefers-reduced-motion:reduce){.motion-ready .reveal:not(.is-visible){opacity:1;transform:none}.draw-route{stroke-dashoffset:0!important}.arrival-halo{opacity:1}.paper-parallax,.memory-card{--paper-y: 0px !important;--card-y: 0px !important}.window-city{--window-y: 0px !important}.character-pair{animation:none!important}}.story-spread>*{min-width:0}.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.memory-card{height:auto;min-height:385px}.flip-inner{display:grid;height:100%;min-height:inherit}.card-front,.card-back{position:relative;inset:auto;grid-area:1/1;min-width:0}.card-back{gap:0}.card-back small{padding-top:18px}.card-meta{padding-top:12px}.ticket-heading{overflow-wrap:anywhere}.card-back strong,.card-back>span{overflow-wrap:anywhere}.voice-panel:focus-visible{outline:none;outline-offset:8px}.second-line{white-space:normal}@media(min-width:721px)and (max-width:960px){.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:45px}.memory-three{grid-column:1/-1;max-width:360px;width:100%;justify-self:center}.site-header nav{gap:15px}.site-header{gap:18px}.wordmark{font-size:20px}}@media(max-width:720px){.memory-grid{grid-template-columns:minmax(0,1fr)}.memory-card{min-height:400px}.atlas-meta,.map-person,.map-country{font-size:12px}.map-shanghai .map-country{display:none}.atlas-bottom{flex-wrap:wrap}.atlas-bottom p{font-size:12px}.atlas-bottom button{font-size:14px}.window-caption{flex-wrap:wrap}.chapter-intro,.cover-note{font-size:16px}.cover-bottom span:first-child{font-size:12px}.cover-copy .eyebrow{font-size:12px;letter-spacing:.3px}.cover-art{max-width:410px}}@media(max-width:380px){.voice-page{padding-left:20px;padding-right:20px}.voice-tabs{gap:15px}.postcard .character{width:180px;height:230px}.postcard .boy{margin-right:-55px}.card-back{padding:22px}.invite-info{grid-template-columns:1fr}.ticket-heading em{font-size:37px}}.postcard .skyline-window{inset:88px 13px 61px;opacity:1}.skyline-window img{opacity:1;object-position:50% 45%}.postcard .character-pair{height:220px;bottom:49px;left:0;right:0;background:none}.postcard .character{width:220px;height:220px;filter:none;mix-blend-mode:normal}.postcard .boy{margin-right:-45px}.character{mix-blend-mode:normal}@media(max-width:1000px){.postcard .character{width:195px;height:195px}.postcard .character-pair{height:195px}.postcard .boy{margin-right:-55px}}@media(max-width:720px){.postcard .skyline-window{inset:86px 11px 61px}.postcard .character{width:200px;height:200px}.postcard .character-pair{height:200px;bottom:48px}.postcard .boy{margin-right:-52px}}@media(max-width:380px){.postcard .character{width:170px;height:170px}.postcard .character-pair{height:170px}.postcard .boy{margin-right:-43px}}.window-scene{isolation:isolate}.window-city{width:calc(100% + 44px);height:calc(100% + 44px);left:-22px;top:-22px;object-position:35% bottom;z-index:0}.window-mullion{top:27%;z-index:1}.window-foreground{z-index:2;height:64%;bottom:4%;gap:0}.window-foreground .character{width:44%;height:100%;flex:0 0 44%;background-position:center bottom}.window-foreground .boy{margin-right:-4%}.atlas-spread{max-width:1160px;padding:24px 30px 14px;transform:none;background:#f1eadc;border-color:#cdbda3;box-shadow:7px 9px #e9dfd1}.atlas-spread:before{opacity:.42}.atlas-meta{position:relative;z-index:3;padding-bottom:16px;font-weight:600;letter-spacing:2.4px}.atlas-chart{isolation:isolate;aspect-ratio:1000/635;margin-top:13px;overflow:hidden;background:linear-gradient(180deg,#f6f0e5,#eee5d6);border-top:1px solid #cfc1aa66;border-bottom:1px solid #cfc1aa66}.atlas-chart:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;box-shadow:inset 0 0 48px #8b765417}.atlas-geography,.atlas-chart>.route-map{position:absolute;inset:0;width:100%;height:100%;display:block}.atlas-geography{z-index:0;object-fit:fill;filter:saturate(.82) contrast(.98)}.atlas-chart>.route-map{z-index:1;overflow:hidden}.route-under{stroke:#fffaf1;stroke-width:7;stroke-dasharray:none;opacity:.72}.draw-route{stroke-width:4.2;filter:drop-shadow(0 1px 0 #fffaf1);transition:stroke-dashoffset .08s linear}.origin-dot circle:not(.origin-ring){fill:currentColor}.origin-ring{fill:#fffaf1;stroke:currentColor;stroke-width:2.2}.origin-henan{color:var(--blue)}.origin-assam{color:var(--red)}.arrival-halo{fill:var(--yellow);opacity:0;transition:opacity .35s ease}.arrival-ring{fill:#fffaf1;stroke:var(--brown);stroke-width:2.2}.arrival-dot{fill:var(--brown)}.map-label{z-index:3;align-items:flex-start;min-width:max-content;padding:8px 11px 7px;background:#fffaf1e8;border:1px solid #cdbda3a8;box-shadow:2px 3px #71583612;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.map-label:after{content:"";position:absolute;width:1px;height:16px;left:50%;top:100%;background:currentColor;opacity:.42}.map-label strong{font-size:25px;line-height:1.12;letter-spacing:.02em}.map-person{font-size:12px;line-height:1.4;margin-bottom:3px}.map-country{font-size:10px;line-height:1.4;letter-spacing:1.15px;margin-top:5px;white-space:nowrap}.map-china{left:65%;top:32%;color:var(--blue);transform:translate(-50%,calc(-100% - 14px))}.map-india{left:23%;top:63%;color:var(--red);transform:translate(-50%,calc(-100% - 14px))}.map-shanghai{left:86.83%;top:30%;color:var(--brown);transform:translate(-100%,14px);align-items:flex-end;text-align:right}.map-shanghai:after{inset:auto 8px 100% auto}.map-shanghai strong{font-size:31px}.map-legend{position:absolute;z-index:3;left:14px;bottom:13px;display:flex;gap:13px;align-items:center;padding:6px 9px;background:#fffaf1c9;border:1px solid #cdbda37a;color:var(--muted);font-size:10px;letter-spacing:.04em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{display:block;width:20px;height:0;border-top:1.5px solid #756650}.map-legend .legend-region{border-top-style:dashed;border-color:#9a8d7a;opacity:.75}.map-legend b{font-weight:500;white-space:nowrap}.atlas-handwritten{z-index:3;left:57%;bottom:5%;font-size:17px;color:#596d3e;text-shadow:0 1px #fffaf1}.atlas-bottom{position:relative;z-index:2;padding-top:12px}.atlas-bottom p{display:flex;flex-direction:column;gap:2px;margin:7px 0;color:var(--muted)}.atlas-bottom p small{font-size:9px;letter-spacing:.08em;opacity:.72}.atlas-bottom button{border-radius:2px;transition:background-color .2s ease,color .2s ease}.atlas-bottom button:hover{background:#fffaf188}@media(max-width:720px){.atlas-spread{padding:16px 12px 12px;overflow:hidden;transform:none;box-shadow:4px 5px #e9dfd1}.atlas-meta{padding:0 2px 13px;font-size:10px;letter-spacing:1.35px}.atlas-chart{height:auto;aspect-ratio:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:65% 8px 8px;background:#f3ecdf}.atlas-geography,.atlas-chart>.route-map{height:auto;aspect-ratio:1000/635}.atlas-chart>.route-map{top:0}.atlas-geography{top:0}.draw-route{stroke-width:5.2}.map-legend{top:7px;bottom:auto;left:7px;gap:8px;padding:4px 6px;font-size:9px}.map-legend i{width:14px}.map-label{position:relative;inset:auto;transform:none;min-width:0;padding:8px 9px 7px;align-items:flex-start;background:#fffaf1d9;-webkit-backdrop-filter:none;backdrop-filter:none}.map-label:after{display:none}.map-label strong,.map-shanghai strong{font-size:19px;line-height:1.2}.map-person{font-size:10px}.map-country{font-size:8px;letter-spacing:.6px}.map-shanghai{grid-column:1/-1;align-items:center;text-align:center;justify-self:center;min-width:62%}.atlas-handwritten{display:none}.atlas-bottom{align-items:center;gap:8px}.atlas-bottom p{max-width:none;font-size:11px;line-height:1.45}.atlas-bottom p small{font-size:7px}.atlas-bottom button{padding-right:4px}}.postcard-scene{position:absolute;inset:90px 13px 62px;overflow:hidden;isolation:isolate;background:#efe8d8}.postcard .postcard-scene .skyline-window{inset:0;opacity:1;z-index:0}.postcard-scene .skyline-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:1;filter:none;mix-blend-mode:normal}.postcard .postcard-scene .character-pair{inset:auto 0 -7px;height:66%;z-index:1;background:none;gap:0;align-items:end}.postcard .postcard-scene .character{width:auto;height:100%;aspect-ratio:1;filter:none;opacity:1;mix-blend-mode:normal;flex:0 0 auto}.postcard .postcard-scene .boy{margin-right:-12%}@media(max-width:720px){.postcard-scene{inset:86px 11px 62px}.postcard .postcard-scene .character-pair{height:65%}}@media(max-width:380px){.postcard .postcard-scene .character-pair{height:61%}}.travels.chapter{padding:0;overflow:visible;background:var(--paper);border-top:1px solid var(--line);--stage-height: 100svh;--film-progress: 0;--people-gap: 80px}.travel-heading{max-width:920px;margin:auto;padding:85px 6% 65px;text-align:center}.travel-heading .eyebrow{justify-content:center}.travel-heading h2{margin-bottom:18px}.travel-heading>p:last-child{font-size:16px;color:var(--muted)}.travel-film{position:relative;isolation:isolate}.travel-stage{height:var(--stage-height);min-height:580px;position:relative;overflow:hidden;background:#ede3ce}.film-landscapes{position:absolute;inset:0}.film-landscape{position:absolute;inset:-3% 0;width:100%;height:106%;background-size:cover;background-position:35% center;opacity:var(--scene-opacity, 0);transform:translate3d(var(--scene-x, 0px),var(--scene-y, 0px),0) scale(1.025);will-change:opacity,transform}.landscape-shanghai:where([data-asset-ready]){background-image:url(/assets/optimized/shanghai-new.webp?v=2)}.landscape-hongkong:where([data-asset-ready]){background-image:url(/assets/optimized/hongkong-scene-new.webp?v=2)}.landscape-ho-chi-minh:where([data-asset-ready]){background-image:url(/assets/optimized/ho-chi-minh-city.webp)}.landscape-bangkok:where([data-asset-ready]){background-image:url(/assets/optimized/bangkok-scene-new.webp?v=2)}.landscape-pattaya:where([data-asset-ready]){background-image:url(/assets/optimized/pattaya-scene.webp?v=2)}.landscape-nepal:where([data-asset-ready]){background-image:url(/assets/optimized/nepal-scene-new.webp?v=2)}.film-sky-wash{position:absolute;inset:0;background:linear-gradient(90deg,#faf5e900 15%,#faf5e94d 43%,#faf5e9ed 65%,#faf5e9),linear-gradient(0deg,#faf5e9 0%,transparent 25%,transparent 85%,#faf5e950);pointer-events:none}.film-map-panel{position:absolute;top:26px;left:30px;width:240px;padding:11px 14px 9px;background:#faf5e9ed;border:1px solid #c6b89b;transform:rotate(-2deg);box-shadow:2px 4px #623f1b10;z-index:3;transition:opacity .35s}.film-map-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--brown);margin:0}.film-map-title output{font-variant-numeric:tabular-nums}.travel-map{position:relative;aspect-ratio:600/400;margin:7px 0 4px;background:#e7edf0;overflow:visible}.travel-map>svg{display:block;width:100%;height:100%}.travel-guide{fill:none;stroke:#8a7b63;stroke-width:1.5;stroke-dasharray:3 7;opacity:.45}.travel-leg{fill:none;stroke:var(--red);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.travel-pin{position:absolute;transform:translate(-50%,-50%);border:0;background:none;padding:8px;min-width:36px;min-height:36px;z-index:2;color:var(--brown)}.travel-pin>span{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--paper);border:1px solid var(--brown);font-size:10px}.travel-pin[aria-pressed=true]>span{background:var(--red);color:var(--paper);border-color:var(--red);box-shadow:0 0 0 4px #bb240a22}.travel-pin b{display:none}.film-map-note{font-size:10px;line-height:1.5;color:var(--muted);margin:0}.film-people{position:absolute;left:31%;bottom:15%;height:clamp(200px,30vw,345px);display:flex;align-items:end;justify-content:center;transform:translate(-50%);gap:var(--people-gap);pointer-events:none;z-index:2}.film-person{height:100%;aspect-ratio:1;animation:travel-breathe 5s ease-in-out infinite}.film-person:nth-child(2){animation-delay:-2.5s}.film-people .character{width:100%;height:100%;margin:0;filter:none;mix-blend-mode:normal}.film-caption{position:absolute;bottom:13%;left:17%;font:italic 19px var(--serif);color:var(--brown);transform:rotate(-3deg);z-index:3}.film-route-footer{position:absolute;left:5%;right:5%;bottom:20px;z-index:5}.film-scroll-hint{display:block;text-align:center;font-size:12px;color:var(--muted);letter-spacing:1px;margin-bottom:9px}.travel-stops{list-style:none;display:flex;justify-content:center;gap:20px;margin:0;padding:0}.travel-stops button{display:flex;align-items:center;gap:8px;min-height:44px;background:none;border:0;color:var(--muted);padding:5px;font-size:14px}.travel-stops button small{font-size:11px;opacity:.7}.travel-stops button[aria-current=step]{color:var(--red);border-color:var(--red)}.film-progress{height:2px;background:#623f1b18;margin:6px auto 0;max-width:620px}.film-progress span{display:block;height:100%;width:calc(var(--film-progress) * 100%);background:var(--red)}.travel-beats{position:relative;z-index:4;pointer-events:none}.travel-beat{display:flex;align-items:center;justify-content:flex-end;min-height:70svh;padding:50px 7%;scroll-margin-top:20svh}.beat-copy{max-width:410px;width:40%;pointer-events:auto}.beat-number{font-size:12px;letter-spacing:2px;color:var(--muted);margin:0 0 28px}.beat-copy h3{font:500 clamp(45px,5vw,74px)/1.15 var(--serif);color:var(--red);margin:0 0 24px}.beat-feeling{font:500 26px/1.65 var(--serif);color:var(--brown);margin:0 0 20px}.beat-story{font-size:17px;line-height:2;color:var(--brown);margin:0}.beat-note{font-size:12px;color:var(--muted);border-left:2px solid var(--yellow);padding-left:10px;margin-top:27px}.travel-film.is-enhanced .travel-stage{position:sticky;top:0}.travel-film.is-enhanced .travel-beats{margin-top:calc(-1 * var(--stage-height))}.travel-film.is-enhanced .travel-beat{min-height:var(--stage-height);height:auto;padding-bottom:120px}.travel-film.is-enhanced .travel-beat:last-child{min-height:calc(var(--stage-height) * 1.35);align-items:flex-start;padding-top:calc(var(--stage-height) * .22)}.travel-ending{position:relative;padding:70px 6% 65px;text-align:center;background:var(--paper)}.travel-ending>p:first-of-type{font:500 28px/1.7 var(--serif);color:var(--brown);margin:22px 0}.travel-invitation-link{display:inline-block;color:var(--red);font-size:16px;border-bottom:1px solid #bb240a50;padding:8px 0}.travel-draft-note{font-size:12px;color:var(--muted);margin:30px auto 10px;max-width:580px}.travel-map-credit{font-size:12px;color:var(--muted)}@keyframes travel-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(max-height:650px){.travels.chapter{--stage-height: calc(100svh - 84px) }.film-route-footer{bottom:12px}.film-scroll-hint{display:none}}@media(max-width:800px){.film-map-panel{width:190px;top:15px;left:17px;padding:9px}.film-people{left:27%;height:240px;bottom:18%}.beat-copy{width:46%}.beat-copy h3{font-size:48px}.beat-feeling{font-size:23px}.beat-story{font-size:16px}.travel-beat{padding-left:5%;padding-right:5%}.film-caption{font-size:16px;left:8%}.film-map-note{font-size:10px}.travel-stops{gap:14px}}@media(max-width:600px){.travel-heading{padding:65px 7% 45px}.travel-heading h2{font-size:34px}.travel-stage{min-height:0}.film-sky-wash{background:linear-gradient(0deg,#faf5e9,#faf5e9f5 25%,#faf5e9d0 40%,#faf5e900 66%,#faf5e922)}.film-landscape{background-position:center top;background-size:auto 75%;background-repeat:no-repeat;background-color:#ede3ce}.film-map-panel{width:145px;padding:7px;top:12px;left:12px;opacity:.95}.film-map-title{font-size:10px}.film-map-note{display:none}.travel-pin{min-width:30px;min-height:30px;padding:6px}.travel-pin>span{height:14px;width:14px;font-size:9px}.film-people{left:57%;height:180px;bottom:43%}.film-caption{display:none}.travel-beat{padding:0 8%;align-items:flex-end}.beat-copy{width:100%;max-width:none}.beat-number{margin-bottom:10px;font-size:11px;letter-spacing:1.5px}.beat-copy h3{font-size:37px;margin-bottom:12px}.beat-feeling{font-size:21px;margin-bottom:9px;line-height:1.5}.beat-story{font-size:16px;line-height:1.8}.beat-note{margin-top:13px;font-size:11px}.travel-film.is-enhanced .travel-beat{padding-bottom:80px}.travel-film.is-enhanced .travel-beat:last-child{align-items:flex-end;padding-top:0;padding-bottom:calc(var(--stage-height) * .35 + 80px)}.film-route-footer{left:5%;right:5%;bottom:8px}.travel-stops{gap:10px;justify-content:space-between}.travel-stops button{font-size:12px;gap:4px;min-height:42px}.travel-stops button small{font-size:10px}.travel-ending{padding-top:48px}.travel-ending>p:first-of-type{font-size:24px}}@media(max-height:650px){.travel-stage{min-height:0}.film-map-panel{width:155px}.beat-copy h3{font-size:36px;margin-bottom:10px}.beat-feeling{font-size:21px;margin-bottom:10px}.beat-story{font-size:15px;line-height:1.7}.beat-number{margin-bottom:10px}.beat-note{margin-top:12px}.film-people{height:180px}.film-caption{display:none}}@media(prefers-reduced-motion:reduce){.film-person{animation:none}.film-landscape{transform:none!important;will-change:auto}.travel-leg{transition:none}}.film-landscapes{inset:0 0 auto;height:var(--scene-height, calc(100% - 112px) );overflow:hidden}.film-landscape{inset:0;height:100%;background-size:cover;background-position:var(--scene-position, 35%) bottom;transform:none;will-change:opacity}.film-sky-wash{inset:0 0 auto;height:var(--scene-height, calc(100% - 112px) );background:linear-gradient(0deg,var(--paper),transparent 6%)}.film-sky-wash:before,.film-sky-wash:after{content:"";position:absolute;inset:0;transition:opacity .35s ease;pointer-events:none}.film-sky-wash:before{background:linear-gradient(90deg,transparent 35%,#faf5e9e8 62%,var(--paper) 100%);opacity:1}.film-sky-wash:after{background:linear-gradient(270deg,transparent 35%,#faf5e9e8 62%,var(--paper) 100%);opacity:0}.travel-stage[data-copy-side=left] .film-sky-wash:before{opacity:0}.travel-stage[data-copy-side=left] .film-sky-wash:after{opacity:1}.travel-beat[data-copy-side=left]{justify-content:flex-start}.film-map-title{cursor:pointer;gap:12px;min-height:28px;font-size:12px;list-style:none}.film-map-title::-webkit-details-marker{display:none}.film-map-title:after{content:"+";font-size:18px;line-height:1}.film-map-panel[open] .film-map-title:after{content:"−"}.film-map-title output{margin-left:auto;white-space:nowrap}.film-map-title:focus-visible{outline:none;outline-offset:4px}.travel-pin b{display:block;position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.film-route-footer{left:50%;right:auto;bottom:14px;width:min(560px,calc(100% - 360px));padding:3px 16px 5px;border:1px solid rgba(98,63,27,.16);border-radius:3px;background:#faf5e9c2;box-shadow:0 8px 24px #4930181a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:translate(-50%)}.film-scroll-hint{display:none}.travel-stops{gap:14px}.travel-stops button{min-height:35px;padding:2px 5px;font-size:13px}.film-progress{max-width:none;margin:0 auto}.film-next-link{position:absolute;left:calc(100% + 18px);bottom:4px;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility 0s linear .24s}.travel-stage[data-travel-stop="5"] .film-next-link{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}@media(max-width:600px){.travels.chapter{--stage-height: calc(100svh - 64px - env(safe-area-inset-bottom, 0px)) }.film-sky-wash{background:linear-gradient(0deg,var(--paper),transparent 8%)}.film-sky-wash:before,.film-sky-wash:after{display:none}.film-map-panel{top:12px;left:12px;width:auto;max-width:calc(100% - 24px);padding:0;transform:none;opacity:1;z-index:6}.film-map-title{padding:9px 12px;min-height:44px;font-size:12px;gap:12px}.film-map-panel[open]{width:220px}.film-map-panel .travel-map{margin:0 12px 12px}.travel-pin{min-width:36px;min-height:36px;padding:8px}.travel-pin>span{width:18px;height:18px;font-size:11px}.travel-film.is-enhanced .travel-beat{padding-bottom:var(--travel-copy-bottom, 88px);padding-left:7%;padding-right:7%}.travel-film.is-enhanced .travel-beat:last-child{padding-bottom:calc(var(--stage-height) * .35 + var(--travel-copy-bottom, 88px))}.beat-copy{background:var(--paper)}.beat-number{font-size:12px;margin-bottom:8px}.beat-copy h3{font-size:34px;margin-bottom:8px}.beat-feeling{font-size:20px;margin-bottom:8px}.beat-story{font-size:16px;line-height:1.75}.film-route-footer{left:5%;right:5%;bottom:8px;width:auto;padding-top:0;transform:none}.travel-stops{gap:0;justify-content:space-between;flex-wrap:wrap}.travel-stops button{font-size:14px;min-height:44px;padding:5px 3px}.travel-stops button small{display:none}.film-progress{margin-top:2px}}@media print{.travel-stage{display:none}.travel-film.is-enhanced .travel-beats{margin-top:0}.travel-film.is-enhanced .travel-beat,.travel-film.is-enhanced .travel-beat:last-child{min-height:0;padding:20px;break-inside:avoid}.beat-copy{width:100%;max-width:none}}@media(min-width:601px){.travel-film.is-enhanced .travel-map-overlay:not(:empty){position:sticky;top:0;height:max(var(--stage-height),580px);margin-bottom:calc(-1*max(var(--stage-height),580px));z-index:6;pointer-events:none}.travel-map-overlay>.film-map-panel{pointer-events:auto;background:#faf5e9}}@media(min-width:601px)and (max-height:650px){.travel-film.is-enhanced .travel-map-overlay:not(:empty){height:var(--stage-height);margin-bottom:calc(-1 * var(--stage-height))}}@media print{.travel-map-overlay{display:none}}.story-ribbon{position:fixed;right:12px;top:50%;transform:translateY(-50%);width:124px;z-index:60;color:var(--brown);filter:drop-shadow(2px 5px 5px #623f1b16)}.ribbon-paper{position:relative;background:#eee0b9;border-top:5px solid var(--red);padding:20px 8px 27px;isolation:isolate}.ribbon-paper:before{content:"";position:absolute;inset:0 5px 7px;border-left:1px dashed #a68a594d;border-right:1px dashed #a68a594d;pointer-events:none;z-index:-1}.ribbon-paper:after{content:"";position:absolute;top:100%;left:0;right:0;height:19px;background:#eee0b9;clip-path:polygon(0 0,100% 0,100% 100%,50% 35%,0 100%)}.ribbon-heading{text-align:center;margin:0 0 14px;font:500 16px/1.5 var(--serif)}.ribbon-heading small{display:block;font:10px/1.6 var(--sans);letter-spacing:1.3px;margin-top:3px}.ribbon-list{position:relative;list-style:none;margin:0;padding:0}.ribbon-list:before{content:"";position:absolute;left:16px;top:24px;bottom:24px;width:1px;background:#bdaa84}.ribbon-list:after{display:none}.ribbon-link{position:relative;display:flex;align-items:center;gap:6px;padding:9px 5px;min-height:49px;border-radius:2px;font-size:13px;line-height:1.4}.ribbon-number{position:relative;z-index:1;flex:none;width:23px;height:23px;display:grid;place-items:center;border:1px solid #b5a17c;border-radius:50%;background:#f6efdc;color:var(--brown);font-size:10px;letter-spacing:.2px;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.ribbon-link:hover .ribbon-number{background:#eee0b9}.ribbon-link[aria-current=location]{background:transparent;color:var(--red)}.ribbon-link[aria-current=location] .ribbon-number{border-color:var(--red);background:var(--red);color:var(--paper)}.ribbon-link.is-read:not([aria-current]) .ribbon-number{border-color:#b5a17c;color:var(--brown)}.ribbon-position{text-align:center;border-top:1px solid #bbaa864d;margin:15px 5px 0;padding-top:12px;line-height:1.6}.ribbon-position span{font-size:11px;display:block}.ribbon-position output{font:italic 18px var(--serif);font-variant-numeric:tabular-nums}.ribbon-toggle{display:none}.ribbon-meter{height:2px;background:#c2af894d;margin:9px 7px 0;overflow:hidden}.ribbon-meter span{display:block;width:var(--reading-progress, 0%);height:100%;background:var(--red)}.reading-progress{display:none}.ribbon-link:focus-visible,.ribbon-toggle:focus-visible{outline:none;outline-offset:3px}@media(min-height:651px){body{padding-right:150px}.ribbon-link{font-size:14px}}@media(max-height:650px){body{padding-bottom:calc(85px + env(safe-area-inset-bottom,0px))}.story-ribbon{top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:50%;right:auto;width:min(460px,calc(100% - 28px));transform:translate(-50%);filter:drop-shadow(0 4px 10px #382b2226)}.ribbon-paper{padding:0;border-top:0;border-left:4px solid var(--red);border-radius:3px;background:#f6efdc}.ribbon-paper:before,.ribbon-paper:after,.ribbon-position,.ribbon-heading{display:none}.ribbon-toggle{display:flex;align-items:center;gap:12px;padding:11px 16px;min-height:60px;width:100%;text-align:left;border:0;background:transparent;color:var(--brown)}.ribbon-toggle-mark{display:grid;place-items:center;width:31px;height:35px;background:var(--red);color:var(--paper);font:italic 24px var(--serif);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%)}.ribbon-toggle-copy{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.ribbon-toggle-copy small{font-size:11px;color:var(--muted)}.ribbon-current-label{font-size:15px}.ribbon-mobile-count{font-size:12px;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.ribbon-toggle-arrow{font-size:20px;transition:transform .25s}.ribbon-toggle[aria-expanded=true] .ribbon-toggle-arrow{transform:rotate(180deg)}.ribbon-nav{position:absolute;left:-4px;right:0;bottom:calc(100% + 10px);padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:3px;box-shadow:0 5px 18px #623f1b18;max-height:calc(100dvh - 115px - env(safe-area-inset-bottom,0px));overflow-y:auto}.ribbon-nav[hidden]{display:none}.ribbon-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ribbon-list:before,.ribbon-list:after{display:none}.ribbon-link{gap:9px;font-size:14px;padding:11px 8px;min-height:48px}.ribbon-number{font-size:11px;background:var(--paper)}.ribbon-meter{position:absolute;bottom:0;left:0;right:0;margin:0;height:3px}}@media(prefers-reduced-motion:reduce){.ribbon-number,.ribbon-toggle-arrow{transition:none}}@media(max-width:600px){body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}.story-ribbon{bottom:calc(8px + env(safe-area-inset-bottom,0px));width:calc(100% - 24px)}.ribbon-toggle{min-height:46px;padding:7px 12px;gap:10px}.ribbon-toggle-mark{width:24px;height:28px;font-size:21px}.ribbon-toggle-copy small{display:none}.ribbon-current-label{font-size:14px;line-height:1.5}.ribbon-toggle-copy{flex-direction:row;align-items:center}.ribbon-meter{height:2px}.ribbon-nav{max-height:calc(100dvh - 86px - env(safe-area-inset-bottom,0px))}}@media print{.story-ribbon{display:none}body{padding:0}}@media(min-height:651px){body{padding-right:0}.story-ribbon{--ribbon-width-closed: 50px;--ribbon-width-open: 140px;right:8px;width:var(--ribbon-width-closed);transition:width .28s ease}.ribbon-paper{padding:12px 8px 15px;border-top-width:3px;background:#f6efdcf0;transition:padding .28s ease}.ribbon-paper:before{opacity:0;transition:opacity .2s}.ribbon-paper:after{height:12px}.ribbon-heading{max-height:0;overflow:hidden;opacity:0;margin:0;white-space:nowrap;transition:max-height .28s ease,margin .28s ease,opacity .18s}.ribbon-link{min-height:44px;padding:8px 6px;gap:0;justify-content:flex-start;white-space:nowrap;overflow:hidden;transition:gap .28s ease}.ribbon-label{max-width:0;overflow:hidden;opacity:0;transform:translate(6px);transition:max-width .28s ease,opacity .18s,transform .28s ease}.ribbon-number{width:23px;height:23px;font-size:11px}.ribbon-list:before,.ribbon-list:after{left:17px;transition:left .28s ease}.ribbon-position{max-height:0;overflow:hidden;margin:0 5px;padding:0;border-top-color:transparent;opacity:0;transition:max-height .28s ease,margin .28s ease,padding .28s ease,opacity .18s}.ribbon-position span{white-space:nowrap}.ribbon-meter{height:0;margin:0 7px;opacity:0;transition:opacity .2s,margin .28s,height .28s}.story-ribbon:is(:hover,:has(:focus-visible)){width:var(--ribbon-width-open)}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-list:before,.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-list:after{left:32px}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-link{gap:10px;justify-content:center}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-paper{padding:20px 10px 22px}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-paper:before{opacity:1}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-heading{max-height:60px;margin-bottom:12px;opacity:1}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-label{max-width:80px;opacity:1;transform:none}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-position{max-height:75px;margin-top:15px;padding-top:12px;border-top-color:#bbaa864d;opacity:1}.story-ribbon:is(:hover,:has(:focus-visible)) .ribbon-meter{height:2px;margin-top:9px;opacity:1}}@media(prefers-reduced-motion:reduce){.story-ribbon,.ribbon-paper,.ribbon-paper:before,.ribbon-heading,.ribbon-label,.ribbon-position,.ribbon-meter{transition:none}}.character{background-image:none;background-size:contain;background-position:center bottom;background-repeat:no-repeat}.character.boy{background-image:url(/assets/optimized/character-boy.webp);background-position:center bottom}.character.girl{background-image:url(/assets/optimized/character-girl.webp);background-position:center bottom}@keyframes boy-wave{0%,to{transform:rotate(0)}50%{transform:rotate(-2deg)}}@keyframes girl-wave{0%,to{transform:rotate(0)}50%{transform:rotate(2deg)}}.travels.chapter{--people-left: 31%;--people-top: 62%;--people-height: 240px;--people-gap: 76px;--final-pose-opacity: 0}.film-people{left:var(--people-left);top:var(--people-top);bottom:auto;height:var(--people-height);width:calc(var(--people-height) * 4 / 3 + var(--people-gap));gap:var(--people-gap);transform:translate(-50%);transform-origin:50% 100%;opacity:var(--people-opacity, 1)}.film-person{position:relative;aspect-ratio:2 / 3;width:calc(var(--people-height) * 2 / 3);flex:0 0 auto;opacity:calc(1 - var(--final-pose-opacity));transform-origin:50% 100%}.film-person:after{content:"";position:absolute;z-index:0;left:15%;right:15%;bottom:.5%;height:5.5%;border-radius:50%;background:radial-gradient(ellipse,rgba(65,48,34,.34) 0%,rgba(65,48,34,.16) 45%,transparent 74%);filter:blur(2px);opacity:.72;transform:scaleX(1);transition:opacity .5s ease,transform .5s ease}.film-people:before{content:"";position:absolute;z-index:0;left:17%;right:17%;bottom:.5%;height:5.5%;border-radius:50%;background:radial-gradient(ellipse,rgba(65,48,34,.3) 0%,rgba(65,48,34,.12) 48%,transparent 76%);filter:blur(3px);opacity:0;transform:scaleX(.72);transition:opacity .55s ease,transform .55s ease}.film-people .character{position:relative;z-index:1;transform:translateY(3.2%)}.film-final-pose:where([data-asset-ready]){position:absolute;z-index:1;inset:0;background:url(/assets/optimized/character-couple-final.webp) center bottom / auto 100% no-repeat;opacity:var(--final-pose-opacity);transform:translateY(3.2%)}.travel-stage[data-travel-stop="3"] .film-person:after{opacity:.58;transform:scaleX(1.1)}.travel-stage[data-travel-stop="4"] .film-person:after{opacity:.36;transform:scaleX(1.22)}.travel-stage[data-travel-stop="3"] .film-people:before{opacity:.18;transform:scaleX(.88)}.travel-stage[data-travel-stop="4"] .film-people:before{opacity:.62;transform:scaleX(1)}.film-caption{left:50%;bottom:-38px;padding:7px 16px 8px;border:1px solid rgba(98,63,27,.28);background:#faf5e9f0;box-shadow:2px 3px #623f1b14;color:var(--brown);font-size:17px;line-height:1.2;white-space:nowrap;transform:translate(-50%) rotate(-2deg);transform-origin:center}@keyframes travel-breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(.996)}}@media(max-width:600px){.film-caption,.travel-beats .beat-note{display:none}}.film-people{width:calc(var(--people-height) * 1.5);gap:0;transition:opacity .16s linear}.travel-pose{position:absolute;z-index:1;left:50%;bottom:0;width:100%;height:100%;opacity:var(--pose-opacity, 0);transform:translate(-50%);transform-origin:50% 100%;background-position:center bottom;background-repeat:no-repeat;background-size:contain;will-change:opacity,transform}.pose-walk:where([data-asset-ready]){background-image:url(/assets/optimized/travel-pose-walk.webp);animation:travel-step 1.8s ease-in-out infinite}.pose-photo:where([data-asset-ready]){background-image:url(/assets/optimized/travel-pose-photo.webp);animation:travel-photo 4.5s ease-in-out infinite}.pose-map:where([data-asset-ready]){background-image:url(/assets/optimized/travel-pose-map.webp);animation:travel-consider 5s ease-in-out infinite}.pose-beach-chat:where([data-asset-ready]){background-image:url(/assets/optimized/travel-pose-beach-chat.webp);animation:travel-chat 4.8s ease-in-out infinite}.pose-back-view:where([data-asset-ready]){background-image:url(/assets/optimized/travel-pose-back-view.webp);animation:travel-sway 5.4s ease-in-out infinite}.pose-hcmc{display:flex;justify-content:center;align-items:end;bottom:0;width:100%;height:100%;gap:0;padding:0;border:0;background:none;box-shadow:none;animation:travel-step 2.2s ease-in-out infinite}.pose-hcmc:before,.pose-hcmc:after{content:none}.pose-hcmc>span{display:block;width:58%;height:100%;flex:0 0 58%;background-position:center bottom;background-repeat:no-repeat;background-size:contain;mix-blend-mode:normal}.pose-hcmc-boy:where([data-asset-ready]){margin-right:-30%;background-image:url(/assets/optimized/travel-hcmc-boy.webp?v=2)}.pose-hcmc-girl:where([data-asset-ready]){background-image:url(/assets/optimized/travel-hcmc-girl.webp?v=2)}.film-caption{left:50%;bottom:-28px;min-width:max-content;text-align:center;transition:opacity .2s ease}@keyframes travel-step{0%,to{transform:translate(-50%) translateY(0) rotate(-.25deg)}50%{transform:translate(-50%) translateY(-4px) rotate(.25deg)}}@keyframes travel-photo{0%,72%,to{transform:translate(-50%) scale(1)}78%{transform:translate(-50%) scale(.992) rotate(-.35deg)}}@keyframes travel-consider{0%,to{transform:translate(-50%) rotate(-.35deg)}50%{transform:translate(-50%) rotate(.35deg)}}@keyframes travel-chat{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-2px)}}@keyframes travel-sway{0%,to{transform:translate(-50%) rotate(-.2deg)}50%{transform:translate(-50%) rotate(.2deg)}}@media(prefers-reduced-motion:reduce){.travel-pose{animation:none;will-change:opacity}}:root{--paper-fibres: repeating-linear-gradient(7deg, #73543003 0 1px, transparent 1px 5px);--paper-specks: radial-gradient(#694a2912 .55px, transparent .8px)}.postcard,.voice-page,.card-front:not(.ticket-front),.card-back,.invitation-sheet,.wedding-print{background-image:var(--paper-fibres),var(--paper-specks);background-size:auto,7px 9px}.postcard{box-shadow:2px 3px 4px #623f1b13,8px 18px 27px -15px #382b2245}.paper-under{box-shadow:2px 9px 19px -10px #623f1b40}.postmark{border-style:dashed;opacity:.85}.paper-label{background-image:var(--paper-fibres)}.tape,.window-page:before{background-image:repeating-linear-gradient(90deg,#fff4 0 1px,transparent 1px 4px);clip-path:polygon(1% 0,99% 3%,97% 20%,100% 38%,97% 53%,100% 72%,97% 100%,0 97%,3% 75%,0 57%,3% 39%,0 20%)}.atlas-spread{background-image:linear-gradient(90deg,transparent 49.5%,#72593d0e 49.9%,#fff8 50%,transparent 50.6%),var(--paper-fibres);box-shadow:2px 3px #e6dac8,6px 10px 21px -12px #623f1b38}.atlas-spread:before{display:none}.atlas-geography{opacity:.86}.voices-title{margin-bottom:68px}.voice-page{border-color:#d4c6af;box-shadow:2px 3px #e8dfd0,7px 13px 20px -12px #623f1b38;padding-bottom:62px}.voice-panel blockquote{line-height:1.85}.voice-prompt{max-width:29em}.voice-signature{margin-top:44px}.window-city{object-position:50% bottom}.window-canvas{position:absolute;z-index:0;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .55s ease;pointer-events:none}.window-scene.is-webgl-ready .window-canvas{opacity:1}.window-scene.is-webgl-ready .window-city{opacity:0}.window-scene:after{content:"";position:absolute;z-index:4;inset:0;border-radius:inherit;box-shadow:inset 0 0 24px #25405b1a;pointer-events:none}.window-city{transition:opacity .55s ease}.window-mullion{z-index:2}.window-foreground{z-index:3}.window-foreground{bottom:-2%}.window-page{background:#e7d6a4}.window-caption{padding-top:17px}.page-number{font-size:11px;letter-spacing:1px}.travel-ending{padding:72px 6% 64px}.journey-coda{position:relative;max-width:1100px;margin:0 auto 34px;aspect-ratio:1.85;overflow:hidden;background:#253c5b;border:10px solid #fffaf1;box-shadow:0 2px 2px #623f1b14,0 17px 26px -20px #382b2270}.journey-coda:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,#172837c9);pointer-events:none}.journey-coda img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%}.journey-coda figcaption{position:absolute;z-index:1;bottom:9%;left:7%;right:7%;color:#fff8e8;text-align:left}.coda-place{font-size:12px;letter-spacing:2.5px}.journey-coda p{max-width:19em;margin:17px 0 13px;font:400 clamp(24px,2.6vw,38px)/1.65 var(--serif)}.journey-coda .handwritten{color:#f5dda3;font-size:18px;transform:none}.travel-ending>p.travel-draft-note{max-width:40em;margin:22px auto 0;font:12px/1.8 var(--sans);color:var(--muted)}.travel-invitation-link{font-size:15px;padding:10px 4px}.memories{padding-top:94px;padding-bottom:94px;background-size:32px 32px;scroll-margin-top:-94px}.memory-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1.05fr) minmax(0,1fr);gap:34px 36px;max-width:1180px;margin-top:68px;align-items:stretch}.memory-card{--card-x: 0px;--card-y-offset: 0px;--card-width: 100%;--card-height: auto;--card-scale: 1;--card-rotate: 0deg;--card-justify: stretch;--card-align: stretch;--photo-x: 0px;--photo-y: 0px;--photo-width: 100%;--photo-height: auto;--photo-scale: 1;--photo-rotate: 0deg;width:var(--card-width);height:var(--card-height);min-height:0;justify-self:var(--card-justify);align-self:var(--card-align);transform-origin:center;transform:translate(var(--card-x),calc(var(--card-y-offset) + var(--card-y, 0px))) rotate(var(--card-rotate)) scale(var(--card-scale))}.memory-two{--card-x: 0px;--card-y-offset: 0px;--card-width: 100%;--card-height: 700px;--card-scale: 1;--card-rotate: -3deg;--card-justify: stretch;--card-align: start;--photo-x: 0px;--photo-y: 0px;--photo-width: 100%;--photo-height: 540px;--photo-scale: 1;--photo-rotate: 0deg;grid-column:1;grid-row:1 / span 2}.memory-one{--card-x: 0px;--card-y-offset: 0px;--card-width: 100%;--card-height: 100px;--card-scale: 1;--card-rotate: 2deg;--card-justify: stretch;--card-align: stretch;--photo-x: 0px;--photo-y: 0px;--photo-width: 100%;--photo-height: auto;--photo-scale: 1;--photo-rotate: 0deg;grid-column:2;grid-row:1}.memory-five{--card-x: 0px;--card-y-offset: -120px;--card-width: 100%;--card-height: 300px;--card-scale: .95;--card-rotate: 1.5deg;--card-justify: stretch;--card-align: stretch;--photo-x: 0px;--photo-y: 0px;--photo-width: 100%;--photo-height: 250px;--photo-scale: 1;--photo-rotate: 0deg;grid-column:2;grid-row:2}.memory-four{--card-x: 0px;--card-y-offset: -50px;--card-width: 100%;--card-height: 500px;--card-scale: .95;--card-rotate: -1.5deg;--card-justify: stretch;--card-align: stretch;--photo-x: 0px;--photo-y: 0px;--photo-width: 100%;--photo-height: 400px;--photo-scale: 1;--photo-rotate: 0deg;grid-column:3;grid-row:1}.memory-three{--card-x: 0px;--card-y-offset: -50px;--card-width: 100%;--card-height: 300px;--card-scale: 1;--card-rotate: -1.5deg;--card-justify: stretch;--card-align: end;--photo-x: 0px;--photo-y: 0px;--photo-width: 100%;--photo-height: auto;--photo-scale: 1;--photo-rotate: 0deg;grid-column:3;grid-row:2;max-width:none;display:flex;flex-direction:column;transition:filter .25s ease}.memory-three:hover{filter:brightness(1.06)}.card-front,.card-back{box-shadow:1px 2px 2px #623f1b14,7px 14px 20px -12px #382b2252}.card-front{padding:19px 19px 23px}.card-front img{display:block}.card-front>img,.memory-scene .memory-portrait{width:var(--photo-width);height:var(--photo-height);min-height:0;max-height:none;transform-origin:center;transform:translate(var(--photo-x),var(--photo-y)) rotate(var(--photo-rotate)) scale(var(--photo-scale))}.memory-one .card-front img{aspect-ratio:1.7;object-fit:cover;object-position:center 60%}.memory-four .card-front img,.memory-five .card-front img{object-fit:contain;object-position:center;background:#f5eee2}.memory-one .card-title{font-size:25px}.memory-one .card-meta{margin-top:13px}.memory-scene{height:auto;min-height:0;flex:1;background:#e9d7b7;background-image:radial-gradient(ellipse at 45% 35%,#fff6dc,transparent 70%);align-items:stretch}.memory-scene .memory-portrait{object-fit:contain;object-position:center bottom;padding:45px 8px 0}.memory-scenic-word{top:14px;left:19px;font-size:26px}.memory-two .card-title{margin:19px 0 12px;font-size:27px}.memory-two .card-meta{font-size:12px;padding-top:0}.memory-two .tape{width:100px;left:calc(50% - 50px);background-color:#c9ae817a;transform:rotate(5deg)}.card-back{padding:28px}.back-number{font:12px/1.7 var(--sans);letter-spacing:2px;margin-bottom:22px}.card-back strong{font-size:26px}.card-back>span:not(.back-number){font-size:16px;line-height:1.9}.card-back small{font-size:12px}.keepsake-lines{display:block;min-height:120px;margin-top:30px;background:repeating-linear-gradient(transparent 0 38px,#623f1b20 38px 39px)}.ticket-front{padding:27px 30px 24px;background-color:#31538d;background-image:linear-gradient(100deg,#ffffff07,transparent 55%,#17283719);outline-offset:-11px}.ticket-heading{margin-top:15px;font-size:36px;line-height:1.15;letter-spacing:-.5px}.ticket-heading em{display:block;font-size:34px}.ticket-rule{margin:21px 0 13px}.ticket-details{padding-bottom:16px}.ticket-eyebrow,.ticket-footer,.ticket-details,.ticket-details strong{font-size:12px}.memory-margin{margin-top:58px;font-size:20px}.invitation{padding-top:110px;scroll-margin-top:-94px}.invitation h2{margin-bottom:65px}.invitation-spread{max-width:1120px;margin:auto;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.1fr);align-items:center;gap:60px}.wedding-print{width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:inherit;transform:rotate(-3deg);perspective:1400px;appearance:none}.wedding-print:focus-visible{outline-offset:10px}.wedding-print-inner{position:relative;display:grid;width:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.78,.2,1)}.wedding-print[aria-pressed=true] .wedding-print-inner{transform:rotateY(180deg)}.wedding-print-face{grid-area:1 / 1;display:block;width:100%;padding:12px 12px 20px;background-color:#fffdf7;background-image:var(--paper-fibres),var(--paper-specks);background-size:auto,7px 9px;box-shadow:1px 2px 2px #623f1b17,9px 16px 24px -14px #623f1b40;backface-visibility:hidden;-webkit-backface-visibility:hidden}.wedding-print-back{transform:rotateY(180deg)}.wedding-portrait-stage{position:relative;display:block;width:100%;aspect-ratio:2 / 3}.wedding-print img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}.wedding-print-caption{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;padding:16px 8px 0;gap:8px}.wedding-print .handwritten{font-size:19px;color:var(--brown);transform:none}.wedding-print small{font-size:12px;color:var(--muted)}@media(prefers-reduced-motion:reduce){.wedding-print-inner{transition:none}}.invitation-fold{width:100%;max-width:680px;margin:0;padding:0 18px 14px;border:0;background:transparent;box-shadow:none;perspective:1500px;isolation:auto}.envelope-stage{--sticker-left-size: 21%;--sticker-right-size: 20%;--sticker-left-top: 54%;--sticker-right-top: 54%;--sticker-left-offset: 10%;--sticker-right-offset: 10%;--sticker-left-rotation: 0deg;--sticker-right-rotation: 0deg;position:relative;height:600px;perspective:1600px;isolation:isolate}.envelope-back{position:absolute;z-index:1;left:3%;right:3%;bottom:18px;height:330px;display:flex;align-items:flex-end;justify-content:space-between;padding:20px 24px;border:1px solid #bda98c;box-shadow:0 15px 24px -12px #4d30183d;background-color:#e5d6c1;background-image:linear-gradient(145deg,#fff7e96b,transparent 48%),var(--paper-fibres);color:#7f654b;font:600 10px/1.4 var(--sans);letter-spacing:1.8px}.envelope-back span:first-child{font:500 15px/1 var(--serif);letter-spacing:3px}.invitation-sheet{position:absolute;z-index:2;top:0;left:8%;width:84%;height:500px;min-height:0;margin:0;padding:0;border:0;background:transparent;box-shadow:none;text-align:left;transform:translateY(276px) scale(.94);transform-origin:center top;transform-style:preserve-3d;animation:none}.invite-paper-top,.invite-paper-bottom{position:relative;height:250px;background:#fffaf0;background-image:var(--paper-fibres),var(--paper-specks);background-size:auto,7px 9px;border:1px solid #d2c2a8;box-shadow:0 9px 22px -16px #382b2270;transform-style:preserve-3d}.invite-paper-top{border-bottom:0}.invite-paper-bottom{border-top:1px solid #ab8d6538;transform-origin:center top;transform:rotateX(-180deg)}.invite-panel-content{position:relative;height:100%;padding:25px 36px 18px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.invite-paper-bottom .invite-panel-content{padding-top:19px}.invite-panel-content:before{content:"";position:absolute;inset:10px;border:1px solid #a72b1c70;outline:1px solid #bfa57d75;outline-offset:-4px;pointer-events:none}.invite-paper-top .invite-panel-content:before{bottom:0;border-bottom:0}.invite-paper-bottom .invite-panel-content:before{top:0;border-top:0}.invite-paper-bottom:after{content:"囍";position:absolute;inset:0;display:grid;place-items:center;background:#fffaf0;background-image:var(--paper-fibres),var(--paper-specks);background-size:auto,7px 9px;color:#bb240a66;font:36px var(--serif);border:1px solid #d2c2a8;outline:1px solid #c8a67b66;outline-offset:-12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:rotateX(180deg) translateZ(1px)}.invite-kicker{margin:0;color:var(--red);font:600 14px/1.4 var(--serif);letter-spacing:6px;text-align:center}.invite-ornament{display:flex;align-items:center;justify-content:center;gap:13px;margin:8px 0 7px;color:var(--red)}.invite-ornament span{width:45px;height:1px;background:#a72b1c55}.invite-ornament b{font:500 22px/1 var(--serif)}.invite-salutation{margin:0 0 7px;font:500 16px/1.7 var(--serif);color:var(--ink)}.invite-copy{text-align:center;color:#513820;font:400 16px/1.72 var(--serif);letter-spacing:.3px}.invite-copy p{margin:6px 0}.invite-copy small{color:#735e49;font-size:13px}.invite-copy strong{color:#8e2319;font-size:17px;font-weight:500}.invite-blank{letter-spacing:1px}.invite-place{display:flex;align-items:baseline;justify-content:center;gap:14px;margin:9px auto!important}.invite-place span{color:#806c57;font:600 11px/1.5 var(--sans);letter-spacing:2px}.invite-place strong{min-width:165px;padding:0 10px 3px;border-bottom:1px solid #a98e6f90;text-align:left}.invite-signature{display:flex;flex-direction:column;align-items:flex-end;gap:3px;margin:16px 0 0;color:#513820;font:13px/1.8 var(--serif);text-align:right}.invite-signature>span{display:block}.invite-signature strong{font-size:15px;font-weight:500}.envelope-front{position:absolute;z-index:4;left:3%;right:3%;bottom:18px;height:330px;overflow:hidden;border:1px solid #b9a486;border-top:0;background:transparent;clip-path:polygon(0 0,50% 49%,100% 0,100% 100%,0 100%);pointer-events:none}.envelope-front:after{content:"";position:absolute;inset:0;background-image:linear-gradient(145deg,#fff8e74a,transparent 45%),var(--paper-fibres);box-shadow:inset 0 -1px #fff7ea80}.envelope-front-left,.envelope-front-right,.envelope-front-bottom{position:absolute;inset:0}.envelope-front-left{background:#deccb4;clip-path:polygon(0 0,52% 55%,0 100%)}.envelope-front-right{background:#d9c5aa;clip-path:polygon(100% 0,48% 55%,100% 100%)}.envelope-front-bottom{background:#eadcc8;clip-path:polygon(0 100%,50% 49%,100% 100%)}.envelope-sticker{position:absolute;z-index:2;height:auto;aspect-ratio:1;object-fit:contain;pointer-events:none;transform-origin:center;filter:drop-shadow(0 4px 3px #4d30182b)}.envelope-sticker-left{top:var(--sticker-left-top);left:var(--sticker-left-offset);width:var(--sticker-left-size);transform:translateY(-50%) rotate(var(--sticker-left-rotation))}.envelope-sticker-right{top:var(--sticker-right-top);right:var(--sticker-right-offset);width:var(--sticker-right-size);transform:translateY(-50%) rotate(var(--sticker-right-rotation))}.invitation-flap{position:absolute;z-index:5;left:3%;right:3%;bottom:182px;height:166px;margin:0;overflow:visible;border:0;transform-origin:center top;transform-style:preserve-3d;transform:rotateX(0);transition:none;backface-visibility:visible}.invitation-flap:before,.invitation-flap:after{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden}.invitation-flap:before{background-color:#e8dbc7;background-image:linear-gradient(160deg,#fff9ee7d,transparent 54%),var(--paper-fibres);border-top:1px solid #bda98c}.invitation-flap:after{clip-path:polygon(0 100%,100% 100%,50% 0);background-color:#d9c6aa;background-image:var(--paper-fibres);transform:rotateX(180deg)}.flap-fold{position:absolute;z-index:2;left:0;right:0;top:0;height:1px;background:#ab9575}.seal{position:absolute;z-index:3;left:50%;top:130px;width:62px;height:62px;transform:translate(-50%);border:2px solid #9d2117;background:radial-gradient(circle at 35% 28%,#d75a3b,#a91e14 69%,#7f130e);box-shadow:inset 0 0 0 4px #e9795847,0 3px 5px #4b251e36;color:#f8d9a9;font:500 31px/1 var(--serif);backface-visibility:hidden}.invitation-fold.is-open .invitation-flap{height:166px;opacity:1;margin:0}.invitation .ending-note{margin-top:64px}@media(max-width:1000px){.memory-grid{column-gap:34px}.memory-two{min-height:590px}.memory-scene .memory-portrait{min-height:380px}.card-front{padding:15px 15px 20px}.card-back{padding:24px}.card-back strong{font-size:23px}.invitation-spread{gap:30px;grid-template-columns:minmax(0,.75fr) minmax(0,1fr)}.invitation-fold{padding-left:8px;padding-right:8px}.envelope-stage{height:550px}.invitation-sheet{left:7%;width:86%;padding-left:34px;padding-right:34px}}@media(max-width:720px){.voices-title{margin-bottom:44px}.voice-signature{margin-top:28px}.travel-ending{padding:48px 6%}.journey-coda{aspect-ratio:.95;border-width:7px}.journey-coda img{object-position:44% center}.journey-coda figcaption{bottom:9%;left:7%;right:7%}.journey-coda p{font-size:clamp(20px,6vw,26px);line-height:1.65}.journey-coda .handwritten{font-size:16px}.memories{padding-top:66px;padding-bottom:64px}.memory-grid{grid-template-columns:minmax(0,1fr);gap:40px;max-width:410px;padding:0 8px;margin-top:48px}.memory-one,.memory-two,.memory-three,.memory-four,.memory-five{grid-column:auto;grid-row:auto;min-height:0}.memory-one{--card-rotate: 1.5deg}.memory-two{--card-rotate: -2deg}.memory-scene .memory-portrait{min-height:0;height:auto;aspect-ratio:2 / 3;max-height:none;padding-top:35px}.memory-two .card-title{font-size:24px}.memory-one .card-title{font-size:23px}.memory-one .card-front img{aspect-ratio:1.4}.card-back{padding:24px}.card-back strong{font-size:23px}.ticket-heading,.ticket-heading em{font-size:34px}.memory-margin{font-size:17px;margin-top:44px}.invitation{padding-top:68px}.invitation h2{margin-bottom:42px}.invitation-spread{grid-template-columns:minmax(0,1fr);gap:44px}.wedding-print{width:min(76%,310px);justify-self:center;padding:10px 10px 15px}.wedding-print figcaption{padding:12px 3px 0;justify-content:center}.wedding-print small{width:100%}.invitation-fold{max-width:520px;justify-self:center}}@media print{.journey-coda:after{display:none}.journey-coda figcaption{position:static;color:var(--ink)}.memory-grid,.invitation-spread{display:block}.memory-card,.wedding-print{transform:none;margin-bottom:24px}}@media(prefers-reduced-motion:reduce){.invitation-flap,.invitation-sheet,.seal{transition:none}}.seal{padding:0;appearance:none}.invitation-crease{position:absolute;z-index:10;top:calc(50% - 22px);left:0;width:100%;height:44px;padding:0;border:0;background:transparent;color:var(--red)}.invitation-crease:disabled{visibility:hidden;pointer-events:none}.invitation-hotspot-hint{position:absolute;z-index:12;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);padding:7px 12px;border-radius:999px;background:#fffaf0f5;box-shadow:0 3px 12px #623f1b20;color:var(--red);font:12px/1.5 var(--sans);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none}:is(.seal,.invitation-crease):enabled:is(:hover,:focus-visible) .invitation-hotspot-hint{opacity:1;visibility:visible}:is(.seal,.invitation-crease):focus-visible{outline:none;outline-offset:4px}.cover-response,.atlas-arrival,.route-traveler{display:none}.site-header{position:absolute;inset:0 0 auto;height:88px;max-width:none;padding:0 4%;border:0;color:#294553}.site-header .wordmark{font-size:20px}.site-header .brand-mark{width:35px;height:35px;font-size:27px}.site-header nav{gap:26px;font-size:13px}#cover{display:block;max-width:none;height:max(680px,100svh);min-height:0;padding:0;isolation:isolate;background:#b9dff3;scroll-margin-top:0}#cover .cover-art,#cover .postcard,#cover .postcard-scene,#cover .skyline-window{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;padding:0;border:0;box-shadow:none;transform:none;border-radius:0;background:none}#cover .cover-art{z-index:0}#cover .skyline-window img{object-fit:cover;object-position:50% 65%;transform:translateY(var(--cover-drift, 0px)) scale(var(--cover-zoom, 1));transform-origin:50% 75%}#cover .cover-window-scene:after{box-shadow:none}#cover .postcard:before,#cover .paper-under,#cover .postcard-top,#cover .postcard-caption,#cover .paper-label,#cover .cover-footnote{display:none}#cover:after{content:"";position:absolute;z-index:1;inset:auto 0 0;height:105px;pointer-events:none;background:linear-gradient(transparent,#f3ecdd)}#cover .cover-copy{position:absolute;inset:0;z-index:3;padding:0;pointer-events:none}#cover .cover-copy>.eyebrow{position:absolute;top:33%;left:25%;width:44%;margin:0;justify-content:left;font-size:12px;letter-spacing:4px;color:#365565}#cover .little-line{width:20px;height:1px;background:currentColor}#cover h1{position:absolute;top:13%;left:5%;width:52%;margin:0;text-align:left;font-size:clamp(46px,4.35vw,72px);line-height:1.35;letter-spacing:.04em;color:#ac341d;text-shadow:0 1px 14px #e8f5ff66}#cover h1 .second-line{margin-left:1em}#cover .primary-link{position:absolute;left:50%;bottom:28px;transform:translate(-50%);pointer-events:auto;padding:10px 4px;border:0;border-bottom:1px solid #79564270;border-radius:0;background:none;color:#553d2f;font-size:14px;letter-spacing:.16em;gap:24px}#cover .primary-link:hover{color:var(--red);border-color:var(--red)}#cover .character-pair{inset:auto auto 3% 50%;width:30%;height:37%;max-height:350px;gap:0;animation:none;transform:translate(-50%);translate:var(--character-parallax-x, 0px) var(--character-parallax-y, 0px);will-change:translate;pointer-events:auto;cursor:pointer}#cover .character-pair .character{position:relative;width:50%;height:100%;aspect-ratio:2 / 3;margin:0;flex:0 0 50%;transform-origin:50% 97%}#cover .character-pair .character:after{content:"";position:absolute;z-index:-1;left:19%;right:15%;bottom:1%;height:4%;border-radius:50%;background:#463d2b44;filter:blur(3px)}#cover .character-pair .boy{margin-right:-10%}#cover .waving .character{animation-timing-function:ease-in-out}#cover .cover-response{display:block;position:absolute;z-index:4;left:50%;top:60%;bottom:auto;padding:10px 17px;border-radius:16px 16px 16px 2px;background:#fffaf0f2;color:#573d2d;font:16px/1.5 var(--serif);opacity:0;transform:translate(-50%,calc(-50% + 6px));transition:opacity .25s,transform .25s;pointer-events:none}#cover.has-greeting .cover-response{opacity:1;transform:translate(-50%,-50%)}#cover .cover-bottom{z-index:2;left:4%;right:4%;bottom:39px;border:0;padding:0;color:#695b49;font-size:11px}#cover .cover-bottom span:not(:first-child){display:none}#beginning{padding:0;background:#f9f3e7;border:0;isolation:isolate;scroll-margin-top:-94px}#beginning>.chapter-heading{position:absolute;z-index:5;left:8%;top:13%;width:36%;margin:0;text-align:left;pointer-events:none}#beginning .chapter-heading .eyebrow{justify-content:flex-start;font-size:11px;letter-spacing:3px;margin-bottom:22px}#beginning h2{font-size:clamp(32px,3.1vw,50px);line-height:1.5;margin:0;letter-spacing:.03em;color:#65513a}#beginning h2 em{color:#8c4938}#beginning .chapter-intro{font-size:14px;line-height:2;color:#736755;margin-top:20px}#beginning .atlas-spread{width:100%;max-width:none;margin:0;padding:0;background-color:#f9f3e7;background-image:linear-gradient(90deg,transparent 49.7%,#806a4312 50%,#fff9 50.15%,transparent 50.6%),var(--paper-fibres);border:0;box-shadow:none}#beginning .atlas-meta{position:absolute;top:4%;left:5%;right:7%;border:0;font-weight:400;color:#8a7b63;letter-spacing:.16em;font-size:11px;padding:0}#beginning .atlas-chart{min-height:100svh;margin:0;background:transparent;border:0;overflow:visible}#beginning .atlas-chart:after{box-shadow:none}#beginning .atlas-geography{opacity:.62;filter:none;-webkit-mask-image:linear-gradient(125deg,transparent 2%,#0002 23%,#000 49%,#000 82%,transparent 100%);mask-image:linear-gradient(125deg,transparent 2%,#0002 23%,#000 49%,#000 82%,transparent 100%)}#beginning .map-label{background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:5px 9px}#beginning .map-label strong{font-size:26px}#beginning .map-person{color:inherit;opacity:.8;letter-spacing:.12em;font-size:12px}#beginning .map-country{font-size:11px;letter-spacing:.16em;opacity:.7}#beginning .map-shanghai strong{font-size:38px;color:#844631}#beginning .map-shanghai .map-country{display:none}#beginning .map-shanghai{transform:translate(6px,7px);align-items:flex-start;text-align:left}#beginning .map-shanghai:after{left:20%;right:auto;bottom:-25%;height:24px;transform:rotate(40deg)}#beginning .route-under{stroke-width:6;opacity:.5}#beginning .draw-route{stroke-width:3;transition:none}#beginning .route-traveler{display:block;stroke:#fffaf1;stroke-width:2.5}#beginning .traveler-him{fill:var(--blue)}#beginning .traveler-her{fill:var(--red)}#beginning .arrived .route-traveler{opacity:0}#beginning .arrival-halo{fill:#dbaa51}#beginning .atlas-handwritten{left:27%;bottom:13%;font:18px/1.8 var(--serif);color:#8d654b;letter-spacing:.05em;transform:rotate(-5deg)}#beginning .atlas-arrival{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:5;right:10%;bottom:12%;width:26%;transform:rotate(3deg);color:#70513c}#beginning .atlas-arrival img{width:100%;height:auto;aspect-ratio:2.3;object-fit:cover;object-position:50% 58%;-webkit-mask-image:radial-gradient(ellipse at center,#000 35%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 35%,transparent 72%);opacity:.65;transition:opacity .7s}#beginning .has-arrived .atlas-arrival img{opacity:1}#beginning .atlas-arrival>span{font:20px/1.8 var(--serif);margin-top:4px}#beginning .atlas-arrival small{font-size:11px;letter-spacing:.1em;margin-top:7px;padding-bottom:3px;border-bottom:1px solid #a58a6c77}#beginning .atlas-arrival:hover{color:var(--red)}#beginning .atlas-bottom{justify-content:flex-end;position:absolute;left:5%;right:7%;bottom:18px;padding:0;border:0}#beginning .atlas-bottom p{font-size:10px}#beginning .atlas-bottom button{font-size:12px}#beginning .map-legend{bottom:9%;left:5%;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:9px;opacity:.75}#beginning .chapter-transition{display:none}@media(max-height:650px){.site-header{right:0}}@media(prefers-reduced-motion:reduce){#cover .waving .character,#cover .waving .character-pair{animation:none}#cover .cover-response,#beginning .atlas-arrival img{transition:none}}@font-face{font-family:YShi Written SC;src:url(/assets/fonts/yshi-written/invitation-interview-subset.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}.street-interview{position:relative;width:100%;height:100svh;min-height:780px;max-height:980px;overflow:hidden;isolation:isolate;background:#b9dff3;scroll-margin-top:-94px}.interview-background,.interview-wash,.interview-stage{position:absolute;inset:0;width:100%;height:100%}.interview-background{z-index:0;display:block;object-fit:cover;object-position:50% 62%;transform:scale(1.015)}.interview-wash{z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(247,241,226,.7) 0%,rgba(247,241,226,.22) 28%,transparent 51%),linear-gradient(180deg,rgba(214,235,246,.14),transparent 42%,rgba(238,228,207,.2))}.interview-heading{position:absolute;z-index:4;top:10.5%;left:5.3%;width:335px;color:#563b2c;text-shadow:0 1px 12px rgba(245,250,248,.85);pointer-events:none}.interview-heading .eyebrow{margin-bottom:15px;color:#75513c;letter-spacing:.22em}.interview-heading h2{margin:0;color:#754535;font-size:clamp(31px,2.7vw,42px);line-height:1.42;letter-spacing:.02em}.interview-heading>p:last-child{margin:15px 0 0;color:#53646a;font-size:13px;letter-spacing:.08em}.interview-stage{z-index:3}.interview-person,.interview-reporter{position:absolute;bottom:5.4%;height:clamp(300px,38vh,370px);aspect-ratio:2 / 3;transform:translate(-50%);transform-origin:50% 100%}.interview-person{z-index:4;padding:0;border:0;border-radius:45% 45% 12px 12px;background:transparent;overflow:visible;appearance:none;transition:transform .28s ease,filter .28s ease}.interview-person:after,.interview-reporter:after{content:"";position:absolute;z-index:-1;left:15%;right:15%;bottom:-.5%;height:5.5%;border-radius:50%;background:radial-gradient(ellipse,rgba(63,53,39,.3),rgba(63,53,39,.12) 45%,transparent 73%);filter:blur(3px);pointer-events:none}.interview-person img,.interview-reporter img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 2px rgba(50,48,39,.08));-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.interview-person:hover,.interview-person:focus-visible,.interview-person.is-active{transform:translate(-50%) translateY(-4px) scale(1.025);filter:saturate(1.04)}.interview-person:focus-visible{outline:none;outline-offset:8px}.interview-person-male{left:18%}.interview-person-female{left:44%}.interview-reporter{z-index:3;left:31%;pointer-events:none}.reporter-pose{position:absolute;inset:0;opacity:0;transform:translateY(4px);transition:opacity .24s ease,transform .3s ease}.reporter-pose.is-visible{opacity:1;transform:translateY(0)}.interview-cta{position:absolute;z-index:8;top:45%;left:50%;display:inline-flex;align-items:center;gap:7px;min-width:62px;padding:7px 12px 8px;border:1px solid rgba(120,91,56,.36);border-radius:999px;background:#fffaeef5;box-shadow:0 5px 16px #43341f24;color:#63452f;font:600 11px/1 var(--sans);letter-spacing:.1em;white-space:nowrap;opacity:0;transform:translate(-50%,8px) scale(.96);transition:opacity .22s ease,transform .22s ease,border-color .22s ease;pointer-events:none}.interview-cta i{margin-left:2px;font:normal 13px/0 var(--serif)}.interview-person:hover .interview-cta,.interview-person:focus-visible .interview-cta,.interview-person.is-active .interview-cta{opacity:1;transform:translate(-50%) scale(1)}.interview-person:hover .interview-cta,.interview-person:focus-visible .interview-cta{border-color:#bb240a80}.speech-bubble{border:1px solid rgba(122,90,53,.35);background:#fffbf0f7;box-shadow:0 8px 24px #4a382221;color:#583d2d;text-shadow:none}.speech-bubble[hidden]{display:none}.interview-question{position:absolute;z-index:9;top:42%;left:2%;width:min(420px,30vw);padding:15px 20px 17px;border-radius:19px 19px 19px 5px;transition:top .28s ease,left .28s ease,width .28s ease}.interview-stage[data-interview-person=male] .interview-question{top:45%;left:32%;width:min(420px,30vw)}.interview-question:after{content:"";position:absolute;left:82%;bottom:-17px;width:28px;height:27px;background:inherit;border-right:inherit;transform:scaleX(-1) skew(-28deg) rotate(32deg);clip-path:polygon(0 0,100% 0,100% 100%)}.interview-stage[data-interview-person=male] .interview-question:after{left:4%;transform:skew(-28deg) rotate(32deg)}.interview-question>span,.interview-answer b{display:block;color:#9b513b;font-size:10px;font-weight:650;letter-spacing:.18em}.interview-question p{margin:6px 0 0;font:400 clamp(16px,1.45vw,20px)/1.55 "YShi Written SC",var(--sans)}.interview-answer{position:absolute;z-index:9;top:-85px;width:250px;padding:13px 16px 15px;border-radius:16px 16px 5px;text-align:left;pointer-events:none}.interview-answer:after{content:"";position:absolute;bottom:-13px;width:22px;height:21px;background:inherit;border-bottom:inherit;transform:rotate(42deg) skew(8deg);clip-path:polygon(0 0,100% 100%,0 100%)}.interview-person-male .interview-answer{left:-15px}.interview-person-male .interview-answer:after{left:43%}.interview-person-female .interview-answer{right:-18px}.interview-person-female .interview-answer:after{right:39%}.interview-answer em{display:block;margin-top:6px;font:400 16px/1.65 "YShi Written SC",var(--sans);letter-spacing:.02em}.interview-hint{position:absolute;z-index:7;left:50%;bottom:2.1%;margin:0;padding:8px 15px;border:1px solid rgba(117,84,50,.24);border-radius:999px;background:#fffaefd6;color:#72533e;font-size:11px;letter-spacing:.12em;transform:translate(-50%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.interview-hint span{color:#a86242;margin-right:5px}.speech-bubble.is-entering{animation:interview-bubble-in .34s cubic-bezier(.2,.8,.2,1) both}@keyframes interview-bubble-in{0%{opacity:0;translate:0 8px;scale:.97}to{opacity:1;translate:0 0;scale:1}}@media(max-width:1180px){.interview-heading{left:4.5%;width:300px}.interview-person-male{left:20%}.interview-person-female{left:80%}.interview-question{top:39%}}@media(min-width:801px){#voices{--interview-question-font-size: 16px;--interview-answer-font-size: 16px;--interview-label-font-size: 11px;--interview-question-width: 340px;--interview-answer-width: 300px;--interview-bubble-fill: #fffbf0;--interview-bubble-line: #cbbca6}#voices .speech-bubble{padding:16px 20px 18px;border:1px solid var(--interview-bubble-line);border-radius:18px;background:var(--interview-bubble-fill);box-shadow:0 5px 16px #493b2814;pointer-events:none}#voices .interview-question{top:auto;bottom:calc(8% + clamp(210px,var(--desktop-scene-height) * .38,370px) + 24px);left:calc(31% - var(--interview-question-width) - 24px);width:var(--interview-question-width);transition:none}#voices .interview-stage[data-interview-person=male] .interview-question{top:auto;left:calc(31% + 24px);width:var(--interview-question-width)}#voices .interview-answer{top:auto;bottom:calc(100% + 24px);left:50%;right:auto;width:var(--interview-answer-width);transform:translate(-50%)}#voices .speech-bubble:before,#voices .speech-bubble:after{content:"";position:absolute;top:100%;bottom:auto;left:var(--bubble-tail-x, 50%);right:auto;width:24px;height:20px;border:0;clip-path:polygon(0 0,100% 0,50% 100%);background:var(--interview-bubble-line);transform:translate(-50%)}#voices .speech-bubble:after{margin-top:-1px;background:var(--interview-bubble-fill);clip-path:polygon(5% 0,95% 0,50% 92%)}#voices .interview-question{--bubble-tail-x: calc(100% - 80px) ;--reporter-tail-direction: 1}#voices .interview-stage[data-interview-person=male] .interview-question{--bubble-tail-x: 80px;--reporter-tail-direction: -1}#voices .interview-question:before,#voices .interview-question:after{width:28px;height:22px;clip-path:polygon(0 0,100% 0,100% 100%);transform:translate(-50%) scaleX(var(--reporter-tail-direction))}#voices .interview-question:after{clip-path:polygon(5% 0,96% 0,96% 91%)}#voices .interview-question>span,#voices .interview-answer b{font-size:var(--interview-label-font-size);line-height:1.4;letter-spacing:.12em}#voices .interview-question p,#voices .interview-answer em{margin:9px 0 0;font-family:"YShi Written SC",var(--sans);font-weight:400;font-style:normal;line-height:1.65;letter-spacing:.02em;overflow-wrap:anywhere;text-wrap:pretty}#voices .interview-question p{font-size:var(--interview-question-font-size)}#voices .interview-answer em{font-size:var(--interview-answer-font-size)}}@media(prefers-reduced-motion:reduce){.interview-person,.reporter-pose,.interview-cta{transition:none}.speech-bubble.is-entering{animation:none}}.interview-person>picture,.interview-reporter>picture{display:contents}:is(.character-pair[role=button],.memory-card,.wedding-print){cursor:pointer;outline-offset:8px}:is(.memory-card,.wedding-print,.atlas-arrival,.interview-person):focus{outline:none}:is(.memory-card,.wedding-print):focus-visible :is(.card-meta,.card-back small,.wedding-print-caption small),.atlas-arrival:focus-visible small{outline:none;outline-offset:3px;color:var(--red)}main:focus,main section[tabindex="-1"]:focus{outline:none}.character-pair[role=button]:focus{outline:none}.character-pair[role=button]:focus-visible .greeting-hint{outline:none;outline-offset:3px}:is(.memory-card,.wedding-print):is(:hover,:focus-visible) :is(.card-meta,.card-back small,.wedding-print-caption small){color:var(--red)}.interview-person .interview-cta{opacity:1;transform:translate(-50%) scale(1);letter-spacing:.02em}.greeting-hint{position:absolute;left:50%;bottom:-18px;transform:translate(-50%);padding:6px 12px;border:1px solid #785b3866;border-radius:999px;background:#fffaf0f5;color:var(--brown);font:12px/1.4 var(--sans);white-space:nowrap;pointer-events:none}.character-pair:is(:hover,:focus-visible) .greeting-hint{color:var(--blue)}#cover.has-greeting .greeting-hint{visibility:hidden}.interview-person:is(:hover,:focus-visible){outline:none}.interview-person:focus-visible .interview-cta{outline:none;outline-offset:3px}:root{--cursor-arrow: url(/assets/cursors/arrow.png) 5 3, default;--cursor-hand: url(/assets/cursors/hand.png) 6 4, pointer;--cursor-microphone: url(/assets/cursors/microphone.png) 9 5, pointer}:is(a[href],button,summary,[role=button]),#cover .character-pair,.memory-grid .memory-card,.invitation .wedding-print,.film-map-title{cursor:var(--cursor-hand)}.street-interview .interview-person{cursor:var(--cursor-microphone)}:is(button:disabled,[aria-disabled=true]){cursor:default}@media(min-width:801px){html,body,:is(button:disabled,[aria-disabled=true]){cursor:var(--cursor-arrow)}}.reader-controls{--reader-button-font: 12px;--reader-button-height: 32px;--reader-button-gap: 4px;--reader-button-padding-x: 10px;--reader-tab-font: 11px;position:fixed;z-index:80;width:var(--reader-width, 188px);height:142px;display:flex;background:#fffaf0f5;border:1px solid #cbbba8;border-radius:0 14px 14px 0;box-shadow:0 5px 22px #623f1b1c;color:var(--brown);transition:transform .25s ease,width .25s ease}.reader-controls[data-side=left]{flex-direction:row}.reader-controls[data-side=right]{flex-direction:row-reverse;border-radius:14px 0 0 14px}.reader-controls[data-collapsed=true]{width:var(--reader-tab-width, 32px)}.reader-controls[data-collapsed=true] .reader-actions{display:none}.reader-controls[data-side=right][data-collapsed=true]{transform:translate(calc(var(--reader-width, 188px) - var(--reader-tab-width, 32px)))}.reader-controls[data-dragging=true]{transition:none}.reader-grip{flex:0 0 var(--reader-tab-width, 32px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:8px 4px;border:0;border-radius:inherit;background:#eee4d5;color:var(--brown);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.reader-controls[data-dragging=true] .reader-grip{cursor:grabbing}.reader-grip>span{display:block}.reader-tab-label{margin:0;font-size:var(--reader-tab-font);writing-mode:vertical-rl;letter-spacing:.2em}.reader-actions{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:var(--reader-button-gap);padding:8px 12px}.reader-actions>button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--reader-button-height);padding:6px var(--reader-button-padding-x);flex:0 0 auto;margin:0;border:1px solid #d8c8b2;border-radius:999px;background:#f5ecdf;color:var(--brown);font:var(--reader-button-font)/1.4 var(--sans)}.reader-actions>button:hover{background:#f1e0ce;color:var(--red)}.reader-actions kbd{font:10px var(--sans);padding:1px 5px;border:1px solid #cbb99f;border-radius:4px}.reader-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.reader-controls[data-music=playing] .reader-music{background:#f5e3d9;color:var(--red)}@media(prefers-reduced-motion:reduce){.reader-controls{transition:none}}.reader-controls[data-docked=false]{border-radius:14px}.reader-controls[data-docked=false] .reader-grip{border-radius:12px}@media(min-width:801px){:root{--desktop-side-safe: 160px;--desktop-bottom-safe: 0px;--desktop-scene-height: calc(100svh - var(--desktop-bottom-safe));--desktop-gutter: clamp(32px, 5vw, 96px);--desktop-section-space: clamp(48px, 8svh, 96px);--desktop-title-size: clamp(34px, 3.1vw, 48px);--desktop-cover-title: clamp(42px, 4.35vw, 68px);--desktop-copy-gap: clamp(16px, 2.5svh, 28px)}html{min-width:0;scroll-padding-bottom:calc(var(--desktop-bottom-safe) + 24px)}#memories,#invitation{padding:var(--desktop-section-space) var(--desktop-side-safe) calc(var(--desktop-section-space) + var(--desktop-bottom-safe)) var(--desktop-gutter)}.memory-heading,.memory-grid,.invitation-spread{max-width:1250px;margin-inline:auto}#memories h2,#invitation h2,.travel-heading h2{font-size:var(--desktop-title-size);text-wrap:balance}#invitation>.eyebrow,#invitation>h2{width:calc(100% + var(--desktop-gutter) + var(--desktop-side-safe));margin-left:calc(-1 * var(--desktop-gutter));text-align:center;justify-content:center}#invitation .back-to-top{transition:color .2s ease,border-color .2s ease}#invitation .back-to-top:hover{color:var(--red);border-color:var(--red)}#invitation .invitation-fold>.ending-note{position:absolute;z-index:6;top:var(--ending-note-y, 110px);left:0;width:100%;margin:0;text-align:center;font-size:clamp(18px,1.8vw,24px);pointer-events:none}.travel-heading{padding-block:var(--desktop-section-space)}.travel-beat{padding-left:var(--desktop-gutter);padding-right:var(--desktop-side-safe)}.beat-copy{width:min(40%,410px)}.beat-number,.beat-copy h3,.beat-feeling{margin-bottom:var(--desktop-copy-gap)}#beginning .atlas-spread{height:var(--desktop-scene-height)}#beginning .atlas-chart{position:absolute;top:0;left:0;width:calc(100% - var(--desktop-side-safe));height:100%;min-height:0;aspect-ratio:auto;transform:none;overflow:hidden}#beginning .atlas-arrival{right:calc(var(--desktop-side-safe) + 24px);bottom:7%;width:clamp(240px,26vw,360px)}#beginning .map-shanghai{transform:translate(-50%,calc(-100% - 30px));align-items:center;text-align:center}#beginning .map-shanghai:after{inset:100% auto auto 50%;height:16px;transform:none}#beginning>.chapter-heading{width:34%}#cover{height:max(540px,var(--desktop-scene-height))}#cover{--cover-people-x: 50%;--cover-people-bottom: 60px;--cover-people-bottom-compact: 40px;--cover-boy-x: 0px;--cover-boy-y: 0px;--cover-girl-x: 0px;--cover-girl-y: 0px;--cover-boy-shadow-x: 53%;--cover-boy-shadow-bottom: 1%;--cover-girl-shadow-x: 56%;--cover-girl-shadow-bottom: 1.2%;--cover-shadow-width: 44%;--cover-shadow-height: 3%;--cover-hint-x: 50%;--cover-hint-top: -32px;--cover-hint-top-compact: 5px}#cover .greeting-hint{top:var(--cover-hint-top);left:var(--cover-hint-x);bottom:auto;white-space:nowrap;color:var(--red)}#cover .character-pair:is(:hover,:focus-visible) .greeting-hint{color:var(--red)}#cover .character-pair{left:var(--cover-people-x);bottom:var(--cover-people-bottom);height:min(34%,320px)}#cover .character-pair .boy{translate:var(--cover-boy-x) var(--cover-boy-y);--foot-shadow-x: var(--cover-boy-shadow-x);--foot-shadow-bottom: var(--cover-boy-shadow-bottom)}#cover .character-pair .girl{translate:var(--cover-girl-x) var(--cover-girl-y);--foot-shadow-x: var(--cover-girl-shadow-x);--foot-shadow-bottom: var(--cover-girl-shadow-bottom)}#cover .character-pair .character:after{left:var(--foot-shadow-x);right:auto;bottom:var(--foot-shadow-bottom);width:var(--cover-shadow-width);height:var(--cover-shadow-height);transform:translate(-50%);background:radial-gradient(ellipse,#463d2b50 0%,#463d2b22 45%,transparent 75%);filter:blur(2px);pointer-events:none}#beginning .map-china{left:69.25%;top:31.5433%}#beginning .map-india{left:21.21%;top:64.6142%}#beginning :is(.map-china,.map-india){transform:translate(-50%,calc(-100% - 20px));align-items:center;text-align:center}#beginning :is(.map-china,.map-india):after{left:50%;top:100%;height:10px}#cover .cover-copy{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(104px,13svh,160px) var(--desktop-gutter) 0;gap:var(--desktop-copy-gap)}#cover h1{position:static;order:0;width:min(55%,760px);font-size:var(--desktop-cover-title);margin:0}#cover .cover-copy>.eyebrow{position:static;order:1;width:auto;margin:0 0 0 3em;padding:5px 10px;background:#e7f3f9c9;border-radius:3px;letter-spacing:.2em}.street-interview{height:var(--desktop-scene-height);min-height:540px;max-height:none}.interview-person,.interview-reporter{height:clamp(210px,calc(var(--desktop-scene-height) * .38),370px);bottom:8%}.interview-person-male{left:18%}.interview-person-female{left:44%}.interview-hint{max-width:calc(100% - var(--desktop-side-safe) - 32px);text-align:center}.interview-answer{top:auto;bottom:calc(100% + 18px)}.interview-heading{left:auto;right:var(--desktop-side-safe);width:min(30%,360px);top:8%}.interview-heading h2{font-size:clamp(28px,2.7vw,40px);text-wrap:balance}.travels.chapter{--stage-height: var(--desktop-scene-height)}.travel-stage{min-height:0}.travel-film.is-enhanced .travel-map-overlay:not(:empty){position:absolute;inset:0;height:auto;margin:0}.travel-map-frame{position:sticky;top:0;height:var(--stage-height);pointer-events:none}.travel-map-frame>.film-map-panel{pointer-events:auto;background:#faf5e9}}@media(min-width:801px)and (max-aspect-ratio:3/2){#cover .character-pair{bottom:var(--cover-people-bottom-compact)}#cover .greeting-hint{top:var(--cover-hint-top-compact)}}@media(min-width:801px)and (max-height:800px){.interview-heading{top:6%}.interview-heading h2{font-size:clamp(28px,2.7vw,36px)}.interview-stage .interview-question,.interview-stage[data-interview-person=male] .interview-question{top:37%}.interview-question{padding:10px 14px}.interview-answer{padding:10px 12px}}@media(min-width:801px)and (max-height:650px){:root{--desktop-side-safe: 32px;--desktop-bottom-safe: 96px;--desktop-section-space: 48px;--desktop-cover-title: clamp(36px, 3.5vw, 52px)}#cover,#beginning,.street-interview,#memories,#invitation{margin-bottom:var(--desktop-bottom-safe)}#cover,.street-interview{min-height:0;height:var(--desktop-scene-height)}#cover .cover-copy{padding-top:90px}.interview-person,.interview-reporter{height:calc(var(--desktop-scene-height) * .36);bottom:10%}.interview-hint{bottom:2%;padding:5px 10px}.film-route-footer{bottom:32px}}@media(min-width:801px){main>section{min-height:100svh;scroll-margin-top:0}}.memory-board-viewport{display:contents}.memory-pointer-hint,.action-pointer-hint{display:none}@media(min-width:801px){.memory-pointer-hint:not([hidden]),.action-pointer-hint:not([hidden]){display:block;position:fixed;z-index:1000;transform:translate(-50%,-100%);padding:7px 12px;border-radius:999px;background:#fffaf0f5;box-shadow:0 3px 12px #623f1b20;color:var(--red);font:12px/1.5 var(--sans);white-space:nowrap;pointer-events:none}#memories .memory-flip-action{display:none}#memories .card-back small{visibility:hidden}#memories{height:max(640px,var(--desktop-scene-height));padding:32px var(--desktop-side-safe) 32px var(--desktop-gutter);display:grid;grid-template-rows:auto minmax(0,1fr);gap:28px}#memories .memory-heading{width:100%;margin:0 auto;align-items:center;gap:24px}#memories .memory-heading .eyebrow{margin-bottom:8px}#memories h2{margin:0;font-size:clamp(28px,2.6vw,38px)}#memories .memory-board-viewport{display:block;position:relative;min-height:0}#memories .memory-grid{position:absolute;left:50%;top:0;display:block;width:1180px;height:960px;max-width:none;margin:0;padding:0;transform:translate(-50%) scale(var(--board-scale, 1));transform-origin:center top}#memories .memory-card{position:absolute;--card-y-offset: 0px;--card-scale: 1;--card-y: 0px;min-height:0}#memories .memory-two{left:20px;top:60px;width:390px;height:760px;--card-rotate: -3deg}#memories .memory-one{left:460px;top:50px;width:350px;height:350px}#memories .memory-five{left:460px;top:510px;width:350px;height:400px}#memories .memory-four{left:860px;top:10px;width:330px;height:550px}#memories .memory-three{left:860px;top:600px;width:330px;height:330px;padding:24px;justify-content:space-between;gap:8px}#memories .flip-inner{height:100%;min-height:0}#memories .card-front{display:flex;flex-direction:column;min-height:0;padding:14px;overflow:hidden}#memories .card-front>img,#memories .memory-scene{flex:1;height:0;min-height:0;width:100%}#memories .memory-scene .memory-portrait{height:100%;padding:38px 8px 0}#memories .card-title{margin:10px 0 6px;font-size:27px;line-height:1.4}#memories .card-meta,#memories .card-back small{font-size:16px;line-height:1.6}#memories .card-meta{margin:0;padding-top:0}#memories .card-back{padding:18px;overflow:auto}#memories .card-back strong{font-size:27px}#memories .card-back>span:not(.back-number){font-size:19px}#memories .keepsake-lines{min-height:0;flex:1}#memories .ticket-heading{font-size:40px}#memories .ticket-heading em{font-size:inherit}#memories .ticket-rule{margin:4px 0;flex-shrink:0}#memories .ticket-details{font-size:14px;padding-bottom:0}#memories .ticket-details strong,#memories .ticket-footer,#memories .ticket-eyebrow{font-size:14px}#memories .ticket-footer,#memories .ticket-heading{margin:0}}.invitation-board-viewport{display:contents}@media(min-width:801px){#invitation .wedding-print-caption small,#invitation .invitation-hotspot-hint{display:none}#invitation .invitation-sheet[aria-hidden=false]:hover .invitation-crease:enabled .invitation-hotspot-hint{opacity:1;visibility:visible}#invitation{height:max(640px,var(--desktop-scene-height));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:16px;padding-top:28px;padding-bottom:24px}#invitation>.eyebrow,#invitation>h2{margin-top:0;margin-bottom:0}#invitation>h2{font-size:clamp(28px,2.6vw,38px)}#invitation .invitation-board-viewport{display:block;position:relative;min-height:0}#invitation .invitation-spread{position:absolute;left:50%;top:0;width:1120px;height:740px;max-width:none;margin:0;grid-template-columns:minmax(0,.7fr) minmax(0,1.1fr);gap:60px;transform:translate(-50%) scale(var(--invitation-scale, 1));transform-origin:center top}#invitation .invitation-fold{height:600px;padding:0 18px 14px}#invitation .envelope-stage{height:600px}#invitation .invitation-sheet{left:8%;width:84%;padding:0}#invitation .invitation-fold>.ending-note{font-size:24px}#invitation .back-to-top{justify-self:center;margin-top:0;transform:translate(calc((var(--desktop-side-safe) - var(--desktop-gutter)) / 2))}}:is(a,button,[role=button]):focus-visible{outline:none}:is(a,button,[role=button]):not(:is(.memory-card,.wedding-print,.atlas-arrival,.character-pair,.interview-person)):focus-visible{color:var(--red);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}:is(.memory-card,.wedding-print):focus-visible :is(.card-meta,.card-back small,.wedding-print-caption small),.atlas-arrival:focus-visible small,.character-pair:focus-visible .greeting-hint,.interview-person:focus-visible .interview-cta,:is(.seal,.invitation-crease):focus-visible .invitation-hotspot-hint{outline:none;color:var(--red);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}@media(max-width:800px){html{min-width:0;scroll-padding-top:0}body{padding-right:0}main{overflow-x:clip}.site-header{height:76px;padding-inline:max(24px,env(safe-area-inset-left));z-index:5}.site-header .wordmark{font-size:18px}#cover{--mobile-cover-title: 32px;--mobile-cover-title-top: 17%;--mobile-cover-people-width: 343px;--mobile-cover-people-height: 270px;--mobile-cover-people-bottom: 42px;height:100svh;min-height:0}#cover{background:#f9f3e7}#cover .mobile-scene-frame{overflow:visible;background:#b9dff3}#cover:after{display:none}#cover .postcard,#cover .postcard-scene{overflow:visible}#cover .mobile-scene-frame:before{content:"";position:absolute;inset:0 calc(-1 * var(--mobile-bleed-x, 0px));background:#b9dff3;z-index:-1}#cover [data-layout=compact]{--mobile-cover-people-height: 240px}#cover .cover-copy{width:100%}#cover h1{top:var(--mobile-cover-title-top);left:7%;width:86%;font-size:var(--mobile-cover-title);line-height:1.5;letter-spacing:.01em}#cover h1 .second-line{margin-left:1em}#cover .character-pair{left:50%;right:auto;bottom:var(--mobile-cover-people-bottom);width:var(--mobile-cover-people-width);height:var(--mobile-cover-people-height);max-height:310px;translate:none;touch-action:pan-y}#cover .greeting-hint{top:-30px;bottom:auto;font-size:12px;color:var(--red)}#cover .cover-response{top:auto;bottom:calc(var(--mobile-cover-people-bottom) + var(--mobile-cover-people-height) + 4px);max-width:90%;width:max-content;font-size:15px}#cover .primary-link{bottom:8px;min-height:48px;white-space:nowrap;text-shadow:0 1px 5px #fffaf0}#cover .skyline-window{top:28%;left:calc(-1 * var(--mobile-bleed-x, 0px));width:calc(100% + 2 * var(--mobile-bleed-x, 0px));height:72%;-webkit-mask-image:linear-gradient(transparent,#000 12%);mask-image:linear-gradient(transparent,#000 12%)}#cover .skyline-window img{left:0;top:0;object-position:50% 100%}#cover .window-canvas canvas{width:100%!important;height:100%!important}#cover .character-pair:focus-visible{outline:2px solid var(--red);outline-offset:6px;border-radius:12px}body.mobile-cover-active .story-ribbon,body.mobile-cover-active .reader-controls{visibility:hidden;pointer-events:none}}@media(max-width:800px){.mobile-scene-viewport{position:absolute;inset:0 0 auto;height:var(--mobile-locked-height, 100svh);visibility:hidden;pointer-events:none}#cover,#beginning,#voices{--mobile-scene-height: var(--mobile-locked-height, 100svh);--mobile-scene-gutter: 24px;position:relative;height:var(--mobile-scene-height);min-height:0;max-height:none;margin:0;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);scroll-margin-top:0;overflow:hidden;overflow-anchor:none}.mobile-scene-frame{position:absolute;width:390px;height:844px;transform-origin:0 0;-webkit-text-size-adjust:100%;text-size-adjust:100%;isolation:isolate;overflow:hidden}#voices{background:#f9f3e7}#beginning .chapter-heading,#voices .interview-heading{position:absolute;z-index:5;text-align:left;pointer-events:none;top:6%;left:var(--mobile-scene-gutter);right:var(--mobile-scene-gutter);width:auto;margin:0}#beginning .chapter-heading .eyebrow,#voices .interview-heading .eyebrow{margin-bottom:12px;font-size:11px;letter-spacing:.18em}#beginning h2,#voices .interview-heading h2{font-size:29px;line-height:1.4}#beginning .chapter-intro{margin-top:14px;font-size:15px;line-height:1.8}#beginning .atlas-spread{position:absolute;inset:0;width:100%;height:100%;min-height:0;display:block;transform:none;background-image:var(--paper-fibres)}#beginning .atlas-chart{position:absolute;top:31%;left:0;width:100%;height:37%;min-height:0;aspect-ratio:auto;transform:none;overflow:visible}#beginning .route-map{position:absolute;inset:0;width:100%;height:100%}#beginning .map-label{position:absolute;display:flex;flex-direction:column;width:max-content;max-width:125px;padding:4px 0;gap:0}#beginning .map-label strong,#beginning .map-shanghai strong{font-size:22px}#beginning .map-person,#beginning .map-country{font-size:10px;letter-spacing:.05em}#beginning .map-china{transform:translate(-75%,-110%)}#beginning .map-india{transform:translateY(12px);align-items:flex-start;text-align:left}#beginning .map-shanghai{transform:translate(-100%,12px);align-items:flex-end;text-align:right}#beginning .map-label:after,#beginning .map-legend{display:none}#beginning .atlas-arrival{right:3%;bottom:26px;width:94%;transform:none}#beginning .atlas-arrival img{height:144px;aspect-ratio:auto}#beginning .atlas-arrival>span{font-size:17px;margin:0}#beginning .atlas-arrival small{margin-top:3px;min-height:26px}#beginning .atlas-bottom{top:66%;bottom:auto;left:var(--mobile-scene-gutter);right:auto;z-index:6}#beginning #replay-route{min-height:44px;padding:8px 12px}#voices{--mobile-person-height: 234px;--mobile-person-bottom: 108px;--mobile-question-top: 25%;--mobile-answer-top: 39%;--mobile-interview-background-x: .2}#voices .mobile-scene-frame{overflow:visible}#voices .interview-background{--mobile-background-width: calc(var(--mobile-stage-height, 844px) * 1.3333333333);left:calc((100% - var(--mobile-background-width)) * var(--mobile-interview-background-x));width:var(--mobile-background-width);max-width:none;object-fit:fill;transform:none}#voices .interview-wash{left:calc(-1 * var(--mobile-bleed-x, 0px));width:calc(100% + 2 * var(--mobile-bleed-x, 0px));background:linear-gradient(#e5f1f7f5,#e5f1f7d9 25%,#e5f1f733 62%,#f3ecdd66)}#voices .interview-person,#voices .interview-reporter{height:var(--mobile-person-height);bottom:var(--mobile-person-bottom)}#voices .interview-person-male{left:22%}#voices .interview-reporter{left:50%}#voices .interview-person-female{left:78%}#voices .reporter-pose{transition:none;transform:none}#voices .interview-person:is(:hover,:focus-visible,.is-active){transform:translate(-50%);filter:none}#voices .interview-cta{top:auto;bottom:-30px;opacity:1;transform:translate(-50%);padding:9px;min-height:32px;font-size:10px;letter-spacing:0}#voices .interview-question,#voices .interview-stage[data-interview-person=male] .interview-question,#voices .interview-answer{position:absolute;top:var(--mobile-question-top);bottom:auto;left:var(--mobile-scene-gutter);right:var(--mobile-scene-gutter);width:auto;margin:0;padding:12px 16px;border-radius:15px;transform:none;text-align:left;pointer-events:none;transition:none}#voices .interview-answer{top:var(--mobile-answer-top);background:#fffaf0fa}#voices .interview-question p,#voices .interview-answer em{font:400 18px/1.6 "YShi Written SC",var(--sans);margin:4px 0 0;letter-spacing:0}#voices .interview-question:after{display:none}#voices .interview-answer:after{left:16%;right:auto}#voices [data-interview-answer=female]:after{left:auto;right:16%}#voices .interview-hint{bottom:61px;left:5%;width:90%;margin:0;padding:0;border:0;border-radius:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none;text-align:center;font-size:10px;line-height:1.5;letter-spacing:0}body.mobile-chapter-active .story-ribbon,body.mobile-chapter-active .reader-controls{visibility:hidden;pointer-events:none}}@media(max-width:800px){#beginning [data-layout=compact] .chapter-heading,#voices [data-layout=compact] .interview-heading{top:4%}#beginning [data-layout=compact] .atlas-arrival img{height:122px}#voices [data-layout=compact]{--mobile-question-top: 23%;--mobile-answer-top: 40%;--mobile-person-height: 200px}}@media(max-width:800px){body:has(.ribbon-link[href="#travels"][aria-current=location]) .story-ribbon,body:has(.ribbon-link[href="#travels"][aria-current=location]) .reader-controls{visibility:hidden;pointer-events:none}#travels .travel-heading{padding:48px 24px 40px;text-align:left}#travels .travel-heading .eyebrow{justify-content:flex-start;font-size:11px;letter-spacing:.14em}#travels .travel-heading h2{font-size:29px;line-height:1.4}#travels .travel-heading>p:last-child{font-size:14px;line-height:1.8}}@media(max-width:600px){#travels{--stage-height: 100svh;background:var(--paper);border:0;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-anchor:none}#travels .travel-stage{min-height:0;background:var(--paper)}#travels .film-map-panel{top:16px;left:20px;max-width:calc(100% - 40px);border-radius:12px;box-shadow:0 4px 16px #623f1b12}#travels .film-map-title{padding:6px 10px;min-height:44px;font-size:11px;gap:8px}#travels .film-map-panel[open]{width:min(220px,calc(100% - 40px))}#travels .travel-pin{min-width:44px;min-height:44px}#travels .film-sky-wash{background:linear-gradient(0deg,var(--paper),transparent 12%)}#travels .travel-film.is-enhanced .travel-beat{padding-inline:24px;scroll-margin-top:0}#travels .beat-copy{width:100%;max-width:none;padding:0;background:transparent}#travels .beat-number{font-size:10px;letter-spacing:.14em;margin-bottom:7px}#travels .beat-copy h3{font-size:30px;line-height:1.2;margin-bottom:10px}#travels .beat-feeling{font-size:19px;line-height:1.5;margin-bottom:8px}#travels .beat-story{font-size:15px;line-height:1.8;text-wrap:pretty}#travels .film-route-footer{left:20px;right:20px;bottom:max(14px,env(safe-area-inset-bottom,0px));width:auto;padding:3px 6px 8px;border:0;border-top:1px solid #8d745233;border-radius:0;background:var(--paper);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none;pointer-events:auto}#travels .mobile-travel-controls{position:absolute;inset:0;z-index:7;pointer-events:none}#travels .mobile-travel-controls-frame{position:sticky;top:0;height:var(--stage-height);pointer-events:none}#travels .travel-stops{flex-wrap:nowrap;gap:2px;justify-content:space-between}#travels .travel-stops button{min-height:44px;padding:5px 2px;font-size:12px;white-space:nowrap}#travels .travel-stops button[aria-current=step]{font-weight:600}#travels .film-progress{margin-top:0}#travels .film-next-link{left:auto;right:0;bottom:calc(100% + 8px);font-size:13px;padding:8px 0}#travels:has(.travel-stage[data-travel-stop="5"]) .film-next-link{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}#travels .travel-film.is-enhanced .travel-beat:last-child{padding-bottom:calc(var(--stage-height) * .35 + var(--travel-copy-bottom, 88px) + 40px)}}@media(max-width:600px){#travels.has-mobile-travel-cards .travel-stage{z-index:8;background:transparent;pointer-events:none}#travels.has-mobile-travel-cards .travel-stage .film-map-panel{pointer-events:auto}#travels.has-mobile-travel-cards .travel-stage>:is(.film-landscapes,.film-sky-wash,.film-people){display:none}#travels.has-mobile-travel-cards .travel-beats{z-index:auto}#travels.has-mobile-travel-cards .travel-film.is-enhanced .travel-beat,#travels.has-mobile-travel-cards .travel-film.is-enhanced .travel-beat:last-child{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;height:var(--stage-height);min-height:var(--stage-height);padding:0 0 var(--travel-copy-bottom, 88px);overflow:hidden;background:var(--paper)}#travels.has-mobile-travel-cards .travel-film.is-enhanced .travel-beat:last-child{padding-bottom:calc(var(--travel-copy-bottom, 88px) + 40px)}#travels .mobile-travel-visual{position:relative;flex:0 0 var(--scene-height, 50svh);height:var(--scene-height, 50svh);overflow:hidden;isolation:isolate}#travels .travel-beat:last-child .mobile-travel-visual{flex-basis:calc(var(--scene-height, 50svh) - 40px);height:calc(var(--scene-height, 50svh) - 40px)}#travels .mobile-travel-visual:after{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(0deg,var(--paper),transparent 12%);pointer-events:none}#travels .mobile-travel-visual .film-landscape,#travels .mobile-travel-visual .travel-pose{opacity:1}#travels .mobile-travel-visual .film-landscape{background-position:var(--card-scene-position, 50%) bottom;transform:translateZ(0);backface-visibility:hidden;will-change:auto}#travels .film-landscape{background-image:var(--card-scene-image, none)}#travels .travel-pose:not(.pose-hcmc){background-image:var(--card-pose-image, none)}#travels .pose-hcmc-boy{background-image:var(--card-boy-image, none)}#travels .pose-hcmc-girl{background-image:var(--card-girl-image, none)}#travels .travel-beat:not(.is-current) .travel-pose{animation-play-state:paused;will-change:auto}#travels .mobile-travel-people{position:absolute;z-index:2;left:var(--card-people-left, 50%);top:var(--card-people-top, 40%);height:var(--card-people-height, 140px);width:calc(var(--card-people-height, 140px) * 1.5);transform:translate(-50%);pointer-events:none}#travels.has-mobile-travel-cards .beat-copy{flex:0 0 auto;padding:18px 24px 0}}@media(max-width:800px){#memories,#invitation{height:auto;min-height:100svh;padding:40px 24px 48px;scroll-margin-top:0;overflow:visible}#memories .memory-heading{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:0}#memories{padding-bottom:50svh}#memories h2,#invitation h2{font-size:clamp(25px,6.8vw,32px);line-height:1.5}#memories .flip-instruction{margin:0;font-size:13px}#memories .memory-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:36px;width:100%;max-width:400px;margin:36px auto 0;padding:0;transform:none}#memories .memory-card{grid-column:auto;grid-row:auto;width:100%;height:auto;min-height:0;aspect-ratio:.88;transform:none;align-self:stretch}#memories .memory-two{aspect-ratio:.64}#memories .memory-three{aspect-ratio:1.15;padding:24px}#memories .card-front{padding:16px 16px 22px;overflow:hidden}#memories .card-front>img{flex:1;width:100%;height:0;min-height:0;object-fit:contain;transform:none}#memories .memory-scene{flex:1;min-height:0;overflow:hidden}#memories .memory-portrait{width:100%;height:100%;padding:36px 0 0;aspect-ratio:auto;transform:none}#memories .card-title{margin:16px 0 8px;font-size:22px}#memories .card-meta{margin-top:0;font-size:11px;line-height:1.6}#memories .card-back{padding:24px;overflow:auto}#memories .memory-margin{margin:32px 0 0;font-size:16px}#invitation{position:relative;height:var(--mobile-locked-height, 100svh);min-height:0;padding:0;overflow:hidden;overflow-anchor:none}#invitation .mobile-scene-frame{padding:20px 20px 12px;display:flex;flex-direction:column;align-items:stretch}#invitation .mobile-scene-frame>.eyebrow{margin:0;font-size:9px}#invitation h2{margin:6px 0 12px;font-size:23px;line-height:1.3}#invitation .invitation-spread{position:static;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:350px;height:auto;max-width:none;margin:auto 0;transform:none}#invitation .wedding-print{width:112px;justify-self:center;padding:0;transform:none}#invitation .wedding-print-face{padding:5px 5px 8px}#invitation .wedding-print-caption{padding:6px 0 0;gap:3px;justify-content:center}#invitation .wedding-print .handwritten{font-size:12px}#invitation .wedding-print small{font-size:8px;line-height:1.5;text-align:center}#invitation .invitation-fold{width:350px;height:328px;max-width:none;padding:0;margin:0}#invitation .envelope-stage{width:640px;height:600px;transform:scale(.546875);transform-origin:left top}#invitation .invitation-sheet{left:4%;width:92%;height:500px;padding:0}#invitation .invite-copy{font-size:18px;line-height:1.65}#invitation .invite-copy strong{font-size:20px}#invitation .invitation-crease{top:calc(50% - 41px);height:82px}#invitation .seal{min-width:82px;min-height:82px}#invitation .ending-note{margin:12px 0 0;font-size:14px;line-height:1.6}#invitation .back-to-top{display:block;width:fit-content;margin:4px auto 0;min-height:44px;font-size:11px}html:is([data-mobile-scene=memories],[data-mobile-scene=invitation]) :is(.story-ribbon,.reader-controls){visibility:hidden;pointer-events:none}}.mobile-browser-chrome,.mobile-browser-content-bounds{display:none}@media(max-width:800px){#main.has-mobile-chapter-snap{touch-action:pan-x pinch-zoom;overscroll-behavior-y:none}html:has(#main.has-mobile-chapter-snap){overscroll-behavior-y:none}.mobile-browser-content-bounds{display:block;position:fixed;inset:0 0 auto;height:100svh;visibility:hidden;pointer-events:none}html[data-mobile-scene],html[data-mobile-scene] body{background-color:#f9f3e7}html[data-mobile-scene] .mobile-browser-chrome{display:block;position:fixed;z-index:0;inset:0 0 auto;width:100%;height:100lvh;background:#f9f3e7;pointer-events:none}html[data-mobile-scene] #main{position:relative;z-index:1;clip-path:polygon(0 var(--mobile-content-top, 0px),100% var(--mobile-content-top, 0px),100% var(--mobile-content-bottom, 100svh),0 var(--mobile-content-bottom, 100svh))}html[data-mobile-scene=travels] #main{-webkit-mask-image:none;mask-image:none}}
