:root{--paper:#FFFFFF;--ink:#142C40;--accent:#145E68;--muted:#617178;--line:#CBD4D2;--scale:1;color-scheme:light;font-family:"Microsoft YaHei","Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;overflow:hidden}h1,h2,h3,p,figure{margin:0}a{color:var(--accent);text-underline-offset:5px}button,a{touch-action:manipulation}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.slide *{min-width:0}#viewport{height:calc(100dvh - 56px);display:flex;align-items:center;justify-content:center;overflow:hidden}#stage{width:1600px;height:900px;flex:none;transform:scale(var(--scale));transform-origin:center}.slide{width:1600px;height:900px;padding:56px 72px 42px;display:flex;flex-direction:column;background:var(--paper);overflow:hidden}.slide:focus{outline:none}.slide-head{flex:none;margin-bottom:24px}.eyebrow{font-size:22px;line-height:1.3;letter-spacing:2px;color:var(--accent);margin-bottom:10px}h2{font-size:48px;line-height:1.2;font-weight:600}h3{font-size:28px;line-height:1.4;font-weight:600}.subtitle{font-size:26px;line-height:1.5;color:var(--muted);margin-top:12px}.slide-body{flex:1;min-height:0;display:flex;flex-direction:column;font-size:26px;line-height:1.5}.page-foot{flex:none;display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:13px;margin-top:18px;color:var(--muted);font-size:18px;line-height:1.3}figcaption{font-size:22px;line-height:1.4;color:var(--muted);flex:none}.diagram{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}.diagram-frame{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;width:100%}.diagram-canvas{display:block;width:100%;height:100%;object-fit:contain;min-height:0}.diagram figcaption{text-align:left}.support-strip{display:flex;align-items:flex-start;gap:22px;font-size:22px;line-height:1.5;border-top:1px solid var(--line);padding-top:14px;margin-top:18px;flex:none}.support-strip>span{flex:none;color:var(--accent);font-weight:600;white-space:nowrap}.support-strip>p{flex:1}.support-strip>a{flex:none;white-space:nowrap}

.cover{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:70px;align-items:center;height:100%}.cover h1{font-size:90px;line-height:1.2;font-weight:600;margin:18px 0}.latin-name{font-size:26px;letter-spacing:2px;color:var(--muted)}.cover-roles{font-size:26px;line-height:1.7;margin-top:30px}.cover-focus{margin-top:32px}.cover-focus>span{font-size:24px;color:var(--muted)}.cover-focus>strong{display:block;font-size:44px;line-height:1.4;margin-top:12px;font-weight:500}.cover-copy>a{display:inline-block;font-size:22px;margin-top:28px}.cover-portrait{height:680px;width:100%;display:flex;align-items:center;justify-content:center}.cover-portrait img{width:100%;height:100%;max-width:100%;object-fit:contain}.closing{height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:65px;align-items:center}.closing h2{font-size:76px;line-height:1.3;margin:18px 0 30px}.closing-focus{font-size:30px;line-height:1.7}.closing strong{display:block;font-size:28px;font-weight:500;margin-top:42px}.closing strong span{font-size:22px;color:var(--muted);margin-left:14px}.contact-block{border-left:1px solid var(--line);padding-left:44px}.contact-block>div{margin-bottom:32px}.contact-block>div>span{display:block;color:var(--muted);font-size:22px;margin-bottom:7px}.contact-block a{font-size:28px;overflow-wrap:anywhere}.contact-block .cv-link{font-size:22px}

.experience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;flex:1}.column-title{font-size:26px;color:var(--accent);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:8px}.institution{display:grid;grid-template-columns:84px minmax(0,1fr);gap:15px;align-items:center;padding:16px 0;min-height:149px;border-bottom:1px solid var(--line)}.institution:last-child{border-bottom:0}.institution time{display:block;font-size:22px;color:var(--muted);line-height:1.3;margin-bottom:5px}.institution h3{font-size:27px;line-height:1.35}.institution p,.institution small{font-size:22px;line-height:1.45;margin-top:4px}.institution small{display:block;color:var(--muted)}.institution-logo{--logo-size:76px;width:var(--logo-size);height:var(--logo-size);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.institution-logo img{display:block;width:100%;height:100%;object-fit:contain}.crop-imust img{position:absolute;width:calc(var(--logo-size)*2048/556);height:calc(var(--logo-size)*1448/556);max-width:none;left:calc(var(--logo-size)*-237/556);top:calc(var(--logo-size)*-714/556);object-fit:fill}

.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding:8px 0 34px}.metrics article{border-top:2px solid var(--accent);padding-top:18px}.metrics strong{display:block;font-size:88px;font-weight:500;line-height:1.2;color:var(--accent);white-space:nowrap}.metrics strong small{font-size:26px;font-weight:400;margin-left:8px}.metrics h3{font-size:28px;margin:12px 0 10px}.metrics p{font-size:22px;color:var(--muted);line-height:1.6}.outcome-meaning{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;border-top:1px solid var(--line);padding-top:26px;margin-top:12px}.outcome-meaning span{font-size:22px;color:var(--accent)}.outcome-meaning h3{margin:7px 0;font-size:28px}.outcome-meaning p{font-size:22px}.source-line{display:flex;justify-content:space-between;gap:20px;font-size:22px;color:var(--muted);margin-top:auto;padding-top:24px}

.principle-layout{display:grid;grid-template-columns:minmax(0,2.55fr) minmax(0,1fr);gap:30px;flex:1;min-height:0}.evidence-side{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line);padding-left:25px;gap:18px}.keypoints{display:flex;flex-direction:column;gap:16px}.keypoints h3{font-size:25px;color:var(--accent);margin-bottom:3px}.keypoints p{font-size:22px;line-height:1.5}.photo-figure{display:flex;flex-direction:column;gap:7px;margin-top:auto;min-height:0}.photo-figure img{display:block;width:100%;height:155px;max-height:180px;object-fit:contain;object-position:left center}.photo-figure figcaption{font-size:22px;line-height:1.35}.method-layout{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(0,1fr);gap:32px;flex:1;min-height:0}.method-explain{border-left:1px solid var(--line);padding-left:28px;display:flex;flex-direction:column;justify-content:center;gap:35px}.method-choice{display:grid;grid-template-columns:66px minmax(0,1fr);gap:16px;align-items:start}.method-choice>b{font-size:30px;color:var(--accent);font-weight:500;line-height:1.4}.method-choice h3{font-size:26px}.method-choice p{font-size:22px;color:var(--muted);margin-top:7px}.method-explain .keypoints{gap:34px}

.software-cycle,.data-path{display:grid;grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr) 52px minmax(0,1fr);gap:26px;align-items:start}.software-cycle{padding-top:18px}.software-cycle article,.data-path article{border-top:2px solid var(--accent);padding-top:18px}.software-cycle article>span,.data-path article>span{font-size:22px;color:var(--muted)}.software-cycle h3,.data-path h3{font-size:32px;margin:12px 0}.software-cycle p,.data-path p{font-size:26px;line-height:1.6}.software-cycle i,.data-path i{font-size:38px;font-style:normal;color:var(--accent);align-self:center;text-align:center}.feedback-ribbon{display:flex;align-items:center;justify-content:space-between;color:var(--accent);gap:24px;margin:32px 0;padding:14px 26px;border-bottom:1px solid var(--accent);font-size:26px}.feedback-ribbon>span{font-size:34px}.software-foundation{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:22px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0}.software-foundation h3{font-size:26px;color:var(--accent)}.software-foundation p{font-size:24px}.software-foundation+.support-strip{margin-top:auto}.data-method{display:flex;flex-direction:column;flex:1;justify-content:space-between;gap:24px}.data-inputs{display:grid;grid-template-columns:.65fr repeat(3,minmax(0,1fr));gap:24px;text-align:center;padding:14px 0 22px;border-bottom:1px solid var(--line);font-size:26px;color:var(--accent)}.data-inputs span{position:relative}.data-inputs b{font-size:22px;font-weight:400;color:var(--muted)}.data-path{gap:22px}.data-path h3{font-size:30px}.data-path p{font-size:24px}.data-applications{display:grid;grid-template-columns:.65fr repeat(3,minmax(0,1fr));gap:24px;align-items:center;border-top:1px solid var(--line);padding-top:20px}.data-applications span{color:var(--muted);font-size:22px}.data-applications b{font-size:26px;font-weight:500;color:var(--accent)}

.evidence-map{display:flex;flex-direction:column;flex:1}.map-head,.evidence-map article{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:32px;align-items:center}.map-head{font-size:20px;color:var(--muted);border-bottom:2px solid var(--accent);padding:0 0 12px}.evidence-map article{flex:1;padding:19px 0;border-bottom:1px solid var(--line)}.evidence-map h3{font-size:25px;font-weight:500;color:var(--accent)}.evidence-map p{font-size:22px;line-height:1.6}.map-conclusion{font-size:24px;color:var(--muted);margin-top:22px}.coop-list{display:flex;flex-direction:column;justify-content:space-evenly;flex:1;gap:20px}.coop-list article{display:grid;grid-template-columns:60px minmax(0,1fr) 175px;gap:30px;align-items:start;border-top:1px solid var(--line);padding-top:25px}.coop-list article>span{color:var(--muted);font-size:24px;padding-top:4px}.coop-list h3{font-size:32px;margin-bottom:14px}.coop-list p{font-size:26px}.coop-list article>b{font-size:24px;color:var(--accent);font-weight:500;padding-top:5px}

.skip-link{position:fixed;top:8px;left:8px;z-index:20;transform:translateY(-160%);padding:12px;background:var(--paper)}.skip-link:focus{transform:none}.toolbar{height:56px;position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:7px 24px;border-top:1px solid var(--line);font-size:14px;background:var(--paper)}.toolbar-context,.toolbar-actions{display:flex;gap:12px;align-items:center}.toolbar-context>span:first-child{margin-right:16px}.toolbar button{height:40px;min-width:40px;padding:0 13px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.toolbar-divider{width:1px;height:24px;background:var(--line);margin:0 4px}button:disabled{opacity:.35;cursor:default}button[aria-pressed=true]{background:var(--accent);color:var(--paper)}#counter{font-variant-numeric:tabular-nums;min-width:56px;text-align:center}#chapterNow{color:var(--muted);white-space:nowrap}.progress{position:absolute;left:0;top:-3px;width:100%;height:3px;background:var(--line)}#progressFill{display:block;height:3px;background:var(--accent);width:0;transition:width .15s linear}#tocDialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:min(720px,calc(100vw - 32px));max-height:85dvh;padding:28px}#tocDialog::backdrop{background:rgb(20 44 64 / .3)}.toc-head{display:flex;justify-content:space-between;align-items:start;gap:16px}#tocDialog h2{font-size:28px;margin-bottom:20px}#tocClose{border:1px solid var(--line);background:none;color:var(--ink);min-height:40px;padding:0 12px}#tocList h3{font-size:18px;margin:20px 0 8px;color:var(--accent)}#tocList ol{list-style:none;margin:0;padding:0}#tocList button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:10px 8px;min-height:40px;font-size:18px;cursor:pointer}#tocList button[aria-current=page]{font-weight:700;color:var(--accent)}

body.reading{overflow:auto;padding-bottom:56px}body.reading #viewport{display:block;height:auto;overflow:visible;padding:28px 20px}body.reading #stage{width:min(1600px,100%);height:auto;transform:none;margin:auto}body.reading .slide{width:100%;height:auto;min-height:900px;padding:48px 50px;margin-bottom:32px;border-bottom:1px solid var(--line);overflow:visible;scroll-margin-top:24px}body.reading .slide-body{min-height:560px}body.reading .diagram-frame{min-height:420px}body.reading .diagram-canvas{height:auto;max-height:540px}body.reading .principle-layout,body.reading .method-layout{min-height:500px}body.reading .toolbar{position:fixed;bottom:0;left:0;width:100%}body.reading .cover-portrait{height:650px}
@media(max-width:1100px){body.reading .experience-grid{gap:22px}body.reading .institution{grid-template-columns:64px minmax(0,1fr);gap:10px}body.reading .institution-logo{--logo-size:60px}body.reading .metrics{gap:16px}body.reading .metrics strong{font-size:68px}body.reading .metrics h3{font-size:24px}body.reading .metrics p{font-size:22px}body.reading .cover{gap:36px}}
@media(max-width:760px){body.reading #viewport{padding:0 18px}body.reading .slide{min-height:0;padding:36px 0 24px;margin-bottom:12px}body.reading .slide-body{min-height:0}body.reading .slide-head{margin-bottom:26px}body.reading .cover,body.reading .closing,body.reading .experience-grid,body.reading .metrics,body.reading .outcome-meaning,body.reading .principle-layout,body.reading .method-layout,body.reading .software-cycle,body.reading .software-foundation,body.reading .data-inputs,body.reading .data-path,body.reading .data-applications{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;gap:26px}h2{font-size:32px;line-height:1.35}.eyebrow{font-size:18px;letter-spacing:1px}.subtitle{font-size:22px;line-height:1.55}.slide-body{font-size:22px}h3{font-size:25px}.page-foot{font-size:14px;gap:16px;margin-top:28px;align-items:flex-end}.page-foot>span:last-child{white-space:nowrap}.cover h1,body.reading .cover h1{font-size:60px;margin:18px 0}.latin-name{font-size:23px}.cover-roles{font-size:22px;margin-top:24px}.cover-focus{margin-top:26px}.cover-focus>span{font-size:22px}.cover-focus>strong{font-size:32px}.cover-copy>a{margin-top:24px}.cover-portrait,body.reading .cover-portrait{height:auto;max-height:480px;aspect-ratio:3/2}.cover-portrait img{height:100%;max-height:480px}.closing h2{font-size:52px;margin:14px 0 24px}.closing-focus{font-size:24px}.closing strong{font-size:26px;margin-top:30px}.closing strong span{display:block;font-size:22px;margin:5px 0 0}.contact-block{border-left:0;border-top:1px solid var(--line);padding:26px 0 0}.contact-block a{font-size:22px}.contact-block>div{margin-bottom:25px}.experience-grid>div{margin-bottom:8px}.column-title{font-size:26px}.institution,body.reading .institution{grid-template-columns:76px minmax(0,1fr);gap:16px;min-height:145px;padding:20px 0}.institution-logo,body.reading .institution-logo{--logo-size:72px}.institution h3{font-size:25px}.institution p,.institution small,.institution time{font-size:22px}.metrics{padding:0}.metrics article{padding:18px 0}.metrics strong,body.reading .metrics strong{font-size:76px}.metrics h3,body.reading .metrics h3{font-size:28px;margin:6px 0}.metrics p{font-size:22px}.outcome-meaning{margin:24px 0 0;padding-top:24px}.source-line{flex-direction:column;font-size:20px;gap:12px;margin-top:24px}.diagram{width:100%;flex:none;gap:12px}.diagram-frame,body.reading .diagram-frame{display:block;flex:none;min-height:0;height:auto;overflow-x:auto;overflow-y:hidden;max-width:100%;width:100%;justify-content:initial;-webkit-overflow-scrolling:touch;padding-bottom:8px}.diagram-canvas,body.reading .diagram-canvas{display:block;min-width:900px;width:900px;height:auto;max-width:none;max-height:none;object-fit:contain}#p4 .diagram-canvas{width:1200px;min-width:1200px}.diagram figcaption,.photo-figure figcaption{font-size:20px;line-height:1.5}.evidence-side,.method-explain{border-left:0;border-top:1px solid var(--line);padding:22px 0 0;gap:26px;min-height:0}.keypoints,.method-explain .keypoints{gap:22px}.keypoints h3{font-size:25px}.keypoints p{font-size:22px}.photo-figure{margin-top:0;gap:10px}.photo-figure img{height:auto;max-height:260px;width:100%;object-fit:contain;object-position:left center}.support-strip{flex-wrap:wrap;gap:8px 16px;margin-top:26px;padding-top:18px;font-size:22px}.support-strip>span{width:100%}.support-strip>p{flex-basis:100%}.method-choice{grid-template-columns:64px minmax(0,1fr);gap:14px}.method-choice h3{font-size:25px}.method-choice p{font-size:22px}.software-cycle,.data-path{padding-top:0}.software-cycle h3,.data-path h3{font-size:29px;margin:10px 0}.software-cycle p,.data-path p{font-size:22px}.software-cycle i,.data-path i{transform:rotate(90deg);font-size:30px;line-height:1}.feedback-ribbon{margin:24px 0;padding:12px 0;gap:12px;font-size:22px}.feedback-ribbon>span{font-size:27px}.software-foundation{padding:22px 0}.software-foundation p{font-size:22px}.software-foundation+.support-strip{margin-top:26px}.data-method{gap:28px}.data-inputs{padding-top:0;text-align:left;font-size:24px}.data-inputs span{display:flex;align-items:center;justify-content:space-between}.data-inputs span::after{margin:0}.data-applications{gap:14px!important}.data-applications b{font-size:24px}.map-head{display:none}.evidence-map{gap:0}.evidence-map article{grid-template-columns:minmax(0,1fr);gap:18px;padding:24px 0;flex:none}.evidence-map h3{font-size:26px}.evidence-map article>p{font-size:22px}.evidence-map article>p::before{display:block;font-size:18px;color:var(--muted);margin-bottom:5px}.evidence-map article>p:nth-child(2)::before{content:"项目与工程基础"}.evidence-map article>p:nth-child(3)::before{content:"代表成果支撑"}.map-conclusion{font-size:22px;margin-top:24px}.coop-list{gap:26px}.coop-list article{grid-template-columns:32px minmax(0,1fr);gap:12px}.coop-list h3{font-size:27px;margin-bottom:12px}.coop-list p{font-size:22px}.coop-list article>b{grid-column:2;font-size:22px;padding:0}.coop-list article>span{font-size:22px}.toolbar{justify-content:center;padding:7px 6px;font-size:12px}.toolbar-context{display:none}.toolbar-actions{gap:5px}.toolbar button{padding:0 9px}.toolbar-divider{margin:0 2px}#counter{min-width:42px}#fullToggle{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media print{body{overflow:visible;padding:0!important}#viewport,body.reading #viewport{display:block;height:auto;overflow:visible;padding:0}#stage,body.reading #stage{transform:none;width:1600px;height:auto}.slide,.slide[hidden],body.reading .slide{display:flex!important;break-after:page;width:1600px;height:900px;min-height:900px;margin:0;padding:56px 72px 42px}.toolbar,#tocDialog,.skip-link{display:none!important}}

@media(max-width:760px){.diagram::before{content:'左右滑动查看完整图示';display:block;color:var(--muted);font-size:16px;margin-bottom:12px}.support-strip p{overflow-wrap:anywhere}}
