  :root{
    --paper:#F7F4EF;
    --ink:#1C2421;
    --moss:#656A67;
    --hairline:#E5E0D4;
    --copper:#BA7F4B;
    --display:'Cormorant Garamond','Noto Serif SC',serif;
    --serif-sc:'Cormorant Garamond','Noto Serif SC',serif;
    --sans:'Crimson Pro','Noto Serif SC',serif;
    --sans-en:'Crimson Pro','Noto Serif SC',serif;
    --barh:88px; /* 顶栏总高：30 上 + 38 logo + 20 下 */
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  /* 平滑滚动交给页尾那段 JS：CSS 的 scroll-behavior 会和 JS 每帧的设置互相打架（点了先卡一下） */
  #top,#philosophy,#work,#journey{scroll-margin-top:var(--barh);}         /* 落点避开吸顶顶栏 */
  body{
    background:var(--paper);color:var(--ink);font-family:var(--sans);
    -webkit-font-smoothing:antialiased;overflow-x:hidden;
  }
  body::after{ /* 纸张噪点 */
    content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.5;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.035 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  }
  .page{max-width:1264px;margin:0 auto;padding:0 32px;position:relative;}

  @keyframes rise{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
  .rv{opacity:0;animation:rise 1s cubic-bezier(.22,.8,.24,1) forwards;}
  .d1{animation-delay:.08s}.d2{animation-delay:.20s}.d3{animation-delay:.32s}
  .d4{animation-delay:.44s}.d5{animation-delay:.58s}.d6{animation-delay:.72s}

  /* ── 顶栏（滚动时钉在顶部） ── */
  header{
    position:sticky;top:0;z-index:50;
    display:flex;justify-content:space-between;align-items:center;padding:30px 0 20px;
  }
  header::before{ /* 铺满视口宽度的纸底，滚过去的内容从它下面经过 */
    content:"";position:absolute;left:50%;top:0;bottom:0;width:100vw;margin-left:-50vw;
    background:var(--paper);z-index:-1;
  }
  .logo{display:flex;align-items:center;gap:14px;text-decoration:none;}
  .logo img{height:38px;width:auto;display:block;transition:transform .6s cubic-bezier(.22,.8,.24,1);}
  .logo:hover img{transform:rotate(10deg);}
  nav{display:flex;align-items:baseline;gap:32px;}
  nav a.nl{font-family:var(--sans-en);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;line-height:1.2;color:var(--moss);text-decoration:none;position:relative;padding-bottom:5px;transition:color .3s;}
  nav a.nl::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.22,.8,.24,1);}
  nav a.nl:hover{color:var(--ink);}
  nav a.nl:hover::after{transform:scaleX(1);}
  .lang{font-size:14px;line-height:1.2;color:var(--moss);display:flex;gap:8px;align-items:baseline;margin-left:6px;}
  .lang button{background:none;border:0;font:inherit;line-height:inherit;color:var(--moss);cursor:pointer;padding:0;letter-spacing:.04em;transition:color .3s;}
  .lang button.on{color:var(--ink);}
  .lang span{opacity:.45;}

  /* ── 首屏 ── */
  /* 首屏内容整体在顶栏以下垂直居中；右栏顶部有 26px 隐形内边距，
     所以留 114px 底部空白做光学补正，让墨迹（kicker→探索更多）落在窗口正中 */
  .hero{
    min-height:calc(100vh - var(--barh));display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;
    align-content:center;padding-bottom:24px;position:relative;z-index:1;
  }
  .left{grid-column:1 / 6;display:flex;flex-direction:column;}
  .right{grid-column:7 / 13;padding-top:26px;}

  .kicker{font-family:var(--sans-en);font-weight:500;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--copper);}
  h1.name{
    font-family:var(--display);font-weight:400;
    font-size:clamp(34px,3.6vw,52px);
    line-height:1;letter-spacing:.015em;color:var(--ink);margin-top:137px;
  }

  .right .kicker{display:block;}
  .right h2{
    font-family:var(--serif-sc);font-weight:400;
    font-size:clamp(24px,2.45vw,35px);
    line-height:1.22;letter-spacing:.02em;color:var(--ink);margin-top:26px;
  }
  /* 首字左端对齐：按 1440 下实测补正（宋体字形自带左边距比黑体/拉丁大 2–3px） */
  .right h2 span{display:inline-block;}
  .right h2 .l1{margin-left:-3px;}
  .right h2 .l2{margin-left:-2px;}
  .desc{margin-left:-1px;}
  .desc{margin-top:40px;font-weight:400;font-size:17px;line-height:1.95;color:var(--moss);}
  .more{
    margin-top:46px;display:inline-block;position:relative;width:fit-content;
    font-family:var(--sans-en);font-weight:500;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding-bottom:12px;
  }
  .more::after{
    content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
    background:var(--copper);transform-origin:left;transition:width .55s cubic-bezier(.22,.8,.24,1),height .3s;
  }
  .more:hover::after{width:calc(100% + 36px);height:2px;}
  .more:hover{color:var(--copper);}

  /* ── 第 2 屏 · PHILOSOPHY ── */
  .philosophy{padding:160px 0;position:relative;}
  .phil-grid{display:grid;grid-template-columns:5fr 7fr;column-gap:24px;}
  .phil-left{align-self:center;padding-left:4px;} /* 与第 1 屏名字的「H」同一条竖线 */
  .phil-title{
    margin-top:20px;font-family:var(--serif-sc);font-weight:600;
    font-size:clamp(24px,2.4vw,32px);line-height:1.3;color:var(--ink);
  }
  .phil-body{margin-top:32px;max-width:320px;font-size:14px;line-height:1.9;color:var(--ink);}
  .phil-body p{margin-bottom:0;} /* 段间行距 = 段内行距，整块等距 */
  .phil-right{position:relative;}
  .wordwall{position:relative;height:78vh;perspective:1500px;perspective-origin:50% 50%;}
  .drum{
    list-style:none;position:absolute;inset:0;transform-style:preserve-3d;
    will-change:transform;                                    /* 整筒一个合成层：字形只栅格化一次 */
    animation:drumspin 36s linear infinite reverse;           /* 匀速自转：合成器驱动，不靠 JS 逐帧重画；reverse = 向下向里滚 */
  }
  @keyframes drumspin{from{transform:rotateX(0deg);}to{transform:rotateX(360deg);}}
  .w{
    position:absolute;left:50%;top:50%;margin:0;
    font-family:var(--display);font-style:normal;font-weight:400;
    font-size:clamp(72px,11.5vw,168px);line-height:.92;
    white-space:nowrap;opacity:1;transform-origin:50% 50%;transform:translate(-50%,-50%);
    backface-visibility:hidden;-webkit-backface-visibility:hidden;   /* 转到背面的词不显示 */
    -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;   /* 固定灰度抗锯齿，不再切来切去 */
    will-change:transform;                                          /* 一开始就占住合成层：渲染模式从头到尾一致 */
  }
  html.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .35s cubic-bezier(.22,.8,.24,1),transform .35s cubic-bezier(.22,.8,.24,1);}
  html.js .reveal.is-in{opacity:1;transform:none;}

  /* ── 页脚：联系方式（只放邮箱） ── */
  #contact{margin-top:96px;border-top:1px solid var(--hairline);}
  #contact .mail{display:inline-flex;align-items:center;gap:.42em;margin:64px 0 88px;font-family:var(--display);
    font-size:clamp(22px,2.4vw,34px);line-height:1.4;color:var(--ink);text-decoration:none;
    position:relative;letter-spacing:.01em;transition:color .3s;}
  /* 邮箱图标：1px 线稿信封（不用 emoji、不用色块），跟着文字一起变色 */
  #contact .mail .ic{width:1.06em;height:auto;flex:0 0 auto;fill:none;stroke:currentColor;
    stroke-width:1;vector-effect:non-scaling-stroke;}
  #contact .mail::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;
    background:var(--hairline);transition:background .3s,height .3s;}
  #contact .mail:hover{color:var(--copper);}
  #contact .mail:hover::after{background:var(--copper);height:2px;}
  #contact .mail:focus-visible{outline:1px solid var(--copper);outline-offset:8px;}

  @media (prefers-reduced-motion:reduce){
    .rv{opacity:1;animation:none;}
    html.js .reveal{opacity:1;transform:none;transition:none;}
    .drum{position:static;transform:none;animation:none;}
    .wordwall{height:auto;}
    .w{position:static;transform:none !important;opacity:1;transition:none;margin-bottom:.18em;}
  }
  @media (max-width:960px){
    .hero{padding-top:56px;row-gap:48px;}
    .left,.right{grid-column:1 / 13;}
    .right{padding-top:0;}
    .phil-grid{grid-template-columns:1fr;row-gap:56px;}
    .wordwall{right:0;}
    nav{gap:18px;}
    .lang{display:none;}
  }
  /* === screen 3 : works (moved from works.html; scoped under #work) === */
  #work{--tbg:#151C19;--tbg2:#1A211E;--tline:#2A3430;--tink:#C9CFC9;--tdim:#8A918C;--tlight:#EDE8DD;
    --pine:#2D3E3A;--mono:'JetBrains Mono','Noto Sans SC',monospace;
    --card-w:clamp(520px,46vw,660px);--card-h:calc(var(--card-w) * 0.889);}
  #work .works{display:grid;grid-template-columns:5fr 7fr;column-gap:24px;   /* 和第二屏同一套 5:7 栅格 */
         padding:48px 0;min-height:calc(100vh - var(--barh));align-items:center;}  /* 上下内边距必须相等：不然整块会被压低（原来 56/40 → 低 8px） */
  #work .side-l{grid-column:1;padding-left:4px;}                            /* 与第一屏名字、第二屏文字的左边同一条竖线 */
  #work .side-r{grid-column:2;position:relative;}

  #work .kicker{font-family:var(--sans-en);font-weight:600;font-size:12.5px;letter-spacing:.2em;
    text-transform:uppercase;color:var(--copper);display:block;}
  #work h1{font-family:var(--serif-sc);font-weight:600;font-size:clamp(32px,3.1vw,44px);
     line-height:1.3;letter-spacing:.01em;margin-top:18px;}
  #work .lead{margin-top:22px;font-size:16px;line-height:1.9;color:var(--moss);max-width:400px;}
  #work .poem{margin-top:30px;padding-left:18px;border-left:1px solid var(--copper);
        font-family:var(--serif-sc);font-weight:500;font-size:14px;
        line-height:1.95;color:var(--ink);}
  #work .poem .sp{display:block;height:1em;}
  #work .poem .ul{color:var(--copper);}   /* Agent-native：恢复成之前那种橙色 */
  /* 四个项目：两行排列，四个大小完全一致（回到早先那版：直角细框） */
  #work .tabs{margin-top:34px;display:grid;grid-template-columns:repeat(2,186px);gap:11px;}
  #work .tab{display:flex;align-items:center;gap:10px;padding:10px 15px;width:100%;white-space:nowrap;
    border:1px solid var(--hairline);border-radius:2px;background:transparent;cursor:pointer;text-align:left;
    font-family:var(--sans);font-size:13.5px;color:var(--moss);transition:border-color .3s,color .3s,background .3s;}
  #work .tab .no{font-family:var(--mono);font-size:11px;color:var(--copper);letter-spacing:.08em;}
  #work .tab:hover{border-color:var(--copper);color:var(--ink);}
  #work .tab.on{background:var(--ink);border-color:var(--ink);color:var(--paper);}
  #work .tab.on .no{color:var(--copper);}

  /* ── 黑卡：四张完全叠在同一位置，只显示当前这张（回到早先那版的样子） ── */
  #work .deck{position:relative;width:100%;aspect-ratio:16 / 10;height:auto;}  /* 宽=第二屏右侧最宽一行，16:10 */
  #work .card{position:absolute;inset:0;background:var(--tbg);border-radius:6px;overflow:hidden;
    box-shadow:0 24px 60px rgba(28,36,33,.16);
    display:none;flex-direction:column;}
  #work .card.front{display:flex;}                 /* 直接切换，不做淡入淡出，切页时整块不动 */

  #work .c-head{display:flex;align-items:center;gap:8px;padding:0 20px;height:46px;
    border-bottom:1px solid var(--tline);flex:0 0 auto;}
  #work .c-head .d{width:8px;height:8px;border-radius:50%;background:#3A4540;}
  #work .c-head .d.c{background:var(--copper);}
  #work .c-head .t{margin-left:68px;font-family:var(--mono);font-size:12px;color:var(--tdim);}  /* 给左上角 4 个圆点让位 */
  #work .c-head .s{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--copper);
    display:flex;align-items:center;gap:7px;}
  #work .c-head .s i{width:6px;height:6px;border-radius:50%;background:var(--copper);}

  #work .c-inner{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative;}
  #work .c-body{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:none;padding:14px 22px 16px;
    font-family:var(--mono);font-size:12.5px;line-height:1.68;color:var(--tink);}
  #work .c-body.tall::-webkit-scrollbar{display:none;}
  #work .c-body::-webkit-scrollbar{display:none;}
  @keyframes lin{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:none;}}
  @keyframes bl{50%{opacity:0;}}
  @keyframes pl{50%{opacity:.2}}
  #work .ln{display:none;white-space:pre-wrap;word-break:break-word;}   /* 未出现的行不占位置，光标才能跟着文字走 */
  #work .ln.show{display:block;animation:lin .35s both;}
  /* 橙色方块光标：跟着最新一行文字往下走，打完停在最后一行后面一直闪 */
  #work .cursor{display:inline-block;width:8px;height:13px;background:var(--copper);vertical-align:-2px;
    margin-left:2px;animation:bl .9s steps(1) infinite;}
  /* 顶部 ready 旁边的小圆点：同样一直闪 */
  #work .c-head .s i{animation:pl 1s infinite;}
  #work .ln .p{color:var(--copper);}
  #work .ln.step{color:var(--tlight);font-weight:500;}
  #work .ln.arr{color:var(--tdim);}
  #work .ln.ready{color:var(--copper);font-weight:600;}
  #work .ln.sub{color:var(--tdim);}

  /* 视频：在同一个黑框内播 —— 播放时盖住正文区，正文最后一行就是入口 */
  #work .vid{position:absolute;left:0;right:0;top:0;bottom:0;display:none;
    background:#121815;z-index:3;cursor:pointer;}
  #work .card.playing .vid{display:block;}
  #work .vid video{width:100%;height:100%;object-fit:cover;background:#121815;display:block;}
  /* 播放层控件：鼠标一动浮现，2 秒不动淡出；暂停时一直显示（只在播放层里，没播放时页面上看不到） */
  #work .vid .vctl{position:absolute;left:0;right:0;bottom:0;height:48px;display:flex;align-items:center;gap:2px;
    padding:0 8px 0 12px;background:linear-gradient(180deg,rgba(18,24,21,0) 0%,rgba(18,24,21,.88) 70%);
    opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;}
  #work .vid.show .vctl{opacity:1;visibility:visible;}
  #work .vb{display:inline-flex;align-items:center;gap:8px;height:44px;min-width:44px;padding:0 12px;
    background:none;border:0;cursor:pointer;color:var(--tink);font-family:var(--sans);font-size:13px;
    letter-spacing:.02em;transition:color .25s;}
  #work .vb:hover{color:var(--copper);}
  #work .vb:focus-visible{outline:1px solid var(--copper);outline-offset:-8px;}
  #work .vb .ic{width:24px;height:24px;border-radius:50%;background:var(--copper);display:grid;place-items:center;flex:0 0 auto;}
  #work .vb .ic::before{content:"";width:7px;height:8px;border-left:2px solid var(--paper);border-right:2px solid var(--paper);}
  #work .vb.paused .ic::before{width:0;height:0;border:0;border-left:8px solid var(--paper);
    border-top:5px solid transparent;border-bottom:5px solid transparent;margin-left:2px;}
  #work .vb .fs{width:11px;height:11px;position:relative;flex:0 0 auto;}
  #work .vb .fs::before,#work .vb .fs::after{content:"";position:absolute;width:11px;height:11px;border:1px solid currentColor;}
  #work .vb .fs::before{left:0;top:0;border-right:0;border-bottom:0;}
  #work .vb .fs::after{right:0;bottom:0;border-left:0;border-top:0;}
  #work .vb .x{width:11px;height:11px;position:relative;flex:0 0 auto;}
  #work .vb .x::before,#work .vb .x::after{content:"";position:absolute;left:0;top:5px;width:11px;height:1px;background:currentColor;}
  #work .vb .x::before{transform:rotate(45deg);}
  #work .vb .x::after{transform:rotate(-45deg);}
  #work .vtime{font-family:var(--mono);font-size:11px;color:rgba(237,232,221,.62);letter-spacing:.04em;padding:0 6px;}
  #work .vsp{flex:1 1 auto;}
  /* 进度条：3px 铜金线 + 上下 8px 命中区，可点、可拖（原来 1px 太细，点不动也看不出来） */
  #work .vid .bar{position:absolute;left:0;right:0;bottom:0;height:20px;cursor:pointer;
    padding:0 0 8px;box-sizing:border-box;}
  #work .vid .bar::before{content:"";position:absolute;left:0;right:0;bottom:8px;height:3px;
    background:rgba(237,232,221,.22);}
  #work .vid .bar i{position:absolute;left:0;bottom:8px;height:3px;width:0;background:var(--copper);
    transition:width .12s linear;}
  #work .vid .bar:hover i{background:#D8A46C;}
  #work .vid .bar.drag i{transition:none;}
  /* 播放按钮：回到早先那版 —— 铜金圆点 + 「Demo 视频」文字，不加外框 */
  #work .play{display:inline-flex;align-items:center;gap:9px;background:none;border:0;padding:0;
    cursor:pointer;color:var(--tink);font-family:var(--sans);font-size:13px;transition:color .3s;}
  #work .play .pi{width:28px;height:28px;border-radius:50%;background:var(--copper);
    display:grid;place-items:center;transition:transform .3s;}
  #work .play .pi::after{content:"";border-left:9px solid var(--paper);
    border-top:5px solid transparent;border-bottom:5px solid transparent;margin-left:2px;}
  #work .play:hover{color:var(--copper);}
  #work .play:hover .pi{transform:scale(1.08);}

  #work .c-ctrl{flex:0 0 auto;height:54px;display:flex;align-items:center;gap:10px;padding:0 22px;
    justify-content:flex-start;                            /* 播放按钮贴左，和正文文字左边对齐 */
    opacity:0;visibility:hidden;transform:translateY(6px);   /* 鼠标不在黑框里就不显示 */
    transition:opacity .35s ease,visibility .35s ease,transform .45s cubic-bezier(.22,1,.36,1);}

  /* 鼠标进黑框（或键盘聚焦）才露出控件 */
  #work .card:hover .c-ctrl,#work .card:focus-within .c-ctrl{opacity:1;visibility:visible;transform:none;}
  #work .lnk{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:2px;   /* 黑框内的按钮走直角矩形 */
    border:1px solid var(--tline);color:var(--tink);text-decoration:none;font-size:13px;
    transition:border-color .3s,color .3s;}
  #work .lnk:hover{border-color:var(--copper);color:var(--copper);}
  #work .lnk .ar{font-family:var(--mono);color:var(--copper);}
  #work .c-ctrl .lnk.gh{margin-left:auto;}
  #work .c-ctrl .play + .lnk{margin-left:auto;}                  /* 其余按钮推到右边（和早先那版一样：播放在左，链接在右） */

  /* 4 个圆点：在黑框里面、左上角（就是早先那版三个小点的位置），大小颜色照早先那版 */
  #work .dots{position:absolute;left:22px;top:18px;z-index:6;display:flex;gap:7px;margin:0;}
  #work .dots button{width:10px;height:10px;border-radius:50%;border:0;padding:0;cursor:pointer;
    background:#3A4540;transition:background .3s;}
  #work .dots button:hover{background:var(--copper);}
  #work .dots button.on{background:var(--copper);}
  /* 播放时把 4 个圆点收掉，画面里不留站外元素 */
  #work .card.playing .dots{opacity:0;pointer-events:none;transition:opacity .2s ease;}
  /* 圆点其实是黑卡的兄弟节点（在 .side-r 里），所以还要认这一层 */
  #work .side-r:has(.card.playing) .dots{opacity:0;pointer-events:none;transition:opacity .2s ease;}

  @media (prefers-reduced-motion:reduce){
    #work .rv{opacity:1;animation:none;}
    #work .card{transition:none;}
  }
  @media (max-width:960px){
    #work .side-l,#work .side-r{grid-column:1 / -1;}
    #work .side-r{margin-top:48px;}
    #work .lang{display:none;}
    #work{--card-w:min(560px,88vw);}
  }
#journey *{margin:0;padding:0;box-sizing:border-box;}@media (max-width:1100px){}@media (max-width:640px){}#journey .reveal{opacity:0;transform:translateY(22px);
    transition:opacity .9s cubic-bezier(.22,.8,.24,1),transform .9s cubic-bezier(.22,.8,.24,1);}#journey .reveal.in{opacity:1;transform:none;}#journey /* ── 第一屏：左文字 + 右技能面板 ── */
  .hero{padding:88px 0 72px;display:grid;grid-template-columns:1.04fr .96fr;
    column-gap:76px;align-items:center;}#journey .kicker{display:inline-block;font-family:'JetBrains Mono','Noto Sans SC',monospace;font-weight:500;font-size:11.5px;
    line-height:1;letter-spacing:.35em;color:var(--copper);}#journey h1{font-family:var(--serif-sc);font-weight:600;font-size:clamp(34px,3.8vw,56px);
    line-height:1.3;margin-top:22px;}#journey .lead{margin-top:22px;margin-bottom:18px;font-size:16px;line-height:1.9;color:#4A524D;font-weight:300;}#journey .story-p{margin-top:0;font-size:14.5px;line-height:1.95;color:#4A524D;}#journey .story-p .hl{color:var(--copper);}#journey .pull{margin-top:0;font-family:var(--serif-sc);font-weight:500;font-size:16px;color:var(--copper);}#journey /* ── 技能面板（编号条 + 选中态 + 深色终端卡） ── */
  .sk-chips{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px;}#journey .chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--hairline);
    border-radius:0;background:transparent;font-family:var(--sans);font-size:12.5px;color:var(--moss);
    cursor:pointer;transition:border-color .3s,color .3s,background .3s;}#journey .chip i{font-style:normal;font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:10px;letter-spacing:.08em;color:var(--copper);}#journey .chip:hover{border-color:var(--copper);color:var(--ink);}#journey .chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper);}#journey .chip.on i{color:#D9A97C;}#journey .chip.next{border-style:dashed;border-color:var(--copper);color:var(--copper);}#journey .chip.next.on{background:var(--copper);border-color:var(--copper);color:var(--paper);}#journey .chip.next.on i{color:#F3E2CF;}#journey .sk-detail{margin-top:24px;min-height:128px;}#journey .sk-no{font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:11px;line-height:1;letter-spacing:.22em;color:var(--copper);}#journey .sk-title{margin-top:7px;font-family:var(--serif-sc);font-weight:600;font-size:25px;line-height:1.3;color:var(--ink);}#journey .sk-desc{margin-top:9px;font-size:13.5px;line-height:1.85;color:#4A524D;max-width:540px;}#journey /* 标签：矩形框框（不再是胶囊） */
  .sk-tags{margin-top:13px;display:flex;flex-wrap:wrap;gap:8px;}#journey .sk-tags span{padding:5px 12px;border:1px solid var(--hairline);font-size:11.5px;color:var(--moss);}#journey .sk-term{margin-top:26px;position:relative;background:var(--ink);border-radius:12px;
    padding:16px 20px 14px;max-width:560px;}#journey .sk-term::before,#journey .sk-term::after{content:"";position:absolute;inset:0;background:var(--ink);
    border-radius:12px;z-index:-1;}#journey .sk-term::before{transform:translate(13px,-11px);opacity:.4;}#journey .sk-term::after{transform:translate(26px,-22px);opacity:.18;}#journey .term-top{display:flex;justify-content:space-between;align-items:center;gap:14px;
    padding-bottom:10px;border-bottom:1px solid rgba(247,244,239,.14);}#journey .term-cmd{font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:11px;color:#CFC9BC;white-space:nowrap;overflow:hidden;
    text-overflow:ellipsis;}#journey .term-st{font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:10px;letter-spacing:.14em;color:#D9A97C;flex:none;}#journey .term-list{list-style:none;margin-top:10px;}#journey .term-list li{display:flex;gap:12px;font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:11px;line-height:25px;color:#D8D3C6;}#journey .term-list li b{font-weight:500;color:var(--copper);flex:none;}#journey .term-foot{margin-top:10px;padding-top:10px;border-top:1px solid rgba(247,244,239,.14);
    font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:10.5px;letter-spacing:.05em;color:#D9A97C;}#journey .sk-detail,#journey .sk-term{transition:opacity .3s ease,transform .3s ease;}#journey .swap{opacity:0;transform:translateY(6px);}#journey /* ── 第二屏：单轴时间线（左右按时间平齐 · 可展开收起） ── */
  .quest{padding:64px 0 8px;border-top:1px solid var(--hairline);}#journey .quest-h{margin-bottom:32px;}#journey .quest-h .en{font-family:'JetBrains Mono','Noto Sans SC',monospace;font-weight:500;font-size:11.5px;letter-spacing:.35em;
    color:var(--copper);}#journey /* 网格：左 1fr · 轴 72px · 右 1fr，条目按 grid-row 显式对齐 */
  .tl{position:relative;display:grid;grid-template-columns:1fr 72px 1fr;column-gap:26px;
    grid-auto-rows:min-content;}#journey .tl::before{content:"";position:absolute;left:50%;top:4px;bottom:16px;width:1px;
    transform:translateX(-.5px);background:var(--hairline);}#journey .tl::after{content:"";position:absolute;left:50%;top:0;width:7px;height:7px;
    border-top:1.5px solid var(--copper);border-left:1.5px solid var(--copper);
    transform:translateX(-50%) rotate(45deg);}#journey .side-l{grid-column:1;}#journey .side-r{grid-column:3;}#journey /* 圆点：默认空心，悬停点亮 */
  .co-row::before,#journey .side-r::before{content:"";position:absolute;top:5px;width:13px;height:13px;
    border:2px solid var(--copper);border-radius:50%;background:var(--paper);
    transition:background .25s,box-shadow .25s;z-index:1;}#journey .co-row::before{right:-68.5px;}#journey .side-r::before{left:-68.5px;}#journey .evt{position:relative;padding-bottom:30px;}#journey .side-r{padding-bottom:14px;}#journey .evt.solo{padding-bottom:14px;}#journey .co-row{padding-bottom:14px;}#journey .evt:hover::before{background:var(--copper);box-shadow:0 0 0 5px rgba(186,127,75,.14);}#journey /* 左：工作条目（公司 · 职位 ·—— 时间右贴轴） */
  .ch-co{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}#journey .ch-co .co{font-size:13.5px;font-weight:500;color:var(--ink);}#journey .ch-co .role{font-size:11.5px;color:var(--moss);}#journey .ch-co + .ch-co{margin-top:8px;}#journey .ch-d{margin-left:auto;font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:10.5px;color:var(--copper);white-space:nowrap;}#journey .ch-t{margin-top:12px;font-family:var(--serif-sc);font-weight:600;font-size:18px;color:var(--ink);}#journey .ch-i{margin-top:6px;font-size:12.5px;line-height:1.85;color:var(--moss);}#journey .x-toggle{margin-top:14px;display:inline-flex;align-items:center;gap:9px;background:none;border:0;
    padding:4px 0;cursor:pointer;font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:11px;letter-spacing:.06em;
    color:var(--copper);transition:opacity .3s;}#journey .x-toggle:hover{opacity:.7;}#journey .x-ic{position:relative;width:9px;height:9px;flex:none;}#journey .x-ic::before,#journey .x-ic::after{content:"";position:absolute;background:var(--copper);transition:transform .3s;}#journey .x-ic::before{left:3.75px;top:0;width:1.5px;height:9px;}#journey .x-ic::after{left:0;top:3.75px;width:9px;height:1.5px;}#journey .open .x-ic::before{transform:rotate(90deg);}#journey /* 详情浮层：与按钮顶部齐平、向右展开的宽面板（两列排布），不向下坠、不撑长页面 */
  .ch-x{position:relative;}#journey .x-body{position:absolute;top:-6px;left:230px;width:680px;z-index:6;
    display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.22,.8,.24,1);}#journey .open .x-body{grid-template-rows:1fr;}#journey /* 最后一个章节：浮层向上展开，页面底部纹丝不动 */
  .tl > .evt:last-child .x-body{top:auto;bottom:-6px;}#journey .x-inner{overflow:hidden;background:var(--paper);
    box-shadow:0 16px 34px rgba(28,36,33,.10);}#journey .ch-list{list-style:none;margin:0;padding:16px 20px 18px;display:grid;
    grid-template-columns:1fr 1fr;column-gap:30px;}#journey .ch-list li{position:relative;padding-left:22px;margin-top:9px;font-size:12.5px;line-height:22px;
    color:#4A524D;}#journey .ch-list li::before{content:"";position:absolute;left:0;top:10px;width:12px;height:1.5px;
    background:var(--copper);}#journey .ch-list strong{color:var(--ink);font-weight:500;}#journey /* 右：教育 & 认证（时间列固定宽，说明与名称左对齐） */
  .rv-h{display:flex;gap:12px;align-items:baseline;}#journey .rv-d{flex:none;width:58px;font-family:'JetBrains Mono','Noto Sans SC',monospace;font-size:10.5px;color:var(--copper);white-space:nowrap;}#journey .rv-c{flex:1;min-width:0;}#journey .rv-n{font-size:13.5px;color:var(--ink);}#journey .rv.edu .rv-n{font-family:var(--serif-sc);font-weight:600;font-size:16.5px;}#journey .rv-sub{margin-top:4px;font-size:12px;line-height:1.75;color:var(--moss);}#journey /* ── 响应式 ── */
  @media (max-width:1000px){
    .hero{grid-template-columns:1fr;row-gap:56px;}
    .tl{display:block;padding-left:30px;}
    .tl::before{left:7px;transform:none;}
    .tl::after{left:7px;transform:rotate(45deg);}
    .co-row::before,.side-r::before{left:-29px;right:auto;}
    .x-body{left:56px;right:0;width:auto;top:-6px;bottom:auto;}
    .tl > .evt:last-child .x-body{top:-6px;bottom:auto;}
    .ch-list{grid-template-columns:1fr;}
  }@media (max-width:640px){#journey .sk-term::before,#journey .sk-term::after{display:none;}
  }

  /* 用户 2026-09-29：两屏之间那条横线删掉 */
  #journey .quest{border-top:0;padding-top:32px;}

  /* 用户 2026-09-29：JOURNEY / SKILL / QUEST LOG 与「Agent Workspace」同一套（字号 + 字重 + 字距） */
  #journey .kicker,#journey .quest-h .en{font-family:var(--sans-en);font-weight:600;font-size:12.5px;
    letter-spacing:.2em;text-transform:uppercase;color:var(--copper);}
