@keyframes tipsy {
    0 { transform: translateX(-50%) translateY(-50%) rotate(0deg); }
    100% { transform: translateX(-50%) translateY(-50%) rotate(180deg); }
}

body {
    font-family: helvetica, arial, sans-serif;
    background-color: #333641; /* #2e2e31 */
    background-image: -webkit-linear-gradient(90deg, #333641 0%, #333641 100%);
}

body:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 0;
    height: 0;
    margin: auto;
    border-radius: 100%;
    background: transparent;
    display: block;
    box-shadow: 0 0 150px 100px rgba(255, 255, 255, 1),
    200px 0 200px 150px rgba(255, 255, 255, 1),
    -250px 0 300px 150px rgba(255, 255, 255, 1),
    550px 0 300px 200px rgba(255, 255, 255, 1),
    -550px 0 300px 200px rgba(255, 255, 255, 1);
}

a {
    color: #aaa;
    text-shadow: 0 10px 15px #2e2e31, 0 20px 40px #2e2e31;
    font-size: 80px;
    font-weight: bold;
    text-decoration: none;
    letter-spacing: -4px;
    margin: 0;
    padding: 4px 0 0 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}

a:before,
a:after {
    content: '';
    padding: .9em .4em;
    position: absolute;
    left: 50%;
    width: 100%;
    top: 50%;
    display: block;
    border: 15px solid red;
    transform: translateX(-50%) translateY(-50%) rotate(0deg);
    animation: 15s infinite alternate ease-in-out tipsy;
}

a:before { /* #d9524a */
    border-color: crimson crimson rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
    z-index: -1;
}

a:after {
    border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) crimson crimson;
    box-shadow: 15px 15px 15px rgba(46, 46, 49, .8);
}