:root { --tile-size: 512px; --gap: 0px; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; background: #000; color: #f5f5f5; font-family: "Segoe UI", system-ui, -apple-system, sans-serif; } main.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); width: 100vw; min-height: 100vh; } .tile { position: relative; width: min(var(--tile-size), 100%); aspect-ratio: 1 / 1; background: #111; border-radius: 0; overflow: hidden; cursor: pointer; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6); transition: transform 0.25s ease, box-shadow 0.25s ease; } .tile:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.7); } .tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter 0.25s ease; } .tile.open img { filter: blur(2px) brightness(0.4); } .overlay { position: absolute; inset: 0; padding: 16px; display: flex; flex-direction: column; gap: 10px; background: linear-gradient(180deg, rgba(0,0,0,0.78), rgba(0,0,0,0.92)); opacity: 0; transition: opacity 0.25s ease; overflow: auto; } .tile.open .overlay { opacity: 1; } .overlay h3 { margin: 0; font-size: 18px; line-height: 1.3; } .overlay p { margin: 0; font-size: 14px; line-height: 1.45; color: #d8d8d8; white-space: pre-line; } .overlay a { margin-top: auto; align-self: flex-start; color: #8ad8ff; text-decoration: none; font-weight: 600; letter-spacing: 0.2px; } .overlay a:hover { text-decoration: underline; } .empty { grid-column: 1 / -1; text-align: center; color: #888; padding: 40px 0; }