/*! normalize.css v3.0.1 | MIT License | git.io/normalize */

/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */

html {
  font-family: sans-serif; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove default margin.
 */

body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */

/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}

/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */

audio,
canvas,
progress,
video {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
 */

[hidden],
template {
  display: none;
}

/* Links
   ========================================================================== */

/**
 * Remove the gray background color from active links in IE 10.
 */

a {
  background: transparent;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */

a:active,
a:hover {
  outline: 0;
}

/* Text-level semantics
   ========================================================================== */

/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */

abbr[title] {
  border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */

b,
strong {
  font-weight: bold;
}

/**
 * Address styling not present in Safari and Chrome.
 */

dfn {
  font-style: italic;
}

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9.
 */

mark {
  background: #ff0;
  color: #000;
}

/**
 * Address inconsistent and variable font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove border when inside `a` element in IE 8/9/10.
 */

img {
  border: 0;
}

/**
 * Correct overflow not hidden in IE 9/10/11.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
   ========================================================================== */

/**
 * Address margin not present in IE 8/9 and Safari.
 */

figure {
  margin: 1em 40px;
}

/**
 * Address differences between Firefox and other browsers.
 */

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
}

/**
 * Contain overflow in all browsers.
 */

pre {
  overflow: auto;
}

/**
 * Address odd `em`-unit font size rendering in all browsers.
 */

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Forms
   ========================================================================== */

/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */

/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */

button,
input,
optgroup,
select,
textarea {
  color: inherit; /* 1 */
  font: inherit; /* 2 */
  margin: 0; /* 3 */
}

/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */

button {
  overflow: visible;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */

button,
select {
  text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */

button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button; /* 2 */
  cursor: pointer; /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */

button[disabled],
html input[disabled] {
  cursor: default;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */

input {
  line-height: normal;
}

/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
 *    (include `-moz` to future-proof).
 */

input[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box; /* 2 */
  box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Define consistent border, margin, and padding.
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
  border: 0; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */

textarea {
  overflow: auto;
}

/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */

optgroup {
  font-weight: bold;
}

/* Tables
   ========================================================================== */

/**
 * Remove most spacing between table cells.
 */

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

body {
  overflow: hidden;
}

* {
  letter-spacing: 0.025em;
}

.no-pointer-events {
  pointer-events: none;
}

.has-pointer-events {
  pointer-events: auto;
}

.close-button, .key .content .close-button, .custom-impulse-tooltip .close-button {
  display: inline-block;
  background: url("../images/ui/close-button.png") no-repeat;
  background-size: contain;
  width: 14px;
  height: 14px;
  cursor: pointer;
}

@-webkit-keyframes $name {
  0% {
    transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
  }
}
@-moz-keyframes $name {
  0% {
    transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
  }
}
@-o-keyframes $name {
  0% {
    transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
  }
}
@keyframes $name {
  0% {
    transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
  }
}
@font-face {
  src: url("../components/science-common/fonts/BentonSans-Medium.ttf");
  font-family: "Benton Sans";
  font-weight: 400;
  font-style: normal;
}
@font-face {
  src: url("../components/science-common/fonts/BentonSans-MediumItalic.ttf");
  font-family: "Benton Sans";
  font-weight: 400;
  font-style: italic;
}
@font-face {
  src: url("../components/science-common/fonts/BentonSans-Bold.ttf");
  font-family: "Benton Sans";
  font-weight: 700;
  font-style: bold;
}
@font-face {
  src: url("../components/science-common/fonts/BentonSans-BoldItalic.ttf");
  font-family: "Benton Sans";
  font-weight: 700;
  font-style: italic;
}
@font-face {
  src: url("../components/science-common/fonts/BentonSans-Book.ttf");
  font-family: "Benton Sans Book";
  font-weight: 400;
  font-style: normal;
}
@font-face {
  src: url("../components/science-common/fonts/BentonSans-Book.ttf");
  font-family: "Benton Sans Regular";
  font-weight: 400;
  font-style: normal;
}
@font-face {
  src: url("../components/science-common/fonts/BentonSans-BookItalic.ttf");
  font-family: "Benton Sans Book";
  font-weight: 400;
  font-style: italic;
}
@font-face {
  src: url("../components/science-common/fonts/Amplify.ttf");
  font-family: "Amplify";
  font-weight: 400;
  font-style: normal;
}
.science-popup {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 1000000;
  font: 10px "Benton Sans";
  color: #666;
  display: none;
}
.science-popup.is-open {
  display: block;
}
.science-popup .veil {
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: rgba(84, 84, 84, 0.5);
}
.science-popup .popup-content {
  position: absolute;
  top: 40%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  background-color: #f2f2f2;
  padding: 20px;
  border-radius: 5px;
}
.science-popup .popup-content .message {
  margin-bottom: 20px;
  text-align: center;
  font-size: 13px;
}
.science-popup .popup-content .buttons {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  justify-content: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  -moz-justify-content: center;
  -o-justify-content: center;
}
.science-popup .popup-content .buttons .button {
  font-size: 15px;
  font-family: "Benton Sans";
  font-weight: 400;
  text-transform: uppercase;
  color: white;
  background-size: 100%;
  width: 75px;
  height: 44px;
  box-sizing: border-box;
  padding: 12px 0 12px 15px;
  text-align: center;
  margin: 0 10px;
  cursor: pointer;
}
.science-popup .popup-content .buttons .button.button-yes {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABYCAYAAAAX4w4mAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDE4LTEwLTEwVDEyOjU2OjQ0LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOC0xMC0xMVQxMToyNTo0NC0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOC0xMC0xMVQxMToyNTo0NC0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMjE2YjkxMi02NGEwLTQ5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");
}
.science-popup .popup-content .buttons .button.button-no {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAABYCAYAAAAX4w4mAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFEGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDE4LTEwLTEwVDEyOjU2OjM4LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOC0xMC0xMVQxMToyNi0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOC0xMC0xMVQxMToyNi0wNDowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTVlODBlYi1iYmYyLTQ0YjctOTdmZS0wZGY1ZDczY2UzZGMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTk1ZTgwZWItYmJmMi00NGI3LTk3ZmUtMGRmNWQ3M2NlM2RjIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NTk1ZTgwZWItYmJmMi00NGI3LTk3ZmUtMGRmNWQ3M2NlM2RjIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1OTVlODBlYi1iYmYyLTQ0YjctOTdmZS0wZGY1ZDczY2UzZGMiIHN0RXZ0OndoZW49IjIwMTgtMTAtMTBUMTI6NTY6MzgtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7Fnay6AAADz0lEQVR4nO3cz2sTaRzH8fczE7OWeFjFf8CCl/UgC7mKdCmlQc85LqRUtIoH/xE9iD/KZhvw4CF3aSlF/4HAsiBeCqJ3UQ8G19rJ7CENnU4yzST6bZ6Ez+vUPDN9eA5vZibPlDpSWtXab8AqUAEuAL+kzxEBvgFvgS2gXm423iQPut4PrWqtCNwH1oDgJFcoU68D/AXcKzcbX+EgrIOoXgCLk1ubzICXQKXcbOz1rkwPUFTy4/6ge9fDtaq1S8C/QNg7WupEnI++82u0r3uiDNQBPocFPoSnaAdh8lAEXC7QfVA/EtXFva+HD18iAwTAuWifs9E+u8W5ZFwhsBoAy8lfOB99V1SSm6PbTMpyAMwnR85G+ye1JpkRA5qZD4BickRXKxnVgGaKejYXEwpLTCgsMaGwxITCEhMKS0woLDGhsMSEwhITCktMKCwxobDEhMISEwpLTCgsMaGwxITCEhMKS0woLDGhsMSEwhITCktMKCwxobDEhFdhuatXCJ43CJ43cIsL48+zuHA4z9UrP3GFkpdfYd1cgVIJSiXc3TVcZWn0OSpLuLtrh/PcXDFYqQzjVVhp7tbqSHG5yhLu1qrhiiQvr8KKN571jeWNKyuqQXOKPb/C2nlF/LTeNz4srsyontaJd1791DVKPl6FBRBvbo8U17FRbW6brFGG8y4syB+XovJXYdILyNILIx1O8rOi8pe3YUG+uI6cr6i84eWtMCnrtth3nqLyivdhwfC4FJV/piIsmT5TEdawHfVRd+jFnvdh5X1No7j84nVYx+5TjbFDLyfH2+2GvJufWVsRepifLC+vWHmjGvX1j5wc78Ia9TWN4vKTV2G5xYWxXtMcG9cP/CWqjM+vsFb+7BvLu/mZGdeAOcWeV2Gljbqjnvf1j9jzKqx4fQPabWi3iR8+GeubXby5TfzwyeE86xsGK5VhXKtai5MDv//3ZVJrkSn2z+kzRz57dcWS2aGwxITCEhMKS0woLDGhsMSEwhITCktMKCwxobDEhMISEwpLTCgsMaGwxITCEhMKS0woLDGhsMSEwhITCktMKCwxobDEhMISEwpLTATAXnIgzjhRJEsHlx76EgBvkyOfQm//F5t46nMYpofeB8BWcuRDeEpXLcktpttMyk4A/A1EvZF2ELJbnONjWFBgkqmD42NYYLc4Rzs4csWKgLoDaFVrj4Dbk1igzJzH5WbjTu9b4T1gZ5KrkZnwkm5L3e2GcrOxB1wDHgGdya1LplQHWAeuH7TU/z2xVa1dAm4Ay8A80PdkJgK0gXd073T1crPxOnnwfxYeMNxUNDkRAAAAAElFTkSuQmCC");
}

.science-menu {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  font: normal 14px "Benton Sans";
  z-index: 100000;
}
.science-menu.veiled .veil {
  height: 100%;
  width: 100%;
  background-color: rgba(84, 84, 84, 0.5);
  pointer-events: auto;
}
.science-menu .burger {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center center;
  cursor: pointer;
  pointer-events: auto;
  position: absolute;
  top: 20px;
  left: 20px;
  background-image: url("../components/science-menu/burger.png");
  background-size: 19px 16px;
  width: 42px;
  height: 42px;
}
.science-menu .burger:focus {
  outline: none;
}
.science-menu .menu {
  position: absolute;
  top: 0;
  left: 0;
  width: 300px;
  height: 100%;
  background-color: #f2f2f2;
  pointer-events: auto;
  -webkit-overflow-scrolling: touch;
  transform: translate3d(-300px, 0, 0);
  -webkit-transform: translate3d(-300px, 0, 0);
  -ms-transform: translate3d(-300px, 0, 0);
  -moz-transform: translate3d(-300px, 0, 0);
  -o-transform: translate3d(-300px, 0, 0);
  transition: -webkit-transform 500ms linear;
  transition: -ms-transform 500ms linear;
  transition: -moz-transform 500ms linear;
  transition: -o-transform 500ms linear;
  -webkit-transition: -webkit-transform 500ms linear;
  -ms-transition: -ms-transform 500ms linear;
  -moz-transition: -moz-transform 500ms linear;
  -o-transition: -o-transform 500ms linear;
}
.science-menu .menu.open {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
}
.science-menu .menu .header {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  justify-content: space-between;
  -webkit-justify-content: space-between;
  -ms-justify-content: space-between;
  -moz-justify-content: space-between;
  -o-justify-content: space-between;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  padding: 10px;
  height: 62px;
  box-sizing: border-box;
}
.science-menu .menu .header .app-name {
  font: 18px "Benton Sans";
  color: grey;
  text-transform: uppercase;
}
.science-menu .menu .header .close-menu {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center center;
  cursor: pointer;
  pointer-events: auto;
  width: 36px;
  height: 36px;
  border: 0;
  background-image: url("../components/science-menu/close-menu.png");
  background-size: 21px 21px;
}
.science-menu .menu .header .close-menu:focus {
  outline: none;
}
.science-menu .menu .section .title {
  height: 23px;
  line-height: 23px;
  color: #636563;
  font-size: 10px;
  padding-left: 10px;
  background-color: #efefef;
}
.science-menu .menu .section .group .title {
  background-color: #D4D3D3;
}
.science-menu .menu .section .item {
  height: 40px;
  line-height: 40px;
  padding-left: 20px;
  border-top: 1px solid #e4e3e3;
  color: grey;
  cursor: pointer;
}
.science-menu .menu .section .item:hover, .science-menu .menu .section .item.selected {
  background-color: #73b4e8;
  color: white;
}
.science-menu .menu .credits {
  padding: 30px;
  padding-bottom: 10px;
  font: bold 11px "Benton Sans Book";
  color: rgb(102, 102, 102);
  text-align: center;
}
.science-menu .menu .credits a,
.science-menu .menu .credits a:visited {
  text-decoration: none;
  color: #f37321;
}
.science-menu .menu .credits .terms {
  padding: 0 10px;
}

.loading {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  z-index: 100800;
  background-color: white;
  text-align: center;
}
.loading .loadingContainer {
  height: 70px;
  width: 100%;
  position: absolute;
  top: calc(50% - 35px);
}
.loading .amplifyText {
  font-family: "Amplify";
  color: #f2663a;
  font-size: 36px;
}
.loading .spinner {
  position: relative;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGYAAABmCAYAAAA53+RiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTdFMTVCRDI3ODFCMTFFNEEyQkU5NUE1MDMzNTA2NjkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTdFMTVCRDM3ODFCMTFFNEEyQkU5NUE1MDMzNTA2NjkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5N0UxNUJEMDc4MUIxMUU0QTJCRTk1QTUwMzM1MDY2OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5N0UxNUJEMTc4MUIxMUU0QTJCRTk1QTUwMzM1MDY2OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr5cCnEAAAZSSURBVHja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");
  background-size: 100% 100%;
  width: 16px;
  height: 16px;
  margin: 10px auto;
  background-repeat: no-repeat;
  animation: rotate_spinner 2s infinite linear;
  -webkit-animation: rotate_spinner 2s infinite linear;
  -ms-animation: rotate_spinner 2s infinite linear;
  -moz-animation: rotate_spinner 2s infinite linear;
  -o-animation: rotate_spinner 2s infinite linear;
}

.fam {
  width: 100%;
  height: 100%;
  background-color: #f2f2f2;
}
.fam .content {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 auto;
}
.fam .top-controls {
  position: absolute;
  top: 20px;
  right: 20px;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-direction: row;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  -moz-flex-direction: row;
  -o-flex-direction: row;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
}
.fam .top-controls.disabled {
  pointer-events: none;
  opacity: 0.4;
}
.fam .top-controls .friction-readout {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  font-size: 10px;
  text-transform: uppercase;
  color: #7d7d7c;
}
.fam #aria-language-toggle {
  position: fixed;
  width: 0px;
  height: 0px;
  overflow: hidden;
}
.fam .language-toggle-wrapper {
  position: fixed;
  z-index: 9999;
  top: 14px;
  left: 316px;
  font-family: "Benton Sans";
}

.fam-debug .impulse-pad {
  text-align: right;
  background-color: blue;
  padding: 1em 0;
}
.fam-debug .impulse-pad .debug-field:hover {
  background-color: inherit;
}
.fam-debug .impulse-pad .button {
  margin-right: 10px;
  margin-top: 0;
  padding: 9px;
}
.fam-debug .debug-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.stage-container {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  justify-content: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  -moz-justify-content: center;
  -o-justify-content: center;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  overflow: hidden;
}
.stage-container .stage {
  position: relative;
  width: 100%;
  height: 100%;
}
.stage-container .stage canvas {
  left: 0;
  top: 0;
  z-index: 1010;
}
.stage-container .stage .dom-stage {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1011;
  transform: translate3d(50%, 50%, 0);
  -webkit-transform: translate3d(50%, 50%, 0);
  -ms-transform: translate3d(50%, 50%, 0);
  -moz-transform: translate3d(50%, 50%, 0);
  -o-transform: translate3d(50%, 50%, 0);
}
.stage-container .stage .fam-key {
  z-index: 1012;
}

.toggle {
  width: 46px;
}
.toggle .slider {
  height: 30px;
}
.toggle .slider .slider-inner {
  height: 30px;
}
.toggle .slider progress {
  height: 21px;
}
.toggle .slider progress::-webkit-progress-bar {
  background-color: #c3c3c3;
  border-radius: 10.5px;
}
.toggle .slider progress::-webkit-progress-value {
  background: #10c7ee;
  border-radius: 10.5px;
}
.toggle .slider input {
  height: 30px;
  width: 100%;
  margin-left: 0;
  cursor: pointer;
}
.toggle .slider input::-webkit-slider-thumb {
  box-sizing: border-box;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  background-color: white;
  border: 2px solid #e6e6e6;
  position: absolute;
  top: 0;
}
.toggle.is-off input::-webkit-slider-thumb {
  left: 0;
}
.toggle.is-on input::-webkit-slider-thumb {
  right: 0;
}

.stage-item {
  background: transparent;
  position: absolute;
  z-index: 101;
}

.mode-select {
  box-sizing: border-box;
  width: 220px;
  height: 51px;
  padding: 8px 17px;
  margin-top: 7px;
  margin-left: 70px;
  position: absolute;
  top: 0;
  left: 0;
  background: transparent;
  border-radius: 5px;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  justify-content: space-between;
  -webkit-justify-content: space-between;
  -ms-justify-content: space-between;
  -moz-justify-content: space-between;
  -o-justify-content: space-between;
}
.mode-select .path {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  position: absolute;
  top: 20px;
  transform: translate(0, -50%);
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  width: 80%;
  height: 4px;
  background: rgb(230, 230, 230);
}
.mode-select .path .subpath {
  flex-grow: 1;
  -webkit-flex-grow: 1;
  -ms-flex-grow: 1;
  -moz-flex-grow: 1;
  -o-flex-grow: 1;
  height: 100%;
}
.mode-select .path .subpath.dirty {
  background: rgb(95, 95, 95);
}
.mode-select .path .subpath:first-child {
  display: none;
}
.mode-select.dark .path {
  background-color: #5f6060;
}
.mode-select.dark .subpath.dirty {
  background-color: #e8e9e9;
}
.mode-select.dark .mode {
  background-color: #5f6060;
}
.mode-select.dark .mode .label {
  color: #5f6060;
}
.mode-select.dark .mode.available, .mode-select.dark .mode.active {
  border-color: #e8e9e9;
}
.mode-select.dark .mode.available .label, .mode-select.dark .mode.active .label {
  color: #e8e9e9;
}
.mode-select.dark .mode.available {
  background-color: #a5a4a4;
}
.mode-select.dark .mode.hot .label {
  color: #e8e9e9;
}
.mode-select .mode {
  box-sizing: border-box;
  border: transparent 3px solid;
  border-radius: 50%;
  display: block;
  width: 24px;
  height: 24px;
  position: relative;
  background: rgb(230, 230, 230);
  font-size: 12px;
  font-weight: normal;
  text-transform: uppercase;
  text-align: center;
  pointer-events: none;
}
.mode-select .mode .label {
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  -moz-transform: translate(-50%, 0);
  -o-transform: translate(-50%, 0);
  position: absolute;
  display: inline-block;
  top: 25px;
  font-family: "Benton Sans Book";
  color: rgb(195, 195, 195);
}
.mode-select .mode .inner-visual {
  width: 100%;
  height: 100%;
  border-radius: 50%;
}
.mode-select .mode.available {
  border-color: rgb(95, 95, 95);
  background: rgb(230, 230, 230);
  pointer-events: auto;
  cursor: pointer;
}
.mode-select .mode.available .label {
  font-family: "Benton Sans Book";
  color: #5f5f5f;
}
.mode-select .mode.active {
  border-color: rgb(95, 95, 95);
  background: rgb(251, 153, 31);
  pointer-events: auto;
  cursor: pointer;
}
.mode-select .mode.active .label {
  color: #5f5f5f;
  font-family: "Benton Sans";
  font-weight: bold;
}
.mode-select .mode.hot {
  cursor: pointer;
  pointer-events: auto;
}
.mode-select .mode.hot .inner-visual {
  background: rgb(251, 153, 31);
  animation: mode-select-pulse 1s ease-out;
  -webkit-animation: mode-select-pulse 1s ease-out;
  -ms-animation: mode-select-pulse 1s ease-out;
  -moz-animation: mode-select-pulse 1s ease-out;
  -o-animation: mode-select-pulse 1s ease-out;
  animation-delay: 0;
  -webkit-animation-delay: 0;
  -ms-animation-delay: 0;
  -moz-animation-delay: 0;
  -o-animation-delay: 0;
  animation-direction: alternate;
  -webkit-animation-direction: alternate;
  -ms-animation-direction: alternate;
  -moz-animation-direction: alternate;
  -o-animation-direction: alternate;
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  -ms-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  -o-animation-iteration-count: infinite;
}
.mode-select .mode.hot .label {
  font-family: "Benton Sans Book";
  color: #5f5f5f;
}

@-webkit-keyframes $name {
  0%, 65% {
    filter: blur(9px);
    -webkit-filter: blur(9px);
    -ms-filter: blur(9px);
    -moz-filter: blur(9px);
    -o-filter: blur(9px);
    transform: scale(0.1, 0.1);
    -webkit-transform: scale(0.1, 0.1);
    -ms-transform: scale(0.1, 0.1);
    -moz-transform: scale(0.1, 0.1);
    -o-transform: scale(0.1, 0.1);
    opacity: 0.1;
  }
  100% {
    filter: blur(1px);
    -webkit-filter: blur(1px);
    -ms-filter: blur(1px);
    -moz-filter: blur(1px);
    -o-filter: blur(1px);
    transform: scale(1, 1);
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    -moz-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    opacity: 1;
  }
}
@-moz-keyframes $name {
  0%, 65% {
    filter: blur(9px);
    -webkit-filter: blur(9px);
    -ms-filter: blur(9px);
    -moz-filter: blur(9px);
    -o-filter: blur(9px);
    transform: scale(0.1, 0.1);
    -webkit-transform: scale(0.1, 0.1);
    -ms-transform: scale(0.1, 0.1);
    -moz-transform: scale(0.1, 0.1);
    -o-transform: scale(0.1, 0.1);
    opacity: 0.1;
  }
  100% {
    filter: blur(1px);
    -webkit-filter: blur(1px);
    -ms-filter: blur(1px);
    -moz-filter: blur(1px);
    -o-filter: blur(1px);
    transform: scale(1, 1);
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    -moz-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    opacity: 1;
  }
}
@-o-keyframes $name {
  0%, 65% {
    filter: blur(9px);
    -webkit-filter: blur(9px);
    -ms-filter: blur(9px);
    -moz-filter: blur(9px);
    -o-filter: blur(9px);
    transform: scale(0.1, 0.1);
    -webkit-transform: scale(0.1, 0.1);
    -ms-transform: scale(0.1, 0.1);
    -moz-transform: scale(0.1, 0.1);
    -o-transform: scale(0.1, 0.1);
    opacity: 0.1;
  }
  100% {
    filter: blur(1px);
    -webkit-filter: blur(1px);
    -ms-filter: blur(1px);
    -moz-filter: blur(1px);
    -o-filter: blur(1px);
    transform: scale(1, 1);
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    -moz-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    opacity: 1;
  }
}
@keyframes $name {
  0%, 65% {
    filter: blur(9px);
    -webkit-filter: blur(9px);
    -ms-filter: blur(9px);
    -moz-filter: blur(9px);
    -o-filter: blur(9px);
    transform: scale(0.1, 0.1);
    -webkit-transform: scale(0.1, 0.1);
    -ms-transform: scale(0.1, 0.1);
    -moz-transform: scale(0.1, 0.1);
    -o-transform: scale(0.1, 0.1);
    opacity: 0.1;
  }
  100% {
    filter: blur(1px);
    -webkit-filter: blur(1px);
    -ms-filter: blur(1px);
    -moz-filter: blur(1px);
    -o-filter: blur(1px);
    transform: scale(1, 1);
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    -moz-transform: scale(1, 1);
    -o-transform: scale(1, 1);
    opacity: 1;
  }
}
/* End: Mode Select */
.build-mode {
  width: 100%;
  height: 100%;
}
.build-mode .stage-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.build-mode .delete-button,
.build-mode .clear-all {
  display: inline-block;
  cursor: pointer;
  font: 12px "Benton Sans";
  line-height: 18px;
  text-transform: uppercase;
  color: #787878;
  padding-left: 20px;
  background: url("../images/ui/delete-rebuild@2x.png") left top no-repeat;
  background-size: 12px 16px;
  position: relative;
  left: 50%;
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  -moz-transform: translate(-50%, 0);
  -o-transform: translate(-50%, 0);
}
.build-mode .help-text {
  width: 90%;
  height: 64px;
  position: absolute;
  top: 30px;
  left: 50%;
  transform: translate(-50%, 50%);
  -webkit-transform: translate(-50%, 50%);
  -ms-transform: translate(-50%, 50%);
  -moz-transform: translate(-50%, 50%);
  -o-transform: translate(-50%, 50%);
  z-index: 1000;
  font: 16px "Benton Sans Book";
  color: #333333;
  text-align: center;
  white-space: normal;
}

.config-window {
  background-color: #f2f2f2;
  border: 1px solid #cccccc;
  border-radius: 5px;
  box-sizing: border-box;
  width: 258px;
  padding: 15px;
  position: absolute;
  display: none;
  z-index: 1000;
  font: 13px "Benton Sans";
  color: #666;
  cursor: default;
}
.config-window.open {
  display: block;
}
.config-window .section-label {
  color: #a5a5a5;
  margin-bottom: 11px;
}
.config-window .setting {
  margin-bottom: 23px;
}
.config-window .setting .label-and-value {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  justify-content: space-between;
  -webkit-justify-content: space-between;
  -ms-justify-content: space-between;
  -moz-justify-content: space-between;
  -o-justify-content: space-between;
  align-items: flex-end;
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  -moz-align-items: flex-end;
  -o-align-items: flex-end;
  margin-bottom: 11px;
}
.config-window .setting .label-and-value .value {
  position: relative;
  top: 1px;
  font: 16px "Benton Sans Book";
}
.config-window .nubbin {
  width: 11px;
  height: 18px;
  position: absolute;
  left: -11px;
  background: url("../images/ui/nubbin.png") center left no-repeat;
  background-size: 11px 18px;
  margin-top: -11px;
}
.config-window .nubbin.right {
  right: -11px;
  left: auto;
  transform: scale(-1, 1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  -moz-transform: scale(-1, 1);
  -o-transform: scale(-1, 1);
}

.target-config.with-no-filters .section-label {
  text-align: center;
  line-height: 1.5em;
}

.run-mode .stage-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.run-mode .top-controls *.disabled {
  opacity: 0.4 !important;
  pointer-events: none !important;
  cursor: default !important;
}
.run-mode .top-controls .prepare, .run-mode .top-controls .apply {
  width: 122px;
  box-sizing: border-box;
  padding: 6px 12px;
  margin: 0 20px;
  border-radius: 16px;
  font-size: 11px;
  color: white;
  text-transform: uppercase;
  text-align: center;
  cursor: pointer;
}
.run-mode .top-controls .prepare {
  background: #787878;
}
.run-mode .top-controls .apply {
  background: #76b3e2;
}
.run-mode .top-controls .play, .run-mode .top-controls .pause, .run-mode .top-controls .reset-time {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center center;
  cursor: pointer;
  pointer-events: auto;
  width: 26px;
  height: 26px;
  margin-right: 20px;
}
.run-mode .top-controls .play:focus, .run-mode .top-controls .pause:focus, .run-mode .top-controls .reset-time:focus {
  outline: none;
}
.run-mode .top-controls .play:last-child, .run-mode .top-controls .pause:last-child, .run-mode .top-controls .reset-time:last-child {
  margin-right: 0;
}
.run-mode .top-controls .play {
  background-image: url(../images/ui/play@2x.png);
  background-size: 11px 13.5px;
}
.run-mode .top-controls .pause {
  background-image: url(../images/ui/pause@2x.png);
  background-size: 9px 13.5px;
}
.run-mode .top-controls .reset-time {
  background-image: url(../images/ui/reset-time@2x.png);
  background-size: 17px 15.5px;
}
.run-mode .ball-table-toggle {
  position: absolute;
  left: 15px;
  bottom: 15px;
  display: inline-block;
  width: 36px;
  height: 36px;
  background: url(../components/run-mode/images/ball-table-toggle@2x.png) no-repeat;
  background-position: center;
  background-size: contain;
  cursor: pointer;
}
.run-mode .custom-impulse-tooltip.prepare-force-tooltip {
  right: 67px;
}
.run-mode .custom-impulse-tooltip.prepare-force-tooltip .nubbin {
  left: 50%;
}
.run-mode .custom-impulse-tooltip.run-reset-tooltip {
  right: 6px;
}
.run-mode .custom-impulse-tooltip.run-reset-tooltip .nubbin {
  left: 90%;
}
.run-mode .custom-impulse-tooltip.play-tooltip {
  width: 141px;
  right: 8px;
  color: white;
  background-color: rgb(121, 121, 121);
  border: none;
}
.run-mode .custom-impulse-tooltip.play-tooltip .nubbin:after, .run-mode .custom-impulse-tooltip.play-tooltip .nubbin:before {
  border-bottom-color: rgb(121, 121, 121);
}

.analyze-mode {
  position: relative;
  width: 100%;
  height: 100%;
}
.analyze-mode .analyze-ui {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  position: relative;
  top: 78px;
  width: 100%;
  height: calc(100% - 78px);
  padding: 0 20px;
  box-sizing: border-box;
}
.analyze-mode .analyze-ui .stage-and-scrubber {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-direction: column;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  -moz-flex-direction: column;
  -o-flex-direction: column;
  flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -o-flex: 1;
  width: calc(100% - 60px);
  margin-right: 20px;
  overflow: hidden;
}
.analyze-mode .analyze-ui .stage-and-scrubber .stage-container {
  flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -o-flex: 1;
  width: 100%;
  height: 100%;
}
.analyze-mode .analyze-ui .stage-and-scrubber .stage-container .stage {
  background-color: #dddddd;
  border-radius: 5px;
  overflow: hidden;
}
.analyze-mode .analyze-ui .sidebar {
  height: 100%;
  min-width: 236px;
}

.custom-impulse {
  background-color: #f2f2f2;
  border: 1px solid #cccccc;
  border-radius: 5px;
  box-sizing: border-box;
  position: absolute;
  right: 20px;
  bottom: 20px;
  width: 242px;
  height: 185px;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  background: #f2f2f2;
  border: #ccc 1px solid;
  overflow: hidden;
}
.custom-impulse.disabled {
  pointer-events: none;
  opacity: 0.4;
}
.custom-impulse .balls {
  background: #c8c8c8;
  width: 18.59%;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-direction: column;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  -moz-flex-direction: column;
  -o-flex-direction: column;
  flex: 1 1 18.59%;
  -webkit-flex: 1 1 18.59%;
  -ms-flex: 1 1 18.59%;
  -moz-flex: 1 1 18.59%;
  -o-flex: 1 1 18.59%;
  align-items: stretch;
  -webkit-align-items: stretch;
  -ms-align-items: stretch;
  -moz-align-items: stretch;
  -o-align-items: stretch;
  align-content: stretch;
  -webkit-align-content: stretch;
  -ms-align-content: stretch;
  -moz-align-content: stretch;
  -o-align-content: stretch;
}
.custom-impulse .balls .ball {
  flex: 1 1 25%;
  -webkit-flex: 1 1 25%;
  -ms-flex: 1 1 25%;
  -moz-flex: 1 1 25%;
  -o-flex: 1 1 25%;
  position: relative;
  background: #e0e0e0 no-repeat;
  background-position: 48% 50%;
  border-right: #ccc 1px solid;
  cursor: pointer;
}
.custom-impulse .balls .ball.selected {
  background-color: #f2f2f2;
  border-right: none;
}
.custom-impulse .balls .ball.disabled {
  opacity: 0.4;
  pointer-events: none;
}
.custom-impulse .balls .ball.unused {
  background: #ccc;
  cursor: default;
}
.custom-impulse .balls .ball.ball-label-A {
  background-image: url(../images/ui/ball-labels/A.png);
  background-size: 50% 50%;
}
.custom-impulse .balls .ball.ball-label-B {
  background-image: url(../images/ui/ball-labels/B.png);
  background-size: 50% 50%;
}
.custom-impulse .balls .ball.ball-label-C {
  background-image: url(../images/ui/ball-labels/C.png);
  background-size: 50% 50%;
}
.custom-impulse .balls .ball.ball-label-D {
  background-image: url(../images/ui/ball-labels/D.png);
  background-size: 50% 50%;
}
.custom-impulse .balls .ball .label {
  color: white;
  font-size: 12px;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  left: 50%;
  top: 50%;
}
.custom-impulse .balls .ball:first-child {
  border-radius: 5px 0 0 0;
}
.custom-impulse .balls .ball:last-child {
  border-radius: 0 0 0 5px;
}
.custom-impulse .balls .ball + .ball {
  border-top: #ccc 1px solid;
}
.custom-impulse .controls {
  width: 81.41%;
  flex: 0 0 81.41%;
  -webkit-flex: 0 0 81.41%;
  -ms-flex: 0 0 81.41%;
  -moz-flex: 0 0 81.41%;
  -o-flex: 0 0 81.41%;
  position: relative;
  box-sizing: border-box;
  padding: 15px;
}
.custom-impulse .controls .title {
  position: absolute;
  top: 9%;
  left: 8%;
  font-size: 13px;
  color: #a5a5a5;
}
.custom-impulse .controls .paddles {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  width: 50px;
  height: 49px;
  background: url(../images/custom-impulse/bonker@2x.png) no-repeat;
  background-position: center;
  background-size: contain;
}
.custom-impulse .controls .paddles .paddle {
  position: absolute;
  background: bottom center no-repeat;
  background-size: 100%;
  width: 50px;
  height: 49px;
  cursor: pointer;
  background-image: url(../images/custom-impulse/paddle@2x.png);
}
.custom-impulse .controls .paddles .paddle:active {
  background-image: url(../images/custom-impulse/paddle-on@2x.png);
}
.custom-impulse .controls .paddles .paddle.disabled {
  opacity: 0.5;
  pointer-events: none;
}
.custom-impulse .controls .paddles .paddle.up {
  bottom: 100%;
}
.custom-impulse .controls .paddles .paddle.down {
  top: calc(100% - 0px);
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
}
.custom-impulse .controls .paddles .paddle.left {
  right: calc(100% - 1px);
  transform: rotate(-90deg);
  -webkit-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
}
.custom-impulse .controls .paddles .paddle.right {
  left: calc(100% - 1px);
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -o-transform: rotate(90deg);
}

.custom-impulse-tooltip {
  background-color: #f2f2f2;
  border: 1px solid #cccccc;
  border-radius: 5px;
  box-sizing: border-box;
  position: absolute;
  right: 67px;
  top: 66px;
  width: 210px;
  padding: 15px;
  cursor: pointer;
  font-size: 11px;
  color: #959595;
  font-family: "Benton Sans";
}
.custom-impulse-tooltip em {
  color: #48a0e7;
  font-size: 11px;
  font-style: normal;
}
.custom-impulse-tooltip .close-button, .custom-impulse-tooltip .key .content .close-button, .key .content .custom-impulse-tooltip .close-button {
  position: absolute;
  right: 5px;
  top: 5px;
}
.custom-impulse-tooltip .nubbin {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  -moz-transform: translate(-50%, 0);
  -o-transform: translate(-50%, 0);
  right: 0;
  width: 0;
  height: 0;
}
.custom-impulse-tooltip .nubbin:after, .custom-impulse-tooltip .nubbin:before {
  bottom: 100%;
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none;
}
.custom-impulse-tooltip .nubbin:after {
  border-color: rgba(136, 183, 213, 0);
  border-bottom-color: #f1f1f1;
  border-width: 12px;
  margin-left: -12px;
}
.custom-impulse-tooltip .nubbin:before {
  border-color: rgba(194, 225, 245, 0);
  border-bottom-color: #cccccc;
  border-width: 13px;
  margin-left: -13px;
}

.key {
  position: absolute;
  left: 20px;
  bottom: 20px;
}
.key .open-button {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: url(../images/ui/key/open-button.png) no-repeat;
  background-position: center;
  background-size: contain;
  cursor: pointer;
  background-color: white;
  border: 2px solid #e6e6e6;
  transform: scale(1);
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  -moz-transform: scale(1);
  -o-transform: scale(1);
  transition-property: -webkit-transform opacity;
  transition-property: -ms-transform opacity;
  transition-property: -moz-transform opacity;
  transition-property: -o-transform opacity;
  -webkit-transition-property: -webkit-transform opacity;
  -ms-transition-property: -ms-transform opacity;
  -moz-transition-property: -moz-transform opacity;
  -o-transition-property: -o-transform opacity;
  transition-duration: 400ms;
  -webkit-transition-duration: 400ms;
  -ms-transition-duration: 400ms;
  -moz-transition-duration: 400ms;
  -o-transition-duration: 400ms;
  opacity: 1;
}
.key .content {
  background-color: #f2f2f2;
  border: 1px solid #cccccc;
  border-radius: 5px;
  box-sizing: border-box;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-direction: row;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  -moz-flex-direction: row;
  -o-flex-direction: row;
  transform: scale(0);
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  -moz-transform: scale(0);
  -o-transform: scale(0);
  transform-origin: 10px 75px;
  -webkit-transform-origin: 10px 75px;
  -ms-transform-origin: 10px 75px;
  -moz-transform-origin: 10px 75px;
  -o-transform-origin: 10px 75px;
  transition-property: -webkit-transform border-radius opacity;
  transition-property: -ms-transform border-radius opacity;
  transition-property: -moz-transform border-radius opacity;
  transition-property: -o-transform border-radius opacity;
  -webkit-transition-property: -webkit-transform border-radius opacity;
  -ms-transition-property: -ms-transform border-radius opacity;
  -moz-transition-property: -moz-transform border-radius opacity;
  -o-transition-property: -o-transform border-radius opacity;
  transition-duration: 400ms;
  -webkit-transition-duration: 400ms;
  -ms-transition-duration: 400ms;
  -moz-transition-duration: 400ms;
  -o-transition-duration: 400ms;
  padding: 5px;
  border-radius: 22px;
  opacity: 0;
}
.key .content .key-entry {
  position: relative;
  margin: 10px;
  font: 9px "Benton Sans";
  color: #969696;
  text-transform: uppercase;
  text-align: center;
  padding-top: 35px;
}
.key.is-open .open-button {
  transform: scale(0);
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  -moz-transform: scale(0);
  -o-transform: scale(0);
  opacity: 0;
}
.key.is-open .content {
  transform: scale(1);
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  -moz-transform: scale(1);
  -o-transform: scale(1);
  border-radius: 5px;
  opacity: 1;
}

.fam-key {
  line-height: 1.5em;
}
.fam-key .ball-a {
  background: url("../images/ui/key/ball-a.png") top center no-repeat;
}
.fam-key .ball-b {
  background: url("../images/ui/key/ball-b.png") top center no-repeat;
}
.fam-key .ball-c {
  background: url("../images/ui/key/ball-c.png") top center no-repeat;
}
.fam-key .ball-d {
  background: url("../images/ui/key/ball-d.png") top center no-repeat;
}
.fam-key .ball-e {
  background: url("../images/ui/key/ball-e.png") top center no-repeat;
}
.fam-key .ball-f {
  background: url("../images/ui/key/ball-f.png") top center no-repeat;
}
.fam-key .friction-on {
  background: url("../images/ui/key/friction-on.png") top center no-repeat;
}
.fam-key .friction-off {
  background: url("../images/ui/key/friction-off.png") top center no-repeat;
}
.fam-key .target-all {
  background: url("../images/ui/key/target-all.png") top center no-repeat;
}
.fam-key .target-x {
  background: url("../images/ui/key/target-x.png") top center no-repeat;
}
.fam-key .target-y {
  background: url("../images/ui/key/target-y.png") top center no-repeat;
}
.fam-key .ball,
.fam-key .friction {
  background-size: 20px 20px;
}
.fam-key .target {
  background-size: 30px 30px;
}
.fam-key .label-color {
  position: absolute;
  top: 0px;
  width: 100%;
  height: 100%;
}
.fam-key .ball-label-A .label-color {
  background: url("../images/ui/key/ball-label-A.png") top center no-repeat;
  background-size: 20px 20px;
}
.fam-key .ball-label-B .label-color {
  background: url("../images/ui/key/ball-label-B.png") top center no-repeat;
  background-size: 20px 20px;
}
.fam-key .ball-label-C .label-color {
  background: url("../images/ui/key/ball-label-C.png") top center no-repeat;
  background-size: 20px 20px;
}
.fam-key .ball-label-D .label-color {
  background: url("../images/ui/key/ball-label-D.png") top center no-repeat;
  background-size: 20px 20px;
}

.ball-table {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-direction: column;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  -moz-flex-direction: column;
  -o-flex-direction: column;
  position: relative;
  top: -10px;
  font: 11px "Benton Sans";
}
.ball-table .entry {
  margin-bottom: 10px;
}
.ball-table .entry > .label {
  font-size: 13px;
  font-weight: bold;
  margin-left: 27px;
  margin-bottom: 6px;
  height: 20px;
  color: #6c6b6b;
}
.ball-table table {
  border-collapse: separate;
  border-spacing: 2px;
  text-align: center;
}
.ball-table table th {
  background-color: #e6e6e6;
  color: #6c6b6b;
  height: 17px;
  font-size: 8px;
  text-transform: uppercase;
}
.ball-table table td {
  height: 22px;
  color: #606162;
}
.ball-table table td:nth-child(1) {
  width: 101px;
  text-align: left;
}
.ball-table table td:nth-child(2) {
  width: 35px;
}
.ball-table table td:nth-child(3),
.ball-table table td:nth-child(4) {
  width: 50px;
}
.ball-table table .label {
  color: #a5a5a5;
}
.ball-table table .hl {
  background-color: white;
}
.ball-table table.ke {
  margin-top: 3px;
}
.ball-table table.ke td:nth-child(1) {
  width: 128px;
  padding-right: 2px;
}
.ball-table table.ke td:nth-child(2) {
  width: 50px;
  padding-left: 2px;
  border: 1px solid #ffdf5e;
}
.ball-table table.ke .label {
  text-align: right;
}
.ball-table .icon {
  position: absolute;
  left: 0;
  width: 20px;
  height: 20px;
}
.ball-table .entry.is-out-of-bounds .icon {
  opacity: 0.25;
}
.ball-table .entry.ball-a .icon {
  background: url("../images/sprite-sheet/build/ball-a.png") no-repeat center left;
  background-size: 20px 20px;
}
.ball-table .entry.ball-b .icon {
  background: url("../images/sprite-sheet/build/ball-b.png") no-repeat center left;
  background-size: 20px 20px;
}
.ball-table .entry.ball-c .icon {
  background: url("../images/sprite-sheet/build/ball-c.png") no-repeat center left;
  background-size: 20px 20px;
}
.ball-table .entry.ball-d .icon {
  background: url("../images/sprite-sheet/build/ball-d.png") no-repeat center left;
  background-size: 20px 20px;
}
.ball-table .entry.ball-e .icon {
  background: url("../images/sprite-sheet/build/ball-e.png") no-repeat center left;
  background-size: 20px 20px;
}
.ball-table .entry.ball-f .icon {
  background: url("../images/sprite-sheet/build/ball-f.png") no-repeat center left;
  background-size: 20px 20px;
}
.ball-table .label-color {
  width: 100%;
  height: 100%;
}
.ball-table .ball-label-A .label-color {
  background: url("../images/ui/key/ball-label-A.png") top center no-repeat;
  background-size: 20px 20px;
}
.ball-table .ball-label-B .label-color {
  background: url("../images/ui/key/ball-label-B.png") top center no-repeat;
  background-size: 20px 20px;
}
.ball-table .ball-label-C .label-color {
  background: url("../images/ui/key/ball-label-C.png") top center no-repeat;
  background-size: 20px 20px;
}
.ball-table .ball-label-D .label-color {
  background: url("../images/ui/key/ball-label-D.png") top center no-repeat;
  background-size: 20px 20px;
}

.slider {
  position: relative;
}
.slider .slider-inner {
  position: relative;
  height: 23px;
}
.slider progress,
.slider input {
  width: 100%;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  -webkit-transform: translate3d(0, -50%, 0);
  -ms-transform: translate3d(0, -50%, 0);
  -moz-transform: translate3d(0, -50%, 0);
  -o-transform: translate3d(0, -50%, 0);
}
.slider progress {
  -webkit-appearance: none;
  height: 10px;
}
.slider progress::-webkit-progress-bar {
  box-sizing: border-box;
  background-color: #e4e3e3;
  border-radius: 5px;
}
.slider progress::-webkit-progress-value {
  background-color: rgb(115, 180, 232);
  border-radius: 5px;
}
.slider input {
  -webkit-appearance: none;
  background-color: transparent;
  width: calc(100% + 23px);
  height: 23px;
  margin-left: -11.5px;
}
.slider input:focus {
  outline: none;
}
.slider input::-webkit-slider-thumb {
  -webkit-appearance: none;
  box-sizing: border-box;
  height: 23px;
  width: 23px;
  border-radius: 11.5px;
  border: 3px solid #467193;
  background: rgb(115, 180, 232);
  cursor: pointer;
}
.slider input::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  background: transparent;
}
.slider .labels {
  width: 100%;
  height: 1em;
  margin-top: 8px;
  font: 9px "Benton Sans";
  text-transform: uppercase;
  color: #787878;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-flow: row nowrap;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  -moz-flex-flow: row nowrap;
  -o-flex-flow: row nowrap;
  justify-content: space-between;
  -webkit-justify-content: space-between;
  -ms-justify-content: space-between;
  -moz-justify-content: space-between;
  -o-justify-content: space-between;
}
.slider .labels label {
  margin: 0;
}
.slider .labels label span {
  position: absolute;
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  -moz-transform: translate(-50%, 0);
  -o-transform: translate(-50%, 0);
}

.centered-slider {
  position: relative;
}
.centered-slider .centered-slider-inner {
  position: relative;
  height: 26px;
}
.centered-slider input {
  width: 100%;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  -webkit-transform: translate3d(0, -50%, 0);
  -ms-transform: translate3d(0, -50%, 0);
  -moz-transform: translate3d(0, -50%, 0);
  -o-transform: translate3d(0, -50%, 0);
}
.centered-slider .progress {
  position: absolute;
  top: 50%;
  width: 100%;
  height: 12px;
  background-color: #e4e3e3;
  border-radius: 12px;
  border: #ddd 1px solid;
  overflow: hidden;
  transform: translate(0, -50%);
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
}
.centered-slider .progress .fill {
  position: absolute;
  height: 100%;
  left: 50%;
  background-color: rgb(115, 180, 232);
}
.centered-slider input {
  -webkit-appearance: none;
  background-color: transparent;
  width: calc(100% + 26px);
  margin-left: -13px;
}
.centered-slider input:focus {
  outline: none;
}
.centered-slider input::-webkit-slider-thumb {
  -webkit-appearance: none;
  box-sizing: border-box;
  height: 26px;
  width: 26px;
  border-radius: 13px;
  border: 3px solid #467193;
  background: rgb(115, 180, 232);
  cursor: pointer;
}
.centered-slider input::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  background: transparent;
}
.centered-slider .labels {
  width: 100%;
  height: 1em;
  margin-top: 8px;
  font: 9px "Benton Sans";
  text-transform: uppercase;
  color: #787878;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-flow: row nowrap;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  -moz-flex-flow: row nowrap;
  -o-flex-flow: row nowrap;
  justify-content: space-between;
  -webkit-justify-content: space-between;
  -ms-justify-content: space-between;
  -moz-justify-content: space-between;
  -o-justify-content: space-between;
}
.centered-slider .labels label {
  margin: 0;
}
.centered-slider .labels label span {
  position: absolute;
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  -moz-transform: translate(-50%, 0);
  -o-transform: translate(-50%, 0);
}

.scrubber-container {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  height: 117px;
  width: 100%;
}
.scrubber-container .play, .scrubber-container .pause, .scrubber-container .replay {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center center;
  cursor: pointer;
  pointer-events: auto;
  width: 26px;
  height: 26px;
  margin-right: 30px;
  background-position: center;
}
.scrubber-container .play:focus, .scrubber-container .pause:focus, .scrubber-container .replay:focus {
  outline: none;
}
.scrubber-container .play.disabled, .scrubber-container .pause.disabled, .scrubber-container .replay.disabled {
  opacity: 0.5;
  pointer-events: none;
}
.scrubber-container .play {
  background-image: url(../images/scrubber/play.png);
  background-size: 50%;
}
.scrubber-container .pause {
  background-image: url(../images/scrubber/pause.png);
  background-size: 40%;
}
.scrubber-container .replay {
  background-image: url(../images/scrubber/replay.png);
  background-size: 80%;
}
.scrubber-container .scrubber {
  flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -o-flex: 1;
  display: inline-block;
  padding: 0.75em;
  position: relative;
  height: 24px;
}
.scrubber-container .scrubber .current-value {
  width: 100%;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  -webkit-transform: translate3d(0, -50%, 0);
  -ms-transform: translate3d(0, -50%, 0);
  -moz-transform: translate3d(0, -50%, 0);
  -o-transform: translate3d(0, -50%, 0);
}
.scrubber-container .scrubber .current-value {
  position: relative;
  height: 100%;
}
.scrubber-container .scrubber .current-value .label {
  position: absolute;
  top: -24px;
  transform: translate3d(-50%, 0, 0);
  -webkit-transform: translate3d(-50%, 0, 0);
  -ms-transform: translate3d(-50%, 0, 0);
  -moz-transform: translate3d(-50%, 0, 0);
  -o-transform: translate3d(-50%, 0, 0);
  /*font-size: 14px;*/
  font-weight: bold;
  color: #737373;
}
.scrubber-container .scrubber .slider progress::-webkit-progress-bar {
  background-color: rgb(231, 231, 231);
  border: none;
  height: 4px;
}
.scrubber-container .scrubber .slider progress::-webkit-progress-value {
  background-color: rbga(118, 181, 230, 1);
  border: none;
}
.scrubber-container .scrubber .slider input::-webkit-slider-thumb {
  background: rbga(118, 181, 230, 1);
  border: 3px solid rgb(72, 114, 146);
  margin-top: -7px;
}
.scrubber-container .scrubber .scrubber-markers {
  width: 100%;
  display: inline-block;
  position: absolute;
  top: 20px;
  left: 0;
}
.scrubber-container .scrubber .scrubber-markers .scrubber-marker-slot {
  position: absolute;
  text-align: center;
}
.scrubber-container .scrubber .scrubber-markers .scrubber-marker-slot:before {
  width: 1px;
  height: 6px;
  background-color: #999;
  content: "";
  display: block;
  margin: 0 auto;
}
.scrubber-container .scrubber .scrubber-markers .scrubber-marker-slot .marker {
  display: block;
  width: 4px;
  height: 4px;
  margin-top: 3px;
  border-radius: 4px;
}
.scrubber-container .scrubber .scrubber-markers .scrubber-marker-slot .label {
  transform: translate(-50%, 0);
  -webkit-transform: translate(-50%, 0);
  -ms-transform: translate(-50%, 0);
  -moz-transform: translate(-50%, 0);
  -o-transform: translate(-50%, 0);
  position: absolute;
  top: 7px;
  left: 0;
  font-size: 8px;
  font-family: "Benton Sans";
  font-weight: bold;
  color: #999999;
  text-transform: uppercase;
}

.render-filters {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  font: 13px "Benton Sans";
  color: #787878;
  white-space: nowrap;
}
.render-filters .filter {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  margin-right: 20px;
}
.render-filters .filter:last-child {
  margin-right: 0;
}
.render-filters .filter:last-child {
  border: none;
}
.render-filters .filter label {
  margin-right: 11px;
}
.render-filters .filter .toggle {
  display: inline-block;
}
.render-filters .filter.velocity .toggle .slider progress::-webkit-progress-value {
  background-color: #10c7ee;
}
.render-filters .filter.velocity .toggle .slider input {
  height: 30px;
}
.render-filters .filter.velocity .toggle .slider input::-webkit-slider-thumb {
  width: 30px;
  height: 30px;
  border-radius: 15px;
}
.render-filters .filter.force .toggle .slider progress::-webkit-progress-value {
  background-color: #ff00a2;
}
.render-filters .filter.force .toggle .slider input {
  height: 30px;
}
.render-filters .filter.force .toggle .slider input::-webkit-slider-thumb {
  width: 30px;
  height: 30px;
  border-radius: 15px;
}

.toolbar {
  position: absolute;
  bottom: 0;
  margin: 20px;
  padding: 20px 30px;
  height: 165px;
  z-index: 1020;
  pointer-events: auto;
  font-family: "Benton Sans";
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  justify-content: space-around;
  -webkit-justify-content: space-around;
  -ms-justify-content: space-around;
  -moz-justify-content: space-around;
  -o-justify-content: space-around;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  background-color: #f2f2f2;
  border: 1px solid #cccccc;
  border-radius: 5px;
  box-sizing: border-box;
}
.toolbar section {
  position: relative;
  height: 100%;
  color: #a5a5a5;
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-direction: column;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  -moz-flex-direction: column;
  -o-flex-direction: column;
  justify-content: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  -moz-justify-content: center;
  -o-justify-content: center;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
}
.toolbar section .heading {
  margin: 0;
  font: 13px "Benton Sans";
}
.toolbar section .items {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -o-flex: 1;
}
.toolbar section .items .toolbar-item-container {
  position: relative;
}
.toolbar section .items .toolbar-item-container .slot {
  position: absolute;
  width: 100%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.5;
}
.toolbar section .items .toolbar-item-container .toolbar-item {
  position: relative;
  border-radius: 50%;
  background-size: contain;
  pointer-events: none;
}
.toolbar section .items .toolbar-item-container.free .toolbar-item {
  pointer-events: auto;
  cursor: pointer;
}
.toolbar section .items .toolbar-item-container.is-dragging .toolbar-item {
  z-index: 1000;
}

.toolbar.left {
  left: 0;
  width: 800px;
}
.toolbar.left .ball-a .slot,
.toolbar.left .ball-a.free .toolbar-item {
  background-image: url("../images/sprite-sheet/build/ball-a.png");
}
.toolbar.left .ball-b .slot,
.toolbar.left .ball-b.free .toolbar-item {
  background-image: url("../images/sprite-sheet/build/ball-b.png");
}
.toolbar.left .ball-c .slot,
.toolbar.left .ball-c.free .toolbar-item {
  background-image: url("../images/sprite-sheet/build/ball-c.png");
}
.toolbar.left .ball-d .slot,
.toolbar.left .ball-d.free .toolbar-item {
  background-image: url("../images/sprite-sheet/build/ball-d.png");
}
.toolbar.left .ball-e .slot,
.toolbar.left .ball-e.free .toolbar-item {
  background-image: url("../images/sprite-sheet/build/ball-e.png");
}
.toolbar.left .ball-f .slot,
.toolbar.left .ball-f.free .toolbar-item {
  background-image: url("../images/sprite-sheet/build/ball-f.png");
}
.toolbar.left .target-all .slot,
.toolbar.left .target-all.free .toolbar-item {
  background-image: url("../images/sprite-sheet/targets/build/all/0.png");
}
.toolbar.left .target-x .slot,
.toolbar.left .target-x.free .toolbar-item {
  background-image: url("../images/sprite-sheet/targets/build/x/0.png");
}
.toolbar.left .target-y .slot,
.toolbar.left .target-y.free .toolbar-item {
  background-image: url("../images/sprite-sheet/targets/build/y/0.png");
}
.toolbar.left .balls {
  margin: 0 -11px;
}
.toolbar.left .balls .items {
  position: relative;
  top: 1em;
}
.toolbar.left .balls .ball {
  margin: 0 11px;
}
.toolbar.left .balls .mass {
  margin-top: 7px;
}
.toolbar.left .divider {
  background: #d5d4d4;
  width: 2px;
  height: 80px;
  margin: 0 22px;
}
.toolbar.left .targets {
  margin: 0 -13px;
}
.toolbar.left .targets .target {
  margin: 0 13px;
}
.toolbar.left .labels {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  width: 100%;
  text-transform: uppercase;
}
.toolbar.left .labels .label {
  flex: 1;
}
.toolbar.left .items,
.toolbar.left .labels {
  font: 9px "Benton Sans";
  font-weight: bold;
  text-align: center;
}

.toolbar.right {
  right: 0;
  width: 165px;
}
.toolbar.right .toggle {
  margin-top: 5px;
}
.toolbar.right .toggle .slider progress::-webkit-progress-value {
  background-color: #73b4e8;
}
.toolbar.right .toggle .slider input {
  height: 21px;
}
.toolbar.right .toggle .slider input::-webkit-slider-thumb {
  width: 21px;
  height: 21px;
  border-radius: 10.5px;
}
.toolbar.right .toggle input {
  width: 100%;
}
.toolbar.right .toggle input::-webkit-slider-thumb {
  border-color: #b9b9b9;
}
.toolbar.right .toggle .switch-label {
  font: 8px "Benton Sans";
  color: white;
  text-transform: uppercase;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  -webkit-transform: translate3d(0, -50%, 0);
  -ms-transform: translate3d(0, -50%, 0);
  -moz-transform: translate3d(0, -50%, 0);
  -o-transform: translate3d(0, -50%, 0);
}
.toolbar.right .toggle.is-off .switch-label {
  left: 23px;
}
.toolbar.right .toggle.is-on .switch-label {
  left: 8px;
}
.toolbar.right .toggle.is-on input::-webkit-slider-thumb {
  border: 2px solid rgb(115, 180, 232) !important;
}

.debug {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-flow: row nowrap;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  -moz-flex-flow: row nowrap;
  -o-flex-flow: row nowrap;
  justify-content: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  -moz-justify-content: center;
  -o-justify-content: center;
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  z-index: 10000;
  pointer-events: none;
}
.debug .tab-button {
  position: relative;
  top: 100px;
  height: 30px;
  line-height: 30px;
  padding: 5px 15px;
  margin: 10px 0;
  border-radius: 15px 0 0 15px;
  background-color: rgba(80, 80, 80, 0.25);
  color: rgb(245, 245, 245);
  cursor: pointer;
  pointer-events: auto;
  user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -moz-user-select: none;
  -o-user-select: none;
}
.debug .tab-button.selected {
  transform: scale(1.1);
  -webkit-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -o-transform: scale(1.1);
  background-color: rgb(0, 129, 255);
  color: white;
  z-index: 10;
}
.debug .tab-button:not(.selected):hover {
  background-color: black;
  color: white;
}
.debug .debug-tab {
  width: 400px;
  height: 100%;
  background-color: rgb(0, 129, 255);
  color: white;
  padding: 15px;
  box-sizing: border-box;
  text-align: center;
  z-index: 5;
  pointer-events: auto;
}
.debug .debug-tab .button {
  display: inline-block;
  margin-right: 1em;
  margin-top: 1em;
  padding: 10px;
  color: rgb(245, 245, 245);
  background-color: rgba(80, 80, 80, 0.25);
  border: 2px solid rgb(245, 245, 245);
  border-radius: 3px;
  cursor: pointer;
}
.debug .debug-tab .button:hover {
  color: white;
  border-color: white;
  background-color: black;
}
.debug .debug-tab .close-message {
  margin-top: 3em;
}
.debug .debug-field,
.debug .debug-output {
  display: -webkit-flex;
  display: -ms-flex;
  display: -moz-flex;
  display: -o-flex;
  -webkit-display: -webkit-flex;
  -ms-display: -ms-flex;
  -moz-display: -moz-flex;
  -o-display: -o-flex;
  flex-flow: row nowrap;
  -webkit-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  -moz-flex-flow: row nowrap;
  -o-flex-flow: row nowrap;
  justify-content: space-between;
  -webkit-justify-content: space-between;
  -ms-justify-content: space-between;
  -moz-justify-content: space-between;
  -o-justify-content: space-between;
  align-items: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  -moz-align-items: center;
  -o-align-items: center;
  padding: 10px;
}
.debug .debug-field:hover,
.debug .debug-output:hover {
  background-color: rgba(80, 80, 80, 0.25);
}
.debug .debug-field.dirty,
.debug .debug-output.dirty {
  background-color: red;
}
.debug .debug-field label,
.debug .debug-output label {
  font-size: 13px;
}
.debug .debug-field input[type=text],
.debug .debug-field input[type=number],
.debug .debug-output input[type=text],
.debug .debug-output input[type=number] {
  color: black;
  width: 30%;
}

html, body, #app {
  width: 100%;
  height: 100%;
  min-width: 1024px;
  min-height: 608px;
  background-color: black;
}

body {
  position: fixed;
  overflow: hidden;
}

#app {
  position: relative;
}

* {
  user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -moz-user-select: none;
  -o-user-select: none;
}

.language-ES .toolbar.right .toggle {
  width: 75px;
}