@import url(base.css); body { max-width: 50em; } .grid { display: grid; grid-template-columns: repeat(auto-fill, var(--image-size)); grid-gap: 1.5em; justify-content: center; justify-items: center; align-items: center; --image-size: 200px; --border-thickness: 2px; padding: 0; margin: 0; } .item { list-style: none; padding: 0; margin: 0; position: relative; width: calc(var(--image-size) + 2 * var(--border-thickness)); height: calc(var(--image-size) + 2 * var(--border-thickness)); } figure { margin: 0; padding: 0; } .item * { transition: all 0.2s ease-in-out; } .item img { border: 2px solid var(--text); box-shadow: 0 0 10px var(--shadow); } .item figcaption { width: calc(100% - 4 * var(--border-thickness)); margin: 0; padding: var(--border-thickness); position: absolute; left: 0; bottom: 0; background: hsl(0, 0%, 100%, 75%); text-shadow: 0 0 2px white; border: 2px solid var(--text); } .item:hover img { filter: contrast(120%); } .item:hover figcaption { opacity: 20%; transform: translate(-5%, 80%) rotateZ(7deg); }