@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/hanken-grotesk-cyrillic-ext-wght-normal.5fcc76c8.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/hanken-grotesk-vietnamese-wght-normal.7b2c63b1.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/hanken-grotesk-latin-ext-wght-normal.bc493153.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/hanken-grotesk-latin-wght-normal.ce76afab.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/dm-mono-latin-ext-400-normal.3d7b48a6.woff2) format("woff2"),url(/_next/static/media/dm-mono-latin-ext-400-normal.5c4b3754.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/dm-mono-latin-400-normal.0488ee5d.woff2) format("woff2"),url(/_next/static/media/dm-mono-latin-400-normal.473b4a21.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:500;src:url(/_next/static/media/fraunces-latin-ext-500-italic.5d9c06c6.woff2) format("woff2"),url(/_next/static/media/fraunces-latin-ext-500-italic.9d5032ff.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:500;src:url(/_next/static/media/fraunces-latin-500-italic.a8b2562f.woff2) format("woff2"),url(/_next/static/media/fraunces-latin-500-italic.d3964c8b.woff) format("woff")}:root{--paper:#f4efe5;--paper-2:#ece5d6;--ink:#16120c;--ink-2:#5a5246;--line:rgba(22,18,12,0.14);--orange:#ff5e2b;--accent-ink:#1a0e00;--cobalt:#2b59ff;--yellow:#ffc43c;--violet:#7a3cff;--mono:"DM Mono",ui-monospace,monospace}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:Hanken Grotesk Variable,PingFang SC,Noto Sans SC,system-ui,sans-serif;font-size:16px;line-height:1.45}h1,h2,h3,p{margin:0}a{color:var(--ink);-webkit-text-decoration-color:var(--orange);text-decoration-color:var(--orange);text-underline-offset:3px}a:hover{color:var(--orange)}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.app{display:grid;grid-template-columns:minmax(400px,480px) 1fr;height:100dvh}.panel{background:var(--paper);overflow-y:auto;padding:26px 32px 40px}.brand{display:flex;align-items:center;gap:9px;margin-bottom:52px;font-size:19px;font-weight:800;letter-spacing:-.02em}.brand:before{content:"";width:15px;height:15px;border-radius:50%;background:var(--orange)}.brand span{margin-left:auto;font-family:var(--mono);font-size:13px;font-weight:400;letter-spacing:0;color:var(--ink-2)}.stage{position:relative;min-width:0;overflow:hidden;background:var(--ink)}.globe-canvas.globe-canvas{position:absolute;inset:0}.map-switch{position:absolute;top:16px;left:16px;display:flex;background:var(--paper);border-radius:999px;padding:4px;font-family:var(--mono);font-size:13px}.map-switch button{border:0;background:none;color:var(--ink);min-height:34px;padding:0 14px;border-radius:999px;font-family:inherit}.map-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.legend{position:absolute;left:16px;bottom:16px;margin:0;padding:8px 16px;list-style:none;display:flex;gap:16px;color:var(--ink);font-family:var(--mono);font-size:13px;background:var(--paper);border-radius:999px}.legend li:before{content:"";display:inline-block;width:18px;height:3px;margin-right:7px;vertical-align:middle;border-radius:2px}.l-flight:before{background:var(--orange)}.l-train:before{background:var(--cobalt)}.l-car:before{background:var(--yellow)}.seal{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--orange);color:var(--accent-ink);font-size:14px;font-weight:800;line-height:1}.seal-on-globe{box-shadow:0 0 0 3px var(--ink)}h1{font-size:46px;line-height:1.02;font-weight:800;letter-spacing:-.03em}h1 mark{background:var(--orange);padding:0 .14em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.lead,h1 mark{color:var(--ink)}.lead{margin-top:16px;max-width:44ch}.form fieldset{border:0;padding:0;margin:36px 0 18px}.form legend{padding:0}.factory-row{padding:18px;margin-bottom:12px;background:var(--paper-2);border-radius:20px}.factory-head{display:flex;gap:8px;align-items:end}.factory-note-field,.fields label,.grow,.time-need{display:grid;grid-gap:6px;gap:6px;font-family:var(--mono);font-size:13px;color:var(--ink-2)}.grow{flex:1 1;min-width:0}.factory-note-field,.time-need{margin-top:12px}.time-inputs{display:grid;grid-template-columns:88px 1fr;grid-gap:8px;gap:8px}input,select{width:100%;height:46px;padding:0 16px;font-family:Hanken Grotesk Variable,system-ui,sans-serif;font-size:16px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:14px}input:hover,select:hover{border-color:var(--ink)}input::placeholder{color:var(--ink-2)}input[type=checkbox]{width:20px;height:20px;padding:0;accent-color:var(--orange)}.row-actions{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.check{display:flex;align-items:center;gap:10px;margin:18px 0 24px}.error{color:#b8320a;font-weight:600;margin-bottom:14px}button{font:inherit;cursor:pointer}.primary{width:100%;height:56px;border:0;border-radius:999px;background:var(--orange);color:var(--accent-ink);font-family:var(--mono);font-size:15px}.primary:hover:not(:disabled){background:var(--ink);color:var(--paper)}.primary:disabled{opacity:.7;cursor:progress}.ghost{background:none;border:1px solid var(--ink);border-radius:999px;padding:0 16px;min-height:38px;color:var(--ink);font-family:var(--mono);font-size:13px}.ghost:hover{background:var(--ink);color:var(--paper)}.remove{border:0;font-family:inherit;font-size:22px;width:36px;height:46px;padding:0;border-radius:14px}.plan-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.warnings{list-style:none;margin:22px 0 0;padding:16px 18px;background:var(--yellow);color:var(--accent-ink);border-radius:20px;font-size:15px}.warnings li+li{margin-top:8px}ol.days{margin:30px 0 0;padding:0;display:block;font-size:16px;color:var(--ink)}.day{display:grid;grid-template-columns:66px 1fr;grid-gap:14px;gap:14px;padding:18px 0;border-top:1px solid var(--line)}.day-date{align-self:start;background:none;border:0;padding:2px 0;display:grid;justify-items:start;color:var(--ink);border-radius:8px}.day-date .num{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.day-date .mon{font-family:var(--mono);font-size:13px;color:var(--ink-2);margin-top:3px}.day-date:hover .num,.day.active .day-date .num{color:var(--orange)}.day[data-kind=free] h3{color:var(--ink-2);font-weight:600}.weekday{font-family:var(--mono);font-size:13px;color:var(--ink-2)}.day h3{font-size:21px;line-height:1.2;font-weight:800;letter-spacing:-.02em;margin-top:2px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.day h3 small{font-family:var(--mono);font-size:13px;font-weight:400;letter-spacing:0;color:var(--ink-2)}.factory-note{margin-top:4px;overflow-wrap:anywhere;font-family:Fraunces Variable,Fraunces,Georgia,serif;font-style:italic;font-weight:500;font-size:17px}.visit-time{margin-top:4px;font-weight:700}.address{margin-top:2px;color:var(--ink-2);overflow-wrap:anywhere}.zh{margin-top:6px;font-size:20px;line-height:1.3}.leg{margin-top:12px;padding:12px 14px;font-size:15px;background:var(--paper-2);border-radius:16px;border-left:5px solid var(--cobalt)}.leg.mode-flight{border-left-color:var(--orange)}.leg.mode-car{border-left-color:var(--yellow)}.leg-meta{color:var(--ink-2)}.choices{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 6px}.choice{border:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;padding:4px 12px;min-height:32px;font-family:var(--mono);font-size:12px}.choice.on{background:var(--ink);color:var(--paper)}.flight-status{margin-top:18px;font-family:var(--mono);font-size:13px;color:var(--ink-2)}.flight-options{display:grid;grid-gap:6px;gap:6px;margin:10px 0}.flight-option{display:grid;grid-gap:1px;gap:1px;text-align:left;padding:8px 12px;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:12px;font-size:14px}.flight-option:hover{border-color:var(--ink)}.flight-option span{font-size:13px;color:var(--ink-2)}.flight-option.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.flight-option.on span{color:rgba(244,239,229,.7)}.rest{margin-top:14px}.rest-label{font-family:var(--mono);font-size:13px;color:var(--ink-2)}.rest-note{margin-top:8px;font-size:15px;font-weight:600}.visit-after-rest{margin-top:16px}.hotel,.note{margin-top:10px;font-size:15px;color:var(--ink-2)}.note{color:#b8320a;font-weight:600}.budget{margin-top:14px;padding:24px;border-radius:24px;background:var(--ink);color:var(--paper)}.budget h2{font-family:var(--mono);font-size:13px;font-weight:400;color:rgba(244,239,229,.6)}.budget dl{display:grid;grid-template-columns:1fr auto;grid-gap:7px 16px;gap:7px 16px;margin:14px 0}.budget dd,.budget dt{margin:0}.budget dd{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.budget .total{font-weight:800;font-size:28px;letter-spacing:-.02em;line-height:1.1;padding-top:10px;color:var(--yellow)}.fineprint{font-family:var(--mono);font-size:12px;color:rgba(244,239,229,.6)}@media (max-width:1200px){.legend{bottom:46px}}@media (max-width:860px){.app{grid-template-columns:1fr;grid-template-rows:42dvh auto;height:auto}.stage{grid-row:1;height:42dvh}.panel{grid-row:2;padding:20px 16px 40px;overflow:visible}.brand{margin-bottom:26px}.legend{bottom:46px;gap:10px;padding:7px 12px;font-size:12px}.maplibregl-ctrl-scale{display:none}h1{font-size:38px}.factory-row{padding:14px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{body{background:#fff;color:#000}.app{display:block;height:auto}.choices,.flight-options,.plan-actions,.stage{display:none}.panel{overflow:visible;padding:0}.brand{margin-bottom:16px}h1 mark{background:none;padding:0}.budget,.leg,.warnings{background:none;border:1px solid #999}.budget,.budget .total,.budget h2,.fineprint{color:#000}.day{page-break-inside:avoid;break-inside:avoid}a{color:inherit;text-decoration:none}.hotel a,.leg a{display:none}}