/* 族譜（/lineage/ 五個分頁、/family/<id>/ 上方的樹）。只在這幾頁載入；token 沿用 site.css。
   樹的版面在 site/lineage.mjs 算好（卡片絕對定位＋SVG 連接線），這裡只管樣子。 */
.lin-v .lead{margin-bottom:14px}
.lin-tabs{margin-bottom:18px}
.lin-tabs a[aria-current=true]{color:var(--ink);border-bottom-color:var(--line-2)}
.lt-legend{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0 0 10px;font-size:.82rem;color:var(--ink-2)}
.lt-key{display:inline-flex;align-items:center;gap:8px}
.lt-key i{display:inline-block;width:26px;height:0;border-top:1.5px solid var(--ink-2)}
.lt-key.sim i{border-top-style:dashed}
.lt-key.root i{width:16px;height:12px;border:1px solid var(--gold)}
.lt-key.priv i{width:auto;height:auto;border:1px solid var(--line-2);border-radius:999px;padding:0 7px;font-style:normal;font-size:.64rem;letter-spacing:.14em;line-height:1.5;color:var(--ink-2);background:rgba(0,0,0,.74)}
.lt-rule{max-width:84ch;margin:0 0 34px;font-size:.84rem;line-height:1.75;color:var(--ink-3)}
.lt-h2{font-family:var(--font-display);font-size:clamp(1.35rem,2.1vw,1.8rem);line-height:1.25;margin:0 0 6px}
.lt-h2 small{font-family:var(--font-body);font-size:.8rem;font-weight:400;color:var(--ink-3);margin-left:10px}

/* 一個家族：標題列＋樹 */
.lt-fam{margin:0 0 56px;padding-top:24px;border-top:1px solid var(--line)}
.lt-fam-head{display:grid;gap:4px;margin:0 0 18px;max-width:100%}
.lt-fam-head .kicker{margin:0}
.lt-fam-head h2,.lt-fam-head h3{font-family:var(--font-display);font-size:clamp(1.45rem,2.3vw,2.05rem);line-height:1.2;margin:4px 0 2px}
.lt-fam-head h2 small,.lt-fam-head h3 small{font-family:var(--font-body);font-size:.5em;font-weight:400;color:var(--ink-3);margin-left:8px}
.lt-fam-head h2 a:hover,.lt-fam-head h3 a:hover{color:var(--gold)}
.lt-meta,.lt-stems{margin:0;font-size:.84rem;line-height:1.6;color:var(--ink-2)}
.lt-stems{color:var(--ink-3)}
.lt-go{justify-self:start;margin-top:4px;font-size:.84rem;color:var(--ink-3);border-bottom:1px solid var(--line-2)}
.lt-go:hover{border-color:var(--gold)}
.lt-score{letter-spacing:.04em;text-transform:none;color:var(--ink-3);cursor:help}
.lt-score b{font:500 1em var(--font-mono);color:var(--gold)}
.lt-fam-page{border-top:0;padding-top:0;margin-bottom:40px}
.lt-fam-page .lt-legend{margin-bottom:16px}
.lt-wall-h{margin:0 0 14px;padding-top:24px;border-top:1px solid var(--line)}

/* 樹：外框可以橫捲（手機、很寬的家族），頁面本身不橫捲 */
.lt-wrap{overflow-x:auto;overflow-y:hidden;padding:4px 2px 14px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.lt{position:relative}
.lt-edges{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.lt-edges path{fill:none;stroke:rgba(255,255,255,.3);stroke-width:1.5;transition:stroke .15s}
.lt-edges path.sim,.lt-edges path.ext{stroke-dasharray:4 4}
.lt-edges path.on{stroke:var(--gold);stroke-width:2}
.lt-group{position:absolute;border:1px solid var(--line);background:rgba(255,255,255,.015)}
.lt-group span{position:absolute;left:10px;top:3px;font-size:.68rem;letter-spacing:.06em;color:var(--ink-3)}
.lt .lt-card{position:absolute}
.lt-hint{margin:0 0 6px;font-size:.74rem;color:var(--ink-4)}

/* 卡片：縮圖＋名字＋日期。未公開＝原色、右下角標「未公開」、不是連結（哲宇 2026-10-03：不要灰調，有標示就好） */
.lt-card{display:grid;grid-template-rows:auto auto auto;align-content:start;gap:4px;width:120px;height:176px;color:var(--ink);text-align:left}
.lt-img{position:relative;display:block;width:120px;height:120px;background:var(--bg2);border:1px solid var(--line);overflow:hidden}
.lt-img img{display:block;width:100%;height:100%;object-fit:cover}
.lt-img .badge-priv{right:4px;bottom:4px}
.lt-empty{display:block;width:100%;height:100%;background:repeating-linear-gradient(135deg,#141414 0 6px,#1a1a1c 6px 12px)}
.lt-t{font-size:.78rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.lt-d{font:.68rem var(--font-mono);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.lt-card:hover,a.lt-card:focus-visible{color:var(--ink)}
a.lt-card:hover .lt-t,a.lt-card:focus-visible .lt-t{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
a.lt-card:hover .lt-img,a.lt-card:focus-visible .lt-img{border-color:var(--line-2)}
.lt-card.priv{cursor:default}
.lt-card.priv-open .lt-img{border-color:rgba(160,136,204,.5)}
.lt-card.priv-open .badge-priv{border-color:rgba(160,136,204,.6);color:var(--violet)}
.lt-card.root .lt-img{border-color:var(--gold)}
.lt-card.on .lt-img{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.lt-card.ghost .lt-img,.lt-card.ext .lt-img{border:1px dashed rgba(217,194,103,.6)}
.lt-card.ghost,.lt-card.ext{color:var(--ink-3)}
.lt-card.sm{width:100%;height:auto}
.lt-card.sm .lt-img{width:100%;height:auto;aspect-ratio:1/1}
.lt-card.sm .lt-t{font-size:.74rem}

/* 總覽：家族目錄、其他分頁的入口 */
.lt-sec{margin:0 0 56px;padding-top:24px;border-top:1px solid var(--line)}
.lt-sec-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 24px;margin:0 0 18px}
.lt-sec-head h2{font-family:var(--font-display);font-size:clamp(1.35rem,2.1vw,1.8rem);line-height:1.25}
.lt-sec-head h2 small{font-family:var(--font-body);font-size:.8rem;font-weight:400;color:var(--ink-3);margin-left:10px}
.lt-sec-head a{font-size:.88rem;color:var(--ink-2)}
.lt-index{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 18px;counter-reset:fam}
.lt-index li{counter-increment:fam;min-width:0}
.lt-index a{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:5px 0;color:var(--ink)}
.lt-ix-img{display:block;width:72px;height:54px;background:var(--bg2);overflow:hidden}
.lt-ix-img img{display:block;width:100%;height:100%;object-fit:cover}
.lt-ix-t{display:grid;gap:2px;min-width:0}
.lt-ix-t b{font-weight:500;font-size:.92rem;line-height:1.3;overflow-wrap:anywhere}
.lt-ix-t b::before{content:counter(fam) '.';font:400 .72rem var(--font-mono);color:var(--ink-4);margin-right:7px}
.lt-ix-t em{font-style:normal;font:.72rem var(--font-mono);color:var(--ink-3)}
.lt-index a:hover b{color:var(--gold)}
.lt-mores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.lt-more{display:grid;gap:8px;align-content:start;padding:18px;border:1px solid var(--line);color:var(--ink-2);font-size:.88rem;line-height:1.6}
.lt-more b{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--ink)}
.lt-more b small{font-family:var(--font-mono);font-size:.72rem;font-weight:400;margin-left:8px}
.lt-more em{font-style:normal;font-size:.84rem;color:var(--ink-3)}
.lt-more:hover{border-color:var(--line-2);color:var(--ink-2)}.lt-more:hover em,.lt-more:hover b{color:var(--gold)}
.lt-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;margin:4px 0 2px}
.lt-strip img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--bg2)}

/* 雙生：每對一個小樹，上面一行名字 */
.lt-pairs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:22px 30px}
.lt-pair{display:grid;gap:6px;align-content:start;width:124px}
.lt-pair-k{font-size:.74rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lt-pair-k:hover{color:var(--gold)}
.lt-wrap.compact{padding:0;overflow:visible}

/* 起始模板：模板一張卡，旁邊是從它起步的作品 */
.lt-tpls{list-style:none;margin:0;padding:0;display:grid;gap:0}
.lt-tpl{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px 26px;padding:22px 0;border-top:1px solid var(--line)}
.lt-tpl-n{margin:0 0 10px;font-size:.9rem;color:var(--ink-3)}
.lt-tpl-n b{font:500 1.1rem var(--font-mono);color:var(--gold);margin-right:4px}
.lt-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:18px 14px}
.lt-tiles.sm{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:14px 12px}
.lt-tiles li{min-width:0}

/* 獨立的一天：依年份 */
.lt-year{margin:0 0 40px}
.lt-year h2{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin:0 0 14px;padding-top:18px;border-top:1px solid var(--line)}
.lt-year h2 small{font:.74rem var(--font-mono);color:var(--ink-3);margin-left:8px}

@media (max-width:900px){
  .lt-mores{grid-template-columns:minmax(0,1fr)}
  .lt-strip{grid-template-columns:repeat(6,minmax(0,1fr))}
}
@media (max-width:560px){
  .lin-tabs{gap:4px 16px}
  .lin-tabs a{font-size:.92rem}
  .lin-tabs a small{display:none}
  .lt-rule{margin-bottom:26px}
  .lt-fam{margin-bottom:44px}
  .lt-index{grid-template-columns:minmax(0,1fr)}
  .lt-tpl{grid-template-columns:minmax(0,1fr);gap:12px}
  .lt-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}
  .lt-tiles.sm{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lt-pairs{gap:18px 16px}
  .lt-pair{width:calc(50% - 8px)}
}
@media (prefers-reduced-motion:reduce){.lt-edges path{transition:none}}
