@font-face {
    font-family: "JetBrains Mono";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2");
}

@font-face {
    font-family: "JetBrains Mono";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("fonts/jetbrains-mono-latin-500-normal.woff2") format("woff2");
}

*,
::before,
::after {
    box-sizing: border-box;
}

html {
    font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 16px;
    line-height: 1.45;
    background-color: #13151a;
    -webkit-text-size-adjust: 100%;
}

@media (hover: none) {
    html {
        font-size: 20px;
    }
}

body {
    margin: 0;
}

::selection {
    background: #374151;
    color: #d1d5db;
}

.max-w-5xl {
    max-width: 64rem;
}

.max-w-xl {
    max-width: 36rem;
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.space-y-4 > * + * {
    margin-top: 1rem;
}

.py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.px-14 {
    padding-left: 3.5rem;
    padding-right: 3.5rem;
}

@media (max-width: 640px) {
    .px-14 {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

.text-gray-500 {
    color: #6b7280;
}

h1 {
    font-size: 1.15rem;
    font-weight: 500;
    font-style: italic;
    margin: 0 0 0.3rem 0;
}

p {
    margin: 0;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
}

a:hover {
    color: #9ca3af;
}

body:not(.is-home) a {
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

body:not(.is-home) a:hover {
    color: #9ca3af;
}

#menu a {
    text-decoration: none;
}

.guy-row {
    margin: 1rem 0;
}

#guy {
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s ease;
}

#guy.ready {
    opacity: 1;
}

#guy:focus-visible {
    outline: 2px solid #4b5563;
    outline-offset: 4px;
    border-radius: 4px;
}

.panel {
    display: none;
}

.panel.active {
    display: block;
    animation: panel-in 0.35s cubic-bezier(0.76, 0, 0.24, 1);
}

@keyframes panel-in {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

#menu[hidden] {
    display: none;
}

#menu {
    display: block;
}

html.js #menu:not([hidden]) {
    animation: panel-in 0.25s cubic-bezier(0.76, 0, 0.24, 1);
}

footer a {
    font-size: 0.85em;
    opacity: 0.7;
}

footer a:hover {
    opacity: 1;
}

footer a[hidden] {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .panel.active,
    html.js #menu:not([hidden]) {
        animation: none;
    }

    #guy,
    a {
        transition: none;
    }
}
