@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:400;src:url(./newsreader-latin-400-normal-BFBkh4jY.woff2) format("woff2"),url(./newsreader-latin-400-normal-gRTjlS2D.woff) format("woff")}@font-face{font-family:Newsreader;font-style:normal;font-display:swap;font-weight:500;src:url(./newsreader-latin-500-normal-B66TYsaK.woff2) format("woff2"),url(./newsreader-latin-500-normal-DFwuUcdu.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(./inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}:root{--bg: #f4f0e8;--surface: #faf7f0;--text: #2c2823;--text-soft: #6a6357;--text-faint: #a69d8b;--line: #e0d9ca;--accent: #2c2823;--maxw: 760px;--serif: "Newsreader", Georgia, "Times New Roman", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}[data-theme=dark]{--bg: #1c1a16;--surface: #252119;--text: #ece5d7;--text-soft: #a7a08f;--text-faint: #6d665a;--line: #332f28;--accent: #ece5d7}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}::selection{background:var(--text);color:var(--bg)}.nav{display:flex;align-items:center;justify-content:space-between;max-width:var(--maxw);margin:0 auto;padding:28px 28px 0}.nav__name{font-family:var(--serif);font-size:17px;letter-spacing:-.01em}.nav__right{display:flex;align-items:center;gap:24px}.nav__links{display:flex;gap:22px}.nav__links a{font-size:14px;color:var(--text-soft);transition:color .2s ease}.nav__links a:hover{color:var(--text)}.theme-toggle{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text-soft);cursor:pointer;display:grid;place-items:center;flex:none;transition:color .2s ease,border-color .2s ease;-webkit-tap-highlight-color:transparent}.theme-toggle:hover{color:var(--text);border-color:var(--text-faint)}.theme-toggle:focus-visible{outline:2px solid var(--text-faint);outline-offset:3px}.theme-toggle__icon{display:block;width:17px;height:17px;overflow:visible}.theme-toggle__orb{fill:currentColor;transform-origin:12px 12px;transition:transform .4s cubic-bezier(.4,0,.2,1)}.theme-toggle__cut{transition:transform .4s cubic-bezier(.4,0,.2,1)}.theme-toggle__rays{stroke:currentColor;stroke-width:1.7;stroke-linecap:round;transform-origin:12px 12px;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .25s ease}[data-theme=dark] .theme-toggle__cut{transform:translate(-9px,4px)}[data-theme=dark] .theme-toggle__orb{transform:scale(1.18)}[data-theme=dark] .theme-toggle__rays{transform:rotate(-50deg) scale(.4);opacity:0}main{max-width:var(--maxw);margin:0 auto;padding:0 28px}.section{padding:46px 0}.section+.section{border-top:1px solid var(--line)}.section__label{font-size:12px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);margin-bottom:26px}.intro{padding:72px 0 50px}.intro__title{font-family:var(--serif);font-weight:400;font-size:clamp(32px,6vw,46px);line-height:1.1;letter-spacing:-.015em;max-width:14ch}.intro__lede{margin-top:28px;max-width:64ch;font-size:17px;color:var(--text-soft);line-height:1.7}.intro__links{margin-top:30px;font-size:15px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.intro__links a{color:var(--text);border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .2s ease}.intro__links a:hover{border-color:var(--text)}.dot{color:var(--text-faint)}.entries{list-style:none;display:flex;flex-direction:column;gap:13px}.entry--full{padding-bottom:17px}.entry{display:grid;grid-template-columns:164px 1fr;gap:8px}.entry__date{font-size:13.5px;color:var(--text-faint);padding-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap}.entry__role{font-size:16.5px;font-weight:600;letter-spacing:-.005em}.entry__role span{font-weight:400;color:var(--text-soft)}.entry__summary{margin-top:9px;max-width:62ch;font-size:14.5px;color:var(--text-soft);line-height:1.65}.project+.project{margin-top:52px}.project__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.project__title{font-family:var(--serif);font-weight:500;font-size:22px;letter-spacing:-.01em}.project__link{font-size:14px;color:var(--text-soft);white-space:nowrap;border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .2s ease,border-color .2s ease}.project__link:hover{color:var(--text);border-color:var(--text)}.project__desc{margin-top:14px;max-width:62ch;font-size:15px;color:var(--text-soft);line-height:1.7}.project__meta{margin-top:14px;font-size:13px;color:var(--text-faint)}.skills{display:flex;flex-direction:column;gap:20px}.skills__row{display:grid;grid-template-columns:150px 1fr;gap:16px}.skills dt{font-size:14px;font-weight:500;color:var(--text)}.skills dd{font-size:14.5px;color:var(--text-soft);line-height:1.6}.contact__lede{max-width:56ch;font-size:15.5px;color:var(--text-soft);line-height:1.7;margin-bottom:22px}.footer{max-width:var(--maxw);margin:24px auto 0;padding:28px;display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);font-size:13px;color:var(--text-faint)}@media (max-width: 600px){.nav{flex-wrap:wrap;gap:12px}.nav__links{gap:18px}main{padding:0 22px}.intro{padding:48px 0 40px}.entry{grid-template-columns:1fr;gap:6px}.entry__date{padding-top:0}.skills__row{grid-template-columns:1fr;gap:4px}.project__head{flex-direction:column;gap:8px}.footer{flex-direction:column;gap:6px;padding:24px 22px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}html{scroll-behavior:auto}}
