/* ───────────────────────────────────────────────────────────────
   博雅资料库 · 入口地图（B 案：三线同屏，横向漫游）
   报纸（上·流动）→ 图书馆（下·沉淀）→ 节点视图
   设计来源：claude.ai/design 资料库地图 B 案 + library.css
   基础变量/nav/crumb/wrap 复用主题 style.css
   ─────────────────────────────────────────────────────────────── */

/* ═══ 报纸 · Psychoanalysis News ═══ */
.news{ padding-block:clamp(20px,3vh,34px) clamp(40px,6vh,72px); }
.masthead-news{ border-top:3px solid var(--ink); border-bottom:1px solid var(--ink); padding:12px 0 14px; display:flex; align-items:baseline; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.masthead-news .edition{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.masthead-news .paper-name{ font-family:var(--display); font-style:italic; font-weight:600; font-size:clamp(1.6rem,4vw,2.8rem); letter-spacing:-.01em; color:var(--ink); text-align:center; flex:1 1 auto; }
.masthead-news .paper-name .zh{ font-family:var(--serif); font-style:normal; font-weight:900; font-size:.62em; letter-spacing:.08em; color:var(--ink-2); display:block; margin-top:2px; }
.masthead-news .issue{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); text-align:right; }
.news-strip{ display:grid; grid-template-columns:1fr; gap:0; margin-top:clamp(24px,3vh,38px); }
@media(min-width:760px){ .news-strip{ grid-template-columns:1.6fr 1fr; } }
.news-lead, .news-item{ padding:clamp(18px,2vw,26px) clamp(20px,2vw,30px); border-bottom:1px solid var(--line); display:block; }
@media(min-width:760px){
  .news-lead{ border-right:1px solid var(--line); border-bottom:none; padding-left:0; grid-row:1 / span 2; }
  .news-col{ display:flex; flex-direction:column; }
  .news-col .news-item:last-child{ border-bottom:none; }
}
.news-lead .kk{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
.news-lead h2{ font-weight:900; font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.18; letter-spacing:-.01em; margin:0; }
.news-lead:hover h2{ color:var(--accent); }
.news-lead .dek{ font-size:16px; line-height:1.65; color:var(--ink-2); margin:14px 0 0; max-width:42ch; }
.news-lead .meta{ font-family:var(--sans); font-size:12px; color:var(--ink-faint); letter-spacing:.03em; margin-top:16px; }
.news-item .typ{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; }
.news-item h3{ font-weight:700; font-size:clamp(1.05rem,1.5vw,1.2rem); line-height:1.32; margin:0; transition:color .25s; }
.news-item:hover h3{ color:var(--accent); }
.news-item .src{ font-family:var(--display); font-style:italic; font-size:13px; color:var(--ink-soft); margin-top:8px; }
.news-more{ display:flex; justify-content:flex-end; margin-top:18px; }
.news-more a{ font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--ink); display:inline-flex; gap:.4em; }
.news-more a:hover{ color:var(--accent); }

/* ═══ 分界 ═══ */
.threshold{ display:flex; align-items:center; gap:18px; padding-block:clamp(30px,5vh,56px); }
.threshold .ln{ flex:1; height:1px; background:var(--line); }
.threshold .word{ font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); display:flex; align-items:center; gap:.7em; }
.threshold .word .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* ═══ 图书馆 ═══ */
.lib{ padding-bottom:clamp(50px,8vh,100px); }
.lib-head{ margin-bottom:clamp(28px,4vh,46px); }
.lib-head .mh{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.lib-head .mh-title{ font-family:var(--serif); font-weight:900; font-size:clamp(2.2rem,6vw,4.4rem); letter-spacing:.02em; line-height:.92; }
.lib-head .mh-meta{ font-family:var(--display); font-style:italic; font-size:15px; color:var(--ink-soft); text-align:right; line-height:1.5; }
.lib-head .mh-meta b{ font-style:normal; font-family:var(--sans); font-weight:600; letter-spacing:.12em; text-transform:uppercase; font-size:11px; display:block; color:var(--ink-2); margin-bottom:4px; }
.lib-head .lead{ font-size:clamp(1.05rem,1.7vw,1.4rem); line-height:1.6; color:var(--ink-2); margin:clamp(20px,3vh,32px) 0 0; max-width:36ch; }

/* 节点卡 */
.lnode{ background:var(--paper); border:1px solid var(--line); padding:clamp(18px,2vw,26px); transition:border-color .3s, transform .3s cubic-bezier(.2,.7,.2,1); position:relative; display:block; cursor:pointer; text-align:left; font-family:inherit; width:100%; }
.lnode:hover{ border-color:color-mix(in oklch,var(--accent) 45%,var(--line)); transform:translateY(-3px); }
.lnode .n-top{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:10px; }
.lnode .n-no{ font-family:var(--display); font-style:italic; font-size:14px; color:var(--ink-faint); }
.lnode .n-also{ display:flex; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
.lnode .x{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:.04em; color:var(--ink-soft); border:1px solid var(--line); border-radius:999px; padding:2px 8px; white-space:nowrap; }
.lnode h3{ font-weight:900; font-size:clamp(1.1rem,1.6vw,1.4rem); line-height:1.2; margin:0 0 10px; transition:color .25s; }
.lnode:hover h3{ color:var(--accent); }
.lnode .n-count{ font-family:var(--sans); font-size:12px; color:var(--ink-faint); margin-top:12px; display:flex; align-items:center; gap:.5em; }
.lnode .n-count .arr{ margin-left:auto; transition:transform .25s; }
.lnode:hover .n-count .arr{ transform:translateX(4px); color:var(--accent); }

/* 三条线（B 案：lane + 横向 scroller） */
.lane{ padding-block:clamp(28px,4vh,50px); border-top:1px solid var(--line); }
.lane:first-of-type{ border-top:none; }
.lane .lane-head{ display:flex; align-items:baseline; gap:16px; margin-bottom:clamp(18px,2.5vh,28px); flex-wrap:wrap; }
.lane .ln-no{ font-family:var(--display); font-style:italic; font-size:clamp(20px,2.4vw,32px); color:var(--accent); }
.lane .ln-name{ font-family:var(--serif); font-weight:900; font-size:clamp(1.6rem,3.4vw,2.6rem); line-height:1; letter-spacing:-.005em; }
.lane .ln-q{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); margin-left:auto; align-self:center; }
.lane .ln-q b{ color:var(--ink-2); font-weight:600; }
.scroller{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(230px,280px); gap:14px; overflow-x:auto; padding-bottom:14px; scroll-snap-type:x proximity; scrollbar-width:thin; }
.scroller::-webkit-scrollbar{ height:6px; } .scroller::-webkit-scrollbar-thumb{ background:var(--line); border-radius:3px; }
.scroller > *{ scroll-snap-align:start; }
.lane .hint{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); margin-top:12px; }
.lane .hint .arr{ color:var(--accent); }

/* ═══ 节点详情视图 ═══ */
.lib-detail{ display:none; }
body.detail-open .lib-map{ display:none; }
body.detail-open .lib-detail{ display:block; }
.ld-back{ font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--ink-2); display:inline-flex; align-items:center; gap:.5em; margin-bottom:clamp(20px,3vh,32px); cursor:pointer; background:none; border:none; padding:0; }
.ld-back:hover{ color:var(--accent); }
.ld-head{ margin-bottom:clamp(24px,4vh,40px); }
.ld-head .k{ font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-bottom:12px; }
.ld-head h2{ font-family:var(--serif); font-weight:900; font-size:clamp(1.8rem,4.5vw,3.2rem); line-height:1.05; margin:0 0 10px; }
.ld-head .sub{ font-family:var(--sans); font-size:14px; color:var(--ink-soft); }
.ld-list{ display:flex; flex-direction:column; }
.ld-item{ padding:clamp(20px,3vh,30px) 0; border-top:1px solid var(--line); }
.ld-item .it-top{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:8px; }
.ld-item .typ{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.ld-item .depth{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:.08em; color:var(--ink-faint); border:1px solid var(--line); border-radius:999px; padding:2px 9px; }
.ld-item h3{ font-weight:900; font-size:clamp(1.15rem,1.9vw,1.5rem); line-height:1.3; margin:0 0 12px; }
.ld-item .note{ font-size:15.5px; line-height:1.95; color:var(--read); max-width:66ch; margin:0 0 14px; }
.ld-item .it-links{ display:flex; gap:20px; flex-wrap:wrap; font-family:var(--sans); font-size:13px; font-weight:600; }
.ld-item .it-links a{ color:var(--ink-2); } .ld-item .it-links a:hover{ color:var(--accent); }
.ld-empty{ font-family:var(--sans); font-size:14px; color:var(--ink-soft); padding:40px 0; border-top:1px solid var(--line); }

/* 非会员：批注锁 */
.note-lock{ font-family:var(--sans); font-size:13.5px; color:var(--ink-soft); background:var(--paper); border-left:2px solid var(--accent); padding:12px 16px; margin:0 0 14px; max-width:56ch; }
.note-lock a{ color:var(--accent); font-weight:600; }

/* 交叉条 */
.crossband{ background:var(--ink); color:#fff; padding-block:clamp(40px,7vh,80px); margin-block:clamp(30px,4vh,50px) 0; }
.crossband .cb-k{ font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }
.crossband h2{ font-weight:900; font-size:clamp(1.6rem,3.4vw,2.6rem); line-height:1.2; margin:0; max-width:24ch; color:#fff; }
.crossband h2 .acc{ color:var(--accent); }
.crossband .cb-note{ font-family:var(--sans); font-size:14.5px; line-height:1.8; color:rgba(255,255,255,.75); max-width:44ch; margin:18px 0 0; }

/* ═══ v2：八书架网格 + 详情独占 + 深度分组 ═══ */
.shelf-grid{ display:grid; grid-template-columns:1fr; gap:14px; }
@media(min-width:640px){ .shelf-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:1020px){ .shelf-grid{ grid-template-columns:1fr 1fr 1fr 1fr; } }
.lnode .s-sample{ margin-top:4px; }
.lnode .s-line{ font-family:var(--sans); font-size:12px; color:var(--ink-soft); line-height:1.7; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* 详情打开时，报纸/分界/地图/交叉条全部让位 */
body.detail-open .lib-top{ display:none; }

.ld-intro{ font-size:clamp(15.5px,1.8vw,17.5px); line-height:1.9; color:var(--read); max-width:56ch; margin:14px 0 10px; }
.ld-group{ margin-bottom:clamp(14px,3vh,28px); }
.ld-group .lg-head{ display:flex; align-items:baseline; gap:16px; padding:clamp(30px,5vh,48px) 0 14px; }
.ld-group .lg-head::before{ content:''; width:5px; height:1em; background:var(--accent); transform:translateY(2px); flex:none; }
.ld-group .lg-head .lvl{ font-family:var(--serif); font-weight:900; font-size:clamp(1.3rem,2.6vw,1.9rem); letter-spacing:.06em; color:var(--ink); }
.ld-group .lg-head .lq{ font-family:var(--display); font-style:italic; font-size:14px; color:var(--ink-soft); }
.ld-group .lg-head .ln{ flex:1; height:1px; background:var(--line); align-self:center; }
.ld-item .series-chip{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:.06em; color:var(--ink-faint); border:1px solid var(--line); border-radius:999px; padding:2px 9px; }

.ld-item .why-here{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); margin:0 0 8px; }
.ld-item .why-here::before{ content:'为什么在这里 · '; color:var(--accent); font-weight:600; }
