/* JoS QUANTUM — shared brand tokens & base typography */

:root {
    --jos-black:        #000000;
    --jos-charcoal:     #111111;
    --jos-graphite:     #4A4A4A;
    --jos-slate:        #8A8A8A;
    --jos-mist:         #E5E5E5;
    --jos-smoke:        #F0F0F0;
    --jos-paper:        #FAFAFA;
    --jos-white:        #FFFFFF;

    --jos-bg:           var(--jos-white);
    --jos-bg-alt:       var(--jos-paper);
    --jos-bg-dark:      var(--jos-charcoal);
    --jos-text:         var(--jos-black);
    --jos-text-muted:   var(--jos-graphite);
    --jos-text-faint:   var(--jos-slate);
    --jos-border:       var(--jos-mist);

    --jos-font-display: 'Jost', 'Century Gothic', 'Futura', sans-serif;
    --jos-font-body:    'Inter', 'Helvetica Neue', Arial, sans-serif;
    --jos-font-mono:    'JetBrains Mono', 'Fira Code', Consolas, monospace;

    --jos-radius-sm: 4px;
    --jos-radius-md: 8px;
    --jos-transition: 0.2s ease;
}

* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--jos-font-body);
    font-size: 17px;
    line-height: 1.6;
    color: var(--jos-text);
    background-color: var(--jos-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
    font-family: var(--jos-font-display);
    color: var(--jos-text);
    margin: 0 0 16px 0;
    letter-spacing: -0.005em;
}

h1 {
    font-weight: 300;
    font-size: 48px;
    line-height: 1.05;
    letter-spacing: -0.01em;
}

h2 {
    font-weight: 400;
    font-size: 32px;
    line-height: 1.1;
}

h3 {
    font-weight: 500;
    font-size: 22px;
    line-height: 1.2;
}

h4 {
    font-family: var(--jos-font-body);
    font-weight: 600;
    font-size: 18px;
    line-height: 1.3;
}

p {
    margin: 0 0 16px 0;
}

code, pre, .mono {
    font-family: var(--jos-font-mono);
    font-size: 14px;
}

a {
    color: var(--jos-black);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity var(--jos-transition);
}

a:hover {
    opacity: 0.6;
}

hr {
    border: none;
    border-top: 1px solid var(--jos-border);
    margin: 32px 0;
}

.jos-eyebrow {
    font-family: var(--jos-font-body);
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--jos-graphite);
}

.jos-eyebrow--on-dark {
    color: var(--jos-slate);
}

.jos-button {
    background-color: var(--jos-black);
    color: var(--jos-white);
    font-family: var(--jos-font-body);
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.01em;
    padding: 14px 28px;
    border-radius: var(--jos-radius-sm);
    border: none;
    cursor: pointer;
    transition: opacity var(--jos-transition);
}

.jos-button:hover:not(:disabled) {
    opacity: 0.8;
}

.jos-button:disabled {
    cursor: not-allowed;
    opacity: 0.4;
}

@media (max-width: 768px) {
    body { font-size: 16px; }
    h1 { font-size: 36px; }
    h2 { font-size: 26px; }
    h3 { font-size: 20px; }
}
