:root,:root[data-theme="dark"]{--bg: #0a0e13;--bg-raised: #10161d;--bg-inset: #0d1219;--border: #1f2933;--border-strong: #2e3d4a;--text: #dbe4ee;--text-muted: #8b9bad;--heading: #f2f6fa;--accent: #2dd4bf;--accent-2: #38bdf8;--accent-soft: rgba(45, 212, 191, 0.12);--accent-contrast: #04211e;--glow-1: rgba(45, 212, 191, 0.09);--glow-2: rgba(56, 189, 248, 0.06);--card-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.6);--card-hover-shadow: 0 24px 60px -18px rgba(45, 212, 191, 0.18)}:root[data-theme="light"]{--bg: #fbfcfe;--bg-raised: #ffffff;--bg-inset: #f1f5f9;--border: #e4eaf1;--border-strong: #cdd8e3;--text: #3b4a5a;--text-muted: #64748b;--heading: #0d1b2a;--accent: #0d9488;--accent-2: #0284c7;--accent-soft: rgba(13, 148, 136, 0.10);--accent-contrast: #ffffff;--glow-1: rgba(13, 148, 136, 0.07);--glow-2: rgba(2, 132, 199, 0.05);--card-shadow: 0 20px 50px -25px rgba(13, 27, 42, 0.15);--card-hover-shadow: 0 24px 60px -20px rgba(13, 148, 136, 0.22)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;font-size:1.0625rem;line-height:1.75;display:flex;flex-direction:column;min-height:100vh}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(55rem 34rem at 82% -8%, var(--glow-1), transparent 62%),radial-gradient(48rem 32rem at -12% 38%, var(--glow-2), transparent 60%)}::selection{background:var(--accent);color:var(--accent-contrast)}.site-main{flex:1}h1,h2,h3,h4{font-family:"Space Grotesk", "Inter", ui-sans-serif, system-ui, sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.wrap{max-width:76rem;margin:0 auto;padding:0 2rem}.wrap--narrow{max-width:48rem}.gradient-text{background:linear-gradient(120deg, var(--accent) 0%, var(--accent-2) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.mono{font-family:"JetBrains Mono", ui-monospace, monospace}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--bg) 78%, transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--border)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:4rem}.site-brand{font-family:"JetBrains Mono", ui-monospace, monospace;font-weight:600;font-size:1rem;color:var(--heading)}.site-brand:hover{text-decoration:none}.site-brand__mark{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none;margin:0;padding:0}.nav-links a{position:relative;color:var(--text-muted);font-size:0.9375rem;font-weight:500;padding:0.25rem 0}.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;border-radius:2px;background:linear-gradient(90deg, var(--accent), var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform 0.2s ease}.nav-links a:hover,.nav-links a.is-active{color:var(--heading);text-decoration:none}.nav-links a:hover::after,.nav-links a.is-active::after{transform:scaleX(1)}.theme-toggle{display:inline-flex;align-items:center;padding:0.45rem;background:none;border:1px solid var(--border);border-radius:10px;color:var(--text-muted);cursor:pointer;transition:color 0.15s ease, border-color 0.15s ease}.theme-toggle:hover{color:var(--accent);border-color:var(--border-strong)}:root[data-theme="dark"] .icon-moon{display:none}:root[data-theme="light"] .icon-sun{display:none}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:0.5rem;cursor:pointer}.nav-toggle span{width:22px;height:2px;background:var(--heading);border-radius:2px}.hero{position:relative;padding:6rem 0 5rem;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--border) 1px, transparent 1px),linear-gradient(90deg, var(--border) 1px, transparent 1px);background-size:44px 44px;opacity:0.35;-webkit-mask-image:radial-gradient(60rem 30rem at 50% 0%, #000 30%, transparent 75%);mask-image:radial-gradient(60rem 30rem at 50% 0%, #000 30%, transparent 75%)}.hero__inner{display:flex;align-items:center;gap:4rem}.hero__text{flex:1}.hero__badge{display:inline-flex;align-items:center;gap:0.55rem;padding:0.35rem 0.9rem;border:1px solid var(--border-strong);border-radius:999px;background:color-mix(in srgb, var(--bg-raised) 70%, transparent);font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.8125rem;color:var(--text-muted);margin:0 0 1.5rem;animation:fade-up 0.6s ease both}.hero__badge .pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent-soft);animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}.hero__title{font-size:clamp(2.5rem, 5.5vw, 3.75rem);font-weight:700;line-height:1.08;letter-spacing:-0.03em;color:var(--heading);margin:0 0 1.25rem;animation:fade-up 0.6s 0.08s ease both}.hero__subtitle{font-size:1.1875rem;color:var(--text-muted);max-width:36rem;margin:0 0 2.25rem;animation:fade-up 0.6s 0.16s ease both}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:0.875rem;animation:fade-up 0.6s 0.24s ease both}.hero__social{display:flex;align-items:center;gap:1.1rem;margin-top:2.25rem;animation:fade-up 0.6s 0.32s ease both}.hero__social a{color:var(--text-muted);display:inline-flex;transition:color 0.15s ease, transform 0.15s ease}.hero__social a:hover{color:var(--accent);transform:translateY(-2px)}.hero__social-rule{width:3rem;height:1px;background:var(--border-strong)}.hero__avatar{animation:fade-up 0.6s 0.2s ease both}.avatar-ring{position:relative;padding:6px;border-radius:50%;background:linear-gradient(140deg, var(--accent) 10%, var(--accent-2) 45%, transparent 70%) border-box}.avatar-ring::after{content:"";position:absolute;inset:-18px;border-radius:50%;background:radial-gradient(closest-side, var(--accent-soft), transparent);z-index:-1}.avatar-ring img{display:block;width:230px;height:230px;border-radius:50%;object-fit:cover;border:4px solid var(--bg)}@keyframes fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.hero__badge,.hero__title,.hero__subtitle,.hero__actions,.hero__social,.hero__avatar{animation:none}.hero__badge .pulse{animation:none}html{scroll-behavior:auto}}.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.7rem 1.4rem;border-radius:12px;font-size:0.9375rem;font-weight:600;border:1px solid transparent;transition:transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, filter 0.15s ease}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn svg{flex-shrink:0}.btn--primary{background:linear-gradient(120deg, var(--accent), var(--accent-2));color:var(--accent-contrast);box-shadow:0 8px 24px -8px color-mix(in srgb, var(--accent) 55%, transparent)}.btn--primary:hover{filter:brightness(1.08);box-shadow:0 12px 30px -8px color-mix(in srgb, var(--accent) 65%, transparent)}.btn--ghost{border-color:var(--border-strong);color:var(--heading);background:color-mix(in srgb, var(--bg-raised) 60%, transparent)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.section{padding:3.5rem 0}.section__header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem}.section__kicker{font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.8125rem;color:var(--accent);margin:0 0 0.4rem}.section__title{font-size:1.75rem;font-weight:700;letter-spacing:-0.02em;color:var(--heading);margin:0}.section__link{font-size:0.9375rem;font-weight:500;white-space:nowrap;padding-bottom:0.25rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(18rem, 1fr));gap:1.5rem}.card{position:relative;display:flex;flex-direction:column;gap:0.8rem;padding:1.75rem;background:linear-gradient(180deg, color-mix(in srgb, var(--bg-raised) 92%, var(--accent) 0%), var(--bg-raised));border:1px solid var(--border);border-radius:18px;box-shadow:var(--card-shadow);transition:border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease}.card:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));transform:translateY(-4px);box-shadow:var(--card-hover-shadow)}.card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.25rem}.card__top-icon{color:var(--accent)}.card__top a{color:var(--text-muted);display:inline-flex;transition:color 0.15s ease}.card__top a:hover{color:var(--accent)}.card__title{font-size:1.1875rem;font-weight:700;letter-spacing:-0.01em;color:var(--heading);margin:0}.card__title a{color:inherit}.card__title a:hover{color:var(--accent);text-decoration:none}.card__description{color:var(--text-muted);font-size:0.9375rem;margin:0;flex:1}.tag-list{display:flex;flex-wrap:wrap;gap:0.45rem}.tag{display:inline-block;padding:0.18rem 0.65rem;background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);border-radius:999px;font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.75rem}.post-list{list-style:none;margin:0;padding:0}.post-list__item{padding:1.9rem 0;border-bottom:1px solid var(--border)}.post-list__item:hover .post-list__title a{color:var(--accent)}.post-list__item:last-child{border-bottom:none}.post-list__meta{font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.8125rem;color:var(--accent);margin:0 0 0.4rem}.post-list__title{font-size:1.4375rem;font-weight:700;letter-spacing:-0.015em;margin:0 0 0.5rem}.post-list__title a{color:var(--heading)}.post-list__title a:hover{color:var(--accent);text-decoration:none}.post-list__excerpt{color:var(--text-muted);font-size:0.9688rem;margin:0 0 0.8rem}.page{padding:4rem 0 4.5rem}.post-layout{display:grid;grid-template-columns:minmax(0, 1fr) 19rem;gap:4.5rem;padding-top:4rem;padding-bottom:4.5rem;align-items:start}.post{max-width:48rem;min-width:0}.post-sidebar{position:sticky;top:5.5rem;display:flex;flex-direction:column;gap:1.25rem}.sidebar-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:16px;padding:1.4rem 1.5rem}.sidebar-card__kicker{font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.8125rem;color:var(--accent);margin:0 0 0.9rem}.sidebar-author{text-align:left}.sidebar-author__avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--border-strong);margin-bottom:0.8rem}.sidebar-author__name{font-family:"Space Grotesk", "Inter", sans-serif;font-weight:700;color:var(--heading);margin:0 0 0.3rem}.sidebar-author__bio{font-size:0.875rem;color:var(--text-muted);line-height:1.6;margin:0 0 0.9rem}.sidebar-author__links{display:flex;gap:0.9rem}.sidebar-author__links a{color:var(--text-muted);display:inline-flex;transition:color 0.15s ease}.sidebar-author__links a:hover{color:var(--accent)}.sidebar-posts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.9rem}.sidebar-posts li{display:flex;flex-direction:column;gap:0.15rem}.sidebar-posts a{color:var(--heading);font-size:0.9063rem;font-weight:600;line-height:1.45}.sidebar-posts a:hover{color:var(--accent);text-decoration:none}.sidebar-posts__date{font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.75rem;color:var(--text-muted)}.sidebar-card__all{display:inline-block;margin-top:1rem;font-size:0.875rem;font-weight:600}@media (max-width: 1024px){.post-layout{grid-template-columns:1fr;gap:3rem}.post{max-width:48rem}.post-sidebar{position:static;max-width:48rem}}.page__header{margin-bottom:2.5rem}.page__title,.post__title{font-size:clamp(2rem, 4.5vw, 2.75rem);font-weight:700;letter-spacing:-0.025em;line-height:1.15;color:var(--heading);margin:0}.page__description{color:var(--text-muted);font-size:1.125rem;margin:0.9rem 0 0;max-width:44rem}.post__header{margin-bottom:2.75rem}.post__meta{display:flex;gap:0.6rem;font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.8125rem;color:var(--accent);margin-bottom:0.9rem}.post__header .tag-list{margin-top:1.1rem}.post__pagination{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem;padding-top:1.75rem;border-top:1px solid var(--border)}.post__pagination-link{display:flex;flex-direction:column;gap:0.3rem;padding:1.1rem 1.3rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;transition:border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease}.post__pagination-link--right{text-align:right;grid-column:2}.post__pagination-label{font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.75rem;color:var(--accent)}.post__pagination-title{font-weight:600;font-size:0.9375rem;color:var(--heading);line-height:1.4}.post__pagination-link:hover{text-decoration:none;border-color:color-mix(in srgb, var(--accent) 55%, var(--border));transform:translateY(-2px);box-shadow:var(--card-hover-shadow)}.post__pagination-link:hover .post__pagination-title{color:var(--accent)}@media (max-width: 600px){.post__pagination{grid-template-columns:1fr}.post__pagination-link--right{grid-column:1}}.prose h2,.prose h3,.prose h4{color:var(--heading);letter-spacing:-0.015em;line-height:1.3;margin:2.5rem 0 0.85rem}.prose h2{font-size:1.5625rem}.prose h3{font-size:1.25rem}.prose h4{font-size:1.0625rem}.prose p{margin:0 0 1.3rem}.prose hr{border:none;height:1px;background:linear-gradient(90deg, var(--border), var(--border-strong), var(--border));margin:2.75rem 0}.prose blockquote{margin:1.6rem 0;padding:0.3rem 1.4rem;border-left:3px solid var(--accent);background:var(--bg-raised);border-radius:0 12px 12px 0;color:var(--text-muted)}.prose ul,.prose ol{padding-left:1.5rem;margin:0 0 1.3rem}.prose li{margin-bottom:0.4rem}.prose img{display:block;border-radius:14px;border:1px solid var(--border);margin:0.5rem 0 1.4rem}.prose table{width:100%;border-collapse:collapse;margin:1.6rem 0;font-size:0.9375rem;display:block;overflow-x:auto}.prose th,.prose td{padding:0.65rem 0.95rem;border:1px solid var(--border);text-align:left}.prose th{background:var(--bg-raised);color:var(--heading)}.prose code{font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.85em}.prose :not(pre)>code{background:var(--bg-inset);border:1px solid var(--border);border-radius:6px;padding:0.1em 0.4em}.prose pre{background:var(--bg-inset);border:1px solid var(--border);border-radius:14px;padding:1.2rem 1.35rem;overflow-x:auto;line-height:1.6;margin:0 0 1.6rem}.prose pre code{background:none;border:none;padding:0}.prose pre.mermaid{display:flex;justify-content:center;background:var(--bg-raised)}.prose pre.mermaid svg{max-width:100%;height:auto}.skills-section{display:grid;grid-template-columns:repeat(auto-fill, minmax(17rem, 1fr));gap:2rem 2.25rem;margin:1.75rem 0}.skill-group h4{margin:0 0 0.65rem;font-family:"JetBrains Mono", ui-monospace, monospace;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent)}.skill-tags{display:flex;flex-wrap:wrap;gap:0.45rem}.skill-tag{display:inline-block;padding:0.28rem 0.7rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:9px;font-size:0.8125rem;white-space:nowrap;transition:border-color 0.15s ease, color 0.15s ease}.skill-tag:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:var(--heading)}.site-footer{border-top:1px solid var(--border);padding:2.5rem 0;margin-top:3rem}.site-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.site-footer__social{display:flex;gap:1.4rem}.site-footer__social a{color:var(--text-muted);display:inline-flex;padding:0.55rem;border:1px solid var(--border);border-radius:12px;transition:color 0.15s ease, transform 0.15s ease, border-color 0.15s ease}.site-footer__social a:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, var(--border));transform:translateY(-2px)}.site-footer__copy{font-size:0.875rem;color:var(--text-muted);margin:0}@media (max-width: 600px){.site-footer__inner{flex-direction:column;text-align:center}}@media (max-width: 720px){.wrap{padding:0 1.25rem}.nav-toggle{display:flex}.nav-links{display:none;position:absolute;top:4rem;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--bg);border-bottom:1px solid var(--border);padding:0.5rem 1.25rem 1rem}.nav-links.is-open{display:flex}.nav-links li{width:100%}.nav-links a{display:block;padding:0.6rem 0}.nav-links a::after{display:none}.nav-links .theme-toggle{margin-top:0.5rem}.hero{padding:3.5rem 0 3rem}.hero__inner{flex-direction:column-reverse;text-align:center;gap:2.5rem}.hero__subtitle{margin-inline:auto}.hero__actions,.hero__social{justify-content:center}.hero__social-rule{display:none}.avatar-ring img{width:150px;height:150px}}.highlight .c,.highlight .c1,.highlight .cm{color:#6a737d;font-style:italic}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kr{color:#ff7b72}.highlight .kt,.highlight .kc{color:#79c0ff}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb{color:#a5d6ff}.highlight .m,.highlight .mi,.highlight .mf{color:#79c0ff}.highlight .n,.highlight .nx{color:#e2e8f0}.highlight .nf,.highlight .nd{color:#d2a8ff}.highlight .nc,.highlight .nn{color:#ffa657}.highlight .o,.highlight .ow{color:#ff7b72}.highlight .nb,.highlight .bp{color:#79c0ff}.highlight .na{color:#7ee787}.highlight .err{color:#f85149}:root[data-theme="light"] .highlight .c,:root[data-theme="light"] .highlight .c1,:root[data-theme="light"] .highlight .cm{color:#6e7781}:root[data-theme="light"] .highlight .k,:root[data-theme="light"] .highlight .kd,:root[data-theme="light"] .highlight .kn,:root[data-theme="light"] .highlight .kr,:root[data-theme="light"] .highlight .o,:root[data-theme="light"] .highlight .ow{color:#cf222e}:root[data-theme="light"] .highlight .kt,:root[data-theme="light"] .highlight .kc,:root[data-theme="light"] .highlight .m,:root[data-theme="light"] .highlight .mi,:root[data-theme="light"] .highlight .mf,:root[data-theme="light"] .highlight .nb,:root[data-theme="light"] .highlight .bp{color:#0550ae}:root[data-theme="light"] .highlight .s,:root[data-theme="light"] .highlight .s1,:root[data-theme="light"] .highlight .s2,:root[data-theme="light"] .highlight .sb{color:#0a3069}:root[data-theme="light"] .highlight .n,:root[data-theme="light"] .highlight .nx{color:#1f2328}:root[data-theme="light"] .highlight .nf,:root[data-theme="light"] .highlight .nd{color:#8250df}:root[data-theme="light"] .highlight .nc,:root[data-theme="light"] .highlight .nn{color:#953800}:root[data-theme="light"] .highlight .na{color:#116329}
