*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #333;
}
.buttons{
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 140px;
    flex-wrap: wrap;
    gap: 20px;
}
.buttons label{
    position: relative;
    width: 60px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}
.buttons label input{
    appearance: none;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 20;
}
.buttons label input:checked ~ span{
    box-shadow: inset 0 2px 2px rgba(0, 0, 0,0.35),
   inset 0 5px 5px rgba(0, 0, 0,0.5),
   inset 0 15px 25px rgba(0, 0, 0,0.35);
}
.buttons label span{
    position: absolute;
    width: 100%;
    height: 100%;
    border: 2px solid #222;
    background: linear-gradient(#555353,#363535,#303030);
    border-radius: 6px;
    box-shadow: inset 0 5px 1px rgba(0, 0, 0,0.35),
    0 5px 5px rgba(0, 0, 0,0.5),
    0 15px 25px rgba(0, 0, 0,0.35);
}
.buttons label span::before{
    content: '';
    position: absolute;
    inset: 5px 3px;
    border-top: 1px solid #ccc;
    filter: blur(2px);
}
.buttons label i{
    position: relative;
    z-index: 10;
    font-size: 1.5em;
    color: #111;
}
.buttons label input:checked ~ i{
    color: #fff;
    text-shadow: 0 0 5px #219cf3,
    0 0 8px #219cf3;
}