/* The travel journal has its own flat, quiet frame; the official map stays untouched. */
html body.fp-page {--fp-ink:var(--text,#202f39);--fp-muted:var(--muted,#586975);--fp-paper:var(--surface,#fff);--fp-rule:var(--control,#cbd5db)}
html body.fp-page :is(.fp-top,.fp-wrap,.fp-footer) {max-width:1360px}
html body.fp-page .fp-top {align-items:center;padding-top:26px;padding-bottom:26px;border-bottom:1px solid var(--fp-rule)}
html body.fp-page .fp-top>a {padding:0;border-radius:0;background:none;box-shadow:none;text-shadow:none}
html body.fp-page .fp-top>a:first-child {font-size:18px;letter-spacing:.06em}
html body.fp-page .fp-top>a:last-child {font-size:14px;color:var(--fp-muted)}
html body.fp-page .fp-wrap {margin-top:40px}
html body.fp-page .fp-heading {padding:0;background:none;border-radius:0;box-shadow:none;text-shadow:none}
html body.fp-page .fp-heading h1 {font-size:36px;line-height:1.3;letter-spacing:-.04em;color:var(--fp-ink)}
html body.fp-page .fp-heading p {font-size:15px;margin-top:12px}
html body.fp-page :is(.fp-button,.fp-link,.fp-map-control,.fp-filters select) {background-image:none;box-shadow:none;text-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
html body.fp-page .fp-button {border-radius:8px}
html body.fp-page .fp-tools {margin:30px 0 22px;padding-bottom:20px;border-bottom:1px solid var(--fp-rule)}
html body.fp-page .fp-tools p {margin:0;font-variant-numeric:tabular-nums}
html body.fp-page .fp-filters select {border-radius:6px;min-height:42px}
html body.fp-page .fp-layout {grid-template-columns:minmax(260px,.78fr) minmax(0,1.72fr);gap:28px}
html body.fp-page .fp-journal-title {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 20px}
html body.fp-page .fp-journal-title h2 {font-size:18px;margin:0;font-weight:600}
html body.fp-page .fp-journal-title span {font-size:12px;color:var(--fp-muted)}
html body.fp-page .fp-empty {position:relative;padding:30px 26px;min-height:400px;border:0;border-radius:10px;background:var(--ui-well,#e6eef4);box-shadow:none;text-shadow:none;justify-content:flex-start}
html body.fp-page .fp-empty-mark {font-size:36px;font-weight:400;line-height:1;color:var(--accent,#416c8b);margin-bottom:34px}
html body.fp-page .fp-empty h2 {font-size:30px;line-height:1.5;letter-spacing:-.04em;font-weight:500;margin-bottom:22px}
html body.fp-page .fp-empty p {font-size:14px;line-height:1.9}
html body.fp-page .fp-empty-end {margin-top:auto;padding-top:36px;font-size:12px;color:var(--fp-muted)}
html body.fp-page .fp-map-panel {padding:20px;border:1px solid var(--fp-rule);border-radius:12px;background:var(--fp-paper);box-shadow:none;top:20px;animation:none}
html body.fp-page .fp-map-title {margin-bottom:18px;align-items:center}
html body.fp-page .fp-map-title h2 {font-size:20px;font-weight:600;letter-spacing:-.025em;line-height:1.5}
html body.fp-page .fp-map-title p {margin:4px 0 0;font-size:12px;color:var(--fp-muted)}
html body.fp-page .fp-map-actions {display:flex;gap:6px;align-items:center;flex-shrink:0}
html body.fp-page .fp-map-control {width:38px;height:42px;min-width:38px;padding:0;border:1px solid var(--fp-rule);border-radius:6px;background:var(--fp-paper);color:var(--fp-ink);font-size:22px;line-height:1}
html body.fp-page .fp-link {padding:10px 12px;min-height:42px;border:1px solid var(--fp-rule);border-radius:6px;background:var(--fp-paper);font-size:12px;font-weight:500;color:var(--fp-ink)}
html body.fp-page :is(.fp-link,.fp-map-control):hover:enabled {background:var(--ui-well,#e6eef4);border-color:var(--accent,#416c8b)}
html body.fp-page .fp-map {height:510px;border-radius:6px;outline:1px solid var(--fp-rule);outline-offset:-1px;overflow:hidden;filter:none}
html body.fp-page .fp-map-caption {padding-top:16px}
html body.fp-page .fp-selected {font-size:13px;line-height:1.7;margin:0}
html body.fp-page .fp-map-note {font-size:11px;line-height:1.7;margin-top:8px;color:var(--fp-muted)}
html body.fp-page .fp-loading {width:24px;height:24px;border:2px solid var(--fp-rule);border-top-color:var(--accent,#416c8b);border-radius:50%;animation:fp-spin 1.2s linear infinite}
html body.fp-page .fp-entry {padding:20px;border-radius:10px;background:var(--fp-paper);background-image:none;box-shadow:none;text-shadow:none;border:1px solid transparent}
html body.fp-page .fp-entry.active {background:var(--ui-well,#e6eef4);border-color:var(--accent,#416c8b);box-shadow:none}
html body.fp-page .fp-focus {background:none;box-shadow:none;text-shadow:none;border-radius:0}
html body.fp-page .fp-footer {margin-top:40px;font-size:12px;padding-bottom:40px}
@keyframes fp-spin {to{transform:rotate(360deg)}}
@media(max-width:1000px) and (min-width:901px) {html body.fp-page .fp-map-title {align-items:flex-start;flex-direction:column}}
@media(max-width:900px) {html body.fp-page .fp-layout {grid-template-columns:1fr}html body.fp-page .fp-map-panel {position:static;grid-row:1}html body.fp-page .fp-journal {grid-row:2}html body.fp-page .fp-empty {min-height:260px}html body.fp-page .fp-empty h2 br {display:none}html body.fp-page .fp-empty-mark {margin-bottom:20px}html body.fp-page .fp-map {height:460px}}
@media(max-width:600px) {html body.fp-page .fp-top {margin:0 20px;padding:20px 0}html body.fp-page .fp-wrap {margin-top:28px}html body.fp-page .fp-heading h1 {font-size:30px}html body.fp-page .fp-heading p {font-size:13px}html body.fp-page .fp-tools {gap:10px;font-size:12px;margin-top:24px}html body.fp-page .fp-filters {gap:8px}html body.fp-page .fp-filters select {font-size:12px}html body.fp-page .fp-map-panel {padding:14px;border-radius:10px}html body.fp-page .fp-map-title {gap:8px;flex-wrap:wrap}html body.fp-page .fp-map-title h2 {font-size:18px}html body.fp-page .fp-map-actions {gap:4px}html body.fp-page .fp-map-control {width:34px;min-width:34px}html body.fp-page .fp-link {padding:10px 8px}html body.fp-page .fp-map {height:360px}html body.fp-page .fp-empty {padding:26px;min-height:300px}html body.fp-page .fp-footer {margin-top:0}}
@media(prefers-reduced-motion:reduce) {html body.fp-page .fp-loading {animation:none}html body.fp-page * {scroll-behavior:auto}}
html body.fp-page :is(.fp-top,.fp-heading,.fp-tools,.fp-journal,.fp-map-title,.fp-map-caption,.fp-footer) * {text-shadow:none}
html body.fp-page .fp-filters select {box-shadow:none;border-radius:6px}
html body.fp-page .fp-heading h1 {font-size:32px}
html body.fp-page :is(.fp-top>a:last-child,.fp-heading p,.fp-tools,.fp-journal-title span,.fp-map-title p,.fp-link,.fp-selected,.fp-empty p,.fp-empty-end,.fp-footer) {font-size:14px}
html body.fp-page .fp-empty {min-height:0}
html body.fp-page .fp-empty-end {margin-top:0;padding-top:28px;font-size:13px}
@media(max-width:600px) {html body.fp-page .fp-heading h1 {font-size:26px}html body.fp-page :is(.fp-tools,.fp-map-title p,.fp-link,.fp-journal-title span) {font-size:13px}}
html body.fp-page .fp-map-mode {display:flex;align-items:center;gap:4px;margin:-2px 0 14px;flex-wrap:wrap}
html body.fp-page .fp-map-mode button {padding:9px 14px;min-height:40px;border:0;border-radius:6px;background:var(--ui-well,#e6eef4);color:var(--fp-muted);background-image:none;box-shadow:none;text-shadow:none;font-size:13px}
html body.fp-page .fp-map-mode button[aria-pressed="true"] {background:#202f39;color:#fff}
html body.fp-page .fp-map-mode span {font-size:12px;color:var(--fp-muted);margin-left:auto}
html body.fp-page .fp-map .tdt-control-copyright {white-space:normal;line-height:1.4;height:auto;max-width:calc(100% - 12px)}
@media(max-width:600px) {html body.fp-page .fp-map-mode span {width:100%;margin:6px 0 0;font-size:11px}}

/* Travel totals: an open typographic composition, sharing the journal's ink and paper. */
html body.fp-page .fp-heading {align-items:center;gap:28px;padding:10px 0 18px}
html body.fp-page .fp-heading h1 {font-size:clamp(32px,3.4vw,48px);line-height:1.15;margin:0}
html body.fp-page .fp-heading-end {display:flex;align-items:center;gap:32px;min-width:0}
html body.fp-page .fp-stats {display:flex;gap:clamp(30px,4vw,64px);align-items:baseline;color:var(--fp-ink)}
html body.fp-page .fp-stat {display:flex;align-items:baseline;gap:12px}
html body.fp-page .fp-stat-value {display:inline-flex;font-size:clamp(44px,4.5vw,64px);font-weight:500;line-height:1;letter-spacing:-.055em;font-variant-numeric:tabular-nums}
html body.fp-page .fp-stat-label {font-size:14px;line-height:1.5;color:var(--fp-muted);white-space:nowrap}
html body.fp-page .fp-stat-digit {display:inline-block;height:1em;overflow:hidden;line-height:1;min-width:.54em;text-align:center}
html body.fp-page .fp-stat-track {display:flex;flex-direction:column;will-change:auto}
html body.fp-page .fp-stat-track>span {display:block;height:1em;flex-shrink:0}
html body.fp-page .fp-stats[aria-busy="true"] .fp-stat-value {opacity:.45}
html body.fp-page .fp-tools {margin:16px 0 26px;padding-bottom:0;border-bottom:0}
@media(max-width:900px) {html body.fp-page .fp-heading-end {gap:20px}html body.fp-page .fp-stat {flex-direction:column;gap:8px}html body.fp-page .fp-stat-label {font-size:13px}html body.fp-page .fp-heading .fp-button {font-size:13px;padding:10px 12px}}
@media(max-width:600px) {html body.fp-page .fp-heading {align-items:flex-start;flex-direction:column;gap:26px;padding:4px 0 12px}html body.fp-page .fp-heading-end {width:100%;justify-content:space-between;gap:16px;flex-wrap:wrap}html body.fp-page .fp-stats {gap:42px}html body.fp-page .fp-stat {flex-direction:row;align-items:baseline;gap:10px}html body.fp-page .fp-stat-value {font-size:48px}html body.fp-page .fp-stat-label {font-size:13px}html body.fp-page .fp-tools {margin:14px 0 24px}}
html body.fp-page .fp-filter label {white-space:nowrap;flex-shrink:0}
html body.fp-page .fp-filters select {box-shadow:none!important;background-image:none!important}

html body.fp-page .fp-stat-value {perspective:650px}
html body.fp-page .fp-stat-digit {transform-origin:center 60%;transition:transform 600ms cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce) {html body.fp-page .fp-stat-digit {transition:none;transform:none!important}}
/* Owner-requested home-page Liquid Glass, restricted to the compact statistics lens. */
html body.fp-page .fp-stats {
 position:relative;isolation:isolate;overflow:hidden;padding:22px 28px 20px;gap:44px;border:1px solid var(--lg-edge);border-radius:28px;
 background-color:var(--lg-clear);background-image:radial-gradient(ellipse at 20% 0%,var(--lg-glint),transparent 68%),linear-gradient(135deg,var(--lg-sheen),transparent 58%),linear-gradient(175deg,transparent 70%,color-mix(in srgb,var(--accent) 7%,transparent));
 box-shadow:var(--lg-shadow);-webkit-backdrop-filter:blur(12px) saturate(135%);backdrop-filter:blur(12px) saturate(135%);
 transition:transform 500ms cubic-bezier(.22,1,.36,1);
}
html body.fp-page .fp-stats::before {content:'';position:absolute;z-index:-1;pointer-events:none;left:22%;top:-80%;width:90px;height:260%;background:linear-gradient(90deg,transparent,var(--lg-sheen),transparent);transform:translateX(var(--fp-glass-x,0px)) rotate(-22deg);transition:transform 900ms cubic-bezier(.22,1,.36,1)}
html body.fp-page .fp-stat {position:relative;z-index:1}
@media(hover:hover) and (pointer:fine) {html body.fp-page .fp-stats:hover {transform:translateY(-3px)}}
@media(max-width:900px) {html body.fp-page .fp-stats {gap:28px;padding:18px 24px;border-radius:24px}}
@media(max-width:600px) {html body.fp-page .fp-stats {width:100%;justify-content:space-between;gap:18px;padding:22px 20px;border-radius:24px;-webkit-backdrop-filter:blur(8px) saturate(120%);backdrop-filter:blur(8px) saturate(120%)}html body.fp-page .fp-heading {gap:22px}html body.fp-page .fp-stat-value {font-size:46px}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {html body.fp-page .fp-stats {background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 0 0 1px var(--control)}html body.fp-page .fp-stats::before {display:none}}
@media(prefers-reduced-motion:reduce) {html body.fp-page .fp-stats,html body.fp-page .fp-stats::before {transition:none;transform:none}}
/* A single optical lens: lighter material, larger figures, and deliberate internal rhythm. */
html body.fp-page .fp-heading {padding-top:4px;padding-bottom:20px}
html body.fp-page .fp-heading h1 {font-weight:600;letter-spacing:-.055em}
html body.fp-page .fp-stats {
 width:440px;min-height:160px;padding:28px 34px 26px;gap:32px;align-items:center;overflow:hidden;border:0;border-radius:34px;
 background-color:color-mix(in srgb,var(--surface) 38%,transparent);
 background-image:radial-gradient(ellipse at 5% 0%,var(--lg-edge),transparent 55%),radial-gradient(ellipse at 95% 100%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 65%),linear-gradient(125deg,var(--lg-sheen),transparent 48%,color-mix(in srgb,var(--surface) 20%,transparent));
 box-shadow:inset 0 1.5px 1px var(--lg-edge),inset 1px 0 1px color-mix(in srgb,var(--surface) 75%,transparent),inset 0 -1px 1px var(--lg-low-edge),0 14px 30px -24px color-mix(in srgb,var(--accent) 48%,transparent);
 -webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%);
 transform:perspective(900px) rotateX(var(--fp-tilt-x,0deg)) rotateY(var(--fp-tilt-y,0deg)) translateY(var(--fp-lift,0px));
 transition:transform 750ms cubic-bezier(.16,1,.3,1);
}
html body.fp-page .fp-stats::before {left:8%;top:-100%;height:320%;width:120px;opacity:.8;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 70%,transparent),transparent);transform:translateX(var(--fp-glass-x,0px)) rotate(28deg);transition:transform 1000ms cubic-bezier(.16,1,.3,1)}
html body.fp-page .fp-stats::after {content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface) 60%,transparent);background:radial-gradient(ellipse at 50% 0%,var(--lg-sheen),transparent 65%);opacity:.65}
html body.fp-page .fp-stat {flex:1;align-items:flex-start;flex-direction:column;gap:14px;min-width:0}
html body.fp-page .fp-stat-value {font-size:80px;line-height:1;font-weight:400;letter-spacing:-.07em;color:var(--fp-ink)}
html body.fp-page .fp-stat-label {font-size:14px;line-height:1.4;letter-spacing:.04em;padding-left:3px;color:var(--fp-muted)}
html body.fp-page .fp-stat-digit {min-width:.53em}
@media(hover:hover) and (pointer:fine) {html body.fp-page .fp-stats:hover {--fp-lift:-4px;transform:perspective(900px) rotateX(var(--fp-tilt-x,0deg)) rotateY(var(--fp-tilt-y,0deg)) translateY(var(--fp-lift))}}
@media(max-width:1000px) {html body.fp-page .fp-stats {width:360px;padding:26px 28px;min-height:148px}html body.fp-page .fp-stat-value {font-size:68px}html body.fp-page .fp-heading-end {gap:16px}}
@media(max-width:600px) {html body.fp-page .fp-heading {gap:24px;padding-bottom:10px}html body.fp-page .fp-heading h1 {font-size:34px}html body.fp-page .fp-stats {width:100%;min-height:144px;padding:24px 28px 22px;border-radius:30px;gap:28px;-webkit-backdrop-filter:blur(10px) saturate(130%);backdrop-filter:blur(10px) saturate(130%)}html body.fp-page .fp-stat {flex-direction:column;align-items:flex-start;gap:12px}html body.fp-page .fp-stat-value {font-size:64px}html body.fp-page .fp-stat-label {font-size:13px}html body.fp-page .fp-tools {margin-top:18px}}
@media(max-width:359px) {html body.fp-page .fp-stats {padding:22px;gap:20px}html body.fp-page .fp-stat-value {font-size:56px}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {html body.fp-page .fp-stats {background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}html body.fp-page .fp-stats::before,html body.fp-page .fp-stats::after {display:none}}
@media(prefers-reduced-motion:reduce) {html body.fp-page .fp-stats,html body.fp-page .fp-stats:hover {transform:none!important;transition:none}}
@media(prefers-reduced-motion:reduce) {html body.fp-page .fp-stats::before,html body.fp-page .fp-stats::after {transition:none;transform:none!important}}
/* 地图下面的图例：两种染色各代表什么 */
html body.fp-page .fp-legend {display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:10px;color:var(--fp-muted,var(--muted));font-size:13px;}
html body.fp-page .fp-legend[hidden] {display:none;}
html body.fp-page .fp-legend span {display:inline-flex;align-items:center;gap:6px;}
html body.fp-page .fp-legend i {width:14px;height:10px;border-radius:3px;}
html body.fp-page .fp-legend .lg-city {background:linear-gradient(135deg,rgba(248,178,138,.85),rgba(228,121,78,.9));box-shadow:0 0 8px rgba(232,128,84,.55),inset 0 0 0 1px rgba(255,255,255,.7);}
html body.fp-page .fp-legend .lg-prov {background:rgba(79,134,180,.2);box-shadow:inset 0 0 0 1px rgba(79,134,180,.5);}
html body.fp-page .fp-legend b {margin-left:auto;color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums;}
@media(max-width:600px){html body.fp-page .fp-legend b {margin-left:0;width:100%;}}
/* 选中一段足迹时，地图上那一点荡开的一圈水波（代替原来的定位图标） */
.fp-pulse {display:block;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle,#e8875a 0 4px,rgba(232,135,90,.35) 5px,transparent 6px);position:relative;}
.fp-pulse::before,.fp-pulse::after {content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(232,135,90,.7);animation:fp-pulse 1.8s cubic-bezier(.2,.7,.3,1) infinite;}
.fp-pulse::after {animation-delay:.9s;}
@keyframes fp-pulse {from{scale:.3;opacity:1}to{scale:2.2;opacity:0}}
@media (prefers-reduced-motion:reduce) {.fp-pulse::before,.fp-pulse::after {animation:none;opacity:.5;}}
/* 地图色彩层的悬停小卡片（电脑上） */
html body.fp-page .fp-map {position:relative;}
html body.fp-page .fp-tip {position:absolute;left:0;top:0;z-index:200;display:grid;gap:2px;padding:8px 12px;border-radius:12px;pointer-events:none;white-space:nowrap;
  background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(10px) saturate(160%);backdrop-filter:blur(10px) saturate(160%);
  box-shadow:0 10px 26px -12px rgba(24,54,82,.45),inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent);transition:transform 120ms ease-out;}
html body.fp-page .fp-tip[hidden] {display:none;}
html body.fp-page .fp-tip b {font-size:14px;color:var(--text);}
html body.fp-page .fp-tip span {font-size:12px;color:var(--fp-muted,var(--muted));font-variant-numeric:tabular-nums;}


/* ───── 时间线（2026-11）─────
   每 8 段一组：离屏幕远的组先不排版、不绘制；组的左边留出圆点的位置（圆点画在卡片左外侧，不然会被裁掉）。
   一条墨线从顶上描到屏幕中间；读到的那一段，圆点放大、外面荡开一圈淡光。 */
html body.fp-page .fp-timeline {position:relative;}
html body.fp-page .fp-chunk {content-visibility:auto;contain-intrinsic-block-size:auto calc(var(--n,8) * 248px);margin-left:-48px;padding-left:48px;}
html body.fp-page .fp-ink {position:absolute;left:-2px;top:0;width:2px;height:100%;border-radius:2px;background:var(--accent,#416c8b);transform-origin:50% 0;transform:scaleY(0);pointer-events:none;}
html body.fp-page .fp-entry::before {transition:scale 480ms var(--g-spring,cubic-bezier(.2,.9,.3,1.2)),box-shadow 480ms ease;}
html body.fp-page .fp-entry.fp-now::before {scale:1.4;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent,#416c8b) 20%,transparent),0 0 10px 1px color-mix(in srgb,var(--accent,#416c8b) 35%,transparent);}
@media(prefers-reduced-motion:reduce) {html body.fp-page .fp-entry::before {transition:none;}}
