:root{color:#151a1d;color-scheme:light;--muted:#66717a;--line:#e9e4cf;--blue:#fef6cd;--surface:#fffef9;--width:756px;background:#fff;font-family:Arial,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 15% 0,#efeffb99,#0000 35%),radial-gradient(at 95% 28%,#f1f0fc77,#0000 30%),linear-gradient(#eeedf680 1px,#0000 1px) 0 0/32px 32px,linear-gradient(90deg,#eeedf680 1px,#0000 1px) 0 0/32px 32px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}p,h1,h2,h3{margin:0}button,a{-webkit-tap-highlight-color:transparent}.icon{flex-shrink:0;align-items:center;display:inline-flex}.icon svg{fill:currentColor;display:block}a:focus-visible,button:focus-visible{outline-offset:6px;border-radius:3px;outline:3px solid #88732e}.shell{width:min(var(--width),calc(100% - 48px));margin-inline:auto}.hero{flex-direction:column;min-height:100dvh;padding-top:38px;padding-bottom:76px;display:flex}.topline{letter-spacing:1.5px;color:#525b61;justify-content:space-between;align-items:center;gap:24px;font-size:14px;line-height:20px;display:flex}.github{letter-spacing:1px;align-items:center;gap:8px;font-size:13px;display:flex}.hero-body{margin-block:auto;padding-top:65px}.hero-composition{position:relative}h1{letter-spacing:-.065em;z-index:1;width:max-content;font-size:clamp(90px,10.94vw,140px);font-weight:800;line-height:.94;position:relative}.signature{align-items:center;gap:28px;margin-top:54px;line-height:24px;display:flex}.signature strong{letter-spacing:5px;font-size:18px;font-weight:600}.signature span{letter-spacing:2px;color:#737c82;font-size:13px}.scroll-cue{color:#7b858c;letter-spacing:4px;gap:12px;margin-top:48px;padding:8px 0;font-size:12px;display:inline-flex}.reading-rail{z-index:2;pointer-events:none;border-left:1px solid #d3d8dc;height:120px;position:fixed;top:42.5%;left:28px}.reading-rail span{background:#182127;width:2px;height:30px;display:block;transform:translate(-1px)}.reading-rail small{color:#828b92;letter-spacing:2px;font:10px monospace;position:absolute;bottom:-16px;left:10px}main{padding-top:40px;padding-bottom:110px;scroll-margin-top:24px}.tabs{white-space:nowrap;scrollbar-width:thin;justify-content:space-between;align-items:center;gap:24px;padding:6px 0 17px;display:flex;overflow-x:auto}.tabs a{letter-spacing:-1.5px;color:#838b90;flex-shrink:0;font-size:clamp(30px,3.25vw,42px);font-weight:750;line-height:1.2;display:block;position:relative}.tabs a[aria-current]{color:#151a1d}.tabs a[aria-current]:after{content:"";background:var(--blue);height:10px;position:absolute;bottom:-10px;left:0;right:0}.tabs a:hover{color:#151a1d}.panels{min-height:620px;margin-top:68px}.panels>section[hidden]{display:none}.eyebrow{letter-spacing:1.6px;color:var(--muted);font-size:12px;line-height:1.5}.intro{color:#53606a;margin-top:30px;font-size:20px;line-height:1.9}.tags{flex-wrap:wrap;gap:10px;margin:27px 0 0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--line);color:#52606a;background:#ffffffc9;border-radius:24px;padding:9px 17px;font-size:11px}.experience{border-top:1px solid var(--line);margin-top:70px;padding-top:62px}.experience h2,.section-heading h2{font-size:14px;font-weight:700}.experience-card{border:1px solid var(--line);background:var(--surface);border-radius:24px;min-height:220px;margin-top:24px;padding:36px 32px}.experience-card h3{letter-spacing:-1px;margin:22px 0;font-size:38px;line-height:1.12}.experience-card p{color:#5f6a73;font-size:14px}.experience-card .muted{color:#76818a;font-size:12px}.section-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:34px;display:flex}.section-heading p{color:var(--muted);font-size:12px}.social-list{margin:0;padding:0;list-style:none}.social-row{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:35px 1fr 1.1fr 24px;align-items:center;gap:20px;width:100%;min-height:101px;padding:22px 0;display:grid}.social-row .number{color:#65727b;font-family:monospace;font-size:11px}.social-row strong{letter-spacing:-.8px;font-size:32px}.social-detail{color:var(--muted);font-size:13px}.social-row>.icon{justify-self:end}.skills-heading{color:var(--muted);margin-bottom:28px;font-size:15px;font-weight:400}.skills-heading span{margin-left:8px}.skill-grid,.article-grid{grid-template-columns:1fr 1fr;gap:26px;display:grid}.skill-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;flex-direction:column;min-height:410px;padding:26px 24px;display:flex}.skill-card h3{letter-spacing:-.75px;font-size:25px}.skill-card>p{color:var(--muted);margin-top:14px;font-size:14px;line-height:1.8}.skill-card img{object-fit:contain;mix-blend-mode:multiply;width:100%;height:200px;margin-top:40px}.skill-card .skill-status{color:#697780;margin-top:auto;padding-top:18px;font-size:11px}.article-cover{aspect-ratio:1.6;background:#fffbea;border:1px solid #e9e4cf;border-radius:20px}.article-card .muted{color:var(--muted);margin-top:24px;font-size:12px}.article-card h2{margin:12px 0 16px;font-size:27px}.article-card p{color:var(--muted);font-size:14px;line-height:1.8}.preview-note{color:var(--muted);margin-top:32px;font-size:12px}.contact-list{gap:24px;display:grid}.contact-card{border:1px solid var(--line);background:var(--surface);border-radius:24px;grid-template-columns:1.3fr 1fr;align-items:center;gap:16px;min-height:245px;padding:32px;display:grid;position:relative}.contact-card:hover{background:#fffbea;border-color:#d4c88e}.contact-card h3{letter-spacing:-.7px;margin:22px 0 16px;font-size:32px}.contact-card p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.8}.contact-label{color:#756b43;background:#fef6cd;border:1px solid #e9dfae;border-radius:30px;margin-top:30px;padding:8px 14px;font-size:11px;display:inline-block}.contact-card img{mix-blend-mode:multiply;filter:hue-rotate(36deg)saturate(.82);width:100%;height:auto}.corner-arrow{position:absolute;top:24px;right:24px}.skip-link{z-index:4;background:#fff;padding:12px;position:absolute;top:-100px}.skip-link:focus{top:0}dialog{border:1px solid var(--line);color:#151a1d;border-radius:20px;width:380px;max-width:calc(100vw - 32px);padding:34px 24px 24px}dialog::backdrop{background:#17293866}dialog h2{padding-right:22px;font-size:18px;line-height:1.5}dialog img{object-fit:contain;max-width:100%;max-height:62vh;margin:20px auto;display:block}dialog p{color:var(--muted);text-align:center;font-size:13px}.dialog-close{background:0 0;border:0;padding:8px;position:absolute;top:12px;right:12px}@media (width<=800px){.reading-rail{display:none}.tabs{gap:24px}.tabs a{font-size:32px}.hero-composition h1{font-size:clamp(85px,14vw,120px)}.hero{padding-bottom:64px}.github span{font-size:10px}.intro{font-size:18px}.signature span{font-size:11px}}@media (width<=520px){.shell{width:calc(100% - 40px)}.hero{min-height:max(700px,100dvh);padding-top:28px;padding-bottom:48px}.topline{font-size:12px}.github span{display:none}.hero-body{padding-top:48px}.hero-composition h1{font-size:clamp(79px,22vw,112px);line-height:.98}.signature{gap:18px;margin-top:122px}.signature strong{letter-spacing:3px;font-size:15px}.signature span{font-size:10px}.scroll-cue{margin-top:28px}.tabs{justify-content:flex-start;gap:22px}.tabs a{letter-spacing:-.5px;font-size:24px}.tabs a[aria-current]:after{height:7px;bottom:-9px}.panels{min-height:550px;margin-top:48px}main{padding-top:24px;padding-bottom:72px}.intro{font-size:16px;line-height:1.9}.tags{gap:8px}.tags li{padding:8px 12px;font-size:10px}.experience{margin-top:46px;padding-top:40px}.experience-card{min-height:210px;padding:28px}.experience-card h3{font-size:32px}.skill-grid,.article-grid{grid-template-columns:1fr}.skill-card{min-height:360px}.section-heading{flex-direction:column;align-items:flex-start;gap:12px}.social-row{grid-template-columns:24px 1fr 20px;gap:12px;min-height:98px;padding:23px 0}.social-row strong{font-size:27px}.social-detail{grid-area:2/2;font-size:12px}.social-row>.icon{grid-area:1/3/3}.social-row .number{align-self:start;padding-top:8px}.contact-card{grid-template-columns:1fr;min-height:240px;padding:26px}.contact-card img{width:100px;position:absolute;bottom:26px;right:22px}.contact-card h3{font-size:28px}.contact-card p:not(.eyebrow){max-width:250px}.contact-label{max-width:calc(100% - 85px);line-height:1.5}}@media (prefers-reduced-motion:no-preference){a,button{transition:color .15s,background-color .15s,border-color .15s}.contact-card:active,.social-row:active{transform:translateY(1px)}}@media (width<=520px){.github>.icon{display:inline-flex}.signature{margin-top:172px}.tabs{justify-content:space-between;gap:10px;overflow:visible}.tabs a{letter-spacing:-.4px;padding-block:6px;font-size:clamp(17px,4.7vw,20px);line-height:1.5}.github{justify-content:flex-end;min-width:32px;min-height:32px}}@media (width>=801px){.hero-body{padding-top:117px}}@media (width<=520px){.contact-card img{justify-self:end;width:120px;position:static}.contact-label{max-width:100%}}.skill-card>p:not(.skill-status){min-height:50px}.skill-card img{margin-top:auto}.skill-card{min-height:430px}.skill-symbol{color:#18242b;flex:1;justify-content:center;align-items:center;min-height:210px;display:flex}.skill-symbol .icon svg{width:160px;height:160px}.skill-link{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}a.skill-card:hover{border-color:#d4c88e}.article-card img.article-cover{object-fit:cover;aspect-ratio:1.6;width:100%;height:auto;display:block}.article-card a h2{line-height:1.4}.experience-card h3{overflow-wrap:anywhere}:root{background:#fff}body{background-color:#fff;background-image:linear-gradient(#eeedf680 1px,#0000 1px),linear-gradient(90deg,#eeedf680 1px,#0000 1px),radial-gradient(650px 480px at 0 0,#52a6e66b,#0000 100%),radial-gradient(600px 440px at 100% 0,#69b8ef57,#0000 100%),radial-gradient(470px 560px at 100% 920px,#56abe952,#0000 100%);background-repeat:repeat,repeat,no-repeat,no-repeat,no-repeat;background-size:32px 32px,32px 32px,100% 1600px,100% 1600px,100% 1600px}.hero{padding-top:34px}.topline{line-height:21px}.hero-body{width:880px;margin-left:-62px}.hero-composition{grid-template-columns:340px minmax(0,1fr);align-items:end;gap:48px;display:grid}.hero-composition h1{grid-area:1/2;font-size:160px}.hero-portrait{mix-blend-mode:multiply;grid-area:1/1;width:100%;height:auto;display:block;transform:translate(24px,-8px)}.signature,.scroll-cue{margin-left:388px}.signature{flex-wrap:nowrap;gap:28px;display:flex}.signature strong{font-size:20px}.signature .signature-en{letter-spacing:2px;margin-top:0;font-size:13px}.contact-card{grid-template-columns:minmax(0,1fr) 270px;gap:24px}.contact-card img{aspect-ratio:3/2;object-fit:contain;mix-blend-mode:normal;filter:none;border-radius:14px;width:100%;height:auto}.article-card img.article-cover{aspect-ratio:16/10;object-fit:cover}@media (width<=1000px) and (width>=521px){.hero-body{width:100%;margin-left:0}.hero-composition{grid-template-columns:38% minmax(0,1fr);gap:24px}.hero-composition h1{font-size:clamp(94px,15vw,140px)}.signature,.scroll-cue{margin-left:calc(38% + 24px)}.hero-portrait{transform:translate(10px,-8px)}}@media (width<=800px){.contact-card{grid-template-columns:minmax(0,1fr) 40%}}@media (width<=520px){body{background-image:linear-gradient(#eeedf680 1px,#0000 1px),linear-gradient(90deg,#eeedf680 1px,#0000 1px),radial-gradient(290px 270px at 0 0,#52a6e65e,#0000 100%),radial-gradient(240px 240px at 100% 0,#69b8ef47,#0000 100%),radial-gradient(220px 230px at 100% 844px,#56abe947,#0000 100%);background-size:32px 32px,32px 32px,100% 1100px,100% 1100px,100% 1100px}.hero{padding-top:22px}.topline{line-height:20px}.github{min-height:20px}.hero-body{width:calc(100% + 16px);margin-left:-8px;padding-top:48px}.hero-composition{grid-template-columns:36% minmax(0,1fr);gap:12px}.hero-composition h1{font-size:18.8vw;line-height:.98}.hero-portrait{transform:translate(6px,-4px)}.signature,.scroll-cue{margin-left:calc(36% + 12px)}.signature{flex-direction:row;align-items:center;gap:14px;margin-top:30px}.signature strong{letter-spacing:2px;font-size:16px}.signature .signature-en{font-size:10px}.contact-card{grid-template-columns:1fr}.contact-card img{justify-self:stretch;width:100%;position:static}.contact-card p:not(.eyebrow){max-width:none}}.signature{position:relative}.signature .signature-role-left{white-space:nowrap;letter-spacing:1px;color:#737c82;font-size:13px;position:absolute;right:calc(100% + 24px)}@media (width<=520px){.signature .signature-role-left{letter-spacing:0;font-size:10px;right:calc(100% + 12px)}}.skill-card img.skill-cover{aspect-ratio:3/2;object-fit:contain;mix-blend-mode:normal;border-radius:14px;width:100%;height:auto;margin:24px 0}.skill-card .skill-link{margin-top:auto}.experience-card h3{font-size:30px}.company-name{white-space:nowrap}@media (width<=520px){.experience-card .company-name{letter-spacing:-.5px;font-size:clamp(16px,4.5vw,22px)}}.hover-highlight{background-image:linear-gradient(var(--blue), var(--blue));-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 92%;background-repeat:no-repeat;background-size:0% 42%}.card-hover-zone>.skill-card,.card-hover-zone>.contact-card{height:100%}.experience>.card-hover-zone{margin-top:24px}.experience .card-hover-zone>.experience-card{margin-top:0}.article-card{border-radius:20px}.article-card>a{border-radius:inherit;display:block}.tabs a{isolation:isolate;background:0 0}.tabs a:after,.tabs a[aria-current]:after{content:"";background:var(--blue);z-index:-1;transform-origin:0;height:.32em;position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}.tabs a[aria-current]:after,.tabs a:focus-visible:after{transform:scaleX(1)}.card-hover-zone:focus-within .hover-highlight{background-size:100% 42%}@media (hover:hover) and (pointer:fine){.tabs a:hover:after{transform:scaleX(1)}.card-hover-zone:hover .hover-highlight{background-size:100% 42%}.card-hover-zone:is(:hover,:focus-within)>:is(.experience-card,.skill-card,.article-card,.contact-card){border-color:#d4c88e;box-shadow:0 3px 6px #0000000a,0 26px 48px -18px #0000002e}}@media (prefers-reduced-motion:no-preference){.hover-highlight{transition:background-size .25s}.tabs a{transition:color .2s}.tabs a:after{transition:transform .8s cubic-bezier(.22,1,.36,1)}.card-hover-zone>:is(.experience-card,.skill-card,.article-card,.contact-card){transition:transform .28s,box-shadow .28s,border-color .28s,background-color .2s}@media (hover:hover) and (pointer:fine){.card-hover-zone:is(:hover,:focus-within)>:is(.experience-card,.skill-card,.article-card,.contact-card){transform:translateY(-5px)}}}.social-row strong{background:linear-gradient(var(--blue), var(--blue)) no-repeat left 68% / 0% 42%;justify-self:start}.social-row:hover{background:0 0}.social-row:focus-visible strong{background-size:100% 42%}@media (hover:hover) and (pointer:fine){.social-row:hover strong{background-size:100% 42%}}@media (prefers-reduced-motion:no-preference){.social-row strong{transition:background-size .6s cubic-bezier(.19,1,.22,1)}}.social-row{grid-template-columns:36px 28px minmax(120px,.95fr) minmax(0,1.1fr) 20px;gap:16px;padding-inline:4px}.social-logo{border:1px solid var(--line);border-radius:11px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.social-logo img{width:18px;height:18px;display:block}.social-logo.xiaohongshu{background:#ff2442;border-color:#ff2442}.social-logo.xiaohongshu img{filter:none}.social-detail{overflow-wrap:anywhere;min-width:0}.social-row:focus-visible .social-logo{background:var(--blue);border-color:var(--blue)}.social-row:focus-visible .social-detail{color:#151a1d}@media (hover:hover) and (pointer:fine){.social-row>.icon{opacity:0;transform:translate(-8px)}.social-row:is(:hover,:focus-visible){padding-left:22px}.social-row:is(:hover,:focus-visible) .social-logo{background:var(--blue);border-color:var(--blue);transform:rotate(-6deg)scale(1.07)}.social-row:is(:hover,:focus-visible) .social-detail{color:#151a1d}.social-row:is(:hover,:focus-visible)>.icon{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:no-preference){.social-row{transition:padding-left .7s cubic-bezier(.19,1,.22,1)}.social-logo{transition:background .5s cubic-bezier(.19,1,.22,1),border-color .5s cubic-bezier(.19,1,.22,1),transform .6s cubic-bezier(.19,1,.22,1)}.social-detail{transition:color .5s cubic-bezier(.19,1,.22,1)}.social-row>.icon{transition:opacity .5s cubic-bezier(.19,1,.22,1),transform .7s cubic-bezier(.19,1,.22,1)}}@media (prefers-reduced-motion:reduce){.social-row:is(:hover,:focus-visible){padding-left:4px}.social-row:is(:hover,:focus-visible) .social-logo,.social-row>.icon{transform:none}}@media (width<=520px){.social-row{grid-template-columns:32px 20px minmax(0,1fr) 18px;gap:10px}.social-logo{border-radius:10px;grid-area:1/1/3;width:32px;height:32px}.social-row .number{grid-area:1/2}.social-row strong{grid-area:1/3;font-size:24px}.social-detail{grid-area:2/3}.social-row>.icon{grid-area:1/4/3}}button.contact-card{text-align:left;width:100%;font:inherit;color:inherit}body.contact-modal-open{overflow:hidden}.contact-dialog{background:#fff;border-radius:24px;width:min(860px,100vw - 48px);max-width:none;max-height:calc(100dvh - 48px);padding:0;overflow:hidden;box-shadow:0 32px 90px #0000003d}.contact-dialog[open]{flex-direction:column;display:flex}.contact-dialog::backdrop{backdrop-filter:blur(8px);background:#14141457}.contact-dialog-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.contact-dialog-header>span{letter-spacing:1.4px;color:var(--muted);font-size:11px}.contact-dialog-header button{border:1px solid var(--line);background:#fff;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.contact-dialog-body{grid-template-columns:minmax(0,1fr) 280px;gap:16px;min-height:0;padding:30px 22px 24px;display:grid;overflow-y:auto}.contact-dialog-copy h2{letter-spacing:-1.5px;margin-bottom:24px;padding:0;font-size:42px;line-height:1.15}.contact-dialog .contact-dialog-copy p{text-align:left;color:#53606a;margin-top:14px;font-size:14px;line-height:1.85}.contact-dialog-copy ul{gap:11px;margin:24px 0;padding:0;list-style:none;display:grid}.contact-dialog-copy li{padding-left:19px;font-size:14px;line-height:1.65;position:relative}.contact-dialog-copy li:before{content:"";background:var(--blue);border:1px solid #151a1d;border-radius:50%;width:7px;height:7px;position:absolute;top:.7em;left:0;transform:translateY(-50%)}.contact-dialog img.contact-dialog-art{aspect-ratio:3/2;object-fit:contain;align-self:center;width:100%;height:auto;max-height:none;margin:0}.contact-dialog-footer{border-top:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px 34px;display:flex;position:relative}.contact-dialog-footer>div{min-width:0}.contact-dialog-footer>div>span{color:var(--muted);margin-bottom:6px;font-size:11px;display:block}.contact-dialog-footer .contact-value{overflow-wrap:anywhere;user-select:text;font-size:15px;font-weight:400}.copy-contact{color:#fff;white-space:nowrap;background:#151a1d;border:1px solid #151a1d;border-radius:999px;min-height:42px;padding:0 18px;font-size:13px}.copy-status{color:var(--muted);font-size:11px;position:absolute;bottom:10px;left:22px}@media (prefers-reduced-motion:no-preference){.contact-dialog[open]{animation:.52s cubic-bezier(.19,1,.22,1) both contact-dialog-in}.contact-dialog[open]::backdrop{animation:.28s both contact-backdrop-in}}@keyframes contact-dialog-in{0%{opacity:0;transform:translateY(22px)scale(.97)}to{opacity:1;transform:none}}@keyframes contact-backdrop-in{0%{opacity:0}to{opacity:1}}@media (width<=520px){.contact-dialog{border-radius:20px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.contact-dialog-header{padding:14px 16px}.contact-dialog-body{flex-direction:column;gap:16px;padding:18px;display:flex}.contact-dialog img.contact-dialog-art{flex-shrink:0;order:-1;width:100%;height:150px}.contact-dialog-copy h2{font-size:32px}.contact-dialog-footer{flex-wrap:wrap;gap:10px;padding:14px 16px 34px}.contact-dialog-footer .contact-value{font-size:13px}.copy-contact{padding:0 14px}.copy-status{left:16px}}.contact-card:is(:hover,:focus,:active){background:var(--surface)}.contact-card .contact-label{background:#fff}.social-row:is(:hover,:focus-visible) .social-logo.xiaohongshu{background:#ff2442;border-color:#ff2442}.hero-word{white-space:nowrap;display:block}.hero-letter-zone,.hero-letter{display:inline-block}.hero-star{transform-box:fill-box;transform-origin:50%}.hero-portrait{overflow:visible}.signature strong .hero-letter-zone,.signature strong .hero-letter{color:inherit;font:inherit;letter-spacing:inherit}.experience-card{grid-template-columns:minmax(0,1fr) 200px;align-items:center;gap:20px;display:grid}.experience-copy{min-width:0}.experience-card .experience-image{object-fit:contain;width:100%;height:200px;display:block}@media (width>=521px) and (width<=800px){.experience-card{grid-template-columns:minmax(0,1fr) 150px;gap:12px;padding:28px 24px}.experience-card .company-name{font-size:clamp(18px,3.4vw,26px)}.experience-card .experience-image{height:170px}}@media (width<=520px){.experience-card{grid-template-columns:1fr;gap:4px}.experience-card .experience-image{justify-self:center;width:180px;height:180px}}.experience-card,.skill-card,.contact-card{--surface:#fff}
