@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }

  25% {
    opacity: .3;
  }

  50% {
    opacity: .66;
  }

  75% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  25% {
    opacity: .3;
  }

  50% {
    opacity: .66;
  }

  75% {
    opacity: 1;
  }
}

@-webkit-keyframes pulse {
  0% {
    text-shadow: 0 0 10px rgba(255,255,255,0.2),0 0 12px rgba(255,255,255,0.2),0 0 16px rgba(255,255,255,0.2);
  }

  25% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 6px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7);
  }

  50% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7);
  }

  75% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 25px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 12px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7),0 0 20px rgba(104,185,254,0.7);
  }
}

@keyframes pulse {
  0% {
    text-shadow: 0 0 10px rgba(255,255,255,0.2),0 0 12px rgba(255,255,255,0.2),0 0 16px rgba(255,255,255,0.2);
  }

  25% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 6px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7);
  }

  50% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 20px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 10px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7);
  }

  75% {
    text-shadow: 0 0 12px rgba(255,255,255,0.2),0 0 15px rgba(255,255,255,0.2),0 0 25px rgba(255,255,255,0.2),0 0 8px rgba(104,185,254,0.7),0 0 12px rgba(104,185,254,0.7),0 0 15px rgba(104,185,254,0.7),0 0 20px rgba(104,185,254,0.7);
  }
}

@-webkit-keyframes slide-in {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }

  100% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }
}

@keyframes slide-in {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }

  100% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }
}

@-webkit-keyframes slide-out {
  0% {
    -webkit-transform: translate(0%, 0);
    transform: translate(0%, 0);
  }

  100% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
}

@keyframes slide-out {
  100% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0);
  }
}

svg {
  background: white;
  position: absolute;
  left: 0;
  cursor: -webkit-grab;
  height: 100%;
  width: 100%;
  color: #333;
}

.edge path {
  fill: none;
}

.edge .edge-handler {
  stroke: transparent;
  fill: none;
}

.edge text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
}

.edge.active text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
}

.edge.active:hover,
.edge.active.selected {
  cursor: pointer;
}

.edge.active:hover text,
.edge.active.selected text {
  display: block;
}

#zoom-controls {
  background-color: rgba(0,0,0,0.3);
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-shadow: 0 0 5px rgba(255,255,255,0.3);
  margin-top: 10%;
  z-index: 5;
  position: relative;
  display: block;
  width: 55px;
}

#zoom-controls #zoom-in,
#zoom-controls #zoom-out,
#zoom-controls #zoom-reset {
  padding: 12px;
  margin: 0;
  width: 100%;
}

#zoom-controls #zoom-in i,
#zoom-controls #zoom-out i,
#zoom-controls #zoom-reset i {
  color: #E89619;
}

#zoom-controls #zoom-in:hover,
#zoom-controls #zoom-out:hover,
#zoom-controls #zoom-reset:hover {
  background-color: rgba(255,255,255,0.2);
}

#zoom-controls #zoom-in:active,
#zoom-controls #zoom-out:active,
#zoom-controls #zoom-reset:active {
  border: none;
}

.fa-caret-right,
.fa-caret-down {
  margin: 0 5px;
  color: #68b9fe;
}

#search {
  margin-top: 2em;
  margin-bottom: 1em;
  padding: .5em 1em;
  width: 100%;
}

#search span {
  vertical-align: bottom;
}

#search input {
  background-color: transparent;
  border: thin dashed #68B9FE;
  font-size: 20px;
  padding-left: 0.5em;
  margin-top: -1px;
}

#search input::-webkit-input-placeholder {
  color: white;
}

#search input:-moz-placeholder {
  color: white;
}

#search input::-moz-placeholder {
  color: white;
}

#search input:-ms-input-placeholder {
  color: white;
}

#search .search-icon {
  height: 22px;
  background-color: transparent;
  border: thin dashed #68B9FE;
  color: white;
}

#stats {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #68b9fe;
}

#stats #stats-header {
  padding: 10px;
}

#stats #all-stats {
  color: white;
  border-radius: none;
  border: none;
  background: transparent;
  overflow: auto;
}

#stats #all-stats li {
  padding: 3px;
}

#stats #node-stats-graph,
#stats #edge-stats-graph {
  height: 250px;
}

#stats #node-stats-graph svg,
#stats #edge-stats-graph svg {
  opacity: .6;
  background: transparent;
}

#stats #node-stats-graph text,
#stats #edge-stats-graph text {
  font-size: 16px;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
}

#stats #node-stats-graph .no-data,
#stats #edge-stats-graph .no-data {
  margin: 30px 0;
  color: #68b9fe;
}

#stats .badge {
  border-radius: 0;
  height: 100%;
  background-color: rgba(104,185,254,0.6);
}

#editor {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #68b9fe;
}

#editor h3 {
  padding: 10px;
}

#editor #element-options {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  cursor: pointer;
  margin-top: 10px;
  margin-left: 2%;
  color: white;
}

#editor #element-options .node-property,
#editor #element-options #node-add-property {
  display: -webkit-inline-flex;
  display: inline-flex;
  margin: 4px 0;
  width: 100%;
}

#editor #element-options .property-value,
#editor #element-options #node-add-property #add-property #node-add-prop-value {
  border: thin rgba(255,255,255,0.2) solid;
  border-left: none;
  background-color: black;
  color: white;
  width: 100%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

#editor #element-options .property-name,
#editor #element-options #node-add-property #add-property #node-add-prop-key {
  text-align: center;
  font-weight: 200;
  cursor: default;
  background: #2E2E2E;
  border: thin transparent solid;
  color: #68b9fe;
  border-right: none;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

#editor #element-options #node-add-property #add-property {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-grow: 2;
  flex-grow: 2;
  -webkit-flex-direction: column;
  flex-direction: column;
}

#editor #element-options #node-add-property #add-property #node-add-prop-value {
  text-align: center;
  width: 100%;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 4px;
  border: thin rgba(255,255,255,0.2) solid;
}

#editor #element-options #node-add-property #add-property #node-add-prop-key {
  cursor: text;
  width: 100%;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 0;
}

#editor #element-options input[type="submit"],
#editor #element-options #update-properties {
  color: #68b9fe;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  width: auto;
  background: rgba(255,255,255,0.1);
  border: thin solid #68b9fe;
  text-align: center;
}

#editor #element-options input[type="submit"]:active,
#editor #element-options #update-properties:active,
#editor #element-options input[type="submit"]:focus,
#editor #element-options #update-properties:focus {
  outline: none;
}

#editor #element-options input[type="submit"]:hover,
#editor #element-options #update-properties:hover {
  color: white;
  border: thin solid white;
}

#editor #element-options #update-properties {
  border-radius: 4px;
  padding: 10px;
  width: 100%;
  margin-bottom: 20px;
}

#editor #editor-interactions.active {
  color: #68b9fe;
}

#editor #editor-interactions.inactive {
  color: white;
}

#editor #node-editor.enabled {
  -webkit-animation: fadeIn 1s linear;
  animation: fadeIn 1s linear;
}

#control-dash-wrapper {
  font-family: 'Source Sans Pro', Helvetica, sans-serif;
  letter-spacing: .05em;
  height: inherit;
  z-index: inherit;
  padding: 0;
}

#control-dash-wrapper.initial {
  -webkit-transform: translate(-100%, 0);
  transform: translate(-100%, 0);
}

#control-dash-wrapper.initial #dash-toggle {
  color: #68b9fe;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper.off-canvas {
  -webkit-transform: translate(-100%, 0);
  transform: translate(-100%, 0);
  -webkit-animation: slide-out .75s linear;
  animation: slide-out .75s linear;
}

#control-dash-wrapper.off-canvas #dash-toggle {
  color: #68b9fe;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper.on-canvas {
  -webkit-animation: slide-in .75s ease-in-out;
  animation: slide-in .75s ease-in-out;
}

#control-dash-wrapper.on-canvas * {
  box-shadow: none !important;
}

#control-dash-wrapper.on-canvas #dash-toggle {
  color: rgba(104,185,254,0.6);
}

#control-dash-wrapper.on-canvas #dash-toggle:hover {
  color: #68b9fe;
  -webkit-animation: 4s pulse linear;
  animation: 4s pulse linear;
}

#control-dash-wrapper #control-dash {
  overflow-x: hidden;
  overflow-y: scroll;
  background-color: rgba(0,0,0,0.3);
  padding: 0;
  height: inherit;
  z-index: 5;
}

#control-dash-wrapper #control-dash h3 {
  display: inline;
  margin: 0;
}

#control-dash-wrapper #dash-toggle {
  z-index: 5;
  background-color: rgba(0,0,0,0.3);
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  box-shadow: 0 0 5px rgba(255,255,255,0.3);
  position: absolute;
  left: 0;
  top: 50%;
  font-size: 2.2em;
  color: rgba(255,255,255,0.2);
  padding: 10px;
}

#control-dash-wrapper button {
  border-radius: 0;
  border: none;
  background-color: transparent;
}

#control-dash-wrapper button:active {
  border: none;
}

#control-dash-wrapper h3 {
  font-weight: 200;
  margin-top: 10px;
  color: white;
  cursor: pointer;
  vertical-align: top;
}

#control-dash-wrapper li {
  cursor: pointer;
  background: transparent;
  border: none;
  border-radius: 0;
}

.node {
  cursor: pointer;
}

.node text.root {
  font-size: 32px;
}

.node text {
  display: none;
  fill: white;
  font-weight: 200;
  text-anchor: middle;
  z-index: 1000;
  text-shadow: 1px 1px #333, -1px 1px #333, 1px -1px #333, -1px -1px #333;
}

.node.active {
  opacity: 1;
}

.node.active.selected text {
  display: block;
}

.node.active:hover text {
  display: block;
}

#filters {
  padding: 0.5em 1em;
  background-color: transparent;
  border-bottom: thin dashed #68b9fe;
  color: white;
}

#filters form {
  width: 100%;
}

#filters #filter-header {
  padding: 10px;
}

#filters #filter-relationships,
#filters #filter-nodes {
  background-color: transparent;
  display: inline-block;
  width: 45%;
  margin-left: 2%;
  overflow: auto;
  text-align: center;
  vertical-align: top;
}

#filters #filter-relationships #filter-node-header,
#filters #filter-relationships #filter-rel-header,
#filters #filter-nodes #filter-node-header,
#filters #filter-nodes #filter-rel-header {
  margin: 10px 0;
  cursor: pointer;
  background-color: transparent;
  border: none;
  border-radius: 0;
  width: 100%;
}

#filters #filter-relationships #filter-node-header h4,
#filters #filter-relationships #filter-rel-header h4,
#filters #filter-nodes #filter-node-header h4,
#filters #filter-nodes #filter-rel-header h4 {
  font-weight: 200;
  display: inline;
  color: white;
}

#filters #filter-relationships #filter-node-header:active,
#filters #filter-relationships #filter-rel-header:active,
#filters #filter-nodes #filter-node-header:active,
#filters #filter-nodes #filter-rel-header:active {
  border: none;
  box-shadow: none;
}

#filters #filter-relationships #rel-dropdown,
#filters #filter-relationships #node-dropdown,
#filters #filter-nodes #rel-dropdown,
#filters #filter-nodes #node-dropdown {
  margin: 20px 0;
  border-radius: none;
  border: none;
  background: transparent;
}

#filters #filter-relationships #rel-dropdown li,
#filters #filter-relationships #node-dropdown li,
#filters #filter-nodes #rel-dropdown li,
#filters #filter-nodes #node-dropdown li {
  padding: 5px;
}

#filters #filter-relationships #rel-dropdown li:hover,
#filters #filter-relationships #node-dropdown li:hover,
#filters #filter-nodes #rel-dropdown li:hover,
#filters #filter-nodes #node-dropdown li:hover {
  background-color: rgba(255,255,255,0.2);
}

#filters .disabled {
  color: rgba(255,255,255,0.5);
}

#filters .disabled:hover {
  color: #68b9fe;
}

.alchemy {
  position: relative;
}

.alchemy #search form {
  z-index: 2;
  display: inline;
  margin-left: 100px;
}

.alchemy #add-tag {
  width: 300px;
  display: inline-block;
}

.alchemy #tags input {
  max-width: 220px;
}

.alchemy #tags-list {
  padding: 0;
}

.alchemy #tags-list .icon-remove-sign {
  cursor: pointer;
}

.alchemy #tags-list li {
  display: inline-block;
  margin-top: 5px;
}

.alchemy #tags-list span {
  background-color: #ccc;
  color: #333;
  border-radius: 10em;
  display: inline-block;
  padding: 1px 6px;
}

.alchemy #filter-nodes label,
.alchemy #filter-relationships label {
  font-weight: normal;
  margin-right: 1em;
}

.alchemy .clear {
  clear: both;
}

.alchemy text {
  font-weight: 200;
  text-anchor: middle;
}