@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}:root{color:#e8ece7;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#10161d;--surface:#151d26;--text:#e8ece7;--muted:#8e9aa3;--line:#2b3540;--accent:#a7b88a;--mono:"IBM Plex Mono", monospace;background:#10161d;font-family:IBM Plex Sans,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);min-width:320px;min-height:100vh;color:var(--text);margin:0}a{color:inherit}.site-header,main,footer{width:min(100% - 3rem,1240px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:5.5rem;display:flex}.identity{letter-spacing:-.02em;font-size:1.15rem;font-weight:600;text-decoration:none}nav{align-items:center;gap:clamp(1.25rem,3vw,2.5rem);display:flex}nav a,.footer-email{color:var(--muted);font-size:.9rem;text-decoration:none;transition:color .16s}nav a:hover,nav a:focus-visible,.footer-email:hover,.footer-email:focus-visible{color:var(--text)}.intro{border-bottom:1px solid var(--line);padding-block:clamp(5rem,9vw,7rem)}h1,h2,p{margin-top:0}h1{letter-spacing:-.055em;max-width:16ch;margin-bottom:0;font-size:clamp(3rem,6.2vw,6.2rem);font-weight:400;line-height:.98}.work{padding-block:clamp(5rem,9vw,8rem)}.work-heading{margin-bottom:clamp(3rem,6vw,5.5rem)}.work-heading h2{letter-spacing:-.045em;margin-bottom:0;font-size:clamp(2rem,3.6vw,3.5rem);font-weight:500}.project-list{border-top:1px solid var(--line)}.project{border-bottom:1px solid var(--line);grid-template-columns:6rem minmax(0,1fr) 6rem 5rem;align-items:center;gap:clamp(1.25rem,3vw,2.5rem);min-height:9rem;padding:1.5rem 0;text-decoration:none;transition:background-color .18s,padding .18s;display:grid}.project:hover,.project:focus-visible{background:var(--surface);padding-inline:1rem}.project img{object-fit:cover;border-radius:1.35rem;width:6rem;height:6rem;transition:transform .18s}.project:hover img,.project:focus-visible img{transform:scale(1.04)}.project-main{flex-direction:column;gap:.45rem;display:flex}.project-main strong{letter-spacing:-.035em;font-size:clamp(1.4rem,2.4vw,2.2rem);font-weight:500}.project-main>span,.platform,.visit{color:var(--muted)}.project-main>span{line-height:1.5}.platform{font-family:var(--mono);font-size:.75rem}.visit{justify-self:end;font-size:.85rem;transition:color .16s,transform .16s}.project:hover .visit,.project:focus-visible .visit{color:var(--accent);transform:translate(.2rem)}footer{border-top:1px solid var(--line);min-height:8rem;color:var(--muted);justify-content:space-between;align-items:center;display:flex}footer p{margin:0;font-size:.85rem}.footer-contact{align-items:center;gap:clamp(1.5rem,3vw,2.5rem);display:flex}.footer-email{font-size:.85rem}.footer-contact nav{gap:1rem}.footer-contact nav a{place-items:center;width:1.75rem;height:1.75rem;display:grid}.footer-contact svg{fill:currentColor;width:1rem;height:1rem}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}@keyframes enter{0%{opacity:0;transform:translateY(.7rem)}to{opacity:1;transform:translateY(0)}}.site-header,.intro h1,.work-heading,.project{animation:.52s cubic-bezier(.2,.7,.2,1) both enter}.intro h1{animation-delay:70ms}.work-heading{animation-delay:.17s}.project:first-child{animation-delay:.21s}.project:nth-child(2){animation-delay:.25s}.project:nth-child(3){animation-delay:.29s}@media (width<=760px){.site-header,main,footer{width:min(100% - 2rem,1240px)}.site-header{min-height:4.75rem}.site-header nav{gap:1rem}.site-header nav a{font-size:.8rem}.intro{min-height:0;padding-block:5rem}h1{max-width:12ch;font-size:clamp(2.75rem,13vw,4.25rem);line-height:1}.work{padding-block:4.5rem}.work-heading{margin-bottom:3rem;display:block}.project{grid-template-columns:4.5rem minmax(0,1fr) auto;gap:1rem;min-height:7rem;padding-block:1.25rem}.project:hover,.project:focus-visible{padding-inline:.5rem}.project img{border-radius:1rem;width:4.5rem;height:4.5rem}.project-main strong{font-size:1.3rem}.project-main>span{font-size:.9rem}.platform{display:none}.visit{font-size:0}.visit:after{content:"↗";font-size:1rem}footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:1.25rem;min-height:7rem}.footer-contact{justify-content:space-between;width:100%}}@media (width<=430px){.identity{font-size:1rem}.site-header nav a{font-size:.75rem}.site-header nav a:last-child{display:none}.project-main>span{max-width:19ch}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
