a {
    color: var(--fg);
    font-weight: 400;
    font-family: var(--font-mono);
    transition: all .2s;
    outline: 2px solid transparent;
}

::-moz-focus-inner {
    border: 0;
}

button:focus,
a:focus {
    outline: 2px solid var(--accent);
}

body:not(.user-is-tabbing) button:focus,
body:not(.user-is-tabbing) a:focus {
    outline: none;
}

.link:hover {
    color: var(--accent);
}

.btn {
    display: inline-block;
    padding: 0.6rem 1.2rem;
    text-decoration: none;
    color: var(--fg);
    background: transparent;
    border: 1px solid var(--accent);
    border-radius: 2px;
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    cursor: pointer;
    transition: background-color 100ms ease, color 100ms ease;
}

.btn:hover,
.btn:focus {
    background: var(--accent);
    color: var(--fg);
    outline: none;
}

.btn--pink {
    background: var(--accent);
    color: var(--fg);
}

.btn--pink:hover,
.btn--pink:focus {
    background: transparent;
}

.btn--send {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.btn--send .btn__icon {
    flex-shrink: 0;
    transition: transform 150ms ease;
}

.btn--send:hover .btn__icon,
.btn--send:focus .btn__icon {
    transform: translate(2px, -2px);
}

.btn--mailto {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.btn--mailto .btn__icon {
    flex-shrink: 0;
}

.btn--mailto .btn__label {
    font-weight: 600;
}

.btn--mailto .btn__sub {
    color: var(--fg-mute2);
    font-size: var(--text-xs);
    padding-left: var(--space-2);
    border-left: 1px solid var(--border);
}

.btn--mailto:hover .btn__sub,
.btn--mailto:focus .btn__sub {
    color: var(--fg);
    border-left-color: currentColor;
}

.link__text {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0;
    color: var(--key);
    text-decoration: underline dotted var(--accent);
    text-underline-offset: 4px;
}

.link__text:hover,
.link__text:focus {
    color: var(--accent);
    outline: none;
}

.link__text img {
    width: 16px;
    height: auto;
}

kbd {
    display: inline-block;
    padding: 1px 6px;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--fg);
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 2px;
    line-height: 1.4;
}
