@font-face{font-family:Fraunces;src:url('./assets/fonts/fraunces-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'Noto Serif SC';src:url('./assets/fonts/noto-serif-sc-600.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--ink:#242821;--paper:#e9e3d6;--muted:#65695e;--rule:#777c6950;--project-accent:#d9e4d0;font-family:'Helvetica Neue','PingFang SC','Microsoft YaHei',sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid #5f6c49;outline-offset:5px}img{display:block;max-width:100%}figure,h1,h2,h3,p{margin:0}.skip-link{position:absolute;left:20px;top:-90px;padding:12px;background:#fff;z-index:10}.skip-link:focus{top:12px}.case-page{min-height:100vh;background:radial-gradient(circle at 80% 10%,var(--project-accent),transparent 38%),var(--paper)}.case-header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1440px;margin:auto;padding:28px 42px;border-bottom:1px solid var(--rule)}.case-brand{font:700 26px Fraunces,Georgia,serif;letter-spacing:-.06em}.case-back{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid var(--ink);font-size:14px}.case-content{max-width:1440px;margin:auto;padding:0 42px}.case-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;gap:7%;min-height:650px;padding:85px 0}.case-kicker{font-size:15px;font-weight:600;letter-spacing:.08em;color:var(--muted)}.case-kicker span{margin:0 15px}.case-hero h1{font:700 clamp(62px,7vw,112px)/1.03 Fraunces,'Noto Serif SC',serif;letter-spacing:-.06em;overflow-wrap:anywhere;margin:27px 0 34px}.case-line{font:600 clamp(24px,2.3vw,34px)/1.5 'Noto Serif SC','Songti SC',serif;max-width:590px}.case-summary{font-size:17px;line-height:1.9;color:var(--muted);max-width:590px;margin-top:26px}.case-cover{padding:15px;background:#e8e4d9;border:1px solid #f7f4e9;box-shadow:13px 18px 0 #a9a99a,17px 22px 38px #33372b1c;transform:rotate(1deg)}.case-cover img{width:100%;height:min(50vw,490px);object-fit:contain;background:#c8cbc0}.case-cover figcaption{font-size:12px;color:var(--muted);padding-top:14px}.case-facts{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:30px;padding:30px 0;border-block:1px solid var(--rule)}.case-facts div{display:flex;flex-direction:column;gap:12px}.case-facts span{font-size:12px;color:var(--muted)}.case-facts strong{font-size:15px;line-height:1.7}.case-story{padding:80px 0 70px}.case-story section{display:grid;grid-template-columns:minmax(170px,.5fr) minmax(0,1.5fr);gap:8%;max-width:1060px;padding:25px 0}.case-story h2{font:600 25px/1.5 'Noto Serif SC','Songti SC',serif}.case-story p{font-size:16px;line-height:1.95;color:#4d5449}.case-gallery{border-top:1px solid var(--rule)}.case-gallery-heading{padding:75px 0 55px}.case-gallery-heading h2{font:600 clamp(40px,5vw,70px)/1.25 'Noto Serif SC','Songti SC',serif;letter-spacing:-.05em;margin-top:18px}.case-image{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:7%;align-items:start;border-top:1px solid var(--rule);padding:40px 0}.case-image>div span{font-size:12px;color:var(--muted)}.case-image h3{font:600 25px/1.5 'Noto Serif SC','Songti SC',serif;margin:15px 0}.case-image p{font-size:14px;line-height:1.8;color:var(--muted)}.case-image img{width:100%;height:auto;padding:10px;background:#d5d4ca;border:1px solid var(--rule)}.case-video{border-top:1px solid var(--rule);padding:50px 0}.case-video h2{font:600 25px 'Noto Serif SC',serif;margin-bottom:25px}.case-video video{display:block;width:min(100%,900px);max-height:620px;background:#343832}.case-source{display:flex;justify-content:space-between;gap:25px;align-items:start;border-top:1px solid var(--rule);padding:28px 0;font-size:13px;line-height:1.8;color:var(--muted)}.case-source p{max-width:780px}.case-source a{white-space:nowrap;border-bottom:1px solid var(--ink);color:var(--ink)}.case-navigation{display:flex;justify-content:space-between;align-items:start;gap:25px;border-top:1px solid var(--rule);padding:38px 0 105px}.case-navigation>a{display:flex;flex-direction:column;gap:9px}.case-navigation>a:last-child{text-align:right}.case-navigation>a span,.case-navigation>span{font-size:12px;color:var(--muted)}.case-navigation strong{font:700 24px Fraunces,'Noto Serif SC',serif}.case-footer{display:flex;justify-content:space-between;gap:20px;padding:30px 42px;background:#a6a89c;font-size:12px}.case-footer a{border-bottom:1px solid var(--ink)}
@media(max-width:767px){.case-header{padding:18px 24px}.case-brand{font-size:20px}.case-content{padding:0 24px}.case-hero{display:flex;flex-direction:column;align-items:stretch;gap:55px;min-height:0;padding:70px 0}.case-hero h1{font-size:clamp(53px,12vw,82px);margin:22px 0}.case-line{font-size:23px}.case-summary{font-size:15px}.case-cover{padding:9px;box-shadow:8px 10px 0 #a9a99a}.case-cover img{height:65vw}.case-facts{grid-template-columns:1fr 1fr;gap:22px}.case-story{padding:55px 0}.case-story section{display:block;padding:20px 0}.case-story h2{font-size:22px;margin-bottom:12px}.case-story p{font-size:15px}.case-gallery-heading{padding:55px 0 35px}.case-image{display:block;padding:30px 0}.case-image h3{font-size:21px}.case-image p{margin-bottom:22px}.case-source{display:block}.case-source a{display:inline-block;margin-top:18px}.case-navigation{padding-bottom:65px}.case-navigation strong{font-size:17px}.case-footer{padding:25px 24px;flex-wrap:wrap}}
@media(max-width:380px){.case-header,.case-content{padding-left:18px;padding-right:18px}.case-hero h1{font-size:50px}.case-facts{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* CampusJob opening narrative: problem first, then the product response. */
.campus-opening{border-top:1px solid var(--rule)}
.campus-chapter{padding:90px 0}
.campus-chapter+.campus-chapter{border-top:1px solid var(--rule)}
.campus-chapter-heading{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;align-items:start;margin-bottom:48px}
.campus-chapter-heading .case-kicker{padding-top:12px}
.campus-chapter-heading h2{font:600 clamp(40px,5vw,70px)/1.25 'Noto Serif SC','Songti SC',serif;letter-spacing:-.05em}
.campus-chapter-heading>p:last-child{grid-column:2;font-size:16px;line-height:1.9;color:var(--muted);max-width:100%;margin-top:24px}
.campus-story-video{background:#d5d2c8;border:1px solid var(--rule);padding:13px}
.campus-story-video video{display:block;width:100%;aspect-ratio:16/9;background:#171b18}
.campus-story-video figcaption{display:flex;justify-content:space-between;gap:20px;padding:16px 3px 3px;font-size:12px;color:var(--muted)}
.campus-story-video figcaption span{letter-spacing:.1em}
.campus-story-video figcaption strong{font-weight:500;text-align:right}
.campus-point-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:45px}
.campus-point-grid article{padding:28px 25px;border-top:3px solid var(--ink);background:#e2dccf}
.campus-solution-grid article{border-top-color:#617562;background:#dce3d4}
.campus-point-grid article>span{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.campus-point-grid h3{font:600 23px/1.45 'Noto Serif SC','Songti SC',serif;margin:18px 0 12px}
.campus-point-grid p{font-size:14px;line-height:1.85;color:#535a4f}
@media(max-width:767px){
  .campus-chapter{padding:60px 0}
  .campus-chapter-heading{display:block;margin-bottom:30px}
  .campus-chapter-heading .case-kicker{padding:0;margin-bottom:20px}
  .campus-chapter-heading h2{font-size:clamp(36px,10vw,52px)}
  .campus-chapter-heading>p:last-child{font-size:15px;margin-top:20px}
  .campus-story-video{padding:7px}
  .campus-story-video figcaption{display:block;line-height:1.6}
  .campus-story-video figcaption strong{display:block;text-align:left;margin-top:5px}
  .campus-point-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .campus-point-grid article{padding:24px 20px}
  .campus-point-grid h3{font-size:21px}
}

/* SoloFocus 6-step deep case study theme and layout */
.focus-opening{border-top:1px solid var(--rule)}
.focus-chapter{padding:80px 0 68px}
.focus-chapter-heading{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;align-items:start;margin-bottom:44px}
.focus-chapter-heading .case-kicker{padding-top:12px}
.focus-chapter-heading h2{font:600 clamp(32px,4.2vw,56px)/1.25 'Noto Serif SC','Songti SC',serif;letter-spacing:-.045em}
.focus-chapter-heading>p:last-child{grid-column:2;font-size:16px;line-height:1.9;color:var(--muted);max-width:100%;margin-top:22px}

.focus-theme .stat-number{color:#385b46}
.focus-theme .thesis-pill{color:#385b46}
.focus-theme .paper-thesis-card{border-left-color:#4a755b;background:color-mix(in srgb, var(--project-accent) 42%, var(--paper) 58%)}
.focus-theme .flow-step-card{border-left-color:#4a755b;background:color-mix(in srgb, var(--project-accent) 22%, var(--paper) 78%)}
.focus-theme .step-badge{color:#385b46}
.focus-theme .badcase-card{border-top-color:#4a755b}
.focus-theme .paper-mindset-box{border-left-color:#385b46;background:color-mix(in srgb, var(--project-accent) 26%, var(--paper) 74%)}
.focus-theme .mindset-pill{color:#284a35;background:rgba(40,74,53,0.1);border-color:rgba(40,74,53,0.22)}

.focus-mvp-concept{margin-top:28px;padding:20px 24px;background:color-mix(in srgb, var(--project-accent) 35%, var(--paper) 65%);border:1px solid var(--rule);border-left:4px solid #4a755b;display:flex;align-items:baseline;gap:16px}

.focus-flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}

.focus-gallery-subheading{font:600 20px/1.3 'Noto Serif SC','Songti SC',serif;margin:44px 0 20px;padding-bottom:12px;border-bottom:2px solid color-mix(in srgb, #4a755b 40%, var(--rule) 60%);display:flex;align-items:center;justify-content:space-between}
.focus-gallery-subheading span:first-child{color:#293d31;font-size:18px;font-weight:600}
.focus-gallery-subheading span:last-child{font-size:13px;font-family:var(--mono);color:var(--muted);font-weight:500}

@media(max-width:900px){
  .focus-flow-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:767px){
  .focus-chapter{padding:54px 0 46px}
  .focus-chapter-heading{display:block;margin-bottom:28px}
  .focus-chapter-heading .case-kicker{padding:0;margin-bottom:16px}
  .focus-chapter-heading h2{font-size:clamp(28px,8vw,44px)}
  .focus-chapter-heading>p:last-child{font-size:15px;margin-top:16px}
  .focus-flow-grid{grid-template-columns:1fr;gap:12px}
  .focus-gallery-subheading{flex-direction:column;align-items:flex-start;gap:6px}
  .focus-mvp-concept{flex-direction:column;gap:8px}
}

/* Signal Desk opening narrative: evidence loss and fragmented research context. */
.signal-opening{border-top:1px solid var(--rule)}
.signal-chapter{padding:90px 0 78px}
.signal-chapter-heading{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;align-items:start;margin-bottom:48px}
.signal-chapter-heading .case-kicker{padding-top:12px}
.signal-chapter-heading h2{font:600 clamp(40px,5vw,70px)/1.25 'Noto Serif SC','Songti SC',serif;letter-spacing:-.05em}
.signal-chapter-heading>p:last-child{grid-column:2;font-size:16px;line-height:1.9;color:var(--muted);max-width:100%;margin-top:24px}
.signal-story-video{background:#cbc9d5;border:1px solid var(--rule);padding:13px}
.signal-story-video video{display:block;width:100%;aspect-ratio:16/9;background:#111625}
.signal-story-video figcaption{display:flex;justify-content:space-between;gap:20px;padding:16px 3px 3px;font-size:12px;color:var(--muted)}
.signal-story-video figcaption span{letter-spacing:.1em}
.signal-story-video figcaption strong{font-weight:500;text-align:right}
.signal-point-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:45px}
.signal-point-grid article{padding:28px 25px;border-top:3px solid #5d5a86;background:#dedbe8}
.signal-point-grid article>span{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.signal-point-grid h3{font:600 23px/1.45 'Noto Serif SC','Songti SC',serif;margin:18px 0 12px}
.signal-point-grid p{font-size:14px;line-height:1.85;color:#535568}
.signal-thesis{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;padding:72px 0;border-top:1px solid var(--rule)}
.signal-thesis .case-kicker{padding-top:10px}
.signal-thesis h2{font:600 clamp(34px,4.2vw,58px)/1.3 'Noto Serif SC','Songti SC',serif;letter-spacing:-.045em;max-width:900px}
.signal-thesis div p{font-size:16px;line-height:1.9;color:var(--muted);max-width:760px;margin-top:25px}
.signal-solution{border-top:1px solid var(--rule)}
.signal-solution-video{background:#d7dedb}
.signal-solution-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:45px}
.signal-solution-grid article{padding:28px 25px;border-top:3px solid #477267;background:#d8e2dd}
.signal-solution-grid article>span{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.signal-solution-grid h3{font:600 23px/1.45 'Noto Serif SC','Songti SC',serif;margin:18px 0 12px}
.signal-solution-grid p{font-size:14px;line-height:1.85;color:#4e5c58}
.signal-boundary{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;padding:72px 0;border-top:1px solid var(--rule)}
.signal-boundary .case-kicker{padding-top:10px}
.signal-boundary h2{font:600 clamp(34px,4.2vw,58px)/1.3 'Noto Serif SC','Songti SC',serif;letter-spacing:-.045em;max-width:900px}
.signal-boundary div p{font-size:16px;line-height:1.9;color:var(--muted);max-width:760px;margin-top:25px}
@media(max-width:767px){
  .signal-chapter{padding:60px 0 52px}
  .signal-chapter-heading,.signal-thesis,.signal-boundary{display:block}
  .signal-chapter-heading{margin-bottom:30px}
  .signal-chapter-heading .case-kicker,.signal-thesis .case-kicker,.signal-boundary .case-kicker{padding:0;margin-bottom:20px}
  .signal-chapter-heading h2{font-size:clamp(36px,10vw,52px)}
  .signal-chapter-heading>p:last-child{font-size:15px;margin-top:20px}
  .signal-story-video{padding:7px}
  .signal-story-video figcaption{display:block;line-height:1.6}
  .signal-story-video figcaption strong{display:block;text-align:left;margin-top:5px}
  .signal-point-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .signal-point-grid article{padding:24px 20px}
  .signal-point-grid h3{font-size:21px}
  .signal-thesis{padding:55px 0}
  .signal-thesis h2{font-size:clamp(32px,9vw,46px)}
  .signal-thesis div p{font-size:15px;margin-top:20px}
  .signal-solution-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .signal-solution-grid article{padding:24px 20px}
  .signal-solution-grid h3{font-size:21px}
  .signal-boundary{padding:55px 0}
  .signal-boundary h2{font-size:clamp(32px,9vw,46px)}
  .signal-boundary div p{font-size:15px;margin-top:20px}
}

/* Paper Setting opening narrative: the pain film leads into the product principle. */
.paper-opening{border-top:1px solid var(--rule)}
.paper-chapter{padding:90px 0 78px}
.paper-chapter-heading{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;align-items:start;margin-bottom:48px}
.paper-chapter-heading .case-kicker{padding-top:12px}
.paper-chapter-heading h2{font:600 clamp(40px,5vw,70px)/1.25 'Noto Serif SC','Songti SC',serif;letter-spacing:-.05em}
.paper-chapter-heading>p:last-child{grid-column:2;font-size:16px;line-height:1.9;color:var(--muted);max-width:100%;margin-top:24px}
.paper-story-video{background:#d5d2c8;border:1px solid var(--rule);padding:13px}
.paper-story-video video{display:block;width:100%;aspect-ratio:16/9;background:#171b18}
.paper-story-video figcaption{display:flex;justify-content:space-between;gap:20px;padding:16px 3px 3px;font-size:12px;color:var(--muted)}
.paper-story-video figcaption span{letter-spacing:.1em}
.paper-story-video figcaption strong{font-weight:500;text-align:right}
.paper-point-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:45px}
.paper-point-grid article{padding:28px 25px;border-top:3px solid #9a4f43;background:#e2d8cc}
.paper-point-grid article>span{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.paper-point-grid h3{font:600 23px/1.45 'Noto Serif SC','Songti SC',serif;margin:18px 0 12px}
.paper-point-grid p{font-size:14px;line-height:1.85;color:#535a4f}
.paper-thesis{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;padding:72px 0;border-top:1px solid var(--rule)}
.paper-thesis .case-kicker{padding-top:10px}
.paper-thesis h2{font:600 clamp(34px,4.2vw,58px)/1.3 'Noto Serif SC','Songti SC',serif;letter-spacing:-.045em;max-width:900px}
.paper-thesis div p{font-size:16px;line-height:1.9;color:var(--muted);max-width:760px;margin-top:25px}
.paper-solution{border-top:1px solid var(--rule)}
.paper-solution-video{background:#d6ded3}
.paper-solution-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:45px}
.paper-solution-grid article{grid-column:span 2;padding:28px 25px;border-top:3px solid #617562;background:#dce3d4}
.paper-solution-grid article:nth-child(4){grid-column:2/span 2}
.paper-solution-grid article:nth-child(5){grid-column:4/span 2}
.paper-solution-grid article>span{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.paper-solution-grid h3{font:600 22px/1.45 'Noto Serif SC','Songti SC',serif;margin:18px 0 12px}
.paper-solution-grid p{font-size:14px;line-height:1.85;color:#535a4f}
.paper-decision{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;padding:72px 0;border-top:1px solid var(--rule)}
.paper-decision .case-kicker{padding-top:10px}
.paper-decision h2{font:600 clamp(34px,4.2vw,58px)/1.3 'Noto Serif SC','Songti SC',serif;letter-spacing:-.045em;max-width:900px}
.paper-decision div p{font-size:16px;line-height:1.9;color:var(--muted);max-width:760px;margin-top:25px}
@media(max-width:767px){
  .paper-chapter{padding:60px 0 52px}
  .paper-chapter-heading,.paper-thesis,.paper-decision{display:block}
  .paper-chapter-heading{margin-bottom:30px}
  .paper-chapter-heading .case-kicker,.paper-thesis .case-kicker,.paper-decision .case-kicker{padding:0;margin-bottom:20px}
  .paper-chapter-heading h2{font-size:clamp(36px,10vw,52px)}
  .paper-chapter-heading>p:last-child{font-size:15px;margin-top:20px}
  .paper-story-video{padding:7px}
  .paper-story-video figcaption{display:block;line-height:1.6}
  .paper-story-video figcaption strong{display:block;text-align:left;margin-top:5px}
  .paper-point-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .paper-point-grid article{padding:24px 20px}
  .paper-point-grid h3{font-size:21px}
  .paper-thesis{padding:55px 0}
  .paper-thesis h2{font-size:clamp(32px,9vw,46px)}
  .paper-thesis div p{font-size:15px;margin-top:20px}
  .paper-solution-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .paper-solution-grid article,.paper-solution-grid article:nth-child(4),.paper-solution-grid article:nth-child(5){grid-column:auto;padding:24px 20px}
  .paper-solution-grid h3{font-size:21px}
  .paper-decision{padding:55px 0}
  .paper-decision h2{font-size:clamp(32px,9vw,46px)}
  .paper-decision div p{font-size:15px;margin-top:20px}
}

/* WeChat Official Account Workbench: five delivery risks before the workflow response. */
.gzh-opening{border-top:1px solid var(--rule)}
.gzh-chapter{padding:90px 0 78px}
.gzh-chapter-heading{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;align-items:start;margin-bottom:48px}
.gzh-chapter-heading .case-kicker{padding-top:12px}
.gzh-chapter-heading h2{font:600 clamp(40px,5vw,70px)/1.25 'Noto Serif SC','Songti SC',serif;letter-spacing:-.05em}
.gzh-chapter-heading>p:last-child{grid-column:2;font-size:16px;line-height:1.9;color:var(--muted);max-width:100%;margin-top:24px}
.gzh-story-video{background:#d8c9b8;border:1px solid var(--rule);padding:13px}
.gzh-story-video video{display:block;width:100%;aspect-ratio:16/9;background:#15120f}
.gzh-story-video figcaption{display:flex;justify-content:space-between;gap:20px;padding:16px 3px 3px;font-size:12px;color:var(--muted)}
.gzh-story-video figcaption span{letter-spacing:.1em}
.gzh-story-video figcaption strong{font-weight:500;text-align:right}
.gzh-point-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:45px}
.gzh-point-grid article{grid-column:span 2;padding:28px 25px;border-top:3px solid #8f5b48;background:#e3d6c6}
.gzh-point-grid article:nth-child(4){grid-column:2/span 2}
.gzh-point-grid article:nth-child(5){grid-column:4/span 2}
.gzh-point-grid article>span{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.gzh-point-grid h3{font:600 22px/1.45 'Noto Serif SC','Songti SC',serif;margin:18px 0 12px}
.gzh-point-grid p{font-size:14px;line-height:1.85;color:#5b5148}
.gzh-thesis{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;padding:72px 0;border-top:1px solid var(--rule)}
.gzh-thesis .case-kicker{padding-top:10px}
.gzh-thesis h2{font:600 clamp(34px,4.2vw,58px)/1.3 'Noto Serif SC','Songti SC',serif;letter-spacing:-.045em;max-width:900px}
.gzh-thesis div p{font-size:16px;line-height:1.9;color:var(--muted);max-width:760px;margin-top:25px}
.gzh-solution{border-top:1px solid var(--rule)}
.gzh-solution-video{background:#cdd7cf}
.gzh-boundary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:45px}
.gzh-boundary-grid article{padding:30px 25px;border-top:3px solid #526b59;background:#d8e0d7}
.gzh-boundary-grid article>span{font-size:11px;letter-spacing:.08em;color:var(--muted)}
.gzh-boundary-grid h3{font:600 22px/1.45 'Noto Serif SC','Songti SC',serif;margin:18px 0 12px}
.gzh-boundary-grid p{font-size:14px;line-height:1.85;color:#4e5950}
.gzh-boundary{display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr);column-gap:7%;padding:72px 0;border-top:1px solid var(--rule)}
.gzh-boundary .case-kicker{padding-top:10px}
.gzh-boundary h2{font:600 clamp(34px,4.2vw,58px)/1.3 'Noto Serif SC','Songti SC',serif;letter-spacing:-.045em;max-width:900px}
.gzh-boundary div p{font-size:16px;line-height:1.9;color:var(--muted);max-width:760px;margin-top:25px}
@media(max-width:767px){
  .gzh-chapter{padding:60px 0 52px}
  .gzh-chapter-heading,.gzh-thesis,.gzh-boundary{display:block}
  .gzh-chapter-heading{margin-bottom:30px}
  .gzh-chapter-heading .case-kicker,.gzh-thesis .case-kicker,.gzh-boundary .case-kicker{padding:0;margin-bottom:20px}
  .gzh-chapter-heading h2{font-size:clamp(36px,10vw,52px)}
  .gzh-chapter-heading>p:last-child{font-size:15px;margin-top:20px}
  .gzh-story-video{padding:7px}
  .gzh-story-video figcaption{display:block;line-height:1.6}
  .gzh-story-video figcaption strong{display:block;text-align:left;margin-top:5px}
  .gzh-point-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .gzh-point-grid article,.gzh-point-grid article:nth-child(4),.gzh-point-grid article:nth-child(5){grid-column:auto;padding:24px 20px}
  .gzh-point-grid h3{font-size:21px}
  .gzh-thesis{padding:55px 0}
  .gzh-thesis h2{font-size:clamp(32px,9vw,46px)}
  .gzh-thesis div p{font-size:15px;margin-top:20px}
  .gzh-boundary-grid{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .gzh-boundary-grid article{padding:24px 20px}
  .gzh-boundary-grid h3{font-size:21px}
  .gzh-boundary{padding:55px 0}
  .gzh-boundary h2{font-size:clamp(32px,9vw,46px)}
  .gzh-boundary div p{font-size:15px;margin-top:20px}
}

/* Keep project chapter introductions compact and aligned on desktop. */
@media(min-width:768px){
  :is(.campus-chapter-heading,.paper-chapter-heading,.signal-chapter-heading,.gzh-chapter-heading,.focus-chapter-heading)>h2,
  :is(.campus-chapter-heading,.paper-chapter-heading,.signal-chapter-heading,.gzh-chapter-heading,.focus-chapter-heading) .chapter-title-group>h2{
    font-size:clamp(26px,2.6vw,38px);
    line-height:1.3;
    letter-spacing:-.035em;
    white-space:normal;
    overflow-wrap:break-word;
  }
}

/* Shared project-page type scale: readable case study rhythm rather than poster scale. */
.case-hero{min-height:530px;padding:60px 0}
.case-hero h1{font-size:clamp(44px,4.2vw,64px);line-height:1.08;letter-spacing:-.04em;margin:22px 0 26px}
.case-line{font-size:clamp(19px,1.7vw,25px);line-height:1.55}
.case-summary{font-size:16px;line-height:1.85;margin-top:21px}
.case-cover img{height:min(43vw,440px)}
.case-gallery-heading{padding:62px 0 42px}
.case-gallery-heading h2{font-size:clamp(32px,3.8vw,50px);line-height:1.3;letter-spacing:-.035em;margin-top:14px}
.case-image h3,.case-video h2{font-size:22px}
.case-story{padding:62px 0 55px}
.case-story h2{font-size:22px}
:is(.campus-chapter,.paper-chapter,.signal-chapter,.gzh-chapter,.focus-chapter){padding-top:72px;padding-bottom:64px}
:is(.campus-point-grid,.paper-point-grid,.paper-solution-grid,.signal-point-grid,.signal-solution-grid,.gzh-point-grid,.gzh-boundary-grid,.focus-point-grid,.focus-flow-grid) h3{font-size:20px}
:is(.paper-thesis,.paper-decision,.signal-thesis,.signal-boundary,.gzh-thesis,.gzh-boundary,.focus-thesis,.focus-boundary-heading) h2{
  font-size:clamp(27px,2.8vw,38px);
  line-height:1.32;
  letter-spacing:-.035em;
}
:is(.paper-thesis,.paper-decision,.signal-thesis,.signal-boundary,.gzh-thesis,.gzh-boundary,.focus-thesis){padding-top:60px;padding-bottom:60px}

@media(max-width:767px){
  .case-hero{padding:54px 0;gap:42px}
  .case-hero h1{font-size:clamp(38px,10vw,52px);line-height:1.1;margin:19px 0 23px}
  .case-line{font-size:19px;line-height:1.55}
  .case-summary{font-size:15px;line-height:1.8;margin-top:18px}
  :is(.campus-chapter-heading,.paper-chapter-heading,.signal-chapter-heading,.gzh-chapter-heading,.focus-chapter-heading)>h2{font-size:clamp(29px,8vw,38px);line-height:1.3;letter-spacing:-.03em}
  :is(.paper-thesis,.paper-decision,.signal-thesis,.signal-boundary,.gzh-thesis,.gzh-boundary,.focus-thesis,.focus-boundary-heading) h2{font-size:clamp(25px,7vw,33px);line-height:1.35}
  .case-gallery-heading h2{font-size:clamp(30px,8vw,40px)}
  .case-image h3,.case-video h2{font-size:20px}
}

/* Campus Multi-Video Switcher */
.campus-case-video {
  border-top: none;
  padding: 0 0 70px;
}

.campus-case-video + .paper-gallery-list {
  border-top: 1px solid var(--rule);
  padding-top: 70px;
}

/* Focus Live Video Showcase */
.focus-case-video {
  border-top: none;
  padding: 0 0 60px;
}

.focus-case-video + .paper-gallery-heading {
  border-top: 1px solid var(--rule);
  padding-top: 60px;
}

/* Signal Multi-Video Switcher */
.signal-case-video {
  border-top: none;
  padding: 0 0 70px;
}

.signal-case-video .video-switcher-tabs {
  grid-template-columns: repeat(2, 1fr);
}

.signal-case-video .video-detail-card {
  padding: 20px 24px;
}

.signal-case-video + .paper-gallery-list {
  border-top: 1px solid var(--rule);
  padding-top: 70px;
}

.signal-thesis-card {
  border-left-color: #5d5a86;
  background: rgba(222, 219, 232, 0.45);
}

.signal-thesis-card .thesis-pill {
  background: #292d48;
  color: #cfc9f0;
}

.paper-chapter .case-video {
  border-top: none;
  padding-top: 0;
}
.case-video-header {
  margin-bottom: 28px;
}
.case-video-header h2 {
  font: 600 clamp(24px, 2.5vw, 32px)/1.3 'Noto Serif SC', 'Songti SC', serif;
  letter-spacing: -0.03em;
  margin: 12px 0 8px;
}
.case-video-header p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
}
.video-switcher-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 24px;
}
.vtab-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid var(--rule);
  border-radius: 8px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.vtab-btn:hover {
  background: rgba(255, 255, 255, 0.75);
  border-color: #777c6988;
  transform: translateY(-1px);
}
.vtab-btn.active {
  background: #fff;
  border-color: var(--ink);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}
.vtab-num {
  font: 700 13px 'JetBrains Mono', monospace;
  color: var(--muted);
  padding: 2px 6px;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 4px;
  flex-shrink: 0;
}
.vtab-btn.active .vtab-num {
  color: #fff;
  background: var(--ink);
}
.vtab-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.vtab-text strong {
  font-size: 15px;
  color: var(--ink);
  font-weight: 600;
}
.vtab-text small {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.4;
}
.video-showcase-stage {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--rule);
  background: #232724;
  box-shadow: 0 16px 36px rgba(25, 29, 24, 0.12);
}
.video-player-wrap {
  width: 100%;
  background: #000;
  line-height: 0;
  position: relative;
}
.campus-case-video .video-player-wrap video,
.video-player-wrap video {
  width: 100% !important;
  max-width: 100% !important;
  max-height: none !important;
  height: auto !important;
  display: block !important;
  outline: none;
  background: #000;
  border-radius: 0;
}
.video-detail-card {
  padding: 28px 32px 32px;
  background: #242925;
  color: #e9e5db;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.video-detail-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.video-detail-header-left {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.video-detail-header-left h3 {
  font: 600 20px/1.35 'Noto Serif SC', serif;
  color: #f7f4ed;
  margin: 0;
}
.video-detail-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}
.video-badge-pill {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(142, 172, 143, 0.18);
  color: #a8d5aa;
  border: 1px solid rgba(142, 172, 143, 0.35);
  letter-spacing: 0.02em;
}
.video-duration-pill {
  font-family: var(--mono);
  font-size: 11px;
  color: #9ba195;
}
.video-detail-lead {
  font-size: 14.5px;
  line-height: 1.75;
  color: #d1d6cb;
  margin-bottom: 22px;
}
.video-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}
.video-feature-grid:last-child {
  margin-bottom: 0;
}
.video-feature-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 8px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.video-feature-item:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.15);
}
.feature-item-tag {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: #79c782;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.feature-item-title {
  font-size: 14px;
  font-weight: 600;
  color: #f7f4ed;
  line-height: 1.4;
}
.feature-item-desc {
  font-size: 13px;
  line-height: 1.6;
  color: #a2a89c;
  margin: 0;
}
.video-tags-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.video-chip-tag {
  font-size: 12px;
  color: #92998d;
  background: rgba(255, 255, 255, 0.03);
  padding: 4px 10px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}
@media (max-width: 900px) {
  .video-switcher-tabs {
    grid-template-columns: 1fr;
  }
  .video-feature-grid {
    grid-template-columns: 1fr;
  }
  .video-detail-card {
    padding: 20px;
  }
}

/* ─── HIGHLIGHTS ───────────────────────────────────────── */
.case-highlights {
  border-top: 1px solid var(--rule);
  padding: 80px 0 70px;
}
.case-highlights-heading {
  margin-bottom: 52px;
}
.case-highlights-heading h2 {
  font: 600 clamp(40px,5vw,70px)/1.25 'Noto Serif SC','Songti SC',serif;
  letter-spacing: -.05em;
  margin-top: 18px;
}
.highlights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.highlight-card {
  padding: 32px 28px 36px;
  border-top: 3px solid var(--ink);
  background: color-mix(in srgb, var(--project-accent) 30%, var(--paper) 70%);
  border-radius: 2px;
}
.highlight-icon {
  margin-bottom: 20px;
}
.highlight-icon .material-symbols-outlined {
  font-size: 32px;
  font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 32;
  color: var(--ink);
  opacity: .75;
}
.highlight-card h3 {
  font: 600 20px/1.4 'Noto Serif SC','Songti SC',serif;
  margin-bottom: 12px;
}
.highlight-card p {
  font-size: 14px;
  line-height: 1.85;
  color: #535a4f;
}
@media (max-width: 767px) {
  .case-highlights { padding: 55px 0 45px; }
  .highlights-grid { grid-template-columns: 1fr; gap: 14px; }
  .highlight-card { padding: 24px 20px 28px; }
  .highlight-card h3 { font-size: 18px; }
}

/* ─── AGENT BREAKDOWN ──────────────────────────────────── */
.case-agent-breakdown {
  border-top: 1px solid var(--rule);
  padding: 80px 0 70px;
}
.agent-breakdown-heading {
  margin-bottom: 52px;
}
.agent-breakdown-heading h2 {
  font: 600 clamp(34px,4vw,60px)/1.3 'Noto Serif SC','Songti SC',serif;
  letter-spacing: -.04em;
  margin-top: 18px;
}
.agent-breakdown-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--rule);
  border-radius: 3px;
  overflow: hidden;
}
.agent-col {
  padding: 32px 28px 36px;
  border-right: 1px solid var(--rule);
}
.agent-col:last-child {
  border-right: none;
}
.agent-col--model {
  background: color-mix(in srgb, #c8cfe0 18%, var(--paper) 82%);
}
.agent-col--rule {
  background: color-mix(in srgb, #c8d4c4 18%, var(--paper) 82%);
}
.agent-col--human {
  background: color-mix(in srgb, #ddd0ba 18%, var(--paper) 82%);
}
.agent-col-label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 22px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--muted);
}
.agent-col-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.agent-col--model .agent-col-dot { background: #6b7fb8; }
.agent-col--rule .agent-col-dot  { background: #5f8260; }
.agent-col--human .agent-col-dot { background: #a07850; }
.agent-col ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.agent-col ul li {
  font-size: 14px;
  line-height: 1.75;
  color: #4d5449;
  padding-left: 16px;
  position: relative;
}
.agent-col ul li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--muted);
}
@media (max-width: 767px) {
  .case-agent-breakdown { padding: 55px 0 45px; }
  .agent-breakdown-grid { grid-template-columns: 1fr; border: none; gap: 12px; }
  .agent-col { border-right: none; border-radius: 3px; padding: 24px 20px 28px; border: 1px solid var(--rule); }
  .agent-breakdown-heading h2 { font-size: clamp(28px,8vw,44px); }
}

/* ============================================================
   Paper Setting 6-Step Narrative Structure Styles
   ============================================================ */

.paper-opening {
  border-top: 1px solid var(--rule);
}

.paper-chapter {
  padding: 85px 0 75px;
}

.paper-chapter + .paper-chapter {
  border-top: 1px solid var(--rule);
}

.paper-chapter + .paper-postmortem,
#chapter-postmortem {
  border-top: none;
}

.paper-chapter-heading {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-bottom: 38px;
}

.paper-chapter-heading .case-kicker {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--muted);
  margin-bottom: 12px;
  display: block;
}

.chapter-title-group h2,
.paper-chapter-heading h2 {
  font: 600 clamp(26px, 2.8vw, 38px)/1.3 'Noto Serif SC', 'Songti SC', serif;
  letter-spacing: -.035em;
  color: var(--ink);
  margin: 0 0 16px;
  white-space: normal;
  overflow-wrap: break-word;
  width: 100%;
  max-width: 100%;
}

.chapter-title-group p,
.paper-chapter-heading p,
.paper-chapter-heading > p:last-child {
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--muted);
  width: 100%;
  max-width: 100% !important;
  text-wrap: pretty;
  margin: 0;
}

.paper-subheading {
  font: 600 clamp(22px, 2.2vw, 30px)/1.35 'Noto Serif SC', 'Songti SC', serif;
  letter-spacing: -.025em;
  margin: 40px 0 20px;
}

/* 01. Stats Grid & Thesis */
.paper-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 40px;
}

.paper-stat-card {
  padding: 30px 26px;
  background: color-mix(in srgb, #fff 40%, var(--paper) 60%);
  border: 1px solid var(--rule);
  border-top: 3px solid var(--ink);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.stat-number {
  font: 700 24px/1.2 Fraunces, 'Noto Serif SC', serif;
  color: #384e3e;
  letter-spacing: -.02em;
}

.paper-stat-card h3 {
  font: 600 18px/1.4 'Noto Serif SC', 'Songti SC', serif;
  margin: 0;
}

.paper-stat-card p {
  font-size: 14px;
  line-height: 1.85;
  color: #555d51;
  margin: 0;
}

.paper-thesis-card {
  margin-top: 32px;
  padding: 24px 28px;
  background: color-mix(in srgb, var(--project-accent) 45%, var(--paper) 55%);
  border: 1px solid color-mix(in srgb, #5f8260 30%, var(--rule) 70%);
  border-left: 4px solid #4a6850;
  display: flex;
  align-items: baseline;
  gap: 20px;
}

.thesis-pill {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  color: #384e3e;
  white-space: nowrap;
  text-transform: uppercase;
}

.paper-thesis-card p {
  font-size: 16px;
  line-height: 1.85;
  color: #2b332b;
  margin: 0;
}

/* 02. Pain Points Grid */
.paper-story-video {
  background: #d5d2c8;
  border: 1px solid var(--rule);
  padding: 13px;
  margin: 35px 0 45px;
}

.paper-story-video video {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  background: #171b18;
}

.paper-story-video figcaption {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 3px 3px;
  font-size: 12px;
  color: var(--muted);
}

.paper-story-video figcaption span {
  letter-spacing: .1em;
}

.paper-pain-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.pain-card {
  padding: 28px 25px;
  background: #e3dccd;
  border: 1px solid var(--rule);
  border-top: 3px solid #8e4438;
}

.pain-tag {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  color: #8e4438;
  display: block;
  margin-bottom: 12px;
}

.pain-card h3 {
  font: 600 21px/1.4 'Noto Serif SC', 'Songti SC', serif;
  margin: 0 0 12px;
  color: var(--ink);
}

.pain-card p {
  font-size: 14px;
  line-height: 1.85;
  color: #4e554a;
  margin: 0;
}

/* 03. MVP Grid: DO vs DON'T */
.paper-mvp-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px;
  margin-top: 40px;
}

.mvp-column {
  padding: 32px 30px;
  border: 1px solid var(--rule);
  border-radius: 4px;
}

.mvp-column--do {
  background: color-mix(in srgb, #d9e6dc 45%, var(--paper) 55%);
  border-top: 4px solid #4a7553;
}

.mvp-column--dont {
  background: color-mix(in srgb, #ecdcd8 45%, var(--paper) 55%);
  border-top: 4px solid #a24b3e;
}

.mvp-column-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid color-mix(in srgb, var(--rule) 70%, transparent);
}

.mvp-badge {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  padding: 5px 10px;
  border-radius: 3px;
  text-transform: uppercase;
}

.mvp-badge--do {
  background: #3e6847;
  color: #fff;
}

.mvp-badge--dont {
  background: #8e3e33;
  color: #fff;
}

.mvp-column-header h3 {
  font: 600 20px/1.3 'Noto Serif SC', 'Songti SC', serif;
  margin: 0;
}

.mvp-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mvp-list li {
  font-size: 14px;
  line-height: 1.8;
  color: #3b4238;
  padding-left: 18px;
  position: relative;
}

.mvp-list li::before {
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
}

.mvp-column--do .mvp-list li::before {
  content: '✓';
  color: #3e6847;
}

.mvp-column--dont .mvp-list li::before {
  content: '✕';
  color: #8e3e33;
}

/* 04. Boundary & Safe Workflow */
.paper-boundary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}

.boundary-card {
  padding: 28px 24px;
  border: 1px solid var(--rule);
  background: #e2dbce;
}

.boundary-card--model { border-top: 3px solid #5b71a4; }
.boundary-card--rule  { border-top: 3px solid #4a7553; }
.boundary-card--human { border-top: 3px solid #9e6e44; }

.boundary-card-top {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  font-size: 13px;
  color: var(--ink);
}

.boundary-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

.dot--model { background: #5b71a4; }
.dot--rule  { background: #4a7553; }
.dot--human { background: #9e6e44; }

.boundary-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.boundary-card ul li {
  font-size: 13.5px;
  line-height: 1.75;
  color: #495045;
  padding-left: 16px;
  position: relative;
}

.boundary-card ul li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--muted);
}

.paper-flow-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 20px;
}

.signal-flow-grid,
.paper-flow-grid--5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 20px;
}

.workflow-subhead {
  font: 600 18px/1.4 'Noto Serif SC', 'Songti SC', serif;
  margin: 36px 0 0;
  color: var(--ink);
}

.flow-step-card--highlight {
  border-left-color: #5d5a86 !important;
  background: #dedbe8 !important;
}

.flow-step-card--highlight .step-badge {
  color: #3f3b6d !important;
}

.flow-step-card {
  padding: 24px 20px;
  background: #ded7c8;
  border: 1px solid var(--rule);
  border-left: 3px solid #4a6850;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.step-badge {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #4a6850;
}

.flow-step-card h4 {
  font: 600 17px/1.35 'Noto Serif SC', 'Songti SC', serif;
  margin: 0;
}

.flow-step-card p {
  font-size: 13px;
  line-height: 1.75;
  color: #555d51;
  margin: 0;
}

/* 05. Live Showcase & Gallery */
.paper-gallery-heading {
  padding: 60px 0 35px;
  border-top: 1px solid var(--rule);
  margin-top: 50px;
  display: block;
  width: 100%;
  max-width: 100%;
}

.paper-gallery-heading .case-kicker {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--muted);
  margin-bottom: 12px;
  display: block;
}

.paper-gallery-heading h3 {
  font: 600 clamp(24px, 2.4vw, 34px)/1.3 'Noto Serif SC', 'Songti SC', serif;
  letter-spacing: -.03em;
  color: var(--ink);
  margin: 0 0 14px;
}

.paper-gallery-heading p {
  font-size: 15px;
  line-height: 1.8;
  color: var(--muted);
  width: 100%;
  max-width: 100%;
  text-wrap: pretty;
  margin: 0;
}

.paper-gallery-list {
  display: flex;
  flex-direction: column;
  gap: 50px;
}

.paper-gallery-item {
  display: grid;
  grid-template-columns: minmax(200px, .5fr) minmax(0, 1.5fr);
  gap: 6%;
  align-items: start;
  padding-bottom: 45px;
  border-bottom: 1px solid var(--rule);
}

.gallery-meta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: sticky;
  top: 36px;
}

.gallery-step {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--muted);
}

.gallery-meta h4 {
  font: 600 23px/1.4 'Noto Serif SC', 'Songti SC', serif;
  margin: 0;
}

.gallery-meta p {
  font-size: 14px;
  line-height: 1.85;
  color: #575f52;
  margin: 0;
}

.paper-gallery-item img {
  width: 100%;
  height: auto;
  padding: 10px;
  background: #dcd8cd;
  border: 1px solid var(--rule);
  box-shadow: 0 4px 18px rgba(0,0,0,0.06);
}

.paper-gallery-item img[src*="event-timeline"] {
  max-width: 480px;
  width: 100%;
  margin: 0 auto;
  display: block;
}

/* 06. Bad Case & Postmortem */
.paper-badcase-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 40px;
}

.badcase-card {
  padding: 28px 24px;
  background: #e3dccd;
  border: 1px solid var(--rule);
  border-top: 3px solid #4a6850;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.badcase-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #4a6850;
  text-transform: uppercase;
}

.badcase-card h3 {
  font: 600 18px/1.4 'Noto Serif SC', 'Songti SC', serif;
  margin: 0;
}

.badcase-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.badcase-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: .05em;
}

.badcase-row p {
  font-size: 13.5px;
  line-height: 1.75;
  color: #4d5449;
  margin: 0;
}

.paper-eval-section {
  margin-top: 50px;
  padding: 35px 30px;
  background: #e0d9cc;
  border: 1px solid var(--rule);
}

.paper-eval-section .paper-subheading {
  margin: 0 0 20px;
}

.paper-table-wrap {
  overflow-x: auto;
}

.paper-eval-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.paper-eval-table th,
.paper-eval-table td {
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid var(--rule);
}

.paper-eval-table th {
  font-weight: 600;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .05em;
  background: color-mix(in srgb, #000 5%, transparent);
}

.table-highlight {
  background: color-mix(in srgb, var(--project-accent) 50%, transparent);
}

.table-best {
  background: color-mix(in srgb, #4a7553 15%, transparent);
}

.table-best td {
  color: #1f3b25;
  font-weight: 500;
}

.paper-mindset-box {
  margin-top: 45px;
  padding: 32px 36px;
  background: #ded7c7;
  border: 1px solid var(--rule);
  border-left: 5px solid #384e3e;
}

.mindset-pill {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #384e3e;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 4px;
  background: rgba(56, 78, 62, 0.08);
  border: 1px solid rgba(56, 78, 62, 0.16);
  margin-bottom: 16px;
}

.mindset-quote {
  font: 600 20px/1.6 'Noto Serif SC', 'Songti SC', serif;
  color: #242d25;
  margin-bottom: 16px;
  letter-spacing: -.02em;
}

.mindset-summary {
  font-size: 15px;
  line-height: 1.85;
  color: #4d554a;
  margin: 0;
}

@media (max-width: 960px) {
  .paper-stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
  }
  .paper-boundary-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
  }
  .paper-badcase-grid {
    grid-template-columns: 1fr;
  }
  .paper-flow-grid,
  .signal-flow-grid,
  .paper-flow-grid--5 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .paper-chapter {
    padding: 55px 0 45px;
  }
  .paper-chapter-heading,
  .paper-gallery-heading {
    display: block;
    margin-bottom: 24px;
  }
  .paper-chapter-heading .case-kicker,
  .paper-gallery-heading .case-kicker {
    padding-top: 0;
    margin-bottom: 12px;
  }
  .chapter-title-group h2,
  .paper-chapter-heading h2 {
    font-size: clamp(24px, 6vw, 32px);
    line-height: 1.35;
  }
  .chapter-title-group p,
  .paper-chapter-heading > p:last-child {
    font-size: 15px;
    margin-top: 14px;
  }
  .paper-stats-grid,
  .paper-pain-grid,
  .paper-mvp-grid,
  .paper-boundary-grid,
  .paper-flow-grid,
  .signal-flow-grid,
  .paper-flow-grid--5,
  .paper-badcase-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .paper-thesis-card {
    flex-direction: column;
    gap: 10px;
    padding: 20px;
  }
  .paper-gallery-item {
    display: block;
  }
  .gallery-meta {
    margin-bottom: 20px;
  }
  .paper-eval-section {
    padding: 20px 16px;
  }
  .paper-mindset-box {
    padding: 24px 20px;
    margin-top: 32px;
  }
  .mindset-quote {
    font-size: 18px;
    line-height: 1.55;
    margin-bottom: 12px;
  }
  .mindset-summary {
    font-size: 14px;
    line-height: 1.75;
  }
  .video-switcher-tabs {
    grid-template-columns: 1fr;
  }
  .video-feature-grid {
    grid-template-columns: 1fr;
  }
}

/* CampusJob Specific Refinements & 5-Step Flow Grid */
.campus-flow-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 20px;
}

.campus-theme .stat-number {
  color: #8c4e3e;
}

.campus-theme .thesis-pill {
  color: #8c4e3e;
}

.campus-theme .paper-thesis-card {
  border-left-color: #9e5845;
  background: color-mix(in srgb, var(--project-accent) 55%, var(--paper) 45%);
}

.campus-theme .flow-step-card {
  border-left-color: #9e5845;
  background: color-mix(in srgb, var(--project-accent) 22%, var(--paper) 78%);
}

.campus-theme .step-badge {
  color: #9e5845;
}

.campus-theme .badcase-card {
  border-top-color: #9e5845;
}

.campus-theme .badcase-tag {
  color: #9e5845;
}

.campus-theme .paper-mindset-box {
  border-left-color: #8c4e3e;
}

.campus-mvp-concept {
  margin-top: 28px;
  padding: 20px 24px;
  background: color-mix(in srgb, var(--project-accent) 35%, var(--paper) 65%);
  border: 1px solid var(--rule);
  border-left: 4px solid #8c4e3e;
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.mvp-concept-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #8c4e3e;
  white-space: nowrap;
}

.campus-mvp-concept p {
  font-size: 14px;
  line-height: 1.8;
  color: #494e46;
  margin: 0;
}

@media (max-width: 1100px) {
  .campus-flow-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px) {
  .campus-flow-grid {
    grid-template-columns: 1fr;
  }
  .campus-mvp-concept {
    flex-direction: column;
    gap: 8px;
  }
}

/* GZH Workbench 5-Step Flow Grid & Theme */
.gzh-flow-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 20px;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .gzh-flow-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 18px;
  }
  .gzh-flow-grid .flow-step-card:nth-child(1),
  .gzh-flow-grid .flow-step-card:nth-child(2),
  .gzh-flow-grid .flow-step-card:nth-child(3) {
    grid-column: span 2;
  }
  .gzh-flow-grid .flow-step-card:nth-child(4),
  .gzh-flow-grid .flow-step-card:nth-child(5) {
    grid-column: span 3;
  }
}

@media (max-width: 767px) {
  .gzh-flow-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .gzh-flow-grid .flow-step-card {
    grid-column: auto !important;
  }
}

/* GZH Layout Enhancements */
body[data-project="gzh"] .case-cover img {
  object-fit: cover;
  object-position: top center;
}

.paper-pain-grid article:nth-child(5):last-child {
  grid-column: 1 / -1;
}

@media (max-width: 767px) {
  .paper-pain-grid article:nth-child(5):last-child {
    grid-column: auto;
  }
}

.gallery-meta {
  position: sticky;
  top: 30px;
}

.badcase-card .badcase-solution {
  background: color-mix(in srgb, #4a7553 12%, var(--paper) 88%);
  padding: 12px 14px;
  border-left: 3px solid #4a7553;
  border-radius: 2px;
}

.badcase-solution .badcase-label {
  color: #2e5937;
  font-weight: 700;
}

.gallery-breakdown {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-size: 13.5px;
  line-height: 1.75;
  color: #495045;
  margin-top: 4px;
}

.gallery-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--muted);
  text-transform: uppercase;
}

.gallery-item-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.gallery-item-list li {
  padding-left: 14px;
  position: relative;
  font-size: 13px;
  line-height: 1.7;
}

.gallery-item-list li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: #8c6b4a;
  font-weight: bold;
}

.gallery-pm-note {
  padding: 12px 14px;
  background: color-mix(in srgb, var(--project-accent) 25%, var(--paper) 75%);
  border: 1px solid color-mix(in srgb, #9a7b56 30%, var(--rule) 70%);
  border-left: 3px solid #8c6b4a;
  border-radius: 2px;
  font-size: 13px;
  line-height: 1.7;
  color: #2b332b;
  margin-top: 6px;
}

.gallery-pm-note strong {
  color: #7b5836;
}

/* 精炼版功能特性与设计初衷卡片 */
.gallery-brief {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}

.brief-row {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 11px 13px;
  background: color-mix(in srgb, var(--paper) 93%, #000 7%);
  border: 1px solid color-mix(in srgb, var(--rule) 75%, #000 25%);
  border-radius: 4px;
}

.brief-tag {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 2px 7px;
  border-radius: 3px;
  line-height: 1.4;
}

.brief-tag--feat {
  background: color-mix(in srgb, var(--project-accent) 35%, var(--paper) 65%);
  color: #223525;
  border: 1px solid color-mix(in srgb, var(--project-accent) 55%, var(--rule) 45%);
}

.brief-tag--why {
  background: color-mix(in srgb, #9a7b56 16%, var(--paper) 84%);
  color: #69411c;
  border: 1px solid color-mix(in srgb, #9a7b56 35%, var(--rule) 65%);
}

.brief-row p {
  margin: 0;
  font-size: 13px;
  line-height: 1.68;
  color: #384238;
}

/* ============================================================ */
/* Hero Photo Stack (立体相片叠放与抽牌交互组件) */
/* ============================================================ */
.case-cover-stack-wrap {
  position: relative;
  width: 100%;
  perspective: 1200px;
}

.case-cover-stack {
  position: relative;
  padding: 14px;
  background: #f7f4ec;
  border: 1px solid #ffffff;
  border-radius: 4px;
  box-shadow: 0 10px 28px rgba(36, 40, 33, 0.12);
  transform: rotate(1deg);
  transform-origin: center center;
  transition: transform .35s cubic-bezier(.25, 1, .5, 1), box-shadow .35s ease;
  cursor: pointer;
  user-select: none;
  outline: none;
}

.case-cover-stack:focus-visible {
  outline: 2px solid #5f6c49;
  outline-offset: 4px;
}

/* 底下垫着的两层实体纸质卡片边缘 */
.stack-back-card {
  position: absolute;
  inset: 0;
  border-radius: 4px;
  pointer-events: none;
  transition: transform .4s cubic-bezier(.25, 1, .5, 1), box-shadow .4s ease;
}

.stack-back-card-2 {
  background: #ded8cb;
  border: 1px solid #cfc8ba;
  transform: rotate(3.2deg) translate(8px, 10px);
  z-index: 1;
  box-shadow: 0 8px 22px rgba(36, 40, 33, 0.08);
}

.stack-back-card-1 {
  background: #eae5d8;
  border: 1px solid #dbd5c7;
  transform: rotate(-2.4deg) translate(-6px, 6px);
  z-index: 2;
  box-shadow: 0 10px 24px rgba(36, 40, 33, 0.09);
}

/* 鼠标悬停时：底卡自然外展散开，扇形抽卡质感 */
.case-cover-stack:hover {
  transform: rotate(0.5deg) translateY(-4px);
  box-shadow: 0 18px 38px rgba(36, 40, 33, 0.16);
}

.case-cover-stack:hover .stack-back-card-1 {
  transform: rotate(-4.2deg) translate(-12px, 8px);
}

.case-cover-stack:hover .stack-back-card-2 {
  transform: rotate(5.4deg) translate(14px, 14px);
}

/* 主卡片内容容器 */
.stack-main-card {
  position: relative;
  z-index: 3;
  overflow: hidden;
  border-radius: 2px;
  background: #c8cbc0;
}

.stack-main-card img {
  width: 100%;
  height: min(50vw, 490px);
  object-fit: contain;
  display: block;
  transition: transform .22s cubic-bezier(.2, .8, .4, 1), opacity .22s ease;
  will-change: transform, opacity;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* 抽牌切换过渡动效 */
.stack-main-card.is-shuffling-next img {
  opacity: 0.12;
  transform: translateX(36px) translateY(-10px) rotate(3deg) scale(0.96);
}

.stack-main-card.is-shuffling-prev img {
  opacity: 0.12;
  transform: translateX(-36px) translateY(-10px) rotate(-3deg) scale(0.96);
}

.stack-cover-footer {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 14px;
}

.stack-cover-footer figcaption {
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.4;
  padding-top: 0;
  flex: 1;
  transition: opacity .2s ease;
}

.stack-cover-controls {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.stack-counter {
  font-family: var(--mono, monospace);
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  background: rgba(0, 0, 0, 0.06);
  padding: 3px 8px;
  border-radius: 12px;
  letter-spacing: .05em;
}

.stack-nav-btns {
  display: inline-flex;
  gap: 4px;
}

.stack-btn {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid #c8c2b5;
  background: #ffffff;
  color: var(--ink);
  font-size: 16px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .2s ease;
  padding: 0;
}

.stack-btn:hover {
  background: var(--ink);
  color: #ffffff;
  border-color: var(--ink);
  transform: scale(1.08);
}

.stack-hover-tip {
  position: absolute;
  top: -12px;
  right: 18px;
  z-index: 5;
  background: var(--ink);
  color: #f7f4ec;
  font-size: 11px;
  font-family: var(--mono, monospace);
  padding: 3px 10px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}

.case-cover-stack:hover .stack-hover-tip {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 767px) {
  .case-cover-stack {
    padding: 10px;
  }
  .case-cover-stack img {
    height: 65vw;
  }
  .stack-back-card-1 {
    transform: rotate(-2deg) translate(-4px, 4px);
  }
  .stack-back-card-2 {
    transform: rotate(2.5deg) translate(5px, 6px);
  }
  .case-cover-stack:hover .stack-back-card-1 {
    transform: rotate(-2.8deg) translate(-6px, 5px);
  }
  .case-cover-stack:hover .stack-back-card-2 {
    transform: rotate(3.2deg) translate(8px, 8px);
  }
}

/* In-Page Chapter Navigation in Header (Cohesive with LightMES) */
.case-header-nav {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 13.5px;
}

.case-header-nav a {
  color: var(--muted);
  font-weight: 500;
  text-decoration: none;
  padding: 4px 6px;
  border-radius: 4px;
  transition: color .18s ease, background-color .18s ease;
  white-space: nowrap;
}

.case-header-nav a:hover {
  color: var(--ink);
  background: color-mix(in srgb, var(--project-accent) 40%, transparent);
}

.case-header-nav a.active {
  color: var(--ink);
  font-weight: 700;
  border-bottom: 2px solid var(--ink);
}

.case-back-top {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  color: var(--muted);
  margin-left: 18px;
  border-bottom: 1px dotted var(--muted);
  transition: color .2s ease, border-color .2s ease;
}

.case-back-top:hover {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

@media (max-width: 960px) {
  .case-header-nav {
    display: none;
  }
}

/* ============================================================ */
/* Side Floating Minimalist TOC (右侧浮现简约横线悬停目录) */
/* ============================================================ */
.side-floating-toc {
  position: fixed;
  right: max(20px, calc((100vw - 1440px) / 2 + 20px));
  top: 50%;
  transform: translateY(-50%) translateX(12px);
  z-index: 120;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.35s;
  pointer-events: none;
}

.side-floating-toc.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
  pointer-events: auto;
}

.side-toc-rail {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  padding: 8px 6px;
  border-radius: 12px;
  background: transparent;
  border: 1px solid transparent;
  transition: background 0.28s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.28s ease,
              box-shadow 0.28s ease,
              padding 0.28s ease;
}

/* 鼠标悬停整个区域时，浮现精致磨砂玻璃卡片 */
.side-floating-toc:hover .side-toc-rail {
  background: color-mix(in srgb, var(--paper) 88%, #fff 12%);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: color-mix(in srgb, var(--rule) 75%, var(--ink) 25%);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(0, 0, 0, 0.03);
  padding: 12px 14px;
}

.side-toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-end;
}

.side-toc-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.side-toc-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 4px 0;
  text-decoration: none;
  cursor: pointer;
}

/* 默认简约横线样式 */
.side-toc-line {
  display: inline-block;
  width: 15px;
  height: 2px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink) 25%, transparent);
  transition: width 0.25s cubic-bezier(0.16, 1, 0.3, 1),
              height 0.25s ease,
              background-color 0.25s ease;
  flex-shrink: 0;
}

/* 当前处于该章节：横线伸长加深 */
.side-toc-link.active .side-toc-line {
  width: 28px;
  height: 2.5px;
  background: var(--ink);
}

/* 悬停某一项时横线加长加深 */
.side-toc-link:hover .side-toc-line {
  width: 28px;
  background: var(--ink);
}

/* 隐藏的文字标签，仅在悬停时优雅滑出展开 */
.side-toc-text {
  font-size: 13px;
  font-weight: 500;
  color: var(--muted);
  white-space: nowrap;
  opacity: 0;
  max-width: 0;
  overflow: hidden;
  transform: translateX(8px);
  transition: max-width 0.28s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
              color 0.2s ease;
  pointer-events: none;
}

.side-toc-num {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  margin-right: 5px;
  opacity: 0.65;
}

/* 鼠标悬停 TOC 区域时展开所有章节文字 */
.side-floating-toc:hover .side-toc-text {
  opacity: 0.8;
  max-width: 115px;
  transform: translateX(0);
  pointer-events: auto;
}

/* 单个链接悬停时更加醒目 */
.side-toc-link:hover .side-toc-text {
  opacity: 1 !important;
  color: var(--ink);
}

.side-toc-link.active .side-toc-text {
  color: var(--ink);
  font-weight: 700;
}

.side-floating-toc:hover .side-toc-link.active .side-toc-text {
  opacity: 1;
}

.side-toc-link.active .side-toc-num {
  opacity: 1;
}

/* 5 个项目的专属主题色彩微调，保持同样规格又具辨识度 */
body[data-project="paper"] .side-toc-link.active .side-toc-line,
body[data-project="paper"] .side-toc-link:hover .side-toc-line {
  background: #384e3e;
}
body[data-project="paper"] .side-toc-link.active .side-toc-text,
body[data-project="paper"] .side-toc-link.active .side-toc-num {
  color: #26362b;
}

body[data-project="campus"] .side-toc-link.active .side-toc-line,
body[data-project="campus"] .side-toc-link:hover .side-toc-line {
  background: #8c4e3e;
}
body[data-project="campus"] .side-toc-link.active .side-toc-text,
body[data-project="campus"] .side-toc-link.active .side-toc-num {
  color: #703c30;
}

body[data-project="gzh"] .side-toc-link.active .side-toc-line,
body[data-project="gzh"] .side-toc-link:hover .side-toc-line {
  background: #7a5839;
}
body[data-project="gzh"] .side-toc-link.active .side-toc-text,
body[data-project="gzh"] .side-toc-link.active .side-toc-num {
  color: #5c4129;
}

body[data-project="signal"] .side-toc-link.active .side-toc-line,
body[data-project="signal"] .side-toc-link:hover .side-toc-line {
  background: #474378;
}
body[data-project="signal"] .side-toc-link.active .side-toc-text,
body[data-project="signal"] .side-toc-link.active .side-toc-num {
  color: #353160;
}

body[data-project="focus"] .side-toc-link.active .side-toc-line,
body[data-project="focus"] .side-toc-link:hover .side-toc-line {
  background: #385b46;
}
body[data-project="focus"] .side-toc-link.active .side-toc-text,
body[data-project="focus"] .side-toc-link.active .side-toc-num {
  color: #274232;
}

/* 宽屏下为右侧悬浮目录预留呼吸通道，彻底避免任何文字与卡片重叠 */
@media (min-width: 1161px) {
  :is(.paper-opening, .signal-opening, .campus-opening, .gzh-opening, .focus-opening, .case-story, .case-gallery, .case-navigation) {
    padding-right: 170px;
  }
}

/* 移动端与较窄视口自动隐藏 */
@media (max-width: 1160px) {
  .side-floating-toc {
    display: none !important;
  }
}

