@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 400;
	src: url('quicksand-v19-latin-ext-regular.eot'); /* IE9 Compat Modes */
	src: local(''), url('quicksand-v19-latin-ext-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
	url('quicksand-v19-latin-ext-regular.woff2') format('woff2'), /* Super Modern Browsers */
	url('quicksand-v19-latin-ext-regular.woff') format('woff'), /* Modern Browsers */
	url('quicksand-v19-latin-ext-regular.ttf') format('truetype'), /* Safari, Android, iOS */
	url('quicksand-v19-latin-ext-regular.svg#Quicksand') format('svg'); /* Legacy iOS */
}
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 600;
	src: url('quicksand-v19-latin-ext-600.eot'); /* IE9 Compat Modes */
	src: local(''), url('quicksand-v19-latin-ext-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
	url('quicksand-v19-latin-ext-600.woff2') format('woff2'), /* Super Modern Browsers */
	url('quicksand-v19-latin-ext-600.woff') format('woff'), /* Modern Browsers */
	url('quicksand-v19-latin-ext-600.ttf') format('truetype'), /* Safari, Android, iOS */
	url('quicksand-v19-latin-ext-600.svg#Quicksand') format('svg'); /* Legacy iOS */
}

html, body, header, #menu, section, article, aside, footer, div, span, ol, ul, li, img, strong, h1, h2, h3, h4, h5, h6, a {
	padding: 0;
	margin: 0;
	outline: none;
}

body {
	color: #333;
	font: 200 14px "Quicksand";
	font-smooth: always;
	text-shadow: 1px 1px 1px rgba(0,0,0,0.006);
	text-rendering: optimizeLegibility !important;
	-webkit-font-smoothing: antialiased !important;
	padding: 0 40pt 40px 40pt;
	margin: 0;
	width: 100vw;
	overflow-x: hidden;
	box-sizing: border-box;
}

table {
	border-collapse: separate;
	border-spacing: 14px 4px;
}

p {
	padding: 4px;
	text-indent: 20px;
}

ul {
	margin-bottom: 10px;
}

li > ul {
	margin-left: 30px;
}

h1 {
	text-align: center;
	padding: 20px 10px;
}

h2 {
	padding: 10px;
	cursor: pointer;
}

h3, h4, h5, h6 {
	padding: 5px;
}

.secnum {
	display: inline-block;
	width: 2.2em;
	text-align: right;
}

strong {
	font-weight: 600;
}

ul > li, ol > li {
	text-indent: 10px;
}

nav a {
  pointer-events: auto;
  cursor: pointer;
}

nav li > ul {
	padding-left: 30pt;
}

nav ul {
	margin: 0;
}

nav li {
	text-indent: 0;
	padding: 4px;
	list-style: none;
}

nav li a, nav li a:visited {
    text-decoration: none;
    color: #999;
    text-shadow: 1px -1px 0px black;
    font-weight: 600;
    font-size: 18px;
}

math, mi {
	font-size: 16px;
}

/* Legend layout */
.legend {
	display:flex;
	gap:18px;
	align-items:center;
	margin-top:12px;
	flex-wrap:wrap;
}
.legend-item {
	display:flex;
	gap:8px;
	align-items:center;
	color:#222;
	font-size:0.92rem;
}
.swatch { width:16px; height:12px; border-radius:2px; display:inline-block; }
.swatch-forward { background:#333; }
.swatch-feedback { background:#cc5500; }
.swatch-node { background:#d9ecff; border:1px solid #999; }

.arrow {
  stroke: blue;
  stroke-width: 2;
  marker-end: url(#arrow);
}
.impulse {
  fill: red;
}
.kernel-label {
  fill: blue;
  font-size: 14px;
}
.composition-label {
  fill: darkgreen;
  font-size: 14px;
}
.comparison-box {
  fill: #f0f0f0;
  stroke: gray;
}
.comparison-title {
  font-size: 14px;
  font-weight: bold;
}
.comparison-text {
  font-size: 12px;
}

article {
	padding: 20pt 0;
}

.button {
	cursor: pointer;
}

.button:hover {
	text-decoration: underline;
}

footer {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	height: 20px;
	padding: 10px 20pt;
	vertical-align: middle;
	background: #333;
	color: #CCC;
	display: flex;
	flex-direction: row;
    align-items: center;
    justify-content: center;
}

footer a, footer a:visited {
	background: #333;
	color: #CCC;
	text-decoration: none;
}

footer a:hover {
	text-decoration: underline;
}

footer * {
	margin: 0 20px;
	font-weight: 600;
}
