:root {
  --bg-color: #03010A;
  --text-color: #EEE7DD;
  --r: #C52D29;
  --g: #2E6830;
  --b: #1E8388;
  --line-weight: 2px;
  --font-std: 17px;
  font-family: Inter, sans-serif;
  font-feature-settings: 'liga' 1, 'calt' 1; /* fix for Chrome */
}

@supports (font-variation-settings: normal) {
  :root { font-family: InterVariable, sans-serif; }
}

html,body {margin:0;padding:0;}

::selection {background: var(--r); color:var(--text-color);}

body {
  background:var(--bg-color);
  color:var(--text-color);
  font-size:var(--font-std);
  line-height: 1.4;
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

a {
  color:var(--text-color);
  text-decoration:none;
  transition: all 0.3s ease;
}

a:hover {
  color:var(--r);
}

a .icon {
  fill:var(--text-color);
  transition: all 0.3s ease;
}

a:hover .icon {
  fill:var(--r);
}

.outer-wrap {
  width:calc(100% - 120px);
  margin:0 40px 0 80px;
}

.track {
  display: flex;
  justify-content: space-between;
  align-items: top;
}

.track .primary {
  width: 60%;
  position:relative;
}

.track #photo {
  width: 40%;
  background:var(--b);
  position:relative;
  height:100vh;
  position: sticky;
  top: 0;
}

.track #photo::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url('img/noise.gif') repeat;
  mix-blend-mode: multiply;
  opacity: 0.25;
}

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height:120px;
}

#rgb {
  width: 40px;
  height: 120px;
  position:absolute;
  left:0;
  top:0;
}

#logo img {
  width:272px;
  height:auto;
}

nav ul {
  margin:0;
  padding:0;
  list-style:none;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 36px;
}

nav li a {
  display: flex;
  align-items: center;
  gap: 8px;
}

#banner {
  height:180px;
  background: url('img/square/T0022.jpg') center / cover no-repeat;
}

.audio-list {
  width: 100%;
  border-collapse: collapse;
  border-top: solid var(--line-weight) var(--text-color);
}

.list-link {
  display: grid;
  grid-template-columns: 120px 1fr 80px 60px;
  gap: 0;
  width: 100%;
  height:42px;
  align-items: center;
}

.list-link:hover {
  color:var(--text-color);
}

.col-number {
  width: 114px;
  text-align: left;
  padding-left:4px;
  font-size:12px;
  font-weight:700;
}

.col-title {
  width: auto;
  flex-grow: 1;
  text-align: left;
}

.col-year {
  width:80px;
  text-align: center;
}

.col-duration {
  width: 60px;
  text-align: center;
}

.audio-list thead {
  font-size:12px;
  text-transform: uppercase;
  height:40px;
}

.audio-list tbody tr {
  transition: all 0.15s ease;
}

.audio-list tbody tr:hover {
  background: var(--r);
}

#trackinfo {
  border-top: solid var(--line-weight) var(--text-color);
  padding-top:40px;
}

#loading-indicator {
    display: block;
    width: 100%;
    height: 100px;
    background-color: var(--bg-color);
    color:var(--text-color) !important;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    font-weight:700;
    font-size:16px;
    animation: color-cycle 3s infinite linear;
  }

  @keyframes color-cycle {
            0% { background-color: var(--bg-color); }
            50% { background-color: var(--b); }
            100% { background-color: var(--bg-color); }
        }

#waveform {
    display: none; /* Initially hidden */
}

h1 {
  font-size:36px;
  line-height:1em;
}

#trackinfo .date {
  font-size:14px;
  margin:20px 0;
}

#trackinfo .trackid {
  font-size: 11px;
  text-transform:uppercase;
}

.actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top:40px;
}

.actions a {
  border: solid var(--line-weight) var(--text-color);
  padding:4px 20px;
  transition: all 0.2s ease;
  min-width:90px;
  text-align:center;
}

.actions a:hover {
  border-color: var(--r);
  background: var(--r);
  color:var(--text-color);
  cursor:pointer;
}

#notes {
  margin-top: 40px;
}

#notes h2 {
  font-size:12px;
  text-transform: uppercase;
}

.noteid {
  font-size:12px;
  text-transform: uppercase;
  font-weight:700;
  display:inline-block;
  vertical-align: middle;
  background: var(--b);
  padding:2px 10px;
  border-radius:2px;
  margin-right:5px;
}

.noteid.zack {
  background: var(--g);
}


footer {
  border-top: solid var(--line-weight) var(--text-color);
  padding-top:4px;
  font-size:11px;
  width:calc(100% - 120px);
  margin:80px 40px 80px 80px;
}

.sep {
  padding:0 6px;
  opacity:0.2;
}

.nm {
  display:none;
}

#intro {
  width: 100%;
  height:100vh;
  background: url('img/tom.jpg') top / cover no-repeat;
}

.intro-wrap {
  height:100vh;
  display: flex;
    flex-direction: column;
    justify-content: space-between;
}

#intro footer {
  border-top-color: var(--bg-color);
  color: var(--bg-color);
  max-width:450px;
  margin-top:20px;
  margin-bottom:40px;
}

#intro #loading-indicator {
    width:auto;
    min-width: 180px;
    height: auto;
    background: none;
    color:var(--bg-color) !important;
    animation: none;
  }

#intro #loading-indicator:hover {
  border-color: var(--bg-color);
}

#intro .actions {
  margin-left:80px;
}

#intro .actions a {
    border-color: var(--bg-color);
    color:var(--bg-color);
  }

  #intro .actions a:last-child {
    border-color: rgba(255,255,255,0);
  }

#intro .actions a:hover {
    border-color: var(--b);
    background: var(--b);
    color: var(--text-color);
  }

#intro #waveform {
  max-width:450px;
  height:42px;
  margin-left:80px;
}

#intro .spacer {
  width: 1px;
  height: 42px;
  display: inline-block;
}

.credits-container {
      max-width: 600px;
      font-size:15px;
    }

    .credits-row {
      display: flex;
      justify-content: space-between;
      margin-bottom: 12px;
      line-height: 1.5;
      position: relative;
    }

    .name {
      text-align: left;
      padding-right: 15px;
      background: var(--bg-color);
      position: relative;
      z-index: 1;
    }

    .role {
      text-align: right;
      padding-left: 15px;
      background: var(--bg-color);
      position: relative;
      z-index: 1;
    }

    .credits-row::after {
      content: '';
      position: absolute;
      bottom: 0.5em;
      width: 100%;
      border-bottom: 2px dotted #ccc;
      z-index: 0;
    }



/* Responsive */
@media screen and (max-width: 900px) {

  :root {
    --font-std: 15px;
  }

  .nm {display:inline-block;}

  .outer-wrap {
    width:calc(100% - 40px);
    margin:0 20px;
  }

  .track {
    display: flex;
    flex-direction: column;
  }

  .track .primary {
    width: 100%;
  }

  .track #photo {
    width: 100%;
    height:70vh;
    position: relative;
    top:auto;
  }

  header {
    height:auto;
    flex-direction: column;
    justify-content: flex-start;
    border-top:5px solid transparent;
    border-image: linear-gradient(to right, var(--r) 33%, var(--b) 33% 66%, var(--g) 66%) 1;
  }

  #rgb {
    display:none;
  }

  #logo {
    order:1;
    margin:30px 0;
  }

  #logo img {
    width:240px;
  }

  nav {
    order:0;
    margin-top:10px;
  }

  nav ul {
    justify-content: center;
    align-items: center;
    gap: 24px;
    font-size:15px;
  }

  .list-link {
    grid-template-columns: 80px 1fr;
    height:auto;
    padding:8px 0;
    border-bottom: var(--line-weight) solid rgba(238, 231, 221, 0.1);
  }

  .col-number {
    width: 76px;
  }

  .col-duration,
  .col-year {
    display:none;
  }

  #trackinfo {
    padding-top:30px;
  }

  #loading-indicator {
      font-size:15px;
    }

  h1 {
    font-size:30px;
    margin:30px 0 20px;
  }

  #trackinfo .date {
    font-size:12px;
    margin:10px 0;
  }

  .actions {
    margin-top:20px;
  }

  .actions a {
    padding:6px 18px;
  }

  #notes {
    margin-top: 30px;
  }

  footer {
    padding-top:0;
    width:calc(100% - 40px);
    margin:40px 20px;
  }

  .track #photo::after {
    opacity: 0.1;
  }

  #intro {
    background: url('img/tom_mobile.jpg') top / cover no-repeat;
  }

  #intro footer {
    max-width:none;
  }

  #intro .actions {
    margin-left:20px;
    flex-direction: column;
    justify-content: center;
  }

  #intro #waveform {
    max-width: none;
    height:42px;
    margin-left:20px;
  }

}
/* End Responsive */


/* RGB Hover */
#er8Idcx6n7h1{pointer-events: all}#er8Idcx6n7h1:hover #er8Idcx6n7h2 {animation: er8Idcx6n7h2__rd 3000ms linear infinite normal forwards}@keyframes er8Idcx6n7h2__rd { 0% {rx: 0px;ry: 0px;animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 36.666667% {rx: 20px;ry: 20px;animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 100% {rx: 0px;ry: 0px}} #er8Idcx6n7h1:hover #er8Idcx6n7h2_ts {animation: er8Idcx6n7h2_ts__ts 3000ms linear infinite normal forwards}@keyframes er8Idcx6n7h2_ts__ts { 0% {transform: translate(20px,100px) rotate(90deg) scale(1,1);animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 66.666667% {transform: translate(20px,100px) rotate(90deg) scale(0.8,0.8);animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 100% {transform: translate(20px,100px) rotate(90deg) scale(1,1)}} #er8Idcx6n7h1:hover #er8Idcx6n7h3 {animation: er8Idcx6n7h3__rd 3000ms linear infinite normal forwards}@keyframes er8Idcx6n7h3__rd { 0% {rx: 0px;ry: 0px;animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 13.333333% {rx: 20px;ry: 20px;animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 100% {rx: 0px;ry: 0px}} #er8Idcx6n7h1:hover #er8Idcx6n7h3_ts {animation: er8Idcx6n7h3_ts__ts 3000ms linear infinite normal forwards}@keyframes er8Idcx6n7h3_ts__ts { 0% {transform: translate(20px,60px) rotate(90deg) scale(1,1);animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 50% {transform: translate(20px,60px) rotate(90deg) scale(0.8,0.8);animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 100% {transform: translate(20px,60px) rotate(90deg) scale(1,1)}} #er8Idcx6n7h1:hover #er8Idcx6n7h4 {animation: er8Idcx6n7h4__rd 3000ms linear infinite normal forwards}@keyframes er8Idcx6n7h4__rd { 0% {rx: 0px;ry: 0px;animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 63.333333% {rx: 20px;ry: 20px;animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 100% {rx: 0px;ry: 0px}} #er8Idcx6n7h1:hover #er8Idcx6n7h4_ts {animation: er8Idcx6n7h4_ts__ts 3000ms linear infinite normal forwards}@keyframes er8Idcx6n7h4_ts__ts { 0% {transform: translate(20px,20px) rotate(90deg) scale(1,1);animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 40% {transform: translate(20px,20px) rotate(90deg) scale(0.8,0.8);animation-timing-function: cubic-bezier(0.785,0.135,0.15,0.86)} 100% {transform: translate(20px,20px) rotate(90deg) scale(1,1)}}
