/* Modern reset + base typography */
*, *::before, *::after { box-sizing: border-box; }

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

html {
    -webkit-text-size-adjust: 100%;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    font-size: var(--fs-md);
    line-height: var(--lh-normal);
    color: var(--color-text);
    background: var(--color-surface);
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

main.page { flex: 1; min-width: 0; overflow-x: hidden; }

img, svg, video { max-width: 100%; display: block; }
img { height: auto; }

button { font: inherit; color: inherit; cursor: pointer; }
input, textarea, select, button { font-family: inherit; }

a {
    color: var(--color-navy-500);
    text-decoration: none;
    transition: color var(--t-fast);
}
a:hover { color: var(--color-orange); }

h1, h2, h3, h4, h5 {
    font-family: var(--font-display);
    font-weight: 800;
    line-height: var(--lh-tight);
    letter-spacing: -0.02em;
    margin: 0 0 var(--sp-4);
    color: var(--color-text);
}
h1 { font-size: var(--fs-display); letter-spacing: -0.035em; font-weight: 900; }
h2 { font-size: var(--fs-3xl);     letter-spacing: -0.025em; }
h3 { font-size: var(--fs-2xl);     letter-spacing: -0.02em;  }
h4 { font-size: var(--fs-xl);      letter-spacing: -0.015em; }

p { margin: 0 0 var(--sp-4); }

ul, ol { margin: 0 0 var(--sp-4); padding-left: var(--sp-6); }

hr {
    border: 0;
    height: 1px;
    background: var(--color-border);
    margin: var(--sp-12) 0;
}

code, pre {
    font-family: var(--font-mono);
    font-size: 0.92em;
}

::selection {
    background: var(--color-orange);
    color: var(--color-white);
}

:focus-visible {
    outline: 2px solid var(--color-orange);
    outline-offset: 2px;
    border-radius: var(--r-xs);
}

.muted { color: var(--color-muted); }
.center { text-align: center; }
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); border: 0;
}
