:root{--bezel: #f3f3f1;--panel: #ffffff;--well: #f7f7f5;--panel-hover: #fbfbfa;--ink: #1d1d1f;--ink-2: #4f4f52;--ink-3: #767679;--hairline: rgba(29, 29, 31, .13);--hairline-strong: rgba(29, 29, 31, .27);--accent: #0071e3;--header-material: rgba(255, 255, 255, .72);--control-bg: rgba(247, 247, 245, .84);--panel-shadow: 0 1px 2px rgba(29, 29, 31, .05), 0 24px 54px -36px rgba(29, 29, 31, .28);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme]){--bezel: #141312;--panel: #1d1d1a;--well: #252522;--panel-hover: #2a2a27;--ink: #f3f3ef;--ink-2: #c2c2ba;--ink-3: #95958d;--hairline: rgba(255, 255, 255, .16);--hairline-strong: rgba(255, 255, 255, .28);--accent: #93b0ff;--header-material: rgba(29, 29, 26, .72);--control-bg: rgba(37, 37, 34, .84);--panel-shadow: 0 1px 6px rgba(0, 0, 0, .45), 0 28px 56px -36px rgba(0, 0, 0, .72);color-scheme:dark}}:root[data-theme=light]{--bezel: #f3f3f1;--panel: #ffffff;--well: #f7f7f5;--panel-hover: #fbfbfa;--ink: #1d1d1f;--ink-2: #4f4f52;--ink-3: #767679;--hairline: rgba(29, 29, 31, .13);--hairline-strong: rgba(29, 29, 31, .27);--accent: #0071e3;--header-material: rgba(255, 255, 255, .72);--control-bg: rgba(247, 247, 245, .84);--panel-shadow: 0 1px 2px rgba(29, 29, 31, .05), 0 24px 54px -36px rgba(29, 29, 31, .28);color-scheme:light}:root[data-theme=dark]{--bezel: #141312;--panel: #1d1d1a;--well: #252522;--panel-hover: #2a2a27;--ink: #f3f3ef;--ink-2: #c2c2ba;--ink-3: #95958d;--hairline: rgba(255, 255, 255, .16);--hairline-strong: rgba(255, 255, 255, .28);--accent: #93b0ff;--header-material: rgba(29, 29, 26, .72);--control-bg: rgba(37, 37, 34, .84);--panel-shadow: 0 1px 6px rgba(0, 0, 0, .45), 0 28px 56px -36px rgba(0, 0, 0, .72);color-scheme:dark}*{box-sizing:border-box}html{background:var(--bezel);scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--bezel);color:var(--ink);font-family:SF Pro Text,SF Pro Display,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;font-weight:400;font-kerning:normal;font-optical-sizing:auto;font-synthesis:none;letter-spacing:-.15px;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.locale-zh{display:none}:root[data-locale=zh] .locale-en{display:none}:root[data-locale=zh] .locale-zh{display:inline}.site-shell{padding:16px}.site-panel{width:min(100%,1160px);min-height:calc(100svh - 32px);margin:0 auto;overflow:clip;border:1px solid var(--hairline);border-radius:20px;background:var(--panel);box-shadow:var(--panel-shadow)}.site-header{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:auto 1fr auto;align-items:center;min-height:60px;padding:0 32px;border-bottom:1px solid var(--hairline);background:var(--header-material);backdrop-filter:blur(20px) saturate(160%)}.wordmark{color:var(--ink);font-size:13px;font-weight:500;line-height:1.2}.wordmark span{color:var(--accent)}.site-nav{display:flex;justify-content:center;gap:20px;color:var(--ink-3);font-size:13px;font-weight:400;line-height:1.2}.site-nav a,.site-footer a,.text-link{transition:color .15s ease}.site-nav a:hover,.site-footer a:hover,.text-link:hover{color:var(--accent)}.site-nav a:focus-visible,.site-footer a:focus-visible,.text-link:focus-visible{color:var(--accent);outline:1px solid var(--accent);outline-offset:4px}.site-controls,.locale-switch{display:flex;align-items:center}.site-controls{min-height:32px;padding:3px;border:1px solid var(--hairline);border-radius:9px;background:var(--control-bg);box-shadow:inset 0 1px #ffffff38}.locale-switch{gap:1px}.control-button{min-height:24px;padding:0 7px;border:0;border-radius:6px;background:transparent;color:var(--ink-3);cursor:pointer;font-size:12px;font-weight:400;letter-spacing:-.15px;line-height:1;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.control-button[data-active=true]{background:var(--panel);box-shadow:0 1px 2px #1d1d1f14;color:var(--ink);font-weight:500}.control-button:hover{color:var(--ink)}.control-button:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.control-divider{width:1px;height:16px;margin:0 2px;background:var(--hairline)}.control-theme{min-width:38px}.hero{display:grid;min-height:378px;padding:88px 48px 52px;align-content:space-between;border-bottom:1px solid var(--hairline)}.eyebrow,.project-number,.project-type,.project-count,.site-footer{color:var(--ink-3);font-size:12px;font-weight:400;line-height:1.35}.eyebrow{margin:0}.hero h1{max-width:560px;margin:48px 0;color:var(--ink);font-size:24px;font-weight:500;line-height:1.08}.hero-lower{display:grid;grid-template-columns:minmax(0,470px) auto;align-items:end;justify-content:space-between;gap:24px}.hero-lower p{margin:0;color:var(--ink-2);font-size:14px;font-weight:400;line-height:1.55}.text-link{display:inline-flex;align-items:center;justify-self:end;gap:8px;color:var(--ink);font-size:13px;font-weight:500;line-height:1.35;white-space:nowrap}.text-link span{color:var(--accent);font-size:14px}.work-section{padding:72px 48px 88px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.section-heading h2{margin:10px 0 0;color:var(--ink);font-size:24px;font-weight:500;line-height:1.08}.project-count{margin:0 1px 2px 0;font-variant-numeric:tabular-nums}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;min-height:320px;padding:24px;overflow:hidden;border:1px solid var(--hairline);border-radius:14px;background:var(--well);box-shadow:inset 0 1px 2px #1d1d1f0b;color:var(--ink);transform-origin:center;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;touch-action:manipulation}.project-card:hover{border-color:var(--hairline-strong);background:var(--panel-hover)}.project-card:focus-within{border-color:var(--accent);outline:none;box-shadow:0 1px 2px #1d1d1f14,0 10px 20px -14px color-mix(in srgb,var(--accent) 68%,transparent)}.project-card-head,.project-card-foot{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px}.project-number,.project-type{font-variant-numeric:tabular-nums}.project-visit{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--hairline);border-radius:7px;background:var(--panel);color:var(--ink);font-size:14px;font-weight:400;line-height:1;transition:border-color .15s ease,color .15s ease}.project-card:hover .project-visit,.project-visit:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--hairline));color:var(--accent)}.project-visit:focus-visible{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:3px}.project-card-content{position:relative;z-index:1;align-self:center;padding:32px 0}.project-card h3{margin:0;color:var(--ink);font-size:24px;font-weight:500;line-height:1.08}.project-summary,.project-detail,.project-focus{margin:0}.project-summary{margin-top:14px;color:var(--ink-2);font-size:14px;font-weight:400;line-height:1.5}.project-detail{margin-top:8px;color:var(--ink-3);font-size:13px;font-weight:400;line-height:1.5}.project-disclosure{position:relative;z-index:1;border-top:1px solid var(--hairline)}.project-details-toggle{display:flex;width:100%;min-height:38px;align-items:center;justify-content:space-between;gap:12px;padding:0;border:0;background:transparent;color:var(--ink-3);cursor:pointer;font-size:13px;font-weight:400;letter-spacing:-.15px;line-height:1.35;text-align:left;transition:color .15s ease}.project-details-toggle:hover,.project-details-toggle[aria-expanded=true]{color:var(--ink)}.project-details-toggle:focus-visible{color:var(--accent);outline:1px solid var(--accent);outline-offset:2px}.project-details-label{font-weight:500}.project-details-chevron{flex:0 0 auto}.project-details-panel{overflow:hidden}.project-details-body{padding:2px 0}.project-details-overview{margin:0;color:var(--ink-2);font-size:13px;font-weight:400;line-height:1.5}.project-details-list{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.project-details-list li{display:grid;grid-template-columns:4px minmax(0,1fr);gap:8px;color:var(--ink-3);font-size:12px;font-weight:400;line-height:1.5}.project-details-list li:before{width:3px;height:3px;margin-top:7px;border-radius:999px;background:var(--accent);content:""}.project-readme-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;color:var(--ink);font-size:13px;font-weight:500;line-height:1.35;transition:color .15s ease}.project-readme-link span{color:var(--accent);font-size:14px}.project-readme-link:hover,.project-readme-link:focus-visible{color:var(--accent)}.project-readme-link:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.project-focus{color:var(--ink-3);font-size:12px;font-weight:400;line-height:1.35;text-align:right}.project-card-foot{margin-top:18px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 48px;border-top:1px solid var(--hairline)}.site-footer p{margin:0}.site-footer div{display:flex;gap:20px}@media(max-width:760px){.site-shell{padding:8px}.site-panel{min-height:calc(100svh - 16px);border-radius:16px}.site-header{min-height:56px;padding:0 16px}.site-nav{gap:12px}.site-controls{padding:2px}.control-button{padding:0 5px}.control-divider{margin:0 1px}.control-theme{min-width:34px}.hero{min-height:346px;padding:64px 20px 32px}.hero h1{margin:36px 0}.hero-lower{grid-template-columns:1fr;align-items:start;gap:20px}.text-link{justify-self:start}.work-section{padding:56px 20px 64px}.section-heading{margin-bottom:24px}.project-grid{grid-template-columns:1fr;gap:10px}.project-card{min-height:292px;padding:20px}.project-card-foot{align-items:flex-end}.project-focus{max-width:180px}.site-footer{align-items:flex-start;flex-direction:column;padding:24px 20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-reduced-transparency:reduce){.site-header{background:var(--panel);backdrop-filter:none}}
