:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#17191b;--bg-deep:#15171a;--surface:#1f2329;--surface-2:#242930;--ink:#e8e6e1;--ink-2:#c9c6bf;--muted:#a09d96;--line:#2a2e35;--line-strong:#363b44;--accent:#c05f4d;--accent-soft:#2b2220;--tag-bg:#242930;--font-sans:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-deep);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.7}::selection{background:var(--accent);color:#fff}a{color:inherit}.wrap{max-width:1120px;margin:0 auto;padding:0 24px}header.nav{z-index:50;background:var(--bg-deep);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;gap:16px;height:58px;display:flex}.brand{font-family:var(--font-sans);letter-spacing:normal;color:var(--ink);white-space:nowrap;align-items:center;font-size:15px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}nav.links{align-items:center;gap:4px;display:flex}nav.links a{color:var(--ink-2);border-radius:8px;padding:6px 10px;font-size:13.5px;text-decoration:none}nav.links a:hover{color:var(--ink);background:var(--surface-2)}nav.links a.active{color:var(--accent)}.menu-btn{border:1px solid var(--line-strong);cursor:pointer;color:var(--ink);font-family:var(--font-mono);background:0 0;border-radius:8px;padding:6px 10px;font-size:12px;display:none}.hero{border-bottom:1px solid var(--line);padding:64px 0 52px}.hero-grid{grid-template-columns:1.55fr 1fr;align-items:start;gap:44px;display:grid}.status-line{color:var(--ink-2);align-items:center;gap:8px;margin:0 0 18px;font-size:13px;display:flex}.dot{background:#6fae7e;border-radius:50%;flex:none;width:7px;height:7px}h1{letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(2rem,4.6vw,2.9rem);font-weight:700;line-height:1.15}.role{color:var(--ink-2);margin:0 0 18px;font-size:clamp(1.02rem,2.2vw,1.22rem);line-height:1.5}.role strong{color:var(--accent);font-weight:600}.hero-desc{color:var(--muted);max-width:58ch;margin:0 0 26px;font-size:15.5px}.hero-cta{flex-wrap:wrap;gap:10px;display:flex}.btn{border:1px solid var(--line-strong);border-radius:10px;padding:10px 18px;font-size:14px;font-weight:500;text-decoration:none;display:inline-block}.btn.primary{background:var(--ink);color:#1c1e21;border-color:var(--ink)}.btn.primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{color:var(--ink);background:var(--surface)}.btn.ghost:hover{border-color:var(--muted)}.spec{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px #0000002e}.spec-head{font-family:var(--font-mono);letter-spacing:.08em;border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:12px 18px;font-size:11.5px;display:flex}.spec-head b{color:var(--accent);font-weight:500}.spec dl{margin:0}.spec .row{border-bottom:1px solid var(--line);grid-template-columns:112px 1fr;gap:12px;padding:11px 18px;font-size:13.5px;display:grid}.spec .row:last-child{border-bottom:none}.spec dt{font-family:var(--font-mono);color:var(--muted);padding-top:3px;font-size:11.5px}.spec dd{color:var(--ink);margin:0}.spec a{color:var(--accent);text-decoration:none}.spec a:hover{text-decoration:underline}.stats{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:repeat(4,1fr);margin-top:40px;display:grid;overflow:hidden}.stat{border-right:1px solid var(--line);padding:18px 20px}.stat:last-child{border-right:none}.stat .num{letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1}.stat .num em{color:var(--accent);font-style:normal}.stat .lbl{font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;margin-top:7px;font-size:11px;line-height:1.5}section{border-bottom:1px solid var(--line);padding:60px 0}section:last-of-type{border-bottom:none}.sec-head{align-items:baseline;gap:16px;margin-bottom:34px;display:flex}.sec-head .idx{font-family:var(--font-mono);color:var(--accent);font-size:13px}.sec-head h2{letter-spacing:-.02em;margin:0;font-size:25px;font-weight:700}.sec-head .note{font-family:var(--font-mono);color:var(--muted);text-align:right;margin-left:auto;font-size:12px}.job{border-top:1px solid var(--line);grid-template-columns:172px 1fr;gap:28px;padding:26px 0;display:grid}.job:first-of-type{border-top:1px solid var(--line-strong)}.job .period{font-family:var(--font-mono);color:var(--muted);font-size:12.5px;line-height:1.7}.job .period .now{color:var(--accent)}.job h3{letter-spacing:-.01em;margin:0 0 2px;font-size:17.5px}.job .org{color:var(--ink-2);margin:0 0 12px;font-size:14.5px}.job .org b{font-weight:600}.job .org a,.job ul a{color:var(--accent);text-decoration:none}.job ul{color:var(--muted);margin:0 0 14px;padding-left:18px;font-size:14.5px}.job ul li{margin-bottom:5px}.job ul li::marker{color:var(--accent)}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{font-family:var(--font-mono);color:var(--ink-2);background:var(--tag-bg);border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-size:11px}.filters{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.filter-btn{font-family:var(--font-mono);cursor:pointer;background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong);border-radius:10px;padding:7px 14px;font-size:12.5px}.filter-btn:hover{color:var(--ink);border-color:var(--muted)}.filter-btn.active{background:var(--ink);color:#1c1e21;border-color:var(--ink)}.projects{grid-template-columns:1fr 1fr;gap:16px;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;padding:22px;display:flex;box-shadow:0 1px 3px #00000029}.card.hidden{display:none}.card-top{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.card .no{font-family:var(--font-mono);color:var(--muted);font-size:12px}.card .cat{font-family:var(--font-mono);color:var(--accent);letter-spacing:.05em;text-align:right;font-size:11px}.card h3{letter-spacing:-.01em;margin:0 0 4px;font-size:17.5px;line-height:1.35}.card .org{color:var(--muted);font-size:13px;font-family:var(--font-mono);margin:0 0 12px}.card p.desc{color:var(--muted);flex:1;margin:0 0 16px;font-size:14.5px}.card .result{border-top:1px solid var(--line);color:var(--ink-2);margin-bottom:14px;padding-top:12px;font-size:13.5px}.card .result b{color:var(--ink);font-weight:600}.skills{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:repeat(3,1fr);gap:0;display:grid;overflow:hidden}.skill-group{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px}.skill-group:nth-child(3n){border-right:none}.skill-group:nth-child(n+4){border-bottom:none}.skill-group h3{font-family:var(--font-mono);letter-spacing:.07em;color:var(--ink);margin:0 0 14px;font-size:12px;font-weight:500;line-height:1.6}.skill-group h3 span{color:var(--accent)}.skill-group ul{color:var(--ink-2);margin:0;padding:0;font-size:14px;list-style:none}.skill-group li{border-bottom:1px dashed var(--line);justify-content:space-between;gap:10px;padding:5px 0;display:flex}.skill-group li:last-child{border-bottom:none}.skill-group li .lvl{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;padding-top:3px;font-size:11px}.two-col{grid-template-columns:1fr 1fr;gap:48px;display:grid}.edu{border-top:1px solid var(--line);padding:20px 0}.edu:first-of-type{border-top:1px solid var(--line-strong)}.edu h3{margin:0 0 2px;font-size:16.5px;line-height:1.45}.edu .school{color:var(--ink-2);margin:0 0 8px;font-size:14.5px}.edu .meta{font-family:var(--font-mono);color:var(--muted);margin:0 0 10px;font-size:12px;line-height:1.6}.edu p{color:var(--muted);margin:0;font-size:14.5px}.cert-feature{border:1px solid var(--accent);background:var(--accent-soft);border-radius:14px;margin-bottom:14px;padding:22px}.cert-feature .flag{font-family:var(--font-mono);letter-spacing:.07em;color:var(--accent);margin:0 0 8px;font-size:11px}.cert-feature h3{letter-spacing:-.01em;margin:0 0 4px;font-size:19px}.cert-feature p{color:var(--ink-2);margin:0;font-size:14.5px}.cert-feature .meta{font-family:var(--font-mono);color:var(--muted);margin-top:12px;font-size:12px;line-height:1.6}.cert{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding:15px 0;display:flex}.cert h4{margin:0;font-size:15px;font-weight:600}.cert .issuer{color:var(--muted);margin:2px 0 0;font-size:13px}.cert .year{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:12px}.contact-box{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:1.4fr 1fr;gap:32px;padding:32px;display:grid;box-shadow:0 1px 3px #00000029}.contact-box h2{letter-spacing:-.02em;margin:0 0 10px;font-size:23px;line-height:1.35}.contact-box p{color:var(--muted);max-width:46ch;margin:0;font-size:15px}.contact-list{margin:0;padding:0;font-size:14.5px;list-style:none}.contact-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;display:flex}.contact-list li:last-child{border-bottom:none}.contact-list .k{font-family:var(--font-mono);color:var(--muted);font-size:11.5px}.contact-list a{color:var(--accent);text-decoration:none}.contact-list a:hover{text-decoration:underline}.copy-btn{font-family:var(--font-mono);cursor:pointer;border:1px solid var(--line-strong);color:var(--ink-2);background:0 0;border-radius:6px;padding:3px 8px;font-size:11px}.copy-btn:hover{color:var(--ink);border-color:var(--muted)}footer{padding:28px 0 40px}footer .wrap{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:12px;display:flex}footer a{color:var(--accent);text-decoration:none}@media (max-width:860px){.hero-grid{grid-template-columns:1fr;gap:32px}.hero{padding:44px 0 38px}.projects,.skills{grid-template-columns:1fr}.skill-group{border-right:none;border-bottom:1px solid var(--line)}.skill-group:nth-child(n+4){border-bottom:1px solid var(--line)}.skill-group:last-child{border-bottom:none}.two-col{grid-template-columns:1fr;gap:8px}.contact-box{grid-template-columns:1fr;padding:24px}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:none}.stat:first-child,.stat:nth-child(2){border-bottom:1px solid var(--line)}.job{grid-template-columns:1fr;gap:8px}.sec-head .note{display:none}nav.links{background:var(--bg-deep);border-bottom:1px solid var(--line-strong);flex-direction:column;align-items:stretch;gap:2px;padding:10px 16px 16px;display:none;position:absolute;top:58px;left:0;right:0}nav.links.open{display:flex}nav.links a{padding:10px}.menu-btn{display:block}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
