/*! sanitize.css v7.0.3 | CC0 License | github.com/csstools/sanitize.css */
@import url('https://web.archive.org/web/20230326172708cs_/https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,900&display=swap');
@import url('https://web.archive.org/web/20230326172708cs_/https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Roboto+Slab:wght@100;300;500&display=swap');

*, :after, :before {
  background-repeat: no-repeat;
  -webkit-box-sizing: border-box;
  box-sizing: border-box
}

:after, :before {
  text-decoration: inherit;
  vertical-align: inherit
}

html {
  cursor: default;
  font-family: sans-serif;
  line-height: 1.15;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0 100px 100px 100px;
}

h1 {
  font-size: 1em;
  margin: .67em 0
}

nav ol, nav ul {
  list-style: none
}

pre {
  font-family: sans-serif;
  font-size: 1em
}

abbr[title] {
  text-decoration:none;
  -webkit-text-decoration:none dotted;
  text-decoration:none dotted
}

b, strong {
  font-weight: bolder
}

code, kbd, samp {
  font-family: Menlo, Consolas, Roboto Mono, Ubuntu Monospace, Noto Mono, Oxygen Mono, Liberation Mono, monospace;
  font-size: 1em
}

small {
  font-size: 80%
}

::-moz-selection {
  background-color: #b3d4fc;
  color: #000;
  text-shadow: none
}

::selection {
  background-color: #b3d4fc;
  color: #000;
  text-shadow: none
}

audio, canvas, iframe, img, svg, video {
  vertical-align: middle
}

audio, video {
  display: inline-block
}

audio:not([controls]) {
  display: none;
  height: 0
}

img {
  border-style: none
}

svg:not([fill]) {
  fill: currentColor
}

svg:not(:root) {
  overflow: hidden
}

table {
  border-collapse: collapse
}

button, input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit
}

button, input, select {
  margin: 0
}

button {
  overflow: visible;
  text-transform: none
}

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

fieldset {
  padding: .35em .75em .625em
}

input {
  overflow: visible
}

legend {
  color: inherit;
  display: table;
  max-width: 100%;
  white-space: normal
}

progress {
  display: inline-block;
  vertical-align: baseline
}

select {
  text-transform: none
}

textarea {
  margin: 0
}

[type=checkbox], [type=radio] {
  padding: 0
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px
}

::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
  height: auto
}

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

::-webkit-search-decoration {
  -webkit-appearance: none
}

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

::-moz-focus-inner {
  border-style: none;
  padding: 0
}

:-moz-focusring {
  outline: 1px dotted ButtonText
}

details, dialog {
  display: block
}

dialog {
  background-color: #fff;
  border: solid;
  color: #000;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  height: fit-content;
  left: 0;
  margin: auto;
  padding: 1em;
  position: absolute;
  right: 0;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content
}

dialog:not([open]) {
  display: none
}

summary {
  display: list-item
}

canvas {
  display: inline-block
}

template {
  display: none
}

[tabindex], a, area, button, input, label, select, summary, textarea {
  -ms-touch-action: manipulation;
  touch-action: manipulation
}

[hidden] {
  display: none
}

[aria-busy=true] {
  cursor: progress
}

[aria-controls] {
  cursor: pointer
}

[aria-disabled=true], [disabled] {
  cursor: not-allowed
}

[aria-hidden=false][hidden]:not(:focus) {
  clip: rect(0, 0, 0, 0);
  display: inherit;
  position: absolute
}

/*! Marx v3.0.6 - The classless CSS reset (perfect for Communists) | MIT License | https://github.com/mblode/marx */
article, aside, details, footer, header, main, section, summary {
  margin: 0;
}

@media only screen and (max-width:850px){
  header {
    display:block;
    width:100%;
    margin:0;
    padding: 0 20px 0 20px;
  }

  main {
    display: block;
    margin: 0;
    max-width: 100%;
    padding: 0 20px 0 20px;
  }
}

@media only screen and (min-width:851px){
  header {
    float: left;
    width: 25%;

    display: flex;
    align-items: flex-start;   /* 🔑 top-align */
    justify-content: center;   /* horizontal centering only */
  }
}

  main {
    display: inline-block;
    margin: 0;
    width:70%;
    padding: 0 0 0;
    padding-left:50px;
  }
}

footer {
  border-top: 0px solid rgba(0, 0, 0, .12);
  padding: 16px 0;
  text-align: center
}

footer p {
  margin-bottom: 0
}

hr {
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, .12);
  display: block;
  margin-top: 16px;
  margin-bottom: 16px;
  width: 100%;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
  overflow: visible
}

img {
  height: auto;
  max-width: 100%;
  vertical-align: baseline
}

p.cVitae {
  padding-left:10px;
}

@media screen and (max-width:400px) {
  aside, section {
    clear: both;
    display: block;
    max-width: 100%
  }

  img {
    margin-right: 16px
  }
}

embed, iframe, video {
  border: 0
}

body {
  color: rgba(0, 0, 0, .8);
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
  font-size: 16px;
  line-height: 1.5;
}

p {
  font-size:10pt;
  line-height:2em;
}

h1, h2, h3, h4, h5, h6 {
  color: inherit;
  font-family: sans-serif;
  font-weight: 500;
}

h1 a {
  font-weight:bold;
  font-family:serif;
  padding:10px 10px 10px 10px;
  color:#898989;
  border-style:solid;
  border-color:#f9f9f9;
  border-width:7px;
  background-color: #f9f9f9;
  /* text-shadow: #000 15px 15px 5px; */
  text-shadow:
    calc(var(--shadow-x, 0px)) 
    calc(var(--shadow-y, 0px)) 
    6px rgba(0,0,0,0.4);
}

@media only screen and (max-width:850px){
  h1 a {
    display:block;
    letter-spacing:.5vw;
    white-space: nowrap;
    font-size:10pt;
    margin: 0;
  }
}

@media only screen and (min-width:851px){
  h1 a {
    writing-mode: sideways-lr;
    text-orientation: sideways;

    display: flex;
    align-items: center;
    justify-content: center;

    letter-spacing: 0.5vh;
    font-size: 10pt;

    width: auto;      /* let content define width */
    margin: 0;

    float: none;      /* IMPORTANT */
  }
}

h2 a {
  font-family:sans-serif;
  color:#404040;
  font-weight:500;
  letter-spacing:.5vw;
  text-align: left;
  font-size:14pt;
}

h2 {
  font-size: inherit;
  text-transform:none;
}

h3 {
  font-family:sans-serif;
  color:#404040;
  font-weight:500;
  font-size:12pt;
}

h4 {
  font-family:sans-serif;
  color:#404040;
  font-weight:500;
  font-size:12pt;
  padding-left:10px;
}

h3, h4 {
  margin: 0;
}

h5 {
  font-size: 20px
}

h5, h6 {
  margin: 16px 0 4px
}

h6 {
  font-size: 16px
}

small {
  color: rgba(0, 0, 0, .54);
  vertical-align: bottom
}

pre {
  background: #f7f7f9;
  display: block;
  margin: 16px 0;
  padding: 16px;
  white-space: pre-wrap;
  overflow-wrap: break-word
}

code, pre {
  color: rgba(0, 0, 0, .8);
  font-family: Menlo, Monaco, Consolas, Courier New, monospace;
  font-size: 16px
}

code {
  line-height: inherit;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  overflow-wrap: break-word
}

a {
  display:inline;
  text-decoration: none;
  border-radius:10px;
}

p a {
  padding: 0 5px 0 5px;
  border-style:outset;
  border-width:3px;
  color:#53008f;
  background-color:#ffffff;
  border-color:#f9f9f9;
}

nav a {
  font-family: 'IBM Plex Serif', serif;
  font-weight:500;
  color: #53008f;
  font-size:10pt;
  background:#ffffff;
  border-color:#f9f9f9;
  border-style: outset;
  border-width:5px;
  text-transform:none;
  white-space: normal;
  font-style: italic;
  padding:5px 10px 5px 10px;
  margin: 0 0 10px 0;
  overflow-wrap: break-word;
  text-align: left;

}

@media only screen and (max-width:850px){
  nav {
    text-align:right;
    width:100%;
    float:right;
  }

  nav a {
    display:inline-block;
  }
}

@media only screen and (min-width:851px){
  nav {
    text-align:right;
    width:75%;
    float:left;
    margin-top:20px;
    margin-left:10px;
  }

  nav a {
    float:left;
    clear:left;
    display:inline-block;
    text-shadow: #dcff14 0px 0px 5px;

  }
}

h1 a:focus, h1 a:hover, nav a:focus, nav a:hover {
  color: #000;
  background:#e3ff0c;
  border-color:#dcadff;
  border-style: inset;
  text-decoration:none;
  text-decoration-style:none;
  text-decoration-color:#fbff00;
}

a:focus, a:hover {
  color: #ffffff;
  background:#ff00d4;
  border-color:#dcadff;
  border-style:inset;
  text-decoration:none;
  text-decoration-style:none;
  text-decoration-color:#fbff00;
}

h2 a:focus, h2 a:hover {
  color: #404040;
  border-width:0;
  border-style: inset;
  border-color:#fbff00;
  background:#fbff00;
  text-decoration: inherit;
}

dl {
  margin-bottom: 16px
}

dd {
  margin-left: 40px
}

ol, ul {
  margin-bottom: 8px;
  padding-left: 40px;
  vertical-align: baseline
}

blockquote {
  border-left: 2px solid rgba(0, 0, 0, .8);
  font-style: italic;
  margin: 16px 0;
  padding-left: 16px
}

blockquote, figcaption {
  font-family: Georgia, Times, Times New Roman, serif
}

u {
  text-decoration:none
}

s {
  text-decoration: line-through
}

sup {
  vertical-align: super
}

sub, sup {
  font-size: 14px
}

sub {
  vertical-align: sub
}

mark {
  background: #ffeb3b
}

input[type=date], input[type=datetime-local], input[type=datetime], input[type=email], input[type=month], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week], select, textarea {
  background: #fff;
  background-clip: padding-box;
  border: 1px solid #53008f;
  border-radius: 0;
  color: rgba(0, 0, 0, .8);
  display: block;
  width: 100%;
  padding: 8px 16px;
  line-height: 1.5;
  -webkit-transition: border-color .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol
}

input[type=color] {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 0px;
  display: inline-block;
  vertical-align: middle
}

input:not([type]) {
  -webkit-appearance: none;
  background: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 0px;
  color: rgba(0, 0, 0, .8);
  display: block;
  width: 100%;
  padding: 8px 16px;
  line-height: 1.5;
  -webkit-transition: border-color .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  text-align: left
}

input[type=color]:focus, input[type=date]:focus, input[type=datetime-local]:focus, input[type=datetime]:focus, input[type=email]:focus, input[type=month]:focus, input[type=number]:focus, input[type=password]:focus, input[type=search]:focus, input[type=tel]:focus, input[type=text]:focus, input[type=time]:focus, input[type=url]:focus, input[type=week]:focus, select:focus, textarea:focus {
  background-color: #ffffff;
  border-color: #ffffff;
  border-width:5px;
  border-style:inset;
  outline: 0;
}

input:not([type]):focus {
  background-color: #fff;
  border-color: #fff;
  border-width:0px;
  outline: 5px;;
  -webkit-box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25);
  box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25)
}

input[type=checkbox]:focus, input[type=file]:focus, input[type=radio]:focus {
  outline: 1px thin rgba(0, 0, 0, .12)
}

input[type=color][disabled], input[type=date][disabled], input[type=datetime-local][disabled], input[type=datetime][disabled], input[type=email][disabled], input[type=month][disabled], input[type=number][disabled], input[type=password][disabled], input[type=search][disabled], input[type=tel][disabled], input[type=text][disabled], input[type=time][disabled], input[type=url][disabled], input[type=week][disabled], select[disabled], textarea[disabled] {
  background-color: rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .54);
  cursor: not-allowed;
  opacity: 1
}

input:not([type])[disabled] {
  background-color: rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .54);
  cursor: not-allowed;
  opacity: 1
}

input[readonly], select[readonly], textarea[readonly] {
  border-color: rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .54)
}

input:focus:invalid, select:focus:invalid, textarea:focus:invalid {
  border-color: #ffffff;
  color: #53008f
}

input[type=checkbox]:focus:invalid:focus, input[type=file]:focus:invalid:focus, input[type=radio]:focus:invalid:focus {
  outline-color: #53008f
}

select {
  border: 1px solid rgba(0, 0, 0, .12);
  vertical-align: sub
}

select:not([size]):not([multiple]) {
  height: -webkit-calc(2.25rem + 2px);
  height: calc(2.25rem + 2px)
}

select[multiple] {
  height: auto
}

label {
  display: inline-block;
  line-height: 2
}

fieldset {
  border: 0;
  margin: 0;
  padding: 8px 0
}

legend {
  border-bottom: 1px solid rgba(0, 0, 0, .12);
  color: rgba(0, 0, 0, .8);
  display: block;
  margin-bottom: 8px;
  padding: 8px 0;
  width: 100%
}

textarea {
  overflow: auto;
  resize: vertical
}

input[type=checkbox], input[type=radio] {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0;
  display: inline
}

button, input[type=button], input[type=reset], input[type=submit] {
  font-family: 'IBM Plex Serif', serif;
  font-weight:500;
  font-style: italic;
  font-size:10pt;
  background-color: #ffffff;
  border-color:#53008f;
  border-radius: 0px;
  border-width:1px;
  border-style:solid;
  color: #53008f;
  padding:10px 10px 10px 10px;
  display: inline-block;
  text-align: center;
  white-space: nowrap;
  margin-top:10px;
  vertical-align: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  line-height: 1.5;
}

button::-moz-focus-inner, input[type=button]::-moz-focus-inner, input[type=reset]::-moz-focus-inner, input[type=submit]::-moz-focus-inner {
  padding: 0
}

button:hover, input[type=button]:hover, input[type=reset]:hover, input[type=submit]:hover {
  background-color: #ff00d4;
  border-color: #53008f;
  color: #fff
}

button:not(:disabled):active, input[type=button]:not(:disabled):active, input[type=reset]:not(:disabled):active, input[type=submit]:not(:disabled):active {
  background-color: #0062cc;
  border-color: #005cbf;
  color: #fff
}

button:focus, input[type=button]:focus, input[type=reset]:focus, input[type=submit]:focus {
  outline: 0;
  -webkit-box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .5);
  box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .5)
}

button:disabled, input[type=button]:disabled, input[type=reset]:disabled, input[type=submit]:disabled {
  opacity: .65;
  cursor: not-allowed;
  background-color: #007bff;
  border-color: #007bff;
  color: #fff
}

table {
  border-top: 1px solid rgba(0, 0, 0, .12);
  margin-bottom: 16px
}

caption {
  padding: 8px 0
}

thead th {
  border: 0;
  border-bottom: 2px solid rgba(0, 0, 0, .12);
  text-align: left
}

tr {
  margin-bottom: 8px
}

td, th {
  border-bottom: 1px solid rgba(0, 0, 0, .12);
  padding: 16px;
  vertical-align: inherit
}

tfoot tr {
  text-align: left
}

tfoot td {
  color: rgba(0, 0, 0, .54);
  font-size: 8px;
  font-style: italic;
  padding: 16px 4px
}

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
}

.cell {
  text-align: center;
}

.cell img {
  max-width: 100%;
}