*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;color:#333;background-color:#fff;display:flex;min-height:100vh}#sidebar{width:230px;flex-shrink:0;min-height:100vh;background-color:#f5f5f5;border-right:1px solid #e0e0e0;padding:2rem 1.5rem;position:sticky;top:0;height:100vh;overflow-y:auto}#logo-sidebar h1{font-size:1.6rem;font-weight:700;margin-bottom:2rem}#logo-sidebar h1 a{text-decoration:none;color:#333}#sidebar-nav ul{list-style:none;padding:0}#sidebar-nav ul li{margin-bottom:.8rem}#sidebar-nav ul li a,#projects-toggle-btn{text-decoration:none;color:#444;font-weight:500;font-size:1rem;display:block;padding:.3rem 0;transition:color .2s ease-in-out;background:none;border:none;text-align:left;width:100%;cursor:pointer}#sidebar-nav ul li a:hover,#sidebar-nav ul li a:focus,#projects-toggle-btn:hover,#projects-toggle-btn:focus{color:#007bff}#projects-toggle-btn .expander-icon{display:inline-block;margin-left:.5em;transition:transform .2s ease-in-out}#projects-submenu{list-style:none;padding-left:1.5rem;margin-top:.5rem;overflow:hidden;border-left:2px solid #ddd}#projects-submenu li{margin-bottom:.25rem}#projects-submenu li a{font-size:.8rem;font-weight:400;font-family:Courier New,Courier,monospace;color:#666;padding:.15rem 0}#page-content-wrapper{flex-grow:1;padding:0;overflow-y:auto;display:flex;flex-direction:column}main{max-width:800px;margin:0 auto;padding:2.5rem;width:100%;flex-grow:1}#hero{padding:2rem 0;text-align:left;margin-bottom:2.5rem}#hero h2{font-size:2.5rem;margin-bottom:.5rem;font-weight:700;color:#333}#hero p{font-size:1.1rem;font-weight:300;color:#555}.content-section{margin-bottom:2.5rem}.content-section:last-of-type{margin-bottom:0}.content-section h2{font-size:2rem;margin-bottom:1.5rem;color:#333;text-align:left;font-weight:600;border-bottom:1px solid #eee;padding-bottom:.5rem}.about-header{text-align:center;margin-bottom:1.5rem}.headshot{width:180px;height:180px;border-radius:50%;object-fit:cover;border:3px solid #e0e0e0}#about-content h1,#about-content h2,#about-content h3{font-weight:600;color:#333;margin-top:1.2em;margin-bottom:.6em}#about-content h1{font-size:1.8rem}#about-content h2{font-size:1.5rem;border-bottom:1px solid #eee;padding-bottom:.3em}#about-content h3{font-size:1.2rem}#about-content p,.content-section p,#about-content ul,.content-section ul,#about-content ol,.content-section ol{margin-bottom:1rem;font-size:1rem;color:#444}#about-content ul,.content-section ul,#about-content ol,.content-section ol{list-style-position:outside;padding-left:1.5rem}#about-content ul li,.content-section ul li,#about-content ol li,.content-section ol li{margin-bottom:.5rem}#about-content a,.content-section a{color:#007bff;text-decoration:none}#about-content a:hover,.content-section a:hover,#about-content a:focus,.content-section a:focus{text-decoration:underline}.project-grid,.art-grid,#blog-posts-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}#blog-posts-container{grid-template-columns:1fr}.project-card,.blog-post-summary,.blog-post-full,.art-item{background-color:#fff;border:1px solid #ddd;border-radius:6px;padding:1.25rem;box-shadow:0 2px 5px #0000000d;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.project-card:hover,.blog-post-summary:hover,.art-item:hover{transform:translateY(-3px);box-shadow:0 4px 8px #00000014}.blog-post-full{padding:1.5rem;margin-bottom:1rem}.blog-post-full h3{font-size:1.4rem;margin-bottom:.5rem;color:#333}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3{font-weight:600;color:#333;margin-top:1.2em;margin-bottom:.6em}.blog-post-content h1{font-size:1.5rem}.blog-post-content h2{font-size:1.3rem;border-bottom:1px solid #eee;padding-bottom:.3em}.blog-post-content h3{font-size:1.1rem}.blog-post-content p{margin-bottom:1rem;font-size:1rem;color:#444;line-height:1.7}.blog-post-content ul,.blog-post-content ol{margin-bottom:1rem;padding-left:1.5rem}.blog-post-content li{margin-bottom:.5rem}.blog-post-content a{color:#007bff;text-decoration:none}.blog-post-content a:hover{text-decoration:underline}.project-thumbnail{width:100%;height:160px;object-fit:cover;border-radius:4px;margin-bottom:1rem;border:1px solid #eee}.project-card h3,.blog-post-summary h3,.blog-post-full h3,.art-item h3{font-size:1.3rem;margin-bottom:.5rem;color:#007bff}.blog-post-summary h3,.blog-post-full h3{color:#333}.project-card p,.blog-post-summary p,.blog-post-full>p,.art-item p{font-size:.9rem;margin-bottom:1rem;flex-grow:1}.blog-post-summary h3 a{color:inherit;text-decoration:none}.blog-post-summary h3 a:hover,.blog-post-summary h3 a:focus{color:#007bff}.blog-post-summary .btn-read-more{align-self:flex-start}#blog-post .blog-post-full{border:none;box-shadow:none;padding:0}#blog-post .blog-post-full h2{margin-bottom:.5rem}.back-link{font-size:.9rem}.post-meta{font-size:.8rem;color:#777;margin-bottom:.5rem!important}.btn-view-project,.btn-read-more{display:inline-block;background-color:#007bff;color:#fff!important;padding:.5rem 1rem;text-decoration:none;border-radius:4px;font-weight:500;transition:background-color .2s ease;margin-top:auto;text-align:center;font-size:.9rem}.btn-view-project:hover,.btn-read-more:hover,.btn-view-project:focus,.btn-read-more:focus{background-color:#0056b3;color:#fff!important}.loading-message{font-style:italic;color:#777;text-align:center;width:100%;padding:1rem 0}.error-message{color:#d9534f;font-weight:700;text-align:center;width:100%;padding:1rem 0}.project-shell-page #page-content-wrapper{height:100vh;overflow:hidden}#project-shell{max-width:none;padding:0;display:flex}.project-frame{flex-grow:1;width:100%;border:none}footer{background-color:#333;color:#f4f4f4;text-align:center;padding:1.5rem 0;width:100%}footer p{font-size:.9rem}@media (max-width: 800px){body{flex-direction:column}#sidebar{width:100%;min-height:auto;position:static;border-right:none;border-bottom:1px solid #e0e0e0;padding:1rem;height:auto;overflow-y:visible}#logo-sidebar{text-align:center;margin-bottom:1rem}#logo-sidebar h1{font-size:1.5rem;margin-bottom:0}#sidebar-nav ul{display:flex;flex-direction:column;align-items:center;margin-top:0}#sidebar-nav ul li{margin:.5rem 0;width:100%;text-align:center}#sidebar-nav ul li a,#projects-toggle-btn{padding:.3rem .5rem;display:block;text-align:center}#projects-submenu{padding-left:1rem;text-align:center;border-left:none}#projects-submenu li a{display:inline-block;font-size:.75rem}#page-content-wrapper{padding:0}main{padding:1.5rem;max-width:100%}#hero{padding:1.5rem 0;text-align:center}#hero h2{font-size:2rem}#hero p{font-size:1rem}.content-section h2{font-size:1.6rem;text-align:center}#about-content h1{font-size:1.5rem;text-align:center}#about-content h2{font-size:1.3rem;text-align:center}#about-content h3{font-size:1.1rem;text-align:center}.headshot{width:140px;height:140px}.project-shell-page{height:100vh;height:100dvh}.project-shell-page #sidebar-nav{display:none}.project-shell-page #logo-sidebar{margin-bottom:0}.project-shell-page #sidebar{padding:.6rem 1rem}.project-shell-page #page-content-wrapper{height:auto;flex-grow:1;min-height:0}.project-grid,.art-grid,#blog-posts-container{grid-template-columns:1fr}}a:focus,button:focus,input:focus,textarea:focus{outline:2px solid #0056b3;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.art-item{text-align:center}.art-item canvas{margin:1rem 0;border-radius:8px;cursor:pointer}.btn-expand-art{background:#007bff;color:#fff;border:none;padding:.5rem 1rem;border-radius:5px;cursor:pointer;font-size:.9rem;transition:background-color .3s ease;margin-top:.5rem}.btn-expand-art:hover{background:#0056b3}.art-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000}.art-modal-content{position:relative;background:#fff;border-radius:10px;padding:2rem;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.art-modal-controls{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem;z-index:1001}.art-modal-close{background:none;border:none;font-size:2rem;cursor:pointer;color:#666}.art-modal-close:hover{color:#333}.art-regenerate-btn{background:#007bff;border:none;color:#fff;padding:.5rem 1rem;border-radius:5px;cursor:pointer;font-size:.9rem;font-weight:500}.art-regenerate-btn:hover{background:#0056b3}.art-modal canvas{border-radius:8px;box-shadow:0 4px 15px #0003}#business-ideas-nav{background-color:#f8f9fa;border-radius:8px;padding:1.5rem;margin:2rem 0}#business-ideas-nav h3{margin-bottom:1rem;color:#495057;font-size:1.1rem}.nav-links{display:flex;flex-wrap:wrap;gap:.75rem}.nav-links a{display:inline-block;padding:.5rem 1rem;background-color:#fff;border:1px solid #dee2e6;border-radius:20px;text-decoration:none;color:#495057;font-size:.9rem;font-weight:500;transition:all .2s ease;white-space:nowrap}.nav-links a:hover{background-color:#007bff;color:#fff;border-color:#007bff;transform:translateY(-1px)}@media (max-width: 768px){.nav-links{gap:.5rem}.nav-links a{padding:.4rem .8rem;font-size:.85rem}}.resume-entry{margin-bottom:1.5rem;padding-left:1rem;border-left:3px solid #007bff}.resume-entry h4{font-size:1.1rem;font-weight:600;color:#333;margin-bottom:.25rem}.resume-meta{font-size:.9rem;color:#666;font-style:italic;margin-bottom:.5rem}.resume-entry ul{margin-top:.5rem}.start-here-section{background-color:#f8f9fa;border-radius:8px;padding:1.5rem}.start-here-section h3{margin-bottom:1rem;font-size:1.2rem;color:#333}.start-here-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.start-here-card{display:block;padding:1.25rem;background:#fff;border:2px solid #007bff;border-radius:8px;text-decoration:none;color:#333;transition:all .2s ease}.start-here-card:hover{background-color:#007bff;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #007bff4d;text-decoration:none}.start-here-card:hover span{color:#ffffffe6}.start-here-card strong{display:block;font-size:1.1rem;margin-bottom:.4rem;color:#007bff}.start-here-card:hover strong{color:#fff}.start-here-card span{font-size:.9rem;color:#666}
