@charset "UTF-8";
:root{--bg:#101210;--surface:#191c18;--surface-2:#20251e;--ink:#f2f4ee;--muted:#afb6a7;--line:#343b30;--accent:#c2ef67;--blue:#3359dc;--max:1240px;--body:Arial,"Helvetica Neue","PingFang TC","Noto Sans CJK TC","Microsoft JhengHei",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.75 var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--bg)}[hidden]{display:none!important}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}h1,h2,h3,h4{font-weight:650;text-wrap:balance}ul,ol{padding:0}img{max-width:100%;display:block}.container{width:min(var(--max),calc(100% - 112px));margin-inline:auto}.section{padding-block:112px}.eyebrow{font:500 .8125rem/1.6 var(--mono);letter-spacing:.09em;color:var(--muted)}.section-number{color:var(--accent);padding-right:20px}.skip-link{position:fixed;left:1rem;top:-8rem;background:var(--accent);color:var(--bg);padding:1rem;z-index:100}.skip-link:focus{top:1rem}
.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:rgba(16,18,16,.96);backdrop-filter:blur(16px)}.header-inner{display:flex;align-items:center;min-height:88px;gap:36px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:.875rem;font-weight:700;letter-spacing:.04em;line-height:1.4}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--accent);color:var(--bg);font-size:1.5rem;font-weight:800;letter-spacing:-.08em;border-radius:2px}.brand-sub{display:block;color:var(--muted);font-weight:400;font-size:.75rem;letter-spacing:.14em;margin-top:2px}.navigation{display:flex;margin-left:auto;gap:30px;font-size:.875rem}.navigation a{position:relative;padding:10px 0;color:#d4dacf}.navigation a:hover{color:var(--accent)}.language-link{font-size:.8125rem;border:1px solid #4b5543;border-radius:4px;padding:7px 12px;white-space:nowrap}.language-link:hover{background:var(--surface-2)}
.hero{padding-top:43px}.hero-topline{display:flex;justify-content:space-between;gap:24px;align-items:center}.location{font:400 .8125rem/1.5 var(--mono);color:var(--muted);white-space:nowrap}.nameplate{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:clamp(5rem,11.1vw,10.3rem);font-weight:850;line-height:1.15;letter-spacing:-.065em;margin:24px 0 40px;user-select:none}.nameplate-outline{color:var(--bg);-webkit-text-stroke:1px #88947b}.name-period{color:var(--accent);-webkit-text-stroke:0}.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:100px;align-items:start}.hero-copy h1{font-size:clamp(2.1rem,3.55vw,3.1rem);letter-spacing:-.03em;line-height:1.36}.hero-copy>p{font-size:1rem;color:var(--muted);max-width:38rem;margin-top:24px;line-height:1.95}.hero-actions{display:flex;gap:12px;margin-top:29px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 24px;border:1px solid transparent;border-radius:4px;font-size:.875rem;font-weight:600;transition:background .18s,color .18s}.button-primary{background:var(--accent);color:var(--bg)}.button-primary:hover{background:#d6ff87}.button-secondary{border-color:#505b45;color:var(--ink)}.button-secondary:hover{background:var(--surface-2)}.focus-panel{border:1px solid #3b4830;background:var(--surface);padding:27px 30px 16px;border-radius:5px;position:relative;margin-top:8px}.focus-panel::before{content:"";display:block;height:3px;width:48px;background:var(--accent);position:absolute;top:-2px;left:30px}.focus-panel>.eyebrow{color:var(--accent)}.focus-panel h2{font-size:1.375rem;line-height:1.45;letter-spacing:-.02em;margin:17px 0 12px}.focus-panel p{font-size:.9375rem;color:var(--muted);line-height:1.85;max-width:26rem}.focus-tags{display:flex;flex-direction:column;gap:9px;margin-top:22px}.focus-tags span{font-size:.875rem;display:flex;gap:18px}.focus-tags b{font:400 .75rem/1.8 var(--mono);color:#99a18f}.focus-footer{display:flex;justify-content:space-between;margin-top:23px;padding-top:13px;border-top:1px solid var(--line);font:.75rem/1.6 var(--mono);color:var(--muted)}.fact-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,5rem),1fr));border-block:1px solid var(--line);margin-top:64px;padding-block:28px;gap:24px}.fact-strip>div{display:flex;align-items:center;gap:20px;padding-right:20px;border-right:1px solid var(--line)}.fact-strip>div:last-child{border:0}.fact-strip dt{font-size:2rem;letter-spacing:-.04em;line-height:1.3}.fact-strip dd{font-size:.8125rem;color:var(--muted)}
.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:25px}.section h2{font-size:clamp(1.85rem,3.2vw,2.8rem);line-height:1.4;letter-spacing:-.035em;margin-top:18px}.text-link{font-size:.875rem;border-bottom:1px solid #687658;padding-bottom:4px;white-space:nowrap}.text-link:hover{color:var(--accent);border-color:var(--accent)}.section-intro{color:var(--muted);max-width:45rem;margin-top:20px}.work-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:32px 0 28px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filters button{border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--muted);padding:8px 16px;font-size:.875rem;min-height:44px}.filters button[aria-pressed="true"]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.filters button:hover{border-color:var(--accent)}.project-count{color:var(--muted);font:.8125rem/1.6 var(--mono);white-space:nowrap}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start;margin-top:28px}.project-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface);scroll-margin-top:110px;transition:border-color .2s}.project-card:hover{border-color:#687658}.project-visual{height:282px;overflow:hidden;position:relative;padding:27px 30px}.visual-caption{font:.6875rem/1.5 var(--mono);letter-spacing:.09em}.service-visual{background:#3359dc;color:#fff}.service-heading{font-size:3.75rem;font-weight:700;letter-spacing:-.055em;line-height:1.03;margin-top:19px}.service-heading em{font-style:normal;color:#c6d1ff}.service-modules{position:absolute;right:27px;top:85px;display:flex;flex-direction:column;gap:10px}.service-modules span{background:rgba(255,255,255,.1);border:1px solid #8599ea;min-width:108px;padding:11px 18px;border-radius:3px;font-size:.8125rem;text-align:center}.service-bottom{display:flex;gap:22px;font:.75rem/1.5 var(--mono);margin-top:23px;color:#dfe6ff}.retrieval-visual{background:#242d20;color:#e9f1e4}.retrieval-visual .visual-caption{color:#b2cda1}.retrieval-stack{margin-top:22px}.retrieval-stack>div{display:flex;align-items:center;gap:15px;border-block-end:1px solid #556149;padding:12px 0;font-size:1rem}.retrieval-stack span{font:.75rem var(--mono);color:var(--accent)}.retrieval-stack b{margin-left:auto;font:.6875rem var(--mono);color:#b2c59f}.visual-footnote{display:block;font-size:.75rem;color:#b2c59f;margin-top:20px}.image-visual{padding:14px;background:#0a0b0a;display:flex;align-items:center;justify-content:center}.image-visual img{height:100%;width:100%;min-height:0;object-fit:contain}.template-visual{background:#272637;color:#f5f2ff}.template-visual .visual-caption{color:#c2bcdc}.template-title{font-size:2.7rem;font-weight:650;letter-spacing:-.05em;line-height:1.15;margin-top:25px}.template-title em{color:#c5b8ff;font-style:normal}.template-row{display:flex;gap:9px;margin-top:24px}.template-row span{font:.75rem/1.5 var(--mono);padding:5px 10px;border:1px solid #706781;border-radius:3px}.education-visual{background:#c3d3b5;color:#20261b}.education-visual .visual-caption{color:#414e35}.education-count{display:flex;align-items:baseline;gap:12px;margin-top:22px}.education-count strong{font-size:4.25rem;line-height:1;font-weight:700;letter-spacing:-.06em}.education-count span{font-size:1.15rem}.education-copy{margin-top:14px;font-size:1.6rem;font-weight:600;line-height:1.45;letter-spacing:-.03em}.project-body{padding:27px 30px 24px}.project-meta{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:.75rem;line-height:1.6}.project-meta>span:last-child{white-space:nowrap;font-family:var(--mono)}.project-body h3{font-size:1.7rem;line-height:1.25;letter-spacing:-.025em;margin-top:19px}.project-subtitle{font-size:1rem;margin-top:9px;color:#d9e0d2}.project-description{color:var(--muted);font-size:.9375rem;margin-top:16px;min-height:5.1em;line-height:1.8}.tags{display:flex;gap:7px;list-style:none;flex-wrap:wrap;margin-top:21px}.tags li{font:.75rem/1.6 var(--mono);padding:3px 9px;background:#242a20;border:1px solid #37412e;border-radius:3px;color:#b9c7aa}.project-details{margin-top:23px;border-top:1px solid var(--line)}.project-details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding-block:17px 10px;font-size:.875rem;font-weight:600}.project-details summary::-webkit-details-marker{display:none}.plus{position:relative;width:16px;height:16px;flex-shrink:0;margin-left:20px}.plus::before,.plus::after{content:"";position:absolute;background:var(--accent);left:0;top:7px;width:16px;height:1px}.plus::after{transform:rotate(90deg);transition:transform .15s}.project-details[open] .plus::after{transform:rotate(0)}.detail-content{padding:10px 0 20px;font-size:.9375rem;color:var(--muted)}.detail-content h4{color:var(--ink);font-size:.875rem;margin:18px 0 7px}.detail-content ul{padding-left:21px}.detail-content li+li{margin-top:6px}.project-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px}.source-note{font-size:.75rem;color:var(--muted);padding-top:5px}.org-link{text-decoration:underline;text-decoration-color:#687658;text-underline-offset:5px}.org-link:hover{color:var(--accent)}.repo-link{display:inline-block;color:var(--accent);font-size:.8125rem;padding-top:5px;border-bottom:1px solid transparent}.repo-link:hover{border-bottom-color:var(--accent)}
.experience{background:#171b15;border-block:1px solid var(--line)}.experience-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:100px}.experience-heading h2{max-width:20rem}.recognition{margin-top:47px;border-left:2px solid #718c46;padding-left:20px}.recognition>.eyebrow{font-size:.75rem}.recognition p{font-size:.9375rem;margin-top:10px;color:#d6e3c9}.recognition-team{display:block;color:var(--muted);font:.75rem/1.5 var(--mono);margin-top:12px}.timeline{list-style:none;border-left:1px solid #46513d;margin-left:6px;padding-left:32px}.timeline>li{position:relative;padding-bottom:44px}.timeline>li:last-child{padding-bottom:0}.timeline>li::before{content:"";position:absolute;left:-37px;top:8px;width:8px;height:8px;border:1px solid #b6cd97;background:#171b15}.time{font:.75rem/1.6 var(--mono);color:var(--muted);letter-spacing:.04em}.timeline h3{font-size:1.35rem;line-height:1.5;margin-top:12px}.timeline .role{font-size:.9375rem;color:var(--accent);margin-top:3px}.timeline p:not(.role){color:var(--muted);font-size:.9375rem;margin-top:15px;line-height:1.9}.timeline .tags{margin-top:16px}
.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:90px}.about-grid>div,.lab-note>div{min-width:0}.about h2{font-size:clamp(2.1rem,3.6vw,3.25rem);line-height:1.45}.about-prose{margin-top:30px;color:var(--muted)}.about-prose p{line-height:1.95}.about-prose p+p{margin-top:21px}.lab-note{display:flex;gap:18px;padding-top:25px;border-top:1px solid var(--line);margin-top:34px}.lab-note-symbol{font-size:1.75rem;color:var(--accent);line-height:1.1}.lab-note h3{font-size:.9375rem}.lab-note p{font-size:.875rem;color:var(--muted);margin-top:8px}.education-panel{padding-top:7px}.education-heading{border-bottom:1px solid var(--line);padding-bottom:25px}.education-heading h3{font-size:1.5rem;margin-top:13px;line-height:1.45}.education-heading p{color:var(--muted);font-size:.9375rem;margin-top:5px}.coursework{padding-block:26px;border-bottom:1px solid var(--line)}.coursework h4,.skills h4{font-size:.875rem;color:#dde6d2}.coursework ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;column-gap:20px;row-gap:8px;margin-top:16px;font-size:.875rem;color:var(--muted)}.coursework li{overflow-wrap:anywhere}.coursework li::before{content:"+";color:#7d9067;margin-right:9px}.current-courses{font-size:.8125rem;color:#b6c99f;margin-top:20px;line-height:1.7}.skills{padding-top:25px}.skills dl{margin-top:17px}.skills dl>div+div{margin-top:14px}.skills dt{font-size:.8125rem;color:var(--muted)}.skills dd{font:.8125rem/1.9 var(--mono);margin-top:3px;color:#dde6d2}
.sharing{padding-top:0}.sharing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:35px;gap:35px}.sharing-grid article{padding-top:27px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;min-width:0}.sharing-number{font:.8125rem/1.6 var(--mono);color:#b0ca8b}.sharing h3{font-size:1.125rem;line-height:1.6;margin-top:18px}.sharing article p{font-size:.9375rem;color:var(--muted);line-height:1.9;margin:15px 0 22px}.sharing-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:auto}.sharing-links .text-link{white-space:normal;overflow-wrap:anywhere}.sharing article .sharing-note{font-size:.875rem;line-height:1.8;color:#c5d7b2;margin:0 0 22px}.community-contact{color:var(--accent)}.contact{background:var(--accent);color:#17210d;padding-block:76px}.contact .eyebrow{color:#344821}.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}.contact h2{font-size:clamp(2.1rem,3.8vw,3.25rem);line-height:1.35;margin-top:16px}.contact-description{color:#36482a;font-size:.9375rem;margin-top:22px;max-width:34rem}.contact-actions{padding-left:15px}.email-link{font-size:clamp(1.125rem,2vw,1.6rem);font-weight:600;letter-spacing:-.025em;border-bottom:1px solid #6e9445;padding-bottom:7px;overflow-wrap:anywhere}.contact-buttons{display:flex;align-items:center;gap:20px;margin-top:28px;flex-wrap:wrap}.button-dark{background:#17210d;color:#e9f5da}.button-dark:hover{background:#2c4118}.copy-email{font-size:.8125rem;padding:10px 0;background:transparent;border:0;border-bottom:1px solid #749652;color:#253819;min-height:44px}.copy-status{font-size:.8125rem;min-height:24px;padding-top:8px}.social-links{display:flex;gap:25px;margin-top:13px}.social-links a{border-bottom-color:#749652}.contact a:focus-visible,.contact button:focus-visible{outline-color:#17210d}.social-links a:hover{color:#17210d}.site-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:96px;font-size:.75rem;color:var(--muted)}.site-footer a{padding:10px 0}.site-footer a:hover{color:var(--accent)}
@media(min-width:1550px){.nameplate{font-size:10.4rem}.hero-grid{gap:135px}}
@media(max-width:1100px){.container{width:calc(100% - 72px)}.hero-grid{gap:48px;grid-template-columns:1.15fr 1fr}.focus-panel{padding:25px 24px 16px}.nameplate{font-size:10.9vw}.experience-grid{gap:55px}.about-grid{gap:50px}.project-visual{height:250px;padding:24px}.image-visual{padding:10px}.service-heading{font-size:3.1rem}.service-modules{right:20px;top:88px}.service-modules span{min-width:88px;padding:9px 12px;font-size:.75rem}.service-bottom{margin-top:22px}.template-title{font-size:2.4rem}.retrieval-stack{margin-top:15px}.retrieval-stack>div{padding:10px 0}.visual-footnote{margin-top:14px}.fact-strip>div{gap:15px}.project-body{padding:25px 24px}.contact-grid{gap:30px}.contact-actions{padding:0}.brand-sub{font-size:.75rem}.navigation{gap:20px}.header-inner{gap:24px}}
@media(max-width:760px){html{scroll-padding-top:88px}.container{width:calc(100% - 40px)}.section{padding-block:72px}.header-inner{min-height:76px;gap:16px;flex-wrap:wrap}.brand{font-size:.75rem;gap:9px}.brand-mark{height:33px;width:33px;font-size:1.3rem}.brand-sub{font-size:.75rem}.navigation{gap:18px;margin-left:auto}.navigation a{font-size:.8125rem}.navigation a:nth-child(2),.navigation a:nth-child(3){display:none}.language-link{font-size:.75rem;padding:6px 9px}.hero{padding-top:26px}.hero-topline{align-items:flex-start;gap:18px}.hero-topline .eyebrow{font-size:.6875rem;max-width:70%;letter-spacing:.06em}.location{font-size:.6875rem}.nameplate{font-size:10.8vw;margin:26px 0 34px;gap:10px}.hero-grid{grid-template-columns:1fr;gap:38px}.hero-copy h1{font-size:2.15rem;line-height:1.4}.hero-copy>p{font-size:1rem;margin-top:20px;line-height:1.9}.hero-actions{margin-top:24px}.focus-panel{margin-top:0;padding:23px 24px 15px}.focus-panel h2{font-size:1.3rem;margin-top:12px}.focus-panel p{max-width:100%}.focus-tags{flex-direction:row;flex-wrap:wrap;gap:14px;margin-top:20px}.focus-tags span{font-size:.8125rem;gap:8px}.focus-footer{margin-top:19px}.fact-strip{margin-top:34px;gap:14px;padding-block:22px}.fact-strip>div{display:block;padding-right:8px}.fact-strip dt{font-size:1.75rem}.fact-strip dd{font-size:.75rem;line-height:1.65;margin-top:7px}.section-top{display:block}.section-top>.text-link{display:inline-block;margin-top:19px}.section h2{font-size:1.9rem}.section-intro{margin-top:19px;line-height:1.9}.work-controls{gap:10px;margin-top:26px;align-items:flex-start}.filters{gap:6px}.filters button{padding:7px 12px;font-size:.8125rem}.project-count{font-size:.75rem;padding-top:12px}.project-grid{grid-template-columns:1fr;gap:24px}.project-visual{height:260px}.service-heading{font-size:3.35rem}.service-modules{right:27px;top:87px}.service-bottom{margin-top:25px}.project-body{padding:25px 24px 21px}.project-description{min-height:0;font-size:1rem}.project-body h3{font-size:1.625rem}.project-meta{font-size:.75rem}.retrieval-stack>div{font-size:1rem}.template-title{font-size:2.7rem}.experience-grid{grid-template-columns:1fr;gap:39px}.experience-heading h2{max-width:100%}.recognition{margin-top:25px}.timeline{padding-left:26px}.timeline>li::before{left:-31px}.timeline>li{padding-bottom:35px}.timeline p:not(.role){font-size:1rem}.about-grid{grid-template-columns:1fr;gap:42px}.about h2{font-size:2.2rem}.about-prose{margin-top:24px}.education-panel{padding-top:0}.coursework ul{gap:8px 16px}.sharing{padding-top:0}.sharing-grid{grid-template-columns:1fr;gap:0;margin-top:25px}.sharing-grid article{padding:25px 0;display:block}.sharing h3{margin-top:9px;font-size:1.2rem}.sharing article p{margin:11px 0 16px;font-size:1rem}.contact{padding-block:57px}.contact-grid{grid-template-columns:1fr;gap:34px}.contact h2{font-size:2.35rem}.contact-actions{padding:0}.contact-description{font-size:1rem}.email-link{font-size:1.4rem}.contact-buttons{margin-top:23px}.site-footer{padding-block:24px;display:grid;grid-template-columns:1fr auto;gap:8px;min-height:auto}.site-footer>span:nth-child(2){grid-column:1;grid-row:2}.site-footer a{grid-column:2;grid-row:1/3}.eyebrow{font-size:.75rem}.visual-caption{font-size:.75rem}.visual-footnote{font-size:.75rem}.service-bottom{font-size:.75rem}}
@media(max-width:380px){.container{width:calc(100% - 32px)}.header-inner{gap:10px}.brand>span:last-child{font-size:.6875rem}.navigation{gap:12px}.language-link{padding:6px}.hero-topline .eyebrow{max-width:68%}.hero-copy h1{font-size:1.95rem}.work-controls{display:block}.project-count{padding:9px 0 0}.project-body{padding:24px 19px}.project-visual{padding:23px 19px}.image-visual{padding:10px}.service-heading{font-size:3rem}.service-modules{right:17px}.service-modules span{min-width:80px;padding-inline:9px}.template-title{font-size:2.4rem}.template-row{gap:6px}.template-row span{font-size:.6875rem;padding:5px 8px}.focus-tags{column-gap:11px}.focus-tags span{font-size:.75rem}.email-link{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{body{background:white;color:#111;font-size:11pt}.site-header,.hero-actions,.focus-panel,.work-controls,.project-visual,.contact,.site-footer,.skip-link{display:none!important}.container{width:100%}.section,.hero{padding:16px 0}.hero-grid,.experience-grid,.about-grid{display:block}.nameplate{font-size:60pt;margin:12px 0}.nameplate-outline{color:#111;-webkit-text-stroke:0}.name-period{color:#111}.hero h1{font-size:24pt}.project-grid{display:block}.project-card{background:none;margin:20px 0;break-inside:avoid;color:#111;border-color:#ccc}.project-body{padding:16px}.project-description{min-height:0}.experience{background:none;border-color:#ccc}.timeline{margin-top:20px}.timeline>li::before{background:white}.section h2{font-size:22pt}.fact-strip{margin-top:25px}.tags li{background:none;color:#333;border-color:#aaa}.eyebrow,.location,.time,.project-description,.hero-copy>p,.timeline p:not(.role),.about-prose,.fact-strip dd{color:#333}.role,.repo-link{color:#222!important}.sharing{display:none}.education-panel{margin-top:25px}details:not([open])>*:not(summary){display:none}}
