Перекрывание слоев overflow: hidden; 
		
		
		
		Добрый день уважаемые. Делал прелодер на CSS на выходе получил очень много артефактов, подскажите пожалуйста где я косячу? :cray:  
	
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Preloader</title>
	<!-- <link rel="stylesheet" type="text/css" href="normalize.css"> -->
<style>
.preloader{
	margin: 0 auto;
	width: 75px;
	height: 75px;
	border: 1px solid black;
}
.circle {
	border-radius: 50%;
	cursor: pointer;
}
.c_main {
	position: relative;
	width: 75px;
	height: 75px;	
	border-bottom: 1px solid #d7d7d5;
	background-color: #E1E1E1;
	opacity: .99;
	z-index: 1;
}
.c_orange{
	position: absolute;
	margin-left: 1px;
	height: 73px;
	width: 73px;
	background: -webkit-linear-gradient(bottom, #FF7D00 0%,  #FB7E01 50%, #FC5200 51%, #FC5101);
	background: linear-gradient(to top, #FF7D00 0%,  #FB7E01 50%, #FC5200 51%, #FC5101);
	overflow: hidden;
}
.c_orange:before{
	content:'';
	position: absolute;
	top: -4px;
	margin-left: -74px;
    width: 148px;
    height: 148px;
    border-radius: 50%;
 	border: 1px solid #BB4001;
box-shadow:  4px 7px 4px 8px rgba(187,64,1, 0.9), inset 8px 6px 3px rgba(187,64,1, 0.9);
}
.rect1{
	position: absolute;
	top: -36px;
	left: 36px;
	height: 73px;
	width: 73px;
	background-color: #E1E1E1;
	-webkit-transform-origin: left bottom;
	        transform-origin: left bottom; 
	-webkit-transform: rotate(45deg); 
	        transform: rotate(45deg);
}
.cover1 {
	position: absolute;
	margin-left: 11px;
	margin-top: 11px;
	height: 50px;
	width: 50px;
	background-color: #E1E1E1;
}
.c_blue{
	position: absolute;
	margin-left: 1px;
	margin-top: 1px;
	height: 48px;
	width: 48px;
	background-color: #50A2CA;
	overflow: hidden;
}
.c_blue:before{
	content:'';
	position: absolute;
	top: -3px;
	margin-left: -4px;
    width: 88px;
    height: 88px;
    border-radius: 50%;
 	border: 1px solid #083A4D; 
box-shadow:  4px 6px 3px 9px rgba(8,58,77, 0.9), inset -8px 6px 1px 1px rgba(8,58,77, 0.9); 
	overflow: hidden;
}
.rect2{
		position: absolute;
	left: 24px;
	height: 48px;
	width: 48px;
	background-color: #E1E1E1;
	-webkit-transform-origin: left center;
	        transform-origin: left center; 
	-webkit-transform: rotate(-20deg); 
	        transform: rotate(-20deg);
	        overflow: hidden;
}
.cover2{
	position: absolute;
	margin-left: 6px;
	margin-top: 6px;
	height: 36px;
	width: 36px;
	background-color: #E1E1E1;
}
.c_purple{
	position: relative;
	margin-left: 1px;
	margin-top: 1px;
	height: 34px;
	width: 34px;
	background-color: #5B4A69;
	z-index: 1;
	opacity: 0.99;
	overflow: hidden;
}
.c_purple:before{
	content:'';
	position: absolute;
	top: -8px;
	margin-left: -2px;
    width: 88px;
    height: 88px;
    border-radius: 50%;
 	border: 1px solid #3B2E43;  
box-shadow:  4px 6px 3px 9px rgba(59,46,67, 0.9), inset -8px 6px 1px 1px rgba(59,46,67, 0.9); 
	
}
.cover3{
	position: absolute;
	margin-left: 5px;
	margin-top: 5px;
	height: 24px;
	width: 24px;
	background-color: #E1E1E1;
	
}
.rect3{
	position: absolute;
	top: -4px;
	left: 16px;
	height: 38px;
	width: 38px;
	background-color: #E1E1E1;
	/*border: 1px solid black;*/
	z-index: 2;
	-webkit-transform-origin: left center;
	        transform-origin: left center; 
	-webkit-transform: rotate(-45deg); 
	        transform: rotate(-45deg);
}
.circle:hover .rotating {
	-webkit-animation: swinger 3s linear infinite normal;
	        animation: swinger 3s linear infinite normal;
	
}
.circle:hover .rotatingBackward{
	-webkit-animation: swinger 3s linear infinite reverse;
	        animation: swinger 3s linear infinite reverse;
}
@-webkit-keyframes swinger {
	0%{
		-webkit-transform: rotate(0deg);
		        transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		        transform: rotate(360deg);
	}
}
@keyframes swinger {
	0%{
		-webkit-transform: rotate(0deg);
		        transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		        transform: rotate(360deg);
	}
}
</style>
</head>
<body>
	<div class="preloader">
			<div class="circle c_main">
				<div class="circle c_orange"><div class="rect1 rotating"></div>
					<div class="circle cover1">
						<div class="circle c_blue"> <div class="rect2 rotatingBackward"></div>
							<div class="circle cover2">
								<div class="circle c_purple"><div class="rect3 rotating"></div>
									<div class="circle cover3"></div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
	</div>	
<script type="text/javascript" src="script.js"></script>
</body>
</html>
Не могу понять как избавится от этого квадрата перекрытия. + 1px радиуса по ободу кругов  | 
	
		
 От квадрата перекрытия помогает  
	Код: 
	clip: rect(0px, 100%, 50%, 50%);Обводка в 1 пкс при закр. уголках -- изчеснет, если вырезать по кругу, уменьшить его на 1% Код: 
	clip-path: circle(49% at center);
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Preloader</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
    </head>
    <body>
        <style scoped>
html, body {
    height: 100%;
}
body {
    margin: 0;
    display: flex;
}
.preloader {
    --size: 150px;
    margin: auto;
    width: var(--size);
    height: var(--size);
    cursor: pointer;
}
.circle {
    border-radius: 50%;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
    background: #eee;
    transform: scale(.999);
    clip-path: circle(49% at center);
}
.circle > .circle {
    transform: scale(.666) scaleX(-1);
}
.circle::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: #eee;
    border-radius: 50%;
    animation: swinger 3s linear infinite normal;
    clip: rect(0px, var(--size), calc(var(--size) / 2), calc(var(--size) / 2));
}
.circle.orange {
    background: radial-gradient(circle at 0% 100%, transparent 72%, rgba(187, 64, 1, 0.8) 74%, transparent 83%),
                radial-gradient(circle at 10% 120%, transparent 72%, rgba(187, 64, 1, 0.8) 78%, transparent 86%),
                linear-gradient(to top, #FF7D00, #FB7E01 50%, #FC5200 calc(50% + 1px), #FC5101);
}
.circle.blue {
    background: radial-gradient(circle at 0% 100%, transparent 72%, rgba(8,58,77, 0.8) 74%, transparent 83%),
                radial-gradient(circle at 10% 120%, transparent 72%, rgba(8,58,77, 0.8) 78%, transparent 86%),
                #50A2CA;
}
.circle.purple {
    background: radial-gradient(circle at 0% 100%, transparent 72%, rgba(59,46,67, 0.8) 74%, transparent 83%),
                radial-gradient(circle at 10% 120%, transparent 72%, rgba(59,46,67, 0.8) 78%, transparent 86%),
                #5B4A69;
}
@keyframes swinger {
    from {
        transform: rotate(0);
    }
    to {
        transform: rotate(1turn);
    }
}
        </style>
        <div role="presentation" class="preloader">
            <div class="circle orange">
                <div class="circle blue">
                    <div class="circle purple">
                        <div class="circle"></div>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
 | 
	
		
 Спасибо, Malleys, за объяснение 
	 | 
| Часовой пояс GMT +3, время: 07:23. |