@font-face{font-family:Bungee;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/bungee-vietnamese-400-normal.B6gKbkHm.woff2)format("woff2"),url(/_astro/bungee-vietnamese-400-normal.CmjDSWyd.woff)format("woff")}@font-face{font-family:Bungee;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/bungee-latin-400-normal.Dfnurram.woff2)format("woff2"),url(/_astro/bungee-latin-400-normal.DA8IEVW_.woff)format("woff")}@font-face{font-family:Bungee;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/bungee-latin-ext-400-normal.DWzJMwsA.woff2)format("woff2"),url(/_astro/bungee-latin-ext-400-normal.DXe9_7Rr.woff)format("woff")}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/patrick-hand-vietnamese-400-normal.65jA92mZ.woff2)format("woff2"),url(/_astro/patrick-hand-vietnamese-400-normal.CZjY324Y.woff)format("woff")}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/patrick-hand-latin-400-normal.B7HHA2Vw.woff2)format("woff2"),url(/_astro/patrick-hand-latin-400-normal.Df9_VoRQ.woff)format("woff")}@font-face{font-family:Patrick Hand;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/patrick-hand-latin-ext-400-normal.Dno5CMlI.woff2)format("woff2"),url(/_astro/patrick-hand-latin-ext-400-normal.C2ywpnn3.woff)format("woff")}.kp{--paper:#ece2cc;--paper-2:#e1d3b5;--card:#fbf6ea;--ink:#1f1b16;--ink-2:#5a4f43;--line:#cdbf9f;--brand:#fc4a00;--brand-deep:#c43800;--teal:#2c6e69;--note:#fff3b8;--f-display:"Bungee", "Be Vietnam Pro", Impact, sans-serif;--f-hand:"Patrick Hand", "Be Vietnam Pro", cursive;color-scheme:light;background-color:var(--paper);background-image:radial-gradient(ellipse at 12% 8%, #7854281a, transparent 45%), radial-gradient(ellipse at 88% 60%, #78542814, transparent 40%), var(--kp-grain,none);color:var(--ink);font-size:16px;line-height:1.55;overflow-x:clip}.kp-thu-vien{width:0;height:0;position:absolute;overflow:hidden}.kp-wrap{max-width:1240px;padding-inline:max(16px, env(safe-area-inset-left,0px)) max(16px, env(safe-area-inset-right,0px));margin-inline:auto}.kp a{color:inherit}.kp :focus-visible{outline:3px dashed var(--brand-deep);outline-offset:4px}.kp-crumb{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;padding-block:16px 4px;font-size:13px;line-height:1.4;display:flex}.kp-crumb a:hover{text-decoration:underline}.kp-stage-wrap{margin-top:4px;margin-bottom:56px;position:relative}.kp-stage{aspect-ratio:1200/780;position:relative;container-type:inline-size}.kp-zebra{z-index:0;pointer-events:none;transform-origin:50% 100%;opacity:.92;background:repeating-linear-gradient(98deg,#0000 0 4.2%,#ebb13e 4.2% 8.6%);height:19%;position:absolute;bottom:0;left:0;right:0;transform:perspective(420px)rotateX(52deg);-webkit-mask-image:linear-gradient(#0000,#000 45%);mask-image:linear-gradient(#0000,#000 45%)}.kp-title{z-index:3;pointer-events:none;font-family:var(--f-display);color:var(--brand-deep);text-shadow:.035em .03em #fc4a0052;letter-spacing:-.01em;margin:0;font-size:13cqw;font-weight:400;line-height:.9;position:absolute;top:0;left:3%}.kp-title span{display:block}.kp-title span+span{margin-left:1.1em}.kp-sub{left:var(--x);top:var(--y);z-index:6;font-family:var(--f-hand);pointer-events:none;font-size:3.1cqw;line-height:1;position:absolute;transform:rotate(-7deg)}.kp-sub svg{width:5cqw;height:auto;margin:.1em 0 0 .6em;display:block}.kp-piece{left:var(--x);top:var(--y);width:var(--w);z-index:var(--z,2);cursor:pointer;color:inherit;font:inherit;transform:translate(calc(var(--px,0) * var(--d,1) * 16px), calc(var(--py,0) * var(--d,1) * 11px)) rotate(var(--r,0deg)) scale(var(--s,1));will-change:transform;animation:.55s cubic-bezier(.2,.9,.3,1.25) both kp-drop;animation-delay:calc(var(--i,0) * 55ms);background:0 0;border:0;margin:0;padding:0;transition:transform .4s cubic-bezier(.2,.8,.2,1);position:absolute}.kp-piece svg{width:100%;height:auto;display:block;overflow:visible}.kp-piece:hover,.kp-piece:focus-visible{--s:1.06;z-index:30}.kp-piece:after{content:attr(data-label);z-index:2;white-space:nowrap;pointer-events:none;font-family:var(--f-hand);color:var(--ink);background:var(--note);opacity:0;padding:3px 10px 2px;font-size:16px;line-height:1.2;transition:opacity .2s;position:absolute;bottom:0;left:50%;transform:translate(-50%,70%)rotate(-3deg);box-shadow:0 3px 8px #28190a40}.kp-piece:hover:after,.kp-piece:focus-visible:after{opacity:1}@keyframes kp-drop{0%{opacity:0;translate:0 -26px;scale:1.12}to{opacity:1;translate:0;scale:1}}.kp-tape{z-index:3;pointer-events:none;clip-path:polygon(0 8%,4% 0,9% 10%,14% 0,20% 6%,100% 0,96% 22%,100% 40%,95% 60%,100% 82%,97% 100%,0 100%,4% 78%,0 56%,5% 36%);background:#ece0bec7;width:34%;height:9%;min-height:14px;position:absolute;box-shadow:0 1px 2px #00000014}.kp-neon{font-family:var(--f-display);text-align:center;white-space:nowrap;color:#fff1ea;text-shadow:0 0 3px #fff, 0 0 9px var(--glow), 0 0 20px var(--glow), 0 0 38px var(--glow);background:#1b191e;border:2px solid #3a3640;border-radius:.45em;padding:.55em .8em;font-size:2.15cqw;line-height:1.05;animation:6s infinite kp-hum;display:block;box-shadow:0 8px 16px #1e0f0559,inset 0 0 22px #000000b3}.kp-neon small{font-family:var(--f-hand);letter-spacing:.06em;text-shadow:0 0 6px var(--glow);color:#ffe0c9;font-size:.5em;display:block}@keyframes kp-hum{0%,92%,to{opacity:1}93%{opacity:.55}94%{opacity:1}96%{opacity:.7}}.kp-sticker{aspect-ratio:1;background:var(--brand);color:#fff8ee;text-align:center;width:100%;font-family:var(--f-display);border:.35cqw solid #fff6e6;border-radius:50%;align-content:center;place-items:center;gap:.1em;font-size:1.15cqw;line-height:1.05;display:grid;box-shadow:0 6px 14px #3c140059}.kp-sticker b{font-size:3.6em;font-weight:400;line-height:.95}.kp-news-wrap{z-index:6;filter:drop-shadow(3px 6px 6px #2b1a0e4d);width:30%;position:absolute;top:73.5%;left:37%;transform:rotate(1.4deg)}.kp-news{background:#f3eddf;padding:16px 18px 20px}.kp-news .mast{border-bottom:3px double var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px;margin-bottom:8px;padding-bottom:4px;display:flex}.kp-news .mast b{font-family:var(--f-display);letter-spacing:.02em;white-space:nowrap;font-size:17px;font-weight:400}.kp-news .mast span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:11px}.kp-news h1{margin:0 0 4px;font-size:15px;font-weight:800}.kp-news p{margin:0;font-size:14px;line-height:1.5}.kp-news .hint{font-family:var(--f-hand);color:var(--brand-deep);align-items:center;gap:6px;margin-top:8px;font-size:17px;display:flex}.kp-news .cols{background:repeating-linear-gradient(#0000 0 5px,#1f1b162e 5px 7px);grid-template-columns:1fr 1fr;gap:10px;height:34px;margin-top:10px;display:grid}@media (width<=720px){.kp-stage{aspect-ratio:400/760}.kp-piece,.kp-sub{left:var(--mx,var(--x));top:var(--my,var(--y))}.kp-piece{width:var(--mw,var(--w))}.kp-hide-m{display:none}.kp-title{font-size:24cqw}.kp-sub{font-size:6.4cqw}.kp-sub svg{width:10cqw}.kp-neon{font-size:4.3cqw}.kp-sticker{border-width:.8cqw;font-size:2.6cqw}.kp-zebra{height:13%}.kp-piece:after{font-size:14px}.kp-news-wrap{width:auto;margin-top:18px;position:relative;top:auto;left:auto;transform:rotate(-.8deg)}.kp-stage-wrap{margin-bottom:40px}}.kp-section{padding-block:28px}.kp-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--brand-deep);margin:0 0 6px;font-size:12px;font-weight:700}.kp h2.kp-h,.kp h1.kp-h{font-family:var(--f-display);text-wrap:balance;margin:0;font-size:clamp(28px,4.4vw,46px);font-weight:400;line-height:1.02}.kp-lede{max-width:62ch;color:var(--ink-2);margin:10px 0 0}.kp-routes{grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 22px;margin-top:24px;display:grid}.kp-route{transform:rotate(var(--r,0deg));will-change:transform;text-decoration:none;transition:transform .3s;display:block;position:relative}a.kp-route:hover{transform:rotate(0)translateY(-4px)}.kp-route-in{background:var(--card);padding:14px 14px 18px;box-shadow:0 2px #5a46281f,0 10px 22px #3c281429}.kp-route .art{aspect-ratio:4/3;background:var(--paper-2);position:relative}.kp-route .art svg{width:76%;height:76%;position:absolute;top:12%;left:12%;overflow:visible}.kp-route .kp-tape{width:34%;height:20px;top:-7px;left:33%}.kp-route h3{text-wrap:balance;margin:12px 0 4px;font-size:18px;font-weight:800;line-height:1.25}.kp-route p{color:var(--ink-2);margin:0;font-size:14px}.kp-status{letter-spacing:.1em;text-transform:uppercase;border-radius:3px;margin-top:10px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.kp-status.open{background:var(--brand-deep);color:#fff6ee}.kp-status.soon{border:1.5px dashed var(--ink-2);color:var(--ink-2)}@media (width<=980px){.kp-routes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=460px){.kp-routes{grid-template-columns:1fr}}.kp-head{gap:10px;padding-top:8px;display:grid}.kp-facts{flex-wrap:wrap;gap:8px 22px;margin-top:6px;font-size:15px;display:flex}.kp-facts b{font-variant-numeric:tabular-nums;font-weight:800}.kp-journey{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:32px;margin-top:26px;display:grid}.kp-mapcol{position:sticky;top:84px}.kp-mapcard{background-color:#f4ecd9;background-image:linear-gradient(90deg,#0000 49.6%,#5a462821 50%,#0000 50.4%),linear-gradient(#0000 49.4%,#5a46281a 50%,#0000 50.6%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;padding:12px;transform:rotate(-.6deg);box-shadow:0 2px #5a46281f,0 12px 26px #3c28142e}.kp-mapcard svg{width:100%;height:auto;display:block}.kp-legend{color:var(--ink-2);flex-wrap:wrap;gap:6px 16px;padding:8px 4px 2px;font-size:13px;display:flex}.kp-legend i{vertical-align:middle;border-top:3px dashed;width:22px;height:0;margin-right:6px;display:inline-block}.kp-legend .dot{background:var(--ink);border:0;border-radius:50%;width:12px;height:12px}.kp-pin{cursor:pointer}.kp-pin circle{transform-box:fill-box;transform-origin:50%;transition:transform .2s}.kp-pin.on circle,.kp-pin:hover circle,.kp-pin:focus-visible circle{transform:scale(1.35)}.kp-pin .lbl{opacity:0;pointer-events:none;transition:opacity .2s}.kp-pin.on .lbl,.kp-pin:hover .lbl,.kp-pin:focus-visible .lbl{opacity:1}.kp-day{margin:0 0 22px}.kp-day h2{font-family:var(--f-hand);color:var(--dc);flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 12px;font-size:26px;font-weight:400;line-height:1.1;display:flex}.kp-day h2 small{color:var(--ink-2);font-family:Be Vietnam Pro,sans-serif;font-size:13px}.kp-stops{gap:14px;margin:0;padding:0;list-style:none;display:grid}.kp-stop{background:var(--card);transform:rotate(var(--r,0deg));grid-template-columns:44px minmax(0,1fr);gap:12px;padding:14px 16px 14px 12px;scroll-margin-top:90px;transition:background .2s,transform .2s;display:grid;box-shadow:0 2px #5a46281f,0 6px 14px #3c281414}.kp-stop.on{background:#fff0da;transform:rotate(0)}.kp-stop .num{color:#fff8ee;font-variant-numeric:tabular-nums;background:var(--dc);border-radius:50%;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.kp-stop.seen .num{background:var(--ink)}.kp-stop h3{margin:0;font-size:17px;font-weight:800;line-height:1.3}.kp-stop .addr{color:var(--ink-2);margin:3px 0 0;font-size:14px}.kp-stop .note{margin:6px 0 0;font-size:15px;line-height:1.5}.kp-acts{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:10px;display:flex}.kp-btn{font:inherit;border:1.5px solid var(--ink);background:var(--ink);color:#fbf6ea;cursor:pointer;border-radius:4px;padding:7px 12px;font-size:14px;font-weight:700;line-height:1.3;text-decoration:none;display:inline-block}.kp-btn.ghost{color:var(--ink);background:0 0}a.kp-btn:hover,button.kp-btn:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff6ee}.kp-btn.off{color:var(--ink-2);border-style:dashed;border-color:var(--ink-2);cursor:default;background:0 0}.kp-seen{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;gap:6px;min-height:36px;font-size:14px;display:inline-flex}.kp-seen input{width:18px;height:18px;accent-color:var(--brand-deep)}.kp-passport{color:#f4ecd9;background:#2a2622;margin-top:8px;padding:20px}.kp-passport h2{font-family:var(--f-display);margin:0;font-size:20px;font-weight:400}.kp-passport .ptop{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.kp-passport .count{color:#cdbf9f;font-size:14px}.kp-stamps{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:12px;margin-top:14px;display:grid}.kp-stamp{aspect-ratio:1;text-align:center;color:#f4ecd98c;border:2px dashed #f4ecd959;border-radius:50%;align-content:center;place-items:center;padding:6px;font-size:11px;line-height:1.15;display:grid}.kp-stamp .sn{font-size:15px;font-weight:800}.kp-stamp .sd{font-family:var(--f-hand);font-size:13px}.kp-stamp.on{color:#ff8a55;transform:rotate(var(--sr,-8deg));background:radial-gradient(circle,#ff6a2b1f,#0000 70%);border:3px double #ff6a2b}.kp-passport .kp-btn{color:#f4ecd9;background:0 0;border-color:#f4ecd980;margin-top:14px}.kp-tips{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px;display:grid}.kp-tip{background:var(--note);transform:rotate(var(--r,0deg));padding:14px 16px 16px;font-size:15px;box-shadow:0 6px 12px #3c281424}.kp-tip b{font-family:var(--f-hand);margin-bottom:4px;font-size:21px;font-weight:400;line-height:1.1;display:block}.kp-foot{border-top:1.5px solid var(--line);color:var(--ink-2);margin-top:28px;padding-block:16px 32px;font-size:13px}@media (width<=960px){.kp-journey{grid-template-columns:1fr}.kp-mapcol{position:relative;top:auto}.kp-tips{grid-template-columns:1fr}}.kp-phieu{left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--card);width:min(420px,100% - 32px);color:var(--ink);border-top:6px solid var(--brand);padding:16px 18px 18px;position:fixed;transform:translate(-50%)rotate(-1deg);box-shadow:0 14px 40px #1e120659}.kp-phieu .k{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-deep);font-size:11px;font-weight:700}.kp-phieu h2{margin:4px 0 6px;font-size:20px;font-weight:800;line-height:1.25}.kp-phieu p{color:var(--ink-2);margin:0;font-size:15px}.kp-phieu .x{cursor:pointer;color:var(--ink-2);background:0 0;border:0;padding:6px 10px;font-size:24px;line-height:1;position:absolute;top:4px;right:6px}.kp-phieu .kp-status{margin-top:0}@media (prefers-reduced-motion:reduce){.kp-piece{transition:none;animation:none}.kp-neon{animation:none}.kp-route,.kp-stop,.kp-pin circle{transition:none}}
