:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--color-primary: #1e40af;--color-primary-hover: #1e3a8a;--color-accent: #2563eb;--color-text: #1f2937;--color-text-secondary: #4b5563;--color-text-muted: #6b7280;--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e5e7eb;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.75rem}*{margin:0;padding:0;box-sizing:border-box}html{overflow-y:scroll;scroll-behavior:smooth;scrollbar-gutter:stable}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--text-base);line-height:1.7;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;min-width:320px}.app{min-height:100vh;display:flex;flex-direction:column}.navbar{background:var(--color-surface);box-shadow:0 1px 3px #00000014;position:sticky;top:0;z-index:100;width:100%;padding:0 var(--space-lg)}.nav-container{display:flex;justify-content:space-between;align-items:center;width:960px;max-width:100%;margin:0 auto;padding:var(--space-md) 0;box-sizing:border-box}.nav-brand a{font-size:var(--text-xl);font-weight:700;color:var(--color-text);text-decoration:none;letter-spacing:-.02em}.nav-links{display:flex;list-style:none;gap:var(--space-lg)}.nav-links a{text-decoration:none;color:var(--color-text-muted);font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;transition:color .2s ease;padding:var(--space-xs) 0;position:relative}.nav-links a:hover{color:var(--color-text)}.nav-links a.active{color:var(--color-primary)}.nav-links a.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--color-primary);border-radius:1px}.main-content{flex:1;width:960px;max-width:100%;margin:0 auto;padding:var(--space-xl) var(--space-lg);box-sizing:border-box;min-height:calc(100vh - 200px)}.page{animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page h1{font-size:var(--text-4xl);font-weight:700;margin-bottom:var(--space-md);color:var(--color-text);letter-spacing:-.03em;line-height:1.2}.page h2{font-size:var(--text-xl);font-weight:600;margin:var(--space-xl) 0 var(--space-sm);color:var(--color-text);letter-spacing:-.01em}.page h3{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-xs)}.page p{margin-bottom:var(--space-sm);color:var(--color-text-secondary);max-width:65ch}.page ul,.page ol{margin-left:var(--space-md);margin-bottom:var(--space-sm)}.page li{margin-bottom:var(--space-xs);color:var(--color-text-secondary)}.page li::marker{color:var(--color-accent)}.hero{text-align:center;padding:var(--space-2xl) 0 var(--space-xl)}.headshot{width:160px;height:160px;border-radius:50%;object-fit:cover;object-position:center top;margin-bottom:var(--space-lg);box-shadow:0 8px 24px #0000001f;border:4px solid var(--color-surface)}.hero h1{margin-bottom:var(--space-sm)}.tagline{font-size:var(--text-xl);color:var(--color-text-secondary);max-width:540px;margin:0 auto var(--space-xs);line-height:1.6}.subtitle{color:var(--color-text-muted);font-size:var(--text-base);margin-bottom:var(--space-lg)}.cta-buttons{display:flex;gap:var(--space-sm);justify-content:center;margin-top:var(--space-md)}.btn{padding:.875rem 1.75rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:var(--text-sm);transition:all .2s ease;display:inline-flex;align-items:center;gap:var(--space-xs)}.btn.primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #1e40af4d}.btn.primary:hover{background:var(--color-primary-hover);box-shadow:0 4px 12px #1e40af66;transform:translateY(-1px)}.btn.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn.secondary:hover{background:var(--color-bg);border-color:var(--color-text-muted)}.focus-areas{margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}.focus-areas h2{text-align:center;margin-bottom:var(--space-lg)}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.focus-card{background:var(--color-surface);padding:var(--space-lg);border-radius:12px;border:1px solid var(--color-border);transition:all .2s ease}.focus-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.focus-card h3{color:var(--color-primary);font-size:var(--text-base);margin-bottom:var(--space-xs)}.focus-card p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.about .bio{margin-bottom:var(--space-xl)}.about .bio p{font-size:var(--text-lg);line-height:1.8}.about section{margin-bottom:var(--space-xl)}.about ul{list-style:none;margin-left:0}.about li{padding:var(--space-xs) 0;padding-left:var(--space-md);position:relative}.about li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:6px;background:var(--color-accent);border-radius:50%}.case-study article{background:var(--color-surface);padding:var(--space-xl);border-radius:16px;border:1px solid var(--color-border)}.case-study header{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.case-study header h1{margin-bottom:var(--space-xs)}.case-meta{display:inline-flex;gap:var(--space-sm);color:var(--color-accent);font-weight:500;font-size:var(--text-sm)}.case-study section{margin-bottom:var(--space-xl)}.case-study section:last-child{margin-bottom:0}.artifact{background:var(--color-bg);padding:var(--space-lg);border-radius:12px;margin:var(--space-lg) 0;text-align:center;border:1px solid var(--color-border)}.artifact h2{margin-top:0;margin-bottom:var(--space-md)}.diagram-image{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 16px #0000001a}.image-placeholder{padding:var(--space-xl);border:2px dashed var(--color-border);border-radius:8px;color:var(--color-text-muted)}.resume section{margin-bottom:var(--space-xl)}.resume-item{margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.resume-item:last-child{border-bottom:none;padding-bottom:0}.resume-item h3{color:var(--color-text);font-size:var(--text-lg);margin-bottom:var(--space-xs)}.resume-meta{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-sm)}.resume-item ul{margin-top:var(--space-sm)}.skills-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.skills-list h4{color:var(--color-primary);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.skills-list p{font-size:var(--text-sm)}.resume-download{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.contact p{font-size:var(--text-lg);margin-bottom:var(--space-lg)}.contact-info{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);margin:var(--space-lg) 0}.contact-item{background:var(--color-surface);padding:var(--space-lg);border-radius:12px;border:1px solid var(--color-border);transition:all .2s ease}.contact-item:hover{border-color:var(--color-accent)}.contact-item h3{color:var(--color-text-muted);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.contact-item a{color:var(--color-primary);text-decoration:none;font-weight:500;font-size:var(--text-lg)}.contact-item a:hover{text-decoration:underline}.contact-note{margin-top:var(--space-lg);color:var(--color-text-muted);font-size:var(--text-sm)}.footer{text-align:center;padding:var(--space-lg);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);border-top:1px solid var(--color-border)}.footer p{margin:var(--space-xs) 0}.footer a{color:var(--color-primary);text-decoration:none}.footer a:hover{text-decoration:underline}@media(max-width:768px){:root{--text-4xl: 2rem;--text-3xl: 1.75rem}.nav-container{flex-direction:column;gap:var(--space-sm)}.nav-links{gap:var(--space-sm);flex-wrap:wrap;justify-content:center}.nav-links a{font-size:.75rem}.main-content{padding:var(--space-lg) var(--space-sm)}.hero{padding:var(--space-lg) 0}.headshot{width:120px;height:120px}.cta-buttons{flex-direction:column;align-items:center}.btn{width:100%;justify-content:center}.focus-grid,.skills-list,.contact-info{grid-template-columns:1fr}.case-study article{padding:var(--space-md)}}@media(max-width:480px){.nav-links{gap:var(--space-xs)}}
