@font-face{font-family:Instrument Sans Variable;font-style:normal;font-weight:400 700;font-display:optional;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Fallback;font-style:normal;font-weight:400;src:local(Arial),local(ArialMT);size-adjust:102.01%;ascent-override:95.09%;descent-override:24.51%;line-gap-override:0%;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Fallback;font-style:normal;font-weight:500;src:local(Arial),local(ArialMT);size-adjust:104.66%;ascent-override:92.68%;descent-override:23.89%;line-gap-override:0%;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Fallback;font-style:normal;font-weight:600 700;src:local(Arial Bold),local(Arial-BoldMT);size-adjust:98.65%;ascent-override:98.32%;descent-override:25.34%;line-gap-override:0%;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Name Serif;font-style:normal;font-weight:600;font-display:block;src:url(/fonts/name-serif-600.woff2)format("woff2");unicode-range:U+674E,U+4F73,U+9E23}:root{color-scheme:light;--t1:13.5px;--t2:15px;--t3:16.5px;--t4:18px;--t5:20px;--t6:36px;--t7:44px;--paper:#f4f5f6;--ink:#15171b;--body:#33373e;--muted:#5f6670;--icon:#848b94;--line:#dfe2e6;--line-2:#bcc2c9;--tag:#e7e9ec;--signal:#1f7a5c;--path:#2357c0;--m-branchat:#dfe6f3;--m-perch:#e3e4ee;--m-mundus:#e6dcc6;--m-sdeck-overflow:#ece5dc;--m-nbti:#ece4d6;--shot-filter:drop-shadow(0 0 .5px #00000047) drop-shadow(0 10px 18px #161c281f);--font-body:"Instrument Sans Variable", "Instrument Sans Fallback", "PingFang SC", "Microsoft YaHei", sans-serif;--font-system-zh:system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;--font-name:"Name Serif", "Songti SC", "Noto Serif SC", serif;--page-width:1200px;--header-height:60px}:root[data-locale=zh]{--font-body:"Instrument Sans Variable", "Instrument Sans Fallback", "Noto Sans SC Subset", "PingFang SC", "Microsoft YaHei", sans-serif}:root[data-theme=dark]{color-scheme:dark;--paper:#101215;--ink:#eceef1;--body:#d0d4da;--muted:#9aa1ab;--icon:#6f7681;--line:#262a30;--line-2:#434952;--tag:#1d2126;--signal:#5cc4a0;--path:#8ab4ff;--m-branchat:#1c2230;--m-perch:#1f2029;--m-mundus:#26231b;--m-sdeck-overflow:#27221d;--m-nbti:#25221d;--shot-filter:brightness(.8) drop-shadow(0 0 .5px #0009) drop-shadow(0 10px 18px #00000059)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px);background:var(--paper);-webkit-text-size-adjust:100%}body{color:var(--body);background:var(--paper);font-family:var(--font-body);font-size:var(--t2);font-variant-numeric:tabular-nums;font-synthesis:none;-webkit-font-smoothing:antialiased;margin:0;font-weight:400;line-height:1.6}:root[data-locale=zh] body{letter-spacing:.01em;text-spacing-trim:trim-start;line-height:1.75}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-body);letter-spacing:0;text-wrap:balance;font-weight:600;line-height:1.3}p{text-wrap:pretty}strong,b{font-weight:600}em{font-style:italic}:root[data-locale=zh] em{font-style:normal;font-weight:600}::selection{color:var(--paper);background:var(--ink)}a{color:inherit;text-decoration:none}.text-link,main a:not([class]){color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:.28em;text-decoration-thickness:1px;transition:text-decoration-color .15s}.text-link:hover,main a:not([class]):hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--path);outline-offset:3px;border-radius:4px}.page-width{width:min(var(--page-width), calc(100% - 48px));margin-left:auto;margin-right:auto}.nw{white-space:nowrap}.sep{color:var(--icon);margin:0 .4em;font-family:Instrument Sans Variable,Instrument Sans Fallback,sans-serif;font-weight:600}.live-dot{background:var(--signal);vertical-align:.2em;border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:50;color:var(--paper);background:var(--ink);font-size:var(--t1);border-radius:6px;padding:8px 12px;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.capsule{color:var(--ink);border:1px solid var(--line-2);font-size:var(--t1);border-radius:14px;padding:4px 11px;line-height:18px}.tag{color:var(--muted);background:var(--tag);font-size:var(--t1);border-radius:4px;padding:1px 7px;line-height:22px}.site-header{z-index:30;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{height:var(--header-height);justify-content:space-between;align-items:center;gap:16px;display:flex}.site-header nav{gap:4px;margin-left:-10px;display:flex}.site-header nav a{color:var(--muted);font-size:var(--t2);border-radius:8px;padding:5px 10px;transition:color .15s,background-color .15s}.site-header nav a:hover{color:var(--ink)}.site-header nav a[aria-current]{color:var(--ink);background:var(--tag)}.header-actions{white-space:nowrap;flex:none;align-items:center;gap:4px;display:flex}.theme-toggle,.locale-toggle{cursor:pointer;min-width:34px;height:34px;color:var(--body);font:400 var(--t1)/1 var(--font-body);background:0 0;border:0;border-radius:8px;place-items:center;padding:0 8px;transition:background-color .15s,color .15s;display:inline-grid}.theme-toggle:hover,.locale-toggle:hover{color:var(--ink);background:var(--tag)}.locale-toggle:lang(zh){font-family:var(--font-system-zh)}.resume-download{height:34px;color:var(--paper);background:var(--ink);font-size:var(--t1);border-radius:8px;align-items:center;gap:7px;margin-left:6px;padding:0 6px 0 11px;font-weight:600;transition:opacity .15s;display:inline-flex}.resume-download:hover{opacity:.88}:root[data-theme=dark] .resume-download{background:var(--body)}.resume-download svg{flex:none}.file-type{border:1px solid color-mix(in srgb, var(--paper) 38%, transparent);height:20px;font-size:var(--t1);border-radius:5px;place-items:center;padding:0 5px;font-weight:600;line-height:1;display:inline-grid}.language-tag{display:none}.site-footer{border-top:1px solid var(--line)}.footer-inner{min-height:72px;color:var(--muted);font-size:var(--t1);align-items:center;display:flex}.back-to-top{right:max(16px, calc((100% - var(--page-width)) / 2));z-index:20;color:var(--body);background:var(--paper);border:1px solid var(--line);font-size:var(--t1);opacity:0;visibility:hidden;pointer-events:none;border-radius:8px;padding:6px 10px;transition:opacity .16s,visibility .16s,transform .16s;position:fixed;bottom:16px;transform:translateY(6px)}.back-to-top.visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{color:var(--ink);border-color:var(--line-2)}@media (width<=639px){:root{--header-height:52px}.page-width{width:calc(100% - 32px)}.header-inner{gap:8px}.site-header nav{gap:0;margin-left:-8px}.site-header nav a{padding:5px 8px}.header-actions{gap:2px}.theme-toggle,.locale-toggle{min-width:32px;height:32px;padding:0 6px}.resume-download{gap:6px;height:32px;margin-left:4px;padding:0 5px 0 9px}.back-to-top{right:16px}}@media (width<=560px){.file-type{display:none}.resume-language{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.language-tag{display:inline-grid}}@media (width<=359px){.site-header nav a{padding:5px 6px}.resume-download svg{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root,:root[data-theme=dark]{color-scheme:light;--paper:#fff;--ink:#000;--body:#222;--muted:#555;--icon:#888;--line:#ccc;--line-2:#999;--tag:#eee;--m-branchat:#dfe6f3;--m-perch:#e3e4ee;--m-mundus:#e6dcc6;--m-sdeck-overflow:#ece5dc;--m-nbti:#ece4d6;--shot-filter:none}body{font-size:12pt}.site-header{border-bottom:0;position:static}.header-actions,.back-to-top,.skip-link,[data-print-hide],video{display:none!important}.print-cover{display:block!important}main a[href^=http]:after{content:" (" attr(href) ")";color:var(--muted);font-size:var(--t1);overflow-wrap:anywhere;font-weight:400}main .citation a:after{content:none}img,figure,video,.project-media,.video-frame{break-inside:avoid}h2,h3{break-after:avoid}}
