/* default screen weights */
:root {
  --weight-regular: 400;
  --weight-semibold: 600;
  --weight-bold: 600;
}

@page {
  margin: 1in .25in 0 .25in;
}

/* print weights */
@media print {
  :root {
  --weight-regular: 300;
  --weight-semibold: 400;
  --weight-bold: 600;
  }

  /* Let @page define printable margins without extra screen padding/centering. */
  body {
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0;
  }
}

/* Force print mode (e.g. when URL has ?print or ?print=1). */
:root.force-print {
  --weight-regular: 300;
  --weight-semibold: 400;
  --weight-bold: 600;
  font-size: 12px;
}

@font-face {
  font-family: 'Resume';
  src: url('fonts/resume-light.woff2') format('woff2'),
       url('fonts/resume-light.otf') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Resume';
  src: url('fonts/resume-regular.woff2') format('woff2'),
       url('fonts/resume-regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Resume';
  src: url('fonts/resume-semibold.woff2') format('woff2'),
       url('fonts/resume-semibold.otf') format('opentype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Resume';
  src: url('fonts/resume-bold.woff2') format('woff2'),
       url('fonts/resume-bold.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

body {
  box-sizing: border-box;
  min-width: 200px;
  max-width: 980px;
  margin: 0 auto;
  padding: 45px;
}
@media (max-width: 767px) {
  body {
    padding: 15px;
  }
}
/*light */
body {
  color-scheme: light;
  /** Ideal for movement that starts on the page and ends off the page. */
  /** Ideal for movement that starts and ends on the page. */
  /** Ideal for movement that starts off the page and ends on the page. */
  /** Ideal for non-movement properties, like opacity or background color. */
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-weight: var(--weight-regular);
  color: #1f2328;
  background-color: #ffffff;
  font-family: "Proxima Nova", "Resume", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 1em;
  line-height: 1.5;
  word-wrap: break-word;
  font-variant-ligatures: common-ligatures;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1, "clig" 1;
  quotes: """ """ "'" "'";
}

body summary {
  display: list-item;
}

body [hidden] {
  display: none !important;
}

body a {
  background-color: rgba(0,0,0,0);
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0);
}

body abbr[title] {
  border-bottom: none;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

body b,
body strong {
  font-weight: var(--weight-semibold);
}

body dfn {
  font-style: normal;
  font-weight: var(--weight-regular);
}

body h1 {
  font-weight: var(--weight-semibold) !important;
  font-size: 1.5rem;
  margin-bottom: 0 !important;
  text-align: center;
}

body h1 small {
  font-weight: var(--weight-regular);
}


body h3:has(+ p) {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body h4:has(+ p),
body h5:has(+ p),
body h6:has(+ p) {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

body h1 + p {
  margin-top: 0 !important;
  padding-top: 0 !important;
  text-align: center;
}

body h2 + p,
body h3 + p,
body h4 + p,
body h5 + p,
body h6 + p {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body mark {
  background-color: #fff8c5;
  color: #1f2328;
}

body small {
  font-size: 90%;
}

body sub,
body sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

body sub {
  bottom: -0.25rem;
}

body sup {
  top: -0.5rem;
}

body img {
  border-style: none;
  max-width: 100%;
  box-sizing: content-box;
}

body img.cv-headshot {
  width: 128px;
  height: 128px;
  border-radius: 8px;
  object-fit: cover;
  display: block;
  margin: 0 auto 12px auto;
}

body figure {
  margin: 1rem 2.5rem;
}

body hr {
  box-sizing: content-box;
  overflow: hidden;
  background: rgba(0,0,0,0);
  border-bottom: 1px solid #d1d9e0b3;
  height: .25rem;
  padding: 0;
  margin: 1.5rem 0;
  background-color: #d1d9e0;
  border: 0;
}

body input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

body [type=button],
body [type=reset],
body [type=submit] {
  -webkit-appearance: button;
  appearance: button;
}

body [type=checkbox],
body [type=radio] {
  box-sizing: border-box;
  padding: 0;
}

body [type=number]::-webkit-inner-spin-button,
body [type=number]::-webkit-outer-spin-button {
  height: auto;
}

body [type=search]::-webkit-search-cancel-button,
body [type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

body ::-webkit-input-placeholder {
  color: inherit;
  opacity: .54;
}

body ::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

body a:hover {
  color: #0969da;
  text-decoration: none;
  border-bottom-color: #0969da;
}

@media screen {
  body a {
    border-bottom-color: rgb(190, 190, 190);
  }
}

@media print {
  body a {
    border-bottom: none !important;
  }

  /* Keep the icon inside the <a> so it is part of the clickable link. */
  body a:not([href^="mailto:"]):not([href^="tel:"]):not([href^="#"]):not([href^="/"]):not([href^="./"]):not([href^="../"])::after {
    content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2016%2016%27%20aria-hidden%3D%27true%27%3E%3Cpath%20fill%3D%27%23BEBEBE%27%20fill-rule%3D%27evenodd%27%20d%3D%27M7.775%203.275a.75.75%200%200%200%201.06%201.06l1.25-1.25a2%202%200%201%201%202.83%202.83l-2.5%202.5a2%202%200%200%201-2.83%200%20.75.75%200%200%200-1.06%201.06%203.5%203.5%200%200%200%204.95%200l2.5-2.5a3.5%203.5%200%200%200-4.95-4.95l-1.25%201.25zm-4.69%209.64a2%202%200%200%201%200-2.83l2.5-2.5a2%202%200%200%201%202.83%200%20.75.75%200%200%200%201.06-1.06%203.5%203.5%200%200%200-4.95%200l-2.5%202.5a3.5%203.5%200%200%200%204.95%204.95l1.25-1.25a.75.75%200%200%200-1.06-1.06l-1.25%201.25a2%202%200%200%201-2.83%200z%27/%3E%3C/svg%3E");
    display: inline-block;
    width: 0.9em;
    height: 0.9em;
    margin-left: 0.25rem;
    vertical-align: -0.12em;
  }
}

/* Same as print styling, but opt-in via `html.force-print` for on-screen preview. */
:root.force-print body a {
  border-bottom: none !important;
}

:root.force-print body a:not([href^="mailto:"]):not([href^="tel:"]):not([href^="#"]):not([href^="/"]):not([href^="./"]):not([href^="../"])::after {
  content: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2016%2016%27%20aria-hidden%3D%27true%27%3E%3Cpath%20fill%3D%27%23BEBEBE%27%20fill-rule%3D%27evenodd%27%20d%3D%27M7.775%203.275a.75.75%200%200%200%201.06%201.06l1.25-1.25a2%202%200%201%201%202.83%202.83l-2.5%202.5a2%202%200%200%201-2.83%200%20.75.75%200%200%200-1.06%201.06%203.5%203.5%200%200%200%204.95%200l2.5-2.5a3.5%203.5%200%200%200-4.95-4.95l-1.25%201.25zm-4.69%209.64a2%202%200%200%201%200-2.83l2.5-2.5a2%202%200%200%201%202.83%200%20.75.75%200%200%200%201.06-1.06%203.5%203.5%200%200%200-4.95%200l-2.5%202.5a3.5%203.5%200%200%200%204.95%204.95l1.25-1.25a.75.75%200%200%200-1.06-1.06l-1.25%201.25a2%202%200%200%201-2.83%200z%27/%3E%3C/svg%3E");
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-left: 0.25rem;
  vertical-align: -0.12em;
}

body ::placeholder {
  color: #59636e;
  opacity: 1;
}

body hr::before {
  display: table;
  content: "";
}

body hr::after {
  display: table;
  clear: both;
  content: "";
}

body table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  width: max-content;
  max-width: 100%;
  overflow: auto;
  font-variant: tabular-nums;
}

body td,
body th {
  padding: 0;
}

body details summary {
  cursor: pointer;
}

body a:focus,
body [role=button]:focus,
body input[type=radio]:focus,
body input[type=checkbox]:focus {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  box-shadow: none;
}

body a:focus:not(:focus-visible),
body [role=button]:focus:not(:focus-visible),
body input[type=radio]:focus:not(:focus-visible),
body input[type=checkbox]:focus:not(:focus-visible) {
  outline: solid 1px rgba(0,0,0,0);
}

body a:focus-visible,
body [role=button]:focus-visible,
body input[type=radio]:focus-visible,
body input[type=checkbox]:focus-visible {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  box-shadow: none;
}

body a:not([class]):focus,
body a:not([class]):focus-visible,
body input[type=radio]:focus,
body input[type=radio]:focus-visible,
body input[type=checkbox]:focus,
body input[type=checkbox]:focus-visible {
  outline-offset: 0;
}

body h1,
body h2,
body h4,
body h5,
body h6 {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  font-weight: var(--weight-bold);
  line-height: 1.25;
}

body h2 {
  font-weight: var(--weight-regular);
  padding-bottom: 0.25rem;
  margin-bottom: 1rem;
  font-size: .9rem;
  text-transform: uppercase;
  border-bottom: 3px solid rgba(0, 0, 0, 0.25);
}

body h3 {
  margin-top: 1.5rem;
  font-weight: var(--weight-semibold);
  line-height: 1.25;
  font-size: 1rem;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

body h3 abbr::before {
  content: "• ";
  color: rgba(0, 0, 0, 0.25);
  font-size: 1.1rem;
  line-height: 0;
}

body h3 abbr {
  font-weight: var(--weight-regular);
}

body h4 {
  font-weight: var(--weight-semibold);
  font-size: 1rem;
}

body h5 {
  font-weight: var(--weight-bold);
  font-size: .875rem;
}

body h6 {
  font-weight: var(--weight-bold);
  font-size: .85rem;
  color: #59636e;
}

body p {
  margin-top: 0;
  margin-bottom: 10px;
}

body p code {
  color: rgba(0, 0, 0, 0.25);
  font-weight: var(--weight-regular);
}

body p  abbr::before,
body li abbr::before {
  content: "• ";
  color: rgba(0, 0, 0, 0.25);
  font-size: 1.1rem;
  line-height: 0;
}

body p  abbr,
body li abbr {
  font-weight: var(--weight-regular);
}

body blockquote {
  margin: 0;
  padding: 0 1rem;
  color: #59636e;
  border-left: .25rem solid #d1d9e0;
}

body ul,
body ol {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2rem;
}

body li {
  page-break-inside: avoid;
  break-inside: avoid;
}

body ol {
  list-style: none;
}

body ol > li::before {
  content: "•";
  color: rgba(0, 0, 0, 0.25);
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 0;
  display: inline-block;
  width: 1rem;
  margin-left: -1rem;
}

body ul {
  list-style: none;
}

body ul > li::before {
  content: "•";
  color: rgba(0, 0, 0, 0.25);
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 0;
  display: inline-block;
  width: 1rem;
  margin-left: -1.1rem;
}

body span.\2022,
body span.bullet {
  color: rgba(0, 0, 0, 0.25);
  font-size: 1.1rem;
  line-height: 0;
}

body ol ol,
body ul ol {
  list-style-type: lower-roman;
}

body ul ul ol,
body ul ol ol,
body ol ul ol,
body ol ol ol {
  list-style-type: lower-alpha;
}

body dd {
  margin-left: 0;
}

body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  font-size: 12px;
  word-wrap: normal;
}

body::before {
  display: table;
  content: "";
}

body::after {
  display: table;
  clear: both;
  content: "";
}

body>*:first-child {
  margin-top: 0 !important;
}

body>*:last-child {
  margin-bottom: 0 !important;
}

body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

body .absent {
  color: #d1242f;
}

body .anchor {
  float: left;
  padding-right: 0.25rem;
  margin-left: -20px;
  line-height: 1;
}

body .anchor:focus {
  outline: none;
}

body p,
body blockquote {
  margin-top: 0;
  margin-bottom: 0.5rem;
}

body ul,
body ol,
body dl,
body table,
body pre,
body details {
  margin-top: 0;
  margin-bottom: 1.5rem;
}

body blockquote>:first-child {
  margin-top: 0;
}

body blockquote>:last-child {
  margin-bottom: 0;
}

body h1:hover .anchor,
body h2:hover .anchor,
body h3:hover .anchor,
body h4:hover .anchor,
body h5:hover .anchor,
body h6:hover .anchor {
  text-decoration: none;
}

body summary h1,
body summary h2,
body summary h3,
body summary h4,
body summary h5,
body summary h6 {
  display: inline-block;
}

body summary h1 .anchor,
body summary h2 .anchor,
body summary h3 .anchor,
body summary h4 .anchor,
body summary h5 .anchor,
body summary h6 .anchor {
  margin-left: -40px;
}

body summary h1,
body summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

body ul.no-list,
body ol.no-list {
  padding: 0;
  list-style-type: none;
}

body ol[type="a s"] {
  list-style-type: lower-alpha;
}

body ol[type="A s"] {
  list-style-type: upper-alpha;
}

body ol[type="i s"] {
  list-style-type: lower-roman;
}

body ol[type="I s"] {
  list-style-type: upper-roman;
}

body ol[type="1"] {
  list-style-type: decimal;
}

body div>ol:not([type]) {
  list-style-type: decimal;
}

body ul ul,
body ul ol,
body ol ol,
body ol ul {
  margin-top: 0;
  margin-bottom: 0;
}

body li>p {
  margin-top: 1rem;
}

body li+li {
  margin-top: .25rem;
}

body dl {
  padding: 0;
}

body dl dt {
  padding: 0;
  margin-top: 1rem;
  font-size: 1rem;
  font-style: italic;
  font-weight: var(--weight-bold);
}

body dl dd {
  padding: 0 1rem;
  margin-bottom: 1rem;
}

body table th {
  font-weight: var(--weight-bold);
}

body table th,
body table td {
  padding: 6px 13px;
  border: 1px solid #d1d9e0;
}

body table td>:last-child {
  margin-bottom: 0;
}

body table tr {
  background-color: #ffffff;
  border-top: 1px solid #d1d9e0b3;
}

body table tr:nth-child(2n) {
  background-color: #f6f8fa;
}

body table img {
  background-color: rgba(0,0,0,0);
}

body img[align=right] {
  padding-left: 20px;
}

body img[align=left] {
  padding-right: 20px;
}

body .emoji {
  max-width: none;
  vertical-align: text-top;
  background-color: rgba(0,0,0,0);
}

body span.frame {
  display: block;
  overflow: hidden;
}

body span.frame>span {
  display: block;
  float: left;
  width: auto;
  padding: 7px;
  margin: 13px 0 0;
  overflow: hidden;
  border: 1px solid #d1d9e0;
}

body span.frame span img {
  display: block;
  float: left;
}

body span.frame span span {
  display: block;
  padding: 5px 0 0;
  clear: both;
  color: #1f2328;
}

body span.align-center {
  display: block;
  overflow: hidden;
  clear: both;
}

body span.align-center>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: center;
}

body span.align-center span img {
  margin: 0 auto;
  text-align: center;
}

body span.align-right {
  display: block;
  overflow: hidden;
  clear: both;
}

body span.align-right>span {
  display: block;
  margin: 13px 0 0;
  overflow: hidden;
  text-align: right;
}

body span.align-right span img {
  margin: 0;
  text-align: right;
}

body span.float-left {
  display: block;
  float: left;
  margin-right: 13px;
  overflow: hidden;
}

body span.float-left span {
  margin: 13px 0 0;
}

body span.float-right {
  display: block;
  float: right;
  margin-left: 13px;
  overflow: hidden;
}

body span.float-right>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: right;
}

body .highlight {
  margin-bottom: 1rem;
}

body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

body .highlight pre,
body pre {
  padding: 1rem;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: #1f2328;
  background-color: #f6f8fa;
  border-radius: 6px;
}

body [role=button]:focus:not(:focus-visible),
body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),
body button:focus:not(:focus-visible),
body summary:focus:not(:focus-visible),
body a:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

body [tabindex="0"]:focus:not(:focus-visible),
body details-dialog:focus:not(:focus-visible) {
  outline: none;
}

body g-emoji {
  display: inline-block;
  min-width: 1ch;
  font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  font-size: 1rem;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1;
  vertical-align: -0.075rem;
}

body g-emoji img {
  width: 1rem;
  height: 1rem;
}

@media screen and (prefers-color-scheme: dark) {
  body {
    color-scheme: dark;
    color: #e6edf3;
    background-color: #0d1117;
  }

  body a:hover {
    color: #58a6ff;
    border-bottom-color: #58a6ff;
  }

  body h6 {
    color: #8b949e;
  }

  body mark {
    background-color: #3b2f04;
    color: #f0f6fc;
  }

  body p code {
    color: rgba(255, 255, 255, 0.6);
  }

  body h3 abbr::before,
  body p abbr::before,
  body li abbr::before {
    color: rgba(255, 255, 255, 0.6);
  }

  body blockquote {
    color: #8b949e;
    border-left-color: #30363d;
  }

  body ::placeholder {
    color: #8b949e;
  }

  body hr {
    background-color: #30363d;
    border-bottom-color: #30363d;
  }

  body table th,
  body table td {
    border-color: #30363d;
  }

  body table tr {
    background-color: #0d1117;
    border-top-color: #30363d;
  }

  body table tr:nth-child(2n) {
    background-color: #161b22;
  }

  body span.frame>span {
    border-color: #30363d;
  }

  body span.frame span span {
    color: #e6edf3;
  }

  body .highlight pre,
  body pre {
    color: #e6edf3;
    background-color: #161b22;
  }

  body .absent {
    color: #ff7b72;
  }

  body ol > li::before,
  body ul > li::before,
  body span.\2022,
  body span.bullet {
    color: rgba(255, 255, 255, 0.6);
  }

}

@media print {
  html {
    font-size: 12px;
  }

  body img.cv-headshot {
    display: none !important;
  }

  body h1 {
    font-size: 1.25rem;
    margin: 0 !important;
  }
}

:root.force-print body h1 {
  font-size: 1.25rem;
}
