@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-cyrillic-ext-wght-normal.D_UHSL_T.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-vietnamese-wght-normal.CHiFlh_0.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-ext-wght-normal.Dg-wlmqe.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-wght-normal.CaVRRdDk.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}@layer reset{*,:before,:after{box-sizing:border-box}*{margin:0}img,svg{max-width:100%;display:block}img{height:auto}ul[role=list],ol[role=list]{padding:0;list-style:none}}@layer tokens{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#efe5d1;--color-surface:#f6efdc;--color-text:#1f1d1a;--color-muted:#625e56;--color-accent:#93502f;--color-on-accent:#f6efdc;--color-marker:#d6688a;--color-rail:#b9b1a0;--color-line:#ddd3b9;--color-well-top:#e9dfc3;--color-well-bottom:#f4edda;--color-well-edge:#b8ad94;--color-raised-edge:#b8ad94;--well-bg:linear-gradient(var(--color-bg) 0 0) padding-box, linear-gradient(165deg, #cec2a5 50%, #e0d7c4 50%) border-box;--color-photo-stroke:#0000008c;--font-sans:"Hanken Grotesk Variable", "Hanken Grotesk", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, "Cascadia Mono", Consolas, "Roboto Mono", "Liberation Mono", monospace;--step--1:clamp(.84rem, .8rem + .15vw, .9rem);--step-0:clamp(1rem, .96rem + .2vw, 1.0625rem);--step-1:clamp(1.2rem, 1.1rem + .45vw, 1.4rem);--step-2:clamp(1.45rem, 1.25rem + .9vw, 1.9rem);--step-3:clamp(1.8rem, 1.45rem + 1.6vw, 2.6rem);--space-2xs:.25rem;--space-xs:.5rem;--space-s:.75rem;--space-m:1.25rem;--space-l:2rem;--space-xl:3.5rem;--space-2xl:6rem;--gutter:clamp(1rem, 4vw, 2.5rem);--content-max:46rem;--wide-max:62rem;--radius-s:.5rem;--radius-photo:1.5rem;--shadow-photo:0 .6rem 1.4rem -.4rem #3c281459;--shade:203 195 178;--hilite:255 255 240;--well-hilite:252 250 234;--well-edge-a:206 194 165;--well-edge-b:224 215 196;--shadow-pop:0 .5rem 1.5rem -.5rem #3c281459;--nav-h:3.75rem;--grain:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n' color-interpolation-filters='sRGB'><feTurbulence type='fractalNoise' baseFrequency='.73' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='2 0 0 0 -.5 2 0 0 0 -.5 2 0 0 0 -.5 0 0 0 0 .4'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#1c1a16;--color-surface:#25221d;--color-text:#ede5d0;--color-muted:#a9a194;--color-accent:#e3895c;--color-on-accent:#1c1a16;--color-marker:#e57b9a;--color-rail:#4d473d;--color-line:#36322a;--color-well-top:#171511;--color-well-bottom:#171511;--color-well-edge:#171511;--color-raised-edge:#3d382f;--well-bg:linear-gradient(var(--color-well-top), var(--color-well-bottom)) padding-box, linear-gradient(var(--color-well-edge) 0 0) border-box;--color-photo-stroke:#ffffff24;--shadow-photo:0 .6rem 1.4rem -.4rem #0009;--shadow-pop:0 .5rem 1.5rem -.5rem #000000b3}}}@layer base{html{-moz-text-size-adjust:none;text-size-adjust:none;scroll-padding-top:calc(var(--nav-h) + var(--space-m));background:var(--grain), var(--color-bg);background-blend-mode:overlay}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{min-height:100svh;font-family:var(--font-sans);font-size:var(--step-0);color:var(--color-text);line-height:1.5;overflow-x:clip}h1,h2,h3{text-wrap:balance;font-weight:500;line-height:1.15}p,li{text-wrap:pretty}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:4px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{left:var(--space-s);top:var(--space-s);z-index:100;padding:var(--space-xs) var(--space-s);background:var(--color-surface);border-radius:var(--radius-s);position:absolute;translate:0 -200%}.skip-link:focus-visible{translate:0}.wrap{width:min(100% - 2 * var(--gutter), var(--wide-max));margin-inline:auto}.section-title{font-size:var(--step-2);text-align:center}}@layer components{.neu{--raised-depth:.4;--sunk-depth:.7;--sink:1;--tilt:10deg;--tilt-gain:1;--aspect:.4;cursor:pointer;--cx:clamp(-1, var(--px), 1);--cy:clamp(-1, var(--py), 1);--a:calc(var(--d) * var(--sink));--e:calc(var(--raised-depth) * (1 - var(--p)));--pd:calc(var(--sunk-depth) * var(--p));--pf:var(--p);--dark-x:calc(var(--e) * max(0, 1 - var(--a) * (.4 + .6 * var(--cx))));--dark-y:calc(var(--e) * max(0, 1 - var(--a) * (.4 + .6 * var(--cy))));--light-x:calc(var(--e) * max(0, 1 - var(--a) * (.4 - .6 * var(--cx))));--light-y:calc(var(--e) * max(0, 1 - var(--a) * (.4 - .6 * var(--cy))));--blur:calc(var(--e) * max(.35, 1 - var(--a) * .45));--press-edge:linear-gradient(165deg, rgb(var(--well-edge-a) / var(--p)) 50%, rgb(var(--well-edge-b) / var(--p)) 50%);--lt-shadow:calc(3px * var(--dark-x)) calc(3px * var(--dark-y)) calc(6px * var(--blur)) rgb(var(--shade)), calc(-3px * var(--light-x)) calc(-3px * var(--light-y)) calc(6px * var(--blur)) rgb(var(--hilite)), inset calc(2px * var(--pd)) calc(2px * var(--pd)) calc(2.5px * var(--pd)) rgb(var(--shade)), inset calc(-2px * var(--pd)) calc(-2px * var(--pd)) calc(2.5px * var(--pd)) rgb(var(--well-hilite));--face:linear-gradient(var(--color-bg) 0 0) padding-box;--lt-bg:var(--face), var(--press-edge) border-box, var(--color-bg);--ox:calc(-1px * var(--cx) * var(--a) * var(--e));--rim:calc(.11 * (1 + .6 * var(--a) * var(--cy)));--dk-shadow:calc(.5 * var(--ox)) calc(1px * var(--dark-y)) calc(1px * var(--blur)) #00000073, calc(1.5 * var(--ox)) calc(3px * var(--dark-y)) calc(8px * var(--blur)) #0000004d, calc(3 * var(--ox)) calc(8px * var(--dark-y)) calc(20px * var(--blur)) -4px #00000047, inset calc(1px * var(--pd)) calc(1px * var(--pd)) 0 #0000008c, inset calc(2px * var(--pd)) calc(2px * var(--pd)) calc(5px * var(--pd)) #00000059, inset calc(-1px * var(--pd)) calc(-1px * var(--pd)) calc(1px * var(--pd)) rgb(255 255 255/calc(.22 * var(--pd)));--dk-bg:var(--face), linear-gradient(rgb(28 26 22/var(--p)) 0 0) border-box,  linear-gradient(rgb(255 255 255/var(--rim)), #ffffff08 45%, #00000040) border-box var(--color-bg);background:var(--lt-bg);box-shadow:var(--lt-shadow);--tilt-tf:perspective(300px) rotateY(calc(var(--tilt) * var(--tilt-gain) * var(--cx) * var(--d) * (1 - var(--pf)) * var(--aspect))) rotateX(calc(var(--tilt) * var(--tilt-gain) * var(--cy) * var(--d) * (1 - var(--pf)) * -1)) scale(calc(1 - .012 * var(--a)));transform:var(--tilt-tf);transition:--px .12s ease-out,--py .12s ease-out,--d .22s ease-out,--p .15s ease-out,color .2s;position:relative}.neu:hover{--d:1}.neu:active{--p:1}.neu:before{content:"";border-radius:inherit;position:absolute;inset:-4px}.neu-face{align-items:center;gap:inherit;display:flex}.neu-flat{--raised-depth:0;--face:var(--grain) padding-box, linear-gradient(var(--color-bg) 0 0) padding-box;--dk-bg:var(--face);background-blend-mode:overlay, normal}.neu:is([aria-current=page],:has(+:popover-open)){--tilt-gain:2;--pf:0;--wd:calc(var(--sunk-depth) * (1 + .5 * var(--p)));--w-sx:calc(var(--wd) * (1 + var(--a) * (.4 - .6 * var(--cx))));--w-sy:calc(var(--wd) * (1 + var(--a) * (.4 - .6 * var(--cy))));--w-hx:calc(var(--wd) * (1 + var(--a) * (.4 + .6 * var(--cx))));--w-hy:calc(var(--wd) * (1 + var(--a) * (.4 + .6 * var(--cy))));--w-blur:calc(var(--wd) * (1 + var(--a) * .3));--lt-shadow:inset calc(2px * var(--w-sx)) calc(2px * var(--w-sy)) calc(2.5px * var(--w-blur)) rgb(var(--shade)), inset calc(-2px * var(--w-hx)) calc(-2px * var(--w-hy)) calc(2.5px * var(--w-blur)) rgb(var(--well-hilite));--face:linear-gradient(var(--color-bg) 0 0) padding-box;--lt-bg:var(--well-bg);background-blend-mode:normal;--dk-shadow:inset calc(1px * var(--w-sx)) calc(1px * var(--w-sy)) 0 #0000008c, inset calc(2px * var(--w-sx)) calc(2px * var(--w-sy)) calc(5px * var(--w-blur)) #00000059, inset calc(-1px * var(--w-hx)) calc(-1px * var(--w-hy)) calc(1px * var(--w-blur)) rgb(255 255 255/calc(.11 * (var(--w-hx) + var(--w-hy))));--dk-bg:var(--face);transform:none}.neu:is([aria-current=page],:has(+:popover-open))>.neu-face{transform:var(--tilt-tf)}@media (prefers-color-scheme:dark){.neu{background:var(--dk-bg);box-shadow:var(--dk-shadow)}}@media (prefers-reduced-motion:reduce){.neu{--tilt:0deg}}}@layer motion{@view-transition{navigation:auto}::view-transition{background:var(--grain), var(--color-bg);background-blend-mode:overlay}::view-transition-group(root){animation-duration:.16s;animation-timing-function:cubic-bezier(0,0,.2,1)}::view-transition-old(root){animation:inherit}::view-transition-new(root){animation:inherit}::view-transition-old(site-nav){opacity:0;animation:none}::view-transition-new(site-nav){animation:none}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation-name:slide-to-left}::view-transition-new(root){animation-name:slide-from-right}html:active-view-transition-type(back)::view-transition-old(root){animation-name:slide-to-right}html:active-view-transition-type(back)::view-transition-new(root){animation-name:slide-from-left}}@media (prefers-reduced-motion:reduce){::view-transition-group(root){animation-duration:.4s;animation-timing-function:cubic-bezier(.4,0,.6,1)}::view-transition-old(root){animation-name:blur-out}::view-transition-new(root){animation-name:blur-in}}@keyframes slide-to-left{to{translate:-100%}}@keyframes slide-from-right{0%{translate:100%}}@keyframes slide-to-right{to{translate:100%}}@keyframes slide-from-left{0%{translate:-100%}}@keyframes blur-out{to{opacity:0;filter:blur(8px)}}@keyframes blur-in{0%{opacity:0;filter:blur(8px)}}}@property --d{syntax:"<number>";inherits:true;initial-value:0}@property --p{syntax:"<number>";inherits:true;initial-value:0}@property --px{syntax:"<number>";inherits:true;initial-value:0}@property --py{syntax:"<number>";inherits:true;initial-value:0}.site-header[data-astro-cid-wpvy4v7s]{z-index:10;height:var(--nav-h);padding-inline:var(--space-xs);background:var(--grain), var(--color-bg);background-blend-mode:overlay;view-transition-name:site-nav;place-items:center;display:grid;position:sticky;top:0}.site-header[data-astro-cid-wpvy4v7s]:after{content:"";height:var(--space-m);background:var(--grain), var(--color-bg);background-blend-mode:overlay;pointer-events:none;position:absolute;inset:100% 0 auto;mask-image:linear-gradient(#000,#0000)}ul[data-astro-cid-wpvy4v7s]{gap:clamp(0rem,1.5vw,1rem);display:flex}a[data-astro-cid-wpvy4v7s]{min-height:2.25rem;color:var(--color-muted);-webkit-tap-highlight-color:transparent;border:.5px solid #0000;border-radius:.8rem;align-items:center;gap:.4em;padding:0 clamp(.55rem,2.2vw,1.05rem);font-size:clamp(.875rem,.8rem + .4vw,1rem);text-decoration:none;display:flex}a[data-astro-cid-wpvy4v7s]:hover{color:var(--color-text)}a[data-astro-cid-wpvy4v7s]:active,a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--color-accent)}a[data-astro-cid-wpvy4v7s][aria-current=page] svg{translate:0 .5px}a[data-astro-cid-wpvy4v7s][data-held]{--p:1}@media (width<30rem){.site-nav[data-astro-cid-wpvy4v7s],ul[data-astro-cid-wpvy4v7s]{width:100%}ul[data-astro-cid-wpvy4v7s]{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;display:grid}li[data-astro-cid-wpvy4v7s]{justify-content:center;display:flex}a[data-astro-cid-wpvy4v7s]{white-space:nowrap;flex:none;justify-content:center;gap:0;min-width:2.75rem;padding-inline:.5rem}.label[data-astro-cid-wpvy4v7s]{padding-inline-start:.4em;overflow:hidden}a[data-astro-cid-wpvy4v7s]:not([aria-current=page]) .label[data-astro-cid-wpvy4v7s]{opacity:0;width:0;padding-inline-start:0}}@media (prefers-reduced-motion:no-preference){.site-nav[data-astro-cid-wpvy4v7s]{interpolate-size:allow-keywords}a[data-astro-cid-wpvy4v7s][data-was]{animation:.3s ease-out nav-unpress}@media (width<30rem){a[data-astro-cid-wpvy4v7s][data-was] .label[data-astro-cid-wpvy4v7s]{animation:.3s cubic-bezier(.2,0,0,1) nav-label-out}.site-nav[data-astro-cid-wpvy4v7s]:has([data-was]) [data-astro-cid-wpvy4v7s][aria-current=page] .label[data-astro-cid-wpvy4v7s]{animation:.3s cubic-bezier(.2,0,0,1) nav-label-in}}}@keyframes nav-unpress{0%{--p:1}}@keyframes nav-label-in{0%{opacity:0;width:0;padding-inline-start:0}}@keyframes nav-label-out{0%{opacity:1;width:auto;padding-inline-start:.4em}}@media (width<22rem){a[data-astro-cid-wpvy4v7s][aria-current=page] svg{display:none}}.site-footer[data-astro-cid-z4jru4n3]{justify-items:center;gap:var(--space-xs);margin-top:var(--space-2xl);padding:var(--space-xl) var(--gutter) var(--space-l);border-top:1px solid var(--color-line);text-align:center;display:grid}.site-footer[data-astro-cid-z4jru4n3] h2{font-size:var(--step-1)}.contact[data-astro-cid-z4jru4n3]{justify-content:center;gap:var(--space-s);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.contact[data-astro-cid-z4jru4n3] a{min-height:2.75rem;padding:0 var(--space-m) 0 var(--space-s);border:1px solid #0000;border-radius:.8rem;align-items:center;gap:.5em;text-decoration:none;display:flex}.fine[data-astro-cid-z4jru4n3]{margin-top:var(--space-s);color:var(--color-muted);font-size:var(--step--1)}.page[data-astro-cid-ibpinaeu]{gap:var(--space-m);padding-block:var(--space-2xl);text-align:center;justify-items:center;display:grid}.page[data-astro-cid-ibpinaeu] h1{font-size:var(--step-3)}.item[data-astro-cid-y5vfisjn]{scroll-margin-top:calc(var(--nav-h) + var(--space-m))}.item[data-astro-cid-y5vfisjn]:target .title[data-astro-cid-y5vfisjn]{color:var(--color-accent)}.head[data-astro-cid-y5vfisjn]{justify-content:space-between;align-items:baseline;gap:0 var(--space-m);flex-wrap:wrap;display:flex}.head[data-astro-cid-y5vfisjn] .title{font-size:var(--step-1);transition:color .3s}.course[data-astro-cid-y5vfisjn]{font-family:var(--font-mono);color:var(--color-muted);margin-right:.5em;font-size:.75em;font-weight:500}.org[data-astro-cid-y5vfisjn]{font-weight:400}.badge[data-astro-cid-y5vfisjn]{background:var(--color-accent);color:var(--color-on-accent);vertical-align:.2em;border-radius:999px;margin-left:.5em;padding:.1em .5em;font-size:.6em}.badge[data-astro-cid-y5vfisjn].draft{background:var(--color-rail);color:var(--color-text)}.meta[data-astro-cid-y5vfisjn],.skills[data-astro-cid-y5vfisjn]{font-family:var(--font-mono);font-size:var(--step--1);color:var(--color-muted)}.skills[data-astro-cid-y5vfisjn] a[data-astro-cid-y5vfisjn]{color:inherit;-webkit-text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);transition:color .15s,text-decoration-color .15s}.skills[data-astro-cid-y5vfisjn] a[data-astro-cid-y5vfisjn]:hover{color:var(--color-text);text-decoration-color:currentColor}.bullets[data-astro-cid-y5vfisjn]{margin-top:var(--space-xs);padding-left:1.25rem;list-style:square}.bullets[data-astro-cid-y5vfisjn] li+li[data-astro-cid-y5vfisjn]{margin-top:var(--space-2xs)}.foot[data-astro-cid-y5vfisjn]{align-items:baseline;gap:var(--space-2xs) var(--space-m);margin-top:var(--space-s);font-size:var(--step--1);flex-wrap:wrap;display:flex}.tip[data-astro-cid-tyfzhdjk]{margin-bottom:var(--space-l);color:var(--color-muted);font-size:var(--step--1);text-align:center}.groups[data-astro-cid-tyfzhdjk]{gap:var(--space-l);display:grid}dt[data-astro-cid-tyfzhdjk]{margin-bottom:var(--space-xs);font-weight:500}dd[data-astro-cid-tyfzhdjk]>ul[data-astro-cid-tyfzhdjk]{gap:var(--space-xs);flex-wrap:wrap;display:flex}.skill[data-astro-cid-tyfzhdjk]{border:1px solid var(--color-line);min-height:2.25rem;color:var(--color-muted);font:inherit;font-size:var(--step--1);background:0 0;border-radius:999px;align-items:center;gap:.45em;padding:0 .85em;display:inline-flex}button[data-astro-cid-tyfzhdjk].skill{color:var(--color-text);anchor-name:--skill;border-color:#0000}.count[data-astro-cid-tyfzhdjk]{font-family:var(--font-mono);color:var(--color-accent);font-size:.8em}.has-uses[data-astro-cid-tyfzhdjk]{anchor-scope:--skill;scroll-margin-top:calc(var(--nav-h) + var(--space-xl))}.has-uses[data-astro-cid-tyfzhdjk]:target button[data-astro-cid-tyfzhdjk].skill{outline:2px solid var(--color-accent);outline-offset:2px}.pop[data-astro-cid-tyfzhdjk]{max-width:min(22rem,100vw - 2rem);padding:var(--space-s) var(--space-m);border:1px solid var(--color-raised-edge);border-radius:var(--radius-s);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-pop)}.pop[data-astro-cid-tyfzhdjk]::backdrop{background:0 0}.pop[data-astro-cid-tyfzhdjk] ul{gap:var(--space-2xs);display:grid}.pop[data-astro-cid-tyfzhdjk] a{padding-block:.2rem;display:block}@supports (position-area:bottom){.pop[data-astro-cid-tyfzhdjk]{position-anchor:--skill;position-area:bottom span-right;position-try-fallbacks:flip-block, flip-inline;margin:var(--space-2xs) 0 0}}.pop-title[data-astro-cid-tyfzhdjk]{margin-bottom:var(--space-2xs);color:var(--color-muted);font-size:var(--step--1)}.page[data-astro-cid-ynzhr5qq]{max-width:var(--content-max);padding-top:var(--space-l)}.page[data-astro-cid-ynzhr5qq] h1{font-size:var(--step-3);margin-bottom:var(--space-xl)}.school[data-astro-cid-ynzhr5qq]+.school[data-astro-cid-ynzhr5qq],.skills[data-astro-cid-ynzhr5qq]{margin-top:var(--space-2xl)}.school[data-astro-cid-ynzhr5qq] header[data-astro-cid-ynzhr5qq]{padding-bottom:var(--space-m);border-bottom:1px solid var(--color-line)}.head[data-astro-cid-ynzhr5qq]{justify-content:space-between;align-items:baseline;gap:0 var(--space-m);flex-wrap:wrap;display:flex}.head[data-astro-cid-ynzhr5qq] h2{font-size:var(--step-2)}.meta[data-astro-cid-ynzhr5qq]{font-family:var(--font-mono);font-size:var(--step--1);color:var(--color-muted)}.note[data-astro-cid-ynzhr5qq]{margin-top:var(--space-2xs);font-size:var(--step--1);color:var(--color-muted)}.list[data-astro-cid-ynzhr5qq]{gap:var(--space-l);margin-top:var(--space-l);display:grid}.skills[data-astro-cid-ynzhr5qq] .section-title[data-astro-cid-ynzhr5qq]{margin-bottom:var(--space-xs)}.article[data-astro-cid-sgg5joot]{max-width:var(--content-max);padding-top:var(--space-l)}.back[data-astro-cid-sgg5joot]{font-size:var(--step--1);color:var(--color-muted)}header[data-astro-cid-sgg5joot]{margin-block:var(--space-m) var(--space-l)}header[data-astro-cid-sgg5joot] h1{font-size:var(--step-3)}.meta[data-astro-cid-sgg5joot]{margin-top:var(--space-xs);font-family:var(--font-mono);font-size:var(--step--1);color:var(--color-muted)}.prose[data-astro-cid-sgg5joot]{font-size:var(--step-0);line-height:1.65}.prose[data-astro-cid-sgg5joot] *+*{margin-top:1em}.prose[data-astro-cid-sgg5joot] h2{font-size:var(--step-2);margin-top:2em}.prose[data-astro-cid-sgg5joot] h3{font-size:var(--step-1);margin-top:1.6em}.prose[data-astro-cid-sgg5joot] img{border-radius:var(--radius-s)}.prose[data-astro-cid-sgg5joot] pre{padding:var(--space-m);border-radius:var(--radius-s);font-size:var(--step--1);overflow-x:auto}.prose[data-astro-cid-sgg5joot] code{font-family:var(--font-mono);font-size:.9em}.page[data-astro-cid-am3bdwpn]{padding-top:var(--space-l)}.page[data-astro-cid-am3bdwpn] h1{font-size:var(--step-3);margin-bottom:var(--space-xl);text-align:center}.cards[data-astro-cid-am3bdwpn]{gap:var(--space-m);grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));display:grid}.card[data-astro-cid-am3bdwpn]{padding:var(--space-m);border:1px solid var(--color-line);border-radius:var(--radius-s);background:var(--color-surface)}.card[data-astro-cid-am3bdwpn] h2{margin-bottom:var(--space-xs);font-size:var(--step-1);align-items:center;gap:.45em;display:flex}.card[data-astro-cid-am3bdwpn] h2 svg{color:var(--color-accent);flex:none}.card[data-astro-cid-am3bdwpn] p{color:var(--color-muted)}.photos[data-astro-cid-am3bdwpn]{gap:var(--space-xs);margin-top:var(--space-s);grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));display:grid}.photos[data-astro-cid-am3bdwpn] figure:first-child:nth-last-child(odd){grid-column:1/-1}.photos[data-astro-cid-am3bdwpn] img{aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--radius-s) - 2px);background:var(--well-bg);outline:.5px solid var(--color-photo-stroke);outline-offset:-.5px;width:100%;height:auto}.photos[data-astro-cid-am3bdwpn] figcaption{color:var(--color-muted);font-size:var(--step--1);margin-top:.3rem;line-height:1.3}.links[data-astro-cid-am3bdwpn]{gap:var(--space-s);margin-top:var(--space-s);flex-wrap:wrap;display:flex}.page[data-astro-cid-yjitjrjk]{max-width:var(--content-max);padding-top:var(--space-l)}.page[data-astro-cid-yjitjrjk] h1{font-size:var(--step-3);margin-bottom:var(--space-xl)}.list[data-astro-cid-yjitjrjk]{gap:var(--space-xl);display:grid}.scroll-cue[data-astro-cid-pu5xfkck]{min-height:44px;padding-inline:var(--space-s);color:var(--color-muted);justify-self:center;align-items:center;gap:.5em;text-decoration:none;display:flex}.scroll-cue[data-astro-cid-pu5xfkck]:hover{color:var(--color-text)}@supports (animation-timeline:scroll()){.scroll-cue[data-astro-cid-pu5xfkck]{animation:linear both cue-out,step-end both cue-hide;animation-timeline:scroll(root),scroll(root);animation-range:0 25svh}@media (prefers-reduced-motion:reduce){.scroll-cue[data-astro-cid-pu5xfkck]{animation-name:cue-blur-out,cue-hide}}}@keyframes cue-out{to{opacity:0;translate:0 -1.5rem}}@keyframes cue-blur-out{to{opacity:0;filter:blur(6px)}}@keyframes cue-hide{to{visibility:hidden}}.social[data-astro-cid-y2qsmizv]{gap:var(--space-2xs);display:flex}a[data-astro-cid-y2qsmizv]{width:44px;height:44px;color:var(--color-muted);border-radius:999px;place-items:center;transition:color .2s;display:grid}a[data-astro-cid-y2qsmizv]:hover{color:var(--color-text)}.hero[data-astro-cid-ge2uvauf]{min-height:calc(100svh - var(--nav-h));padding-bottom:var(--space-l);grid-template-rows:1fr auto;display:grid}.hero-inner[data-astro-cid-ge2uvauf]{place-content:center;justify-items:center;gap:var(--space-l);text-align:center;max-width:44rem;padding-block:var(--space-l);display:grid}@media (width>=48rem){.hero-inner[data-astro-cid-ge2uvauf]{text-align:start;place-items:center start;gap:var(--space-xl);grid-template-columns:1fr auto}}.hero-text[data-astro-cid-ge2uvauf]{justify-items:center;gap:var(--space-s);display:grid}@media (width>=48rem){.hero-text[data-astro-cid-ge2uvauf]{order:-1;justify-items:start}}.hero-text[data-astro-cid-ge2uvauf] .social{margin-inline:-.6rem}h1[data-astro-cid-ge2uvauf]{font-size:var(--step-3);color:var(--color-text)}.name-mark[data-astro-cid-ge2uvauf]{width:auto;height:.93em;margin-inline-start:.03em}.tagline[data-astro-cid-ge2uvauf]{max-width:22em}.photo[data-astro-cid-ge2uvauf]{aspect-ratio:301/375;object-fit:cover;border-radius:var(--radius-photo);outline:.5px solid var(--color-photo-stroke);outline-offset:-.5px;width:clamp(10rem,40vw,15rem);box-shadow:var(--shadow-photo);order:-1}@media (width>=48rem){.photo[data-astro-cid-ge2uvauf]{order:0}}.hero-text[data-astro-cid-ge2uvauf]{animation:.45s cubic-bezier(.2,.7,.2,1) both rise}@media (prefers-reduced-motion:reduce){.hero-text[data-astro-cid-ge2uvauf]{animation-name:unblur}}@keyframes rise{0%{opacity:0;translate:0 .5rem}}@keyframes unblur{0%{opacity:0;filter:blur(6px)}}.entry[data-astro-cid-m6o4rvv2]{grid-template-columns:var(--marker-w) 1fr;column-gap:var(--col-gap);--gap-after:clamp(3.5rem, 16svh, 8rem);grid-template-areas:"rail date""rail body";display:grid;position:relative}@media (width>=40rem){.entry[data-astro-cid-m6o4rvv2]{grid-template-columns:var(--date-w) var(--marker-w) 1fr 6rem;grid-template-areas:"date rail body logo"}}.entry[data-astro-cid-m6o4rvv2]:before{content:"";background:var(--color-rail);grid-area:1/rail/-1;justify-self:center;width:4px}.entry[data-astro-cid-m6o4rvv2]:first-child:before{margin-top:calc(var(--marker-top) + var(--marker-h) / 2);border-start-start-radius:2px;border-start-end-radius:2px}.entry[data-astro-cid-m6o4rvv2]:last-child:before{border-end-end-radius:2px;border-end-start-radius:2px}.entry[data-astro-cid-m6o4rvv2]:last-child{--gap-after:clamp(6rem, 40svh, 18rem)}.date[data-astro-cid-m6o4rvv2]{font-family:var(--font-mono);font-size:var(--step--1);line-height:var(--marker-h);white-space:nowrap;grid-area:date}@media (width>=40rem){.date[data-astro-cid-m6o4rvv2]{text-align:end}}.marker[data-astro-cid-m6o4rvv2]{height:var(--marker-h);margin-top:var(--marker-top);grid-area:1/rail/-1;align-self:start;place-items:center;display:grid}.dot[data-astro-cid-m6o4rvv2]{width:var(--dot);height:var(--dot);background:var(--color-marker);border-radius:999px}.body[data-astro-cid-m6o4rvv2]{min-width:0;padding-bottom:var(--gap-after);grid-area:body}.body[data-astro-cid-m6o4rvv2] h3{font-size:var(--step-0);font-weight:500;line-height:var(--marker-h)}.org[data-astro-cid-m6o4rvv2]{font-weight:400}.bullets[data-astro-cid-m6o4rvv2]{margin-top:var(--space-2xs);font-size:var(--step--1);padding-left:1.25rem;list-style:square}.bullets[data-astro-cid-m6o4rvv2] li::marker{font-size:.7em}.bullets[data-astro-cid-m6o4rvv2] li+li[data-astro-cid-m6o4rvv2]{margin-top:.15rem}.read-more[data-astro-cid-m6o4rvv2]{margin-top:var(--space-xs);font-size:var(--step--1);display:inline-block}.logo[data-astro-cid-m6o4rvv2]{grid-area:logo;width:6rem;height:auto;display:none}@media (width>=40rem){.logo[data-astro-cid-m6o4rvv2]{display:block}}.probe[data-astro-cid-m6o4rvv2]{top:var(--marker-top);width:1px;height:var(--marker-h);pointer-events:none;visibility:hidden;position:absolute;left:0}@supports (animation-timeline:view()){.entry[data-astro-cid-m6o4rvv2]{timeline-scope:--arrive;view-timeline:--active block;view-timeline-inset:var(--dot-y) calc(100% - var(--dot-y) - var(--marker-h))}.probe[data-astro-cid-m6o4rvv2]{view-timeline:--arrive block;view-timeline-inset:var(--dot-y) 0}.dot[data-astro-cid-m6o4rvv2]{animation:linear both dot-arrive,step-start both dot-gone;animation-timeline:--arrive,--arrive;animation-range:contain 50%,exit}.body[data-astro-cid-m6o4rvv2],.date[data-astro-cid-m6o4rvv2],.logo[data-astro-cid-m6o4rvv2]{animation:linear both entry-focus;animation-timeline:--active;animation-range:cover}}@keyframes dot-arrive{0%{width:.75rem;height:.25rem}}@keyframes dot-gone{0%{opacity:1}to{opacity:0}}@keyframes entry-focus{0%{opacity:.75}3%,90%{opacity:1}to{opacity:.75}}.timeline-section[data-astro-cid-3xih677i]{padding-top:var(--space-l)}.section-title[data-astro-cid-3xih677i]{margin-bottom:var(--space-xl)}.timeline[data-astro-cid-3xih677i]{--dot-y:max(var(--nav-h) + 5rem, 38svh);--marker-h:1.5rem;--marker-w:1.5rem;--dot:.875rem;--date-w:6.5rem;--col-gap:var(--space-s);--marker-top:var(--marker-h);--rail-left:0px;max-width:50rem;position:relative}@media (width>=40rem){.timeline[data-astro-cid-3xih677i]{--col-gap:var(--space-m);--marker-top:0px;--rail-left:calc(var(--date-w) + var(--col-gap))}}.track[data-astro-cid-3xih677i]{top:var(--marker-top);bottom:calc((var(--dot) - var(--marker-h)) / 2);left:var(--rail-left);width:var(--marker-w);pointer-events:none;clip-path:inset(0 -1rem calc((var(--marker-h) - var(--dot)) / 2));display:none;position:absolute}.now[data-astro-cid-3xih677i]{top:var(--dot-y);z-index:1;height:var(--marker-h);place-items:center;display:grid;position:sticky}.now-dot[data-astro-cid-3xih677i]{width:var(--dot);height:var(--dot);background:var(--color-marker);border-radius:999px;position:relative}.now-dot[data-astro-cid-3xih677i]:after{content:"";background:linear-gradient(transparent, var(--color-marker) 42%, var(--color-marker) 58%, transparent);z-index:-1;border-radius:2px;width:4px;height:6.5rem;position:absolute;top:50%;left:50%;translate:-50% -50%}@supports (animation-timeline:view()){.track[data-astro-cid-3xih677i]{view-timeline:--track block;view-timeline-inset:var(--dot-y) calc(100% - var(--dot-y) - var(--marker-h));display:block}.now[data-astro-cid-3xih677i]{animation:step-end both now-in;animation-timeline:--track;animation-range:cover contain 0%}}@keyframes now-in{0%{opacity:0}to{opacity:1}}.more[data-astro-cid-3xih677i]{text-align:center;margin-top:var(--space-l)}@supports (animation-timeline:view()){.section-title[data-astro-cid-3xih677i]{animation:linear both heading-in;animation-timeline:view();animation-range:entry 20%}@media (prefers-reduced-motion:reduce){.section-title[data-astro-cid-3xih677i]{animation-name:heading-unblur}}}@keyframes heading-in{0%{opacity:0;translate:0 1.5rem}}@keyframes heading-unblur{0%{opacity:0;filter:blur(6px)}}.education[data-astro-cid-mtx6cv36]{max-width:var(--content-max);padding-top:var(--space-xl)}.education[data-astro-cid-mtx6cv36] ul{gap:var(--space-m);margin-top:var(--space-l);display:grid}.head[data-astro-cid-mtx6cv36]{justify-content:space-between;align-items:baseline;gap:0 var(--space-m);flex-wrap:wrap;display:flex}.head[data-astro-cid-mtx6cv36] h3{font-size:var(--step-1)}.head[data-astro-cid-mtx6cv36] a{text-decoration:none}.meta[data-astro-cid-mtx6cv36]{font-family:var(--font-mono);font-size:var(--step--1);color:var(--color-muted)}.more[data-astro-cid-mtx6cv36]{margin-top:var(--space-l);text-align:center}
/*$vite$:1*/