:root { --bg: #0b1020; --card: #111827; --text: #e5e7eb; --muted: #9ca3af; --accent: #3b82f6; --ring: rgba(59,130,246,.35); } * { box-sizing: border-box; } html, body { height: 100%; } body { margin: 0; font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif; background: radial-gradient(1200px 800px at 10% -10%, #1f2937, transparent), var(--bg); color: var(--text); } .container { max-width: 1100px; padding: 24px; margin: 0 auto; } header.container { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: end; } header h1 { margin: 0; font-size: 28px; letter-spacing: .2px; } .controls { display: flex; gap: 8px; } .controls input[type="search"], .controls select { background: #0f172a; color: var(--text); border: 1px solid #1f2937; border-radius: 12px; padding: 10px 12px; outline: none; } .controls input[type="search"]:focus, .controls select:focus { border-color: var(--accent); box-shadow: 0 0 0 4px var(--ring); } .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; margin-top: 8px; } .tile { text-decoration: none; color: inherit; transform: translateZ(0); } .tile-inner { background: linear-gradient(0deg, rgba(255,255,255,.02), rgba(255,255,255,.02)), var(--card); border: 1px solid rgba(255,255,255,.06); border-radius: 16px; padding: 16px; min-height: 120px; display: grid; grid-template-rows: 1fr auto auto; gap: 8px; transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease; box-shadow: 0 6px 20px rgba(0,0,0,.25); position: relative; } .tile-inner::after { content: ""; position: absolute; inset: 0; border-radius: 16px; background: radial-gradient(200px 120px at 20% 0%, color-mix(in oklab, var(--tile-color, var(--accent)) 35%, transparent), transparent); opacity: .25; pointer-events: none; } .tile:hover .title { text-decoration: underline; } .tile:hover .tile-inner { transform: translateY(-2px); border-color: rgba(255,255,255,.18); box-shadow: 0 10px 26px rgba(0,0,0,.35); } .icon { display: grid; place-items: center; align-self: start; font-size: 36px; width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); } .icon img { max-width: 100%; max-height: 100%; border-radius: 8px; } .title { font-weight: 700; font-size: 16px; line-height: 1.2; } .badge { display: inline-block; font-size: 12px; color: var(--muted); border: 1px solid rgba(255,255,255,.1); border-radius: 999px; padding: 4px 8px; width: max-content; } .footer { opacity: .6; text-align: center; } @media (max-width: 520px) { header.container { grid-template-columns: 1fr; } .controls { width: 100%; } .controls input[type="search"] { flex: 1; width: 100%; } }