:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#100f12;--accent:#a78bfa;--text:#fff;--muted:#c9c9c9;--vignette:#0006;--scanline:#00000008;--glow:#a78bfa08;--glow-strong:#a78bfa80;--glow-soft:#a78bfa33;--code-bg:#a78bfa14;--card-bg:#a78bfa0a;--accent-soft:#a78bfa4d;--selection-text:#000;--nav-weight:500;--pre-bg:#0a0a0c;--pre-text:#e6e6eb}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#faf7f0;--accent:#6b53a6;--text:#1b1a21;--muted:#3f3e49;--vignette:#6b53a614;--scanline:#00000005;--glow:#6b53a60d;--glow-strong:#6b53a673;--glow-soft:#6b53a62e;--code-bg:#6b53a61a;--card-bg:#6b53a60d;--accent-soft:#6b53a64d;--selection-text:#fff;--nav-weight:600;--pre-bg:#0f0e13;--pre-text:#e6e6eb}::selection{background:var(--accent);color:var(--selection-text)}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);scrollbar-color:var(--accent) transparent;scrollbar-width:thin}html::-webkit-scrollbar{width:6px}html::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}html::-webkit-scrollbar-thumb:hover{filter:brightness(1.3)}body{color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:0 0;flex-direction:column;max-width:900px;min-height:100vh;margin:0 auto;padding:0 20px;font-family:Inconsolata,monospace;font-size:1rem;display:flex}html:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(ellipse at center, transparent 40%, var(--vignette) 100%), 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.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.015'/%3E%3C/svg%3E");position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:10001;background:repeating-linear-gradient(0deg, transparent, transparent 2px, var(--scanline) 2px, var(--scanline) 4px);position:fixed;inset:0}#root{flex-direction:column;flex:1;display:flex}main{flex:1;padding-top:32px;position:relative}main:before{content:"";background:radial-gradient(circle, var(--glow) 0%, transparent 70%);pointer-events:none;z-index:-1;width:600px;height:600px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.header{background:0 0;flex-wrap:wrap;align-items:center;gap:4px;padding:12px 0 0;display:flex;position:static}.header hr{border:none;border-top:1px solid var(--accent);opacity:.2;flex-basis:100%;margin-top:8px}.profile{flex:1}.profile h1{margin:0;font-size:32px;font-weight:900;line-height:1}.profile h1 a{color:var(--accent);text-decoration:none;display:inline-block}@keyframes glowPulse{0%,to{text-shadow:0 0 8px var(--glow-soft)}50%{text-shadow:0 0 16px var(--glow-strong), 0 0 32px var(--glow-soft)}}@keyframes crtSignal{0%,to{text-shadow:none;transform:translate(0)skew(0)}8%{transform:translateY(2px)skew(0)}12%{text-shadow:-2px 0 #ff2d558c,2px 0 #00e5ff8c;transform:translate(-2px)skew(-4deg)}20%{text-shadow:-3px 0 #ff2d5599,3px 0 #00e5ff99;transform:translate(3px)skew(2deg)}28%{text-shadow:-2px 0 1px #ff2d558c,2px 0 1px #00e5ff8c;transform:translate(-3px,-1px)skew(-5deg)}36%{text-shadow:-1px 0 #ff2d5580,1px 0 #00e5ff80;transform:translate(2px)skew(2deg)}44%{text-shadow:-3px 0 #ff2d5599,3px 0 #00e5ff99;transform:translate(-2px,1px)skew(4deg)}52%{text-shadow:-2px 0 #ff2d5580,2px 0 #00e5ff80;transform:translate(3px)skew(-3deg)}60%{text-shadow:-1px 0 #ff2d5573,1px 0 #00e5ff73;transform:translate(-2px)skew(1deg)}68%{text-shadow:-1px 0 #ff2d5566,1px 0 #00e5ff66;transform:translate(1px)skew(-2deg)}76%{transform:translate(0)skew(0)}90%{text-shadow:none;transform:translate(0)skew(0)}}.nav-links{margin:0}.nav-links ul{gap:12px;margin:0;padding:0;list-style:none;display:flex}.nav-links a{color:var(--text);line-height:1.2;font-weight:var(--nav-weight);padding:2px 8px;text-decoration:none;transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;width:calc(100% - 16px);height:2px;transition:transform .4s;position:absolute;bottom:0;left:8px;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a:focus-visible:after,.nav-links a.active:after{transform:scaleX(1)}.nav-links a:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.nav-links a.active{color:var(--accent)}.nav-group{align-items:center;gap:2px;display:flex}.link-num{margin-right:2px;font-size:.85em}.separator{color:var(--accent);opacity:.3;-webkit-user-select:none;user-select:none;padding:0 2px}.theme-toggle{color:var(--accent);opacity:.5;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:var(--nav-weight);font-family:inherit;line-height:1.2;font-size:inherit;text-align:center;background:0 0;border:none;width:calc(7ch + 12px);padding:2px 6px;transition:opacity .2s,color .2s}.theme-toggle:hover{opacity:1}.theme-toggle:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.lang-toggle{width:auto}.content h2{letter-spacing:-.02em;margin-top:36px;margin-bottom:20px;font-size:1.75rem;font-weight:700}.content h2:first-child{margin-top:0}.content h2 .prompt{color:var(--accent)}.content h3{margin-top:28px;margin-bottom:12px;font-size:1.15rem;font-weight:600}.content p{color:var(--muted);margin:0 0 16px;line-height:1.7}.content a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.content a:hover{filter:brightness(1.2)}.content code{color:var(--accent);background:var(--code-bg);border-radius:3px;padding:1px 5px;font-family:Inconsolata,monospace;font-size:.9em}.content pre{background:var(--pre-bg);color:var(--pre-text);border:1px solid var(--accent-soft);border-radius:4px;margin:0 0 16px;padding:16px;font-size:.9em;line-height:1.6;overflow-x:auto}.content pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.tech-chips{flex-wrap:wrap;gap:6px;margin:16px 0;padding:0;list-style:none;display:flex}.tech-chips code{color:var(--accent);border:1px solid var(--accent);background:0 0;border-radius:4px;padding:3px 12px;font-family:Inconsolata,monospace;font-size:1rem;transition:color .2s,background-color .2s,border-color .2s}.tech-chips code:hover{color:var(--selection-text);background:var(--accent);border-color:var(--accent)}.experience{border-top:1px solid var(--accent-soft);margin:0 0 16px}.experience-item{border-bottom:1px solid var(--accent-soft);padding:8px 0}.experience-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:4px;display:flex}.experience-head .experience-company{min-width:0;margin:8px 0 0;font-size:1.05rem;font-weight:700}.experience-date{color:var(--muted);white-space:nowrap;font-size:.8em}.experience-role{color:var(--muted);margin:0 0 6px;font-size:.85em;font-weight:600}.experience-desc{color:var(--muted);margin:0;font-size:.95em;line-height:1.6}.about-contact{background:var(--pre-bg);border:1px solid var(--accent-soft);border-radius:2px;margin:0 0 16px;overflow:hidden}.about-contact-command{border-bottom:1px solid var(--accent-soft);color:var(--muted);background:#ffffff0a;align-items:center;gap:8px;padding:8px 16px;font-size:.9em;display:flex}.about-contact-links{margin:0;padding:0;list-style:none}.about-contact-links li{border-bottom:1px solid var(--accent-soft)}.about-contact-links li:last-child{border-bottom:none}.about-contact-links a{color:var(--muted);align-items:center;gap:10px;padding:9px 16px;text-decoration:none;transition:background-color .35s,color .35s;display:flex}.about-contact-links a:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.about-contact-links a:hover{background:var(--accent)}.about-contact-icon{width:14px;color:var(--muted);justify-content:center;align-items:center;transition:color .35s;display:inline-flex}.about-contact-name{color:var(--muted);font-weight:600;transition:color .35s}.about-contact-handle{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin-left:auto;transition:color .35s;position:relative;overflow:hidden}.about-contact-handle:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .4s;position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.about-contact-links a:hover .about-contact-icon,.about-contact-links a:hover .about-contact-name,.about-contact-links a:hover .about-contact-handle{color:var(--selection-text)}:root[data-theme=light] .about-contact{background:var(--bg)}:root[data-theme=light] .about-contact-command{background:#00000005}.bio-meta{color:var(--muted);opacity:.85;font-size:.9em}.terminal{background:var(--pre-bg);border:1px solid var(--accent-soft);border-radius:6px;margin:0 0 16px;overflow:hidden}.terminal-bar{border-bottom:1px solid var(--accent-soft);background:#ffffff0a;align-items:center;gap:8px;padding:8px 12px;display:flex}.terminal-dots{gap:6px;display:flex}.terminal-dot{border-radius:50%;width:10px;height:10px}.terminal-dot:first-child{background:#f87171}.terminal-dot:nth-child(2){background:#fbbf24}.terminal-dot:nth-child(3){background:#34d399}.terminal-title{text-align:center;color:var(--pre-text);opacity:.7;flex:1;font-family:Inconsolata,monospace;font-size:.8em}.terminal-bar:after{content:"";width:42px}.terminal .terminal-body{background:0 0;border:none;border-radius:0;margin:0;padding:16px}.term-prompt{color:var(--accent)}.matrix-hero{height:220px;margin:0 0 24px;position:relative;overflow:hidden}.matrix-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.matrix-phrases{color:var(--text);text-shadow:0 0 12px color-mix(in srgb, var(--text) 30%, transparent);pointer-events:none;flex-direction:column;justify-content:center;gap:10px;padding:0 32px;font-family:VT323,Inconsolata,monospace;font-size:1.42rem;line-height:1.4;display:flex;position:absolute;inset:0}.matrix-text{display:inline-block}.matrix-line.hidden{visibility:hidden}.matrix-green{color:#3fb950;animation:2.4s ease-in-out infinite coloredPulse;animation-delay:var(--pulse-delay,0s)}.matrix-red{color:#ff4d5a;animation:2.4s ease-in-out infinite coloredPulse;animation-delay:var(--pulse-delay,0s)}@keyframes coloredPulse{0%,to{text-shadow:0 0 3px color-mix(in srgb, currentColor 18%, transparent)}50%{text-shadow:0 0 6px color-mix(in srgb, currentColor 32%, transparent), 0 0 11px color-mix(in srgb, currentColor 12%, transparent)}}.matrix-cursor{vertical-align:text-bottom;background:currentColor;width:10px;height:1.2em;margin-left:2px;animation:1s step-end infinite matrixBlink;display:inline-block}.matrix-prompt{color:var(--accent);-webkit-user-select:none;user-select:none;margin-right:10px;font-weight:700}@keyframes matrixBlink{0%,to{opacity:1}50%{opacity:0}}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 16px;display:grid}.projects-empty{color:var(--muted);grid-column:1/-1;font-size:.95em}.project-card{border:1px solid var(--accent-soft);background-color:var(--card-bg);border-radius:2px;flex-direction:column;transition:border-color .2s,background-color .2s,transform .2s;display:flex;overflow:hidden}.project-card:hover{border-color:var(--accent);background-color:var(--code-bg);transform:translateY(-2px)}.project-card .project-link{color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.project-card .project-link:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.project-card h3.project-title{border-bottom:1px solid var(--accent-soft);margin:0;padding:2px 0 10px;font-size:.95rem;font-weight:700;line-height:1.3}.project-body{flex-direction:column;flex:1;gap:10px;padding:14px 16px 16px;display:flex}.project-body p{margin:0;font-size:.9em;line-height:1.55}.project-tech{flex-wrap:wrap;gap:6px;display:flex}.project-meta{justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:10px;display:flex}.project-date{color:var(--muted);font-family:Inconsolata,monospace;font-size:.8em}.project-card .project-repo{color:var(--accent);align-self:flex-end;align-items:center;gap:6px;font-size:.9em;display:inline-flex}.project-card:hover .project-repo{text-decoration:underline}.home-projects,.home-article{margin-top:36px}.home-article .featured-article{border:1px solid var(--accent-soft);background:var(--card-bg);border-radius:2px;flex-direction:column;transition:border-color .2s,background-color .2s,transform .2s;display:flex;position:relative;overflow:hidden}.home-article .featured-article:before{content:"";z-index:1;pointer-events:none;opacity:0;background:linear-gradient(var(--accent), var(--accent)) top left / 14px 2px, linear-gradient(var(--accent), var(--accent)) top right / 14px 2px, linear-gradient(var(--accent), var(--accent)) bottom left / 14px 2px, linear-gradient(var(--accent), var(--accent)) bottom right / 14px 2px, linear-gradient(var(--accent), var(--accent)) left top / 2px 14px, linear-gradient(var(--accent), var(--accent)) right top / 2px 14px, linear-gradient(var(--accent), var(--accent)) left bottom / 2px 14px, linear-gradient(var(--accent), var(--accent)) right bottom / 2px 14px;background-repeat:no-repeat;transition:opacity .25s;position:absolute;inset:4px}.home-article .featured-article:hover:before{opacity:1}.home-article .featured-article-link{color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.home-article .featured-article-link:focus-visible{outline:1px solid var(--accent);outline-offset:-1px;border-radius:2px}.featured-article-body{flex-direction:column;flex:1;gap:12px;padding:18px 20px 16px;display:flex}.featured-article-head{border-bottom:1px solid var(--accent-soft);justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:10px;display:flex}.featured-article-head h3{margin:0;font-size:1.05rem;font-weight:700}.home-article .featured-article-excerpt{color:var(--muted);margin:0;font-size:.95em;line-height:1.6}.featured-article-tags{flex-wrap:wrap;gap:6px;display:flex}.home-article .featured-article-tags code{background:var(--code-bg);color:var(--accent);border-radius:3px;padding:2px 8px;font-family:Inconsolata,monospace;font-size:.75em}.featured-article-meta{justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}.featured-article-read{color:var(--accent);white-space:nowrap;font-size:.85em}.boot-overlay{z-index:10000;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}.boot-overlay.boot-exit{opacity:0;pointer-events:none}.boot-log{min-height:180px;color:var(--muted);text-align:left;padding:16px 20px;font-size:15px;line-height:1.8}.boot-line{opacity:0;transition:opacity .15s}.boot-line-visible{opacity:1}.boot-ok{color:var(--accent)}.boot-skip{border:1px solid var(--accent-soft);color:var(--muted);cursor:pointer;background:0 0;padding:6px 16px;font-family:Inconsolata,monospace;font-size:12px;transition:border-color .2s,color .2s;position:absolute;bottom:32px}.boot-skip:hover{border-color:var(--accent);color:var(--text)}.footer{opacity:.75;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:40px 0 10px;font-size:13px;line-height:1.9;display:flex}.articles-empty{color:var(--muted);font-size:.95em}.article-filters{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 24px;display:flex}.filter-chip{border:1px solid var(--accent-soft);color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:3px 12px;font-family:Inconsolata,monospace;font-size:.85em;transition:border-color .2s,color .2s,background-color .2s}.filter-chip:hover{border-color:var(--accent);color:var(--text)}.filter-chip:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.filter-chip.active{border-color:var(--accent);background:var(--code-bg);color:var(--accent)}.pagination{flex-wrap:wrap;align-items:center;gap:8px;margin-top:24px;display:flex}.filter-chip[disabled]{opacity:.45;cursor:not-allowed}.articles-list{border-top:1px solid var(--accent-soft);animation:.25s ease-out both listIn}.article-item{border-bottom:1px solid var(--accent-soft);padding:20px 0}.content .article-item-main{color:inherit;border-radius:2px;text-decoration:none;display:block}.content .article-item-main:hover{filter:none}.article-item-main:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.article-item-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;display:flex}.article-item-title{font-size:1.05rem;font-weight:700;transition:color .2s}.article-item:hover .article-item-title{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-underline-offset:3px}.article-excerpt{color:var(--muted);margin:0 0 12px;font-size:.95em;line-height:1.6;display:block}.article-date{color:var(--muted);white-space:nowrap;font-size:.8em}.article-item .article-date{opacity:.8}.article-item-tags{flex-wrap:wrap;gap:6px;display:flex}.article-tag{background:var(--code-bg);color:var(--accent);cursor:pointer;border:none;border-radius:3px;padding:2px 8px;font-family:Inconsolata,monospace;font-size:.75em;transition:background-color .2s,color .2s}.article-tag:hover{background:var(--accent);color:var(--selection-text)}.article-tag:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.article-page h4{margin-top:24px;margin-bottom:10px;font-size:1rem;font-weight:600}.article-page h5,.article-page h6{color:var(--muted);margin-top:20px;margin-bottom:8px;font-size:.9em;font-weight:600}.article-meta-line{color:var(--muted);align-items:center;gap:6px;margin-bottom:24px;font-size:.9em;display:flex}.article-meta-line .article-date,.article-meta-line .article-meta-id{font-size:inherit}.article-sep{color:var(--muted);opacity:.6}.article-meta-id{color:var(--accent);opacity:.7}.article-page ul,.article-page ol{color:var(--muted);margin:0 0 16px;padding-left:24px;line-height:1.7}.article-page li{margin:0 0 6px}.article-page li::marker{color:var(--accent)}.article-page blockquote{border-left:3px solid var(--accent);background:var(--card-bg);color:var(--muted);margin:0 0 16px;padding:4px 16px}.article-page blockquote p{margin:0}.article-page table{border-collapse:collapse;width:100%;margin:0 0 16px;font-size:.9em}.article-page th,.article-page td{border:1px solid var(--accent-soft);text-align:left;padding:6px 12px}.article-page th{color:var(--accent);font-weight:700}.article-page hr{border:none;border-top:1px solid var(--accent-soft);margin:24px 0}.article-back{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;margin-top:32px;padding:0;font-size:.9em;text-decoration:none;display:inline-block}.article-back:hover{filter:brightness(1.2)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1000px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.projects-grid{grid-template-columns:1fr}.header{text-align:center;flex-direction:column;gap:16px}.nav-group{flex-direction:column;align-items:center;gap:12px;width:100%}.nav-links ul{grid-template-columns:repeat(2,auto);justify-content:center;justify-items:start;gap:4px 24px;display:grid}.separator{display:none}.header hr{margin-top:0}.footer{text-align:center;flex-direction:column;align-items:center;gap:6px}.matrix-hero{height:205px}.matrix-phrases{gap:8px;padding:0 20px;font-size:1.08rem}}.page{animation:.35s ease-out both pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes listIn{0%{opacity:0}to{opacity:1}}
