/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'topsify-icons';
    src: url('../font/topsify-icons.svg?26139235#topsify-icons') format('svg');
  }
}
*/
.row {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-flow: row wrap; }
  .row .row {
    max-width: none;
    margin-left: -0.625rem;
    margin-right: -0.625rem; }
    @media screen and (min-width: 48em) {
      .row .row {
        margin-left: -0.625rem;
        margin-right: -0.625rem; } }
    @media screen and (min-width: 64em) {
      .row .row {
        margin-left: -0.3125rem;
        margin-right: -0.3125rem; } }
    @media screen and (min-width: 68.75em) {
      .row .row {
        margin-left: -0.3125rem;
        margin-right: -0.3125rem; } }
  .row.expanded {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }

#tp-page-wrapper {
  min-height: 100%; }

.tp-playlist-page {
  margin-top: -18.75rem; }
  @media screen and (min-width: 48em) {
    .tp-playlist-page {
      margin-top: -25rem; } }

.text-left {
  text-align: left; }

#error-404 {
  padding: 30vh 0; }

[v-cloak] {
  display: none; }

.tp-toggle-show {
  display: block; }

.text-uppercase {
  text-transform: uppercase; }

.tp-playlist-archive {
  margin-top: -5.625rem; }

.tp-playlist-section {
  position: relative;
  width: 100%;
  margin: auto auto 2.5rem;
  background: #fff;
  padding: 1.25rem 0.625rem 0;
  border-top: 5px solid #ed145b; }
  .tp-playlist-section::before {
    content: '';
    border-right: 15px solid transparent;
    border-top: 15px solid #ed145b;
    position: absolute;
    top: 0;
    left: 0; }
  .tp-playlist-section ul.tp-playlist-list header {
    padding: 1.25rem 0.625rem; }
    .tp-playlist-section ul.tp-playlist-list header h1 {
      word-break: hyphenate;
      margin-bottom: 0.625rem;
      line-height: 1; }
    .tp-playlist-section ul.tp-playlist-list header .subline {
      letter-spacing: 1px;
      border-bottom: 2px solid #000;
      display: inline-block; }
  .tp-playlist-section ul.tp-playlist-list li {
    margin-bottom: 1.25rem; }
  @media screen and (min-width: 64em) {
    .tp-playlist-section {
      /*padding: 0.625rem 0.625rem 0;*/ }
      .tp-playlist-section ul.tp-playlist-list h1 {
        font-size: 2.4rem; }
      .tp-playlist-section ul.tp-playlist-list li {
        margin-bottom: 0.625rem; } }

.tp-newsletter-footer {
  padding: 3.75rem 0;
  color: #fff;
  background-size: cover;
  background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.65) 100%), url("/images/dark-bg.jpg");
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.65) 100%), url("/images/dark-bg.jpg");
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.65) 100%), url("/images/dark-bg.jpg");
  position: relative;
  margin-bottom: 1.875rem; }
  .tp-newsletter-footer h1 {
    font-family: "Vinyl", "Source Sans Pro", Helvetica, Arial, sans-serif;
    letter-spacing: 0.05em; }
  .tp-newsletter-footer input {
    border: none;
    padding: 0.5rem 1.5rem;
    font-family: "Vinyl", "Source Sans Pro", Helvetica, Arial, sans-serif;
    margin: 0; }
  .tp-newsletter-footer > .row {
    position: relative;
    z-index: 2; }
  .tp-newsletter-footer > .tp-moving-divider {
    z-index: 1; }
  .tp-newsletter-footer .tp-newsletter-options.row.collapse {
    display: flex;
    padding-left: 0.625rem;
    padding-right: 0.625rem; }
    @media screen and (min-width: 64em) {
      .tp-newsletter-footer .tp-newsletter-options.row.collapse {
        padding: 0; } }
  .tp-newsletter-footer .tp-dropdown-country {
    border-left: 0; }
  .tp-newsletter-footer .tp-newsletter-signup-button {
    margin-top: 1rem;
    text-align: left; }

.tp-genre-mood-filter-container {
  margin-top: 4.6875rem;
  position: relative; }
  @media screen and (min-width: 64em) {
    .tp-genre-mood-filter-container {
      margin-top: 5.625rem; } }

.tp-genre-mood-filter {
  border: 5px solid #000;
  font-size: 1.125rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  background: #fff;
  line-height: 1;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  z-index: 1000; }
  .tp-genre-mood-filter > span {
    text-overflow: ellipsis;
    display: block;
    margin-left: 0.9375rem;
    margin-right: 0.9375rem; }
    .tp-genre-mood-filter > span::after {
      content: '+';
      float: right;
      font-size: 2rem;
      line-height: 1rem;
      font-weight: 500; }
  .tp-genre-mood-filter:hover {
    padding-bottom: 0; }
    .tp-genre-mood-filter:hover .tp-genre-mood-filter-list {
      display: flex;
      margin-bottom: 0; }

.tp-genre-mood-filter-list {
  display: none;
  background: #000;
  list-style: none;
  margin-top: 1rem; }
  .tp-genre-mood-filter-list li {
    background: #4d4d4d;
    border-right: 2px solid #000;
    margin-top: 2px; }
    .tp-genre-mood-filter-list li a {
      color: #fff;
      padding: 0.625rem;
      display: block; }
    @media screen and (min-width: 48em) {
      .tp-genre-mood-filter-list li:hover {
        background: #343434; } }
    @media screen and (max-width: 47.9375em) {
      .tp-genre-mood-filter-list li:nth-child(1n) {
        border-right-width: 0; } }
    @media screen and (min-width: 48em) and (max-width: 63.9375em) {
      .tp-genre-mood-filter-list li:nth-child(2n) {
        border-right-width: 0; } }
    @media screen and (min-width: 64em) {
      .tp-genre-mood-filter-list li:nth-child(3n) {
        border-right-width: 0; } }

.tp-dropdown {
  position: relative;
  height: 2.4375rem;
  padding: 0.5rem 1.5rem;
  text-transform: uppercase;
  border: 1px solid #2d2d2d;
  background: #000;
  z-index: 1; }
  .tp-dropdown .tp-dropdown-body {
    display: none; }
  .tp-dropdown.open .tp-dropdown-body {
    display: block;
    position: absolute;
    top: 100%;
    left: -1px;
    right: -1px;
    max-height: 20vh;
    overflow: auto;
    list-style: none;
    background: #000;
    border: 1px solid #2d2d2d;
    z-index: 1010; }
    .tp-dropdown.open .tp-dropdown-body ul {
      list-style: none;
      padding: 0;
      margin: 0; }
      .tp-dropdown.open .tp-dropdown-body ul li a,
      .tp-dropdown.open .tp-dropdown-body ul li span {
        padding: 0.5rem 1.5rem;
        display: block;
        cursor: pointer; }
        .tp-dropdown.open .tp-dropdown-body ul li a:hover,
        .tp-dropdown.open .tp-dropdown-body ul li span:hover {
          background-color: #2d2d2d; }

.button.transparent {
  background-color: transparent;
  border: 2px solid white;
  text-transform: uppercase;
  letter-spacing: 1px; }

footer[role="contentinfo"] {
  margin-bottom: 1.25rem; }
  footer[role="contentinfo"] li {
    display: inline-block;
    margin: 0 0.75rem; }
    footer[role="contentinfo"] li a {
      font-size: 1.1rem; }
  @media screen and (min-width: 48em) {
    footer[role="contentinfo"] li:first-child {
      margin-left: 0; } }
  footer[role="contentinfo"] .copyright {
    font-family: "Vinyl", "Source Sans Pro", Helvetica, Arial, sans-serif;
    font-weight: 600; }

.tp-share-footer .logo {
  margin: 3.75rem 0;
  display: inline-block; }
  @media screen and (min-width: 48em) {
    .tp-share-footer .logo {
      margin: auto; } }

.tp-share-footer li {
  display: inline-block;
  font-size: 1.5rem;
  margin: 0 0.3rem; }

@media screen and (min-width: 64em) {
  .tp-share-footer {
    margin-bottom: 2.8125rem; } }

#tp-footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0; }

.tp-playlist-description {
  padding: 1.25rem; }
  .tp-playlist-description h1 {
    font-weight: 500;
    font-family: "Vinyl", "Source Sans Pro", Helvetica, Arial, sans-serif; }
  @media screen and (min-width: 48em) {
    .tp-playlist-description {
      padding: 1.875rem; } }

.tp-playlist-page-content {
  background: #000;
  color: #fff;
  margin-bottom: 1rem; }
  .tp-playlist-page-content figure {
    margin: 0; }
    .tp-playlist-page-content figure img {
      width: 100%;
      max-width: auto; }

.tp-playlist-page .tp-playlist-listen {
  margin: 0;
  padding: 0.75rem 0;
  align-items: center;
  font-size: 1.4rem;
  border-top: 1px #4d4d4d solid; }
  .tp-playlist-page .tp-playlist-listen ul {
    padding: 0;
    margin: 0; }
    .tp-playlist-page .tp-playlist-listen ul li {
      display: inline-block;
      margin-bottom: 0; }
  .tp-playlist-page .tp-playlist-listen a {
    color: #cacaca;
    font-size: 1.8rem; }
    .tp-playlist-page .tp-playlist-listen a:hover {
      color: #fefefe; }

.tp-playlist-page .tp-spotify-embed {
  height: 25rem;
  margin-top: 1rem; }
  @media screen and (min-width: 48em) {
    .tp-playlist-page .tp-spotify-embed {
      height: auto;
      margin-top: 0; } }
  .tp-playlist-page .tp-spotify-embed .flex-video {
    height: 100%;
    padding: 0;
    margin: 0; }

.tp-playlist-page .tp-playlist-tags ul {
  padding: 0;
  margin: 0; }

.tp-playlist-page .tp-playlist-tags li {
  display: inline-block;
  margin-right: 0.5rem; }
  .tp-playlist-page .tp-playlist-tags li a {
    display: inline-block;
    padding: 0.5rem 0.6rem;
    background: #e6e6e6;
    color: #4d4d4d;
    line-height: 1;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px; }
    .tp-playlist-page .tp-playlist-tags li a:hover {
      text-decoration: underline; }

.tp-newsletter-page-wrapper {
  background: #000;
  position: relative;
  padding-top: 3.125rem;
  padding-bottom: 5rem;
  margin-bottom: 3.125rem; }
  @media screen and (min-width: 48em) {
    .tp-newsletter-page-wrapper {
      padding-top: 5rem;
      padding-bottom: 7.5rem;
      margin-bottom: 6.25rem; } }

.tp-newsletter-page {
  color: #fefefe; }
  .tp-newsletter-page hgroup {
    margin-bottom: 3.125rem; }
    @media screen and (min-width: 48em) {
      .tp-newsletter-page hgroup {
        margin-bottom: 5rem; } }
    .tp-newsletter-page hgroup > * {
      font-family: "Vinyl", "Source Sans Pro", Helvetica, Arial, sans-serif;
      letter-spacing: 1px; }
  .tp-newsletter-page form {
    font-size: 1.1rem; }
    @media screen and (min-width: 48em) {
      .tp-newsletter-page form {
        font-size: 1.2rem; } }
    .tp-newsletter-page form label {
      color: #fefefe;
      font-size: inherit; }

.tp-newsletter-sep {
  margin-top: 1.875rem;
  padding-top: 1.875rem;
  border-top: 1px solid #4d4d4d; }
  .tp-newsletter-sep button {
    text-align: left; }

#tp-generator {
  margin-top: 3.125rem;
  margin-bottom: 3.125rem; }

#tp-finder {
  margin-top: -80vh;
  z-index: 2;
  position: relative;
  color: #fefefe;
  margin-bottom: 0; }
  #tp-finder input[type="search"] {
    border-radius: 1.25rem;
    border: 2px solid #000;
    max-width: 18.75rem;
    margin: auto;
    font-size: 1.3rem;
    text-align: center;
    text-transform: uppercase;
    height: 2.5rem;
    padding: 0.83333rem; }
  #tp-finder button {
    border-radius: 1.25rem;
    background: #000;
    color: #fefefe;
    height: 2.5rem;
    padding: 0.83333rem; }

.tp-suggested-artists {
  margin-top: 1rem;
  font-size: 1.1rem; }
  .tp-suggested-artists dt, .tp-suggested-artists dd {
    display: inline-block;
    margin-right: 0.625rem;
    margin-bottom: 0.5rem; }
    .tp-suggested-artists dt:last-child, .tp-suggested-artists dd:last-child {
      margin-right: 0; }
  .tp-suggested-artists dd {
    text-decoration: underline; }

.tp-finder-tags {
  margin-top: 2rem; }
  .tp-finder-tags:empty {
    margin-top: 0; }
  .tp-finder-tags li {
    margin: 0 1rem 1rem 0;
    padding: 0.6rem 0.6rem;
    border-radius: 2rem;
    border: 2px solid #000;
    min-width: 90px;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
    background: #fefefe;
    color: #000; }
    .tp-finder-tags li.active, .tp-finder-tags li:hover, .tp-finder-tags li.invert {
      background: #000;
      color: #fefefe; }
    .tp-finder-tags li:hover {
      text-decoration: underline; }
    .tp-finder-tags li.invert:hover {
      background: #fefefe;
      color: #000; }

.tp-finder-artist-search {
  margin-bottom: 2rem; }

.tp-finder-no-artists {
  margin-top: 1rem;
  font-size: 1.1rem; }

body.finder [role="banner"] {
  min-height: 90vh; }

[v-cloak] {
  display: none; }

.fade-enter {
  animation: fade-slide-in 0.75s; }

@keyframes fade-slide-in {
  0% {
    opacity: 0;
    padding-top: 10vh; }
  100% {
    opacity: 1;
    padding-top: auto; } }

#tp-welcome-series {
  margin-top: -350px;
  position: relative;
  margin-bottom: 6.25rem; }
  #tp-welcome-series .tp-welcome-header {
    margin-bottom: 2rem;
    color: #fefefe; }

.tp-welcome-item {
  opacity: 0.5; }
  .tp-welcome-item.selected {
    opacity: 1; }
  .tp-welcome-item img {
    margin-bottom: 0.6em; }

.tp-welcome-section {
  margin-bottom: 2rem;
  min-height: 50vh;
  -webkit-transition: min-height 0.5s ease-out; }
  .tp-welcome-section.collapse {
    height: 0;
    min-height: 0;
    overflow: hidden; }

.tp-welcome-loading {
  font-size: 1.5rem;
  padding: 1rem 0; }

.tp-recommended-playlists li:hover i {
  display: block; }

.tp-recommended-playlists figure {
  margin: 0;
  position: relative;
  margin-bottom: 0.5rem; }
  .tp-recommended-playlists figure img {
    display: block; }
  .tp-recommended-playlists figure i {
    position: absolute;
    display: none;
    font-size: 5rem;
    top: 50%;
    left: 50%;
    color: #fefefe;
    text-shadow: 0px 0px 9px #000;
    line-height: 0;
    transform: translateY(-50%) translateX(-50%); }