:root {
  font-size: 16px;
  box-sizing: border-box;
}
@media (max-width: 640px), (max-height: 700px) {
  :root {
    font-size: 8px;
  }
}
.Connectors.InactiveHover + div > .Connector,
.Connectors.InactiveHover + div > .Connector:before,
.Canvas input[type=checkbox] + label:hover + div > .Connector,
.Canvas input[type=checkbox] + label:hover + div > .Connector:before {
  background-color: #b3e5fc;
}
.Connectors.Active + div > .Connector,
.Connectors.Active + div > .Connector:before,
.Canvas input[type=checkbox]:checked + label + div > .Connector,
.Canvas input[type=checkbox]:checked + label + div > .Connector:before {
  background-color: #ffc107;
}
.Connectors.ActiveHover + div > .Connector,
.Connectors.ActiveHover + div > .Connector:before,
.Canvas input[type=checkbox]:checked + label:hover + div > .Connector,
.Canvas input[type=checkbox]:checked + label:hover + div > .Connector:before {
  background-color: #ffb300;
}
.ActiveValueBox,
.Canvas input[type=checkbox]:checked + label,
.ActiveGate.Result + div > .Result {
  background-color: #ffc107;
}
.ActiveValueBox:after,
.Canvas input[type=checkbox]:checked + label:after,
.ActiveGate.Result + div > .Result:after {
  top: -3.25rem;
}
.Canvas input[type=checkbox] {
  opacity: 0;
}
.Canvas input[type=checkbox] + label {
  margin: -0.125rem;
  padding: 0;
  cursor: pointer;
  -webkit-transition: box-shadow cubic-bezier(0.4, 0, 0.2, 1) 0.3s, background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: box-shadow cubic-bezier(0.4, 0, 0.2, 1) 0.3s, background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
  display: block;
  width: 3.25rem;
  height: 3.25rem;
  box-sizing: border-box;
  background-color: #e0e0e0;
  border: 0.125rem solid #ffa000;
  position: relative;
  overflow: hidden;
}
.Canvas input[type=checkbox] + label:after {
  margin-left: -0.125rem;
  margin-top: -0.125rem;
  white-space: pre;
  content: '0\00000a1';
  font-size: 2rem;
  display: block;
  width: 3.25rem;
  height: 3.25rem;
  line-height: 52px;
  text-align: center;
  position: absolute;
  top: 0;
  -webkit-transition: top cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: top cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
}
@media (max-width: 640px), (max-height: 700px) {
  .Canvas input[type=checkbox] + label:after {
    line-height: 26px;
  }
}
.Canvas input[type=checkbox] + label:hover {
  background-color: #b3e5fc;
}
.Canvas input[type=checkbox]:checked + label:hover {
  background-color: #ffb300;
}
.Canvas input[type=checkbox]:focus + label {
  box-shadow: 0 0 5px 2px #E65100;
}
.Canvas {
  position: relative;
  overflow: visible;
  margin: 1rem;
}
.Canvas:before {
  content: '';
  display: block;
  background-color: #fff3e0;
  border: 0.125rem solid #ffb74d;
  position: absolute;
  top: -1rem;
  left: -1rem;
  right: -1rem;
  bottom: -1rem;
}
.Canvas > *,
.Canvas > .Group > * {
  position: absolute !important;
}
.Canvas > .Group {
  position: static !important;
}
.Connector {
  background: #e0e0e0;
  -webkit-transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
  z-index: 1;
}
.Connector.Corner:before {
  content: '';
  display: block;
  position: absolute;
  width: 0.5rem;
  height: 0.5rem;
  -webkit-transition: inherit;
          transition: inherit;
  background-color: #e0e0e0;
}
.Connector.Vertical {
  width: 0.5rem;
  margin-left: -0.375rem;
  border-left: 0.125rem solid #ffa000;
  border-right: 0.125rem solid #ffa000;
}
.Connector.Vertical.Corner:before {
  top: -0.375rem;
  left: -0.125rem;
  border-top: 0.125rem solid #ffa000;
}
.Connector.Vertical.Corner.Left:before {
  border-right: 0.125rem solid #ffa000;
  padding-left: 0.125rem;
}
.Connector.Vertical.Corner.Right:before {
  border-left: 0.125rem solid #ffa000;
  padding-right: 0.125rem;
}
.Connector.Vertical.Corner.Bottom:before {
  top: auto;
  bottom: -0.375rem;
  left: -0.125rem;
  border-bottom: 0.125rem solid #ffa000;
  border-top: none;
}
.Connector.Vertical.Convex {
  overflow: hidden;
  background: none !important;
  border: none;
  padding: 0 0.125rem;
  height: 1rem;
}
.Connector.Vertical.Convex:before {
  content: '';
  width: 7.2rem;
  height: 7.2rem;
  display: block;
  border-radius: 50%;
  position: absolute;
  background-color: #e0e0e0;
  -webkit-transition: inherit;
          transition: inherit;
  margin: 0 0.375rem;
  top: -6.92706703rem;
}
.Connector.Vertical.Convex.Left:before {
  left: -2.6rem;
}
.Connector.Vertical.Convex.Right:before {
  right: -2.6rem;
}
.Connector.Vertical.Convex:after {
  content: '';
  display: block;
  position: absolute;
  width: 0.625rem;
  width: 1.375rem;
  height: 0.19951441rem;
}
.Connector.Vertical.Convex.Left:after {
  right: 0;
  border-right: 0.125rem solid #ffa000;
}
.Connector.Vertical.Convex.Right:after {
  left: 0;
  border-left: 0.125rem solid #ffa000;
}
.Connector.Vertical.Junction.Top:before {
  content: '';
  display: block;
  background: #e0e0e0;
  -webkit-transition: inherit;
          transition: inherit;
  position: absolute;
  top: 0;
  right: -0.125rem;
  width: 0.75rem;
  height: 0.25rem;
}
.Connector.Horizontal {
  height: 0.5rem;
  margin-top: -0.375rem;
  border-top: 0.125rem solid #ffa000;
  border-bottom: 0.125rem solid #ffa000;
}
.Connector.Horizontal.Corner.Left:before {
  left: -0.375rem;
  top: -0.125rem;
  border-left: 0.125rem solid #ffa000;
}
.Connector.Horizontal.Corner.Right:before {
  right: -0.375rem;
  top: -0.125rem;
  border-right: 0.125rem solid #ffa000;
}
.Connector.Horizontal.Corner.Up:before {
  border-bottom: 0.125rem solid #ffa000;
  padding-top: 0.125rem;
}
.Connector.Horizontal.Corner.Down:before {
  border-top: 0.125rem solid #ffa000;
  padding-bottom: 0.125rem;
}
.Connector.Horizontal.Junction.Right:before {
  content: '';
  display: block;
  background: #e0e0e0;
  -webkit-transition: inherit;
          transition: inherit;
  position: absolute;
  right: 0;
  top: -0.125rem;
  width: 0.25rem;
  height: 0.75rem;
}
.Result {
  border-radius: 1.625rem;
  margin: -0.125rem;
  display: block;
  width: 3.25rem;
  height: 3.25rem;
  box-sizing: border-box;
  background-color: #e0e0e0;
  border: 0.125rem solid #ffa000;
  -webkit-transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
  position: relative;
  overflow: hidden;
}
.Result:after {
  margin-left: -0.125rem;
  margin-top: -0.125rem;
  white-space: pre;
  content: '0\00000a1';
  font-size: 2rem;
  display: block;
  width: 3.25rem;
  height: 3.25rem;
  line-height: 52px;
  text-align: center;
  position: absolute;
  top: 0;
  -webkit-transition: top cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: top cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
}
@media (max-width: 640px), (max-height: 700px) {
  .Result:after {
    line-height: 26px;
  }
}
.ActiveGate.OR span:before,
.ActiveGate.XOR span:before,
.ActiveGate.OR:after,
.ActiveGate.XOR:after {
  background-color: #ffc107;
}
.ActiveGate.AND {
  background-color: #ffc107;
}
.Gate.OR {
  position: relative;
  width: 4rem;
  height: 5.13987789rem;
  z-index: 0;
  margin-top: -0.44706703rem;
  overflow: hidden;
}
.Gate.OR:after {
  content: '';
  display: block;
  height: 1.13987789rem;
  background-color: #e0e0e0;
  border-left: 0.125rem solid #ffa000;
  border-right: 0.125rem solid #ffa000;
  -webkit-transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
  font-size: 1.4rem;
  text-align: center;
  line-height: 66.23804621px;
  position: relative;
  z-index: 1;
}
@media (max-width: 640px), (max-height: 700px) {
  .Gate.OR:after {
    line-height: 33.1190231px;
  }
}
.Gate.OR:before {
  content: '';
  width: 7.2rem;
  height: 7.2rem;
  display: block;
  border-radius: 50%;
  position: absolute;
  left: -1.6rem;
  box-sizing: border-box;
  background-color: #fff3e0;
  border: 0.125rem solid #ffa000;
  top: -6.48rem;
  z-index: 2;
}
.Gate.OR span {
  display: block;
  position: absolute;
  top: 1.13987789rem;
  height: 4rem;
  width: 2rem;
  overflow: hidden;
}
.Gate.OR span:before {
  content: '';
  display: block;
  background-color: #e0e0e0;
  border-bottom: 0.125rem solid #ffa000;
  position: absolute;
  height: 4rem;
  width: 4rem;
  -webkit-transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
}
.Gate.OR span:first-child {
  left: 0;
}
.Gate.OR span:first-child:before {
  border-left: 0.125rem solid #ffa000;
  border-bottom-left-radius: 4rem;
}
.Gate.OR span + span {
  right: 0;
}
.Gate.OR span + span:before {
  right: 0;
  border-right: 0.125rem solid #ffa000;
  border-bottom-right-radius: 4rem;
}
.Gate.OR:after {
  content: 'OR';
}
.Gate.XOR {
  position: relative;
  width: 4rem;
  height: 6.13987789rem;
  z-index: 0;
  margin-top: -0.44706703rem;
  overflow: hidden;
}
.Gate.XOR:after {
  content: '';
  display: block;
  height: 2.13987789rem;
  background-color: #e0e0e0;
  border-left: 0.125rem solid #ffa000;
  border-right: 0.125rem solid #ffa000;
  -webkit-transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
  font-size: 1.4rem;
  text-align: center;
  line-height: 82.23804621px;
  position: relative;
  z-index: 1;
}
@media (max-width: 640px), (max-height: 700px) {
  .Gate.XOR:after {
    line-height: 41.1190231px;
  }
}
.Gate.XOR:before {
  content: '';
  width: 7.2rem;
  height: 7.2rem;
  display: block;
  border-radius: 50%;
  position: absolute;
  left: -1.6rem;
  box-sizing: border-box;
  background-color: #fff3e0;
  border: 0.125rem solid #ffa000;
  top: -6.48rem;
  z-index: 2;
}
.Gate.XOR span {
  display: block;
  position: absolute;
  top: 2.13987789rem;
  height: 4rem;
  width: 2rem;
  overflow: hidden;
}
.Gate.XOR span:before {
  content: '';
  display: block;
  background-color: #e0e0e0;
  border-bottom: 0.125rem solid #ffa000;
  position: absolute;
  height: 4rem;
  width: 4rem;
  -webkit-transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
}
.Gate.XOR span:first-child {
  left: 0;
}
.Gate.XOR span:first-child:before {
  border-left: 0.125rem solid #ffa000;
  border-bottom-left-radius: 4rem;
}
.Gate.XOR span + span {
  right: 0;
}
.Gate.XOR span + span:before {
  right: 0;
  border-right: 0.125rem solid #ffa000;
  border-bottom-right-radius: 4rem;
}
.Gate.XOR:after {
  margin-top: 0.75rem;
  height: 1.69706703rem;
  content: 'XOR';
  line-height: 55.84px;
}
@media (max-width: 640px), (max-height: 700px) {
  .Gate.XOR:after {
    line-height: 27.92px;
  }
}
.Gate.XOR:before {
  z-index: 3;
}
.Gate.XOR div {
  width: 7.2rem;
  height: 7.2rem;
  display: block;
  border-radius: 50%;
  position: absolute;
  left: -1.6rem;
  box-sizing: border-box;
  background-color: #fff3e0;
  border: 0.125rem solid #ffa000;
  top: -5.73rem;
  z-index: 2;
}
.Gate.AND {
  width: 4rem;
  height: 5rem;
  margin: -0.125rem;
  border-radius: 0 0 4rem 4rem;
  background: #e0e0e0;
  border: 0.125rem solid #ffa000;
  -webkit-transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
          transition: background cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
}
.Gate.AND:after {
  display: block;
  content: 'AND';
  line-height: 67.2px;
  font-size: 1.4rem;
  text-align: center;
}
@media (max-width: 640px), (max-height: 700px) {
  .Gate.AND:after {
    line-height: 33.6px;
  }
}

/*# sourceMappingURL=gate-theme.css.map */