:root {
    --primary: #8B0000;
    --accent: #444444;
    --background: #F8F8F8;
    --text: #000000;
    --font-serif: Georgia, "Times New Roman", Times, serif;
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    /* Spacing. There was no scale, so every margin was an independent guess and
       the page had no vertical rhythm to fall back on. */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 14px;
    --space-4: 22px;
    --space-5: 34px;
    --space-6: 52px;

    /* Measure. Long prose set across a 1200px container is the single biggest
       reason this site read as a wall of text. */
    --measure: 68ch;
    --measure-narrow: 56ch;
    --measure-deck: 34em;

    /* Surfaces and rules, previously spread over a dozen ad-hoc greys. */
    --surface: #ffffff;
    --surface-alt: #fafafa;
    --surface-sunken: #f2f2f2;
    --border: #e2e2e2;
    --border-soft: #ececec;
    --border-hair: #f0f0f0;
    --muted: #666666;
    --muted-soft: #888888;
    --radius: 4px;
    --radius-lg: 6px;
    --radius-pill: 999px;

    /* One outcome vocabulary, shared by vote pills, agenda badges, sidebar dots
       and the decision ledger, so "approved" looks the same everywhere. */
    --ok-bg: #e8f5e9;
    --ok-fg: #1b5e20;
    --ok-line: #a5d6a7;
    --no-bg: #ffebee;
    --no-fg: #b71c1c;
    --no-line: #ef9a9a;
    --warn-bg: #fff3e0;
    --warn-fg: #e65100;
    --warn-line: #ffcc80;
    --neutral-bg: #f0f0f0;
    --neutral-fg: #555555;
    --neutral-line: #e0e0e0;
}

body {
    font-family: var(--font-sans);
    background: var(--background);
    color: var(--text);
    margin: 0 auto;
    padding: 40px;
    max-width: 800px;
}

.logo {
    font-family: var(--font-sans);
    color: var(--primary);
    font-size: 50px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 2px;
    display: inline-block;
    position: relative;
}

.landing {
    text-align: center;
    padding-top: 12vh;
}

.site-logo {
    margin-bottom: 8px;
    color: var(--primary);
}

.eye-icon {
    width: 40px;
    height: 25px;
}

.landing .site-title {
    font-size: 42px;
    font-weight: bold;
    color: var(--primary);
    margin-top: 0;
    letter-spacing: 1px;
}

.landing .slogan {
    font-size: 20px;
    font-weight: 400;
    color: #777;
    margin-top: 6px;
    font-style: italic;
}

.sessions-list {
    margin-top: 48px;
}

.sessions-heading {
    font-size: 16px;
    font-weight: 600;
    color: var(--accent);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 16px;
}

.sessions-ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sessions-ul li {
    padding: 10px 0;
    border-bottom: 1px solid #e0e0e0;
}

.sessions-ul li:first-child {
    border-top: 1px solid #e0e0e0;
}

.sessions-ul li a {
    color: var(--primary);
    text-decoration: none;
    font-size: 16px;
}

.sessions-ul li a:hover {
    text-decoration: underline;
}

.contact {
    margin-top: 48px;
    font-size: 14px;
    color: #999;
}

.contact a {
    color: #999;
    text-decoration: none;
}

.contact a:hover {
    color: var(--primary);
}
