/* 招牌隨建築用途設計；共用字級與對比，不共用外形。 */
.lbl.bld{display:flex;align-items:center;gap:5px;max-width:230px;min-height:30px;padding:5px 10px;border:1.5px solid var(--sign);border-radius:7px;background:#fffdf8;color:#405268;font-family:var(--f-display);font-size:12px;line-height:1.3;box-shadow:0 3px 0 color-mix(in srgb,var(--sign),white 35%),0 6px 10px #536b8514}
.lbl.bld b{font-weight:400}
.sign-icon{display:inline-grid;place-items:center;flex:none;width:19px;height:19px;border-radius:50%;font-family:var(--f-body);font-size:12px;line-height:1;color:var(--sign)}
.lbl.sign-station{border-radius:3px 3px 10px 3px;background:var(--sign);color:#253e58;border-bottom:4px solid #fffdf8}
.sign-station .sign-icon{background:#fffdf8;color:#456c8d;font-weight:900}
.lbl.sign-book{border-radius:3px 12px 12px 3px;border-left-width:7px;border-bottom:3px double var(--sign);background:#fff9e9}
.lbl.sign-ticket{border-radius:2px 12px 2px 12px;border-right:3px dashed var(--sign);background:#fff5e5}
.lbl.sign-house,.lbl.sign-carton{border-radius:12px 12px 3px 3px;border-top-width:4px;background:#fff8f2}
.lbl.sign-wood{border:2px solid #c0a17e;border-radius:6px 3px 7px 3px;background:#f6e9d1;box-shadow:0 3px 0 #d7bc99;color:#6a563f}
.lbl.sign-leaf{border-radius:18px 4px 18px 4px;background:#edf8ed;color:#3b6958;border-color:#83bda0}
.lbl.sign-cloud{border-radius:22px 25px 18px 18px;background:#f9fdff;border:2px solid #afd5e7}
.lbl.sign-wave{border-radius:8px 8px 14px 14px;border-bottom:4px double #78bdd9;background:#f3fbff;color:#356f86}
.lbl.sign-arrow{border-radius:3px 16px 16px 3px;border-right-width:5px;background:#f1f7fc}
.lbl.sign-arch{border-radius:18px 18px 4px 4px;border-top-width:4px}
.lbl.sign-shield{border-radius:7px 7px 18px 18px;border-bottom-width:4px;background:#f0f6fb}
.lbl.sign-coin{border-radius:999px;background:#fff2ca;border:2px solid #e4bd69;color:#896324}
.lbl.sign-awning{border-radius:3px 3px 8px 8px;border-top:5px dashed var(--sign);background:#fff5ea}
.lbl.sign-shop{border-radius:8px 8px 3px 3px;border-bottom:4px solid var(--sign);background:#f4fbf5}
.lbl.sign-chip{border-radius:2px;border:3px double #8ab6b3;background:#496479;color:#fff}
.sign-chip .sign-icon{color:#b5e3dc}
.lbl.sign-score{border-radius:4px;background:#edf2fb;border:2px solid #86a4d0;border-bottom-width:4px;font-family:var(--f-body);font-size:11px}
.lbl.sign-stage,.lbl.sign-ribbon{border-radius:3px 14px 3px 14px;border-top:3px solid var(--sign);background:#f8effb}
.lbl.sign-pencil{border-radius:2px 14px 14px 2px;border-left:7px solid #edc66c;background:#fff9e3}
.lbl.sign-cross{border-radius:5px;border-left:5px solid #e797a9;background:#fff7fa}
.lbl.sign-factory{border-radius:3px 3px 9px 9px;background:#eff8f5;border-top:4px solid var(--sign)}
.lbl.bld.sel{background:#fff9d8;color:#604e38;outline:3px solid #f1c875;outline-offset:3px;box-shadow:0 3px 0 var(--sign),0 8px 18px #b58f4b22}
.lbl.bld:hover{filter:brightness(1.025)}
.lbl.isle{border:1px solid #fff8;border-radius:15px 15px 18px 18px;background:#fffdf8;padding:7px 14px 8px;box-shadow:0 4px 0 var(--c),0 8px 16px #536b8514}
.lbl.isle b{font-size:17px}
.lbl.isle small{margin-top:3px;letter-spacing:.04em}
.hud .seven{font-size:29px;line-height:1}
.intro-logo .seven{font-size:42px;line-height:1}
@media(max-width:699px){.lbl.bld{font-size:11px;max-width:205px;padding:4px 7px;min-height:27px}.sign-icon{width:16px;height:16px;font-size:10px}.lbl.isle b{font-size:15px}}

.lbl.bld::after{content:"";position:absolute;pointer-events:none;left:50%;top:100%;width:1px;height:var(--stem,0px);background:var(--sign);opacity:.65;z-index:-1}

/* 主題招牌必須先好讀；避免手寫細字和縮小字級。 */
.lbl.bld{font-family:var(--f-body);font-size:15px;font-weight:800;line-height:1.35;min-height:37px;padding:7px 12px;gap:6px;max-width:280px;color:#34415b;background-color:#fffdf8}
.lbl.bld b{font-family:var(--f-body);font-weight:800;letter-spacing:.01em}
.lbl.sign-score{font-size:15px}
.lbl.sign-station{color:#253d58;background-color:#e8f3ff}
.lbl.sign-chip{color:#fff;background-color:#405b73}
.lbl.sign-wood{color:#59452f;background-color:#fff1d9}
.lbl.sign-leaf{color:#2f5a46;background-color:#f3fff5}
.lbl.sign-wave{color:#2a5e78;background-color:#f5fcff}
.lbl.sign-coin{color:#735015;background-color:#fff6d8}
.sign-icon{width:20px;height:20px;font-size:13px;font-weight:800}
@media(max-width:699px){.lbl.bld,.lbl.sign-score{font-size:14px;min-height:34px;padding:6px 9px;gap:5px;max-width:255px}.sign-icon{width:18px;height:18px;font-size:12px}}

/* 政績介紹以舒適閱讀為先，含來源與相關按鈕一起放大。 */
.drawer .dr-body{font-size:18px;line-height:1.8;padding-inline:22px}
.drawer .dr-body h3{font-family:var(--f-body);font-size:30px;font-weight:800;line-height:1.4;margin-bottom:18px}
.drawer .dr-body>p{font-size:18px;line-height:1.9;margin-bottom:20px;color:#3b3547}
.drawer .dr-body h4{font-size:18px;font-weight:700;letter-spacing:.04em;color:#65556f;margin:24px 0 10px}
.drawer .metric{padding:17px 18px;gap:10px 12px;margin-bottom:18px}
.drawer .metric .to{font-size:44px;line-height:1.2}
.drawer .metric .from{font-size:23px}
.drawer .metric .cap{font-size:17px;line-height:1.7;color:#6d5e77}
.drawer .meta{gap:8px;margin-bottom:18px}
.drawer .meta span{font-size:16px;line-height:1.6;padding:4px 10px}
.drawer .say .bubble{font-size:18px;line-height:1.75;padding:12px 15px}
.drawer .srcs{font-size:16px;line-height:1.85;padding-left:24px;overflow-wrap:anywhere}
.drawer .srcs li{margin-bottom:12px}
.drawer .srcs .ntag{font-size:14px}
.drawer .backlink,.drawer .rels button,.drawer .share-row button{font-size:16px;line-height:1.5}
.drawer .rels button,.drawer .share-row button{padding:9px 14px;min-height:44px}
.drawer .dr-head .chip{font-size:15px;white-space:normal;line-height:1.6}
.drawer .dr-close{width:40px;height:40px;font-size:20px}
.drawer .mini{flex-wrap:wrap;padding:13px 14px}
.drawer .mini b{font-size:18px;line-height:1.55}
.drawer .mini em{font-size:21px;white-space:normal}
.drawer .mini small,.drawer .isle-head span{font-size:16px!important;line-height:1.65}
.drawer .tbl summary{font-size:18px;line-height:1.7}
.drawer .tbl p{font-size:17px;line-height:1.85;color:#65556f}
.drawer .tag{font-size:14px;line-height:1.7}
@media(max-width:560px){.drawer .dr-body{padding-inline:18px}.drawer .dr-body h3{font-size:28px}.drawer .metric .to{font-size:40px}.drawer .metric .from{font-size:21px}}

/* 品牌、工具列和情境按鈕各占一層，由實際高度計算，避免遮擋。 */
.hud header.top{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center}
.hud .brand{margin:0;justify-self:start;max-width:100%}.hud .brand h1{overflow:hidden;text-overflow:ellipsis}.hud .views button{min-height:40px}
.stage .tools{top:calc(var(--hud-bottom,76px) + 12px);left:12px;right:12px;gap:8px;max-width:none;align-items:center}
.stage .tools button{min-height:40px;font-size:14px;padding:7px 13px;flex:none;opacity:1}
.stage:has(.drawer.open) .tools{display:none}
.walk-say{left:12px;right:auto;top:calc(var(--tools-bottom,132px) + 12px);bottom:auto;max-width:min(480px,calc(100% - 24px))}
.stage:has(.enter-bld:not([hidden])) .challenge{bottom:calc(36px + env(safe-area-inset-bottom) + var(--enter-height,76px))}
.enter-bld{white-space:normal;text-align:center}.enter-bld b{white-space:normal;overflow:visible;text-overflow:clip}
.pp-head{padding-right:50px}.pass-box .pp-x{width:40px;height:40px;z-index:2;background:#fff}
.pp-sub,.pp-note{font-size:16px;line-height:1.8}.pp-head span{font-size:16px}.pp-cell{min-height:118px;padding:12px 5px;border-radius:12px}.pp-cell b{font-size:14px;line-height:1.5}.pp-cell small{font-size:12px}.pp-cell.got{border:3px double var(--c);background:#fffaf4}.pp-cell.got .pp-stamp{border:2px solid var(--c);background:#fff;transform:rotate(-9deg);box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px var(--c)}
.pp-head b{font-size:28px}.pp-cta,.pp-back{min-height:44px;line-height:1.5}.pp-opts button{font-size:17px;min-height:48px}.pp-ok b{font-size:20px}.pp-ok p,.pp-no p{font-size:16px;line-height:1.8}
@media(min-width:561px){.drawer{top:calc(var(--hud-bottom,76px) + 12px)}}
@media(max-width:480px){.hud{padding-inline:10px}.hud header.top{grid-template-columns:40px minmax(0,1fr) auto;gap:6px}.hud .menu-btn{width:40px;height:40px}.hud .brand{padding:8px 9px}.hud .brand h1{font-size:18px}.hud .brand p{display:none}.hud .views{padding:3px}.hud .views button{padding:6px 8px;font-size:12px}.stage .tools{left:10px;right:10px}.stage .tools button{font-size:13px;padding:7px 10px}.walk-say{left:10px;max-width:calc(100% - 20px)}}
/* 中科擴建沿用同園區淺底深字，晶片特色由邊框與符號呈現。 */
.lbl.sign-chip{background:#f1fff8;color:#34415b;border:3px double var(--sign)}.sign-chip .sign-icon{color:#5b9e89}
.archive-scene{margin:18px 0;background:#eaf7ff;border-radius:18px;overflow:hidden}.archive-scene img{display:block;width:100%;aspect-ratio:1000/420;object-fit:cover}.archive-scene figcaption{font-size:15px;padding:8px 12px;color:#65556f}
/* 園區主層級：馬卡龍底、莓果深字；以大字粗體及糖霜邊框區分單棟。 */
.lbl.isle,.lbl.isle.far{background:var(--zone-paper,#f9dfea);border:3px solid #fffaf6;border-radius:17px;padding:10px 16px;opacity:1;box-shadow:0 5px 0 var(--c,#efadca),0 9px 18px #846b8424}
.lbl.isle b,.lbl.isle.far b{font-family:var(--f-body);font-size:23px;font-weight:900;color:#544463;line-height:1.35;letter-spacing:.02em}
.lbl.isle small{font-size:13px;color:#65546e;line-height:1.6;margin-top:4px}
.lbl.isle[data-zone="care"]{--zone-paper:#f9dfea}
.lbl.isle[data-zone="edu"]{--zone-paper:#fff0bf}
.lbl.isle[data-zone="env"]{--zone-paper:#daf3e7}
.lbl.isle[data-zone="move"]{--zone-paper:#dceeff}
.lbl.isle[data-zone="build"]{--zone-paper:#ffe4ce}
.lbl.isle[data-zone="econ"]{--zone-paper:#e2f5e6}
.lbl.isle[data-zone="fiscal"]{--zone-paper:#fff0c9}
.lbl.isle[data-zone="culture"]{--zone-paper:#ebe1fa}
.lbl.isle[data-zone="rank"]{--zone-paper:#fce1eb}
.lbl.isle[data-zone="guard"]{--zone-paper:#dceff3}
.lbl.isle.hub{--zone-paper:#ffdce9}
@media(max-width:699px){.lbl.isle,.lbl.isle.far{padding:8px 12px}.lbl.isle b,.lbl.isle.far b{font-size:20px}.lbl.isle small{font-size:12px}}
@media(max-width:699px){.stage[data-mode="overview"] .lbl.isle small{display:none}}
