html {
  background-color: white;
  color: rgb(50,50,50);
  font-family: sans-serif;
  margin: 0;
  padding: 0;
  font-size: 115%;
}
body {
  margin: 0;
  padding: 0;
  background-color: white;
  color: rgb(50,50,50);
  background-image: linear-gradient(
    to right,
    lightgray, 
    white,
    white,
    white,
    lightgray
    );
  min-height: 100vh;
  overflow-x: hidden;
}

.font115 {
  font-size: 115% !important;
}

.font100 {
  font-size: 100% !important;
}

.grouped {
  display: inline-block;
}

.main_container {
  max-width: 60em;
  width: 100%;
  margin: 0 auto;
  text-align: center;
}
.narrow_container {
  max-width: 40em;
  width: 100%;
  margin: 0 auto;
  text-align: center;
}
.narrow_container.narrower {
  max-width: 25em;
}


.relative {
  position: relative;
  width: 100%;
}



select {
  width: 8em;
  vertical-align: middle;
}
.hidden {
  display: none;
  visibility: hidden;
}
.overlay {
  position: absolute;
  right: 1em;
  bottom: 1em;
}
.normal_width {
  text-align: center;
  margin: 0;
  padding: 0;
}
.right {
  text-align: right;
}
.center {
  text-align: center;
}
.relative {
  position: relative;
}
.absolute50.button {
  display: inline;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.zindex-1 {
  z-index: 1;
}
.zindex-2 {
  z-index: 2;
}

.anchor_bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  z-index: 2;
}
.light_shadow {
  box-shadow: inset 0 4px 8px 0 rgba(0, 0, 0, 0.05), inset 0 6px 20px 0 rgba(0, 0, 0, 0.01);
}
.bottom_shadow {
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.top_shadow {
  box-shadow: 0 -4px 8px 0 rgba(0, 0, 0, 0.2), 0 -6px 20px 0 rgba(0, 0, 0, 0.1);
}
.noselect {
  -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
     -khtml-user-select: none; /* Konqueror HTML */
       -moz-user-select: none; /* Old versions of Firefox */
        -ms-user-select: none; /* Internet Explorer/Edge */
            user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome, Opera and Firefox */
}
.button {
  position: relative;
  display: inline-block;
  width: 5em;
  height: 5em;
  line-height: 5em;
/*   margin-left: 1em; */
/*   margin-right: 1em; */
  border-style: solid;
  border-width: 0em;
  border-radius: 3em;
  border-color: white;
  vertical-align: middle;
  text-align: center;
/*   font-weight: bold; */
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  transition: background-color 0.25s,
              border-color 0.25s,
              color 0.25s,
              box-shadow 0.25s,
              transform 0.25s,
              font-weight 0.25s;
  cursor: pointer;
  font-size: 60%;
  color: rgb(50,50,50);
  background-color: white;
}
.button:hover {
  border-color: black;
/*   box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.8), 0 6px 20px 0 rgba(0, 0, 0, 0.19); */
}
.button:active {
  color: white;
  background-color: black;
  transition: background-color 0s,
              color 0s;
}
.button:focus-within {
  box-shadow: 0 0px 16px 0 rgba(0, 0, 0, 1), 0 6px 20px 0 rgba(0, 0, 0, 0.8);  
  outline: 0;
}
.clearbutton {
  width: 3em;
  height: 3em;
  line-height: 3em;
  z-index: 0;
/*   margin-right: -0.75em; */
}
.playbutton {
  width: 3em;
  height: 3em;
  line-height: 3em;
  margin-left: -2em;
  z-index: 0;
}

.volume {
  -webkit-appearance: none;
  vertical-align: middle;
  position: absolute;
  display: inline;
  z-index: 2;
  width: 100%;
  height: 70%;
  left: 0;
  top: 15%;
  margin: 0;
  padding: 0;
  opacity: 0.85;
  z-index: 2;
  outline: none;
  background-color: rgba(0,0,0,0);
  cursor: pointer;
}
.volume::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 2em;
  height: 3em;
  border: 1px solid lightgray;
  border-radius: 0.5em; 
  background-color: white;
  cursor: pointer;
}
input[type=range]::-moz-focus-outer { 
  border: 0; 
}
input[type=range]::-moz-range-track { 
  height: 3em; 
  background-color: rgba(0,0,0,0);
  cursor: pointer;
}
.volume::-moz-range-thumb {
  width: 2em;
  height: 3em;
  border: 1px solid lightgray;
  border-radius: 0.5em;
  background-color: white;
  cursor: pointer;
}
.waveHolder {
  display: inline-block;
  position: relative;
  width: 8em;
  height: 3em;
  vertical-align: middle;
  border-radius: 0.5em;
  transition: box-shadow 0.5s;
}
.waveHolder:focus-within {
  box-shadow: 0 0px 16px 0 rgba(0, 0, 0, 1), 0 6px 20px 0 rgba(0, 0, 0, 0.8);  
  outline: 0;
}
.recordbutton {
  z-index: 1;
}
.disappear {
  transform: scale(0);
  pointer-events: none;
}
.recording {
  background-color: black; /* was green */
  color: white;
  font-weight: 900;
}
.playing {
  background-color: black; /* was green */
  color: white;
  font-weight: 900;
}
.flash {
  background-color: white !important; /* does not get overridden by styleOverride() */
  color: black !important;
  font-weight: 900 !important;
}
.waveform {
  display: inline-block;
  position: relative;
  width: 8em;
  height: 3em;
  line-height: 3em;
  margin-top: 0em;
  margin-bottom: 0em;
/*   border-radius: 0.5em 0 0 0.5em; */
  border-radius: 0.5em;
  vertical-align: middle;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.09);
  background-color: white;
  color: lightgray;
  z-index: 1;
}
.analyzers {
  display: grid;
  position: relative;
  grid-template-columns: 3em 0.25em repeat(2, 1fr) 0.25em 3em;
  grid-template-rows: 2em;
  grid-gap: 0em;
  align-items: center;
  border-radius: 3em;
/*   background-color: white; */
}
.analyzers.singleleft {
  margin-left: 2em;
  margin-right: 2em;
  grid-template-columns: 3em 0.25em 1fr 0em 0em 0em;
}
.analyzers.singleright {
  margin-left: 2em;
  margin-right: 2em;
  grid-template-columns: 0em 0em 0em 1fr 0.25em 3em;
}
.analyzers > .middleleft { grid-column: 3/4; }
.analyzers > .middleright { grid-column: 4/5; }
.analyzers > .farleft { grid-column: 1; }
.analyzers > .farright { grid-column: 6; }
.analyzer {
  height: 2em;
  width: 100%;
  background-color: white;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.09);
  border-radius: 0.25em 0.25em 0 0;
}

.analyzers > .under { 
  top: 0;
  position: absolute; 
  width: 100%;
  height: 100%;
  opacity: 0.75;
}

#FPS {
  font-size: 100%;
  color: black; /* was green */
  font-family: monospace;
  text-align: center;
}
#MESSAGES {
  width: 95%;
  max-height: 6em;
  max-width: 40em;
  margin: 0 auto;
  display: block;
  overflow-y: auto;
  font-size: 60%;
  color: gray;
  word-break: break-all;
  text-align: left;
/*   border: 1px solid lightgray; */
  border-radius: 1em;
  padding: 0.5em;
}
#TIMESIG {
  width: 4em;
  text-align: center;
}

.infotext {
  width: 80%;
  max-height: 6em;
  max-width: 40em;
  color: gray;
  margin: 0 auto;
  font-size: 80%;
  padding: .5em;
}

.username_signin {
  font-size: 80%;
  color: gray;
  padding: 0.5em;
}
.username_signin a {
  color: gray;
}

.commentsfield {
  height: 7em;
  width: 30em;
  max-width: 70%;
  vertical-align: middle;
  border-radius: 0.5em;
  padding: 0.5em;
  border: 1px solid lightgray;
  overflow: auto;
}

.collapsed {
  width: 0;
/*   height: 0; */
  opacity: 0;
  cursor: default;
}

.slowexpand {
  transition: width 1s,
              opacity 1s,
              height 0.5s;  
}

.fastexpand {
  transition: width .1s,
              height 0.1s;
}

#TOPBAR {
  margin: 0;
  width: 100%;
}

a {
  text-decoration: none;
}

.accentgradient {
  height: 2em;
  line-height: 2em;
  text-align: center;
  background-color: black; /* was green */
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  color: white;
  font-size: 75%;
  font-weight: 900;
  transition: background-color 1.5s ease-out;
  border-radius: 0 0 0.25em 0.25em;
  background-image: linear-gradient(
    to right,
    rgba(0,0,0,1), 
    rgba(0,0,0,0), 
    rgba(0,0,0,1)
    );
}

.background-color {
  background-color: black;
}

#COLORCHOICE {
  text-align: center;
  font-size: 30%;
}
#COLORCHOICE div {
  margin: 1em;
}

#SEQUENCER {
/*   border: 1px solid red; */
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 0;
}
#FRIENDS {
/*   border: 1px solid green; */
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  padding: 0;
  min-width: 1.5em;
  max-width: 8em;
  min-height: 1.5em;
  text-align: center;
  margin-left: 0.25em;
  padding: 0em;
  border: 0.1em solid lightgray;
  border-radius: 0.5em;
}

.gap {
  height: 3em;
  width: 100%;
  display: block;
}
.vhgap {
  height: 10vh;
  width: 100%;
  display: block;
}

.halfgap {
  height: 1em;
  width: 100%;
  display: block;
}

.seq_row {
  display: grid;
  margin: 0;
  padding: 0;
  text-align: center;
}

.seq_cell {
  border: 1px solid rgba(0, 0, 0, 1);
  padding: 0;
  padding-bottom: 100%;
  display: inline-block;
  margin: 0;
  width: 100%;
  border-radius: 100%;
  opacity: 1;
/*   box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.09); */
}

.seq_div {
  text-align: center;
}

.seq_dot {
  display: inline-block;
  border: 1px solid rgba(0, 0, 0, 1);
  background-color: white;
  width: .5em;
  height: .5em;
  border-radius: 100%;
  opacity: 1;
  margin-bottom: 0.125em;
}

.seq_dot.gap {
  width: 0.125em;
  height: 0.125em;
  opacity: 0;
}

.smooth_cell {
  border: 1px solid rgba(0, 0, 0, 0.25);
/*   transition: background-color .5s ease-out; */
}

.active_cell {
  background-color: black; /* was green */
}

.instant {
  background-color: black;
  color: white;
  transition: background-color 0s,
              border-color 0s,
              color 0s,
              box-shadow 0s,
              font-weight 0s;
}

.narrowdropdown {
  display: inline-block;
  position: relative;
  height: 2em;
  width: 2em;
  border-radius: 100%;
  overflow: hidden;
  vertical-align: middle;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

.hiddendropdown {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  background-color: white;
  border-width: 0em;
  text-align: center;
  z-order: -1;
  cursor: pointer;
}

.visibledropdown {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 2em;
  line-height: 2em;
  text-align: center;
  background-color: white;
  z-order: 1;
  pointer-events: none;
  cursor: pointer;
  transition: background-color .5s,
              font-weight 0s,
              color 0s;
}

.button.loop {
  height: 2em;
  width: 2em;
  line-height: 2em;
  z-index: 1;
  font-size: 75%;
}

.looping {
  margin-left: -1em;
  z-index: 0;
  transform: rotate(-45deg);
}

.narrowdropdown:active > .visibledropdown {
  background-color: black; /* was green */
  color: white;
  font-weight: 900;
  transition: 0s;
}
.narrowdropdown:active {
  background-color: black; /* was green */
}

.nudge {
  width: 2em;
  height: 2em;
  line-height: 2em;
  padding: 0.25em;
  font-size: 70%;
}
.nudge.button:active {
  color: white;
  background-color: black; /* was green */
  transition: background-color 0s,
              color 0s;
}
.nudgeHolder {
  display: inline-block;
  margin-left: 0em;
  transition: margin-left .25s;
}
.nudgeHolder.closed {
  margin-left: -10em;
}
.optionvalue {
  text-align: right;
  padding-right: 1em;
  width: 5em;
  height: 3em;
  line-height: 3em;
  margin-left: -1.5em;
  z-index: 0;
  color: white;
  background-color: black; /* was green */
  font-weight: 900;
}

.colorchoice {
  border: 1em solid rgb(0,0,0,0);
  border-radius: 1em;
  transition: border-color .5s;
}

.colorchoice:active {
  border-color: white;
  transition: 0s;
}

.friend.button {
  display: inline-block;
  font-size: 60%;
  margin: 0em;
  width: 3em;
  height: 3em;
  line-height: 3em;
  color: white;
  font-weight: 900;
/*   transform: translateX(-1em); */
}
.friend.sliderholder {
  display: inline-block;
  position: relative;
}
.friend.meta {
  display: inline-block;
  color: gray;
  font-size: 50%;
  padding: 0.5em;
}
.friend.holder {
  border-radius: 0.5em;
  box-sizing: border-box;
  margin: 0.25em;
}





.fullwindow {
  margin: 0;
  width: 100%;
  height: 100%;
  position: relative;
}

.topgap {
  margin-top: 30vh;
}

.fullwidth > img {
  width: 80%;
}

.fullwidth.focal {
  position: absolute;
  top: 45%;
  transform: translateY(-50%);
  width: 100%;
  text-align: center;
}

.landing_buttons {
  position: absolute;
  bottom: 1em;
  text-align: center;
  width: 100%;
}

.text_container {
  position: relative;
  margin: 0em;
  margin-top: 5em;
  border: 1px solid lightgray;
  border-radius: 0.25em;
  padding: 0em;
  padding-top: 1em;
  text-align: left;
  box-shadow: inset 0 4px 8px 0 rgba(0, 0, 0, 0.4), inset 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

.text_container.nogap {
  margin-top: 0em;
}

.text_container > p {
  padding-left: 1em;
  padding-right: 1em;
}

.text_container > .heading {
  display: inline;
  border-radius: 0.25em;
  position: absolute;
  left: 0;
  top: 0;
  padding: 0.5em;
  background-color: black;
  color: white;
  font-size: 75%;
  transform: translate(0.5em, -50%);
  transition: background-color 0.5s;
  background-image: linear-gradient( 
    to right,
    rgba(0,0,0,.25),
    rgba(0,0,0,0)
    );
}

.section_heading {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  font-weight: 900;
  font-size: 20vw;
  font-family: sans-serif;
  padding: 0;
  margin: 0;
  color: rgba(0, 0, 0, 1);
  opacity: .05;
}

@keyframes landing_buttons {
  0% {
    transform: translate(0, -25vh);
    opacity: 0;
  }
  50% {
    opacity: 0;
  }  
  100% {
    transform: translate(0, 0);
    opacity: 1;
  }
}
.fadeIn {
  animation: 1s ease-out 0s 1 landing_buttons;
}

.raised {
  text-align: center;
  padding: 0em;
  padding-top: 1em;
  padding-bottom: 1em;
  border-radius: 0.5em;
  max-width: 30em;
  margin: 0 auto;
  box-shadow: inset 0 4px 8px 0 rgba(0, 0, 0, 0.1), inset 0 6px 20px 0 rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.5s;
}

.raised > p {
  text-align: left;
  padding-left: 1em;
  padding-right: 1em;
}

.raised > .analyzer {
  width: 80%;
  vertical-align: middle;
}

.raised.hover:hover {
  box-shadow: inset 0 4px 8px 0 rgba(0, 0, 0, 0.25), inset 0 6px 20px 0 rgba(0, 0, 0, 0.2);
}

.audio_strip {
  display: inline-block;
  border-radius: 3em;
  border: .1em solid rgba(255,255,255,0.5);
  border-width: 0 .25em 0em .25em;
}

.text_container a > span {
  display: inline-block;
  height: 2em;
  width: 12em;
}

.textlogo {
  width: 50%;
  vertical-align: middle;
}
.giant {
  font-size: 120%;
}

.unocitylogo {
  display: inline-block;
  position: relative;
  margin: 0 auto;
  max-width: 100%;
  padding: 1em;
  font-size: 50%;
}

.unocitylogo a > img {
  position: relative;
  display: inline-block;
  max-width: 100%;
  width: 15em;
  margin: 0 auto;
}

.unocitylogo .logotitle {
  z-index: 0;
  position: absolute;
  display: inline-block;
  right: 15%;
  bottom: 0em;
  padding: 0.25em;
  border-radius: 0.25em;
  transition: background-color 0.5s;
  font-weight: bold;
  color: white;
  background-color: black;
  background-image: linear-gradient( 
    to right,
    rgba(0,0,0,.25),
    rgba(0,0,0,0)
    );  
}



#SNAPSHOTLIST {
  min-height: 4em;
  max-height: 14em;
  width: 30em;
  max-width: 70%;
  vertical-align: middle;
  border-radius: 0.5em;
  padding: 0.25em;
/*   border: 1px solid lightgray; */
  overflow: auto;
  background-color: white;
}

.snapshotitem {
  display: grid;
  grid-template-columns: 2.5em 1fr;
  font-size: 75%;
/*   border: 1px solid lightgray; */
/*   border-radius: .75em 2em  2em .75em; */
  border-radius: 2em .75em .75em 2em;  
/*   margin-bottom: 0.25em; */
/*   margin-top: 0.25em; */
  align-items: center;
  overflow: hidden;
/*   grid-gap: 0.25em; */
  cursor: pointer;
  background-color: white;
}

.snapshotitem:hover .snapshotitem-bpm-back {
  opacity: 100%;
}

.snapshotitem-bpm {
  grid-column: 1/1;
  grid-row: 1/3;
  color: white;
  font-size: 75%;
  font-weight: bold;
  z-index: 1;
}
.snapshotitem-bpm-back {
  grid-column: 1/1;
  grid-row: 1/3;
  height: 100%;
  opacity: 50%;
}

.snapshotitem-date {
  grid-column: 2/2;
  grid-row: 1/1;
  font-size: 75%;
  color: gray;
  text-align: left;
  padding: 0.1em;  
}
.snapshotitem-name {
  grid-column: 2/2;
  grid-row: 2/3;
  text-align: left;
  padding: 0.1em;
  padding-bottom: 0.25em;
}



.fullscreen_overlay {
  position: fixed;
  display: relative;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  font-size: 10vmin;
  background-color: rgb(0, 0, 0);
  opacity: 0.85;
  color: white;
  z-index: 10;
  transition: opacity 1s,
              transform 0.5s;
  line-height: 100vh;
  pointer-events: none;
  transform: translateY(0%);
}

#SERVERMESSAGE {
  user-select: none;
}

#SERVEROPEN {
  position: absolute;
  top:0;
  left:50%;
  transform: translate(-50%, -50%);
  width: 2em;
  height: 2em;
  border-radius: 100%;
  pointer-events: auto;
  background-color: rgb(0,0,0);
  cursor: pointer;
}

#SERVERCLOSE {
  position: absolute;
  bottom:0;
  left:50%;
  transform: translate(-50%, -50%);
  width: 1em;
  height: 1em;
  font-size: 1em;
  border-radius: 100%;
  pointer-events: auto;
  background-color: white;
  color: black;
  line-height: 1em;
  text-align: center;
  cursor: pointer;
  user-select: none;
}
