:root{--accent: #005a9c;--accent-hover: #0a6cb3;--accent-pressed: #004a80;--bg: #f5f5f5;--bg-card: #ffffff;--fg: #242424;--fg-2: #616161;--stroke: #e0e0e0;--chip-bg: #ebf3fa;--chip-fg: #005a9c;--shadow-2: 0 1px 2px rgba(0, 0, 0, .14), 0 0 2px rgba(0, 0, 0, .12);--shadow-8: 0 4px 8px rgba(0, 0, 0, .14), 0 0 2px rgba(0, 0, 0, .12);--radius: 8px}@media(prefers-color-scheme:dark){:root{--accent: #4da3dd;--accent-hover: #6cb5e5;--accent-pressed: #3d93cd;--bg: #1f1f1f;--bg-card: #292929;--fg: #ffffff;--fg-2: #adadad;--stroke: #3d3d3d;--chip-bg: #12314a;--chip-fg: #8cc5ec;--shadow-2: 0 1px 2px rgba(0, 0, 0, .4), 0 0 2px rgba(0, 0, 0, .3);--shadow-8: 0 4px 8px rgba(0, 0, 0, .4), 0 0 2px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Segoe UI Variable Text,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif;background:var(--bg);color:var(--fg);line-height:1.55;font-size:15px}.container{max-width:960px;margin:0 auto;padding:0 20px}.hero{background:radial-gradient(1200px 400px at 15% -10%,color-mix(in srgb,var(--accent) 22%,transparent),transparent),radial-gradient(900px 380px at 90% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent),var(--bg-card);border-bottom:1px solid var(--stroke)}.hero-inner{display:flex;align-items:center;gap:28px;padding:44px 20px;flex-wrap:wrap}.avatar{border-radius:50%;width:128px;height:128px;object-fit:cover;box-shadow:var(--shadow-8);border:3px solid var(--bg-card)}.hero-text h1{margin:0;font-size:32px;font-weight:650;letter-spacing:-.02em}.tagline{margin:4px 0 0;color:var(--fg-2);font-weight:500}.location{margin:4px 0 0;color:var(--fg-2);font-size:14px}.actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:4px;border:1px solid var(--stroke);background:var(--bg-card);color:var(--fg);font-weight:600;font-size:14px;text-decoration:none;box-shadow:var(--shadow-2);transition:background .1s ease,transform .05s ease}.btn:hover{background:color-mix(in srgb,var(--fg) 5%,var(--bg-card))}.btn:active{transform:translateY(1px)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.accent:hover{background:var(--accent-hover)}.btn.accent:active{background:var(--accent-pressed)}.btn.icon{width:40px;height:40px;padding:0;justify-content:center;border-radius:50%}.btn.icon svg{display:block}.card{background:var(--bg-card);border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow-2);padding:20px 24px;margin:16px 0}main{padding:20px 0 40px}h2{font-size:18px;font-weight:650;margin:0 0 10px}.section-title{margin:28px 0 4px;color:var(--accent)}h3{margin:0;font-size:16px;font-weight:650}.skill-row{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--stroke);align-items:baseline;flex-wrap:wrap}.skill-row:last-child{border-bottom:none}.skill-group{flex:0 0 150px;font-weight:600;color:var(--fg-2);font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:240px}.chip{background:var(--chip-bg);color:var(--chip-fg);border-radius:999px;padding:2px 10px;font-size:12.5px;font-weight:600}.job-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.role{margin:2px 0 0;color:var(--fg-2);font-weight:500;font-size:14px}.job-meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.badge{background:var(--accent);color:#fff;border-radius:4px;padding:2px 10px;font-size:12.5px;font-weight:600;white-space:nowrap}.where{color:var(--fg-2);font-size:13px}.job ul{margin:10px 0 0;padding-left:20px}.job li{margin:4px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.grid .card{margin:0}.grid.two{margin:16px 0}.stack{color:var(--accent);font-size:13px;font-weight:600;margin:4px 0 8px}.project p:last-child{margin-bottom:0}footer{border-top:1px solid var(--stroke);padding:18px 0;color:var(--fg-2);font-size:13.5px}footer a{color:var(--accent);text-decoration:none}footer a:hover{text-decoration:underline}footer a.shy{color:var(--fg-2)}@media(max-width:600px){.hero-inner{padding:32px 20px}.job-meta{text-align:left;align-items:flex-start}}
