:root{--white:#ffffff;--black:#1e293b;--grey:#64748b;--grey-lighter:#f1f5f9;--blue:#3b82f6;--font-family-mono:"IBM Plex Mono", "Courier New", monospace;--font-size-base:0.9em;--font-size-small:0.85em;--font-size-medium:1em;--font-size-large:1.5em;--container-width:720px}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{text-decoration-skip-ink:auto}ol,ul{list-style:none}body{background:var(--white);color:var(--black);font-family:var(--font-family-mono);font-size:var(--font-size-base);line-height:1.3;letter-spacing:.01em}body::before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:9999}a{color:var(--black);text-decoration:none;border-bottom:1px solid var(--blue);transition:color .15s ease}a:hover{color:var(--blue)}.container{width:100%;padding:20px;margin:0 auto;box-sizing:border-box;max-width:var(--container-width)}code{font-family:var(--font-family-mono);font-size:var(--font-size-small);background:var(--grey-lighter);padding:2px 4px}.author{display:flex;align-items:center;margin-bottom:15px;padding-bottom:15px;flex-direction:column;border-bottom:1px solid var(--grey-lighter)}.author p{color:var(--grey);font-size:var(--font-size-small)}.author h1{font-weight:700;margin:15px 0 10px;font-size:var(--font-size-large)}.author img{width:100px;height:100px;border-radius:100px}.author--is-small{margin-bottom:0;padding-bottom:0;flex-direction:row;border-bottom:none}.author--is-small img{width:50px;height:50px;margin-right:15px}.about{margin-top:25px;margin-bottom:10px;padding:0;font-size:var(--font-size-medium);line-height:1.7;text-align:left}.about p{color:var(--black)}.about strong{font-weight:700}.articles{margin:0}.articles article{display:flex;margin-bottom:0;padding-bottom:8px;justify-items:center;border-bottom:1px solid var(--grey-lighter)}.articles article:last-child{border-bottom:none}.articles article h2{font-weight:700;font-size:var(--font-size-medium);line-height:1.3}.articles article a{flex:1;display:flex;align-items:center;color:var(--black);justify-content:space-between;border-bottom:none;padding:4px 0;transition:background-color .15s ease}.articles article a:hover{background-color:var(--grey-lighter)}.articles article a:hover time{color:var(--grey)}.articles article time{color:var(--grey)}.article{line-height:1.3}.article header{margin-bottom:35px}.article header h1{margin-bottom:10px}.article header p{margin-bottom:0}.article header img{margin-bottom:0}.article h1{font-weight:700;margin-bottom:0;font-size:var(--font-size-large)}.article h2{font-weight:700;font-size:var(--font-size-medium);margin-bottom:15px;margin-top:30px}.article h3{font-weight:700;font-size:var(--font-size-medium);margin-bottom:15px;margin-top:25px}.article p,.article hr,.article img,.article blockquote,.article pre{margin-bottom:15px}.article ul{list-style:circle;padding-left:50px;margin-bottom:10px}.article li{margin-bottom:10px}.article hr{height:1px;border:none;background:var(--grey-lighter)}.article img{height:auto;max-width:100%}.article strong{font-weight:600}.article blockquote{margin-left:-25px;padding-left:25px;font-style:italic;font-size:var(--font-size-medium);border-left:5px solid var(--black)}.article li:not(:last-of-type) a:only-child{margin-bottom:-10px;display:block}.social{display:flex;flex-flow:row}.social a{margin-left:5px}.social a.resume{margin-left:10px;margin-top:2px;font-weight:600;font-size:1.2rem}.social img{width:20px;height:20px}.footer{padding-top:40px;margin-top:40px;border-top:1px solid var(--grey-lighter);color:var(--grey);font-size:var(--font-size-small)}table{border-collapse:collapse;width:100%;margin-bottom:25px}th,td{border:1px solid var(--grey-lighter);padding:.6rem;text-align:left}th{font-weight:700;background:var(--grey-lighter)}