@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-vietnamese-wght-normal.XAtsl5Q_.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-ext-wght-normal.C4zznr8T.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-wght-normal.E0tuGl4L.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2) format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2) format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2) format("woff2"),url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2) format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2) format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2) format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2) format("woff2"),url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2) format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff");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{--ink: #13151a;--paper: #f2f4f7;--surface: #ffffff;--signal: #2742f5;--brass: #b7791f;--muted: #5b6472;--rail: #d4d9e1;--font-display: "Archivo Variable", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--rail-w: 56px;--maxw: 880px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ink: #eceef2;--paper: #13151a;--surface: #1b1e26;--signal: #7a8cff;--brass: #d9a04a;--muted: #9aa3b2;--rail: #2a2f3a}}:root[data-theme=dark]{--ink: #eceef2;--paper: #13151a;--surface: #1b1e26;--signal: #7a8cff;--brass: #d9a04a;--muted: #9aa3b2;--rail: #2a2f3a}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--signal)}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:2px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rail)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.6rem}.site-header .brand{font-family:var(--font-display);font-weight:800;font-stretch:125%;font-size:.95rem;letter-spacing:.01em;color:var(--ink);text-decoration:none;text-transform:uppercase}.site-header nav{display:flex;gap:.5rem}.btn{display:inline-block;font-family:var(--font-mono);font-size:.8rem;padding:.35rem .8rem;border:1.5px solid var(--signal);border-radius:999px;text-decoration:none;color:var(--signal);transition:border-color .15s,background .15s,color .15s}.btn:hover,.btn-primary{background:var(--signal);color:var(--surface)}.btn-primary:hover{filter:brightness(1.12)}.preserve-breaks{white-space:pre-wrap}.hero{padding:4.5rem 0 3rem}.hero h1{font-family:var(--font-display);font-weight:900;font-stretch:130%;font-size:clamp(2rem,7vw,4.5rem);line-height:1.02;letter-spacing:-.01em;margin:0 0 .75rem;text-transform:uppercase}.hero .label{font-family:var(--font-mono);color:var(--signal);font-size:clamp(.95rem,2.4vw,1.15rem);margin:0 0 1.5rem}.hero .thesis{max-width:62ch;font-size:1.125rem;margin:0 0 1.75rem}.hero .meta{display:flex;flex-wrap:wrap;gap:.4rem 2.8rem;font-family:var(--font-mono);font-size:.82rem;color:var(--muted);margin:0 0 1.75rem;padding:0;list-style:none}.hero .cta{display:flex;gap:.75rem;flex-wrap:wrap}.hero .cta .btn{font-size:.92rem;padding:.6rem 1.3rem}.js .hero-fade{opacity:0;transform:translateY(14px)}.no-anim .hero-fade,html:not(.js) .hero-fade{opacity:1;transform:none}.section-label{font-family:var(--font-display);font-stretch:78%;font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.95rem;color:var(--muted);margin:3rem 0 1.25rem}.chipbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2.5rem;padding:0;list-style:none}.chip{font-family:var(--font-mono);font-size:.78rem;padding:.3rem .75rem;border:1px solid var(--rail);border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .15s,background .15s,color .15s}.chip:hover{border-color:var(--signal)}.chip[aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:#fff}.timeline{position:relative;padding-left:var(--rail-w)}.timeline:before{content:"";position:absolute;left:calc(var(--rail-w) / 2);top:0;bottom:0;width:2px;background:var(--rail)}.timeline.has-wave:before{display:none}.waveform{position:absolute;left:0;top:0;width:var(--rail-w);height:100%;overflow:visible;pointer-events:none}.waveform path{fill:none;stroke:var(--signal);stroke-width:2;stroke-linecap:round}.waveform .playhead{fill:var(--signal)}.entries{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}.entry article{background:var(--surface);border:1px solid var(--rail);border-radius:10px;padding:1.4rem 1.6rem;transition:border-color .15s}.entry article:hover{border-color:var(--signal)}.entry.is-active article{border-color:var(--signal)}.entry.dimmed{opacity:.35;transform:scale(.98)}.entry{transition:opacity .35s,transform .35s}.entry h3{margin:0 0 .2rem;font-size:1.18rem;line-height:1.3}.entry h3 .org{color:var(--signal)}.entry .dates{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);display:block;margin-bottom:.7rem}.entry .summary{margin:0 0 .6rem}.entry ul{margin:0;padding-left:1.1rem}.entry ul li{margin-bottom:.45rem}.entry ul li:last-child{margin-bottom:0}.entry .kw{display:flex;flex-wrap:wrap;gap:.35rem;margin:.9rem 0 0;padding:0;list-style:none}.entry .kw li{font-family:var(--font-mono);font-size:.68rem;color:var(--muted);border:1px solid var(--rail);border-radius:4px;padding:.1rem .4rem}.entry .callback{font-family:var(--font-mono);font-size:.76rem;margin:.6rem 0 0}.entry-event .event-marker{display:flex;align-items:baseline;gap:.9rem;padding:.15rem .2rem}.entry-event .event-marker:before{content:"◆";color:var(--signal);font-size:.7rem;align-self:center}.entry-event .dates{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);white-space:nowrap}.entry-event p{margin:0;font-size:.92rem;color:var(--muted)}.js:not(.no-anim) .entry{opacity:0;transform:translateY(16px)}.js:not(.no-anim) .entry.revealed,.js:not(.no-anim) .entry.dimmed{opacity:1;transform:none}.js:not(.no-anim) .entry.revealed.dimmed{opacity:.35;transform:scale(.98)}.entry{scroll-margin-top:64px}.entry.mm-target article{border-color:var(--signal)}.entry-event.mm-target .event-marker p{color:var(--ink)}.minimap{--mm-step: 14px;--mm-w: 11px;--mm-track-w: calc(var(--lanes) * var(--mm-step) - (var(--mm-step) - var(--mm-w)));position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:9;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;opacity:0;pointer-events:none;transition:opacity .25s}html:not(.js) .minimap{display:none}.minimap.in-scope{opacity:1;pointer-events:auto}.minimap-track{position:relative;width:var(--mm-track-w);height:min(60dvh,560px)}.mm-clock{width:14px;height:14px;margin-right:calc((var(--mm-track-w) - 14px) / 2);fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.minimap[data-collapsed=true] .mm-clock{display:none}.mm-block{position:absolute;right:calc(var(--lane) * var(--mm-step));width:var(--mm-w);min-height:9px;border-radius:3px;background:var(--muted);border-block:1px solid var(--paper);background-clip:padding-box;opacity:.35;transition:opacity .15s,background .15s}.mm-block:before{content:"";position:absolute;inset:-2px -4px}.mm-block:hover,.mm-block:focus-visible,.mm-block.is-linked,.mm-block.is-current{opacity:1;background:var(--signal)}.mm-block.mm-match{opacity:.85;background:var(--signal)}.mm-block.mm-dim,.mm-tick.mm-dim{opacity:.12}.mm-block.mm-dim:hover,.mm-block.mm-dim:focus-visible{opacity:1}.mm-tick{position:absolute;left:0;right:0;height:0;border-top:2px dotted var(--muted);opacity:.6}.mm-tick:before{content:"";position:absolute;inset:-5px 0}.mm-tick:hover,.mm-tick:focus-visible,.mm-tick.is-linked,.mm-tick.is-current{border-top-color:var(--signal);opacity:1}.mm-year{position:absolute;right:calc(100% + 8px);transform:translateY(-50%);font-family:var(--font-mono);font-size:.62rem;color:var(--muted)}.mm-block:after,.mm-tick:after{content:attr(data-label);position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:.72rem;line-height:1.3;white-space:nowrap;background:var(--surface);color:var(--ink);border:1px solid var(--rail);border-radius:6px;padding:.2rem .55rem;opacity:0;pointer-events:none;transition:opacity .15s;z-index:1}.mm-block:hover:after,.mm-block:focus-visible:after,.mm-tick:hover:after,.mm-tick:focus-visible:after{opacity:1}.minimap-toggle{display:none;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--rail);border-radius:999px;background:var(--surface);color:var(--muted);cursor:pointer;transition:border-color .15s}.minimap-toggle:hover{border-color:var(--signal)}.minimap-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.minimap-toggle .icon-clock,.minimap[data-collapsed=true] .icon-chevron{display:none}.minimap[data-collapsed=true] .icon-clock{display:block}@media(max-width:1039px){.minimap{--mm-step: 8px;--mm-w: 6px;right:8px}.timeline{padding-right:20px}.minimap-track{height:min(52dvh,440px)}.minimap-toggle{display:flex;margin-right:-4px}.mm-year{display:none}.mm-block:before{inset:-3px -7px}.minimap[data-collapsed=true]{top:58px;transform:none}.minimap[data-collapsed=true] .minimap-track{display:none}}.associations .entry-card{background:var(--surface);border:1px solid var(--rail);border-left:3px solid var(--brass);border-radius:10px;padding:1.1rem 1.4rem}.associations h3{margin:0 0 .2rem;font-size:1.05rem}.associations .org{color:var(--brass)}.associations .dates{font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.associations p{margin:.4rem 0 0}.skillgroups{display:grid;gap:.9rem;margin:0}.skillgroups dt{font-weight:600;margin-bottom:.2rem}.skillgroups dd{margin:0;font-family:var(--font-mono);font-size:.82rem;color:var(--muted)}.edu-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.edu-list .dates{font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.site-footer{margin-top:4rem;border-top:1px solid var(--rail);padding:2rem 0 3rem;font-size:.9rem;color:var(--muted)}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;align-items:center}.theme-toggle{font-family:var(--font-mono);font-size:.78rem;padding:.3rem .75rem;border:1px solid var(--rail);border-radius:999px;background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s}.theme-toggle:hover{border-color:var(--signal)}@media(max-width:640px){.timeline{padding-left:14px}.timeline:before{left:3px;display:block!important}.waveform{display:none}.entry article{padding:1.1rem}.site-header .brand{font-size:.8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
