:root {
    --forest: #1b3022;
    --moss: #4a5d23;
    --sunlight: #f4d35e;
    --parchment: #fdfaf5;
    --light-moss: #e3e8de;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: transparent;
    font-family: "Courier New", Courier, monospace;
    color: var(--forest);
    line-height: 1.8;
    overflow-x: hidden;
    overflow-y: auto;
}

/* =====================================================
   PAGE WRAPPER
===================================================== */
.page-padding {
    padding: 40px 50px;
}

/* =====================================================
   HEADER
===================================================== */
header {
    text-align: center;
    margin-bottom: 15px;
    padding-bottom: 8px;
    position: relative;
}

/* Double-rule header border — like an old manuscript */
header::after {
    content: "";
    display: block;
    margin-top: 16px;
    height: 4px;
    background:
        linear-gradient(to right, transparent, var(--moss) 15%, var(--moss) 85%, transparent) top / 100% 1px no-repeat,
        linear-gradient(to right, transparent, var(--sunlight) 25%, var(--sunlight) 75%, transparent) bottom / 70% 1px no-repeat;
}

/* =====================================================
   HEADINGS
===================================================== */
h1 {
    color: var(--forest);
    text-shadow: 2px 2px 0px var(--sunlight);
    margin: 0;
    letter-spacing: 4px;
}

h2 {
    color: var(--forest);
    border-left: 5px solid var(--sunlight);
    padding-left: 14px;
    margin-top: 1em;
    background: linear-gradient(to right, rgba(244,211,94,0.08), transparent 60%);
    padding-top: 4px;
    padding-bottom: 4px;
}

/* =====================================================
   BODY TEXT
===================================================== */
p {
    margin-top: 0;
    margin-bottom: 0.5em;
}

/* =====================================================
   SECTION SPACING
===================================================== */
section {
    margin-bottom: 0..25em;
    padding-bottom: 0.125em;
    border-bottom: 1px dotted rgba(74, 93, 35, 0.2);
}

section:last-of-type {
    border-bottom: none;
}

/* =====================================================
   LINKS
===================================================== */
a {
    color: var(--forest);
    text-decoration-color: var(--sunlight);
    text-decoration-thickness: 2px;
}

a:hover {
    color: var(--moss);
}

/* =====================================================
   BLOCKQUOTE — for philosophical passages
===================================================== */
blockquote {
    margin: 2em 0;
    padding: 16px 24px;
    border-left: 4px solid var(--sunlight);
    background: rgba(244,211,94,0.07);
    font-style: italic;
    color: var(--forest);
}

blockquote cite {
    display: block;
    margin-top: 8px;
    font-size: 0.82rem;
    opacity: 0.7;
    font-style: normal;
}

/* =====================================================
    HAVEN QUOTE STYLE
===================================================== */
.haven-quote {
    background: linear-gradient(135deg, rgba(27,48,34,0.06) 0%, rgba(27,48,34,0.01) 100%);
    border-left: 5px double #f4d35e;
    padding: 20px 25px 20px 45px;
    margin: 2em 15px;
    color: #1b3022;
    box-shadow: inset 2px 2px 8px rgba(0,0,0,0.03);
    position: relative;
}

.haven-quote::before {
    content: '"';
    font-size: 5em;
    color: rgba(244, 211, 94, 0.4);
    position: absolute;
    top: -15px;
    left: 5px;
    font-family: Georgia, serif;
    line-height: 1;
}

.haven-quote p {
    margin: 0;
    font-size: 1.05em;
    line-height: 1.6;
    font-style: italic;
    position: relative;
    z-index: 1;
}

.haven-quote cite {
    display: block;
    text-align: right;
    margin-top: 15px;
    font-weight: bold;
    font-size: 0.85em;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #1b3022;
}

/* =====================================================
   THE WATERMARK
===================================================== */
.watermark-coil {
    position: fixed;
    bottom: -10vw; /* Tucks it partially off the bottom edge */
    right: -10vw;  /* Tucks it partially off the right edge */
    width: 60vw;   /* Makes it massive */
    max-width: 800px;
    opacity: 0.1; /* Extremely faint so it doesn't distract */
    pointer-events: none; /* Ensures you can click text through it */
    z-index: 0; /* Keeps it behind everything else */
    /* Shifts black to the Haven Gold */
    filter: invert(85%) sepia(43%) saturate(543%) hue-rotate(352deg) brightness(104%) contrast(93%);
}

/* =====================================================
   THE SECTION DIVIDER
===================================================== */
.ornament-coil {
    display: block;
    margin: 3.5em auto;
    width: 30px;
    height: auto;
    opacity: 0.9;
    filter: invert(85%) sepia(43%) saturate(543%) hue-rotate(352deg) brightness(104%) contrast(93%);
    border: none;
}

/* =====================================================
   CURRENTLY READING LOG
===================================================== */
.reading-log {
    display: flex;
    gap: 20px;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px dotted rgba(74, 93, 35, 0.3);
}

.reading-card {
    flex: 1;
    background: rgba(253, 250, 245, 0.6);
    border: 1px solid rgba(74, 93, 35, 0.2);
    padding: 16px 20px;
    border-radius: 4px;
    box-shadow: inset 2px 2px 8px rgba(0,0,0,0.02);
}

.reading-card .curator {
    display: block;
    font-size: 1rem;
    color: var(--moss);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 8px;
    font-weight: bold;
}

.reading-card .book-title {
    font-weight: bold;
    color: var(--forest);
    font-size: 1.1rem;
    margin-bottom: 4px;
    line-height: 1.3;
}

.reading-card .book-author {
    font-style: italic;
    font-size: 0.85rem;
    color: var(--forest);
    opacity: 0.8;
}