/* Nexus｜泊 · v4 「极简」
   留白 + 细线 + 单色印刷感。一页一意，不堆装饰。 */

:root{
  --ink:#16242e;
  --ink-2:#5a6770;
  --ink-3:#8a939a;
  --paper:#faf7ee;
  --paper-2:#f0ebde;
  --line:#d9d3c5;
  --tide:#1d5560;
  --thu:#5d0866;
  --pku:#94101a;
  --maxw:1040px;
  --serif:"Songti SC","Noto Serif SC",ui-serif,Georgia,serif;
  --sans:"PingFang SC",-apple-system,ui-sans-serif,"Helvetica Neue",sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--serif);
  font-size:17px;line-height:1.78;letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.sans{font-family:var(--sans)}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--ink-3)}

/* —— 顶栏 —— */
.nav{position:sticky;top:0;z-index:30;background:rgba(250,247,238,.92);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:62px}
.brand{font-family:var(--serif);font-weight:600;letter-spacing:.04em;font-size:19px;display:flex;align-items:baseline;gap:.05em}
.brand .en{font-family:"Times New Roman",Georgia,serif;letter-spacing:.06em;font-weight:500}
.brand .bar{color:var(--ink-3);margin:0 .08em;font-weight:300}
.nav-links{display:flex;gap:24px;margin-left:auto;font-family:var(--sans);font-size:14px}
.nav-links a{color:var(--ink-2);padding:5px 0;border-bottom:1.5px solid transparent;transition:color .15s,border-color .15s;letter-spacing:.04em}
.nav-links a:hover,.nav-links a.on{color:var(--ink);border-color:var(--ink)}
.auth{margin-left:22px;display:flex;align-items:center;gap:14px;font-family:var(--sans);font-size:13px;white-space:nowrap}
.auth .login{color:var(--paper);background:var(--ink);border-radius:0;padding:8px 18px;letter-spacing:.06em;transition:background .15s}
.auth .login:hover{background:var(--tide)}
.auth .who{color:var(--ink-2)}
.auth .lo{color:var(--ink-3);border-bottom:1px solid var(--line)}

/* —— Hero —— */
.hero{padding:140px 0 120px;position:relative}
.hero .wrap{position:relative;z-index:2}
.hero h1{font-size:clamp(48px,7vw,88px);line-height:1.1;font-weight:600;letter-spacing:.01em;margin:0 0 32px;color:var(--ink)}
.hero h1 .soft{display:block;color:var(--ink-2);font-weight:400}
.hero .lede{font-size:clamp(17px,1.4vw,19px);line-height:1.85;color:var(--ink-2);max-width:32em;margin:0 0 44px}
.hero .cta{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:.06em;color:var(--paper);background:var(--ink);padding:14px 26px;cursor:pointer;border:0;transition:background .16s}
.hero .cta:hover{background:var(--tide)}
.hero .cta .arrow{font-family:var(--serif);font-weight:400}
.hero .or{margin-left:24px;font-family:var(--sans);font-size:14px;color:var(--ink-3);letter-spacing:.04em;border-bottom:1px solid var(--line);padding-bottom:2px}
.hero .or:hover{color:var(--ink);border-color:var(--ink)}

/* hero 角落小插画 —— 极淡，不抢戏 */
.hero .ship{position:absolute;right:36px;top:50%;transform:translateY(-50%);width:min(38vw,460px);opacity:.85;z-index:1;pointer-events:none}

/* —— stats 一行 —— */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px 0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.stat .n{font-family:var(--serif);font-size:38px;line-height:1;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.stat .l{margin-top:8px;font-family:var(--sans);font-size:12px;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase}

/* —— 三入口 —— */
.entries{padding:100px 0}
.entries .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}
.entry{display:flex;flex-direction:column;padding-top:18px;border-top:1px solid var(--ink)}
.entry h3{font-size:24px;font-weight:600;margin:0 0 12px;letter-spacing:.01em}
.entry p{color:var(--ink-2);font-size:15px;line-height:1.78;margin:0 0 24px;flex:1}
.entry .go{font-family:var(--sans);font-size:13px;letter-spacing:.08em;color:var(--ink);align-self:flex-start;padding-bottom:3px;border-bottom:1px solid var(--ink);transition:padding .16s}
.entry .go:hover{padding-bottom:5px}

/* —— 共通 section —— */
.section{padding:80px 0}
.section.alt{background:var(--paper-2)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:38px;padding-bottom:18px;border-bottom:1px solid var(--ink)}
.section-head h2{font-size:30px;font-weight:600;margin:0;letter-spacing:.01em}
.count{font-family:var(--sans);font-size:13px;color:var(--ink-3);letter-spacing:.04em;white-space:nowrap}
.back{display:inline-block;font-family:var(--sans);font-size:13px;color:var(--ink-2);margin-bottom:20px;letter-spacing:.04em;border-bottom:1px solid var(--line);padding-bottom:2px}
.back:hover{color:var(--ink);border-color:var(--ink)}

/* —— 过滤条 —— */
.toolbar{position:sticky;top:62px;z-index:20;background:rgba(250,247,238,.94);backdrop-filter:blur(8px);padding:16px 0;margin:0 0 30px;border-bottom:1px solid var(--line)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-family:var(--sans)}
.chip{font-size:13px;color:var(--ink-2);background:transparent;border:1px solid var(--line);padding:6px 13px;cursor:pointer;transition:all .14s;letter-spacing:.03em;border-radius:0}
.chip:hover{border-color:var(--ink-2)}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.search{flex:1;min-width:170px;font-family:var(--sans);font-size:14px;background:#fff;border:1px solid var(--line);padding:6px 13px;color:var(--ink);border-radius:0}
.search::placeholder{color:var(--ink-3)}

/* —— 社群卡 —— */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.gcard{background:#fff;border:1px solid var(--line);padding:22px 24px;display:flex;flex-direction:column;gap:13px;transition:border-color .15s}
.gcard:hover{border-color:var(--ink)}
.gcard .top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.gcard h4{font-size:18px;line-height:1.34;margin:0;flex:1;font-weight:600}
.gcard .mem{font-family:var(--serif);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.gcard .mem em{font-style:normal;font-weight:400;color:var(--ink-3);font-size:11px;margin-left:2px}
.gcard .nature{font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase}
.rail{display:flex;height:4px;background:var(--paper-2)}
.rail i{display:block;height:100%}
.rail .t{background:var(--thu)} .rail .p{background:var(--pku)}
.rail-legend{font-family:var(--sans);font-size:11px;color:var(--ink-3);display:flex;gap:14px}
.rail-legend .lt{color:var(--thu)} .rail-legend .lp{color:var(--pku)}
.rail-legend b{font-weight:600}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-family:var(--sans);font-size:11px;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);padding:2px 8px}
.tag.prog{color:var(--tide);border-color:#bcd2d7;background:#e7eef0}
.gcard .owner{font-family:var(--sans);font-size:12.5px;color:var(--ink-2);border-top:1px dashed var(--line);padding-top:11px;display:flex;justify-content:space-between;gap:10px}
.gcard .wxid{color:var(--tide);font-variant-numeric:tabular-nums}
.gcard .wxid .tv{font-style:normal;font-size:10.5px;color:var(--ink-3);margin-left:3px}
.gcard .wxid.none{color:var(--ink-3)}

/* —— 俱乐部介绍 —— */
.club-intro{padding:22px 24px;border:1px solid var(--line);background:#fff;margin-bottom:26px}
.club-intro h4{font-size:18px;margin:0 0 10px;font-weight:600}
.club-intro p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.78}
.club-intro a{color:var(--tide);border-bottom:1px solid var(--line)}

/* —— 分享会 index —— */
.salons{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.scard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);padding:30px 28px;transition:border-color .15s}
.scard:hover{border-color:var(--ink)}
.scard .stag{font-family:var(--sans);font-size:11px;letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase}
.scard h3{font-size:26px;margin:14px 0 8px;font-weight:600;letter-spacing:.01em}
.scard .meta{font-family:var(--sans);font-size:13px;color:var(--ink-3);margin-bottom:14px}
.scard p{color:var(--ink-2);font-size:14.5px;line-height:1.78;margin:0;flex:1}
.scard .cnt{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);font-family:var(--sans);font-size:13px;color:var(--ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.scard .cnt .big{font-family:var(--serif);font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.scard .cnt .big span{font-size:13px;font-weight:400;font-family:var(--sans);letter-spacing:.06em;margin-left:3px;color:var(--ink-3)}
.scard.soon{opacity:.65}
.scard.soon:hover{border-color:var(--line)}

/* —— 分享会详情 hero —— */
.salon-hero{padding:54px 0 40px;background:var(--paper-2);border-bottom:1px solid var(--line)}
.salon-hero .stag{font-family:var(--sans);font-size:12px;color:var(--ink-3);letter-spacing:.22em;text-transform:uppercase}
.salon-hero h1{font-size:clamp(36px,5vw,54px);margin:14px 0 14px;font-weight:600;letter-spacing:.01em;line-height:1.15}
.salon-hero .host{font-family:var(--sans);font-size:14px;color:var(--ink-2)}
.salon-hero .desc{margin-top:16px;max-width:42em;color:var(--ink-2);line-height:1.85}
.salon-hero .hstats{margin-top:22px;display:flex;gap:40px;padding-top:20px;border-top:1px solid var(--line)}
.salon-hero .hstats .n{font-family:var(--serif);font-size:30px;font-weight:600;font-variant-numeric:tabular-nums}
.salon-hero .hstats .l{font-family:var(--sans);font-size:11.5px;color:var(--ink-3);margin-top:6px;letter-spacing:.12em;text-transform:uppercase}

/* —— 时间线 —— */
.timeline{position:relative}
.period{display:grid;grid-template-columns:130px 1fr;gap:30px;padding:30px 0;border-top:1px solid var(--line)}
.period:last-child{border-bottom:1px solid var(--line)}
.period .pno .n{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase}
.period .pno .big{font-family:var(--serif);font-size:48px;font-weight:600;line-height:.95;font-variant-numeric:tabular-nums;margin-top:6px}
.period .pno .d{font-family:var(--sans);font-size:12px;color:var(--ink-3);margin-top:8px;font-variant-numeric:tabular-nums}
.period h3{font-size:22px;margin:2px 0 14px;line-height:1.35;font-weight:600}
.notes{display:flex;flex-direction:column;gap:8px}
.note{display:flex;align-items:baseline;gap:12px;font-size:15px;color:var(--ink-2);padding:4px 0;transition:color .14s}
.note:hover{color:var(--ink)}
.note .pt{font-family:var(--sans);font-size:11px;color:var(--paper);background:var(--ink);padding:2px 7px;letter-spacing:.04em;min-width:26px;text-align:center}
.note .pt.alt{background:transparent;color:var(--ink-3);border:1px solid var(--line)}
.note .arrow{margin-left:auto}
.empty{padding:50px 0;color:var(--ink-3);border-top:1px solid var(--line);font-size:15px}

/* —— 页脚 —— */
.foot{border-top:1px solid var(--line);padding:42px 0 56px;color:var(--ink-2)}
.foot .wrap{display:flex;gap:30px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.foot .fbrand{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);margin-bottom:8px}
.foot .matrix{font-family:var(--sans);font-size:13px;line-height:1.95;max-width:32em;color:var(--ink-3)}
.foot .beian{font-family:var(--sans);font-size:12px;color:var(--ink-3);line-height:1.95}

/* —— 滚动渐显 —— */
[data-rise]{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
[data-rise].in{opacity:1;transform:none}

/* —— 响应式 —— */
@media (max-width:820px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .nav .wrap{gap:14px;height:56px}
  .nav-links{gap:16px;font-size:13px}
  .brand{font-size:17px}
  .auth{margin-left:12px;gap:10px;font-size:12px}
  .auth .login{padding:6px 13px}
  .hero{padding:60px 0 50px}
  .hero .ship{display:none}
  .hero .lede{margin-bottom:32px}
  .hero .or{display:block;margin:14px 0 0}
  .stats{padding:24px 0}
  .stats .wrap{grid-template-columns:repeat(2,1fr);gap:24px 32px}
  .entries{padding:60px 0}
  .entries .wrap{grid-template-columns:1fr;gap:30px}
  .section{padding:48px 0}
  .toolbar{top:56px}
  .grid{grid-template-columns:1fr;gap:14px}
  .salons{grid-template-columns:1fr}
  .period{grid-template-columns:1fr;gap:10px}
  .period .pno{display:flex;align-items:baseline;gap:14px}
  .period .pno .big{font-size:36px;margin-top:0}
  .period .pno .d{margin-top:0}
  .foot{padding:34px 0 48px}
}
