/* =========================================================================
   地緣縱橫・設計 tokens（權威報業：暖象牙 + 深緋紅 + 宋體刊頭）
   移植自 site/index.html。視覺真相來源由 art-director 維護。
   ========================================================================= */
:root{
  --bg:#FDFCF9;            /* 底色：同 header（近白紙感） */
  --paper:#FDFCF9;         /* 卡片紙 */
  --band:#EFECE4;          /* 區段淺帶 */
  --ink:#211E18;           /* 主文字 */
  --ink-2:#4A4640;         /* 次文字 */
  --ink-dim:#6E6A60;       /* 輔助 */
  --ink-faint:#9C968A;     /* 最弱 */
  --line:#DED9CC;          /* 細線 */
  --line-2:#CEC8B8;        /* 較深線 */
  --accent:#9E1B22;        /* 深緋紅（刊頭/標籤/數字/按鈕） */
  --accent-d:#7E141A;
  --mark:#C8791E;          /* 琥珀（畫重點：重點框／螢光標記） */
  --mark-bg:rgba(200,121,30,.08);
  --cite:#2C6E9B;          /* 引用註腳藍 */
  /* 字體：優先採用 Ghost 後台「自訂字體」設定（--gh-font-*），否則用我們的預設 */
  --serif:var(--gh-font-heading,"Noto Serif TC"),Georgia,"Times New Roman",serif;
  --sans:var(--gh-font-body,"Noto Sans TC"),-apple-system,system-ui,sans-serif;
  --mono:"Space Mono",ui-monospace,monospace;
  --maxw:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
@media(max-width:640px){.wrap{padding:0 18px}}
.en{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase}
.kicker{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.rule{height:1px;background:var(--line-2)}

/* ---- utility bar ---- */
.util{border-bottom:1px solid var(--line)}
.util .in{max-width:var(--maxw);margin:0 auto;padding:9px 32px;display:flex;align-items:center;gap:18px;font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--ink-dim)}
.util .sp{margin-left:auto}
.util a{color:var(--ink-2)}.util a:hover{color:var(--accent)}
.util .ic{cursor:pointer}
@media(max-width:680px){.util .hideS{display:none}}

/* ---- masthead ---- */
.mast{text-align:center;padding:22px 32px 18px;border-bottom:2px solid var(--accent)}
.mast .mkick{font-family:var(--sans);font-size:11px;letter-spacing:.2em;color:var(--ink-faint);margin-bottom:13px}
.mast .logo{font-family:var(--serif);font-weight:900;font-size:clamp(34px,4.8vw,54px);letter-spacing:.06em;line-height:1;text-indent:.06em;color:var(--ink)}
.mast .logo b{color:var(--accent)}
.mast .en1{font-family:var(--serif);font-size:clamp(14px,2vw,18px);letter-spacing:.42em;color:var(--ink-2);margin-top:14px;text-indent:.42em}
.mast .tag{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:.08em;color:var(--ink-dim);margin-top:14px}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:60;background:rgba(244,241,234,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-2)}
.nav .in{max-width:var(--maxw);margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:6px;min-height:50px}
.nav .cats{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.nav .cats::-webkit-scrollbar{display:none}
.nav .cat{font-family:var(--sans);font-weight:500;font-size:14px;color:var(--ink-2);padding:14px 13px;white-space:nowrap;border-bottom:2px solid transparent;cursor:pointer}
.nav .cat:hover{color:var(--accent)}
.nav .cat.on{color:var(--ink);border-bottom-color:var(--accent)}
.nav .search{margin-left:auto;display:flex;align-items:center;gap:7px;border:1px solid var(--line-2);border-radius:2px;padding:7px 12px;background:var(--paper)}
.nav .search input{border:none;background:none;outline:none;font-family:var(--sans);font-size:13px;width:150px;color:var(--ink)}
.nav .search input::placeholder{color:var(--ink-faint)}
@media(max-width:760px){.nav .search{display:none}}

/* ---- section heading ---- */
.shead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 24px}
.shead .zh{font-family:var(--serif);font-weight:700;font-size:24px;letter-spacing:.04em;display:block}
.shead .en{display:block;font-size:11px;color:var(--ink-faint);letter-spacing:.18em;text-transform:uppercase;margin-top:5px}
.shead .more{font-family:var(--sans);font-size:13px;color:var(--accent);white-space:nowrap}

/* ---- cover image slot (生成式占位，無 feature_image 時由 main.js 補) ---- */
.imgslot{position:relative;overflow:hidden;background:#cfd3d0}
.imgslot svg{position:absolute;inset:0;width:100%;height:100%}
.imgslot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.imgslot .note{position:absolute;left:10px;bottom:8px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:rgba(255,255,255,.7);z-index:2}

/* ---- lead / cover story ---- */
.lead{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;padding:58px 0 50px;align-items:stretch}
@media(max-width:860px){.lead{grid-template-columns:1fr;gap:20px;padding:20px 0 28px}}
.lead .imgslot img{object-position:center 20%}
@media(max-width:860px){.lead .imgslot{aspect-ratio:16/9}}
.lead .ct .kk{margin-bottom:18px}
.lead .ct .kk::after{content:"";display:block;width:32px;height:2px;background:var(--accent);margin-top:10px}
.lead .ct h2{font-family:var(--serif);font-weight:900;font-size:clamp(34px,4.6vw,52px);line-height:1.1;margin-bottom:16px}
.lead .ct h2 a{color:inherit}
.lead .ct p.stand{font-family:var(--serif);font-size:17px;line-height:1.9;color:var(--ink-2);margin-bottom:18px}
.lead .ct ul{list-style:none;margin-bottom:20px}
.lead .ct li{position:relative;padding-left:18px;font-size:14.5px;color:var(--ink-2);margin:7px 0}
.lead .ct li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;background:var(--accent);transform:rotate(45deg)}
.lead .ct .meta{font-family:var(--sans);font-size:12.5px;color:var(--ink-faint);display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px;margin-bottom:18px}
.btn{display:inline-block;background:var(--accent);color:#fff;font-family:var(--sans);font-weight:500;font-size:14px;padding:11px 22px;border-radius:2px;transition:.15s;border:none;cursor:pointer}
.btn:hover{background:var(--accent-d)}

/* ---- executive brief ---- */
.brief{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:26px 0;display:grid;grid-template-columns:.9fr 1fr 1fr 1fr;gap:28px}
@media(max-width:860px){.brief{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.brief{grid-template-columns:1fr}}
.brief .lbl .en{font-size:11px;font-weight:700;color:var(--ink);letter-spacing:.18em}
.brief .lbl p{font-size:12.5px;color:var(--ink-dim);margin:8px 0 10px;line-height:1.7}
.brief .lbl a{font-family:var(--sans);font-size:13px;color:var(--accent)}
.brief .it .n{font-family:var(--serif);font-weight:700;font-size:30px;color:var(--accent);line-height:1}
.brief .it p{font-family:var(--serif);font-size:15.5px;color:var(--ink);line-height:1.7;margin-top:10px}

/* ---- cards grid ---- */
.sect{padding:66px 0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 34px}
@media(max-width:860px){.grid3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid3{grid-template-columns:1fr}}
.card .imgslot{aspect-ratio:16/10;margin-bottom:13px}
.card .tag{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--accent)}
.card h3{font-family:var(--serif);font-weight:700;font-size:20px;line-height:1.32;margin:8px 0}
.card:hover h3{color:var(--accent)}
.card p{font-size:13.5px;color:var(--ink-dim);line-height:1.7}
.card .meta{font-family:var(--sans);font-size:11.5px;color:var(--ink-faint);margin-top:11px;display:flex;gap:12px;flex-wrap:wrap}

/* ---- filterbar（全部報導：過濾＋瀏覽方式）---- */
.filterbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:0 0 28px;display:flex;flex-direction:column;gap:11px}
.fb-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fb-label{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--ink-faint);text-transform:uppercase;min-width:62px}
.fb-label2{min-width:0;margin-left:8px}
.fb-chips{display:flex;gap:7px;flex-wrap:wrap}
.chip{font-family:var(--sans);font-size:12.5px;color:var(--ink-dim);background:none;border:1px solid var(--line);border-radius:999px;padding:5px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease;line-height:1}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.is-on{background:var(--accent);border-color:var(--accent);color:#fff}
.fb-tools{justify-content:flex-end;gap:14px;flex-wrap:wrap}
.fb-search{flex:1 1 200px;min-width:160px;font-family:var(--sans);font-size:13px;color:var(--ink);background:none;border:1px solid var(--line);border-radius:7px;padding:7px 12px}
.fb-search:focus{outline:none;border-color:var(--accent)}
.fb-search::placeholder{color:var(--ink-faint)}
.fb-sort{font-family:var(--sans);font-size:12px;color:var(--ink-faint);display:inline-flex;align-items:center;gap:8px;letter-spacing:.04em}
.fb-sort select{font-family:var(--sans);font-size:12.5px;color:var(--ink);background:none;border:1px solid var(--line);border-radius:6px;padding:5px 9px;cursor:pointer}
.fb-view{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.vbtn{font-size:14px;line-height:1;color:var(--ink-faint);background:none;border:0;padding:6px 11px;cursor:pointer}
.vbtn+.vbtn{border-left:1px solid var(--line)}
.vbtn.is-on{background:var(--accent);color:#fff}
.arch-empty{color:var(--ink-faint);padding:30px 0;font-size:15px;text-align:center}
/* 列表版式 */
.grid3.as-list{grid-template-columns:1fr;gap:0}
.grid3.as-list .card{display:block;padding:18px 0;border-top:1px solid var(--line)}
.grid3.as-list .card:first-child{border-top:0}
.grid3.as-list .imgslot{display:none}
.grid3.as-list h3{font-size:18px;margin:3px 0}
.grid3.as-list p{font-size:13px;max-width:62ch}
/* 依主題分組 */
.cat-divider{grid-column:1/-1;font-family:var(--serif);font-weight:700;font-size:16px;color:var(--ink);padding:6px 0 2px;border-bottom:1px solid var(--line);margin-top:8px}
.grid3.as-group .cat-divider:first-child{margin-top:0}

/* ---- data brief ---- */
.data{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dwrap{display:grid;grid-template-columns:.72fr 4fr;gap:20px;align-items:start}
@media(max-width:860px){.dwrap{grid-template-columns:1fr}}
.dhead .zh{font-family:var(--serif);font-weight:700;font-size:22px}
.dhead .en{display:block;font-size:11px;color:var(--ink-faint);letter-spacing:.18em;text-transform:uppercase;margin:6px 0 16px}
.dhead .more{font-family:var(--sans);font-size:13px;color:var(--accent)}
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
@media(max-width:860px){.dgrid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.dgrid{grid-template-columns:1fr}}
.dcell{padding:32px 28px;border-right:1px solid var(--line)}
.dcell:last-child{border-right:none}
@media(max-width:860px){.dcell:nth-child(2){border-right:none}}
.dcell .v{font-family:var(--serif);font-weight:900;font-size:42px;color:var(--accent);line-height:1}
.dcell .v small{font-size:18px;font-weight:700}
.dcell .k{font-size:12.5px;color:var(--ink-2);margin:7px 0 3px;font-weight:500}
.dcell .sub{font-family:var(--mono);font-size:10px;color:var(--ink-faint)}
.dcell .chart{margin-top:18px;min-height:120px}

/* ---- explore sections band ---- */
.explore{background:var(--band)}
.exgrid{display:grid;grid-template-columns:.7fr 1fr 1fr 1fr;gap:30px;align-items:start}
@media(max-width:860px){.exgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.exgrid{grid-template-columns:1fr}}
.exgrid .head .zh{font-family:var(--serif);font-weight:700;font-size:20px}
.exgrid .head .en{font-size:11px;color:var(--ink-faint);display:block;margin:6px 0 10px}
.exgrid .head a{font-size:13px;color:var(--accent)}
.excol .ic{width:30px;height:30px;color:var(--accent);margin-bottom:10px}
.excol h4{font-family:var(--serif);font-weight:700;font-size:17px;margin-bottom:7px}
.excol h4 a{color:inherit}
.excol p{font-size:13px;color:var(--ink-dim);line-height:1.7}
.excol .cnt{font-family:var(--mono);font-size:11px;color:var(--ink-faint);margin-top:9px}

/* ---- newsletter ---- */
.news{padding:70px 0}
.news .box{display:grid;grid-template-columns:1.2fr 1fr;gap:26px;align-items:center}
@media(max-width:720px){.news .box{grid-template-columns:1fr}}
.news h3{font-family:var(--serif);font-weight:900;font-size:26px;line-height:1.3}
.news p{font-size:14px;color:var(--ink-dim);margin-top:8px}
.news .form{display:flex;gap:0;border:1px solid var(--line-2)}
.news input{flex:1;border:none;background:var(--paper);padding:13px 15px;font-family:var(--sans);font-size:14px;outline:none;color:var(--ink)}
.news .form .btn{border-radius:0}
.news .msg{font-family:var(--mono);font-size:11px;color:#3f7d52;margin-top:8px;min-height:14px}
.news .msg.err{color:var(--accent)}

/* ---- footer ---- */
footer.site{background:var(--bg);border-top:1px solid var(--line-2);color:var(--ink-2)}
.foot{display:grid;grid-template-columns:1.7fr 1fr 1fr auto;gap:30px;padding:46px 0 30px}
@media(max-width:760px){.foot{grid-template-columns:1fr 1fr}}
.foot .flogo{font-family:var(--serif);font-weight:900;font-size:24px;letter-spacing:.2em;color:var(--ink)}
.foot .fen{font-family:var(--serif);font-size:10.5px;letter-spacing:.34em;color:var(--ink-faint);margin:8px 0 10px}
.foot p.desc{font-size:12.5px;color:var(--ink-dim);line-height:1.8;max-width:30ch}
.foot h5{font-family:var(--sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:12px}
.foot a{display:block;font-size:13px;color:var(--ink-2);padding:5px 0}
.foot a:hover{color:var(--accent)}
.foot .soc{display:flex;gap:14px}
.foot .soc a{padding:0;color:var(--ink)}.foot .soc svg{width:20px;height:20px}
.fbar{border-top:1px solid var(--line);padding:18px 0;font-family:var(--mono);font-size:11px;color:var(--ink-faint);text-align:center}
.fconsole{color:var(--ink-faint);opacity:.45;text-decoration:none;margin-left:14px;padding-left:14px;border-left:1px solid var(--line)}
.fconsole:hover{opacity:1;color:var(--accent)}

/* =========================================================================
   文章頁 / 列表頁（post / tag / author / page）— 延伸自首頁設計系統
   ========================================================================= */
.post{max-width:768px;margin:0 auto;padding:56px 0 40px}
.post .post-head{margin-bottom:30px}
.post .kk{margin-bottom:16px}
.post .kk::after{content:"";display:block;width:32px;height:2px;background:var(--accent);margin-top:10px}
.post h1{font-family:var(--serif);font-weight:900;font-size:clamp(30px,4.4vw,46px);line-height:1.18;letter-spacing:.01em;margin-bottom:16px}
.post .deck{font-family:var(--serif);font-size:18px;line-height:1.9;color:var(--ink-2);margin-bottom:18px}
.post .meta{font-family:var(--sans);font-size:12.5px;color:var(--ink-faint);display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}
.post .post-cover{aspect-ratio:16/9;margin:30px 0}
.post-foot{margin-top:48px;padding-top:24px;border-top:1px solid var(--line-2)}
.post-foot .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.post-foot .tags a{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--accent);border:1px solid var(--line-2);border-radius:2px;padding:5px 11px}
.post-foot .tags a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.post-foot .author{display:flex;gap:14px;align-items:flex-start}
.post-foot .author .pic{width:46px;height:46px;border-radius:50%;object-fit:cover;background:var(--band);flex:0 0 auto}
.post-foot .author .nm{font-family:var(--serif);font-weight:700;font-size:16px}
.post-foot .author .bio{font-size:13px;color:var(--ink-dim);line-height:1.7;margin-top:3px}

/* ---- prose ---- */
.gh-content{font-family:var(--serif);font-size:18px;line-height:1.95;color:var(--ink)}
.gh-content > * + *{margin-top:1.7em}
.gh-content > .article-section{display:flow-root;margin-top:0}
.gh-content > .article-section > * + *{margin-top:1.7em}
.section-heading{display:flex;align-items:flex-start;gap:10px}
.section-heading h2{flex:1;min-width:0}
.section-link{position:relative;flex:0 0 auto;width:36px;height:36px;margin-top:3.05em;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--ink-faint);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s,border-color .15s}
.section-heading:hover .section-link,.section-link:focus-visible,.section-link.is-copied{opacity:1}
.section-link:hover,.section-link:focus-visible{color:var(--accent);background:var(--band);border-color:var(--line)}
.section-link svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.section-link__feedback{position:absolute;right:0;top:42px;width:max-content;max-width:180px;padding:5px 8px;border-radius:3px;background:var(--ink);color:#fff;font-family:var(--sans);font-size:11px;font-weight:600;line-height:1.35;pointer-events:none;opacity:0;transform:translateY(-3px);transition:opacity .15s,transform .15s;z-index:3}
.section-link.is-copied .section-link__feedback{opacity:1;transform:none}
.gh-content p{font-size:18px;line-height:1.95}
.gh-content p + p{margin-top:2.1em}
.gh-content h2{font-family:var(--serif);font-weight:900;font-size:27px;line-height:1.3;margin-top:1.8em}
.gh-content h3{font-family:var(--serif);font-weight:700;font-size:22px;line-height:1.35;margin-top:1.6em}
.gh-content h4{font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:.04em;margin-top:1.5em}
.gh-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.gh-content a:hover{color:var(--accent-d)}
.gh-content ul,.gh-content ol{padding-left:1.4em}
.gh-content li{margin:.5em 0}
.gh-content ul li::marker{color:var(--accent)}
.gh-content blockquote{border-left:3px solid var(--accent);padding:4px 0 4px 22px;margin-left:0;color:var(--ink-2);font-style:italic}
.gh-content img,.gh-content iframe{border-radius:3px}
.gh-content figcaption{font-family:var(--sans);font-size:12.5px;color:var(--ink-faint);text-align:center;margin-top:8px}
.gh-content hr{border:none;border-top:1px solid var(--line-2);margin:2em 0}
.gh-content code{font-family:var(--mono);font-size:.85em;background:var(--band);padding:2px 6px;border-radius:2px}
.gh-content pre{background:var(--ink);color:#F8F6F1;font-family:var(--mono);font-size:14px;line-height:1.7;padding:18px 20px;border-radius:3px;overflow-x:auto}
.gh-content pre code{background:none;padding:0;color:inherit}
.gh-content table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14px}
.gh-content th,.gh-content td{border:1px solid var(--line-2);padding:9px 12px;text-align:left}
.gh-content th{background:var(--band);font-weight:700}

/* ---- Koenig（Ghost 編輯器）卡片：寬版／滿版／圖庫 ---- */
.gh-content{position:relative}
.kg-width-wide{position:relative;width:75vw;min-width:100%;margin-left:calc(50% - 50vw);transform:translateX(calc(50vw - 50%))}
.kg-width-full{position:relative;width:100vw;margin-left:calc(50% - 50vw)}
.kg-width-full img{width:100%}
.kg-image{margin-left:auto;margin-right:auto}
.kg-card figcaption,.kg-image-card figcaption{font-family:var(--sans);font-size:12.5px;color:var(--ink-faint);text-align:center;margin-top:8px}
.kg-gallery-container{display:flex;flex-direction:column;margin:0 auto;max-width:1040px;width:100%}
.kg-gallery-row{display:flex;flex-direction:row;justify-content:center}
.kg-gallery-image{margin:6px}
.kg-gallery-image img{display:block;margin:0;width:100%;height:100%}
.kg-bookmark-card{width:100%;margin:0}
.kg-bookmark-container{display:flex;min-height:148px;color:var(--ink);background:var(--paper);box-shadow:0 0 1px rgba(0,0,0,.08);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.kg-bookmark-content{display:flex;flex-direction:column;flex-grow:1;justify-content:flex-start;padding:20px}
.kg-bookmark-title{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--ink)}
.kg-bookmark-description{font-family:var(--sans);font-size:13px;color:var(--ink-dim);margin-top:8px;max-height:44px;overflow:hidden}
.kg-bookmark-metadata{font-family:var(--sans);font-size:13px;color:var(--ink-2);margin-top:14px;display:flex;align-items:center}
.kg-bookmark-thumbnail{position:relative;min-width:33%;max-height:100%}
.kg-bookmark-thumbnail img{width:100%;height:100%;object-fit:cover}
.kg-embed-card{display:flex;flex-direction:column;align-items:center;margin:0 auto}
.kg-callout-card{display:flex;padding:18px 20px;border-radius:3px;background:var(--band)}
.kg-callout-emoji{padding-right:12px;font-size:18px}
.kg-toggle-card{border:1px solid var(--line-2);border-radius:3px;padding:0}
.kg-toggle-heading{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer}
.kg-product-card .kg-product-card-container{border:1px solid var(--line-2);border-radius:3px;padding:20px}
.kg-header-card{padding:60px 0;text-align:center}
.kg-blockquote-alt{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.6;text-align:center;color:var(--ink-2)}

/* ---- archive (tag / author / page) ---- */
.archive-head{text-align:center;padding:54px 0 10px;border-bottom:1px solid var(--line)}
.archive-head .kicker{display:block;margin-bottom:12px}
.archive-head h1{font-family:var(--serif);font-weight:900;font-size:clamp(30px,4.4vw,46px);line-height:1.15}
.archive-head p{font-size:14.5px;color:var(--ink-dim);max-width:54ch;margin:14px auto 0;line-height:1.8}

/* ---- pagination ---- */
.pager{display:flex;justify-content:center;gap:18px;align-items:center;padding:40px 0 10px;font-family:var(--sans);font-size:14px}
.pager a{color:var(--accent);border:1px solid var(--line-2);border-radius:2px;padding:9px 18px}
.pager a:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.pager .page{font-family:var(--mono);font-size:12px;color:var(--ink-dim)}

/* ---- generic page ---- */
.page-body{max-width:768px;margin:0 auto;padding:48px 0}

/* ---- error ---- */
.errpage{text-align:center;padding:90px 0}
.errpage .code{font-family:var(--serif);font-weight:900;font-size:80px;color:var(--accent);line-height:1}
.errpage h1{font-family:var(--serif);font-size:24px;margin:10px 0 18px}

/* =========================================================================
   文章頁：側邊可點目錄（ToC）＋ 本文重點框 ＋ 大引言（pull-quote）
   ========================================================================= */
.post-layout{max-width:1140px;margin:0 auto;padding:56px 0 40px;display:grid;grid-template-columns:232px minmax(0,1fr);gap:60px;align-items:start}
/* grid 項目可收縮至容器寬（避免長字串/網址把欄位撐爆造成手機水平溢出） */
.post-layout>*{min-width:0}
.post-layout .post{max-width:none;margin:0;padding:0}
/* 長字串/網址強制換行，雙保險不爆版 */
.gh-content,.post-sources,.toc{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:960px){.post-layout{grid-template-columns:1fr;gap:0}}

/* 左欄：sticky 容器（閱讀工具列 ＋ 目錄） */
.rail{position:sticky;top:84px;order:0;display:flex;flex-direction:column;gap:28px}
/* 手機：左欄（含側欄目錄）整個收起，目錄改用內文版（封面圖下方）顯示 */
@media(max-width:960px){.rail{display:none}}

/* 標題下方資訊列：meta（左）＋ 閱讀工具列（右）合併成同一欄 */
.post-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:18px 0 4px}
.post-bar .meta{border:none;padding:0;margin:0}
.read-tools{display:flex;flex-direction:row;align-items:center;gap:7px;flex-wrap:wrap}
.read-tools .rt{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--ink-dim);background:none;border:none;cursor:pointer;border-radius:50%;transition:.15s;padding:0}
.read-tools .rt:hover{color:var(--accent);background:var(--band)}
.read-tools .rt svg{width:19px;height:19px}
.read-tools .rt.fontbtn{font-family:var(--serif);font-weight:700;font-size:18px;line-height:1}
.read-tools .rt.on{color:var(--accent)}
.read-tools .rt.share{color:#fff;background:var(--ink)}
.read-tools .rt.share:hover{background:var(--accent)}
.read-tools .rt.share svg{width:16px;height:16px}
.read-tools .rt[data-share="fb"]{margin-left:10px}

/* 文末延伸閱讀（推薦兩篇） */
.related{margin-top:48px;padding-top:28px;border-top:1px solid var(--line-2)}
.related .rel-label{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.related .rel-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.related .card .imgslot{aspect-ratio:16/10;margin-bottom:12px}
@media(max-width:600px){.related .rel-grid{grid-template-columns:1fr;gap:22px}}

/* 側邊目錄：編號 01/02…、左軌、目前段落橘色游標（參考樣式） */
.toc{padding:0}
/* 內文版目錄：桌機隱藏（用左側 sticky 側欄）；手機顯示於封面圖下方 */
.toc-inline{display:none}
@media(max-width:960px){
  .toc-rail{display:none}
  .toc-inline{display:block;margin:18px 0 6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
}
.toc .toc-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:14px}
.toc-current{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--ink-faint);white-space:nowrap}
.toc-inline summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;padding:8px 2px;font-family:var(--sans);font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;list-style:none}
.toc-inline summary::-webkit-details-marker{display:none}
.toc-inline summary::after{content:"＋";order:2;font-family:var(--sans);font-size:18px;font-weight:400;color:var(--accent)}
.toc-inline[open] summary::after{content:"−"}
.toc-inline .toc-current{margin-left:auto}
.toc-inline nav{padding:0 0 16px}
.toc ol{list-style:none;counter-reset:toc;padding:0;margin:0;border-left:2px solid var(--line)}
.toc li{counter-increment:toc}
.toc a{display:flex;gap:9px;align-items:baseline;font-family:var(--sans);font-size:13.5px;line-height:1.5;color:var(--ink-faint);padding:7px 0 7px 16px;margin-left:-2px;border-left:2px solid transparent;transition:.15s}
.toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink-faint);flex:0 0 auto}
.toc-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.toc a:hover{color:var(--ink-2)}
.toc a.on{color:var(--ink);font-weight:700;border-left-color:var(--accent)}
.toc a.on::before{color:var(--accent)}
.post h2[id]{scroll-margin-top:84px}
@media(max-width:960px){
  .toc-text{-webkit-line-clamp:3}
  .section-link{opacity:1;width:44px;height:44px;margin-top:2.75em}
}

/* 字級調整（A 鈕循環） */
.post.fs1 .gh-content,.post.fs1 .gh-content p{font-size:20px}
.post.fs2 .gh-content,.post.fs2 .gh-content p{font-size:22px;line-height:2}

/* 列印：隱藏頁首／工具列／頁尾 */
@media print{.site-header,.rail,.toc-inline,.section-link,.read-progress,footer.site,.post-foot{display:none!important}.post-layout{grid-template-columns:1fr;padding:0}}

/* 本文重點框 */
.keypoints{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:2px;padding:20px 24px;margin:28px 0}
.keypoints .kp-label{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:13px}
.keypoints ul{list-style:none;display:flex;flex-direction:column;gap:10px;padding:0;margin:0}
.keypoints li{position:relative;padding-left:18px;font-family:var(--serif);font-size:15.5px;line-height:1.7;color:var(--ink)}
.keypoints li::before{content:"";position:absolute;left:0;top:10px;width:7px;height:7px;background:var(--accent);transform:rotate(45deg)}

/* 文章問答：靜態可見、段落對位、可依受眾篩選 */
.qa-overview{margin:30px 0;padding:24px 26px;background:var(--band);border:1px solid var(--line);border-radius:8px}
.qa-eyebrow,.answer-card__label{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--accent);text-transform:uppercase}
.qa-overview h2{font-family:var(--serif);font-size:24px;margin:7px 0 16px;color:var(--ink)}
.qa-overview ol{margin:0;padding-left:22px;display:grid;gap:9px}
.qa-overview li{padding-left:4px;color:var(--accent)}
.qa-overview nav a{font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px}
.qa-overview nav a:hover{color:var(--accent);text-decoration-color:var(--accent)}
.qa-audience{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.qa-audience>span{font-family:var(--sans);font-size:12px;font-weight:700;color:var(--ink-2);margin-right:2px}
.qa-filter,.answer-card__actions button{min-height:40px;border:1px solid var(--line-2);background:var(--paper);color:var(--ink-2);border-radius:999px;padding:8px 13px;font-family:var(--sans);font-size:12px;font-weight:700;cursor:pointer}
.qa-filter:hover,.qa-filter:focus-visible,.answer-card__actions button:hover,.answer-card__actions button:focus-visible{border-color:var(--accent);color:var(--accent);outline:2px solid transparent}
.qa-filter.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.answer-card{margin:28px 0 8px;padding:22px 24px;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:4px;scroll-margin-top:90px}
.answer-card[hidden]{display:none}
.answer-card h3{font-family:var(--serif);font-size:20px;line-height:1.45;margin:7px 0 10px;color:var(--ink)}
.answer-card__answer{font-family:var(--serif);font-size:17px!important;line-height:1.75!important;margin:0;color:var(--ink-2)}
.answer-card__meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;font-family:var(--sans);font-size:11.5px;color:var(--ink-faint)}
.answer-card details{display:inline-block}.answer-card summary{cursor:pointer;font-weight:700;color:var(--cite)}
.qa-evidence{display:inline-flex;gap:7px;margin-left:8px}.qa-evidence a{font-family:var(--mono);font-weight:700;color:var(--cite)}
.answer-card__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.answer-card__actions button{border-radius:4px;min-height:44px}
@media(max-width:600px){.qa-overview{padding:20px 18px}.qa-overview h2{font-size:22px}.qa-audience{align-items:stretch}.qa-filter{min-height:44px}.answer-card{padding:20px 18px;margin:24px 0}.answer-card h3{font-size:19px}.answer-card__actions{display:grid;grid-template-columns:1fr}.answer-card__actions button{width:100%}}

/* 快速問答：先選問題，再在同一個位置讀直接答案 */
.quick-qa{margin:30px 0;padding:24px 26px;background:var(--band);border:1px solid var(--line);border-radius:8px}
.quick-qa-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.qa-kicker{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--accent)}
.quick-qa h2{font-family:var(--serif);font-size:24px;margin:7px 0 8px;color:var(--ink)}.qa-intro{margin:0;color:var(--ink-2);font-size:14px;line-height:1.65}.qa-count{font-family:var(--mono);font-size:11px;color:var(--ink-faint);white-space:nowrap}
.qa-list{display:grid;gap:4px;margin-top:22px}.qa-question{display:grid;grid-template-columns:30px 1fr auto 22px;align-items:center;gap:10px;width:100%;padding:12px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer;font-family:var(--serif);font-size:16px;line-height:1.5}.qa-question:hover,.qa-question:focus-visible{background:rgba(158,27,34,.06);outline:2px solid var(--accent);outline-offset:-2px}.qa-question:disabled{cursor:not-allowed;color:var(--ink-faint);opacity:.62}.qa-question:disabled .qa-chevron{color:var(--line-2)}.qa-question.is-selected{background:var(--ink);color:#fff}.qa-question.is-match:not(.is-selected) .qa-q-text{font-weight:700}.qa-num{color:var(--accent);font-family:var(--mono)}.qa-question.is-selected .qa-num{color:#f1b6b8}.qa-match{font-family:var(--sans);font-size:10px;color:var(--accent);opacity:0}.qa-question.is-match .qa-match{opacity:1}.qa-chevron{font-family:var(--sans);font-size:20px;color:var(--ink-faint)}.qa-question.is-selected .qa-chevron{color:#fff}
.qa-personas{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.qa-personas-label{font-family:var(--sans);font-size:12px;font-weight:700;color:var(--ink-2);margin-right:2px}.qa-persona{min-height:40px;border:1px solid var(--line-2);background:var(--paper);color:var(--ink-2);border-radius:999px;padding:8px 13px;font-family:var(--sans);font-size:12px;font-weight:700;cursor:pointer}.qa-persona:hover,.qa-persona:focus-visible{border-color:var(--accent);color:var(--accent);outline:2px solid transparent}.qa-persona.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.qa-answer{margin-top:20px;padding:20px 22px;background:var(--paper);border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:4px;scroll-margin-top:90px}.qa-answer[data-empty]{background:transparent;border-style:dashed;border-left-width:1px;color:var(--ink-faint)}.qa-answer-empty{font-family:var(--serif);font-size:16px;line-height:1.7}.qa-answer-content[hidden]{display:none}.qa-answer-kicker{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--accent)}.qa-answer-question{font-family:var(--serif);font-size:20px;line-height:1.45;margin:7px 0 10px;color:var(--ink)}.qa-answer-copy{font-family:var(--serif);font-size:17px;line-height:1.75;margin:0;color:var(--ink-2)}.qa-answer-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;font-family:var(--sans);font-size:11.5px;color:var(--ink-faint)}.qa-answer-sources{display:inline-flex;gap:7px}.qa-source-link{font-family:var(--mono);font-weight:700;color:var(--cite)}.qa-answer-link{margin-left:auto;color:var(--accent);font-weight:700;text-decoration:none}.qa-answer-link[hidden]{display:none}
@media(max-width:600px){.quick-qa{padding:20px 18px}.quick-qa-head{display:block}.qa-count{margin-top:8px}.qa-question{grid-template-columns:24px 1fr 18px;font-size:15px}.qa-match{display:none}.qa-personas{align-items:stretch}.qa-persona{min-height:44px}.qa-answer{padding:18px}.qa-answer-link{margin-left:0}}

/* 快速問答之後的正文入口：讓數據卡與分析內文有清楚的閱讀分界 */
.article-start{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin:42px 0 24px;scroll-margin-top:100px}
.article-start__line{height:1px;background:var(--line-2)}
.article-start__title{margin:0;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--accent);white-space:nowrap}
@media(max-width:600px){.article-start{gap:10px;margin:32px 0 20px}.article-start__title{font-size:11px;letter-spacing:.14em}}

/* 決策摘要卡（每篇開頭：對誰／風險／時間／3 件事）—— 給企業主 30 秒判斷 */
.decision-summary{background:var(--paper);border:1px solid var(--line-2);border-top:3px solid var(--accent);border-radius:3px;padding:22px 26px;margin:30px 0}
.decision-summary .ds-label{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.decision-summary .ds-label::before{content:"";width:7px;height:7px;background:var(--accent);transform:rotate(45deg)}
.ds-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden;margin-bottom:18px}
.ds-cell{background:var(--paper);padding:13px 16px}
.ds-cell .t{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}
.ds-cell .d{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--ink);line-height:1.5}
.ds-risk{display:inline-flex;align-items:flex-start;gap:7px;font-family:var(--serif);font-weight:700;font-size:15px;line-height:1.5}
.ds-risk::before{content:"";width:10px;height:10px;border-radius:50%;flex:0 0 auto;margin-top:6px}
.ds-risk.green{color:#2E7D32}.ds-risk.green::before{background:#2E7D32}
.ds-risk.amber{color:#C77700}.ds-risk.amber::before{background:#C77700}
.ds-risk.red{color:var(--accent)}.ds-risk.red::before{background:var(--accent)}
.ds-actions .at{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--ink-2);margin-bottom:11px}
.ds-actions ol{margin:0;padding:0;list-style:none;counter-reset:ds;display:flex;flex-direction:column;gap:9px}
.ds-actions li{position:relative;padding-left:30px;font-family:var(--serif);font-size:15px;line-height:1.6;color:var(--ink);counter-increment:ds}
.ds-actions li::before{content:counter(ds);position:absolute;left:0;top:1px;width:20px;height:20px;background:var(--accent);color:#fff;border-radius:50%;font-family:var(--sans);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
@media(max-width:560px){.ds-grid{grid-template-columns:1fr}}

/* 大引言（pull-quote）：置中、無邊框、頂部緋紅短線 */
.gh-content blockquote.pullquote{border:none;background:none;text-align:center;font-family:var(--serif);font-weight:700;font-style:normal;font-size:clamp(22px,3vw,30px);line-height:1.55;color:var(--accent);max-width:20em;margin:42px auto;padding:0}
.gh-content blockquote.pullquote::before{content:"";display:block;width:40px;height:3px;background:var(--accent);margin:0 auto 22px}

/* =========================================================================
   文章頁：關鍵數據圖表 ＋ 引用註腳 ＋ 來源小字 ＋ 編號標題 ＋ 畫重點
   ========================================================================= */
/* 頂部『關鍵數據』速覽：簡潔數字卡，無圖（圓角容器、分隔線） */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));background:var(--band);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:28px 0 8px}
.stat-cell{padding:22px 24px;border-right:1px solid var(--line);min-width:0}
.stat-cell:last-child{border-right:none}
.stat-cell .v{font-family:var(--serif);font-weight:900;font-size:29px;color:var(--accent);line-height:1.12;overflow-wrap:anywhere}
.stat-cell .v small{font-size:16px;font-weight:700}
.stat-cell .k{font-size:12.5px;color:var(--ink-2);margin-top:9px;line-height:1.55}
@media(max-width:560px){.stat-cell{border-right:none;border-bottom:1px solid var(--line)}.stat-cell:last-child{border-bottom:none}}

/* 內文嵌入式數據圖：數字＋圖，放在對應段落旁（由 [[fig:N]] 觸發） */
.gh-content .fig-inline{display:grid;grid-template-columns:1fr 320px;gap:30px;align-items:center;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:3px;padding:22px 26px;margin:32px 0}
.fig-inline .v{font-family:var(--serif);font-weight:900;font-size:48px;color:var(--accent);line-height:1}
.fig-inline .v small{font-size:23px;font-weight:700}
.fig-inline .k{font-family:var(--sans);font-size:19px;font-weight:700;color:var(--ink);margin:11px 0 6px;line-height:1.45}
.fig-inline .sub{font-family:var(--mono);font-size:12.5px;color:var(--ink-faint)}
.fig-inline .chart{min-height:118px}
.gh-content .fig-inline.fig-inline--text{grid-template-columns:1fr}
@media(max-width:600px){.gh-content .fig-inline{grid-template-columns:1fr;gap:14px}}

/* 編號標題：01／02… 緋紅前綴（只給有錨點的章節 h2） */
.gh-content{counter-reset:sec}
.gh-content h2[id]{counter-increment:sec}
.gh-content h2[id]::before{content:counter(sec,decimal-leading-zero);font-family:var(--mono);font-size:.5em;font-weight:700;color:var(--accent);vertical-align:middle;margin-right:.62em;letter-spacing:.04em}

/* 引用註腳：藍色可點上標，跳到對應來源 */
.gh-content sup.fn{font-family:var(--mono);font-size:.6em;font-weight:700;line-height:0;vertical-align:super;margin-left:1px}
.gh-content sup.fn a{color:var(--cite);text-decoration:none}
.gh-content sup.fn a:hover{color:var(--accent);text-decoration:underline}

/* 畫重點：琥珀重點框（>!）＋ 行內螢光標記（==字==） */
.gh-content blockquote.callout{border-left:4px solid var(--mark);background:var(--mark-bg);font-style:normal;font-weight:700;font-family:var(--serif);font-size:18px;line-height:1.5;color:var(--ink);padding:18px 24px;margin:34px 0;border-radius:0 2px 2px 0}
.gh-content mark{background:linear-gradient(transparent 56%,rgba(200,121,30,.34) 56%);color:inherit;padding:0 1px;border-radius:1px}

/* 資料來源：獨立小字區，保留原始來源編號、被引用時高亮 */
.post-sources{margin-top:2.6em;padding-top:1.5em;border-top:1px solid var(--line-2)}
.post-sources h2{font-family:var(--serif);font-weight:700;font-size:18px;color:var(--ink-dim);letter-spacing:.02em;margin-bottom:14px}
.post-sources ol{font-family:var(--sans);font-size:12.5px;line-height:1.7;color:var(--ink-dim);padding-left:2.4em;display:flex;flex-direction:column;gap:7px;margin:0}
.post-sources li{scroll-margin-top:80px;padding-left:4px}
.post-sources li::marker{font-family:var(--mono);font-size:11px;color:var(--ink-faint)}
.post-sources a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--line-2)}
.post-sources a:hover{color:var(--accent);text-decoration-color:var(--accent)}
.post-sources li:target{background:var(--mark-bg);box-shadow:-6px 0 0 var(--mark-bg),6px 0 0 var(--mark-bg)}

/* =========================================================================
   全站頁首（報導者式：logo 左 ＋ 功能鈕右 ＋ 分類列＋漢堡）
   ========================================================================= */
.site-header{position:sticky;top:0;z-index:80;background:var(--paper)}
.site-header .sh-in{max-width:var(--maxw);margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:18px}
.sh-top{border-bottom:1px solid var(--line)}
.sh-top .sh-in{min-height:64px}
.sh-logo{display:flex;align-items:center;gap:12px}
.sh-logo .mark{width:34px;height:34px;flex:0 0 auto;display:block}
.sh-logo .wm{display:flex;flex-direction:column;line-height:1.05}
.sh-logo .zh{font-family:var(--serif);font-weight:900;font-size:25px;letter-spacing:.05em;color:var(--ink)}
.sh-logo .zh i{font-style:normal;color:var(--accent)}
.sh-logo .en{font-family:var(--sans);font-size:9px;letter-spacing:.2em;color:var(--ink-faint);margin-top:3px}
.sh-tag{font-family:var(--serif);font-size:14px;color:var(--ink-dim);padding-left:18px;border-left:1px solid var(--line-2)}
.sh-actions{margin-left:auto;display:flex;align-items:center;gap:9px}
.pill{font-family:var(--sans);font-size:12.5px;font-weight:700;padding:5px 18px;border-radius:2px;white-space:nowrap;cursor:pointer;transition:.15s}
.pill.ghost{color:var(--accent);border:1.5px solid var(--accent);background:none}
.pill.ghost:hover{background:var(--accent);color:#fff}
.pill.solid{color:#fff;background:var(--accent);border:1.5px solid var(--accent)}
.pill.solid:hover{background:var(--accent-d);border-color:var(--accent-d)}
.sh-actions .ic{width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--ink-2);background:none;border:none;cursor:pointer;border-radius:50%}
.sh-actions .ic:hover{color:var(--accent);background:var(--band)}
.sh-actions .ic svg{width:19px;height:19px}
.sh-nav{border-bottom:1px solid var(--line-2)}
.sh-nav .sh-in{min-height:48px;gap:0}
.sh-menu{width:38px;height:38px;flex:0 0 auto;border:none;background:none;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;margin-right:6px;border-right:1px solid var(--line);padding-right:6px}
.sh-menu svg{width:20px;height:20px}
.sh-cats{display:flex;gap:0;overflow-x:auto;scrollbar-width:none}
.sh-cats::-webkit-scrollbar{display:none}
.sh-cats a{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--ink);padding:13px 16px;white-space:nowrap;border-bottom:2px solid transparent}
.sh-cats a:hover{color:var(--accent)}
.sh-cats a.on{border-bottom-color:var(--accent)}
@media(max-width:900px){.sh-tag{display:none}}
/* 手機：橫向分類列收進漢堡抽屜，避免擠爆／被切掉 */
@media(max-width:760px){.sh-cats{display:none}.sh-menu{margin-right:0;border-right:none;padding-right:0}}
@media(max-width:760px){.sh-logo .en{display:none}.pill.ghost{display:none}}
@media(max-width:640px){.site-header .sh-in{padding:0 18px}}

/* 關於頁：支持我們區塊 */
.support{background:var(--paper);border:1px solid var(--line-2);border-top:3px solid var(--accent);border-radius:3px;padding:30px 32px;margin:40px 0 10px;scroll-margin-top:96px}
.support h2{margin-top:0!important}
.support h2::before{content:none!important}
.support .row{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;align-items:flex-start}
.support .note{font-family:var(--sans);font-size:13px;color:var(--ink-dim);margin-top:14px}

/* =========================================================================
   動效（motion-designer）：捲動揭示 ＋ 資料繪入 ＋ 頁首浮起 ＋ 閱讀進度
   原則：只動 transform/opacity、用 IntersectionObserver、全部包 reduced-motion。
   ========================================================================= */
:root{--ease:cubic-bezier(.2,.7,.2,1)}

/* 捲動揭示：只對「值得停頓」的元素（標題／圖表／引言／卡片），內文段落不逐段跳 */
.has-js .stat-row,.has-js .keypoints,.has-js .fig-inline,
.has-js .card,.has-js .brief .it,.has-js .dcell,.has-js .excol{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.has-js .reveal-in{opacity:1!important;transform:none!important}

/* 頁首浮起：捲動後加淺陰影；往下捲收合、往上捲展開 */
.site-header{transition:transform .32s var(--ease),box-shadow .25s ease}
.site-header.scrolled{box-shadow:0 6px 22px rgba(33,30,24,.08)}
.site-header.hide{transform:translateY(-65px)}
/* 選單列上的字級／分享：捲動收合時才出現 */
.sh-rt{display:none;align-items:center;gap:6px;margin-left:auto;border:none;padding:0;margin-top:0;margin-bottom:0}
.site-header.hide .sh-rt{display:flex}
/* 桌機收合時保留分類列，但不插入重複功能鈕，避免分類項目被擠壓或位移 */
@media(min-width:761px){
  .site-header.hide .sh-rt{display:none}
}
.sh-rt .rt{width:32px;height:32px}
.sh-rt .rt.share svg{width:15px;height:15px}
/* 一般頁面收合列：電子報／贊助／圖示 */
.sh-rt .sh-actions{margin-left:0;gap:8px}
.sh-rt .pill{padding:5px 13px;font-size:12px}
.sh-rt .ic{width:30px;height:30px}
.sh-rt .ic svg{width:17px;height:17px}

/* 閱讀進度條（文章頁頂部細條） */
.read-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:200;transition:width .1s linear}

/* 資料繪入：長條由下長出／橫條由左長出／甜甜圈描入／折線沿路徑畫出／面積填色淡入／方格錯落浮現／泡泡彈入 */
.chart rect.bar{transform:scaleY(0);transform-origin:bottom;transform-box:fill-box;transition:transform .7s var(--ease)}
.chart.in rect.bar{transform:scaleY(1)}
.chart rect.barh{transform:scaleX(0);transform-origin:left;transform-box:fill-box;transition:transform .7s var(--ease)}
.chart.in rect.barh{transform:scaleX(1)}
.chart .arc{transition:stroke-dashoffset 1s ease}
.chart:not(.in) .arc{stroke-dashoffset:var(--circ)}
.chart .ln{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s ease}
.chart.in .ln{stroke-dashoffset:0}
.chart .afill{opacity:0;transition:opacity .7s ease .2s}
.chart.in .afill{opacity:1}
.chart circle.dot{opacity:0;transition:opacity .35s ease .55s}
.chart.in circle.dot{opacity:1}
.chart rect.cell{opacity:0;transform:scale(.45);transform-origin:center;transform-box:fill-box;transition:opacity .4s ease,transform .4s var(--ease)}
.chart.in rect.cell{opacity:1;transform:scale(1)}
.chart circle.bub{opacity:0;transform:scale(.3);transform-origin:center;transform-box:fill-box;transition:opacity .5s ease,transform .5s var(--ease)}
.chart.in circle.bub{opacity:1;transform:scale(1)}

/* 微互動：卡片浮起＋封面微放大、工具列按壓回饋 */
.card{transition:transform .2s var(--ease)}
.card:hover{transform:translateY(-4px)}
.card .imgslot img,.card .imgslot svg{transition:transform .5s var(--ease)}
.card:hover .imgslot img,.card:hover .imgslot svg{transform:scale(1.04)}
.read-tools .rt{transition:color .15s,background .15s,transform .12s var(--ease)}
.read-tools .rt:active{transform:scale(.88)}

@media (prefers-reduced-motion: reduce){
  .has-js .stat-row,.has-js .keypoints,.has-js .fig-inline,
  .has-js .card,.has-js .brief .it,.has-js .dcell,.has-js .excol{opacity:1;transform:none;transition:none}
  .chart rect.bar,.chart rect.barh{transform:none}
  .chart .arc,.chart .ln{transition:none}
  .chart:not(.in) .arc{stroke-dashoffset:inherit}
  .chart .ln{stroke-dasharray:none;stroke-dashoffset:0}
  .chart .afill,.chart circle.dot,.chart rect.cell,.chart circle.bub{opacity:1;transform:none;transition:none}
  .read-progress{transition:none}
  .card:hover{transform:none}
}

/* =========================================================================
   滑出式側選單（drawer）：漢堡點開、從左滑出 ＋ 遮罩
   ========================================================================= */
.drawer-overlay{position:fixed;inset:0;background:rgba(20,18,14,.45);opacity:0;visibility:hidden;transition:opacity .3s ease;z-index:95}
.drawer-overlay.open{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;left:0;bottom:0;width:286px;max-width:84vw;background:var(--paper);z-index:100;transform:translateX(-100%);transition:transform .32s var(--ease,cubic-bezier(.2,.7,.2,1));overflow-y:auto;box-shadow:2px 0 34px rgba(0,0,0,.14);display:flex;flex-direction:column}
.drawer.open{transform:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper)}
.drawer-logo .zh{font-family:var(--serif);font-weight:900;font-size:20px;letter-spacing:.04em;color:var(--ink)}
.drawer-logo .zh i{font-style:normal;color:var(--accent)}
.drawer-close{width:38px;height:38px;border:none;background:none;cursor:pointer;color:var(--ink-2);display:flex;align-items:center;justify-content:center;border-radius:50%}
.drawer-close:hover{color:var(--accent);background:var(--band)}
.drawer-close svg{width:22px;height:22px}
.drawer-nav{display:flex;flex-direction:column;padding:6px 0 30px}
.drawer-nav a{font-family:var(--sans);font-weight:600;font-size:15.5px;letter-spacing:.01em;color:var(--ink);padding:9px 24px;display:flex;align-items:center;gap:12px;transition:.15s}
.drawer-nav a:hover{color:var(--accent);background:var(--band)}
.drawer-nav a.muted{font-weight:400;font-size:13.5px;color:var(--ink-2)}
.drawer-nav a.muted svg{width:16px;height:16px;color:var(--ink-dim);flex:0 0 auto}
.drawer-nav a.small{font-weight:500;font-size:12.5px;color:var(--ink-dim);padding:7px 24px}
.drawer-sec{height:1px;background:var(--line);margin:6px 24px}
body.drawer-open{overflow:hidden}

/* 問答逐題展開：答案緊跟在被點選的問題下方 */
.qa-item{border-bottom:1px solid var(--line)}
.qa-item .qa-question{border-bottom:0}
.qa-item.is-open .qa-question{background:var(--ink);color:#fff}
.qa-item.is-open .qa-num,.qa-item.is-open .qa-chevron{color:#f1b6b8}
.qa-item.is-open .qa-chevron{transform:rotate(45deg)}
.qa-inline-answer{margin:0 10px 14px;padding:16px 18px;background:var(--paper);border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:4px}
.qa-inline-answer[hidden]{display:none}
.qa-inline-copy{font-family:var(--serif);font-size:16px;line-height:1.75;margin:7px 0 0;color:var(--ink-2)}
.qa-inline-answer .qa-answer-foot{margin-top:12px}
@media(max-width:600px){.qa-inline-answer{margin:0 6px 12px;padding:14px}.qa-inline-copy{font-size:15px}}

/* 逐題展開的編輯版面：用層次與留白取代紅色裝飾線 */
.qa-item.is-open .qa-question{background:var(--ink);color:#fff;box-shadow:none}
.qa-item.is-open .qa-num,.qa-item.is-open .qa-chevron{color:#fff}
.qa-item.is-open .qa-question:focus-visible{outline-color:var(--ink-2)}
.qa-inline-answer{margin:0;border:1px solid var(--line-2);border-top:0;border-radius:0 0 6px 6px;background:var(--paper);box-shadow:0 4px 12px rgba(33,30,24,.04)}
.qa-inline-answer .qa-answer-kicker{color:var(--ink-2);letter-spacing:.12em}
.qa-inline-copy{font-size:17px;line-height:1.8;color:var(--ink)}
.qa-inline-answer .qa-answer-foot{padding-top:12px;border-top:1px solid var(--line);color:var(--ink-faint)}
.qa-evidence-label{font-family:var(--sans);font-size:11px;color:var(--ink-faint);margin-right:4px}
.qa-inline-answer .qa-source-link{color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.qa-inline-answer .qa-answer-link{color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
@media(max-width:600px){.qa-inline-copy{font-size:16px}.qa-inline-answer .qa-answer-foot{gap:9px}}

/* 問答閱讀層級：題目與題號先被看見，正文連結使用品牌紅提醒下一步 */
.qa-question .qa-q-text{font-weight:700}
.qa-num{font-weight:700;font-size:18px}
.qa-item.is-open .qa-num{color:#fff}
.qa-inline-copy{margin-top:0;font-weight:500}
.qa-inline-answer .qa-confidence,.qa-inline-answer .qa-evidence-label{color:var(--ink-2);font-weight:600}
.qa-inline-answer .qa-answer-link{color:var(--accent);font-weight:700;text-decoration-color:var(--accent)}
