/* ==========================================================================
   主题：流年 —— 时间线叙事，玫瑰紫 / 暮色
   左侧固定竖栏（>=1024px，base.css 的 hdr-side 负责布局），这里只做皮肤
   所有选择器以 .theme-liunian / .x-ln_* 限定
   ========================================================================== */
.theme-liunian{--ln-a:var(--primary);--ln-b:var(--x-ln_dusk,#7c3aed);--ln-grad:linear-gradient(135deg,var(--ln-a),var(--ln-b));--ln-glow:color-mix(in srgb,var(--ln-a) 45%,transparent)}
.theme-liunian ::selection{color:#4a0d2b}
html[data-theme=dark] .theme-liunian ::selection{color:#fff}

/* 背景暮色光斑（固定在视口，不随滚动） */
.x-ln_bokeh::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(260px 260px at 12% 78%,color-mix(in srgb,var(--ln-a) 13%,transparent),transparent 70%),
  radial-gradient(340px 340px at 88% 18%,color-mix(in srgb,var(--ln-b) 12%,transparent),transparent 70%),
  radial-gradient(180px 180px at 70% 86%,color-mix(in srgb,#fb7185 12%,transparent),transparent 70%),
  radial-gradient(120px 120px at 38% 12%,color-mix(in srgb,var(--ln-b) 10%,transparent),transparent 70%)}
html[data-theme=dark] .x-ln_bokeh::before{opacity:.7}

/* ---------------- 顶栏（窄屏 / 非竖栏时） ---------------- */
.theme-liunian .site-header{box-shadow:none}
.theme-liunian .site-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--ln-a),var(--ln-b),transparent);opacity:.55;pointer-events:none}
.theme-liunian .brand-name{font-family:var(--font-heading);letter-spacing:.1em;background:var(--ln-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.theme-liunian .menu a{border-radius:30px}
.theme-liunian .menu a:hover,.theme-liunian .menu .current>a{color:var(--ln-a);background:color-mix(in srgb,var(--ln-a) 9%,transparent)}
.theme-liunian .sub-menu{border-radius:14px}

/* ---------------- 左侧固定竖栏 ---------------- */
@media (min-width:1024px){
  .theme-liunian.hdr-side .site-header{background:linear-gradient(180deg,color-mix(in srgb,var(--ln-a) 7%,var(--header-bg)),var(--header-bg) 45%,color-mix(in srgb,var(--ln-b) 8%,var(--header-bg)));box-shadow:none;scrollbar-width:none}
  .theme-liunian.hdr-side .site-header::-webkit-scrollbar{display:none}
  .theme-liunian.hdr-side .site-header::after{left:auto;top:0;right:0;width:1px;height:auto;background:linear-gradient(180deg,transparent,var(--ln-a) 30%,var(--ln-b) 70%,transparent);opacity:.45}
  .theme-liunian.hdr-side .header-inner{padding:40px 22px 28px;gap:20px;min-height:100vh}
  /* 竖栏顺序：头像 → 站名 → 简介 → 菜单 → 按钮 */
  .theme-liunian.hdr-side .side-profile{display:contents}
  .theme-liunian.hdr-side .side-profile .avatar{order:1;align-self:center;margin:0}
  .theme-liunian.hdr-side .brand{order:2;margin-top:-4px}
  .theme-liunian.hdr-side .side-profile p{order:2;text-align:center;font-size:.86em;color:var(--muted);margin-top:-8px}
  .theme-liunian.hdr-side .nav{order:3;flex:none}
  .theme-liunian.hdr-side .hdr-actions{order:4;margin-top:auto;padding-top:14px;border-top:1px dashed var(--border)}
  .theme-liunian.hdr-side .brand-name{font-size:1.5em}
  .theme-liunian.hdr-side .brand-sub{opacity:.75;letter-spacing:.14em;white-space:normal}
  .theme-liunian.hdr-side .side-profile .avatar{width:96px;height:96px;border:3px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--ln-grad) border-box;box-shadow:0 0 0 6px color-mix(in srgb,var(--ln-a) 8%,transparent),0 10px 30px -6px var(--ln-glow)}
  .theme-liunian.hdr-side .side-profile p{line-height:1.7;padding:0 4px}
  .theme-liunian.hdr-side .menu{gap:4px}
  .theme-liunian.hdr-side .menu a{position:relative;padding:10px 16px 10px 30px;border-radius:12px}
  .theme-liunian.hdr-side .menu>li>a::before{content:"";position:absolute;left:14px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--border);transition:.25s}
  .theme-liunian.hdr-side .menu>li>a:hover::before,.theme-liunian.hdr-side .menu>.current>a::before{background:var(--ln-a);box-shadow:0 0 0 3px color-mix(in srgb,var(--ln-a) 18%,transparent),0 0 10px var(--ln-a)}
  .theme-liunian.hdr-side .menu .current>a{background:linear-gradient(90deg,color-mix(in srgb,var(--ln-a) 12%,transparent),transparent);font-weight:600}
  .theme-liunian.hdr-side .sub-menu a{padding-left:30px}
  /* 暮色深紫竖栏 */
  .x-ln_side-dusk.hdr-side .site-header{--header-text:#fbeaf3;background:linear-gradient(170deg,#2a0b3d 0%,color-mix(in srgb,var(--ln-b) 55%,#1a0626) 55%,color-mix(in srgb,var(--ln-a) 60%,#1a0626) 100%)}
  .x-ln_side-dusk.hdr-side .brand-name{background:linear-gradient(90deg,#fff,#fbcfe8);-webkit-background-clip:text;background-clip:text}
  .x-ln_side-dusk.hdr-side .side-profile p{color:rgba(255,255,255,.72)}
  .x-ln_side-dusk.hdr-side .side-profile .avatar{background:linear-gradient(#2a0b3d,#2a0b3d) padding-box,linear-gradient(135deg,#fbcfe8,#f472b6) border-box}
  .x-ln_side-dusk.hdr-side .menu a:hover,.x-ln_side-dusk.hdr-side .menu .current>a{color:#fff;background:rgba(255,255,255,.1)}
  .x-ln_side-dusk.hdr-side .menu>li>a::before{background:rgba(255,255,255,.3)}
  .x-ln_side-dusk.hdr-side .menu>li>a:hover::before,.x-ln_side-dusk.hdr-side .menu>.current>a::before{background:#fbcfe8;box-shadow:0 0 12px #f472b6}
  .x-ln_side-dusk.hdr-side .hdr-actions{border-top-color:rgba(255,255,255,.15)}
  .x-ln_side-dusk.hdr-side .site-header::after{display:none}
  /* 纯色简洁竖栏 */
  .x-ln_side-plain.hdr-side .site-header{background:var(--header-bg)}
}

/* ---------------- 头图 ---------------- */
.theme-liunian .hero-gradient,.theme-liunian .hero-image{isolation:isolate}
.theme-liunian .hero-gradient::after,.theme-liunian .hero-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(1.5px 1.5px at 18% 30%,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 32% 62%,rgba(255,255,255,.8),transparent),
  radial-gradient(1.5px 1.5px at 64% 24%,rgba(255,255,255,.85),transparent),radial-gradient(1px 1px at 82% 54%,rgba(255,255,255,.8),transparent),
  radial-gradient(1px 1px at 48% 16%,rgba(255,255,255,.7),transparent),radial-gradient(1.5px 1.5px at 90% 20%,rgba(255,255,255,.8),transparent),
  radial-gradient(420px 220px at 78% 110%,rgba(251,113,133,.45),transparent 70%),
  linear-gradient(180deg,transparent 62%,var(--bg))}
.theme-liunian .hero-title{font-family:var(--font-heading);letter-spacing:.2em;font-weight:700}
.theme-liunian .hero-sub{letter-spacing:.2em;opacity:.88}
.theme-liunian .hero-inner{padding-bottom:60px}
.theme-liunian .hero-text .hero-title,.theme-liunian .hero-split .hero-title{background:var(--ln-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.theme-liunian .btn-hero{background:var(--ln-grad);border-color:transparent}
.theme-liunian .btn-hero.ghost{background:none;border-color:var(--ln-a)}
.theme-liunian .hcard{border-radius:24px}
.theme-liunian .hcard .avatar{border-color:transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--ln-grad) border-box}

/* ---------------- 区块标题：发光节点 ---------------- */
.theme-liunian .section-title{font-family:var(--font-heading);letter-spacing:.06em}
.theme-liunian .section-title span{padding-left:22px}
.theme-liunian .section-title span::before{top:50%;bottom:auto;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--ln-grad);box-shadow:0 0 0 4px color-mix(in srgb,var(--ln-a) 14%,transparent),0 0 12px var(--ln-glow)}
.theme-liunian .cat-chip{border-radius:30px;box-shadow:none;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 80%,transparent)}
.theme-liunian .cat-chip:hover{background:var(--ln-grad);border-color:transparent}
.theme-liunian .sticky-card{border-radius:var(--radius)}
.theme-liunian .badge-top,.theme-liunian .pi-sticky{background:var(--ln-grad)}

/* ---------------- 文章列表 ---------------- */
.theme-liunian .post-item{border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}
.theme-liunian .pi-title{font-family:var(--font-heading);letter-spacing:.02em}
.theme-liunian .pi-cat{background:color-mix(in srgb,var(--ln-a) 9%,transparent)}
.theme-liunian .pi-more{color:var(--ln-a)}
.theme-liunian.hover-glow .post-item:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--ln-a) 45%,transparent),0 14px 40px -12px var(--ln-glow)}
/* 时间线 */
.theme-liunian.list-timeline .post-list::before{width:2px;background:linear-gradient(180deg,transparent,var(--ln-a) 6%,var(--ln-b) 60%,color-mix(in srgb,var(--ln-b) 30%,transparent) 96%,transparent)}
.theme-liunian.list-timeline .post-item::before{width:14px;height:14px;left:-34px;top:25px;border:0;background:radial-gradient(circle,#fff 0 22%,var(--ln-a) 26%);box-shadow:0 0 0 4px color-mix(in srgb,var(--ln-a) 16%,transparent),0 0 16px 2px var(--ln-glow)}
.theme-liunian.list-timeline .post-item:nth-child(even)::before{background:radial-gradient(circle,#fff 0 22%,var(--ln-b) 26%);box-shadow:0 0 0 4px color-mix(in srgb,var(--ln-b) 16%,transparent),0 0 16px 2px color-mix(in srgb,var(--ln-b) 45%,transparent)}
.theme-liunian.list-timeline .post-item::after{content:"";position:absolute;left:-7px;top:26px;width:12px;height:12px;background:var(--surface);border-left:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent);transform:rotate(45deg)}
.theme-liunian.list-timeline .pi-date{top:16px}
.theme-liunian.list-timeline .pi-date b{font-size:1.75em;background:var(--ln-grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
.theme-liunian.list-timeline .pi-date span{letter-spacing:.06em}
.theme-liunian.list-timeline .pi-body{padding:20px 26px}
.x-ln_glow.list-timeline .post-item::before,.x-ln_glow .ar-month h3::before,.x-ln_glow .tl-dot{animation:lnBreath 3.2s ease-in-out infinite}
.x-ln_glow.list-timeline .post-item:nth-child(3n+2)::before{animation-delay:-1.1s}
.x-ln_glow.list-timeline .post-item:nth-child(3n)::before{animation-delay:-2.2s}
@keyframes lnBreath{50%{filter:brightness(1.15) drop-shadow(0 0 6px var(--ln-glow));transform:scale(1.12)}}
.theme-liunian.list-minimal .post-item{border:0;border-bottom:1px dashed var(--border)}

/* ---------------- 分页 ---------------- */
.theme-liunian .pg{border-radius:30px;box-shadow:none;border:1px solid var(--border)}
.theme-liunian .pg.cur{background:var(--ln-grad);border-color:transparent;box-shadow:0 6px 18px -6px var(--ln-glow)}
.theme-liunian .pg.dots{border:0}
.theme-liunian .btn-more:hover{border-color:var(--ln-a);color:var(--ln-a)}

/* ---------------- 页面头 / 归档 ---------------- */
.theme-liunian .page-head{background:linear-gradient(120deg,color-mix(in srgb,var(--ln-a) 8%,var(--surface)),var(--surface) 55%,color-mix(in srgb,var(--ln-b) 8%,var(--surface)))}
.theme-liunian .page-head.has-bg{background:#333 var(--bg) center/cover}
.theme-liunian .page-title{font-family:var(--font-heading);letter-spacing:.06em}
.theme-liunian .seg a{border:1px solid transparent}
.theme-liunian .seg a.on{background:var(--ln-grad)}
.theme-liunian .ar-y{font-family:var(--font-heading);background:var(--ln-grad);-webkit-background-clip:text;background-clip:text;color:transparent;width:max-content}
.theme-liunian .ar-month{border-left:2px solid transparent;border-image:linear-gradient(var(--ln-a),var(--ln-b)) 1}
.theme-liunian .ar-month h3::before{border:0;background:radial-gradient(circle,#fff 0 22%,var(--ln-a) 26%);box-shadow:0 0 0 3px color-mix(in srgb,var(--ln-a) 16%,transparent),0 0 12px var(--ln-glow)}
.theme-liunian .ar-month li a:hover{color:var(--ln-a)}

/* ---------------- 侧边栏 ---------------- */
.theme-liunian .widget{border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}
.theme-liunian .widget-title{font-family:var(--font-heading);border-bottom:0;padding-bottom:0;margin-bottom:14px}
.theme-liunian .widget-title .ico{color:var(--ln-b)}
.theme-liunian .widget-title::after{content:"";flex:1;height:1px;margin-left:6px;background:linear-gradient(90deg,var(--border),transparent)}
.theme-liunian .wa-bg{background:var(--hero-img,var(--hero-gradient)) center/cover}
.theme-liunian .w-author .avatar{border-color:transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--ln-grad) border-box;box-shadow:0 0 18px -2px var(--ln-glow)}
.theme-liunian .wa-stats b{background:var(--ln-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.theme-liunian .w-search button,.theme-liunian .social a:hover,.theme-liunian .tag-cloud a:hover{background:var(--ln-grad)}
.theme-liunian .w-posts li,.theme-liunian .w-moments li{position:relative;padding-left:14px}
.theme-liunian .w-posts li::before,.theme-liunian .w-moments li::before{content:"";position:absolute;left:0;top:16px;width:5px;height:5px;border-radius:50%;background:var(--ln-a);box-shadow:0 0 6px var(--ln-a)}

/* ---------------- 文章正文 ---------------- */
.theme-liunian .entry-wrap{border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}
.theme-liunian .entry-header{text-align:center;border-bottom:0;position:relative;padding-bottom:22px}
.theme-liunian .entry-header::after{content:"";position:absolute;left:50%;bottom:0;width:120px;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--ln-a),var(--ln-b),transparent)}
.theme-liunian .entry-meta{justify-content:center}
.theme-liunian .entry-title{font-family:var(--font-heading);letter-spacing:.06em}
.theme-liunian .entry h2{border-bottom:0;padding:0 0 0 22px;position:relative;font-family:var(--font-heading)}
.theme-liunian .entry h2::before{content:"";position:absolute;left:0;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--ln-grad);box-shadow:0 0 0 4px color-mix(in srgb,var(--ln-a) 14%,transparent),0 0 12px var(--ln-glow)}
.theme-liunian .entry h3{color:var(--ln-a);font-family:var(--font-heading)}
.theme-liunian .entry a{border-bottom-color:color-mix(in srgb,var(--ln-a) 40%,transparent)}
.theme-liunian .entry blockquote{border-left:3px solid transparent;border-image:linear-gradient(var(--ln-a),var(--ln-b)) 1;background:linear-gradient(90deg,color-mix(in srgb,var(--ln-a) 7%,var(--surface)),color-mix(in srgb,var(--ln-b) 4%,var(--surface)));border-radius:0;font-family:var(--font-heading)}
.theme-liunian .entry code{background:color-mix(in srgb,var(--ln-a) 8%,transparent);color:color-mix(in srgb,var(--ln-a) 75%,var(--text))}
.theme-liunian .entry pre{border-radius:14px;background:#1a1020;box-shadow:0 14px 34px -18px var(--ln-glow)}
.theme-liunian .entry pre code{color:#f3e8f6}
.theme-liunian .entry table{border-radius:12px;overflow:hidden;border-collapse:separate;border-spacing:0;border:1px solid var(--border)}
.theme-liunian .entry th,.theme-liunian .entry td{border:0;border-bottom:1px solid var(--border)}
.theme-liunian .entry tr:last-child td{border-bottom:0}
.theme-liunian .entry th{background:linear-gradient(90deg,color-mix(in srgb,var(--ln-a) 12%,var(--surface)),color-mix(in srgb,var(--ln-b) 12%,var(--surface)))}
.theme-liunian .entry hr{height:2px;background:linear-gradient(90deg,transparent,var(--ln-a),var(--ln-b),transparent);opacity:.5;width:50%}
.theme-liunian .entry-tags a:hover,.theme-liunian .copy-code:hover{background:var(--ln-grad);color:#fff}
.theme-liunian .entry-copyright{border-left:3px solid transparent;border-image:linear-gradient(var(--ln-a),var(--ln-b)) 1;border-radius:0}
.theme-liunian .entry-share button:hover{border-color:var(--ln-a);color:var(--ln-a)}
.theme-liunian .pn:hover b,.theme-liunian .rel-item:hover b{color:var(--ln-a)}
.theme-liunian .rel-ph{background:linear-gradient(135deg,color-mix(in srgb,var(--ln-a) 16%,var(--surface)),color-mix(in srgb,var(--ln-b) 16%,var(--surface)));color:var(--ln-a)}
.theme-liunian .toc-list a.on{color:var(--ln-a);border-left-color:var(--ln-a)}

/* ---------------- 说说：也做成时间线 ---------------- */
.theme-liunian .moments-head .avatar{border:3px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--ln-grad) border-box}
.theme-liunian .moment-list{position:relative;padding-left:28px}
.theme-liunian .moment-list::before{content:"";position:absolute;left:8px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--ln-a),var(--ln-b),transparent)}
.theme-liunian .moment{position:relative;overflow:visible}
.theme-liunian .moment::before{content:"";position:absolute;left:-26px;top:30px;width:10px;height:10px;border-radius:50%;background:var(--ln-a);box-shadow:0 0 0 4px color-mix(in srgb,var(--ln-a) 16%,transparent),0 0 12px var(--ln-glow)}
.theme-liunian .mo-head b{background:var(--ln-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.theme-liunian .mo-pics a{border-radius:10px}
.theme-liunian .mm-item{border-top:2px solid transparent;border-image:var(--ln-grad) 1}

/* ---------------- 相册 / 时光轴 ---------------- */
.theme-liunian .ac-cover{border-radius:18px}
.theme-liunian .album-card::before,.theme-liunian .album-card::after{border-radius:18px;background:color-mix(in srgb,var(--ln-a) 12%,var(--surface))}
.theme-liunian .album-card:hover .ac-cover{box-shadow:0 16px 34px -12px var(--ln-glow)}
.theme-liunian .photo-it{border-radius:14px}
.theme-liunian .photo-it.is-video:hover .play .ico{background:var(--ln-a)}
.theme-liunian .timeline::before{opacity:.7;background:linear-gradient(var(--ln-a),var(--ln-b))}
.theme-liunian .tl-year span{background:var(--ln-grad);box-shadow:0 8px 20px -8px var(--ln-glow)}
.theme-liunian .tl-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--ln-a) 14%,transparent),0 0 14px var(--ln-glow)}

/* ---------------- 页脚 ---------------- */
.theme-liunian .site-footer{--footer-text:var(--muted);position:relative;background:transparent;border-top:0}
.theme-liunian .site-footer::before{content:"";position:absolute;left:10%;right:10%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--ln-a),var(--ln-b),transparent);opacity:.5}
.theme-liunian.ft-columns .site-footer{background:color-mix(in srgb,var(--surface) 70%,transparent)}
.theme-liunian.ft-dark .site-footer{--footer-bg:#1c0b24;--footer-text:#c7b2cc;background:linear-gradient(160deg,#1c0b24,#2e0b2a)}
.theme-liunian .site-footer a:hover{color:var(--ln-a)}
.theme-liunian .footer-bottom b{color:var(--ln-a)}
.theme-liunian .back-top{color:var(--ln-a)}
.theme-liunian .back-top:hover{background:var(--ln-grad)}
.theme-liunian .read-progress{background:var(--ln-grad);box-shadow:0 0 8px var(--ln-glow)}
.theme-liunian .tabbar a.on{color:var(--ln-a)}

/* ---------------- 深色模式 ---------------- */
html[data-theme=dark] .theme-liunian{--ln-glow:color-mix(in srgb,var(--ln-a) 55%,transparent)}
html[data-theme=dark] .theme-liunian.list-timeline .post-item::before{background:radial-gradient(circle,#1c1423 0 22%,var(--ln-a) 26%)}
html[data-theme=dark] .theme-liunian.list-timeline .post-item:nth-child(even)::before{background:radial-gradient(circle,#1c1423 0 22%,color-mix(in srgb,var(--ln-b) 70%,#fff) 26%)}
html[data-theme=dark] .theme-liunian .entry pre{background:#0d0811}
@media (min-width:1024px){
  html[data-theme=dark] .x-ln_side-dusk.hdr-side .site-header{background:linear-gradient(170deg,#12051b,#24082e 60%,#2d0a20)}
}

/* ---------------- 中屏（1024 以下：竖栏退化为普通顶栏） ---------------- */
@media (max-width:1023px){
  .theme-liunian .site-header{background:linear-gradient(90deg,color-mix(in srgb,var(--ln-a) 6%,var(--header-bg)),var(--header-bg) 40%,color-mix(in srgb,var(--ln-b) 6%,var(--header-bg)))}
  .theme-liunian.hdr-blur .site-header{background:color-mix(in srgb,var(--header-bg) 86%,transparent)}
}

/* ---------------- 手机端 ---------------- */
@media (max-width:860px){
  .theme-liunian .brand-name{letter-spacing:.06em}
  .theme-liunian .hero-title{letter-spacing:.12em}
  .theme-liunian .hero-sub{letter-spacing:.1em}
  .theme-liunian.list-timeline .post-item::before{left:-28px;top:21px;width:12px;height:12px}
  .theme-liunian.list-timeline .post-item::after{top:22px}
  .theme-liunian.list-timeline .pi-date{top:12px}
  .theme-liunian.list-timeline .pi-date b{font-size:1.4em}
  .theme-liunian.list-timeline .pi-body{padding:14px 16px}
  .theme-liunian .moment-list{padding-left:22px}
  .theme-liunian .moment-list::before{left:6px}
  .theme-liunian .moment::before{left:-20px;top:24px;width:8px;height:8px}
  .theme-liunian .entry h2{padding-left:18px}
}
