/* --- Color System (Light Mode by Default) --- */
:root {
    --bg-color: hsl(30, 20%, 98%);       /* Eggshell white */
    --text-color: hsl(0, 0%, 15%);       /* Off-black */
    --text-heading: hsl(0, 0%, 5%);
    --text-muted: hsl(0, 0%, 45%);
    
    --link-color: hsl(220, 70%, 40%);    /* Classic soft blue */
    --link-hover: hsl(220, 80%, 30%);
    
    --border-color: hsl(0, 0%, 85%);
}

/* --- Native Dark Mode --- */
@media (prefers-color-scheme: dark) {
    :root {
        --bg-color: hsl(0, 0%, 10%);     /* Charcoal black */
        --text-color: hsl(0, 0%, 85%);   /* Soft off-white */
        --text-heading: hsl(0, 0%, 95%);
        --text-muted: hsl(0, 0%, 55%);
        
        --link-color: hsl(210, 80%, 70%); /* Lighter blue for visibility */
        --link-hover: hsl(210, 90%, 80%);
        
        --border-color: hsl(0, 0%, 25%);
    }
}

/* --- Base Styling --- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: Georgia, Cambria, "Times New Roman", Times, serif;
    background-color: var(--bg-color);
    color: var(--text-color);
    line-height: 1.7;
    padding: 80px 24px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* --- Layout Container --- */
.content-wrapper {
    max-width: 600px;
    margin: 0 auto;
}

/* --- Typography --- */
.title {
    font-size: 1.8rem;
    font-weight: 500;
    color: var(--text-heading);
    margin-bottom: 24px;
    font-family: system-ui, -apple-system, sans-serif;
    letter-spacing: -0.02em;
}


p {
    margin-bottom: 16px;
    font-size: 1.05rem;
}

/* --- Link Formatting --- */
a {
    color: var(--link-color);
    text-decoration: none;
    border-bottom: 1px solid var(--link-color);
    transition: border-color 0.15s ease, color 0.15s ease;
}

a:hover {
    color: var(--link-hover);
    border-bottom-color: var(--link-hover);
}

/* --- Book List --- */
.book-list {
    list-style-type: disc;
    padding-left: 20px;
    margin-bottom: 24px;
}

.book-list li {
    font-size: 1.05rem;
    margin-bottom: 6px;
}

/* --- Responsiveness --- */
@media (max-width: 640px) {
    body {
        padding: 40px 16px;
    }
    
    .title {
        font-size: 1.6rem;
    }
}
