
:root{
  --bg:#f6f5ee; --fg:#291f18; --card:#fdfcf8; --muted:#edece0; --mfg:#706052;
  --border:#dcd8c5; --link:#036f4f; --linkh:#14874e; --pri:#007e46; --dest:#cc272e;
  --warn:#b45309;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);line-height:1.75;
  font-family:Geist,"Geist Fallback","Microsoft JhengHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;font-size:16px}
img{max-width:100%;display:block}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--linkh);text-decoration:underline}

/* 預覽提示 */
.pv{background:#fef3c7;color:#78350f;font-size:.75rem;text-align:center;padding:.3rem 1rem;
  border-bottom:1px solid #fcd34d}

/* 頁首 */
.hd{position:sticky;top:0;z-index:50;background:rgba(246,245,238,.95);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.hd-in{max-width:1800px;margin:0 auto;padding:0 1rem;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;height:3.5rem}
.brand{font-weight:700;font-size:1.05rem;color:var(--fg)}
.brand:hover{text-decoration:none;color:var(--fg)}
.hd-nav{display:flex;gap:.15rem;flex-wrap:wrap;overflow-x:auto}
.hd-nav a{padding:.4rem .6rem;border-radius:.4rem;font-size:.85rem;color:var(--mfg);
  white-space:nowrap}
.hd-nav a:hover{background:var(--muted);color:var(--link);text-decoration:none}
.hd-nav a.on{color:var(--pri);font-weight:600;background:var(--muted)}

/* 版面 */
.wrap{max-width:48rem;margin:0 auto;padding:2rem 1rem 3rem}
.wrap.wide{max-width:62rem}
.crumbs{font-size:.78rem;color:var(--mfg);margin-bottom:1rem}
.crumbs i{margin:0 .4rem;font-style:normal;opacity:.5}

h1{font-size:2rem;line-height:1.3;font-weight:700;margin:0 0 .6rem}
h1 small{display:block;font-size:.9rem;font-weight:400;color:var(--mfg);margin-top:.4rem}
h2{font-size:1.4rem;font-weight:600;margin:2.75rem 0 .75rem;padding-top:.4rem;scroll-margin-top:7rem}
h3{font-size:1.08rem;font-weight:600;margin:1.75rem 0 .5rem}
h4{font-size:.95rem;font-weight:600;margin:1.25rem 0 .4rem}
p{margin:.75rem 0;color:var(--mfg)}
.wrap>p:first-of-type,.lede{font-size:1.05rem}
.lede{color:var(--mfg);margin:.5rem 0 1.25rem}
.lead{color:var(--mfg);margin:.35rem 0 .9rem}
strong,b{color:var(--fg);font-weight:600}
ul,ol{color:var(--mfg);padding-left:1.4rem}
li{margin:.3rem 0}
hr{border:0;border-top:1px solid var(--border);margin:2rem 0}
blockquote{margin:1rem 0;padding:.1rem 0 .1rem 1rem;border-left:3px solid var(--border);
  color:var(--mfg);font-style:normal}
code{font-family:"Geist Mono","Geist Mono Fallback",ui-monospace,monospace;font-size:.85em;
  background:var(--muted);padding:.1em .35em;border-radius:.3rem;color:#4a3a2c}

/* 信心標記 */
.mk{display:inline-block;min-width:1.1rem;text-align:center;border-radius:.3rem;
  font-size:.68rem;font-weight:700;padding:.05rem .3rem;line-height:1.3;
  vertical-align:.12em;cursor:help;font-family:ui-monospace,monospace}
.mk-e{background:var(--pri);color:#fff}
.mk-v{background:var(--warn);color:#fff}
.mk-q{background:var(--mfg);color:#fff}

/* 資訊膠囊 */
.pills{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 1.25rem}
.pill{display:inline-flex;align-items:baseline;gap:.4rem;padding:.3rem .7rem;font-size:.8rem;
  border:1px solid var(--border);background:var(--card);border-radius:999px;color:var(--fg)}
.pill em{font-style:normal;color:var(--mfg);font-size:.72rem}

/* 圖 */
.fig{margin:1.5rem 0;border:1px solid var(--border);border-radius:.75rem;overflow:hidden;
  background:var(--card)}
.fig img{width:100%;height:auto}
.fig figcaption{padding:.55rem .85rem;font-size:.78rem;color:var(--mfg);
  background:var(--muted);border-top:1px solid var(--border);line-height:1.6}
.figrow{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}
.figrow .fig{margin:0}
@media (max-width:640px){.figrow{grid-template-columns:1fr}}
.fig.hero{margin:1.25rem 0 1.5rem}

/* 步驟 */
.steps{list-style:none;padding:0;margin:1.25rem 0}
.steps>li{display:flex;gap:.9rem;margin:0 0 1rem}
.steps>li.s-fig{display:block;margin:1.25rem 0 1.5rem;padding-left:2.6rem}
@media (max-width:640px){.steps>li.s-fig{padding-left:0}}
.s-n{flex:0 0 1.75rem;width:1.75rem;height:1.75rem;border-radius:999px;
  background:rgba(0,126,70,.1);color:var(--pri);display:flex;align-items:center;
  justify-content:center;font-size:.8rem;font-weight:600;margin-top:.15rem}
.s-c{flex:1;min-width:0}
.s-t{color:var(--fg);font-weight:500;line-height:1.65}
.s-b{font-size:.88rem;color:var(--mfg);margin-top:.15rem}

/* 提示框 */
.co{margin:1.25rem 0;padding:.85rem 1rem;border-radius:.6rem;border:1px solid var(--border);
  border-left-width:4px;background:var(--card)}
.co-t{font-weight:600;margin-bottom:.25rem;color:var(--fg)}
.co-b{font-size:.92rem;color:var(--mfg)}
.co-b p{margin:.4rem 0}
.co-b p:first-child{margin-top:0}
.co-b p:last-child{margin-bottom:0}
.co-key{border-left-color:var(--pri);background:rgba(0,126,70,.05)}
.co-warn{border-left-color:var(--dest);background:rgba(204,39,46,.04)}
.co-note{border-left-color:var(--border);background:var(--muted)}
.co-tip{border-left-color:var(--warn);background:rgba(180,83,9,.05)}

/* 卡片 */
.cardgrid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));
  margin:1.25rem 0}
.card{border:1px solid var(--border);background:var(--card);border-radius:.75rem;padding:.9rem 1rem}
.c-t{font-weight:600;margin-bottom:.3rem;font-size:.95rem}
.c-b{font-size:.86rem;color:var(--mfg)}
.c-b p{margin:.35rem 0}
.c-b ul{padding-left:1.1rem;margin:.35rem 0}
.c-f{margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--border);
  font-size:.75rem;color:var(--mfg)}

/* 連結卡 */
.lcgrid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));
  margin:1.25rem 0}
.lc{display:block;border:1px solid var(--border);background:var(--card);border-radius:.75rem;
  overflow:hidden;transition:border-color .15s,box-shadow .15s}
.lc:hover{border-color:rgba(0,126,70,.35);box-shadow:0 2px 10px rgba(41,31,24,.07);
  text-decoration:none}
.lc-i{aspect-ratio:16/9;background:var(--muted);overflow:hidden}
.lc-i img{width:100%;height:100%;object-fit:cover}
.lc-t{padding:.7rem .85rem}
.lc-h{font-weight:600;color:var(--fg);font-size:.95rem}
.lc-d{font-size:.8rem;color:var(--mfg);margin-top:.15rem;line-height:1.6}

/* 目錄 */
.toc{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:1.25rem 0 2rem;
  padding:.75rem .9rem;border:1px solid var(--border);border-radius:.6rem;background:var(--card)}
.toc span{font-size:.75rem;color:var(--mfg);margin-right:.2rem}
.toc a{font-size:.82rem;padding:.15rem .55rem;border-radius:999px;background:var(--muted);
  color:var(--fg)}
.toc a:hover{background:rgba(0,126,70,.12);color:var(--pri);text-decoration:none}

/* 表格 */
.tw{overflow-x:auto;margin:1.1rem 0;border:1px solid var(--border);border-radius:.6rem;
  background:var(--card)}
.tw table{border-collapse:collapse;width:100%;font-size:.85rem}
.tw th{background:var(--muted);text-align:left;padding:.5rem .7rem;font-weight:600;
  white-space:nowrap;border-bottom:1px solid var(--border)}
.tw td{padding:.5rem .7rem;border-top:1px solid var(--border);vertical-align:top;
  color:var(--mfg)}
.tw tr:first-child td{border-top:0}
.tw td b,.tw td strong{color:var(--fg)}
.tw code{white-space:nowrap}

/* 摺疊 */
details{border:1px solid var(--border);border-radius:.6rem;background:var(--card);margin:1.25rem 0}
summary{padding:.7rem 1rem;cursor:pointer;font-weight:600;font-size:.9rem;list-style:none}
summary::-webkit-details-marker{display:none}
summary::before{content:"▸";margin-right:.5rem;color:var(--mfg);font-size:.8rem}
details[open] summary::before{content:"▾"}
details[open] summary{border-bottom:1px solid var(--border)}
.dbody{padding:.25rem 1rem 1rem}
.dbody>h3:first-child,.dbody>h4:first-child{margin-top:.75rem}

/* 格網 */
pre{background:var(--muted);border:1px solid var(--border);border-radius:.5rem;
  padding:.8rem .9rem;overflow-x:auto;line-height:1.55;margin:1rem 0}
pre code{background:none;padding:0;font-size:.8rem;color:var(--fg);white-space:pre}
.g{display:inline-block;width:1.7ch;margin:0 -.35ch;height:1.25em;line-height:1.25em;
  text-align:center;vertical-align:-.25em;border-radius:2px;font-weight:800;font-size:.88em}
.g-wall{background:var(--fg);color:transparent}
.g-roof{background:rgba(41,31,24,.55);color:transparent}
.g-mix{background:rgba(41,31,24,.38);color:transparent}
.g-floor{background:rgba(41,31,24,.12);color:transparent;
  box-shadow:inset 0 0 0 1px rgba(41,31,24,.28)}
.g-empty{background:transparent;color:transparent;box-shadow:inset 0 0 0 1px rgba(41,31,24,.14)}
.g-door{color:#fff;background:#c2410c}
.g-win{color:#fff;background:#1d4ed8}
.g-glass{color:#fff;background:#0e7490}
.g-pillar{color:#fff;background:#7c2d12}
.g-stair{color:#fff;background:#7e22ce}
.g-balcony{color:#fff;background:#4d7c0f}
.g-chim{color:#fff;background:#9f1239}
.g-awn{color:#fff;background:#b45309}
.g-mer{color:#fff;background:#0f766e}
.glegend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:1rem 0 .5rem;font-size:.75rem;
  color:var(--mfg)}
.glegend span{display:inline-flex;align-items:center;gap:.35rem}
.glegend i{width:1.1rem;height:1.1rem;border-radius:3px;font-style:normal;font-size:.68rem;
  font-weight:700;display:inline-flex;align-items:center;justify-content:center}

/* 截圖庫 */
.gal{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));margin:1.25rem 0}
.gal a{display:block;border:1px solid var(--border);border-radius:.5rem;overflow:hidden;
  background:var(--card)}
.gal a:hover{border-color:rgba(0,126,70,.4)}
.gal img{width:100%;aspect-ratio:16/9;object-fit:cover}
.gal span{display:block;padding:.3rem .5rem;font-size:.72rem;color:var(--mfg)}

/* 接著看 */
.nextread{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--border)}
.nextread h2{font-size:1.05rem;margin:0 0 .5rem}
.nextread ul{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;list-style:none;padding:0;
  font-size:.9rem}

/* 逐字稿 */
.tx .tw td:first-child{white-space:nowrap;font-family:ui-monospace,monospace;font-size:.8rem}

/* 9 個分頁在 768–940px 的緊縮處理 */
@media (min-width:768px) and (max-width:940px){
  header nav>a{padding-left:.45rem;padding-right:.45rem;font-size:.8125rem}
  header nav>div{margin-left:.25rem;padding-left:.25rem}
  header nav>div button>span{display:none}
}

/* 建築設計圖區段導覽（併入站台時的第二層） */
.bpsub{position:sticky;top:3.5rem;z-index:40;background:var(--muted);
  border-bottom:1px solid var(--border)}
.bpsub-in{max-width:1800px;margin:0 auto;padding:0 1rem;display:flex;align-items:center;
  gap:.15rem;height:2.75rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.bpsub-in::-webkit-scrollbar{display:none}
.bpsub-t{font-size:.8rem;font-weight:600;color:var(--fg);margin-right:.6rem;
  padding-right:.6rem;border-right:1px solid var(--border);white-space:nowrap}
.bpsub a{padding:.3rem .65rem;border-radius:.4rem;font-size:.83rem;color:var(--mfg);
  white-space:nowrap}
.bpsub a:hover{background:rgba(253,252,248,.75);color:var(--link);text-decoration:none}
.bpsub a.on{background:var(--card);color:var(--pri);font-weight:600;
  box-shadow:0 1px 2px rgba(41,31,24,.08)}
@media (max-width:520px){.bpsub-t{display:none}}

/* 頁尾 */
.ft{border-top:1px solid var(--border);padding:1.5rem 1rem 2.5rem;text-align:center;
  font-size:.8rem;color:var(--mfg)}
.ft p{margin:.35rem 0}
.ft .dis{max-width:42rem;margin:.75rem auto 0;font-size:.7rem;opacity:.8}

/* 技巧圖卡 */
.techgrid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));
  margin:1.25rem 0}
.tech{border:1px solid var(--border);background:var(--card);border-radius:.75rem;overflow:hidden}
.tech>img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--muted)}
.tech-b{padding:.75rem .9rem}
.tech-h{font-weight:600;font-size:.95rem;display:flex;gap:.5rem;align-items:baseline}
.tech-h em{font-style:normal;font-size:.72rem;color:var(--mfg);font-family:ui-monospace,monospace}
.tech-d{font-size:.85rem;color:var(--mfg);margin-top:.3rem}
.tech-n{font-size:.8rem;color:var(--mfg);margin-top:.45rem;padding-top:.4rem;
  border-top:1px solid var(--border)}
/* 兩欄小卡 */
.g2{display:grid;gap:.85rem;grid-template-columns:1fr 1fr;margin:1.25rem 0}
@media (max-width:640px){.g2{grid-template-columns:1fr}}
.zone{margin:2.5rem 0 0}
.zone h3{margin-top:0}

/* 地形圖表 */
.tmap{border:1px solid var(--border);border-radius:.75rem;background:var(--card);
  padding:1rem 1rem .85rem;margin:1.25rem 0}
.tlv{display:flex;gap:.75rem;align-items:stretch;margin:0}
.tz{flex:0 0 4.5rem;font-size:.75rem;color:var(--mfg);padding-top:.55rem;
  border-right:1px solid var(--border);margin-right:.25rem}
.tz b{display:block;color:var(--fg);font-size:.85rem;font-family:ui-monospace,monospace}
.trow{flex:1;display:flex;gap:.4rem;min-width:0;flex-wrap:wrap}
.tcell{flex:1 1 6rem;border:1px solid var(--border);border-radius:.4rem;padding:.5rem .45rem;
  text-align:center;font-size:.75rem;color:var(--mfg);background:var(--muted)}
.tcell b{display:block;font-size:.8rem;color:var(--fg);font-weight:600;margin-bottom:.1rem}
.t-house{background:rgba(180,83,9,.10)}
.t-plaza{background:rgba(0,126,70,.08)}
.t-wall{background:rgba(41,31,24,.13)}
.t-road{background:rgba(29,78,216,.07)}
.t-gate{background:rgba(41,31,24,.06);flex:0 1 5rem}
.tstep{display:flex;gap:.75rem;align-items:center;font-size:.78rem;color:var(--mfg);
  margin:.45rem 0}
.tstep .tz{border:0;padding:0;margin:0;text-align:right}
.tstep i{font-style:normal;color:var(--pri);font-weight:700;margin-right:.35rem}
.tnote{font-size:.75rem;color:var(--mfg);margin:.7rem 0 0;padding-top:.6rem;
  border-top:1px solid var(--border)}
