/**
  * Based on the report example of weasyprint:
  * https://github.com/CourtBouillon/weasyprint-samples/tree/master/report
  */
@font-face {
  font-family: 'Fira Sans';
  font-weight: 400;
  src: url('firasans-regular.otf');
}
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-weight: 400;
  src: url('firasans-italic.otf');
}
@font-face {
  font-family: 'Fira Sans';
  font-weight: 300;
  src: url('firasans-light.otf');
}
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-weight: 300;
  src: url('firasans-lightitalic.otf');
}
@font-face {
  font-family: 'Fira Sans';
  font-weight: 700;
  src: url('firasans-bold.otf');
}

@font-face {
  font-family: 'Cascadia Mono';
  font-weight: 200;
  src: url('CascadiaMono-ExtraLight.otf');
}
@font-face {
  font-family: 'Cascadia Mono';
  font-style: italic;
  font-weight: 200;
  src: url('CascadiaMono-ExtraLightItalic.otf');
}
@font-face {
  font-family: 'Cascadia Mono';
  font-weight: 300;
  src: url('CascadiaMono-Light.otf');
}
@font-face {
  font-family: 'Cascadia Mono';
  font-style: italic;
  font-weight: 300;
  src: url('CascadiaMono-LightItalic.otf');
}
@font-face {
  font-family: 'Cascadia Mono';
  font-weight: 400;
  src: url('CascadiaMono-Regular.otf');
}
@font-face {
  font-family: 'Cascadia Mono';
  font-style: italic;
  font-weight: 400;
  src: url('CascadiaMono-Italic.otf');
}

:root {
  --highlight-bg-color: #cbe368;
  --highlight-link-color: #719b25;
  --table-cell-top-padding: 2mm;
}

@page {
  @bottom-right {
    background-color: var(--highlight-bg-color);
    content: counter(page);
    height: 1cm;
    text-align: center;
    width: 1cm;
  }
  @bottom-center {
    background-color: var(--highlight-bg-color);
    content: '';
    display: block;
    height: .05cm;
    opacity: .5;
    width: 100%;
  }
  @bottom-left {
    content: string(heading);
    font-size: 9pt;
    height: 1cm;
    vertical-align: middle;
    width: 100%;
  }
}
@page :blank {
  @bottom-right { background: none; content: '' }
  @bottom-center { content: none }
  @bottom-left { content: none }
}
@page no-chapter {
  @top-left { background: none; content: none }
  @top-center { content: none }
  @top-right { content: none }
}
@page cover {
  margin: 0;
}

html {
  color: #393939;
  font-family: 'Fira Sans';
  font-size: 11pt;
  font-weight: 300;
  line-height: 1.5;
  font-variant-ligatures: common-ligatures;
  font-variant-numeric: oldstyle-nums tabular-nums;
  text-align: justify;
  hyphens: auto;
}

h1 {
  break-before: always;
  color: var(--highlight-bg-color);
  font-size: 38pt;
  margin: 2cm 0 1cm 0;
  page: no-chapter;
  width: 100%;
}
h2, h3, h4 {
  color: black;
  font-weight: 400;
}
h2 {
  font-size: 28pt;
  string-set: heading content();
}
h3 {
  font-weight: 300;
  font-size: 15pt;
}
h4 {
  font-size: 13pt;
}

pre {
  background-color: #fcfcfc !important;
  padding: 1.25em 1.5em;
  white-space: pre;
  word-wrap: normal;
  font-size: .875em;
}

code {
  font-family: 'Cascadia Mono';
  font-weight: 200;
}

a {
  color: var(--highlight-link-color);
  text-decoration: none;
  font-variant: small-caps;
}

table {
  border-collapse: collapse;
  width: 100%;
  page-break-before: avoid;
  page-break-inside: auto;
}
tr {
  page-break-inside:avoid;
  page-break-after:auto;
}
thead {
  display:table-header-group;
}
tfoot {
  display:table-footer-group;
}
th {
  border-bottom: .2mm solid;
  border-color: var(--highlight-bg-color);
  color: var(--highlight-bg-color);
  font-size: 10pt;
  font-weight: 400;
  padding-bottom: .175cm;
  font-variant: small-caps;
}
td {
  padding-top: var(--table-cell-top-padding);
}
td:last-of-type {
  text-align: right;
}
th:first-of-type, td:first-of-type {
  text-align: left;
}
th:last-of-type, td:last-of-type {
  text-align: right;
}

.tex sub, .latex sub, .latex sup {
  text-transform: uppercase;
}

.tex sub, .latex sub {
  vertical-align: -0.08cm;
  margin-left: -0.15cm;
  margin-right: -0.095cm;
}

.tex, .latex, .tex sub, .latex sub {
  font-size: 100%;
}

.latex sup {
  font-size: 85%;
  vertical-align: 0.06cm;
  margin-left: -0.15cm;
  margin-right: -0.09cm;
}

.upright {
  font-style: normal;
  margin-left: -.11cm;
  margin-right: -.11cm;
}

#cover {
  align-content: space-between;
  display: flex;
  flex-wrap: wrap;
  height: 297mm;
  page: cover;
}
#cover #coverimg img {
  display: block;
  width: 14cm;
  margin-left: 3.5cm;
  margin-top: 3cm;
}
#cover #refbox {
  width: 12cm;
  background-color: #00b847;
  color: #ffffff;
  font-size: 24pt;
  margin-left: 3.5cm;
  margin-top: 1.5cm;
  margin-bottom: 1.5cm;
  padding: .5cm 1cm;
  text-align: center;
}
#cover #metadata {
  width: 14cm;
  margin-left: 3.5cm;
  margin-bottom: 2.5cm;
  font-size: 14pt;
  text-align: center;
}
#cover #metadata * {
  display: block;
}
#cover #metadata img {
  height: 3.5cm;
  margin-left: auto;
  margin-right: auto;
}

#license blockquote {
  margin-top: 1cm;
}

#contents {
  break-before: right;
  break-after: left;
  page: no-chapter;
}
#contents h2 {
  font-size: 20pt;
  font-weight: 400;
  margin-bottom: 3cm;
}
#contents h3 {
  font-weight: 500;
  margin: 3em 0 1em;
}
#contents h3::before {
  background-color: var(--highlight-bg-color);
  content: '';
  display: block;
  height: .08cm;
  margin-bottom: .25cm;
  width: 2cm;
}
#contents ul {
  list-style: none;
  padding-left: 0;
}
#contents a {
  font-variant: normal;
}
#contents ul > li {
  border-top: .25pt solid #c1c1c1;
  margin: .25cm 0;
  padding-top: .25cm;
}
#contents ul > li li {
  border: none;
  margin-top: .1cm;
  margin-bottom: .1cm;
  margin-left: .75cm;
  padding-top: 0;
}
#contents ul > li li li {
  margin-left: 1.5cm;
}
#contents ul > li li li li {
  margin-left: 2.25cm;
}
#contents ul > li li li li li {
  margin-left: 3cm;
}
#contents ul > li li li li li li {
  margin-left: 3.75cm;
}
#contents ul li::before {
  color: var(--highlight-bg-color);
  content: '• ';
  font-size: 40pt;
  line-height: 16pt;
  vertical-align: bottom;
}
#contents ul li a {
  color: inherit;
  text-decoration-line: inherit;
}
#contents ul li a::before {
  content: target-text(attr(href));
}
#contents ul li a::after {
  color: var(--highlight-bg-color);
  content: target-counter(attr(href), page);
  float: right;
}

#skills h3 {
  background-color: var(--highlight-bg-color);
  margin: 0 -3cm 1cm;
  padding: 1cm 1cm 1cm 3cm;
  width: 21cm;
}
#skills section {
  padding: .5cm 0;
}
