body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg:#0d1117;--surface:#161b22;--text-primary:#e6edf3;--text-muted:#8b949e;--accent:#58a6ff;--accent-hover:#79c0ff;--border:#21262d;--nav-bg:#0d1117e0;--shadow:#00000080}[data-theme=light]{--bg:#f6f8fa;--surface:#fff;--text-primary:#1c2128;--text-muted:#57606a;--accent:#0969da;--accent-hover:#0550ae;--border:#d0d7de;--nav-bg:#f6f8fae0;--shadow:#0000001a}*{box-sizing:border-box}.App{text-align:center;margin:0 auto}body,html{color:var(--text-primary);background:var(--bg);min-height:100vh;transition:background .2s,color .2s}nav{background:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);width:100%;position:fixed;top:0;left:0;height:55px;text-align:right;font-size:18px;box-shadow:0 1px 0 var(--border)}nav>ul>li{list-style:none;display:inline;padding:5px 20px 5px 5px}nav>ul>li>a{transition-property:color,font-weight;transition-duration:.1s;transition-timing-function:linear;font-family:Inter,sans-serif;color:var(--text-muted);font-weight:400;text-decoration:none}nav>ul>li>a:hover{color:var(--text-primary);font-weight:500}#theme-toggle{width:50px;height:26px;border-radius:13px;background:var(--surface);border:1px solid var(--border);position:relative;cursor:pointer;padding:0;vertical-align:middle;transition:border-color .25s ease,background .25s ease;flex-shrink:0}#theme-toggle:hover{border-color:var(--accent)}.toggle-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:9px;transform:translateX(0);transition:transform .25s ease,background .25s ease;pointer-events:none}#theme-toggle.is-light .toggle-thumb{transform:translateX(24px)}main{width:100%;height:100%;bottom:0;margin:0 auto}#about-me,#home,#projects,#skills{height:100%;display:flexbox;align-items:center;justify-content:center}h1,h2,h3{font-family:Libre Baskerville,serif}h1,h2,h3,p{color:var(--text-primary)}p{font-family:Inter,sans-serif;font-size:18px;line-height:30px}header{width:100%;margin:0 auto;padding-top:150px;padding-bottom:100px;text-align:center}#resume-profile-image,header>img{height:150px;border-radius:100px;box-shadow:0 0 0 3px var(--accent),0 4px 24px var(--shadow);pointer-events:none}#header-subtitle{font-family:Inter,sans-serif;font-size:16px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:12px;margin-bottom:0}#header-tagline{font-family:Inter,sans-serif;font-size:18px;color:var(--text-muted);margin-top:8px;line-height:1.6}#credential-badges{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:20px;margin-bottom:4px}.credential-badge{font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:5px 13px;text-transform:uppercase;transition:color .2s,border-color .2s}.credential-badge:hover{color:var(--accent);border-color:var(--accent)}#footer-links,#header-links{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:28px}#email-icon,#github-icon,#linkedin-icon{transition-property:color,text-shadow;transition-duration:.2s;transition-timing-function:linear;color:var(--text-muted);margin-right:16px;font-size:1.4rem}#email-icon:hover,#github-icon:hover{color:var(--accent-hover);text-shadow:0 0 10px #58a6ff66;cursor:pointer}#footer-email-icon,#footer-github-icon,#footer-linkedin-icon{transition-property:color,text-shadow;transition-duration:.2s;transition-timing-function:linear;color:var(--text-muted);margin-right:10px}#footer-email-icon:hover,#footer-github-icon:hover{color:var(--accent-hover);text-shadow:0 0 10px #58a6ff66;cursor:pointer}#footer-linkedin-icon:hover,#linkedin-icon:hover{color:#0177b5;text-shadow:1px 1px 4px #0006;cursor:pointer}#dogs-link{transition:color .2s linear;color:var(--accent);font-weight:600}#dogs-link:hover{color:var(--accent-hover)}#email-cta-btn{display:inline-flex;align-items:center;gap:9px;margin-top:20px;padding:13px 28px;background:var(--accent);color:#fff;font-family:Inter,sans-serif;font-weight:700;font-size:1rem;letter-spacing:.04em;text-decoration:none;border-radius:8px;border:2px solid var(--accent);transition:background .2s,border-color .2s,box-shadow .2s,transform .15s}#email-cta-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 24px #58a6ff61;transform:translateY(-2px);cursor:pointer}#email-cta-btn:active{transform:translateY(0);box-shadow:0 2px 8px #58a6ff40}hr{border:none;border-top:1px solid var(--border);width:50%}section{margin:0 auto;width:100%;padding-top:50px;padding-bottom:60px;text-align:center}section>h3{width:60%}section>h3,section>p{text-align:left;margin:0 auto}section>p{max-width:60%}#stats{display:flex;flex-direction:row;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:16px;padding:20px 20px 60px;max-width:860px;margin:0 auto}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px 24px;flex:1 1 170px;min-width:150px;max-width:210px;text-align:center;transition:border-color .2s ease,box-shadow .2s ease}.stat-card:hover{border-color:var(--accent);box-shadow:0 0 20px #58a6ff1a}.stat-number{font-family:Libre Baskerville,serif;font-size:38px;font-weight:700;color:var(--accent);display:block}.stat-label{font-family:Inter,sans-serif;font-size:11px;font-weight:600;margin-top:8px;line-height:1.5;text-transform:uppercase;letter-spacing:.07em;display:block}.stat-label,footer{color:var(--text-muted)}footer{width:100%;text-align:center;padding:15px;left:0;height:50px;margin-bottom:75px}#jquery{height:1.3em;vertical-align:-webkit-baseline-middle}.resume-page{max-width:860px;margin:75px auto 100px;padding:0 20px}.resume-page>section>h1{font-size:32px}#contact-list{padding-left:0;list-style:none;font-size:18px;font-weight:600}#contact-list>li{margin-top:4px}#skills-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;justify-content:center;max-width:1000px;margin:24px auto 0;padding:0 20px}.skill-category{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px 20px;flex:1 1 200px;max-width:280px;text-align:left;transition:border-color .2s ease}.skill-category:hover{border-color:var(--accent)}.skill-category-header{display:flex;align-items:center;gap:8px;margin-bottom:14px}.skill-category-header>i{color:var(--accent);font-size:.95rem}.skill-category-title{font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0}.skill-tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.skill-tag{font-family:Inter,sans-serif;font-size:13px;color:var(--text-primary);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 10px}#skills{margin-bottom:60px}#clearance{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-family:Inter,sans-serif;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-align:center;margin-top:10px;margin-bottom:0}@media only screen and (max-width:600px){body,html{min-height:100vh}header{width:80%}nav>ul#nav-list>li{font-size:16px}nav{display:flex;align-items:center;text-align:center;justify-content:center}#resume-header{width:80%}#resume-header>h2{font-size:22px;color:var(--text-primary)}#stats{gap:12px;padding-bottom:40px}.stat-card{flex:1 1 140px;padding:20px 16px}.stat-number{font-size:30px}#credential-badges{gap:6px}#skills-grid{gap:12px}.skill-category{flex:1 1 100%;max-width:100%}}@media only screen and (max-width:400px){header>img{height:125px;border-radius:100px;pointer-events:none}nav>ul#nav-list>li{font-size:14px}}#certifications>p{text-align:center}.skip-nav{position:absolute;top:-100%;left:0;background:var(--accent);color:#fff;padding:10px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:600;z-index:9999;text-decoration:none;border-radius:0 0 8px 0;transition:top .15s}.skip-nav:focus{top:0}#featured-work{padding-top:50px;padding-bottom:60px}#featured-work-subtitle{color:var(--text-muted);font-size:16px;margin:0 auto 4px;text-align:center}.work-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:20px;justify-content:center;max-width:1100px;margin:28px auto 0;padding:0 20px}.work-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px 26px;flex:1 1 260px;max-width:500px;text-align:left;transition:border-color .2s ease,box-shadow .2s ease}.work-card:hover{border-color:var(--accent);box-shadow:0 0 24px #58a6ff1a}.work-card-category{font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.work-card>h3{font-family:Libre Baskerville,serif;font-size:18px;color:var(--text-primary);margin:0 0 12px}.work-card>p{font-size:15px;line-height:1.65;color:var(--text-muted);margin:0 0 16px;text-align:left}.work-card-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.work-card-tag{font-family:Inter,sans-serif;font-size:12px;color:var(--text-primary);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 10px}#contact{padding-top:50px;padding-bottom:60px}#contact-subtitle{color:var(--text-muted);font-size:16px;margin:0 auto 4px}.contact-form{max-width:600px;margin:28px auto 0;padding:0 20px;text-align:left}.contact-form label{display:block;font-family:Inter,sans-serif;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;margin-top:20px}.contact-form input,.contact-form textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-family:Inter,sans-serif;font-size:15px;color:var(--text-primary);outline:none;transition:border-color .2s;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent)}.contact-form textarea{min-height:130px}.contact-submit-btn{display:inline-flex;align-items:center;gap:9px;margin-top:22px;padding:13px 28px;background:var(--accent);color:#fff;font-family:Inter,sans-serif;font-weight:700;font-size:1rem;letter-spacing:.04em;border:2px solid var(--accent);border-radius:8px;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s,transform .15s}.contact-submit-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 6px 24px #58a6ff61;transform:translateY(-2px)}.contact-submit-btn:active{transform:translateY(0)}.contact-submit-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}.contact-success{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px;text-align:center;color:var(--accent);font-family:Inter,sans-serif;font-size:18px;font-weight:600;max-width:600px;margin:28px auto 0}.contact-error{font-family:Inter,sans-serif;font-size:14px;color:#f85149;margin-top:12px}.contact-error a{color:#f85149}#footer-wcag{font-family:Inter,sans-serif;font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--text-muted);margin-top:10px;margin-bottom:0;opacity:.7}#blog-listing{max-width:780px;margin:0 auto;padding:100px 20px 60px;text-align:left}#blog-listing>h1{font-family:Libre Baskerville,serif;font-size:32px;color:var(--text-primary);margin-bottom:8px}#blog-subtitle{font-family:Inter,sans-serif;font-size:16px;color:var(--text-muted);margin:0 0 8px;text-align:left}.blog-grid{display:flex;flex-direction:column;gap:20px;margin-top:32px}.blog-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px 30px;text-align:left;transition:border-color .2s ease,box-shadow .2s ease;text-decoration:none;display:block;color:var(--text-primary)}.blog-card:hover{border-color:var(--accent);box-shadow:0 0 24px #58a6ff1a}.blog-card-meta{font-family:Inter,sans-serif;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:12px}.blog-card>h2{font-family:Libre Baskerville,serif;font-size:20px;color:var(--text-primary);margin:0 0 12px}.blog-card>p{font-size:15px;line-height:1.65;color:var(--text-muted);margin:0;text-align:left}.blog-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin-top:16px;justify-content:center}.blog-tag{font-family:Inter,sans-serif;font-size:12px;color:var(--accent);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 10px}#blog-post{max-width:720px;margin:0 auto;padding:90px 20px 80px;text-align:left}.blog-post-header{margin-bottom:40px}.blog-post-header>h1{font-family:Libre Baskerville,serif;font-size:32px;color:var(--text-primary);margin:12px 0 16px;line-height:1.3}.blog-post-body p{font-size:17px;line-height:1.8;color:var(--text-primary);margin-bottom:20px;text-align:left}.blog-post-body h2{font-family:Libre Baskerville,serif;font-size:22px;margin-top:40px;margin-bottom:14px}.blog-back-link{font-family:Inter,sans-serif;font-size:14px;color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-bottom:32px}.blog-back-link:hover{color:var(--accent-hover)}@media only screen and (max-width:600px){.work-card{flex:1 1 100%;max-width:100%}#blog-listing,#blog-post{padding-top:80px}}#resume-header{text-align:center;padding-top:40px;padding-bottom:40px}#resume-header>h1{margin-bottom:6px}#resume-title{font-family:Inter,sans-serif;font-size:17px;font-weight:400;color:var(--text-muted);margin-top:4px;margin-bottom:10px}#resume-contact-row{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-top:18px}.resume-contact-link{font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:var(--text-muted);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:color .2s}.resume-contact-link:hover{color:var(--accent)}.resume-contact-sep{color:var(--border);font-size:16px}#resume-summary-text{max-width:700px;margin:16px auto 0;text-align:left;font-size:16px;line-height:1.75;color:var(--text-muted)}.resume-skills-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:14px;justify-content:center;max-width:820px;margin:24px auto 0}.resume-skill-category{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 18px;flex:1 1 180px;max-width:380px;text-align:left;transition:border-color .2s ease}.resume-skill-category:hover{border-color:var(--accent)}.resume-skill-label{font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 12px}.cert-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;justify-content:center;max-width:820px;margin:24px auto 0}.cert-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 20px;flex:1 1 160px;max-width:220px;text-align:center;transition:border-color .2s ease,box-shadow .2s ease}.cert-card:hover{border-color:var(--accent);box-shadow:0 0 20px #58a6ff1a}.cert-icon{font-size:1.6rem;color:var(--accent);display:block;margin-bottom:12px}.cert-name{font-family:Libre Baskerville,serif;font-size:14px;color:var(--text-primary);margin:0 0 6px;line-height:1.4}.cert-issuer{font-family:Inter,sans-serif;font-size:12px;font-weight:500;color:var(--text-muted);margin:0}.resume-exp-list{display:flex;flex-direction:column;gap:20px;max-width:820px;margin:24px auto 0}.exp-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;text-align:left;transition:border-color .2s ease,box-shadow .2s ease}.exp-card:hover{border-color:var(--accent);box-shadow:0 0 20px #58a6ff14}.exp-card-header{margin-bottom:16px}.exp-company{font-family:Libre Baskerville,serif;font-size:18px;color:var(--text-primary);margin:0 0 4px}.exp-title{font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:var(--accent);margin:0 0 4px;letter-spacing:.02em}.exp-location-period{font-family:Inter,sans-serif;font-size:13px;color:var(--text-muted);margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.exp-meta-sep{color:var(--border)}.exp-bullets{font-family:Inter,sans-serif;font-size:15px;line-height:1.7;color:var(--text-primary);padding-left:20px;margin:0 0 16px}.exp-bullets>li{margin-bottom:6px}.exp-tags{margin-top:4px}.achievement-list{display:flex;flex-direction:column;gap:16px;max-width:820px;margin:24px auto 0;text-align:left}.achievement-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 24px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s ease}.achievement-card:hover{border-color:var(--accent)}.achievement-tag{font-family:Inter,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:20px;align-self:flex-start}.achievement-tag--elevate{background:#58a6ff1f;color:var(--accent);border:1px solid #58a6ff4d}.achievement-tag--dewey{background:#3fb9501f;color:#3fb950;border:1px solid #3fb9504d}.achievement-text{font-family:Inter,sans-serif;font-size:15px;line-height:1.75;color:var(--text-muted);margin:0;text-align:left}#resume-download{padding-top:40px;padding-bottom:60px}@media only screen and (max-width:600px){.resume-skills-grid{gap:10px}.resume-skill-category{flex:1 1 100%;max-width:100%}.cert-grid{gap:12px}.cert-card{flex:1 1 140px;max-width:100%}#resume-contact-row{gap:6px 12px}.achievement-card{padding:16px 18px}}