:root {
    --font-serif: 'Lora', Georgia, 'Times New Roman', Times, serif;
    --font-sans: 'Source Sans Pro', sans-serif;
    --color-primary-text: var(--color-darker-gray);
    --color-secondary-text-dark: rgba(0, 0, 0, 0.4);
    --color-secondary-text-light: hsla(0, 0%, 100%, 0.64);
    --color-secondary-text: var(--color-secondary-text-dark);
    --color-white: #fff;
    --color-lighter-gray: #f6f6f6;
    --color-light-gray: #e6e6e6;
    --color-mid-gray: #ccc;
    --color-dark-gray: #444;
    --color-darker-gray: #15171a;
    --color-black: #000;
    --color-border: rgba(0, 0, 0, 0.08);
    --content-font-size: 0.95rem;
}

body {
    font-family: var(--font-sans);
    line-height: 1.5;
    margin: 0;
    padding: 15px;
    color: var(--color-primary-text);
    max-width: 750px;
    margin: 0 auto;
    font-size: calc(var(--content-font-size) * var(--font-multiplier, 1));
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, blockquote {
    font-family: var(--font-serif);
    letter-spacing: -0.01em;
}

h1 {
    color: var(--color-darker-gray);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 8px;
    margin-bottom: 15px;
    font-size: calc(clamp(2rem, 1.2vw + 1.5rem, 2.8rem) * var(--font-multiplier, 1));
    line-height: 1.1;
}

.entries {
    position: relative;
}

.entry {
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
    transition: opacity 0.3s ease;
}

.entry.hidden {
    display: none;
}

.entries-fade {
    display: none;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 80px;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
    pointer-events: none;
}

.has-hidden-entries .entries-fade {
    display: block;
}

.show-more {
    display: none;
    text-align: center;
    margin: 15px 0;
}

.has-hidden-entries .show-more {
    display: block;
}

.show-more button {
    font-family: var(--font-sans);
    background: none;
    border: 1px solid var(--color-border);
    padding: 8px 16px;
    border-radius: 20px;
    color: var(--color-darker-gray);
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.show-more button:hover {
    background: var(--color-lighter-gray);
}

.entry h2 {
    margin: 0 0 3px 0;
    font-size: calc(1.4rem * var(--font-multiplier, 1));
    font-weight: 700;
    letter-spacing: -0.005em;
    line-height: 1.2;
}

.entry h2 a {
    text-decoration: none;
    color: var(--color-darker-gray);
}

.entry h2 a:hover {
    text-decoration: underline;
    opacity: 0.8;
}

.meta {
    font-size: calc(0.85rem * var(--font-multiplier, 1));
    color: var(--color-secondary-text);
    line-height: 1.1;
}

.keyword {
    background-color: #ffffcc;
    padding: 0 2px;
    border-radius: 0.25em;
}

blockquote {
    font-size: 1.9rem;
}

blockquote p {
    margin-bottom: 1em;
}

mark,
.hl,
.highlight,
article blockquote strong {
    background: #e0eefe;
}

em.highlight {
    font-style: normal;
}

article ul {
    margin: 2rem 0 0 0;
    padding-left: 0;
}

article ul li {
    margin: .5rem 2rem 0 0;
    list-style: none;
    padding: 12px 0;
    border-top: 1px solid #eee;
    line-height: 1.4em;
}

strong.highlight,
article blockquote strong {
    font-weight: normal;
}

.notification {
    background-color: #f0f7ff;
    border: 1px solid #e0eefe;
    border-radius: 6px;
    padding: 12px 16px;
    margin: 0 0 30px 0;
    color: var(--color-darker-gray);
    font-size: 0.9rem;
    line-height: 1.4;
}

.footer {
    background-color: var(--color-lighter-gray);
    border: 1px solid var(--color-border);
    margin-top: 35px;
    margin-bottom: 20px;
    padding: 20px;
    text-align: center;
    color: var(--color-secondary-text);
}

.footer a {
    color: var(--color-darker-gray);
    text-decoration: none;
}

.footer a:hover {
    text-decoration: underline;
}

.timestamp {
    font-size: 0.8rem;
    color: var(--color-secondary-text);
    margin: 50px 0 0 0;
    padding: 0 15px 15px 0;
    font-style: italic;
    text-align: right;
}
