*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-space-grotesk),system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-jetbrains),ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}:root{--bg:#212121;--bg-2:oklch(0.28 0.003 260);--surface:oklch(0.32 0.004 260);--line:oklch(0.38 0.006 260);--muted:oklch(0.62 0.010 260);--fg:oklch(0.96 0.006 90);--fg-dim:oklch(0.80 0.008 90);--accent:#00f050;--accent-ink:#04220f;--container:1320px;--gutter:clamp(20px,4vw,56px)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html{scroll-behavior:auto}body{background:var(--bg);color:var(--fg);font-family:var(--font-space-grotesk),system-ui,sans-serif;font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}a{text-decoration:none}a,button{color:inherit}button{font:inherit;background:none;border:0;cursor:pointer}img,svg{display:block;max-width:100%}::-moz-selection{background:#073ba5;color:#fff}::selection{background:#073ba5;color:#fff}@media (hover:hover) and (pointer:fine){.brand,.chip,.cta-mail,.prj-item,.sw,.toggle,.top-cta,.xp-row,a,body,button,html,input,textarea{cursor:none}.cursor{position:fixed;top:0;left:0;width:22px;height:22px;pointer-events:none;z-index:9999;will-change:transform,opacity;transition:opacity .2s}.cursor .arrow-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));transition:transform .2s;transform-origin:2px 2px}.cursor .arrow{fill:var(--fg);transition:fill .2s}.cursor .ring{position:absolute;left:-5px;top:-5px;width:32px;height:32px;border:1.5px solid var(--accent);border-radius:50%;opacity:0;transform:scale(.5);transition:opacity .25s,transform .3s cubic-bezier(.2,.7,.2,1),background .25s;background:transparent}body.cursor-hover .cursor .ring{opacity:1;transform:scale(1.6);background:color-mix(in oklab,var(--accent) 16%,transparent)}body.cursor-hover .cursor .arrow{fill:var(--accent)}body.cursor-press .cursor .arrow-svg{transform:scale(.85)}}.starfield{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.9}.hero,footer,section{position:relative;z-index:1}.rail{position:fixed;top:50%;right:14px;transform:translateY(-50%);width:5px;height:100px;border-radius:16px;background:color-mix(in oklab,var(--line) 70%,transparent);z-index:30;pointer-events:none;overflow:hidden}.rail:before{content:"";position:absolute;left:0;top:0;width:100%;height:var(--rail-p,0);background:var(--accent);box-shadow:0 0 10px color-mix(in oklab,var(--accent) 55%,transparent);transition:height .08s linear}@media (max-width:820px){.rail{display:none}}.wrap{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.top{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in oklab,var(--bg) 72%,transparent);border-bottom:1px solid color-mix(in oklab,var(--line) 60%,transparent)}.top .wrap{justify-content:space-between;height:68px}.brand,.top .wrap{display:flex;align-items:center}.brand{gap:10px;font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:13px;letter-spacing:.04em;text-transform:uppercase}.brand .dot{width:10px;height:10px;border-radius:2px;background:var(--accent);box-shadow:0 0 0 4px color-mix(in oklab,var(--accent) 18%,transparent)}.nav{display:flex;gap:28px;font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-dim)}.nav a{position:relative;padding:6px 0;transition:color .2s}.nav a:before{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent);transition:right .25s ease}.nav a:hover{color:var(--fg)}.nav a:hover:before{right:0}.nav a .num{color:var(--accent);margin-right:6px}.top-cta{font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:10px 14px;border:1px solid var(--line);border-radius:999px;transition:background .2s,color .2s,border-color .2s}.top-cta:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}@media (max-width:820px){.nav{display:none}}.hero{padding-top:180px;padding-bottom:120px}.hero-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:48px;font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.hero-meta .tag{color:var(--accent)}.hero-meta .loc{text-align:right;line-height:1.55}.hero-title{font-family:var(--font-anton),Impact,sans-serif;font-weight:400;font-size:80px;line-height:.9;letter-spacing:.005em;text-transform:uppercase;margin:0;color:var(--fg)}.hero-title .i{color:var(--accent);font-style:normal}@media (max-width:600px){.hero-title{font-size:56px}}.hero-bottom{display:grid;grid-template-columns:6fr 6fr;gap:60px;margin-top:80px;align-items:end}.hero-lede{font-size:14px;line-height:1.6;max-width:44ch;color:var(--fg-dim)}.hero-lede strong{color:var(--fg);font-weight:500}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.stat-num{font-family:var(--font-anton),Impact,sans-serif;font-size:24px;line-height:1;letter-spacing:.005em}.stat-num,.stat-num .plus{color:var(--accent)}.stat-lbl{margin-top:6px;font-size:11px;letter-spacing:.01em;color:var(--fg-dim);max-width:16ch}.scroll-hint{position:absolute;bottom:40px;right:var(--gutter);font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:10px;writing-mode:vertical-rl}.scroll-hint .line{width:1px;height:40px;background:var(--line)}@media (max-width:820px){.hero{padding-top:130px;padding-bottom:80px}.hero-bottom{grid-template-columns:1fr;gap:40px;margin-top:60px}.hero-stats{grid-template-columns:repeat(3,1fr);gap:4px}.scroll-hint{display:none}}section{padding:120px 0}.sec-head{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:28px;border-top:1px solid var(--line);padding-top:28px;margin-bottom:72px}.sec-num{font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:12px;letter-spacing:.1em;color:var(--accent)}.sec-num,.sec-title{text-transform:uppercase}.sec-title{font-family:var(--font-anton),Impact,sans-serif;font-weight:400;font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:.005em;margin:0}.sec-title .i{font-style:normal;color:var(--accent)}@media (max-width:820px){section{padding:80px 0}.sec-head{grid-template-columns:1fr;gap:16px;margin-bottom:48px}}.about-grid{display:grid;grid-template-columns:5fr 7fr;gap:80px;align-items:start}.about-card{position:sticky;top:100px;aspect-ratio:4/5;border-radius:6px;border:1px solid var(--line);background:repeating-linear-gradient(135deg,color-mix(in oklab,var(--surface) 85%,transparent) 0 10px,color-mix(in oklab,var(--bg-2) 85%,transparent) 10px 20px);display:grid;place-items:center;color:var(--muted);font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.about-card:before{content:"";position:absolute;inset:14px;border:1px dashed color-mix(in oklab,var(--line) 90%,transparent);border-radius:3px}.about-card span{position:relative}.about-body p{font-size:15px;line-height:1.7;margin:0 0 20px;color:var(--fg-dim);text-wrap:pretty}.about-body p strong{color:var(--fg);font-weight:500}.about-body p em{font-family:var(--font-space-grotesk),system-ui,sans-serif;font-size:1em;color:var(--accent);font-style:normal;font-weight:500}.about-sig{margin-top:40px;font-family:var(--font-anton),Impact,sans-serif;font-size:40px;color:var(--fg);text-transform:uppercase;letter-spacing:.01em}@media (max-width:960px){.about-grid{grid-template-columns:1fr;gap:40px}.about-card{position:relative;top:0;aspect-ratio:3/2;max-width:420px}}.stack-groups{display:flex;flex-direction:column;gap:48px}.stack-row{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:start;border-top:1px solid var(--line);padding-top:32px}.stack-row:first-child{border-top:0;padding-top:0}.stack-label{font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:18px}.stack-label .idx{color:var(--accent);margin-right:8px}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--fg);transition:background .2s,border-color .2s,color .2s,transform .2s}.chip:hover{border-color:var(--accent);transform:translateY(-1px)}.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}@media (max-width:820px){.stack-row{grid-template-columns:1fr;gap:16px}}.xp-row{display:grid;grid-template-columns:140px 1fr auto;gap:40px;align-items:center;padding:32px 0;border-top:1px solid var(--line);transition:padding-left .3s}.xp-row:hover{padding-left:20px}.xp-year{font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:12px;letter-spacing:.1em;color:var(--accent)}.xp-role{font-family:var(--font-anton),Impact,sans-serif;font-weight:400;font-size:clamp(28px,3.2vw,40px);line-height:1.05;letter-spacing:.005em;text-transform:uppercase;margin:0 0 8px}.xp-role .i{font-style:normal;color:var(--accent)}.xp-co{font-size:14px;color:var(--fg-dim);font-family:var(--font-jetbrains),ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase}.xp-arrow{font-family:var(--font-instrument),serif;font-style:italic;font-size:28px;color:var(--muted);transition:color .2s,transform .3s}.xp-row:hover .xp-arrow{color:var(--accent);transform:translateX(6px)}@media (max-width:820px){.xp-row{grid-template-columns:1fr;gap:8px;padding:24px 0}.xp-arrow{display:none}}.prj{display:flex;flex-direction:column}.prj-item{display:grid;grid-template-columns:120px 1fr 1.1fr auto;gap:40px;align-items:center;padding:40px 0;border-top:1px solid var(--line);transition:padding-left .3s}.prj-item:last-child{border-bottom:1px solid var(--line)}.prj-item:hover{padding-left:20px}.prj-idx{font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:12px;letter-spacing:.1em;color:var(--accent)}.prj-name{font-family:var(--font-anton),Impact,sans-serif;font-weight:400;font-size:clamp(30px,3.8vw,52px);line-height:1;letter-spacing:.005em;text-transform:uppercase;transition:color .2s,transform .3s}.prj-item:hover .prj-name{color:var(--accent);transform:translateX(4px)}.prj-tags{display:flex;flex-wrap:wrap;gap:14px;font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim)}.prj-tags span+span:before{content:"·";color:var(--muted);margin-right:14px}.prj-arrow{width:54px;height:54px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background .2s,border-color .2s,color .2s,transform .3s}.prj-item:hover .prj-arrow{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);transform:rotate(-45deg)}.prj-arrow svg{width:18px;height:18px}@media (max-width:820px){.prj-item{grid-template-columns:auto 1fr;gap:16px 20px}.prj-tags{grid-column:1/-1}.prj-arrow{grid-column:2;justify-self:end;width:44px;height:44px}}.cta{padding:160px 0 120px;text-align:center;border-top:1px solid var(--line)}.cta-eyebrow{font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:12px;letter-spacing:.14em;color:var(--muted);margin-bottom:32px}.cta-eyebrow,.cta-title{text-transform:uppercase}.cta-title{font-family:var(--font-anton),Impact,sans-serif;font-weight:400;font-size:clamp(48px,7vw,120px);line-height:.95;letter-spacing:.005em;margin:0 0 40px}.cta-title .i{font-style:normal;color:var(--accent)}.cta-mail{display:inline-flex;align-items:center;gap:14px;font-weight:500;font-size:15px;letter-spacing:.01em;padding:14px 26px;border:1px solid var(--line);border-radius:999px;transition:background .2s,color .2s,border-color .2s}.cta-mail:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}footer{padding:48px 0 60px;border-top:1px solid var(--line);font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}footer a:hover{color:var(--accent)}footer .socials{display:flex;gap:24px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}html.intro-on,html.intro-on body{overflow:hidden}.intro{position:fixed;inset:0;z-index:10000;pointer-events:none}.intro-panel{position:absolute;left:0;right:0;background:#000;will-change:transform;z-index:1}.intro-panel.top{top:0;height:50%}.intro-panel.bottom{bottom:0;height:50%}.intro .intro-name{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;font-family:var(--font-anton),Impact,sans-serif;font-weight:400;color:#fff;font-size:clamp(56px,10vw,140px);line-height:1;letter-spacing:.005em;text-transform:uppercase;display:flex;gap:.02em;overflow:hidden;padding:.08em 0;will-change:opacity}.intro-name .char{display:inline-block;transform:translateY(110%);will-change:transform}.intro.animate-in .char{animation:intro-char-up .9s cubic-bezier(.22,.9,.22,1) forwards}@keyframes intro-char-up{to{transform:translateY(0)}}.intro.leaving .intro-name{animation:intro-name-fade .45s ease forwards}@keyframes intro-name-fade{to{opacity:0}}.intro.leaving .intro-panel.top{animation:intro-top-out .95s cubic-bezier(.76,0,.24,1) .15s forwards}.intro.leaving .intro-panel.bottom{animation:intro-bottom-out .95s cubic-bezier(.76,0,.24,1) .15s forwards}@keyframes intro-top-out{to{transform:translateY(-100%)}}@keyframes intro-bottom-out{to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.intro{display:none}}