body { --color: hsl(210deg,10%,30%); background: var(--color); } .neumorphic { border-radius: 1rem; background: var(--color); -webkit-animation: 1s -.3s 1 paused opacify; animation: 1s -.3s 1 paused opacify; -webkit-backdrop-filter: blur(1.5rem); backdrop-filter: blur(1.5rem); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: -0.25rem -0.25rem 0.5rem rgba(255, 255, 255, 0.07), 0.25rem 0.25rem 0.5rem rgba(0, 0, 0, 0.12), -0.75rem -0.75rem 1.75rem rgba(255, 255, 255, 0.07), 0.75rem 0.75rem 1.75rem rgba(0, 0, 0, 0.12), inset 8rem 8rem 8rem rgba(0, 0, 0, 0.05), inset -8rem -8rem 8rem rgba(255, 255, 255, 0.05); } @-webkit-keyframes opacify { to { background: transparent; } } @keyframes opacify { to { background: transparent; } } card { position: absolute; top: 50vh; left: 50vw; width: 400px; height: 300px; max-width: 80vw; max-height: 80vh; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); box-sizing: border-box; padding: .5rem; } img { position: absolute; top: 2rem; bottom: 2rem; right: 2rem; -o-object-fit: cover; object-fit: cover; width: calc(50vw - 2rem); height: calc(100vh - 4rem); box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.3); border-radius: .2rem; } input.neumorphic { width: 1rem; height: 1rem; border: 0; padding: 0; border-radius: 50%; display: block; border: 1px solid rgba(255, 255, 255, 0.5); cursor: pointer; overflow: hidden; } input[type="color"]::-webkit-color-swatch { opacity: 0; }