@font-face{font-family: "Archivo";font-style: normal;font-weight: 400 800;font-stretch: 62% 112%;font-display: swap;src: url("/assets/archivo-wdth-wght.e603832985.woff2") format("woff2")}@font-face{font-family: "Plex Mono";font-style: normal;font-weight: 400;font-display: swap;src: url("/assets/plex-mono-400.8fb67e6a83.woff2") format("woff2")}@font-face{font-family: "Plex Mono";font-style: normal;font-weight: 500;font-display: swap;src: url("/assets/plex-mono-500.5d779f08f4.woff2") format("woff2")}:root{--bg: #07090c;--bg-2: #0c1016;--bg-3: #121821;--line: rgba(226,232,240,0.09);--line-2: rgba(226,232,240,0.2);--text: #e7ecf1;--muted: #929daa;--neon: #3dff94;--neon-ink: #03140a;--neon-soft: rgba(61,255,148,0.12);--neon-glow: rgba(61,255,148,0.45);--blue: #2b4cff;--crt: #1f3dff;--paper: #f2f2ee;--sans: "Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;--mono: "Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--m: max(clamp(16px,3.9vw,56px),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));--cell: clamp(10px,1vw,16px);--header: 72px;--ease-out: cubic-bezier(0.23,1,0.32,1);--ease-in-out: cubic-bezier(0.77,0,0.175,1)}*,*::before,*::after{box-sizing: border-box}html{-webkit-text-size-adjust: 100%;text-size-adjust: 100%;scroll-padding-top: calc(var(--header) + env(safe-area-inset-top,0px) + 16px);background: var(--bg)}html.lenis,html.lenis body{height: auto}.lenis.lenis-smooth{scroll-behavior: auto !important}.lenis.lenis-stopped{overflow: hidden}body{margin: 0;background: var(--bg);color: var(--text);font-family: var(--sans);font-size: 17px;line-height: 1.55;font-stretch: 100%;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;-webkit-tap-highlight-color: transparent;overflow-x: clip}body.nav-open{overflow: hidden}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin: 0}ul,ol{padding: 0;list-style: none}img,svg,canvas{display: block;max-width: 100%}img{height: auto}a{color: inherit}button{font: inherit;color: inherit}h1,h2,h3,h4{text-wrap: balance}p{text-wrap: pretty}::selection{background: var(--neon);color: var(--neon-ink)}:focus-visible{outline: 2px solid var(--neon);outline-offset: 3px}svg use{pointer-events: none}.svg-sprite{position: absolute;width: 0;height: 0;overflow: hidden}.sr-only{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap;border: 0}.skip-link{position: fixed;top: 12px;left: var(--m);z-index: 100;padding: 10px 14px;background: var(--neon);color: var(--neon-ink);font-family: var(--mono);transform: translateY(-200%)}.skip-link:focus{transform: none}.mono{font-family: var(--mono);font-size: 14px;line-height: 1.6;letter-spacing: 0}.grid-lines{position: fixed;inset: 0 var(--m);z-index: 0;display: grid;grid-template-columns: repeat(3,1fr);border-right: 1px solid var(--line);pointer-events: none}.grid-lines i{border-left: 1px solid var(--line)}.grid-lines i:nth-child(4){display: none}main,.site-footer{position: relative;z-index: 1}.cross{position: absolute;top: 0;left: calc(var(--m) - 6.5px);right: calc(var(--m) - 6.5px);height: 0;display: flex;justify-content: space-between;pointer-events: none}.cross::before{content: "";position: absolute;left: 6.5px;right: 6.5px;top: 0;border-top: 1px solid var(--line)}.cross i{position: relative;width: 13px;height: 13px;margin-top: -6.5px}.cross i::before,.cross i::after{content: "";position: absolute;background: var(--line-2)}.cross i::before{left: 0;right: 0;top: 6px;height: 1px}.cross i::after{top: 0;bottom: 0;left: 6px;width: 1px}.cols-3{display: grid;grid-template-columns: repeat(3,minmax(0,1fr))}.cols-3>*{padding-inline: var(--cell)}.btn{display: inline-flex;align-items: center;justify-content: center;gap: 10px;min-height: 48px;padding: 0 22px;border: 0;border-radius: 999px;font-family: var(--sans);font-size: 15px;font-weight: 600;letter-spacing: 0.01em;text-decoration: none;white-space: nowrap;transition: transform 160ms var(--ease-out),box-shadow 240ms ease,background-color 200ms ease}.btn svg{width: 16px;height: 16px;fill: none;stroke: currentColor;stroke-width: 2;transition: transform 240ms var(--ease-out)}.btn:active{transform: scale(0.97)}.btn-neon{background: var(--neon);color: var(--neon-ink)}.btn-small{min-height: 40px;padding: 0 16px;font-size: 14px}.btn-block{width: 100%}@media (hover: hover) and (pointer: fine){.btn-neon:hover{box-shadow: 0 0 0 4px var(--neon-soft),0 0 32px var(--neon-glow)}.btn:hover svg{transform: translate(2px,-2px)}}.text-link{display: inline-flex;align-items: center;gap: 6px;min-height: 40px;font-weight: 500;text-decoration: underline;text-decoration-thickness: 1px;text-underline-offset: 5px;transition: color 200ms ease,text-underline-offset 200ms var(--ease-out)}.text-link svg{width: 14px;height: 14px;fill: none;stroke: currentColor;stroke-width: 2}@media (hover: hover) and (pointer: fine){.text-link:hover{color: var(--neon);text-underline-offset: 7px}}.label{color: var(--neon);text-transform: uppercase;font-size: 13px;letter-spacing: 0.04em}.label::before{content: "[ ";content: "[ " / ""}.label::after{content: " ]";content: " ]" / ""}.live-dot{position: relative;display: inline-block;width: 8px;height: 8px;margin-right: 10px;border-radius: 50%;background: var(--neon);vertical-align: 1px}.live-dot::after{content: "";position: absolute;inset: 0;border-radius: 50%;background: var(--neon-glow);animation: pulse 2.4s var(--ease-out) infinite}@keyframes pulse{0%{transform: scale(1);opacity: 0.9}70%,100%{transform: scale(3);opacity: 0}}.chips{display: flex;flex-wrap: wrap;gap: 6px}.chips li{padding: 3px 10px;border: 1px solid var(--line-2);border-radius: 999px;font-size: 13px;color: var(--muted)}.nowrap{white-space: nowrap}.site-header{position: fixed;inset: 0 0 auto;z-index: 40;display: flex;align-items: center;gap: 28px;height: calc(var(--header) + env(safe-area-inset-top,0px));padding-top: env(safe-area-inset-top,0px);padding-inline: calc(var(--m) + var(--cell));transition: background-color 300ms ease,box-shadow 300ms ease}.site-header.is-scrolled{background: rgba(7,9,12,0.78);-webkit-backdrop-filter: blur(14px);backdrop-filter: blur(14px);box-shadow: 0 1px 0 var(--line)}.brand{font-family: var(--sans);font-size: 17px;font-weight: 800;font-stretch: 112%;letter-spacing: 0.01em;text-decoration: none}.nav{display: flex;gap: 16px;margin-left: auto}.nav-link{position: relative;font-family: var(--mono);font-size: 13px;text-transform: uppercase;letter-spacing: 0.04em;text-decoration: none;padding-block: 8px;padding-left: 14px;color: var(--muted);transition: color 200ms ease}.nav-link[aria-current="location"],.nav-link:focus-visible{color: var(--text)}.nav-link::before{content: "■";content: "■" / "";position: absolute;left: 0;top: 50%;translate: 0 -50%;color: var(--neon);opacity: 0;transition: opacity 200ms ease}.nav-link[aria-current="location"]::before{opacity: 1}@media (hover: hover) and (pointer: fine){.nav-link:hover{color: var(--neon)}}.menu-toggle,.menu-close{display: none;min-height: 40px;padding: 0 16px;border: 1px solid var(--line-2);border-radius: 999px;background: transparent;font-family: var(--mono);font-size: 13px;text-transform: uppercase;transition: transform 160ms var(--ease-out),border-color 200ms ease}.menu-toggle:active,.menu-close:active{transform: scale(0.97)}.mobile-nav{position: fixed;inset: 0;z-index: 60;display: flex;flex-direction: column;padding: env(safe-area-inset-top,0px) var(--m) max(24px,env(safe-area-inset-bottom));background: var(--bg);overflow-y: auto;overscroll-behavior: contain;opacity: 0;visibility: hidden;transform: translateY(-12px);transition: opacity 160ms var(--ease-out),transform 160ms var(--ease-out),visibility 0s linear 160ms}.mobile-nav.is-open{opacity: 1;visibility: visible;transform: none;transition: opacity 240ms var(--ease-out),transform 240ms var(--ease-out),visibility 0s}.mobile-nav-head{display: flex;align-items: center;justify-content: space-between;height: var(--header)}.mobile-nav .menu-close{display: inline-flex;align-items: center}.mobile-nav-links{display: flex;flex-direction: column;padding-block: 24px}.mobile-nav-link{padding-block: 6px;border-bottom: 1px solid var(--line);font-size: clamp(40px,12vw,64px);font-weight: 800;font-stretch: 62%;line-height: 1.05;text-transform: uppercase;text-decoration: none}.mobile-nav-link[aria-current="location"]{color: var(--neon)}.mobile-nav-foot{display: grid;gap: 12px;margin-top: auto;padding-top: 24px}.hero{position: relative;display: grid;grid-template-rows: auto 1fr auto auto;min-height: 100svh;padding: calc(var(--header) + env(safe-area-inset-top,0px) + 24px) var(--m) 20px;overflow: hidden;isolation: isolate}.dot-field{position: absolute;inset: 0;z-index: -2;background-image: radial-gradient(circle,rgba(231,236,241,0.16) 1px,transparent 1.6px);background-size: 22px 22px;background-position: 11px 11px;-webkit-mask-image: linear-gradient(to bottom,#000 55%,transparent);mask-image: linear-gradient(to bottom,#000 55%,transparent)}.dot-field-lit{inset: auto;left: 0;top: 0;width: 420px;height: 420px;background-image: radial-gradient(circle,var(--neon) 1.3px,transparent 2px);-webkit-mask-image: radial-gradient(circle 190px at center,#000 0%,rgba(0,0,0,0.5) 45%,transparent 100%);mask-image: radial-gradient(circle 190px at center,#000 0%,rgba(0,0,0,0.5) 45%,transparent 100%);opacity: 0;transition: opacity 300ms ease;will-change: translate}.hero.has-pointer .dot-field-lit{opacity: 1}.hero-glow{position: absolute;z-index: -1;left: 50%;top: 46%;width: min(1100px,120vw);aspect-ratio: 1.6;transform: translate(-50%,-50%);background: radial-gradient(closest-side at 62% 50%,rgba(43,76,255,0.34),transparent 70%),radial-gradient(closest-side at 44% 58%,rgba(61,255,148,0.16),transparent 70%);filter: blur(10px);pointer-events: none}.hero-intro{position: relative;z-index: 2}.hero-role{font-size: clamp(22px,1.1rem + 0.7vw,30px);font-weight: 500;font-stretch: 100%;line-height: 1.15;max-width: 16ch}.hero-intro .mono{max-width: 44ch}.hero-stage{position: absolute;inset: 12% 0 max(18%,calc(310px - 14%));z-index: 1}.hero-canvas{width: 100%;height: 100%;opacity: 0;transition: opacity 500ms var(--ease-out)}.hero-stage.is-ready .hero-canvas{opacity: 1}.hero-fallback{position: absolute;left: 50%;bottom: 0;width: min(420px,70%);transform: translateX(-30%);filter: grayscale(1);opacity: 0;transition: opacity 600ms ease;-webkit-mask-image: linear-gradient(#000 72%,transparent);mask-image: linear-gradient(#000 72%,transparent)}.hero-stage.no-webgl .hero-fallback,html.no-js .hero-fallback{opacity: 1}.hero-bottom{position: relative;z-index: 2;grid-row: 3;display: grid;grid-template-columns: repeat(3,minmax(0,1fr));align-items: end;padding-bottom: 28px;pointer-events: none}.hero-bottom>*{pointer-events: auto}.hero-title{grid-column: 1 / 3;padding-inline: var(--cell);font-size: clamp(34px,4.3vw,64px);font-weight: 700;font-stretch: 112%;line-height: 0.95;letter-spacing: -0.01em;text-transform: uppercase}.hero-title .line{display: block;overflow: hidden;padding-bottom: 0.06em}.hero-title .line>span{display: inline-block}.hero-actions{display: flex;flex-wrap: wrap;align-items: center;justify-content: flex-end;gap: 12px 24px;padding-inline: var(--cell)}.hero-status{position: relative;z-index: 2;grid-row: 4;padding-top: 16px;border-top: 1px solid var(--line);font-size: 13px;text-transform: uppercase;letter-spacing: 0.04em;color: var(--muted)}.hero-status>span{display: flex;align-items: center}.coords{justify-content: center;font-variant-numeric: tabular-nums;opacity: 0;transition: opacity 300ms ease}.hero.pointer-seen .coords{opacity: 1}.status-right{justify-content: flex-end;gap: 10px}.status-right svg{width: 22px;height: 22px;fill: none;stroke: currentColor;stroke-width: 1.4}.stats{position: relative;padding: clamp(40px,6vw,72px) var(--m)}.stats-grid{display: grid;grid-template-columns: repeat(4,minmax(0,1fr))}.stats-grid>div{display: flex;flex-direction: column-reverse;justify-content: flex-end;gap: 6px;padding-inline: var(--cell)}.stats-grid dt{color: var(--muted);text-transform: uppercase;font-size: 13px;letter-spacing: 0.04em}.stats-grid dd{font-size: clamp(34px,4vw,64px);font-weight: 800;font-stretch: 62%;line-height: 1;font-variant-numeric: tabular-nums}.stats-grid dd span{color: var(--neon)}.section{position: relative;padding: clamp(48px,7vw,112px) var(--m)}.section-head{align-items: start;row-gap: 20px;margin-bottom: clamp(40px,5vw,72px)}.section-head>.label{grid-column: 1;grid-row: 1 / 3}.section-head>h2{grid-column: 2 / 4}.section-head>h2 + *{grid-column: 2 / 3}.section-head h2{font-size: clamp(26px,0.9rem + 1.9vw,44px);font-weight: 700;font-stretch: 112%;line-height: 1.02;letter-spacing: -0.005em;text-transform: uppercase}.section-head>p:not(.label),.section-head>div p{max-width: 46ch;color: var(--muted)}.section-head>div .text-link{margin-top: 12px}.platforms,.archive{padding-top: clamp(32px,4.5vw,72px)}.platforms .section-head,.archive .section-head{margin-bottom: clamp(28px,3vw,44px)}.platforms .section-head h2,.archive .section-head h2{font-size: clamp(22px,0.8rem + 1.1vw,30px)}.service{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));grid-template-rows: auto auto;padding-block: 28px;border-top: 1px solid var(--line);transition: background-color 300ms ease}.service:last-child{border-bottom: 1px solid var(--line)}.service>*{padding-inline: var(--cell)}.service-index{grid-column: 1;grid-row: 1;color: var(--muted)}.service h3{grid-column: 1;grid-row: 2;margin-top: 8px;font-size: clamp(22px,1rem + 0.9vw,30px);font-weight: 650;font-stretch: 105%;line-height: 1.1;transition: color 200ms ease}.service>p:not(.service-index){grid-column: 2;grid-row: 1 / 3;max-width: 42ch}.service ul{grid-column: 3;grid-row: 1 / 3;color: var(--muted)}.service li::before{content: "→ ";content: "→ " / "";color: var(--neon)}@media (hover: hover) and (pointer: fine){.service:hover{background: linear-gradient(90deg,var(--neon-soft),transparent 70%)}.service:hover h3{color: var(--neon)}}.work-grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: clamp(20px,2.4vw,36px);padding-inline: var(--cell)}.work-card{display: flex;flex-direction: column;border: 1px solid var(--line);border-radius: 22px;background: var(--bg-2);padding: 12px;transition: border-color 300ms ease,transform 400ms var(--ease-out)}.crt{display: block;padding: 10px;border-radius: 16px;background: #15181d;box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06),inset 0 -10px 24px rgba(0,0,0,0.5);text-decoration: none}.crt-screen{position: relative;display: flex;flex-direction: column;justify-content: space-between;gap: 18px;min-height: clamp(132px,11vw,168px);padding: clamp(14px,1.6vw,20px);border-radius: 10px;overflow: clip;background: var(--crt);color: #f3f5ff;font-size: 13px;text-transform: uppercase;letter-spacing: 0.06em;text-shadow: 0 0 6px rgba(255,255,255,0.55);box-shadow: inset 0 0 60px rgba(0,0,30,0.55)}.crt-screen::after{content: "";position: absolute;inset: 0;background: repeating-linear-gradient(to bottom,rgba(0,0,0,0.16) 0 1px,transparent 1px 3px);pointer-events: none}.crt-top,.crt-bottom{display: flex;justify-content: space-between;gap: 12px}.crt-top>span,.crt-bottom>span{min-width: 0;white-space: nowrap}.crt-top>span:first-child,.crt-bottom>span:first-child{overflow: hidden;text-overflow: ellipsis}.crt-path{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;font-size: clamp(15px,0.75rem + 0.45vw,19px);line-height: 1.35;text-transform: none;letter-spacing: 0;overflow-wrap: anywhere}.crt-path::before{content: "$ ";content: "$ " / "";opacity: 0.7}.work-body{display: flex;flex: 1;flex-direction: column;gap: 14px;padding: 22px 12px 10px}.work-body h3{font-size: clamp(21px,1rem + 0.6vw,26px);font-weight: 650;font-stretch: 105%;line-height: 1.15}.work-body h3 a{text-decoration: none}.work-body>p:not(.mono){color: var(--muted)}@media (hover: hover) and (pointer: fine){.work-card:hover{border-color: rgba(61,255,148,0.4);transform: translateY(-4px);transition-duration: 200ms}.work-card:hover .crt-screen{animation: flicker 600ms steps(2) 1}.work-body h3 a:hover{color: var(--neon)}}@keyframes flicker{0%{filter: brightness(1.25) saturate(1.2)}50%{filter: brightness(0.85)}100%{filter: none}}.platform{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));align-items: start;padding-block: 40px 44px;border-top: 1px solid var(--line-2)}.platform:last-child{border-bottom: 1px solid var(--line-2)}.platform-head{grid-column: 1;padding-inline: var(--cell)}.platform-head h3{font-size: clamp(52px,0.5rem + 5.4vw,112px);font-weight: 800;font-stretch: 62%;line-height: 0.9;text-transform: uppercase;overflow-wrap: anywhere}.platform-head p{margin-top: 10px;color: var(--muted);text-transform: uppercase;font-size: 13px}.platform-project{display: grid;gap: 12px;padding-inline: var(--cell)}.platform-project:nth-child(2n){grid-column: 2}.platform-project:nth-child(2n + 1){grid-column: 3}.platform-project:nth-child(n + 4){margin-top: 40px}.platform-cat{color: var(--muted);font-size: 13px;text-transform: uppercase}.platform-project h4{font-size: 22px;font-weight: 650;font-stretch: 105%;line-height: 1.15}.platform-project>p:not(.mono){color: var(--muted)}.platform-foot{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 4px 16px;color: var(--muted)}.platform-foot .text-link{color: var(--text)}.platform-project.is-url-target h4{color: var(--neon)}html:not(.filters-ready) .filters{display: none}.filters{display: flex;flex-wrap: wrap;gap: 8px;margin-bottom: 28px;padding-inline: var(--cell)}.filter{display: inline-flex;align-items: center;gap: 8px;min-height: 40px;padding: 0 16px;border: 1px solid var(--line-2);border-radius: 999px;background: transparent;font-family: var(--mono);font-size: 13px;text-transform: uppercase;transition: transform 160ms var(--ease-out),background-color 200ms ease,color 200ms ease,border-color 200ms ease}.filter span{color: var(--muted)}.filter:active{transform: scale(0.97)}.filter[aria-pressed="true"]{background: var(--neon);border-color: var(--neon);color: var(--neon-ink)}.filter[aria-pressed="true"] span{color: var(--neon-ink)}@media (hover: hover) and (pointer: fine){.filter:hover:not([aria-pressed="true"]){border-color: var(--neon);color: var(--neon)}}.rows{border-top: 1px solid var(--line)}.row{border-bottom: 1px solid var(--line)}.row[hidden]{display: none}.row summary{display: grid;grid-template-columns: 60px minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(9ch,max-content) 24px;align-items: center;gap: 16px;padding: 22px var(--cell);list-style: none;transition: background-color 200ms ease,color 200ms ease}.row summary::-webkit-details-marker{display: none}.row-index,.row-cat,.row-tech,.row-stats{color: var(--muted);font-size: 13px}.row-index{color: var(--muted)}.row-name{font-size: clamp(18px,1rem + 0.4vw,22px);font-weight: 600;font-stretch: 105%;line-height: 1.2}.row-stats{text-align: right;white-space: nowrap}.row-chevron{width: 20px;height: 20px;fill: none;stroke: currentColor;stroke-width: 2;transition: transform 200ms var(--ease-out)}.row[open] .row-chevron{transform: rotate(180deg)}.row-detail{display: grid;gap: 14px;max-width: 760px;margin-left: calc(60px + 16px);padding: 0 var(--cell) 28px;animation: detail-in 200ms var(--ease-out)}.row-detail>p:first-child{color: var(--muted)}@keyframes detail-in{from{opacity: 0;transform: translateY(-4px)}}@media (hover: hover) and (pointer: fine){.row summary:hover{background: var(--neon-soft)}.row summary:hover .row-name{color: var(--neon)}}.tools{display: grid;grid-template-columns: repeat(6,minmax(0,1fr));gap: 1px;margin: 0 var(--cell) clamp(48px,6vw,80px);border: 1px solid var(--line);background: var(--line)}.tool{display: grid;align-content: space-between;gap: 18px;min-height: 112px;padding: 16px 18px 18px;background: var(--bg)}.tool .mono{color: var(--muted);font-size: 12px}.tool strong{font-size: clamp(20px,0.9rem + 0.7vw,28px);font-weight: 800;font-stretch: 75%;line-height: 1;text-transform: uppercase}.skill-grid{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));row-gap: 48px}.skill-group{padding-inline: var(--cell)}.skill-group h3{margin-bottom: 14px;color: var(--text);font-size: 13px;text-transform: uppercase;letter-spacing: 0.04em}.skill-group li{padding-block: 7px;border-bottom: 1px solid var(--line);transition: color 160ms ease}@media (hover: hover) and (pointer: fine){.skill-group li:hover{color: var(--neon)}}.job{padding-block: 32px;border-top: 1px solid var(--line)}.job-time{color: var(--muted);text-transform: uppercase}.job h3{font-size: clamp(22px,1rem + 0.8vw,30px);font-weight: 650;font-stretch: 105%;line-height: 1.12}.job-company{margin-top: 6px;color: var(--muted)}.job>p:last-child{color: var(--muted);max-width: 48ch}.education{padding-block: 32px;border-top: 1px solid var(--line);border-bottom: 1px solid var(--line)}.education h3{color: var(--text);text-transform: uppercase;font-size: 13px}.education-lead{margin-top: 8px;font-size: 22px;font-weight: 600;font-stretch: 105%;line-height: 1.2;max-width: 20ch}.education-entry h4{font-size: 19px;font-weight: 600}.education-entry p{margin-top: 4px;color: var(--muted)}.about-grid{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));align-items: start}.about-grid>*{padding-inline: var(--cell)}.about-photo img{width: 100%;aspect-ratio: 4 / 5;object-fit: cover;object-position: 60% 30%;border: 1px solid var(--line-2);border-radius: 6px;background: var(--bg-2)}.about-photo figcaption{margin-top: 12px;color: var(--muted);font-size: 13px;text-transform: uppercase}.about-text{grid-column: 2 / -1;display: grid;gap: 18px}.about-text h2{font-size: clamp(26px,0.9rem + 1.8vw,42px);font-weight: 700;font-stretch: 112%;line-height: 1.02;text-transform: uppercase;max-width: 22ch}.about-text>p:not(.label){max-width: 62ch}.about-text a{color: var(--neon);text-underline-offset: 4px}.contact{position: relative;padding: clamp(24px,4vw,56px) var(--m) clamp(40px,5vw,72px)}.contact-field{position: relative;display: grid;grid-template-columns: minmax(0,7fr) minmax(0,5fr);min-height: min(92svh,900px);border: clamp(8px,0.9vw,12px) solid #000;background: var(--blue);color: #fff;overflow: hidden}.contact-field::before{content: "";position: absolute;right: -10%;top: -18%;width: 70%;aspect-ratio: 2.4;border-radius: 999px;background: rgba(255,255,255,0.08);box-shadow: -120px 260px 0 rgba(255,255,255,0.06),-40px 520px 0 rgba(255,255,255,0.05);pointer-events: none}.contact-copy{position: relative;z-index: 2;display: grid;align-content: start;gap: 20px;padding: clamp(28px,5vw,72px)}.contact-copy .label{color: #fff}.contact-copy h2{font-size: clamp(38px,0.8rem + 3.6vw,76px);font-weight: 800;font-stretch: 62%;line-height: 0.92;text-transform: uppercase;max-width: 18ch}.contact-copy>p:not(.label){max-width: 50ch;color: rgba(255,255,255,0.86)}.contact-copy>.contact-availability{color: #fff}.contact-list{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 12px;margin-top: 14px}.contact-telegram{position: relative;grid-column: 1 / -1}.contact-email{grid-column: 1 / -1}.contact-item{container-type: inline-size;display: grid;gap: 4px;height: 100%;padding: 18px 20px;border-radius: 16px;background: #05060a;color: #fff;text-decoration: none;transition: transform 200ms var(--ease-out),background-color 200ms ease,color 200ms ease}.contact-item .mono{color: rgba(255,255,255,0.6);font-size: 13px;text-transform: uppercase}.contact-item strong{font-size: clamp(19px,1rem + 0.6vw,26px);font-weight: 700;font-stretch: 100%;line-height: 1.15}.contact-item[href^="tel:"] strong{font-size: min(clamp(19px,1rem + 0.6vw,26px),11cqi)}.contact-item em{font-style: normal;color: var(--neon)}.contact-primary{background: var(--neon);color: var(--neon-ink)}.contact-primary .mono,.contact-primary em{color: rgba(3,20,10,0.72)}.break{overflow-wrap: anywhere}.contact-item:active{transform: scale(0.98)}@media (hover: hover) and (pointer: fine){.contact-item:hover{transform: translateY(-3px);background: #fff;color: #05060a}.contact-item:hover .mono{color: rgba(5,6,10,0.6)}.contact-primary:hover{background: #fff}}.contact-portrait{position: relative;z-index: 1;align-self: end;margin-right: -6%}.contact-portrait::before{content: "";position: absolute;z-index: -1;left: 22%;top: -14%;width: 82%;aspect-ratio: 1;border-radius: 50%;background: radial-gradient(closest-side,rgba(255,255,255,0.2),rgba(255,255,255,0.07) 55%,rgba(255,255,255,0));pointer-events: none}.contact-portrait img{width: 100%;filter: drop-shadow(14px 18px 40px rgba(2,6,48,0.42));transform: translate3d(0,var(--lift,0px),0);will-change: transform}.socials{display: flex;flex-wrap: wrap;justify-content: flex-start;gap: 4px 28px;margin-top: 28px;padding-inline: var(--cell)}.socials a{padding-block: 10px;font-size: 14px;text-transform: uppercase;text-decoration: none;color: var(--muted);transition: color 200ms ease}@media (hover: hover) and (pointer: fine){.socials a:hover{color: var(--neon)}}.site-footer{padding: 20px var(--m) calc(20px + env(safe-area-inset-bottom));border-top: 1px solid var(--line);color: var(--muted);font-size: 13px;text-transform: uppercase}.site-footer p:nth-child(2){text-align: center}.to-top{justify-self: end;padding-block: 8px;text-decoration: none}@media screen{html.motion-on [data-reveal]{opacity: 0;translate: 0 14px;transition: opacity 450ms var(--ease-out),translate 600ms var(--ease-out);transition-delay: var(--d,0ms)}html.motion-on [data-reveal].is-visible{opacity: 1;translate: none}}html.motion-on .work-card{transition: opacity 450ms var(--ease-out),translate 600ms var(--ease-out),border-color 300ms ease,transform 200ms var(--ease-out)}html.motion-on .service{transition: opacity 450ms var(--ease-out),translate 600ms var(--ease-out),background-color 300ms ease}@keyframes hero-rise{from{transform: translate3d(0,110%,0)}}@media (prefers-reduced-motion: no-preference){html.js .hero-title .line>span{animation: hero-rise 650ms var(--ease-out) both}html.js .hero-title .line:nth-child(2)>span{animation-delay: 60ms}html.js .hero-title .line:nth-child(3)>span{animation-delay: 120ms}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration: 1ms !important;animation-iteration-count: 1 !important;transition-duration: 1ms !important}.contact-portrait img{transform: none}.mobile-nav,.mobile-nav.is-open,.mobile-nav *{transition: none !important}}@media (max-width: 85rem) and (min-width: 57.51rem){.hero-actions{flex-wrap: nowrap;gap: 16px}.hero-actions .btn{padding-inline: 18px}.hero-actions .text-link{font-size: 14px}}@media (max-width: 64rem){.nav{gap: 10px}.row summary{grid-template-columns: 44px minmax(0,1fr) minmax(0,0.8fr) minmax(9ch,max-content) 24px}.row-tech{display: none}.row-detail{margin-left: 0}}@media (max-width: 57.5rem){:root{--header: 64px}.grid-lines{grid-template-columns: 1fr}.grid-lines i:nth-child(n + 2){display: none}.cross i:nth-child(2),.cross i:nth-child(3){visibility: hidden}.nav{display: none}.site-header{gap: 10px}.header-cta{margin-left: auto;min-height: 40px;padding: 0 14px;font-size: 14px}.menu-toggle{display: inline-flex;align-items: center}html:not(.menu-ready) .menu-toggle{visibility: hidden}.cols-3{grid-template-columns: 1fr}.hero{display: flex;flex-direction: column;gap: 20px}.hero-intro{gap: 12px}.hero-intro p:last-child{display: none}.section-head>.label,.section-head>h2,.section-head>h2 + *{grid-column: 1;grid-row: auto}.hero-stage{position: relative;inset: auto;height: min(44svh,400px);margin-inline: calc(var(--m) * -1)}.hero-bottom{grid-template-columns: 1fr;gap: 24px;padding-bottom: 8px}.hero-title{grid-column: 1}.hero-actions{justify-content: flex-start}.hero-status{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 8px 16px;white-space: nowrap}.hero-status .coords{display: none}.stats-grid{grid-template-columns: repeat(2,minmax(0,1fr));row-gap: 28px}.section-head{gap: 16px}.service{grid-template-columns: 1fr;grid-template-rows: none;gap: 12px}.service-index,.service h3,.service>p:not(.service-index),.service ul{grid-column: 1;grid-row: auto}.work-grid{grid-template-columns: 1fr}.platform{grid-template-columns: 1fr;padding-block: 32px 0}.platform-head{padding-bottom: 14px;border-bottom: 1px solid var(--line-2)}.platform-project,.platform-project:nth-child(n){grid-column: 1;margin-top: 0;padding-block: 26px;border-bottom: 1px solid var(--line)}.platform-project:last-child{border-bottom: 0}.skill-grid{grid-template-columns: repeat(2,minmax(0,1fr))}.job{gap: 10px}.education{gap: 20px}.about-grid{grid-template-columns: 1fr;row-gap: 32px}.about-photo{max-width: 260px}.about-text{grid-column: 1}.contact-field{grid-template-columns: 1fr}.contact-field::before{display: none}.contact-portrait{width: min(360px,62%);margin: -40px -6% 0 auto}.site-footer{gap: 6px}.site-footer p:nth-child(2){text-align: left}.to-top{justify-self: start}}@media (min-width: 40.01rem) and (max-width: 57.5rem){.hero-intro{grid-template-columns: 1fr 1fr;column-gap: 24px}.hero-title{font-size: 5.4vw}.service{grid-template-columns: minmax(0,1fr) minmax(0,1.2fr);column-gap: 24px}.service-index,.service h3{grid-column: 1}.service>p:not(.service-index){grid-column: 2;grid-row: 1}.service ul{grid-column: 2;grid-row: 2}.tools{grid-template-columns: repeat(3,minmax(0,1fr))}}@media (orientation: landscape) and (max-height: 540px) and (max-width: 64rem){.hero{display: grid;min-height: auto;padding-top: calc(var(--header) + env(safe-area-inset-top,0px) + 14px);grid-template-columns: minmax(0,1.05fr) minmax(0,1fr);grid-template-rows: none;grid-template-areas: "role stage" "title stage" "actions stage" "more more" "status status";align-content: start;column-gap: 24px;row-gap: 12px}.hero-intro{display: contents}.hero-intro>*{position: relative;z-index: 2;padding-inline: var(--cell)}.hero-role{grid-area: role;font-size: 17px;max-width: none}.hero-intro>.mono{display: block;grid-area: more;max-width: 60ch}.hero-intro>.mono + .mono{display: none}.hero-bottom{display: contents}.hero-title{grid-area: title;font-size: 23px;font-stretch: 78%;line-height: 0.98}.hero-actions{grid-area: actions;justify-content: flex-start;flex-wrap: nowrap;gap: 16px}.hero-stage{grid-area: stage;position: relative;inset: auto;align-self: stretch;height: auto;min-height: 220px;margin: 0}.hero-status{grid-area: status}.mobile-nav-link{font-size: clamp(28px,9svh,64px)}}@media (max-width: 40rem){body{font-size: 16px}.hero{gap: 16px}.hero-role{font-size: 18px;max-width: none}.hero-stage{height: min(40svh,330px)}.hero-bottom{gap: 18px}.hero-title{font-size: clamp(29px,8.2vw,38px);font-stretch: 86%;letter-spacing: -0.01em}.section-head h2,.about-text h2{font-size: clamp(24px,7vw,28px);font-stretch: 85%;line-height: 1.05}.contact-copy h2{font-size: clamp(34px,9.6vw,44px)}.hero-intro .mono{font-size: 13px}.row summary{grid-template-columns: 34px minmax(0,1fr) 24px;gap: 10px}.row-cat,.row-stats{display: none}.skill-grid{grid-template-columns: 1fr}.tools{grid-template-columns: repeat(2,minmax(0,1fr))}.tool{min-height: 88px;padding: 14px}.skill-group ul{display: flex;flex-wrap: wrap;gap: 4px 0}.skill-group li{padding: 0;border: 0}.skill-group li:not(:last-child)::after,.work-card .chips li:not(:last-child)::after,.platform-project .chips li:not(:last-child)::after,.row-detail .chips li:not(:last-child)::after{content: " · ";color: var(--muted);white-space: pre}.work-card .chips,.platform-project .chips,.row-detail .chips{display: block;line-height: 1.6}.work-card .chips li,.platform-project .chips li,.row-detail .chips li{display: inline;padding: 0;border: 0}.socials{gap: 0 22px}.site-footer{grid-template-columns: minmax(0,1fr) auto}.site-footer p:nth-child(2){grid-column: 1 / -1;grid-row: 2}.to-top{grid-column: 2;grid-row: 1;justify-self: end}.contact-list{grid-template-columns: 1fr}.contact-item .break{font-size: 16px;letter-spacing: -0.01em}.crt-screen{font-size: 12px;letter-spacing: 0.04em}.hero-status{letter-spacing: 0}.status-right svg{display: none}.stats-grid dd{font-size: 32px}}@media (max-width: 40rem) and (orientation: portrait){.hero{--hero-title-size: clamp(22px,8vw,38px)}.hero-title{font-size: var(--hero-title-size)}.hero-intro{display: contents}.hero-intro>*{position: relative;z-index: 2;padding-inline: var(--cell)}.hero-role{order: 1}.hero-stage{order: 2;height: clamp(200px,calc(100svh - 283px - env(safe-area-inset-top,0px) - var(--hero-title-size) * 2.85),330px)}.hero-bottom{order: 3}.hero-intro>.mono{order: 4}.hero-status{order: 5}.contact-copy h2{font-size: clamp(26px,9.6vw,44px)}}.contact-copy h2,.row-name,.stats-grid dd,.contact-item strong{overflow-wrap: anywhere}button,summary,.btn,.filter{touch-action: manipulation}@media (pointer: coarse){.brand{display: inline-flex;align-items: center;min-height: 44px}.menu-toggle,.menu-close,.header-cta,.filter,.text-link{min-height: 44px}.work-body h3 a{display: inline-flex;align-items: center;min-height: 44px}.socials a,.to-top{display: inline-flex;align-items: center;min-height: 44px}.mobile-nav-link:active,.text-link:active,.socials a:active,.to-top:active{color: var(--neon)}.row summary:active{background: var(--neon-soft)}}[tabindex="-1"]:focus{outline: none}@media (hover: none),(pointer: coarse){.dot-field-lit{display: none}}