@font-face{font-family:Michroma;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/michroma-latin-ext-400-normal.BeYM1uOO.woff2)format("woff2"),url(/_astro/michroma-latin-ext-400-normal.DlRaauac.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:Michroma;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/michroma-latin-400-normal.4gS0VCia.woff2)format("woff2"),url(/_astro/michroma-latin-400-normal.C7Pn7qca.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}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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}:root{color-scheme:dark;--bg:#05050d;--bg-glow:#12204a;--ink:#eef3ff;--muted:#a9b1cc;--line:#8ca0ff29;--accent:#00e5ff;--accent-2:#ff3dcb;--signal:#39ff88;--violet:#8b7cff;--card:#070816d6;--card-solid:#0a0b1c;--display:"Michroma", "Geist Variable", ui-sans-serif, system-ui, sans-serif;--body:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono Variable", ui-monospace, "SFMono-Regular", monospace;--ease:cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box}html{background:var(--bg)}body{min-height:100dvh;color:var(--ink);font:400 16px/1.55 var(--body);background:radial-gradient(120% 70% at 50% -10%, var(--bg-glow) 0%, transparent 55%), url(/neon-node-tile.svg) 0 0 / 1600px 1600px, var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:scroll;margin:0}.nn-live body{background:radial-gradient(120% 70% at 50% -10%, var(--bg-glow) 0%, var(--bg) 55%)}::selection{background:var(--accent);color:var(--bg)}#bg{z-index:0;pointer-events:none;width:100%;height:100%;display:block;position:fixed;inset:0}.screen{z-index:2;width:100%;max-width:560px;min-height:100dvh;padding:max(22px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;gap:18px;margin:0 auto;display:flex;position:relative}.top{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{outline-offset:4px;border-radius:14px;display:inline-flex}.brand:focus-visible{outline:2px solid var(--signal)}.domain{font:500 12px/1 var(--mono);letter-spacing:.08em;color:var(--muted)}.mark{isolation:isolate;border-radius:14px;place-items:center;width:48px;height:48px;transition:box-shadow .3s;display:inline-grid;position:relative;overflow:hidden;box-shadow:0 0 22px -6px #00e5ff8c}.mark:before{content:"";background:conic-gradient(var(--accent), var(--signal), var(--accent-2), var(--violet), var(--accent));animation:8s steps(80,end) infinite turn;position:absolute;inset:-50%}.mark-face{background:var(--card-solid);border-radius:12.5px;place-items:center;display:grid;position:absolute;inset:1.5px}.jc{filter:drop-shadow(0 0 5px #00e5ff99);width:70%;height:auto;transition:filter .3s;overflow:visible}.jc path{fill:url(#jc-fill);fill-opacity:0;stroke:url(#jc-fill);stroke-width:120px;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 1.4s var(--ease) .15s forwards, fill-in .6s ease 1.1s forwards}.jc path+path{animation-delay:.45s,1.3s}.brand:hover .mark,.brand:focus-visible .mark{box-shadow:0 0 28px -4px #00e5ffcc}.brand:hover .jc,.brand:focus-visible .jc{filter:drop-shadow(0 0 8px #00e5ffe6)drop-shadow(0 0 16px #ff3dcb80)}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.card{--mx:50%;--my:50%;isolation:isolate;background:var(--card);border:1px solid var(--line);min-width:0;color:inherit;animation:rise .8s var(--ease) both;transition:transform .3s var(--ease), box-shadow .3s ease;border-radius:14px;flex-direction:column;gap:10px;padding:18px;text-decoration:none;display:flex;position:relative;overflow:hidden}.grid>:nth-child(2){animation-delay:70ms}.grid>:nth-child(3){animation-delay:.14s}.grid>:nth-child(4){animation-delay:.21s}.grid>:nth-child(5){animation-delay:.28s}.grid>:nth-child(6){animation-delay:.35s}.grid>:nth-child(n+7){animation-delay:.42s}.card:before{content:"";z-index:-1;opacity:0;background:radial-gradient(420px circle at var(--mx) var(--my), #00e5ff21, transparent 60%);transition:opacity .3s;position:absolute;inset:0}.card:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--mx) var(--my), var(--accent), #39ff88b3 40%, transparent 70%);-webkit-mask-composite:xor;padding:1px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.card:hover:before,.card:hover:after,.card:focus-visible:before,.card:focus-visible:after{opacity:1}a.card:hover,a.card:focus-visible{box-shadow:0 18px 50px -24px var(--accent);transform:translateY(-3px)}a.card:focus-visible{outline:2px solid var(--signal);outline-offset:3px}a.card:active{transform:translateY(0)scale(.99)}.eyebrow{font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}.profile{flex-direction:row;grid-column:span 2;align-items:center;gap:18px;padding:20px}.avatar{isolation:isolate;border-radius:29px;flex:none;width:104px;height:104px;position:relative;overflow:hidden;box-shadow:0 0 34px -6px #00e5ff73}.avatar:before{content:"";background:conic-gradient(var(--accent), var(--signal), var(--accent-2), var(--accent));animation:7s steps(70,end) infinite turn;position:absolute;inset:-50%}.avatar img{box-sizing:border-box;object-fit:cover;border:3px solid var(--bg);border-radius:26px;width:calc(100% - 6px);height:calc(100% - 6px);display:block;position:absolute;inset:3px}.ident{flex-direction:column;gap:8px;min-width:0;display:flex}.name{font:400 clamp(20px, 5.8vw, 26px)/1.08 var(--display);letter-spacing:.04em;text-transform:uppercase;text-wrap:balance;background:linear-gradient(100deg, var(--ink) 0%, var(--ink) 38%, var(--signal) 46%, var(--accent) 54%, var(--ink) 62%, var(--ink) 100%) 0 0 / 260% 100%;color:#0000;filter:drop-shadow(0 0 18px #00e5ff61);-webkit-background-clip:text;background-clip:text;margin:0;animation:7s cubic-bezier(.6,0,.4,1) 3 sheen}.name span{display:block}.tag{font:500 12px/1.5 var(--mono);letter-spacing:.04em;color:var(--signal);margin:0}.about{grid-column:span 2}.bio{color:#dce2f5;max-width:58ch;margin:0;font-size:15.5px}.link{aspect-ratio:1;justify-content:space-between}.link .icon{color:var(--accent);filter:drop-shadow(0 0 10px #00e5ff80);display:flex}.link.alt .icon{color:var(--accent-2);filter:drop-shadow(0 0 10px #ff3dcb80)}.arrow{color:var(--muted);transition:transform .3s var(--ease), color .3s ease;position:absolute;top:16px;right:16px}a.card:hover .arrow,a.card:focus-visible .arrow{color:var(--signal);transform:translate(3px,-3px)}.link-text{flex-direction:column;gap:3px;min-width:0;display:flex}.link-label{font:600 18px/1.2 var(--body);letter-spacing:-.01em}.link-handle{font:400 13px/1.3 var(--mono);color:var(--muted);overflow-wrap:anywhere}.link.m-wide{aspect-ratio:auto;flex-direction:row;grid-column:span 2;justify-content:flex-start;align-items:center;gap:16px;min-height:84px;padding-right:48px}.link.m-wide .arrow{margin-top:-9px;top:50%}.resume{grid-column:1/-1;gap:12px}.resume-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.resume h2{font:600 18px/1.2 var(--body);letter-spacing:-.01em;margin:0}.pill{font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--signal);background:#39ff8814;border:1px solid #39ff8873;border-radius:999px;padding:6px 10px}.pill--go{color:var(--accent);background:#00e5ff14;border-color:#00e5ff73}.progress{background:var(--line);border-radius:2px;height:2px;position:relative;overflow:hidden}.progress:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), var(--signal), transparent);width:38%;animation:2.8s cubic-bezier(.6,0,.4,1) 4 sweep;position:absolute;inset:0}.note{color:var(--muted);margin:0;font-size:14px}.foot{font:400 12px/1.4 var(--mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:auto;padding:6px 2px 0;display:flex}.foot a{color:inherit;text-decoration:none}.foot a:hover,.foot a:focus-visible{color:var(--signal)}.page{flex-direction:column;gap:14px;display:flex}.page .card{padding:22px}.big{font:400 clamp(30px, 9vw, 56px)/1.05 var(--display);letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(100deg, var(--accent), var(--signal) 50%, var(--accent-2));color:#0000;filter:drop-shadow(0 0 18px #00e5ff59);-webkit-background-clip:text;background-clip:text;margin:0}.back{font:500 13px/1 var(--mono);letter-spacing:.06em;flex-direction:row;align-self:flex-start;align-items:center;gap:10px;padding:12px 18px}.page .back{padding:12px 18px}.r-name{font:400 clamp(24px, 7vw, 40px)/1.1 var(--display);letter-spacing:.04em;text-transform:uppercase;margin:0}.r-headline{font:500 13px/1.5 var(--mono);color:var(--signal);margin:0}.r-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.r-item h3{margin:0;font-size:16px;font-weight:600}.r-meta{font:400 13px/1.4 var(--mono);color:var(--muted);margin:2px 0 6px}.r-item ul{color:#dce2f5;margin:0;padding-left:1.1em}.r-item p{color:#dce2f5;margin:0}.r-skills{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.r-skills dt{font-weight:600}.r-skills dd{color:#dce2f5;margin:0}.inline-link{color:var(--accent);text-underline-offset:3px}.inline-link:hover,.inline-link:focus-visible{color:var(--signal)}@media (width>=880px){.screen{max-width:980px;padding-top:max(44px, env(safe-area-inset-top));gap:22px}.mark{width:52px;height:52px}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.profile{text-align:center;flex-direction:column;grid-area:1/1/span 2/span 2;justify-content:center;gap:24px;padding:32px}.profile .ident{align-items:center;gap:12px}.avatar{border-radius:39px;width:156px;height:156px}.avatar img{border-radius:36px}.name{font-size:34px}.tag{font-size:13px}.about{grid-area:1/3/auto/span 2;padding:22px}.link{padding:20px}.link.m-wide{aspect-ratio:1;flex-direction:column;grid-column:auto;justify-content:space-between;align-items:stretch;min-height:0;padding-right:20px}.link.m-wide .arrow{margin-top:0;top:16px}.link.d-span2,.link.d-span4{aspect-ratio:auto;flex-direction:row;justify-content:flex-start;align-items:center;gap:16px;min-height:84px;padding-right:48px}.link.d-span2{grid-column:span 2}.link.d-span4{grid-column:span 4}.link.d-span2 .arrow,.link.d-span4 .arrow{margin-top:-9px;top:50%}.resume{padding:22px}}@keyframes rise{0%{filter:blur(6px);transform:translateY(14px)scale(.985)}}@keyframes turn{to{transform:rotate(1turn)}}@keyframes sheen{0%,35%{background-position:100% 0}70%,to{background-position:0 0}}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(270%)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes fill-in{to{fill-opacity:1;stroke-width:70px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.jc path{stroke-dashoffset:0;fill-opacity:1;stroke-width:70px}}@media (prefers-contrast:more){.card{background:var(--card-solid)}}@media print{@page{size:letter;margin:.6in}html,body{color:#000;background:#fff}#bg,.grain,.top,.foot,.no-print{display:none}.screen{max-width:none;min-height:0;padding:0}.card{-webkit-backdrop-filter:none;background:0 0;border:0;padding:0 0 12pt;animation:none}.card:before,.card:after{display:none}.r-name,.big{color:#000;filter:none;background:0 0}.r-headline,.eyebrow,.r-meta,.r-item p,.r-item ul,.r-skills dd,.bio,.inline-link{color:#000}a[href^=http]:after{content:" (" attr(href) ")";font-size:9pt}}
