body {
  margin: 0.5em;
  margin-bottom: 22px;
  background-color: #ddd;
  font-family: 'Catamaran', sans-serif;
}

.wrapper {
  width: 100%;
  text-align: center;
}

.wrapper2 {
  width: 100%;
}

.mainpage {
  border-bottom: 1px solid black;
  padding: 0;
  padding-bottom: 3px;
  text-align: center;
  margin-bottom: 0.5em;
}

.subpage {
  padding: 0;
  text-align: center;
  margin-bottom: 0.5em;
}

.title {
  font-size: 2.2em;
  font-weight: 900;
  text-shadow: 3px 3px 3px rgba(255, 255, 255, 0.8);
}

.subtitle {
  margin-top: 3px;
  padding: 3px;
  color: #fff;
  font-size: 1.7em;
  font-weight: 700;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
  border: 1px solid black;
  background-color: #3684B5;
}

footer {
  text-align: center;
}

.card, .card2 {
  color: #fff;
  margin: 0.5em;
  border: 1px solid black;
  position: relative;
}

.card2 {
  background-color: #222;
  padding: 0.2em;
}

.card span, .card2 span {
  position:absolute; 
  width:100%;
  height:100%;
  top:0;
  left: 0;
  z-index: 1;
}

.card-title {
  font-size: 1.5em;
  font-weight: 700;
  text-shadow: 1px 1px 2px rgba(255, 0, 0, 0.8);
  margin: 0.1em;
}

.card-image {
  display: none;
}

.card-image2 {
  display: none;
}

a {
  font-weight: 700;
  color: #3684B5
}

a:visited {
  color: #1F5170;
}

a:hover {
  color: #f00;
}

a:active {
  color: #A7B635;
}

.titlelink {
  font-weight: 900;
  text-decoration: none;
  color: #000;
}

.titlelink:visited {
  color: #000;
}

.titlelink:hover {
  color: #f00;
}

.subtitle a {
  text-decoration: none;
  color: #fff;
}

.subtitle a:visited {
  color: #fff;
}

.subtitle a:hover {
  color: #f00;
}

.card2 p a {
  color: #f00;
}

.card2 p a:visited {
  color: #d00;
}

.card2 p a:hover {
  color: #fff;
}

.recordindex {
  margin-left:auto;
  margin-right:auto;
  margin-bottom: 40px;
}

.recordlist {
  margin: 0;
  padding: 0;
}

.sort {
  text-align: left;
  font-size: 0.8em;
}

.title_row {
  width: 100%;
  font-size: 1.4em;
  font-weight: 700;
  border-bottom:1px dotted #333333;
  margin-bottom:2px;
  padding-top:10px;
}

.record_link {
  padding: 2px;
  position:relative;
  z-index:24;
}

.record_link:hover span { 
  display:inline;
  position:absolute;
  top:0;
  left:0;
  padding:5px;
  font-size:0.8em;
}

.record_link:hover {
  z-index:25;
}

.lazy {
  width: 100px;
  height: 100px;
  background-color: #000000;
  border: 1px dotted #333333;
}

.record_link:hover .lazy {
  -webkit-filter: blur(3px) grayscale(80%);
}

.record_link span {
  display: none;
  background-color: #091736;
  color: #9ba3b7;
}

.record_thumb {
  width: 50px;
  height: 50px;
}

.tracklist b {
  font-style: italic;
}

.record_review {
  width: 100%;
}

.record_container {
  padding: 10px;
}

.info_container {
  width: 100%;
  text-align: center;
  border-bottom: 1px solid black;
}

.record_title {
  font-size: 1.3em;
  margin-bottom: 10px;
}

.record_data {
  margin-bottom: 10px;
}

.record_links {
  margin-top: 30px;
  font-weight: 700;
  font-size: 1.1em;
  margin-bottom: 10px;
}

.trigger {
  position: relative;
  text-align: center;
}

.rating_text {
  display: table;
  height: 20px;
  left: 0;
  position: absolute;
  top: 35px;
  width: 100%;
  text-align: center;
  opacity: 0;
}

.trigger:hover span.rating_text {
  opacity: 1;
}

.searchform {
  font-size:0.8em;
  font-weight: 400;
  text-align: center;
  width: 100%;
}

.searchform select, .searchform input {
  width: 300px;
  margin-bottom: 3px;
  border: 1px solid #000;
  background-color: #fff;
  color: #3684B5;
}

.searchform input {
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}

.top-border {
  width: 100%;
  padding-top: 0.5em;
  border-top: 1px solid black;
}

.record_cover {
  width: 300px;
  height: 300px;
}

.band-title {
  font-size: 1.5em;
  font-weight: 700;
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8);
  margin: 0.1em;
}

.songtitle {
  font-size: 1.3em;
  font-weight: 700;
  margin: 0.1em;
  margin-top: 0.3em;
}

.song {
  margin: 0;
  padding: 0;
  border: none;
}

.lyrics {
  border: 1px solid black;
}

.rally-title {
  font-size: 1.7em;
  font-weight: 700;
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8);
  margin: auto;
  margin-top: 0.5em;
  margin-bottom: 0.3em;
  border-bottom: 1px solid black;
}

.rally-box {
  margin: auto;
  margin-bottom: 0.5em;
}

.rally-image-wrapper {
  width: 100%;
  margin: auto;
  text-align: center;
}

.rally-image {
  margin:auto;
  margin-top: 1em;
  max-width: 90vw;
}

.rallycaption {
  margin-top: 0.2em;
  margin-bottom: 1em;
  color: #555;
  font-size: 0.7em;
  width: 100%;
  text-align: center;
}

.gallery {
  background-color: #000;
  border: 1px solid white;
  border-radius: 5px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 5px;
}

.thumb {
  flex: 1;
  box-sizing: border-box;
  height: 200px;
  width: 200px;
  background-repeat: no-repeat;
  background-position: center center;
  overflow: hidden;
  border: 1px solid white;
  margin: 3px;
}

.thumb img {
  vertical-align: middle;
}

/* desktop version */
@media screen and (min-width: 415px) {
  .title {
    font-size: 3em;
  }

  .mainpage, .subpage {
    text-align: left;
  }

  footer {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 22px;
    background-color: #000;
    text-align: right;
    z-index: 98;
    float: left;
  }

  footer img {
    margin-top: 4px;
  }

  .card, .card2 {
    border-radius: 5px;
    border: 1px solid black;
    padding: 0.5em;
    margin: 0.5em;
    color: #000;
    background-color: #fff;
    box-shadow: 3px 3px 6px 0 rgba(0, 0, 0, 0.2);
  }

  .card {
    display: inline-block;
  }

  .card2 {
    width: 80%;
    margin: auto;
    margin-bottom: 1em;
  }

  .card-title {
    border-bottom: 1px solid black;
    margin-bottom: 0.3em;
    text-align: left;
    text-shadow: none;
  }

  .card:hover , .card2link:hover {
    color: red;
    border: 1px solid red;
    box-shadow: 3px 3px 6px 0 rgba(0, 0, 0, 0.5);
  }

  .card-image {
    display: block;
    width: 250px;
    height: 250px;
  }

  .record_thumb {
    width: 100px;
    height: 100px;
  }

  .sort {
    text-align: left;
    font-size: 1em;
  }

  .record_cover {
    width: 450px;
    height: 450px;
  }

  .inner_container {
    display: flex;
    justify-content: center;
  }

  .record_details {
    float:left;
    align-self: center;
    text-align: right;
    order: 1;
  }

  .record_container {
    order: 2;
  }

  .trigger {
    text-align: right;
  }

  .rating_text {
    text-align: right;
  }

  .searchform {
    font-size: 1em;
    font-weight: 700;
  }

  .searchform select, .searchform input {
    width: 500px;
  }

  .rally-box, .rally-title {
    width: 80%;
  }
}

/* hidden stuff */
.add_table {
  font-size:0.8em;
  margin-left: auto;
  margin-right: auto;
  vertical-align:top;
  border-collapse:collapse;
}

table.add_table td {
  border:1px dotted #333333;
  padding: 5px;
}

.manage {
  border: 1px dotted #cccccc;
}

.managetext {
  height: 10em;
  resize: vertical;
}

.stats_table {
  margin-top: 10px;
  margin-left: auto;
  margin-right: auto;
  border-collapse:collapse;
}

.stats_table td {
  border:1px dotted #333333;
}

.stats_bottom {
  border-top: 2px solid #cccccc;
}
