@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/inconsolata-vietnamese-300-normal.Cp_WQXf8.woff2)format("woff2"),url(/_astro/inconsolata-vietnamese-300-normal.Cj65E-eA.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/inconsolata-latin-ext-300-normal.DC1iEOGP.woff2)format("woff2"),url(/_astro/inconsolata-latin-ext-300-normal.BBGpqR9K.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/inconsolata-latin-300-normal.CFiGl7fO.woff2)format("woff2"),url(/_astro/inconsolata-latin-300-normal.DG7PfCYD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inconsolata-vietnamese-400-normal.DfC_iMic.woff2)format("woff2"),url(/_astro/inconsolata-vietnamese-400-normal.ByiM2lek.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inconsolata-latin-ext-400-normal.BaHVOdFB.woff2)format("woff2"),url(/_astro/inconsolata-latin-ext-400-normal.yvPjCxxx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inconsolata-latin-400-normal.DTZQ6lD6.woff2)format("woff2"),url(/_astro/inconsolata-latin-400-normal.HYADljCo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inconsolata-vietnamese-700-normal.DuasYmn8.woff2)format("woff2"),url(/_astro/inconsolata-vietnamese-700-normal.DLCFFAUf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inconsolata-latin-ext-700-normal.D0Kpgs_9.woff2)format("woff2"),url(/_astro/inconsolata-latin-ext-700-normal.Dlt-daqV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inconsolata-latin-700-normal.ByjKuJjN.woff2)format("woff2"),url(/_astro/inconsolata-latin-700-normal.DzgUY3Rl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#2b2b2b;--muted:#8a8a8a;--line:#e9e9e9;--paper:#fff;--accent:#d8461f;--gutter:clamp(16px, 3vw, 44px);--header:74px;--cue:92px;--gap:clamp(8px, 1.2vw, 16px);--ease:cubic-bezier(.22, .61, .36, 1);--font:"Inconsolata", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--font);margin:0}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none;transition:color .2s}a:hover{color:var(--accent)}html.lb-open{overflow:hidden}@view-transition{navigation:auto}.site-header{min-height:var(--header);padding:14px var(--gutter);justify-content:space-between;align-items:center;gap:1rem;display:flex}.logo,.page-heading{letter-spacing:.02em;margin:0;font-size:1.45rem;font-weight:400;line-height:1.25}.page-heading{flex-wrap:wrap;align-items:baseline;gap:0 .6em;display:flex}.heading-year{color:var(--muted);font-size:.8em}.site-header nav{align-items:center;gap:clamp(14px,2.5vw,34px);font-size:.95rem;display:flex}.site-header nav a[aria-current=page]{color:var(--accent)}.lang-switch{border-left:1px solid var(--line);gap:.5em;padding-left:clamp(10px,1.5vw,22px);display:flex}.lang-switch [aria-current]{color:var(--ink)}.lang-switch a{color:var(--muted)}.lang-switch a:hover{color:var(--accent)}.social{justify-content:center;gap:18px;margin-bottom:12px;display:flex}.social a{color:var(--muted)}.social a:hover{color:var(--accent)}.social svg{fill:currentColor;width:18px;height:18px;display:block}.site-footer{text-align:center;color:var(--muted);padding:48px var(--gutter) 28px;font-size:.85rem}html.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--delay,0s);transform:translateY(18px)}html.js [data-reveal].in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html.js [data-reveal]{opacity:1;transition:none;transform:none}}.carousel{margin:0 var(--gutter);height:calc(100vh - var(--header) - var(--cue));height:calc(100svh - var(--header) - var(--cue));background:#111;min-height:360px;position:relative;overflow:hidden}.slide-set[hidden]{display:none}.slide{opacity:0;pointer-events:none;transition:opacity 1.6s;position:absolute;inset:0;overflow:hidden}.slide.active{opacity:1;pointer-events:auto}.slide img{object-fit:cover;width:100%;height:100%;transition:transform 8s linear;transform:scale(1)}.slide.active img{transform:scale(1.06)}.slide:after{content:"";background:linear-gradient(#0000 62%,#0000006b);position:absolute;inset:0}.slide-caption{z-index:1;color:#fff;line-height:1.2;position:absolute;bottom:clamp(22px,4vw,44px);left:clamp(18px,3vw,44px);right:clamp(18px,3vw,44px)}.slide-title,.slide-year{opacity:0;transition:opacity .9s var(--ease) .5s, transform .9s var(--ease) .5s;display:block;transform:translateY(14px)}.slide-title{font-size:clamp(1.4rem,2.8vw,2.4rem)}.slide-year{opacity:0;margin-top:6px;font-size:clamp(.9rem,1.3vw,1.1rem);transition-delay:.7s}.slide.active .slide-title{opacity:1;transform:none}.slide.active .slide-year{opacity:.85;transform:none}.slide:hover .slide-caption{color:#fff}.scroll-cue{height:var(--cue);color:var(--accent);justify-content:center;align-items:center;display:flex}.scroll-cue svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:34px;height:34px;animation:2.2s ease-in-out infinite nudge}.scroll-cue:hover{color:var(--ink)}@keyframes nudge{0%,to{transform:translateY(-4px)}50%{transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.scroll-cue svg{animation:none}.slide img,.slide.active img{transition:none;transform:none}}#travels{scroll-margin-top:20px}.section-title{text-align:center;letter-spacing:.08em;color:var(--muted);margin:36px 0 24px;font-size:1rem;font-weight:400}.page-title{text-align:center;margin:24px 0 0;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400}.page-sub{text-align:center;color:var(--muted);margin:4px 0 32px}.tiles{padding:0 var(--gutter);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.8vw,26px);display:grid}@media (width<=1100px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.tiles{grid-template-columns:1fr}}.tile{display:block}.tile-photo{background:#eee;display:block;position:relative;overflow:hidden}.tile-photo img{aspect-ratio:3/2;object-fit:cover;width:100%;transition:transform .9s var(--ease), filter .6s ease}.tile-overlay{color:#fff;opacity:0;background:linear-gradient(#0000 40%,#0000008c);flex-direction:column;justify-content:flex-end;padding:clamp(12px,1.6vw,22px);transition:opacity .5s;display:flex;position:absolute;inset:0}.tile-overlay-title,.tile-overlay-sub{transition:transform .6s var(--ease);transform:translateY(16px)}.tile-overlay-title{font-size:1.2rem;line-height:1.2}.tile-overlay-sub{opacity:.85;margin-top:4px;font-size:.85rem;transition-delay:60ms}.tile-caption{padding:10px 2px 0;transition:opacity .4s;display:block}.tile-caption strong{color:var(--ink);font-size:1.05rem;font-weight:400;display:block}.tile-caption span{color:var(--muted);font-size:.85rem}@media (hover:hover){.tile:hover .tile-photo img{filter:brightness(.9);transform:scale(1.06)}.tile:hover .tile-overlay{opacity:1}.tile:hover .tile-overlay-title,.tile:hover .tile-overlay-sub{transform:none}.tile:hover .tile-caption{opacity:0}}.crumbs{padding:0 var(--gutter);color:var(--muted);margin:4px 0 0;font-size:.9rem}.crumbs span{margin:0 .5em}.album-text{max-width:44rem;margin:28px var(--gutter) 32px}.album-text p:first-child,.text-tile p:first-child{margin-top:0}.dates-line{color:var(--muted);font-size:.95rem}.selection-note{color:var(--muted);border-top:1px solid var(--line);padding-top:.8em;font-size:.85rem}.album-text+.tiles{margin-top:8px}.crumbs+.tiles,.crumbs+.masonry{margin-top:28px}.masonry{gap:var(--gap);padding:0 var(--gutter);align-items:flex-start;margin-top:20px;display:flex}.masonry:not(.laid-out){columns:4 220px;column-gap:var(--gap);display:block}.masonry:not(.laid-out) .masonry-item{break-inside:avoid}.masonry.laid-out{flex-wrap:wrap}.text-tile.wide{flex:100%}.masonry-col{gap:var(--gap);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.masonry:not(.laid-out) .masonry-item{margin-bottom:var(--gap)}.photo-item{cursor:zoom-in;background:#f2f2f2;display:block;overflow:hidden}.photo-item img{width:100%;transition:transform .8s var(--ease), filter .5s ease, opacity .5s ease}@media (hover:hover){.photo-item:hover img{filter:brightness(1.06)contrast(1.03);transform:scale(1.045)}.masonry-col:hover .photo-item:not(:hover) img{opacity:.88}}.text-tile{background:#f7f7f5;padding:clamp(16px,2vw,28px);font-size:.98rem}.see-more{margin:36px var(--gutter) 0;text-align:center;background:var(--accent);color:#fff;letter-spacing:.04em;transition:filter .25s ease, letter-spacing .4s var(--ease);padding:18px;display:block}.see-more:hover{color:#fff;filter:brightness(1.08);letter-spacing:.08em}.all-bar{margin:8px var(--gutter) 0;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-size:.95rem;display:flex}.all-bar .back{color:var(--accent)}.all-bar .back:hover{color:var(--ink)}.all-count{color:var(--muted)}.pager{margin:40px var(--gutter) 0;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-size:.95rem;display:grid}.pager>a:first-child{justify-self:start}.pager>:last-child{justify-self:end}.pager a{color:var(--accent)}.pager a:hover{color:var(--ink)}.pager-numbers{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pager-numbers>*{text-align:center;border:1px solid var(--line);min-width:2em;padding:2px 6px}.pager-numbers [aria-current]{background:var(--accent);border-color:var(--accent);color:#fff}.pager-numbers a{color:var(--ink)}.pager-numbers a:hover{border-color:var(--accent);color:var(--accent)}.story-map{height:380px;margin:56px var(--gutter) 0;background:#eee}.map-page{height:calc(100vh - 150px);min-height:420px;margin:0 var(--gutter);background:#eee}.map-popup img{aspect-ratio:3/2;object-fit:cover;width:220px;margin-bottom:6px}.map-popup strong{font:400 15px/1.3 var(--font);display:block}.map-popup span{font:13px/1.3 var(--font);color:var(--muted)}.map-cluster{background:var(--accent);color:#fff;font:700 13px/1 var(--font);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 1px 4px #0000004d}.lightbox{z-index:1000;opacity:0;transition:opacity .25s;position:fixed;inset:0}.lightbox.visible{opacity:1}.lb-backdrop{backdrop-filter:blur(3px);background:#ffffffdb;transition:background .35s;position:absolute;inset:0}.lb-figure{pointer-events:none;transition:inset .45s var(--ease);justify-content:center;align-items:center;margin:0;display:flex;position:absolute;inset:64px 72px 72px}.lb-img{pointer-events:auto;object-fit:contain;cursor:e-resize;width:auto;max-width:100%;height:auto;max-height:100%;transition:transform .35s var(--ease), box-shadow .35s ease;transform:scale(.97);box-shadow:0 18px 50px #00000038}.lightbox.visible .lb-img{transform:none}.lb-img.slide-left{animation:from-right .4s var(--ease)}.lb-img.slide-right{animation:from-left .4s var(--ease)}@keyframes from-right{0%{opacity:.2;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes from-left{0%{opacity:.2;transform:translate(-28px)}to{opacity:1;transform:none}}.lb-bar{height:64px;padding:0 var(--gutter);color:var(--muted);align-items:center;gap:18px;font-size:.9rem;display:flex;position:absolute;bottom:0;left:0;right:0}.lb-original{color:var(--muted);text-underline-offset:3px;text-decoration:underline}.lb-buttons{gap:4px;margin-left:auto;display:flex}.lb-buttons button{width:42px;height:42px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;transition:color .2s,border-color .2s;display:grid}.lb-buttons button:hover,.lb-buttons button:focus-visible{color:var(--accent);border-color:var(--line);outline:none}.lb-buttons svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.lb-full .icon-exit{display:none}.lightbox.is-full .lb-backdrop{background:var(--paper);backdrop-filter:none}.lightbox.is-full .lb-figure{inset:var(--header) var(--gutter) var(--cue)}.lightbox.is-full .lb-img{box-shadow:none}.lightbox.is-full .lb-bar{height:var(--header);top:0;bottom:auto}.lightbox.is-full .lb-full .icon-enter{display:none}.lightbox.is-full .lb-full .icon-exit{display:block}@media (prefers-reduced-motion:reduce){.lb-img.slide-left,.lb-img.slide-right{animation:none}}@media (width<=760px){body{font-size:16px}.site-header{flex-wrap:wrap}.logo,.page-heading{font-size:1.25rem}.site-header nav{gap:14px;font-size:.9rem}.lb-figure{inset:16px 8px 64px}.lightbox.is-full .lb-figure{inset:var(--header) 16px 24px}.lb-original{display:none}.pager{grid-template-columns:1fr 1fr}.pager-numbers{order:-1;grid-column:1/-1}}
