div.crop_area {
    width: 100%;
    overflow: hidden;
    position: relative;
}
div.crop_area > img {
    width: 100%;
    display: block;
    position: relative;
    z-index: 0;
    filter: blur(3px);
}
div.crop_area:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: #000;
    opacity: 0.3;
    z-index: 1;
}
div.crop_area > .area {
    position: absolute;
    z-index: 1;
    cursor: move;
    display: inline-block;
    background-repeat: no-repeat;
    /*background-attachment: fixed;*/
    background-color: #ffffff4f;
    /*border: dashed 1px #999;*/
    box-shadow: 0 0 1px #ffffff;
}
div.crop_area > .area.circle {
    border-radius: 50%;
}
div.crop_area > .area > i {
    position: absolute;
    z-index: 3;
    width: 10px;
    height: 10px;
    display: inline-block;
    background-color: #fff;
    border: solid 1px #000;
    transform: translate(-50%, -50%);
}
div.crop_area > .area > i:hover,
div.crop_area > .area > i:focus,
div.crop_area > .area > i:active
{
    background-color: #cccccc;
}
div.crop_area > .area > i:nth-child(2n) {
    cursor: ew-resize;
}
div.crop_area > .area > i:nth-child(2n - 1) {
    cursor: ns-resize;
}
div.crop_area > .area > i:nth-child(1) {
    top: 0;
    left: 50%;
}
div.crop_area > .area > i:nth-child(2) {
    top: 50%;
    left: 100%;
}
div.crop_area > .area > i:nth-child(3) {
    top: 100%;
    left: 50%;
}
div.crop_area > .area > i:nth-child(4) {
    top: 50%;
    left: 0;
}
div.crop_area + input[type="range"] {
    width: 100%;
    padding: 0;
    margin: 1rem 0;
}
