: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}}.social-icon-substack{height:1.5rem!important;width:1.3rem!important;display:inline-block!important;vertical-align:middle!important;margin:0 .22rem .55rem!important}:root{--color-bg: #181a1b;--color-bg-section: #23272b;--color-card: #23272b;--color-text: #f3f3f3;--color-header: #fff;--color-link: #4ea8ff;--color-footer: #bbb;--color-shadow: 0 1px 4px rgba(0, 0, 0, .4)}body.light-theme{--color-bg: #fff;--color-bg-section: #fff;--color-card: #f0f0f8;--color-text: #222;--color-header: #1a1a1a;--color-link: #1a0dab;--color-footer: #555;--color-shadow: 0 1px 4px rgba(0, 0, 0, .04)}body{background:var(--color-bg);color:var(--color-text);transition:background .2s,color .2s}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.main-container{font-family:system-ui,sans-serif;margin:0 auto;max-width:1200px;padding:16px;background:var(--color-bg);color:var(--color-text)}header.welcome{background:var(--color-bg-section);padding:2rem 1rem;text-align:center;border-radius:8px;margin-bottom:2rem;color:var(--color-header)}section{margin-bottom:2rem;padding:1rem;border-radius:8px;background:var(--color-bg-section);box-shadow:var(--color-shadow);color:var(--color-text)}.books-grid{display:flex;flex-direction:column;gap:1rem}.book-card{background:var(--color-card);padding:1rem;border-radius:6px;color:var(--color-text);overflow:hidden;min-height:200px;box-shadow:var(--color-shadow)}.book-info-with-cover{display:flex;flex-direction:row;align-items:flex-start;width:100%}.book-cover{flex:0 0 33%;max-width:33%;display:flex;align-items:flex-start;justify-content:center}.book-cover-thumb{width:auto;height:200px;max-width:100%;object-fit:cover;border-radius:6px;box-shadow:0 2px 8px #00000014;flex-shrink:0}.book-info{flex:1 1 0;min-width:0;padding-left:1.5rem}.book-info a{color:var(--color-link)!important;text-decoration:underline}@media (max-width: 767px){.book-card{min-height:unset;text-align:center;align-items:center}.book-cover{max-width:100%;width:100%;justify-content:center;margin-bottom:1rem}.book-cover-thumb{margin:0 auto .5rem;height:160px;max-width:90vw}.book-info{padding-left:0}}footer{text-align:center;margin-top:2rem;color:var(--color-footer);background:transparent;font-size:.95rem}.nav-bar{position:fixed;top:0;left:0;width:100%;background:#fff;z-index:100;display:flex;align-items:center;padding:.5rem 1rem;box-shadow:0 2px 8px #0000000a;margin-right:1rem;color:#222}.menu-btn{background:none;border:none;font-size:2rem;cursor:pointer;margin-right:1rem;color:#333}.nav-links{list-style:none;display:none;flex-direction:column;gap:1rem;background:#fff;position:absolute;top:3.5rem;left:0;width:100%;padding:1rem 0;box-shadow:0 2px 8px #00000014}.nav-links.open{display:flex}.nav-links li button{background:none;border:none;font-size:1.1rem;color:#222;cursor:pointer;padding:.5rem 1.5rem;text-align:left;width:100%}a,a:visited{color:var(--color-link);text-decoration:underline}a:hover,a:focus{color:#fff;background:#4ea8ff;text-decoration:underline;border-radius:2px;transition:background .2s,color .2s}@media (min-width: 600px){.nav-bar{margin-right:2rem}}@media (min-width: 768px){.nav-bar{margin-right:4rem}.menu-btn{display:none}.nav-links{display:flex!important;position:static;flex-direction:row;gap:2rem;box-shadow:none;background:none;padding:0;width:auto}.nav-links li button{padding:.5rem 1rem;font-size:1rem}}@media (min-width: 992px){.nav-bar{margin-right:8rem}header.welcome{padding:3rem 2rem}section{padding:2rem}}@media (min-width: 1200px){.nav-bar{margin-right:12rem}.main-container{max-width:1000px}}.main-container{padding-top:3.5rem}.about-me-content{display:block;overflow:hidden}.about-me-headshot{float:left;margin-right:1.5rem;margin-bottom:1rem;width:auto;height:150px;max-width:100%;object-fit:cover;border-radius:50%;box-shadow:0 2px 8px #00000014;flex-shrink:0}.about-me-text{overflow:hidden;color:var(--color-text);text-align:left}@media (max-width: 767px){.about-me-headshot{float:none;display:block;margin:0 auto 1rem}.about-me-content,.about-me-text{text-align:left;color:var(--color-text)}}.theme-toggle-btn{margin-top:1rem;background:none;border:1px solid var(--color-footer);color:var(--color-footer);border-radius:4px;padding:.5rem 1rem;cursor:pointer;font-size:1rem;transition:background .2s,color .2s,border .2s}.theme-toggle-btn:hover{background:var(--color-footer);color:var(--color-bg)}.social-icon{width:1.1rem;height:1.1rem;vertical-align:middle;display:inline-block;filter:none}.social-icon-threads{margin:-.5rem 0 0 .1rem}.social-icon-container{margin:"0 0.5rem";color:"inherit";font-size:"1.7rem";vertical-align:"middle"}body.dark-theme .social-icon{color:#f3f3f3;filter:brightness(1.2) grayscale(1) invert(1)}body.light-theme .social-icon{color:#222;filter:none}.contact-me{margin-bottom:2rem;padding:1rem;border-radius:8px;background:var(--color-bg-section);box-shadow:var(--color-shadow);color:var(--color-text);text-align:left}.contact-me-content{font-size:1.1rem;margin-top:.5rem}.contact-email-link{font-size:1.1rem;transition:color .2s}.contact-email-link:hover,.contact-email-link:focus{color:#fff;background:var(--color-link);border-radius:2px;text-decoration:underline}.articles-section{float:none;width:auto;clear:both;text-align:left;margin-left:0;margin-right:0;box-sizing:border-box}.articles-section h2{text-align:center}@media (min-width: 900px){.articles-section{width:auto;margin-right:0}}
