:root{--font-sans:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--color-bg:#f5f7fb;--color-bg-alt:#fff;--color-text:#0d1220;--color-text-muted:#4b5875;--color-border:#dbe1ee;--color-accent:#1d4ed8;--color-accent-secondary:#dc2626;--color-accent-contrast:#fff;--color-tag-bg:color-mix(in srgb, var(--color-accent) 15%, var(--color-bg-alt));--color-tag-text:var(--color-accent);--color-focus:var(--color-accent);--shadow-card:0 1px 2px #1018280f, 0 1px 3px #10182814;--radius-md:10px;--radius-lg:16px;--max-width:960px;--transition-fast:.15s ease;--transition-base:.25s ease}:root[data-theme=dark]{--color-bg:#05070d;--color-bg-alt:#0c1220;--color-text:#dfe7ff;--color-text-muted:#7c88ab;--color-border:#1c2740;--color-accent:#3b82f6;--color-accent-secondary:#f87171;--color-accent-contrast:#04070f;--shadow-card:0 1px 2px #00000073, 0 2px 12px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#05070d;--color-bg-alt:#0c1220;--color-text:#dfe7ff;--color-text-muted:#7c88ab;--color-border:#1c2740;--color-accent:#3b82f6;--color-accent-secondary:#f87171;--color-accent-contrast:#04070f;--shadow-card:0 1px 2px #00000073, 0 2px 12px #00000080}}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}body{font-family:var(--font-sans);background-color:var(--color-bg);background-image:radial-gradient(var(--color-border) 1px, transparent 1px);color:var(--color-text);-webkit-font-smoothing:antialiased;background-size:22px 22px;margin:0;line-height:1.6}img{max-width:100%;display:block}a{color:var(--color-accent)}h1,h2,h3,h4{letter-spacing:-.01em;font-weight:700;line-height:1.2}.container{max-width:var(--max-width);margin-inline:auto;padding-inline:1.5rem}section{border-bottom:1px solid var(--color-border);padding-block:clamp(2.5rem,6vw,4.5rem)}section:last-of-type{border-bottom:none}.section-title{margin-block:0 .5rem;font-size:clamp(1.4rem,3vw,1.9rem)}main{counter-reset:section-index}main section{counter-increment:section-index}.section-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700;font-family:var(--font-mono);color:var(--color-accent);margin:0 0 .5rem}main section .section-kicker:before{content:"[" counter(section-index, decimal-leading-zero) "] "}.section-intro{color:var(--color-text-muted);max-width:60ch;margin-bottom:2rem}.skip-link{background:var(--color-accent);color:var(--color-accent-contrast);border-radius:var(--radius-md);z-index:100;transition:top var(--transition-fast);padding:.6rem 1rem;font-weight:600;text-decoration:none;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:4px}.btn{border-radius:var(--radius-md);font-family:var(--font-mono);cursor:pointer;transition:transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #0000;align-items:center;gap:.5rem;padding:.7rem 1.3rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--color-accent);color:var(--color-accent-contrast)}.btn-primary:hover{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 25%, transparent)}.btn-secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-secondary:hover{border-color:var(--color-accent)}.card{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color var(--transition-base), box-shadow var(--transition-base)}.card:hover{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));box-shadow:var(--shadow-card), 0 0 0 1px color-mix(in srgb, var(--color-accent) 18%, transparent)}.tag{background:var(--color-tag-bg);color:var(--color-tag-text);font-family:var(--font-mono);border-radius:999px;padding:.25rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.terminal-window{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.terminal-titlebar{background:color-mix(in srgb, var(--color-border) 40%, transparent);border-bottom:1px solid var(--color-border);align-items:center;gap:.4rem;padding:.65rem 1rem;display:flex}.terminal-titlebar .dot{border-radius:50%;width:.65rem;height:.65rem;display:inline-block}.terminal-titlebar .dot-red{background:#ef4444}.terminal-titlebar .dot-yellow{background:#eab308}.terminal-titlebar .dot-green{background:#22c55e}.terminal-title{font-family:var(--font-mono);color:var(--color-text-muted);margin-left:.5rem;font-size:.75rem}.terminal-body{padding:clamp(1.25rem,4vw,2rem)}.terminal-line{font-family:var(--font-mono);color:var(--color-text-muted);margin:0 0 .4rem;font-size:.8rem}.terminal-line .prompt{color:var(--color-accent);margin-right:.35rem;font-weight:700}.boot-intro{z-index:200;background:var(--color-bg);opacity:1;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;padding:1.25rem;transition:opacity .4s;display:flex;position:fixed;inset:0}.boot-intro.boot-hide{opacity:0;pointer-events:none}html.boot-skip .boot-intro{display:none}.boot-window{width:min(520px,100%)}.boot-log{gap:.4rem;min-height:200px;margin:0;padding:0;list-style:none;display:grid}.boot-log li{font-family:var(--font-mono);color:var(--color-text-muted);word-break:break-word;font-size:.85rem}.boot-log li.cmd{color:var(--color-text)}.boot-log li.ok{color:var(--color-accent);font-weight:600}.boot-log li.warn{color:var(--color-accent-secondary);font-weight:600}.boot-skip-btn{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;border-radius:999px;padding:.55rem 1.1rem;font-size:.8rem}.boot-skip-btn:hover{color:var(--color-text);border-color:var(--color-accent)}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:color-mix(in srgb, var(--color-bg) 88%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:1rem;padding-block:.9rem;display:flex}.brand[data-astro-cid-nen7h5rs]{color:var(--color-text);white-space:nowrap;font-weight:700;text-decoration:none}.brand-prompt[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);color:var(--color-accent)}.brand-prompt[data-astro-cid-nen7h5rs]:after{content:"_";animation:1.1s step-end infinite caret-blink}@keyframes caret-blink{50%{opacity:0}}.nav-list[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);flex-wrap:wrap;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--color-text-muted);transition:color var(--transition-fast);font-size:.85rem;font-weight:500;text-decoration:none}.nav-list[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--color-accent)}.theme-toggle{border:1px solid var(--color-border);cursor:pointer;width:2.4rem;height:2.4rem;transition:border-color var(--transition-fast), transform var(--transition-fast);background:0 0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.theme-toggle:hover{border-color:var(--color-accent);transform:translateY(-1px)}@media (width<=720px){.header-inner[data-astro-cid-nen7h5rs]{flex-wrap:wrap}.nav-list[data-astro-cid-nen7h5rs]{order:3;justify-content:center;gap:.85rem;width:100%;padding-block-start:.5rem}}.hero[data-astro-cid-ge2uvauf]{background:radial-gradient(circle at top right, color-mix(in srgb, var(--color-accent) 14%, transparent), transparent 60%), radial-gradient(circle at bottom left, color-mix(in srgb, var(--color-accent-secondary) 10%, transparent), transparent 55%);padding-block:clamp(3rem,8vw,5.5rem) clamp(2.5rem,6vw,4rem)}.hero-inner[data-astro-cid-ge2uvauf]{max-width:72ch}.hero[data-astro-cid-ge2uvauf] h1[data-astro-cid-ge2uvauf]{margin:0 0 .35rem;font-size:clamp(2rem,5vw,3rem)}.hero-title[data-astro-cid-ge2uvauf]{color:var(--color-text-muted);margin:0 0 1.25rem;font-size:clamp(1.05rem,2.4vw,1.25rem);font-weight:600}.hero-summary[data-astro-cid-ge2uvauf]{color:var(--color-text-muted);margin:0 0 1.75rem}.hero-actions[data-astro-cid-ge2uvauf]{flex-wrap:wrap;gap:.85rem;margin-bottom:1.5rem;display:flex}.hero-location[data-astro-cid-ge2uvauf]{color:var(--color-text-muted);margin:0;font-size:.9rem}.timeline[data-astro-cid-bl6cniha]{margin:0;padding:0;list-style:none;position:relative}.timeline-item[data-astro-cid-bl6cniha]{padding-bottom:2rem;padding-left:2rem;position:relative}.timeline-item[data-astro-cid-bl6cniha]:before{content:"";background:var(--color-border);width:2px;position:absolute;top:.4rem;bottom:-.6rem;left:.4rem}.timeline-item[data-astro-cid-bl6cniha]:last-child:before{display:none}.timeline-marker[data-astro-cid-bl6cniha]{background:var(--color-accent);width:.9rem;height:.9rem;box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 20%, transparent);border-radius:50%;position:absolute;top:.35rem;left:0}.timeline-content[data-astro-cid-bl6cniha]{opacity:0;padding:1.25rem 1.5rem;transition:opacity .5s,transform .5s;transform:translateY(12px)}.timeline-content[data-astro-cid-bl6cniha].in-view{opacity:1;transform:translateY(0)}.job-head[data-astro-cid-bl6cniha]{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.job-head[data-astro-cid-bl6cniha] h3[data-astro-cid-bl6cniha]{margin:0;font-size:1.05rem}.job-period[data-astro-cid-bl6cniha]{color:var(--color-text-muted);white-space:nowrap;font-size:.85rem;font-weight:600}.job-org[data-astro-cid-bl6cniha]{color:var(--color-accent);margin:.15rem 0 .75rem;font-weight:600}.job-teaser[data-astro-cid-bl6cniha]{color:var(--color-text-muted);margin:0 0 .5rem}.job-details[data-astro-cid-bl6cniha] summary[data-astro-cid-bl6cniha]{cursor:pointer;color:var(--color-accent);padding-block:.25rem;font-size:.9rem;font-weight:600}.job-details[data-astro-cid-bl6cniha] ul[data-astro-cid-bl6cniha]{color:var(--color-text-muted);gap:.5rem;margin:.75rem 0 0;padding-left:1.1rem;display:grid}.filter-bar{flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem;display:flex}.filter-chip{border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);border-radius:999px;padding:.45rem 1rem;font-size:.85rem;font-weight:600}.filter-chip:hover{border-color:var(--color-accent)}.filter-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.skill-grid{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.skill-pill{padding:.55rem 1rem;font-size:.88rem;font-weight:600}.highlight-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.highlight-card{flex-direction:column;gap:.6rem;padding:1.5rem;display:flex}.highlight-card h3{margin:0;font-size:1.05rem}.highlight-card p{color:var(--color-text-muted);margin:0;font-size:.92rem}.highlight-toggle{color:var(--color-accent);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.3rem;margin-top:.25rem;padding:.2rem 0;font-size:.88rem;font-weight:600;display:inline-flex}.chevron{transition:transform var(--transition-fast);display:inline-block}.chevron.open{transform:rotate(180deg)}.highlight-detail{border-top:1px solid var(--color-border);padding-top:.6rem}.in-progress[data-astro-cid-yuvafuhe]{margin-top:2rem}.in-progress-label[data-astro-cid-yuvafuhe]{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 .85rem;font-size:.72rem;font-weight:700}.in-progress-list[data-astro-cid-yuvafuhe]{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.in-progress-item[data-astro-cid-yuvafuhe]{border-style:dashed;padding:1.1rem 1.3rem}.in-progress-head[data-astro-cid-yuvafuhe]{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.tag-live[data-astro-cid-yuvafuhe]{color:#16a34a;background:#22c55e2e}:root[data-theme=dark] .tag-live[data-astro-cid-yuvafuhe]{color:#4ade80}.in-progress-issuer[data-astro-cid-yuvafuhe]{color:var(--color-text-muted);font-size:.78rem;font-weight:600}.in-progress-name[data-astro-cid-yuvafuhe]{margin:0 0 .3rem;font-weight:600}.in-progress-note[data-astro-cid-yuvafuhe]{color:var(--color-text-muted);margin:0;font-size:.88rem}.cert-grid[data-astro-cid-wcg6dn3j]{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.cert-card[data-astro-cid-wcg6dn3j]{padding:1.1rem 1.3rem}.cert-name[data-astro-cid-wcg6dn3j]{margin:0 0 .3rem;font-weight:600}.cert-date[data-astro-cid-wcg6dn3j]{color:var(--color-text-muted);margin:0;font-size:.85rem}.edu-list[data-astro-cid-ew4vagfh]{gap:1rem;margin:0 0 1.25rem;padding:0;list-style:none;display:grid}.edu-item[data-astro-cid-ew4vagfh]{padding:1.25rem 1.5rem}.edu-item[data-astro-cid-ew4vagfh] h3[data-astro-cid-ew4vagfh]{margin:0 0 .25rem;font-size:1.05rem}.edu-program[data-astro-cid-ew4vagfh]{color:var(--color-accent);margin:0 0 .25rem;font-weight:600}.edu-detail[data-astro-cid-ew4vagfh]{color:var(--color-text-muted);margin:0;font-size:.9rem}.prodev[data-astro-cid-ew4vagfh] ul[data-astro-cid-ew4vagfh]{color:var(--color-text-muted);gap:.5rem;margin:.75rem 0 0;padding-left:1.1rem;font-size:.9rem;display:grid}.contact-inner[data-astro-cid-he3spzz3]{text-align:left}.contact-links[data-astro-cid-he3spzz3]{flex-wrap:wrap;gap:.85rem;display:flex}.site-footer[data-astro-cid-jo6i4kqk]{text-align:center;color:var(--color-text-muted);padding-block:1.5rem;font-size:.85rem}
