
/* ============================================================
   通用视觉自监督研究报 · 设计 v6 · 极简学术博客 + 养成系
   自包含样式（shell 不再加载旧 styles.css）。
   暖纸白 + 一种低饱和钢蓝 accent；养成元素用暖黄铜。
   英文固有名词加重、中文做解释；图按原始比例不裁切。
   ============================================================ */
:root{
  --paper:#fcfbf8;--paper2:#f5f3ed;--card:#ffffff;
  --ink:#1b1a17;--ink-soft:#3c3933;--muted:#6f6a61;--muted-2:#9a9488;
  --hair:#e7e3da;--hair2:#efece4;--rule:#d3cdc1;
  --accent:#355d86;--accent-deep:#274964;--accent-soft:#e6edf4;--accent-line:rgba(53,93,134,.28);
  --gold:#b07d3a;--gold-deep:#8a5d24;--gold-soft:#f4ead7;--alert:#b0492f;
  --serif:"Source Serif 4","Songti SC","Noto Serif SC",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --mono:"JetBrains Mono","SF Mono",ui-monospace,Consolas,monospace;
  --page:min(94vw,1480px);--read:46rem;
}
*{box-sizing:border-box;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.72;font-feature-settings:"kern","liga";}
img{max-width:100%;height:auto;display:block;}
::selection{background:var(--accent-soft);color:var(--ink);}
a{color:var(--accent-deep);text-decoration:none;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--ink);text-wrap:balance;word-break:keep-all;}
p{text-wrap:pretty;}
.paper-main,.paper-side,.paper-card,.page-header,.lead-story{overflow-wrap:anywhere;}

/* ---------- masthead 报名牌 ---------- */
.masthead{max-width:var(--page);margin:0 auto;padding:30px 28px 0;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.masthead-title{order:1;font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.3vw,28px);letter-spacing:-.015em;color:var(--ink);text-decoration:none;display:block;}
.masthead-title:hover{color:var(--accent-deep);}
.masthead-kicker{order:0;flex-basis:100%;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin-bottom:5px;}
.masthead-meta{order:2;text-align:right;display:flex;flex-direction:column;gap:2px;font-family:var(--sans);font-size:11.5px;color:var(--muted-2);}
.masthead-meta span{white-space:nowrap;}
.masthead-meta span:first-child{font-family:var(--mono);letter-spacing:.04em;}

/* ---------- nav ---------- */
.site-nav{max-width:var(--page);margin:16px auto 0;padding:0 28px;display:flex;gap:24px;align-items:center;border-bottom:1px solid var(--hair);font-family:var(--sans);font-size:14px;flex-wrap:wrap;}
.nav-link{color:var(--muted);text-decoration:none;padding:11px 0;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s;}
.nav-link:hover{color:var(--ink);}
.nav-link.active{color:var(--ink);border-bottom-color:var(--accent);}
.nav-streak{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--gold-deep);background:var(--gold-soft);border:1px solid #e7d3ad;border-radius:30px;padding:4px 11px 4px 9px;white-space:nowrap;}
.nav-streak svg{width:13px;height:13px;}
.nav-streak b{font-variant-numeric:tabular-nums;}

main{display:block;}

/* ---------- kicker / headline / dek ---------- */
.kicker{font-family:var(--sans);font-weight:600;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 12px;display:block;}
.dek{font-family:var(--serif);font-size:20px;line-height:1.55;color:var(--ink-soft);margin:0 0 22px;max-width:60ch;}

/* ============================================================
   HOME · hero + brief（两栏）
   ============================================================ */
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(40px,5vw,72px);align-items:start;max-width:var(--page);margin:34px auto 8px;padding:0 28px;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:24px;}}
.lead-story{min-width:0;}
.lead-story h1{font-size:clamp(32px,3.4vw,46px);line-height:1.12;letter-spacing:-.02em;margin:0 0 16px;font-family:var(--serif);}
.lead-story h1,.paper-headline,.paper-card h3{word-break:normal;overflow-wrap:anywhere;}
.lead-story .dek{font-size:20px;}
.hero-figure{margin:24px 0 18px;border:1px solid var(--hair);border-radius:8px;overflow:hidden;background:var(--card);}
.hero-figure img{width:100%;max-height:460px;object-fit:contain;background:#fff;}
.hero-figure figcaption{font-family:var(--sans);font-size:13px;color:var(--muted);line-height:1.6;padding:10px 14px;border-top:1px solid var(--hair);}
.paper-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-family:var(--sans);margin-top:16px;}
.paper-actions a{font-size:13.5px;font-weight:500;color:var(--ink);text-decoration:none;border:1px solid var(--rule);border-radius:8px;padding:8px 15px;white-space:nowrap;transition:background .15s,border-color .15s,transform .15s;}
.paper-actions a:hover{background:var(--paper2);border-color:var(--ink-soft);}
.paper-actions a:first-child{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.paper-actions a:first-child:hover{background:var(--accent-deep);border-color:var(--accent-deep);transform:translateY(-1px);}

/* 右栏 brief + 进度 */
.issue-brief{font-family:var(--sans);position:sticky;top:22px;}
.issue-brief h2{font-family:var(--sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 12px;}
.issue-brief ul{list-style:none;margin:0 0 4px;padding:0;}
.issue-brief li{padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid var(--hair);}
.issue-brief li b{display:block;font-size:12px;color:var(--ink);font-weight:600;margin-bottom:3px;}
.issue-brief li span{display:block;font-size:13px;line-height:1.55;color:var(--ink-soft);}

/* 我的进度 widget */
.prog-widget{font-family:var(--sans);border-top:2px solid var(--ink);padding-top:16px;margin-top:4px;}
.prog-widget .pw-t{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:14px;}
.prog-top{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.ringwrap{position:relative;width:64px;height:64px;flex:none;}
.ringsvg{width:64px;height:64px;transform:rotate(-90deg);}
.ring-bg{fill:none;stroke:var(--hair);stroke-width:6;}
.ring-fg{fill:none;stroke:var(--gold);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .7s cubic-bezier(.4,0,.2,1);}
.ring-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.ring-num b{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--ink);}
.ring-num span{font-size:10px;color:var(--muted-2);margin-top:1px;}
.prog-meta .pm-t{font-size:13px;font-weight:600;color:var(--ink);}
.prog-meta .pm-s{font-size:12px;color:var(--muted);line-height:1.5;margin-top:3px;}
.prog-streak{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--gold-deep);font-weight:600;margin-top:6px;}
.prog-streak svg{width:12px;height:12px;}
.heat-grid{display:flex;gap:3px;}
.heat-col{display:flex;flex-direction:column;gap:3px;}
.heat-cell{width:11px;height:11px;border-radius:2.5px;background:var(--hair2);border:1px solid rgba(0,0,0,.03);}
.heat-cell.on{background:var(--gold);}
.heat-cell.fut{opacity:.35;}
.heat-cap{font-size:11px;color:var(--muted-2);margin-top:8px;display:flex;justify-content:space-between;}
.heat-cap span{white-space:nowrap;}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.badge{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--sans);font-weight:700;font-size:12px;color:var(--muted-2);background:var(--paper2);border:1.5px dashed var(--rule);}
.badge.on{color:#fff;background:radial-gradient(circle at 32% 28%,#cd9a55,var(--gold-deep));border:1.5px solid var(--gold-deep);box-shadow:0 2px 8px rgba(176,125,58,.28);}

/* ---------- section ---------- */
.section-block{max-width:var(--page);margin:0 auto;padding:18px 28px 44px;}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;border-top:2px solid var(--ink);padding-top:14px;margin-bottom:6px;}
.section-heading h2{margin:0;font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:.02em;}
.section-heading a{font-family:var(--sans);font-size:13px;color:var(--muted);}
.paper-list{display:flex;flex-direction:column;}

/* ---------- paper-card（横向条目 + 缩略图 + 已读勾） ---------- */
.paper-card{position:relative;display:grid;grid-template-columns:148px minmax(0,1fr) auto;gap:18px;align-items:start;padding:18px 0;border-top:1px solid var(--hair);}
.paper-card .paper-thumb{grid-column:1;width:148px;height:96px;border-radius:8px;overflow:hidden;border:1px solid var(--hair);background:var(--paper2);text-decoration:none;display:block;}
.paper-card .paper-thumb img{width:100%;height:100%;object-fit:cover;background:#fff;}
.paper-card > div{grid-column:2;min-width:0;}
.paper-meta{font-family:var(--sans);font-size:12px;color:var(--muted);margin-bottom:5px;}
.paper-card h3{margin:0 0 6px;font-family:var(--serif);font-size:20px;line-height:1.28;font-weight:600;}
.paper-card h3 a{color:var(--ink);text-decoration:none;}
.paper-card:hover h3 a{text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px;}
.paper-card p{margin:0 0 6px;font-size:16px;line-height:1.6;color:var(--ink-soft);}
.paper-card .card-tech{font-family:var(--sans);font-size:12.5px;color:var(--muted);}
.paper-card .card-tech b{color:var(--ink-soft);}
.paper-card .paper-actions{margin-top:10px;}
.paper-card .paper-actions a{font-size:12.5px;padding:6px 12px;}
.paper-card .paper-actions a:first-child{background:var(--card);color:var(--ink);border-color:var(--rule);}
.paper-card .paper-actions a:first-child:hover{background:var(--paper2);}
.paper-card .paper-card-tools{grid-column:3;display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:70px;}
.paper-card.is-liked{box-shadow:inset 3px 0 0 var(--gold);}
.paper-card.is-dismissed{opacity:.52;}
.paper-card.is-dismissed h3 a{text-decoration:line-through;text-decoration-color:var(--rule);}

/* 主题封面（无图时） */
.paper-thumb-text{position:relative;display:flex!important;flex-direction:column;justify-content:space-between;padding:11px 12px!important;color:#fff!important;background:linear-gradient(135deg,var(--c1,#3a4a63),var(--c2,#26303f))!important;border:0!important;}
.paper-thumb-text::after{content:"";position:absolute;inset:0;opacity:.14;mix-blend-mode:overlay;background-image:repeating-linear-gradient(45deg,#fff 0 1px,transparent 1px 9px);}
.paper-thumb-text strong{position:relative;font-family:var(--sans);font-weight:700;font-size:15px;line-height:1.1;letter-spacing:.04em;}
.paper-thumb-text span{position:relative;align-self:flex-start;order:-1;font-family:var(--sans);font-size:10.5px;font-weight:700;background:rgba(255,255,255,.22);border-radius:20px;padding:2px 8px;}
.paper-thumb-text em{position:relative;font-family:var(--sans);font-size:10px;font-style:normal;opacity:.85;}
[data-topic="JEPA"]{--c1:#3f4d8f;--c2:#272f5c;}
[data-topic="tokenizer"]{--c1:#1f7a73;--c2:#124b46;}
[data-topic="VLM"]{--c1:#6d4a86;--c2:#412a54;}
[data-topic="video"]{--c1:#b1565a;--c2:#6f2f34;}
[data-topic="3D"]{--c1:#9a6b2f;--c2:#5e3f18;}
[data-topic="diffusion"]{--c1:#3273a3;--c2:#1d4868;}
[data-topic="interpretability"]{--c1:#3f7d54;--c2:#244a31;}
[data-topic="contrastive"]{--c1:#a35f33;--c2:#643619;}
[data-topic="default"]{--c1:#4a5568;--c2:#2c333f;}

/* 已读态 */
.paper-card.is-read{opacity:.6;}
.paper-card.is-read h3 a{text-decoration:line-through;text-decoration-color:var(--rule);}

/* readbtn 通用 */
.readbtn{flex:none;width:30px;height:30px;border-radius:50%;cursor:pointer;border:1.5px solid var(--rule);background:var(--card);color:var(--muted-2);display:grid;place-items:center;transition:all .15s;padding:0;}
.readbtn svg{width:15px;height:15px;}
.readbtn:hover{border-color:var(--gold);color:var(--gold-deep);}
.readbtn.on{background:var(--gold);border-color:var(--gold);color:#fff;}
.readbtn.pop{animation:pop .32s ease;}
@keyframes pop{0%{transform:scale(.7);}55%{transform:scale(1.18);}100%{transform:scale(1);}}
.prefbar{display:flex;flex-direction:column;gap:6px;align-items:stretch;}
.prefbtn{font-family:var(--sans);font-size:12px;line-height:1;border:1px solid var(--hair);border-radius:8px;background:var(--card);color:var(--ink-soft);padding:7px 9px;min-width:58px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;}
.prefbtn:hover{border-color:var(--rule);background:var(--paper2);}
.prefbtn.like.on{background:var(--gold-soft);border-color:#dfc28d;color:var(--gold-deep);font-weight:650;}
.prefbtn.dismiss.on{background:#f1ece5;border-color:var(--rule);color:var(--muted);font-weight:650;}
.paper-side-tools{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;}
.paper-side-tools .prefbar{flex-direction:row;}
.pref-side .readbtn{margin-top:1px;}
@media(max-width:700px){
  .paper-card{grid-template-columns:104px minmax(0,1fr);gap:12px 14px;}
  .paper-card .paper-thumb{width:104px;height:76px;}
  .paper-card h3{font-size:18px;}
  .paper-card .paper-card-tools{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:flex-start;min-width:0;}
  .paper-card .paper-card-tools .prefbar{flex-direction:row;}
}

/* ============================================================
   PAPER DETAIL · 单栏阅读 + 破栏图
   ============================================================ */
.paper-detail{max-width:var(--page);margin:0 auto;padding:30px 28px 50px;display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:clamp(28px,4vw,56px);align-items:start;}
@media(max-width:1040px){.paper-detail{grid-template-columns:1fr;}}
.paper-main{min-width:0;max-width:var(--read);margin:0 auto;}
.paper-headline{font-size:clamp(28px,3vw,40px);line-height:1.16;letter-spacing:-.015em;margin:0 0 16px;}
.byline{font-family:var(--sans);font-size:13.5px;color:var(--muted);line-height:1.6;margin:0 0 18px;}
.byline strong{color:var(--ink-soft);font-weight:600;}
.paper-facts{display:flex;flex-wrap:wrap;gap:8px 22px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:12px 0;margin:0 0 30px;font-family:var(--sans);font-size:12.5px;color:var(--muted);}
.paper-facts span b{color:var(--ink-soft);font-weight:600;margin-right:6px;}
.feature-body{font-size:18px;}
.feature-body h2{font-size:25px;line-height:1.25;margin:42px 0 14px;letter-spacing:-.01em;}
.feature-body h2::before{content:"";display:block;width:26px;height:2px;background:var(--accent);margin-bottom:14px;}
.feature-body h3{font-size:19px;margin:26px 0 8px;}
.feature-body p{margin:0 0 18px;}
.feature-body strong{font-weight:640;color:var(--ink);}
.lead{font-size:19.5px;line-height:1.7;color:var(--ink);}
.lead.dropcap::first-letter{font-family:var(--serif);font-weight:600;float:left;font-size:3.5em;line-height:.86;padding:6px 10px 0 0;margin:4px 2px 0 0;color:var(--accent);}

/* 破栏图：图按原始比例，绝不裁切 */
.full-fig{margin:30px 0;max-width:none;}
.full-fig img{width:100%;max-height:760px;object-fit:contain;background:#fff;border:1px solid var(--hair);border-radius:6px;}
.full-fig figcaption{font-family:var(--sans);margin-top:12px;}
.full-fig figcaption b{display:block;font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:7px;}
.full-fig .fig-en,.full-fig .fig-zh{display:block;line-height:1.6;}
.full-fig .fig-zh{font-size:14.5px;color:var(--ink-soft);}
.full-fig .fig-en{font-family:var(--serif);font-style:italic;font-size:13.5px;color:var(--muted);margin-top:7px;padding-top:7px;border-top:1px dashed var(--hair);}

.reading-note{background:var(--paper2);border:1px solid var(--hair);border-radius:10px;padding:18px 22px;margin:26px 0;}
.reading-note h2{font-family:var(--sans);font-size:16px;font-weight:600;margin:0 0 8px;letter-spacing:.02em;}
.reading-note h2::before{display:none;}
.reading-note p{font-size:15.5px;line-height:1.66;margin:0 0 10px;color:var(--ink-soft);}
.reading-note p:last-child{margin:0;}
.method-steps{margin:18px 0;padding-left:1.4rem;}
.method-steps li{margin:10px 0;line-height:1.62;}
.method-steps li::marker{color:var(--accent);font-weight:600;}
.method-steps b{font-weight:640;}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:10px;overflow:hidden;margin:22px 0;}
.stat-grid div{background:var(--card);padding:16px 18px;}
.stat-grid b{display:block;font-family:var(--sans);font-size:11.5px;letter-spacing:.04em;color:var(--accent-deep);text-transform:uppercase;font-weight:600;margin-bottom:6px;}
.stat-grid span{display:block;font-family:var(--mono);font-size:15px;color:var(--ink);line-height:1.4;}
.stat-grid em{display:block;font-style:normal;font-size:13px;color:var(--muted);margin-top:5px;line-height:1.5;}
@media(max-width:640px){.stat-grid{grid-template-columns:1fr;}}
.marginalia{font-family:var(--sans);font-size:13px;color:var(--ink-soft);background:var(--gold-soft);border:1px solid #e7d3ad;border-radius:10px;padding:14px 16px;margin:24px 0;}
.marginalia b{color:var(--gold-deep);}
.compact-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:13px;margin:14px 0 8px;}
.compact-table th,.compact-table td{border:1px solid var(--hair);padding:8px 10px;text-align:left;vertical-align:top;}
.compact-table th{background:var(--paper2);font-weight:600;color:var(--ink);}
.compact-table td{color:var(--ink-soft);}
.issue-list{display:flex;flex-direction:column;}
.empty-state{font-family:var(--sans);color:var(--muted);font-size:14px;border:1px dashed var(--rule);border-radius:10px;padding:24px;text-align:center;}

/* 右侧 side-box */
.paper-side{font-family:var(--sans);position:sticky;top:22px;display:flex;flex-direction:column;gap:16px;}
@media(max-width:1040px){.paper-side{position:static;}}
.side-box{border:1px solid var(--hair);border-radius:10px;background:var(--card);padding:14px 16px;}
.side-box h4{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);font-weight:600;margin:0 0 8px;}
.side-box p{font-size:13px;line-height:1.6;color:var(--ink-soft);margin:0;}
.side-box a{color:var(--accent-deep);word-break:break-all;}
.side-box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:12.5px;}
.side-box dt{color:var(--muted);}
.side-box dd{margin:0;color:var(--ink);font-weight:500;}

/* ============================================================
   CATALOG
   ============================================================ */
.page-header{max-width:var(--page);margin:30px auto 0;padding:0 28px;}
.page-header h1{font-size:34px;margin:0 0 6px;}
.page-header p{font-family:var(--sans);font-size:14.5px;color:var(--muted);margin:0;}
.catalog-shell{max-width:var(--page);margin:18px auto 0;padding:0 28px 60px;display:grid;grid-template-columns:248px minmax(0,1fr);gap:clamp(28px,3.5vw,52px);align-items:start;}
@media(max-width:880px){.catalog-shell{grid-template-columns:1fr;}}
.catalog-tools{font-family:var(--sans);position:sticky;top:22px;display:flex;flex-direction:column;gap:18px;}
@media(max-width:880px){.catalog-tools{position:static;}}
.catalog-search{width:100%;font-family:var(--sans);font-size:14px;color:var(--ink);border:1px solid var(--rule);border-radius:9px;padding:10px 12px;background:var(--card);}
.catalog-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.pref-panel{border-top:2px solid var(--ink);padding-top:14px;}
.pref-panel-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:10px;}
.pref-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px;}
.pref-counts span{border:1px solid var(--hair);border-radius:8px;background:var(--card);padding:7px 6px;font-size:11.5px;color:var(--muted);text-align:center;}
.pref-counts b{display:block;font-family:var(--mono);font-size:15px;color:var(--ink);margin-top:2px;}
.pref-switch{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft);margin:7px 0;cursor:pointer;}
.pref-switch input{accent-color:var(--accent);}
.pref-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.pref-actions button,.pref-actions label{font-family:var(--sans);font-size:12.5px;border:1px solid var(--rule);border-radius:8px;background:var(--card);color:var(--ink);padding:7px 10px;cursor:pointer;}
.pref-actions input{display:none;}
.pref-status{min-height:18px;margin-top:8px;font-size:12px;line-height:1.5;color:var(--muted);}
.filter-row{display:flex;flex-wrap:wrap;gap:6px;}
.filter-pill{font-family:var(--sans);font-size:12.5px;color:var(--ink-soft);cursor:pointer;background:var(--card);border:1px solid var(--hair);border-radius:30px;padding:5px 11px;transition:all .14s;white-space:nowrap;}
.filter-pill:hover{border-color:var(--rule);}
.filter-pill.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.catalog-status{font-family:var(--sans);font-size:13px;color:var(--muted);}
.catalog-list{margin-top:0;}
.catalog-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:24px;font-family:var(--sans);grid-column:2;}
@media(max-width:880px){.catalog-pager{grid-column:1;}}
.catalog-pager button{border:1px solid var(--rule);border-radius:8px;background:var(--card);color:var(--ink);padding:8px 14px;cursor:pointer;font-size:13px;}
.catalog-pager button:disabled{opacity:.4;cursor:not-allowed;}
.catalog-pager span{font-family:var(--mono);color:var(--muted);font-size:13px;}

/* ============================================================
   TIMELINE
   ============================================================ */
.timeline-day{max-width:var(--page);margin:0 auto;padding:24px 28px;border-top:1px solid var(--hair);display:grid;grid-template-columns:132px minmax(0,1fr);gap:clamp(16px,3vw,40px);}
.timeline-day:first-of-type{border-top:0;}
.timeline-day h2{position:sticky;top:18px;align-self:start;font-family:var(--serif);font-size:20px;font-weight:600;margin:0;color:var(--ink);white-space:nowrap;}
.tl-daycol{position:sticky;top:18px;align-self:start;}
.tl-daycol h2{position:static;}
.tl-done{display:inline-flex;margin-top:8px;font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--gold-deep);background:var(--gold-soft);border:1px solid #e7d3ad;border-radius:20px;padding:2px 9px;}
.timeline-day > div,.timeline-day .tl-items{display:flex;flex-direction:column;}
.timeline-day article{display:grid;grid-template-columns:auto 1fr auto;gap:6px 14px;align-items:center;padding:12px 0;border-top:1px solid var(--hair2);text-decoration:none;}
.timeline-day article:first-child{border-top:0;}
.timeline-day span{font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--accent-deep);background:var(--accent-soft);border-radius:20px;padding:3px 9px;white-space:nowrap;}
.timeline-day a{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink);text-decoration:none;}
.timeline-day a:hover{text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px;}
.timeline-day em{font-family:var(--sans);font-size:12px;font-style:normal;color:var(--muted);}
@media(max-width:620px){.timeline-day{grid-template-columns:1fr;gap:12px;}.timeline-day h2{position:static;}.timeline-day article{grid-template-columns:auto 1fr;}.timeline-day em{grid-column:2;}}

/* ============================================================
   CCF DDL 浮窗（极简化）
   ============================================================ */
.conf-float{position:fixed;right:20px;bottom:20px;z-index:40;width:min(300px,calc(100vw - 36px));background:var(--card);border:1px solid var(--hair);border-left:3px solid var(--alert);border-radius:10px;box-shadow:0 8px 28px rgba(27,26,23,.12);padding:13px 38px 13px 15px;font-family:var(--sans);}
.conf-float details{margin:0;}
.conf-float summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--ink);list-style:none;}
.conf-float summary::-webkit-details-marker{display:none;}
.conf-close{position:absolute;right:9px;top:9px;width:24px;height:24px;border:0;background:none;color:var(--muted-2);font-size:17px;line-height:1;cursor:pointer;}
.conf-close:hover{color:var(--ink);}
.conf-list{display:grid;gap:8px;margin-top:10px;}
.conf-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;text-decoration:none;color:var(--ink);}
.conf-item b{font-size:12.5px;color:var(--ink);font-weight:600;}
.conf-item em{font-style:normal;font-size:11px;color:var(--muted-2);}
.conf-item strong{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--alert);white-space:nowrap;}
.conf-item small{grid-column:1/-1;color:var(--muted);font-size:11px;line-height:1.4;}
.conf-item.urgent strong{color:var(--alert);}
.conf-item.past{opacity:.6;}

/* ---------- footer ---------- */
.footer{max-width:var(--page);margin:60px auto 0;padding:22px 28px 50px;border-top:1px solid var(--hair);font-family:var(--sans);font-size:12.5px;color:var(--muted);line-height:1.7;}
.footer .muted{color:var(--muted-2);}

@media(prefers-reduced-motion:reduce){.ring-fg{transition:none;}.readbtn.pop{animation:none;}}
