:root{--bg:#0b1020;--bg-soft:#111831;--bg-card:#141c38;--bg-hover:#1a2345;--border:#232e55;--text:#e8ecf8;--text-dim:#9aa6c8;--text-faint:#66719a;--accent:#4f7cff;--accent-2:#7c5cff;--accent-soft:#4f7cff1f;--green:#34d399;--amber:#fbbf24;--danger:#f87171;--maxw:1080px;--radius:14px;--radius-sm:8px;--shadow:0 10px 30px #00000059;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}html[data-theme=light]{--bg:#f5f7fc;--bg-soft:#eef1f9;--bg-card:#fff;--bg-hover:#f0f3fb;--border:#d8dfef;--text:#1a2340;--text-dim:#4a5578;--text-faint:#7c87a8;--accent:#2f5bff;--accent-2:#6d3cff;--accent-soft:#2f5bff1a;--shadow:0 10px 30px #1e2d641f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;transition:background .25s,color .25s}h1,h2,h3,h4{letter-spacing:-.02em;margin:0 0 .5em;line-height:1.2}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}section{padding:4.5rem 0}.section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin-bottom:.75rem;font-size:.8rem;display:block}h2.section-title{margin-bottom:.4em;font-size:2rem;font-weight:700}.section-sub{color:var(--text-dim);max-width:60ch;margin-bottom:2.5rem}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-size:.95rem;font-weight:600;transition:all .18s;display:inline-flex;text-decoration:none!important}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-ghost{border-color:var(--border);color:var(--text);background:0 0}.btn-ghost:hover{background:var(--bg-hover);border-color:var(--text-faint)}.btn-sm{padding:.45rem 1rem;font-size:.85rem}.nav{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.nav-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;margin:0 auto;padding:.9rem 1.5rem;display:flex}.nav-logo{letter-spacing:-.02em;color:var(--text);font-size:1.1rem;font-weight:800;text-decoration:none}.nav-logo span{color:var(--accent)}.nav-links{align-items:center;gap:1.6rem;display:flex}.nav-links a{color:var(--text-dim);font-size:.95rem;font-weight:500;text-decoration:none;transition:color .15s}.nav-links a:hover{color:var(--text)}.nav-links a.active{color:var(--accent)}.nav-right{align-items:center;gap:.9rem;display:flex}.theme-toggle{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1rem;transition:all .15s;display:inline-flex}.theme-toggle:hover{color:var(--text);border-color:var(--text-faint)}.hero{padding:5.5rem 0 4rem;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle, var(--accent-soft), transparent 65%);pointer-events:none;width:520px;height:520px;position:absolute;top:-30%;right:-10%}.hero-eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;margin-bottom:1rem;font-size:.85rem}.hero h1{margin-bottom:.25em;font-size:clamp(2.4rem,5.5vw,3.8rem);font-weight:800}.hero h1 .grad{background:linear-gradient(120deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.hero p.lede{color:var(--text-dim);max-width:62ch;margin-bottom:2rem;font-size:1.15rem}.hero-cta{flex-wrap:wrap;gap:1rem;display:flex}.hero-meta{border-top:1px solid var(--border);color:var(--text-dim);flex-wrap:wrap;gap:1.6rem;margin-top:2.6rem;padding-top:1.6rem;font-size:.92rem;display:flex}.hero-meta strong{color:var(--text);font-size:1.05rem;display:block}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.4rem;display:grid}.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.skill-card h3{color:var(--text);margin-bottom:1.1rem;font-size:1.02rem}.skill-row{margin-bottom:.85rem}.skill-row:last-child{margin-bottom:0}.skill-name{color:var(--text-dim);justify-content:space-between;margin-bottom:.3rem;font-size:.88rem;display:flex}.skill-name .pct{color:var(--text-faint);font-family:var(--font-mono);font-size:.78rem}.skill-track{background:var(--bg-soft);border-radius:999px;height:6px;overflow:hidden}.skill-fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:999px;width:0;height:100%;transition:width 1s cubic-bezier(.2,.8,.2,1)}.skill-fill.animate{width:var(--fill)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:1.6rem;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-3px)}.card h3{margin-bottom:.5rem;font-size:1.15rem}.card p{color:var(--text-dim);flex:1;font-size:.94rem}.card .tags{flex-wrap:wrap;gap:.45rem;margin-top:1.1rem;display:flex}.tag{font-family:var(--font-mono);background:var(--accent-soft);color:var(--accent);border:1px solid #0000;border-radius:999px;padding:.22rem .6rem;font-size:.72rem}.tag.plain{background:var(--bg-soft);color:var(--text-dim);border-color:var(--border)}.card .meta-row{font-family:var(--font-mono);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;margin-bottom:.7rem;font-size:.78rem;display:flex}.card .card-cta{flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:1.1rem;font-size:.9rem;font-weight:600;display:flex}.card h3 a.card-link{color:inherit}.card h3 a.card-link:hover{color:var(--accent);text-decoration:none}.card-flagship{border-color:color-mix(in srgb, var(--accent-2) 55%, var(--border));background:radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--accent-2) 14%, transparent), transparent 60%), var(--bg-card)}.mini-metrics{flex-wrap:wrap;gap:1.2rem;margin-top:1rem;display:flex}.mini-metrics div{flex-direction:column;line-height:1.2;display:flex}.mini-metrics strong{color:var(--text);font-size:1.15rem}.mini-metrics span{color:var(--text-faint);font-size:.75rem}.project-hero{padding-top:3.5rem;padding-bottom:1.5rem}.project-title{margin-bottom:.4rem;font-size:clamp(1.9rem,4.5vw,2.8rem);font-weight:800}.lede-sm{color:var(--text-dim);max-width:70ch;font-size:1.1rem}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin:2rem 0;display:grid}.metric{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:1.1rem 1.2rem;display:flex}.metric strong{background:linear-gradient(120deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:800;line-height:1.15}.metric span{color:var(--text-dim);font-size:.85rem}.project-facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.plain-box{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--radius);padding:1.3rem 1.5rem}.plain-box p{color:var(--text);margin:0}.plain-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:.5rem;font-size:.75rem;display:block}.fact-list{gap:.35rem;margin:0;display:grid}.fact-list dt{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-top:.6rem;font-size:.75rem}.fact-list dt:first-child{margin-top:0}.fact-list dd{color:var(--text-dim);margin:0}.fact-list dd.tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-body>h1:first-child{display:none}.prose hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.glance{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;display:grid}.glance-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem}.glance-item .icon{margin-bottom:.6rem;font-size:1.4rem;display:block}.glance-item h3{margin-bottom:.35rem;font-size:1.02rem}.glance-item p{color:var(--text-dim);margin:0;font-size:.92rem}.timeline{border-left:2px solid var(--border);flex-direction:column;gap:2rem;margin-left:1.1rem;padding-left:2rem;display:flex;position:relative}.tl-entry{position:relative}.tl-entry:before{content:"";background:var(--accent);border:3px solid var(--bg);width:12px;height:12px;box-shadow:0 0 0 2px var(--accent);border-radius:50%;position:absolute;top:.4rem;left:-2.66rem}.tl-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.tl-head h3{margin-bottom:.15rem;font-size:1.15rem}.tl-company{color:var(--accent);font-weight:600}.tl-period{font-family:var(--font-mono);color:var(--text-faint);white-space:nowrap;font-size:.8rem}.tl-summary{color:var(--text-dim);margin:.5rem 0 .9rem;font-size:.94rem}.tl-bullets{color:var(--text-dim);gap:.5rem;margin:0;padding-left:1.2rem;font-size:.92rem;display:grid}.tl-bullets li::marker{color:var(--accent)}.blog-list{gap:1.4rem;display:grid}.blog-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:1.7rem;text-decoration:none;transition:transform .2s,border-color .2s;display:block}.blog-card:hover{border-color:var(--accent);color:inherit;transform:translateY(-3px)}.blog-card .date{font-family:var(--font-mono);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.78rem;display:block}.blog-card h3{margin-bottom:.4rem;font-size:1.25rem}.blog-card p{color:var(--text-dim);margin:0;font-size:.95rem}.prose{max-width:72ch;color:var(--text);font-size:1.02rem}.prose h2{margin-top:2.2rem;font-size:1.5rem}.prose h3{margin-top:1.8rem;font-size:1.2rem}.prose p{color:var(--text-dim);margin:0 0 1.2em;line-height:1.75}.prose ul,.prose ol{color:var(--text-dim);margin-bottom:1.2em;padding-left:1.4rem}.prose li{margin-bottom:.4em}.prose code{font-family:var(--font-mono);background:var(--bg-soft);border:1px solid var(--border);border-radius:6px;padding:.15em .4em;font-size:.88em}.prose pre{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0a0e1d;margin-bottom:1.4em;padding:1.2rem;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0;font-size:.86rem}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-dim);margin:1.5em 0;padding:.2em 0 .2em 1.2em;font-style:italic}.prose a{text-decoration:underline}.footer{border-top:1px solid var(--border);margin-top:3rem;padding:3rem 0 2.5rem}.footer-inner{max-width:var(--maxw);color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:0 1.5rem;font-size:.9rem;display:flex}.footer a{color:var(--text-dim)}.footer-links{gap:1.4rem;display:flex}.contact-list{gap:.8rem;max-width:520px;display:grid}.contact-row{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:.9rem;padding:.9rem 1.2rem;display:flex}.contact-row .k{font-family:var(--font-mono);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;min-width:74px;font-size:.75rem}.contact-row .v{color:var(--text);font-weight:500}.chips{flex-wrap:wrap;gap:.6rem;margin-bottom:2rem;display:flex}.chip{font-family:var(--font-mono);background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:999px;padding:.4rem 1rem;font-size:.8rem;transition:all .15s}.chip:hover{border-color:var(--accent);color:var(--text)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.resume-actions{flex-wrap:wrap;gap:.9rem;margin-bottom:3rem;display:flex}.notfound{text-align:center;padding:8rem 1.5rem}.notfound h1{font-size:5rem;font-weight:800}.notfound p{color:var(--text-dim);margin-bottom:2rem}@media (width<=760px){.project-facts{grid-template-columns:1fr}}@media (width<=640px){.nav-inner{gap:.6rem;padding:.8rem 1rem}.nav-logo{font-size:1rem}.nav-links{gap:.75rem}.nav-links a{font-size:.85rem}.container{padding:0 1rem}.card-grid,.skill-grid{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}.hero{padding-top:3.5rem}section{padding:3rem 0}}
