.app{position:relative;z-index:1}.grid-bg,.noise,.wm{position:fixed;inset:0;pointer-events:none;z-index:0}.grid-bg{background-image:repeating-linear-gradient(0deg,transparent 0 55px,var(--line) 55px 56px),repeating-linear-gradient(90deg,transparent 0 55px,var(--line) 55px 56px);opacity:.5}.noise{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");opacity:.06;mix-blend-mode:multiply}.wm{overflow:hidden}.wm span{position:absolute;font-family:"Noto Serif SC",serif;font-weight:900;font-size:46vw;color:transparent;-webkit-text-stroke:1.5px rgba(27,39,56,.06);-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:.8}.wm .a{top:-12%;left:-7%;animation:drift 14s ease-in-out infinite alternate}.wm .b{bottom:-22%;right:-9%;animation:drift 17s ease-in-out infinite alternate-reverse}@keyframes drift{to{transform:translateY(26px) rotate(-2deg)}}.topbar{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:2px solid var(--ink);backdrop-filter:none}.topbar-in{width:min(1240px,94vw);margin:0 auto;display:flex;align-items:center;gap:16px;padding:11px 0}.logo{width:38px;height:38px;background:var(--red);color:var(--paper);display:grid;place-items:center;font-family:Ma Shan Zheng,serif;font-size:24px;box-shadow:var(--hard);flex:none}.brand{display:flex;flex-direction:column;line-height:1.1}.brand b{font-family:"Noto Serif SC",serif;font-weight:700;font-size:15px;letter-spacing:.04em}.brand small{font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.22em;color:var(--ink-soft);text-transform:uppercase}.brand small i{color:var(--red);font-style:normal}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px}.meta{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.12em;color:var(--ink-soft);text-transform:uppercase;display:flex;align-items:center;gap:8px}.meta:hover{color:var(--ink)}.dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 #c53d2399;animation:pulse 2.2s infinite}@keyframes pulse{0%{box-shadow:0 0 #c53d238c}70%{box-shadow:0 0 0 8px #c53d2300}to{box-shadow:0 0 #c53d2300}}.btn{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:9px 14px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:var(--hard);cursor:pointer;transition:transform .12s,box-shadow .12s,background .12s,color .12s;white-space:nowrap}.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.btn:active{transform:translate(0);box-shadow:2px 2px 0 var(--ink)}.btn-red{background:var(--red);color:var(--paper)}.btn-ghost{box-shadow:none}.btn-ghost:hover{background:var(--ink);color:var(--paper);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--red)}.container{width:min(1240px,94vw);margin:0 auto}.side-nav{position:fixed;left:24px;top:50%;transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;gap:13px}.side-nav a{display:flex;align-items:center;gap:9px;font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.1em;color:var(--ink-soft);text-decoration:none;text-transform:uppercase;transition:color .2s}.side-nav a .sq{width:9px;height:9px;border:1.5px solid var(--ink-soft);transition:.2s}.side-nav a:hover{color:var(--ink)}.side-nav a.active{color:var(--red)}.side-nav a.active .sq{background:var(--red);border-color:var(--red);transform:rotate(45deg)}.cover{padding:54px 0 0}.spread{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:54px;align-items:center}.kicker{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:10px;margin-bottom:18px}.kicker:before{content:"";width:34px;height:2px;background:var(--red)}.name-block{display:flex;gap:18px;align-items:flex-start}.vname{writing-mode:vertical-rl;text-orientation:upright;font-family:"Noto Serif SC",serif;font-weight:900;font-size:clamp(70px,11vw,148px);line-height:.92;letter-spacing:.06em}.vseal{writing-mode:vertical-rl;font-family:Ma Shan Zheng,serif;color:var(--red);border:3px solid var(--red);outline:2px solid var(--red);outline-offset:3px;padding:14px 7px;font-size:24px;letter-spacing:.18em;mix-blend-mode:multiply;align-self:flex-start;animation:stampIn .7s .9s both cubic-bezier(.34,1.56,.64,1)}@keyframes stampIn{0%{transform:scale(2.6) rotate(-16deg);opacity:0}60%{transform:scale(.92) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0)}}.pinyin{font-family:IBM Plex Mono,monospace;font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-soft);margin:20px 0 6px}.role{font-family:"Noto Serif SC",serif;font-weight:700;font-size:clamp(20px,2.4vw,28px);display:flex;align-items:center;gap:10px}.role:before{content:"/";color:var(--red);font-weight:900}.motto{margin-top:16px;border-left:3px solid var(--red);padding-left:14px;color:var(--ink-soft);font-size:15px;max-width:34ch}.hint{margin-top:22px;font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.08em;color:var(--ink-soft)}.hint b{color:var(--red);cursor:pointer;border-bottom:1px dashed var(--red)}.card-wrap{position:relative;display:flex;justify-content:center}.paperclip{position:absolute;top:-16px;left:50%;transform:translate(-50%) rotate(8deg);z-index:3}.id-card{width:min(440px,100%);background:var(--paper-3);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);transform:rotate(-1.4deg);transition:transform .35s ease,box-shadow .35s ease;position:relative;overflow:hidden}.id-card:hover{transform:rotate(0) translateY(-4px);box-shadow:12px 12px 0 var(--ink)}.id-head{background:var(--ink);color:var(--paper);display:flex;justify-content:space-between;align-items:center;padding:8px 14px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.id-head .slot{width:42px;height:6px;border-radius:6px;background:var(--paper);opacity:.35}.id-body{display:grid;grid-template-columns:128px 1fr;gap:16px;padding:18px 16px 14px}.photo{position:relative;width:128px;height:152px;border:2px solid var(--ink);overflow:hidden;background:var(--paper-2)}.photo img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;filter:saturate(.92) contrast(1.04)}.photo:after{content:"";position:absolute;left:0;right:0;height:38%;top:-45%;background:linear-gradient(180deg,transparent,rgba(197,61,35,.22),transparent);animation:scan 3.6s linear infinite}@keyframes scan{0%{top:-45%}to{top:110%}}.photo .c{position:absolute;width:12px;height:12px;border:2px solid var(--red)}.photo .c.tl{top:4px;left:4px;border-right:0;border-bottom:0}.photo .c.tr{top:4px;right:4px;border-left:0;border-bottom:0}.photo .c.bl{bottom:4px;left:4px;border-right:0;border-top:0}.photo .c.br{bottom:4px;right:4px;border-left:0;border-top:0}.fields{display:grid;gap:9px;align-content:start}.field{display:grid;grid-template-columns:54px 1fr;gap:8px;align-items:baseline}.field .lbl{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.14em;color:var(--ink-soft);text-transform:uppercase}.field .val{font-family:"Noto Serif SC",serif;font-weight:700;font-size:13.5px;line-height:1.3}.field .val.status{color:var(--red)}.id-foot{border-top:1.5px dashed var(--line);padding:10px 16px 14px;display:flex;align-items:flex-end;gap:14px}.barcode{display:flex;align-items:stretch;height:34px;gap:2px;flex:1}.barcode i{background:var(--ink);display:block}.bcode-num{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.2em;color:var(--ink-soft);text-align:right;line-height:1.3}.card-seal{position:absolute;right:14px;bottom:54px;width:88px;height:88px;border:3px solid var(--red);outline:2px solid var(--red);outline-offset:3px;display:grid;place-items:center;writing-mode:vertical-rl;font-family:Ma Shan Zheng,serif;color:var(--red);font-size:20px;letter-spacing:.12em;transform:rotate(-9deg);mix-blend-mode:multiply;animation:stampIn .7s 1.2s both cubic-bezier(.34,1.56,.64,1)}.ticker{margin-top:46px;border-block:2px solid var(--ink);background:var(--paper-2);overflow:hidden}.ticker-track{display:flex;width:-moz-max-content;width:max-content;animation:marq 30s linear infinite}.ticker:hover .ticker-track{animation-play-state:paused}.ticker-group{display:flex;align-items:center}.ticker-group span{font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:11px 0;white-space:nowrap}.ticker-group i{color:var(--red);font-style:normal;padding:0 18px;font-size:10px}@keyframes marq{to{transform:translate(-50%)}}section{padding:96px 0}.sec-head{display:grid;grid-template-columns:auto auto 1fr auto;align-items:end;gap:18px;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:46px}.sec-num{font-family:"Noto Serif SC",serif;font-weight:900;font-size:clamp(54px,7vw,86px);line-height:.8;color:transparent;-webkit-text-stroke:2px var(--ink)}.sec-title h2{font-family:"Noto Serif SC",serif;font-weight:900;font-size:clamp(26px,3.4vw,40px);line-height:1}.sec-title small{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);display:block;margin-top:6px}.sec-rule{height:2px;background:repeating-linear-gradient(90deg,var(--ink) 0 8px,transparent 8px 14px);align-self:center;margin-bottom:8px}.sec-sq{width:12px;height:12px;background:var(--red);margin-bottom:6px}.statement{display:grid;grid-template-columns:1.6fr 1fr;gap:48px}.statement p{margin-bottom:18px;font-size:16px;color:#2a3648}.statement p:first-of-type:first-letter{font-family:"Noto Serif SC",serif;font-weight:900;font-size:62px;float:left;line-height:.78;padding:6px 12px 0 0;color:var(--red)}.statement mark{background:linear-gradient(transparent 58%,#c53d2352 0);color:inherit;padding:0 2px}.note{border:2px solid var(--ink);background:var(--paper-3);padding:18px 20px;box-shadow:var(--hard);position:relative}.note:before{content:"附注 NOTE";position:absolute;top:-11px;left:14px;background:var(--paper);padding:0 8px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.16em;color:var(--red)}.note p{font-size:13.5px;color:var(--ink-soft)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:24px}.stat{border:2px solid var(--ink);padding:14px 16px;background:var(--paper-3);transition:transform .2s}.stat:hover{transform:translateY(-3px) rotate(-.6deg)}.stat b{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:38px;line-height:1;display:block;color:var(--ink)}.stat span{font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-top:6px}.skills-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:48px}.skill-row{display:grid;grid-template-columns:30px 120px 1fr 50px;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.skill-row .idx{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--red)}.skill-row .nm{font-family:"Noto Serif SC",serif;font-weight:700;font-size:15px}.bar{height:11px;border:1.5px solid var(--ink);background:var(--paper-2);position:relative;overflow:hidden}.bar i{position:absolute;inset:0;width:0;background:repeating-linear-gradient(45deg,var(--red) 0 7px,var(--red-deep) 7px 14px);transition:width 1.1s cubic-bezier(.22,1,.36,1)}.skill-row .pct{font-family:IBM Plex Mono,monospace;font-size:12px;text-align:right}.chips-title{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:16px}.chips{display:flex;flex-wrap:wrap;gap:9px}.chip{font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.04em;border:1.6px solid var(--ink);padding:7px 12px;cursor:default;transition:.16s}.chip:hover{background:var(--ink);color:var(--paper);transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--red)}.proj-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:30px}.folder{position:relative;background:var(--manila);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:34px 22px 22px;cursor:pointer;transition:transform .25s,box-shadow .25s}.folder:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:10px 10px 0 var(--ink)}.folder-tab{position:absolute;top:-15px;left:18px;background:var(--manila-d);border:2px solid var(--ink);border-bottom:0;border-radius:7px 7px 0 0;padding:3px 16px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.12em;color:var(--ink)}.folder .pid{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;color:var(--red-deep)}.folder h3{font-family:"Noto Serif SC",serif;font-weight:900;font-size:22px;margin:6px 0 4px}.folder .ptags{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink-soft);letter-spacing:.04em}.folder .stamp{position:absolute;top:14px;right:14px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;border:2.5px double currentColor;padding:4px 8px;transform:rotate(7deg)}.folder .stamp.ok{color:var(--red)}.folder .stamp.run{color:var(--blue)}.folder .stamp.maint{color:var(--ink)}.folder .redact{background:var(--ink);color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 4px;border-radius:1px}.folder-details{max-height:0;overflow:hidden;transition:max-height .5s ease}.folder.open .folder-details{max-height:260px}.folder-details .inner{border-top:1.5px dashed var(--ink);margin-top:16px;padding-top:14px;font-size:13.5px;color:#3a3320}.folder-details .toggle{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--red-deep);margin-top:12px;display:inline-block}.timeline{position:relative;padding-left:0}.tl-row{display:grid;grid-template-columns:120px 28px 1fr;gap:0;align-items:start;padding-bottom:34px;position:relative}.tl-row .yr{font-family:"Noto Serif SC",serif;font-weight:900;font-size:30px;line-height:1;text-align:right;padding-right:18px}.tl-rail{position:relative;display:flex;justify-content:center}.tl-rail:before{content:"";position:absolute;top:0;bottom:-34px;width:2px;background:var(--ink)}.tl-row:last-child .tl-rail:before{bottom:50%}.tl-dot{width:13px;height:13px;background:var(--red);transform:rotate(45deg);margin-top:8px;position:relative;z-index:1;border:2px solid var(--ink)}.tl-card{border:2px solid var(--ink);background:var(--paper-3);padding:14px 18px;box-shadow:var(--hard);transition:transform .2s}.tl-card:hover{transform:translate(4px)}.tl-card b{font-family:"Noto Serif SC",serif;font-weight:700;font-size:16px;display:block}.tl-card span{font-size:13px;color:var(--ink-soft)}.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}.crow{display:grid;grid-template-columns:78px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1.5px solid var(--line)}.crow .clbl{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.crow .cval{font-family:"Noto Serif SC",serif;font-weight:700;font-size:16px;word-break:break-all}.copy{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;border:1.5px solid var(--ink);background:var(--paper);padding:5px 9px;cursor:pointer;transition:.15s}.copy:hover{background:var(--ink);color:var(--paper)}.copy.done{background:var(--red);color:var(--paper);border-color:var(--red)}.stamp-pad{border:2px dashed var(--ink);background:var(--paper-3);padding:30px 26px;text-align:center;position:relative;min-height:280px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px}.stamp-pad h3{font-family:"Noto Serif SC",serif;font-weight:900;font-size:22px}.stamp-pad p{font-size:13px;color:var(--ink-soft);max-width:26ch}.verify{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.verify b{color:var(--red)}.big-seal{position:absolute;width:130px;height:130px;border:4px solid var(--red);outline:3px solid var(--red);outline-offset:4px;display:grid;grid-template-columns:1fr 1fr;place-items:center;font-family:Ma Shan Zheng,serif;color:var(--red);font-size:30px;mix-blend-mode:multiply;opacity:0;pointer-events:none}.big-seal.slam{animation:slam .55s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes slam{0%{transform:scale(2.6) rotate(-18deg);opacity:0}55%{transform:scale(.9) rotate(8deg);opacity:.95}72%{transform:scale(1.08) rotate(6deg)}to{transform:scale(1) rotate(7deg);opacity:.92}}.stamp-pad.shake{animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}footer{border-top:3px double var(--ink);padding:40px 0 60px;margin-top:30px}.foot-in{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center}.foot-in .end{font-family:IBM Plex Mono,monospace;font-size:13px;letter-spacing:.18em;text-transform:uppercase}.foot-in .end b{color:var(--red)}.foot-bar{display:flex;align-items:stretch;height:30px;gap:2px;justify-content:center}.foot-bar i{background:var(--ink);display:block}.foot-meta{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;color:var(--ink-soft);text-align:right;text-transform:uppercase}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:none}.backdrop{position:fixed;inset:0;background:#1b273866;z-index:60;opacity:0;visibility:hidden;transition:.35s}.backdrop.open{opacity:1;visibility:visible}.editor{position:fixed;top:0;right:0;height:100%;width:min(390px,100%);background:var(--paper);border-left:2px solid var(--ink);z-index:70;transform:translate(105%);transition:transform .45s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-12px 0 #1b27380f}.editor.open{transform:translate(0)}.editor-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:2px solid var(--ink)}.editor-head h3{font-family:"Noto Serif SC",serif;font-weight:900;font-size:20px}.editor-head h3 small{display:block;font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.18em;color:var(--red);text-transform:uppercase;margin-top:3px}.x{font-family:IBM Plex Mono,monospace;font-size:18px;border:2px solid var(--ink);width:34px;height:34px;background:var(--paper);cursor:pointer;line-height:1;transition:.15s}.x:hover{background:var(--red);color:var(--paper)}.editor-body{padding:22px;overflow-y:auto;flex:1}.ef{margin-bottom:18px}.ef label{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:6px}.ef input,.ef textarea{width:100%;background:transparent;border:0;border-bottom:2px solid var(--ink);padding:8px 2px;font-family:Noto Sans SC,sans-serif;font-size:15px;color:var(--ink);resize:vertical;transition:border-color .2s}.ef input:focus,.ef textarea:focus{outline:none;border-color:var(--red)}.editor-foot{padding:16px 22px;border-top:2px solid var(--ink);display:flex;gap:10px}.editor-foot .btn{flex:1;text-align:center}.edge-tab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:50;writing-mode:vertical-rl;background:var(--red);color:var(--paper);border:2px solid var(--ink);border-right:0;padding:16px 9px;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.16em;cursor:pointer;box-shadow:-4px 4px 0 var(--ink);transition:transform .2s}.edge-tab:hover{transform:translateY(-50%) translate(-5px)}@media(max-width:1080px){.side-nav{display:none}}@media(max-width:920px){.spread{grid-template-columns:1fr;gap:40px}.vname{writing-mode:horizontal-tb;text-orientation:mixed}.vseal{writing-mode:horizontal-tb;display:inline-block}.name-block{flex-direction:column;gap:14px}.statement,.skills-grid,.contact{grid-template-columns:1fr;gap:30px}.topbar-right .meta{display:none}.skill-row{grid-template-columns:26px 96px 1fr 42px;gap:10px}}@media(max-width:560px){.stats{grid-template-columns:1fr 1fr}.foot-in{grid-template-columns:1fr;text-align:center;gap:14px}.foot-meta{text-align:center}.sec-head{grid-template-columns:auto 1fr auto}.sec-rule{display:none}.id-body{grid-template-columns:104px 1fr}.photo{width:104px;height:128px}}@media print{.topbar,.side-nav,.edge-tab,.editor,.backdrop,.ticker,.btn{display:none!important}body{background:#fff}.grid-bg,.noise,.wm{display:none}.reveal{opacity:1!important;transform:none!important}}
