@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-vietnamese-opsz-italic.2giz4jfc9lzo8.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-ext-opsz-italic.1lrsob859w-8l.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-opsz-italic.11ae33ayisz--.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:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-ext-wght-normal.1mn47ffbmm65q.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:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-wght-normal.1n5gamcxs9g-p.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-ext-wght-normal.1ladf10s224e1.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-cyrillic-wght-normal.0x7cg5h5x34js.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-greek-wght-normal.1k07jbkicvzf3.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-vietnamese-wght-normal.0a13tgqsi9z78.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-ext-wght-normal.3rxtet6g9i1k3.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(../media/jetbrains-mono-latin-wght-normal.2rmhnsrc80fag.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}
:root{--ground:#f4f5f7;--surface:#e6eaf3;--ink:#1b2130;--ink-soft:#3a4152;--muted:#4b5366;--line:#c9cfdb;--accent:#2b45c8;--accent-hover:#1e3399;--radius-pill:999px;--radius-panel:28px;--max:1200px;--font-serif:"Newsreader Variable";--font-sans:"Schibsted Grotesk Variable";--font-mono:"JetBrains Mono Variable"}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font-family:var(--font-sans), system-ui, sans-serif;margin:0;font-size:18px;line-height:1.5}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}.container{max-width:var(--max);margin:0 auto;padding-inline:32px}@media (max-width:600px){.container{padding-inline:20px}}.serif{font-family:var(--font-serif), Georgia, serif;font-style:italic}.mono{font-family:var(--font-mono), ui-monospace, monospace}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-block:20px;display:flex}.nav-list{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.nav-link{border-radius:var(--radius-pill);min-height:44px;color:var(--ink);align-items:center;padding:0 14px;font-size:17px;font-weight:500;text-decoration:none;display:inline-flex}.nav-link:hover{background:var(--surface);color:var(--ink)}.nav-link[aria-current=page]{background:var(--surface);font-weight:600}.nav-link--quiet{color:var(--muted)}.wordmark{min-height:44px;color:var(--ink);align-items:baseline;gap:5px;padding-top:8px;font-size:26px;line-height:1;text-decoration:none;display:inline-flex}.wordmark:hover{color:var(--ink)}.wordmark__y{color:var(--muted);font-size:15px}.wordmark__dev{font-size:23px}.hero{padding-block:88px 104px}.hero-title{letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;column-gap:.16em;font-size:clamp(64px,12vw,184px);font-weight:400;line-height:.92;display:flex}.hero-title__y{color:var(--muted);letter-spacing:0;font-size:.34em}.hero-title__dev{letter-spacing:-.06em}.hero-body{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px 64px;margin-top:56px;display:flex}.lead{max-width:34ch;font-size:24px;line-height:1.45}.actions{flex-wrap:wrap;gap:12px;display:flex}.btn{border-radius:var(--radius-pill);min-height:52px;font:inherit;cursor:pointer;border:1.5px solid #0000;align-items:center;padding:0 26px;font-size:18px;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-hover);color:#fff}.btn--outline{border-color:var(--ink);color:var(--ink);background:0 0}.btn--outline:hover,.btn--dark{background:var(--ink);color:#fff}.btn--dark:hover{color:#fff;background:#000}.btn--light{color:var(--ink);background:#fff}.btn--light:hover{background:var(--surface);color:var(--ink)}.text-link{min-height:44px;color:var(--accent);align-items:center;font-size:17px;font-weight:500;display:inline-flex}.page{padding-block:72px 112px}.page-title{letter-spacing:-.03em;font-size:clamp(48px,7vw,96px);font-weight:600;line-height:1}.page-intro{max-width:46ch;color:var(--ink-soft);margin-top:20px;font-size:22px;line-height:1.5}.section{padding-bottom:96px}.section-head{border-bottom:1.5px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:20px;display:flex}.section-title{letter-spacing:-.01em;font-size:36px;font-weight:600}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:8px 40px;padding-block:32px;display:flex}.row__meta{color:var(--muted);flex:0 0 170px;font-size:17px}.row__body{flex:480px;min-width:0}.row__title{letter-spacing:-.01em;font-size:28px;font-weight:600}.row__title.mono{font-weight:500}.row__sub{margin-top:6px;font-size:17px}.row__desc{max-width:62ch;color:var(--muted);margin-top:10px;font-size:18px;line-height:1.55}.panel{background:var(--surface);border-radius:var(--radius-panel);padding:48px}@media (max-width:600px){.panel{padding:32px 24px}}.panel--split{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 48px;display:flex}.panel__text{flex:420px;min-width:0}.panel__desc{max-width:52ch;color:var(--ink-soft);margin-top:12px;font-size:19px;line-height:1.55}.filters{flex-wrap:wrap;gap:10px;margin-top:48px;display:flex}.filter{border-radius:var(--radius-pill);border:1.5px solid var(--ink);min-height:48px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:0 22px;font-size:17px;font-weight:500}.filter[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.results{border-top:1.5px solid var(--ink);margin-top:40px}.empty{max-width:56ch;padding-block:64px}.empty p{color:var(--muted);margin-top:12px;font-size:19px;line-height:1.55}.empty .btn{margin-top:24px}.split{flex-wrap:wrap;align-items:flex-start;gap:64px 96px;display:flex}.split__main{flex:560px;min-width:0}.split__aside{flex:360px;min-width:0}.branch{border:1.5px solid var(--ink);border-radius:16px;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:48px;padding:18px 22px;display:flex}.branch__name{font-size:19px}.branch__status{color:var(--muted);font-size:17px}.commits{margin:40px 0 0;padding:0;list-style:none}.commit{gap:24px;display:flex}.commit__rail{flex-direction:column;flex:0 0 28px;align-items:center;display:flex}.commit__line{background:var(--line);flex:auto;width:2px;margin-top:6px}.commit__body{min-width:0;padding-bottom:40px}.commit:last-child .commit__body{padding-bottom:0}.commit__msg{font-size:20px}.commit__state{color:var(--muted);margin-top:6px;font-size:15px;font-weight:600}.commit__state--done{color:var(--ink)}.commit__state--active{color:var(--accent)}.commit__desc{color:var(--muted);margin-top:8px;font-size:18px;line-height:1.55}.field{flex-direction:column;gap:10px;margin-top:28px;display:flex}.field label{font-size:16px;font-weight:600}.field input{border-radius:var(--radius-pill);border:1.5px solid var(--ink);min-height:52px;color:var(--ink);font:inherit;background:#fff;padding:0 20px;font-size:18px}.field .btn{border:none;justify-content:center;margin-top:6px}.question{max-width:30ch;margin-top:28px;font-size:clamp(30px,3.4vw,44px);line-height:1.25}.prose{max-width:58ch;color:var(--ink-soft);margin-top:24px;font-size:20px;line-height:1.6}.columns{flex-wrap:wrap;gap:56px 64px;margin-top:80px;display:flex}.column{border-top:1.5px solid var(--ink);flex:320px;min-width:0;padding-top:24px}.column h2,.column h3{font-size:26px;font-weight:600}.column p,.column ul{color:var(--muted);margin-top:14px;font-size:18px;line-height:1.6}.column ul{flex-direction:column;gap:8px;padding-left:20px;display:flex}.ink{color:var(--ink)}.bio{flex-wrap:wrap;align-items:flex-end;gap:48px 80px;padding-block:72px 104px;display:flex}.bio__text{flex:560px;min-width:0}.bio__name{letter-spacing:-.02em;font-size:clamp(56px,9vw,132px);font-weight:400;line-height:.95}.bio__role{color:var(--muted);margin-top:18px;font-size:22px}.bio__desc{max-width:46ch;margin-top:36px;font-size:21px;line-height:1.55}.bio .actions{margin-top:32px}.photo{aspect-ratio:4/5;border-radius:var(--radius-panel);background:var(--surface);color:var(--muted);flex:0 340px;justify-content:center;align-items:center;display:flex}.projects{flex-wrap:wrap;gap:48px 40px;margin-top:40px;display:flex}.project{border-top:1.5px solid var(--ink);flex:300px;min-width:0;padding-top:20px}.project__kind{color:var(--muted);font-size:16px}.project__title{margin-top:8px;font-size:22px;font-weight:600}.project__title.mono{font-weight:500}.project__desc{color:var(--muted);margin-top:12px;font-size:18px;line-height:1.55}.contact{background:var(--accent);color:#fff;border-radius:var(--radius-panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:32px 56px;padding:56px;display:flex}@media (max-width:600px){.contact{padding:36px 24px}}.contact__title{letter-spacing:-.02em;font-size:clamp(32px,4vw,48px);font-weight:600;line-height:1.1}.contact__desc{max-width:50ch;margin-top:16px;font-size:19px;line-height:1.55}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 32px;padding-block:24px 48px;font-size:16px;display:flex}.site-footer a{min-height:44px;color:var(--muted);align-items:center;display:inline-flex}.footer-links{flex-wrap:wrap;gap:0 24px;margin:0;padding:0;list-style:none;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
