:root{
  --paper:#fbf3e0;
  --paper-2:#f4e9cf;
  --ink:#1d1a16;
  --ink-2:#4a4339;
  --ink-3:#7a6f60;
  --red:#d6361f;
  --line:#d9ccae;
  --serif:"Noto Serif SC","Songti SC","STSong",serif;
  --sans:"Noto Sans SC","PingFang SC","Hiragino Sans GB",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow:hidden}
body{-webkit-font-smoothing:antialiased}

.deck{position:fixed;inset:0}
.slide{
  position:absolute;inset:0;padding:6vh 7vw 8vh;
  display:flex;flex-direction:column;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity .55s var(--ease),transform .55s var(--ease),visibility 0s .55s;
  background:var(--paper);
}
.slide.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .55s var(--ease),transform .55s var(--ease)}
/* 纸张纹理 */
.slide::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(120,90,40,.06) 1px,transparent 1.2px);background-size:5px 5px}

h1,h2,h3{font-family:var(--serif);font-weight:900;letter-spacing:.01em;line-height:1.2}
.red{color:var(--red)}
.eyebrow{font-family:var(--mono);font-size:clamp(13px,1.15vw,17px);letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;margin-bottom:2.2vh}
.sub{font-size:clamp(20px,2.1vw,32px);color:var(--ink-2);line-height:1.6}
.line{font-family:var(--serif);font-size:clamp(24px,2.7vw,42px);font-weight:700;line-height:1.5}
.foot{font-size:clamp(18px,1.8vw,28px);color:var(--ink-3);margin-top:4vh}
.hint{position:absolute;left:7vw;bottom:4.4vh;font-family:var(--mono);font-size:13px;color:var(--ink-3);letter-spacing:.08em}

/* 逐步显现 */
[data-step]{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
[data-step].shown{opacity:1;transform:none}

/* 页脚 */
.chrome{position:fixed;left:0;right:0;bottom:0;pointer-events:none;z-index:9}
.progress{height:3px;background:transparent}
.progress i{display:block;height:100%;width:0;background:var(--red);transition:width .5s var(--ease)}
.pager{position:absolute;right:3vw;bottom:2.2vh;font-family:var(--mono);font-size:13px;color:var(--ink-3)}

/* 1 封面 */
.cover{flex-direction:row;align-items:center;gap:3vw}
.cover-text{flex:1.1;z-index:1}
.cover h1{font-size:clamp(44px,6.4vw,104px);line-height:1.12}
.byline{margin-top:5vh;font-family:var(--serif);font-size:clamp(18px,1.7vw,26px);color:var(--ink-2)}
.cover-img{flex:.9;max-height:76vh;max-width:40vw;object-fit:contain;border-radius:6px;border:1px solid var(--line);box-shadow:0 18px 40px -22px rgba(60,40,10,.45)}

/* 2 两个问题 */
.center{align-items:flex-start}
.ask-list{display:flex;flex-direction:column;gap:5vh;margin-top:1vh}
.ask{display:flex;align-items:center;gap:2.4vw;font-family:var(--serif);font-weight:900;font-size:clamp(34px,4.6vw,76px);line-height:1.3}
.ask .num{flex:none;width:1.5em;height:1.5em;border-radius:50%;border:3px solid var(--red);color:var(--red);display:grid;place-items:center;font-size:.6em;font-family:var(--mono)}

/* 3 稿纸山 */
.pile{align-items:flex-start;overflow:hidden}
#pileCanvas{position:absolute;right:0;bottom:0;width:62%;height:100%}
.pile-text{position:relative;z-index:2;max-width:42vw}
.pile-text h2{font-size:clamp(46px,6.2vw,104px);line-height:1.2}
.pile-text .sub{margin-top:4vh}

/* 4 火锅猫 */
.cats{justify-content:flex-start;padding-top:5vh}
.cats-head{display:flex;align-items:baseline;gap:2vw;margin-bottom:2.4vh}
.cats-head h2{font-size:clamp(28px,3vw,48px)}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4vw;flex:1;min-height:0}
.cat-grid figure{position:relative;border-radius:10px;overflow:hidden;background:#000;transition:transform .5s var(--ease),opacity .5s,box-shadow .5s,filter .5s}
.cat-grid img{width:100%;height:100%;object-fit:cover;display:block}
.cat-grid figcaption{position:absolute;left:10px;top:8px;font-family:var(--mono);font-weight:700;font-size:clamp(18px,1.8vw,28px);color:#fff;background:rgba(0,0,0,.55);border-radius:6px;padding:0 .5em}
.cat-grid figure.pick{box-shadow:0 0 0 4px var(--red);transform:scale(1.02)}
.cat-grid figure.dim{opacity:.18;filter:grayscale(.8)}
.cat-grid figure .tag{position:absolute;left:0;right:0;bottom:0;padding:.7em 1em;background:rgba(214,54,31,.94);color:#fff;font-size:clamp(14px,1.45vw,22px);font-weight:700;transform:translateY(100%);transition:transform .5s var(--ease)}
.cat-grid figure.flag .tag{transform:none}

/* 5 卷轴 31 */
.scroll{flex-direction:row;align-items:center;gap:4vw}
.scroll-left{flex:1}
.seq{display:flex;gap:.8vw;flex-wrap:nowrap;margin:2vh 0 3.4vh}
.seq span{font-family:var(--mono);font-weight:700;font-size:clamp(30px,3.9vw,66px);min-width:1.45em;text-align:center;padding:.12em .2em;border:2px solid var(--ink);border-radius:6px;background:var(--paper)}
.seq span.torn{border-style:dashed;border-color:var(--red);color:var(--red);clip-path:polygon(0 0,86% 0,100% 18%,92% 38%,100% 62%,90% 82%,100% 100%,0 100%)}
.seq span.rev{color:var(--red);border-color:var(--red);border-style:solid;clip-path:none}
.scroll-right{flex:.9;display:flex;flex-direction:column;align-items:center}
#circleSvg{width:min(38vw,52vh);height:min(38vw,52vh);overflow:visible}
.count{margin-top:2vh;font-family:var(--mono);font-size:clamp(18px,1.8vw,28px);color:var(--ink-2)}
.count b{color:var(--red);font-size:1.4em}
.scroll-right,#circleSvg,.count{transition:opacity .6s var(--ease)}
.scroll .scroll-right{opacity:0}
.scroll.reveal .scroll-right{opacity:1}

/* 6 梨子 */
.pear{flex-direction:row;align-items:center;gap:3vw}
.pear-img{flex:.8;max-height:74vh;max-width:34vw;object-fit:contain;border-radius:6px;border:1px solid var(--line);box-shadow:0 18px 40px -22px rgba(60,40,10,.45)}
.pear-text{flex:1.2}
.quote{font-family:var(--serif);font-weight:900;font-size:clamp(34px,4vw,66px);line-height:1.35}
.quote.small{font-size:clamp(22px,2.4vw,38px);font-weight:700;color:var(--ink-2);margin-top:3vh}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.6vw;margin-top:5vh}
.two>div{border:2px solid var(--line);border-radius:10px;padding:2.4vh 1.6vw;display:flex;flex-direction:column;gap:.7vh;background:rgba(255,255,255,.35)}
.two>div.on{border-color:var(--red);background:rgba(214,54,31,.07)}
.two b{font-family:var(--serif);font-size:clamp(24px,2.5vw,40px)}
.two span{color:var(--ink-2);font-size:clamp(16px,1.5vw,24px)}
.two i{font-style:normal;font-family:var(--mono);font-size:clamp(16px,1.5vw,24px);color:var(--red);margin-top:.6vh}

/* 7 投票 */
.vote .eyebrow{margin-bottom:1vh}
.vote-stage{position:relative}
.crowd{display:flex;flex-wrap:wrap;gap:.7vw;max-width:70vw;margin:1vh 0 2vh}
.crowd .p{width:2.2vw;min-width:22px;aspect-ratio:1;border-radius:50%;background:var(--ink);opacity:.82;display:grid;place-items:center;color:var(--paper);font-family:var(--mono);font-size:.8vw;transition:background .5s,transform .5s}
.crowd .p.me{background:var(--red);transform:scale(1.35)}
.vs{display:grid;grid-template-columns:1fr 1fr;gap:2vw;max-width:70vw}
.vs .side{border-radius:12px;padding:3vh 2vw;border:2px solid var(--line);display:flex;flex-direction:column;gap:.8vh}
.vs .side b{font-family:var(--mono);font-size:clamp(60px,8vw,130px);line-height:1}
.vs .side span{font-size:clamp(16px,1.6vw,26px);color:var(--ink-2)}
.vs .side.a b{color:var(--ink-3)}
.vs .side.b{border-color:var(--red);background:rgba(214,54,31,.07)}
.vs .side.b b{color:var(--red)}
.vote .line{margin-top:4vh}

/* 10 枪 */
.gun{justify-content:center}
.vs2{display:grid;grid-template-columns:.9fr 1.3fr;gap:2.4vw;margin-top:.6vh}
.vs2 .col{border-radius:12px;padding:2.4vh 1.8vw;border:2px solid var(--line)}
.vs2 h3{font-size:clamp(20px,2.1vw,34px);margin-bottom:1.6vh}
.vs2 ul{list-style:none;display:flex;flex-direction:column;gap:1.5vh}
.vs2 li{font-size:clamp(16px,1.6vw,26px);line-height:1.5}
.vs2 .gunside{background:rgba(0,0,0,.025)}
.vs2 .gunside h3,.vs2 .gunside li{color:var(--ink-3)}
.vs2 .gunside li{text-decoration:line-through;text-decoration-color:rgba(122,111,96,.5)}
.vs2 .shooter{border-color:var(--red);background:rgba(214,54,31,.06)}
.vs2 .shooter h3{color:var(--red)}
.vs2 .shooter li{padding-left:1.2em;position:relative}
.vs2 .shooter li::before{content:"→";position:absolute;left:0;color:var(--red);font-family:var(--mono)}
.verdict{margin-top:3.6vh}
.verdict .big{font-family:var(--serif);font-weight:900;font-size:clamp(40px,5.6vw,92px);line-height:1.2}
.verdict .sub{margin-top:1.4vh}

/* 11 作业 */
.hw{justify-content:flex-start;padding-top:8vh}
.hw h2{font-size:clamp(38px,5vw,82px);line-height:1.25}
.egs{display:flex;gap:1.4vw;flex-wrap:wrap;margin-top:4.4vh}
.egs span{font-size:clamp(18px,1.9vw,30px);padding:.5em 1em;border:2px solid var(--line);border-radius:999px;background:rgba(255,255,255,.4)}
.egs span:last-child{border-color:var(--red);color:var(--red);border-style:dashed}
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6vw;margin-top:4vh;max-width:70vw}
.how div{border-top:3px solid var(--ink);padding-top:1.6vh;display:flex;flex-direction:column;gap:.4vh}
.how b{font-family:var(--serif);font-size:clamp(24px,2.6vw,42px)}
.how i{font-style:normal;color:var(--ink-3);font-size:clamp(16px,1.5vw,24px)}
.hw .note{margin-top:4vh;font-size:clamp(18px,1.9vw,30px);color:var(--ink-2);line-height:1.7;border-left:4px solid var(--red);padding-left:1.4vw}

/* 12 三句话 */
.three-lines ol{list-style:none;display:flex;flex-direction:column;gap:3.6vh;margin-top:1vh}
.three-lines li{display:flex;flex-direction:column;gap:.6vh;border-left:4px solid var(--red);padding-left:1.8vw}
.three-lines li b{font-family:var(--serif);font-size:clamp(32px,4vw,64px);font-weight:900}
.three-lines li span{font-size:clamp(18px,1.9vw,30px);color:var(--ink-2)}
.thanks{margin-top:5vh;font-family:var(--serif);font-size:clamp(22px,2.2vw,34px);color:var(--ink-3)}

/* 打印/导出：全部页纵向展开，步骤全显示 */
@media print{
  html,body{overflow:visible;height:auto}
  .deck{position:static}
  .slide{position:relative;opacity:1!important;visibility:visible!important;transform:none!important;height:100vh;page-break-after:always}
  [data-step]{opacity:1!important;transform:none!important}
  .chrome,.hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ====================== v2 新增 / 重写 ====================== */
.badge{display:inline-block;font-family:var(--mono);font-size:clamp(12px,1.1vw,16px);letter-spacing:.14em;color:#fff;background:var(--red);padding:.28em .9em;border-radius:999px;margin-bottom:2vh;align-self:flex-start}
.red-line{color:var(--red)}
.claim{font-family:var(--serif);font-weight:700;font-size:clamp(20px,2.1vw,34px);line-height:1.55;margin-top:2.4vh;min-height:1.5em}

/* 3 猴子与打字机 */
.tw{flex-direction:row;align-items:center;gap:3vw;flex-wrap:wrap;padding-bottom:16vh}
.tw-left{flex:.8;display:flex;justify-content:center}
.tw-monkey{max-height:60vh;max-width:30vw;object-fit:contain;border-radius:6px;border:1px solid var(--line);box-shadow:0 18px 40px -22px rgba(60,40,10,.45)}
.tw-right{flex:1.2;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48vh}
.paper.single{width:min(22vw,34vh);aspect-ratio:3/4;background:#fffdf6;border:1px solid rgba(40,30,20,.5);box-shadow:0 14px 30px -18px rgba(60,40,10,.5);padding:1.6vh 1.2vw;transform:rotate(-1.5deg);transition:opacity .5s,transform .6s var(--ease)}
.paper-text{font-family:var(--mono);font-size:clamp(15px,1.5vw,24px);line-height:1.5;word-break:break-all;color:var(--ink);height:100%;overflow:hidden}
.paper-text .cursor{display:inline-block;width:.5em;height:1em;background:var(--red);vertical-align:-.15em;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.paper-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(10,1fr);grid-auto-rows:1fr;gap:5px;opacity:0;transition:opacity .6s;padding:0 .4vw}
.paper-grid .sh{background:#fffdf6;border:1px solid rgba(40,30,20,.4);overflow:hidden;font-family:var(--mono);font-size:7px;line-height:1.1;color:#4a4339;word-break:break-all;padding:2px;position:relative}
.paper-grid .sh.hit{border:2px solid var(--red);box-shadow:0 0 0 3px rgba(214,54,31,.2);font-family:var(--serif);font-size:9px;line-height:1.2;color:var(--ink);background:#fff;z-index:1}
.paper-grid .sh.hit b{color:var(--red);font-size:1.15em}
.tw.many .paper.single{opacity:0;transform:scale(.7)}
.tw.many .paper-grid{opacity:1}
.tw-meter{position:absolute;right:0;top:0;font-family:var(--mono);display:flex;gap:.8em;align-items:baseline;color:var(--ink-3);font-size:clamp(14px,1.4vw,22px)}
.tw-meter b{font-size:2em;color:var(--ink)}
.tw-cap{position:absolute;left:7vw;right:7vw;bottom:9vh}
.tw-cap .cap{font-family:var(--serif);font-weight:900;font-size:clamp(28px,3.6vw,58px);line-height:1.25}
.tw-cap .cap-sub{font-size:clamp(18px,1.9vw,30px);color:var(--ink-2);margin-top:1vh}
.tw-cap .cap-sub .red{color:var(--red);font-weight:700}

/* 4 稿纸山 */
.pile .pile-text h2{font-size:clamp(40px,5.2vw,88px)}
.pile .q{font-family:var(--serif);font-weight:900;font-size:clamp(28px,3.2vw,52px);margin-top:4vh;color:var(--red)}
.looked{font-family:var(--mono);font-size:clamp(16px,1.6vw,26px);color:var(--ink-2);margin-top:1.4vh}
.looked b{display:inline-block;min-width:3ch;color:var(--ink)}
.pile .sub{margin-top:3vh;font-weight:700}

/* 5 AI 就是这群猴子 */
.ai{flex-direction:row;align-items:center;gap:4vw}
.ai-left{flex:1}
.ai-left h2{font-size:clamp(46px,6vw,100px);line-height:1.2}
.ai-line{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.4vw,38px);color:var(--ink-2);margin-top:4vh}
.ai-right{flex:.9;border-left:3px solid var(--line);padding-left:3vw}
.meters{display:flex;flex-direction:column;gap:2vh;margin:1.4vh 0 2.4vh}
.m{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px dashed var(--line);padding-bottom:1vh}
.m span{font-size:clamp(20px,2vw,32px);color:var(--ink-2)}
.m b{font-family:var(--mono);font-size:clamp(36px,4.2vw,70px);color:var(--red);min-width:4ch;text-align:right}
.per{font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.3vw,36px)}

/* 7 火锅猫 */
.cats{justify-content:flex-start;padding-top:4vh;padding-bottom:5vh}
.cats .badge{margin-bottom:1vh}
.cats-head{display:flex;align-items:baseline;gap:2vw;margin-bottom:1.6vh}
.cats .cat-grid{flex:1;min-height:0;transition:opacity .5s}
.cat-bar{height:11vh;position:relative;margin-top:1.6vh}
.cat-bar .bar{position:absolute;inset:0;display:flex;align-items:center;gap:.9em;flex-wrap:wrap;opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease);font-size:clamp(16px,1.7vw,27px);border-top:3px solid var(--ink);padding-top:1vh}
.cat-bar .bar.on{opacity:1;transform:none}
.cat-bar .k{font-family:var(--serif);font-weight:900;font-size:1.25em;margin-right:.4em}
.cat-bar i{font-style:normal;color:var(--red);font-family:var(--mono)}
.cat-bar em{font-style:normal;color:var(--red);font-weight:700;margin-left:auto}
.cat-bar .bar.warn{border-top-color:var(--red)}
.zoom{position:absolute;inset:0;background:rgba(251,243,224,.97);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2vh;opacity:0;pointer-events:none;transition:opacity .45s var(--ease);z-index:5}
.zoom.on{opacity:1}
.zoom-box{position:relative;height:72vh;aspect-ratio:1;border-radius:10px;overflow:hidden;box-shadow:0 20px 50px -20px rgba(0,0,0,.55)}
.zoom-box img{width:100%;height:100%;object-fit:cover;display:block}
.marks{position:absolute;inset:0}
.marks .mk{position:absolute;transform:translate(-50%,-50%);width:9vh;height:9vh;border-radius:50%;border:4px solid var(--red);display:grid;place-items:center;color:#fff;font-family:var(--mono);font-weight:700;font-size:3.6vh;background:rgba(214,54,31,.25);opacity:0;transform:translate(-50%,-50%) scale(.4);transition:opacity .4s,transform .5s var(--ease)}
.marks .mk.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.marks .rect{position:absolute;border:4px solid var(--red);background:rgba(214,54,31,.18);opacity:0;transition:opacity .5s}
.marks .rect.on{opacity:1}
.zoom-cap{font-family:var(--serif);font-weight:900;font-size:clamp(24px,2.8vw,44px);color:var(--ink)}
.zoom-cap em{font-style:normal;color:var(--red)}

/* 8 卷轴 31 */
.scroll-left{display:flex;flex-direction:column}
.scroll-left .claim{color:var(--red)}
.chips{display:flex;gap:.6vw;margin-top:2.2vh}
.chips i{font-style:normal;font-family:var(--mono);font-size:clamp(13px,1.3vw,20px);padding:.15em .7em;border:2px solid var(--line);border-radius:999px;color:var(--ink-3);transition:all .4s}
.chips i.on{border-color:var(--red);color:var(--red);background:rgba(214,54,31,.08)}

/* 11 投票 */
.vote .crowd{display:flex;flex-wrap:wrap;gap:.7vw;max-width:70vw;margin:1vh 0 2vh}
.vote .crowd .p{width:2.2vw;min-width:22px;aspect-ratio:1;border-radius:50%;background:var(--ink);opacity:.82;transition:background .5s,transform .5s,opacity .5s}
.vote .crowd .p.me{background:var(--red);transform:scale(1.35);opacity:1}
.vs{display:grid;grid-template-columns:1fr 1fr;gap:2vw;max-width:70vw}
.vs .side{border-radius:12px;padding:2.6vh 2vw;border:2px solid var(--line);display:flex;flex-direction:column;gap:.6vh}
.vs .side b{font-family:var(--mono);font-size:clamp(54px,7vw,116px);line-height:1}
.vs .side span{font-size:clamp(16px,1.6vw,26px);color:var(--ink-2)}
.vs .side.a b{color:var(--ink-3)}
.vs .side.b{border-color:var(--red);background:rgba(214,54,31,.07)}
.vs .side.b b{color:var(--red)}
.recheck{display:flex;align-items:center;gap:1.6vw;margin-top:3vh}
.recheck .lab{font-family:var(--serif);font-weight:700;font-size:clamp(18px,1.9vw,30px)}
.chips2{display:flex;gap:.7vw}
.chips2 i{font-style:normal;font-family:var(--mono);font-size:clamp(16px,1.7vw,26px);display:flex;align-items:center;gap:.3em;padding:.2em .7em;border:2px solid var(--line);border-radius:8px}
.chips2 u{display:inline-grid;place-items:center;width:1.3em;height:1.3em;border-radius:50%;background:#2f7d4f;color:#fff;transform:scale(0);transition:transform .35s var(--ease)}
.chips2 u svg{width:70%;height:70%}
.chips2.go i u{transform:scale(1)}
.outs{display:grid;grid-template-columns:1fr 1fr;gap:2vw;max-width:70vw;margin-top:3vh}
.outs .o{border-radius:12px;padding:1.8vh 1.6vw;border:2px solid var(--line);display:flex;flex-direction:column;gap:.4vh}
.outs .o b{font-family:var(--serif);font-size:clamp(20px,2.1vw,34px)}
.outs .o span{color:var(--ink-2);font-size:clamp(15px,1.5vw,24px)}
.outs .o.stay{border-color:var(--red);background:rgba(214,54,31,.06)}
.vote .line{margin-top:3vh;font-size:clamp(20px,2.2vw,36px)}

/* 12 三位获奖者 */
.nobel3{justify-content:flex-start;padding-top:5vh}
.faces{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2vw;margin-top:1vh}
.faces figure{display:flex;flex-direction:column;gap:.5vh}
.faces .ph{position:relative;aspect-ratio:3/3.2;overflow:hidden;border-radius:10px;border:1px solid var(--line);background:#f3ead8}
.faces .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;display:block;filter:grayscale(.15)}
.faces .no{position:absolute;left:10px;top:8px;font-style:normal;font-family:var(--mono);font-weight:700;width:2em;height:2em;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--paper);font-size:clamp(14px,1.4vw,22px)}
.faces figure.focus .no{background:var(--red)}
.faces h3{font-size:clamp(22px,2.3vw,38px);margin-top:1.2vh}
.faces .en{font-family:var(--mono);color:var(--ink-3);font-size:clamp(12px,1.1vw,17px)}
.faces .who{color:var(--ink-2);font-size:clamp(14px,1.4vw,22px)}
.faces .role{margin-top:.8vh;font-size:clamp(16px,1.6vw,26px);color:var(--ink)}
.faces .role b{color:var(--red);margin-right:.5em;font-family:var(--serif)}
.credit{font-family:var(--mono);font-size:11px;color:var(--ink-3);margin-top:1.6vh;letter-spacing:.04em}

/* 13 放大戴瑟罗斯 */
.nobel1{flex-direction:row;align-items:center;gap:4vw;padding-bottom:5vh}
.big-ph{flex:.8;display:flex;flex-direction:column;align-items:flex-start}
.big-ph img{height:74vh;max-width:36vw;object-fit:cover;object-position:34% 14%;aspect-ratio:3/4;border-radius:12px;border:1px solid var(--line);box-shadow:0 22px 50px -26px rgba(60,40,10,.5)}
.bio{flex:1.2}
.bio .ids{display:flex;align-items:center;gap:1.2vw;flex-wrap:wrap}
.bio .ids .id{font-family:var(--serif);font-weight:900;font-size:clamp(34px,4.4vw,74px);line-height:1.1}
.bio .ids .x{font-family:var(--mono);font-size:clamp(24px,2.8vw,46px);color:var(--red)}
.bio .where{font-size:clamp(16px,1.7vw,27px);color:var(--ink-3);margin-top:1.4vh}
.story{list-style:none;display:flex;flex-direction:column;gap:2vh;margin-top:3.4vh}
.story li{border-left:4px solid var(--red);padding-left:1.4vw;display:flex;flex-direction:column;gap:.3vh}
.story li i{font-style:normal;font-family:var(--mono);font-size:clamp(12px,1.15vw,18px);color:var(--ink-3);letter-spacing:.1em}
.story li b{font-family:var(--serif);font-weight:700;font-size:clamp(20px,2.1vw,34px);line-height:1.4}

/* 14 作业：结果 */
.result{display:flex;gap:1.6vw;margin-top:3vh;flex-wrap:wrap}
.result span{font-size:clamp(16px,1.6vw,26px);padding:.4em 1em;border-radius:8px}
.result .r1{background:rgba(47,125,79,.12);color:#2f7d4f}
.result .r2{background:rgba(214,54,31,.1);color:var(--red)}

/* —— 修正 —— */
.tw-meter{top:-5.5vh;right:0}
.paper-grid .sh.hit{transform:scale(2.6);transform-origin:center;box-shadow:0 14px 34px -10px rgba(214,54,31,.55);transition:transform .6s var(--ease),box-shadow .6s;font-size:8px}
.story li b{font-size:clamp(18px,1.85vw,31px);text-wrap:balance}
.bio .where{text-wrap:balance}

/* 5 页末尾：三样本事 */
.skills{margin-top:4.4vh}
.skills .lead{font-family:var(--serif);font-weight:700;font-size:clamp(18px,1.9vw,30px);color:var(--ink-2);margin-bottom:1.6vh}
.skills ol{list-style:none;display:flex;gap:1.2vw;flex-wrap:wrap}
.skills li{display:flex;align-items:baseline;gap:.5em;border-top:3px solid var(--red);padding:1vh 1.2vw 0 0}
.skills li i{font-style:normal;font-family:var(--mono);color:var(--red);font-size:clamp(14px,1.4vw,22px)}
.skills li b{font-family:var(--serif);font-weight:900;font-size:clamp(26px,3vw,48px)}
.skills li em{font-style:normal;font-family:var(--mono);color:var(--ink-3);font-size:clamp(13px,1.2vw,19px)}

/* ====================== v3：更简洁 ====================== */
.game{display:inline-block;align-self:flex-start;font-family:var(--mono);font-size:clamp(12px,1.1vw,16px);letter-spacing:.14em;color:var(--red);border:2px solid var(--red);padding:.18em .8em;border-radius:999px;margin-bottom:1.4vh}
.tw-cap .game{margin-bottom:1vh}
.nobel3 .game{margin-bottom:1vh}
/* 自动依次出现的元素，节奏更柔和 */
[data-step]{transition:opacity .8s var(--ease),transform .8s var(--ease)}
/* 卷轴页的徽标旧样式不再使用 */
.badge{display:none}

/* 回顾页 */
.recap{justify-content:center}
.recap .rows{list-style:none;display:flex;flex-direction:column;gap:2.6vh;margin-top:1vh}
.recap .rows li{display:grid;grid-template-columns:5.5em 15em 1fr;align-items:baseline;gap:1.4vw;border-top:2px solid var(--line);padding-top:2vh}
.recap .g{font-family:var(--mono);color:var(--red);font-size:clamp(13px,1.2vw,19px);letter-spacing:.1em}
.recap .n{font-family:var(--serif);font-weight:900;font-size:clamp(22px,2.3vw,38px)}
.recap .t{font-size:clamp(18px,1.9vw,30px);color:var(--ink-2)}
.recap .t b{color:var(--ink);margin-left:.6em;font-family:var(--serif)}
.recap .close{margin-top:5vh;font-size:clamp(20px,2.2vw,36px);line-height:1.6;color:var(--ink-2)}
.recap .close b{font-family:var(--serif);font-weight:900;color:var(--red);font-size:1.35em}

/* 共勉页 */
.gongmian{justify-content:center;align-items:flex-start}
.gongmian h1{font-size:clamp(54px,8vw,136px);line-height:1.25}
.gongmian .eyebrow{margin-bottom:5vh}
