:root{--base-font-size:18px;--theme-color:#f98f78;--code-background:#e6c4b51f;--sh-identifier:#354150;--sh-keyword:#f47067;--sh-string:#00a99a;--sh-class:#8d85ff;--sh-property:#4e8fdf;--sh-entity:#6eafad;--sh-jsxliterals:#bf7db6;--sh-sign:#8996a3;--sh-comment:#a19595}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased}html::-webkit-scrollbar{-webkit-appearance:none}body{margin:0}*{box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{color:inherit;background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}html{box-sizing:border-box;overflow-y:scroll}*,:after,:before{box-sizing:inherit}body{color:hsla(0,0%,0%,.8);font-weight:400;word-wrap:break-word;font-kerning:normal;-ms-font-feature-settings:"kern","liga","clig","calt";font-feature-settings:"kern","liga","clig","calt","kern"}img{max-width:100%;padding:0;margin:0 0 1.45rem}h1{font-size:2rem}h1,h2{padding:0;margin:0 0 1.45rem;color:inherit;font-weight:500;text-rendering:optimizeLegibility;line-height:1.1}h2{font-size:1.62671rem}h3{font-size:1.38316rem}h3,h4{margin:0 0 1.45rem;padding:0;color:inherit;font-weight:500;text-rendering:optimizeLegibility;line-height:1.1}h4{font-size:1rem}h5{font-size:.85028rem}h5,h6{padding:0;margin:0 0 1.45rem;color:inherit;font-weight:500;text-rendering:optimizeLegibility;line-height:1.1}h6{font-size:.78405rem}hgroup{padding:0}hgroup,ol,ul{margin:0 0 1.45rem}ol,ul{padding:0 0 0 1.45rem;list-style-position:outside;list-style-image:none;border:none;list-style-type:auto}dd,dl,p{padding:0;margin:0 0 1.45rem}p{word-break:break-word}figure{padding:0}figure,pre{margin:0 0 1.45rem}pre{font-size:.85rem;line-height:1.42;background:var(--code-background);border-radius:3px;overflow:auto;word-wrap:normal;padding:1.45rem}table{font-size:1rem;line-height:1.45rem;border-collapse:collapse;width:100%}fieldset,table{padding:0;margin:0 0 1.45rem}blockquote{padding:.75rem 1.45rem;background:#f7f6f6;margin:1.75rem 0}form,iframe,noscript{padding:0;margin:0 0 1.45rem}hr{padding:0;margin:0 0 calc(1.45rem - 1px);background:hsla(0,0%,0%,.2);border:none;height:1px}address{padding:0;margin:0 0 1.45rem}b,dt,strong,th{font-weight:700}li{margin-bottom:calc(1.2rem)}ol li{padding-left:0}ul{list-style-type:disc}ul li{padding-left:0}li>ol,li>ul{margin-left:1.45rem;margin-bottom:calc(1.45rem / 2);margin-top:calc(1.45rem / 2)}blockquote :last-child,li :last-child,p :last-child{margin-bottom:0}li>p{margin-bottom:calc(1.45rem / 2)}code,kbd,samp{font-size:.85rem;line-height:1.45rem}abbr,abbr[title],acronym{border-bottom:1px dotted hsla(0,0%,0%,.5);cursor:help}abbr[title]{text-decoration:none}td,th,thead{text-align:left}td,th{border-bottom:1px solid hsla(0,0%,0%,.12);font-feature-settings:"tnum";-moz-font-feature-settings:"tnum";-ms-font-feature-settings:"tnum";-webkit-font-feature-settings:"tnum";padding:.725rem .96667rem calc(.725rem - 1px)}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}code,tt{background-color:hsla(0,0%,0%,.04);border-radius:3px;font-family:var(--font-mono),"SFMono-Regular",Consolas,"Roboto Mono","Droid Sans Mono","Liberation Mono",Menlo,Courier,monospace;padding:.2em 0}pre code{background:none;line-height:1.42}tt:after,tt:before{letter-spacing:-.2em;content:" "}pre code:after,pre code:before,pre tt:after,pre tt:before{content:""}p>code{padding:2px 6px;margin-right:6px;color:var(--theme-color);background-color:var(--code-background)}.flex-center{display:flex;justify-content:space-between;align-items:center}code.language-text{white-space:pre-line}code[class*=language-],pre[class*=language-]{font-size:14px}:not(pre)>code[class*=language-],code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-],pre[class*=language-] ::selection,pre[class*=language-]::selection{background-color:var(--code-background)}::selection{background-color:#444;color:#fff}.block{display:block}.no-outline{outline:none}.no-underline{text-decoration:none}.hover-link{transition:all .15s ease-out}.hover-link:hover{opacity:.7;transform:translateX(-4px)}.text-center{text-align:center}.sign-font{line-height:1;font-family:HelveticaNeue-Light,-apple-system,AppleSDGothicNeo-Regular,lucida grande,tahoma,verdana,arial}.v-middle{vertical-align:middle}.plain-link,.plain-link:active,.plain-link:hover{text-decoration:none}.back-link{color:#666;font-style:italic;font-size:1rem}.back-arrow{margin:20px 0;text-align:right}.title-font{font-size:3.5rem;line-height:1.1;letter-spacing:.5px;margin:12px 0;white-space:nowrap}.light-font{font-weight:300}.section{position:relative;margin-bottom:3rem}.section p{line-height:1.5rem}.section__list{list-style-type:disc;border:none}.section__list+.section__list{margin-top:16px}.section__list .project__title:before{margin-right:.5rem}.section__mono_title{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase}.section__title{font-size:1.1rem;display:inline-block;margin-bottom:0}.project__item{font-family:var(--font-mono);margin:1.4rem 0}.project__title{margin-left:.6rem;margin-bottom:.4rem;font-size:.9rem;font-weight:500}.section__desc{margin-left:1.3rem;font-weight:300;letter-spacing:.02em;font-size:.85rem}.code-line{padding:4px 8px;font-style:italic;font-family:serif;margin-top:.4rem}.code-line>span{font-style:normal;font-family:var(--font-mono);font-weight:700;color:#999}.hover-link:focus>.code-line{outline:none;background-color:#ffc2b424}.anchor{margin-left:10px}.anchor.anchor--active{color:#000;font-weight:500;text-decoration:none}.blog-list .blog-list__item{margin-bottom:1.3rem}.blog-list__item{line-height:1.2rem;font-weight:400}.blog-link{text-decoration:none;line-height:1.5rem}.blog-date{flex-shrink:0;text-align:right;margin-right:16px;font-weight:300;font-size:.8rem;color:#333;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.blog-title{font-size:1rem;font-weight:500}.blog-post__date{color:#666}.blog-post__header{display:flex;flex-direction:column}.blog-post__title{line-height:1.4;font-weight:700;font-size:32px}.blog-post__content{margin-top:40px;margin-bottom:40px;word-break:break-all;line-height:1.7}.header{margin-top:1.45rem;margin-bottom:5rem;display:flex;align-items:center}.header__link{margin:0 0 auto;text-decoration:none;font-size:1.7rem;line-height:1;cursor:pointer}.page-link{flex-shrink:0;font-size:.9rem;margin-bottom:1rem}.page-link__anchor{text-decoration:none;padding-left:8px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;font-family:var(--font-mono);border-left:4px solid transparent;font-stretch:ultra-expanded;color:#999;transition:all .15s ease-in-out}.page-link__anchor:hover{color:var(--theme-color)}.page-link__anchor.page-link__anchor--active{border-left-color:var(--theme-color);color:#000}.socials{display:inline-flex;margin-left:auto}.socials__item{margin:0 .6rem;display:inline-block;line-height:1}.socials__item--link{cursor:pointer}.socials__item svg{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.about{white-space:break-spaces}.about__title{display:block;margin-bottom:1rem;font-size:1rem}.root-layout{display:flex;padding-left:1rem}nav{flex-shrink:0;align-items:flex-start;margin-bottom:3rem;margin-left:-1rem;margin-right:2rem}main,nav{display:flex;flex-direction:column}main{margin:0 auto;width:630px;padding:0 16px 24px;min-height:100vh}footer{margin-top:auto;padding-top:3rem;font-size:.9rem}@media only screen and (max-width:640px){.hover-link+small{display:none}main{max-width:100%}footer{margin-top:auto;padding-top:1rem}}.weight-900{font-weight:900}.about .section__list .hover-link{font-size:1rem}.about .section__list .hover-link:hover{transform:scale(1.01)}.not-found{display:flex;align-items:center;justify-content:center;margin:auto}.not-found__root{margin:auto;height:120px;width:120px;border-radius:12px;background:linear-gradient(calc(var(--x) * 145deg),#fff,#e6e6e6);box-shadow:calc(30px * var(--x) * var(--x-factor)) calc(48px * var(--y) * var(--y-factor)) calc(60px * var(--z)) #999,calc(48px * var(--x) * var(--x-factor)) calc(32px * var(--y) * var(--y-factor)) calc(60px * var(--z)) #ffffff}.cursor-pointer{cursor:pointer}.user-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.inline-block{display:inline-block}.flex-column{display:flex;flex-direction:column}@media screen and (max-width:480px){:root{--base-font-size:14px}.root-layout{flex-direction:column;padding-left:0}nav{margin-right:0;margin-left:0}main{padding:0 8px 16px}}