#tour-dock,#tour-nav,#hint{display:none!important}
.fh-load-map{display:flex;flex-direction:column;justify-content:space-between;padding:28px;background:radial-gradient(circle at 30% 30%,#547b68 0,#244c3e 58%,#17372e 100%);color:#f1f4e9}
.fh-load-map-title{position:relative;z-index:1;font:600 11px/1.3 system-ui;letter-spacing:.14em;color:#d7e5d8}
.fh-load-map svg{width:100%;max-height:440px;flex:1;min-height:0;filter:drop-shadow(0 16px 18px rgba(2,28,14,.16))}
.fh-load-map-foot{position:relative;z-index:1;font:12px/1.5 "Songti SC",Georgia,serif;color:#e3ede1}
.load-card{border:0;background:#193e32}.load-copy{background:#f0f3e9;color:#234738}.load-kicker{color:#5b7e67}.load-copy h1{color:#153c2c}.load-lead{color:#365647}.load-facts{border-color:#c6d4c7}.load-fact b{color:#244c36;font-size:15px;line-height:1.55}.load-fact span{color:#607867}.load-progress-row{color:#5b7566}.load-track{background:#cbdbc9}.load-bar{background:#537b60}.loading-complete .load-enter{background:#234d38;color:#f5f8ed;border-color:#234d38}.loading-complete .load-status{color:#31583c}
.fh-chapter{position:fixed;z-index:36;top:20px;left:20px;width:min(328px,calc(100vw - 40px));border:1px solid rgba(222,238,220,.6);background:rgba(242,247,237,.94);color:#234333;box-shadow:0 16px 40px rgba(23,48,35,.14);backdrop-filter:blur(15px);font-family:system-ui,sans-serif}
.fh-chapter-tab{display:flex;align-items:center;gap:9px;width:100%;padding:11px 13px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.fh-chapter-tab strong{flex:1;font:500 15px/1.35 "Songti SC",Georgia,serif}.fh-chapter-count{font:700 10px system-ui;color:#60836b}.fh-chapter-chevron{font-size:17px;transition:transform .2s}.fh-chapter:not(.open) .fh-chapter-chevron{transform:rotate(-90deg)}.fh-chapter:not(.open) .fh-chapter-body{display:none}
.fh-chapter-body{border-top:1px solid #d7e2d6;padding:0 16px 15px}.fh-chapter-body p{font:13px/1.7 system-ui;margin:12px 0;color:#294c3b}.fh-chapter-graphic{position:relative;overflow:hidden;height:50px;margin:13px 0 4px;background:linear-gradient(125deg,#dbe9d7,#eaf0e1);display:flex;align-items:center;justify-content:space-around;padding:0 28px}.fh-chapter-graphic:before{content:"";position:absolute;left:12%;right:12%;top:50%;border-top:2px dotted #799b7d}.fh-chapter-graphic i{position:relative;z-index:1;width:16px;height:16px;border:2px solid #3a7953;background:#eaf0df;border-radius:50%}.fh-chapter-graphic[data-kind="time"] i:nth-child(1){transform:translateY(8px)}.fh-chapter-graphic[data-kind="time"] i:nth-child(2){transform:translateY(1px)}.fh-chapter-graphic[data-kind="time"] i:nth-child(3){transform:translateY(-8px)}.fh-chapter-graphic[data-kind="route"]{background:linear-gradient(155deg,#b5cfbe,#e0ebda 47%,#688e77 49%,#a9c4b0 65%,#dce8d5)}.fh-chapter-graphic[data-kind="image"] i{border-radius:2px;transform:rotate(-12deg)}.fh-chapter-place{border-left:2px solid #83a688;padding-left:11px}.fh-chapter-place small,.fh-chapter-place span{display:block}.fh-chapter-place small{font:700 10px system-ui;color:#60846a;margin-bottom:5px}.fh-chapter-place span{font:12px/1.6 system-ui}.fh-chapter-source{display:inline-block;margin-top:10px;color:#416e50;font:11px system-ui;text-decoration:underline;text-underline-offset:2px}.fh-chapter-tab:focus-visible{outline:3px solid #7eaa85;outline-offset:2px}
#controls{top:20px;right:254px;gap:6px}
#controls button{padding:7px 10px;background:rgba(245,248,240,.82);color:#244238;border-color:rgba(44,70,54,.2)}
#detail{background:rgba(246,248,241,.98);border-radius:5px 0 0 5px}
#detail h3{font-family:"Songti SC",Georgia,serif;font-weight:500}
.fh-guide{position:fixed;z-index:36;right:18px;top:18px;width:218px;display:grid;gap:7px;font-family:system-ui,sans-serif}
.fh-map-button{width:100%;border:1px solid rgba(234,244,232,.54);border-radius:5px;background:rgba(25,56,47,.88);color:#f7f8ed;padding:13px 14px;text-align:left;cursor:pointer;box-shadow:0 12px 32px rgba(22,42,33,.18);backdrop-filter:blur(12px)}
.fh-map-button strong,.fh-map-button small,.fh-kicker{display:block}
.fh-kicker{font-size:10px;color:#c2dacb}
.fh-map-button strong{font:600 16px/1.3 "Songti SC",Georgia,serif;margin-top:6px}
.fh-map-button small{font-size:10px;line-height:1.45;color:#d8e6d8;margin-top:4px;min-height:28px}
.fh-dots{display:flex;gap:5px;margin-top:9px}.fh-dots i{display:block;width:21px;height:3px;background:#637c6b}.fh-dots i.on{background:#e1dfb9}
.fh-next{border:1px solid rgba(239,245,228,.48);border-radius:4px;background:rgba(39,78,63,.88);color:#f2f4e8;text-align:left;padding:9px 13px;font:600 12px/1.3 system-ui;cursor:pointer;backdrop-filter:blur(12px)}
.fh-next[hidden],.fh-action[hidden]{display:none}
.fh-action{position:fixed;z-index:35;left:50%;bottom:23px;transform:translateX(-50%);border:1px solid rgba(235,244,230,.65);border-radius:4px;background:rgba(30,65,53,.9);color:#fff;padding:10px 18px;font:600 12px system-ui;cursor:pointer;box-shadow:0 10px 24px rgba(26,50,38,.18)}
.fh-info{position:fixed;z-index:42;left:50%;top:31%;width:min(460px,calc(100vw - 34px));padding:23px 27px;transform:translate(-50%,-8px);background:rgba(244,247,239,.97);border:1px solid #d4ded1;color:#244438;box-shadow:0 22px 50px rgba(18,44,29,.23);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
.fh-info.show{opacity:1;transform:translate(-50%,0)}.fh-info small{display:block;font:600 11px/1.4 system-ui;color:#688171}.fh-info strong{display:block;margin:12px 0;font:500 22px/1.5 "Songti SC",Georgia,serif}.fh-info span{font:11px system-ui;color:#70867a}
.fh-map-overlay{position:fixed;z-index:85;inset:0;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(13,35,28,.63);backdrop-filter:blur(14px)}.fh-map-overlay.open{display:flex}
.fh-map-card{width:min(900px,100%);max-height:94vh;overflow:auto;background:#f2f5ec;padding:clamp(18px,4vw,42px);box-shadow:0 30px 70px rgba(0,20,10,.3);color:#29473a}
.fh-map-card header{display:flex;justify-content:space-between;gap:16px}.fh-map-card h2{margin:5px 0;font:500 clamp(25px,4vw,38px) "Songti SC",Georgia,serif}.fh-map-card p{font:12px/1.6 system-ui;color:#5d7465}.fh-map-card small{font:700 10px system-ui;color:#688576}.fh-close{width:35px;height:35px;flex:none;border:1px solid #bdcbbd;background:transparent;color:#29473a;font-size:23px;cursor:pointer}
.fh-map-card svg{width:100%;max-height:380px;display:block;margin:10px 0}.fh-map-card svg circle{fill:#315c47;stroke:#f8f7ed;stroke-width:4}.fh-map-card svg text{font:600 17px system-ui;fill:#294a3b}.fh-map-card nav{display:flex;flex-wrap:wrap;gap:8px}.fh-map-card nav button{padding:8px 11px;border:1px solid #b8cbb8;background:#fff;color:#345548;cursor:pointer;font:12px system-ui}.fh-map-card nav button:hover{background:#dce9dc}
.fh-credit a{color:#406a50}.fh-source{position:fixed;left:15px;bottom:13px;z-index:25;color:#30503d;background:rgba(244,248,238,.67);text-decoration:none;font:10px system-ui;padding:4px 6px}
.fh-map-button:focus-visible,.fh-next:focus-visible,.fh-action:focus-visible,.fh-close:focus-visible{outline:3px solid #e2dca4;outline-offset:2px}
@media(max-width:720px){.fh-load-map{min-height:0;padding:13px 22px}.fh-load-map svg{max-height:31vh}.fh-load-map-foot{font-size:10px}.load-copy{padding:19px 22px 27px}.load-copy h1{font-size:29px}.load-lead{font-size:13px;line-height:1.6}.load-facts{margin-top:12px;padding-top:12px;gap:9px}.load-fact{min-width:0;max-width:48%}.load-fact b{font-size:11px}.load-progress{margin-top:12px}.load-enter{margin-top:15px}.fh-chapter{top:8px;left:8px;width:calc(100vw - 176px);min-width:175px}.fh-chapter-tab{padding:7px 9px;gap:5px}.fh-chapter-tab strong{font-size:11px}.fh-chapter-count{font-size:8px}.fh-chapter.open{width:min(318px,calc(100vw - 16px));z-index:43}.fh-chapter-body{max-height:40vh;overflow:auto}.fh-chapter-body p{font-size:11px;margin:8px 0}.fh-chapter-graphic{height:30px;margin:9px 0 4px}.fh-chapter-place span{font-size:10px}#controls{top:115px;right:9px;max-width:145px}#controls button{font-size:10px;padding:5px 7px}.fh-guide{right:8px;top:8px;width:154px}.fh-map-button{padding:9px 10px}.fh-map-button strong{font-size:13px}.fh-map-button small{font-size:9px;min-height:0}.fh-next{font-size:10px;padding:7px 9px}.fh-action{bottom:15px;left:auto;right:8px;transform:none;padding:8px;font-size:10px}.fh-source{display:none}.fh-info{top:28%;padding:18px}.fh-info strong{font-size:18px}.fh-map-overlay{padding:7px}.fh-map-card{padding:18px 13px}.fh-map-card svg{min-height:275px}.fh-map-card svg text{font-size:25px}#mobile-stick{left:12px;bottom:14px;width:76px;height:76px}}
.fh-chapter{width:auto;max-width:min(280px,calc(100vw - 30px));background:rgba(245,248,241,.88);box-shadow:0 4px 15px rgba(19,46,30,.08)}
.fh-chapter.open{width:min(332px,calc(100vw - 36px));max-width:none}
.fh-chapter-tab{padding:9px 11px;gap:8px}.fh-chapter-tab strong{font:500 13px/1.35 system-ui,sans-serif}.fh-chapter-count{font-size:10px}.fh-chapter-chevron{font:400 17px/1 system-ui;transform:none!important}
.fh-chapter-body{padding:2px 15px 14px}.fh-chapter-body p{font-size:12px;line-height:1.6}.fh-chapter-place span{font-size:11px}
.fh-guide{width:auto;max-width:210px}.fh-map-button{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:4px;background:rgba(30,66,51,.85)}.fh-map-button strong{font:500 12px/1.35 system-ui,sans-serif;margin:0;white-space:nowrap}.fh-map-button>span{font-size:18px;line-height:1}.fh-guide .fh-next{display:none}
#controls{top:18px;right:210px}
.fh-info{top:auto;left:auto;right:18px;bottom:24px;width:min(410px,calc(100vw - 36px));padding:15px 36px 15px 17px;transform:translateY(8px);background:rgba(244,247,239,.96);box-shadow:0 9px 25px rgba(18,44,29,.17)}.fh-info.show{transform:translateY(0);pointer-events:auto}.fh-info small{font-size:10px}.fh-info strong{font:500 15px/1.55 system-ui,sans-serif;margin:5px 0 7px}.fh-info-close{position:absolute;top:7px;right:7px;width:28px;height:28px;border:0;background:transparent;color:#305441;font-size:20px;cursor:pointer}
@media(max-width:720px){.fh-chapter{top:8px;left:8px;width:auto;min-width:0;max-width:195px}.fh-chapter.open{width:min(318px,calc(100vw - 16px))}.fh-chapter-tab{padding:7px 8px;gap:5px}.fh-chapter-tab strong{font-size:10px}.fh-guide{top:8px;right:8px;width:auto;max-width:152px}.fh-map-button{padding:7px 8px}.fh-map-button strong{font-size:10px}#controls{top:54px;right:8px;max-width:160px}#desktop-tip{top:55px;left:8px;max-width:155px}.fh-info{top:auto;left:auto;right:8px;bottom:95px;width:min(280px,calc(100vw - 16px));padding:11px 31px 11px 12px}.fh-info strong{font-size:12px}.fh-info small,.fh-info span{font-size:9px}}
#fh-minimap{position:fixed;top:16px;right:16px;z-index:36;width:112px;height:112px;border-radius:50%;overflow:hidden;background:#284a3c;border:1px solid rgba(236,247,232,.72);box-shadow:0 8px 22px rgba(21,43,31,.22);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .35s}
.fh-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.loading-entered #fh-minimap{opacity:1;pointer-events:auto}
#fh-minimap svg{display:block;width:100%;height:100%}
#fh-minimap circle[data-stop]{cursor:pointer}
#fh-minimap:focus-visible{outline:3px solid #e9d79b;outline-offset:3px}
.fh-beat{position:fixed;z-index:34;left:50%;bottom:20px;max-width:min(610px,calc(100vw - 190px));padding:11px 17px;transform:translate(-50%,12px);background:rgba(22,55,43,.88);border-left:3px solid #b8dab2;color:#f3f7ea;box-shadow:0 12px 30px rgba(11,42,26,.18);font:500 13px/1.5 system-ui,sans-serif;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s}
.fh-beat.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.fh-beat{left:auto;right:8px;bottom:95px;max-width:min(255px,calc(100vw - 100px));padding:8px 11px;transform:translateY(8px);font-size:11px}.fh-beat.show{transform:translateY(0)}}
body:has(#fh-minimap) .fh-guide{display:none}
body:has(#fh-minimap) #controls{right:146px}
@media(max-width:720px){#fh-minimap{top:8px;right:8px;width:88px;height:88px}body:has(#fh-minimap) #controls{top:102px;right:8px}#desktop-tip{top:55px}}
.fh-beat{left:18px;right:auto;bottom:18px;width:min(440px,calc(100vw - 176px));max-width:none;min-height:76px;padding:12px 14px;display:flex;align-items:center;gap:13px;transform:none;background:rgba(30,39,38,.86);border:1px solid rgba(231,235,223,.4);border-left:2px solid #d9c7a4;border-radius:3px;box-shadow:0 10px 28px rgba(20,33,33,.16);opacity:1;pointer-events:auto;backdrop-filter:blur(14px)}
.fh-beat.show{transform:none}.fh-beat-copy{flex:1;min-width:0}.fh-beat-copy small{display:block;color:#c9bda3;font:600 10px/1.2 system-ui;margin-bottom:4px}.fh-beat-copy strong{display:block;color:#f4f1e8;font:500 15px/1.3 "Songti SC",Georgia,serif}.fh-beat-copy span{display:block;color:#d8dfdb;font:12px/1.5 system-ui;margin-top:4px}
.fh-beat .fh-action{position:static;flex:none;max-width:120px;transform:none;padding:8px 10px;background:rgba(241,239,223,.12);border:1px solid rgba(228,231,220,.42);border-radius:3px;box-shadow:none;color:#f4f3e9;font:11px/1.35 system-ui}
.fh-map-card header a{display:inline-block;margin-top:5px;color:#52675e;font:11px/1.4 system-ui;text-decoration:underline;text-underline-offset:3px}
@media(max-width:720px){.fh-beat{left:8px;right:8px;bottom:102px;width:auto;max-width:none;min-height:0;padding:9px 10px;gap:8px}.fh-beat-copy small{font-size:9px}.fh-beat-copy strong{font-size:12px}.fh-beat-copy span{font-size:10px;line-height:1.4}.fh-beat .fh-action{max-width:84px;font-size:9px;padding:6px}}
.fh-beat{left:50%;bottom:18px;width:min(560px,calc(100vw - 220px));transform:translateX(-50%);border-radius:6px;z-index:51;transition:opacity .25s,transform .25s}
.fh-beat.show{transform:translateX(-50%)}
body:has(#detail.open) .fh-beat{opacity:0;pointer-events:none;transform:translate(-50%,12px)}
#detail{left:50%;right:auto;top:auto;bottom:-95vh;transform:translateX(-50%);width:min(600px,calc(100vw - 36px));max-height:min(74vh,690px);border:1px solid rgba(71,76,64,.2);border-radius:7px 7px 0 0;padding:19px 24px 25px;box-shadow:0 -15px 50px rgba(18,33,30,.22);transition:bottom .32s ease;background:#f4f3ec}
#detail.open{right:auto;bottom:0}
#detail h3{padding-right:30px;font:500 23px/1.35 "Songti SC",Georgia,serif;color:#263a32}
#detail .yr{margin-bottom:12px;color:#687669}
#detail .img{aspect-ratio:16/9;background-size:contain;background-repeat:no-repeat;background-color:#e4e4dc;border-radius:3px}
#detail p{font-size:14px;line-height:1.8;color:#34463d}
#detail .why{border-radius:3px;background:#e7ece5;border-left:2px solid #75917e;padding:11px 14px}
#detail .why-l{letter-spacing:0;color:#476b57}
.fh-map-tabs{display:flex;gap:5px;margin:14px 0 10px}.fh-map-tabs button{border:1px solid #aab9aa;background:transparent;color:#405d4c;padding:7px 13px;cursor:pointer}.fh-map-tabs button[aria-selected="true"]{background:#355b48;color:#fff}
.fh-route{display:none}.fh-route.open{display:block}.fh-map-geo.hidden{display:none}.fh-route ol{padding-left:23px;margin:10px 0}.fh-route li{padding:7px 0;line-height:1.55}.fh-route small{display:block;font-size:11px;color:#647568}.fh-route a{color:#365c4a;text-underline-offset:3px}.fh-route-note{border-left:2px solid #77927f;padding-left:12px}
@media(max-width:720px){.fh-beat{left:50%;right:auto;bottom:101px;width:min(300px,calc(100vw - 112px));min-height:0;padding:9px 10px;transform:translateX(-50%)}.fh-beat.show{transform:translateX(-50%)}#detail{width:100vw;max-height:72vh;padding:17px 17px 20px}#detail h3{font-size:19px}#detail p{font-size:12px}#detail .img{aspect-ratio:4/3}body:has(#detail.open) .fh-beat{transform:translate(-50%,8px)}}
.fh-beat{width:min(680px,calc(100vw - 220px));min-height:94px;padding:15px 19px;gap:18px}
.fh-beat-copy small{font-size:12px;line-height:1.35}
.fh-beat-copy strong{font-size:20px;line-height:1.35}
.fh-beat-copy span{font-size:15px;line-height:1.55}
.fh-beat .fh-action{max-width:150px;padding:10px 13px;font-size:13px;line-height:1.4}
@media(max-width:720px){.fh-beat{width:min(370px,calc(100vw - 104px));min-height:84px;padding:11px 12px;gap:9px}.fh-beat-copy small{font-size:11px}.fh-beat-copy strong{font-size:15px}.fh-beat-copy span{font-size:12px;line-height:1.45}.fh-beat .fh-action{max-width:88px;padding:8px;font-size:11px}}
.fh-journey{width:min(980px,100%);background:#f5f4ee;color:#2c473b}
.fh-journey-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);gap:18px;align-items:stretch;margin:15px 0}
.fh-journey-body svg{width:100%;max-height:none;min-height:300px;margin:0;background:#e6e9e2}
.fh-route-points g{cursor:pointer}.fh-route-points circle{fill:#365f4d;stroke:#f7f5ea;stroke-width:4}.fh-route-points g.active circle{fill:#ad745a;stroke:#fff;stroke-width:5}.fh-route-points text{font:600 17px/1.2 system-ui;fill:#294a3b;paint-order:stroke;stroke:#e6e9e2;stroke-width:4;stroke-linejoin:round}.fh-route-points g:focus-visible{outline:none}.fh-route-points g:focus-visible circle{stroke:#e8a768;stroke-width:6}
.fh-route-story{padding:17px 18px;background:#e7ebe2;border-left:3px solid #b38361;display:flex;flex-direction:column;min-height:0}.fh-route-story small{font:600 11px system-ui;color:#7b6956}.fh-route-story h3{font:500 24px/1.25 "Songti SC",Georgia,serif;margin:9px 0;color:#234235}.fh-route-story p{font:13px/1.65 system-ui;color:#465a4d;margin:8px 0}.fh-route-story .fh-route-story-main{font-size:15px;color:#263e32}.fh-route-story strong{font:600 12px/1.5 system-ui;color:#8a634e;margin-top:auto;padding-top:10px}.fh-route-jump{margin-top:12px;border:0;background:#365b48;color:#fff;padding:10px 14px;cursor:pointer;text-align:left}
.fh-route-story-duration{font:600 12px/1.5 system-ui;color:#496b55;font-style:normal;margin-top:5px}
.fh-route-list{display:flex;gap:5px;flex-wrap:wrap}.fh-route-list button{background:#fff;border:1px solid #b8c6b8;padding:8px 10px;color:#365548;cursor:pointer}.fh-route-list button.active{background:#365b48;color:#fff}.fh-route-list small{margin-right:6px;color:#957155}
.fh-journey footer{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:15px;border-top:1px solid #ccd5c9;padding-top:12px;font:11px/1.5 system-ui;color:#607367}.fh-journey footer span{flex:1 1 100%}.fh-journey footer a{color:#365b48;text-underline-offset:3px}
@media(max-width:720px){.fh-journey-body{display:block}.fh-journey-body svg{min-height:0;height:auto;aspect-ratio:2/1}.fh-route-story{margin-top:10px;padding:12px;min-height:0}.fh-route-story h3{font-size:20px}.fh-route-story p{font-size:11px;margin:5px 0}.fh-route-story .fh-route-story-main{font-size:12px}.fh-route-story strong{margin-top:4px}.fh-route-list button{font-size:10px;padding:6px 7px}.fh-route-points text{font-size:21px}}
