@font-face {
    font-family: 'OpenDyslexic';
    src: url('fonts/OpenDyslexic-Regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'OpenDyslexic';
    src: url('fonts/OpenDyslexic-Bold.otf') format('opentype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'OpenDyslexic';
    src: url('fonts/OpenDyslexic-Italic.otf') format('opentype');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'OpenDyslexic';
    src: url('fonts/OpenDyslexic-BoldItalic.otf') format('opentype');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

:root {
    --bg: oklch(0.3713 0.1703 268.97);
    --text: oklch(1 0 0);
    --link: oklch(0.968 0.211 109.77);
    --link-visited: oklch(0.900 0.111 109.77);
    --max-w: 650px;
    --font-family: 'Fira Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

[data-theme="light"] {
    --bg: oklch(0.97 0.015 85);
    --text: oklch(0.3713 0.1703 268.97);
    --link: oklch(0.38 0.211 109.77);
    --link-visited: oklch(0.32 0.111 109.77);
}

[data-font="dyslexic"] {
    --font-family: 'OpenDyslexic', sans-serif;
    letter-spacing: 0.05em;
    word-spacing: 0.1em;
    line-height: 1.8;
}

body {
    max-width: var(--max-w);
    margin: 40px auto;
    padding: 0 10px;
    font-family: var(--font-family);
    font-size: 1.125rem;
    color: var(--text);
    background: var(--bg);
}

h1,
h2,
h3 {
    line-height: 1.2
}

a {
    color: var(--link);
    text-decoration: underline;
}

a:visited {
    color: var(--link-visited);
}

a:hover,
a:focus {
    text-decoration: none;
}

.toggle-btn {
    background: transparent;
    border: 1px solid var(--text);
    color: var(--text);
    padding: 4px 8px;
    font-size: 0.85em;
    cursor: pointer;
    border-radius: 3px;
    margin-left: 10px;
}

.toggle-btn:hover {
    opacity: 0.8;
}

a.link-nostyle,
a.link-nostyle:visited {
    text-decoration: none;
    color: var(--text);
}

.post-card {
    margin-bottom: 2rem;
}

.post-banner {
    width: 100%;
    max-height: 300px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
    margin-bottom: 1rem;
}

.post-excerpt {
    margin: 0.75rem 0;
}

.post-divider {
    border: 0;
    height: 1px;
    background: var(--text);
    opacity: 0.2;
    margin: 2rem 0;
}

.read-more {
    font-weight: bold;
}

.social-nav {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-top: 0.5rem;
}

.social-nav a {
    display: inline-flex;
    align-items: center;
    color: var(--text);
    transition: opacity 0.2s ease;
}

.social-nav a:hover {
    opacity: 0.7;
}

.nav-icon {
    width: 22px;
    height: 22px;
}