svg {
	display: block;
	margin: 0 auto;
	box-shadow: 0 0 5px black;
}

.node {
	stroke: black;
	cursor: move;
}

.node circle {
	stroke-width: 1px;
	fill: white;
}

.node.proxy circle {
	stroke-width: 1.5px;
}

.node circle.pinned {
	stroke-width: 2px;
}

.node text {
	stroke: none;
	pointer-events: none;
	font: 10px sans-serif;
	fill: black;
}

.link {
	stroke: black;
	stroke-width: 2;
}

.link.proxy {
	stroke: transparent;
}

.redrom {
	stroke: red;
	fill: transparent;
}

.palerom {
	stroke: pink;
	fill: transparent;
}

.blackrom {
	stroke: black;
	fill: transparent;
}

.ashrom {
	stroke: grey;
	fill: transparent;
}

.parent {
	stroke: #008141;
	fill: transparent;
}

.benefits {
	stroke: #7c01a1;
	fill: transparent;
}

.siblings {
	stroke: #ff9d42;
	fill: transparent;
}

.vacillating-red-black {
	fill: transparent;
	animation: vacillating-red-black 1s ease infinite;
}

@keyframes vacillating-red-black {
	0% {
		stroke: red;
	}
	50% {
		stroke: black;
	}
	100% {
		stroke: red;
	}
}

.vacillating-red-pale {
	fill: transparent;
	animation: vacillating-red-pale 1s ease infinite;
}

@keyframes vacillating-red-pale {
	0% {
		stroke: red;
	}
	50% {
		stroke: pink;
	}
	100% {
		stroke: red;
	}
}

.vacillating-red-siblings {
	fill: transparent;
	animation: vacillating-red-siblings 1s ease infinite;
}

@keyframes vacillating-red-siblings {
	0% {
		stroke: red;
	}
	50% {
		stroke: #ff9d42;
	}
	100% {
		stroke: red;
	}
}

.vacillating-black-siblings {
	fill: transparent;
	animation: vacillating-black-siblings 1s ease infinite;
}

@keyframes vacillating-black-siblings {
	0% {
		stroke: black;
	}
	50% {
		stroke: #ff9d42;
	}
	100% {
		stroke: black;
	}
}

.system {
	stroke: black;
	fill: transparent;
}

.general {
	stroke: black;
	fill: transparent;
}

.subsystem {
	fill: #fff8;
}

.generic {
	fill: transparent;
}

.group text {
	fill: black;
	stroke: none;
	font-family: serif;
}