:root{--white:#fff;--gray-1:#f9f9f9;--gray-2:#ccc;--gray-3:#767676;--gray-4:#515151;--gray-5:#313131;--red:#ac4142;--orange:#d28445;--yellow:#f4bf75;--green:#90a959;--cyan:#75b5aa;--blue:#268bd2;--brown:#8f5536;--primary-color:#ec407a;--root-font-family:"Roboto", sans-serif;--root-font-size:16px;--root-font-weight:300;--root-line-height:1.5;--header-font-family:"Merriweather", serif;--body-font-size:1rem;--body-color:#1b1b1b;--body-bg:#fff;--link-color:var(--blue);--border-color:#1b1b1b1f;--large-font-size:20px;--code-font-family:Menlo, Monaco, "Courier New", monospace;--code-color:#bf616a}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{margin:0;padding:0}html{font-family:var(--root-font-family);font-weight:var(--root-font-weight);font-size:var(--root-font-size);line-height:var(--root-line-height)}@media (width>=38em){html{font-size:var(--large-font-size)}}body{color:var(--body-color);background-color:var(--body-bg);-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:hover,a:focus{text-decoration:underline}a strong{color:inherit}p{font-size:24px;font-family:var(--root-font-family)}img{border:1px solid #515151;border-radius:5px;max-width:100%;margin:0 0 1rem;display:block}table{border-collapse:collapse;border:1px solid #e5e5e5;width:100%;margin-bottom:1rem;font-size:85%}td,th{border:1px solid #e5e5e5;padding:.25rem .5rem}th{text-align:left}tbody tr:nth-child(odd) td,tbody tr:nth-child(odd) th{background-color:#f9f9f9}h1,h2,h3,h4,h5,h6{font-family:var(--header-font-family);color:var(--body-color);text-rendering:optimizelegibility;margin-bottom:.5rem;font-weight:600;line-height:1.5}h1{font-size:2rem}h2{margin-top:1.5rem;font-size:1.5rem}h3{margin-top:0;font-size:1.25rem}h4,h5,h6{margin-top:1rem;font-size:1rem}a{color:var(--primary-color);text-decoration:none}a:hover,a:focus{text-decoration:underline}p{margin-top:0;margin-bottom:1rem;font-size:1rem}strong{color:var(--body-color)}ul,ol,dl{margin-top:0;margin-bottom:1rem}dt{font-weight:700}dd{margin-bottom:.5rem}hr{border:0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:1.5rem 0;position:relative}abbr{color:var(--body-color);text-transform:uppercase;font-size:85%;font-weight:700}abbr[title]{cursor:help;border-bottom:1px dotted #e5e5e5}blockquote{color:#7a7a7a;border-left:.25rem solid #e5e5e5;margin:.8rem 0;padding:.5rem 1rem}blockquote p:last-child{margin-bottom:0}@media (width>=30em){blockquote{padding-left:1.25rem;padding-right:5rem}}a[href^="#fn:"],a[href^="#fnref:"]{margin-left:.1rem;font-weight:700;display:inline-block}.footnotes{margin-top:2rem;font-size:85%}.lead{font-size:1.25rem;font-weight:300}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.keyword,.token.boolean,.token.constant{color:#069}.token.operator{color:#555}.token.number{color:#f60}.token.string,.token.char,.token.attr-value{color:#c30}.token.regex{color:#3aa}.token.symbol{color:#fc3}.token.builtin{color:#366}.token.class-name{color:#0a8}.token.function{color:#c0f}.token.namespace{color:#0cf}.token.variable{color:#033}.token.entity{color:#999}.token.decorator,.token.annotation{color:#99f}.token.tag,.token.property,.token.selector{color:#2f6f9f}.token.attr-name,.token.key{color:#4f9fcf}.language-json .token.property{color:#99f}.token.deleted{background-color:#fcc}.token.inserted{background-color:#cfc}.token.bold{font-weight:700}.token.italic{font-style:italic}code,pre{word-wrap:break-word;font-family:var(--code-font-family)}code{color:var(--code-color);background-color:#f9f9f9;border-radius:3px;padding:.25em .5em;font-size:85%}pre{margin-top:0;margin-bottom:1rem}pre code{color:inherit;background-color:#0000;padding:0;font-size:100%}figcaption{font-size:.75rem;font-style:italic}pre[class*=language-]{white-space:pre-wrap;overflow-wrap:break-word;background-color:#f9f9f9;border-radius:.25rem;margin:0 0 1rem;padding:1rem;font-size:.8rem;line-height:1.4}.container{max-width:38rem;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}footer{margin-bottom:2rem}.masthead{margin-bottom:3rem;padding-top:1rem;padding-bottom:1rem}.masthead-title{color:var(--gray-4);margin-top:0;margin-bottom:0}.masthead-title a{color:inherit}.masthead-title small{opacity:.5;font-size:75%;font-weight:400}.article-container{grid-gap:16px;grid-template-columns:repeat(4,1fr);margin:56px 16px 0;display:grid}.article-wrapper{grid-column:1/5}.page,.post{margin-bottom:4em}.page li+li,.post li+li{margin-top:.25rem}.page-title,.post-title,.post-title a{color:var(--body-color)}.page-title,.post-title{margin-top:0}.post-date{color:#9a9a9a;margin-top:-.5rem;margin-bottom:1rem;display:block}.featured-blog-image{border:none;border-radius:0}.recent-blog-container{flex-direction:row-reverse;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.recent-blog-container .featured-blog-image{object-fit:contain;border:none;border-radius:0;max-width:120px;height:120px;margin-top:1rem}.recent-blog-container .blog-content-container{margin-right:1rem}.recent-blog-container .category-pre-heading{font-family:var(--root-font-family);font-variant:small-caps;margin-top:1rem;margin-bottom:.25rem;font-size:1rem;font-style:normal;font-variant-caps:all-small-caps;font-weight:500;line-height:150%}.recent-blog-container .blog-heading{color:var(--body-color);font-family:var(--root-font-family);font-style:normal;font-weight:500;font-size:var(--body-font-size);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 .5rem;line-height:150%;display:-webkit-box;overflow:hidden}.recent-blog-container .blog-heading a{color:var(--body-color)}.recent-blog-container .blog-heading a:hover{text-decoration:underline}.recent-blog-container .blog-date{font-family:var(--root-font-family);font-size:1rem;font-style:normal;font-weight:300;line-height:150%}.related{border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin-bottom:0;padding:42px 0}.related-posts{margin-bottom:1.1875rem;padding-left:0;list-style:none}.related-posts h3{margin-top:0}@media only screen and (width>=480px){.related-posts{flex-direction:column;margin:0;display:flex}.article-container{grid-template-columns:repeat(8,1fr);margin-top:96px}.article-wrapper{grid-column:2/8}}@media only screen and (width>=769px){.related-posts{flex-direction:column;margin:0;display:flex}.article-container{grid-template-columns:repeat(12,1fr);margin-top:96px}.article-wrapper{grid-column:4/10}}.message{color:#717171;background-color:#f9f9f9;margin-bottom:1rem;padding:1rem}.page-container{grid-template-columns:repeat(4,1fr);gap:0 16px;min-height:70vh;padding:0 16px;display:grid}.page-container .page-wrapper{grid-column:1/5;margin-top:56px}@media only screen and (width>=768px){.page-container{grid-template-columns:repeat(12,1fr)}.page-container .page-wrapper{grid-column:2/12}}.navigation-header{background-color:var(--white);z-index:100;transition:height .2s cubic-bezier(.4,0,.2,1);position:sticky;top:0}.navigation-header .navigation-container{flex-direction:column;grid-column:1/5;display:flex}.navigation-header .navigation-container .subnavigation-container{flex-direction:row;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex}.navigation-header .navigation-container .subnavigation-container a img{border:none;border-radius:0;height:36px;margin:0}.navigation-header .navigation-container .subnavigation-container .navigation-drawer{cursor:pointer;background-color:#0000;border:none;width:36px;height:36px;padding:0;line-height:0}.navigation-header .navigation-container nav{background-color:var(--white)}.navigation-header .navigation-container nav ul{flex-direction:column;justify-content:space-evenly;align-items:flex-start;margin-bottom:0;padding:16px 16px 0;list-style-type:none;display:flex}.navigation-header .navigation-container nav li{letter-spacing:.08em;font-variant:small-caps;font-size:1.125rem;font-style:normal;font-variant-caps:all-small-caps;font-weight:700;font-family:var(--root-font-family);width:100%;padding-bottom:16px;display:block}.navigation-header .navigation-container nav li button{cursor:pointer;text-align:left;letter-spacing:.08em;font-variant:small-caps;width:100%;height:36px;font-size:1.125rem;font-style:normal;font-variant-caps:all-small-caps;font-weight:700;line-height:0;font-family:var(--root-font-family);background-color:#0000;border:none;padding:0}.navigation-header .navigation-container nav a{color:var(--body-color);width:100%;height:36px;text-decoration:none;display:block}.navigation-header .navigation-container .collapsed{display:none}@media only screen and (width>=768px){.navigation-header{grid-column-gap:16px;grid-template-columns:repeat(12,1fr);height:64px;padding:0 16px;display:grid}.navigation-header .navigation-container{flex-direction:row;grid-column:2/12;justify-content:space-between;align-items:center;padding:0}.navigation-header .navigation-container .subnavigation-container{padding:0}.navigation-header .navigation-container .subnavigation-container .navigation-drawer{display:none}.navigation-header .navigation-container .collapsed,.navigation-header .navigation-container nav{display:inline}.navigation-header .navigation-container nav ul{flex-direction:row;justify-content:flex-end;align-items:center;padding:0}.navigation-header .navigation-container nav ul li{letter-spacing:.08em;font-variant:small-caps;font-style:normal;font-variant-caps:all-small-caps;font-weight:700;font-family:var(--root-font-family);padding:0 36px}.navigation-header .navigation-container nav ul li a:after{content:"";border-bottom:3px solid var(--primary-color);width:0;transition:width .2s cubic-bezier(.4,0,.2,1);display:block;transform:translateY(-4px)}.navigation-header .navigation-container nav ul li a:hover:after{width:100%}.navigation-header .navigation-container nav ul li button{color:var(--white);font-variant:small-caps;width:152px;height:36px;font-variant-caps:all-small-caps;font-family:var(--root-font-family);letter-spacing:.08em;background-color:var(--primary-color);cursor:pointer;text-align:center;border:none;padding:0;font-style:normal;font-weight:700;line-height:0}.navigation-header .navigation-container nav ul li:last-child{padding:0 0 0 36px}}footer{background-color:var(--body-color);margin:0;padding:72px 16px 12px}footer .footer-container{flex-direction:column-reverse;align-items:center;padding:0 16px;display:flex}footer .footer-container .external-sites{margin-bottom:.6875rem;display:flex}footer .footer-container .external-sites a{text-decoration:none}footer .footer-container .external-sites a i{color:var(--primary-color);font-size:1.5rem}footer .footer-container .external-sites a{margin-right:1.625rem}footer .footer-container .external-sites a:last-child{margin-right:0}footer .footer-container .footer-content p{font-family:var(--root-font-family);text-align:center;color:#ffffff80;font-size:.6875rem;font-style:normal;font-weight:300;line-height:150%}@media only screen and (width>=768px){footer{grid-template-columns:repeat(12,1fr);padding-top:104px;padding-bottom:24px;display:grid}footer .footer-container{flex-direction:row;grid-column:2/12;justify-content:space-between;align-items:center;padding:0;display:flex}footer .footer-container .footer-content p{text-align:left}footer .footer-container .external-sites a{text-decoration:none}footer .footer-container .external-sites a i{color:var(--primary-color);font-size:1.25rem}footer .footer-container .external-sites a{margin-right:1.5rem}footer .footer-container .external-sites a:last-child{margin-right:0}}.posts-container{flex-direction:column;margin-bottom:0;padding:0;list-style:none;display:flex}.posts-container .post-container{justify-content:space-between;align-items:flex-start;margin-top:1.5rem;display:flex}.posts-container .post-container .featured-post-image{object-fit:contain;border:none;border-radius:0;max-width:120px;height:63px;margin-top:1rem}.posts-container .post-container .post-content-container{margin-right:1rem}.posts-container .post-container .post-heading{color:var(--body-color);font-family:var(--root-font-family);font-style:normal;font-weight:500;font-size:var(--body-font-size);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 .5rem;line-height:1.5;display:-webkit-box;overflow:hidden}.posts-container .post-container .post-heading a{color:var(--body-color)}.posts-container .post-container .post-heading a:hover{text-decoration:underline}.category-pre-heading{font-family:var(--root-font-family);font-variant:small-caps;margin-bottom:.25rem;font-size:1rem;font-style:normal;font-variant-caps:all-small-caps;font-weight:500;line-height:150%}@media only screen and (width>=768px){.posts-container{grid-template-columns:repeat(2,1fr);gap:0 6rem;display:grid}.posts-container{grid-template-columns:repeat(1,1fr);display:grid}.posts-container .post-container .featured-post-image{max-width:160px;height:84px}}@media only screen and (width>=950px){.posts-container{grid-template-columns:repeat(3,1fr);gap:1.5rem 6rem;display:grid}.posts-container .post-container .featured-post-image{max-width:160px;height:84px}}.intro-container{grid-column-gap:16px;grid-column-gap:16px;background-image:url(/public/graph-background.webp);background-position:bottom;background-size:initial;text-align:center;background-repeat:no-repeat;grid-template-columns:repeat(4,1fr);padding:0 16px 72px;display:grid}.intro-container .intro{grid-area:2/1/3/5}.intro-container header{font-size:var(--body-font-size);margin-bottom:2rem}.intro-container header .pretitle{font-size:1.5rem;font-family:var(--header-font-family);color:var(--body-color);margin-bottom:0}.intro-container header h1{font-size:2.5rem;font-family:var(--header-font-family);color:var(--body-color);margin-top:0;margin-bottom:1rem;line-height:1}.intro-container header p{font-size:var(--body-font-size)}.intro-container header p span{white-space:nowrap;display:inline-block;position:relative}.intro-container header p span .skill{color:var(--primary-color);font-weight:500;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);display:inline-block}.intro-container header p span .shown{opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1);position:relative}.intro-container header p span .hidden{opacity:0;position:absolute;top:0;left:0;transform:translateY(120%)}.intro-container .subheader{font-size:var(--body-font-size)}.intro-container #cogs{border:none;border-radius:0;grid-area:1/1/2/5;margin:64px 28px 36px}@media only screen and (width>=768px){.intro-container{grid-column-gap:16px;text-align:left;background-size:cover;grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(12,1fr);height:672px}.intro-container .intro{grid-area:2/2/6/8}.intro-container .intro header{text-align:left;font-size:var(--body-font-size);margin-bottom:1.875rem}.intro-container .intro header .pretitle{font-family:var(--header-font-family);margin-bottom:0}.intro-container .intro header h1{margin-top:0;margin-bottom:1rem;font-size:3rem}.intro-container .intro .subheader{font-size:var(--body-font-size);margin-bottom:0;margin-right:48px}.intro-container #cogs{border:none;border-radius:0;grid-area:5/8/6/12;margin:0}}.bio-container{color:var(--white);background-color:var(--body-color);grid-column-gap:16px;text-align:center;grid-template-columns:repeat(4,1fr);padding:0 16px;display:grid}.bio-container .bio-content-container{flex-direction:column;grid-column:1/5;justify-content:center;margin:96px 0;display:flex}.bio-container .bio-content-container h2{color:var(--white);letter-spacing:.02em;margin-top:0;margin-bottom:1rem;font-family:Merriweather;font-size:2.3125rem;font-style:normal;font-weight:700;line-height:1.5}.bio-container .bio-content-container h2 .heading-highlight{color:var(--primary-color)}.bio-container .bio-content-container p{margin-bottom:1rem}.bio-container .bio-content-container .bio-content{font-size:var(--body-font-size)}@media only screen and (width>=768px){.bio-container{text-align:left;grid-template-columns:repeat(12,1fr)}.bio-container .bio-content-container{grid-column:2/12}}@media only screen and (width>=950px){.bio-container{text-align:left;grid-template-columns:repeat(12,1fr)}}.accomplishments-section-container{grid-gap:16px;grid-template-columns:repeat(4,1fr);margin:72px 0;padding:0 16px;display:grid}.accomplishments-section-container .accomplishments-section-wrapper{grid-column:1/5}.accomplishments-section-container .accomplishments-heading{color:var(--body-color);letter-spacing:.02em;text-align:center;margin-top:0;font-family:Merriweather;font-size:2.3125rem;font-style:normal;font-weight:700;line-height:60px}.accomplishments-section-container .accomplishments-note{color:var(--gray-3);text-align:center}.accomplishments-section-container .accomplishments-list{margin:0;padding:0;list-style:none}.accomplishments-section-container .accomplishment{border-bottom:1px solid var(--border-color);margin-top:1.5rem;padding-bottom:1.5rem}.accomplishments-section-container .accomplishment:last-child{border-bottom:none;padding-bottom:0}.accomplishments-section-container .accomplishment-date{color:var(--gray-4)}.accomplishments-section-container .accomplishment-title{font-family:var(--root-font-family);margin:0 0 .5rem;font-size:1.125rem;font-weight:500}.accomplishments-section-container .accomplishment-description{white-space:pre-line;margin-bottom:.75rem}.accomplishments-section-container .accomplishment-tags,.accomplishments-section-container .accomplishment-links{flex-wrap:wrap;gap:.5rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.accomplishments-section-container .accomplishment-tags li{border:1px solid var(--border-color);border-radius:4px;padding:0 .5rem;font-size:.875rem}.accomplishments-section-container .accomplishment-links li{font-size:.875rem}@media only screen and (width>=768px){.accomplishments-section-container{grid-template-columns:repeat(12,1fr);margin:96px 0}.accomplishments-section-container .accomplishments-section-wrapper{grid-column:2/12}}.recent-blogs-section-container{grid-gap:16px;grid-template-columns:repeat(4,1fr);margin:72px 0;padding:0 16px;display:grid}.recent-blogs-section-container .recent-blogs-section-wrapper{grid-column:1/5}.recent-blogs-section-container .recent-blogs-section-wrapper .recent-blogs-heading{color:var(--body-color);letter-spacing:.02em;text-align:center;margin-top:0;font-family:Merriweather;font-size:2.3125rem;font-style:normal;font-weight:700;line-height:60px}.recent-blogs-section-container .recent-blogs-section-wrapper .recent-blogs-heading .heading-highlight{color:var(--primary-color)}.recent-blogs-section-container .recent-blogs-section-wrapper .view-all-container{text-align:end;margin-top:1.5rem;display:block}.recent-blogs-section-container .recent-blogs-section-wrapper .view-all-container .view-all{font-variant:small-caps;font-variant-caps:all-small-caps;font-family:var(--root-font-family);letter-spacing:.08em;font-size:1.125rem;font-style:normal;font-weight:700}.recent-blogs-section-container .recent-blogs-section-wrapper .view-all-container .view-all:hover,.recent-blogs-section-container .recent-blogs-section-wrapper .view-all-container .view-all:focus{text-decoration:none}@media only screen and (width>=768px){.recent-blogs-section-container{grid-template-columns:repeat(12,1fr);margin:96px 0}.recent-blogs-section-container .recent-blogs-section-wrapper{grid-column:2/12}}.blog-container{grid-template-columns:repeat(4,1fr);gap:0 16px;min-height:60vh;padding:0 16px;display:grid}.blog-container .overall-posts-container{grid-column:1/5;margin-top:56px}.blog-container .overall-posts-container .posts-container{padding-bottom:3rem}.blog-container .highlight-posts-container{border-bottom:1px solid var(--border-color);flex-direction:column;margin-bottom:0;padding:0 0 42px;list-style:none;display:flex}.blog-container .highlight-posts-container .highlight-featured-post-image{object-fit:contain;border:none;border-radius:0;max-width:100%;margin-top:1rem}.blog-container .highlight-posts-container .highlight-post-content-container{flex-direction:column;display:flex}.blog-container .highlight-posts-container .highlight-post-content-container .highlight-post-heading{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:1.5rem;display:-webkit-box;overflow:hidden}.blog-container .highlight-posts-container .highlight-post-content-container .highlight-post-heading a{color:var(--body-color)}.blog-container .highlight-posts-container .highlight-post-content-container .highlight-post-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.3125rem;display:-webkit-box;overflow:hidden}.blog-container .posts-container{grid-column:1/5}.page-info{margin-top:42px}.blog-pagination-container{grid-template-columns:repeat(4,1fr);justify-content:center;gap:0 16px;margin-bottom:56px;padding:0 16px;display:grid}.blog-pagination-container .blog-pagination-wrapper{grid-column:1/5;justify-content:center;display:flex}.blog-pagination-container .blog-pagination-wrapper .blog-pagination{font-weight:500;line-height:1.7;display:flex}.blog-pagination-container .blog-pagination-wrapper .blog-pagination .pagination-item{color:var(--body-color);margin:0 16px}.blog-pagination-container .blog-pagination-wrapper .blog-pagination .current-page{text-align:center;background-color:var(--primary-color);width:1.625rem;height:1.625rem;color:var(--white)}@media only screen and (width>=768px){.blog-container{grid-template-columns:repeat(12,1fr)}.blog-container .overall-posts-container{grid-column:2/12}.blog-container .highlight-posts-container .highlight-post-container{grid-template-columns:repeat(10,1fr);gap:0 16px;display:grid}.blog-container .highlight-posts-container .highlight-post-container a{grid-column:1/6}.blog-container .highlight-posts-container .highlight-post-container a .highlight-featured-post-image{margin:0;padding-right:40px}.blog-container .highlight-posts-container .highlight-post-container .highlight-post-content-container{grid-column:6/11}.blog-container .highlight-posts-container .highlight-post-container .highlight-post-content-container .highlight-post-heading{font-size:2rem}.blog-container .posts-container{grid-column:2/12}.blog-pagination-container{grid-template-columns:repeat(12,1fr)}.blog-pagination-container .blog-pagination-wrapper{grid-column:2/12}}
