@-webkit-keyframes checkmarkAnimation {
    100% {
        stroke-dashoffset: 0;
    }
}
@keyframes checkmarkAnimation {
    100% {
        stroke-dashoffset: 0;
    }
}



.fancy-check-label,
.fancy-radio-label {
    display: inline-block;
    line-height: 24px;
    padding-left: 36px;
    position: relative;
    cursor: pointer;
    -webkit-user-select: no-select;
    -moz-user-select: no-select;
    -ms-user-select: no-select;
    user-select: no-select;
}

.crappy-browser .fancy-check-label .checkmark-path {
    opacity: 0;
}
.modern-browser .fancy-check-label {
    transition: color 0.3s;
    cursor: pointer;
}
.fancy-check:checked + .fancy-check-label {
    color: #31cdff;
}
.fancy-check:checked + .fancy-check-label .fancy-checkbox {
    border-color: #31cdff;
}
.modern-browser .fancy-check:checked + .fancy-check-label .checkmark-path {
    -webkit-animation: checkmarkAnimation 0.5s 0s forwards;
    animation: checkmarkAnimation 0.5s 0s forwards;
}
.crappy-browser .fancy-check:checked + .fancy-check-label .checkmark-path {
    opacity: 1;
    stroke-dasharray: 0;
    stroke-dashoffset: 0;
}

.fancy-label--text {
    position: relative;
    font-size: 1.55rem;
}

.fancy-radio:checked + .fancy-radio-label {
    color: #2dccff;
}
.fancy-radio:checked + .fancy-radio-label .fancy-label--text::before {
    transition: transform 0.15s;
    transform: scaleX(1);
}
.fancy-radio:checked + .fancy-radio-label .fancy-radiobutton {
    border-color: darkorange;
    transition: border-color 0.5s;
}
.fancy-radio:checked + .fancy-radio-label .radiobutton-dot {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    transition: opacity 0.15s, transform 0.15s;
}

.fancy-checkbox,
.fancy-radiobutton {
    border: solid 2px #888;
    display: block;
    height: 20px;
    position: absolute;
    left: 0;
    top: 0;
    width: 20px;
}
.modern-browser .fancy-checkbox,
.modern-browser .fancy-radiobutton {
    transition: border-color 0.3s;
}

.fancy-checkbox {
    border-radius: 3px;
}

.fancy-radiobutton {
    border-radius: 50%;
}

.radiobutton-dot {
    background-color: currentColor;
    border-radius: 50%;
    height: 12px;
    opacity: 0;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) scale(0);
    width: 12px;
}

.checkmark {
    height: 20px;
    opacity: 1;
    width: 100%;
    margin-bottom: 7px;
}
.checkmark .checkmark-path {
    stroke: darkorange;
    stroke-width: 2px;
    transform-origin: 50% 50%;
    stroke-miterlimit: 10;
    opacity: 1;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
}
.text-right {
    text-align: right;
}

.fancy-label--text- {
    position: relative;
    font-size: 1rem;
    font-weight: 100;
    color: #FFF;
}