@import"https://fontsapi.zeoseven.com/633/main/result.css";:root{color-scheme:light;--bg: #eefbf7;--bg-soft: #c9f3e8;--panel: #f0fdfa;--panel-strong: #ccfbf1;--text: #042f2e;--muted: #134e4a;--theme: #2D5A67;--theme-rgb: 45, 90, 103;--line: rgba(var(--theme-rgb), .36);--accent: #2D5A67;--accent-2: #2D5A67;--accent-3: #2D5A67;--danger: #2D5A67;--shadow: 2px 2px 0px rgba(var(--theme-rgb), .24);--shadow-hover: 4px 4px 0px rgba(var(--theme-rgb), .32);--accent-rgb: 45, 90, 103;--white-rgb: 0, 0, 0;--header-bg: transparent;--body-grid-c1: rgba(var(--theme-rgb), .04);--body-grid-c2: rgba(var(--theme-rgb), .04);--body-bg-grad1: rgba(var(--theme-rgb), .055);--body-bg-grad2: rgba(var(--theme-rgb), .045);--button-text: #ffffff;--frame-fill: transparent;--site-content-width: min(1280px, calc(100% - 32px) );--page-title-lead-gap: 22px;--font-body: "Noto Sans SC", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Noto Sans SC", ui-sans-serif, system-ui, sans-serif;--font-brand: var(--font-heading);--font-mono: "Sarasa Mono SC", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-timeline-time: "Sarasa Mono";--brand-logo-size: 55px;--brand-wordmark-size: clamp(1rem, 1.2vw, 1.18rem);--background-grid-size: 72px;--background-grid-rgb: var(--accent-rgb);--background-grid-opacity: .025;--highlight-fill: rgba(var(--accent-rgb), .06);--highlight-text: var(--accent);--card-title-size: 1.08rem;--card-title-line-height: 1.34;--card-title-weight: 800;--card-title-body-gap: 8px;--card-body-size: .9rem;--card-body-line-height: 1.55;--card-body-weight: 400;--card-body-tags-gap: 10px;--card-tag-padding-y: 6px;--card-tag-padding-x: 9px;--card-tag-font-size: .8rem;--card-tag-font-weight: 700;--card-tag-gap: 8px;--card-tag-border: rgba(var(--accent-rgb), .38);--card-tag-bg: transparent;--card-tag-color: var(--muted);--placeholder-fill: #95b2ba9e;--placeholder-fill-hover: #5f7f88;--highlight-inset: 3px;--highlight-inset-compact: 2px;--timeline-time-font: var(--font-timeline-time);--timeline-time-size: 1.4rem;--timeline-time-weight: 300;--timeline-time-letter-spacing: .05em;--timeline-time-line-height: 1.2;--timeline-title-size: 1.26rem;--timeline-title-weight: 800;--timeline-title-gap: 14px;--timeline-publication-title-size: 1.08rem;--timeline-body-size: .92rem;--timeline-body-weight: 300;--timeline-body-strong-weight: 500;--timeline-body-line-height: 1.72;--timeline-card-gap: 14px;--timeline-card-padding-y: 20px;--timeline-card-padding-x: 20px;font-family:var(--font-body)}*{box-sizing:border-box}html{min-width:320px;scroll-padding-top:92px;scroll-behavior:smooth;overflow-y:scroll;background:transparent}.fonts-loading body{opacity:0}body{margin:0;color:var(--text);background:transparent;min-height:100vh;letter-spacing:0;font-family:var(--font-body)}body:before{content:"";position:fixed;inset:0;z-index:-1;background:var(--bg) url(/bg7-1.jpg) center center / cover no-repeat;opacity:.5;pointer-events:none}body:after{content:"";position:fixed;top:0;bottom:0;left:50%;width:var(--site-content-width);z-index:0;transform:translate(-50%);background-image:linear-gradient(rgba(var(--background-grid-rgb),var(--background-grid-opacity)) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--background-grid-rgb),var(--background-grid-opacity)) 1px,transparent 1px);background-position:center top;background-size:var(--background-grid-size) var(--background-grid-size);pointer-events:none}main,.site-footer{position:relative;z-index:1}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{font:inherit}.shell{width:var(--site-content-width);margin-inline:auto;padding-inline:clamp(14px,2vw,22px)}.skip-link{position:absolute;left:16px;top:12px;z-index:10;padding:10px 14px;color:var(--button-text);background:var(--accent);border-radius:0;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:#ffffff91;backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate}.site-header:before{content:"";position:absolute;inset:-96px 0 0;z-index:-1;background:inherit;pointer-events:none}.site-header>*{position:relative;z-index:1}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px}.nav-main{display:inline-flex;align-items:center;gap:14px}.brand{display:inline-flex;align-items:center;gap:12px;min-width:max-content;font-family:var(--font-brand);font-size:var(--brand-wordmark-size);font-weight:800;letter-spacing:-.02em;color:#2d5a67}.brand span{line-height:1}.tag-entry{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid rgba(var(--accent-rgb),.4);border-radius:0;color:var(--accent);background:var(--body-bg-grad1);font-weight:800;transition:none;position:relative;overflow:hidden}.tag-entry:hover{background:transparent}.tag-entry:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.nav-divider{width:1px;height:24px;background:var(--line)}.brand-mark{display:block;width:var(--brand-logo-size);height:var(--brand-logo-size);object-fit:contain;border-radius:0;box-shadow:none}.nav-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.nav-links a,.pill-link,.tag{border:1px solid var(--line);border-radius:0;background:transparent;transition:none;position:relative;overflow:hidden}.nav-links a{padding:9px 12px;color:var(--muted);font-size:.94rem}.pill-link{display:inline-flex;align-items:center;min-height:40px;padding:0 16px}.nav-links a:hover,.nav-links a[aria-current=page],.pill-link:hover,a.tag:hover{color:var(--text);background:transparent}.nav-links a:hover:after,.nav-links a[aria-current=page]:after,.pill-link:hover:after,a.tag:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.hero{position:relative;padding:68px 0 28px}.page-head{padding:68px 0 28px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:28px;align-items:stretch}.eyebrow{margin:0 0 16px;color:var(--accent);font-size:.86rem;font-weight:800;text-transform:uppercase}.eyebrow-links{display:flex;flex-wrap:wrap;gap:8px}.eyebrow-links a,.eyebrow-links span{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid rgba(var(--accent-rgb),.36);border-radius:0;color:var(--accent);background:var(--body-bg-grad1)}.eyebrow-links a{transition:none}.eyebrow-links a{position:relative;overflow:hidden}.eyebrow-links a:hover{background:transparent}.eyebrow-links a:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{color:#2d5a67}h1{margin:0;max-width:820px;font-family:var(--font-heading);font-size:clamp(2.35rem,8vw,5.2rem);line-height:.96;letter-spacing:-.02em}article .page-head h1{font-size:clamp(1.6rem,4vw,2.6rem);line-height:1.25;max-width:100%}.article-meta-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;margin-bottom:16px}.meta-date{font-size:.8rem;font-weight:700;color:var(--muted)}@media(max-width:720px){.article-header-grid{grid-template-columns:1fr;gap:16px}}.hero-title{max-width:none;white-space:nowrap;font-size:clamp(2.4rem,6vw,5.2rem);color:#2d5a67}h2{margin:0;font-size:clamp(1.7rem,4vw,2.45rem);letter-spacing:0}h3{margin:0;font-size:1.18rem}.lead{max-width:720px;margin:var(--page-title-lead-gap) 0 0;color:var(--muted);font-size:1.08rem;line-height:1.85}.slogan{display:grid;grid-template-columns:repeat(4,max-content);gap:18px;align-items:start;margin-top:30px}.slogan div{display:grid;justify-items:center;gap:8px}.slogan strong{color:var(--text);font-size:clamp(1.32rem,2.5vw,1.95rem);font-weight:800;line-height:1.1}.slogan span{color:var(--muted);font-size:.95rem;font-weight:700;line-height:1.2}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero-cta{gap:8px;padding:0 20px;font-size:.95rem}.hero-cta svg{flex-shrink:0}.hero-cta kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border:1px solid rgba(var(--white-rgb),.25);border-radius:0;background:rgba(var(--white-rgb),.08);color:var(--button-text);font-family:var(--font-mono);font-size:.65rem;font-weight:700;opacity:.7;line-height:1}.hero-cta-secondary{gap:8px;padding:0 20px;font-size:.95rem}.hero-cta-secondary svg{flex-shrink:0;color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:1px solid rgba(var(--accent-rgb),.5);border-radius:0;color:var(--button-text);background:var(--accent);font-weight:800;transition:none;position:relative;overflow:hidden}.button:hover{background:var(--accent);filter:brightness(.85)}.button.secondary{color:var(--text);background:transparent}.button.secondary:hover{color:var(--text);background:transparent;filter:none}.button.secondary:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.profile-panel,.card,.metric,.toc-panel{border:1px solid var(--line);border-radius:0;background:var(--frame-fill)}.profile-panel{padding:22px}.profile-top{display:flex;gap:16px;align-items:center}.avatar{width:82px;height:82px;object-fit:cover;object-position:center 42%;border:1px solid var(--line);border-radius:0}.profile-panel p{color:var(--muted);line-height:1.75}.signal-list{display:grid;gap:10px;margin-top:18px}.signal{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--line);color:var(--muted)}.signal strong{color:var(--text);line-height:1.35;text-align:right}.terminal-profile{display:grid;align-content:start;gap:0;min-height:244px;padding:0;overflow:hidden;background:linear-gradient(rgba(var(--accent-rgb),.045) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb),.035) 1px,transparent 1px),var(--frame-fill);background-size:22px 22px,22px 22px,auto}.terminal-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:36px;padding:0 12px;border-bottom:1px solid var(--line);background:rgba(var(--white-rgb),.04);color:var(--muted);font-family:var(--font-mono);font-size:.78rem;font-weight:700}.terminal-dots{display:inline-flex;gap:6px}.terminal-dots span{width:7px;height:7px;border:1px solid rgba(var(--accent-rgb),.48);background:transparent}.terminal-dots span:nth-child(2){opacity:.72}.terminal-dots span:nth-child(3){opacity:.44}.terminal-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.terminal-state{color:var(--accent);letter-spacing:.12em}.terminal-screen{display:grid;gap:8px;padding:14px 16px 16px;color:rgba(var(--accent-rgb),.7);font-family:var(--font-mono);font-size:clamp(.76rem,1.1vw,.9rem);line-height:1.42}.terminal-screen p{min-height:1.42em;margin:0;color:rgba(var(--accent-rgb),.66);line-height:inherit;display:none;opacity:0;transform:translateY(3px)}.terminal-screen p[data-visible=true]{display:block;opacity:1;transform:translateY(0)}.terminal-screen p[data-active=true]:after{content:"";display:inline-block;width:.62em;height:1.05em;margin-left:4px;transform:translateY(.16em);background:rgba(var(--accent-rgb),.82);animation:terminal-cursor-blink 1s steps(1,end) infinite}.terminal-prompt{color:rgba(var(--accent-rgb),.92);font-weight:800}.terminal-muted{color:rgba(var(--accent-rgb),.45)}.terminal-key{display:inline-flex;width:104px;margin-right:8px;color:rgba(var(--accent-rgb),.48);text-transform:uppercase;letter-spacing:.1em}.terminal-key:before{content:">";margin-right:8px;color:rgba(var(--accent-rgb),.68)}.terminal-screen [data-terminal-line]{color:rgba(var(--accent-rgb),.78)}.terminal-screen p:first-child [data-terminal-line]{color:rgba(var(--accent-rgb),.62)}.terminal-screen p:nth-child(3) [data-terminal-line]{color:rgba(var(--accent-rgb),.92);font-weight:800}.terminal-screen p:nth-child(6) [data-terminal-line]{color:rgba(var(--accent-rgb),.84)}@keyframes terminal-cursor-blink{0%,48%{opacity:1}49%,to{opacity:0}}.section{padding:34px 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}.section-title>p{max-width:560px;margin:0;color:var(--muted);line-height:1.7}.section-title .resume-section-head h2{font-size:clamp(1.7rem,4vw,2.45rem)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.post-grid,.tag-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tag-result-grid.notes-results,.tag-result-grid.practice-cards{grid-template-columns:1fr}.tag-result-grid.opensource-list{grid-template-columns:repeat(2,minmax(0,1fr))}.card{overflow:hidden;position:relative}.card,.resume-links a{transition:none}.card[data-card-link]{cursor:pointer}.card[data-card-link]:hover,a.card:hover{background:transparent}.card[data-card-link]:hover:after,a.card:hover:after{content:"";position:absolute;inset:var(--highlight-inset);background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.card[data-card-link]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.post-grid .card{--thumb-size: 180px;display:grid;grid-template-columns:var(--thumb-size) minmax(0,1fr);align-items:stretch;min-height:0;padding:14px}.card-image{width:152px;height:152px;aspect-ratio:1 / 1;object-fit:cover;border-radius:0;border:1px solid var(--line)}.card-image-placeholder{position:relative;overflow:hidden;background-color:var(--placeholder-fill);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M0 .5H32M.5 0V32' fill='none' stroke='%23ffffff' stroke-opacity='.18' stroke-width='1'/%3E%3C/svg%3E");background-size:50px 50px;transition:none}.card-image-placeholder:before,.card-image-placeholder:after{content:"";position:absolute;inset:0;pointer-events:none}.card-image-placeholder:before{background:#ffffff0a}.card[data-card-link]:hover .card-image-placeholder,a.card:hover .card-image-placeholder{background-color:var(--placeholder-fill-hover)}.card-body{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;height:100%;overflow:visible;padding:0}.post-grid .card-body{padding:0}.card-body h3{margin:0;font-size:var(--card-title-size);font-weight:var(--card-title-weight);line-height:var(--card-title-line-height)}.card-body p{margin:var(--card-title-body-gap) 0 0;font-size:var(--card-body-size);font-weight:var(--card-body-weight);line-height:var(--card-body-line-height);color:var(--muted)}.post-grid .card-body h3,.post-grid .card-body h3 a,.post-grid .card-body p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-body>.tag-row{margin-top:var(--card-body-tags-gap);padding-top:0;padding-bottom:2px;max-height:none;overflow:visible}.tag-muted{color:var(--muted)}.meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px;color:var(--muted);font-size:.84rem;line-height:1.2;font-weight:600}.meta-item{display:inline-flex;min-height:26px;align-items:center;font:inherit;line-height:inherit}.meta-link{min-height:26px;padding:3px 10px;border:1px solid var(--line);border-radius:0;color:var(--muted);background:transparent;transition:none}.meta-link:before{content:"[ ";opacity:.4;margin-right:4px}.meta-link:after{content:" ]";opacity:.4;margin-left:4px}.post-grid .meta{justify-content:space-between;align-items:flex-start;flex-wrap:nowrap;gap:12px;margin-bottom:2px}.post-grid .meta-item{font-size:.8rem;min-height:26px;font-weight:700}.post-grid .meta-link{flex:0 0 auto;min-height:28px;padding:0 10px}.meta-link:hover{color:var(--accent);background:transparent;box-shadow:none}.card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tag-row{display:flex;flex-wrap:wrap;gap:var(--card-tag-gap);margin-top:var(--card-body-tags-gap)}.tag{display:inline-flex;align-items:center;min-height:calc(1em + var(--card-tag-padding-y) * 2);padding:var(--card-tag-padding-y) var(--card-tag-padding-x);border-color:var(--card-tag-border);color:var(--card-tag-color);background:var(--card-tag-bg);font-size:var(--card-tag-font-size);font-weight:var(--card-tag-font-weight)}a.tag:before,.card .tag:not(.tag-muted):before{content:"#";color:var(--accent);margin-right:3px}.metric{padding:18px}.metric strong{display:block;margin-bottom:8px;color:var(--accent-3);font-size:1.5rem}.metric span{color:var(--muted);line-height:1.7}.metric-ticker{position:relative;overflow:hidden;padding:10px 0;border:0;background:transparent;-webkit-mask-image:linear-gradient(to right,transparent,black 9%,black 91%,transparent);mask-image:linear-gradient(to right,transparent,black 9%,black 91%,transparent)}.metric-lane{overflow:hidden;padding:2px 0}.metric-lane+.metric-lane{margin-top:8px}.metric-track{display:flex;gap:12px;width:max-content;padding-inline:12px;will-change:transform}.metric-lane-a .metric-track{animation:var(--metric-lane-animation, ticker-scroll-left) var(--metric-lane-duration, 16s) linear infinite}.metric-lane-b .metric-track{animation:var(--metric-lane-animation, ticker-scroll-right) var(--metric-lane-duration, 20s) linear infinite}.metric-ticker:hover .metric-track{animation-play-state:paused}.metric-chip{display:grid;gap:4px;flex:0 0 auto;width:max-content;min-width:0;max-width:none;padding:14px 24px;border:1px solid var(--line);border-radius:0;background:var(--frame-fill);transition:none}.metric-chip{position:relative}.metric-chip:hover{background:transparent}.metric-chip:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.metric-chip-label{color:var(--muted);font-size:.82rem;line-height:1.2;font-weight:700;white-space:nowrap}.metric-chip strong{color:var(--accent-3);font-size:1.34rem;line-height:1;font-weight:800}.metric-chip small{margin-left:4px;color:var(--text);font-size:.78rem;font-weight:700}.metric-chip em{color:var(--muted);font-size:.78rem;font-style:normal;line-height:1.2;white-space:nowrap}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes ticker-scroll-left{0%{transform:translate(0)}to{transform:translate(-20%)}}@keyframes ticker-scroll-right{0%{transform:translate(-20%)}to{transform:translate(0)}}.topic-entry-grid,.signature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.topic-entry-card,.signature-card{text-decoration:none}.topic-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.topic-rail-item{display:grid;grid-template-columns:1fr;align-content:start;gap:10px;min-height:170px;padding:14px;border:1px solid var(--line);border-radius:0;background:var(--frame-fill);transition:none}.topic-rail-item:hover{background:transparent;position:relative}.topic-rail-item:hover:after{content:"";position:absolute;inset:5px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.topic-rail-main{min-width:0}.topic-rail-main h3{margin:0;font-size:.98rem;line-height:1.28}.topic-rail-main p{margin:2px 0 0;color:var(--muted);font-size:.84rem;line-height:1.42}.topic-rail-side{display:flex;align-items:baseline;gap:8px;min-width:0;margin-top:auto;padding-top:10px;border-top:1px dashed rgba(158,177,199,.24)}.topic-rail-en{color:var(--accent);font-size:.72rem;font-weight:800;text-transform:uppercase}.topic-rail-side strong{color:var(--accent-3);font-size:1.08rem;line-height:1}.topic-rail-side small{color:var(--muted);font-size:.74rem;line-height:1}.topic-entry-card,.signature-card,.signature-row{transition:none}.topic-entry-card:hover,.signature-card:hover{background:transparent}.topic-entry-card:hover:after,.signature-card:hover:after{content:"";position:absolute;inset:5px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.topic-entry-en{margin:0;color:var(--accent);font-size:.8rem;font-weight:800;text-transform:uppercase}.topic-entry-card h3,.signature-card h3{margin-top:6px}.topic-entry-card p{margin-top:8px}.topic-entry-count{margin-top:auto;color:var(--accent-3);font-size:.86rem;font-weight:700}.signature-kind{display:inline-flex;align-items:center;min-height:24px;width:fit-content;padding:0 8px;border:1px solid rgba(var(--accent-rgb),.34);border-radius:0;color:var(--accent);background:rgba(var(--accent-rgb),.1);font-size:.78rem;font-weight:800}.signature-card strong{color:var(--accent-3);font-size:1.2rem;line-height:1.1}.signature-index{display:block;color:var(--accent);font-size:1.18rem;font-weight:800;line-height:1}.signature-grid{grid-template-columns:1fr}.signature-row{display:grid;grid-template-columns:74px minmax(0,1fr) minmax(360px,42%);align-items:stretch;overflow:hidden}.signature-index-col{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:18px;border-right:1px solid rgba(158,177,199,.2);background:rgba(var(--accent-rgb),.045)}.signature-index-col .signature-kind{min-height:22px;padding:0 7px;font-size:.72rem}.signature-main{min-width:0;padding:16px 20px}.signature-main p{margin-top:8px}.signature-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;align-items:stretch;padding:10px 8px 10px 0;min-height:96px;border-left:0;background:transparent}.signature-metric{position:relative;display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:72px;padding:6px 16px}.signature-metric+.signature-metric:before{content:"";position:absolute;left:0;top:24%;height:52%;border-left:1px solid rgba(158,177,199,.24)}.signature-metric span{color:var(--muted);font-size:.76rem;font-weight:700;line-height:1.1}.signature-metric strong{color:var(--accent-3);font-size:1.08rem;line-height:1.2}.taxonomy-card{justify-content:start}.research-card{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:stretch;padding:14px;overflow:hidden}.research-card-image{width:152px;height:152px;object-fit:cover;border-radius:0;border:1px solid var(--line)}.research-card .card-body{padding:0}.taxonomy-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.note-card-head .status-badge{cursor:default}.note-card-head .status-badge:hover{color:var(--muted)!important;background:transparent!important;border-color:var(--line)!important}.opensource-workbench-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:22px}.opensource-workbench-stats div,.opensource-meta-grid div,.opensource-card-meta div,.opensource-roadmap-stage{border:1px solid var(--line);background:var(--frame-fill)}.opensource-workbench-stats div{display:grid;gap:4px;min-height:82px;padding:12px}.opensource-workbench-stats span,.opensource-meta-grid span,.opensource-card-meta span,.opensource-roadmap-stage>span{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.opensource-workbench-stats strong{color:var(--accent);font-size:1.35rem;line-height:1}.opensource-workbench-stats small{color:var(--muted);font-size:.74rem}.opensource-featured{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);gap:14px;overflow:hidden;border:1px solid var(--line);background:rgba(var(--accent-rgb),.035);padding:18px}.opensource-featured-copy{position:relative;z-index:1;display:grid;gap:14px;align-content:start}.opensource-featured-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.opensource-featured-head h2{margin:0 0 8px}.opensource-featured-head p{margin:0;color:var(--muted);line-height:1.65}.opensource-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.opensource-meta-grid div{display:grid;gap:5px;padding:10px}.opensource-meta-grid strong,.opensource-card-meta strong{color:var(--accent);font-size:.86rem;line-height:1.35}.opensource-featured-console{position:relative;z-index:1;display:grid;align-content:space-between;gap:12px;min-height:260px;border:1px solid var(--line);background:#fff;padding:14px}.opensource-console-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid rgba(var(--accent-rgb),.18);color:var(--accent);font-weight:900;letter-spacing:.06em}.opensource-console-bar small{color:var(--muted);font-size:.72rem;font-weight:800}.opensource-featured-console pre{margin:0;overflow-x:auto;color:var(--text);font-family:var(--font-mono);font-size:.86rem;line-height:1.8;white-space:pre}.opensource-featured-console .pill-link{justify-self:start}.opensource-featured-mark{position:absolute;right:18px;bottom:18px;width:104px;height:104px;opacity:.16;pointer-events:none}.opensource-featured-mark img,.opensource-featured-mark .card-image-placeholder{width:100%;height:100%;border:1px solid var(--line)}.opensource-toolchain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:toolchain}.opensource-tool-node{position:relative;display:grid;gap:10px;min-height:184px;padding:14px;border:1px solid var(--line);color:inherit;background:var(--frame-fill);overflow:hidden;isolation:isolate}.opensource-tool-node:after{content:"";position:absolute;inset:6px;border:1px solid rgba(var(--accent-rgb),.12);pointer-events:none;z-index:-1}.opensource-tool-node span{width:max-content;color:var(--accent);font-weight:900;letter-spacing:.08em}.opensource-tool-node strong{color:var(--accent);font-size:1.08rem}.opensource-tool-node p{margin:0;color:var(--muted);line-height:1.58}.opensource-tool-node em{align-self:end;color:var(--text);font-size:.82rem;font-style:normal;font-weight:800}.opensource-list{display:flex;flex-direction:column;gap:14px}.opensource-card{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:stretch;gap:0;min-height:152px;padding:14px}.opensource-icon-wrap{display:flex;align-items:flex-start;justify-content:flex-start}.opensource-icon{width:152px;height:152px;border-radius:0;object-fit:cover;border:1px solid var(--line)}.opensource-icon:not(.card-image-placeholder){background:rgba(var(--accent-rgb),.08)}.opensource-card-main{min-width:0;padding:0}.opensource-card-main p{max-width:none}.opensource-card-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.opensource-card-meta div{display:grid;gap:4px;min-width:0;padding:9px}.opensource-card-meta span{font-size:.66rem}.opensource-roadmap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.opensource-roadmap-stage{display:grid;grid-template-rows:auto auto 1fr;gap:8px;min-height:156px;padding:12px}.opensource-roadmap-stage>strong{color:var(--accent);font-size:1.6rem;line-height:1}.opensource-roadmap-stage div{display:flex;flex-direction:column;gap:6px}.opensource-roadmap-stage a,.opensource-roadmap-stage em{color:var(--muted);font-size:.78rem;font-style:normal;line-height:1.35}.opensource-roadmap-stage a:hover{color:var(--accent)}.opensource-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}.opensource-card-head h3{margin:0;min-width:0;flex:1 1 auto}.opensource-card-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.opensource-star{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border:1px solid var(--line);border-radius:0;color:var(--muted);background:rgba(var(--white-rgb),.035);font-size:.84rem;font-weight:700}.opensource-github-link{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:0;color:var(--muted);background:rgba(var(--white-rgb),.03);transition:none;position:relative;overflow:hidden}.opensource-github-link:hover{color:var(--text);background:transparent}.opensource-github-link:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.opensource-github-link svg{width:16px;height:16px}.opensource-card-compact{grid-template-columns:180px minmax(0,1fr);min-height:152px;padding:14px}.opensource-card-compact .opensource-icon{width:152px;height:152px}.status-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:0;font-size:.8rem;font-weight:700;letter-spacing:.3px;color:var(--muted);background:rgba(var(--white-rgb),.035);border:1px solid var(--line);text-decoration:none;cursor:pointer;transition:none}.status-badge:before,.kind-badge:before{content:"[ ";opacity:.4;margin-right:4px}.status-badge:after,.kind-badge:after{content:" ]";opacity:.4;margin-left:4px}.kind-badge{font-size:.8rem;font-weight:700;color:var(--muted);background:rgba(var(--white-rgb),.04);border:1px solid var(--line);padding:6px 12px;border-radius:0;white-space:nowrap;text-decoration:none;cursor:pointer;transition:none}.practice-card{display:grid;grid-template-columns:1fr;min-height:0;overflow:hidden}.practice-card .card-body{padding:14px}.practice-media{padding:14px 14px 0}.practice-media-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.practice-media-mobile{display:none}.practice-media-item{width:100%;aspect-ratio:1 / 1;object-fit:cover;border:1px solid var(--line);border-radius:0}.notes-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:22px;align-items:start}.notes-filter{position:static}.notes-filter-toggle,.notes-filter-backdrop{display:none}.notes-filter-panel{display:grid;gap:18px;padding:14px;min-height:190px;border:1px solid var(--line);border-radius:0;background:var(--frame-fill)}.notes-filter-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.notes-filter-head strong{color:var(--accent);font-size:1rem}.notes-filter-head a{color:var(--muted);font-size:.84rem;font-weight:700;padding:4px 12px;border-radius:0;border:1px solid var(--line);background:rgba(var(--white-rgb),.025);transition:none}.notes-filter-head a[data-active=true]{color:var(--accent);background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.22)}.notes-filter-group{display:grid;gap:8px}.notes-filter-group+.notes-filter-group{padding-top:14px;border-top:1px solid rgba(158,177,199,.12)}.notes-filter-group p{margin:0;color:var(--accent);font-size:.78rem;font-weight:800;text-transform:uppercase}.notes-filter-list{display:flex;flex-wrap:wrap;gap:8px}.notes-filter-list.topic-filter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.topic-filter-list .notes-filter-chip{justify-content:space-between}.notes-filter-list.tag-list{max-height:none;overflow:visible}.notes-filter-chip{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 9px;border:1px solid var(--line);border-radius:0;color:var(--muted);background:transparent;font-size:.82rem;font-weight:700;transition:none;position:relative;overflow:hidden}.notes-filter-chip span{color:var(--accent-3);font-size:.76rem}.notes-filter-chip:hover,.notes-filter-chip[data-active=true]{color:var(--text);background:transparent;position:relative}.notes-filter-chip:hover:after,.notes-filter-chip[data-active=true]:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.notes-filter-chip[data-disabled=true]{color:var(--muted);border-color:transparent;background:transparent;opacity:.4;cursor:not-allowed}.notes-filter-chip[data-disabled=true] span{color:inherit;opacity:.6}.notes-filter-chip:hover{box-shadow:none}.notes-filter-chip[data-disabled=true]:hover{background:transparent;border-color:var(--line)}.sort-chip .sort-arrow{display:inline-block;font-size:.9em;transition:none}.sort-chip[data-active=true]{color:var(--accent);border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.08)}.notes-filter-chip[data-filter-status=待规划][data-active=true]{color:var(--accent-2);background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.45)}.notes-filter-chip[data-filter-status=进行中][data-active=true]{color:var(--accent-3);background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.42)}.notes-filter-chip[data-filter-status=已完成][data-active=true]{color:var(--accent);background:rgba(var(--accent-rgb),.18);border-color:rgba(var(--accent-rgb),.5)}.notes-main{min-width:0}.topic-info-stack{display:grid}.topic-info[hidden],.note-result[hidden]{display:none!important}.topic-info{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:0;background:linear-gradient(180deg,rgba(var(--accent-rgb),.09),rgba(var(--white-rgb),.025));margin-bottom:14px}.topic-info .eyebrow{margin-bottom:8px;color:var(--accent)}.topic-info h2{font-size:clamp(1.35rem,3vw,1.75rem)}.topic-info p{max-width:680px;margin:8px 0 0;color:var(--muted);line-height:1.7}.topic-info dl{display:flex;gap:10px;margin:0}.topic-info dl div{min-width:74px;padding-left:10px;border-left:1px solid rgba(158,177,199,.24)}.topic-info dt{color:var(--muted);font-size:.76rem;font-weight:700}.topic-info dd{margin:4px 0 0;color:var(--accent-3);font-size:.96rem;font-weight:800}.topic-info-tags{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.topic-info-tags span{color:var(--muted);font-size:.82rem}.note-result{min-width:0}.notes-results{grid-template-columns:1fr}.article-shell{display:grid;width:var(--site-content-width);margin:0 auto;padding:28px clamp(14px,2vw,22px) 64px}.article-shell.with-sidebar{grid-template-columns:minmax(0,1fr) 240px;gap:42px;align-items:start}.prose{width:100%;margin:0;color:var(--text);line-height:1.9;font-size:1.04rem}.page-prose{width:var(--site-content-width);margin:0 auto;padding:28px clamp(14px,2vw,22px) 64px}.resume-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,430px);gap:28px;align-items:start}.hero-keywords{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--page-title-lead-gap);margin-bottom:6px}.hero-keywords span{display:inline-flex;align-items:center;padding:4px 14px;border-radius:0;font-size:.82rem;font-weight:700;letter-spacing:.3px;color:var(--muted);background:transparent;border:1px solid var(--line)}.hero-keywords span:before{content:"[ ";opacity:.4;margin-right:4px}.hero-keywords span:after{content:" ]";opacity:.4;margin-left:4px}.resume-page{display:grid;gap:48px;padding:28px clamp(14px,2vw,22px) 70px}.resume-card{border:1px solid var(--line);border-radius:0;background:var(--frame-fill);padding:20px}.resume-card>*:last-child{margin-bottom:0}.resume-card>*:first-child{margin-top:0}.resume-profile{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:center}.resume-profile-copy{min-width:0}.resume-profile-logo{display:block;width:112px;height:112px;border:1px solid var(--line);background:rgba(var(--white-rgb),.02);object-fit:cover}.resume-profile-title{margin-bottom:10px;color:var(--text);font-size:.9rem;letter-spacing:.04em}.resume-link-groups{display:grid;gap:9px}.resume-link-group{min-width:0}.resume-link-group-label{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.05em}.resume-profile-links{gap:5px;margin-top:4px}.resume-profile-links a{min-height:28px;padding-inline:8px;font-size:.76rem}.resume-profile strong,.resume-profile span{display:block}.resume-profile span,.resume-card p,.resume-list,.muted{color:var(--muted);line-height:1.6}.resume-avatar{width:112px;height:112px;object-position:center 26%}.resume-section{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}.resume-section+.resume-section{padding-top:28px;border-top:1px solid var(--line)}.resume-timeline{display:flex;flex-direction:column;gap:var(--timeline-card-gap)}.tl-card{--tl-corner-badge-width: 128px;position:relative;border:1px solid var(--line);border-radius:0;background:rgba(var(--white-rgb),.02);padding:var(--timeline-card-padding-y) var(--timeline-card-padding-x);overflow:hidden}.tl-card:has(.tl-publication-badge){--tl-corner-badge-width: 168px}.tl-education-card{--tl-corner-badge-width: 88px}.tl-card-bg{position:absolute;top:0;right:0;bottom:0;width:50%;background-size:cover;background-position:center;mask-image:linear-gradient(to right,transparent,black 40%);-webkit-mask-image:linear-gradient(to right,transparent,black 40%);opacity:.15;pointer-events:none;z-index:0}.tl-card>*:not(.tl-card-bg){position:relative;z-index:1}.tl-card>.tl-corner-badge{position:absolute;top:14px;right:14px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:var(--tl-corner-badge-width);min-height:32px;padding:0 10px;border:1px solid var(--line);color:var(--muted);background:transparent;font-size:.9rem;font-weight:700;line-height:1;text-align:center;white-space:nowrap}.tl-card>.tl-corner-badge:before{content:"[ ";opacity:.4;margin-right:4px}.tl-card>.tl-corner-badge:after{content:" ]";opacity:.4;margin-left:4px}.tl-card-head{display:flex;align-items:center;gap:14px;margin-bottom:10px}.tl-card-head h3{margin:0;min-width:0}.tl-card-time{display:inline-flex;align-items:center;justify-content:center;min-width:148px;padding:2px 0 0;border:0;background:transparent;font-family:var(--timeline-time-font);font-size:var(--timeline-time-size);font-weight:var(--timeline-time-weight);color:var(--accent);letter-spacing:var(--timeline-time-letter-spacing);white-space:nowrap;line-height:var(--timeline-time-line-height);flex-shrink:0;margin-bottom:12px}.tl-card-head .tl-card-time{margin-bottom:0}.tl-card>*:last-child{margin-bottom:0}.tl-card p{color:var(--muted);line-height:1.6}.tl-card-horizontal{display:grid;grid-template-columns:120px minmax(0,1fr);gap:0 24px;padding:var(--timeline-card-padding-y) var(--timeline-card-padding-x)}.tl-time-rail{display:flex;flex-direction:column;align-items:center;gap:0;padding:relative;position:relative;z-index:1}.tl-card-horizontal>.tl-time-rail,.tl-card-horizontal>.tl-card-time{grid-column:1;grid-row:1}.tl-time-start,.tl-time-end{font-family:var(--timeline-time-font);font-size:var(--timeline-time-size);font-weight:var(--timeline-time-weight);color:var(--accent);letter-spacing:var(--timeline-time-letter-spacing);white-space:nowrap;line-height:var(--timeline-time-line-height)}.tl-card-horizontal>.tl-card-time{width:100%;min-width:0;margin-bottom:0;text-align:center}.tl-time-line{flex:1;width:1px;min-height:4px;background:var(--line);border-radius:0;margin:8px 0}.tl-card-content{position:relative;z-index:1;min-width:0}.tl-card-horizontal>.tl-card-content{grid-column:2;grid-row:1}.tl-card:has(.tl-corner-badge) .tl-card-content{padding-right:calc(var(--tl-corner-badge-width, 128px) + 16px)}.tl-card-content h3{margin:0 0 var(--timeline-title-gap);font-size:var(--timeline-title-size);font-weight:var(--timeline-title-weight);line-height:1.34;letter-spacing:.01em}.tl-card-content .tl-publication-title{margin-bottom:8px;font-size:var(--timeline-publication-title-size)}.tl-publication-journal{color:var(--accent)!important;font-weight:var(--timeline-body-strong-weight)!important}.tl-card-content p{margin:0 0 5px;font-size:var(--timeline-body-size);font-weight:var(--timeline-body-weight);line-height:var(--timeline-body-line-height)}.tl-card-content p strong{font-weight:var(--timeline-body-strong-weight)}.tl-card-content p:last-child{margin-bottom:0}.timeline{display:flex;flex-direction:column;gap:14px}.resume-section.two-column{align-items:center}.resume-section-head{position:sticky;top:94px}.resume-section-head h2{font-size:clamp(1.45rem,3vw,2rem)}.section-note{margin:12px 0 0;color:var(--muted);line-height:1.7;font-size:.95rem}.resume-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.resume-list{padding-left:1.15rem;margin:14px 0 0}.resume-list li+li{margin-top:8px}.resume-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.resume-links a{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border:1px solid rgba(var(--accent-rgb),.36);border-radius:0;color:var(--accent);background:var(--body-bg-grad1);font-size:.9rem;font-weight:700;position:relative;overflow:hidden}.resume-links a:hover{background:transparent}.resume-links a:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.skill-cloud{--card-tag-font-size: .86rem;display:flex;flex-wrap:wrap;gap:10px}.status{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:0;color:var(--muted);background:rgba(var(--white-rgb),.035);font-size:.92rem}.status{margin-bottom:10px;color:var(--accent-3)}.timeline{display:flex;flex-direction:column;gap:20px}.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.workflow-card{display:grid;gap:10px;align-content:start;transition:none}.workflow-card:hover{background:transparent}.workflow-card:hover:after{content:"";position:absolute;inset:5px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.workflow-step{width:max-content;max-width:100%;padding:6px 10px;border:1px solid rgba(var(--accent-rgb),.36);border-radius:0;color:var(--accent-3);background:rgba(var(--accent-rgb),.08);font-size:.86rem;font-weight:800;overflow-wrap:anywhere}.compact-posts{grid-template-columns:1fr}.compact-posts .card{--thumb-size: 176px;height:var(--thumb-size);min-height:var(--thumb-size)}.compact-posts .card-body{justify-content:center}.compact-posts .card p{-webkit-line-clamp:3}.compact-posts .tag-row{display:none}.about-moments{min-width:0;overflow:hidden;border:1px solid var(--line);background:var(--frame-fill);padding:14px}.about-moments-track{display:flex;gap:14px;width:max-content;animation:about-moments-scroll 28s linear infinite;will-change:transform}.about-moments:hover .about-moments-track,.about-moments:focus-within .about-moments-track{animation-play-state:paused}.about-moment-card{flex:0 0 clamp(240px,28vw,320px);margin:0;border:1px solid var(--line);background:var(--body-bg-grad1)}.about-moment-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;border-bottom:1px solid var(--line)}.about-moment-card figcaption{min-height:42px;padding:10px 12px;color:var(--text);font-size:.82rem;font-weight:700;line-height:1.35}@keyframes about-moments-scroll{0%{transform:translate(0)}to{transform:translate(calc(-50% - 7px))}}@media(max-width:720px){.resume-profile{grid-template-columns:88px minmax(0,1fr);gap:12px}.resume-avatar,.resume-profile-logo{width:88px;height:88px}.resume-profile-title{margin-bottom:7px}.resume-link-groups{gap:6px}.resume-profile-links{margin-top:3px}.about-moments{padding:9px}.about-moments-track{gap:9px}.about-moment-card{flex-basis:clamp(210px,72vw,260px)}}.prose h2,.prose h3{margin-top:2em;margin-bottom:.6em}.prose p,.prose ul,.prose ol,.prose blockquote{margin:1em 0}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.prose pre{overflow-x:auto;padding:16px;border:1px solid var(--line);border-radius:0;font-family:var(--font-mono);font-size:.88rem}.prose code{overflow-wrap:anywhere;font-family:var(--font-mono);font-size:.88em}.prose blockquote{padding-left:18px;border-left:3px solid var(--accent);color:var(--muted)}.skill-cloud a:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}.skill-cloud .is-unavailable{cursor:default;opacity:.58}.article-sidebar{position:sticky;top:96px;display:grid;grid-column:2;grid-row:1;gap:14px;align-self:start;max-height:calc(100vh - 120px);overflow-y:auto}.article-main{min-width:0}.article-toc-floating,.article-related-mobile{display:none}.comment-section{padding:48px 0 0;margin-top:48px;border-top:1px solid var(--line)}.toc-cover{width:100%;aspect-ratio:1 / 1;object-fit:cover;border:1px solid var(--line);border-radius:0}.toc-panel{padding:16px}.toc-panel strong{display:block;margin-bottom:12px;color:var(--text)}.toc-panel nav{display:grid;gap:8px}.toc-panel a{color:var(--muted);line-height:1.55;font-size:.92rem}.toc-panel a:hover{color:var(--accent)}.article-side-title{border:none;border-radius:0;background:none;box-shadow:none;padding:0 0 14px;border-bottom:1px solid var(--line)}.article-side-title a{color:var(--text);line-height:1.45;font-size:.95rem;font-weight:700}.toc-panel .toc-depth-3{padding-left:14px;font-size:.86rem}.related-list{display:grid;gap:10px}.related-item{--related-reading-font-size: .8rem;--related-reading-line-height: 1.02rem;--related-reading-title-height: 2.04rem;--related-reading-pad-y: 3px;--related-reading-pad-x: 5px;display:grid;grid-template-columns:28px minmax(0,1fr);gap:0;min-height:42px;padding:0;border:1px solid var(--line);border-radius:0;background:rgba(var(--white-rgb),.035);transition:none;position:relative;overflow:hidden}.related-item:hover{background:transparent}.related-item:hover:after{content:"";position:absolute;inset:5px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.related-kind,.related-title{position:relative;z-index:1;display:flex;align-items:center;min-width:0}.related-kind{flex-direction:column;justify-content:center;gap:0;border-right:1px solid var(--line);color:var(--muted);padding:var(--related-reading-pad-y) var(--related-reading-pad-x);font-size:var(--related-reading-font-size);font-weight:800;letter-spacing:.04em;line-height:var(--related-reading-line-height)}.related-kind span{color:inherit;font:inherit;line-height:inherit}.related-title{display:-webkit-box;align-self:center;height:calc(var(--related-reading-title-height) + (var(--related-reading-pad-y) * 2));padding:var(--related-reading-pad-y) var(--related-reading-pad-x);overflow:hidden;color:var(--text);line-height:var(--related-reading-line-height);font-size:var(--related-reading-font-size);font-weight:800;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.comment-panel{min-width:0}.comment-panel :global(.giscus),.comment-panel :global(.giscus-frame){width:100%}.comment-preview{display:grid;gap:12px;margin-top:18px}.comment-preview[hidden]{display:none}.comment-preview-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:0;background:rgba(var(--white-rgb),.035)}.comment-preview-avatar{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(var(--accent-rgb),.36);border-radius:0;color:var(--button-text);background:var(--accent);font-weight:900}.comment-preview-body{min-width:0}.comment-preview-head,.comment-preview-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.comment-preview-head span,.comment-preview-actions{color:var(--muted);font-size:.9rem}.comment-preview-body p{margin:8px 0 12px;color:var(--muted);line-height:1.7}.link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.site-footer{margin-top:44px;border-top:1px solid var(--line)}.footer-inner{display:flex;justify-content:space-between;gap:18px;padding:28px 0;color:var(--muted)}@media(max-width:820px){:root{--brand-logo-size: 42px;--brand-wordmark-size: .98rem;--card-title-size: .92rem;--card-title-line-height: 1.25;--card-title-body-gap: 5px;--card-body-size: .78rem;--card-body-line-height: 1.38;--card-body-tags-gap: 7px;--card-tag-padding-y: 4px;--card-tag-padding-x: 7px;--card-tag-font-size: .7rem;--card-tag-gap: 5px;--timeline-time-size: .84rem;--timeline-time-letter-spacing: .04em;--timeline-title-size: .98rem;--timeline-title-gap: 7px;--timeline-publication-title-size: .92rem;--timeline-body-size: .8rem;--timeline-body-line-height: 1.45;--timeline-card-gap: 8px;--timeline-card-padding-y: 11px;--timeline-card-padding-x: 10px;--page-title-lead-gap: 14px}html{font-size:15px}body{font-size:.92rem}.shell{width:min(100% - 28px,1120px)}.hero,.page-head{padding-top:42px;padding-bottom:20px}h1{font-size:clamp(1.85rem,9vw,3.2rem);line-height:1.04}.hero-title{font-size:clamp(2rem,10vw,3.4rem);line-height:.98}article .page-head h1{font-size:clamp(1.35rem,6vw,2rem);line-height:1.2}h2{font-size:clamp(1.25rem,5.8vw,1.75rem);line-height:1.18}h3{font-size:1rem;line-height:1.25}.eyebrow{margin-bottom:10px;font-size:.72rem;letter-spacing:.08em}.lead{font-size:.92rem;line-height:1.58}.actions{gap:8px;margin-top:18px}.button,.hero-cta,.hero-cta-secondary{min-height:36px;padding:0 12px;font-size:.8rem}.hero-cta kbd{min-width:17px;height:17px;padding:0 4px;font-size:.58rem}.section{padding:24px 0}.section-title{gap:10px;margin-bottom:12px}.section-title>p{font-size:.82rem;line-height:1.5}.section-title .resume-section-head h2{font-size:clamp(1.2rem,5.6vw,1.65rem)}.prose{font-size:.92rem;line-height:1.68}.prose h2,.prose h3{margin-top:1.55em;margin-bottom:.48em}.prose p,.prose ul,.prose ol,.prose blockquote{margin:.78em 0}.nav{align-items:center;flex-direction:row;gap:10px;min-height:60px;padding:8px 0;overflow:hidden}.brand{gap:8px;font-size:.92rem;white-space:nowrap}.nav-links{flex:1 1 auto;flex-wrap:nowrap;justify-content:flex-end;gap:5px;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav-links::-webkit-scrollbar{display:none}.nav-links a{flex:0 0 auto;padding:7px 8px;font-size:.72rem;white-space:nowrap}.terminal-profile{min-height:214px}.terminal-bar{min-height:32px;padding:0 10px;font-size:.68rem}.terminal-screen{gap:6px;padding:12px 12px 14px;font-size:.72rem;line-height:1.36}.terminal-key{width:86px;margin-right:6px}.hero-grid,.resume-hero,.resume-grid,.workflow-grid,.notes-layout,.topic-entry-grid,.signature-grid,.post-grid,.tag-result-grid,.grid,.link-grid,.article-shell.with-sidebar,.tag-result-grid.opensource-list{grid-template-columns:1fr}.notes-filter{position:fixed;top:auto;left:0;bottom:130px;z-index:60;width:min(82vw,320px);max-width:calc(100vw - 48px);max-height:min(58vh,480px);padding:12px;overflow-y:auto;overflow-x:hidden;background:#fff;border:1px solid var(--line);border-right:1px solid var(--line);transform:translate(-102%);transition:none;overscroll-behavior:contain;overscroll-behavior-x:none;touch-action:pan-y}.notes-filter[data-open=true]{transform:translate(0)}.notes-filter-toggle{position:fixed;left:12px;bottom:88px;z-index:55;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border:1px solid rgba(var(--accent-rgb),.45);border-radius:0;color:var(--accent);background:#fffffff0;font-size:.78rem;font-weight:800;box-shadow:0 8px 24px #0f172a14}.notes-filter-toggle:before{content:"[ ";opacity:.45;margin-right:2px}.notes-filter-toggle:after{content:" ]";opacity:.45;margin-left:2px}.notes-filter-close{display:none;align-items:center;min-height:26px;padding:0 8px;border:1px solid var(--line);border-radius:0;color:var(--muted);background:transparent;font-size:.7rem;font-weight:800}.notes-filter-backdrop{position:fixed;inset:0;z-index:50;display:block;pointer-events:none;background:transparent;opacity:0;transition:opacity .18s ease}.notes-filter-backdrop[data-open=true]{pointer-events:auto;opacity:1}.notes-filter-panel{gap:13px;width:100%;min-width:0;min-height:100%;padding:12px;border:0;overflow-x:hidden}.notes-filter-head{position:sticky;top:0;z-index:1;padding-bottom:9px;background:#fff;border-bottom:1px solid rgba(158,177,199,.14)}.notes-filter-list.tag-list{max-height:none;overflow:visible}.notes-filter-chip{min-height:28px;padding:0 7px;gap:5px;font-size:.7rem}.notes-filter-chip span{font-size:.68rem}.topic-info{grid-template-columns:1fr;gap:10px;padding:12px}.topic-info dl{gap:8px}.topic-info dl div{min-width:0}.topic-info p{line-height:1.55;font-size:.86rem}.topic-info h2{font-size:1.12rem}.topic-info dt{font-size:.66rem}.topic-info dd{font-size:.82rem}.resume-section-head{position:sticky;top:86px;align-self:start}.resume-section{grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:start;min-height:0}.resume-page{gap:28px;padding-top:18px;padding-bottom:48px}.resume-section+.resume-section{padding-top:18px}.resume-card{padding:12px}.resume-card h3{margin:0 0 7px;font-size:.92rem;line-height:1.28}.resume-profile{gap:10px}.resume-profile span,.resume-card p,.resume-list,.muted{font-size:.82rem;line-height:1.48}.resume-list{margin-top:9px;padding-left:1rem}.resume-list li+li{margin-top:5px}.resume-grid{gap:8px}.resume-links{gap:5px;margin-top:9px}.resume-links a{min-height:26px;padding:0 7px;font-size:.7rem}.skill-cloud{--card-tag-font-size: .72rem;gap:6px}.status{min-height:26px;padding:0 7px;font-size:.72rem;line-height:1.2}.resume-timeline{gap:var(--timeline-card-gap)}.tl-card{padding:var(--timeline-card-padding-y) var(--timeline-card-padding-x)}.tl-card-head{flex-direction:column;align-items:flex-start;gap:4px}.tl-card-time{min-width:0;font-size:var(--timeline-time-size)}.tl-card-horizontal{grid-template-columns:54px minmax(0,1fr);gap:0 8px}.tl-corner-badge{top:8px;right:8px;min-height:24px;padding:0 6px;font-size:.68rem}.tl-card:has(.tl-corner-badge) .tl-card-content{padding-right:0;padding-top:28px}.tl-time-rail{flex-direction:column;align-items:center;gap:0;padding-top:0;margin-bottom:0}.tl-time-start,.tl-time-end{font-size:var(--timeline-time-size);letter-spacing:var(--timeline-time-letter-spacing);line-height:1.1}.tl-time-line{flex:1;width:1px;height:auto;min-height:12px;margin:4px 0;background:var(--line)}.tl-card-horizontal>.tl-time-rail,.tl-card-horizontal>.tl-card-time{grid-column:1;grid-row:1}.tl-card-horizontal>.tl-card-content{grid-column:2;grid-row:1}.tl-education-card{--tl-corner-badge-width: 60px;grid-template-columns:46px minmax(0,1fr);gap:0 7px;padding:9px}.tl-education-card .tl-corner-badge{top:7px;right:7px;width:var(--tl-corner-badge-width);min-height:22px;max-width:none;padding:0 5px;font-size:.62rem;overflow:hidden;text-overflow:ellipsis}.tl-education-card:has(.tl-corner-badge) .tl-card-content{padding-top:0}.tl-education-card .tl-card-content h3{padding-right:calc(var(--tl-corner-badge-width) + 6px)}.tl-education-card .tl-time-start,.tl-education-card .tl-time-end{font-size:.76rem;letter-spacing:.02em}.tl-education-card .tl-time-line{min-height:10px;margin:3px 0}.tl-education-card .tl-card-content h3{margin-bottom:5px;font-size:.9rem}.tl-education-card .tl-card-content p{font-size:.76rem;line-height:1.36}.tl-publication-card{grid-template-columns:46px minmax(0,1fr);gap:0 7px;padding:9px}.tl-publication-card .tl-publication-badge{top:7px;right:7px;min-height:22px;max-width:112px;padding:0 5px;font-size:.62rem;overflow:hidden;text-overflow:ellipsis}.tl-publication-card:has(.tl-corner-badge) .tl-card-content{padding-top:0}.tl-publication-card .tl-card-time{font-size:.76rem;letter-spacing:.02em}.tl-publication-card .tl-publication-title{margin-bottom:5px;padding-right:116px;font-size:.86rem}.tl-publication-card .tl-card-content p{font-size:.74rem;line-height:1.36}.resume-section-head h2{font-size:1rem;line-height:1.22}.resume-section-head .eyebrow{font-size:.68rem;letter-spacing:.08em;margin-bottom:6px}.tl-card-content h3{line-height:1.28}.tl-card-content p{margin-bottom:3px}.taxonomy-card-head,.opensource-card-head{gap:8px;margin-bottom:7px}.kind-badge,.status-badge{min-height:24px;padding:3px 7px;font-size:.68rem;letter-spacing:.15px}.kind-badge:before,.status-badge:before{margin-right:2px}.kind-badge:after,.status-badge:after{margin-left:2px}.opensource-star{min-height:24px;padding:0 7px;font-size:.7rem}.opensource-github-link{width:26px;height:26px}.opensource-github-link svg{width:13px;height:13px}.opensource-card{grid-template-columns:120px minmax(0,1fr);align-items:stretch}.opensource-workbench-stats,.opensource-meta-grid,.opensource-toolchain,.opensource-roadmap{grid-template-columns:1fr 1fr}.opensource-workbench-stats div{min-height:68px;padding:10px}.opensource-workbench-stats strong{font-size:1.08rem}.opensource-featured{grid-template-columns:1fr;padding:12px}.opensource-featured-head{gap:10px}.opensource-featured-console{min-height:210px;padding:12px}.opensource-featured-console pre{font-size:.72rem;line-height:1.6}.opensource-featured-mark{width:72px;height:72px}.opensource-tool-node{min-height:150px;padding:12px}.opensource-card-meta{grid-template-columns:1fr;gap:6px}.opensource-card-meta div,.opensource-meta-grid div{padding:8px}.opensource-roadmap-stage{min-height:126px;padding:10px}.opensource-icon{width:100px;height:100px}.practice-module{display:flex;align-items:flex-start;gap:12px}.practice-module-head{flex:0 0 104px;position:sticky;top:132px}.practice-month-list{padding-right:12px}.practice-month-list span{min-width:46px;font-size:1.18rem;padding:5px 7px}.practice-module-body{flex:1;min-width:0}.practice-card{grid-template-columns:1fr;padding:10px}.practice-media{padding:0 0 10px}.practice-card .card-body{padding:0}.research-card{grid-template-columns:120px minmax(0,1fr);padding:10px}.opensource-card{padding:10px}.research-card-image{width:100px;height:100px}.compact-posts .card{--thumb-size: 112px;height:var(--thumb-size);min-height:var(--thumb-size);padding:9px}.compact-posts .card p{-webkit-line-clamp:2}.practice-media-desktop{display:none}.practice-media-mobile{display:block}.practice-media-mobile .practice-media-row{grid-template-columns:repeat(3,minmax(0,1fr))}.slogan{grid-template-columns:repeat(4,max-content);gap:10px}.metric-chip{min-width:0;min-height:72px;padding:10px 16px}.metric-chip-label{font-size:.68rem}.metric-chip strong{font-size:1.05rem}.metric-chip small,.metric-chip em{font-size:.66rem}.signature-row{grid-template-columns:56px minmax(0,1fr)}.signature-index{font-size:1.15rem}.signature-kind{font-size:.66rem}.signature-index-col{grid-row:1 / span 2;border-right:1px solid rgba(158,177,199,.18)}.topic-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.topic-rail-item{gap:8px;min-height:128px;padding:8px 10px}.topic-rail-main h3{font-size:.84rem;line-height:1.26}.topic-rail-main p{font-size:.74rem;line-height:1.3}.topic-rail-side{margin-top:auto;padding-top:8px;gap:6px;flex-wrap:wrap}.topic-rail-en{font-size:.68rem}.topic-rail-side strong{font-size:.94rem}.topic-rail-side small{font-size:.68rem}.signature-metrics{grid-column:2;border-top:1px solid var(--line);min-height:0;padding:4px 6px}.signature-metric{min-height:40px;gap:2px;padding:4px 6px}.signature-metric span{font-size:.66rem;line-height:1.05}.signature-metric strong{font-size:.94rem;line-height:1.08}.slogan strong{font-size:1.05rem}.slogan span{font-size:.72rem}.footer-inner{gap:8px;padding:20px 0;font-size:.78rem;line-height:1.45}.post-grid .card{--thumb-size: 120px;grid-template-columns:var(--thumb-size) minmax(0,1fr);padding:10px;min-height:0;align-items:stretch}.post-grid .card-image{width:100px;height:100px}.post-grid .card-body{height:100%;overflow:visible;padding:0}.post-grid .meta{margin-bottom:2px;gap:8px}.post-grid .meta-item{font-size:.76rem;min-height:26px}.post-grid .meta-link{min-height:26px;padding:0 8px}.post-grid .card-body h3{font-size:var(--card-title-size);line-height:var(--card-title-line-height)}.post-grid .card-body p{margin-top:var(--card-title-body-gap);font-size:var(--card-body-size);line-height:var(--card-body-line-height)}.post-grid .tag-row{margin-top:var(--card-body-tags-gap);padding-top:0;padding-bottom:2px;max-height:none}.article-shell{width:min(100% - 28px,760px);padding-top:16px}.article-shell.with-sidebar{gap:0}.article-main>.prose>:first-child{margin-top:0}.article-sidebar{position:static;grid-column:auto;max-height:none}.article-sidebar-desktop{display:none}.article-toc-floating{position:static;display:block}.article-toc-floating summary{position:fixed;right:12px;bottom:88px;z-index:1030;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border:1px solid rgba(var(--accent-rgb),.45);border-radius:0;color:var(--accent);background:#fff;box-shadow:0 8px 24px #0f172a14;font-size:.78rem;font-weight:800;list-style:none;cursor:pointer}.article-toc-floating summary:before{content:"[ ";margin-right:2px;opacity:.45}.article-toc-floating summary:after{content:" ]";margin-left:2px;opacity:.45}.article-toc-floating summary::-webkit-details-marker{display:none}.article-toc-backdrop{display:none}.article-toc-floating[open] .article-toc-backdrop{position:fixed;inset:0;z-index:1000;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:default}.article-toc-floating-panel{position:fixed;right:0;bottom:130px;z-index:1020;display:flex;flex-direction:column;width:min(82vw,320px);max-width:calc(100vw - 48px);max-height:min(58vh,480px);padding:0;overflow:hidden;border:1px solid var(--line);background:#fff!important;background-clip:padding-box;box-shadow:0 12px 32px #0f172a24}.article-toc-floating-head{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 9px;border-bottom:1px solid rgba(158,177,199,.14);background:#fff}.article-toc-floating-head strong{margin:0;color:var(--accent);font-size:1rem}.article-toc-floating .notes-filter-close{display:inline-flex}.article-toc-floating-panel nav{min-height:0;padding:12px;overflow-y:auto;gap:10px;overscroll-behavior:contain}.article-toc-floating-panel a{padding-block:2px}.article-related-mobile{display:block;margin-top:48px}.hero,.page-head{padding-top:42px}.footer-inner,.section-title{align-items:flex-start;flex-direction:column}}@media(max-width:480px){:root{--brand-logo-size: 34px;--brand-wordmark-size: .86rem;--card-title-size: .86rem;--card-body-size: .72rem;--card-tag-font-size: .64rem}html{font-size:14px}.shell{width:min(100% - 20px,1120px);padding-inline:10px}.nav{gap:6px;min-height:52px;padding:6px 0}.brand{gap:6px;font-size:.78rem}.nav-links{gap:4px}.nav-links a{padding:6px 7px;font-size:.66rem}.notes-filter{bottom:130px;max-height:min(54vh,420px);padding:10px}.article-toc-floating-panel{bottom:130px;max-height:min(54vh,420px)}.article-toc-floating-head{padding:10px 10px 8px}.article-toc-floating-panel nav{padding:10px}.hero,.page-head{padding-top:32px;padding-bottom:16px}.hero-title{font-size:clamp(1.7rem,10vw,2.7rem)}.lead{font-size:.86rem;line-height:1.5}.terminal-screen{font-size:.66rem}.terminal-key{width:76px}.post-grid .card,.research-card,.opensource-card,.practice-card{grid-template-columns:96px minmax(0,1fr);padding:8px}.practice-card{grid-template-columns:1fr}.practice-media{padding:0 0 8px}.opensource-workbench-stats,.opensource-meta-grid,.opensource-toolchain,.opensource-roadmap{grid-template-columns:1fr}.opensource-featured-head{flex-direction:column;align-items:flex-start}.opensource-tool-node,.opensource-roadmap-stage{min-height:0}.post-grid .card-image,.research-card-image,.opensource-icon{width:78px;height:78px}.practice-card .card-body{padding:0}.taxonomy-card-head,.opensource-card-head{gap:6px;margin-bottom:5px}.kind-badge,.status-badge,.opensource-star{min-height:22px;padding:2px 6px;font-size:.62rem}.opensource-github-link{width:24px;height:24px}.resume-section{grid-template-columns:66px minmax(0,1fr);gap:6px}.resume-section-head h2{font-size:.9rem}.resume-section-head .eyebrow{font-size:.62rem}.tl-card-horizontal,.tl-education-card,.tl-publication-card{grid-template-columns:40px minmax(0,1fr);gap:0 6px}.tl-time-start,.tl-time-end,.tl-education-card .tl-time-start,.tl-education-card .tl-time-end,.tl-publication-card .tl-card-time{font-size:.68rem}.tl-publication-card .tl-publication-title{padding-right:96px}}.cmd-k-overlay{position:fixed;inset:0;z-index:1000;background:#0009;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;opacity:1;transition:none}.cmd-k-overlay[hidden]{display:none!important;opacity:0}.cmd-k-dialog{width:90%;max-width:640px;background:var(--panel);border:1px solid var(--line);border-radius:0;overflow:hidden;display:flex;flex-direction:column}.cmd-k-header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);gap:14px}.cmd-k-icon{color:var(--muted)}.cmd-k-header input{flex:1;background:transparent;border:none;color:var(--text);font-size:1.1rem;outline:none;font-family:inherit}.cmd-k-header input::placeholder{color:var(--muted);opacity:.7}.cmd-k-close{background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.2);color:var(--accent);padding:4px 8px;border-radius:0;font-size:.75rem;font-weight:700;cursor:pointer;letter-spacing:.5px;transition:none;position:relative;overflow:hidden}.cmd-k-close:hover{background:transparent}.cmd-k-close:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.cmd-k-results{max-height:400px;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:4px}.cmd-k-item{display:flex;align-items:center;gap:16px;padding:12px 16px;border-radius:0;text-decoration:none;color:var(--text);transition:none;cursor:pointer}.cmd-k-item{position:relative}.cmd-k-item[data-selected=true],.cmd-k-item:hover{background:transparent}.cmd-k-item[data-selected=true]:after,.cmd-k-item:hover:after{content:"";position:absolute;inset:3px;background:rgba(var(--accent-rgb),.06);pointer-events:none;z-index:0}.cmd-k-type{font-size:.7rem;font-weight:700;background:rgba(var(--accent-rgb),.12);color:var(--accent);padding:4px 8px;border-radius:0;white-space:nowrap}.cmd-k-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cmd-k-title{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.cmd-k-desc{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmd-k-empty{padding:32px 24px;text-align:center;color:var(--muted);font-size:.95rem}@keyframes fade-in-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(24px);transition:none}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-20px,15px) scale(.95)}}.hero-gradient-text{background:none;-webkit-text-fill-color:#2D5A67;color:#2d5a67;animation:none}.hero-orbs{display:none}.hero-orb{position:absolute;border-radius:0;filter:blur(80px);opacity:.1;animation:float 12s ease-in-out infinite}.hero-orb:nth-child(1){width:400px;height:400px;background:var(--accent);top:-10%;right:-5%;animation-delay:0s}.hero-orb:nth-child(2){width:300px;height:300px;background:var(--accent-2);bottom:-15%;left:10%;animation-delay:-4s}.hero-orb:nth-child(3){width:200px;height:200px;background:var(--accent-3);top:40%;left:50%;animation-delay:-8s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}::view-transition-old(root){animation:fade-in .15s ease reverse}::view-transition-new(root){animation:fade-in .15s ease}::view-transition-old(site-header),::view-transition-new(site-header),::view-transition-old(site-footer),::view-transition-new(site-footer){animation:none;mix-blend-mode:normal}::view-transition-old(page-content){animation:fade-in .15s ease reverse}::view-transition-new(page-content){animation:slide-up .25s ease}[data-filter-tag]:before{content:"#";color:var(--accent);margin-right:3px}.status-badge,.kind-badge{color:var(--muted);background:transparent;border-color:rgba(var(--accent-rgb),.4)}.status-badge:hover,.kind-badge:hover{color:var(--accent)!important;background:rgba(var(--accent-rgb),.08)!important;border-color:rgba(var(--accent-rgb),.58)!important}.hero-keywords span{position:relative;overflow:hidden;pointer-events:none}.tag-entry:hover:after,.nav-links a:hover:after,.nav-links a[aria-current=page]:after,.pill-link:hover:after,a.tag:hover:after,.eyebrow-links a:hover:after,.button.secondary:hover:after,.metric-chip:hover:after,.opensource-github-link:hover:after,.notes-filter-chip:hover:after,.notes-filter-chip[data-active=true]:after,.cmd-k-close:hover:after,.cmd-k-item[data-selected=true]:after,.cmd-k-item:hover:after,.resume-links a:hover:after{inset:var(--highlight-inset-compact);background:var(--highlight-fill);z-index:-1}.topic-rail-item:hover:after,.topic-entry-card:hover:after,.signature-card:hover:after,.workflow-card:hover:after,.related-item:hover:after{inset:var(--highlight-inset);background:var(--highlight-fill);z-index:-1}.tag,.cmd-k-type,.signature-kind,.resume-links a,.skill-cloud a,.skill-cloud span,.status,.workflow-step,.opensource-star{border-color:rgba(var(--accent-rgb),.38);background:transparent}.tag{border-color:var(--card-tag-border);background:var(--card-tag-bg)}.tag-entry,.nav-links a,.pill-link,.tag,.eyebrow-links a,.button.secondary,.metric-chip,.opensource-github-link,.notes-filter-chip,.resume-links a,.card,.topic-rail-item,.topic-entry-card,.signature-card,.workflow-card,.related-item{isolation:isolate}.tag-entry:hover,.nav-links a:hover,.nav-links a[aria-current=page],.pill-link:hover,a.tag:hover,.eyebrow-links a:hover,.button.secondary:hover,.metric-chip:hover,.opensource-github-link:hover,.notes-filter-chip:hover,.notes-filter-chip[data-active=true],.resume-links a:hover,.card[data-card-link]:hover,a.card:hover,.topic-rail-item:hover,.topic-entry-card:hover,.signature-card:hover,.workflow-card:hover,.related-item:hover{color:var(--highlight-text)!important;border-color:var(--accent)!important}.tag-entry:hover *,.nav-links a:hover *,.nav-links a[aria-current=page] *,.pill-link:hover *,a.tag:hover *,.eyebrow-links a:hover *,.button.secondary:hover *,.metric-chip:hover *,.opensource-github-link:hover *,.notes-filter-chip:hover *,.notes-filter-chip[data-active=true] *,.resume-links a:hover *,.card[data-card-link]:hover *,a.card:hover *,.topic-rail-item:hover *,.topic-entry-card:hover *,.signature-card:hover *,.workflow-card:hover *,.related-item:hover *{color:inherit!important}.notes-filter-head a[data-active=true],.sort-chip[data-active=true],.notes-filter-chip[data-filter-status=待规划][data-active=true],.notes-filter-chip[data-filter-status=进行中][data-active=true],.notes-filter-chip[data-filter-status=已完成][data-active=true],.status-badge:hover,.kind-badge:hover{color:var(--highlight-text)!important;background:var(--highlight-fill)!important;border-color:var(--accent)!important}.card[data-card-link]:has(.meta-link:hover):after{background:transparent!important}.card[data-card-link]:has(.meta-link:hover){border-color:var(--line)!important}.card[data-card-link]:has(.meta-link:hover) h3,.card[data-card-link]:has(.meta-link:hover) h3 a{color:#2d5a67!important}.card[data-card-link]:has(.meta-link:hover) p,.card[data-card-link]:has(.meta-link:hover) .meta,.card[data-card-link]:has(.meta-link:hover) .meta-item{color:var(--muted)!important}.card[data-card-link]:has(.meta-link:hover) .meta-link{color:var(--accent)!important}.card[data-card-link]:hover .tag,a.card:hover .tag{color:var(--card-tag-color)!important;border-color:var(--card-tag-border)!important;background:var(--card-tag-bg)!important}.card[data-card-link]:hover a.tag:hover,a.card:hover a.tag:hover{color:var(--accent)!important;border-color:var(--accent)!important}.notes-filter-chip{border-color:rgba(var(--accent-rgb),.32);background:transparent}.notes-filter-chip:hover,.notes-filter-chip[data-active=true]{border-color:rgba(var(--accent-rgb),.5)}.nav-links a,.profile-panel,.card,.metric,.toc-panel,.metric-chip,.topic-rail-item,.notes-filter-panel,.resume-card,.tl-card,.related-item,.comment-preview-item,.opensource-star,.opensource-github-link,.meta-link,.notes-filter-head a{background:transparent}.status-badge:before,.kind-badge:before{content:"[ "}.status-badge:after,.kind-badge:after{content:" ]"}.card.opensource-card[data-card-link]:hover h3{color:var(--accent)!important}.card.opensource-card[data-card-link]:hover p,.card.opensource-card[data-card-link]:hover .opensource-star{color:var(--muted)!important}.card.opensource-card[data-card-link]:hover .opensource-github-link{color:var(--muted)!important;border-color:rgba(var(--accent-rgb),.38)!important}.card.opensource-card[data-card-link]:hover .opensource-github-link:hover,.card.opensource-card[data-card-link]:hover .tag:hover{color:var(--accent)!important;border-color:var(--accent)!important}@media(max-width:820px){main:has(.notes-filter-toggle),main:has(.article-toc-floating){z-index:2}main:has(.notes-filter[data-open=true]){z-index:100}main:has(.article-toc-floating[open]){z-index:100}.notes-filter-backdrop{z-index:1000}.notes-filter,.notes-filter-panel,.notes-filter-head{background:#fff!important;opacity:1}.notes-filter{z-index:1020;display:flex;flex-direction:column;padding:0!important;overflow:hidden;background-clip:padding-box;box-shadow:0 12px 32px #0f172a24}.notes-filter-panel{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 12px 12px!important;overscroll-behavior:contain}.notes-filter-head{top:0;z-index:3;margin:0 -12px;padding:12px 12px 9px!important;box-shadow:0 1px #9eb1c724}.notes-filter-toggle{z-index:1030;background:#fff!important}}@media(max-width:480px){.notes-filter-panel{padding:0 10px 10px!important}.notes-filter-head{margin:0 -10px;padding:10px 10px 8px!important}}.taxonomy-card-head .kind-badge{border-color:rgba(var(--accent-rgb),.4);background:transparent;box-shadow:none}.note-card-head .status-badge{border:0;background:transparent;box-shadow:none;cursor:default}.note-card-head .status-badge:hover{color:var(--muted)!important;border-color:transparent!important;background:transparent!important}.taxonomy-card-head .status-badge{min-height:0;padding:0;line-height:1.2}.taxonomy-card-head a.kind-badge{transition:color .14s ease,border-color .14s ease,background-color .14s ease}.taxonomy-card-head a.kind-badge:hover{color:var(--accent)!important;border-color:var(--accent)!important;background:var(--highlight-fill)!important;text-decoration:none}.taxonomy-card-head a.kind-badge:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}.tl-publication-card{--publication-meta-size: .9rem;display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:var(--timeline-card-padding-y) var(--timeline-card-padding-x)}.tl-publication-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;color:var(--muted);font-family:var(--font-body);font-size:var(--publication-meta-size);line-height:1.2}.tl-publication-source{display:flex;flex:1 1 auto;align-items:center;gap:8px;min-width:0}.tl-publication-type{display:inline-grid;flex:0 0 auto;place-items:center;width:28px;height:28px;border:1px solid rgba(var(--accent-rgb),.38);color:var(--accent);background:transparent;font-family:var(--font-mono);font-size:.78rem;font-weight:800;line-height:1}.tl-publication-meta .tl-publication-badge{min-width:0;max-width:none;min-height:0;padding:0;overflow:hidden;color:var(--accent);font-size:inherit;font-weight:var(--timeline-body-weight);line-height:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap}.tl-publication-meta .tl-publication-badge:before{content:"[ ";opacity:.4}.tl-publication-meta .tl-publication-badge:after{content:" ]";opacity:.4}.tl-publication-date{flex:0 0 auto;color:var(--muted);font-size:inherit;font-weight:var(--timeline-body-weight);letter-spacing:.3px;line-height:inherit;white-space:nowrap}.tl-publication-date:before{content:"[ ";opacity:.4}.tl-publication-date:after{content:" ]";opacity:.4}.tl-publication-content{display:grid;gap:10px;min-width:0}.tl-publication-card .tl-publication-title{margin:0;padding:0;font-size:var(--timeline-publication-title-size);font-weight:var(--timeline-title-weight);line-height:1.4;text-align:left;text-align-last:auto}.tl-publication-card .tl-publication-journal{margin:-2px 0 0;color:var(--accent);font-size:.82rem;font-weight:var(--timeline-body-weight);line-height:1.35}.tl-publication-authors{flex:1 1 auto;min-width:0;margin:0;color:var(--muted);font-size:.82rem;line-height:1.55}.tl-publication-author-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.tl-publication-author.is-self{color:inherit;font-weight:800}.tl-publication-author.is-corresponding sup{margin-left:1px;color:var(--accent);font-size:.72em}.tl-publication-author.is-ellipsis{color:var(--muted);letter-spacing:.08em}.tl-publication-author-name-compact{display:none}.tl-publication-doi{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid rgba(var(--accent-rgb),.35);color:var(--accent);text-decoration:none;isolation:isolate}.tl-publication-doi:hover{border-color:var(--accent);color:var(--accent-3)}.tl-publication-doi:hover:after{content:"";position:absolute;inset:var(--highlight-inset-compact);z-index:-1;background:var(--highlight-fill)}.tl-publication-doi svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media(max-width:720px){.tl-education-card{column-gap:12px}.tl-publication-card{--publication-meta-size: .72rem;gap:7px;padding:12px}.tl-publication-meta{gap:10px}.tl-publication-source{gap:6px}.tl-publication-type{width:24px;height:24px;font-size:.68rem}.tl-publication-content,.tl-publication-author-row{gap:8px}.tl-publication-authors{font-size:.7rem;line-height:1.45}.tl-publication-card .tl-publication-journal{font-size:.7rem}.tl-publication-author-name-full{display:none}.tl-publication-author-name-compact{display:inline}.tl-publication-doi{width:28px;height:28px}.tl-publication-doi svg{width:14px;height:14px}}@media(max-width:480px){.tl-education-card{column-gap:10px}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
