
@import url(https://fonts.googleapis.com/css?family=Raleway);

* {
    box-sizing:border-box;

    transition: all 0.2s;
}
body {
	font-family:'Raleway', sans-serif;;
	margin:0;
  transition: background-color 1s;
}
body.night .app-container {
  background-color:#111;
  color:white;
}
a {
  color:#1B367B;
  text-decoration: none;
  font-weight:bold;
}
.night a {
  color:#96B4FF;
}
a:hover {
  text-decoration:underline;
}
h1 {
  margin:0;
}
h1+p {
  margin:0;
  font-size:0.7em;
}




.app-container {
    position:absolute;
    height:100vh;
    width:100vw;
    top:0;
    left:0;
    overflow:hidden;
}
#pulse {
	width:80vmin;
	height:80vmin;
	position:absolute;
	top:50%;
	left:50%;
	-webkit-transform:translate(-50%,-50%);
	transform:translate(-50%,-50%);
}
.circle {
	border-radius:50%;
	background-color:#96ADE6;
	width:100%;
	height:100%;
	position:absolute;
	top:50%;
	left:50%;
	-webkit-transition: all 4s;
	transition: all 4s;
	-webkit-transform:translate(-50%,-50%) scale(1,1);
	transform:translate(-50%,-50%) scale(1,1);
}
.circle-inner {
	-webkit-transform:translate(-50%,-50%) scale(0.2,0.2);
	transform:translate(-50%,-50%) scale(0.2,0.2);
	background-color:white;
	width:70vmin;
	height:70vmin;
	/*box-shadow:3px 3px 20px rgba(0,0,0,0.2);*/
}
.night .circle-inner {
  background-color:#111;
}
.circle-outer {
	/*box-shadow:inset 3px 3px 20px rgba(0,0,0,0.2);*/
}
.out .circle-inner {
	-webkit-transform:translate(-50%,-50%) scale(1,1);
	transform:translate(-50%,-50%) scale(1,1);
}
.text,
.circle {
	transform-style: preserve-3d;
}
.text {
	position:absolute;
	top:50%;
	left:50%;
	width:100%;
	text-align:center;
	font-size:9.5vmin;
	line-height:1em;
	color:#555;
	overflow:hidden;
	-webkit-transition: all 4s;
	transition: all 4s;
	-webkit-transform:translate(-50%,-50%) scale(0.2,0.2);
	transform:translate(-50%,-50%) scale(0.2,0.2);
}
.text span {
	/*opacity:0;*/
  position:relative;
  top:0;
  left:0;
	-webkit-transition:all 1s;
}
.out .text {
	-webkit-transform:translate(-50%,-50%) scale(1,1);
	transform:translate(-50%,-50%) scale(1,1);
}
.text.out span {
	opacity:0;
	-webkit-transform:translateY(1.2em);
	transform:translateY(1.2em);
}
.text.in span {
  opacity:0;
  -webkit-transform:translateY(-1.2em);
  transform:translateY(-1.2em);
}
.text.hold span {
  opacity:0;
  -webkit-transform:translateX(-1.2em);
  transform:translateX(-1.2em);
}
.in:not(.hold) .in span,
.out:not(.hold) .out span,
.hold .hold span {
	opacity:1;
  -webkit-transform:translateY(0) translateX(0);
  transform:translateY(0) translateX(0);
}

#pulse-speed {
	width:calc(100% - 20px);
	position:absolute;
	bottom:5px;
	left:10px;
}

body .text {
  display:none;
}
body.words .text {
  display:block;
}


.btn {
  display:inline-block;
  font-size:inherit;
  cursor:pointer;
}
.btn-text {
  border-width:0;
  margin:0;
  padding:0;
  line-height:inherit;
  color:#1B367B;
  background-color:transparent;
}
.night .btn-text {
  color:#96B4FF;
}
.btn-text:hover {
  text-decoration:underline;
}



.preset {
  font-weight:bold;
  text-align:center;
  cursor:pointer;
}
.preset:hover {
  text-decoration:underline;
}






.toggle-hamburger {
    position:absolute;
    top:0.5em;
    right:0.5em;
    z-index:11;
    display:block;
    height:1em;
    width:1em;
    font-size:1.5em;
    cursor:pointer;
}


.sidebar {
    z-index:10;
    position:absolute;
    right:0;
    top:0;
    width:100vw;
    max-width:400px;
    height:100vh;
    background-color:white;
    padding:10px;
    -webkit-transform:translateX(100%);
    transform:translateX(100%);
    overflow:auto;
}
.night .sidebar {
  background-color:#111;
}
#checkbox-sidebar:checked~.sidebar {
    -webkit-transform:translateX(0);
    transform:translateX(0);
}



.control-row {
    display:-webkit-flex;
    display:flex;
    -webkit-flex-direction:row;
    flex-direction:row;
    margin:0.5em 0;
}
.control-row .flexible,
.flex-row .flexible {
    -webkit-flex:1 1 auto;
    flex:1 1 auto;
}
.pulse-number {
    width:6rem;
    height:1.5rem;
    line-height:1.4rem;
    font-size:1em;
    /*border:1px solid #aaa;*/
    border-width:0;
    color:inherit;
    background-color:inherit;
    font-family:sans-serif;
    border-radius:3px;
    padding:0 0.5em;
}



.label,label {
    vertical-align: middle;
}






/* Day/Night Toggle Box */
.toggle-checkbox {
    display:none;
}
.toggle-button,
.toggle {
    display:inline-block;
    position:relative;
    width:2.2em;
    height:1.2em;
    cursor:pointer;
    font-size:1.5em;
}
.toggle-background {
    height:100%;
    width:100%;
    border-radius:1em;
    position:absolute;
    top:0;
    left:0;
}
.toggle-normal .toggle-background {
    border:0.1em solid #ccc;
    background-color:#eee;
}
.toggle-daynight .toggle-background {
    border:0.1em solid #4C90A6;
    background-color:#ADD8E6;
}
.toggle-knob {
    height:1em;
    width:1em;
    border-radius:1em;
    position:absolute;
    left:0.1em;
    top:0.1em;
}
.toggle-normal .toggle-knob {
    background-color:#aaa;
    border:2px solid #aaa;
}
.toggle-daynight .toggle-knob {
    background-color:yellow;
}
.toggle-checkbox:checked+.toggle .toggle-knob {
    left:1.1em;
}
.toggle-checkbox:checked+.toggle-daynight .toggle-background {
    border:0.1em solid #222;
    background-color:#555;
}
.toggle-checkbox:checked+.toggle-daynight .toggle-knob,
.toggle-checkbox:checked+.toggle-normal .toggle-knob,
.toggle-button .toggle-knob {
    background-color:white;
}



.toggle-button .toggle-knob {
  width:2em;
}


.social-links a {
  text-decoration:none;
}
i.icon {
  display:inline-block;
  margin:0 0.2em;
}
.custom-icon {
  width:30px;
  height:30px;
}
.inner-shape {
  fill:#aaa;
}
.social-small .custom-icon {
  width:20px;
  height:20px;
}






/* https://css-tricks.com/snippets/css/turn-off-number-input-spinners/ */
input[type=number] {
  text-align:right;
}
input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}




/*
http://danielstern.ca/range.css/?ref=css-tricks#/
*/

input[type=range] {
  -webkit-appearance: none;
  width: 100%;
  margin: 12.5px 0;
}
input[type=range]:focus {
  outline: none;
}
input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 5px;
  cursor: pointer;
  box-shadow: 0 0 0 rgba(0,0,0,0);
  background: #96b4ff;
  border-radius: 0px;
  border: 0px solid rgba(1, 1, 1, 0.08);
}
input[type=range]::-webkit-slider-thumb {
  box-shadow: 0 0 0 rgba(0,0,0,0);
  border: 0px solid rgba(0,0,0,0);
  height: 30px;
  width: 30px;
  border-radius: 50px;
  background: #96b4ff;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -12.5px;
}
input[type=range]:focus::-webkit-slider-runnable-track {
  background: #96b4ff;
}
input[type=range]::-moz-range-track {
  width: 100%;
  height: 5px;
  cursor: pointer;
  box-shadow: 0 0 0 rgba(0,0,0,0);
  background: #96b4ff;
  border-radius: 0px;
  border: 0px solid rgba(1, 1, 1, 0.08);
}
input[type=range]::-moz-range-thumb {
  box-shadow: 0 0 0 rgba(0,0,0,0);
  border: 0px solid rgba(0,0,0,0);
  height: 30px;
  width: 30px;
  border-radius: 50px;
  background: #96b4ff;
  cursor: pointer;
}
input[type=range]::-ms-track {
  width: 100%;
  height: 5px;
  cursor: pointer;
  background: transparent;
  border-color: transparent;
  color: transparent;
  margin: 10px 0;
}
input[type=range]::-ms-fill-lower {
  background: #96b4ff;
  border: 0px solid rgba(1, 1, 1, 0.08);
  border-radius: 0px;
  box-shadow: 0 0 0 rgba(0,0,0,0);
}
input[type=range]::-ms-fill-upper {
  background: #96b4ff;
  border: 0px solid rgba(1, 1, 1, 0.08);
  border-radius: 0px;
  box-shadow: 0 0 0 rgba(0,0,0,0);
}
input[type=range]::-ms-thumb {
  box-shadow: 0 0 0 rgba(0,0,0,0);
  border: 0px solid rgba(0,0,0,0);
  height: 30px;
  width: 30px;
  border-radius: 50%;
  background: #96b4ff;
  cursor: pointer;
  /*height: 5px;*/
  display:inline-block;
  margin-top:15%;
}
input[type=range]:focus::-ms-fill-lower {
  background: #96b4ff;
}
input[type=range]:focus::-ms-fill-upper {
  background: #96b4ff;
}





/* http://callmenick.com/post/animating-css-only-hamburger-menu-icons */
.c-hamburger {
  display: block;
  position: absolute;
  z-index:12;
  overflow: hidden;
  margin: 0;
  padding: 0;
  width: 2rem;
  height: 2rem;
  right:0.5rem;
  top:0.5rem;
  font-size: 0;
  text-indent: -9999px;
  appearance: none;
  box-shadow: none;
  border-radius: none;
  border: none;
  cursor: pointer;
  transition: background 0.4s;
}

.c-hamburger:focus {
  outline: none;
}
.c-hamburger span {
  display: block;
  position: absolute;
  top: 0.9rem;
  left: 0.5rem;
  right: 0.5rem;
  height: 3px;
  background-color: #000;
}

.c-hamburger span::before,
.c-hamburger span::after {
  position: absolute;
  display: block;
  left: 0;
  width: 100%;
  height: 3px;
  /*background-color: #fff;*/
  background-color: #000;
  content: "";
}
.night .c-hamburger span,
.night .c-hamburger span::before,
.night .c-hamburger span::after {
  background-color: #fff;
}


.c-hamburger span::before {
  top: -0.5rem;
}

.c-hamburger span::after {
  bottom: -0.5rem;
}
.c-hamburger--htx {
  /*background-color: #ff3264;*/
}

.c-hamburger--htx span {
  transition: background 0s 0.4s;
}

.c-hamburger--htx span::before,
.c-hamburger--htx span::after {
  transition-duration: 0.2s, 0.2s, 0.2s;
  transition-delay: 0.2s, 0s, 0.2s;
}

.c-hamburger--htx span::before {
  transition-property: top, transform, background-color;
}

.c-hamburger--htx span::after {
  transition-property: bottom, transform, background-color;
}

/* active state, i.e. menu open */
#checkbox-sidebar:checked~.c-hamburger--htx {
  background-color: #cb0032;
}

#checkbox-sidebar:checked~.c-hamburger--htx span {
  background-color: #fff;
  background: none;
}

#checkbox-sidebar:checked~.c-hamburger--htx span::before {
  background-color: #fff;
  top: 0;
  transform: rotate(45deg);
}

#checkbox-sidebar:checked~.c-hamburger--htx span::after {
  background-color: #fff;
  bottom: 0;
  transform: rotate(-45deg);
}

#checkbox-sidebar:checked~.c-hamburger--htx span::before,
#checkbox-sidebar:checked~.c-hamburger--htx span::after {
  transition-delay: 0s, 0.3s;
}




canvas {
  width:100%;
  height:100%;
}

.fb_iframe_widget {
  width:100%;
}
.fb_iframe_widget span,
.fb_iframe_widget iframe {
  max-width:100%;
  color:inherit;
}













.container {
  max-width:800px;
  margin-right: auto;
  margin-left: auto;
  position:relative;
  overflow-x:hidden;
}
.row:after {
  clear:both;
  display:table;
  content:'';
}
.row.gutters {
  margin-left: -5px;
  margin-right: -5px;
}
[class*='col-'] {
  float:left;
}
.gutters [class*='col-'] {
  padding-left:5px;
  padding-right: 5px;
}

.col-1 {
  width:8.3333%;
}
.col-2 {
  width:16.6666%;
}
.col-3 {
  width:25%;
}
.col-4 {
  width:33.3333%;
}
.col-5 {
  width:41.6666%;
}
.col-6 {
  width:50%;
}
.col-7 {
  width:58.3333%;
}
.col-8 {
  width:66.6666%;
}
.col-9 {
  width:75%;
}
.col-10 {
  width:83.3333%;
}
.col-11 {
  width:91.6666%;
}
.col-12 {
  width:100%;
}
@media (max-width:400px) {
  [class*='col-']{
    width:100%;
  }
}


nav ul {
  list-style-type:none;
  padding-left:0;
  margin-top: 0;
  margin-bottom: 0;
}





.flex-row {
    display:-webkit-flex;
    display:flex;
    -webkit-flex-direction:row;
    flex-direction:row;
}
.nav .flex-row {
  text-align:center;
  margin-top:1em;
  text-align:center;
}
header {
  padding:1em;
}
.header-nav {
  text-align:right;
}







.author {
  font-size:.7em;
}
.table {
  border-collapse:collapse;
  width:100%;
  display:table;
  overflow:auto;

  border:1px solid #eee;
}
.table-heading,
.table-data {
  text-align:left;
  vertical-align: top;
  display:table-cell;
  padding:0.2em 0.5em;
}
.table-data {
  font-size:0.9em;
}
.table-data:not(:first-child) {
  border-left:1px solid #eee;
}
.table-heading {
  font-weight:bold;
  border-bottom:1px solid #eee;
}
.table-row {
  display: table-row;
}
.table-row:hover {
  background-color:#eee;
}












@media (max-width:400px) {
  .container {
    padding-left: 10px;
    padding-right: 10px;
  }
  .header-nav {
    margin-top:1em;
    text-align:left;
  }
  .flex-row {
    /*-webkit-flex-direction:column;
    flex-direction:column;*/
  }
  .nav .flex-row {
    /*text-align:left;*/
    margin-top:1em;
    font-size:.7em;
  }




  .table-heading {
    display:none;
  }
  .table,
  .table-row,
  .table-data {
    display:block;
  }
  .table-row {
    padding:.5em 0;
  }
  .table-data:not(:first-child) {
    padding-left:1em;
    border-width:0;
  }
}