.sun[data-astro-cid-oemx5le4]{fill:var(--color-text)}.moon[data-astro-cid-oemx5le4],.dark .sun[data-astro-cid-oemx5le4]{fill:transparent}.dark .moon[data-astro-cid-oemx5le4]{fill:var(--color-text)}:root{--color-bg: #fafafa;--color-bg-secondary: #ffffff;--color-text: #1e293b;--color-text-secondary: #64748b;--color-accent: #6366f1;--color-accent-hover: #4f46e5;--color-border: #e2e8f0;--color-tag-bg: #eef2ff;--color-tag-text: #4338ca;--color-card-shadow: rgba(0, 0, 0, .04);--color-nav-bg: rgba(250, 250, 250, .8);--radius: 12px;--radius-sm: 8px;--transition: .2s ease}html.dark{--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-text: #e2e8f0;--color-text-secondary: #94a3b8;--color-accent: #818cf8;--color-accent-hover: #a5b4fc;--color-border: #334155;--color-tag-bg: rgba(99, 102, 241, .15);--color-tag-text: #a5b4fc;--color-card-shadow: rgba(0, 0, 0, .2);--color-nav-bg: rgba(15, 23, 42, .8)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--color-bg);color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;scroll-behavior:smooth;transition:background-color var(--transition),color var(--transition)}body{margin:0 auto;width:100%;max-width:720px;padding:0 1.5rem 3rem;line-height:1.7;font-size:1rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1.2;color:var(--color-text)}h2{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.3;color:var(--color-text)}h3{font-size:1.25rem;font-weight:600;line-height:1.4;color:var(--color-text)}p{color:var(--color-text-secondary);line-height:1.7}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-accent-hover)}header{position:sticky;top:0;z-index:100;background:var(--color-nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);margin:0 -1.5rem;padding:0 1.5rem}header nav{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:720px;margin:0 auto}.site-title{font-size:1.1rem;font-weight:800;color:var(--color-text);text-decoration:none;letter-spacing:-.02em;transition:color var(--transition)}.site-title:hover{color:var(--color-accent)}.nav-right{display:flex;align-items:center;gap:.25rem}.nav-links{display:none;list-style:none}.nav-links a{display:block;padding:.5rem .75rem;font-size:.9rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--transition),background-color var(--transition)}.nav-links a:hover{color:var(--color-text);background-color:var(--color-border)}.expanded{display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:.5rem 1.5rem;box-shadow:0 4px 12px var(--color-card-shadow)}.expanded a{padding:.75rem 0}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;cursor:pointer;border:none;background:none;border-radius:var(--radius-sm);transition:background-color var(--transition)}.hamburger:hover{background-color:var(--color-border)}.hamburger .line{display:block;width:100%;height:2px;background-color:var(--color-text);border-radius:2px;transition:background-color var(--transition)}@media screen and (min-width:640px){.nav-links{display:flex;align-items:center;gap:.25rem}.hamburger{display:none}.expanded{position:static;flex-direction:row;background:none;border:none;padding:0;box-shadow:none}}.page-header{padding:2.5rem 0 1.5rem}.page-header h1{margin:0}.post-list{display:flex;flex-direction:column;list-style:none}.post-item{display:block}.post-item a{display:flex;flex-direction:column;gap:.25rem;padding:1rem 0;text-decoration:none;border-bottom:1px solid var(--color-border);transition:border-color var(--transition)}.post-item a:hover{border-bottom-color:var(--color-accent)}.post-item-title{font-size:1.05rem;font-weight:600;color:var(--color-text);transition:color var(--transition)}.post-item a:hover .post-item-title{color:var(--color-accent)}.post-item-date{font-size:.85rem;color:var(--color-text-secondary)}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{display:inline-block;padding:.3rem .75rem;font-size:.8rem;font-weight:500;color:var(--color-tag-text);background-color:var(--color-tag-bg);border-radius:9999px;text-decoration:none;transition:background-color var(--transition),color var(--transition)}.tag:hover{background-color:var(--color-accent);color:#fff}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.article-date{font-size:.9rem;color:var(--color-text-secondary)}.article-content{font-size:1rem;line-height:1.8;color:var(--color-text)}.article-content h2{margin-top:2.5rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.article-content h3{margin-top:2rem;margin-bottom:.5rem}.article-content p{margin-bottom:1.25rem;color:var(--color-text)}.article-content a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.article-content a:hover{color:var(--color-accent-hover)}.article-content ul,.article-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.article-content li{margin-bottom:.5rem}.article-content code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.875rem;padding:.15rem .4rem;background-color:var(--color-tag-bg);border-radius:4px;color:var(--color-tag-text)}.article-content pre{margin-bottom:1.5rem;padding:1.25rem;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto}.article-content pre code{padding:0;background:none;color:var(--color-text)}.article-content blockquote{margin:1.5rem 0;padding:.75rem 1.25rem;border-left:3px solid var(--color-accent);background-color:var(--color-tag-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.article-content blockquote p{color:var(--color-text-secondary)}.article-content img{max-width:100%;height:auto;border-radius:var(--radius);margin:1.5rem 0}.article-content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.article-content th,.article-content td{padding:.75rem;text-align:left;border-bottom:1px solid var(--color-border)}.article-content th{font-weight:600;color:var(--color-text)}.about-section h3{margin-top:1.5rem;margin-bottom:.75rem;font-size:1.1rem;color:var(--color-text)}.about-section ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.about-section li{padding:.5rem 0;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);font-size:.95rem}.about-section li strong{color:var(--color-text);font-weight:600}footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--color-border);text-align:center}.footer-links{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1rem}.footer-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition)}.footer-link:hover{color:var(--color-accent)}.footer-copy{font-size:.8rem;color:var(--color-text-secondary)}#themeToggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition)}#themeToggle:hover{background-color:var(--color-border)}#themeToggle svg{width:20px;height:20px}.hero{padding:3rem 0 2rem}.hero-greeting{font-size:.95rem;font-weight:500;color:var(--color-accent);margin-bottom:.5rem}.hero h1{font-size:2.25rem;margin-bottom:.75rem}.hero-description{font-size:1.1rem;color:var(--color-text-secondary);line-height:1.6;max-width:540px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.section-heading h2{font-size:1.25rem;font-weight:700}.section-heading a{font-size:.85rem;font-weight:500;color:var(--color-accent)}@media screen and (max-width:640px){body{padding:0 1rem 2rem}header{margin:0 -1rem;padding:0 1rem}.hero h1,h1{font-size:1.75rem}}
