:root{--c-bg: #f0f2f5;--c-surface: #ffffff;--c-surface-2: #f0f2f5;--c-surface-3: #e4e6eb;--c-border: #dddfe2;--c-border-hover:#c9cdd4;--c-primary: #1877f2;--c-primary-hover:#166fe5;--c-primary-dim: rgba(24,119,242,.1);--c-text: #050505;--c-text-muted: #65676b;--c-text-subtle: #8a8d91;--c-success: #42b72a;--c-error: #fa3e3e;--c-warning: #f7b928;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-pill: 20px;--r-full: 9999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.1);--shadow-md: 0 2px 8px rgba(0,0,0,.12);--shadow-lg: 0 4px 20px rgba(0,0,0,.15)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--c-bg);color:var(--c-text);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}a{color:var(--c-primary);text-decoration:none;transition:color .15s}a:hover{color:var(--c-primary-hover);text-decoration:underline}a:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:var(--r-sm)}button:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:var(--r-sm)}h1,h2,h3,h4{font-family:var(--font-body);font-weight:700;line-height:1.25;color:var(--c-text)}img{display:block;max-width:100%}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--c-bg)}::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--c-border-hover)}.field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4)}.field label{font-size:.9375rem;font-weight:500;color:var(--c-text)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=url],.field input[type=search],.field textarea,.field select{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);color:var(--c-text);font-family:var(--font-body);font-size:.9375rem;padding:.6875rem var(--sp-4);transition:border-color .15s,box-shadow .15s;outline:none;width:100%}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--c-primary);box-shadow:0 0 0 2px var(--c-primary-dim)}.field input[aria-invalid=true],.field input.ng-invalid.ng-touched{border-color:var(--c-error);box-shadow:0 0 0 2px #fa3e3e26}.field input::placeholder,.field textarea::placeholder{color:var(--c-text-subtle)}.field-error{color:var(--c-error);font-size:.8125rem;display:flex;align-items:center;gap:var(--sp-1)}.btn-primary{background:var(--c-primary);color:#fff;border:none;border-radius:var(--r-md);font-family:var(--font-body);font-size:.9375rem;font-weight:600;padding:.5625rem var(--sp-4);cursor:pointer;transition:background .15s,box-shadow .15s;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2)}.btn-primary:hover:not(:disabled){background:var(--c-primary-hover)}.btn-primary:active:not(:disabled){background:#1468d3}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--c-surface-3);color:var(--c-text);border:none;border-radius:var(--r-md);font-family:var(--font-body);font-size:.9375rem;font-weight:600;padding:.5625rem var(--sp-4);cursor:pointer;text-align:center;transition:background .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-secondary:hover{background:#d8dadf;text-decoration:none}.badge-open{display:inline-flex;align-items:center;gap:var(--sp-1);background:#42b72a1f;color:#1a7a0a;border:1px solid rgba(66,183,42,.3);font-size:.75rem;font-weight:600;padding:2px var(--sp-3);border-radius:var(--r-full)}.badge-open:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c-success);flex-shrink:0;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.section-title{font-family:var(--font-body);font-size:.9375rem;font-weight:700;color:var(--c-text);margin-bottom:var(--sp-4)}.skill-tag{background:var(--c-surface-2);color:var(--c-primary);border:1px solid var(--c-border);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);font-size:.8125rem;font-weight:500;transition:background .15s}.skill-tag:hover{background:var(--c-primary-dim)}.divider{border:none;border-top:1px solid var(--c-border);margin:var(--sp-4) 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
