/* The only site stylesheet. Colours and type are variables here; change them in one place. */
:root {
    color-scheme: light;
    --bg: #f6f1e7;
    --surface: #fffdf8;
    --ink: #23201b;
    --muted: #6a6257;
    --line: #ddd3c1;
    --accent: #7a4a21;
    --font-display: Georgia, "Times New Roman", serif;
    --font-body: "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
    --gutter: clamp(1.25rem, 5vw, 3rem);
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 1.0625rem;
    line-height: 1.65;
}

a { color: var(--accent); text-underline-offset: 0.2em; }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.skip-link {
    position: absolute;
    left: -999px;
    top: 0;
    padding: 0.5rem 1rem;
    background: var(--ink);
    color: var(--bg);
}
.skip-link:focus { left: 0; z-index: 10; }

.site-header {
    padding: 1.25rem var(--gutter);
    border-bottom: 1px solid var(--line);
}

.site-brand {
    display: inline-flex;
    flex-direction: column;
    color: var(--ink);
    text-decoration: none;
}
.site-brand__name { font-family: var(--font-display); font-size: 1.25rem; }
.site-brand__tag {
    color: var(--muted);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

main { flex: 1; display: grid; align-items: center; }

.hero {
    width: 100%;
    max-width: 46rem;
    margin: 0 auto;
    padding: clamp(3rem, 12vh, 7rem) var(--gutter);
}
.hero__eyebrow {
    margin: 0 0 1rem;
    color: var(--accent);
    font-size: 0.8125rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.hero__title {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.5rem, 9vw, 4.5rem);
    line-height: 1.05;
    text-wrap: balance;
}
.hero__roles {
    margin: 1rem 0 0;
    font-family: var(--font-display);
    font-style: italic;
    font-size: clamp(1.125rem, 3vw, 1.5rem);
    color: var(--muted);
}
.hero__text { max-width: 34rem; margin: 2rem 0 0; }

.site-footer {
    padding: 1.5rem var(--gutter);
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.875rem;
}
.site-footer p { margin: 0.25rem 0; }
