:root {
    --color-page: #0A0A0B;
    --color-content: #C4C4C4;
    --color-link: #FFB000;
    --color-border: #222;
    --color-border-light: #111;
    --color-text-meta: #555;

    --font-mono: 'Courier New', Courier, monospace;
}

* {
    box-sizing: border-box;
}

body {
    background-color: var(--color-page);
    color: var(--color-content);
    font-family: var(--font-mono);
    margin: 0;
    line-height: 1.5;
    min-height: 100vh;
    padding: 1.5rem;
    /* p-6 */
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow-x: hidden;
}

@media (min-width: 768px) {
    body {
        padding: 3rem;
        /* md:p-12 */
    }
}

::selection {
    background: var(--color-link);
    color: #000;
}

/* Utilities equivalent */
.container {
    width: 100%;
    max-width: 42rem;
    /* max-w-2xl */
    margin-top: 3rem;
    /* mt-12 */
    margin-bottom: 6rem;
    /* mb-24 */
    display: flex;
    flex-direction: column;
    gap: 6rem;
    /* space-y-24 equivalent */
}

/* Header */
header {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    /* space-y-6 */
}

h1 {
    font-size: 1.125rem;
    /* text-lg */
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-content);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 1.5rem;
    /* pb-6 */
    display: inline-block;
    padding-left: 2rem;
    /* px-8 */
    padding-right: 2rem;
    margin: 0;
}

@media (min-width: 768px) {
    h1 {
        font-size: 1.25rem;
        /* md:text-xl */
    }
}

.subtitle {
    font-size: 0.75rem;
    /* text-xs */
    opacity: 0.5;
    font-style: italic;
    letter-spacing: 0.1em;
    /* tracking-widest */
}

/* Main Content */
main {
    display: flex;
    flex-direction: column;
    gap: 8rem;
    /* space-y-32 */
}

article {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    /* space-y-6 */
}

.log-date {
    font-size: 0.75rem;
    /* text-xs */
    color: var(--color-text-meta);
    font-weight: 700;
    letter-spacing: 0.1em;
    border-bottom: 1px solid var(--color-border-light);
    padding-bottom: 0.5rem;
    /* pb-2 */
    width: 8rem;
    /* w-32 */
}

h2 {
    font-size: 1.25rem;
    /* text-xl */
    margin: 0;
}

a.story-link {
    color: var(--color-link);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    /* decoration-1 */
    text-underline-offset: 4px;
    /* underline-offset-4 */
    transition: background-color 0.2s, color 0.2s;
}

a.story-link:hover {
    background-color: var(--color-link);
    color: black;
}

.story-content {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    font-size: 0.875rem;
    /* text-sm */
    line-height: 2rem;
    /* leading-8 */
    text-align: justify;
    opacity: 0.9;
}

/* Redacted */
.redacted {
    background-color: #000;
    color: #000;
    padding: 0 2px;
    user-select: none;
}

.redacted:hover {
    cursor: help;
}

/* Footer */
footer {
    padding-top: 4rem;
    /* pt-16 */
    padding-bottom: 2rem;
    /* pb-8 */
    border-top: 1px solid #1a1a1b;
    text-align: center;
}

.back-link {
    font-size: 0.75rem;
    color: var(--color-text-meta);
    transition: color 0.2s;
    text-decoration: none;
}

.back-link:hover {
    color: var(--color-link);
}

/* Markdown specific styles */
.markdown-body h1,
.markdown-body h2,
.markdown-body h3 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-weight: bold;
    color: var(--color-content);
}

.markdown-body p {
    margin-bottom: 1.5rem;
}

/* Images */
.figure-container {
    margin-top: 2.5rem;
    margin-bottom: 2.5rem;
    width: 16rem;
    /* w-64 */
    border: 1px solid var(--color-border);
    padding: 0.5rem;
    background-color: black;
    transform: rotate(1deg);
}

@media (min-width: 768px) {
    .figure-container {
        transform: rotate(1deg) translateX(2rem);
    }
}

.figure-img {
    width: 100%;
    height: auto;
    filter: grayscale(100%) contrast(150%) brightness(75%) sepia(50%);
}

.figure-caption {
    font-size: 0.625rem;
    /* text-[10px] */
    text-align: center;
    margin-top: 0.5rem;
    color: #333;
    font-style: italic;
}