/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:after,:before{box-sizing:border-box}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}:root{--colorBlack:#1a1a1a;--colorWhite:#fafafa;--colorHighlight:#f3f2ec;--colorGreyDarker:#393939;--colorGreyDark:#4d4d4d;--colorGreyDefault:#595959;--colorGreyLight:#707070;--colorGreyLighter:#b8b8b8;--colorGreyLightest:#f0f0f0;--colorLinenDark:#a39b8f;--colorLinenDefault:#ddd9d5;--colorLinenLight:#e6ddd1;--colorLinenLighter:#f5ece0;--colorNetflixRed:#e50914;--backgroundColor:#f5f5f1;--backgroundOverlayColor:hsla(0,0%,100%,.4);--textColor:var(--colorBlack);--colorFaded:var(--colorGreyLight);--fontFamilySerif:CNW,Georgia,"Times New Roman",Times,serif;--fontFamilySansSerif:USW,-apple-system,sans-serif;--fontFamilySystem:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;--fontSizeSmallest:0.8rem;--fontSizeSmaller:0.8rem;--fontSizeSmall:0.9rem;--fontSizeDefault:1rem;--fontSizeMedium:1.125rem;--fontSizeLarge:1.5rem;--fontSizeLarger:2rem;--fontSizeLargest:2.75rem;--spaceDefault:1.5rem;--spaceMedium:4rem;--spaceLarge:8rem;--transitionSlow:600ms ease-out;--transitionDefault:300ms ease-out;--transitionFast:150ms ease-out;--gutter:var(--spaceDefault);--maxWidth:700px}@media (min-width:480px){:root{--fontSizeSmallest:0.6rem;--fontSizeSmaller:0.7rem;--fontSizeSmall:0.8rem}}@media (prefers-color-scheme:dark){:root{--backgroundColor:#1a1a1a;--backgroundOverlayColor:hsla(0,0%,100%,.05);--textColor:var(--colorLinenLight);--computedBackgroundColor:#262626}}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:translateZ(0)}}@-webkit-keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%)}70%{transform:translateY(15%)}80%{transform:translate(3%,25%)}90%{transform:translate(-10%,10%)}}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%)}70%{transform:translateY(15%)}80%{transform:translate(3%,25%)}90%{transform:translate(-10%,10%)}}@-webkit-keyframes pulse{0%{opacity:1;transform:scale(1)}80%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(4)}}@keyframes pulse{0%{opacity:1;transform:scale(1)}80%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(4)}}body,html{font-family:var(--fontFamilySansSerif);font-size:16px;line-height:1.5;min-height:100%;text-rendering:optimizeLegibility;transition:background-color,color var(--transitionSlow)}@media (min-width:800px){body,html{font-size:20px}}body,html{background-color:var(--colorLoginBackground)}h1,h2,h3,h4,h5,h6{color:var(--colorGreyDarker);margin-bottom:.5rem;margin-top:0;padding-top:.5rem}h1{align-self:flex-end;font-size:var(--fontSizeLargest);line-height:1.05;margin-bottom:var(--spaceDefault);margin-top:0;position:relative;text-shadow:none}h1,h2{font-family:var(--fontFamilySerif);font-weight:700}h2{font-size:var(--fontSizeLarger);line-height:1.1}h3{color:var(--colorBlack);font-family:var(--fontFamilySerif);font-size:var(--fontSizeLarge);font-weight:700;line-height:1.25;margin-top:var(--spaceLarge)}h3:first-of-type{margin-top:var(--spaceMedium)}h4{font-size:var(--fontSizeDefault)}h4,h5{font-weight:500}h5{font-family:var(--fontFamilySerif);font-size:var(--fontSizeMedium);line-height:1.25}h6{color:var(--colorGreyLight);font-family:var(--fontFamilySansSerif);font-size:var(--fontSizeSmaller);font-weight:500;letter-spacing:.1em;text-transform:uppercase}p{margin-top:0;margin-bottom:var(--spaceDefault);color:var(--colorGreyDarker)}@media (min-width:800px){li,ol,p,ul{font-size:.95rem}}hr{background-color:transparent;border-bottom:1px solid var(--colorFaded);border-left:none;border-right:none;border-top:1px solid var(--colorFaded);height:4px;margin-bottom:var(--spaceMedium);margin-top:var(--spaceMedium)}ol,ul{list-style-position:inside;margin-left:0;padding-left:0;margin-top:0}ul li{margin-bottom:.25rem}ul{list-style-type:none;margin-bottom:1rem}li{margin-bottom:0}a{color:inherit;-webkit-text-decoration-color:var(--colorGreyDark);text-decoration-color:var(--colorGreyDark);transition:color,var(--transitionFast),-webkit-text-decoration-color;transition:color,text-decoration-color,var(--transitionFast);transition:color,text-decoration-color,var(--transitionFast),-webkit-text-decoration-color}a:hover{-webkit-text-decoration-color:var(--colorBlack);text-decoration-color:var(--colorBlack)}a[href="https://bradcerasani.me"]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a[href="https://bradcerasani.me"]:after{content:"↯";display:inline-block;opacity:0;position:absolute;transform:rotate(225deg) translateY(.5rem) translateX(-.5rem);transition:opacity var(--transitionSlow);will-change:opacity}a[href="https://bradcerasani.me"]:hover:after{opacity:.8;transition:opacity var(--transitionFast)}blockquote{display:block;margin-left:0;padding-bottom:.5rem;padding-left:2.5rem;padding-top:.5rem;position:relative}blockquote:before{color:var(--colorLinenDark);content:"“";font-size:4rem;left:0;position:absolute;top:-1rem}blockquote p,blockquote:before{font-family:var(--fontFamilySerif)}blockquote p{display:inline;font-size:var(--fontSizeLarge);line-height:1.25}@media (min-width:800px){blockquote{padding-left:0}blockquote:before{left:-2.75rem}}img,video{display:block;width:100%}section{margin-bottom:var(--spaceDefault)}@media (min-width:800px){section{margin-bottom:var(--spaceMedium)}}@media (prefers-color-scheme:dark){h1,h2,h3,h4,h5,h6{color:var(--colorLinenDefault)}p{color:inherit}a:hover{color:var(--colorGreyLightest);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}}@media print{body{font-size:9pt}h2{font-size:1.25rem}h5{font-family:var(--fontFamilySans);text-transform:uppercase;font-size:var(--fontSizeSmaller);letter-spacing:.025em;margin-left:1.5rem}ol,ul{padding-left:1.5rem}}@font-face{font-display:block;font-family:CNW;font-weight:700;src:url(/fonts/CNW-Bold.woff2) format("woff2"),url(/fonts/CNW-Bold.woff) format("woff")}@font-face{font-display:block;font-family:CNW;font-weight:500;src:url(/fonts/CNW-Medium.woff2) format("woff2"),url(/fonts/CNW-Medium.woff) format("woff")}@font-face{font-display:block;font-family:CNW;font-weight:400;src:url(/fonts/CNW-Regular.woff2) format("woff2"),url(/fonts/CNW-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:USW;font-weight:400;src:url(/fonts/USW-Regular.woff2) format("woff2"),url(/fonts/USW-Regular.woff) format("woff")}@font-face{font-display:block;font-family:USW;font-weight:500;src:url(/fonts/USW-Medium.woff2) format("woff2"),url(/fonts/USW-Medium.woff) format("woff")}@font-face{font-display:block;font-family:USW;font-style:italic;font-weight:400;src:url(/fonts/USW-RegularItalic.woff2) format("woff2"),url(/fonts/USW-RegularItalic.woff) format("woff")}@font-face{font-display:block;font-family:USW;font-style:italic;font-weight:500;src:url(/fonts/USW-MediumItalic.woff2) format("woff2"),url(/fonts/USW-MediumItalic.woff) format("woff")}:root{--codeBackgroundColor:var(--colorGreyDarker);--codeColor:#f0f0f0;--codeCyan:#64edff;--codeGreen:#67ffb8;--codeGrey:#85a19f;--codeBlue:#028be8;--codePink:#ff55b5;--codePurple:#bd93f9;--codeRed:#f84e3b;--codeYellow:#faec8f}@font-face{font-display:block;font-family:JBM;font-weight:400;src:url(/fonts/JBM-Regular.woff2) format("woff2"),url(/fonts/JBM-Regular.woff) format("woff")}@font-face{font-display:block;font-family:JBM;font-style:italic;font-weight:400;src:url(/fonts/JBM-Italic.woff2) format("woff2"),url(/fonts/JBM-Italic.woff) format("woff")}code[class*=language-],pre[class*=language-]{-moz-hyphens:none;-moz-tab-size:4;-ms-hyphens:none;-o-tab-size:4;-webkit-hyphens:none;background:none;font-family:JBM,Consolas,Menlo,Monaco,source-code-pro,Courier New,monospace;font-size:var(--fontSizeSmall);font-weight:400;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal}pre[class*=language-]{background-color:var(--codeBackgroundColor);color:var(--codeColor);margin-bottom:var(--spaceDefault);margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));overflow:auto;padding:var(--spaceDefault)}@media (min-width:800px){pre[class*=language-]{border-radius:.5rem;margin-left:-1.5rem;margin-right:-1.5rem}}pre ::-moz-selection{background-color:hsla(0,0%,100%,.05);text-shadow:0 0 4px var(--codeBackgroundColor),0 0 6px currentColor}pre ::selection{background-color:hsla(0,0%,100%,.05);text-shadow:0 0 4px var(--codeBackgroundColor),0 0 6px currentColor}:not(pre)>code[class*=language-]{background-color:hsla(0,0%,100%,.25);border-radius:2px;font-size:.8375rem;padding:4px 4px 2px;white-space:normal}code{font-size:15px;padding:4px 4px 2px;background-color:#fff;border-radius:2px}@media (prefers-color-scheme:dark){code,pre{background-color:var(--colorGreyDarker)}:not(pre)>code[class*=language-]{background-color:var(--codeBackgroundColor)}}.token.italic{font-style:italic}.token.entity{cursor:help}.token.datetime.number{color:var(--codeColor)}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:var(--codeGrey);font-style:italic}.token.deleted,.token.namespace{color:var(--codeRed)}.token.function-name,.token.punctuation,.token.tag{color:var(--codePurple)}.token.attr-name,.token.function,.token.selector{color:var(--codeCyan)}.token.class-name,.token.constant,.token.symbol{color:var(--codeYellow)}.token.alternation,.token.atrule,.token.builtin,.token.entity,.token.group,.token.important,.token.keyword,.token.operator,.token.url{color:var(--codePink)}.token.attr-value,.token.char,.token.charset,.token.property,.token.quantifier,.token.regex,.token.string,.token.variable{font-style:normal;color:var(--codeGreen)}.token.boolean,.token.number{color:var(--codeBlue)}.token.js_keyword{color:var(--codeYellow)}.token.js_period{color:var(--codePink)}