:root{--color-bg:#f8fafc;--color-surface:#fff;--color-text:#0f172a;--color-text-body:#334155;--color-text-muted:#64748b;--color-border:#e2e8f0;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-text:#1e40af;--color-accent-soft-bg:#eff6ff;--color-accent-soft-border:#bfdbfe;--color-shadow:#0f172a0f;color:var(--color-text-body);background:var(--color-bg);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 85% 0%, #2563eb0f, transparent 32rem), var(--color-bg);min-width:320px;min-height:100vh;margin:0}a{color:inherit}.container{width:min(1120px,100% - 2rem);margin-inline:auto}.site-header{z-index:10;border-bottom:1px solid var(--color-border);backdrop-filter:blur(16px);background:#ffffffdb;position:sticky;top:0}.navigation{justify-content:space-between;align-items:center;gap:2rem;width:min(1120px,100% - 2rem);min-height:76px;margin-inline:auto;display:flex}.logo{color:var(--color-text);align-items:center;gap:.65rem;font-weight:750;text-decoration:none;display:flex}.logo-mark{color:var(--color-accent);font-family:monospace}.navigation-links{flex-wrap:wrap;gap:1.25rem;display:flex}.navigation-links a{color:var(--color-text-muted);text-decoration:none;transition:color .16s,transform .16s}.navigation-links a:hover,.navigation-links a[aria-current=page]{color:var(--color-text)}.navigation-links a:hover{transform:translateY(-1px)}.hero{flex-direction:column;justify-content:center;min-height:74vh;padding-block:8rem 6rem;display:flex}.eyebrow{color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 1rem;font-size:.82rem;font-weight:750}h1,h2{color:var(--color-text);letter-spacing:-.04em}h1{max-width:820px;margin:0;font-size:clamp(2.25rem,5.5vw,4.25rem);line-height:1.08}h1 span{color:var(--color-accent);display:block}h2{margin:0;font-size:clamp(2rem,4vw,3.3rem);line-height:1.1}.hero-description,.page-header>p,.project-preview p,.empty-state p{max-width:760px;color:var(--color-text-body);font-size:1.12rem}.hero-description{margin-block:2rem;font-size:clamp(1.1rem,2vw,1.35rem)}.hero-actions{flex-wrap:wrap;gap:.9rem;display:flex}.button{border:1px solid var(--color-border);min-height:48px;color:var(--color-text);background:var(--color-surface);border-radius:.75rem;justify-content:center;align-items:center;padding:.75rem 1.1rem;font-weight:700;text-decoration:none;transition:transform .16s,border-color .16s;display:inline-flex}.button:hover{border-color:var(--color-accent);transform:translateY(-2px)}.button-primary{border-color:var(--color-accent);color:#fff;background:var(--color-accent)}.button-primary:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover)}.disabled{opacity:.55;pointer-events:none}.section{padding-block:5rem}.section-heading{max-width:800px}.technology-list{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.technology{border:1px solid var(--color-accent-soft-border);color:var(--color-accent-text);background:var(--color-accent-soft-bg);border-radius:999px;padding:.55rem .8rem;font-family:monospace}.project-preview,.empty-state{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:0 20px 45px var(--color-shadow);border-radius:1.25rem;padding:clamp(1.5rem,5vw,3rem)}.project-preview{justify-content:space-between;align-items:flex-end;gap:3rem;display:flex}.text-link{color:var(--color-accent);flex-shrink:0;font-weight:750;text-decoration:none}.page-header{padding-block:7rem 3rem}.site-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin-top:5rem}.footer-content{justify-content:space-between;gap:2rem;width:min(1120px,100% - 2rem);margin-inline:auto;padding-block:2rem;display:flex}.footer-links{gap:1.5rem;display:flex}.footer-links a{color:var(--color-text-muted);text-decoration:none;transition:color .16s}.footer-links a:hover{color:var(--color-accent)}@media (width<=700px){.navigation{flex-direction:column;align-items:flex-start;padding-block:1rem}.navigation-links{gap:.85rem}.hero{min-height:auto;padding-block:5rem}.project-preview,.footer-content{flex-direction:column;align-items:flex-start}}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.project-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:0 12px 30px var(--color-shadow);border-radius:1.25rem;flex-direction:column;align-items:flex-start;padding:2rem;display:flex}.project-card-header{width:100%;color:var(--color-text-muted);justify-content:space-between;gap:1rem;margin-bottom:1.5rem;font-family:monospace;font-size:.8rem;display:flex}.project-status{color:var(--color-accent)}.project-card h2{font-size:1.75rem}.project-card>p{color:var(--color-text-body);flex-grow:1}.project-card .technology-list{margin-block:1rem 2rem}.project-detail{max-width:900px;padding-block:7rem}.project-detail-header{border-bottom:1px solid var(--color-border);padding-bottom:4rem}.project-lead{max-width:780px;color:var(--color-text-body);font-size:1.3rem}.project-section{border-bottom:1px solid var(--color-border);padding-block:3rem}.project-section>p:not(.eyebrow){color:var(--color-text-body);font-size:1.1rem}.highlight-list{color:var(--color-text-body);padding-left:1.4rem}.highlight-list li{margin-block:.75rem}@media (width<=760px){.project-grid{grid-template-columns:1fr}}.post-list{gap:1.25rem;display:grid}.post-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:0 12px 30px var(--color-shadow);border-radius:1.25rem;padding:2rem}.post-card h2{margin-block:.5rem;font-size:clamp(1.6rem,3vw,2.3rem)}.post-card h2 a{text-decoration:none}.post-card>p:not(.post-date){color:var(--color-text-body)}.post-date{color:var(--color-text-muted);font-family:monospace;font-size:.85rem}.article{max-width:850px;padding-block:7rem}.article-header{border-bottom:1px solid var(--color-border);padding-bottom:3rem}.article-header h1{font-size:clamp(2.7rem,7vw,5rem)}.article-description{color:var(--color-text-body);font-size:1.25rem}.article-content{color:var(--color-text-body);padding-block:3rem;font-size:1.08rem}.article-content h2{margin-top:3.5rem;font-size:2rem}.article-content h3{color:var(--color-text);margin-top:2.5rem}.article-content pre{border:1px solid var(--color-border);background:#f1f5f9;border-radius:.8rem;padding:1.25rem;overflow-x:auto}.article-content code{font-family:JetBrains Mono,Fira Code,monospace}.article-content :not(pre)>code{color:var(--color-accent-text);background:var(--color-accent-soft-bg);border-radius:.35rem;padding:.15rem .35rem}.article-content a{color:var(--color-accent)}.article-content blockquote{border-left:3px solid var(--color-accent);color:var(--color-text-muted);margin-inline:0;padding-left:1.25rem}.section-heading p{max-width:760px;color:var(--color-text-body);margin-top:1rem;font-size:1.08rem}.experience-list{gap:1.25rem;margin-top:2rem;display:grid}.experience-item{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:0 12px 30px var(--color-shadow);border-radius:1.25rem;padding:1.75rem clamp(1.25rem,4vw,2rem)}.experience-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.experience-header h3{color:var(--color-text);letter-spacing:-.02em;margin:0;font-size:1.25rem}.experience-period{color:var(--color-text-muted);white-space:nowrap;font-family:monospace;font-size:.85rem}.experience-org{color:var(--color-accent);margin:.35rem 0 1rem;font-weight:650}.experience-note{color:var(--color-text-muted);margin-top:-.5rem;margin-bottom:1rem;font-size:.9rem;font-style:italic}.experience-item>p:not(.experience-org):not(.experience-note){color:var(--color-text-body)}.experience-item .highlight-list{margin:0}.skill-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:2rem;display:grid}.skill-item{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:0 12px 30px var(--color-shadow);border-radius:1rem;padding:1.5rem}.skill-label{color:var(--color-accent);margin:0 0 .5rem;font-weight:700}.skill-item p:not(.skill-label){color:var(--color-text-body);margin:0}.contact-card{border:1px solid var(--color-accent-soft-border);background:var(--color-accent-soft-bg);border-radius:1.25rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;padding:clamp(1.75rem,5vw,3rem);display:flex}.contact-card p{color:var(--color-text-body);margin:.5rem 0 0}@media (width<=700px){.skill-list{grid-template-columns:1fr}}
