:root{--bg:#f3f3f1;--ink:#111;--muted:#5f5f5c;--line:#d6d6d2;--dot:#c8c8c3;--glow:#0000000d;--mono:"JetBrains Mono", ui-monospace, monospace;--serif:"Instrument Serif", serif;--sans:"Instrument Sans", sans-serif}html[data-theme=dark]{--bg:#0f0f0f;--ink:#ececea;--muted:#9c9c98;--line:#2a2a29;--dot:#333332;--glow:#ffffff12}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--mono);-webkit-font-smoothing:antialiased;margin:0;transition:background .3s,color .3s}a{color:var(--ink);text-decoration:none}a:hover{color:var(--muted)}::selection{background:var(--ink);color:var(--bg)}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}@keyframes blink{50%{opacity:0}}.page{isolation:isolate;min-height:100vh;color:var(--ink);font-size:15px;position:relative}.page:before,.page:after{content:"";z-index:-1;pointer-events:none;position:fixed;inset:0}.page:before{background-image:radial-gradient(circle, var(--dot) 1px, transparent 1.5px);background-size:22px 22px;-webkit-mask-image:radial-gradient(90% 75% at 50% 0,#000 15%,#0000 75%);mask-image:radial-gradient(90% 75% at 50% 0,#000 15%,#0000 75%)}.page:after{background:radial-gradient(ellipse 70% 45% at 50% -10%, var(--glow), transparent 70%)}.main{max-width:1080px;margin:0 auto;padding:0 28px}.ink{color:var(--ink)}.muted,.cmd{color:var(--muted)}.small{font-size:13px}.section{border-top:1px solid var(--line);flex-direction:column;gap:24px;padding:64px 0;display:flex}.h2{font-family:var(--serif);margin:0;font-size:56px;font-weight:400;line-height:1}.rows{flex-direction:column;display:flex}.header{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1080px;margin:0 auto;padding:10px 28px;font-size:13px;display:flex}.header-left{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.prompt{color:var(--ink);font-weight:700}.nav{flex-wrap:wrap;gap:2px;display:flex}.chip{color:var(--muted);padding:4px 8px}.chip.is-on{background:var(--ink);color:var(--bg)}.header-right{align-items:center;gap:14px;display:flex}.theme-toggle{border:1px solid var(--line);color:var(--ink);padding:3px 8px}.progress{color:var(--muted);text-align:right;min-width:36px}.intro{flex-direction:column;gap:28px;padding:64px 0 72px;display:flex}.intro-grid{grid-template-columns:minmax(0,1fr) min(400px,40%);align-items:start;gap:48px;display:grid}@media (width<=760px){.intro-grid{grid-template-columns:minmax(0,1fr)}}.intro-main{flex-direction:column;gap:24px;min-width:0;display:flex}.intro-name{font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:clamp(64px,10vw,128px);font-weight:400;line-height:.9}.cursor{background:var(--ink);width:.4em;height:.06em;margin-left:.08em;animation:1.1s step-end infinite blink;display:inline-block}.intro-role{color:var(--muted);flex-wrap:wrap;gap:10px;display:flex}.intro-text{font-family:var(--sans);text-wrap:pretty;max-width:560px;margin:0;font-size:19px;line-height:1.55}.intro-links{flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.btn{white-space:nowrap;flex:none;padding:10px 14px}.btn-solid{background:var(--ink);color:var(--bg)}.btn-subtle{border:1px solid var(--line)}.intro-side{flex-direction:column;gap:10px;display:flex}.photo{aspect-ratio:1;position:relative}.photo-inner{width:100%;height:100%;position:relative;overflow:hidden}.photo img{object-fit:cover;object-position:center 30%;filter:grayscale()contrast(1.08);width:100%;height:100%;display:block}.stats{border-top:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px;display:grid;position:relative}.stat{flex-direction:column;gap:6px;padding:14px 10px 0 0;display:flex}.stat-n{font-family:var(--serif);font-size:40px;font-weight:400;line-height:1}.stat-l{color:var(--muted);font-size:11px;line-height:1.4}.code{border:1px solid var(--line);background:var(--bg)}.code-head{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:12px;padding:10px 14px;font-size:12px;display:flex}.code-body{font:inherit;margin:0;padding:18px 14px;font-size:16px;line-height:2.2}.code-line{white-space:pre-wrap;overflow-wrap:anywhere;display:block}.code-key{font-weight:700}.code-comment{color:var(--muted)}@media (width<=760px){.code-body{font-size:14px;line-height:1.8}.code-line+.code-line{margin-top:8px}}.skills{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));column-gap:24px;margin:0;padding:0;list-style:none;display:grid}.skill-cell{border-bottom:1px dashed var(--line);padding:14px 0}.skill{padding:0 2px}.skill:hover{background:var(--ink);color:var(--bg)}.exp-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.companies{flex-direction:column;gap:20px;display:flex}.company{border:1px solid var(--line);background:var(--bg)}.company-head{border-bottom:1px dashed var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 24px;padding:22px 20px 18px;display:flex}.company-id{flex-direction:column;gap:6px;min-width:0;display:flex}.company-name{font-family:var(--serif);font-size:clamp(32px,4vw,44px);font-weight:400;line-height:1}.company-dates{flex-direction:column;gap:4px;font-size:13px;display:flex}.roles{padding:4px 20px 8px}.role{padding-left:32px;position:relative}.role-seg{background:var(--ink);width:1px;position:absolute;top:32px;bottom:-33px;left:6px}.role-dot{background:var(--bg);border:2px solid var(--ink);box-sizing:border-box;border-radius:50%;width:13px;height:13px;position:absolute;top:26px;left:0}.role-dot.is-filled{background:var(--ink)}.role-toggle{width:100%;color:var(--ink);text-align:left;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 0;display:flex}.role-toggle:disabled{cursor:default}.role-title-wrap{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.role-title{font-family:var(--serif);font-size:26px;font-weight:400;line-height:1.1}.role-bracket{flex:none;padding-top:4px;font-weight:700}.role-body{flex-direction:column;gap:14px;max-width:720px;padding:0 0 20px;display:flex}.role-bullets{font-family:var(--sans);flex-direction:column;gap:8px;font-size:16px;line-height:1.55;display:flex}.role-bullet{text-wrap:pretty;grid-template-columns:20px minmax(0,1fr);display:grid}.edu-row{border-bottom:1px dashed var(--line);grid-template-columns:96px minmax(0,1fr);gap:16px;padding:18px 0;display:grid}.edu-year{font-family:var(--serif);font-size:36px;font-weight:400;line-height:1}.edu-info{flex-direction:column;gap:4px;display:flex}.edu-title{font-size:17px;font-weight:700}.contact{background:var(--ink);color:var(--bg);margin-top:48px}.contact-inner{flex-direction:column;gap:40px;max-width:1080px;margin:0 auto;padding:80px 28px 32px;display:flex}.dim{opacity:.7}.contact-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.contact-title{font-family:var(--serif);margin:0;font-size:clamp(48px,8vw,104px);font-weight:400;line-height:.95}.copy-btn{background:var(--bg);color:var(--ink);padding:12px 16px;font-size:13px}.contact-list{border-top:1px solid var(--bg);flex-direction:column;display:flex}.contact-row{color:var(--bg);border-bottom:1px dashed #555;grid-template-columns:minmax(0,140px) minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:18px 0;display:grid}.contact-row:hover{color:var(--bg);opacity:.65}.contact-key{opacity:.7;font-size:13px}.contact-value{font-family:var(--sans);overflow-wrap:anywhere;font-size:clamp(18px,2.4vw,26px)}.contact-foot{opacity:.7;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:12px;display:flex}
