:root{--brand:#121b42;--brand-deep:#0b1231;--accent:#43baf9;--accent-strong:#1473b5;--accent-soft:#43baf924;--text:#1a2233;--muted:#5d6773;--faint:#8b939c;--line:#e6e9ef;--surface:#f7f9fc;--content-width:1120px;--radius:12px;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;font:16px/1.7 var(--sans);color:var(--muted);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff}*,:before,:after{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{min-width:320px;margin:0}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-soft);color:var(--brand)}.site-nav{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(180%)blur(12px);background:#ffffffdb;position:sticky;top:0;box-shadow:0 1px 12px #121b420a}.site-nav-inner{width:100%;max-width:var(--content-width);align-items:center;gap:24px;height:64px;margin:0 auto;padding:0 28px;display:flex}.brand{flex-direction:column;flex:none;align-items:center;gap:3px;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.brand-mark{background:var(--accent);color:var(--brand);letter-spacing:.02em;border-radius:6px;padding:3px 10px;font-size:16px;font-weight:800;line-height:1.3;transition:background-color .18s}.brand:hover .brand-mark{background:#6bcbfb}.brand-domain{letter-spacing:.04em;color:var(--accent-strong);font-size:8.5px;line-height:1}.nav-links{scrollbar-width:none;align-self:stretch;gap:34px;min-width:0;margin-left:auto;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-link{color:var(--muted);white-space:nowrap;align-items:center;padding:0 2px;font-size:14px;text-decoration:none;transition:color .18s;display:flex;position:relative}.nav-link:hover{color:var(--brand);text-decoration:none}.nav-link.is-current{color:var(--brand)}.nav-link.is-current:after{content:"";background:var(--accent);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:2px;right:2px}@media (width<=640px){.site-nav-inner{gap:16px;height:56px;padding:0 16px}.brand{gap:2px}.brand-mark{border-radius:5px;padding:2px 7px;font-size:12px}.brand-domain{font-size:7px}.nav-links{gap:20px}.nav-link{font-size:12.5px}}@media (width<=400px){.site-nav-inner{padding:0 12px}.brand-mark{padding:2px 6px;font-size:11px}.brand-domain{display:none}.nav-links{gap:14px}.nav-link{font-size:12px}}.site-footer{color:#a9b1c1;background:#1c2333}.site-footer-inner{width:100%;max-width:var(--content-width);margin:0 auto;padding:40px 28px 46px}.footer-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.footer-title{color:#fff;margin:0 0 14px;font-size:15px;font-weight:700;line-height:1.4}.footer-list{margin:0;padding:0;list-style:none}.footer-list li+li{margin-top:9px}.footer-link{color:#a9b1c1;align-items:center;gap:5px;font-size:13px;line-height:1.5;text-decoration:none;transition:color .18s;display:inline-flex}.footer-link:hover{color:#fff;text-decoration:none}.footer-external{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;opacity:.75;width:12px;height:12px}.footer-copyright{text-align:center;color:#8d95a5;margin:34px 0 0;font-size:12.5px;line-height:1.6}.footer-icp{text-align:center;color:#78808f;margin:6px 0 0;font-size:12px;line-height:1.6}.footer-icp a{color:inherit;text-decoration:none;transition:color .18s}.footer-icp a:hover{color:#fff;text-decoration:underline}@media (width<=640px){.site-footer-inner{padding:32px 20px 38px}.footer-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.footer-copyright{margin-top:28px}}.site-header{border-bottom:1px solid var(--line);text-align:center;background:radial-gradient(880px 240px at 50% -60%,#43baf938,#0000 72%),linear-gradient(#f5f9ff 0%,#fff 82%);padding:64px 28px 54px;position:relative}.site-header h1{letter-spacing:.14em;text-indent:.14em;color:var(--brand);margin:0;font-size:clamp(26px,3.2vw,38px);font-weight:700;line-height:1.32}.site-header h1:after{content:"";background:var(--accent);border-radius:3px;width:34px;height:3px;margin:18px auto 0;display:block}.page{width:100%;max-width:var(--content-width);margin:0 auto;padding:56px 28px 88px}.section-label{letter-spacing:.18em;color:var(--accent-strong);margin:0 0 10px;font-size:13px;font-weight:600}a:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px;border-radius:2px}@media (width<=640px){.site-header{padding:44px 20px 40px}.site-header h1:after{margin-top:14px}.page{padding:40px 20px 64px}}.profile{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#fff 0%,#fbfdff 100%);align-items:flex-start;gap:26px;padding:30px 32px;display:flex;box-shadow:0 6px 24px #121b420d}.avatar{object-fit:cover;background:var(--surface);width:76px;height:76px;box-shadow:0 0 0 3px #fff, 0 0 0 4px var(--accent-soft);border-radius:50%;flex:none;display:block}.bio{min-width:0;margin:0;padding:2px 0}.bio p{color:var(--muted);margin:0;font-size:15px;line-height:2}.bio p+p{margin-top:12px}.bio .bio-lead{color:var(--text)}.bio .bio-links{margin-top:16px;font-size:13px}.bio a{color:var(--accent-strong);font-weight:500}.bio a:hover{color:var(--brand)}.bio .divider{color:var(--faint);margin:0 6px}@media (width<=640px){.profile{flex-direction:column;gap:18px;padding:24px 20px}.avatar{width:64px;height:64px}.bio p{font-size:14px;line-height:1.9}}.tool-item{display:flex}.tool-card{text-align:center;color:inherit;background:#fff;border:1px solid #f0f2f4;border-radius:10px;flex-direction:column;flex:1;align-items:center;padding:20px 14px 14px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 2px 10px #1f2d3d0d}.tool-card:hover,.tool-card:focus-visible{color:inherit;text-decoration:none}.tool-card:focus-visible{outline-offset:2px;outline:2px solid #3fa9dc}.tool-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #1f2d3d17}.tool-icon{justify-content:center;align-items:center;width:40px;height:40px;display:flex}.tool-icon img{object-fit:contain;width:100%;height:100%}.tool-badge{color:#5b6670;background:#f3f5f7;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:12px;font-weight:700;display:flex}.tool-name{color:#4a5058;margin:12px 0 6px;font-size:15px;font-weight:700;line-height:1.35}.tool-desc{color:#6b7480;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 auto;font-size:12px;line-height:1.7;display:-webkit-box;overflow:hidden}.tool-actions{border-top:1px solid #eef0f3;justify-content:space-between;width:100%;margin-top:14px;padding-top:12px;display:flex}.tool-action{color:#93a0ad;border:1px solid #ccd4dc;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.tool-action svg{width:13px;height:13px}@media (width<=640px){.tool-card{padding:16px 10px 10px}.tool-icon,.tool-badge{width:34px;height:34px}.tool-badge{font-size:11px}.tool-name{margin:10px 0 5px;font-size:13px}.tool-desc{font-size:11px}.tool-actions{margin-top:10px;padding-top:9px}.tool-action{width:22px;height:22px}.tool-action svg{width:11px;height:11px}}.skill-tabs{flex-wrap:wrap;gap:5px;margin-top:16px;display:flex}.skill-tab{--tab-color:#28a745;color:var(--tab-color);border:1px solid var(--tab-color);border-radius:5px;align-items:center;padding:3px 9px;font-size:11.5px;line-height:1.5;transition:background-color .18s,color .18s;display:inline-flex}.skill-tab:hover,.skill-tab.is-active{background:var(--tab-color);color:#fff;text-decoration:none}.skill-section{margin-top:64px;scroll-margin-top:32px}.skill-heading{letter-spacing:3px;color:#39424e;justify-content:center;align-items:center;gap:14px;margin:0 0 28px;font-size:21px;font-weight:700;line-height:1.3;display:flex}.skill-slash{background:#3fa9dc;border-radius:3px;width:5px;height:23px;transform:rotate(20deg)}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (width<=640px){.skill-tabs{gap:6px;margin-top:14px}.skill-tab{padding:3px 9px;font-size:11.5px}.skill-section{margin-top:48px}.skill-heading{letter-spacing:2px;gap:10px;margin-bottom:20px;font-size:18px}.skill-slash{width:4px;height:19px}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:12px}}.article-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.article-list li{border-bottom:1px solid var(--line)}.article-link{align-items:baseline;gap:24px;padding:20px 0;display:flex}.article-link:hover{text-decoration:none}.article-title{color:var(--text);font-size:17px;transition:color .2s}.article-link:hover .article-title{color:var(--accent-strong)}.article-meta{flex:none;gap:16px;margin-left:auto;font-size:13px;display:flex}.article-tag{color:var(--accent-strong)}.article-date{color:var(--faint);font-variant-numeric:tabular-nums}@media (width<=640px){.article-link{flex-direction:column;gap:6px;padding:16px 0}.article-meta{margin-left:0}}
