/* =========================================================
   一人行 SoloTeam · 整站设计系统
   调性：宣纸墨色 + 活字印刷（去印章，用"字模方块"作区分人生增值的标志）
   原则：文化只在气质层（字体/字模/界栏/版框），功能文字仍说人话
   ========================================================= */
:root{
  /* 纸 · 墨 */
  --paper:#F5EFE3;
  --paper-2:#EFE7D6;
  --paper-3:#E7DAC2;
  --ink:#1F1F1F;
  --ink-soft:#4A453C;
  --ink-faint:#7B715C;

  /* 字模 · 铅墨（signature 色，替代原印章） */
  --type-face:#EDE3D0;          /* 字模印出的字（反白米色） */
  --block:#2B251C;              /* 字模身 */
  --block-hi:#3C3427;
  --block-lo:#100D09;

  /* 点缀 */
  --cinnabar:#B23A2E;          /* 校勘朱：仅用于下划线/圈点/链接，绝不做成方印 */
  --cinnabar-deep:#8E2C22;
  --ochre:#A9814B;             /* 黄铜界栏线 */
  --bamboo:#4A5D54;

  --line:rgba(31,31,31,0.16);
  --line-soft:rgba(31,31,31,0.09);

  --serif:"Source Han Serif SC","思源宋体 CN","Noto Serif SC","Songti SC","STSong","SimSun",Georgia,"Times New Roman",serif;
  --kai:"霞鹜文楷","LXGW WenKai","Kaiti SC","STKaiti","KaiTi","楷体",var(--serif);
  --latin:"EB Garamond",Georgia,"Times New Roman",serif;

  --maxw:1160px;
  --radius:3px;
  --shadow-block:0 5px 12px rgba(31,25,12,.16),inset 1px 1px 0 rgba(255,255,255,.09),inset -2px -3px 5px rgba(0,0,0,.4);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-size:17px;line-height:1.85;letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;position:relative;
}
body::before{ /* 宣纸细纹 */
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.55;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
}
.wrap{position:relative;z-index:1;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-weight:800;line-height:1.24;margin:0;letter-spacing:.02em;}
p{margin:0 0 1em;}
img{max-width:100%;display:block;}

/* ---------- 顶栏 ---------- */
.topbar{position:sticky;top:0;z-index:40;background:linear-gradient(to bottom,var(--paper) 72%,rgba(245,239,227,.86));border-bottom:1px solid var(--line);}
.topbar .row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;}
/* 品牌组合 lockup：左“众”标；右上“一人行”、右下 SOLOTEAM */
.brand{display:grid;grid-template-columns:auto auto;column-gap:12px;row-gap:2px;align-items:center;}
.brand .mark{grid-row:1 / span 2;width:44px;height:44px;background:url(mark.svg) no-repeat center/contain;}
.brand .mark .tb{display:none;}
.brand .wordmark{grid-column:2;font-size:19px;font-weight:800;letter-spacing:.14em;line-height:1.15;}
.brand .en{grid-column:2;justify-self:start;font-family:var(--latin);font-size:10px;color:var(--ink-faint);letter-spacing:.3em;text-transform:uppercase;line-height:1.2;}
footer .brand .mark{background-image:url(mark-footer.svg);}

/* ---------- 用户菜单（点用户名弹出，竖排；退出垫底） ---------- */
.auth-slot{position:relative;display:inline-flex;align-items:center;margin-left:28px;}
.um-trigger{background:none;border:0;font-family:var(--kai);font-size:17px;color:var(--ink);cursor:pointer;padding:6px 2px;letter-spacing:.08em;}
.um-trigger .caret{font-size:12px;color:var(--ink-faint);margin-left:5px;}
.user-menu{position:absolute;right:0;top:calc(100% + 12px);min-width:150px;background:var(--paper);border:1px solid var(--ink);box-shadow:6px 6px 0 rgba(31,25,12,.10);padding:6px 0;z-index:80;flex-direction:column;}
.user-menu a,.user-menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 16px;font-family:var(--serif);font-size:14.5px;color:var(--ink);cursor:pointer;white-space:nowrap;}
.user-menu a:hover,.user-menu button:hover{background:var(--paper-2);}
.user-menu .um-exit{color:var(--cinnabar-deep);border-top:1px solid var(--line-soft);margin-top:4px;}
nav.top{margin-left:auto;}
.menu-btn{display:none !important;margin-left:auto;}
.user-menu .um-navtoggle{display:none;}
@media (max-width:900px){.user-menu .um-navtoggle{display:block;}}
.um-navtop{display:none;background:none;border:0;font-family:var(--kai);font-size:17px;color:var(--ink);cursor:pointer;padding:6px 2px;letter-spacing:.06em;margin-right:12px;}
@media (max-width:900px){.um-navtop{display:inline-block;}}
.a-row{display:flex;gap:10px;align-items:flex-start;padding:7px 2px;font-size:15px;color:var(--ink-soft);cursor:pointer;}
.a-row:hover{color:var(--ink);}
.a-row input{margin-top:4px;accent-color:var(--cinnabar);}

nav.top{display:flex;align-items:center;gap:28px;}
nav.top a{font-size:15.5px;color:var(--ink-soft);position:relative;padding:4px 0;}
nav.top a.active{color:var(--ink);}
nav.top a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--cinnabar);transition:right .3s;}
nav.top a:hover::after,nav.top a.active::after{right:0;}
.menu-btn{display:none !important;}

/* ---------- 字模块 .tb（白底·红框·红字·正字；聚合靠"独立的字"与"成行的字"本身表达，不刻意做字模质感） ---------- */
.tb{
  display:inline-grid;place-items:center;position:relative;width:44px;height:44px;flex:none;
  background:#FBF6EB;
  color:var(--cinnabar);
  font-family:var(--serif);font-weight:800;font-size:20px;line-height:1;
  border:1.6px solid var(--cinnabar);border-radius:var(--radius);
  box-shadow:none;
  transition:transform .16s ease,background .18s ease,color .18s ease;user-select:none;
}
.tb i{font-style:normal;} /* 字正过来 */
.tb.red{background:#FBF6EB;color:var(--cinnabar-deep);border-color:var(--cinnabar-deep);border-width:2.4px;} /* 强调：同白底红框红字，仅框更重、字更深 */
.tb.red i{color:inherit;}
.tb.sm{width:34px;height:34px;font-size:16px;}
.tb.lg{width:64px;height:64px;font-size:28px;}
.tb.xl{width:88px;height:88px;font-size:42px;}
.tb.empty{border-style:dashed;color:var(--ink-faint);}       /* 空缺字位 */
.tb.empty i{opacity:.5;}
.tb:hover{background:var(--cinnabar);color:#FBF6EB;}
.tb.red:hover{background:var(--cinnabar-deep);color:#FBF6EB;}
@keyframes setIn{0%{opacity:0;transform:translateY(9px);}100%{opacity:1;transform:none;}}
.tb.anim{animation:setIn .5s cubic-bezier(.2,.9,.3,1) both;}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--serif);font-size:16px;letter-spacing:.05em;padding:13px 28px;cursor:pointer;border:1px solid var(--ink);background:transparent;color:var(--ink);transition:.22s ease;}
.btn.primary{background:var(--ink);color:var(--paper);}
.btn.primary:hover{background:var(--cinnabar-deep);border-color:var(--cinnabar-deep);color:#F7E9DF;transform:translateY(-1px);}
.btn.ghost{background:transparent;}
.btn.ghost:hover{background:var(--paper-3);border-color:var(--paper-3);}
.btn.sm{padding:8px 18px;font-size:14.5px;}
.btn.block{width:100%;justify-content:center;}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;}

/* ---------- 通用分节 ---------- */
section{padding:78px 0;}
.sec-kicker{font-family:var(--kai);color:var(--ochre);font-size:15px;letter-spacing:.26em;margin-bottom:10px;}
.sec-head{max-width:62ch;margin-bottom:42px;}
.sec-head h2{font-size:clamp(26px,3.8vw,40px);}
.sec-head .sub{margin-top:14px;color:var(--ink-soft);font-size:16.5px;}
.eyebrow{font-family:var(--latin);color:var(--ochre);letter-spacing:.3em;text-transform:uppercase;font-size:13px;display:flex;align-items:center;gap:12px;}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--ochre);}
.hero .eyebrow{font-size:17px;letter-spacing:.28em;gap:14px;}
.hero .eyebrow::before{width:40px;}

/* 界行装饰 */
.rule{height:1px;background:linear-gradient(to right,transparent,var(--line),transparent);border:0;margin:0;}
.rule.double{height:5px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;}

/* 版框卡片（替代印章作文化锚点） */
.frame{background:var(--paper);border:1px solid var(--ink);outline:1px solid var(--line);outline-offset:6px;padding:34px;position:relative;}
.frame .tail{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--paper);color:var(--ochre);padding:0 12px;font-size:14px;letter-spacing:.3em;}
.juan-no{position:absolute;top:12px;right:14px;font-family:var(--kai);color:var(--cinnabar-deep);letter-spacing:.18em;font-size:14px;}

/* ---------- Hero ---------- */
.hero{padding:82px 0 72px;border-bottom:1px solid var(--line);position:relative;}
.hero::before,.hero::after{content:"";position:absolute;top:22px;bottom:22px;width:1px;background:var(--line);}
.hero::before{left:22px;}.hero::after{right:22px;}
.vlabel{position:absolute;top:40px;left:2px;writing-mode:vertical-rl;font-family:var(--kai);color:var(--ink-faint);letter-spacing:.42em;font-size:14px;}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center;}
.hero h1{font-size:clamp(46px,7vw,84px);letter-spacing:.06em;margin:14px 0 10px;}
.hero .title-blocks{display:flex;gap:10px;}
.hero .subtitle{font-family:var(--kai);color:var(--cinnabar-deep);font-size:clamp(19px,2.4vw,25px);letter-spacing:.12em;margin:14px 0 22px;}
.hero .lede{color:var(--ink-soft);max-width:44ch;}
.trust{margin-top:18px;font-size:13.5px;color:var(--ink-faint);}
.trust b{color:var(--cinnabar-deep);}

/* 排字盘 */
.stick{background:linear-gradient(#efe7d7,#e4d8bf);border:1px solid var(--line);box-shadow:inset 0 2px 0 rgba(255,255,255,.5),0 16px 30px rgba(31,25,12,.14);border-radius:8px;padding:26px;}
.stick .tray{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.stick .tb{width:100%;height:auto;aspect-ratio:1/1;font-size:clamp(18px,3.6vw,26px);}
.stick .tb.empty i{opacity:.14;}
.stick .cap{font-family:var(--kai);color:var(--ink-faint);font-size:13.5px;letter-spacing:.14em;margin-top:18px;text-align:center;}
.stick .cap s{color:var(--cinnabar-deep);text-decoration:none;border-bottom:1px dashed var(--cinnabar-deep);}

/* ---------- 三段价值 · 界栏 ---------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);}
.grid5{display:grid;grid-template-columns:repeat(5,1fr);}
@media (max-width:1100px){.grid5{grid-template-columns:repeat(2,1fr);}}
.grid5 .pillar{padding:28px 20px;}
.pillar p a{color:var(--cinnabar-deep);white-space:nowrap;}
.pillar p a:hover{text-decoration:underline;}
.pillar{padding:32px 26px;border-left:1px solid var(--line);}
.pillar:first-child{border-left:none;}
.pillar .no{font-family:var(--kai);color:var(--cinnabar-deep);letter-spacing:.2em;font-size:15px;margin:16px 0 10px;}
.pillar h3{font-size:21px;margin-bottom:10px;}
.pillar p{color:var(--ink-soft);font-size:15.5px;margin:0;}
.pillar:hover{background:rgba(169,129,75,.07);}

/* ---------- 论语/活字 band ---------- */
.band{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:78px 0;}
.band .orig{font-family:var(--kai);color:var(--ink-faint);font-size:clamp(18px,2.6vw,26px);letter-spacing:.12em;}
.band .orig s{color:var(--ink-faint);}
.band .arrow{color:var(--ochre);margin:20px 0;font-size:18px;letter-spacing:.2em;}
.band .new{font-family:var(--kai);color:var(--cinnabar-deep);font-size:clamp(26px,4.6vw,44px);letter-spacing:.1em;font-weight:700;}
.band .src{margin-top:16px;font-size:13.5px;color:var(--ink-faint);letter-spacing:.12em;}

/* ---------- 卷首 · 立盟之言（置顶横幅） ---------- */
.masthead{
  text-align:center;position:relative;
  padding:38px 22px 34px;
  background:linear-gradient(180deg,var(--paper-2),var(--paper));
  border-bottom:1px solid var(--line);
}
.masthead .cap{font-family:var(--kai);letter-spacing:.42em;color:var(--ochre);font-size:13px;margin-bottom:16px;}
.masthead .cap::before,.masthead .cap::after{content:"❧";color:var(--line);margin:0 14px;letter-spacing:0;}
.masthead .orig{font-family:var(--kai);color:var(--ink-faint);font-size:clamp(15px,2vw,19px);letter-spacing:.16em;}
.masthead .orig s{color:var(--ink-faint);}
.masthead .turn{color:var(--ochre);letter-spacing:.28em;font-size:12.5px;margin:14px 0 12px;}
.masthead .motto{font-family:var(--kai);font-weight:700;color:var(--cinnabar-deep);font-size:clamp(26px,5vw,44px);letter-spacing:.14em;}
.masthead .from{font-family:var(--kai);color:var(--ink-faint);font-size:13.5px;letter-spacing:.24em;margin-top:14px;}

/* 散字→排版 */
.ba-row{border:1px solid var(--line-soft);border-radius:8px;padding:22px 24px;background:rgba(255,255,255,.25);}
.ba-row .lab{font-family:var(--kai);letter-spacing:.14em;font-size:15px;margin-bottom:14px;color:var(--ink-soft);}
.ba-row.after .lab{color:var(--cinnabar-deep);}
.ba-line{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.ba-note{margin-top:12px;font-size:14.5px;color:var(--ink-faint);}

/* ---------- 步骤 ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.step{background:var(--paper);border:1px solid var(--line);padding:30px 26px;box-shadow:5px 5px 0 rgba(31,25,12,.06);}
.step h3{font-size:20px;margin:16px 0 10px;}
.step p{color:var(--ink-soft);font-size:15px;margin:0;}

/* ---------- 列表/名录 通用 ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:26px;}
.chip{font-family:var(--serif);font-size:14px;letter-spacing:.04em;padding:7px 16px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);cursor:pointer;transition:.18s;}
.chip:hover{border-color:var(--ink);color:var(--ink);}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--paper);padding:8px 14px;min-width:260px;}
.search input{border:0;background:transparent;font-family:var(--serif);font-size:15px;color:var(--ink);outline:none;flex:1;}
.list{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.mcard{display:flex;gap:16px;padding:24px;background:var(--paper);border:1px solid var(--line);transition:.2s;}
.mcard:hover{border-color:var(--ink);box-shadow:0 10px 22px rgba(31,25,12,.1);transform:translateY(-2px);}
.mcard .body{flex:1;min-width:0;}
.mcard .name{font-size:18px;font-weight:800;}
.mcard .role{font-size:13.5px;color:var(--ink-faint);margin-bottom:12px;}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.tag{font-family:var(--kai);font-size:13px;letter-spacing:.04em;padding:3px 10px;border:1px solid var(--line-soft);color:var(--ink-soft);}
.tag.give{border-color:rgba(74,93,84,.4);color:var(--bamboo);}
.tag.want{border-color:rgba(178,58,46,.4);color:var(--cinnabar-deep);}
.mcard .desc{font-size:15px;color:var(--ink-soft);margin:0 0 14px;}
.mcard .foot{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--ink-faint);}
.mcard .name .ent{font-size:13px;font-weight:400;color:var(--ink-faint);margin-left:2px;}
.mcard .ameta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:13px;color:var(--ink-faint);margin:2px 0 10px;letter-spacing:.01em;}
.mcard .ameta .sep{opacity:.45;}
.tag.cat{border-color:rgba(169,129,75,.45);color:var(--ochre);}

/* ---------- 成员主页 ---------- */
.profile-head{background:var(--paper-2);border-bottom:1px solid var(--line);padding:46px 0;}
.profile-head .top{display:flex;gap:22px;align-items:center;flex-wrap:wrap;}
.profile-head .name{font-size:30px;font-weight:800;}
.profile-head .role{color:var(--ink-soft);font-size:16px;margin-top:4px;}
.profile-head .meta{margin-left:auto;text-align:right;font-size:14px;color:var(--ink-faint);}
.cols{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start;}
.block-card{border:1px solid var(--line);background:var(--paper);padding:26px;margin-bottom:22px;}
.block-card h4{font-family:var(--kai);color:var(--cinnabar-deep);letter-spacing:.12em;font-size:17px;margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.side-card{border:1px solid var(--ink);outline:1px solid var(--line);outline-offset:5px;padding:26px;background:var(--paper);position:sticky;top:86px;}

/* ---------- 帖子 / 广场 ---------- */
.feed{display:grid;gap:20px;}
.post{border:1px solid var(--line);background:var(--paper);padding:24px;transition:.2s;}
.post:hover{border-color:var(--ink);box-shadow:0 8px 20px rgba(31,25,12,.08);}
.post .phead{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.post .ptype{font-family:var(--kai);font-size:13px;letter-spacing:.1em;padding:3px 12px;border:1px solid var(--line);}
.post .ptype.q{color:var(--cinnabar-deep);border-color:rgba(178,58,46,.4);}
.post .ptype.a{color:var(--bamboo);border-color:rgba(74,93,84,.4);}
.post .ptype.d{color:var(--ochre);border-color:rgba(169,129,75,.4);}
.post .pname{font-size:14.5px;color:var(--ink-soft);}
.post .ptime{margin-left:auto;font-size:13px;color:var(--ink-faint);}
.post h3{font-size:20px;margin-bottom:10px;}
.post .pbody{color:var(--ink-soft);font-size:15.5px;margin-bottom:14px;}
.post .pfoot{display:flex;gap:18px;font-size:14px;color:var(--ink-faint);border-top:1px solid var(--line-soft);padding-top:12px;}
.post .pfoot b{color:var(--cinnabar-deep);}
.reply{border-left:2px solid var(--line);padding:14px 0 14px 18px;margin:12px 0 0 6px;}
.reply .rname{font-family:var(--kai);color:var(--cinnabar-deep);font-size:14px;margin-bottom:4px;}

/* ---------- 帖子详情（post.html）· 回复/赞/藏 ---------- */
.art{background:var(--paper);border:1px solid var(--ink);box-shadow:6px 6px 0 rgba(31,25,12,.08);padding:34px 36px;}
.art-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.art-h .ptype{font-family:var(--kai);font-size:13px;letter-spacing:.1em;padding:3px 12px;border:1px solid var(--line);}
.art-h .ptype.q{color:var(--cinnabar-deep);border-color:rgba(178,58,46,.4);}
.art-h .ptype.a{color:var(--bamboo);border-color:rgba(74,93,84,.4);}
.art-h .ptype.d{color:var(--ochre);border-color:rgba(169,129,75,.4);}
.art-t{font-size:26px;line-height:1.45;margin:0 0 16px;}
.art-b p{color:var(--ink-soft);font-size:16.5px;line-height:1.85;}
.art-out{font-family:var(--kai);color:var(--bamboo);letter-spacing:.08em;}
.actbar{display:flex;align-items:center;gap:14px;margin:22px 0;padding:14px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;}
.act-btn{font-family:var(--serif);font-size:15px;color:var(--ink-soft);background:none;border:1px solid var(--line);padding:7px 18px;cursor:pointer;letter-spacing:.06em;transition:.18s;}
.act-btn:hover{border-color:var(--ink);color:var(--ink);}
.act-btn.on{color:var(--cinnabar-deep);border-color:rgba(178,58,46,.55);background:rgba(178,58,46,.05);}
.act-btn b{font-weight:800;}
.act-cnt{font-size:14.5px;color:var(--ink-faint);}
.act-cnt b{color:var(--cinnabar-deep);}
.cm-box{margin:6px 0 26px;}
.cm-box textarea{width:100%;}
.cm-head{font-family:var(--kai);color:var(--cinnabar-deep);letter-spacing:.12em;font-size:17px;margin:0 0 14px;}
.cm{border-top:1px solid var(--line-soft);padding:16px 0;}
.cm.child{margin-left:46px;background:var(--paper-2);padding:12px 16px;border-top:0;border-left:2px solid var(--line);}
.cm-h{display:flex;align-items:center;gap:10px;}
.cm-time{color:var(--ink-faint);font-size:13px;}
.cm-b{margin:8px 0 6px;color:var(--ink-soft);font-size:15.5px;line-height:1.8;}
.cm-at{color:var(--ochre);}
.cm-f{display:flex;gap:16px;align-items:center;}
.cm-btn{background:none;border:0;cursor:pointer;font-family:var(--serif);font-size:14px;color:var(--ink-faint);padding:2px 0;}
.cm-btn:hover{color:var(--ink);}
.cm-btn.on{color:var(--cinnabar-deep);}
.cm-rbox{margin-top:10px;}
@media (max-width:900px){.art{padding:24px 18px;}.cm.child{margin-left:14px;}}

/* ---------- 项目广场 ---------- */
.pboard{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.proj{border:1px solid var(--line);background:var(--paper);padding:24px;transition:.2s;display:flex;flex-direction:column;}
.proj:hover{border-color:var(--ink);box-shadow:0 10px 22px rgba(31,25,12,.09);transform:translateY(-2px);}
.proj .ph{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.proj .pbadge{font-family:var(--kai);font-size:13px;letter-spacing:.06em;padding:3px 12px;border-radius:2px;border:1px solid var(--line);}
.pbadge.recruit{color:var(--cinnabar-deep);border-color:rgba(178,58,46,.4);background:rgba(178,58,46,.05);}
.pbadge.outsrc{color:var(--bamboo);border-color:rgba(74,93,84,.4);}
.pbadge.part{color:var(--ochre);border-color:rgba(169,129,75,.45);}
.pbadge.lead{color:var(--ink-soft);}
.proj .powner{font-size:13.5px;color:var(--ink-soft);}
.proj .ptime{margin-left:auto;font-size:12.5px;color:var(--ink-faint);}
.proj h3{font-size:20px;margin-bottom:8px;}
.proj .pp{color:var(--ink-soft);font-size:15px;margin:0 0 14px;}
.proj .pneed{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.proj .pmeta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.proj .pmeta .pm{font-size:13px;color:var(--ink-faint);border:1px dashed var(--line);padding:3px 10px;font-family:var(--kai);letter-spacing:.04em;}
.proj .pf{margin-top:auto;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line-soft);padding-top:14px;font-size:14px;color:var(--ink-faint);}
.proj .pf b{color:var(--cinnabar-deep);}
.proj .state.open{color:var(--bamboo);}
.proj .state.closed{color:var(--ink-faint);}
.proj.done{opacity:.68;}
.proj.done:hover{transform:none;box-shadow:none;border-color:var(--line);}
@media (max-width:900px){.pboard{grid-template-columns:1fr;}}
.proj{cursor:pointer;}
.proj:focus-visible{outline:2px solid var(--cinnabar);outline-offset:3px;}
.mcard{cursor:pointer;}
.mcard:focus-visible{outline:2px solid var(--cinnabar);outline-offset:3px;}

/* ---------- 详情弹窗（项目/名片等复用） ---------- */
.modal{position:fixed;inset:0;z-index:90;display:none;}
.modal.open{display:block;}
.modal-bd{position:absolute;inset:0;background:rgba(23,21,15,.5);backdrop-filter:blur(1.5px);}
.modal-card{position:relative;max-width:660px;width:calc(100% - 40px);margin:6vh auto;max-height:88vh;overflow:auto;background:var(--paper);border:1px solid var(--ink);outline:1px solid var(--line);outline-offset:6px;padding:32px 34px 28px;box-shadow:0 30px 70px rgba(0,0,0,.35);animation:pop .28s ease;}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.98);}to{opacity:1;transform:none;}}
.modal-x{position:sticky;top:0;float:right;margin:-6px -6px 0 0;width:34px;height:34px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font-size:18px;line-height:1;cursor:pointer;border-radius:2px;z-index:2;}
.modal-x:hover{border-color:var(--ink);color:var(--ink);}
.modal-card .mhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.modal-card .mtitle{font-size:clamp(22px,3.4vw,28px);margin:0 0 10px;}
.modal-card .mown{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin:18px 0 8px;font-size:14px;color:var(--ink-soft);}
.modal-card h5{font-family:var(--kai);color:var(--cinnabar-deep);letter-spacing:.1em;font-size:15px;margin:22px 0 10px;}
.modal-card .mb{color:var(--ink-soft);font-size:15.5px;margin:0 0 12px;}
.modal-card .mrow{display:flex;flex-wrap:wrap;gap:8px;}
.modal-card .mstat{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:24px 0 12px;font-size:14px;color:var(--ink-faint);}
.modal-card .mstat b{color:var(--cinnabar-deep);}
.modal-card .mact{display:flex;gap:12px;flex-wrap:wrap;}
.modal-note{margin-top:14px;font-size:13px;color:var(--ink-faint);}
@media (prefers-reduced-motion:reduce){.modal-card{animation:none;}}

/* ---------- 表单 ---------- */
.form{max-width:560px;margin:0 auto;border:1px solid var(--line);background:var(--paper);padding:38px 34px;box-shadow:6px 6px 0 rgba(31,25,12,.06);}
.form .tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:26px;}
.form .tabs button{flex:1;font-family:var(--kai);font-size:16px;letter-spacing:.1em;padding:12px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--ink-faint);cursor:pointer;}
.form .tabs button.on{color:var(--ink);border-bottom-color:var(--cinnabar-deep);}
.field{margin-bottom:20px;}
.field label{display:block;font-size:14.5px;color:var(--ink-soft);margin-bottom:7px;letter-spacing:.03em;}
.field label .req{color:var(--cinnabar-deep);}
.field label .opt{color:var(--ink-faint);font-size:12.5px;margin-left:6px;}
.field input,.field textarea,.field select{width:100%;font-family:var(--serif);font-size:16px;color:var(--ink);background:var(--paper-2);border:1px solid var(--line);padding:12px 14px;border-radius:var(--radius);transition:.18s;outline:none;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);background:var(--paper);}
.field .hint{font-size:13px;color:var(--ink-faint);margin-top:6px;}
.form-note{font-size:13.5px;color:var(--ink-faint);text-align:center;margin-top:18px;}

/* ---------- 结尾 CTA ---------- */
.final{text-align:center;background:var(--paper-2);border-top:1px solid var(--line);padding:88px 0;}
.final h2{font-size:clamp(28px,4.8vw,46px);letter-spacing:.04em;margin-bottom:14px;}
.final .kai{font-family:var(--kai);color:var(--cinnabar-deep);font-size:22px;letter-spacing:.1em;margin-bottom:32px;}

/* ---------- 页脚 ---------- */
footer{border-top:1px solid var(--line);background:var(--ink);color:#C9C0AF;padding:44px 0;}
footer .foot-inner{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;}
footer .wordmark{color:#F3EBDD;}
footer .en{color:#8f8878;border-color:rgba(255,255,255,.16);}
footer .tb{box-shadow:0 0 0 3px rgba(0,0,0,.16);}
footer nav{display:flex;gap:26px;font-size:14px;color:#b6ac97;}
footer nav a:hover{color:#fff;}
footer .tiny{width:100%;font-size:12.5px;color:#7d7667;border-top:1px solid rgba(255,255,255,.1);padding-top:18px;margin-top:6px;}

/* ---------- 淡入 ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s,transform .7s;}
.reveal.in{opacity:1;transform:none;}

/* ---------- 面包屑/内页头 ---------- */
.page-head{border-bottom:1px solid var(--line);padding:44px 0 36px;}
.page-head .crumb{font-size:13.5px;color:var(--ink-faint);margin-bottom:12px;font-family:var(--kai);letter-spacing:.1em;}
.page-head h1{font-size:clamp(30px,5vw,46px);}
.page-head .lead{color:var(--ink-soft);margin-top:12px;max-width:60ch;}

/* ---------- 响应式 ---------- */
@media (max-width:900px){
  .hero-grid,.cols{grid-template-columns:1fr;}
  .stick{order:-1;}
  .list{grid-template-columns:1fr;}
  .grid3,.grid5,.steps{grid-template-columns:1fr;}
  .pillar{border-left:none;border-top:1px solid var(--line);}
  .pillar:first-child{border-top:none;}
  .vlabel,.hero::before,.hero::after{display:none;}
  nav.top{display:none;}
  .brand .en{display:none;}
  .side-card{position:static;}
  .profile-head .meta{margin-left:0;text-align:left;width:100%;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .reveal{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}
