.menuButton { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: 2rem 1.5rem; text-decoration: none; color: var(--fg); min-height: 180px; cursor: pointer; position: relative; overflow: hidden; } /* Glow accent on hover */ .menuButton::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(ellipse at center, var(--accent-glow) 0%, transparent 70%); opacity: 0; transition: opacity 280ms cubic-bezier(0.4, 0, 0.2, 1); pointer-events: none; } .menuButton:hover::after { opacity: 1; } /* Favicon wrapper */ .faviconWrapper { width: 64px; height: 64px; border-radius: 16px; background: var(--glass-bg); border: 1px solid var(--glass-border); display: flex; align-items: center; justify-content: center; overflow: hidden; transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); flex-shrink: 0; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); } .menuButton:hover .faviconWrapper { transform: scale(1.08); box-shadow: 0 8px 24px var(--accent-glow); } .favicon { width: 40px; height: 40px; object-fit: contain; } .faviconFallback { color: var(--accent); display: flex; align-items: center; justify-content: center; } /* Label */ .label { font-size: 0.95rem; font-weight: 600; letter-spacing: -0.02em; text-align: center; line-height: 1.3; max-width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Arrow indicator */ .arrowIcon { position: absolute; top: 12px; right: 14px; color: var(--fg-secondary); opacity: 0; transform: translate(-4px, 4px); transition: all 280ms cubic-bezier(0.4, 0, 0.2, 1); } .menuButton:hover .arrowIcon { opacity: 1; transform: translate(0, 0); }