body {
  margin: 0;
  padding: 0;
  font-size: 100%;
  background-image: url("snowflake.png");
}

b { color: brown; }

a:target { background: #faa; }

h1 { font-size: xx-large; color: darkblue; display: inline; }
h2 { color: darkred; }

.header-nav {
  width: auto;
  border-bottom: solid 1px #ccf;
  padding: 1ex 0 0.2ex 0;
}
header, header a, header a:visited { color: #88d; }
header {
  width: 100ch;
  color: #aaf;
  margin: 0 auto;
}
header a.logo {
  font-size: xx-large;
  font-weight: bold;
  text-decoration: none;
}
header h1 { display: inline; color: #88d; }
header.logo {
  display: flex;
  justify-content: flex-start;
}
nav { 
  width: 100ch;
  margin: 1ex auto;
}
nav ul {
  display: flex;
  justify-content: flex-start;
  list-style: none;
  margin: 0;
  padding: 0;
}
nav li { margin-right: 1em; }
nav a { color: #555; font-weight: bold; }
nav li.selected   { font-weight: bold; }
nav li.selected a { color: #f55; }
nav li.links { margin-left: auto; }

main {
  width: 100ch;
  margin: 0 auto;
  padding: 1ex 0;
  text-align: justify;
  text-justify: newspaper;
}
dl {
  display: grid;
  margin-left: 2em;
  grid-template-columns: [key] minmax(18ch, min-content) [value] 1fr;  
}
dt {
  grid-column: key;
  white-space: nowrap;
  color: darkblue;
}
dd {
  grid-column: value;
  margin-left: 0;
}
.publications dt:not(:first-child) { margin-top: 1em; }
.publications dd:nth-of-type(4n+1):not(:first-of-type) { color: red; margin-top: 1em; }
.publications dd:nth-of-type(4n+1) { color: red; }
.publications dd:nth-of-type(4n+2) { color: blue; font-weight: bold; }
.publications dd:nth-of-type(4n+3) { font-style: italic; }
.publications dd:nth-of-type(4n+4) { margin-top: 0.2em; }
.publications dd:nth-of-type(4n+4) a { padding-right: 1.5em; }

.activities dt:not(:first-child)   { margin-top: 0.5ex; }
.activities dd:not(:first-of-type) { margin-top: 0.5ex; }
.software dt:not(:first-child)   { margin-top: 0.5ex; }
.software dd:not(:first-of-type) { margin-top: 0.5ex; }
