@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#0b0b0d;--ground-raised:#131317;--line:#24242b;--text:#cfd0d6;--text-strong:#f3f3f5;--text-muted:#8a8b95;--ember:#ff6a2b;--ember-glow:color-mix(in oklab, var(--ember) 35%, transparent);--steel:#7f8da4;--template-violet:#7c5cff;--template-cyan:#23c4ff;--template-lilac:#e6e1ff;--template-muted:#b8b8c8;--template-white:#fff;--template-title-lilac:#b9a8ff;--template-title-cyan:#7fd8ff;--template-badge-edge:color-mix(in srgb, var(--template-white) 18%, transparent);--template-badge-fill:color-mix(in srgb, var(--template-white) 6%, transparent);--template-card-edge:color-mix(in srgb, var(--template-white) 12%, transparent);--template-card-fill:color-mix(in srgb, var(--template-white) 5%, transparent);--template-tap-fill:color-mix(in srgb, var(--template-white) 8%, transparent);--font-sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--page-width:72rem;--measure:66ch;--gutter:clamp(1.25rem, 4vw, 3rem);--radius:.5rem;--radius-pill:999px;--ease-out:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--ground);color:var(--text);font-family:var(--font-sans);-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:100%;line-height:1.6}body,h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}h3{color:var(--text-strong);font-weight:650}a{color:var(--text-strong);-webkit-text-decoration-color:var(--ember);text-decoration-color:var(--ember);text-underline-offset:.2em;text-decoration-thickness:.08em}a:hover{color:var(--ember)}:focus-visible{outline:2px solid var(--ember);outline-offset:3px}.skip-link{z-index:10;background:var(--text-strong);color:var(--ground);border-radius:var(--radius);padding:.5rem .9rem;position:absolute;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.hero{align-items:center;min-height:min(100svh,56rem);padding-block:clamp(4rem,10vh,7rem);display:grid;position:relative;overflow:clip}.hero-stack,main,.footer{width:100%;max-width:var(--page-width);padding-inline:var(--gutter);margin-inline:auto}.hero-stack{display:grid}.hero-stack>*{grid-area:1/1}.hero-template{visibility:hidden;pointer-events:none}.hero-final{transition:opacity .5s var(--ease-out);align-content:center;gap:2rem;display:grid}.hero-title{color:var(--text-strong);letter-spacing:-.035em;gap:.1em;font-size:clamp(2.4rem,7vw,5.5rem);font-weight:750;line-height:1.02;display:grid}.hero-line{width:fit-content}.hero-line-first{color:var(--text-muted);letter-spacing:-.01em;margin-bottom:.5em;font-size:.42em;font-weight:500}.hero-line-greeting{color:var(--ember);align-items:center;gap:.35em;display:flex}.hero-word{color:color-mix(in oklab, currentcolor, var(--ember) calc(var(--heat,0) * 100%));text-shadow:0 0 calc(var(--heat,0) * .5em) var(--ember-glow);display:inline-block;position:relative}.hero-word:after{content:"";background:linear-gradient(112deg, transparent 47%, var(--ground) 47.5% 49.5%, transparent 50%), linear-gradient(68deg, transparent 63%, var(--ground) 63.5% 64.8%, transparent 65.3%);opacity:var(--crack,0);pointer-events:none;position:absolute;inset:8% -3%}.hero-portrait,.about-portrait{object-fit:cover;border-radius:50%}.hero-portrait{border:.04em solid var(--ember);width:.9em;height:.9em}.about-portrait{border:2px solid var(--ember);width:8rem;height:8rem}.hero-intro{max-width:40ch;font-size:clamp(1.05rem,1.6vw,1.3rem)}.link-row{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.hero-nav ul{width:fit-content}.hero-nav a{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.9rem}.hero-tap{display:none}.hero-controls{right:var(--gutter);z-index:3;gap:.5rem;display:flex;position:absolute;bottom:1.25rem}:root:not([data-bundle=running]) .hero-controls,:root:is([data-stage=template],[data-stage=invade]) .hero-controls{display:none}.hero-control{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--ground-raised);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;padding:.3rem .8rem;font-size:.75rem}.hero-control:hover{border-color:var(--ember);color:var(--ember)}.hero-systems{right:var(--gutter);z-index:3;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in oklab, var(--ground) 88%, transparent);min-width:16rem;color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;gap:.15rem;margin:0;padding:.75rem 1rem;font-size:.75rem;display:grid;position:absolute;bottom:3.5rem}.hero-systems-row{justify-content:space-between;gap:1.5rem;display:flex}.hero-systems-row dt{color:var(--steel)}.hero-systems-row dd{color:var(--text-strong);margin:0}main{gap:clamp(5rem,12vw,9rem);padding-block:clamp(3rem,8vw,6rem);display:grid}.section{gap:1.75rem;scroll-margin-top:2rem;display:grid}.section-heading{color:var(--text-strong);letter-spacing:-.025em;font-size:clamp(1.8rem,4vw,2.75rem);font-weight:700;line-height:1.1}.section-meta,.career-period,.tech{color:var(--steel);font-family:var(--font-mono);letter-spacing:.02em;font-size:.85rem}.subheading,.career-role{font-size:1.1rem}.lead,.closing,.statements{font-size:1.15rem}.closing{border-left:2px solid var(--ember);color:var(--text-strong);padding-left:1rem}p{max-width:var(--measure)}.media{background:var(--ground-raised);border-radius:var(--radius);border:1px solid var(--line);width:100%;height:auto;display:block}.media-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));align-items:start;gap:1rem;display:grid}.blocks{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1.5rem 2.5rem;display:grid}.block{align-content:start;gap:.4rem;display:grid}.block-title{font-size:1rem}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tags li{border:1px solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-mono);padding:.2rem .65rem;font-size:.8rem}.career-list{border-left:1px solid var(--line);gap:2rem;padding-left:1.5rem;display:grid}.career-item{gap:.5rem;display:grid}.career-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.career-org{color:var(--text-muted);font-weight:450}.career-org:before{content:" · "}.career-points li:before,.statements li:before{content:"— ";color:var(--ember)}.career-projects{gap:.75rem;margin-top:.25rem;display:grid}.career-projects strong{color:var(--text-strong);font-weight:600}.project{border-top:1px solid var(--line);gap:1rem;padding-top:2.5rem;display:grid}.project-title{letter-spacing:-.015em;font-size:1.35rem}.statements{max-width:var(--measure);gap:.75rem;display:grid}.facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1.5rem 3rem;display:grid}.contact-email{font-size:clamp(1.3rem,3vw,2rem);font-weight:650}.email-pending{color:var(--text-muted);font-size:1rem;font-weight:450}.footer{border-top:1px solid var(--line);color:var(--text-muted);gap:.35rem;padding-block:3rem 4rem;font-size:.85rem;display:grid}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-final{transition:none}}.hero-template{text-align:center;align-content:center;justify-items:center;gap:1.5rem;display:grid}.template-blob{aspect-ratio:1;filter:blur(70px);opacity:.55;border-radius:50%;width:clamp(14rem,34vw,30rem);position:absolute}.template-blob-left{background:radial-gradient(circle, var(--template-violet), transparent 70%);top:-10%;left:4%}.template-blob-right{background:radial-gradient(circle, var(--template-cyan), transparent 70%);bottom:-14%;right:2%}.template-badge{border:1px solid var(--template-badge-edge);border-radius:var(--radius-pill);background:var(--template-badge-fill);color:var(--template-lilac);padding:.35rem .9rem;font-size:.85rem;font-weight:550;position:relative}.template-title{background:linear-gradient(120deg, var(--template-white) 20%, var(--template-title-lilac) 55%, var(--template-title-cyan) 90%);color:#0000;letter-spacing:-.04em;-webkit-background-clip:text;background-clip:text;max-width:16ch;font-size:clamp(2.6rem,7vw,5.25rem);font-weight:800;line-height:1.05;position:relative}.template-subtitle{max-width:44ch;color:var(--template-muted);font-size:clamp(1rem,1.6vw,1.2rem);position:relative}.template-cta{border-radius:var(--radius-pill);background:linear-gradient(120deg, var(--template-violet), var(--template-cyan));box-shadow:0 10px 40px color-mix(in srgb, var(--template-violet) 45%, transparent);color:var(--template-white);padding:.8rem 1.6rem;font-weight:650;position:relative}.template-cards{grid-template-columns:repeat(3,minmax(0,15rem));gap:1rem;margin-top:1rem;display:grid}.template-card{border:1px solid var(--template-card-edge);background:var(--template-card-fill);color:var(--template-muted);text-align:left;border-radius:1rem;gap:.35rem;padding:1.1rem;font-size:.9rem;display:grid;position:relative}.template-card-icon{font-size:1.4rem}.template-card-title{color:var(--template-white);font-weight:650}@media (width<=48rem){.template-cards{grid-template-columns:minmax(0,20rem)}.template-card:nth-child(n+2){display:none}}:root:is([data-stage=template],[data-stage=invade]) .hero-template{visibility:visible}:root:is([data-stage=template],[data-stage=invade]) .hero-final{opacity:0;transition:none}:root:is([data-stage=template],[data-stage=invade]) .hero-final a{visibility:hidden}:root:is([data-stage=template],[data-stage=invade]) .template-blob{animation:9s ease-in-out infinite alternate template-float}:root:is([data-stage=template],[data-stage=invade]) .template-blob-right{animation-delay:-4.5s}:root[data-stage=template][data-start=tap] .hero-tap{z-index:2;color:var(--template-lilac);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:end;padding:0 1rem 2rem;display:flex;position:absolute;inset:0}:root[data-stage=template][data-start=tap] .hero-tap .hero-tap-label{border-radius:var(--radius-pill);background:var(--template-tap-fill);padding:.5rem 1rem;font-size:.9rem;animation:1.6s ease-in-out infinite alternate template-pulse}:root[data-stage=invade] .hero[data-upgrade=css] [data-template-piece]{animation:.6s cubic-bezier(.55,0,.9,.45) forwards template-piece-fall}:root[data-stage=invade] .hero[data-upgrade=css] [data-template-piece]:nth-child(2n){--fall-turn:-1}.hero[data-upgrade=engine] .hero-canvas{z-index:1;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hero[data-upgrade=engine] .hero-template{opacity:0;transition:opacity .2s var(--ease-out), visibility 0s linear .2s}.hero[data-upgrade=engine] :is(.hero-line,.hero-intro,.hero-nav){transition:opacity .2s var(--ease-out), visibility 0s}.hero[data-upgrade=engine] :is(.hero-line-greeting,.hero-intro,.hero-nav){transition-duration:.4s,0s}.hero[data-upgrade=engine] .template-blob{opacity:calc(.55 * (1 - var(--heat,0)));-webkit-mask-image:radial-gradient(circle, #000 calc((1 - var(--heat,0)) * 70%), transparent calc((1 - var(--heat,0)) * 70% + 10%));mask-image:radial-gradient(circle, #000 calc((1 - var(--heat,0)) * 70%), transparent calc((1 - var(--heat,0)) * 70% + 10%));animation:none}.hero[data-upgrade=engine] [data-template-piece]:not(.template-blob){filter:drop-shadow(0 0 calc(var(--heat,0) * .9rem) color-mix(in oklab, var(--ember) calc(var(--heat,0) * 100%), transparent))}.hero[data-upgrade=engine] [data-template-piece]:not(.template-blob):after{content:"";border-radius:inherit;background:linear-gradient(115deg, transparent 44%, var(--ground) 44.5% 46%, transparent 46.5%), linear-gradient(62deg, transparent 61%, var(--ground) 61.5% 62.6%, transparent 63.1%);opacity:var(--crack,0);pointer-events:none;position:absolute;inset:0}.hero[data-upgrade=engine] :is(.template-card,.template-badge){border-color:color-mix(in oklab, var(--template-card-edge), var(--ember) calc(var(--heat,0) * 100%))}:root:is([data-stage=template],[data-stage=invade]) .hero[data-upgrade=engine] .hero-template{opacity:1;transition:none}:root:is([data-stage=template],[data-stage=invade]) .hero[data-upgrade=engine] :is(.hero-line-first,.hero-line-third){opacity:0;visibility:hidden;transition:none}:root[data-stage=invade] .hero[data-upgrade=engine] .hero-final{opacity:1}:root:is([data-stage=template],[data-stage=invade],[data-stage=upgrade]) .hero[data-upgrade=engine] :is(.hero-line-greeting,.hero-intro,.hero-nav){opacity:0;visibility:hidden;transition:none}@keyframes template-piece-fall{to{transform:translate3d(0, 70vh, 0) rotate(calc(var(--fall-turn,1) * 16deg));opacity:0}}@keyframes template-float{to{transform:translate(6%,8%)scale(1.08)}}@keyframes template-pulse{to{opacity:.6}}
