/* TradingDNA About ·「人事檔案」（2026-09-21 落地 ②；原型 ① _drafts/ABOUT_V2_PROTO，R1–R3 韋恩拍板）
   色票／字族與 landing-casefile.css、casefile-pages.css 同名同值（--ink／--bone／--ash／--v2gold…）。
   舊 about.html 的 613 行內嵌 <style> 已整段移除，本檔單獨負責這一頁。
   動態語言「深夜的暗房」：CSS 預設＝完成態；只有 html.af-motion（<head> 守門＋about-casefile.js）才先收起來再播。
   全頁唯一招牌效果＝年份索引（.af-index／.af-mbar）。所有時長在 :root。 */
:root{
  --ink:#0a0b0d;--bone:#e9e3d5;--ash:#a6a296;--v2gold:#c9a24a;--v2gold2:#e8c874;
  --v2line:rgba(233,227,213,.18);--v2gut:24px;--v2col:600px;
  --v2serif:'TDNA Punct','Noto Serif TC','PMingLiU',serif;--v2sans:'TDNA Punct Sans','Noto Sans TC',sans-serif;--v2mono:'IBM Plex Mono',monospace;
  /* 本頁自己的 */
  --paper:#15161a;               /* 比底亮一階：照片位的空相紙 */
  --print:#d8d2c3;               /* 證物相紙白邊 */
  --read:#d3cec2;                /* 內文字色（暖，不走舊藍灰） */
  --col:34em;                    /* 閱讀欄寬（17px × 34 ≈ 578px） */
  --wide:680px;                  /* 橫幅證物在桌機略寬於閱讀欄（落地 760→680：en 第一章要守住兩個視窗高，analytics-scroll 的 section_view 門檻是露出 50%） */
  --lit-ms:800ms;                /* 年份亮起：空心→實心金 */
  --roll-ms:700ms;               /* 年份／分鐘翻格 */
  /* R2「暗房」動態語言：只用 opacity／≤8px 位移／filter；慢、ease-out、只播一次 */
  --rv-ms:1000ms;                /* 一般浮現 */
  --dev-ms:1300ms;               /* 證物顯影 */
  --seg-ms:1100ms;               /* 序幕逐段浮現 */
  --xfade-ms:1600ms;             /* 封面輪播交疊 */
  --ease:cubic-bezier(.22,.61,.36,1);
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  color-scheme:dark
}
*{box-sizing:border-box}
html{background:var(--ink);scroll-padding-top:96px}
body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--v2serif);font-size:17px;line-height:1.9;overflow-x:clip;-webkit-text-size-adjust:100%}
h1,h2,h3,p,figure,blockquote,dl,dd,ol{margin:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block;height:auto}
em{font-style:italic;color:var(--bone)}
::selection{background:var(--v2gold);color:var(--ink)}
:focus-visible{outline:2px solid var(--v2gold2);outline-offset:4px}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}

/* ── 頁首：◆ TRADINGDNA ＋ 漢堡 ─────────────────────────────── */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:60px;display:flex;align-items:center;gap:20px;padding:0 var(--v2gut);background:var(--ink)}
.header-logo{margin-right:auto;display:flex;align-items:center;gap:8px;font:500 11px/1 var(--v2mono);letter-spacing:.14em;color:var(--v2gold2)}
.header-logo .logo-icon{width:22px;height:22px;flex:none}
@media(max-width:360px){.header-logo .logo-icon{width:18px;height:18px}}
.header-logo-text span{color:inherit}
.header-nav{display:none}
.header-nav .af-textcta{font:400 12px/1 var(--v2mono);letter-spacing:.08em;color:var(--v2gold2);border-bottom:1px solid rgba(232,200,116,.5);padding-bottom:4px}
.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:36px;height:40px;padding:8px 7px}
.hamburger span{display:block;height:1px;width:22px;background:var(--v2gold)}
.mobile-menu{display:none;position:fixed;inset:60px 0 0;z-index:49;overflow:auto;padding:28px var(--v2gut) 80px;background:var(--ink);flex-direction:column}
.mobile-menu.open{display:flex}
.mobile-menu a{font:400 18px/1.6 var(--v2serif);padding:12px 0;border-bottom:1px solid var(--v2line);color:var(--bone)}
.mobile-menu a[href="/about"]{color:var(--v2gold2)}
.mobile-menu .af-textcta{margin-top:18px;border:0;font:400 13px/1.6 var(--v2mono);letter-spacing:.08em;color:var(--v2gold2);text-decoration:underline;text-underline-offset:6px}
@media (min-width:900px){
  .header-nav{display:flex;align-items:center}
  .header-nav a:not(.af-textcta){display:none}
}

/* ── 通用：閱讀欄、眉標、髮線 ─────────────────────────────── */
.af-file>section{position:relative;padding:0 var(--v2gut)}
.container-narrow,.container{max-width:var(--col);margin:0 auto}
.af-eyebrow{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;margin-bottom:18px;font:400 11px/1.7 var(--v2mono);letter-spacing:.2em;text-transform:uppercase}
.af-eyebrow .story-label{color:var(--v2gold)}
.af-eyebrow .story-label-en{color:var(--ash);letter-spacing:.12em}
.af-eyebrow .story-label-en::before{content:'·';margin-right:10px;color:var(--ash)}
.af-chapter h2,.af-evidence h2{font:900 clamp(25px,6.6vw,36px)/1.42 var(--v2serif);letter-spacing:.01em;text-wrap:balance;color:var(--bone)}
.af-rule{border:0;height:1px;background:var(--v2line);margin:26px 0 30px}
.story-block>p{color:var(--read);margin:0 0 1.15em;text-wrap:pretty}
.story-block>p:last-child{margin-bottom:0}

/* ── 00 序幕：卷宗打開前的一段錄音 ───────────────────────────── */
.af-prologue{min-height:min(100svh,1000px);display:flex;align-items:center}
.af-prologue .container-narrow{width:100%;padding:90px 0 60px}
.prologue-time{font:500 13px/1 var(--v2mono);letter-spacing:.24em;color:var(--v2gold);display:flex;align-items:center;gap:14px;margin-bottom:40px}
.prologue-time::after{content:'';flex:0 0 40px;height:1px;background:var(--v2gold);opacity:.6}
.prologue-quote{font:400 clamp(19px,5.1vw,24px)/2 var(--v2serif);color:var(--bone);text-wrap:pretty}
.prologue-lead{margin-top:44px;font:400 15px/1.9 var(--v2serif);color:var(--ash)}

/* ── 01 封面＝卷宗首頁 ─────────────────────────────────────── */
.af-cover{padding-top:40px!important;padding-bottom:40px!important}
.af-cover-grid{max-width:var(--col);margin:0 auto;display:grid;gap:34px}
.af-withheld{width:62%;max-width:260px}
.af-withheld-frame{position:relative;aspect-ratio:3/4;background:var(--paper);display:flex;align-items:center;justify-content:center;isolation:isolate}
.af-withheld-frame::before{content:'';position:absolute;inset:0;background:var(--grain);opacity:.07;z-index:-1}
.af-corner{position:absolute;width:14px;height:14px;border:0 solid rgba(233,227,213,.55)}
.af-corner.tl{top:-6px;left:-6px;border-top-width:1px;border-left-width:1px}
.af-corner.tr{top:-6px;right:-6px;border-top-width:1px;border-right-width:1px}
.af-corner.bl{bottom:-6px;left:-6px;border-bottom-width:1px;border-left-width:1px}
.af-corner.br{bottom:-6px;right:-6px;border-bottom-width:1px;border-right-width:1px}
.af-stamp{transform:rotate(-7deg);display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 14px 9px;border:1px solid rgba(201,162,74,.62);outline:1px solid rgba(201,162,74,.28);outline-offset:3px;color:rgba(201,162,74,.86)}
.af-stamp-main{font:500 12px/1 var(--v2mono);letter-spacing:.2em}
.af-stamp-sub{font:400 11px/1 var(--v2serif);letter-spacing:.14em;color:rgba(201,162,74,.72)}
.af-fields{display:block}
.af-field,.company-info-item{display:grid;grid-template-columns:8.6em 1fr;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--v2line)}
.af-field:last-child,.company-info-item:last-child{border-bottom:1px solid var(--v2line)}
.af-field dt,.company-info-item .label{font:400 10.5px/1.6 var(--v2mono);letter-spacing:.18em;color:var(--ash)}
.af-field dd,.company-info-item .value{font:600 16px/1.6 var(--v2serif);color:var(--bone)}
.af-cover .container-narrow{margin:40px 0 0;max-width:none}
.af-cover .overline{font:400 11px/1.6 var(--v2mono);letter-spacing:.2em;color:var(--v2gold);margin-bottom:16px}
.af-cover h1{font:900 clamp(28px,7.6vw,44px)/1.36 var(--v2serif);letter-spacing:.01em;text-wrap:balance}
.af-cover .subtitle{margin-top:20px;font:400 17px/1.9 var(--v2serif);color:var(--read)}
.af-cover .subtitle-en{margin-top:10px;font:400 11px/1.8 var(--v2mono);letter-spacing:.04em;color:var(--ash)}

/* ── 02–07 章節 ────────────────────────────────────────────── */
.af-chapter{padding-top:96px!important}

/* 引言：無框，左側一條金髮線 */
.af-quote{margin:2.2em 0;padding-left:20px;border-left:1px solid var(--v2gold)}
.af-quote p{font:400 19px/1.95 var(--v2serif);color:var(--bone)}
.af-quote .sig{margin-top:12px;font:400 11px/1.6 var(--v2mono);letter-spacing:.12em;color:var(--ash)}
/* 第三章的心臟：不動，只是大 */
.af-quote.af-heart{display:flex;flex-direction:column;justify-content:center;border-left:0;padding:0;margin:120px 0}
.af-heart p:first-child{position:relative;padding-left:22px;font:900 clamp(25px,7vw,40px)/1.62 var(--v2serif);letter-spacing:.01em;text-wrap:pretty}
.af-heart p:first-child::before{content:'';position:absolute;left:0;top:.3em;bottom:.3em;width:1px;background:var(--v2gold)}
.af-heart .sig{padding-left:22px;margin-top:22px}

/* 100 → 1,000：R2 拿掉往上的曲線，只留數字 */
.spark-wrap{margin:1.6em 0}
.af-spark{font:500 14px/1 var(--v2mono);letter-spacing:.16em;color:var(--v2gold)}

/* 證物：貼在內頁上的相片 */
.af-exhibit{margin:2.4em 0}
.af-exhibit-tag{display:flex;align-items:center;gap:10px;margin-bottom:12px;font:500 10.5px/1 var(--v2mono);letter-spacing:.22em;color:var(--v2gold)}
.af-exhibit-tag::after{content:'';width:28px;height:1px;background:var(--v2gold);opacity:.6}
.af-print{display:block;padding:6px;background:var(--print);transform:rotate(var(--af-rot,0deg));transform-origin:50% 40%}
.af-print img{width:100%;filter:brightness(1) contrast(1.02) saturate(.86) sepia(0)}
.af-exhibit figcaption{margin-top:14px;font:400 13px/1.8 var(--v2serif);color:var(--ash)}
.af-exhibit.phone{width:66%}
.af-exhibit.phone .af-print{padding:5px}
.af-exhibit.paper .af-print img{filter:brightness(.9) contrast(1) saturate(1) sepia(.08)}

/* 第五章 CLOCK × ID：夾在檔案裡的索引卡（無框、無底） */
.af-card{margin:2.4em 0;padding:26px 0;border-top:1px solid var(--v2line);border-bottom:1px solid var(--v2line);text-align:center}
.af-card .tw-text{font:500 13.5px/2 var(--v2mono);letter-spacing:.04em;color:var(--bone)}

/* ── 08 證據 ───────────────────────────────────────────────── */
.af-evidence{padding-top:96px!important}
.af-evidence .af-eyebrow .story-label{color:var(--v2gold)}
.af-reflabel{margin:2.2em 0 6px;font:400 10.5px/1.6 var(--v2mono);letter-spacing:.2em;color:var(--ash)}
.evidence-citations{list-style:none;padding:0;counter-reset:ref}
.evidence-citations li{counter-increment:ref;position:relative;padding:12px 0 12px 2.4em;border-top:1px solid var(--v2line);font:400 13.5px/1.75 var(--v2serif);color:var(--ash)}
.evidence-citations li:last-child{border-bottom:1px solid var(--v2line)}
.evidence-citations li::before{content:counter(ref,decimal-leading-zero);position:absolute;left:0;top:12px;font:400 10.5px/2.2 var(--v2mono);color:var(--v2gold)}
.evidence-citations em{color:var(--read)}

/* ── 09 公司資料（封面欄位的另一半） ───────────────────────── */
.af-company{padding-top:96px!important}
.company-card h3{display:flex;flex-wrap:wrap;gap:0 10px;align-items:baseline;font:600 20px/1.5 var(--v2serif)}
.company-card h3 span+span{font:400 11px/1.6 var(--v2mono);letter-spacing:.1em;color:var(--ash)}
.company-card>p{margin:12px 0 22px;font:400 15px/1.85 var(--v2serif);color:var(--read)}
.company-info-grid{display:block}
.company-info-item .value a{border-bottom:1px solid rgba(232,200,116,.4)}

/* ── 10 結尾 CTA：全頁唯一的實心金鈕 ──────────────────────── */
.af-final{padding-top:128px!important;padding-bottom:120px!important}
.cta-frame{text-align:left}
.af-final h2{font:900 clamp(27px,7vw,40px)/1.42 var(--v2serif);text-wrap:balance}
.af-final p[data-i18n="finalCta.body"]{margin-top:20px;color:var(--read)}
.af-final .subtitle-en{margin-top:10px;font:400 11px/1.8 var(--v2mono);letter-spacing:.04em;color:var(--ash)}
.subtitle-en:empty{display:none}   /* en 的英文副標刻意留空 */
.cta-ignition{display:block;margin-top:40px}
.af-solid{display:flex;align-items:center;justify-content:center;width:100%;max-width:360px;min-height:56px;padding:0 28px;background:var(--v2gold);color:var(--ink);font:600 16px/1 var(--v2serif);letter-spacing:.06em}
.af-solid:hover{background:var(--v2gold2)}

/* ── 頁尾：髮線一列 ────────────────────────────────────────── */
.af-footer{padding:30px var(--v2gut) 40px;border-top:1px solid var(--v2line);font:400 11px/1.8 var(--v2mono);color:var(--ash)}
.af-footer .container{max-width:var(--col)}
.footer-grid{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding-bottom:18px;border-bottom:1px solid var(--v2line)}
.footer-logo{display:flex;align-items:center;gap:8px;color:var(--v2gold2);letter-spacing:.14em}
.footer-logo::before{content:'◆';font-size:9px;color:var(--v2gold)}
.footer-company{margin-top:4px}
.footer-brand{margin-right:auto}
.footer-social{display:flex;gap:14px}
.footer-social svg{width:16px;height:16px;display:block;color:var(--ash)}
.footer-bottom{padding-top:16px;display:flex;flex-direction:column;gap:8px}
.footer-legal-links{display:flex;gap:18px}
.footer-legal-links a{color:var(--bone)}
.footer-disclaimer{max-width:46em}

/* ── ★ 年份索引（全頁唯一招牌效果） ─────────────────────────
   關 JS：整塊不出現，頁面就是一份靜態卷宗。 */
.af-index,.af-mbar{display:none}
html.af-js .af-mbar{display:block}
.af-mbar{position:fixed;top:60px;left:0;right:0;z-index:40;height:30px;background:var(--ink);opacity:0;transform:translateY(-6px);transition:opacity .8s var(--ease),transform .8s var(--ease);pointer-events:none}
.af-mbar.on{opacity:1;transform:none}
.af-mprog{position:absolute;left:0;top:0;height:2px;width:0;background:var(--v2gold);transition:width .9s cubic-bezier(.3,.7,.2,1)}
.af-mbar::after{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--v2line);z-index:-1}
.af-mlabel{display:flex;align-items:center;gap:9px;height:30px;padding:2px var(--v2gut) 0;font:500 11px/1 var(--v2mono);letter-spacing:.16em;color:var(--bone)}
.af-mlabel .af-cell{width:7px;height:7px;background:var(--v2gold);flex:none}
.af-mlabel .af-cell.pop{animation:af-fill var(--lit-ms) var(--ease) both}
.af-roll{position:relative;display:inline-block;height:14px;overflow:hidden;min-width:3.2em}
.af-roll>span{position:absolute;left:0;top:1px;line-height:13px;color:var(--v2gold2)}
.af-mchap{color:var(--ash)}
.af-roll .in{animation:af-roll-in var(--roll-ms) cubic-bezier(.25,.7,.2,1) both}
.af-roll .out{animation:af-roll-out var(--roll-ms) cubic-bezier(.25,.7,.2,1) both}
@keyframes af-roll-in{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
@keyframes af-roll-out{from{transform:none;opacity:1}to{transform:translateY(-8px);opacity:0}}

@media (min-width:1100px){
  html.af-js .af-mbar{display:none}
  html.af-js .af-index{display:block}
  .af-index{position:fixed;left:44px;top:50%;z-index:30;height:min(420px,58vh);transform:translateY(-50%);width:120px;opacity:0;transition:opacity 1s var(--ease)}
  .af-index.on{opacity:1}
  .af-track,.af-fill{position:absolute;left:3px;top:0;width:1px}
  .af-track{bottom:0;background:var(--v2line)}
  .af-fill{height:0;background:var(--v2gold);transition:height 1.1s cubic-bezier(.3,.7,.2,1)}
  .af-ticks{list-style:none;padding:0;height:100%;display:flex;flex-direction:column;justify-content:space-between}
  .af-tick{position:relative;height:0;display:flex;align-items:center}
  .af-tick-btn{display:flex;align-items:center;gap:14px;padding:10px 0;margin:-10px 0;color:rgba(166,162,150,.62);font:400 11px/1 var(--v2mono);letter-spacing:.16em;transition:color 1s var(--ease)}
  .af-tick-btn:hover{color:var(--bone)}
  .af-index .af-cell{position:relative;width:8px;height:8px;border:1px solid rgba(166,162,150,.55);background:var(--ink);transition:background var(--lit-ms) var(--ease),border-color var(--lit-ms) var(--ease)}
  .af-tick.is-lit .af-tick-btn{color:var(--bone)}
  .af-tick.is-lit .af-cell{background:var(--v2gold);border-color:var(--v2gold)}
  .af-tick.is-current .af-tick-btn{color:var(--v2gold2)}
  .af-tick.is-current .af-cell{background:var(--v2gold2);border-color:var(--v2gold2)}
  .af-tick.pop .af-cell{animation:af-fill var(--lit-ms) var(--ease) both}
  .af-tick.pop .af-year{animation:af-brighten 1000ms var(--ease) both}
}
/* R2 亮起那一下：從空心「填滿」成實心金，最多放大到 1.3 倍，不擴散、不發光 */
@keyframes af-fill{0%{background:var(--ink);border-color:rgba(166,162,150,.55);transform:scale(1)}55%{background:var(--v2gold2);border-color:var(--v2gold2);transform:scale(1.3)}100%{transform:scale(1)}}
@keyframes af-brighten{from{color:rgba(166,162,150,.62)}to{color:var(--v2gold2)}}

/* ── 手機：照片位與欄位並排（像一份真的卷宗首頁），內文 16px ── */
@media (max-width:899px){
  body{font-size:16px}
  .af-cover-grid{grid-template-columns:40% 1fr;gap:20px;align-items:start}
  .af-withheld{width:100%}
  .af-stamp{padding:8px 8px 7px;gap:5px}
  .af-stamp-main{font-size:9.5px;letter-spacing:.14em}
  .af-stamp-sub{font-size:9.5px;letter-spacing:.08em}
  .af-cover-body{display:contents}
  .af-fields{grid-column:2;grid-row:1}
  .af-field{display:block;padding:5px 0 6px}
  .af-field dt{font-size:9.5px;line-height:1.5}
  .af-field dd{font-size:14px;line-height:1.45}
  .af-cover .container-narrow{grid-column:1 / -1;margin-top:10px}
}

/* ── 桌機版面 ─────────────────────────────────────────────── */
@media (min-width:900px){
  .af-cover{min-height:min(100svh,1000px);display:flex;align-items:center;padding-top:110px!important;padding-bottom:80px!important}
  .af-cover-grid{max-width:980px;width:100%;grid-template-columns:300px 1fr;gap:72px;align-items:start}
  .af-withheld{width:100%;max-width:none}
  .af-cover .container-narrow{margin-top:44px}
  .af-exhibit.phone.paper{width:240px;margin-right:-272px}
  .af-exhibit.land{margin-left:calc((var(--col) - var(--wide)) / 2);margin-right:calc((var(--col) - var(--wide)) / 2)}
}
@media (min-width:1280px){
  /* 手機截圖：掛在右側頁邊，不擠閱讀欄 */
  .af-exhibit.phone{float:right;clear:right;width:280px;margin:.4em -312px 1.5em 0}
  .af-exhibit.phone+*,.af-quote{clear:none}
  .story-block::after{content:'';display:block;clear:both}
}

/* ══ R2：暗房動態語言 ═══════════════════════════════════════
   規則：CSS 預設＝完成態。只有 html.af-motion（JS 起來、且沒有 reduced-motion）才先收起來再播。 */

/* 序幕：一個正在走的夜晚 */
.af-prologue{position:relative;flex-direction:column;justify-content:center}
.af-prologue .container-narrow{padding:80px 0 120px}
.af-sentinel{position:absolute;top:40px;left:0;width:1px;height:1px}
.af-clock{display:inline-flex;align-items:baseline}
.af-colon{display:inline-block;margin:0 -.22em}
.af-print img[data-src]{background:var(--print)}
html:not(.af-js) .af-print img[data-src]{display:none}
html.af-js .af-colon{animation:af-blink 2s ease-in-out infinite}
@keyframes af-blink{0%,100%{opacity:1}50%{opacity:.25}}
.af-mm{position:relative;display:inline-block;overflow:hidden;height:1em;line-height:1;vertical-align:baseline}
.af-mm>span{display:inline-block}
.af-mm .out{position:absolute;left:0;top:0;animation:af-roll-out var(--roll-ms) var(--ease) both}
.af-mm .in{animation:af-roll-in var(--roll-ms) var(--ease) both}
.af-clock.af-flash{animation:af-flash 1200ms ease-in-out 1 both}
@keyframes af-flash{0%{color:var(--v2gold)}40%{color:var(--v2gold2);text-shadow:none}100%{color:var(--v2gold)}}
.af-seg{transition:opacity var(--seg-ms) var(--ease)}
html.af-motion .af-seg:not(.is-in){opacity:0}
.af-seg-lead{transition:opacity 1400ms var(--ease),transform 1400ms var(--ease)}
html.af-motion .af-seg-lead:not(.is-in){opacity:0;transform:translateY(6px)}
.af-hint{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;transition:opacity 900ms var(--ease)}
.af-hint.gone{opacity:0}
.af-hint-line{position:relative;width:1px;height:44px;background:rgba(233,227,213,.16);overflow:hidden}
.af-hint-line::after{content:'';position:absolute;left:0;top:0;width:1px;height:14px;background:var(--bone);opacity:.8;transform:translateY(-14px)}
html.af-js .af-hint-line::after{animation:af-flow 2.4s ease-in-out infinite}
@keyframes af-flow{0%{transform:translateY(-14px);opacity:0}25%{opacity:.8}100%{transform:translateY(44px);opacity:0}}
.af-hint-txt{font:400 9.5px/1 var(--v2mono);letter-spacing:.3em;color:var(--ash);padding-left:.3em}
html:not(.af-js) .af-hint{display:none}

/* 第四章：同一段話，同一個時間碼 */
.af-quote p.af-echo{margin:0 0 18px;font:500 13px/1 var(--v2mono);letter-spacing:.24em;color:var(--v2gold)}

/* 封面：四張真實照片慢慢交疊；章斜蓋在上面 */
.af-withheld-frame{overflow:visible}
.af-slides{position:absolute;inset:0;overflow:hidden;background:var(--paper)}
.af-slide{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;filter:saturate(.85) brightness(.85);transition:opacity var(--xfade-ms) ease-in-out}
.af-slide.is-on{opacity:1}
.af-slide:not([src]){display:none}
/* R3：章移出照片中央，改成框內下緣的說明帶 */
.af-withheld-frame{align-items:flex-end}
.af-stamp{position:absolute;left:0;right:0;bottom:0;z-index:2;transform:none;flex-direction:column;align-items:flex-start;gap:5px;
  padding:10px 12px 9px;margin:0;border:0;outline:0;background:rgba(10,11,13,.88);color:var(--v2gold)}
.af-stamp-main{font:500 11px/1 var(--v2mono);letter-spacing:.2em;color:var(--v2gold)}
.af-stamp-sub{font:400 11px/1.2 var(--v2serif);letter-spacing:.12em;color:var(--ash)}

/* 一般浮現（引言、章節卡、對白、索引卡…） */
.af-rv{transition:opacity var(--rv-ms) var(--ease) var(--d,0ms),transform var(--rv-ms) var(--ease) var(--d,0ms)}
html.af-motion .af-rv:not(.is-in){opacity:0;transform:translateY(8px)}

/* 證物：顯影（從相紙白慢慢顯出影像） */
/* 濾鏡四項順序必須與完成態一致，瀏覽器才會補間 */
.af-dev .af-print img{transition:filter var(--dev-ms) cubic-bezier(.33,0,.2,1),opacity 800ms var(--ease)}
html.af-motion .af-dev:not(.is-in) .af-print img{opacity:0;filter:brightness(2.2) contrast(.35) saturate(0) sepia(0)}
/* R3：A／B（本來就亮的照片）改成從暗處顯出；C／D 手機截圖維持從相紙白 */
html.af-motion .af-dev.land:not(.is-in) .af-print img{opacity:0;filter:brightness(.15) contrast(1.02) saturate(0) sepia(0)}
.af-dev .af-exhibit-tag,.af-dev figcaption{transition:opacity 900ms var(--ease) calc(var(--dev-ms) + 300ms)}
html.af-motion .af-dev:not(.is-in) .af-exhibit-tag,html.af-motion .af-dev:not(.is-in) figcaption{opacity:0}
/* 四件證物不一樣：A／B 相紙白邊；C 窄邊；D 不要邊（本身就是白紙） */
.af-exhibit.phone .af-print{padding:3px}
.af-exhibit.paper .af-print{padding:0;background:none}

/* 章節卡：每一章開頭一個換氣的地方 */
.af-chapter{padding-top:0!important;overflow-x:clip}
.af-cardhead{position:relative;min-height:min(58svh,580px);display:flex;flex-direction:column;justify-content:flex-end;padding:96px 0 6px;isolation:isolate}
.af-bigyear{position:absolute;right:-.12em;top:50%;z-index:-1;margin-top:-.62em;font:900 clamp(140px,38vw,360px)/1 var(--v2serif);letter-spacing:-.04em;color:rgba(233,227,213,.055);pointer-events:none;user-select:none;white-space:nowrap}
.af-cardhead .af-rule{margin-bottom:34px}
.af-bigyear.af-rv{transition-duration:1400ms}
/* R3：NOW 三個字母比四位數輕——字距拉開、再大一階，出血到兩側 */
.af-bigyear.is-now{right:auto;left:50%;transform:translateX(-50%);font-size:clamp(190px,56vw,520px);letter-spacing:.06em;margin-top:-.6em}
html.af-motion .af-bigyear.is-now.af-rv:not(.is-in){transform:translate(-50%,8px)}

/* 第三章對白：只靠對齊與留白 */
.af-say{display:flex;flex-direction:column;margin:1.6em 0}
.af-say .af-line{width:78%;margin:0}
.af-say-she{align-items:flex-end}
.af-say-he{align-items:flex-start}
.af-who{font:400 9.5px/1 var(--v2mono);letter-spacing:.24em;color:var(--ash);margin-bottom:8px}
.af-say .af-line{color:var(--bone)}
.af-say-she .af-line{text-align:left}
.af-say:has(.af-breath){margin:2.8em 0}

@media (max-width:899px){
  .af-stamp{padding:8px 9px 7px;gap:4px}
  .af-stamp-main{font-size:9.5px;letter-spacing:.14em}
  .af-stamp-sub{font-size:10px;letter-spacing:.06em}
    .af-cardhead{min-height:min(56svh,560px)}
}

/* ── 四語字族（照 landing-casefile／casefile-pages 的 html[lang] 寫法）──────────
   中文內文襯線；en／ko 的長段內文退 sans（附錄頁殼那次的判斷），標題與引言維持襯線。 */
html[lang="ko"]{--v2serif:'Noto Serif KR','Noto Serif TC',serif;--v2sans:'Noto Sans KR','Noto Sans TC',sans-serif}
html[lang="ko"] body{word-break:keep-all;overflow-wrap:anywhere}
html[lang="zh-Hans"]{--v2serif:'TDNA Punct','Noto Serif SC','Noto Serif TC','Songti SC',serif;--v2sans:'TDNA Punct Sans','Noto Sans SC','Noto Sans TC','PingFang SC',sans-serif}
html[lang="en"] body,html[lang="ko"] body{font-family:var(--v2sans)}
html[lang="en"] .story-block>p,html[lang="ko"] .story-block>p{line-height:1.8}
html[lang="en"] .prologue-lead,html[lang="ko"] .prologue-lead,
html[lang="en"] .af-cover .subtitle,html[lang="ko"] .af-cover .subtitle,
html[lang="en"] .af-exhibit figcaption,html[lang="ko"] .af-exhibit figcaption,
html[lang="en"] .evidence-citations li,html[lang="ko"] .evidence-citations li,
html[lang="en"] .company-card>p,html[lang="ko"] .company-card>p,
html[lang="en"] .af-stamp-sub,html[lang="ko"] .af-stamp-sub{font-family:var(--v2sans)}
html[lang="en"] .af-chapter h2,html[lang="en"] .af-cover h1,html[lang="en"] .af-final h2{letter-spacing:0}

/* 序幕引言：切段之前先不顯示（about-casefile.js 切完加 .af-split；守門 4 秒保險會拿掉 af-motion） */
html.af-motion .prologue-quote:not(.af-split){opacity:0}

/* ── 減少動態：索引直接全亮、無過場 ───────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto!important}
}
