:root{--primary-bg:#0a0a0a;--surface:#111;--card-bg:#141414;--card-bg-hover:#181818;--tertiary-bg:#1a1a1a;--text-primary:#f0f0f0;--text-secondary:#9a9a9a;--text-tertiary:#555;--accent:#2563eb;--accent-dark:#1e40af;--accent-subtle:#2563eb1a;--border:#ffffff12;--border-strong:#ffffff1f;--code-bg:#0d1117;--featured-gradient:linear-gradient(135deg,#2563eb0f 0%,transparent 70%)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--primary-bg);color:var(--text-primary);font-family:Archivo,-apple-system,sans-serif;line-height:1.7;overflow-x:hidden}.mono{font-family:IBM Plex Mono,monospace}.nav{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:1000;background:#0a0a0ad9;width:100%;position:fixed;top:0}.nav-container{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:1.25rem 2rem;display:flex}.logo a{color:var(--text-primary);letter-spacing:.02em;font-family:IBM Plex Mono,monospace;font-size:.875rem;font-weight:600;text-decoration:none}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);font-size:.875rem;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--text-primary)}.lang-selector{gap:.375rem;margin-left:2rem;display:flex}.lang-btn{border:1px solid var(--border);color:var(--text-tertiary);cursor:pointer;letter-spacing:.05em;background:0 0;border-radius:3px;padding:.3rem .65rem;font-family:IBM Plex Mono,monospace;font-size:.7rem;transition:all .2s}.lang-btn:hover{border-color:var(--border-strong);color:var(--text-secondary)}.lang-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.page-header{max-width:1100px;margin:0 auto;padding:8rem 2rem 3rem}.page-header-label{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem;font-family:IBM Plex Mono,monospace;font-size:.7rem}.page-header-title{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:.75rem;font-size:2.25rem;font-weight:700;line-height:1.2}.page-header-description{color:var(--text-secondary);max-width:540px;font-size:1.05rem;line-height:1.65}.tags-section{max-width:1100px;margin:0 auto;padding:0 2rem 2rem}.tags-filter{flex-wrap:wrap;gap:.5rem;display:flex}.tag-filter{border:1px solid var(--border);color:var(--text-tertiary);cursor:pointer;letter-spacing:.02em;background:0 0;border-radius:100px;padding:.35rem .8rem;font-family:IBM Plex Mono,monospace;font-size:.75rem;transition:all .2s}.tag-filter:hover{border-color:var(--border-strong);color:var(--text-secondary);background:var(--surface)}.tag-filter.active{background:var(--accent);border-color:var(--accent);color:#fff}.notes-main{max-width:1100px;margin:0 auto;padding:0 2rem 6rem}.section-label{color:var(--text-tertiary);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.5rem;font-family:IBM Plex Mono,monospace;font-size:.7rem}.notes-loading,.notes-empty{text-align:center;color:var(--text-tertiary);padding:4rem 0;font-family:IBM Plex Mono,monospace;font-size:.875rem}.featured-note{border-bottom:1px solid var(--border);margin-bottom:3rem;padding-bottom:3rem}.featured-card{background:var(--card-bg);border:1px solid var(--border);background-image:var(--featured-gradient);border-radius:8px;padding:2.5rem;text-decoration:none;transition:all .25s;display:block;position:relative;overflow:hidden}.featured-card:before{content:"";background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5;height:1px;position:absolute;top:0;left:0;right:0}.featured-card:hover{border-color:var(--border-strong);background-color:var(--card-bg-hover);transform:translateY(-1px);box-shadow:0 8px 40px #0006}.featured-badge{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:1.25rem;font-family:IBM Plex Mono,monospace;font-size:.65rem;display:block}.featured-title{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:1rem;font-size:1.75rem;font-weight:700;line-height:1.25}.featured-excerpt{color:var(--text-secondary);max-width:720px;margin-bottom:1.75rem;font-size:1rem;line-height:1.7}.featured-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.featured-meta-left{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.meta-date,.meta-reading-time{color:var(--text-tertiary);font-family:IBM Plex Mono,monospace;font-size:.75rem}.note-tags{flex-wrap:wrap;gap:.4rem;display:flex}.tag{border:1px solid var(--border);color:var(--text-tertiary);letter-spacing:.02em;background:#ffffff0a;border-radius:3px;padding:.25rem .6rem;font-family:IBM Plex Mono,monospace;font-size:.7rem}.read-more-arrow{color:var(--accent);white-space:nowrap;align-items:center;gap:.4rem;font-family:IBM Plex Mono,monospace;font-size:.8rem;transition:gap .2s;display:flex}.featured-card:hover .read-more-arrow{gap:.7rem}.notes-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.note-card{background:var(--card-bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-height:180px;padding:1.75rem;text-decoration:none;transition:all .2s;display:flex}.note-card:hover{border-color:var(--border-strong);background-color:var(--card-bg-hover);transform:translateY(-1px);box-shadow:0 4px 20px #0000004d}.note-card-date{color:var(--text-tertiary);margin-bottom:.75rem;font-family:IBM Plex Mono,monospace;font-size:.7rem}.note-card-title{color:var(--text-primary);letter-spacing:-.01em;flex:1;margin-bottom:.75rem;font-size:1.1rem;font-weight:600;line-height:1.35}.note-card-excerpt{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:1.25rem;font-size:.875rem;line-height:1.6;display:-webkit-box;overflow:hidden}.note-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;display:flex}.note-card-tags{flex-wrap:wrap;flex:1;gap:.35rem;display:flex}.note-card-reading{color:var(--text-tertiary);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:.7rem}.about-section{border-top:1px solid var(--border);max-width:1100px;margin:0 auto;padding:4rem 2rem 5rem}.about-content{max-width:560px}.about-title{color:var(--text-primary);margin-bottom:1rem;font-size:1.25rem;font-weight:600}.about-text{color:var(--text-secondary);margin-bottom:1.75rem;font-size:1rem;line-height:1.75}.about-links{align-items:center;gap:.75rem;display:flex}.about-links a{color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;padding:.4rem .9rem;font-family:IBM Plex Mono,monospace;font-size:.8rem;text-decoration:none;transition:all .2s}.about-links a:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--surface)}footer{text-align:center;border-top:1px solid var(--border);color:var(--text-tertiary);padding:2rem;font-family:IBM Plex Mono,monospace;font-size:.78rem}.reading-progress-bar{z-index:2000;background:#ffffff0f;width:100%;height:2px;position:fixed;top:0;left:0}.reading-progress-fill{background:var(--accent);height:100%;transition:width .1s linear}.article-layout{max-width:1300px;margin:0 auto;padding:0 2rem;display:flex;position:relative}.toc-sidebar{flex-shrink:0;width:220px;padding-top:9rem;display:none}.toc-inner{position:sticky;top:5rem}.toc-label{color:var(--text-tertiary);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font-size:.65rem}.toc-nav{flex-direction:column;gap:.25rem;display:flex}.toc-link{color:var(--text-tertiary);border-left:2px solid var(--border);padding:.3rem .75rem;font-size:.8rem;line-height:1.4;text-decoration:none;transition:all .2s}.toc-link:hover{color:var(--text-secondary);border-left-color:var(--border-strong)}.toc-link.active{color:var(--accent);border-left-color:var(--accent)}.toc-level-3{padding-left:1.5rem;font-size:.75rem}.note-page{flex:1;min-width:0;min-height:100vh;padding:8rem 0 4rem}.note-page.with-toc{padding-left:3rem;padding-right:1rem}.note-page-container{max-width:740px}.note-page-back{color:var(--text-tertiary);margin-bottom:2.5rem;font-size:.8rem;text-decoration:none;transition:color .2s;display:inline-block}.note-page-back:hover{color:var(--accent)}.note-header{border-bottom:1px solid var(--border);margin-bottom:3rem;padding-bottom:2.5rem}.note-header-meta{color:var(--text-tertiary);align-items:center;gap:.6rem;margin-bottom:1.25rem;font-family:IBM Plex Mono,monospace;font-size:.78rem;display:flex}.note-dot{color:var(--border-strong)}.note-page-title{color:var(--text-primary);letter-spacing:-.025em;margin-bottom:1.5rem;font-size:2.4rem;font-weight:700;line-height:1.2}.note-page-tags{flex-wrap:wrap;gap:.4rem;display:flex}.note-page-content{color:#c8c8c8;font-size:1.125rem;line-height:1.85}.note-page-content p{margin-bottom:1.6rem}.note-page-content h1{color:var(--text-primary);border-bottom:1px solid var(--border);letter-spacing:-.02em;margin:3rem 0 1.25rem;padding-bottom:.5rem;font-size:1.9rem;font-weight:700}.note-page-content h2{color:var(--text-primary);letter-spacing:-.015em;margin:2.5rem 0 1rem;font-size:1.5rem;font-weight:600}.note-page-content h3{color:var(--text-primary);margin:2rem 0 .75rem;font-size:1.2rem;font-weight:600}.note-page-content strong{color:var(--text-primary);font-weight:600}.note-page-content em{color:#b8b8b8;font-style:italic}.note-page-content code{background:var(--code-bg);color:#7dd3fc;border:1px solid #7dd3fc26;border-radius:4px;padding:.15rem .45rem;font-family:IBM Plex Mono,monospace;font-size:.875em}.note-page-content pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin:1.75rem 0;padding:1.5rem;overflow-x:auto}.note-page-content pre code{color:#e2e8f0;white-space:pre;font-variant-ligatures:none;font-feature-settings:"liga" 0;background:0 0;border:none;padding:0;font-size:.875rem;line-height:1.2}.note-page-content ul,.note-page-content ol{margin:1.5rem 0;padding-left:1.75rem}.note-page-content li{margin-bottom:.6rem;line-height:1.75}.note-page-content a{color:var(--accent);border-bottom:1px solid #2563eb59;text-decoration:none;transition:border-color .2s}.note-page-content a:hover{border-bottom-color:var(--accent)}.note-page-content blockquote{border-left:3px solid var(--accent);color:var(--text-tertiary);background:var(--surface);border-radius:0 6px 6px 0;margin:1.75rem 0;padding:.5rem 1.5rem;font-style:italic}.note-page-content table{border-collapse:collapse;width:100%;margin:1.75rem 0;font-size:.9rem;display:block;overflow-x:auto}.note-page-content thead{background:#2563eb14}.note-page-content th{text-align:left;border:1px solid var(--border-strong);color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;padding:.7rem 1rem;font-family:IBM Plex Mono,monospace;font-size:.78rem;font-weight:600}.note-page-content td{border:1px solid var(--border);color:var(--text-secondary);vertical-align:top;padding:.65rem 1rem;line-height:1.6}.note-page-content tr:nth-child(2n) td{background:#ffffff05}.note-page-content tr:hover td{background:#2563eb0a}.note-page-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.note-page-content del{color:var(--text-tertiary);text-decoration:line-through}.note-page-content img{border:1px solid var(--border);border-radius:6px;max-width:100%;margin:1.5rem 0}.note-footer-nav{border-top:1px solid var(--border);margin-top:4rem;padding-top:2rem}.note-footer-back{color:var(--text-tertiary);font-family:IBM Plex Mono,monospace;font-size:.8rem;text-decoration:none;transition:color .2s}.note-footer-back:hover{color:var(--accent)}@media (min-width:1100px){.toc-sidebar{display:block}}@media (max-width:768px){.article-layout{padding:0 1.25rem}.note-page{padding:6.5rem 0 3rem}.note-page.with-toc{padding-left:0}.note-page-title{font-size:1.75rem}.note-page-content{font-size:1rem}.note-page-content h1{font-size:1.5rem}.note-page-content h2{font-size:1.3rem}.note-page-content pre{padding:1rem;font-size:.875rem}.page-header{padding:7rem 1.5rem 2.5rem}.page-header-title{font-size:1.75rem}.tags-section,.notes-main{padding-left:1.5rem;padding-right:1.5rem}.nav-container{padding:1.1rem 1.25rem}.nav-links{gap:1.25rem}.lang-selector{margin-left:1rem}.featured-card{padding:1.75rem}.featured-title{font-size:1.4rem}.notes-grid{grid-template-columns:1fr}.featured-meta{flex-direction:column;align-items:flex-start}}
