:root { --paper: #f4f1ea; --paper-green: #eef2ec; --paper-dark: #e8e4db; --ink: #1a1a1a; --ink-soft: #3a3a3a; --green: #1d3b2a; --green-deep: #0f2418; --blue: #1a3a5c; --electric: #0044cc; --lime: #9bb83d; --red: #a83232; --gray: #888; --line: #c8c4bc; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Georgia', 'Times New Roman', serif; background: var(--paper); color: var(--ink); line-height: 1.6; -webkit-font-smoothing: antialiased; } /* ─── Index ─── */ .index-wrap { max-width: 720px; margin: 0 auto; padding: 80px 40px 120px; } .index-header { border-bottom: 1px solid var(--line); padding-bottom: 32px; margin-bottom: 48px; } .index-title { font-size: 14px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gray); font-family: 'Helvetica Neue', sans-serif; margin-bottom: 12px; } .index-title b { color: var(--ink); } .index-meta { font-size: 12px; color: var(--gray); font-family: 'Helvetica Neue', sans-serif; letter-spacing: 0.05em; } .index-nav { display: flex; gap: 32px; margin-top: 20px; } .index-nav a { font-size: 13px; font-family: 'Helvetica Neue', sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--ink); padding-bottom: 2px; } .index-nav a:hover { color: var(--electric); border-color: var(--electric); } .blog-list { list-style: none; } .blog-item { border-top: 1px solid var(--line); padding: 32px 0; display: grid; grid-template-columns: 48px 1fr 120px; gap: 24px; align-items: baseline; } .blog-item:last-child { border-bottom: 1px solid var(--line); } .blog-num { font-size: 13px; font-family: 'Helvetica Neue', sans-serif; color: var(--gray); letter-spacing: 0.1em; } .blog-title { font-size: 28px; font-weight: 400; letter-spacing: -0.01em; color: var(--ink); } .blog-title a { color: inherit; text-decoration: none; } .blog-title a:hover { color: var(--electric); } .blog-sub { font-size: 15px; color: var(--ink-soft); margin-top: 6px; font-style: italic; } .blog-tag { font-size: 11px; font-family: 'Helvetica Neue', sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gray); text-align: right; } .index-footer { margin-top: 80px; font-size: 11px; font-family: 'Helvetica Neue', sans-serif; color: var(--gray); letter-spacing: 0.1em; text-transform: uppercase; } /* ─── Shared blog page styles ─── */ .blog-wrap { max-width: 680px; margin: 0 auto; padding: 80px 40px 120px; } .blog-back { font-size: 12px; font-family: 'Helvetica Neue', sans-serif; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gray); text-decoration: none; margin-bottom: 64px; display: inline-block; } .blog-back:hover { color: var(--ink); }