:root {
    --color-white: hsl(0, 0%, 100%);
    --color-green: hsl(75, 94%, 57%);
    --color-gray-700: hsl(0, 0%, 20%);
    --color-gray-800: hsl(0, 0%, 12%);
    --color-gray-900: hsl(0, 0%, 8%);

    --font-family: 'Inter', sans-serif;
    --font-xs: 0.6875rem;
    --font-sm: 0.875rem;
    --font-lg: 1.5rem;
    --line-height: 1.5;

    --space-4: 0.25rem;
    --space-8: 0.5rem;
    --space-12: 0.75rem;
    --space-16: 1rem;
    --space-24: 1.5rem;
    --space-40: 2.5rem;

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-full: 50%;

    --profile-max-width: 384px;
}

html {
    font-size: 100%;
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--font-family);
    background-color: var(--color-gray-900);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 0 var(--space-16);
}

main {
    width: 100%;
}

.profile {
    background-color: var(--color-gray-800);
    padding: var(--space-40);
    color: var(--color-white);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: var(--profile-max-width);
    margin: 0 auto;
}

.profile__avatar {
    border-radius: var(--radius-full);
}

.profile__title {
    margin-block-start: var(--space-24);
    font-size: var(--font-lg);
    line-height: var(--line-height);
    font-weight: 400;
}

.profile__location {
    margin-block-start: var(--space-4);
    font-size: var(--font-sm);
    line-height: var(--line-height);
    font-weight: 600;
    font-style: normal;
    color: var(--color-green);
}

.profile__description {
    font-size: var(--font-sm);
    line-height: var(--line-height);
    margin-block: var(--space-24);
}

.profile__social_links {
    width: 100%;
}

.profile__social_links ul {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    list-style-type: none;
    gap: var(--space-16);
}

.profile__social_link {
    background-color: var(--color-gray-700);
    border-radius: var(--radius-sm);
    text-align: center;
}

.profile__social_link:hover {
    background-color: var(--color-green);
}

.profile__social_link a {
    color: var(--color-white);
    text-decoration: none;
    font-size: var(--font-sm);
    font-weight: 600;
    display: block;
    padding: var(--space-12) 0;
}

.profile__social_link:hover a {
    color: var(--color-gray-700);
}

@supports selector(:has(a:focus-visible)) {
    .profile__social_link:has(a:focus-visible) {
        background-color: var(--color-green);
    }

    .profile__social_link:has(a:focus-visible) a {
        color: var(--color-gray-700);
    }
}

.profile__social_link a:focus-visible {
    outline: 2px solid var(--color-white);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

.attribution {
    font-size: var(--font-xs);
    text-align: center;
    margin-block-start: var(--space-24);
    color: var(--color-white);
}

.attribution a {
    color: var(--color-white);
}

.attribution a:focus-visible {
    outline: 2px solid var(--color-green);
}