@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}}:root{--ink:#f1f3ef;--muted:#aeb5b2;--paper:#1b1e1f;--surface:#222627;--surface-2:#292d2e;--surface-3:#303536;--green:#83d3a3;--lime:#baf08a;--line:#eef2ed1f;--line-strong:#eef2ed33}*{box-sizing:border-box}html{scroll-behavior:smooth;max-width:100%;scroll-padding-top:104px;overflow-x:clip}body{background:radial-gradient(circle at 8% 4%, #65ae8014, transparent 28%), radial-gradient(circle at 92% 34%, #8da0960d, transparent 26%), var(--paper);max-width:100%;color:var(--ink);font-family:var(--font-geist-sans), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}main{z-index:1;position:relative}img{max-width:100%}a{color:inherit;text-decoration:none}svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:1em;height:1em}.shell{width:min(1180px,100% - 48px);margin-inline:auto}.section{padding-block:124px}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.14em;font:600 12px/1.5 var(--font-geist-mono);margin:0}.kicker{color:var(--green)}.ambient-elements{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient-ring,.ambient-dot{will-change:transform;display:block;position:absolute}[data-parallax-speed]{translate:0 var(--parallax-y,0px);will-change:translate, transform}.ambient-ring{border:1px solid #baf08a2b;border-radius:50%;width:92px;height:92px;box-shadow:inset 0 0 0 12px #baf08a05}.ambient-ring:after{content:"";background:var(--lime);border-radius:50%;width:7px;height:7px;position:absolute;top:9px;right:14px;box-shadow:0 0 18px #baf08a4d}.ambient-ring-one{animation:15s ease-in-out infinite alternate ambientDriftOne;top:22%;right:3.5%}.ambient-ring-two{border-style:dashed;width:56px;height:56px;animation:18s ease-in-out infinite alternate ambientDriftTwo;top:63%;left:4%}.ambient-dot{background:#baf08ab8;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 8px #baf08a0b,0 0 24px #baf08a33}.ambient-dot-one{animation:11s ease-in-out infinite alternate ambientDot;top:46%;left:8%}.ambient-dot-two{animation:14s ease-in-out 1.8s infinite alternate-reverse ambientDot;bottom:14%;right:10%}.scroll-progress-rail{background:#eef2ed1a;width:1px;height:148px;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.scroll-progress-rail:before{content:"SCROLL";color:#eef2ed47;writing-mode:vertical-rl;font:600 8px/1 var(--font-geist-mono);letter-spacing:.22em;position:absolute;bottom:0;right:9px}.scroll-progress-rail i{background:linear-gradient(to bottom, var(--lime), var(--green));transform-origin:top;will-change:transform;display:block;position:absolute;inset:0;transform:scaleY(0);box-shadow:0 0 16px #baf08a47}.site-header{z-index:50;border:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#232728e0;border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:14px;width:min(1110px,100% - 32px);min-height:62px;padding:7px 8px 7px 12px;display:grid;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 20px 60px #00000038}.site-header nav{color:#b8bfbb;align-items:center;gap:12px;min-width:0;font-size:13px;display:flex}.mobile-nav-bar{display:none}.nav-sections{align-items:center;gap:4px;display:flex}.nav-sections a,.text-link{transition:color .25s,background .25s,transform .25s}.nav-sections a{border-radius:7px;padding:10px 12px;position:relative}.nav-sections a:after{content:"";background:var(--lime);opacity:0;border-radius:999px;width:16px;height:2px;transition:opacity .25s,transform .25s;position:absolute;bottom:5px;left:50%;transform:translate(-50%)scaleX(.25)}.nav-sections a:hover,.nav-sections a:focus-visible{color:var(--ink);background:#ffffff0e}.nav-sections a.active{color:var(--ink);background:#baf08a17}.nav-sections a.active:after{opacity:1;transform:translate(-50%)scaleX(1)}.text-link:hover{color:var(--lime)}.header-contact{background:var(--lime);color:#101510;border-radius:8px;align-items:center;gap:8px;padding:13px 17px;font-size:13px;font-weight:700;transition:transform .25s,box-shadow .25s,background .25s;display:inline-flex;box-shadow:0 8px 22px #baf08a14}.header-contact:hover{background:#cdf7a7;transform:translateY(-2px);box-shadow:0 10px 28px #baf08a2e}.header-contact:hover svg{transform:translate(2px,-2px)}.hero{grid-template-columns:1.15fr .85fr;align-items:center;gap:60px;min-height:800px;padding-top:176px;padding-bottom:92px;display:grid;position:relative}.hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#60a87a21,#0000 68%);width:720px;height:720px;position:absolute;top:-240px;left:-340px}.hero-glow{z-index:-1;filter:blur(64px);opacity:.7;pointer-events:none;will-change:transform;background:#83d3a321;border-radius:50%;width:340px;height:340px;animation:26s cubic-bezier(.45,0,.55,1) infinite alternate heroGlowDrift;position:absolute;top:150px;left:38%}.hero-copy>*{opacity:0;animation:1.05s cubic-bezier(.22,1,.36,1) forwards heroFade}.hero-copy>:nth-child(2){animation-delay:80ms}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(4){animation-delay:.24s}.hero-copy>:nth-child(5){animation-delay:.32s}.hero-copy>:nth-child(6){animation-delay:.4s}.hero-copy>:nth-child(7){animation-delay:.48s}.eyebrow{color:#aab4ac;align-items:center;gap:9px;display:flex}.status-dot{background:var(--lime);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #b9ed851a}.hero h1{letter-spacing:-.068em;max-width:720px;margin:26px 0 22px;font-size:clamp(54px,6.35vw,88px);font-weight:590;line-height:.96}.hero h1 em{color:var(--lime);font-family:Georgia,serif;font-style:italic;font-weight:500;position:relative}.hero h1 em:after{content:"";border-top:2px solid #b9ed85a6;border-radius:50%;height:7px;position:absolute;bottom:-4px;left:2%;right:-4%;transform:rotate(-1deg)}.hero-headline{color:#dbe2dd;max-width:680px;font:520 13px/1.7 var(--font-geist-mono);letter-spacing:.025em;margin:0}.hero-lede{max-width:640px;color:var(--muted);margin:16px 0 0;font-size:18px;line-height:1.75}.code-typing{border-top:1px solid #baf08a29;border-bottom:1px solid #baf08a29;border-right:1px solid #baf08a29;border-left:2px solid var(--lime);color:#bfc9c1;width:min(390px,100%);max-width:100%;min-height:44px;font:520 12px/1 var(--font-geist-mono);background:#0c110f4d;align-items:center;gap:9px;margin-top:24px;padding:0 15px;transition:border-color .3s,background .3s,box-shadow .3s;display:flex;overflow:hidden;box-shadow:0 12px 38px #0000001a}.code-typing:hover{background:#baf08a09;border-color:#baf08a57;box-shadow:0 15px 42px #00000029}.code-prompt{color:var(--lime)}.code-typing code{white-space:nowrap}.typing-caret{background:var(--lime);flex:none;width:1px;height:16px;animation:1s steps(2,end) infinite typingCaret}.hero-actions{align-items:center;gap:28px;margin-top:38px;display:flex}.hero-socials{align-items:center;gap:22px;display:flex}.button{border-radius:8px;justify-content:center;align-items:center;gap:11px;min-height:52px;padding:0 21px;font-size:14px;font-weight:680;transition:transform .25s,background .25s,box-shadow .25s;display:inline-flex}.button svg,.text-link svg,.project-copy>a svg,.oss-card a svg,.education>a svg,.header-contact svg{transition:transform .25s}.button:hover{transform:translateY(-3px);box-shadow:0 14px 34px #0000002e}.button:hover svg{transform:translate(3px)}.button-primary{background:var(--lime);color:#111610}.button-primary:hover{background:#cbf5a2}.text-link{align-items:center;gap:7px;font-size:14px;font-weight:650;display:inline-flex}.text-link:hover svg,.project-copy>a:hover svg,.oss-card a:hover svg{transform:translate(2px,-2px)}.metrics{gap:42px;margin:58px 0 0;display:flex}.metrics>div{align-items:center;gap:12px;transition:transform .25s;display:flex}.metrics>div:hover{transform:translateY(-4px)}.metrics dt{color:var(--ink);letter-spacing:-.05em;font-size:30px;font-weight:650}.metrics dd{color:#7f8a82;font:500 10px/1.5 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.05em;margin:0}.portrait-composition{perspective:1000px;opacity:0;place-items:center;height:560px;animation:1.2s cubic-bezier(.22,1,.36,1) .16s forwards heroFade;display:grid;position:relative}.portrait-composition:before{content:"";z-index:1;aspect-ratio:.78;pointer-events:none;border:1px solid #baf08a4d;border-left-color:#baf08a14;border-radius:50% 50% 20px 20px/32% 32% 20px 20px;width:min(414px,91%);transition:transform .8s cubic-bezier(.2,.75,.25,1),border-color .5s,box-shadow .5s;position:absolute;transform:translate(18px,-18px)rotate(-2deg);box-shadow:14px -14px 36px #5ab9840f}.portrait-frame{z-index:2;aspect-ratio:.78;transform-origin:50% 68%;will-change:translate, transform;background:#363c39;border:9px solid #313736;border-radius:50% 50% 20px 20px/32% 32% 20px 20px;width:min(390px,86%);transition:translate .55s cubic-bezier(.2,.75,.25,1),transform .6s cubic-bezier(.2,.75,.25,1),box-shadow .6s;position:relative;overflow:hidden;transform:rotate(2deg);box-shadow:0 34px 90px #00000047}.portrait-frame:before{content:"";z-index:3;border-radius:inherit;pointer-events:none;background:linear-gradient(118deg,#ffffff17,#0000 24%);position:absolute;inset:0;box-shadow:inset 0 1px #ffffff1f}.portrait-frame:after{content:"";z-index:2;border-radius:inherit;pointer-events:none;background:linear-gradient(#0000 55%,#090d0a6b);position:absolute;inset:0}.portrait-frame img{object-fit:cover;object-position:center 24%;filter:brightness(.92)saturate(.84)contrast(1.04);width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.75,.25,1),filter .5s;position:absolute;inset:0;transform:scale(1.03)}.portrait-orbit{border:1px solid #b9ed8540;border-radius:50%;position:absolute}.portrait-orbit-one{width:480px;height:480px;transition:translate .8s cubic-bezier(.2,.75,.25,1);animation:18s ease-in-out infinite alternate orbitOne;transform:rotate(20deg)skewY(-8deg)}.portrait-orbit-two{border-style:dashed;width:555px;height:390px;transition:translate .9s cubic-bezier(.2,.75,.25,1);animation:22s ease-in-out infinite alternate orbitTwo;transform:rotate(-28deg)}.portrait-composition:hover .portrait-frame{transform:rotate(0);box-shadow:0 42px 100px #0000005c}.portrait-composition:hover:before{border-color:#baf08a7a #baf08a7a #baf08a7a #baf08a24;transform:translate(14px,-23px)rotate(-3.5deg);box-shadow:18px -18px 46px #5ab9841a}.portrait-composition:hover .portrait-frame img{filter:brightness(.98)saturate(.92)contrast(1.03);transform:scale(1.075)}.portrait-label{z-index:3;writing-mode:vertical-rl;color:var(--lime);font:600 10px/1 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.18em;transition:translate .7s cubic-bezier(.2,.75,.25,1);position:absolute;top:50px;right:-5px}.availability{z-index:3;border:1px solid var(--line-strong);color:#d9e0da;font:600 10px/1 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.05em;background:#303635;border-radius:7px;align-items:center;gap:9px;padding:12px 15px;transition:translate .75s cubic-bezier(.2,.75,.25,1);animation:4s ease-in-out infinite availabilityFloat;display:flex;position:absolute;bottom:42px;left:-10px;transform:rotate(-3deg);box-shadow:0 16px 45px #00000052}@keyframes heroFade{0%{opacity:0}to{opacity:1}}@keyframes heroGlowDrift{0%{transform:translate(-36px,-18px)scale(.9)}50%{transform:translate(58px,26px)scale(1.04)}to{transform:translate(128px,-8px)scale(.96)}}@keyframes typingCaret{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes availabilityFloat{0%,to{transform:rotate(-3deg)translateY(0)}50%{transform:rotate(-2deg)translateY(-6px)}}@keyframes orbitOne{0%{transform:rotate(20deg)skewY(-8deg)scale(.98)}to{transform:rotate(34deg)skewY(-5deg)scale(1.03)}}@keyframes orbitTwo{0%{transform:rotate(-28deg)scale(1)}to{transform:rotate(-16deg)scale(1.04)}}@keyframes ambientDriftOne{0%{transform:translateY(-10px)rotate(0)}to{transform:translate(-18px,18px)rotate(24deg)}}@keyframes ambientDriftTwo{0%{transform:translate(-4px,10px)rotate(0)}to{transform:translate(15px,-15px)rotate(-30deg)}}@keyframes ambientDot{0%{opacity:.42;transform:translateY(-8px)scale(.85)}to{opacity:.9;transform:translate(10px,14px)scale(1.15)}}.availability i{background:var(--lime);border-radius:50%;width:7px;height:7px}.reveal-ready [data-reveal]{opacity:0;transition:opacity 1.05s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s)}.reveal-ready [data-reveal].is-visible{opacity:1}.skill-group:nth-child(2),.oss-card:nth-child(2){--reveal-delay:90ms}.skill-group:nth-child(3){--reveal-delay:.18s}.skill-group:nth-child(4){--reveal-delay:.27s}.expertise{border-bottom:1px solid var(--line);background:#222627c7;overflow:hidden}.expertise-intro{grid-template-columns:.42fr 1.58fr;align-items:start;gap:90px;margin-bottom:72px;display:grid}.expertise-intro h2,.section-heading h2,.oss-heading h2{letter-spacing:-.052em;margin:0;font-size:clamp(40px,5vw,64px);font-weight:560;line-height:1.02}.expertise-intro h2{max-width:840px}.skill-groups{border-top:1px solid var(--line-strong);grid-template-columns:repeat(4,1fr);padding-top:18px;display:grid}.skill-group{background:#ffffff03;border-radius:0;padding:32px 26px 24px;transition:transform .35s,background .35s,box-shadow .35s;position:relative}.skill-group:before{content:"";background:var(--lime);width:42px;height:2px;transition:width .35s cubic-bezier(.22,1,.36,1),opacity .35s;position:absolute;top:-1px;left:26px}.skill-group+.skill-group{border-left:1px solid var(--line-strong);padding-left:26px}.skill-group:hover{z-index:2;background:#ffffff0d;transform:none;box-shadow:0 18px 45px #00000026}.skill-group:hover:before{opacity:.8;width:calc(100% - 52px)}.skill-group>span{color:var(--lime);font:650 14px/1 var(--font-geist-mono);letter-spacing:.08em}.skill-group h3{margin:26px 0 28px;font-size:18px;font-weight:600;transition:color .25s}.skill-group:hover h3{color:var(--lime)}.skill-group ul{margin:0;padding:0;list-style:none}.skill-group li{color:#aeb8b0;font:500 12px/1.3 var(--font-geist-mono);border-top:1px solid #ffffff14;padding-block:11px;transition:color .25s,transform .25s}.skill-group:hover li:hover{color:var(--lime);transform:translate(4px)}.reveal-ready .skill-group[data-reveal]{transition:opacity 1.05s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s), transform .35s ease, background .35s ease, box-shadow .35s ease}.section-heading{border-bottom:1px solid var(--line);grid-template-columns:.6fr 1.5fr .75fr;align-items:end;gap:50px;padding-bottom:48px;display:grid}.section-heading>p:last-child{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.experience-heading{align-items:start}.experience-heading h2{max-width:760px;font-size:clamp(44px,5.4vw,70px)}.experience-list{border-bottom:1px solid var(--line)}.experience-item{border-top:1px solid var(--line);border-radius:10px;grid-template-columns:.42fr 1.58fr;gap:90px;margin-inline:-24px;padding:64px 30px;transition:background .35s,transform .35s,border-color .35s;display:grid;position:relative}.experience-item:before{content:"";background:var(--lime);opacity:0;border-radius:999px;width:2px;transition:opacity .35s,transform .35s;position:absolute;top:32px;bottom:32px;left:0;transform:scaleY(.35)}.experience-item:hover{background:#ffffff0b;border-color:#baf08a38;transform:translateY(-4px)}.experience-item:hover:before{opacity:.7;transform:scaleY(1)}.reveal-ready .experience-item[data-reveal]{transition:opacity 1.05s cubic-bezier(.22,1,.36,1),background .35s,transform .35s,border-color .35s}.experience-item:first-child{border-top:0}.experience-item aside{color:#808b83;font:550 10px/1.5 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.05em;flex-direction:column;gap:10px;display:flex}.experience-item aside time{color:#b4bdb6}.company-lockup{align-items:center;gap:18px;margin-bottom:18px;display:flex}.company-logo{background:#eef1ec;border:1px solid #ffffff24;border-radius:6px;flex:none;place-items:center;width:64px;height:64px;padding:7px;transition:transform .3s,border-color .3s,box-shadow .3s;display:grid;overflow:hidden}.company-logo img{object-fit:contain;width:100%;height:100%;transition:transform .35s,filter .35s}.experience-item:hover .company-logo{border-color:#baf08a70;transform:translateY(-3px);box-shadow:0 12px 30px #0003}.experience-item:hover .company-logo img{transform:scale(1.04)}.company-name{color:var(--lime);font:620 11px/1.4 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.08em;margin:0}.experience-role h3{letter-spacing:-.045em;margin:0;font-size:clamp(30px,3.2vw,42px);font-weight:600;line-height:1.08;transition:color .3s,transform .3s}.experience-item:hover .experience-role h3{color:#f7faf5;transform:translate(4px)}.experience-summary{color:#bdc5bf;max-width:780px;margin:20px 0 28px;font-size:17px;line-height:1.75}.experience-role>ul{max-width:880px;margin:0;padding:0;list-style:none}.experience-role>ul li{color:var(--muted);border-top:1px solid #ffffff14;padding:14px 0 14px 25px;font-size:14px;line-height:1.75;position:relative}.experience-role>ul li:before{content:"↳";color:var(--lime);font-family:var(--font-geist-mono);position:absolute;top:16px;left:0}.technology-list{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.technology-list span,.project-copy li{border:1px solid var(--line);color:#a5afa8;font:550 10px/1 var(--font-geist-mono);border-radius:6px;padding:8px 11px;transition:color .22s,border-color .22s,background .22s,transform .22s}.technology-list span:hover,.project-copy li:hover{color:var(--lime);background:#baf08a0f;border-color:#baf08a6b;transform:translateY(-2px)}.work{border-top:1px solid #ffffff05}.work.section{padding-block:96px}.work .section-heading{padding-bottom:36px}.work .section-heading h2{max-width:650px;font-size:clamp(34px,4.2vw,52px)}.project{border-bottom:1px solid var(--line);grid-template-columns:.78fr 1.22fr;align-items:center;gap:44px;padding-block:44px;display:grid}.project-copy h3,.project-visual,.project-logo,.project-visual:after{transition:transform .45s cubic-bezier(.2,.75,.25,1),color .3s,border-color .3s,box-shadow .3s}.project:hover .project-visual{border-color:#baf08a47;transform:translateY(-3px);box-shadow:0 18px 44px #00000029}.project:hover .project-logo{transform:scale(1.08)}.project:hover .project-visual:after{border-color:#baf08a38;transform:scale(1.08)rotate(8deg)}.project:hover .project-copy h3{color:var(--lime)}.project-visual{border:1px solid var(--line);border-radius:10px;place-items:center;height:230px;min-height:0;display:grid;position:relative;overflow:hidden}.project-visual.forest{background:#17251d}.project-visual.bronze{background:#282017}.project-visual.slate{background:#182228}.project-visual:before{content:"";background:radial-gradient(circle at 70% 30%,#b9ed8514,#0000 42%);position:absolute;inset:0}.project-visual:after{content:"";border:1px solid #eef2ed1c;border-radius:50%;width:210px;height:210px;position:absolute}.project-logo{z-index:2;object-fit:contain;filter:saturate(.8)brightness(1.15);width:140px;max-width:140px;height:68px;max-height:68px;position:relative}.project-number,.project-type{z-index:2;color:#abb5ad;font:600 10px/1 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.12em;position:absolute}.project-number{top:20px;left:22px}.project-type{bottom:20px;right:22px}.project-copy{flex-direction:column;align-items:flex-start;padding-block:16px;display:flex}.project-copy .kicker{color:#859088}.project-copy h3{letter-spacing:-.055em;margin:10px 0 0;font-size:clamp(30px,3.8vw,44px);font-weight:580}.project-copy>p{max-width:520px;color:var(--muted);margin:18px 0 0;font-size:14px;line-height:1.75}.project-copy ul{flex-wrap:wrap;gap:8px;margin:20px 0 28px;padding:0;list-style:none;display:flex}.project-copy>a{border-bottom:1px solid #8f9a92;align-items:center;gap:8px;margin-top:auto;padding-bottom:6px;font-size:13px;font-weight:650;transition:color .25s,border-color .25s,transform .25s;display:inline-flex}.project-copy>a:hover{color:var(--lime);border-color:var(--lime);transform:translateY(-2px)}.oss-heading{justify-content:space-between;align-items:end;gap:60px;margin-bottom:34px;display:flex}.open-source.section{padding-block:92px}.oss-heading h2{max-width:620px;margin-top:14px;font-size:clamp(34px,4.2vw,50px)}.oss-heading>p{max-width:330px;color:var(--muted);margin:0;font-size:14px;line-height:1.7}.oss-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.oss-card{border:1px solid var(--line);background:#29312c;border-radius:10px;flex-direction:column;align-items:flex-start;min-height:270px;padding:28px;transition:transform .4s cubic-bezier(.2,.75,.25,1),border-color .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.oss-card.accent{background:#312e27}.oss-card:after{content:"";border:1px solid #eef2ed1a;border-radius:50%;width:190px;height:190px;transition:transform .6s cubic-bezier(.2,.75,.25,1),border-color .3s;position:absolute;top:-90px;right:-80px}.oss-card:hover{border-color:#baf08a57;transform:translateY(-4px);box-shadow:0 18px 44px #0000002e}.reveal-ready .oss-card[data-reveal]{transition:opacity 1.05s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s), transform .4s cubic-bezier(.2, .75, .25, 1), border-color .3s ease, box-shadow .3s ease}.oss-card:hover:after{border-color:#baf08a3d;transform:scale(1.18)translate(-12px,12px)}.oss-card:hover .package-icon{transform:rotate(-5deg)scale(1.06)}.package-icon{z-index:2;border:1px solid var(--line-strong);width:46px;height:46px;color:var(--lime);font:650 13px/1 var(--font-geist-mono);background:#202422;border-radius:7px;place-items:center;margin-bottom:30px;transition:transform .35s,background .35s;display:grid;position:relative}.oss-card h3{letter-spacing:-.045em;margin:10px 0 14px;font-size:clamp(23px,2.8vw,32px);font-weight:600;line-height:1.05}.oss-card>p:not(.kicker){max-width:510px;color:var(--muted);margin:0;font-size:14px;line-height:1.7}.oss-card>div{gap:22px;margin-top:auto;padding-top:22px;display:flex}.oss-card a{align-items:center;gap:6px;font-size:13px;font-weight:650;transition:color .25s,transform .25s;display:inline-flex}.oss-card a:hover{color:var(--lime);transform:translateY(-2px)}.education{border:1px solid #0000;border-top-color:var(--line);border-bottom-color:var(--line);background:0 0;border-radius:8px;grid-template-columns:.42fr 1.48fr auto;align-items:center;gap:90px;padding:66px 24px;transition:opacity 1.05s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1),background-color .35s,border-color .35s,box-shadow .4s;display:grid;position:relative}.reveal-ready .education[data-reveal]{transition:opacity 1.05s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1),background-color .35s,border-color .35s,box-shadow .4s}.education-brand{flex-direction:column;align-items:flex-start;gap:26px;display:flex}.education-brand img{opacity:.58;filter:grayscale()brightness(0)invert();width:min(240px,100%);height:auto;transition:opacity .35s,filter .35s,transform .45s cubic-bezier(.22,1,.36,1)}.education-content{transition:transform .4s cubic-bezier(.22,1,.36,1)}.education-date{color:var(--muted);font:550 11px/1 var(--font-geist-mono);margin:0 0 10px}.education h2{letter-spacing:-.04em;margin:0;font-size:28px;transition:color .3s}.education-content>p:last-child{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.7}.education-link{border:1px solid var(--line);border-radius:50%;place-items:center;width:48px;height:48px;transition:color .3s,background-color .3s,border-color .3s,transform .4s cubic-bezier(.22,1,.36,1),box-shadow .3s;display:grid}.education-link svg{transition:transform .35s cubic-bezier(.22,1,.36,1)}@media (hover:hover) and (pointer:fine){.education:hover{background:#ffffff09;border-color:#baf08a40;transform:translateY(-5px);box-shadow:0 22px 55px #00000024}.education:hover .education-content{transform:translate(6px)}.education:hover h2{color:var(--lime)}.education:hover .education-brand img{opacity:.92;filter:grayscale()brightness(0)invert()drop-shadow(0 8px 20px #0000002e);transform:translateY(-3px)}.education-link:hover{color:#101510;border-color:var(--lime);background:var(--lime);transform:translateY(-3px)rotate(3deg);box-shadow:0 12px 28px #baf08a29}.education-link:hover svg{transform:translate(2px,-2px)}}.contact-wrap{padding-block:120px 28px}.contact-panel{color:#f3f7f2;background:#315b46;border:1px solid #b9ed8533;border-radius:14px;padding:74px;transition:transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s,border-color .3s;position:relative;overflow:hidden;box-shadow:0 26px 70px #00000029}.contact-panel:before,.contact-panel:after{content:"";background:0 0;border:1px solid #b9ed852e;border-radius:50%;position:absolute}.contact-panel:before{width:430px;height:430px;top:-220px;right:-120px}.contact-panel:after{width:560px;height:310px;transition:transform .8s cubic-bezier(.2,.75,.25,1);top:-110px;right:-190px;transform:rotate(28deg)}.contact-panel:hover{border-color:#baf08a6b;transform:translateY(-6px);box-shadow:0 34px 90px #0000003b}.reveal-ready .contact-panel[data-reveal]{transition:opacity 1.05s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.2,.75,.25,1),box-shadow .4s,border-color .3s}.contact-panel:hover:after{transform:rotate(36deg)scale(1.06)}.contact-panel .kicker{color:var(--lime)}.contact-panel h2{z-index:2;letter-spacing:-.06em;max-width:770px;margin:24px 0 22px;font-size:clamp(48px,7vw,82px);font-weight:560;line-height:.98;position:relative}.contact-panel>p:not(.kicker){color:#bdcfc2;max-width:570px;margin:0;font-size:16px;line-height:1.75}.contact-button{z-index:2;background:var(--lime);color:#101510;margin-top:38px;position:relative}.contact-meta{z-index:2;color:#b4c7ba;font:520 10px/1.4 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.05em;border-top:1px solid #ffffff38;justify-content:space-between;gap:30px;margin-top:74px;padding-top:25px;display:flex;position:relative}.contact-meta div{gap:24px;display:flex}.contact-meta a{transition:color .2s}.contact-meta a:hover{color:var(--lime)}.footer{color:#727d75;font:500 10px/1.4 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.07em;justify-content:space-between;align-items:center;gap:30px;padding-block:26px 42px;display:flex}.footer p{margin:0}.footer a{color:#b9c2bb;font-weight:650;transition:color .25s,transform .25s}.footer a:hover{color:var(--lime);transform:translateY(-2px)}@media (max-width:1240px){.scroll-progress-rail{display:none}}@media (max-width:1000px){.site-header{grid-template-columns:1fr;width:calc(100% - 32px)}.site-header nav{gap:10px}.nav-sections{flex:1}.header-contact{display:none}.hero{grid-template-columns:1fr;padding-top:150px}.hero-copy{z-index:3;position:relative}.portrait-composition{height:500px}.portrait-label{right:4%}.availability{left:6%}.section-heading{grid-template-columns:1fr;gap:20px}.section-heading>p:last-child{max-width:500px}.expertise-intro,.experience-item{grid-template-columns:1fr;gap:26px}.experience-item{gap:22px}.experience-item aside{grid-template-columns:1fr 1fr;display:grid}.skill-groups{grid-template-columns:1fr 1fr}.skill-group:nth-child(3){border-left:0;padding-left:0}.skill-group:nth-child(n+3){border-top:1px solid var(--line-strong);margin-top:40px}.project{gap:36px}.education{grid-template-columns:.4fr 1.4fr auto;gap:35px}}@media (max-width:740px){html{scroll-behavior:auto;scroll-padding-top:122px;overflow-x:hidden}body,main{width:100%;max-width:100%;overflow-x:hidden}.shell{width:min(100% - 30px,1180px)}.section{padding-block:84px}.site-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:#25292a;border-radius:10px;grid-template-columns:1fr;width:calc(100% - 20px);min-height:0;padding:0;top:8px;overflow:visible}.mobile-nav-bar{color:#dce2dd;min-height:48px;font:600 10px/1 var(--font-geist-mono);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:0 14px;display:flex}.mobile-menu-toggle{color:var(--ink);font:inherit;text-transform:uppercase;letter-spacing:.08em;background:0 0;border:0;align-items:center;gap:9px;padding:8px 0;display:inline-flex}.menu-icon{gap:4px;width:18px;display:grid}.menu-icon i{background:var(--lime);height:1px;display:block}.site-header nav{border:1px solid var(--line);opacity:0;visibility:hidden;pointer-events:none;background:#25292a;border-radius:8px;flex-direction:column;align-items:stretch;gap:10px;width:100%;padding:10px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 18px 45px #00000047}.site-header nav.is-open{opacity:1;visibility:visible;pointer-events:auto}.nav-sections{grid-template-columns:1fr 1fr;gap:4px;width:100%;display:grid}.nav-sections a{padding:10px 12px}.nav-sections a:after{bottom:1px}.site-header nav a{font-size:11px}.hero{gap:34px;min-height:auto;padding-top:124px}.hero h1{font-size:clamp(48px,15vw,68px)}.hero-headline{font-size:11px}.hero-lede{font-size:16px}.code-typing{width:100%;min-height:42px;padding-inline:12px;font-size:10px}.hero-actions{flex-direction:column;align-items:flex-start;gap:18px}.hero-socials{gap:20px}.metrics{justify-content:space-between;gap:18px}.metrics>div{display:block}.metrics dt{font-size:26px}.metrics dd{margin-top:5px;font-size:8px}.portrait-composition{height:420px;margin-inline:-15px;overflow:hidden}.portrait-frame{border-width:7px;width:74%}.portrait-composition:before{width:calc(74% + 20px)}.portrait-orbit-one{width:400px;height:400px}.portrait-orbit-two{width:460px;height:320px}.availability{bottom:25px}.skill-groups{grid-template-columns:1fr}.skill-group,.skill-group+.skill-group{border-left:0;border-top:1px solid var(--line-strong);margin-top:28px;padding:28px 0 0}.skill-group:first-child{margin-top:0}.skill-group:before{left:0}.experience-item{border-radius:0;margin-inline:0;padding:44px 0}.experience-item aside{grid-template-columns:1fr;gap:6px}.company-lockup{flex-direction:column;align-items:flex-start;gap:12px}.company-logo{width:58px;height:58px}.experience-summary{font-size:15px}.experience-role>ul li{padding-left:22px}.project{grid-template-columns:1fr;gap:28px;padding-block:48px}.work.section,.open-source.section{padding-block:78px}.project-visual{height:220px}.project-copy{padding:0 4px 6px}.project-copy>a{margin-top:0}.oss-heading{flex-direction:column;align-items:flex-start;gap:20px}.oss-grid{grid-template-columns:1fr}.oss-card{min-height:250px;padding:25px}.education{border-left:0;border-right:0;border-radius:0;grid-template-columns:1fr auto;gap:18px;padding:52px 0}.education-brand{grid-column:1/-1;gap:18px}.education-brand img{width:min(280px,78vw)}.contact-wrap{padding-top:86px}.contact-panel{border-radius:12px;padding:42px 25px 30px}.contact-panel h2{font-size:clamp(44px,14vw,62px)}.contact-button{width:100%;padding-inline:12px;font-size:12px}.contact-meta{flex-direction:column;align-items:flex-start;margin-top:50px}.contact-meta div{flex-wrap:wrap;row-gap:12px}.footer{flex-direction:column;align-items:flex-start;gap:10px}.footer p:nth-child(2),.ambient-elements,.hero-glow{display:none}.hero-copy>*,.portrait-composition,.reveal-ready [data-reveal],.reveal-ready [data-reveal].is-visible{opacity:1}*,:before,:after{transition:none!important;animation:none!important}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-ready [data-reveal]{opacity:1}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
