/* ============================================================
   黃土家族・線上展覽（完整版十頁）共用樣式
   來源：../../exhibition-map-demo.html <style> L11–L303（1404 行版，已驗收）
   抽出日期：2026-08-28（階段 C）

   與來源版的三處版面差異（理由詳見 建置規格.md §3.2）：
   1. 展間頁改「頂部地圖橫幅＋單欄內容」，取代來源版「桌機左圖右文、
      地圖 sticky 於旁欄」——多頁版每頁只有一個地點，桌機再把地圖釘在
      左半邊會白吃一半版面，且桌機不必 sticky。
   2. 移除 .station-rail（站點列）——單頁狀態機的導覽器，多頁版會與
      頁底上下頁、懸浮目錄三重重複。
   3. .station-block 系列改名為 .section-block 系列（樣式值不變，
      多頁版不再有「站」的概念，只有「頁內小節」）。
   ============================================================ */

/* ===== C1：四色變數／reset／基本排版（現版 L11–35，照抄） ===== */
:root{
  --bg:#f7f5ef;
  --ink:#2b2b2b;
  --accent:#a63c22;
  --line:rgba(43,43,43,.18);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Noto Serif TC', serif;
  line-height:1.9;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;}
ul{margin:0;padding:0;}
button{font-family:inherit;}
.wrap{max-width:1280px;margin:0 auto;padding:0 6vw;}
body.lightbox-open{overflow:hidden;}

/* ===== C2：文字浮現與照片進場（現版 L37–47，照抄）
   --i 上限見檔尾「reveal --i 上限」說明；此處樣式值不變 ===== */
.has-js .reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease;transition-delay:calc(var(--i,0)*.08s);}
.has-js .reveal.is-visible{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .has-js .reveal{opacity:1;transform:none;transition:none;}
}
.has-js .photo-reveal{clip-path:inset(0 0 12% 0);opacity:0;transition:clip-path .9s ease,opacity .9s ease;}
.has-js .photo-reveal.is-visible{clip-path:inset(0);opacity:1;}
@media(prefers-reduced-motion:reduce){
  .has-js .photo-reveal{clip-path:inset(0);opacity:1;transition:none;}
}

/* ===== C3：按鈕（現版 L49–55，照抄） ===== */
.btn{
  display:inline-block;padding:.85em 2.1em;border:1px solid currentColor;
  background:none;color:inherit;text-decoration:none;letter-spacing:.15em;
  font-size:.86rem;font-family:inherit;cursor:pointer;
  transition:background .3s,color .3s;
}
.btn:hover{background:var(--ink);color:var(--bg);}

/* ===== C4：首屏（現版 L57–100，照抄，2026-08-28 解除 .exh-home 限定：站主要求每個展間頁也有自己的首屏） ===== */
.hero{
  position:relative;overflow-x:hidden;min-height:100vh;min-height:100svh;background:var(--bg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.8rem;padding:6vh 6vw 4vh;text-align:center;
}
.hero-head{position:relative;width:100%;max-width:52rem;padding:1.6rem 1rem;isolation:isolate;}
.sand-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;}
.hero-eyebrow{
  position:relative;z-index:1;
  letter-spacing:.3em;font-size:.78rem;color:var(--accent);
  text-transform:uppercase;margin:0 0 .9rem;
}
.hero-title{
  position:relative;z-index:1;
  font-size:clamp(1.7rem,4.4vw,2.7rem);letter-spacing:.08em;
  margin:0 0 1rem;font-weight:600;
}
.hero-sub{
  position:relative;z-index:1;
  font-size:clamp(1rem,2.4vw,1.3rem);line-height:1.9;opacity:.92;margin:0;
}
.hero-title .ch,.hero-sub .ch{display:inline-block;overflow:hidden;vertical-align:bottom;}
.hero-title .ch>span,.hero-sub .ch>span{display:inline-block;}

.hero-carousel{
  /* 2026-08-28 站主要求滿版：stretch 撐滿內容框，再用負邊界吃掉 .hero 的 6vw padding。
     不用 100vw，因為有捲軸時 100vw 會比可視寬多出捲軸寬度而造成橫向捲動。 */
  position:relative;align-self:stretch;width:auto;max-width:none;
  margin-left:-6vw;margin-right:-6vw;
  aspect-ratio:16/9;max-height:52vh;
  overflow:hidden;background:var(--line);
}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 2.2s ease;}
.hero-slide.is-active{opacity:1;z-index:1;}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;}
.hero-slide.is-active img{animation:heroKenburns 8.5s ease-out forwards;}
@keyframes heroKenburns{from{transform:scale(1);}to{transform:scale(1.08);}}

.hero-follow-btn{margin-top:-.6rem;}

@media(max-width:819.98px){
  .hero-carousel{aspect-ratio:4/3;max-height:56vh;}
}
@media(prefers-reduced-motion:reduce){
  .hero-slide{transition:none;}
  .hero-slide.is-active img{animation:none;}
}

/* ===== C5：兩代路線切換（現版 L102–110，照抄，只保留給首頁） ===== */
.exh-home .mode-switch{display:flex;flex-wrap:wrap;gap:.6em;justify-content:center;padding:1.2em 0;}
.exh-home .mode-switch button{
  padding:.5em 1.2em;border:1px solid var(--line);background:none;color:inherit;
  font-size:.8rem;letter-spacing:.1em;cursor:pointer;transition:background .25s,color .25s,border-color .25s;
  min-height:44px;
}
.exh-home .mode-switch button:hover{border-color:var(--ink);}
.exh-home .mode-switch button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);}

/* ===== C6：首頁說明區（現版 L112–115，照抄） ===== */
.exh-home .guide{max-width:1280px;margin:0 auto;padding:3rem 6vw 1rem;text-align:center;}
.exh-home .guide-line{margin:0 0 .5rem;font-size:.86rem;opacity:.72;line-height:1.85;}
.exh-home .guide-line:last-of-type{margin-bottom:1.2rem;}

/* ===== C7：地圖作用域顏色與水墨樣式（現版 L117–133，一字不改，含 filter:url(#fInk) 等 id 參照） ===== */
.map{--map-loess:#C9A876;--map-loess-dark:#8B6F47;}
.v-ink .land{fill:none;stroke:color-mix(in srgb, var(--ink) 52%, transparent);stroke-width:2.1;stroke-linejoin:round;stroke-linecap:round;filter:url(#fInk);}
.v-ink .henan{fill:color-mix(in srgb, var(--map-loess) 55%, transparent);stroke:none;filter:url(#fInkSoft);}
.v-ink .river{fill:none;stroke:var(--map-loess-dark);stroke-width:6;opacity:.8;stroke-linecap:round;stroke-linejoin:round;filter:url(#fInk);}
.v-ink .dot{fill:var(--ink);filter:url(#fInkSoft);}
.v-ink .lbl{font-size:15px;fill:var(--ink);letter-spacing:.2em;}
.map text{paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;}
.tick{stroke:color-mix(in srgb, var(--ink) 30%, transparent);stroke-width:.9;}
.r-grand{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-dasharray:5 5;opacity:.85;}
.r-gson{fill:none;stroke:var(--map-loess-dark);stroke-width:2.6;opacity:.95;stroke-linecap:round;}
.v-ink .r-grand{filter:url(#fInk);}
.v-ink .r-gson{filter:url(#fInk);}
.map .pt.is-current .dot{fill:var(--accent);}
.map .pt.is-current .dot{animation:ptPulse .9s ease-out 1;transform-box:fill-box;transform-origin:center;}
@keyframes ptPulse{0%{transform:scale(1);}50%{transform:scale(1.8);}100%{transform:scale(1);}}
@media(prefers-reduced-motion:reduce){ .map .pt.is-current .dot{animation:none;} }

/* ===== C8：路線畫線＋流動（現版 L135–147，一字不改，含特異度順序註解） ===== */
.map .route-draw{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset .8s ease-in-out;}
.map .route-draw.is-drawn{stroke-dashoffset:0;}
.map .route-draw.is-flowing{stroke-dasharray:.018 .018;animation:mapDashFlow 1.1s linear infinite;}
@keyframes mapDashFlow{to{stroke-dashoffset:-.036;}}
/* F5：畫完（is-drawn 排程後）鎖回設計虛線比例；.is-flowing 期間仍優先套用上方流動樣式（選擇器特異度相同、依原始碼順序，flowing 規則在前先寫，settled 在後對非 flowing 情形生效） */
/* dasharray 走 pathLength=1 的比例，值由 scheduleSettle 依各線實長換算成 5 user unit 寫進 --settled-dash */
.r-grand.is-settled{stroke-dasharray:var(--settled-dash, .013 .013);stroke-dashoffset:0;}
@media(prefers-reduced-motion:reduce){
  /* 互動地圖是狀態機（依頁面累積），非單次播放：仍依 is-drawn 反映進度，只是不做動畫過場、不流動 */
  .map .route-draw{transition:none;}
  .map .route-draw.is-flowing{animation:none;stroke-dasharray:.018 .018;}
}

/* ===== C9＋C10（改，見 建置規格.md §3.2 (1)）：
   展間頁地圖改為頂部橫幅，桌機不 sticky；首頁地圖大一點、永不 sticky ===== */
.map-band{ position:relative; background:var(--bg); border-bottom:1px solid var(--line); }
.map-stage{ position:relative; overflow:hidden; background:var(--bg); height:34vh; }
.map-stage svg.map{ position:absolute; inset:0; width:100%; height:100%;
                    opacity:0; transition:opacity .6s ease; }
.map-stage svg.map.is-active{ opacity:1; z-index:1; }
@media(prefers-reduced-motion:reduce){ .map-stage svg.map{ transition:none; } }

.route-label{margin:0;padding:.35em 0;font-size:.74rem;letter-spacing:.05em;opacity:.7;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.page-main{ padding:0 6vw; }
@media(min-width:820px){
  .map-stage{ height:min(42vh, 380px); }
  .page-main{ max-width:44rem; margin:0 auto; padding:0 2rem; }
  #mainMap .lbl{ font-size:15px; }        /* 現版預設 */
}
@media(max-width:819.98px){
  /* 2026-08-28 站主實機測試後裁決：手機**取消**地圖固定——地圖加站點列會吃掉
     半個螢幕，讀 11 站長文時嚴重影響閱讀。改成一般區塊，捲過去就過去了；
     要回看地圖用右下角目錄跳頁即可。桌機兩欄的 sticky 不受影響。 */
  .exh-room .map-col, .exh-epilogue .map-band{
    position:static; background:var(--bg); border-bottom:1px solid var(--line);
  }
  #mainMap .lbl{ font-size:26px; }        /* 現版 L179 */
  #detailMap .lbl{ font-size:20px; }      /* 現版 L180 */
}
/* 首頁地圖大一點，且永不 sticky */
.exh-home .map-stage{ height:38vh; }
@media(min-width:820px){ .exh-home .map-stage{ height:min(66vh, 620px); } }

/* body[data-mode] 淡化：只保留 .route-draw 兩條（.station-chip 兩條隨站點列一併移除，見 §3.2 (2)） */
body[data-mode="grand"] .map .route-draw.r-gson{opacity:.15;}
body[data-mode="gson"] .map .route-draw.r-grand{opacity:.15;}

/* ===== C11（改名照抄，見 §3.2 (3)）：內容欄／區塊標題 ===== */
.content-col{padding:2rem 0 4rem;}
.area-divider{text-align:center;padding:4rem 0 2rem;border-top:1px solid var(--line);margin-top:2rem;}
.area-divider:first-child{border-top:0;margin-top:0;}
.area-num{display:block;color:var(--accent);font-size:1.4rem;letter-spacing:.2em;margin-bottom:.4rem;}
.area-name{font-size:clamp(1.3rem,3vw,1.8rem);letter-spacing:.15em;margin:0 0 .5rem;}
.area-sub{opacity:.7;letter-spacing:.05em;margin:0;}

.section-block{padding:2.4rem 0;scroll-margin-top:1rem;}
.section-kicker{
  letter-spacing:.25em;font-size:.78rem;color:var(--accent);
  text-transform:uppercase;margin:0 0 .6rem;
}
.section-title{font-size:clamp(1.25rem,2.6vw,1.7rem);letter-spacing:.05em;margin:0 0 1.2rem;font-weight:600;}
.intro-p{margin:0 0 1.3rem;font-size:1rem;}
.section-note{font-size:.84rem;opacity:.65;margin:0 0 1.6rem;line-height:1.8;}

/* ===== C12：照片（現版 L208–211，照抄） ===== */
.photo{margin:0 0 2.2rem;cursor:zoom-in;}
.photo img{width:100%;}
.photo figcaption{font-size:.86rem;opacity:.75;margin-top:.7em;line-height:1.75;}
.photo:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}

/* ===== C13：兩代並置（現版 L213–226，照抄，只有 07 頁用） ===== */
.pair-widget{margin:2.6rem 0;padding:1.8rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.pair-stage{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ink);}
.pair-img{position:absolute;inset:0;}
.pair-img img{width:100%;height:100%;object-fit:cover;}
.pair-label{
  position:absolute;bottom:.8em;font-size:.78rem;letter-spacing:.1em;
  color:var(--bg);background:color-mix(in srgb, var(--ink) 55%, transparent);
  padding:.3em .8em;
}
.pair-label-a{left:.8em;}
.pair-label-b{right:.8em;}
.pair-range{width:100%;margin:1em 0 0;min-height:44px;accent-color:var(--accent);}
.pair-caption{font-size:.84rem;opacity:.75;margin:.5em 0 0;line-height:1.75;}

/* ===== C14：懸浮目錄（現版 L228–263，照抄後擴充，擴充部分見檔尾新增區塊） ===== */
.toc-btn{
  position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:6;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--ink);
  background:var(--bg);color:var(--ink);font-size:.7rem;letter-spacing:.05em;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 20%, transparent);
}
.toc-overlay{position:fixed;inset:0;z-index:6;background:color-mix(in srgb, var(--ink) 45%, transparent);display:none;}
.toc-panel[hidden]{display:none;}
.toc-panel{
  position:fixed;z-index:7;background:var(--bg);border:1px solid var(--line);
  display:flex;flex-direction:column;
}
.toc-nav{display:flex;gap:.6em;padding:1em 1em .6em;border-bottom:1px solid var(--line);}
.toc-nav-btn{flex:1;min-height:44px;border:1px solid var(--line);background:none;color:inherit;font-size:.82rem;letter-spacing:.08em;cursor:pointer;transition:background .25s,color .25s;text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center;}
.toc-nav-btn:hover{background:var(--ink);color:var(--bg);}
.toc-nav-btn[hidden]{display:none;}
.toc-list{overflow-y:auto;padding:.6em 1em 1.2em;}
.toc-item,.toc-station,.toc-page,.toc-sec{
  display:block;width:100%;min-height:44px;text-align:left;padding:.5em .3em;
  border:none;background:none;color:inherit;font-size:.86rem;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;transition:color .25s,opacity .25s;
}
.toc-area{margin:1em 0 .2em;font-size:.76rem;letter-spacing:.15em;color:var(--accent);}
.toc-area:first-of-type{margin-top:.2em;}
.toc-station[aria-current="true"]{color:var(--accent);font-weight:600;}
.toc-item-epilogue{margin-top:.6em;border-top:1px solid var(--line);padding-top:.8em;}

@media(min-width:820px){
  .toc-panel{right:1rem;bottom:calc(4.4rem + env(safe-area-inset-bottom));width:300px;max-height:70vh;box-shadow:0 4px 20px color-mix(in srgb, var(--ink) 25%, transparent);}
}
@media(max-width:819.98px){
  .toc-panel{left:0;right:0;bottom:0;max-height:75vh;border-radius:14px 14px 0 0;}
  .toc-overlay:not([hidden]){display:block;}
  body.toc-open{overflow:hidden;}
}

/* ===== C15：燈箱（現版 L265–285，照抄） ===== */
.lightbox{position:fixed;inset:0;z-index:20;background:color-mix(in srgb, var(--ink) 92%, transparent);
  display:flex;align-items:center;justify-content:center;padding:5vh 5vw;}
.lightbox[hidden]{display:none;}
.lightbox-inner{position:relative;max-width:min(92vw,900px);max-height:90vh;display:flex;flex-direction:column;align-items:center;}
.lightbox-media{position:relative;max-width:100%;}
.lightbox-media img{max-height:76vh;width:auto;max-width:100%;display:block;}
.lightbox-cap{color:var(--bg);font-size:.88rem;opacity:.9;margin-top:1em;text-align:center;max-width:60ch;}
.lightbox-count{color:var(--bg);font-size:.78rem;opacity:.75;margin:.4em 0 0;letter-spacing:.05em;}
/* 2026-08-28 站主要求：可見外框縮一半、移出照片之外；
   但點擊命中區仍維持 44×44（觸控目標硬規則），外框改畫在 ::before 上。 */
.lightbox-btn{
  background:none;border:0;padding:0;color:var(--bg);font-size:.95rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  position:relative;line-height:1;
}
.lightbox-btn::before{
  content:'';position:absolute;inset:10px;border:1px solid var(--bg);opacity:.5;
  transition:opacity .2s ease;
}
.lightbox-btn:hover::before,.lightbox-btn:focus-visible::before{opacity:1;}
.lightbox-close{position:absolute;top:-3.2rem;right:-.6rem;}
/* prev/next 掛在 .lightbox-media 上，桌機完全落在照片外側 */
.lightbox-prev{position:absolute;top:50%;left:-3.6rem;transform:translateY(-50%);}
.lightbox-next{position:absolute;top:50%;right:-3.6rem;transform:translateY(-50%);}
@media(max-width:819.98px){
  /* 窄螢幕圖外沒有空間：改放照片下緣兩側，只壓到圖的最底邊，不遮主體 */
  .lightbox-prev{top:auto;bottom:.3rem;left:.3rem;transform:none;}
  .lightbox-next{top:auto;bottom:.3rem;right:.3rem;transform:none;}
  .lightbox-close{top:-2.8rem;right:0;}
}
@media(prefers-reduced-motion:reduce){ .lightbox-btn::before{transition:none;} }

/* ===== C16：尾聲（現版 L287–298，照抄；.epilogue-credits a 改成 .btn 級觸控目標，見檔尾） ===== */
.epilogue{border-top:1px solid var(--line);padding:4rem 0 5rem;text-align:center;}
.epilogue-closing{max-width:34em;margin:0 auto 2.2rem;font-size:1rem;line-height:1.9;opacity:.85;}
.epilogue-recap{max-width:40em;margin:0 auto 2.4rem;}
.recap-line{font-size:.9rem;opacity:.8;margin:0 0 .5rem;}
.epilogue-book{max-width:32em;margin:0 auto;}
.epilogue-title{font-size:1.3rem;letter-spacing:.1em;margin:0 0 .6rem;}
.epilogue-meta{font-size:.86rem;opacity:.75;margin:0 0 1.6rem;}
.epilogue-notice{max-width:34em;margin:2.4rem auto 0;font-size:.8rem;opacity:.6;line-height:1.8;}
.epilogue-credits{margin:1em auto 0;font-size:.8rem;}
.credits-note{max-width:34em;margin:1.5rem auto 0;font-size:.78rem;opacity:.55;}

/* ============================================================
   以下為多頁版新增區塊（建置規格.md §3.3）
   ============================================================ */

/* 跳過導覽（無障礙） */
.skip-link{ position:absolute; left:-9999px; }
.skip-link:focus{ left:1rem; top:1rem; z-index:30; background:var(--bg);
                  border:1px solid var(--ink); padding:.6em 1em; }

/* 頁首：展名 ＋ 位置標示。刻意不 sticky（手機只留地圖帶 sticky，避免疊兩層吃畫面） */
.exh-header{ display:flex; flex-wrap:wrap; row-gap:.3em; align-items:center;
             justify-content:space-between; gap:1em;
             padding:.9rem 6vw; border-bottom:1px solid var(--line); }
.exh-brand{ text-decoration:none; letter-spacing:.12em; font-size:.9rem;
            min-height:44px; display:flex; align-items:center; }
.exh-pos{ font-size:.78rem; letter-spacing:.16em; color:var(--accent); margin:0; }
/* 回主站（2026-08-28 新增）：樣式比照 .exh-pos，置於頁首右側 */
.exh-home-link{ font-size:.78rem; letter-spacing:.1em; color:var(--ink); opacity:.7;
                text-decoration:none; min-height:44px; display:flex; align-items:center; }
.exh-home-link:hover{ opacity:1; color:var(--accent); }
@media(min-width:820px){ .exh-header{ padding:1rem 6vw; } }

/* 頁底上下頁 */
.exh-footer-nav{ display:flex; flex-wrap:wrap; gap:.8em; justify-content:space-between;
                 align-items:stretch; border-top:1px solid var(--line);
                 margin:3rem 6vw 0; padding:1.4rem 0 2.4rem; }
.exh-footer-nav a{ flex:1 1 8em; min-height:44px; display:flex; align-items:center;
                   justify-content:center; padding:.6em 1em; border:1px solid var(--line);
                   text-decoration:none; font-size:.86rem; letter-spacing:.08em;
                   transition:background .3s, color .3s; }
.exh-footer-nav a:hover{ background:var(--ink); color:var(--bg); }

/* 頁尾聲明（2026-08-28 新增）：短版聲明＋完整版連結＋著作權，十頁共用（renderNotice()）；
   credits.html 靜態頁只放著作權一行，用同一套樣式。 */
.exh-notice{ max-width:34em; margin:1.5rem auto 0; padding:0 6vw 2.4rem;
             text-align:center; font-size:.78rem; opacity:.6; line-height:1.8; }
.exh-notice a{ display:inline-flex; align-items:center; justify-content:center;
               min-height:44px; padding:.6em 1.4em; color:var(--accent); }
.exh-notice-copyright{ margin-top:.4em; }

/* 版權聲明頁的來源清單（2026-08-28 新增，credits.html 專用） */
.credits-list{ list-style:disc; margin:0 0 1.3rem; padding-left:1.4em; }
.credits-list li{ font-size:1rem; margin:0 0 .6em; line-height:1.9; }
/* 內文中的聯絡信箱連結：inline-flex 讓瀏覽器把該行行高撐開到 44px，不影響其餘行 */
.contact-link{ display:inline-flex; align-items:center; min-height:44px; padding:.2em 0; }

/* 首頁：序文與展間入口 */
.prologue{ max-width:38em; margin:0 auto; padding:2.4rem 6vw 0; text-align:center; }
/* pre-line：讓資料裡站主指定的 \n 斷行生效（renderPrologue 用 textContent，不走 innerHTML） */
.prologue-lead{ font-size:clamp(1.05rem,2.6vw,1.35rem); line-height:1.9; margin:0 0 1.2rem; white-space:pre-line; }
.prologue-body{ font-size:.94rem; line-height:1.95; opacity:.82; margin:0 0 .9rem; white-space:pre-line; }
.home-rooms{ max-width:44rem; margin:2.6rem auto 0; padding:0 6vw 1rem; list-style:none; }
.home-rooms li{ border-top:1px solid var(--line); }
.home-rooms li:last-child{ border-bottom:1px solid var(--line); }
.room-link{ display:flex; align-items:baseline; gap:.9em; min-height:56px;
            padding:.9em .2em; text-decoration:none;
            transition:background .3s, color .3s; }
.room-link:hover{ background:var(--ink); color:var(--bg); }
.room-no{ font-size:.76rem; letter-spacing:.18em; color:var(--accent); flex:0 0 auto; }
.room-link:hover .room-no{ color:var(--bg); }
.room-name{ font-size:.98rem; letter-spacing:.05em; }
.room-count{ margin-left:auto; font-size:.76rem; opacity:.6; flex:0 0 auto; }
.home-area-head{ margin:1.6rem 0 .3rem; font-size:.76rem;
                 letter-spacing:.18em; color:var(--accent); }

/* 地圖上的地名可點（首頁）：透明大命中區，確保 ≥44px */
.map a.pt-link{ cursor:pointer; }
.map a.pt-link .hit{ fill:transparent; }
.map a.pt-link:focus-visible .dot{ stroke:var(--accent); stroke-width:3; }

/* 目錄面板：十頁清單 ＋ 頁內小節 */
.toc-page[aria-current="page"]{ color:var(--accent); font-weight:600; }
.toc-sec-head{ margin:1em 0 .2em; font-size:.76rem; letter-spacing:.15em;
               color:var(--accent); border-top:1px solid var(--line); padding-top:.9em; }
.toc-sec[aria-current="true"]{ color:var(--accent); font-weight:600; }

/* 尾聲：把「圖片來源與使用聲明」放大到 44px（現版 115×19px 太小） */
.epilogue-credits a{ display:inline-flex; align-items:center; justify-content:center;
                     min-height:44px; padding:.6em 1.4em; text-decoration:underline;
                     opacity:.8; }

@media(prefers-reduced-motion:reduce){
  .exh-footer-nav a, .room-link, .toc-page, .toc-sec{ transition:none; }
}

/* ===== C17：reduced-motion 收尾（現版 L300–303，照抄，補上新增的 .exh-footer-nav a／.room-link） ===== */
@media(prefers-reduced-motion:reduce){
  .btn,.mode-switch button,.toc-btn,.toc-nav-btn,.toc-station,.lightbox-btn,.exh-footer-nav a,.room-link{transition:none;}
}

/* =====================================================================
   2026-08-28 站主定案
   一、展間頁左圖右文兩欄 5:5（推翻建置規格 §3.2 (1) 的單欄設計）
   二、字重字色採「丁 · 綜合」：字重 500 ＋ 墨色加深 ＋ 內文放大一級 ＋ 去除過度稀釋
   三、地圖下方補回站點列（跨頁導覽）
   四、每個展間頁都有自己的首屏（風沙掃字＋輪播），沿用首頁那套
   ===================================================================== */

/* ---- 二、字體定案「丁」：覆寫前面的基礎設定 ---- */
:root{--ink:#211e1a;--line:rgba(33,30,26,.2);}
body{font-weight:500;}
.section-title{font-weight:700;}
.section-kicker,.exh-brand{font-weight:600;}
.intro-p{font-size:1.04rem;}
.photo figcaption{opacity:.92;font-size:.88rem;}
.section-note{opacity:.82;}
.prologue-body{opacity:.94;}
.area-sub{opacity:.88;}
.route-label{opacity:.85;}

/* ---- 一、展間頁兩欄 5:5（桌機才生效） ---- */
@media(min-width:820px){
  .exh-room .room-layout{
    /* minmax(0,1fr)：不加的話地圖 SVG 與站點列的固有寬度會把左欄撐開，比例就不是 5:5 */
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4vw;
    align-items:start; padding:0 6vw;
  }
  .exh-room .room-layout > .map-col{
    position:sticky; top:2rem; align-self:start;
  }
  .exh-room .room-layout > .page-main{
    max-width:none; margin:0; padding:2rem 0 4rem;
  }
  .exh-room .map-stage{ height:min(62vh, 560px); }
  .exh-room #mainMap .lbl{ font-size:17px; }
  .exh-room #detailMap .lbl{ font-size:15px; }
}
.exh-room .map-col > .map-band{ border-bottom:0; }

/* ---- 三、站點列（補回舊版 exhibition-map-demo 的做法，改成跨頁連結） ---- */
.station-rail{
  display:flex; gap:.5rem; overflow-x:auto; padding:.6rem 0 .2rem;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.station-rail::-webkit-scrollbar{display:none;}
.station-chip{
  flex:0 0 auto; display:block; min-height:44px; padding:.45em .8em;
  border:1px solid var(--line); background:none; color:var(--ink);
  text-align:center; text-decoration:none; line-height:1.5;
  transition:background .25s ease, border-color .25s ease, color .25s ease;
}
.station-chip:hover{border-color:var(--ink);}
.station-chip[aria-current="page"]{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.chip-year{display:block;font-size:.72rem;letter-spacing:.1em;opacity:.75;}
.station-chip[aria-current="page"] .chip-year{opacity:.85;}
.chip-place{display:block;font-size:.8rem;letter-spacing:.04em;white-space:nowrap;}
@media(max-width:819.98px){
  .station-rail{padding:.5rem 6vw .4rem;}
}
@media(prefers-reduced-motion:reduce){ .station-chip{transition:none;} }

/* ---- 四、展間頁首屏：比首頁略矮，輪播小一些，讓地圖區露出邊緣 ---- */
.exh-room .hero{min-height:92vh;min-height:92svh;}
.exh-room .hero-carousel{max-height:44vh;}
@media(max-width:819.98px){ .exh-room .hero-carousel{max-height:46vh;} }

/* ---- 03 飢荒之年：河南全境改橘紅（站主 2026-08-28 要求），只影響那一頁 ---- */
body[data-page="03-famine"] .v-ink .henan{
  fill:color-mix(in srgb, var(--accent) 62%, transparent);
}
