:root{--fh-ink:#253b37;--fh-paper:#f4f4ed;--fh-mist:#dce6e7}
#tour-nav,#tour-dock,#hint,#desktop-tip,.fh-guide,.fh-beat,.fh-chapter,.fh-source{display:none!important}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;background:var(--fh-mist)}
#brand-tag{top:22px;left:26px;color:#294a45;background:rgba(244,246,240,.82);border:1px solid rgba(72,103,94,.18);border-radius:5px;padding:8px 12px;font-size:13px;backdrop-filter:blur(14px)}
#controls{top:24px;right:157px;gap:7px}#controls button{background:rgba(244,246,240,.88);border:1px solid rgba(72,103,94,.18);border-radius:5px;color:#35534c;padding:9px 12px;font-size:12px;backdrop-filter:blur(12px)}#controls button.active{background:#35534c;color:#fff}
#fh-minimap{position:fixed;top:17px;right:22px;width:116px;height:116px;border-radius:50%;overflow:hidden;border:3px solid rgba(246,248,241,.88);box-shadow:0 5px 24px #23443825;z-index:36;cursor:pointer;background:#b3c6bd;opacity:0;pointer-events:none;transition:opacity .4s}
body.loading-entered #fh-minimap{opacity:1;pointer-events:auto}#fh-minimap svg{width:100%;height:100%;object-fit:cover;transform:scale(1.05)}#fh-minimap text{font:600 22px system-ui;fill:#24483e;paint-order:stroke;stroke:#e1ebe5;stroke-width:4}#fh-minimap .current circle{fill:#c88e52;r:11;stroke-width:4}#fh-minimap .fh-map-north{font-size:17px}
.fh-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.fh-dock{position:fixed;z-index:51;left:50%;bottom:20px;transform:translateX(-50%);width:min(760px,calc(100vw - 220px));background:rgba(28,48,46,.92);color:#f5f4e9;border:1px solid #d7e2d62b;border-radius:7px;box-shadow:0 10px 36px #16312e25;backdrop-filter:blur(18px);opacity:0;pointer-events:none;transition:opacity .4s}
body.loading-entered .fh-dock{opacity:1;pointer-events:auto}.fh-dock-main{display:flex;align-items:center;gap:17px;padding:15px 18px}.fh-guide-copy{flex:1;min-width:0}.fh-guide-copy small{font-size:10px;color:#c4c9b6;letter-spacing:0;display:block}.fh-guide-copy h2{font:500 20px/1.35 "Songti SC",Georgia,serif;margin:5px 0;color:#f7f5e9}.fh-guide-copy p{font-size:13px;line-height:1.6;margin:0;color:#d7e1d9}.fh-dock-actions{display:flex;align-items:center;gap:9px}.fh-arrow{width:30px;height:34px;flex:0 0 30px;border:0;border-radius:4px;background:#ffffff08;color:#d9e4dc;font:20px system-ui;cursor:pointer}.fh-arrow:hover{background:#ffffff16}.fh-arrow:disabled{opacity:.25;cursor:default}.fh-primary{max-width:112px;border:1px solid #d7d4b154;border-radius:4px;background:#e7e3ca;color:#2b4840;font:600 12px/1.5 system-ui;padding:8px 11px;cursor:pointer}.fh-primary:hover{background:#f4f1df}.fh-progress{display:flex;height:11px;gap:4px;padding:0 18px 6px}.fh-progress button{flex:1;min-width:0;height:4px;border:0;padding:0;background:#b6c6b83b;border-radius:2px;cursor:pointer}.fh-progress button.visited{background:#a6b8a789}.fh-progress button.active{background:#e0ce99}.fh-dock button:focus-visible{outline:2px solid #e3c58b;outline-offset:3px}
body:has(#detail.open) .fh-dock{opacity:0;pointer-events:none}
#detail{left:50%;right:auto;top:auto;bottom:-100vh;transform:translateX(-50%);width:min(850px,calc(100vw - 44px));max-height:75vh;overflow:auto;background:#f4f4ed;color:#2d413a;border:1px solid #71897b36;border-radius:8px 8px 0 0;padding:0;box-shadow:0 -14px 55px #10292535;transition:bottom .3s ease;z-index:65}#detail.open{right:auto;bottom:0}#detail .x{position:absolute;right:12px;top:12px;width:34px;height:34px;display:grid;place-items:center;z-index:2;background:#f4f4ed;border:1px solid #71897b36;border-radius:50%;color:#314d43;cursor:pointer;font-size:22px}#dc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fh-story-image{display:flex;align-items:center;justify-content:center;padding:22px;background:#e5e9e2;min-height:340px}.fh-story-image img{width:100%;height:auto;max-height:56vh;object-fit:contain}.fh-story-copy{padding:46px 30px 27px}.fh-story-copy small{font-size:11px;color:#7b8174}#detail h3{font:500 25px/1.45 "Songti SC",Georgia,serif;color:#243f35;margin:10px 0 18px}#detail p{font:14px/1.85 system-ui;color:#4d5c51;margin:0 0 17px}.fh-story-next{padding-top:16px;border-top:1px solid #cbd4c8;font-size:12px!important;color:#62795f!important}
.fh-atlas{position:fixed;inset:0;z-index:90;padding:24px;display:none;align-items:center;justify-content:center;background:#1c3439a8;backdrop-filter:blur(12px)}.fh-atlas.open{display:flex}.fh-atlas-inner{width:min(880px,100%);max-height:92vh;overflow:auto;border-radius:7px;background:#f4f4ed;padding:27px 30px;color:#2b4a40;box-shadow:0 20px 60px #0e272c40}.fh-atlas header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.fh-atlas header small{font-size:10px;color:#759083}.fh-atlas h2{font:500 26px/1.4 "Songti SC",Georgia,serif;margin:8px 0 20px}.fh-atlas-close{width:34px;height:34px;border:1px solid #c2d0c2;background:transparent;border-radius:50%;font-size:24px;color:#3f5c4e;cursor:pointer}.fh-atlas svg{display:block;width:100%;height:auto;border-radius:5px}.fh-atlas svg text{font:600 16px system-ui;fill:#2e5045;paint-order:stroke;stroke:#d8e5de;stroke-width:3}.fh-atlas svg [data-route]{cursor:pointer}.fh-atlas svg [data-route]:hover circle{fill:#c58e55}.fh-atlas-stops{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:20px}.fh-atlas-stops button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:9px 14px;border:0;border-left:1px solid #cad4c7;background:none;color:#345948;cursor:pointer;text-align:left}.fh-atlas-stops small{color:#919782;font-size:10px}.fh-atlas-stops strong{font-size:15px;font-weight:500}.fh-atlas-stops span{font-size:11px;color:#758576}.fh-atlas footer{border-top:1px solid #cad4c7;margin-top:21px;padding-top:12px;font-size:11px;line-height:1.6;color:#7a887c}.fh-atlas footer p{margin:0 0 8px}.fh-atlas footer a{color:#426d57;margin-right:20px;text-underline-offset:3px}
#loading{background:#233b3c}.load-card{border:1px solid #d3dfd52e;border-radius:6px;background:#f2f3eb}.load-copy{color:#2d473d;padding:44px 52px}.load-kicker{color:#788d7d;margin-bottom:16px}.load-copy h1{font:500 43px/1.3 "Songti SC",Georgia,serif;color:#254139}.load-lead{font:15px/1.85 system-ui;color:#647365}.load-facts{border-color:#ccd6c9;gap:17px;margin-top:20px;padding-top:17px}.load-fact b{font:500 15px/1.5 system-ui;color:#3d5a49}.load-fact span{color:#7e8e7c;font-size:10px}.load-progress{margin-top:24px}.load-progress-row{color:#72836e}.load-track{background:#d7dfd0}.load-bar{background:#76917c}.load-enter{border-color:#a4b69e;color:#53704e}.loading-complete .load-enter{background:#365947;color:#f8f5e9;border-color:#365947}.loading-complete .load-status{color:#597f60}.fh-load-map{padding:24px;background:#cbdcd8;display:flex;flex-direction:column;justify-content:space-between;color:#304e46}.fh-load-map-title{font:600 11px system-ui;color:#53766b}.fh-load-map svg{width:100%;flex:1;max-height:450px}.fh-load-map-foot{font:12px/1.5 system-ui;color:#55776b}
@media(max-width:900px){.fh-dock{width:calc(100vw - 56px)}.fh-dock-main{gap:12px;padding:13px 15px}.fh-guide-copy h2{font-size:18px}.fh-guide-copy p{font-size:12px}.load-copy{padding:30px}.load-copy h1{font-size:34px}}
@media(max-width:720px){#brand-tag{left:12px;top:14px;padding:7px 9px;font-size:11px}#controls{top:57px;right:12px;gap:5px}#controls button{font-size:10px;padding:6px 8px}#fh-minimap{right:11px;top:11px;width:83px;height:83px}#controls{top:105px;right:11px}.fh-dock{width:calc(100vw - 26px);bottom:103px;border-radius:6px}.fh-dock-main{gap:8px;padding:11px 10px}.fh-guide-copy h2{font-size:16px;line-height:1.4;margin:4px 0}.fh-guide-copy small{font-size:9px}.fh-guide-copy p{font-size:11px;line-height:1.55}.fh-dock-actions{flex-direction:column;gap:6px}.fh-primary{font-size:10px;padding:6px 7px;max-width:76px}.fh-arrow{width:24px;flex-basis:24px;height:26px;font-size:18px}.fh-progress{padding:0 12px 6px}.fh-prev{display:none}#mobile-stick{bottom:14px;left:15px;width:72px;height:72px;background:#f2f4e830;border-color:#50706245}.stick-knob{background:#36584d7d!important}#detail{width:100vw;max-height:80vh}#dc{display:block}.fh-story-image{min-height:0;padding:18px 45px 16px}.fh-story-image img{max-height:29vh}.fh-story-copy{padding:18px 22px}#detail h3{font-size:21px;margin:8px 0 12px}#detail p{font-size:13px;line-height:1.8}.fh-atlas{padding:10px}.fh-atlas-inner{padding:20px 17px}.fh-atlas h2{font-size:21px}.fh-atlas svg text{font-size:19px}.fh-atlas-stops{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 0}.load-card{min-height:0;max-height:calc(100svh - 28px);overflow:auto}.load-copy{padding:22px 23px 25px}.load-copy h1{font-size:29px;margin-bottom:11px}.load-lead{font-size:13px;line-height:1.7}.load-facts{margin-top:13px;padding-top:12px}.load-fact b{font-size:12px}.load-progress{margin-top:15px}.load-enter{margin-top:18px}.fh-load-map{min-height:185px;padding:17px 23px}.fh-load-map svg{max-height:170px}.fh-load-map-foot{font-size:10px}}
@media(prefers-reduced-motion:reduce){.fh-dock,#detail,#loading{transition:none}}
/* Stories open in the viewing area rather than against the screen edge. */
#detail{top:50%;bottom:auto;transform:translate(-50%,-45%);max-height:78svh;border-radius:8px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 22px 90px #10292555}
#detail.open{top:50%;bottom:auto;transform:translate(-50%,-50%);opacity:1;visibility:visible;pointer-events:auto}
@media(max-width:720px){#detail{width:calc(100vw - 24px);max-height:84svh}#detail.open{top:48%}.fh-story-image img{max-height:30svh}.fh-story-copy{padding:18px 20px}}
 #fh-minimap .fh-mini-place{position:absolute;bottom:9px;left:0;right:0;font-size:13px;font-weight:600;color:#294e44;text-align:center;text-shadow:0 1px 3px #fff;pointer-events:none}
 #fh-minimap svg text{display:none}
.fh-form-picker{display:flex;gap:6px;padding:0 18px 12px;justify-content:center;flex-wrap:wrap}
.fh-form-picker[hidden]{display:none}
.fh-form-picker button{border:1px solid #a9bcb866;background:transparent;color:#ecf2ef;font:inherit;font-size:13px;padding:8px 12px;border-radius:4px;cursor:pointer}
.fh-form-picker button[aria-pressed=true]{background:#ecf2ef;color:#294740;border-color:#ecf2ef}
.fh-form-picker button:focus-visible{outline:2px solid #ead096;outline-offset:3px}
.fh-form-picker button:disabled{opacity:.45;cursor:wait}
.fh-dialogue[hidden]{display:none}
.fh-dock.fh-conversing{width:min(620px,calc(100vw - 40px));background:rgba(247,247,237,.96);color:#29433b;border-color:#9aafa05e;box-shadow:0 12px 50px #203f3828}
.fh-dialogue{padding:20px 27px 22px;max-height:60svh;overflow:auto}
.fh-conversing .fh-dock-main,.fh-conversing .fh-form-picker,.fh-conversing .fh-progress{display:none}
.fh-dialogue-header{display:flex;justify-content:space-between;align-items:center;gap:12px}
.fh-dialogue-header small{font-size:11px;color:#c4c9b6}
.fh-dialogue-header h2{font:500 19px/1.4 "Songti SC",Georgia,serif;margin:0;color:#637766}
.fh-dialogue-close{width:32px;height:32px;flex:0 0 32px;border:0;background:transparent;color:#637766;border-radius:50%;font-size:24px;cursor:pointer}
.fh-dialogue-reply{font:500 18px/1.85 "Songti SC",Georgia,serif;color:#29433b;margin:13px 0 17px;min-height:52px}
.fh-dialogue-choices{display:flex;flex-direction:column;gap:1px;border-top:1px solid #8ca49130;padding-top:8px}
.fh-dialogue-choices button{position:relative;padding:10px 10px 10px 23px;min-height:44px;border:0;border-radius:3px;background:transparent;color:#526b59;font:14px/1.5 system-ui;text-align:left;cursor:pointer}
.fh-dialogue-choices button::before{content:'›';position:absolute;left:4px;top:8px;font-size:20px;color:#a77f43}
.fh-dialogue-choices button:hover{background:#dce5d766;color:#253e30}
.fh-dialogue-walk{border:0;background:none;color:#827256;font:13px/1.5 system-ui;padding:13px 0 0;cursor:pointer}
@media(max-width:720px){.fh-dock.fh-conversing{width:calc(100vw - 26px)}.fh-dialogue{padding:14px 18px;max-height:49svh}.fh-dialogue-header h2{font-size:16px}.fh-dialogue-reply{font-size:16px;line-height:1.75;margin:10px 0 12px}.fh-dialogue-choices button{font-size:13px;min-height:44px;padding-top:9px;padding-bottom:9px}.fh-form-picker{padding:0 10px 9px;gap:4px}.fh-form-picker button{font-size:11px;padding:7px;flex:0 1 auto}}
.fh-form-compare{border:1px solid #d8c58d88;background:transparent;color:#f4e6b8;padding:8px 12px;border-radius:4px;font-size:13px;cursor:pointer;margin:8px 0}.fh-form-compare[aria-pressed=true]{background:#e5d8b2;color:#25483f}.fh-form-compare[hidden]{display:none}.fh-save-route{border:0;background:#30594c;color:#fff;padding:12px 18px;border-radius:4px;font-size:14px;cursor:pointer}.fh-save-route:disabled{opacity:.55}.fh-atlas footer{flex-wrap:wrap}.fh-atlas footer a{font-size:13px}.fh-atlas footer p{flex-basis:100%}@media(max-width:600px){.fh-form-picker button{font-size:12px!important;min-height:36px}.fh-copy p{font-size:13px!important}.fh-primary{font-size:12px!important}.fh-form-compare{font-size:12px;margin:4px 0}.fh-atlas-stops{grid-template-columns:repeat(2,1fr)!important}}
.fh-form-light { display:flex; align-items:center; gap:16px; padding:10px 0; color:#f0e4c8; font-size:15px; }
.fh-form-light[hidden] { display:none; }
.fh-form-light input { flex:1; min-width:90px; accent-color:#e8ce94; cursor:ew-resize; height:28px; }
@media(max-width:700px) { .fh-form-light { gap:10px; font-size:14px; } }
.fh-rubbing-control{padding:2px 20px 14px}
.fh-conversing .fh-form-light,.fh-conversing .fh-form-compare{display:none}
#controls .fh-sound-toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px}
#controls .fh-sound-toggle[aria-pressed=true]{background:#315a4b;color:#fff;border-color:#315a4b}
#controls .fh-sound-toggle svg{flex:none}
@media(max-width:720px){#controls .fh-sound-toggle{font-size:12px;padding:7px 9px}.fh-rubbing-control{padding:2px 12px 10px}.fh-rubbing-control input{min-width:0}}
