:root {
    --ink: #15110d;
    --paper: #f5f0e8;
    --paper-2: #ede8db;
    --paper-shadow: #d4c9b0;
    --red: #d4351c;
    --rule: #c4b9a6;
    --muted: #8a7a6a;
    --ink-soft: #3d2e22;
    --yellow: #f0c419;
    --blue: #1f4a8a;
}
[data-theme="dark"] {
    --ink: #f5f0e8;
    --paper: #15110d;
    --paper-2: #1e180f;
    --paper-shadow: #2d2518;
    --red: #e85534;
    --rule: #3a3028;
    --muted: #8a7a6a;
    --ink-soft: #c4b9a6;
}
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    font-family: "Courier Prime", "Courier New", monospace;
    background: var(--paper);
    color: var(--ink);
    min-height: 100vh;
    transition:
        background 0.2s,
        color 0.2s;
}
.blast {
    font-family: "Anton", Impact, sans-serif;
}
.display {
    font-family: "Playfair Display", Georgia, serif;
}
.mono {
    font-family: "Courier Prime", "Courier New", monospace;
}
a {
    color: inherit;
    text-decoration: none;
}
button {
    font-family: inherit;
    cursor: pointer;
}
input {
    font-family: inherit;
}

/* Responsive font scaling */
@media (max-width: 900px) {
    .blast-hero {
        font-size: clamp(48px, 10vw, 96px) !important;
    }
    .blast-wordmark {
        font-size: clamp(40px, 8vw, 88px) !important;
    }
    .grid-2col {
        grid-template-columns: 1fr !important;
    }
    .grid-3col {
        grid-template-columns: 1fr 1fr !important;
    }
    .grid-4col {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .hide-mobile {
        display: none !important;
    }
    .cover-hero {
        grid-template-columns: 1fr !important;
    }
    .cover-hero-art {
        height: 300px !important;
    }
    .game-spread {
        grid-template-columns: 1fr !important;
    }
    .game-spread aside {
        border-left: none !important;
        padding-left: 0 !important;
        border-top: 2px solid var(--rule);
        padding-top: 20px;
    }
    .manifesto-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .footer-grid {
        grid-template-columns: 1fr 1fr !important;
    }
    .subscribe-grid {
        grid-template-columns: 1fr !important;
    }
    .subscribe-input-row {
        flex-direction: column !important;
    }
    .subscribe-input-row input {
        min-width: 0 !important;
        width: 100% !important;
    }
    .nav-scroll {
        overflow-x: auto;
    }
    .masthead-top {
        display: none !important;
    }
    .masthead-grid {
        grid-template-columns: 1fr auto !important;
    }
    .masthead-right {
        display: none !important;
    }
    .page-banner-title {
        font-size: clamp(36px, 8vw, 72px) !important;
    }
    .review-hero-title {
        font-size: clamp(40px, 8vw, 96px) !important;
    }
    .review-cols {
        column-count: 1 !important;
    }
    .review-prose-cols {
        grid-template-columns: 1fr !important;
    }
    .kicker-bar {
        display: none !important;
    }
}
@media (max-width: 600px) {
    .grid-3col {
        grid-template-columns: 1fr !important;
    }
    .grid-2col {
        grid-template-columns: 1fr !important;
    }
    main {
        padding: 16px 16px 0 !important;
    }
    .cover-hero {
        padding: 0 !important;
    }
}

[data-route] {
    cursor: pointer;
}
article[data-route]:hover {
    opacity: 0.92;
}
