:root{--font-body: "Literata", Georgia, serif;--font-heading: "Literata", Georgia, serif;--font-mono: "MonoLisa", Menlo, Monaco, Consolas, monospace;--color-text: #1a1a1a;--color-text-muted: #444;--color-text-faint: #777;--color-bg: #fff;--color-border: #ddd;--color-code-bg: #f3f3f3;--color-code-border: #e2e2e2;--content-width: 660px;--page-padding: 24px}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.main{font-family:var(--font-body);font-size:16px;line-height:1.65;color:var(--color-text);display:flex;flex-direction:column;min-height:100vh}.main p{color:var(--color-text)}.navbar{display:flex;justify-content:space-between;align-items:baseline;max-width:var(--content-width);width:100%;margin:0 auto;padding:40px var(--page-padding) 0}.navbar .home{text-decoration:none;color:var(--color-text)}.navbar .home h1{font-family:var(--font-heading);font-size:1.15rem;font-weight:600;margin:0;letter-spacing:-.01em}.navbar .home .tagline{display:none}.navbar .links{display:flex;gap:24px}.navbar .links a{color:var(--color-text-muted);text-decoration:none;font-size:.9rem;font-weight:400;letter-spacing:.01em;transition:color .15s}.navbar .links a:hover{color:var(--color-text)}.content{flex-grow:1;padding:0 var(--page-padding)}.footer{margin-top:60px;padding:20px var(--page-padding);border-top:1px solid var(--color-border);max-width:var(--content-width);width:100%;margin-left:auto;margin-right:auto}.footer .footer-content{width:100%}.footer .footer-text{display:flex;justify-content:space-between;align-items:center;font-size:.825rem;color:var(--color-text-faint)}.footer .footer-text p{margin:0;color:var(--color-text-faint)}.footer .footer-text .footer-links{display:flex;align-items:center;gap:12px}.footer .footer-text .footer-links a{color:var(--color-text-faint);text-decoration:none;transition:color .15s}.footer .footer-text .footer-links a:hover{color:var(--color-text)}.footer .footer-text .footer-links span{color:var(--color-border);font-size:.7em}.home-content{display:flex;flex-direction:column;align-items:center}.home-content-inner{max-width:var(--content-width);width:100%;padding-top:48px}.home-content-inner h1{font-family:var(--font-heading);font-size:1.85rem;font-weight:600;margin:0 0 16px;letter-spacing:-.015em;line-height:1.25}.home-content-inner p{font-size:1rem;line-height:1.7;color:var(--color-text-muted);margin:0 0 10px;max-width:540px}.posts-container{display:flex;flex-direction:column;align-items:center}.posts-container .posts-container-inner{max-width:var(--content-width);width:100%;padding-top:48px}.posts-container .posts-container-inner>h1,.posts-container .posts-container-inner>h2{font-family:var(--font-heading);font-size:1.85rem;font-weight:600;margin:0 0 32px;letter-spacing:-.015em;line-height:1.25}.posts-container .posts-container-inner .posts-list{display:flex;flex-direction:column;gap:0}.posts-container .posts-container-inner .post-link{text-decoration:none;color:var(--color-text);display:block}.posts-container .posts-container-inner .post-link:hover .post-preview h2{color:var(--color-text-muted)}.posts-container .post-preview-holder{border:none;border-radius:0;border-bottom:1px solid var(--color-border)}.posts-container .post-preview{padding:20px 0}.posts-container .post-preview a{text-decoration:none;color:var(--color-text)}.posts-container .post-preview h2{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;margin:0;line-height:1.4;transition:color .15s}.posts-container .post-preview h3{font-family:var(--font-body);color:var(--color-text-faint);margin:4px 0 0;font-size:.825rem;font-weight:400;letter-spacing:.02em}.posts-container .post-preview .preview{color:var(--color-text-muted);font-size:.925rem;margin:8px 0 0;line-height:1.6}.categories{margin-top:8px}.categories .category{color:var(--color-text-faint);font-size:.75rem;font-family:var(--font-body);font-weight:400;text-decoration:none;text-transform:lowercase;letter-spacing:.03em;margin-right:12px;background:none;padding:0;border-radius:0;display:inline;transition:color .15s}.categories .category:hover{color:var(--color-text)}.blog-content{display:flex;flex-direction:column;align-items:center}.blog-content-inner{max-width:var(--content-width);width:100%;padding-top:48px}.blog-content-inner .title{font-family:var(--font-heading);font-size:2rem;font-weight:600;margin:0 0 6px;letter-spacing:-.015em;line-height:1.25}.blog-content-inner .date{color:var(--color-text-faint);margin:0;font-size:.875rem;letter-spacing:.02em}.blog-content-inner .github-link{display:flex;align-items:center;margin:16px 0;font-size:.9rem}.blog-content-inner .github-link .github-logo{margin-right:8px;width:18px;opacity:.6}.blog-content-inner .github-link a{color:var(--color-text-muted);text-decoration:none;border-bottom:1px solid var(--color-border);transition:color .15s}.blog-content-inner .github-link a:hover{color:var(--color-text)}.blog-content-inner .content-holder{margin:36px 0}.blog-content-inner h1,.blog-content-inner h2,.blog-content-inner h3,.blog-content-inner h4{font-family:var(--font-heading);letter-spacing:-.01em}.blog-content-inner h1{font-size:1.7rem;font-weight:600;margin-top:2em;margin-bottom:.4em}.blog-content-inner h2{font-size:1.4rem;font-weight:600;margin-top:2em;margin-bottom:.4em}.blog-content-inner h3{font-size:1.15rem;font-weight:700;margin-top:1.75em;margin-bottom:.35em}.blog-content-inner h4{font-size:1rem;font-weight:700;margin-top:1.5em;margin-bottom:.35em}.blog-content-inner p{margin:0 0 1.1em;line-height:1.7}.blog-content-inner a{color:var(--color-text);text-decoration:none;border-bottom:1px solid var(--color-border);transition:border-color .15s}.blog-content-inner a:hover{border-bottom-color:var(--color-text)}.blog-content-inner ul,.blog-content-inner ol{padding-left:1.5em}.blog-content-inner ul li,.blog-content-inner ol li{margin-bottom:.4em;line-height:1.7}.blog-content-inner blockquote{margin:1.5em 0;padding:0 0 0 1.25em;border-left:2px solid var(--color-border);color:var(--color-text-muted);font-style:italic}.blog-content-inner img{max-width:100%;margin:1.5em 0}.blog-content-inner p code,.blog-content-inner li code{font-family:var(--font-mono);font-size:.85em;background:var(--color-code-bg);border:1px solid var(--color-code-border);border-radius:3px;padding:1px 5px}.blog-content-inner code{font-family:var(--font-mono);font-size:.85em}.blog-content-inner aside{margin-top:48px;padding-top:24px;border-top:1px solid var(--color-border)}.blog-content-inner aside h4{font-family:var(--font-body);font-size:.825rem;color:var(--color-text-faint);font-weight:400;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}pre{background-color:#1e1e1e;padding:20px 24px;border-radius:4px;margin:1.5em 0;overflow-x:auto;font-size:13px;line-height:1.6}@media(max-width:640px){.navbar{padding-top:28px;flex-direction:column;gap:10px;align-items:flex-start}.navbar .links{gap:18px}.home-content-inner{padding-top:32px}.home-content-inner h1{font-size:1.5rem}.posts-container .posts-container-inner{padding-top:32px}.posts-container .posts-container-inner>h1,.posts-container .posts-container-inner>h2{font-size:1.5rem;margin-bottom:24px}.blog-content-inner{padding-top:32px}.blog-content-inner .title{font-size:1.6rem}.footer .footer-text{flex-direction:column;gap:6px;text-align:center}}pre[class*=language-],code[class*=language-]{color:#d4d4d4;font-size:13px;text-shadow:none;font-family:Menlo,Monaco,Consolas,Andale Mono,Ubuntu Mono,Courier New,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]::selection,code[class*=language-]::selection,pre[class*=language-] *::selection,code[class*=language-] *::selection{text-shadow:none;background:#264f78}@media print{pre[class*=language-],code[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:3em 0;overflow:auto;background:#1e1e1e}:not(pre)>code[class*=language-]{padding:.1em .3em;border-radius:.3em;color:#db4c69;background:#1e1e1e}.namespace{opacity:.7}.token.doctype .token.doctype-tag{color:#569cd6}.token.doctype .token.name{color:#9cdcfe}.token.comment,.token.prolog{color:#6a9955}.token.punctuation,.language-html .language-css .token.punctuation,.language-html .language-javascript .token.punctuation{color:#d4d4d4}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.inserted,.token.unit{color:#b5cea8}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.deleted{color:#ce9178}.language-css .token.string.url{text-decoration:underline}.token.operator,.token.entity{color:#d4d4d4}.token.operator.arrow{color:#569cd6}.token.atrule{color:#ce9178}.token.atrule .token.rule{color:#c586c0}.token.atrule .token.url{color:#9cdcfe}.token.atrule .token.url .token.function{color:#dcdcaa}.token.atrule .token.url .token.punctuation{color:#d4d4d4}.token.keyword{color:#569cd6}.token.keyword.module,.token.keyword.control-flow{color:#c586c0}.token.function,.token.function .token.maybe-class-name{color:#dcdcaa}.token.regex{color:#d16969}.token.important{color:#569cd6}.token.italic{font-style:italic}.token.constant{color:#9cdcfe}.token.class-name,.token.maybe-class-name{color:#4ec9b0}.token.console,.token.parameter,.token.interpolation{color:#9cdcfe}.token.punctuation.interpolation-punctuation,.token.boolean{color:#569cd6}.token.property,.token.variable,.token.imports .token.maybe-class-name,.token.exports .token.maybe-class-name{color:#9cdcfe}.token.selector,.token.escape{color:#d7ba7d}.token.tag{color:#569cd6}.token.tag .token.punctuation,.token.cdata{color:gray}.token.attr-name{color:#9cdcfe}.token.attr-value,.token.attr-value .token.punctuation{color:#ce9178}.token.attr-value .token.punctuation.attr-equals{color:#d4d4d4}.token.entity{color:#569cd6}.token.namespace{color:#4ec9b0}pre[class*=language-javascript],code[class*=language-javascript],pre[class*=language-jsx],code[class*=language-jsx],pre[class*=language-typescript],code[class*=language-typescript],pre[class*=language-tsx],code[class*=language-tsx]{color:#9cdcfe}pre[class*=language-css],code[class*=language-css]{color:#ce9178}pre[class*=language-html],code[class*=language-html]{color:#d4d4d4}.language-regex .token.anchor{color:#dcdcaa}.language-html .token.punctuation{color:gray}pre[class*=language-]>code[class*=language-]{position:relative;z-index:1}.line-highlight.line-highlight{background:#f7ebc6;box-shadow:inset 5px 0 #f7d87c;z-index:0}
