@font-face {
    font-family: "Press Start 2P";
    src: url("../asset/fonts/press-start-2p.woff2") format("woff2");
    font-display: swap;
}

:root {
    --cream: #fff4cc;
    --muted: #b9c0e6;
    --gold: #f6d86b;
    --ink: #151a38;
    --line: rgba(255, 244, 204, 0.25);
    --pixel: 4px;
    --gutter: clamp(16px, 7vw, 120px);
    --font-pixel: "Press Start 2P", monospace;
    --font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

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

body {
    min-height: 100vh;
    background:
        linear-gradient(180deg, rgba(21, 26, 56, 0.6), transparent 60%),
        var(--ink) url("../asset/background.webp") 85% bottom / cover no-repeat;
    image-rendering: pixelated;
    font-family: var(--font-sans);
    color: var(--cream);
    -webkit-font-smoothing: antialiased;
}

.hero {
    position: relative;
    max-width: 1440px;
    margin: 0 auto;
    padding: clamp(3rem, 14vh, 9rem) var(--gutter) 0;
}

.title {
    margin-bottom: clamp(2rem, 6vh, 3.5rem);
    font-family: var(--font-pixel);
    font-size: clamp(1.5rem, 5vw, 3.75rem);
    font-weight: normal;
    line-height: 1.5;
    text-shadow: var(--pixel) var(--pixel) 0 var(--ink);
    animation: rise 0.7s 0.1s ease-out both;
}

.skills {
    display: grid;
    max-width: 40rem;
    animation: rise 0.7s 0.2s ease-out both;
}

.skill-group {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 1.5rem;
    padding: 0.875rem 0;
    border-top: 1px solid var(--line);
}

.skill-group:last-child {
    border-bottom: 1px solid var(--line);
}

.skill-group dt {
    flex: 0 0 11rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--muted);
}

.skill-group dd {
    font-family: var(--font-pixel);
    font-size: clamp(0.75rem, 1.4vw, 1rem);
    line-height: 2;
    text-shadow: calc(var(--pixel) / 2) calc(var(--pixel) / 2) 0 var(--ink);
}

.skill-group--next dd {
    color: var(--gold);
}

@keyframes rise {
    from {
        opacity: 0;
        transform: translateY(0.75rem);
    }
}

@media (max-width: 600px) {
    .skill-group dt {
        flex-basis: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation: none !important;
    }
}
