/**** Basic Pallette ****/
/**** Default usage ****/
/**** Wisconsin Colors ****/
/*
@background-color: #dadfe1;
@section-background-color: #f7f7f7;

@text-color: #494949;
@page-title-color: #c5050c;
@section-title-color: #9b0000;
@subsection-title-color: inherit;
@link-color: #9b0000;
@link-bg-color: rgba(0,0,0,0.0625);
@button-link-color: #9b0000;

@title-topbar-color: #c5050c;
@section-topbar-color: #646569;

@nav-bg-color: @section-topbar-color;
@nav-text-color: @section-background-color;
*/
/**** Styles ****/
html {
  font-size: 14pt;
  line-height: 1.4;
  color: #494949;
  font-family: "Atkinson Hyperlegible", sans-serif;
}
body {
  background: #e0e0e0;
  padding: 0;
  margin: 2em 1em;
  min-height: 100%;
}
#svg-defs {
  display: none;
}
a {
  color: #2d6b00;
  text-decoration: none;
  border-bottom: 1pt dotted #2d6b00;
}
a:hover {
  background: rgba(0, 0, 0, 0.0625);
}
sup {
  line-height: 0;
}
#container {
  min-height: 100%;
  margin: auto;
  width: 44rem;
}
.nobreak {
  white-space: nowrap;
}
.small {
  font-size: 0.8em;
  vertical-align: top;
}
.smallish {
  font-size: 0.9em;
  vertical-align: top;
}
header {
  margin: 1.5em 0 1em 0;
  background: white;
  border-top: 0.75em solid #c16b00;
  padding: 2.5em 2.5em 2em 2.5em;
  line-height: 1.2;
}
header #header {
  vertical-align: middle;
  padding: 0.5em;
  border-spacing: 0;
  width: 100%;
  table-layout: fixed;
  text-align: center;
}
header #header > tbody > tr > td.spacer {
  width: 2.5em;
}
header #header #portrait_td {
  text-align: right;
  width: 42%;
}
header #header #portrait_td #portrait {
  height: 250px;
  vertical-align: middle;
}
header #header #contact {
  text-align: center;
  display: inline-block;
  min-width: 15em;
}
header #header #contact > div {
  margin: 0.5em 0;
}
header #header #contact a {
  color: #c16b00;
  border: none;
}
header #header #contact a:hover {
  background: none;
  border-bottom: 1pt dotted #c16b00;
}
header #header #contact h1 {
  font-family: "Playball", cursive;
  font-weight: normal;
  font-size: 2.4rem;
  line-height: 1em;
  color: #c16b00;
  letter-spacing: 0pt;
  margin: 0;
}
header #header #contact #pronouns {
  font-size: 0.9rem;
  line-height: 1em;
  margin: 0.1em 0;
}
header #header #contact #title {
  line-height: 1.25em;
}
header #header #contact #email {
  display: block;
  font-family: "Atkinson Hyperlegible", sans-serif;
  letter-spacing: 0.15pt;
  white-space: nowrap;
  font-variant: none;
}
header #header #contact #email #envelope {
  margin-right: 0.5em;
  vertical-align: middle;
}
header #header #contact #img-link-bar {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  line-height: 1;
  margin: 0 auto -2pt auto;
}
header #header #contact #img-link-bar > div {
  text-align: center;
  padding: 0 0.375rem;
}
header #header #contact #img-link-bar > div:hover {
  transform: scale(1.2);
}
header #header #contact #img-link-bar .img-link {
  font-size: 1.75rem;
  border: none;
}
header #header #contact #img-link-bar .img-link:hover {
  background: none;
}
header #header #contact #img-link-bar #twitter {
  color: #38A1F3;
}
header #header #contact #img-link-bar #github,
header #header #contact #img-link-bar #goog-scholar {
  color: black;
}
header #header #contact #img-link-bar #goog-scholar {
  vertical-align: middle;
}
header #header #contact #img-link-bar #orcid {
  color: #A6CE39;
}
header #header #contact #img-link-bar #mastodon svg,
header #header #contact #img-link-bar #mastodon img {
  width: 1em;
  height: 1em;
}
header #header #contact #img-link-bar #bluesky svg {
  width: 1.123em;
  height: 1em;
}
header #header #contact #img-link-bar #semantic-scholar svg {
  width: 1.28em;
  height: 1em;
  margin-right: -0.2rem;
}
header #header #contact #img-link-bar #dblp svg {
  width: 0.77em;
  height: 1em;
}
#nav {
  background: #282728;
  color: #e0e0e0;
  font-family: "Red Hat Display", sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
}
#nav #nav_list {
  list-style: none;
  margin: auto;
  border-collapse: collapse;
  width: 95%;
}
#nav #nav_list td {
  padding: 0.75rem 0;
}
#nav #nav_list td .nav_link {
  border: none;
  color: inherit;
  text-decoration: none;
  background: inherit;
  line-height: 1.1em;
  letter-spacing: 0.25pt;
}
#nav #nav_list td .nav_link::before {
  content: "";
  display: inline-block;
  width: 0.65rem;
  height: 1em;
  font-size: 0.9em;
  text-align: left;
  position: relative;
  bottom: 0.2ex;
}
#nav #nav_list td .nav_link::after {
  content: "";
  display: inline-block;
  width: 0.65rem;
  height: 1em;
  font-size: 0.9em;
  text-align: right;
  position: relative;
  bottom: 0.2ex;
}
#nav #nav_list td a:hover::before,
#nav #nav_list td .selected::before {
  content: "\27e8";
}
#nav #nav_list td a:hover::after,
#nav #nav_list td .selected::after {
  content: "\27e9";
}
.gold_medal:before {
  font-family: "Font Awesome 6 Free";
  font-size: 0.9em;
  line-height: 1;
  content: "\f5a2";
  padding-right: 0.33em;
  font-style: normal;
  font-weight: 900;
  color: #eaab0b;
}
.silver_medal:before {
  font-family: "Font Awesome 6 Free";
  font-size: 0.9em;
  line-height: 1;
  content: "\f5a2";
  padding-right: 0.33em;
  font-style: normal;
  font-weight: 900;
  color: #b2b2b2;
}
.doc_link:before {
  vertical-align: baseline;
  display: inline-block;
  padding-right: 0.33em;
  font-family: "Font Awesome 6 Free";
  font-size: 0.9em;
  line-height: 1;
  content: "\f15b";
}
.pdf_link:before {
  vertical-align: baseline;
  display: inline-block;
  padding-right: 0.33em;
  font-family: "Font Awesome 6 Free";
  font-size: 0.9em;
  line-height: 1;
  content: "\f1c1";
}
.talk_link:before {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  font-family: "Font Awesome 6 Free";
  font-size: 0.95em;
  line-height: 1;
  content: "\f144";
}
.proof_link:before {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  content: "\22a2";
}
a.button_link {
  display: inline-block;
  padding: 0.25em;
  border: 1pt solid #2d6b00;
  border-radius: 3px;
  color: #2d6b00;
  text-decoration: none;
  font-variant: small-caps;
  letter-spacing: 0.3pt;
  line-height: 1em;
}
a.button_link:hover {
  background-color: #2d6b00;
  color: white;
  transition: color 0.5s, background-color 0.5s;
}
a.button_link:hover svg.link_icon {
  fill: white;
  transition: fill 0.5s;
}
a.button_link svg.link_icon {
  fill: #2d6b00;
}
a.button_link.closed_access_link:before {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  font-family: "Academicons";
  font-size: 1.2em;
  line-height: 0.75em;
  content: "\e942";
}
a.button_link .arxiv_logo {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  width: 0.8em;
  height: 1em;
}
a.button_link .usenix_logo {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  width: 0.9em;
  height: 0.9em;
}
a.button_link .acmdl_logo,
a.button_link .ieee_logo {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  width: 1.2em;
  height: 1.2em;
  margin: -0.1em 0;
}
a.button_link .lipics_logo {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  width: 1.3em;
  height: 1em;
}
a.button_link .zenodo_icon {
  vertical-align: top;
  display: inline-block;
  padding-right: 0.33em;
  width: 1em;
  height: 1em;
}
a.button_link span.ai {
  font-size: 0.9em;
}
.bionic {
  font-weight: 700;
}
#cv {
  font-size: 0.9em;
}
#announce {
  text-align: center;
  padding-left: 3rem;
  padding-right: 3rem;
}
#announce p {
  display: block;
  margin: 0.8rem 0 0 0;
  font-size: 1.15rem;
  font-weight: 700;
  text-align: inherit;
}
#announce p:first-child {
  margin: 0;
}
#announce .button_bar {
  margin-top: 1em;
}
.button_bar {
  text-align: center;
  margin-top: 0.75em;
}
.button_bar a.button_link {
  font-size: 0.95rem;
  font-variant: normal;
  font-weight: normal;
  letter-spacing: unset;
  vertical-align: middle;
  margin: 0 0.1em;
}
.info {
  margin: 1.5em 0 1em 0;
  background: white;
  border-top: 0.5em solid #282728;
  padding: 2.25em 2.5rem 2.5em 2.5rem;
}
.info:first-child {
  margin-top: 0;
  border-top: none;
}
.info h2 {
  color: #2d6b00;
  font-family: "Red Hat Display", sans-serif;
  font-weight: 700;
  font-size: 1.35rem;
  line-height: 1em;
  padding: 0;
  margin: -0.3rem 0 0.5rem 0;
}
.info h4 {
  color: inherit;
  font-family: "Atkinson Hyperlegible", sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1em;
  letter-spacing: 0.2pt;
  padding: 0;
  margin: 0.8rem 0 0.3rem 0;
}
.info > p,
.info .text_block {
  margin: 0 0.5rem 0.8rem 0.8rem;
  text-align: justify;
}
.info > p:last-child,
.info .text_block:last-child {
  margin-bottom: 0;
}
.info .footnote {
  margin: 0 0.5rem 0.8rem 0.8rem;
  text-align: justify;
  font-size: 0.8em;
  vertical-align: top;
  line-height: 1.4em;
}
.info .footnote:last-child {
  margin-bottom: 0;
}
.info .semi_indent {
  margin-left: 0.4rem;
}
.info .author_me {
  font-weight: bold;
}
.info .pub_title {
  font-weight: bold;
}
.info .pub_authors a,
.info em a {
  color: inherit;
  border-color: #494949;
}
.info em {
  font-style: italic;
  font-weight: bold;
}
.info .github_link {
  color: black;
  border: none;
}
.info .github_link:hover {
  background: none;
}
.info .github-char {
  font-size: 1.55em;
  vertical-align: text-bottom;
}
.info .github-char:hover {
  transform: scale(1.3);
}
.info ul {
  list-style: none;
}
.info ul.pub_list {
  /* padding-left: 1.5em; */
  padding: 0em;
  margin-top: 0;
}
.info ul.pub_list li {
  margin: 1em 0;
  /* text-indent: -1.5em; */
}
.info ul.pub_list li:first-child {
  margin-top: 0.5rem;
}
.info ul.pub_list li:last-child {
  margin-bottom: 0;
}
.info ul.pub_list li .pub_venue {
  font-size: 0.95em;
  font-style: italic;
  white-space: nowrap;
  float: right;
  text-align: center;
  height: 1.35rem;
}
.info ul.pub_list li div.pub_details {
  padding-left: 1.5em;
}
.info ul.pub_list li div.pub_links {
  font-size: 0.85em;
  line-height: 1.5em;
  margin-top: 0.2em;
}
.info ul.pub_list li div.pub_links a {
  float: left;
  margin-right: 0.4em;
}
.info ul.pub_list li div.pub_links::after {
  content: "";
  clear: both;
  display: block;
}
.info ul.service_list,
.info ul.class_list {
  padding-left: 0.67rem;
  margin: 0.2em 0;
}
.info ul.service_list li,
.info ul.class_list li {
  margin: 0.33em 0;
}
.info ul.service_list li:last-child,
.info ul.class_list li:last-child {
  margin-bottom: 0;
}
.info ul.service_list li div.list_text_div,
.info ul.class_list li div.list_text_div {
  width: 100%;
  text-indent: 0pt;
  display: inline-block;
  vertical-align: top;
}
.info ul.service_list li,
.info ul.class_list li {
  padding-left: 1.2em;
  text-indent: -1.2em;
  /* Add custom bullet */
}
.info ul.service_list li:before,
.info ul.class_list li:before {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  padding-right: 0.4em;
  background-image: url('images/empty-star-bullet-333.svg');
  background-repeat: no-repeat;
  background-position: top left;
  background-size: contain;
}
.info ul.class_list {
  font-size: 0.9rem;
}
.info ul.pc_list {
  padding-left: 1em;
  margin: 0.2em 0;
}
.info ul.pc_list li {
  margin: 0.33em 0;
}
.info ul.pc_list li:last-child {
  margin-bottom: 0;
}
.info ul.pc_list li div.list_text_div {
  width: 100%;
  text-indent: 0pt;
  display: inline-block;
  vertical-align: top;
}
.info ul .date_range {
  font-size: 0.9rem;
  display: block;
  float: right;
  white-space: nowrap;
}
#footer {
  font-size: 0.85rem;
  opacity: 0.5;
  text-align: center;
  line-height: 1.4em;
  margin-top: -0.25rem;
  color: #282728;
}
#footer a {
  color: #225200;
}
