@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2)format("woff2-variations");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:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/work-sans-vietnamese-wght-normal.BKsN3ITN.woff2)format("woff2-variations");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:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/work-sans-latin-ext-wght-normal.B5dZ8C4S.woff2)format("woff2-variations");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:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/work-sans-latin-wght-normal.Bl-S9Xys.woff2)format("woff2-variations");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{color-scheme:light dark;--font:"Work Sans Variable", "Work Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-h:"Fraunces Variable", "Fraunces", Georgia, serif;--h-weight:700;--h-spacing:0;--page-top:4rem;--fs:16px;--lh:1.6;--sp:1;--measure:100%;--maxw:76rem;--col-w:16rem;--toc-w:17rem;--radius:12px;--pill-radius:999px;--bg:#f7e8d0;--fg:#4a2616;--muted:#8e6a50;--line:#e8cfa8;--card:#fff3df;--accent:#c4501b;--pill:#f3d3a6;--pill-fg:#8a3410}:root[data-mode=light]{color-scheme:light}:root[data-mode=dark]{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--bg:#241613;--fg:#f6e2c9;--muted:#c0997a;--line:#4a2d22;--card:#2e1c17;--accent:#ff9b54;--pill:#4d2a1b;--pill-fg:#ffbe85}}:root[data-mode=dark]{--bg:#241613;--fg:#f6e2c9;--muted:#c0997a;--line:#4a2d22;--card:#2e1c17;--accent:#ff9b54;--pill:#4d2a1b;--pill-fg:#ffbe85}*{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){html[data-smooth]{scroll-behavior:smooth}}body{background:var(--bg);color:var(--fg);font:var(--fs)/var(--lh) var(--font);font-weight:var(--t-body-w);margin:0;transition:background .2s,color .2s}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.25;font-family:var(--font-h);letter-spacing:var(--h-spacing)}.badge{border:1px solid var(--line);font:600 .65rem/1.4 var(--font);letter-spacing:.04em;color:var(--muted);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.05rem .4rem}.home-head{max-width:72rem;margin:0 auto;padding:2.5rem 1rem 1rem}.home-head h1{font-size:var(--t-home-size);font-weight:var(--t-home-w);margin:0 0 .5rem}.home-head p{color:var(--muted);max-width:40rem;margin:0}.bookcases{--plank-gap:.3rem;--board-h:.55rem;--wood-w:.75rem;width:min(72rem,100% - 2rem);padding:var(--wood-w);background:var(--grain) 0 0 / 560px 280px, var(--wood);columns:var(--col-w);column-gap:var(--wood-w);column-rule:var(--wood-w) solid transparent;border-radius:8px;margin:1rem auto 2rem;position:relative;box-shadow:0 1px 2px #00000040,0 .4rem .8rem #0003,0 1.2rem 2rem #0000002e}.case{break-inside:avoid;margin:var(--plank-gap) 0 0;border:0;padding:0}.case:first-child{margin-top:0}.case:before{content:"";height:var(--board-h);display:block;box-shadow:inset 0 -3px #00000029,inset 0 -1px #00000059}.plank,.shelf{box-shadow:inset .55rem 0 .5rem -.45rem #0000004d,inset -.45rem 0 .45rem -.4rem #0000002e}.plank{background:linear-gradient(to bottom, #00000057, #0000001a .7rem, transparent 1.5rem), var(--bg);font-size:var(--t-card-size);font-weight:var(--t-card-w);margin:0;padding:.55rem 1rem .1rem;line-height:1.2}.case.empty{flex-direction:column;margin:0;display:flex;position:absolute}.case.empty .wall{background:linear-gradient(to bottom, #00000057, #0000001a .7rem, transparent 1.5rem), var(--bg);flex:1;box-shadow:inset .55rem 0 .5rem -.45rem #0000004d,inset -.45rem 0 .45rem -.4rem #0000002e}.plank a{color:var(--fg);padding:.22rem 0;line-height:1.35;display:inline-block}.plank .flag{opacity:0;margin-left:.35rem;transition:opacity .18s;display:inline-block}.plank a:hover .flag,.plank a:focus-visible .flag{opacity:1}@media (hover:none){.plank .flag{opacity:1}}.shelf{background:var(--bg);flex-direction:column;gap:.12rem;margin:0;padding:0 1rem;list-style:none;display:flex}.shelf li{display:flex;position:relative}.shelf li:hover,.shelf li:focus-within{z-index:3}.book{height:1.95rem;color:var(--ink);background:linear-gradient(to bottom, #ffffff29, transparent 35%, #00000038), linear-gradient(to right, #0000004d, transparent 6%, transparent 94%, #00000040), var(--cover);font:600 .84rem/1.4 var(--font-h);letter-spacing:.02em;white-space:nowrap;border-radius:2px 3px 3px 2px;flex:1;justify-content:flex-start;align-items:center;padding:0 1.1rem 0 1.5rem;text-decoration:none;transition:transform .22s,box-shadow .22s,filter .22s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #00000073}.book span{text-overflow:ellipsis;overflow:hidden}.book:before,.book:after{content:"";background:var(--band);opacity:.75;width:2px;position:absolute;top:0;bottom:0}.book:before{box-shadow:3px 0 0 var(--band);left:.55rem}.book:after{box-shadow:-3px 0 0 var(--band);right:.55rem}.book.wip span:after{content:" · wip";opacity:.8;font-weight:500}@media (hover:hover){.book:hover,.book:focus-visible{z-index:2;filter:brightness(1.12);outline:none;text-decoration:none;transform:perspective(30rem)translateZ(2.2rem);box-shadow:0 .6rem 1rem #0000008c}}.fan{pointer-events:none;z-index:6;--cw:4.6rem;width:0;height:0;display:none;position:absolute;bottom:100%;left:50%}.fan img{left:calc(var(--cw) / -2);width:var(--cw);height:calc(var(--cw) * 4 / 3);object-fit:cover;background:var(--line);transform-origin:bottom;transform:translateX(calc((var(--i) - (var(--n) - 1) / 2) * var(--cw) * 1.08)) rotate(calc((var(--i) - (var(--n) - 1) / 2) * 7deg));border:3px solid #fffaf0;border-radius:4px;position:absolute;bottom:.3rem;box-shadow:0 .3rem .7rem #00000073}@supports (position-anchor:--a){.shelf li{anchor-scope:--book}.book{anchor-name:--book}.fan{position-anchor:--book;left:anchor(center);bottom:anchor(top);position:fixed}}@keyframes fan-pop{0%{opacity:0;transform:translateY(1.2rem)scale(.6)}to{opacity:1;transform:none}}@media (hover:hover){.shelf li:hover .fan,.shelf li:focus-within .fan{animation:.3s cubic-bezier(.2,.9,.3,1.2) both fan-pop;display:block}}@media (prefers-reduced-motion:reduce){.book{transition:none}.fan{animation:none!important}}:root{--ink:#fff6e5;--band:#e6c27a;--b0:#9b2d20;--b1:#1f5c5a;--b2:#c4851c;--b3:#3d4f7c;--b4:#6b7a3a;--b5:#7a3b61;--b6:#b5532b;--b7:#2f6b4f}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--b0:#8a2a1e;--b1:#1b504e;--b2:#a8701a;--b3:#34446c;--b4:#5c6a31;--b5:#693354;--b6:#a24923;--b7:#28593f}}:root[data-mode=dark]{--b0:#8a2a1e;--b1:#1b504e;--b2:#a8701a;--b3:#34446c;--b4:#5c6a31;--b5:#693354;--b6:#a24923;--b7:#28593f}.book.c0{--cover:var(--b0)}.book.c1{--cover:var(--b1)}.book.c2{--cover:var(--b2)}.book.c3{--cover:var(--b3)}.book.c4{--cover:var(--b4)}.book.c5{--cover:var(--b5)}.book.c6{--cover:var(--b6)}.book.c7{--cover:var(--b7)}.book.wip{--cover:#2b2b2a;--ink:#d9d9d4;--band:#7d7d78}:root{--grain-light:url(/grain-light.webp);--grain-dark:url(/grain-dark.webp);--grain:var(--grain-light);--wood:#d6b27a}@media (prefers-color-scheme:dark){:root:not([data-mode=light]){--grain:var(--grain-dark);--wood:#5a3a24}}:root[data-mode=dark]{--grain:var(--grain-dark);--wood:#5a3a24}.layout{grid-template-columns:var(--toc-w) minmax(0, 1fr);max-width:var(--maxw);margin:0 auto;display:grid}#toc{max-height:100vh;padding:var(--page-top) 1rem 2rem;border-right:1px solid var(--line);align-self:start;font-size:.9rem;position:sticky;top:0;overflow-y:auto}.toc ul{border-left:1px solid var(--line);margin:0 0 0 .25rem;padding:0 0 0 .9rem;list-style:none}.toc>ul{border:0;margin-left:0;padding-left:0}.toc li{margin:.15rem 0}.toc a{color:var(--muted)}.toc a:hover{color:var(--accent)}.toc-country{font-weight:var(--t-tocp-w);font-size:var(--t-tocp-size);margin-bottom:.6rem;display:block;color:var(--fg)!important}.toc-city{font-weight:var(--t-tocc-w);font-size:var(--t-tocc-size);color:var(--fg)!important}.toc li li a{font-weight:var(--t-tocs-w);font-size:var(--t-tocs-size)}.toc-btn{z-index:20;border:1px solid var(--line);background:var(--card);width:2.25rem;height:2.25rem;color:var(--fg);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;display:none;position:fixed;top:.6rem;left:.6rem}main{min-width:0;padding:1rem 1.25rem 4rem}.layout main{padding-top:var(--page-top)}.layout main>*{max-width:var(--measure)}.crumb{margin:0 0 .5rem;font-size:.9rem}main>h1{font-size:var(--t-h1-size);font-weight:var(--t-h1-w);margin:0 0 1rem}main section{margin-top:var(--sp-city-gap);padding-top:var(--sp-city-pad);border-top:1px solid var(--line)}h2,h3{scroll-margin-top:1rem}h2{font-size:var(--t-city-size);font-weight:var(--t-city-w);margin:0 0 var(--sp-city-title-after)}.prose h3{margin:var(--sp-sec-gap) 0 var(--sp-sec-after);font-size:var(--t-sec-size);font-weight:var(--t-sec-w)}.hl{color:var(--muted);opacity:0;vertical-align:middle;margin-left:.4rem;transition:opacity .15s;display:inline-block}h2:hover .hl,h3:hover .hl,.hl:focus{opacity:1}@media (hover:none){.hl{opacity:.5}}.prose p{margin:var(--sp-para) 0}.prose ul,.prose ol{margin:.4rem 0;padding-left:1.4rem}.prose li{margin:calc(var(--sp) * .2rem) 0}.prose p.pill{margin:var(--sp-place-gap) 0 var(--sp-place-after)}.prose h3+p.pill{margin-top:0}.prose p.pill a,.prose p.pill strong{background:var(--pill);color:var(--pill-fg);border-radius:var(--pill-radius);font-weight:var(--t-pill-w);font-size:var(--t-pill-size);border:1px solid #0000;align-items:center;gap:.45rem;padding:.15rem .8rem .15rem .6rem;display:inline-flex}.prose p.pill a:before,.prose p.pill strong:before{content:"";background:var(--accent);width:1.05em;height:1.4em;-webkit-mask:var(--pin) no-repeat center / contain;mask:var(--pin) no-repeat center / contain;flex:none}.prose p.pill a:hover{filter:brightness(.96);text-decoration:none}.prose p.pill.ext a{color:var(--fg);border-color:var(--accent);background:0 0}.prose p.pill.ext a:hover{filter:none}.prose p.pill.ext a:before{background:var(--muted);-webkit-mask:var(--link) no-repeat center / contain;mask:var(--link) no-repeat center / contain;width:1.05em;height:1.05em}.prose p.pill.ext[style*=--fav] a:before{background:var(--fav) center / contain no-repeat;opacity:.75;border-radius:3px;-webkit-mask:none;mask:none}.prose p.collage{margin:.6rem 0 var(--sp-img-after);width:min(100%, calc((500px + var(--k,0) * .4rem) / var(--t,1)));flex-direction:column;gap:.4rem;display:flex}.prose p.collage .row{flex-wrap:wrap;gap:.4rem;display:flex}.prose p.collage .row>*{flex:var(--ar) 1 calc(var(--ar) * 10rem);min-width:0;max-height:500px;aspect-ratio:var(--ar)}.prose p.collage .row img{object-fit:cover;border-radius:var(--radius);background:var(--line) center / cover;width:100%;height:100%;display:block}.prose p.collage[data-n="1"]{width:auto;display:block}.prose p.collage[data-n="1"] img{border-radius:var(--radius);background:var(--line) center / cover;width:100%;height:auto;display:block}.prose p.collage[data-n="1"]{--w:min(100%, 26rem, calc(34rem * var(--ar,1.5)))}.prose p.collage[data-n="1"]>img,.prose p.collage[data-n="1"]>.img-src{width:var(--w)}.prose p.collage[data-n="1"] img{object-fit:contain;height:auto;margin:0}.prose p.collage[data-n="1"] .img-src img{width:100%}.prose .img-src{display:block;position:relative}.prose .src-link{border-radius:var(--pill-radius);color:#fff;font:500 .62rem/1.4 var(--font);opacity:.6;background:#0000004d;padding:.02rem .4rem;text-decoration:none;transition:opacity .15s;position:absolute;bottom:.3rem;left:.3rem}.prose .src-link:hover{opacity:1;text-decoration:underline}@media (width<=899px){.layout{display:block}.layout main{padding-top:5rem}.toc-btn{display:flex}[data-toc=closed] #toc{display:none}#toc{z-index:10;background:var(--bg);width:min(20rem,85vw);max-height:none;padding-top:3.5rem;position:fixed;inset:0 auto 0 0;box-shadow:0 0 30px #00000040}}.mode-btn{z-index:30;border:1px solid var(--line);background:var(--card);width:2.25rem;height:2.25rem;color:var(--fg);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;padding:0;font-size:1.05rem;line-height:1;display:flex;position:fixed;top:.6rem;right:.6rem}.toc-home{border:1px solid var(--line);background:var(--card);border-radius:.5rem;margin-bottom:1rem;padding:.25rem .7rem;font-size:.85rem;display:inline-block;color:var(--fg)!important}.toc-home:hover{border-color:var(--accent);text-decoration:none}.prose p.pill strong a{color:inherit;font-weight:inherit;background:0 0;border:0;border-radius:0;padding:0;display:inline}.prose p.pill strong a:before{content:none}.layout main>h1{margin-top:-.287em}@supports (text-box-trim:trim-start){.layout main>h1{text-box-trim:trim-start;text-box-edge:cap alphabetic;margin-top:0}}:root{--t-h1-size:clamp(1.7rem, 4vw, 2.4rem);--t-h1-w:700;--t-city-size:1.8rem;--t-city-w:700;--t-sec-size:1.6rem;--t-sec-w:500;--t-body-w:400;--t-pill-size:1em;--t-pill-w:600;--t-home-size:clamp(1.5rem, 4vw, 2.2rem);--t-home-w:700;--t-card-size:1.15rem;--t-card-w:700;--t-tocp-size:1rem;--t-tocp-w:700;--t-tocc-size:.9rem;--t-tocc-w:600;--t-tocs-size:.9rem;--t-tocs-w:400}.toc a{position:relative}.toc a.active{color:var(--accent)}.toc a.active:before{content:"";background:var(--accent);border-radius:50%;width:.4rem;height:.4rem;margin-top:-.2rem;position:absolute;top:50%;left:-1rem}.toc a.toc-city.active-city{color:var(--accent)!important}.layout main>h1+section{padding-top:var(--sp-first-city);margin-top:0}.prose>h3:first-child{margin-top:var(--sp-sec-first)}:root{--sp-first-city:1.5rem;--sp-city-gap:4rem;--sp-city-pad:2rem;--sp-city-title-after:.75rem;--sp-sec-gap:2.5rem;--sp-sec-first:1.75rem;--sp-sec-after:.6rem;--sp-place-gap:1.8rem;--sp-place-after:.2rem;--sp-para:.35rem;--sp-img-after:1rem;--link:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M6.5 9.5a3 3 0 0 0 4.2 0l2-2a3 3 0 0 0-4.2-4.2l-.8.8M9.5 6.5a3 3 0 0 0-4.2 0l-2 2a3 3 0 0 0 4.2 4.2l.8-.8'/%3E%3C/svg%3E");--pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E")}
