@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+460-52F,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+301,U+400-45F,U+490-491,U+4B0-4B1,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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0b0c0e;--ink:#ebeae6;--muted:#8f8e8a;--faint:#5d5d5a;--cool:#8cc8ff;--warm:#ff9a62;--sans:"Archivo Variable", "Archivo", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--gutter:max(20px, env(safe-area-inset-left,0px));--page:1200px;--side:max(var(--gutter), calc((100vw - var(--page)) / 2));--bar-h:64px;--t:0;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar-h) + 24px)}body{background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--sans);font-synthesis:none;-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p,ol,ul,dl,dd{margin:0;padding:0}a{color:inherit;text-decoration:none}a:hover{color:var(--cool)}:focus-visible{outline:2px solid var(--cool);outline-offset:4px;border-radius:2px}::selection{background:var(--cool);color:var(--bg)}*{--tc:color-mix(in oklab, var(--warm) calc(var(--t) * 100%), var(--cool))}.skip-link{top:-100px;left:var(--side);z-index:40;background:var(--ink);color:var(--bg);padding:12px 16px;position:fixed}.skip-link:focus{top:16px}.bar{z-index:20;height:calc(var(--bar-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--side) 0;background:var(--bg);align-items:center;gap:28px;font-size:15px;display:flex;position:fixed;inset:0 0 auto}.wordmark{letter-spacing:-.01em;font-weight:700}.bar-nav{color:var(--muted);gap:24px;margin-left:auto;display:flex}.language-control{color:var(--muted);position:relative}.language-switch{cursor:pointer;align-items:center;gap:8px;padding-block:8px;list-style:none;display:flex}.language-switch::-webkit-details-marker{display:none}.language-switch:hover,.language-control[open] .language-switch{color:var(--ink)}.language-chevron{transition:transform .2s}.language-control[open] .language-chevron{transform:rotate(180deg)}.language-options{background:#17181b;border-radius:8px;min-width:160px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000080}.language-options a{color:var(--ink);border-radius:4px;justify-content:space-between;gap:24px;padding:10px 12px;display:flex}.language-options a:hover,.language-options a:focus-visible{background:var(--bg);color:var(--cool);outline-offset:-2px}.language-options a[aria-current]{color:var(--cool)}main{overflow-x:clip}.page{padding-inline:var(--side)}.label{color:var(--faint);letter-spacing:.02em;margin-bottom:10px;font-size:13px}.temp{font-family:var(--mono);color:var(--tc);margin-right:8px;font-size:12px}.muted{color:var(--muted)}h2{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(28px,3.6vw,48px);font-weight:600;line-height:1.15}h3{font-size:17px;font-weight:600}.actions{flex-wrap:wrap;gap:8px 24px;margin-top:18px;display:flex}.actions a{border-bottom:1px solid var(--faint);padding-bottom:1px}.actions a:hover{border-color:var(--cool)}.tok{display:inline-block;position:relative}.tok[data-alts]:after{content:attr(data-alts);content:attr(data-alts) / "";font:400 max(10px, var(--alt-size,.2em))/1 var(--mono);letter-spacing:0;white-space:nowrap;color:var(--tc);pointer-events:none;opacity:var(--ao,0);translate:var(--shift,0px) 0;position:absolute;top:calc(100% - .12em);left:0}.tok[data-crowded]:after{display:none}@media (width<=640px){.tok[data-alts]:after{content:attr(data-alt);content:attr(data-alt) / ""}}.hero{padding-block:calc(var(--bar-h) + env(safe-area-inset-top,0px) + 32px) 40px;position:relative}.skip-intro{left:var(--side);bottom:max(28px, calc(env(safe-area-inset-bottom,0px) + 16px));font:400 12px/1.5 var(--mono);color:var(--faint);padding-block:8px;display:none;position:absolute}.skip-intro:hover{color:var(--cool)}.hero-js .skip-intro{display:block}.name{letter-spacing:-.04em;margin-bottom:.28em;font-size:clamp(3rem,10.5vw,9.5rem);font-weight:800;font-stretch:92%;line-height:.9}.sentence{letter-spacing:-.02em;text-wrap:pretty;max-width:21em;font-size:clamp(1.7rem,min(4.4vw,5.6svh),4rem);font-weight:500;line-height:1.5}.sentence .tok{color:color-mix(in oklab, var(--tc) calc(var(--t) * 70%), var(--ink))}.sentence .tok[data-pick]:before,.sentence .tok[data-pick]:after{font:400 max(10px, .24em)/1 var(--mono);letter-spacing:0;white-space:nowrap;color:var(--tc);pointer-events:none;opacity:var(--po,0);translate:var(--shift,0px) var(--py,0px);position:absolute;top:88%}.sentence .tok[data-pick]:before{content:attr(data-pick);content:attr(data-pick) / "";color:var(--pc,var(--tc));left:0}.sentence .tok[data-pick]:after{content:attr(data-rest);content:attr(data-rest) / "";left:calc(var(--n) * 1ch);opacity:var(--ro,0);translate:var(--rest-shift,var(--shift,0px)) 0}.sentence .tok[data-wrap]:after{top:calc(88% + 1.4em);left:0}.sentence .tok{--hi:color-mix(in oklab, var(--tc) 40%, var(--ink))}@media (width<=640px){.sentence .tok[data-pick]:after{content:attr(data-rest-short);content:attr(data-rest-short) / ""}}.intro{max-width:calc(40rem + 2 * var(--side));padding-block:clamp(32px,8vh,96px) clamp(96px,16vh,180px)}.lead{text-wrap:pretty;font-size:clamp(18px,1.6vw,21px);line-height:1.55}.summary{gap:14px;margin-top:6px;list-style:none;display:grid}.summary li{text-wrap:pretty;font-size:clamp(18px,1.7vw,22px);line-height:1.5}.note{font:400 12px/1.5 var(--mono);color:var(--faint);flex-basis:100%;order:3}.work,.about,.contact{padding-bottom:clamp(96px,16vh,180px)}.head{max-width:46rem}.tokens{line-height:1.6}.head .muted{max-width:40rem;margin-top:18px;font-size:18px}.entries{gap:56px;margin-block:64px 48px;list-style:none;display:grid}.entry article{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:8px 48px;display:grid}.entry article>*{grid-column:2}.entry article>.entry-head{grid-area:1/1/span 5;align-self:start}.entry-area{color:var(--faint);margin-bottom:4px;font-size:13px}.entry h3{letter-spacing:-.01em;font-size:clamp(20px,2vw,26px);line-height:1.2}.entry h3 .muted{font-size:.7em;font-weight:400}.metrics{flex-wrap:wrap;gap:4px 28px;display:flex}.metrics div{align-items:baseline;gap:8px;display:flex}.metrics dt{color:var(--cool);font-weight:600}.metrics dd{color:var(--muted)}.tags{color:var(--faint);font-size:14px}.entry .actions{margin-top:4px}.next{max-width:calc(46rem + 2 * var(--side));padding-bottom:clamp(48px,8vh,96px)}.next .body{margin-top:18px;font-size:clamp(18px,1.7vw,22px);line-height:2.1}.next .body .tok:after{--alt-size:.55em;top:calc(100% - .35em)}.contact-email{letter-spacing:-.01em;overflow-wrap:anywhere;margin-top:28px;font-size:clamp(22px,3vw,36px);font-weight:600}.contact-email a{border-bottom:1px solid var(--faint)}.contact-email a:hover{border-color:var(--cool)}.qudos{padding-bottom:clamp(96px,16vh,180px)}.qudos-track{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:48px;display:grid}.qudos-copy{justify-items:start;gap:22px;display:grid}.qudos-head h2{font-size:clamp(28px,3.2vw,44px)}.tokens.hot .tok[data-alts]:not([data-crowded]),.hot .tok[data-alts]:not([data-crowded]){color:color-mix(in oklab, var(--tc) 55%, var(--ink))}.tokens.hot .tok:after,.hot .tok:after{--ao:.85}.qudos .body{color:var(--muted);max-width:46ch;font-size:18px;line-height:2.1}.qudos .body .tok:after{--alt-size:.58em;top:calc(100% - .35em)}.stops{gap:4px;list-style:none;display:grid}.stop{grid-template-columns:3em 1fr;gap:14px;padding-block:10px;transition:opacity .35s;display:grid}.ket{font:500 16px/1.6 var(--mono);color:var(--tc)}.stop p{max-width:46ch;color:var(--muted)}.lab{place-items:center;display:grid;position:sticky;top:96px}.bloch{aspect-ratio:1;cursor:grab;touch-action:none;border-radius:50%;width:100%;max-width:520px}.bloch:active{cursor:grabbing}.qudos[data-scrub] .stop:not(.is-active){opacity:.38}@media (width>=961px){.qudos[data-scrub] .qudos-track{min-height:230svh}.qudos[data-scrub] .qudos-copy{align-content:center;min-height:calc(100svh - 120px);position:sticky;top:96px}.qudos[data-scrub] .lab{height:calc(100svh - 120px)}.qudos[data-scrub] .bloch{max-width:min(100%,680px,100svh - 160px)}}.about h2{max-width:20em}.about-copy{gap:14px;max-width:40rem;margin-top:24px;font-size:18px;display:grid}.focus-label{margin-top:36px;font-weight:400}.focus{color:var(--muted);gap:4px;list-style:none;display:grid}.contact .muted{margin-top:16px;font-size:18px}.foot{padding-block:24px max(32px, env(safe-area-inset-bottom,0px));color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-size:13px;display:flex}@media (width<=960px){.entry article{grid-template-columns:minmax(0,1fr)}.entry article>*,.entry article>.entry-head{grid-area:auto/1}.entry-head{margin-bottom:4px}.qudos-track{grid-template-columns:minmax(0,1fr);row-gap:24px}.qudos-copy{display:contents}.qudos-head{order:-2}.lab{top:calc(var(--bar-h) + env(safe-area-inset-top,0px));z-index:2;margin-inline:calc(-1 * var(--side));padding:8px var(--side) 12px;background:var(--bg);order:-1}.bloch{width:min(60vw,34svh,320px)}.qudos[data-scrub] .stop{align-content:center;min-height:24svh}}@media (width<=560px){.bar{gap:16px}.bar-nav{display:none}.language-control{margin-left:auto}.qudos .body{font-size:17px}}@keyframes write{0%{color:#0000}}@keyframes pick{0%{opacity:0;translate:var(--shift,0px) 0;color:var(--tc)}22%,48%{opacity:.65;translate:var(--shift,0px) 0;color:var(--tc)}64%{opacity:1;translate:var(--shift,0px) -.25em;color:var(--hi)}86%{opacity:1;translate:var(--shift,0px) -.4em;color:var(--hi)}to{opacity:0;translate:var(--shift,0px) -1.1em;color:var(--hi)}}@keyframes rest{0%{opacity:0}22%,48%{opacity:.55}66%,to{opacity:0}}@keyframes heat{0%{opacity:0}}.hero-js .hero-track{height:420svh}.hero-js .sentence .tok[data-pick]:before{opacity:var(--po,0)}.hero-js .hero{flex-direction:column;justify-content:center;min-height:100svh;display:flex;position:sticky;top:0}.hero-js .sentence .tok{color:color-mix(in oklab, color-mix(in oklab, var(--tc) calc(var(--t) * 70%), var(--ink)) calc(var(--w,1) * 100%), transparent)}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.hero-track{view-timeline:--hero block;view-timeline-inset:0px;height:420svh}.hero{flex-direction:column;justify-content:center;min-height:100svh;display:flex;position:sticky;top:0}.skip-intro{display:block}.sentence .tok{--timeline:--hero;animation:linear both write;animation-timeline:var(--timeline);animation-range:contain var(--ws) contain var(--we)}.sentence .tok[data-pick]:before,.sentence .tok[data-pick]:after{animation:linear both pick;animation-timeline:var(--timeline);animation-range:contain var(--s) contain var(--e)}.sentence .tok[data-pick]:after{animation-name:rest}.qudos,.next{view-timeline:--heat block;view-timeline-inset:0px}.qudos .tok:after,.next .tok:after{--heat-timeline:--heat;animation:linear both heat;animation-timeline:var(--heat-timeline);animation-range:entry 10% entry 90%}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
