: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:#fff;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}}body{font-family:Lora,serif;background-color:#fff;color:#333;margin:0;padding:0;line-height:1.4;overscroll-behavior-y:contain;overflow:hidden!important;height:100vh!important;width:100%!important}.container{height:100vh;overflow:hidden;transition:opacity .6s ease-in-out .3s}.container.loading{opacity:0}.mobile-menu-toggle{display:none;position:fixed;top:1rem;left:1rem;z-index:1000;background:#fff;border:2px solid #333;border-radius:8px;padding:.5rem .75rem;cursor:pointer;font-size:1.5rem;color:#333;box-shadow:0 2px 8px #0000001a}.mobile-menu-toggle:hover{background:#f5f5f5}.sidebar{position:fixed;left:2rem;top:2rem;height:calc(100vh - 4rem);width:200px;padding-left:1rem;padding-right:2rem;overflow:visible;display:flex;flex-direction:column;justify-content:center;transition:transform .3s ease}.main-content{margin-left:207px;padding-left:2rem;height:100vh;overflow:hidden;display:flex;flex-direction:column}.content-wrapper{max-width:60%;margin:0 auto;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;padding-top:3rem;padding-bottom:3rem}article{display:flex;flex-direction:column;height:100%;overflow:hidden}article h1{flex-shrink:0;margin-bottom:1.5rem;color:#000}.css-18fqvvy{overflow-y:auto;padding-right:1.5rem;flex:1;scrollbar-width:thin}.navigation,.social-links{margin-bottom:1.5rem}.dock-container{display:flex;flex-direction:column;gap:.3rem}.dock-link{display:block;color:#333;text-decoration:none;font-size:1.2rem;font-weight:400;transition:transform .2s ease,color .2s ease;transform-origin:center left;padding:.2rem 0;cursor:pointer}.dock-link:hover{color:#666}.dock-link.active{color:#000;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.section-label{font-size:.8rem;text-transform:uppercase;color:#666;margin-bottom:1rem;letter-spacing:.1em}.sidebar a:not(.dock-link){display:block;color:#333;text-decoration:none;margin-bottom:.5rem;font-size:1.2rem;font-weight:400}.sidebar a:not(.dock-link):hover{color:#666}header h1{font-size:3rem;margin-bottom:2rem;color:#000}section{margin-bottom:2rem}section h2{font-size:1.5rem;font-weight:700;margin-bottom:1rem;color:#000}section p{margin-bottom:1rem;font-size:1.1rem}ul{margin-bottom:1rem;padding-left:1.5rem}li{margin-bottom:.5rem;font-size:1.1rem}a{color:#6b8e23;text-decoration:none}a:hover{text-decoration:underline}.books-list{flex:1;overflow-y:auto;padding-right:1.5rem;margin-top:0;scrollbar-width:thin}.book-item{display:flex;margin-bottom:2rem;align-items:flex-start}.book-link{display:block;margin-right:1.5rem;width:150px;height:225px;position:relative;overflow:hidden;border-radius:4px;flex-shrink:0;border:1px solid rgba(128,128,128,.15);background:#fbfbfb}.book-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}.book-summary{flex:1;font-size:1.1rem;line-height:1.5}.book-image-skeleton{position:absolute;inset:0;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.book-image.loading{opacity:0}.book-image.loaded{opacity:1}.book-image-error{position:absolute;inset:0;background:linear-gradient(135deg,#fdfdfd,#f4f5f7);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;padding:1rem;transition:background .3s ease}.projects-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0rem 2rem;flex:1;overflow-y:auto;padding-right:1.5rem;margin-top:0;scrollbar-width:thin}.project-item{margin-bottom:2rem}.fallback-book-content,.fallback-project-content,.fallback-blog-content{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.fallback-logo{font-size:2rem;margin-bottom:.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.05));display:inline-block;animation:floatEmoji 4s ease-in-out infinite alternate}@keyframes floatEmoji{0%{transform:translateY(0) rotate(0)}to{transform:translateY(-4px) rotate(3deg)}}.fallback-title{font-family:Lora,serif;font-weight:600;color:#111;line-height:1.35;margin-bottom:.3rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.book-image-error .fallback-title{font-size:.9rem;-webkit-line-clamp:4}.project-image-error .fallback-title{font-size:1.1rem;max-width:90%}.blog-image-error .fallback-title{font-size:1.05rem;max-width:90%}.fallback-subtitle{font-family:Lora,serif;font-size:.75rem;color:#666;font-style:italic}.project-image-error .fallback-subtitle{font-size:.8rem;color:#6b8e23;font-weight:500;margin-top:.2rem;text-decoration:underline;text-underline-offset:2px}.project-card{position:relative;width:100%;aspect-ratio:1.91 / 1;overflow:hidden;border-radius:10px;border:1px solid rgba(128,128,128,.253);background:#fafafa}.project-item img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.project-item h2{font-size:1.5rem;margin-left:.2rem;margin-bottom:.8rem}.project-item h2 a{color:#06c;text-decoration:none}.project-item h2 a:hover{color:#049}.project-item p{font-size:1.1rem;line-height:1.5}.project-image-skeleton{position:absolute;inset:0;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.project-item img.loading{opacity:0}.project-item img.loaded{opacity:1;transition:opacity .3s ease-in}.project-image-error{position:absolute;inset:0;background:linear-gradient(135deg,#fdfdfd,#f4f5f7);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;padding:1.5rem;transition:background .3s ease}.blog-posts-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0rem 2rem;flex:1;overflow-y:auto;padding-right:1.5rem;margin-top:0;scrollbar-width:thin}.blog-post-item{margin-bottom:2.5rem}.blog-post-item h2{font-size:1.5rem;margin-left:.2rem;margin-bottom:.8rem;color:#000;line-height:1.3}.blog-post-meta{font-size:.85rem;color:#666;margin-bottom:.5rem;margin-left:.2rem;display:flex;gap:.5rem;align-items:center}.blog-post-category{color:#333;font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.blog-post-meta-dot{color:#ccc}.blog-post-date{color:#888}.blog-post-card{position:relative;width:100%;aspect-ratio:1.6 / 1;overflow:hidden;border-radius:10px;border:1px solid rgba(128,128,128,.253);background:#fafafa;margin-bottom:.8rem}.blog-post-card img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .3s ease-in}.blog-image-skeleton{position:absolute;inset:0;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.blog-image-error{position:absolute;inset:0;background:linear-gradient(135deg,#fdfdfd,#f4f5f7);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;padding:1.5rem;transition:background .3s ease}.blog-post-desc{font-size:1.1rem;line-height:1.5;color:#444}@media(max-width:768px){.mobile-menu-toggle{display:block}.sidebar{left:0;top:0;width:250px;height:100vh;padding:2rem 1.5rem;background:#fff;z-index:999;transform:translate(-100%);box-shadow:2px 0 10px #0000001a;justify-content:flex-start}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:998}.sidebar-overlay.open{display:block}.container{padding:1rem}.main-content{margin-left:0;padding-left:0;padding-top:3.5rem;padding-right:.5rem}.content-wrapper{max-width:100%;padding:0 1.5rem}header h1{font-size:2rem}section h2{font-size:1.3rem}section p,li{font-size:1rem}.dock-link{font-size:1.3rem;padding:.5rem 0}.sidebar a:not(.dock-link){font-size:1.3rem}.projects-list,.blog-posts-list{grid-template-columns:1fr;gap:1.5rem}.book-item{flex-direction:column;align-items:center;text-align:center}.book-link{margin-right:0;margin-bottom:1rem}.book-image{width:150px}.book-image-skeleton{width:150px;height:225px}.project-card,.blog-post-card{height:auto;aspect-ratio:1.91 / 1}.blog-post-card{aspect-ratio:1.6 / 1}}@media(max-width:480px){.mobile-menu-toggle{top:.75rem;left:.75rem;padding:.4rem .6rem;font-size:1.3rem}.container{padding:.75rem}.content-wrapper{padding:0 .5rem}header h1{font-size:1.75rem;margin-bottom:1.5rem}section h2{font-size:1.2rem}section p,li,.book-summary,.project-item p{font-size:.95rem}.sidebar{width:220px;padding:1.5rem 1rem}.dock-link{font-size:1.2rem}.book-image{width:100px}.book-image-skeleton{width:100px;height:150px}.project-item h2{font-size:1.3rem}.project-item img,.project-image-skeleton{height:auto;min-height:10rem}}@media(min-width:769px)and (max-width:1024px){.sidebar{width:180px;left:1.5rem}.main-content{margin-left:185px;padding-left:1.5rem}.content-wrapper{max-width:75%}.projects-list{grid-template-columns:repeat(2,1fr);gap:1.5rem}header h1{font-size:2.5rem}}@media(min-width:1280px){.container{padding:2rem 8rem 2rem 0}.content-wrapper{max-width:70%}.sidebar{width:220px}.sidebar a:not(.dock-link){font-size:1.4rem}.dock-link{font-size:1.4rem}.main-content{margin-left:227px}}@media(min-width:1920px){.container{padding:2rem 12rem 2rem 0}.content-wrapper{max-width:60%}.sidebar{width:240px;left:3rem}.main-content{margin-left:247px}header h1{font-size:3.5rem}section h2{font-size:1.75rem}.projects-list{grid-template-columns:repeat(3,1fr)}}.books-list::-webkit-scrollbar,.projects-list::-webkit-scrollbar,.blog-posts-list::-webkit-scrollbar,.css-18fqvvy::-webkit-scrollbar{display:none!important}.books-list,.projects-list,.blog-posts-list,.css-18fqvvy{-ms-overflow-style:none!important;scrollbar-width:none!important}
