:root{--pub-bg:#0c0c0e;--pub-bg-elevated:#111114;--pub-bg-card:#17171c;--pub-bg-card-hover:#1e1e25;--pub-text:#e8e6e1;--pub-text-muted:#8a8880;--pub-text-dim:#5a5952;--pub-accent:#c4a35a;--pub-accent-soft:rgba(196,163,90,0.12);--pub-accent-border:rgba(196,163,90,0.2);--pub-green:#5ab878;--pub-blue:#5a8ec4;--pub-coral:#c47a5a;--pub-purple:#8a7ac4;--pub-border:rgba(255,255,255,0.06);--pub-col:990px;--pub-wide:1080px;--pub-ease:cubic-bezier(0.16,1,0.3,1)}.pub-page{font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;color:var(--pub-text);background:var(--pub-bg);min-height:100vh}.pub-page ::-moz-selection{background:var(--pub-accent);color:var(--pub-bg)}.pub-page ::selection{background:var(--pub-accent);color:var(--pub-bg)}.pub-page a{color:var(--pub-accent);text-decoration:none;transition:color .2s}.pub-page a:hover{color:var(--pub-text)}.pub-nav-logo:hover{color:var(--pub-text)!important}.pub-page:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}.pub-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:0 2rem;background:rgba(12,12,14,.85);backdrop-filter:blur(24px);border-bottom:1px solid var(--pub-border)}.pub-nav-inner{max-width:var(--pub-wide);margin:0 auto;display:flex;justify-content:space-between;align-items:center;height:60px}.pub-nav-logo{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:14px;font-weight:500;color:var(--pub-text)!important;letter-spacing:.5px;text-decoration:none}.pub-nav-logo span{color:var(--pub-accent)!important}.pub-nav-links{display:flex;gap:2rem;align-items:center;list-style:none;margin:0;padding:0}.pub-nav-links a{font-size:13px;font-weight:500;color:var(--pub-text-muted);letter-spacing:.3px;transition:color .2s}.pub-nav-links a.active,.pub-nav-links a:hover{color:var(--pub-text)}.pub-nav-login{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--pub-border);border-radius:8px;color:var(--pub-text-muted)!important;transition:all .2s}.pub-nav-login:hover{background:var(--pub-accent-soft);border-color:var(--pub-accent-border);color:var(--pub-accent)!important}.pub-blog-header{max-width:var(--pub-col);margin:0 auto;padding:7rem 2rem 2rem}.pub-blog-header h1{font-family:var(--font-display),"DM Serif Display",Georgia,serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:400;margin-bottom:.5rem}.pub-blog-header h1 em{font-style:italic;color:var(--pub-accent)}.pub-blog-header-desc{color:var(--pub-text-muted);font-size:16px;max-width:520px}.pub-page-header{max-width:var(--pub-wide);margin:0 auto;padding:7rem 2rem 1rem}.pub-page-header h1{font-family:var(--font-display),"DM Serif Display",Georgia,serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:400;margin-bottom:.5rem}.pub-page-header h1 em{font-style:italic;color:var(--pub-accent)}.pub-page-header-desc{color:var(--pub-text-muted);font-size:16px;max-width:600px}.pub-filters{max-width:var(--pub-col);margin:0 auto;padding:1.5rem 2rem;display:flex;gap:.5rem;flex-wrap:wrap;border-bottom:1px solid var(--pub-border)}.pub-filter-btn{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:11px;letter-spacing:.5px;text-transform:uppercase;padding:5px 14px;border:1px solid var(--pub-border);border-radius:20px;background:transparent;color:var(--pub-text-dim);cursor:pointer;transition:all .2s}.pub-filter-btn:hover{border-color:var(--pub-text-dim);color:var(--pub-text-muted)}.pub-filter-btn.active{background:var(--pub-accent-soft);border-color:var(--pub-accent-border);color:var(--pub-accent)}.pub-feed{max-width:var(--pub-col);margin:0 auto;padding:0 2rem}.pub-post{padding:2rem 0;border-bottom:1px solid var(--pub-border);transition:all .25s var(--pub-ease);cursor:pointer}.pub-post:hover{padding-left:8px}.pub-post:last-child{border-bottom:none}.pub-post-meta{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem;flex-wrap:wrap}.pub-post-date{font-size:12px;color:var(--pub-text-dim)}.pub-post-date,.pub-post-tag{font-family:var(--font-mono),"JetBrains Mono",monospace}.pub-post-tag{font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:2px 8px;border-radius:3px;border:1px solid var(--pub-border)}.pub-tag-pbi{color:var(--pub-accent);border-color:var(--pub-accent-border)}.pub-tag-docker{color:var(--pub-blue);border-color:rgba(90,142,196,.25)}.pub-tag-python{color:var(--pub-green);border-color:rgba(90,184,120,.25)}.pub-tag-hardware{color:var(--pub-coral);border-color:rgba(196,122,90,.25)}.pub-tag-devops{color:var(--pub-purple);border-color:rgba(138,122,196,.25)}.pub-tag-web{color:#5ac4b8;border-color:rgba(90,196,184,.25)}.pub-tag-ml{color:var(--pub-purple);border-color:rgba(138,122,196,.25)}.pub-post h2{font-family:var(--font-display),"DM Serif Display",Georgia,serif;font-size:clamp(1.15rem,2.5vw,1.4rem);font-weight:400;line-height:1.35;margin-bottom:.4rem;transition:color .2s}.pub-post:hover h2{color:var(--pub-accent)}.pub-post-excerpt{color:var(--pub-text-muted);font-size:14.5px;line-height:1.65}.pub-post-read{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:11px;color:var(--pub-text-dim);margin-top:.6rem;display:inline-block;transition:color .2s}.pub-post:hover .pub-post-read{color:var(--pub-accent)}.pub-about{max-width:var(--pub-wide);padding:5rem 2rem 3rem;margin:2rem auto 0;border-top:1px solid var(--pub-border)}.pub-about-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:4rem;align-items:start}.pub-about-label{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:11px;color:var(--pub-accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:1.2rem;display:flex;align-items:center;gap:10px}.pub-about-label:before{content:"";width:20px;height:1px;background:var(--pub-accent)}.pub-about h2{font-family:var(--font-display),"DM Serif Display",Georgia,serif;font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:400;margin-bottom:1.2rem;line-height:1.3}.pub-about h2 em{font-style:italic;color:var(--pub-accent)}.pub-about-bio{color:var(--pub-text-muted);font-size:15px;line-height:1.75;margin-bottom:1rem}.pub-about-bio strong{color:var(--pub-text);font-weight:500}.pub-about-right{padding-top:2.5rem}.pub-about-detail{margin-bottom:1.5rem}.pub-about-detail-label{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:10px;color:var(--pub-text-dim);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:.3rem}.pub-about-detail-value{font-size:15px;color:var(--pub-text-muted)}.pub-about-detail-value a{color:var(--pub-accent)}.pub-about-stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:.4rem}.pub-about-stack-tag{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:11px;padding:3px 10px;background:rgba(255,255,255,.03);border:1px solid var(--pub-border);border-radius:4px;color:var(--pub-text-dim)}.pub-section{max-width:var(--pub-wide);margin:0 auto;padding:3rem 2rem}.pub-section-label{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:11px;color:var(--pub-accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:1.5rem;display:flex;align-items:center;gap:10px}.pub-section-label:before{content:"";width:20px;height:1px;background:var(--pub-accent)}.pub-projects-list{display:flex;flex-direction:column;gap:1px}.pub-project{display:grid;grid-template-columns:140px 1fr auto;gap:2rem;align-items:start;padding:2rem 0;border-bottom:1px solid var(--pub-border);transition:all .25s var(--pub-ease)}.pub-project:hover{padding-left:8px}.pub-project:last-child{border-bottom:none}.pub-project-type{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--pub-text-dim);padding-top:4px}.pub-project-type.type-pro{color:var(--pub-accent)}.pub-project-type.type-personal{color:var(--pub-blue)}.pub-project-type.type-oss{color:var(--pub-green)}.pub-project-body h3{font-size:17px;font-weight:700;margin-bottom:.35rem;line-height:1.35;transition:color .2s}.pub-project:hover .pub-project-body h3{color:var(--pub-accent)}.pub-project-body p{color:var(--pub-text-muted);font-size:14px;line-height:1.65;max-width:520px}.pub-project-stack{display:flex;flex-wrap:wrap;gap:5px;padding-top:3px;justify-content:flex-end}.pub-project-stack span{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:10px;padding:2px 8px;border:1px solid var(--pub-border);border-radius:3px;color:var(--pub-text-dim);white-space:nowrap}.pub-skills-section{max-width:var(--pub-wide);padding:1rem 2rem 4rem;border-top:1px solid var(--pub-border);margin:1rem auto 0}.pub-skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}.pub-skill-group{background:var(--pub-bg-card);border:1px solid var(--pub-border);border-radius:10px;padding:1.75rem;transition:all .3s var(--pub-ease)}.pub-skill-group:hover{border-color:var(--pub-accent-border);transform:translateY(-2px)}.pub-skill-icon{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:13px;font-weight:700;color:var(--pub-accent);padding:5px 10px;background:var(--pub-accent-soft);border:1px solid var(--pub-accent-border);border-radius:6px;display:inline-block;margin-bottom:1rem}.pub-skill-group h3{font-size:15px;font-weight:700;margin-bottom:.75rem}.pub-skill-tags{display:flex;flex-wrap:wrap;gap:6px}.pub-skill-tag{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:11px;padding:3px 10px;background:rgba(255,255,255,.03);border:1px solid var(--pub-border);border-radius:4px;color:var(--pub-text-muted)}.pub-article{max-width:var(--pub-col);margin:0 auto;padding:7rem 2rem 4rem}.pub-article-header{margin-bottom:3rem}.pub-article-header h1{font-family:var(--font-display),"DM Serif Display",Georgia,serif;font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:400;line-height:1.25;margin-bottom:1rem}.pub-article-back{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:12px;color:var(--pub-text-dim);letter-spacing:.3px;transition:color .2s}.pub-article-back:hover{color:var(--pub-accent)}.pub-article-excerpt{font-size:17px;color:var(--pub-text-muted);line-height:1.7;border-left:2px solid var(--pub-accent-border);padding-left:1.25rem;margin-top:.5rem}.pub-article-body{color:var(--pub-text);font-size:16.5px;line-height:1.8}.pub-article-body h1,.pub-article-body h2,.pub-article-body h3,.pub-article-body h4{font-family:var(--font-display),"DM Serif Display",Georgia,serif;font-weight:400;margin-top:2.5rem;margin-bottom:.75rem}.pub-article-body h2{font-size:1.5rem}.pub-article-body h3{font-size:1.25rem}.pub-article-body h4{font-size:1.1rem}.pub-article-body p{margin-bottom:1.25rem}.pub-article-body a{color:var(--pub-accent);border-bottom:1px solid var(--pub-accent-border)}.pub-article-body a:hover{color:var(--pub-text)}.pub-article-body strong{color:var(--pub-text);font-weight:600}.pub-article-body em{font-style:italic}.pub-article-body ol,.pub-article-body ul{margin-bottom:1.25rem;padding-left:1.5rem}.pub-article-body li{margin-bottom:.4rem}.pub-article-body code{font-family:var(--font-mono),"JetBrains Mono",monospace;font-size:.88em;padding:2px 6px;background:rgba(255,255,255,.06);border-radius:4px;color:var(--pub-accent)}.pub-article-body pre{background:var(--pub-bg-card);border:1px solid var(--pub-border);border-radius:8px;padding:1.25rem;margin-bottom:1.5rem;overflow-x:auto}.pub-article-body pre code{background:none;padding:0;color:var(--pub-text-muted);font-size:13.5px;line-height:1.6}.pub-article-body hr{border:none;border-top:1px solid var(--pub-border);margin:2.5rem 0}.pub-article-body img{max-width:100%;border-radius:8px;margin:1.5rem 0}.pub-article-coming-soon{text-align:center;color:var(--pub-text-dim);font-style:italic;padding:3rem 0}a.pub-post-link{display:block;text-decoration:none;color:inherit}@media (max-width:768px){.pub-article{padding-top:5.5rem}}.pub-footer{padding:2rem;border-top:1px solid var(--pub-border)}.pub-footer-inner{max-width:var(--pub-wide);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.pub-footer-copy{font-size:12px;color:var(--pub-text-dim)}.pub-footer-links{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}.pub-footer-links a{font-size:12px;color:var(--pub-text-dim)}.pub-footer-links a:hover{color:var(--pub-accent)}.pub-fade-up{opacity:0;transform:translateY(20px);transition:opacity .5s var(--pub-ease),transform .5s var(--pub-ease)}.pub-fade-up.visible{opacity:1;transform:translateY(0)}@media (max-width:768px){.pub-about-grid{grid-template-columns:1fr;gap:2rem}.pub-about-right{padding-top:0}.pub-footer-inner{flex-direction:column;gap:.75rem}.pub-blog-header,.pub-page-header{padding-top:5.5rem}.pub-nav-links{gap:1.2rem}.pub-project{grid-template-columns:1fr;gap:.5rem}.pub-project-type{padding-top:0}.pub-project-stack{justify-content:flex-start}.pub-skills-grid{grid-template-columns:1fr}}@media (max-width:480px){.pub-hide-mobile{display:none}}