@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}img,svg{display:block}img{max-width:100%;height:auto}}@layer base{:root{color-scheme:light;--paper:#fff;--ink:#101010;--muted:#4b4b4b;--line:#d5d5d5;--accent:#ed4e22;--mono:"IBM Plex Mono", monospace;color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:Inter Variable,Arial,sans-serif}html{scroll-behavior:smooth;scroll-padding-top:32px}body{min-width:280px;font-size:16px;line-height:1.5}::selection{color:var(--ink);background:#ffe1d6}:focus-visible{outline:2px solid var(--ink);outline-offset:6px}main:focus{outline:none}a{-webkit-tap-highlight-color:#ffe1d6}.accent{color:var(--accent)}.eyebrow{font-family:var(--mono);letter-spacing:.025em;text-transform:uppercase;font-size:12px;font-weight:400;line-height:1.6}.arrow{flex:none;transition:transform .18s}}@layer layout{.page-shell{width:min(100% - 120px,1160px);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:90px;display:flex}.site-header nav{align-items:center;gap:38px;display:flex}.hero{padding-block:66px 72px}.hero-title-row{justify-content:space-between;align-items:center;gap:28px;margin-top:20px;display:flex}.hero-actions{align-items:center;gap:34px;margin-top:34px;display:flex}.section{border-top:1px solid var(--line)}.section-heading{justify-content:space-between;align-items:baseline;padding-top:20px;display:flex}.project{grid-template-columns:1fr 1.02fr;align-items:center;gap:58px;padding-block:40px 56px;display:grid}.project-links,.contact-links{align-items:center;gap:36px;display:flex}.experience{padding-bottom:36px}.experience-list{margin-top:26px}.experience-row{border-top:1px solid var(--line);grid-template-columns:240px 1.1fr 1fr;align-items:start;gap:26px;padding-block:25px;display:grid}.contact{padding-top:20px;padding-bottom:40px}.contact-row{justify-content:space-between;align-items:center;gap:32px;margin-top:22px;display:flex}.site-footer{border-top:1px solid var(--line);text-transform:none;color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding-block:20px 28px;display:flex}}@layer components{.skip-link{z-index:10;color:var(--paper);background:var(--ink);padding:12px 20px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.wordmark{letter-spacing:-.065em;align-items:center;gap:13px;font-size:24px;font-weight:750;display:inline-flex}.brand-square{background:var(--accent);width:15px;height:15px}.site-header nav a{align-items:center;gap:14px;min-height:44px;font-size:14px;display:inline-flex}.site-header nav a:hover{text-underline-offset:5px;text-decoration:underline;text-decoration-color:var(--accent)}.nav-contact .arrow{color:var(--accent)}.hero-eyebrow{color:#303030}.hero-eyebrow span{margin-inline:7px}h1{letter-spacing:-.065em;font-size:clamp(44px,5.45vw,74px);font-weight:760;line-height:1.06}.asterisk{color:var(--accent);flex:none;margin-right:10px}.hero-description{color:#383838;letter-spacing:-.025em;margin-top:30px;font-size:clamp(18px,1.9vw,23px);line-height:1.5}.button{min-height:56px;color:var(--paper);background:var(--ink);justify-content:center;align-items:center;gap:16px;padding:15px 23px;font-size:14px;font-weight:550;transition:background-color .18s;display:inline-flex}.button .arrow{color:#ff754f}.button:hover{background:#303030}.button:hover .arrow{transform:translate(3px)}.text-link{border-bottom:1px solid var(--accent);justify-content:space-between;align-items:center;gap:9px;min-height:36px;padding-block:5px;font-size:14px;line-height:1.5;transition:border-color .18s;display:inline-flex}.text-link .arrow{width:16px;height:16px}.text-link:hover{border-bottom-color:var(--ink)}.text-link:hover .arrow{transform:translate(2px,-2px)}.section-number{color:#be3612;margin-right:12px;display:inline-block}.section-year{color:var(--muted)}.project-category{color:var(--muted);margin-bottom:15px}.project h3{letter-spacing:-.06em;font-size:68px;font-weight:700;line-height:1}.project-tagline{letter-spacing:-.045em;margin-top:16px;font-size:28px;line-height:1.25}.project-description{letter-spacing:-.018em;color:#383838;max-width:470px;margin-top:22px;font-size:16px;line-height:1.6}.project-tags{font-family:var(--mono);color:#383838;flex-wrap:wrap;gap:9px 13px;margin-block:24px 21px;font-size:11px;display:flex}.project-tags li+li:before{content:"·";color:var(--muted);margin-right:13px}.project-visual{min-width:0}.screenshot-stage{background:#f6f6f6;border:1px solid #e6e6e6;border-radius:8px;flex-direction:column;align-items:center;gap:24px;padding:22px 28px 20px;display:flex}.visual-label{color:#595959;justify-content:space-between;width:100%;font-size:10px;display:flex}.app-screenshot{border-radius:6px;width:256px;height:auto}.screenshot-stage figcaption{font-family:var(--mono);text-align:center;color:#595959;font-size:10px;line-height:1.6}.experience-dates{color:#383838;flex-wrap:wrap;align-items:baseline;column-gap:7px;padding-top:2px;font-size:11px;display:flex}.experience-role h3{letter-spacing:-.035em;font-size:18px;font-weight:650;line-height:1.4}.experience-role p{letter-spacing:-.02em;color:#383838;margin-top:2px;font-size:15px;line-height:1.5}.experience-description{color:var(--muted);letter-spacing:-.01em;font-size:14px;line-height:1.6}.contact h2{letter-spacing:-.065em;font-size:clamp(40px,5vw,64px);font-weight:730;line-height:1.1}.site-footer a{align-items:center;gap:6px;min-height:32px;display:inline-flex}.site-footer a .arrow{width:13px;height:13px}.site-footer a:hover{color:var(--ink)}}@layer responsive{@media (width>=1500px){.hero{padding-block:80px 88px}}@media (width<=1050px){.page-shell{width:calc(100% - 80px)}.asterisk{width:56px;height:56px;margin-right:0}.project{gap:36px}.project-tagline{font-size:25px}.experience-row{grid-template-columns:180px 1fr 1fr;gap:24px}.experience-dates{column-gap:5px;font-size:10px}}@media (width<=760px){html{scroll-padding-top:24px}.page-shell{width:calc(100% - 48px)}.site-header{min-height:78px}.wordmark{gap:10px;font-size:23px}.site-header nav{gap:22px}.site-header nav a{font-size:13px}.nav-contact .arrow{display:none}.hero{padding-block:52px 56px}.hero-title-row{margin-top:24px;position:relative}h1{font-size:clamp(42px,7.2vw,60px)}.asterisk{width:27px;height:27px;position:absolute;top:-52px;right:0}.hero-description{max-width:540px;margin-top:25px;font-size:18px}.hero-actions{gap:28px;margin-top:28px}.project{grid-template-columns:1fr;gap:32px;padding-block:32px 42px}.project h3{font-size:60px}.project-description{max-width:510px}.screenshot-stage{gap:20px;padding:20px}.app-screenshot{width:240px}.experience{padding-bottom:24px}.experience-list{margin-top:22px}.experience-row{grid-template-columns:1fr 1.7fr;gap:12px 28px;padding-block:24px}.experience-dates{font-size:10px}.experience-description{grid-column:2}.contact{padding-bottom:32px}.contact-row{flex-direction:column;align-items:flex-start;gap:22px}.contact h2{font-size:48px}.site-footer{font-size:10px}}@media (width<=420px){.site-header nav{gap:16px}.site-header nav a{font-size:12px}.wordmark{gap:8px;font-size:21px}.brand-square{width:12px;height:12px}.hero-eyebrow{font-size:10px}h1{font-size:clamp(33px,9.9vw,42px)}.hero-description{font-size:17px}.desktop-break{display:none}.hero-actions{gap:22px}.button{gap:10px;min-height:52px;padding:13px 16px;font-size:13px}.text-link{font-size:13px}.eyebrow{font-size:10px}.section-number{margin-right:8px}.experience-row{grid-template-columns:1fr;gap:12px}.experience-description{grid-column:1}.experience-dates{font-size:10px}.contact h2{font-size:43px}}@media (width<=350px){.page-shell{width:calc(100% - 32px)}.site-header nav{gap:10px}.site-header nav a{font-size:11px}.hero-actions{gap:18px}.button{padding-inline:12px}.contact h2{font-size:38px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}}
