:root{--bg: #FAF7F2;--surface: #FFFDF9;--subtle: #F3EEE6;--text: #1F1B16;--text-secondary: #4A4239;--text-muted: #6B6157;--accent: #A3402A;--accent-hover: #7A2F1C;--accent-soft: #F6E7E0;--border: #E5DDD0;--border-strong: #CFC4B3;--serif: "Source Serif 4", Georgia, "Times New Roman", serif;--sans: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-100px;z-index:10001;padding:10px 16px;border-radius:4px;background:var(--text);color:var(--bg);font-weight:600}.skip-link:focus{top:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft);color:var(--text)}body{font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;min-height:100vh;background:var(--bg);color:var(--text)}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--text);line-height:1.2;letter-spacing:-.01em}#root{width:100%;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;border:none;cursor:pointer;background:none;color:inherit}input,textarea,select{font-family:inherit}img{max-width:100%;height:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.text-link{color:var(--accent);font-weight:600;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .15s ease,text-decoration-color .15s ease}.text-link:hover{color:var(--accent-hover);text-decoration-color:currentColor}.quiet-link{color:var(--text-secondary);transition:color .15s ease}.quiet-link:hover,.quiet-link[aria-current=true]{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:4px;font-family:var(--sans);font-size:16px;font-weight:600;line-height:1.2;border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--secondary{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){border-color:var(--text)}.btn--small{min-height:36px;padding:6px 14px;font-size:14px}.tag{display:inline-block;padding:2px 10px;border-radius:4px;background:var(--subtle);border:1px solid var(--border);color:var(--text-secondary);font-size:14px;font-weight:500;line-height:1.6}.card-hover{transition:border-color .15s ease}.card-hover:hover{border-color:var(--border-strong)!important}.filter-tab{padding:6px 14px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:15px;font-weight:500;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.filter-tab:hover{border-color:var(--border-strong);color:var(--text)}.filter-tab[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:4px;color:var(--text-secondary);border:1px solid transparent;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.icon-btn:hover{color:var(--accent);border-color:var(--border)}.field{width:100%;padding:22px 14px 8px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:16px;line-height:1.5;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.field[aria-invalid=true]{border-color:#b3261e}.quick-chips{display:flex;flex-wrap:wrap;gap:8px}.quick-chip{flex:0 0 auto;white-space:nowrap;padding:5px 12px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:500;line-height:1.5;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease}@media(hover:hover){.quick-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}}.quick-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.quick-chip:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.quick-chips{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:4px;margin:-4px}.quick-chips::-webkit-scrollbar{display:none}.quick-chip{scroll-snap-align:start}}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,5vw,64px)}@media(max-width:860px){.about-grid{grid-template-columns:minmax(0,1fr)}.about-grid>dl{order:-1}}.skill-row{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px 32px;padding:20px 0;border-bottom:1px solid var(--border);align-items:baseline}@media(max-width:700px){.skill-row{grid-template-columns:minmax(0,1fr)}}.cert-group{display:grid;grid-template-columns:120px minmax(0,1fr);gap:0 32px;border-bottom:1px solid var(--border)}.cert-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0}.cert-row+.cert-row{border-top:1px solid var(--border)}@media(max-width:700px){.cert-group{grid-template-columns:minmax(0,1fr)}.cert-row:first-child{padding-top:8px}}.cv-block{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px 32px;padding:clamp(24px,3vw,32px) 0;border-bottom:1px solid var(--border)}.cv-block>div>div+div{padding-top:24px;margin-top:24px;border-top:1px dashed var(--border)}@media(max-width:860px){.cv-block{grid-template-columns:minmax(0,1fr)}}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(32px,5vw,64px)}@media(max-width:860px){.contact-grid{grid-template-columns:minmax(0,1fr)}}
