@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url("/assets/fonts/jetbrains-mono.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500 800;font-display:swap;src:url("/assets/fonts/plus-jakarta-sans.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:300 700;font-display:swap;src:url("/assets/fonts/source-serif-4.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:300 700;font-display:swap;src:url("/assets/fonts/source-serif-4-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #070b14;--bg-surface: #0c1524;--bg-raised: #101e33;--border: #192d46;--border-dim: #0f1e30;--border-bright: #254060;--text: #8daac4;--text-strong: #c4daf0;--text-muted: #3b5570;--heading: #e4f0fc;--heading-dim: #a8c4de;--accent: #22d3ee;--accent-dim: rgba(34, 211, 238, 0.12);--accent-glow: rgba(34, 211, 238, 0.25);--green: #4ade80;--amber: #fbbf24;--font-display: 'Plus Jakarta Sans', sans-serif;--font-body: 'Source Serif 4', Georgia, serif;--font-mono: 'JetBrains Mono', 'Fira Code', monospace;--max-w: 720px;--wide-w: 1140px;--radius-sm: 3px;--radius: 6px;--ease: cubic-bezier(0.4, 0, 0.2, 1);--t: 220ms}html[data-theme="light"]{--bg: #f4f6f9;--bg-surface: #eaecf2;--bg-raised: #dfe3ec;--border: #c8cfe0;--border-dim: #d8dde9;--border-bright: #a0adcc;--text: #4a5c72;--text-strong: #1c2b3a;--text-muted: #8fa3bc;--heading: #0d1e2e;--heading-dim: #2d4360;--accent: #0284c7;--accent-dim: rgba(2, 132, 199, 0.1);--accent-glow: rgba(2, 132, 199, 0.2);--green: #16a34a;--amber: #d97706}html[data-theme="light"] body{background-image:radial-gradient(ellipse 60% 50% at 20% 0%, rgba(2,132,199,0.05) 0%, transparent 70%),radial-gradient(ellipse 40% 30% at 80% 80%, rgba(22,163,74,0.03) 0%, transparent 60%)}html[data-theme="light"] body::before{opacity:0.4}html[data-theme="light"] .site-header{background:rgba(244,246,249,0.88)}html[data-theme="light"] .post-header{background:linear-gradient(180deg, var(--bg-surface) 0%, transparent 100%)}html[data-theme="light"] .site-logo img{filter:none}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}ul{list-style:none}button{font:inherit;cursor:pointer;border:none;background:none}body{background-color:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.75;min-height:100vh;display:flex;flex-direction:column;background-image:radial-gradient(ellipse 60% 50% at 20% 0%, rgba(34,211,238,0.04) 0%, transparent 70%),radial-gradient(ellipse 40% 30% at 80% 80%, rgba(74,222,128,0.025) 0%, transparent 60%);background-attachment:fixed}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius);color:var(--text-muted);border:1px solid var(--border);background:transparent;margin-left:0.25rem;transition:color var(--t) var(--ease),border-color var(--t) var(--ease),background var(--t) var(--ease),transform var(--t) var(--ease)}.theme-toggle:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim);transform:rotate(12deg)}.icon-sun{display:none}.icon-moon{display:block}html[data-theme="light"] .icon-sun{display:block}html[data-theme="light"] .icon-moon{display:none}body::before{content:'';position:fixed;inset:0;background-image:radial-gradient(circle, var(--border-dim) 1px, transparent 1px);background-size:28px 28px;pointer-events:none;z-index:0;opacity:0.8}.site-header,.site-main,.site-footer{position:relative;z-index:1}.site-header{position:sticky;top:0;z-index:100;background:rgba(7,11,20,0.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.site-header::before{content:'';display:block;height:2px;background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:0.6}.header-inner{max-width:var(--wide-w);margin:0 auto;padding:0 2rem;height:60px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.site-logo img{height:30px;width:auto;filter:brightness(0.95);transition:filter var(--t) var(--ease),transform var(--t) var(--ease)}.site-logo:hover img{filter:brightness(1.1);transform:scale(1.03)}.site-nav{display:flex;align-items:center;gap:0.25rem}.nav-link{font-family:var(--font-mono);font-size:0.78rem;font-weight:500;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-muted);padding:0.35rem 0.75rem;border-radius:var(--radius-sm);border:1px solid transparent;transition:color var(--t) var(--ease),border-color var(--t) var(--ease),background var(--t) var(--ease)}.nav-link:hover,.nav-link.active{color:var(--accent);border-color:var(--border);background:var(--accent-dim)}.home-hero{padding:6rem 2rem 5rem;border-bottom:1px solid var(--border);position:relative;overflow:hidden}.home-hero::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent 0%, var(--accent) 30%, var(--accent) 70%, transparent 100%);opacity:0.3}.hero-inner{max-width:var(--wide-w);margin:0 auto}.hero-eyebrow{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-mono);font-size:0.72rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin-bottom:1.5rem}.hero-eyebrow::before{content:'';display:inline-block;width:20px;height:1px;background:var(--accent)}.hero-title{font-family:var(--font-display);font-size:clamp(3rem, 8vw, 5.5rem);font-weight:800;line-height:1.0;letter-spacing:-0.03em;color:var(--heading);margin-bottom:1.25rem}.hero-tagline{font-size:1.15rem;color:var(--text);max-width:520px;line-height:1.65;margin-bottom:2rem}.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem;font-family:var(--font-mono);font-size:0.78rem;color:var(--text-muted)}.hero-meta .dot{color:var(--border-bright)}.hero-badge{display:inline-flex;align-items:center;gap:0.4rem;padding:0.2rem 0.6rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:2px;color:var(--text-muted);font-size:0.72rem;letter-spacing:0.05em}.posts-section{flex:1;padding:4rem 2rem 6rem}.posts-inner{max-width:var(--wide-w);margin:0 auto}.section-label{font-family:var(--font-mono);font-size:0.72rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2.5rem;display:flex;align-items:center;gap:1rem}.section-label::after{content:'';flex:1;height:1px;background:var(--border);max-width:120px}.post-list{display:flex;flex-direction:column;gap:0}.post-item{border-bottom:1px solid var(--border-dim);opacity:0;animation:fadeUp 0.5s var(--ease) forwards}.post-item:nth-child(1){animation-delay:0.05s}.post-item:nth-child(2){animation-delay:0.10s}.post-item:nth-child(3){animation-delay:0.15s}.post-item:nth-child(4){animation-delay:0.20s}.post-item:nth-child(5){animation-delay:0.25s}.post-item:nth-child(6){animation-delay:0.30s}.post-item:nth-child(7){animation-delay:0.35s}.post-item:nth-child(8){animation-delay:0.40s}.post-item:nth-child(9){animation-delay:0.45s}.post-item:nth-child(10){animation-delay:0.50s}.post-item:nth-child(11){animation-delay:0.55s}.post-item:nth-child(12){animation-delay:0.60s}@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.post-card{display:grid;grid-template-columns:120px 1fr;gap:0 2.5rem;align-items:baseline;padding:1.75rem 0;transition:background var(--t) var(--ease);border-left:3px solid transparent;padding-left:1rem;margin-left:-1rem;border-radius:0 var(--radius) var(--radius) 0}.post-card:hover{border-left-color:var(--accent);background:var(--accent-dim);padding-right:0.75rem}.post-card-date{font-family:var(--font-mono);font-size:0.73rem;color:var(--text-muted);letter-spacing:0.04em;padding-top:0.35rem;line-height:1;white-space:nowrap}.post-card-body{min-width:0}.post-card-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;line-height:1.25;color:var(--heading);margin-bottom:0.5rem;transition:color var(--t) var(--ease)}.post-card:hover .post-card-title{color:var(--accent)}.post-card-excerpt{font-size:0.9rem;color:var(--text-muted);line-height:1.6;margin-bottom:0.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-cta{display:inline-flex;align-items:center;gap:0.3rem;font-family:var(--font-mono);font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted);transition:color var(--t) var(--ease),gap var(--t) var(--ease)}.post-card:hover .post-card-cta{color:var(--accent);gap:0.55rem}.post-article{flex:1}.post-header{border-bottom:1px solid var(--border);padding:3.5rem 2rem 3rem;background:linear-gradient(180deg, var(--bg-surface) 0%, transparent 100%)}.post-header-inner{max-width:var(--wide-w);margin:0 auto}.back-link{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-mono);font-size:0.75rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2.5rem;transition:color var(--t) var(--ease),gap var(--t) var(--ease)}.back-link:hover{color:var(--accent);gap:0.6rem}.back-link span{transition:transform var(--t) var(--ease)}.back-link:hover span{transform:translateX(-3px)}.post-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:0.5rem 1.25rem;margin-bottom:1.25rem}.post-date{font-family:var(--font-mono);font-size:0.75rem;font-weight:500;color:var(--accent);letter-spacing:0.06em}.post-category{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);padding:0.15rem 0.5rem;background:var(--bg-raised);border:1px solid var(--border);border-radius:2px}.post-article-title{font-family:var(--font-display);font-size:clamp(1.9rem, 5vw, 3.2rem);font-weight:800;line-height:1.1;letter-spacing:-0.025em;color:var(--heading);max-width:880px}.post-body{padding:3.5rem 2rem 5rem}.post-content{max-width:var(--max-w);margin:0 auto}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--heading);margin-top:2.75em;margin-bottom:0.75em}.post-content>*:first-child{margin-top:0}.post-content h1{font-size:2rem;letter-spacing:-0.02em}.post-content h2{font-size:1.5rem;letter-spacing:-0.015em;padding-bottom:0.4em;border-bottom:1px solid var(--border)}.post-content h3{font-size:1.2rem}.post-content h4{font-size:1rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted)}.post-content p{margin-bottom:1.5em;color:var(--text-strong)}.post-content a{color:var(--accent);border-bottom:1px solid var(--accent-dim);transition:border-color var(--t) var(--ease)}.post-content a:hover{border-bottom-color:var(--accent)}.post-content strong{font-weight:700;color:var(--heading)}.post-content em{font-style:italic;color:var(--text-strong)}.post-content ul,.post-content ol{margin-bottom:1.5em;padding-left:1.5em}.post-content ul{list-style:none}.post-content ul>li{position:relative;padding-left:1.25em;margin-bottom:0.4em}.post-content ul>li::before{content:'▸';position:absolute;left:0;color:var(--accent);font-size:0.75em;top:0.3em}.post-content ol{list-style:decimal}.post-content ol>li{margin-bottom:0.4em}.post-content ol>li::marker{color:var(--accent);font-family:var(--font-mono);font-size:0.85em}.post-content blockquote{border-left:3px solid var(--accent);background:var(--bg-surface);padding:1.1em 1.4em;margin:2em 0;border-radius:0 var(--radius) var(--radius) 0}.post-content blockquote p{margin:0;font-style:italic;color:var(--text-strong)}.post-content blockquote p:not(:last-child){margin-bottom:0.75em}.post-content hr{border:none;border-top:1px solid var(--border);margin:2.5em 0}.post-content img{max-width:100%;border-radius:var(--radius);border:1px solid var(--border);margin:2em 0}.post-content table{width:100%;border-collapse:collapse;font-size:0.9rem;margin:2em 0}.post-content th{font-family:var(--font-mono);font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);padding:0.6em 0.9em;text-align:left}.post-content td{border:1px solid var(--border-dim);padding:0.55em 0.9em;color:var(--text-strong)}.post-content tr:nth-child(even) td{background:var(--bg-surface)}.post-content code{font-family:var(--font-mono);font-size:0.83em;color:var(--green);background:var(--bg-surface);border:1px solid var(--border);padding:0.1em 0.4em;border-radius:var(--radius-sm)}.post-content pre{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.4em 1.5em;overflow-x:auto;margin:1.75em 0;position:relative}.post-content pre::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg, var(--accent), var(--green));border-radius:var(--radius) var(--radius) 0 0;opacity:0.6}.post-content pre code{font-family:var(--font-mono);font-size:0.845rem;line-height:1.7;color:var(--text-strong);background:none;border:none;padding:0}.highlight{background:var(--bg-surface) !important;border-radius:var(--radius)}.highlight .k,.highlight .kd,.highlight .kr{color:#c792ea}.highlight .s,.highlight .s1,.highlight .s2{color:var(--green)}.highlight .c,.highlight .c1{color:var(--text-muted);font-style:italic}.highlight .n{color:var(--text-strong)}.highlight .mi,.highlight .mf{color:var(--amber)}.highlight .nf,.highlight .nb{color:var(--accent)}.highlight .o{color:#89ddff}.page-article{flex:1;padding:4rem 2rem 5rem}.page-header{max-width:var(--wide-w);margin:0 auto 3rem;padding-bottom:2rem;border-bottom:1px solid var(--border)}.page-title{font-family:var(--font-display);font-size:clamp(2rem, 5vw, 3.5rem);font-weight:800;letter-spacing:-0.025em;color:var(--heading)}.page-content{max-width:var(--max-w);margin:0 auto}.page-content img[alt$="logo"]{display:inline-block;height:36px;width:auto;filter:brightness(0.7) grayscale(0.3);transition:filter var(--t) var(--ease);vertical-align:middle;border:none;margin:0 0.25rem}.page-content img[alt$="logo"]:hover{filter:brightness(1) grayscale(0)}.page-content h2,.page-content h1{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--heading);margin-top:2.5em;margin-bottom:0.5em;display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}.page-content p{color:var(--text-strong);margin-bottom:1em}.page-content code{font-family:var(--font-mono);font-size:0.82em;color:var(--accent);background:var(--bg-surface);border:1px solid var(--border);padding:0.1em 0.45em;border-radius:var(--radius-sm)}.page-content ul{list-style:none;margin-bottom:1em}.page-content ul>li{position:relative;padding-left:1.25em;margin-bottom:0.35em;color:var(--text-strong)}.page-content ul>li::before{content:'▸';position:absolute;left:0;color:var(--text-muted);font-size:0.75em;top:0.3em}.page-content a{color:var(--accent);border-bottom:1px solid var(--accent-dim);transition:border-color var(--t) var(--ease)}.page-content a:hover{border-bottom-color:var(--accent)}.page-content blockquote{border-left:3px solid var(--border-bright);padding:0.75em 1.2em;margin:1.5em 0;background:var(--bg-surface);border-radius:0 var(--radius) var(--radius) 0}.page-content blockquote p{color:var(--text);margin:0}.page-content blockquote strong{color:var(--text-strong)}.site-footer{border-top:1px solid var(--border);padding:2rem 2rem;background:var(--bg-surface)}.footer-inner{max-width:var(--wide-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer-left{display:flex;flex-direction:column;gap:0.25rem}.footer-copy{font-family:var(--font-mono);font-size:0.75rem;color:var(--text-muted);letter-spacing:0.04em}.footer-desc{font-size:0.82rem;color:var(--text-muted)}.footer-social{display:flex;align-items:center;gap:0.5rem}.social-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);color:var(--text-muted);border:1px solid var(--border);background:transparent;transition:color var(--t) var(--ease),border-color var(--t) var(--ease),background var(--t) var(--ease)}.social-link:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.error-page{flex:1;display:flex;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.error-inner{max-width:480px}.error-code{font-size:7rem;font-weight:700;line-height:1;color:var(--border-bright);margin-bottom:1.5rem;letter-spacing:-0.04em}.error-title{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--heading);margin-bottom:0.75rem}.error-desc{color:var(--text-muted);margin-bottom:2rem}.error-home{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-mono);font-size:0.8rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:var(--accent);border:1px solid var(--border);padding:0.5rem 1.1rem;border-radius:var(--radius);transition:background var(--t) var(--ease),border-color var(--t) var(--ease)}.error-home:hover{background:var(--accent-dim);border-color:var(--accent)}.mono{font-family:var(--font-mono)}@media (max-width: 640px){.header-inner{padding:0 1.25rem}.home-hero{padding:4rem 1.25rem 3.5rem}.posts-section{padding:3rem 1.25rem 4rem}.post-card{grid-template-columns:1fr;gap:0.4rem;padding-left:0;margin-left:0;border-left-width:2px;padding:1.4rem 0.75rem;margin-left:-0.75rem;margin-right:-0.75rem;border-left:3px solid transparent}.post-card:hover{padding-right:0.5rem}.post-card-date{padding-top:0}.post-header{padding:2.5rem 1.25rem 2rem}.post-body{padding:2.5rem 1.25rem 4rem}.page-article{padding:2.5rem 1.25rem 4rem}.footer-inner{flex-direction:column;align-items:flex-start}.nav-link{font-size:0.72rem;padding:0.3rem 0.5rem}}@media (max-width: 480px){.hero-title{letter-spacing:-0.025em}.post-article-title{font-size:1.75rem}}
