/* Reset and base styles */
* { box-sizing: border-box; margin: 0; padding: 0; }

html {
    font-size: 16px;
    overflow-y: scroll;
    scroll-behavior: smooth;
}

body {
    font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.25rem;
    line-height: 1.45;
    letter-spacing: -0.01em;
    color: #111;
    max-width: 64ch;
    margin: 6em auto 8em;
    padding: 0 1em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Typography */
h1, h2, p { margin-bottom: 1em; }
h1, h2 { font-size: 1em; font-weight: 400; }
h1 { font-weight: 600; margin-bottom: 0.1em; line-height: 1.1; }
strong, b { font-weight: 600; }

/* Layout */
.hero, .content, .notes, .next { margin-bottom: 3.2em; }

/* Links */
a {
    color: inherit;
    text-decoration: underline;
    transition: color 0.2s ease;
    text-underline-offset: 0.125em;
    text-decoration-thickness: 0.0625em;
    cursor: pointer;
}

a:hover { color: #0969da; }

/* Notes list */
.notes-list {
    margin-bottom: 1.6em 0;
}

.note-item {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.2em;
}

.note-item .date {
    color: #666;
    flex-shrink: 0;
}

/* Footer */
.footer { color: #666; }

/* Utility classes */
.mb-0 { margin-bottom: 0; }
.mb-4 { margin-bottom: 0.2em; }
.mb-32 { margin-bottom: 1.6em; }
.uppercase { text-transform: uppercase; }

/* Blockquote */
blockquote {
    border-left: 0.15em solid #333;
    margin-bottom: 1em;
    padding-left: 1em;
    font-style: italic;
}

blockquote p { margin-bottom: 0.5em; }
blockquote p:last-child { margin-bottom: 0; }

/* Lists */
ul, ol {
  margin: 0 0 1.6em 0;
  padding: 0;
  list-style-position: outside;
  list-style: none;
}

li {
  margin-bottom: 0.5em;
  margin-left: 1.5em;
}

ul > li {
  position: relative;
}

ul > li::before {
  content: "•";
  position: absolute;
  left: -1em;
}

ol {
  counter-reset: item;
}

ol > li {
  display: block;
  position: relative;
}

ol > li::before {
  content: counter(item) ".";
  counter-increment: item;
  position: absolute;
  left: -1.5em;
}

/* Images */
img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1em auto;
}

hr {
    display: block;
    margin: 0 auto 3rem;
    width: 100%;
    height: 1px;
    background: #333;
}

/* Post-specific styles */
.post-container {
    padding: 0;
}

.post-header { margin-bottom: 64px; }

.post-breadcrumb {
    font-size: 16px;
    line-height: 1.1;
    font-weight: 500;
    margin-bottom: 32px;
    color: #666;
}

.post-breadcrumb a {
    color: #666;
    text-decoration: none;
}

.post-breadcrumb a:hover {
    color: #007aff;
}

.post-title {
    font-size: 32px;
    line-height: 1.1;
    margin-bottom: 12px;
    font-weight: 500;
}

.post-content {
    margin-bottom: 80px;
}

.post-content p {
    font-size: 20px;
    line-height: 1.55;
    margin-bottom: 32px;
}

.post-content h2 {
    font-size: 24px;
    line-height: 1.2;
    margin-top: 40px;
    margin-bottom: 12px;
    font-weight: 500;
}

.post-content h3 {
    font-size: 20px;
    line-height: 1.2;
    margin-top: 24px;
    margin-bottom: 12px;
    font-weight: 500;
}

.post-content ul,
.post-content ol {
  margin-bottom: 1.6em;
}

.post-content li {
  font-size: 20px;
  line-height: 1.55;
  margin-left: 1.5em;
}

.post-footer {
    margin-top: 8em;
    margin-bottom: 5em;
}

.back-link { font-size: 20px; }

.site-footer {
    margin-bottom: 5em;
    font-size: 20px;
    color: #666;
}
