* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

body {
  font-family: sans-serif;
}

/* ---- input ---- */

input[type="text"] {
  font-size: 20px;
}

/* ---- button ---- */

.button {
  display: inline-block;
  padding: 0.25em 0.5em;
  background: #EEE;
  border: none;
/*  border-radius: 7px;*/
/*  background-image: linear-gradient( to bottom, hsla(0, 0%, 0%, 0), hsla(0, 0%, 0%, 0.2) );*/
  color: #222;
/*  font-family: sans-serif;*/
  font-size: 12px;
  text-shadow: 0 1px white;
  cursor: pointer;
}

.button:hover {
  background-color: lightgray;
  text-shadow: 0 1px hsla(0, 0%, 100%, 0.5);
  color: #222;
}

.button:active,
.button.is-checked {
  background-color: gray;
}

.button.is-checked {
  color: white;
  text-shadow: 0 -1px hsla(0, 0%, 0%, 0.8);
}

.button:active {
  box-shadow: inset 0 1px 10px hsla(0, 0%, 0%, 0.8);
}

/* ---- button-group ---- */

.button-group:after {
  content: '';
  display: block;
  clear: both;
}

.button-group .button {
  float: left;
  border-radius: 0;
  margin-left: 0;
  margin-right: 1px;
}

/*.button-group .button:first-child { border-radius: 0.5em 0 0 0.5em; }*/
/*.button-group .button:last-child { border-radius: 0 0.5em 0.5em 0; }*/

/* ---- isotope ---- */

.isotope {
  border: none;
}

/* clear fix */
.isotope:after {
  content: '';
  display: block;
  clear: both;
}

/* ---- .element-item ---- */

.element-item {
  position: relative;
  float: left;
  margin: 2px;
  width: 270px;
}

.element-item.tiny {
  height: 120px;
}

.element-item.small {
  height: 170px;
}

.element-item.large {
  height: 300px;
}

.element-item > * {
  margin: 0;
  padding: 0;
}

.element-item .talk,
.element-item .title {
  position: absolute;
  left: 8px;
  right: 8px;
  top: 40px;
  text-transform: none;
  letter-spacing: 0;
  font-size: 14px;
  font-weight: normal;
  font-style: italic;
}

.element-item .year {
  position: absolute;
  left: 8px;
  top: 4px;
  font-size: 28px;
  font-weight: bold;
  color: white;
}

.element-item .type {
  position: absolute;
  right: 8px;
  top: 4px;
  font-size: 11px;
}

.element-item .semester,
.element-item .conf,
.element-item .author {
  position: absolute;
  left: 8px;
  right: 8px;
  font-size: 14px;
  line-height: 16px;
}

.element-item .author {
  top: 94px;
}

.element-item .semester,
.element-item .conf {
  top: 78px;
}

.element-item .info,
.element-item .journal {
  position: absolute;
  left: 8px;
  right: 8px;
  font-size: 14px;
  line-height: 16px;
}

.element-item .journal {
  top: 130px;
}

.element-item .info {
  top: 138px;
}

.element-item.seminar,
.element-item.pre,
.element-item.tournaments {
 background: #8899aa; /*background: hsl(   0, 100%, 50%);*/
}

.element-item.tutorial,
.element-item.att,
.element-item.cycles {
 background: #a9a49d; /*background: hsl(  36, 100%, 50%);*/
}

.element-item.org,
.element-item.domination {
 background: #76726c; /*background: hsl(  72, 100%, 50%);*/ 
}

.element-item.lecture,
.element-item.inv,
.element-item.connectivity {
 background: #87a352; /*background: hsl( 108, 100%, 50%);*/ 
}

.element-item.misc {
 background: #a9cc66; /*background: hsl( 144, 100%, 50%);*/ 
}

a.nrml {
 width: auto;
 display: inline;
 height: auto;
 text-decoration: underline;
 color: black;
}
