/* =========================================================
   站点样式 · 想改外观，只改下面 :root 里的变量就够
   参考：Claude/Anthropic 的暖色体系 + Bear Blog 的排版骨架
   ========================================================= */

:root{
  /* —— 颜色 —— */
  --bg:        #FAF9F5;   /* 羊皮纸奶油底 */
  --surface:   #F3F0E9;   /* 稍深一点的暖色表面 */
  --ink:       #2E2B26;   /* 正文墨色 */
  --muted:     #7C7367;   /* 次要文字（暖灰，不是蓝灰） */
  --accent:    #C96442;   /* 赤陶色 */
  --line:      #E6E1D7;   /* 极淡的暖色分隔线 */

  /* —— 字体 —— */
  --font: "LXGW WenKai", "LXGW WenKai Screen", "PingFang SC",
          "Hiragino Sans GB", "Microsoft YaHei", serif;

  /* —— 尺寸 —— */
  --measure: 640px;       /* 正文行宽，约 65 个字符 */
  --step: 8px;            /* 间距基准 */
}

/* 深色模式：跟随系统，变量整体换一组 */
@media (prefers-color-scheme: dark){
  :root{
    --bg:      #1F1E1B;
    --surface: #26241F;
    --ink:     #EDE9E1;
    --muted:   #9C948A;
    --accent:  #D89B7A;
    --line:    #35322C;
  }
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-size:17px;
  line-height:1.85;
  letter-spacing:.01em;
  /* 深色模式下切页面不闪白 */
  color-scheme: light dark;
}

/* —— 布局 —— */
.wrap{max-width:var(--measure);margin:0 auto;padding:72px 24px 96px}
/* 画廊页用宽版心，给三列画框留足呼吸 */
.wrap--wide{max-width:1040px}

/* —— 页头 —— */
.masthead{margin-bottom:calc(var(--step) * 7)}
.masthead h1{
  font-size:24px;font-weight:600;margin:0;letter-spacing:.02em;
}
.masthead .tagline{color:var(--muted);font-size:15px;margin:var(--step) 0 0}

/* —— 导航 —— */
nav{margin-top:calc(var(--step) * 3);display:flex;gap:calc(var(--step) * 3);flex-wrap:wrap}
nav a{
  font-size:14px;color:var(--muted);
  border-bottom:1px solid transparent;
}
nav a:hover{color:var(--accent);border-bottom-color:var(--accent)}
nav a[aria-current="page"]{color:var(--ink)}

/* —— 文章列表 —— */
.postlist{list-style:none;padding:0;margin:0}
.postlist li{
  padding:calc(var(--step) * 3) 0;
  border-top:1px solid var(--line);
}
.postlist li:last-child{border-bottom:1px solid var(--line)}
.postlist h2{font-size:19px;font-weight:600;margin:0}
.postlist h2 a{color:var(--ink);border-bottom:none}
.postlist h2 a:hover{color:var(--accent)}
.meta{
  color:var(--muted);font-size:13px;
  margin:var(--step) 0 0;letter-spacing:.02em;
}
.summary{margin:var(--step) 0 0;font-size:15px;color:var(--muted)}

/* —— 文章正文 —— */
article h1{font-size:26px;font-weight:600;line-height:1.4;margin:0 0 calc(var(--step) * 2)}
article .meta{margin-bottom:calc(var(--step) * 5)}
article h2{font-size:20px;font-weight:600;margin:calc(var(--step) * 6) 0 calc(var(--step) * 2)}
article h3{font-size:17px;font-weight:600;margin:calc(var(--step) * 4) 0 var(--step)}
article p{margin:0 0 calc(var(--step) * 3)}
article ul,article ol{margin:0 0 calc(var(--step) * 3);padding-left:1.4em}
article li{margin-bottom:var(--step)}

article blockquote{
  margin:calc(var(--step) * 4) 0;
  padding-left:calc(var(--step) * 2);
  border-left:2px solid var(--accent);
  color:var(--muted);
}
article blockquote p{margin:0}

code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.88em;background:var(--surface);
  padding:.15em .4em;border-radius:3px;
}
pre{
  background:var(--surface);padding:calc(var(--step) * 2);
  overflow-x:auto;border-radius:4px;line-height:1.6;
}
pre code{background:none;padding:0}

figure{margin:calc(var(--step) * 4) 0}
figure img{max-width:100%;height:auto;display:block;border-radius:4px}
figcaption{color:var(--muted);font-size:13px;margin-top:var(--step);text-align:center}

hr{border:0;border-top:1px solid var(--line);margin:calc(var(--step) * 6) 0}

/* —— 上一篇 / 下一篇 —— */
.pager{
  display:flex;justify-content:space-between;gap:var(--step);
  margin-top:calc(var(--step) * 8);padding-top:calc(var(--step) * 3);
  border-top:1px solid var(--line);font-size:14px;
}
.pager a{color:var(--muted)}
.pager a:hover{color:var(--accent)}

/* —— 归档 —— */
.year{margin:calc(var(--step) * 6) 0 0;color:var(--muted);font-size:14px;letter-spacing:.1em}
.year + ul{list-style:none;padding:0;margin:var(--step) 0 0}
.year + ul li{padding:var(--step) 0;border-top:1px solid var(--line)}

/* —— 链接 —— */
a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* —— 键盘焦点可见（无障碍） —— */
a:focus-visible,button:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;
}

/* —— 页脚 —— */
footer{
  margin-top:calc(var(--step) * 10);padding-top:calc(var(--step) * 3);
  border-top:1px solid var(--line);
  color:var(--muted);font-size:13px;line-height:2;
}

/* —— 手机 —— */
@media (max-width:600px){
  .wrap{padding:48px 20px 72px}
  body{font-size:16px}
  article h1{font-size:23px}
  .postlist h2{font-size:18px}
}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;animation:none !important}
}

/* =========================================================
   首页 · 个人主页布局（编辑型 · 宽版心 + 标签栏分区）
   ========================================================= */

.wrap--home{max-width:1120px}

/* —— 顶栏 —— */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  gap:calc(var(--step) * 3);
  margin-bottom:calc(var(--step) * 10);
}
.brand{
  display:inline-flex;align-items:center;gap:10px;
  font-size:16px;color:var(--ink);border-bottom:none;letter-spacing:.02em;
}
.brand img{width:32px;height:32px;display:block}
.brand:hover{color:var(--accent);border-bottom:none}
.topbar nav{margin-top:0}

/* —— Hero —— */
.hero{padding:calc(var(--step) * 4) 0 calc(var(--step) * 10)}
.hero .eyebrow{
  color:var(--muted);font-size:13px;letter-spacing:.12em;
  margin:0 0 calc(var(--step) * 4);
}
.hero h1{
  font-size:38px;font-weight:600;line-height:1.5;letter-spacing:-.01em;
  margin:0;max-width:30ch;
}
.hero-lede{
  font-size:17px;line-height:2;margin:calc(var(--step) * 4) 0 0;
  color:var(--ink);max-width:none;
}
.hero-cta{margin:calc(var(--step) * 5) 0 0;display:flex;flex-wrap:wrap;gap:calc(var(--step) * 3)}
.btn{
  font-size:15px;line-height:1.6;
  border-bottom:1px solid var(--line);
  padding-bottom:2px;
}
.btn--primary{color:var(--accent);border-bottom-color:var(--accent)}
.btn:hover{border-bottom-color:var(--accent)}

/* —— 分区：左侧标签 + 右侧内容 —— */
.sec{
  display:grid;grid-template-columns:150px 1fr;
  gap:calc(var(--step) * 5);
  padding:calc(var(--step) * 8) 0;
  border-top:1px solid var(--line);
}
.sec .label{
  color:var(--muted);font-size:13px;letter-spacing:.12em;
  font-weight:400;margin:0;padding-top:6px;
}
.sec-body{max-width:760px}

/* Now */
.nowlist{list-style:none;padding:0;margin:0}
.nowlist li{
  padding:calc(var(--step) * 1.5) 0;
  font-size:16px;line-height:1.9;
}
.nowlist .k{
  color:var(--ink);margin-right:calc(var(--step) * 2);
}

/* Work */
.worklist{list-style:none;padding:0;margin:0}
.worklist > li{
  display:grid;grid-template-columns:44px 1fr auto;
  gap:calc(var(--step) * 3);align-items:baseline;
  padding:calc(var(--step) * 3) 0;
  border-top:1px solid var(--line);
}
.worklist > li:last-child{border-bottom:1px solid var(--line)}
.worklist .idx{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.worklist h3{font-size:19px;font-weight:600;margin:0;line-height:1.5}
.worklist h3 a{color:var(--ink);border-bottom:none}
.worklist h3 a:hover{color:var(--accent)}
.worklist .desc{margin:var(--step) 0 0;font-size:15px;color:var(--muted);line-height:1.8}
.worklist .kind{color:var(--muted);font-size:13px;white-space:nowrap}

/* About / 正文段落在首页 */
.prose{margin:0 0 calc(var(--step) * 3);font-size:16px;line-height:1.9}
.more{margin:calc(var(--step) * 3) 0 0;font-size:15px}
.more a{color:var(--accent)}

/* Elsewhere */
.elsewhere{list-style:none;padding:0;margin:0}
.elsewhere li{
  padding:var(--step) 0;font-size:15px;
  display:flex;gap:calc(var(--step) * 2);align-items:baseline;flex-wrap:wrap;
}
.elsewhere .note{color:var(--muted);font-size:13px}

/* —— 信任清单 —— */
.trustlist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--step) * 5) calc(var(--step) * 6)}
.trustlist li{padding-top:calc(var(--step) * 3);border-top:1px solid var(--line)}
.trustlist h3{font-size:16px;font-weight:600;margin:0}
.trustlist p{margin:var(--step) 0 0;font-size:15px;color:var(--muted);line-height:1.8}

/* —— 免费价值 / 订阅区 —— */
.panel{
  background:var(--surface);border-radius:3px;
  padding:calc(var(--step) * 5) calc(var(--step) * 5) calc(var(--step) * 4);
  max-width:680px;
}
.panel-kicker{color:var(--muted);font-size:13px;letter-spacing:.12em;margin:0 0 var(--step)}
.panel h3{font-size:24px;font-weight:600;margin:0;line-height:1.4}
.panel-desc{margin:var(--step) 0 0;font-size:16px;color:var(--ink);line-height:1.85}
.ticklist{margin:calc(var(--step) * 3) 0 0;padding:0;list-style:none}
.ticklist li{
  position:relative;padding-left:calc(var(--step) * 3);
  font-size:15px;line-height:1.9;color:var(--muted);
}
.ticklist li::before{
  content:"—";position:absolute;left:0;color:var(--accent);
}
.panel-note{color:var(--muted);font-size:13px;margin:calc(var(--step) * 3) 0 0}

/* —— 产品：每个只回答四件事 —— */
.products{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--step) * 5)}
.p-card{
  border:1px solid var(--line);border-radius:3px;
  padding:calc(var(--step) * 4) calc(var(--step) * 4) calc(var(--step) * 3);
  display:flex;flex-direction:column;
}
.p-kind{color:var(--muted);font-size:13px;letter-spacing:.1em;margin:0 0 var(--step)}
.p-card h3{font-size:19px;font-weight:600;margin:0;line-height:1.5}
.p-facts{margin:calc(var(--step) * 3) 0 0}
.p-facts dt{color:var(--muted);font-size:13px;letter-spacing:.08em;margin-top:calc(var(--step) * 2)}
.p-facts dd{margin:2px 0 0;font-size:15px;line-height:1.85}
.p-next{
  margin:calc(var(--step) * 4) 0 0;padding-top:calc(var(--step) * 2);
  border-top:1px solid var(--line);font-size:14px;color:var(--muted);
}
.p-next a{color:var(--accent)}

/* 页脚 */
.foot-line{margin:0 0 var(--step)}
footer p{margin:0}

/* —— 首页移动端：不是把桌面缩小，是重新排 —— */
@media (max-width:760px){
  .wrap--home{padding-top:40px}
  .topbar{flex-direction:column;align-items:flex-start;gap:calc(var(--step) * 2)}
  .topbar nav{gap:calc(var(--step) * 2.5)}
  .hero{padding:calc(var(--step) * 2) 0 calc(var(--step) * 6)}
  .hero h1{font-size:27px;line-height:1.5;max-width:none}
  .hero-lede{font-size:16px}
  .sec{grid-template-columns:1fr;gap:calc(var(--step) * 2);padding:calc(var(--step) * 6) 0}
  .sec .label{padding-top:0}
  .worklist > li{grid-template-columns:28px 1fr;gap:calc(var(--step) * 2)}
  .worklist .kind{grid-column:2;font-size:12px}
  .nowlist li{padding:calc(var(--step) * 1.5) 0;font-size:15px}
  .trustlist{grid-template-columns:1fr;gap:calc(var(--step) * 4)}
  .products{grid-template-columns:1fr;gap:calc(var(--step) * 4)}
  .panel{padding:calc(var(--step) * 4) calc(var(--step) * 3)}
  .panel h3{font-size:21px}
  .p-card{padding:calc(var(--step) * 3)}
}

/* 入场：只给 Hero 一点点，其余静态 */
@media (prefers-reduced-motion: no-preference){
  .hero{animation:rise .7s cubic-bezier(.2,.6,.2,1) both}
}
@keyframes rise{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}

/* =========================================================
   商店页 · 画廊式装裱网格
   ========================================================= */

.gallery-intro{
  color:var(--muted);font-size:15px;line-height:1.8;
  margin:0 0 calc(var(--step) * 6);
}
.gallery-intro strong{color:var(--ink);font-weight:500}

/* 二维码位：assets/wechat-qr.png 放进去就显示，没有就显示空框 */
.qrcode{
  margin:calc(var(--step) * 12) auto calc(var(--step) * 4);
  width:104px;text-align:center;
}
.qrcode img{width:104px;height:104px;display:block;border-radius:3px}
.qrcode.empty{
  border:1px dashed var(--line);border-radius:3px;
  height:104px;display:flex;align-items:center;justify-content:center;
}
.qrcode.empty::after{content:"二维码待放";color:var(--muted);font-size:12px}
.qrcap{color:var(--muted);font-size:12px;margin:var(--step) 0 0}

/* 网格：宽 3 列（画廊要留白足）→ 中 2 列 → 手机 1 列 */
.shopgrid{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:calc(var(--step) * 10) calc(var(--step) * 5);
}
@media (max-width:900px){
  .shopgrid{grid-template-columns:repeat(2,1fr);gap:calc(var(--step) * 7) calc(var(--step) * 4)}
}
@media (max-width:520px){
  .shopgrid{grid-template-columns:1fr;gap:calc(var(--step) * 7)}
}

/* 黑框 + 白卡纸 + 印花：框更细，图更大 */
.frame{
  background:#141311;padding:6px;border-radius:2px;
  transition:box-shadow .2s ease,transform .2s ease;
}
.mat{background:#FFFFFF;padding:12%}
.frame img{display:block;width:100%;height:auto}
.pcard a{border-bottom:none}
.pcard:hover .frame{box-shadow:0 8px 22px rgba(0,0,0,.16);transform:translateY(-3px)}

/* 作品信息：克制，只留名字和价格 */
.pcard .row{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-top:calc(var(--step) * 2);
}
.pcard h3{font-size:14px;font-weight:500;margin:0;line-height:1.6}
.pcard .by{color:var(--muted);font-size:12px;margin:2px 0 0}
.pcard .price{color:var(--muted);font-size:13px;margin:6px 0 0;letter-spacing:.02em}

/* 小按钮：淡化，只在 hover 时明显 */
.pbtns{display:flex;gap:6px;flex-shrink:0;opacity:.45;transition:opacity .2s ease}
.pcard:hover .pbtns{opacity:1}
.pbtn{
  width:28px;height:28px;border-radius:50%;
  border:1px solid var(--line);background:transparent;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:13px;color:var(--muted);
  text-decoration:none;padding:0;
}
.pbtn:hover{border-color:var(--accent);color:var(--accent)}

/* 商品二维码弹层：点带 qr 的作品弹出，点任意处或 Esc 关闭 */
.lightbox{
  position:fixed;inset:0;z-index:50;
  background:rgba(20,19,17,.55);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.lightbox-card{
  background:var(--bg);border-radius:8px;padding:16px 16px 12px;
  max-width:320px;width:100%;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
  text-align:center;
}
.lightbox-card img{display:block;width:100%;height:auto;border-radius:4px}
.lightbox-card p{color:var(--muted);font-size:13px;margin:12px 0 2px}
.pbtn.liked{color:#D0452B;border-color:#D0452B}
