*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } :root { --font-body: Georgia, "Times New Roman", serif; --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; --color-bg: #fdfdfd; --color-text: #1a1a1a; --color-muted: #6b6b6b; --color-border: #e0e0e0; --color-link: #1a1a1a; --color-link-hover: #555; --max-width: 960px; --sidebar-width: 200px; } html { font-size: 18px; line-height: 1.6; } body { font-family: var(--font-body); color: var(--color-text); background: var(--color-bg); max-width: var(--max-width); margin: 0 auto; padding: 2rem 1.5rem; } a { color: var(--color-link); text-decoration: none; border-bottom: 1px solid var(--color-border); } a:hover { color: var(--color-link-hover); border-bottom-color: var(--color-muted); } /* header */ .site-header { margin-bottom: 2rem; } .site-title { font-family: var(--font-ui); font-size: 1rem; font-weight: 600; letter-spacing: 0.02em; border-bottom: none; } /* layout */ .site-layout { display: grid; grid-template-columns: 1fr var(--sidebar-width); gap: 3rem; } /* main content */ .content h1 { font-size: 1.6rem; line-height: 1.25; margin-bottom: 0.25rem; } .column-header time { font-family: var(--font-ui); font-size: 0.8rem; color: var(--color-muted); } /* images */ .column-hero { margin-bottom: 1.5rem; } .column-hero picture, .column-hero img { display: block; width: 100%; height: auto; } .column-body picture, .column-body img { display: block; max-width: 100%; height: auto; margin: 1.5rem 0; } .column-body { margin-top: 1.5rem; } .column-body h2 { font-size: 1.2rem; margin-top: 2rem; margin-bottom: 0.5rem; } .column-body h3 { font-size: 1rem; margin-top: 1.5rem; margin-bottom: 0.5rem; } .column-body p { margin-bottom: 1rem; } .column-body blockquote { border-left: 3px solid var(--color-border); padding-left: 1rem; color: var(--color-muted); margin-bottom: 1rem; } .column-body ul, .column-body ol { margin-bottom: 1rem; padding-left: 1.5rem; } .column-body pre { background: #f5f5f5; padding: 1rem; overflow-x: auto; margin-bottom: 1rem; font-size: 0.85rem; line-height: 1.5; } .column-body code { font-size: 0.85em; } .column-body hr { border: none; border-top: 1px solid var(--color-border); margin: 2rem 0; } /* sidebar */ .sidebar { font-family: var(--font-ui); font-size: 0.8rem; } .sidebar h2 { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-muted); margin-bottom: 0.75rem; } .sidebar .year-label { font-size: 0.75rem; font-weight: 600; color: var(--color-muted); margin-top: 0.75rem; margin-bottom: 0.25rem; } .sidebar ul { list-style: none; } .sidebar li { margin-bottom: 0.3rem; } .sidebar a { border-bottom: none; color: var(--color-muted); } .sidebar a:hover { color: var(--color-text); } /* footer */ .site-footer { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); } .footer-nav { font-family: var(--font-ui); font-size: 0.8rem; display: flex; gap: 1.5rem; } .footer-nav a { color: var(--color-muted); border-bottom: none; } .footer-nav a:hover { color: var(--color-text); } /* responsive */ @media (max-width: 640px) { html { font-size: 16px; } .site-layout { grid-template-columns: 1fr; gap: 2rem; } .sidebar { order: 1; border-top: 1px solid var(--color-border); padding-top: 1.5rem; } }