html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--gjr-surface);
    color: var(--gjr-text);
    font-family: var(--gjr-font-body);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

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

a {
    color: inherit;
}

img {
    max-width: 100%;
    height: auto;
}

.gjr-container {
    width: min(calc(100% - 48px), var(--gjr-container));
    margin-inline: auto;
}

.gjr-display,
.gjr-heading {
    margin: 0;
    color: var(--gjr-primary);
    font-family: var(--gjr-font-display);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: 0.02em;
}

.gjr-display {
    font-size: clamp(4rem, 8vw, 8rem);
}

.gjr-heading {
    font-size: clamp(2.5rem, 5vw, 5rem);
}

/* ==========================================================
   G.J. RANGER EDITORIAL BACKGROUND SYSTEM — v0.7.1
   A subtle shared canvas: Jack blue at the upper-left,
   Noah warmth at the lower-right, with a faint briefing grid.
========================================================== */
body {
    background-color: var(--gjr-off-white);
    background-image:
        radial-gradient(circle at 2% 16%, rgba(22, 58, 82, .065) 0, rgba(22, 58, 82, 0) 40%),
        radial-gradient(circle at 98% 82%, rgba(200, 106, 34, .055) 0, rgba(200, 106, 34, 0) 38%),
        repeating-linear-gradient(90deg, rgba(45, 89, 117, .018) 0, rgba(45, 89, 117, .018) 1px, transparent 1px, transparent 112px),
        repeating-linear-gradient(0deg, rgba(45, 89, 117, .015) 0, rgba(45, 89, 117, .015) 1px, transparent 1px, transparent 112px),
        linear-gradient(180deg, #fff 0%, #fafaf8 20%, var(--gjr-off-white) 52%, #faf9f6 78%, #fff 100%);
    background-attachment: fixed;
    background-size: auto, auto, auto, auto, auto;
}

.gjr-site-main {
    position: relative;
    isolation: isolate;
    background: transparent;
}

/* Soft editorial separators keep the page flowing as one composition. */
.gjr-books,
.gjr-briefings {
    border-top: 1px solid rgba(22, 58, 82, .055);
}

@media (max-width: 900px), (prefers-reduced-motion: reduce) {
    body {
        background-attachment: scroll;
    }
}
