@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-thai-wght-normal-CtQSZ1tK.woff2) format("woff2-variations");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-latin-ext-wght-normal-DH1q_yQ5.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-thai-latin-wght-normal-Bi3VDbYN.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #fff;--surface: #fff;--surface-2: #f4f4f3;--ink: #1c1d1f;--ink-2: #36383b;--muted: #5f6368;--line: #e6e6e3;--line-strong: #d3d3cf;--accent: #1f5fbf;--accent-ink: #1f5fbf;--accent-soft: #eaf1fb;--good: #27704a;--good-soft: #e5f1e9;--font-display: "Inter Variable", "Noto Sans Thai Variable", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter Variable", "Noto Sans Thai Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius: 10px;--header-h: 56px;--gutter: clamp(20px, 4vw, 32px);--shadow: 0 1px 2px rgb(0 0 0 / .05);--ease: cubic-bezier(.2, .7, .2, 1);--bg: var(--paper);--bg-raise: var(--surface);--bg-raise-2: var(--surface-2)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink-2);font-family:var(--font-body);font-size:.9375rem;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0 0 .5em;color:var(--ink);font-weight:650;line-height:1.25;letter-spacing:-.01em}p{margin:0 0 1em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.wrap{width:min(100% - 2 * var(--gutter),1080px);margin-inline:auto}.muted{color:var(--muted)}.visually-hidden,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;left:12px;top:-100px;z-index:100;padding:10px 16px;border-radius:8px;background:var(--ink);color:#fff;font-weight:600}.skip-link:focus{top:10px}.eyebrow{margin:0 0 .75rem;color:var(--muted);font-size:.875rem}.sec-lede{max-width:62ch;color:var(--muted)}.fine-print{max-width:70ch;color:var(--muted);font-size:.8125rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:600;line-height:1.2;white-space:nowrap;transition:background-color .15s var(--ease),border-color .15s var(--ease)}.btn:hover{text-decoration:none}.btn:disabled{opacity:.55}.btn-solid{background:var(--ink);border-color:var(--ink);color:#fff}.btn-solid:hover:not(:disabled){background:#3a3c40;color:#fff}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:#1a51a3;color:#fff}.btn-ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.btn-small{min-height:34px;padding:0 12px;font-size:.8125rem}.text-link{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:500}.text-button{padding:6px 0;border:0;background:none;color:var(--muted);font-size:.875rem;text-align:left;text-decoration:underline;text-underline-offset:3px}.text-button:hover:not(:disabled){color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(16px,3vw,24px)}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}.chip{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:.8125rem;line-height:1.6}.badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:.75rem;font-weight:600}.contact-form,.form-row{display:grid;gap:16px}@media(min-width:640px){.form-row{grid-template-columns:1fr 1fr}}.contact-form label{display:grid;gap:6px;color:var(--ink);font-size:.875rem;font-weight:600}.contact-form input,.contact-form select,.contact-form textarea{width:100%;min-width:0;min-height:42px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-size:1rem;font-weight:400}.contact-form textarea{min-height:120px;resize:vertical}.contact-form select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%235f6368' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center / 14px}.contact-form :is(input,select,textarea):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1f5fbf26}.contact-form>.btn{justify-self:start}.contact-privacy{margin:0;color:var(--muted);font-size:.8125rem}.contact-privacy a,.form-error a{color:inherit;text-decoration:underline;text-underline-offset:2px}.form-error{margin:0;color:#b42318;font-size:.875rem}.form-actions{display:flex;flex-wrap:wrap;gap:8px}.sent-card h3{font-size:1.125rem}.site-header{position:fixed;inset:0 0 auto;z-index:50;height:var(--header-h);background:#fffffff2;border-bottom:1px solid var(--line)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;height:100%}.logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:650;white-space:nowrap}.logo:hover{color:var(--ink);text-decoration:none}.logo img{width:32px;height:32px;flex-shrink:0}@media(max-width:420px){.brand-surname{display:none}}.legal-page{max-width:680px;padding-top:calc(var(--header-h) + 56px);padding-bottom:80px}.legal-page h1{font-size:1.75rem}.legal-page h2{margin-top:1.75em;font-size:1.0625rem}.legal-page p a{text-decoration:underline;text-underline-offset:2px}.legal-page .btn{margin-top:1rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-nav{display:flex;align-items:center;gap:2px}.site-nav a{padding:6px 10px;border-radius:6px;color:var(--ink-2);font-size:.875rem}.site-nav a:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.site-nav a[aria-current]{color:var(--ink);font-weight:600}.nav-toggle{display:none;min-height:34px;padding:0 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-size:.8125rem;font-weight:600}@media(max-width:759px){.nav-toggle{display:block}.site-nav{display:none}.site-nav.open{position:absolute;top:calc(100% + 6px);right:var(--gutter);display:flex;flex-direction:column;align-items:stretch;min-width:200px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 8px 24px #00000014}.site-nav.open a{padding:10px 12px;font-size:.9375rem}}.profile{display:grid;gap:32px;padding-top:calc(var(--header-h) + 32px);padding-bottom:72px}@media(min-width:900px){.profile{grid-template-columns:260px minmax(0,1fr);gap:64px;padding-top:calc(var(--header-h) + 48px)}.identity{position:sticky;top:calc(var(--header-h) + 32px);align-self:start}}.profile-main{min-width:0}.identity-photo{width:120px;height:120px;margin-bottom:16px;border:1px solid var(--line);border-radius:50%;object-fit:cover}.identity h1{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.identity-alt{margin:2px 0 12px;color:var(--muted)}.identity-headline{margin-bottom:16px;color:var(--ink)}.identity-facts,.identity-links{list-style:none;display:grid;gap:6px;margin:0;padding:0;font-size:.875rem}.identity-facts li,.identity-links li{display:flex;gap:8px;align-items:flex-start}.identity-facts{color:var(--ink-2)}.identity svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--muted)}.identity-contact{margin:20px 0}@media(min-width:900px){.identity-contact{width:100%}}.identity-links{padding-top:16px;border-top:1px solid var(--line)}.profile-section+.profile-section{margin-top:32px;padding-top:32px;border-top:1px solid var(--line)}.profile-section h2{margin-bottom:16px;font-size:1.125rem}.profile-section>p{max-width:66ch}.entries{list-style:none;margin:0;padding:0}.entries>li+li{margin-top:20px}.organization-entry{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px}.entry-body{min-width:0}.organization-logo{display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.organization-logo img{display:block;width:100%;height:100%;object-fit:contain}.organization-logo svg{width:24px;height:24px}@media(max-width:479px){.organization-entry{grid-template-columns:40px minmax(0,1fr);gap:12px}.organization-logo{width:40px;height:40px}}.entry-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px}.entries h3{margin:0;font-size:.9375rem}.entry-date{color:var(--muted);font-size:.8125rem;font-variant-numeric:tabular-nums;white-space:nowrap}.entry-org{margin:0;color:var(--ink-2)}.entry-note{margin:2px 0 0;color:var(--muted);font-size:.875rem}.company-tenures{display:grid;gap:12px;list-style:none;margin:12px 0 0;padding:0 0 0 14px;border-left:2px solid var(--line)}.company-tenures h4{margin:0;font-size:.875rem;font-weight:600}.research-summary{color:var(--muted);font-size:.875rem}.publication h3{line-height:1.4}.publication h3 a{color:var(--ink)}.publication h3 a:hover{color:var(--accent)}.publication .entry-org{font-size:.875rem}.publication strong{color:var(--ink);font-weight:600}.pub-award{display:inline-block;margin:6px 0 0;padding:1px 8px;border-radius:6px;background:#fdf3dc;color:#7a4f00;font-size:.8125rem;font-weight:600}.projects{list-style:none;margin:0;padding:0}.project{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:start}@media(min-width:560px){.project{grid-template-columns:168px minmax(0,1fr);gap:20px}}.project+.project{margin-top:24px}.project-thumb{display:block;aspect-ratio:16 / 10;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.project-thumb img{width:100%;height:100%;object-fit:cover;object-position:top left}.project-thumb-icon{display:grid;place-items:center;background:#eaf2ed}.project-thumb-icon img{width:60%;height:auto;object-fit:contain}.project-thumb-canvas svg{width:100%;height:100%}.project-thumb-canvas path{fill:none;stroke:#a5bba8;stroke-width:1.5}.project-thumb-canvas rect{fill:var(--surface);stroke:#bdcbbb;stroke-width:1}.project h3{margin:0 0 2px;font-size:.9375rem}.project h3 a{color:var(--ink)}.project h3 a:hover{color:var(--accent)}.project-thai{margin-left:8px;color:var(--muted);font-size:.8125rem;font-weight:400}.project-tagline{margin:0;color:var(--ink-2)}.project-note{margin:4px 0 10px;color:var(--muted);font-size:.875rem}.website-group{margin-top:24px}.website-group-title{margin:0 0 16px;color:var(--ink-2);font-size:.875rem;font-weight:600}.website-list{display:grid;gap:24px;margin:0;padding:0;list-style:none}.website-project{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;align-items:start}.website-logo{display:block;width:80px;height:80px;padding:4px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.website-logo img{display:block;width:100%;height:100%;object-fit:contain}.website-project h4{margin:0;font-size:.9375rem}.website-role{margin:2px 0 0;color:var(--ink-2);font-size:.8125rem}.website-note{margin:4px 0 0;color:var(--muted);font-size:.875rem}@media(max-width:479px){.website-project{grid-template-columns:56px minmax(0,1fr);gap:12px}.website-logo{width:56px;height:56px}}.engine-loading{margin-top:16px;color:var(--muted);font-size:.875rem}.languages{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px 24px;margin:20px 0 0}.languages dt{color:var(--ink);font-weight:600}.languages dd{margin:0;color:var(--muted);font-size:.8125rem}#contact .contact-form,#contact .sent-card{max-width:560px}.contact-submit{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.site-footer{padding:20px 0 calc(24px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem}.footer-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px}.footer-row p{margin:0}.footer-links{display:flex;flex-wrap:wrap;gap:4px 20px}.footer-links a{color:var(--muted)}.footer-links a:hover{color:var(--ink)}
