@charset "UTF-8";
/** Reset some basic elements */
body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; }

/** Basic styling */
body { font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #111; background-color: #fdfdfd; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; }

/** Set `margin-bottom` to maintain vertical rhythm */
h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight { margin-bottom: 15px; }

/** `main` element */
main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ }

/** Images */
img { max-width: 100%; vertical-align: middle; }

/** Figures */
figure > img { display: block; }

figcaption { font-size: 14px; }

/** Lists */
ul, ol { margin-left: 30px; }

li > ul, li > ol { margin-bottom: 0; }

/** Headings */
h1, h2, h3, h4, h5, h6 { font-weight: 400; }

/** Links */
a { color: #2a7ae2; text-decoration: none; }

a:visited { color: #1756a9; }

a:hover { color: #111; text-decoration: underline; }

.social-media-list a:hover { text-decoration: none; }

.social-media-list a:hover .username { text-decoration: underline; }

/** Blockquotes */
blockquote { color: #828282; border-left: 4px solid #e8e8e8; padding-left: 15px; font-size: 18px; letter-spacing: -1px; font-style: italic; }

blockquote > :last-child { margin-bottom: 0; }

/** Code formatting */
pre, code { font-size: 15px; border: 1px solid #e8e8e8; border-radius: 3px; background-color: #eef; }

code { padding: 1px 5px; }

pre { padding: 8px 12px; overflow-x: auto; }

pre > code { border: 0; padding-right: 0; padding-left: 0; }

/** Wrapper */
.wrapper { max-width: -webkit-calc(800px - (30px * 2)); max-width: calc(800px - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; }

@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(800px - (30px)); max-width: calc(800px - (30px)); padding-right: 15px; padding-left: 15px; } }

/** Clearfix */
.footer-col-wrapper:after, .wrapper:after { content: ""; display: table; clear: both; }

/** Icons */
.svg-icon { width: 16px; height: 16px; display: inline-block; fill: #828282; padding-right: 5px; vertical-align: text-top; }

.social-media-list li + li { padding-top: 5px; }

/** Tables */
table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; border-collapse: collapse; border: 1px solid #e8e8e8; }

table tr:nth-child(even) { background-color: #f7f7f7; }

table th, table td { padding: 10px 15px; }

table th { background-color: #f0f0f0; border: 1px solid #dedede; border-bottom-color: #c9c9c9; }

table td { border: 1px solid #e8e8e8; }

/** Site header */
.site-header { border-top: 5px solid #424242; border-bottom: 1px solid #e8e8e8; min-height: 55.95px; position: relative; }

.site-title { font-size: 26px; font-weight: 300; line-height: 54px; letter-spacing: -1px; margin-bottom: 0; float: left; }

.site-title, .site-title:visited { color: #424242; }

.site-nav { float: right; line-height: 54px; }

.site-nav .nav-trigger { display: none; }

.site-nav .menu-icon { display: none; }

.site-nav .page-link { color: #111; line-height: 1.5; }

.site-nav .page-link:not(:last-child) { margin-right: 20px; }

@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 15px; background-color: #fdfdfd; border: 1px solid #e8e8e8; border-radius: 5px; text-align: right; } .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } .site-nav .menu-icon > svg { fill: #424242; } .site-nav input ~ .trigger { clear: both; display: none; } .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } .site-nav .page-link:not(:last-child) { margin-right: 0; } }

/** Site footer */
.site-footer { border-top: 1px solid #e8e8e8; padding: 30px 0; }

.footer-heading { font-size: 18px; margin-bottom: 15px; }

.contact-list, .social-media-list { list-style: none; margin-left: 0; }

.footer-col-wrapper { font-size: 15px; color: #828282; margin-left: -15px; }

.footer-col { float: left; margin-bottom: 15px; padding-left: 15px; }

.footer-col-1 { width: -webkit-calc(35% - (30px / 2)); width: calc(35% - (30px / 2)); }

.footer-col-2 { width: -webkit-calc(20% - (30px / 2)); width: calc(20% - (30px / 2)); }

.footer-col-3 { width: -webkit-calc(45% - (30px / 2)); width: calc(45% - (30px / 2)); }

@media screen and (max-width: 800px) { .footer-col-1, .footer-col-2 { width: -webkit-calc(50% - (30px / 2)); width: calc(50% - (30px / 2)); } .footer-col-3 { width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } }

@media screen and (max-width: 600px) { .footer-col { float: none; width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } }

/** Page content */
.page-content { padding: 30px 0; flex: 1; }

.page-heading { font-size: 32px; }

.post-list-heading { font-size: 28px; }

.post-list { margin-left: 0; list-style: none; }

.post-list > li { margin-bottom: 30px; }

.post-meta { font-size: 14px; color: #828282; }

.post-link { display: block; font-size: 24px; }

/** Posts */
.post-header { margin-bottom: 30px; }

.post-title { font-size: 42px; letter-spacing: -1px; line-height: 1; }

@media screen and (max-width: 800px) { .post-title { font-size: 36px; } }

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

.post-content h2 { font-size: 32px; }

@media screen and (max-width: 800px) { .post-content h2 { font-size: 28px; } }

.post-content h3 { font-size: 26px; }

@media screen and (max-width: 800px) { .post-content h3 { font-size: 22px; } }

.post-content h4 { font-size: 20px; }

@media screen and (max-width: 800px) { .post-content h4 { font-size: 18px; } }

/** Syntax highlighting styles */
.highlight { background: #fff; }

.highlighter-rouge .highlight { background: #eef; }

.highlight .c { color: #998; font-style: italic; }

.highlight .err { color: #a61717; background-color: #e3d2d2; }

.highlight .k { font-weight: bold; }

.highlight .o { font-weight: bold; }

.highlight .cm { color: #998; font-style: italic; }

.highlight .cp { color: #999; font-weight: bold; }

.highlight .c1 { color: #998; font-style: italic; }

.highlight .cs { color: #999; font-weight: bold; font-style: italic; }

.highlight .gd { color: #000; background-color: #fdd; }

.highlight .gd .x { color: #000; background-color: #faa; }

.highlight .ge { font-style: italic; }

.highlight .gr { color: #a00; }

.highlight .gh { color: #999; }

.highlight .gi { color: #000; background-color: #dfd; }

.highlight .gi .x { color: #000; background-color: #afa; }

.highlight .go { color: #888; }

.highlight .gp { color: #555; }

.highlight .gs { font-weight: bold; }

.highlight .gu { color: #aaa; }

.highlight .gt { color: #a00; }

.highlight .kc { font-weight: bold; }

.highlight .kd { font-weight: bold; }

.highlight .kp { font-weight: bold; }

.highlight .kr { font-weight: bold; }

.highlight .kt { color: #458; font-weight: bold; }

.highlight .m { color: #099; }

.highlight .s { color: #d14; }

.highlight .na { color: #008080; }

.highlight .nb { color: #0086B3; }

.highlight .nc { color: #458; font-weight: bold; }

.highlight .no { color: #008080; }

.highlight .ni { color: #800080; }

.highlight .ne { color: #900; font-weight: bold; }

.highlight .nf { color: #900; font-weight: bold; }

.highlight .nn { color: #555; }

.highlight .nt { color: #000080; }

.highlight .nv { color: #008080; }

.highlight .ow { font-weight: bold; }

.highlight .w { color: #bbb; }

.highlight .mf { color: #099; }

.highlight .mh { color: #099; }

.highlight .mi { color: #099; }

.highlight .mo { color: #099; }

.highlight .sb { color: #d14; }

.highlight .sc { color: #d14; }

.highlight .sd { color: #d14; }

.highlight .s2 { color: #d14; }

.highlight .se { color: #d14; }

.highlight .sh { color: #d14; }

.highlight .si { color: #d14; }

.highlight .sx { color: #d14; }

.highlight .sr { color: #009926; }

.highlight .s1 { color: #d14; }

.highlight .ss { color: #990073; }

.highlight .bp { color: #999; }

.highlight .vc { color: #008080; }

.highlight .vg { color: #008080; }

.highlight .vi { color: #008080; }

.highlight .il { color: #099; }

:root { --bg-color: #fdfdfd; --text-color: #111; --text-color-light: #828282; --brand-color: #2a7ae4; --brand-color-light: #4d94ff; --brand-color-dark: #1a5bb8; --grey-color: #828282; --grey-color-light: #e8e8e8; --grey-color-dark: #424242; --table-text-align: left; --content-width: 800px; --on-palm: 600px; --on-laptop: 800px; }

[data-theme="gruvbox-dark"] { --bg-color: #fdfdfd; --text-color: #111; --text-color-light: #828282; --brand-color: #2a7ae4; --brand-color-light: #4d94ff; --brand-color-dark: #1a5bb8; --grey-color: #828282; --grey-color-light: #e8e8e8; --grey-color-dark: #424242; }

[data-theme="gruvbox-dark"] { --bg-color: #282828; --text-color: #ebdbb2; --text-color-light: #d5c4a1; --brand-color: #458588; --brand-color-light: #83a598; --brand-color-dark: #076678; --grey-color: #928374; --grey-color-light: #3c3836; --grey-color-dark: #1d2021; --accent-red: #cc241d; --accent-green: #98971a; --accent-yellow: #d79921; --accent-orange: #d65d0e; --accent-purple: #b16286; --accent-aqua: #689d6a; }

[data-theme="solarized-light"] { --bg-color: #fdf6e3; --text-color: #657b83; --text-color-light: #586e75; --brand-color: #268bd2; --brand-color-light: #4aa5d8; --brand-color-dark: #1c6bb0; --grey-color: #93a1a1; --grey-color-light: #eee8d5; --grey-color-dark: #839496; --accent-yellow: #b58900; --accent-orange: #cb4b16; --accent-red: #dc322f; --accent-magenta: #d33682; --accent-violet: #6c71c4; --accent-cyan: #2aa198; --accent-green: #859900; }

body { background-color: var(--bg-color); color: var(--text-color); transition: background-color 0.3s ease, color 0.3s ease; }

h1, h2, h3, h4, h5, h6 { color: var(--text-color); }

:root { --font-serif-body: 'Source Serif 4', Georgia, serif; --font-serif-heading: 'Young Serif', Georgia, serif; --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-size-xs: 0.8rem; --font-size-sm: 0.875rem; --font-size-base: 1rem; --font-size-lg: 1.125rem; --font-size-xl: 1.25rem; --font-size-2xl: 1.5rem; --font-size-3xl: 1.875rem; --font-size-4xl: 2.25rem; --font-size-5xl: 3rem; --line-height-tight: 1.1; --line-height-snug: 1.2; --line-height-normal: 1.4; --line-height-relaxed: 1.6; --line-height-loose: 1.7; --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 0.75rem; --space-base: 1rem; --space-lg: 1.5rem; --space-xl: 2rem; --space-2xl: 3rem; --space-3xl: 4rem; --letter-spacing-tight: -0.025em; --letter-spacing-normal: 0; --letter-spacing-wide: 0.025em; }

body { font-family: var(--font-serif-body); font-size: 20px; font-weight: 400; line-height: 28px; letter-spacing: -0.4px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-feature-settings: "kern" 1, "liga" 1, "calt" 1; font-kerning: normal; }

h1, h2, h3, h4, h5, h6 { font-family: var(--font-serif-heading); font-weight: var(--font-weight-light); margin-top: var(--space-xl); margin-bottom: var(--space-base); }

h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child { margin-top: 0; }

h1 { font-size: 50px; font-weight: var(--font-weight-light); line-height: 50px; letter-spacing: -1px; margin: 0.75em 0 0.5em 0; }

h2 { font-size: 32px; font-weight: var(--font-weight-light); line-height: 32px; letter-spacing: -0.64px; margin: 0.8em 0 0.4em 0; }

h3 { font-size: 24px; font-weight: var(--font-weight-light); line-height: 24px; letter-spacing: -0.48px; margin: 0.9em 0 0.3em 0; }

h4 { font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); line-height: var(--line-height-normal); }

h5 { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); line-height: var(--line-height-normal); }

h6 { font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); line-height: var(--line-height-normal); text-transform: uppercase; letter-spacing: var(--letter-spacing-wide); }

p { margin-bottom: var(--space-lg); }

p:last-child { margin-bottom: 0; }

ul, ol { margin-bottom: var(--space-lg); padding-left: var(--space-xl); }

ul li, ol li { margin-bottom: var(--space-sm); line-height: var(--line-height-relaxed); }

ul li:last-child, ol li:last-child { margin-bottom: 0; }

ul ul, ul ol, ol ul, ol ol { margin-top: var(--space-sm); margin-bottom: var(--space-sm); }

blockquote { font-size: var(--font-size-lg); line-height: var(--line-height-relaxed); font-style: italic; font-weight: var(--font-weight-normal); margin: var(--space-xl) 0; padding: var(--space-lg) var(--space-xl); border-left: 4px solid var(--grey-color-light); background-color: rgba(var(--grey-color-light), 0.1); border-radius: 0 4px 4px 0; }

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

blockquote cite { display: block; margin-top: var(--space-base); font-size: var(--font-size-sm); font-style: normal; font-weight: var(--font-weight-medium); color: var(--text-color-light); }

blockquote cite:before { content: "— "; }

code { font-family: 'SF Mono', Monaco, 'Inconsolata', 'Roboto Mono', 'Source Code Pro', monospace; font-size: var(--font-size-sm); font-weight: var(--font-weight-normal); letter-spacing: var(--letter-spacing-normal); background-color: var(--grey-color-light); padding: var(--space-xs) var(--space-sm); border-radius: 3px; font-feature-settings: "liga" 0, "calt" 0; }

pre { font-family: 'SF Mono', Monaco, 'Inconsolata', 'Roboto Mono', 'Source Code Pro', monospace; font-size: var(--font-size-sm); line-height: var(--line-height-normal); margin: var(--space-xl) 0; padding: var(--space-lg) var(--space-xl); border-radius: 6px; overflow-x: auto; text-wrap: auto; background-color: var(--grey-color-light); }

pre::-webkit-scrollbar { height: 8px; }

pre::-webkit-scrollbar-track { background: transparent; }

pre::-webkit-scrollbar-thumb { background: var(--grey-color); border-radius: 4px; }

pre code { background: none; padding: 0; border-radius: 0; font-size: inherit; }

table { width: 100%; margin: var(--space-xl) 0; border-collapse: separate; border-spacing: 0; border-radius: 6px; overflow: hidden; border: 1px solid var(--grey-color-light); }

table th, table td { padding: var(--space-base) var(--space-lg); text-align: left; border-bottom: 1px solid var(--grey-color-light); line-height: var(--line-height-normal); }

table th { font-weight: var(--font-weight-semibold); font-size: var(--font-size-sm); text-transform: uppercase; letter-spacing: var(--letter-spacing-wide); background-color: var(--grey-color-light); color: var(--text-color); }

table tbody tr:nth-child(even) { background-color: rgba(var(--grey-color-light), 0.3); }

table tbody tr:last-child td { border-bottom: none; }

.post-title { font-family: var(--font-serif-heading); font-size: 50px; font-weight: var(--font-weight-light); line-height: 50px; letter-spacing: -1px; margin-bottom: var(--space-base); }

@media (max-width: 768px) { .post-title { font-size: 32px; line-height: 32px; letter-spacing: -0.64px; } }

.post-meta { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--text-color-light); margin-bottom: var(--space-xl); text-transform: uppercase; letter-spacing: var(--letter-spacing-wide); }

.post-meta time { color: var(--brand-color); }

.post-link { font-family: var(--font-serif-heading); font-size: 24px; font-weight: var(--font-weight-light); line-height: 24px; letter-spacing: -0.48px; display: block; margin-bottom: var(--space-sm); text-decoration: none; color: var(--text-color); }

.post-link:hover { color: var(--brand-color); }

.post-list > li { margin-bottom: var(--space-2xl); padding-bottom: var(--space-2xl); border-bottom: 1px solid var(--grey-color-light); }

.post-list > li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.post-content { margin-bottom: var(--space-3xl); }

.post-content > * + h2 { margin-top: var(--space-3xl); }

.post-content > * + h3 { margin-top: var(--space-2xl); }

.post-content > * + h4, .post-content > * + h5, .post-content > * + h6 { margin-top: var(--space-xl); }

.post-content img { margin: var(--space-xl) 0; border-radius: 4px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); }

small { font-size: var(--font-size-xs); line-height: var(--line-height-normal); color: var(--text-color-light); }

em { font-style: italic; font-weight: inherit; }

strong { font-weight: var(--font-weight-semibold); font-style: inherit; }

a { color: var(--brand-color); text-decoration: none; font-weight: inherit; }

a:hover { color: var(--brand-color-light); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 2px; }

a:focus { outline: 2px solid var(--brand-color); outline-offset: 2px; border-radius: 2px; }

@media (max-width: 768px) { body { font-size: 18px; line-height: 25px; letter-spacing: -0.3px; } h1 { font-size: 32px; line-height: 32px; letter-spacing: -0.64px; } h2 { font-size: 26px; line-height: 26px; letter-spacing: -0.52px; } h3 { font-size: 22px; line-height: 22px; letter-spacing: -0.44px; } .post-list > li { margin-bottom: var(--space-xl); padding-bottom: var(--space-xl); } }

@media print { body { font-size: 12pt; line-height: 1.4; color: #000; background: #fff; } h1, h2, h3, h4, h5, h6 { break-after: avoid; color: #000; } pre, blockquote { break-inside: avoid; border: 1px solid #000; } a { color: #000; text-decoration: underline; } }

.site-header { border-top: 3px solid var(--brand-color); border-bottom: 1px solid var(--grey-color-light); background-color: var(--bg-color); padding: var(--space-lg) 0; position: relative; }

.site-header .wrapper { display: flex; justify-content: space-between; align-items: center; max-width: var(--content-width); margin: 0 auto; padding: 0 var(--space-lg); }

.site-title { font-size: var(--font-size-4xl); font-weight: var(--font-weight-bold); letter-spacing: var(--letter-spacing-tight); color: var(--text-color); text-decoration: none; line-height: 1; margin: 0; }

.site-title:hover { text-decoration: none; }

.site-title:focus { outline: 2px solid var(--brand-color); outline-offset: 4px; border-radius: 2px; }

.site-nav { display: flex; align-items: center; gap: var(--space-lg); }

.site-nav .page-link { color: var(--text-color-light); text-decoration: none; font-weight: var(--font-weight-medium); font-size: var(--font-size-sm); text-transform: uppercase; letter-spacing: var(--letter-spacing-wide); transition: color 0.2s ease; padding: var(--space-sm) 0; }

.site-nav .page-link:hover { color: var(--brand-color); }

.site-nav .page-link:focus { outline: 2px solid var(--brand-color); outline-offset: 2px; border-radius: 2px; }

.site-nav .nav-trigger { display: none; }

.site-nav .menu-icon { display: none; }

@media (max-width: 768px) { .site-nav { position: absolute; top: 100%; right: var(--space-lg); background-color: var(--bg-color); border: 1px solid var(--grey-color-light); border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); padding: var(--space-base); gap: 0; flex-direction: column; min-width: 150px; display: none; } .site-nav.nav-open { display: flex; } .site-nav .page-link { padding: var(--space-sm) var(--space-base); width: 100%; text-align: left; border-radius: 4px; } .site-nav .page-link:hover { background-color: var(--grey-color-light); } .site-nav .menu-icon { display: block; position: absolute; top: -60px; right: 0; width: 36px; height: 36px; cursor: pointer; } .site-nav .menu-icon svg { fill: var(--text-color); } }

.theme-toggle { background: none; border: 1px solid var(--grey-color); color: var(--text-color); padding: var(--space-sm) var(--space-base); border-radius: 6px; cursor: pointer; font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); letter-spacing: var(--letter-spacing-wide); text-transform: uppercase; transition: all 0.2s ease; display: flex; align-items: center; gap: var(--space-xs); }

.theme-toggle:hover { background-color: var(--grey-color-light); border-color: var(--brand-color); transform: translateY(-1px); }

.theme-toggle:focus { outline: 2px solid var(--brand-color); outline-offset: 2px; border-radius: 6px; }

.theme-toggle:active { transform: translateY(0); }

.theme-selector { position: relative; display: inline-block; }

.theme-dropdown { position: absolute; top: calc(100% + var(--space-sm)); right: 0; background-color: var(--bg-color); border: 1px solid var(--grey-color-light); border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); z-index: 1000; min-width: 180px; display: none; overflow: hidden; }

.theme-dropdown.show { display: block; animation: fadeInUp 0.2s ease; }

@keyframes fadeInUp { from { opacity: 0;
    transform: translateY(8px); }
  to { opacity: 1;
    transform: translateY(0); } }

.theme-option { display: block; width: 100%; padding: var(--space-base) var(--space-lg); background: none; border: none; color: var(--text-color); text-align: left; cursor: pointer; transition: background-color 0.2s ease; font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); }

.theme-option:hover { background-color: var(--grey-color-light); }

.theme-option:focus { background-color: var(--grey-color-light); outline: none; }

.theme-option.active { background-color: var(--brand-color); color: white; font-weight: var(--font-weight-semibold); }

.page-content { padding: var(--space-3xl) 0; flex: 1; }

.page-content .wrapper { max-width: var(--content-width); margin: 0 auto; padding: 0 var(--space-lg); }

.post-list { list-style: none; margin: 0; padding: 0; }

.post-list > li { margin-bottom: var(--space-3xl); padding-bottom: var(--space-2xl); border-bottom: 1px solid var(--grey-color-light); }

.post-list > li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.post-list > li .post-meta { font-size: var(--font-size-xs); font-weight: var(--font-weight-light); color: var(--brand-color); margin-bottom: var(--space-sm); text-transform: uppercase; letter-spacing: var(--letter-spacing-wide); }

.post-list > li .post-link { font-size: var(--font-size-2xl); font-weight: var(--font-weight-light); line-height: var(--line-height-snug); color: var(--text-color); text-decoration: none; display: block; margin-bottom: var(--space-base); }

.post-list > li .post-link:hover { color: var(--brand-color); }

.post-list > li .post-excerpt { color: var(--text-color-light); line-height: var(--line-height-relaxed); margin-bottom: 0; }

.post-list > li .post-excerpt p:last-child { margin-bottom: 0; }

.post-header { margin-bottom: var(--space-3xl); text-align: left; }

.post-header .post-title { font-size: var(--font-size-4xl); font-weight: var(--font-weight-bold); line-height: var(--line-height-tight); letter-spacing: var(--letter-spacing-tight); color: var(--text-color); margin-bottom: var(--space-base); }

@media (max-width: 768px) { .post-header .post-title { font-size: var(--font-size-3xl); } }

.post-header .post-meta { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--text-color-light); }

.post-header .post-meta time { color: var(--brand-color); font-weight: var(--font-weight-semibold); }

.post-header .post-meta .author { margin-left: var(--space-base); }

.post-header .post-meta .author:before { content: "•"; margin-right: var(--space-base); color: var(--grey-color); }

.post-content { line-height: var(--line-height-relaxed); margin-bottom: var(--space-3xl); }

.post-content > * + * { margin-top: var(--space-lg); }

.post-content > h2 + *, .post-content > h3 + *, .post-content > h4 + *, .post-content > h5 + *, .post-content > h6 + * { margin-top: var(--space-base); }

.post-content img { max-width: 100%; height: auto; margin: var(--space-xl) 0; border-radius: 6px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); }

.post-content table { margin: var(--space-2xl) 0; }

.post-content pre { margin: var(--space-2xl) 0; }

.post-content blockquote { margin: var(--space-2xl) 0; }

.site-footer { border-top: 1px solid var(--grey-color-light); background-color: var(--bg-color); padding: var(--space-2xl) 0; margin-top: var(--space-3xl); }

.site-footer .wrapper { max-width: var(--content-width); margin: 0 auto; padding: 0 var(--space-lg); }

.site-footer .footer-heading { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--text-color); margin-bottom: var(--space-base); }

.site-footer .contact-list, .site-footer .social-media-list { list-style: none; margin: 0; padding: 0; }

.site-footer .contact-list li, .site-footer .social-media-list li { margin-bottom: var(--space-sm); }

.site-footer .contact-list li:last-child, .site-footer .social-media-list li:last-child { margin-bottom: 0; }

.site-footer .contact-list li + li, .site-footer .social-media-list li + li { padding-top: 0; }

.site-footer .contact-list a, .site-footer .social-media-list a { color: var(--text-color-light); text-decoration: none; font-size: var(--font-size-sm); }

.site-footer .contact-list a:hover, .site-footer .social-media-list a:hover { color: var(--brand-color); }

.site-footer .social-media-list, .site-footer .social-links { display: flex; gap: var(--space-lg); }

.site-footer .social-media-list a, .site-footer .social-links a { display: flex; align-items: center; gap: var(--space-xs); }

.site-footer .footer-col-wrapper { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-xl); color: var(--text-color-light); font-size: var(--font-size-sm); }

.pagination { display: flex; justify-content: space-between; align-items: center; margin: var(--space-3xl) 0 var(--space-xl); padding: var(--space-xl) 0; border-top: 1px solid var(--grey-color-light); }

.pagination a { color: var(--brand-color); text-decoration: none; font-weight: var(--font-weight-medium); padding: var(--space-sm) var(--space-lg); border: 1px solid var(--grey-color-light); border-radius: 6px; transition: all 0.2s ease; }

.pagination a:hover { background-color: var(--brand-color); color: white; border-color: var(--brand-color); transform: translateY(-1px); }

.pagination .page_number { color: var(--text-color-light); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); }

@media (max-width: 1024px) { :root { --content-width: 720px; } }

@media (max-width: 768px) { :root { --content-width: 100%; } .site-header .wrapper { padding: 0 var(--space-base); } .page-content .wrapper { padding: 0 var(--space-base); } .site-footer .wrapper { padding: 0 var(--space-base); } .post-list > li { margin-bottom: var(--space-2xl); padding-bottom: var(--space-xl); } .post-list > li .post-link { font-size: var(--font-size-xl); } .site-nav .page-link { font-size: var(--font-size-base); } .pagination { flex-direction: column; gap: var(--space-base); text-align: center; } }

a { color: var(--brand-color); }

a:visited { color: var(--brand-color-dark); }

a:hover { color: var(--brand-color-light); }

.site-header { border-top: 5px solid var(--grey-color-dark); border-bottom: 1px solid var(--grey-color-light); background-color: var(--bg-color); }

.site-title { font-family: var(--font-serif-heading); font-weight: var(--font-weight-light); letter-spacing: -0.64px; color: var(--text-color); }

.site-title:hover { color: var(--brand-color); }

.site-nav .page-link { font-family: var(--font-serif-heading); font-weight: var(--font-weight-light); letter-spacing: -0.3px; color: var(--text-color); }

.site-nav .page-link:hover { color: var(--brand-color); }

.site-footer { border-top: 1px solid var(--grey-color-light); background-color: var(--bg-color); }

.footer-heading { font-family: var(--font-serif-heading); font-weight: var(--font-weight-light); letter-spacing: -0.3px; color: var(--text-color); }

.contact-list, .social-media-list, .social-links { font-family: var(--font-serif-body); }

.contact-list a, .social-media-list a, .social-links a { color: var(--text-color-light); }

.contact-list a:hover, .social-media-list a:hover, .social-links a:hover { color: var(--brand-color); }

.post-meta { color: var(--text-color-light); }

.post-link { color: var(--text-color); }

.post-link:hover { color: var(--brand-color); }

pre, code { background-color: var(--grey-color-light); color: var(--text-color); }

[data-theme="gruvbox-dark"] pre, [data-theme="gruvbox-dark"] code { background-color: var(--grey-color-dark); }

[data-theme="solarized-light"] pre, [data-theme="solarized-light"] code { background-color: var(--grey-color-light); }

blockquote { color: var(--text-color-light); border-left: 4px solid var(--grey-color-light); }

table { color: var(--text-color); border-collapse: collapse; border: 1px solid var(--grey-color-light); }

table th, table td { border: 1px solid var(--grey-color-light); }

table th { background-color: var(--grey-color-light); }

.pagination a { color: var(--brand-color); }

.pagination a:hover { color: var(--brand-color-light); }

.pagination .page_number { color: var(--text-color-light); }

.theme-toggle { font-family: var(--font-serif-body); background: none; border: 1px solid var(--grey-color); color: var(--text-color); padding: 0.25rem 0.5rem; border-radius: 4px; cursor: pointer; font-size: 0.875rem; margin-left: 1rem; transition: all 0.3s ease; }

.theme-toggle:hover { background-color: var(--grey-color-light); border-color: var(--brand-color); }

.theme-toggle:focus { outline: none; box-shadow: 0 0 0 2px var(--brand-color); }

.theme-selector { position: relative; display: inline-block; }

.theme-dropdown { position: absolute; top: 100%; right: 0; background-color: var(--bg-color); border: 1px solid var(--grey-color); border-radius: 4px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); z-index: 1000; min-width: 150px; display: none; }

.theme-dropdown.show { display: block; }

.theme-option { font-family: var(--font-serif-body); display: block; width: 100%; padding: 0.5rem 0.75rem; background: none; border: none; color: var(--text-color); text-align: left; cursor: pointer; transition: background-color 0.2s ease; }

.theme-option:hover { background-color: var(--grey-color-light); }

.theme-option:first-child { border-radius: 4px 4px 0 0; }

.theme-option:last-child { border-radius: 0 0 4px 4px; }

.theme-option.active { background-color: var(--brand-color); color: white; }

[data-theme="gruvbox-dark"] .theme-dropdown { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); }

/*# sourceMappingURL=main.css.map */