/* http://meyerweb.com/eric/tools/css/reset/  v2.0 | 20110126 License: none (public domain) */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video, button { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }

body { line-height: 1; }

ol, ul { list-style: none; }

blockquote, q { quotes: none; }

blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }

table { border-collapse: collapse; border-spacing: 0; }

button { border: none; background: inherit; }

.transition-fade { transition: opacity 80ms; opacity: 1; }

html.is-animating .transition-fade { opacity: 0; }

html { box-sizing: border-box; }

*, *:before, *:after { box-sizing: inherit; }

body { display: flex; flex-direction: column; min-height: 100vh; max-width: 100vw; border-bottom: 3px solid var(--accent-color); border-top: 3px solid var(--accent-color); overflow-x: hidden; }

main { flex: 1 0 auto; }

article { max-width: 38em; margin: 3em auto; padding: 0 1em; }

article > header { margin-bottom: 2em; }

article > header h1, article > header h2 { text-align: center; }

article > section:not(:last-child) { margin-bottom: 3em; }

section > header { margin-bottom: 1em; }

.two-columns { display: grid; grid-gap: 2em; }

@media screen and (min-width: 700px) { .two-columns { grid-template-columns: 1fr 1fr; } }

@media screen and (max-width: 699px) { .two-columns { grid-template-columns: 1fr; } }

p:not(:last-child) { margin-bottom: 1em; }

ul.sidebar li { list-style-type: none; border-left: 1px solid var(--accent-color); margin-bottom: 1em; }

.keyline-bottom { border-bottom: 1px solid var(--accent-color); line-height: 1.2; margin-bottom: 0.6em; }

.skinny-center-justified { max-width: 30rem; margin: 0 auto; text-align: justify; }

ul.strong-description li { display: flex; }

ul.strong-description strong { padding-right: .8em; flex-grow: 0; flex-shrink: 0; }

ul.strong-description p { flex-grow: 1; padding-left: .8em; border-left: 1px solid var(--accent-color); }

.keyline-container { display: flex; justify-content: space-evenly; align-items: center; }

.keyline-container p { margin: 0 1em; }

.keyline-container div { flex-grow: 1; background-color: var(--accent-color); content: ""; height: 1px; }

@media (max-width: 650px) { ul.strong-description li { flex-direction: column; } }

@media (min-width: 650px) { ul.strong-description strong { flex-basis: 150px; text-align: right; } ul.strong-description p { flex-basis: 400px; } }

html { font-size: 18px; }

@font-face { font-family: "Nunito"; font-display: fallback; font-style: normal; font-weight: 200; src: local("Nunito ExtraLight"), local("Nunito-ExtraLight"), url(https://fonts.gstatic.com/s/nunito/v9/XRXW3I6Li01BKofA-seUYevI.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@font-face { font-family: "Nunito"; font-display: fallback; font-style: normal; font-weight: 400; src: local("Nunito Regular"), local("Nunito-Regular"), url(https://fonts.gstatic.com/s/nunito/v9/XRXV3I6Li01BKofINeaB.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

body { font-family: "Nunito", sans-serif; line-height: 1.8; background-color: var(--background-color); color: var(--foreground-color); }

h1, h2, h3, h4 { padding: 0 0.5em; }

h1 { font-size: 5em; line-height: 1.5; font-weight: 200; }

h2 { font-weight: 400; font-size: 2.5em; line-height: 1.5; }

h3 { margin-top: 2em; font-size: 1.7em; font-weight: 400; }

h4 { font-weight: 200; font-size: 1.3em; font-weight: 400; }

strong { font-weight: 900; color: #333; }

em { font-style: italic; }

code { font-family: monospace; font-size: 0.8em; background: #eee; padding: 0.1em 0.5em; }

p { font-size: 1em; }

a, button { color: var(--accent-color); text-decoration: none; transition-property: color; transition-duration: 0.4s; }

a:hover, button:hover { color: var(--accent-hover-color); }

ul { margin-left: 2em; list-style: disc; }

ul li { margin-bottom: 1em; }

.subtitle { font-style: italic; font-size: 1.1em; }

.text-center { text-align: center; }

.text-right { text-align: right; }

.muted { line-height: 1.6; color: var(--light-text-color); }

.light-text { color: var(--light-text-color); }

.nowrap { white-space: nowrap; }

@media (max-width: 600px) { h1 { font-size: 2.8em; } h2 { font-size: 2em; } }

article.post { margin-bottom: 5em; max-width: 38em; }

article.post header { margin: 4.7em 0 1.56em 0; }

article.post header h1 { font-size: 3em; letter-spacing: -0.02em; margin-bottom: 0; line-height: 1; color: 333; }

article.post header p.post-date { font-size: .8em; margin-bottom: .3rem; font-style: italic; margin: .5em; }

article.post > p { line-height: 1.56; text-align: justify; margin: 0 0 1.56rem 0; }

article.post > h1 { font-size: 1.95em; font-weight: 400; color: #555; letter-spacing: -0.01em; line-height: 1.2; border-bottom: 1px solid var(--accent-color); margin: 1.95rem 0 .8rem 0; padding: 0; }

article.post h2 { font-size: 1.56em; font-weight: 400; color: #555; letter-spacing: -0.03em; margin: 1.95rem 0 .8rem 0; padding: 0; line-height: 1; }

article.post h3 { font-size: 1.25em; font-weight: 400; color: #555; margin: 1.56rem 0 .8rem 0; padding: 0; line-height: 1; }

article.post li { margin: 0 0 .64rem 0; line-height: 1.56; }

article.post ul { margin: 0 0 1.56rem 1.95rem; }

article.post blockquote { color: var(--light-text-color); border-left: 1px solid var(--light-text-color); padding-left: .8rem; margin: 1.56rem .8rem; line-height: 1.56; font-style: italic; }

article.post div.highlighter-rouge { line-height: 1.2; font-size: 1em; padding: .8rem; margin: 1.56rem .8rem; background-color: #eee; overflow-x: auto; }

article.post figure { width: 100%; margin-bottom: 2.4rem; }

article.post img { max-width: 100%; margin: 0 auto; box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.25); }

article.post figcaption { text-align: center; font-style: italic; font-size: .9em; color: var(--light-text-color); }

@media (max-width: 600px) { .post header h1 { font-size: 2.8em; } .post ul { margin-left: 1.2rem; margin-right: .4rem; } .post p { text-align: left; } }

@media (max-width: 360px) { .post header h1 { font-size: 2.2em; } }

.resume header { margin-bottom: 4em; }

.resume header h1, .resume header h2 { text-align: left; padding-left: 1rem; border-left: 1px solid var(--accent-color); }

.resume header h1 { font-size: 3em; line-height: 1.3; }

.resume header h2 { font-size: 2em; margin-bottom: 2em; font-weight: 100; display: flex; flex-wrap: wrap; }

.resume header h2 div { padding-right: 0.3em; }

.resume header p { text-align: inherit; }

.resume header address { margin-top: 2em; display: flex; justify-content: center; flex-wrap: wrap; }

.resume header address p { line-height: 1; padding: 0 1.5em; font-size: 0.85em; text-align: center; }

.resume h4 { padding: 0; }

@media (max-width: 650px) { .resume header h1 { font-size: 2.7em; } .resume header h2 { font-size: 1.7em; } }

footer.main { flex-grow: 0; text-align: center; padding: 0 1em; margin-top: 1em; }

footer.main p { margin-bottom: 0; line-height: 1.3; }

.icon { height: 1.4em; margin-right: .3em; }

.icon.icon-big { margin-top: 1em; height: 2em; }

.icon.icon-color path { fill: var(--foreground-color); transition-duration: .9s; }

.icon-inline { height: 1em; margin-right: .3em; }

a:hover .icon-color path { transition-duration: .2s; fill: var(--accent-hover-color); }

.icon-logo { border-radius: 50%; background-color: var(--background-color); transition-duration: .9s; }

a:hover .icon-logo { background-color: var(--accent-color); transition-duration: .2s; }

ul.tech-list { margin: 0; font-size: 1.1em; display: flex; flex-wrap: wrap; justify-content: center; }

ul.tech-list.center { justify-content: center; }

ul.tech-list li { display: flex; align-items: center; margin: 0 .7em .8em .7em; }

body > header { width: 100vw; }

body > header a:focus { outline: none; }

body > header a:focus span:nth-child(2) { text-decoration: underline; }

nav.main { position: relative; }

nav.main div.navbar-tab { background-color: var(--accent-color); position: absolute; z-index: 10; box-shadow: 2px 1px 6px #0006; border-radius: 0 0 2px 2px; width: 80px; height: 20px; transform-origin: 0 0; left: -100px; top: -100px; }

nav.main .slide-transition { transition-property: transform; transition-duration: 250ms; transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1); }

nav.main ul { display: flex; list-style: none; padding: 0; margin: 0; }

nav.main li { z-index: 20; line-height: 2; display: flex; align-items: center; justify-content: center; margin: 0; color: var(--foreground-color); }

nav.main .active { color: var(--background-color); }

nav.main .active svg path { fill: var(--background-color); }

nav.main li:not(.active):hover { color: var(--accent-hover-color); }

nav.main a { color: inherit; background-color: inherit; }

nav.main a:hover { color: inherit; }

nav.main li.dropdown-parent { display: flex; flex-direction: column; }

nav.main ul.nav-dropdown { visibility: hidden; opacity: 0; transition-property: opacity, visibility; transition-duration: 0.4s; display: flex; flex-direction: column; position: absolute; align-items: flex-start; top: 2em; }

nav.main ul.nav-dropdown li, nav.main ul.nav-dropdown a { transition-property: text-shadow, text-decoration; transition-duration: 0.2s; }

nav.main ul.nav-dropdown a:focus, nav.main ul.nav-dropdown a:active { outline: none; text-decoration: underline; }

nav.main li.dropdown-parent:hover > ul, nav.main li.dropdown-parent:focus-within > ul, nav.main ul.nav-dropdown:hover { visibility: visible; opacity: 1; }

@media (min-width: 601px) { nav.main { padding: 0 1em 1em 1em; } nav.main ul { flex-direction: row; justify-content: end; align-items: flex-start; } nav.main a { padding: 0 1em; } nav.main li:first-child { margin-right: auto; } button.hamburger { display: none; } }

@media (max-width: 600px) { button.hamburger { position: fixed; right: 20px; bottom: 60px; width: 50px; height: 50px; z-index: 20; background-color: var(--accent-color); box-shadow: 3px 3px 20px #00000080; border-radius: 50%; overflow: hidden; font-size: 0; } button.hamburger span { position: absolute; height: 1px; width: 24px; right: 13px; background-color: var(--background-color); transform-origin: left; transition-property: transform; transition-duration: 150ms; } button.hamburger :nth-child(1) { top: 17px; } button.hamburger :nth-child(2) { top: 25px; } button.hamburger :nth-child(3) { top: 33px; } button.hamburger.active :nth-child(1) { transform: translateX(3.1px) rotate(41.8deg); } button.hamburger.active :nth-child(2) { transform: translateX(-100px); } button.hamburger.active :nth-child(3) { transform: translateX(3.1px) rotate(-41.8deg); } nav.main { transform: scaleX(0); position: fixed; right: 45px; left: 45px; bottom: 85px; z-index: 10; overflow: hidden; background-color: var(--background-color); border: 1px solid var(--accent-color); box-shadow: 3px 3px 15px #0009; transition: transform 100ms 80ms; transform-origin: right bottom; margin: 1px; } nav.main ul { flex-direction: column; padding: 1em; } nav.main a { display: flex; align-items: baseline; justify-content: center; width: 100%; } nav.main a > span:first-child { flex: 33%; text-align: right; } nav.main a > span:nth-child(2) { flex: 66%; font-size: 1.3em; } nav.main li { width: 100%; } nav.main li:not(:last-child) { margin-bottom: 1.5em; } nav.main.open { transform: scaleX(1); } nav.main .icon { height: 1em; } }

nav.social-media { display: flex; justify-content: center; }

nav.social-media a { display: inline-block; margin: 0 1rem; transition-property: fill-color; transition-duration: 0.2s; }

.tabs__nav { margin: 3em 1em; display: flex; flex-direction: row; justify-content: center; padding: 0; }

.tabs__button { border-bottom: 1px solid var(--accent-color); margin: 0; padding: 0.2em 2em; cursor: pointer; }

.tabs__button:focus, .tabs__button:active, .tabs__button:hover { outline: none; text-decoration: underline; }

.tabs__button_active { border: 1px solid var(--accent-color); border-radius: 5% 5% 0 0; }

.tabs__page { margin-top: 1em; transition: opacity 0.2s ease-in-out; position: relative; }

.tabs__page_hidden { opacity: 0; transform: scaleY(0%); display: none; }

@media (max-width: 670px) { .tabs__button { padding: 0.2em .8em; } }

ul.project-showcase { margin: 0; }

ul.project-showcase > li { display: flex; flex-wrap: wrap; margin-bottom: 5em; }

ul.project-showcase .name, ul.project-showcase .description { padding-top: 1em; padding-bottom: 1em; }

ul.project-showcase .name { flex-basis: 200px; flex-grow: 1; padding-right: 2em; display: flex; flex-direction: column; justify-content: center; align-items: flex-end; font-weight: bold; text-align: right; border-right: 1px solid var(--accent-color); }

ul.project-showcase .description { flex-basis: 400px; flex-grow: 2; padding-left: 2em; }

ul.project-showcase .showcase-image { width: 100%; margin-bottom: 0em; padding: 0em; border-bottom: 1px solid var(--accent-color); }

ul.project-showcase .showcase-image * { width: inherit; height: inherit; display: block; }

ul.project-showcase .showcase-image-anchor { width: 100%; }

@media (max-width: 670px) { ul.project-showcase .name { order: -1; border-top: 1px solid var(--accent-color); } ul.project-showcase .description { border-top: 1px solid var(--accent-color); border-left: 1px solid var(--accent-color); border-bottom: 1px solid var(--accent-color); } ul.project-showcase .showcase-image_border { border-top: 1px solid var(--accent-color); border-left: 1px solid var(--accent-color); border-right: 1px solid var(--accent-color); border-bottom: none; } }

dl.stacked { margin-bottom: 2em; }

dl.stacked dd { margin-left: 1em; margin-bottom: 2em; padding-left: 1em; border-left: 1px solid var(--accent-color); }

.highlight .hll { background-color: #ffffcc; }

.highlight .c { color: #408080; font-style: italic; }

/* Comment */
.highlight .err { border: 1px solid #ff0000; }

/* Error */
.highlight .k { color: #008000; font-weight: bold; }

/* Keyword */
.highlight .o { color: #666666; }

/* Operator */
.highlight .cm { color: #408080; font-style: italic; }

/* Comment.Multiline */
.highlight .cp { color: #bc7a00; }

/* Comment.Preproc */
.highlight .c1 { color: #408080; font-style: italic; }

/* Comment.Single */
.highlight .cs { color: #408080; font-style: italic; }

/* Comment.Special */
.highlight .gd { color: #a00000; }

/* Generic.Deleted */
.highlight .ge { font-style: italic; }

/* Generic.Emph */
.highlight .gr { color: #ff0000; }

/* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold; }

/* Generic.Heading */
.highlight .gi { color: #00a000; }

/* Generic.Inserted */
.highlight .go { color: #808080; }

/* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold; }

/* Generic.Prompt */
.highlight .gs { font-weight: bold; }

/* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold; }

/* Generic.Subheading */
.highlight .gt { color: #0040d0; }

/* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold; }

/* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold; }

/* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold; }

/* Keyword.Namespace */
.highlight .kp { color: #008000; }

/* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold; }

/* Keyword.Reserved */
.highlight .kt { color: #b00040; }

/* Keyword.Type */
.highlight .m { color: #666666; }

/* Literal.Number */
.highlight .s { color: #ba2121; }

/* Literal.String */
.highlight .na { color: #7d9029; }

/* Name.Attribute */
.highlight .nb { color: #008000; }

/* Name.Builtin */
.highlight .nc { color: #0000ff; font-weight: bold; }

/* Name.Class */
.highlight .no { color: #880000; }

/* Name.Constant */
.highlight .nd { color: #aa22ff; }

/* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold; }

/* Name.Entity */
.highlight .ne { color: #d2413a; font-weight: bold; }

/* Name.Exception */
.highlight .nf { color: #0000ff; }

/* Name.Function */
.highlight .nl { color: #a0a000; }

/* Name.Label */
.highlight .nn { color: #0000ff; font-weight: bold; }

/* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold; }

/* Name.Tag */
.highlight .nv { color: #19177c; }

/* Name.Variable */
.highlight .ow { color: #aa22ff; font-weight: bold; }

/* Operator.Word */
.highlight .w { color: #bbbbbb; }

/* Text.Whitespace */
.highlight .mf { color: #666666; }

/* Literal.Number.Float */
.highlight .mh { color: #666666; }

/* Literal.Number.Hex */
.highlight .mi { color: #666666; }

/* Literal.Number.Integer */
.highlight .mo { color: #666666; }

/* Literal.Number.Oct */
.highlight .sb { color: #ba2121; }

/* Literal.String.Backtick */
.highlight .sc { color: #ba2121; }

/* Literal.String.Char */
.highlight .sd { color: #ba2121; font-style: italic; }

/* Literal.String.Doc */
.highlight .s2 { color: #ba2121; }

/* Literal.String.Double */
.highlight .se { color: #bb6622; font-weight: bold; }

/* Literal.String.Escape */
.highlight .sh { color: #ba2121; }

/* Literal.String.Heredoc */
.highlight .si { color: #bb6688; font-weight: bold; }

/* Literal.String.Interpol */
.highlight .sx { color: #008000; }

/* Literal.String.Other */
.highlight .sr { color: #bb6688; }

/* Literal.String.Regex */
.highlight .s1 { color: #ba2121; }

/* Literal.String.Single */
.highlight .ss { color: #19177c; }

/* Literal.String.Symbol */
.highlight .bp { color: #008000; }

/* Name.Builtin.Pseudo */
.highlight .vc { color: #19177c; }

/* Name.Variable.Class */
.highlight .vg { color: #19177c; }

/* Name.Variable.Global */
.highlight .vi { color: #19177c; }

/* Name.Variable.Instance */
.highlight .il { color: #666666; }

/* Literal.Number.Integer.Long */
@media all { .page-break { display: none; } }

@media print { .page-break { display: block; page-break-before: always; } body > header, body > footer { display: none; } html body { font-size: 13px; border: none; background: none; } html dl.stacked dd { margin-bottom: 1.2em; } body article { margin: 2em .5em .5em .5em; } article.resume { max-width: 100%; } article.resume p { margin-bottom: .5em; } article.resume p.subtitle { margin-bottom: 0; } article.resume > header { margin-bottom: 2.5em; } article.resume > header > h2 { margin-bottom: 1em; } article.resume > header > address { margin-top: 0; } article.resume > header > address p { font-size: 1em; } article.resume > section:not(:last-child) { margin-bottom: 1em; } article.resume ul.strengths li { margin-bottom: .7em; display: block; } article.resume ul.strengths li strong { display: inline-block; vertical-align: top; width: 15%; } article.resume ul.strengths li div { display: inline-block; width: 85%; } section.two-columns { display: inline-block; width: 100%; } section.two-columns section.column { display: inline-block; max-width: 48%; width: 48%; } section.two-columns section.column:first-child { float: left; } section.two-columns section.column:nth-child(2) { float: right; } }

:root { --accent-color: #743037; --accent-hover-color: #220043; --background-color: #FAFAFA; --foreground-color: #444; --light-text-color: #636363; }

.circle-portrait { display: block; max-width: 80%; border-radius: 50%; margin: 2em auto 5em auto; overflow: hidden; }

.circle-portrait * { width: 100%; }

@media (max-width: 412px) { .circle-portrait { max-width: 300px; max-height: 300px; width: calc(100vw - 36px); height: calc(100vw - 36px); } }

@media (min-width: 411px) { .circle-portrait { width: 300px; height: 300px; } }

/*# sourceMappingURL=main.css.map */