*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none !important;transition:none !important}}body{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.04'/%3E%3C/svg%3E"),radial-gradient(70rem 45rem at 0 0, rgba(42,51,70,0.55), transparent 70%),radial-gradient(60rem 40rem at 100% 100%, rgba(240,169,59,0.06), transparent 70%),#141922;color:#e6e9ef;font-family:"Hanken Grotesk",system-ui,sans-serif;font-size:1.125rem;line-height:1.6}h1,h2{font-family:"Martian Mono",ui-monospace,monospace;font-weight:500;font-stretch:87.5%;line-height:1.2;letter-spacing:-0.01em}h1{font-size:2.369rem;margin-bottom:1.5rem}h2{font-size:1.777rem;margin-bottom:1.25rem}h3{font-size:1.333rem;font-weight:600;line-height:1.3;margin-bottom:0.5rem}p,ul{margin-bottom:1.25rem;max-width:68ch}ul{padding-left:1.25rem}li+li{margin-top:0.25rem}a{color:#f0a93b;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.2em;transition:color 150ms cubic-bezier(0.2, 0.7, 0.2, 1),text-decoration-color 150ms cubic-bezier(0.2, 0.7, 0.2, 1)}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid #f0a93b;outline-offset:3px;border-radius:2px}img{display:block;height:auto;max-width:100%}nav{align-items:baseline;border-bottom:1px solid #2c3545;display:flex;flex-wrap:wrap;gap:0.5rem 1.25rem;font-size:1rem;margin:0 auto;max-width:60rem;padding:1.25rem 1.25rem}nav a{color:#e6e9ef;text-decoration:none}nav .nav-title{font-family:"Martian Mono",ui-monospace,monospace;font-size:0.875rem;font-stretch:87.5%;margin-right:auto}nav .nav-title::before,nav .nav-title::after{color:#f0a93b}nav .nav-title::before{content:'{ '}nav .nav-title::after{content:' }'}nav .nav-link{position:relative}nav .nav-link::before,nav .nav-link::after{color:#f0a93b;opacity:0;position:absolute;transition:opacity 150ms cubic-bezier(0.2, 0.7, 0.2, 1),transform 150ms cubic-bezier(0.2, 0.7, 0.2, 1)}nav .nav-link::before{content:'{';left:-0.75em;transform:translateX(0.25em)}nav .nav-link::after{content:'}';right:-0.75em;transform:translateX(-0.25em)}nav .nav-link:hover::before,nav .nav-link:hover::after,nav .nav-link:focus-visible::before,nav .nav-link:focus-visible::after{opacity:1;transform:none}@media (max-width: 26em){nav{column-gap:1rem;font-size:0.9375rem}nav .nav-title{font-size:0.75rem}}section{margin:0 auto;max-width:60rem;padding:4rem 1.25rem}section+section{border-top:1px solid #2c3545}.hero{padding-top:3rem}.hero h1{font-size:clamp(1.375rem, 6.5vw, 3.25rem);font-stretch:100%;margin-bottom:1rem;white-space:nowrap;align-items:baseline;column-gap:0.3em;display:grid;grid-template-columns:auto 1fr auto;width:fit-content}.hero .name{display:flex;justify-content:center;overflow:hidden}.hero .brace{color:#f0a93b;font-weight:200}.hero .tagline{color:#8d99ae;font-size:1.333rem;line-height:1.5;margin-bottom:1.25rem}.hero .bio p:last-child{margin-bottom:0}.intro{display:grid;gap:2rem}.intro img{aspect-ratio:3 / 4;border-radius:6px;object-fit:cover;width:12rem}@media (min-width: 48em){.intro{align-items:start;gap:3rem;grid-template-columns:minmax(0, 1fr) 13rem}.intro img{width:100%}}@media (prefers-reduced-motion: no-preference){.hero h1{animation:braces-open 900ms cubic-bezier(0.2, 0.7, 0.2, 1) both}.hero .intro{animation:fade-in 500ms 600ms ease-out both}}@keyframes braces-open{from{grid-template-columns:auto 0fr auto}}@keyframes fade-in{from{opacity:0}}.projects{list-style:none;margin-top:2.5rem;max-width:none;padding:0}.projects li{border-top:1px solid #2c3545;padding:2rem 0}.projects li+li{margin-top:0}.projects li:last-child{padding-bottom:0}.projects a{color:inherit;display:grid;gap:1rem;text-decoration:none}@media (min-width: 48em){.projects a{align-items:center;gap:2.5rem;grid-template-columns:minmax(0, 3fr) minmax(0, 2fr)}}.projects a:hover h3,.projects a:focus-visible h3{color:#f0a93b}.projects a:hover h3::before,.projects a:hover h3::after,.projects a:focus-visible h3::before,.projects a:focus-visible h3::after{opacity:1;transform:none}.projects a:hover .more,.projects a:focus-visible .more{text-decoration:underline}.projects a:hover .more i,.projects a:focus-visible .more i{transform:translateX(0.25rem)}.projects img{aspect-ratio:16 / 10;border:1px solid #2c3545;border-radius:4px;object-fit:cover;object-position:top;width:100%}.projects h3{font-family:"Martian Mono",ui-monospace,monospace;font-size:1.333rem;font-stretch:87.5%;margin-bottom:0.75rem;transition:color 150ms cubic-bezier(0.2, 0.7, 0.2, 1);width:fit-content;position:relative}.projects h3::before,.projects h3::after{color:#f0a93b;opacity:0;position:absolute;transition:opacity 150ms cubic-bezier(0.2, 0.7, 0.2, 1),transform 150ms cubic-bezier(0.2, 0.7, 0.2, 1)}.projects h3::before{content:'{';left:-0.9em;transform:translateX(0.25em)}.projects h3::after{content:'}';right:-0.9em;transform:translateX(-0.25em)}.projects p{margin-bottom:0.75rem}.projects .stack{color:#8d99ae;font-size:.875rem}.projects .more{color:#f0a93b;font-size:.875rem;margin:1.25rem 0 0}.projects .more i{font-size:0.75em;margin-left:0.25rem;transition:transform 150ms cubic-bezier(0.2, 0.7, 0.2, 1)}.back{display:inline-block;text-decoration:none;font-size:.875rem;margin-bottom:2rem}.back i{transition:transform 150ms cubic-bezier(0.2, 0.7, 0.2, 1)}.back:hover i,.back:focus-visible i{transform:translateX(-0.25rem)}.split{display:flex;flex-direction:column}.split .figures{order:1}.split h2{font-size:1.333rem;margin:2rem 0 0.75rem}.split .figures+h2{margin-top:0}@media (min-width: 48em){.split{display:flow-root}.split .figures{float:right;margin:0 0 1.5rem 2.5rem;width:40%}.split p,.split ul{max-width:none}}figure{margin-bottom:2rem}figure img{border:1px solid #2c3545;border-radius:4px}figure figcaption{color:#8d99ae;font-size:.875rem;margin-top:0.5rem}footer{border-top:1px solid #2c3545;margin:0 auto;max-width:60rem;padding:3rem 1.25rem 4rem}footer .email{font-size:1.333rem}footer .social{display:flex;gap:1.25rem;font-size:1.75rem}footer .social a{color:#8d99ae;transition:color 150ms cubic-bezier(0.2, 0.7, 0.2, 1)}footer .social a:hover{color:#e6e9ef}
