.v2{--bg:#0a0a0a;--bg-2:#111;--line:#2a2a2a;--line-2:#1c1c1c;--fg:#e6e6e6;--fg-2:#9a9a9a;--fg-3:#5a5a5a;--accent:#ff5722;--green:#6ab04c;--cyan:#4fc3f7;--yellow:#ffc857;background:var(--bg);color:var(--fg);width:100%;min-height:100vh;font-family:JetBrains Mono,IBM Plex Mono,ui-monospace,monospace;font-size:16px;line-height:1.65;overflow-x:hidden}.v2.light{--bg:#f5f4ee;--bg-2:#eae8df;--line:#c8c5b8;--line-2:#d8d5c8;--fg:#1a1a1a;--fg-2:#555;--fg-3:#888;--accent:#c9410f;--green:#4a7d2f;--cyan:#1976a8;--yellow:#b07c1c}.v2-wrap{max-width:1100px;margin:0 auto;padding:0 56px}.v2-status{background:var(--bg-2);border-bottom:1px solid var(--line);color:var(--fg-3);justify-content:space-between;align-items:center;padding:10px 24px;font-size:11px;display:flex}.v2-status .left{gap:24px;display:flex}.v2-status .right{align-items:center;gap:16px;display:flex}.v2-status .dot{background:var(--green);width:8px;height:8px;box-shadow:0 0 8px var(--green);border-radius:50%;margin-right:6px;animation:2s infinite v2pulse;display:inline-block}@keyframes v2pulse{50%{opacity:.5}}.v2-status .toggle{border:1px solid var(--line);color:var(--fg-2);font:inherit;cursor:pointer;background:0 0;border-radius:2px;padding:4px 10px;font-size:11px}.v2-status .toggle:hover{color:var(--accent);border-color:var(--accent)}.v2-head{padding:64px 0 40px}.v2-head .prompt{color:var(--fg-3);margin-bottom:16px;font-size:14px}.v2-head .prompt .user{color:var(--green)}.v2-head .prompt .at{color:var(--fg-2)}.v2-head .prompt .host{color:var(--cyan)}.v2-head .prompt .path{color:var(--yellow)}.v2-head h1{letter-spacing:-.02em;color:var(--fg);margin:0 0 8px;font-size:64px;font-weight:700;line-height:1.05}.v2-head h1 .accent{color:var(--accent)}.v2-head h1 .cursor{background:var(--accent);vertical-align:-.1em;width:.5em;height:1em;margin-left:4px;animation:1s steps(2,end) infinite v2cursor;display:inline-block}@keyframes v2cursor{50%{opacity:0}}.v2-head .role-line{color:var(--fg-2);margin-bottom:32px;font-size:18px}.v2-head .role-line .accent{color:var(--accent)}.v2-head .lede{max-width:740px;color:var(--fg-2);border-left:2px solid var(--accent);margin-bottom:32px;padding-left:16px;font-size:16px;line-height:1.75}.v2-head .lede strong{color:var(--fg);font-weight:700}.v2-head .meta-grid{grid-template-columns:auto 1fr;gap:4px 16px;max-width:460px;font-size:14px;display:grid}.v2-head .meta-grid .k{color:var(--cyan)}.v2-head .meta-grid .v{color:var(--fg)}.v2-box{border:1px solid var(--line);background:var(--bg-2);border-radius:2px;margin-bottom:32px}.v2-box .bh{border-bottom:1px solid var(--line);color:var(--fg-2);justify-content:space-between;align-items:center;padding:8px 16px;font-size:11px;display:flex}.v2-box .bh .l{align-items:center;gap:12px;display:flex}.v2-box .bh .l .badge{background:var(--accent);color:#fff;letter-spacing:.05em;border-radius:2px;padding:1px 8px;font-size:10px;font-weight:700}.v2-box .bh .l .title{color:var(--fg)}.v2-box .bh .r{color:var(--fg-3)}.v2-box .bb{padding:24px}.v2-sec-h{align-items:center;gap:12px;padding:64px 0 24px;display:flex}.v2-sec-h .hash{color:var(--accent);font-size:22px;font-weight:700}.v2-sec-h h2{letter-spacing:-.01em;margin:0;font-size:26px;font-weight:700}.v2-sec-h .meta{color:var(--fg-3);margin-left:auto;font-size:11px}.v2-sec-h .rule{background:var(--line);flex:1;height:1px;margin:0 8px}.v2-stats{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin:24px 0 0;display:grid}.v2-stats .st{background:var(--bg-2);padding:24px}.v2-stats .st .n{color:var(--accent);letter-spacing:-.02em;margin-bottom:8px;font-size:40px;font-weight:700}.v2-stats .st .l{color:var(--fg-2);font-size:14px;line-height:1.5}.v2-feat .meta-row{border-bottom:1px dashed var(--line);flex-wrap:wrap;gap:32px;margin-bottom:24px;padding-bottom:20px;font-size:12px;display:flex}.v2-feat .meta-row .k{color:var(--fg-3);margin-right:8px}.v2-feat .meta-row .v{color:var(--fg)}.v2-feat .summary{color:var(--fg-2);max-width:800px;margin-bottom:32px;font-size:16px;line-height:1.75}.v2-diagram{border:1px solid var(--line);background:#050505;border-radius:2px;margin-bottom:32px;padding:32px;overflow-x:auto}.v2.light .v2-diagram{background:#ebe9e0}.v2-diagram pre{color:var(--fg-2);white-space:pre;margin:0;font-family:inherit;font-size:12px;line-height:1.5}.v2-diagram pre .a{color:var(--accent);font-weight:700}.v2-diagram pre .g{color:var(--green)}.v2-diagram pre .c{color:var(--cyan)}.v2-diagram pre .y{color:var(--yellow)}.v2-diagram pre .d{color:var(--fg-3)}.v2-arch-mobile{display:none}.v2-feat ul.bullets{margin:0;padding:0;list-style:none}.v2-feat ul.bullets li{color:var(--fg-2);border-bottom:1px solid var(--line-2);padding:12px 0 12px 28px;font-size:16px;line-height:1.65;position:relative}.v2-feat ul.bullets li:last-child{border-bottom:none}.v2-feat ul.bullets li:before{content:"▸";color:var(--accent);position:absolute;left:4px}.v2-stack{border-top:1px dashed var(--line);flex-wrap:wrap;gap:6px;margin-top:24px;padding-top:20px;display:flex}.v2-stack span{background:var(--bg);border:1px solid var(--line);color:var(--fg-2);border-radius:2px;padding:4px 10px;font-size:11px}.v2-job{border-bottom:1px solid var(--line);padding:24px 0}.v2-job:last-child{border-bottom:none}.v2-job .head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.v2-job .head .l{align-items:baseline;gap:12px;display:flex}.v2-job .head .co{color:var(--fg);font-size:22px;font-weight:700}.v2-job .head .ro{color:var(--accent);font-size:15px}.v2-job .head .when{color:var(--fg-3);font-size:13px}.v2-job .where{color:var(--fg-3);margin-bottom:16px;font-size:13px}.v2-job ul{margin:0 0 16px;padding:0;list-style:none}.v2-job ul li{color:var(--fg-2);padding:4px 0 4px 20px;font-size:15px;line-height:1.65;position:relative}.v2-job ul li:before{content:"$";color:var(--green);position:absolute;left:0}.v2-job .stk{flex-wrap:wrap;gap:4px;display:flex}.v2-job .stk span{background:var(--bg);border:1px solid var(--line-2);color:var(--fg-3);border-radius:2px;padding:2px 8px;font-size:10px}.v2-skills .filters{flex-wrap:wrap;gap:4px;margin-bottom:20px;display:flex}.v2-skills .filters button{font:inherit;background:var(--bg);border:1px solid var(--line);color:var(--fg-2);cursor:pointer;border-radius:2px;padding:6px 14px;font-size:13px;transition:all .12s}.v2-skills .filters button:before{content:"--";color:var(--fg-3);margin-right:6px}.v2-skills .filters button:hover{color:var(--fg);border-color:var(--fg-2)}.v2-skills .filters button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.v2-skills .filters button.active:before{color:#fff9}.v2-skills .grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.v2-skills .skill{background:var(--bg-2);grid-template-columns:1fr 120px 60px;align-items:center;gap:12px;padding:12px 16px;transition:opacity .25s;display:grid}.v2-skills .skill.dim{opacity:.2}.v2-skills .skill .nm{color:var(--fg);font-size:15px}.v2-skills .skill .nm .cat{color:var(--fg-3);font-size:11px}.v2-skills .skill .bar{background:var(--bg);border-radius:1px;height:6px;overflow:hidden}.v2-skills .skill .bar .fill{background:var(--accent);height:100%;transition:width .4s}.v2-skills .skill .lvl{color:var(--fg-3);text-align:right;font-size:11px}.v2-teach .summary{color:var(--fg-2);max-width:760px;font-size:14px;line-height:1.75}.v2-teach ul{margin:16px 0 0;padding:0;list-style:none}.v2-teach ul li{color:var(--fg-2);border-bottom:1px dashed var(--line-2);padding:10px 0 10px 24px;font-size:15px;line-height:1.65;position:relative}.v2-teach ul li:last-child{border-bottom:none}.v2-teach ul li:before{content:"→";color:var(--accent);position:absolute;left:0}.v2-edu{grid-template-columns:1fr 1fr;gap:16px;display:grid}.v2-edu .e{border:1px solid var(--line);background:var(--bg-2);border-radius:2px;padding:16px}.v2-edu .deg{color:var(--fg);margin-bottom:4px;font-size:15px;font-weight:700}.v2-edu .sch{color:var(--accent);font-size:13px}.v2-edu .meta{color:var(--fg-3);margin-top:8px;font-size:11px}.v2-contact{text-align:left;border-top:1px solid var(--line);margin-top:64px;padding:80px 0}.v2-contact .prompt{color:var(--fg-3);margin-bottom:16px;font-size:14px}.v2-contact .prompt .user{color:var(--green)}.v2-contact .prompt .cmd{color:var(--fg)}.v2-contact h2{letter-spacing:-.02em;margin:0 0 24px;font-size:44px;font-weight:700}.v2-contact h2 .accent{color:var(--accent)}.v2-contact .links{gap:6px;max-width:520px;display:grid}.v2-contact .links a{background:var(--bg-2);border:1px solid var(--line);color:var(--fg);border-radius:2px;justify-content:space-between;padding:10px 16px;font-size:15px;text-decoration:none;transition:all .15s;display:flex}.v2-contact .links a:hover{border-color:var(--accent);color:var(--accent)}.v2-contact .links a .arrow{color:var(--fg-3)}.v2-contact .links a:hover .arrow{color:var(--accent)}.v2-foot{border-top:1px solid var(--line);background:var(--bg-2);color:var(--fg-3);justify-content:space-between;align-items:center;padding:16px 24px;font-size:11px;display:flex}@media (max-width:640px){.v2-diagram pre{display:none}.v2-diagram{padding:20px}.v2-arch-mobile{flex-direction:column;align-items:stretch;gap:0;font-size:12px;display:flex}.v2-head .cursor{display:none}.v2-arch-mobile .arch-box{border:1px solid var(--line);padding:12px 14px;line-height:1.6}.v2-arch-mobile .arch-box.hi{border-color:var(--accent);background:#ff57220f}.v2-arch-mobile .arch-box .arch-title{margin-bottom:2px;font-weight:700}.v2-arch-mobile .arch-box .arch-sub{color:var(--fg-3);letter-spacing:.05em;margin-bottom:6px;font-size:10px}.v2-arch-mobile .arch-box .arch-items{color:var(--fg-2);font-size:11px}.v2-arch-mobile .arch-connector{color:var(--fg-3);flex-direction:column;align-items:center;gap:1px;padding:4px 0;font-size:11px;display:flex}.v2-arch-mobile .arch-connector .label{color:var(--accent);letter-spacing:.08em;font-size:10px}.v2-wrap{padding:0 16px}.v2-head{padding:32px 0 24px}.v2-head h1{font-size:40px}.v2-head .role-line{font-size:14px}.v2-box .bb{padding:16px}.v2-stats,.v2-skills .grid{grid-template-columns:1fr}.v2-skills .skill{grid-template-columns:1fr 70px 48px}}
