@font-face{font-family:Cubic;src:url('assets/Cubic_11.woff2') format('woff2');font-display:swap}
:root{--ink:#354c48;--muted:#657a73;--paper:#ffffff;--sage:#7e9982;--line:#dce6df;--blue:#afc9c9;--honey:#d5bd83;--deep:#5e7d6c;--pixel:Cubic,'Microsoft JhengHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8fbf9;color:var(--ink);font-family:'Microsoft JhengHei','PingFang TC',sans-serif;font-size:14px;line-height:1.7}button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-underline-offset:4px}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b18b48;outline-offset:4px}button{border:0}svg{display:block}h1,h2,h3,p{margin:0}.wrap{max-width:1420px;margin:0 auto;padding:0 42px}.skip{position:fixed;top:-80px;left:16px;background:var(--paper);z-index:20;padding:12px}.skip:focus{top:8px}.masthead{height:99px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-family:var(--pixel);font-size:26px;line-height:1.3;letter-spacing:2px}.brand svg{width:40px;height:40px;image-rendering:pixelated}.brand small{display:block;font:11px 'Microsoft JhengHei',sans-serif;letter-spacing:1.5px;margin-top:6px;color:var(--muted)}.quiet-button,.text-button{background:transparent;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:5px}.quiet-button{padding:12px 0}
.hero{position:relative;isolation:isolate;min-height:252px;background:#ffffff;border:1px solid #e2eae4;overflow:hidden;display:flex;align-items:center}.hero-copy{padding:25px 36px;position:relative;z-index:2;width:48%;background:transparent}.hero-small{font-size:11px;letter-spacing:2px;color:#5a7668}.hero h1{font-family:var(--pixel);font-size:36px;line-height:1.35;font-weight:400;letter-spacing:3px;margin-top:9px}.hero p{font-size:12px;margin-top:12px;color:#5c756c;line-height:1.8}.hero-art{position:absolute;inset:0;background-image:linear-gradient(90deg,#ffffff 0%,#fffffffA 20%,#ffffffeB 31%,#ffffff99 43%,#ffffff12 67%,#ffffff08 100%),url('assets/mountain-panorama.webp');background-position:center,61% 50%;background-size:cover;z-index:-1;image-rendering:pixelated;filter:brightness(1.07) saturate(.86)}.journey{position:absolute;right:22px;bottom:20px;display:grid;grid-template-columns:25px 1fr;align-items:center;gap:0 11px;padding:13px 18px;min-width:196px;background:#ffffffed;border:1px solid #e5ece2;box-shadow:4px 4px 0 #4864571b}.journey svg{width:23px;height:23px;color:#7b9474}.journey strong{font-family:var(--pixel);font-weight:400;font-size:28px;line-height:1}.journey .of{font-size:18px;color:#88988b}.journey small{display:block;font-size:10px;letter-spacing:1px;margin:2px 0 5px;color:var(--muted)}.journey-track{grid-column:1/-1;height:5px;background:#edf3e6;margin-top:6px}.journey-track i{display:block;background:#8ba27d;height:100%;width:0;transition:width .2s}
.explorer{scroll-margin-top:15px}.toolbar{display:flex;gap:16px;align-items:center;margin:25px 0 18px;flex-wrap:wrap}.tabs{display:flex;background:#eef4ef;padding:4px;gap:3px}.tabs button{background:transparent;min-height:42px;padding:8px 17px;font-size:13px;white-space:nowrap}.tabs button.active{background:var(--paper);box-shadow:2px 2px 0 #d1dfd2;color:#3f5f4d}.tabs span{font-size:10px;opacity:.65;margin-left:5px}.searchbox{display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--paper);border:1px solid var(--line);flex:1;min-width:210px;height:48px}.searchbox svg{width:16px;height:16px;color:#71857b}.searchbox input{background:transparent;border:0;outline:0;width:100%;height:100%;font-size:13px;min-width:0}.searchbox input:focus{outline:0}.searchbox:focus-within{outline:2px solid #93a88e;outline-offset:2px}.searchbox input::-webkit-search-cancel-button{display:none}.searchbox button{font-size:21px;background:transparent;line-height:1;padding:7px}.done-filter{height:48px;background:transparent;border:1px solid #bacbb8;padding:0 16px;font-size:12px;white-space:nowrap}.done-filter span{margin-right:5px}.done-filter[aria-pressed=true]{background:#6a876f;color:#fff}.explorer-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.map-panel{border:1px solid #c3d9d2;background:#d9ecec;min-width:0}.map-top{padding:11px 16px;display:flex;justify-content:space-between;align-items:center;background:#f0f7f3;color:#4f7168;font-size:11px;border-bottom:1px solid #c8dcd2;gap:12px}.live-dot{display:inline-block;width:6px;height:6px;background:#7c9578;margin:0 8px 1px 0;box-shadow:2px 2px 0 #a9bd9f}.map-viewport{position:relative;height:650px;overflow:hidden;isolation:isolate}.map-viewport>svg{width:100%;height:100%;touch-action:none;cursor:grab;user-select:none}.map-viewport>svg.dragging{cursor:grabbing}.map-top span:last-child{white-space:nowrap;color:#72897f}.map-bottom{padding:8px 12px;display:flex;justify-content:space-between;gap:8px;font-size:10px;background:#f0f7f3;color:#658078;border-top:1px solid #c9ded4}.compass{position:absolute;left:20px;top:18px;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:var(--pixel);font-size:13px;color:#587870;pointer-events:none}.compass svg{width:16px;height:25px}.zoom-controls{position:absolute;right:16px;top:17px;display:grid;gap:4px}.zoom-controls button{width:36px;height:36px;background:#ffffffeb;border:1px solid #92aaa2;box-shadow:2px 2px 0 #7f9e9333;font-size:23px;line-height:1}.zoom-controls button:last-child{font-size:24px;margin-top:5px}.islands-button{position:absolute;left:16px;bottom:58px;font-size:11px;background:#ffffffeb;padding:7px 10px;border:1px solid #9fb9b0}.map-legend{position:absolute;left:16px;bottom:16px;display:flex;gap:13px;padding:8px 10px;background:#fffffff0;font-size:10px;color:#4f6c60;pointer-events:none}.map-legend>span{display:flex;gap:5px;align-items:center}.legend-peak{width:13px;height:12px;clip-path:polygon(0 100%,0 70%,20% 70%,20% 40%,38% 40%,38% 0,62% 0,62% 40%,80% 40%,80% 70%,100% 70%,100% 100%)}.legend-peak.high{background:#607b75}.legend-peak.small{background:#a1b17e}.legend-done{background:#bfa464;width:13px;height:13px;line-height:13px;text-align:center;color:white;font-style:normal}.map-scale{position:absolute;bottom:21px;right:16px;font:10px var(--pixel);border-bottom:2px solid #6d8d86;text-align:center;padding-bottom:3px;pointer-events:none}.marker{cursor:pointer;outline:none}.marker .marker-hit{fill:transparent}.marker .mount-icon{stroke:#fbf9e8;stroke-width:1.5;paint-order:stroke fill}.marker .selected-ring{fill:none;stroke:#aa8e50;stroke-width:2;opacity:0}.marker.selected .selected-ring{opacity:1}.marker:hover .mount-icon,.marker:focus .mount-icon{stroke:#a37d35;stroke-width:3}.marker-label{font:11px var(--pixel);fill:#334d44;paint-order:stroke;stroke:#f6f4e3;stroke-width:3;stroke-linejoin:round;pointer-events:none}.geography-label{font:11px var(--pixel);fill:#668780;letter-spacing:2px;pointer-events:none}.sea-label{font:16px var(--pixel);fill:#749a99;letter-spacing:9px;pointer-events:none}.marker-check{font:bold 10px sans-serif;fill:#fff;pointer-events:none}
.detail-panel{background:var(--paper);border:1px solid #dce7dd;box-shadow:4px 4px 0 #edf3ec;min-height:725px;scroll-margin-top:15px}.detail-heading{padding:23px 23px 17px}.detail-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;gap:8px;color:var(--muted)}.category-tag{background:#f0f5e9;color:#58704d;padding:2px 8px;font-size:10px}.category-tag.baiyue{background:#edf6f3;color:#4f6f68}.detail-heading h2{font:30px/1.5 var(--pixel);letter-spacing:2px;margin-top:8px;overflow-wrap:anywhere}.detail-location{font-size:12px;color:var(--muted);margin-top:3px}.detail-art{position:relative;height:139px;background:url('assets/mountain-panorama.webp') 70% 44%/cover;image-rendering:pixelated;margin:0 13px}.detail-art::after{content:'山林概念插畫';position:absolute;bottom:5px;right:7px;color:#fdfdf4;background:#3c5a4b88;padding:1px 5px;font-size:9px}.detail-art.small{background-position:25% 68%}.altitude{font-family:var(--pixel);font-size:31px;padding:18px 23px 8px;line-height:1.1}.altitude span{font-size:13px;margin-left:6px;color:var(--muted)}.altitude-label{font:10px 'Microsoft JhengHei',sans-serif;display:block;color:var(--muted);margin-bottom:5px}.detail-content{padding:12px 23px 20px}.detail-content h3{font:15px var(--pixel);letter-spacing:1px;display:flex;align-items:center;gap:8px;margin:11px 0}.detail-content h3::before{content:'';height:6px;width:6px;background:#a5b390;box-shadow:2px 2px 0 #d6ddc8}.description{font-size:12px;line-height:1.95;color:#5b7065;white-space:pre-line;overflow-wrap:anywhere}.detail-fact{font-size:11px;color:#6b7d70;padding:10px 0;border-bottom:1px solid #e2e7d9}.climbed-control{margin:17px 0 10px;display:flex;align-items:center;gap:10px;padding:12px;background:#f3f8ec;border:1px solid #d2e1c6;cursor:pointer;font-family:var(--pixel);font-size:16px}.climbed-control:has(input:checked){background:#fff3d3;border-color:#dcc285}.climbed-control input{accent-color:#718d6e;width:19px;height:19px;margin:0;flex-shrink:0}.save-note{font-size:10px;color:#7b8a76}.source-details{margin-top:18px;border-top:1px solid #e0e5d8;padding-top:10px;font-size:11px;color:#708273}.source-details summary{cursor:pointer}.source-details a{display:inline-block;margin:4px 12px 0 0;font-size:10px}.coordinates{font-size:10px;color:#7c8e80;margin-top:8px}.storage-error{background:#f1e4cb;color:#6c552e;padding:10px;grid-column:1/-1;font-size:12px}.catalog-heading{display:flex;align-items:center;justify-content:space-between;margin:32px 0 18px;gap:14px}.catalog-heading h2{font:21px var(--pixel);letter-spacing:2px;display:flex;gap:12px;align-items:center}.catalog-heading h2 span{font:11px 'Microsoft JhengHei';letter-spacing:0;color:#7c8d7a;padding:1px 6px;background:#edf4e9}.catalog-heading p{font-size:11px;color:#7b8a77;margin-top:7px}.sort-label{font-size:11px;color:#6f8373;display:flex;align-items:center;gap:8px;flex-shrink:0}.sort-label select{font-size:11px;border:1px solid #c6d2bd;background:#ffffff;padding:8px;max-width:130px}.catalog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.peak-card{display:flex;align-items:center;gap:13px;padding:14px;background:#ffffff;border:1px solid #e0e8dc;text-align:left;min-height:89px;width:100%;position:relative}.peak-card:hover{background:#f0f7ec;border-color:#a6bc9f}.peak-card.selected{border-color:#ac9565;background:#fff9e8;box-shadow:inset 3px 0 0 #baa16a}.peak-sprite{width:36px;min-width:36px;height:33px;display:grid;place-items:center;background:#f0f6ec}.peak-sprite svg{width:25px;height:25px}.peak-card .card-name{font:16px var(--pixel);display:block;line-height:1.4;overflow-wrap:anywhere}.peak-card .card-info{font-size:10px;color:#7b8c7a;display:block;margin-top:4px}.card-done{position:absolute;right:7px;top:4px;color:#a38b4e;font-weight:bold;font-size:12px}.empty{grid-column:1/-1;text-align:center;background:#ffffff;border:1px dashed #bdcdb6;padding:42px 20px}.empty h3{font:20px var(--pixel)}.empty p{font-size:12px;color:#7b8975;margin-top:8px}.empty button{padding:9px 20px;border:1px solid #b4c5ac;margin-top:20px;background:#e4ebda;font-size:12px}footer{margin-top:37px;padding:23px 0 32px;border-top:1px solid #e1e9de;display:flex;align-items:center;gap:25px;color:#7c8c79}.footer-brand{font:18px var(--pixel);letter-spacing:2px;white-space:nowrap}footer p{font-size:10px;flex:1;line-height:1.9}.text-button{white-space:nowrap;font-size:10px}dialog{max-width:650px;width:calc(100% - 32px);max-height:85vh;overflow:auto;background:var(--paper);color:var(--ink);padding:0;border:1px solid #aabf9e;box-shadow:7px 7px 0 #667a5b33}dialog::backdrop{background:#294d4366;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #d5decc}.dialog-heading h2{font:21px var(--pixel)}.dialog-heading button{font-size:26px;background:transparent;padding:0 5px}.dialog-body{padding:10px 24px 25px}.dialog-body h3{font:17px var(--pixel);margin:20px 0 7px}.dialog-body p,.dialog-body li{font-size:12px;line-height:1.9;color:#647762}.dialog-body ul{padding-left:17px}.dialog-body li+li{margin-top:8px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#405e4d;color:#f6f7e7;padding:11px 23px;box-shadow:3px 3px 0 #284a3633;font-size:12px;z-index:50;max-width:90%;text-align:center;opacity:0;pointer-events:none;transition:opacity .15s}#toast.show{opacity:1}
@media(min-width:1600px){.map-viewport{height:720px}.detail-panel{min-height:795px}}
@media(max-width:1100px){.wrap{padding:0 24px}.explorer-grid{grid-template-columns:minmax(0,1fr) 305px;gap:14px}.tabs button{padding:8px 11px}.toolbar{gap:10px}.detail-heading{padding:20px}.detail-content{padding:10px 20px 18px}.catalog{grid-template-columns:repeat(3,minmax(0,1fr))}.map-bottom{flex-direction:column;gap:0}.hero h1{font-size:33px}.journey{right:17px;bottom:16px}}
@media(max-width:780px){.wrap{padding:0 18px}.masthead{height:84px}.brand{font-size:23px;letter-spacing:1px;gap:10px}.brand small{font-size:9px;letter-spacing:.4px}.brand svg{width:33px;height:33px}.quiet-button{font-size:10px;max-width:75px;text-align:right;line-height:1.7}.hero{min-height:243px;align-items:flex-start}.hero-copy{width:75%;padding:20px 22px;background:transparent}.hero h1{font-size:31px;margin-top:10px}.hero-small{font-size:9px;letter-spacing:1px}.hero p{font-size:11px}.hero-art{inset:0;background-image:linear-gradient(90deg,#ffffff 0%,#fffffff2 20%,#ffffffc9 49%,#ffffff33 100%),url('assets/mountain-panorama.webp');background-position:center,63% 50%;opacity:1}.journey{min-width:140px;padding:9px 12px;gap:0 6px;right:12px;bottom:12px;grid-template-columns:20px 1fr}.journey svg{width:20px}.journey strong{font-size:22px}.journey .of{font-size:14px}.journey small{font-size:9px}.toolbar{margin-top:18px;gap:10px}.tabs{width:100%}.tabs button{flex:1;min-height:40px;padding:8px 6px;font-size:12px}.searchbox{min-width:0;flex:1;height:44px}.done-filter{height:44px;padding:0 13px}.explorer-grid{grid-template-columns:1fr;gap:17px}.map-viewport{height:520px}.map-bottom{flex-direction:row;font-size:9px}.map-top{font-size:10px;padding:10px 12px}.map-legend{gap:10px;font-size:9px;left:10px;bottom:12px;padding:7px 8px}.islands-button{left:10px;bottom:51px;font-size:10px}.map-scale{right:10px;bottom:17px;font-size:9px}.detail-panel{min-height:0;display:grid;grid-template-columns:1fr 40%;align-items:start}.detail-heading{padding:19px 20px 15px;grid-column:1}.detail-heading h2{font-size:27px;margin-top:6px}.detail-location{font-size:11px}.detail-art{margin:17px 14px 0 0;height:116px;grid-column:2;grid-row:1/3;min-width:0}.altitude{grid-column:1;padding:0 20px 12px;font-size:27px}.altitude-label{font-size:9px;margin-bottom:4px}.detail-content{grid-column:1/-1;padding:0 20px 18px}.description{font-size:12px}.detail-content h3{margin-top:4px}.climbed-control{margin-top:15px}.source-details{margin-top:14px}.catalog-heading{margin-top:25px;align-items:flex-start}.catalog-heading h2{font-size:19px}.catalog-heading p{font-size:10px;max-width:190px}.catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.peak-card{padding:11px 9px;gap:9px;min-height:83px}.peak-sprite{min-width:29px;width:29px;height:30px}.peak-sprite svg{width:24px}.peak-card .card-name{font-size:15px}.peak-card .card-info{font-size:9px}.sort-label{gap:4px;font-size:10px}.sort-label select{font-size:10px;max-width:112px;padding:6px 4px}footer{align-items:flex-start;flex-wrap:wrap;gap:10px 17px;margin-top:25px;padding-top:20px}.footer-brand{font-size:17px}footer p{flex-basis:100%;order:2;font-size:10px}.text-button{margin-left:auto;font-size:10px}.compass{left:16px;top:17px}.zoom-controls{right:12px;top:14px}.dialog-heading{padding:17px 18px}.dialog-heading h2{font-size:18px}.dialog-body{padding:5px 18px 22px}}
@media(max-width:365px){.wrap{padding:0 12px}.catalog{grid-template-columns:1fr}.hero-copy{padding:18px}.map-bottom{flex-direction:column}.detail-heading{padding-left:15px}.detail-content{padding-left:15px;padding-right:15px}.altitude{padding-left:15px}.detail-meta{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.detail-content>.climbed-control{margin-top:2px}.detail-content>.save-note{margin-bottom:17px}

/* Bright palette: the hero fade covers its full height, independently of the text block. */
#map>rect:first-of-type{fill:#d6e9e9}#seaGrid path{stroke:#b9d1d2}#waves path{stroke:#eff8f6}#land{filter:brightness(1.1) saturate(.82)}
.hiker-route{position:absolute;left:38%;right:242px;bottom:9px;height:81px;z-index:1;pointer-events:none}.hiker-traveler{position:absolute;left:0;bottom:0;width:66px;height:81px;animation:hiker-roam 18s linear infinite;transform-origin:center}.hiker-traveler img{display:block;width:100%;height:100%;image-rendering:pixelated}.journey{z-index:3}
@keyframes hiker-roam{0%{left:0;transform:scaleX(1)}49.99%{left:calc(100% - 66px);transform:scaleX(1)}50%{left:calc(100% - 66px);transform:scaleX(-1)}99.99%{left:0;transform:scaleX(-1)}100%{left:0;transform:scaleX(1)}}
@media(max-width:780px){.hiker-route{left:auto;right:12px;top:40px;bottom:auto;width:88px;height:66px}.hiker-traveler{width:54px;height:66px;animation-name:hiker-roam-small}}
@keyframes hiker-roam-small{0%{left:0;transform:scaleX(1)}49.99%{left:calc(100% - 54px);transform:scaleX(1)}50%{left:calc(100% - 54px);transform:scaleX(-1)}99.99%{left:0;transform:scaleX(-1)}100%{left:0;transform:scaleX(1)}}
@media(max-width:365px){.hiker-route{right:8px;width:70px}}
@media(prefers-reduced-motion:reduce){.hiker-traveler{animation:none;left:25%;transform:none}}
.catalog-regions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 9px}.catalog-regions button{min-height:42px;min-width:88px;padding:8px 16px;background:#fff;border:1px solid #d5e2d5;font-family:var(--pixel);font-size:15px;display:flex;align-items:center;justify-content:center;gap:10px}.catalog-regions button:hover{background:#f0f7ec}.catalog-regions button.active{background:#e8f1e6;border-color:#9db79c;box-shadow:2px 2px 0 #cfdfcd}.catalog-regions small{font:10px 'Microsoft JhengHei',sans-serif;color:#718774}.region-note{font-size:10px;line-height:1.8;color:#7b8a77;margin:0 0 17px}
@media(max-width:780px){.catalog-regions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.catalog-regions button{min-width:0;padding:7px 9px;font-size:14px;gap:8px}.region-note{font-size:9px;margin-bottom:14px}}
