@charset "UTF-8";
:root{--paper:#eeeee7;--ink:#171c19;--lime:#d5ee81;--line:#c9cec0;--muted:#646e5e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #779737;outline-offset:4px}::selection{background:var(--lime);color:var(--ink)}.skip{position:fixed;top:-100px;background:var(--lime);padding:15px;z-index:100}.skip:focus{top:0}header{display:flex;justify-content:space-between;align-items:center;height:86px;padding:0 5%;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:800;letter-spacing:2px}.brand b{font-size:39px}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:4px;font-weight:400}nav{display:flex;gap:30px;align-items:center;font-size:12px}nav a:hover{color:#68822f}.nav-resume{border:1px solid var(--ink);padding:10px 15px}.hero{display:grid;grid-template-columns:1fr 1.05fr;min-height:660px}.hero-copy{padding:42px 10% 24px;display:flex;flex-direction:column}.eyebrow{font-size:10px;letter-spacing:2px;display:flex;align-items:center;gap:10px;margin:0 0 20px;font-weight:500}.eyebrow>span{margin-left:auto;color:#6a755e;font-size:9px}.hero-role{font-size:12px;letter-spacing:3px;margin:32px 0 5px}h1{font-size:clamp(100px,10vw,160px);letter-spacing:-8px;line-height:1.15;margin:0 0 20px;font-weight:900}h1 span{color:#8c9f56}.hero h2{font-size:29px;line-height:1.55;letter-spacing:2px;margin:0}.intro{font-size:12px;line-height:2.1;color:var(--muted);margin:20px 0 24px}.actions{display:flex;align-items:center;gap:26px;margin:0 0 35px}.button{border:0;display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 20px;font-size:12px;font-weight:600}.lime{background:var(--lime);color:var(--ink)}.lime:hover{background:#c4e365}.text-link{font-size:12px;border-bottom:1px solid #8d997f;padding:9px 0}.hero-meta{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;gap:15px;font-size:9px;margin-top:auto;line-height:1.7}.hero-art{background:#19201c;background-image:linear-gradient(#a6b5970b 1px,transparent 1px),linear-gradient(90deg,#a6b5970b 1px,transparent 1px);background-size:32px 32px;position:relative;overflow:hidden;color:#dbe3d0;display:flex;flex-direction:column;justify-content:space-between;padding:28px}.art-label,.art-bottom{font-size:9px;letter-spacing:2px;display:flex;justify-content:space-between;z-index:2}.art-label span{color:var(--lime);font-size:20px}.art-bottom{letter-spacing:1px;line-height:1.8}.hero-images{position:absolute;inset:100px 28px 90px;display:flex;align-items:center;gap:12px}.hero-images img{width:calc((100% - 24px)/3);height:82%;object-fit:cover;object-position:center;border:1px solid #66715c;filter:saturate(.85)}.hero-images img:nth-child(2){height:100%;transform:translateY(-10px)}.hero-images img:nth-child(3){transform:translateY(24px)}.index-strip{display:grid;grid-template-columns:1fr 1fr 1.5fr 1fr;background:var(--lime);padding:0 5%}.index-strip a{font-size:11px;padding:20px 8px;border-right:1px solid #acbf78;text-align:center}.index-strip a:first-child{border-left:1px solid #acbf78}.index-strip a:hover{background:#c4dd78}.index-strip span{font-size:9px;opacity:.6;margin-right:12px}.portfolio-intro{display:flex;justify-content:space-between;align-items:center;padding:44px 5% 0}.portfolio-intro p{font-size:20px;font-weight:600;margin:0}.portfolio-intro>span{font-size:10px;line-height:1.8;color:var(--muted);text-align:right}.work-section{padding:60px 5% 70px}.section-heading{display:flex;justify-content:space-between;gap:25px;align-items:end}.section-heading .eyebrow{color:#6b765f;margin-bottom:15px}h2{font-size:34px;letter-spacing:-1px;margin:0}.section-heading h2 span{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:1px;display:inline-block;margin-left:25px}.counter{font-size:10px;letter-spacing:1px;white-space:nowrap;border:1px solid #a9b598;padding:8px 12px}.section-brief{display:flex;justify-content:space-between;align-items:center;gap:30px;margin:23px 0 28px}.section-brief p{max-width:650px;font-size:12px;line-height:1.9;color:var(--muted);margin:0}.responsibility{font-size:10px;line-height:1.8;border-left:2px solid #98a67f;padding-left:12px;flex-shrink:0}.subnav{display:flex;gap:10px;margin-bottom:24px}.subnav button{border:1px solid #b7bfac;background:transparent;padding:8px 17px;font-size:11px;color:var(--muted)}.subnav button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 20px}.card{min-width:0}.card-open{display:block;width:100%;border:0;background:none;color:inherit;padding:0;text-align:left}.cover{position:relative;background:#20271f;aspect-ratio:3/4;overflow:hidden;border:1px solid #adb7a0}.cover img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .35s}.card-open:hover .cover img{transform:scale(1.035)}.cover:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0009);pointer-events:none}.cover-id{position:absolute;top:10px;left:10px;background:#131b16cc;color:#e7eddf;font-size:8px;padding:5px 7px;letter-spacing:1px;z-index:1}.cover-type{position:absolute;bottom:12px;left:12px;color:white;font-size:10px;z-index:1}.play{position:absolute;bottom:10px;right:10px;width:30px;height:30px;display:grid;place-items:center;border:1px solid #e9efdd90;color:white;background:#141b1890;z-index:1;font-size:10px}.card h3{margin:15px 0 8px;font-size:15px;line-height:1.5}.card .role{font-size:10px;color:var(--muted);line-height:1.8;margin:0;min-height:32px}.card .type{font-size:9px;color:#7c866e;padding-top:8px;border-top:1px solid var(--line);margin-top:10px}.more{display:block;margin:30px auto 0;background:transparent;color:inherit;border:1px solid #8d9a7c;padding:12px 25px;font-size:11px}.more[hidden]{display:none}.dark{background:var(--ink);color:var(--paper)}.dark .section-heading .eyebrow,.dark .section-brief p,.dark .role,.dark h2 span{color:#b3bca6}.dark .cover{border-color:#46513c}.dark .type{border-color:#48543e;color:#aab69b}.dark .counter{border-color:#5c6d4e}.account-briefs{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:30px 0}.account-briefs article{border-top:2px solid var(--ink);padding-top:20px}.account-briefs span{font-size:9px;letter-spacing:2px;color:#78866a}.account-briefs h3{font-size:25px;margin:14px 0}.account-briefs p{font-size:12px;line-height:1.9;max-width:480px;color:var(--muted)}.camera-section{background:#e1e5d7;border-top:1px solid #c4cdb7}.resume-section{display:grid;grid-template-columns:1fr 2.1fr;gap:7%;padding:80px 5%;border-top:1px solid var(--line)}.resume-sidebar h2{font-size:35px}.resume-sidebar>p:not(.eyebrow){font-size:13px;line-height:2;color:var(--muted);margin:20px 0 30px}.file-note{font-size:10px;line-height:1.9;color:#7c866e;margin-top:25px}.resume-summary h3{font-size:25px;margin:0 0 20px}.resume-summary p{font-size:13px;line-height:2;color:var(--muted);margin:0}.resume-label{font-size:10px;letter-spacing:2px;border-bottom:2px solid var(--ink);padding-bottom:15px;margin:40px 0 25px}.timeline{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:25px}.timeline-top{display:flex;justify-content:space-between;gap:15px;align-items:baseline}.timeline h4{font-size:17px;margin:0}.timeline time,.project-list time{font-size:10px;color:var(--muted);white-space:nowrap}.job h5{font-size:12px;margin:23px 0 12px;line-height:1.8}.job h5 span{font-size:10px;font-weight:400;color:#778269;margin-left:14px}.job ul{padding-left:18px;margin:0;font-size:12px;line-height:2;color:var(--muted)}.inline-link{display:inline-block;font-size:10px;margin-top:12px;border-bottom:1px solid #819465;padding-bottom:5px}.metrics-note{font-size:10px;color:#7a836f;line-height:1.8}.project-list article{display:grid;grid-template-columns:90px 1fr;gap:15px;margin-bottom:25px}.project-list h4,.education h4{font-size:14px;margin:0 0 10px}.project-list p,.education p,.equipment{font-size:12px;color:var(--muted);line-height:1.9;margin:0}.education h4:not(:first-child){margin-top:20px}.education .certs{margin-top:25px;border:1px solid var(--line);padding:12px}.skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.skill-grid h4{font-size:13px;margin:0 0 10px}.skill-grid p{font-size:11px;color:var(--muted);line-height:1.9;margin:0}.contact{background:var(--lime);padding:60px 5%;position:relative}.contact h2{font-size:42px;line-height:1.4}.contact>p:not(.eyebrow){font-size:12px;margin:25px 0}.contact>span{display:inline-block;font-size:11px;border:1px solid #9cb568;padding:10px 15px}.contact>a{position:absolute;right:5%;bottom:60px;font-size:12px;border-bottom:1px solid #6f893b;padding-bottom:8px}footer{display:flex;justify-content:space-between;gap:20px;padding:24px 5%;font-size:9px;color:#6e7962;letter-spacing:1px}dialog{width:min(1100px,94vw);max-height:94vh;border:1px solid #58644e;background:#171e19;color:#eef1e6;padding:0;overflow:auto}dialog::backdrop{background:#060c08dd;backdrop-filter:blur(6px)}.viewer-top{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid #3e4b35;font-size:10px;letter-spacing:1px;position:sticky;top:0;background:#171e19;z-index:3}.viewer-top button{background:transparent;border:1px solid #6d7c5e;color:#e4ecd9;padding:8px 14px;font-size:12px}.viewer-layout{display:grid;grid-template-columns:1.45fr 1fr}.viewer-info{padding:35px 28px}.viewer-info h2{font-size:26px;line-height:1.5}.viewer-info h3{font-size:10px;letter-spacing:2px;color:#d5ee81;margin:30px 0 12px}.viewer-info p{font-size:12px;line-height:1.9;color:#b8c4a9}.viewer-info .playback-note{font-size:10px;border-top:1px solid #47543b;padding-top:18px;margin-top:30px;color:#8b9a7c}#viewer-media{background:#090e0a;min-height:380px;display:flex;align-items:center;justify-content:center}#viewer-media video,#viewer-media img{width:100%;max-height:75vh;object-fit:contain;display:block}.viewer-controls{display:flex;gap:10px;margin-top:22px}.viewer-controls button{background:transparent;border:1px solid #596e44;color:#d2e2bd;padding:9px 12px;font-size:11px}#media-status{color:#e8cd9a}.modal-open{overflow:hidden}
.subnav{flex-wrap:wrap;justify-content:flex-start;gap:10px;width:100%}.subnav a{border:1px solid #a5b591;padding:10px 14px;font-size:11px}.subnav a:hover{background:var(--lime);color:var(--ink)}.subsection-heading{display:flex;align-items:center;gap:15px;margin:25px 0}.subsection-heading>span:first-child{font-size:11px;color:#778665;letter-spacing:2px}.subsection-heading h3{font-size:23px;margin:0;line-height:1.5}.subsection-heading .counter{margin-left:auto}.visual-subsection{padding-top:35px;margin-top:45px;border-top:1px solid var(--line);scroll-margin-top:25px}.subsection-description{font-size:12px;line-height:1.9;color:var(--muted);max-width:750px;margin:0 0 26px}#setup .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}#setup .cover{aspect-ratio:16/10}#poster .gallery{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}#poster .cover{aspect-ratio:3/4.3}#visual-images{scroll-margin-top:115px}@media(max-width:650px){.subnav{gap:8px}.subnav a{font-size:10px;padding:9px 10px}.subsection-heading{gap:10px;flex-wrap:wrap}.subsection-heading h3{font-size:20px}.subsection-description{font-size:11px}.visual-subsection{margin-top:32px;padding-top:20px}#setup .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.subsection-heading .counter{font-size:8px}.subsection-heading>span:first-child{font-size:9px}}
@media(min-width:1700px){body{max-width:1800px;margin:auto;border:1px solid var(--line)}.hero{min-height:760px}}
@media(max-width:1000px){nav{gap:18px}.hero-copy{padding:35px 8% 24px}.hero{min-height:620px}.hero h2{font-size:24px}.hero-role{margin-top:25px}.actions{flex-wrap:wrap;gap:15px}.hero-images{inset:110px 18px 100px;gap:7px}.hero-images img{width:calc((100% - 14px)/3)}.hero-art{padding:24px 18px}.hero-meta{font-size:8px}.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.section-heading h2 span{display:block;margin:12px 0 0}.section-brief{align-items:start}.responsibility{max-width:160px;flex-shrink:1}.resume-section{grid-template-columns:1fr 2fr;gap:5%}.timeline-top{display:block}.timeline time{display:block;margin-top:10px}}
@media(max-width:650px){html{scroll-padding-top:120px}header{height:auto;min-height:100px;align-items:start;padding:16px 6% 12px;flex-wrap:wrap;gap:15px}.brand{font-size:18px;gap:8px}.brand b{font-size:28px}.brand small{font-size:7px}nav{width:100%;justify-content:space-between;gap:8px;font-size:10px}.nav-resume{padding:0;border:0}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:30px 6% 25px}.eyebrow{font-size:9px;letter-spacing:1px}.hero-role{margin-top:15px}h1{font-size:112px;letter-spacing:-7px;margin:0 0 15px}.hero h2{font-size:25px}.intro{font-size:12px}.actions{gap:25px;margin-bottom:30px}.hero-art{height:400px;padding:22px 6%}.hero-images{inset:65px 6% 65px;gap:12px}.hero-images img{width:calc((100% - 24px)/3)}.art-label,.art-bottom{font-size:8px}.index-strip{grid-template-columns:1fr 1fr;padding:0 6%}.index-strip a{font-size:9px;padding:17px 2px}.index-strip a:nth-child(3){border-left:1px solid #acbf78;border-top:1px solid #acbf78}.index-strip a:nth-child(4){border-top:1px solid #acbf78}.index-strip span{margin-right:5px}.portfolio-intro{padding:32px 6% 0;gap:20px}.portfolio-intro p{font-size:17px}.portfolio-intro>span{font-size:8px}.work-section{padding:42px 6%}.section-heading{gap:15px;align-items:start}h2{font-size:27px;line-height:1.4}.section-heading h2 span{font-size:10px;line-height:1.8;margin-top:8px}.counter{font-size:8px;padding:5px;flex-shrink:0}.section-brief{display:block;margin:18px 0 24px}.section-brief p{font-size:11px}.responsibility{display:block;max-width:none;margin-top:15px;font-size:9px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.cover{aspect-ratio:3/4.4}.card h3{font-size:12px;margin:12px 0 6px}.card .role{font-size:9px}.card .type{font-size:8px}.cover-id{font-size:7px;left:6px;top:6px;padding:4px}.cover-type{font-size:8px;left:7px;bottom:12px}.play{width:24px;height:24px;right:7px;bottom:7px;font-size:9px}.subnav{gap:7px}.subnav button{font-size:10px;padding:7px 12px}.more{font-size:10px}.account-briefs{grid-template-columns:1fr;gap:15px;margin:23px 0}.account-briefs article{padding-top:15px}.account-briefs h3{font-size:22px;margin:12px 0}.account-briefs p{font-size:11px}.resume-section{display:block;padding:45px 6%}.resume-sidebar{border-bottom:1px solid var(--line);padding-bottom:30px;margin-bottom:30px}.resume-sidebar h2{font-size:30px}.resume-sidebar>p:not(.eyebrow){margin:15px 0 20px}.file-note{font-size:9px;margin-top:15px}.resume-summary h3{font-size:22px}.resume-summary p{font-size:12px}.timeline h4{font-size:15px}.job h5 span{display:block;margin-left:0}.job ul{font-size:11px}.project-list article{grid-template-columns:65px 1fr;gap:12px}.project-list time{font-size:9px}.project-list h4{font-size:13px}.project-list p{font-size:11px}.contact{padding:42px 6%}.contact h2{font-size:31px}.contact>p:not(.eyebrow){font-size:10px;line-height:1.9}.contact>a{position:static;display:block;width:fit-content;margin-top:25px;font-size:11px}footer{padding:23px 6%;font-size:8px}footer>span:nth-child(2){display:none}.viewer-layout{grid-template-columns:1fr}#viewer-media{min-height:200px}#viewer-media video,#viewer-media img{max-height:52vh}.viewer-info{padding:24px}.viewer-info h2{font-size:22px}.viewer-info h3{margin-top:20px}.viewer-top{padding:10px 14px}.viewer-controls{justify-content:space-between}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{@page{size:A4;margin:16mm}html{scroll-behavior:auto}body{background:white;color:black;font-family:"Microsoft YaHei",sans-serif}header,.hero,.index-strip,.portfolio-intro,.work-section,.contact,footer,dialog,.skip,.inline-link,#print-resume,.file-note,noscript{display:none!important}.resume-section{display:block;padding:0;border:0}.resume-sidebar{margin:0 0 20px;padding:0 0 14px;border-bottom:2px solid black}.resume-sidebar .eyebrow{display:none}.resume-sidebar h2{font-size:24pt}.resume-sidebar>p:not(.eyebrow){font-size:10pt;margin:8px 0}.resume-summary h3{font-size:14pt}.resume-summary p,.job ul,.project-list p,.education p,.equipment{font-size:9pt;color:#222;line-height:1.7}.resume-label{font-size:10pt;margin:22px 0 16px;break-after:avoid}.timeline{break-inside:avoid;margin-bottom:15px;padding-bottom:14px}.timeline-top{display:flex}.timeline h4{font-size:11pt}.timeline time{font-size:8pt}.job h5{font-size:9pt;margin:12px 0 7px}.job h5 span{display:inline;margin-left:10px}.metrics-note{font-size:8pt}.project-list article{break-inside:avoid;grid-template-columns:70px 1fr;margin-bottom:15px}.skill-grid{grid-template-columns:1fr 1fr;gap:15px}.skill-grid article{break-inside:avoid}.skill-grid h4{font-size:10pt}.skill-grid p{font-size:9pt;color:#222}.education{break-inside:avoid}.education h4{font-size:10pt}.resume-body{width:100%}}
