body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}html{-ms-overflow-style:none;scroll-behavior:smooth;scrollbar-width:none}html::-webkit-scrollbar{display:none}body{background:#090e18;color:#e5e5e5;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.7;overflow-x:hidden;position:relative;transition:background 0s,color 0s}body:before{background:#080b13;bottom:0;left:0;right:0;top:0;transition:background 0s;z-index:-2}body:after,body:before{content:"";position:fixed}body:after{background:#0000;height:200%;left:-50%;opacity:0;top:-50%;transition:background 0s,opacity 0s;width:200%;z-index:-1}body.light-theme{background:#fafafa;color:#1a1a1a}body.light-theme:before{background:linear-gradient(180deg,#fafafa,#f5f5f5)}body.light-theme:after{background:#0000;opacity:0}@keyframes meshMove{0%{transform:translate(0) scale(1)}to{transform:translate(3%,3%) scale(1.05)}}.App{display:flex;flex-direction:column;min-height:100vh;overflow-x:hidden}.top-header{backdrop-filter:blur(2.5px);-webkit-backdrop-filter:blur(2.5px);background:#080b13d9;justify-content:center;left:0;padding:1.5rem 3%;position:fixed;right:0;top:0;transition:all 0s;z-index:100}.top-header,.top-nav-container{align-items:center;display:flex}.top-nav-container{justify-content:space-between;max-width:750px;width:100%}.top-nav{align-items:center;display:flex;gap:1.5rem;margin:0 0 0 2rem}.top-nav-item{color:#9ca3af;font-size:.95rem;font-weight:500;padding:.5rem 0;position:relative;text-decoration:none;text-transform:lowercase;transition:all 0s}.top-nav-item:hover{color:#fff}.top-theme-toggle{align-items:center;background:#0000;border:none;border-radius:6px;color:#fde047;cursor:pointer;display:flex;justify-content:center;margin-right:1.5rem;padding:.5rem;transition:all .3s ease}.top-theme-toggle:hover{background:#fde04714;color:#facc15}.top-theme-toggle svg{height:18px;width:18px}.main-content{min-height:100vh;padding-top:10px;width:100%}.section{margin:0 auto;max-width:765px;padding:6rem 3% 4rem}.about-text{margin:0;max-width:580px;text-align:left}.about-container{align-items:center;display:flex;gap:4rem;justify-content:space-between}.about-image{flex-shrink:0}.profile-pic{border-radius:16px;box-shadow:0 8px 32px #0000004d;height:240px;object-fit:cover;object-position:center 0;transition:transform .3s ease,box-shadow .3s ease;width:180px}.profile-pic:hover{box-shadow:0 16px 48px #0006}.about-text h2{color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:3rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1rem;text-transform:lowercase}.about-text .subtitle{color:#d1d5db;font-size:1.1rem;font-weight:400;line-height:1.6;margin-bottom:1.5rem}.about-text .description{color:#9ca3af;font-size:1rem;font-weight:400;line-height:1.7;margin-bottom:2rem}.cta-links{gap:1rem}.cta-links,.icon-link{align-items:center;display:flex}.icon-link{background:#0000;border-radius:8px;color:#fff;justify-content:center;padding:.75rem;text-decoration:none}.icon-link:hover{color:#fff}.icon-link svg{height:24px;width:24px}.about-text p{color:#d1d5db;font-size:1.1rem;font-weight:400;line-height:1.8;margin-bottom:2rem;max-width:450px}.resume-button{align-items:center;background:#fff;border:none;border-radius:8px;box-shadow:0 1px 3px #0003;color:#0a0a0a;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:600;gap:.75rem;padding:.75rem 1.5rem;text-decoration:none;transition:all 0s}.resume-button:hover{background:#e5e5e5}.resume-button svg{height:18px;width:18px}.modal-overlay{align-items:center;animation:fadeIn .3s ease;background:#000000eb;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#1a1a1a;border:none;border-radius:16px;box-shadow:0 25px 100px #000c;display:flex;flex-direction:column;height:90vh;max-width:950px;overflow:hidden;position:relative;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-close{align-items:center;border:none;border-radius:0;box-shadow:none;color:#fff;cursor:pointer;display:flex;font-size:2rem;font-weight:400;height:44px;justify-content:center;line-height:1;padding:.5rem 1rem;position:fixed;right:2rem;top:2rem;transition:none;width:44px;z-index:1001}.modal-close,.modal-close:hover{background:#0000}.pdf-viewer{border:none;height:100%;width:100%}#experience h2{color:#fff;font-size:2.8rem;font-weight:800;letter-spacing:-.03em;margin-bottom:3rem;text-align:center}.tabs{background:#ffffff0f;border-radius:12px;display:flex;gap:.25rem;justify-content:center;margin:0 auto 3rem;padding:.25rem;width:100%}.tab-button{background:#0000;border:none;border-radius:8px;color:#cacfd8;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:.5rem 1.5rem;position:relative;text-align:center;transition:all 0s}.tab-button:hover{color:#fff}.tab-button.active{background:#080b13;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;color:#fff;font-weight:500}.tab-button.active:after{background:linear-gradient(90deg,#0000,#9ca3af,#0000);border-radius:2px;bottom:-1rem;content:"";display:none;height:2px;left:50%;position:absolute;transform:translateX(-50%);width:60%}.experience-list{display:flex;flex-direction:column;gap:3rem;position:relative}.experience-list:before{background:linear-gradient(180deg,#9ca3af4d,#9ca3af1a);bottom:56px;content:"";left:28px;position:absolute;top:56px;width:2px;z-index:1}.experience-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:none;border-radius:0;overflow:visible;padding:0;position:relative;transition:none}.experience-card:before,.experience-card:hover:before{display:none}.experience-card:hover{background:#0000;border-color:#0000;box-shadow:none;transform:none}.experience-main{align-items:flex-start;display:flex;gap:1.5rem}.experience-logo{align-items:center;background:#fff;border:2px solid #cfccda;border-radius:50%;display:flex;flex-shrink:0;height:56px;justify-content:center;overflow:hidden;padding:8px;position:relative;width:56px;z-index:2}.experience-logo.godaddy-logo{background:#131212!important;border-color:#eeedf14d}.experience-logo.ucla-logo{border-color:#9797984d;padding:2px}.experience-logo img{border-radius:50%;height:100%;object-fit:cover;width:100%}.experience-logo.ucla-logo img{object-fit:contain;padding:4px}.experience-content{flex:1 1;min-width:0}.experience-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.experience-title-section{flex:1 1}.experience-date-section{flex-shrink:0;text-align:right}.experience-date-section .period-location{color:#9ca3af;font-size:.875rem;margin:0;white-space:nowrap}.experience-card h3{color:#fff;font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin-bottom:.5rem}.company-info{font-size:.95rem;line-height:1.5;margin:.25rem 0}.company-name{color:#fff;font-weight:600}.employment-type{color:#9ca3af;font-weight:400}.period-location{color:#9ca3af;font-size:.875rem;line-height:1.5;margin:.25rem 0}.period-location .duration,.period-location .period{color:#9ca3af}.location-info{color:#9ca3af;font-size:.875rem;line-height:1.5;margin:.25rem 0 .75rem}.experience-bullets{list-style:none;margin:1rem 0;padding:0}.experience-bullets li{color:#d1d5db;font-size:.95rem;line-height:1.8;margin-bottom:.75rem;padding-left:1.25rem;position:relative}.experience-bullets li:before{color:#9ca3af;content:"–";font-weight:600;left:0;position:absolute}.experience-skills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.skill-tag{background:#ffffff14;border-radius:6px;color:#d1d5db;font-size:.85rem;font-weight:500;padding:.35rem .75rem}#projects{padding:5rem 3% 4rem}.projects-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:3rem}.projects-header h2{color:#fff;font-size:2.8rem;font-weight:800;letter-spacing:-.03em;margin:0;text-transform:lowercase}.view-more-link{font-size:.95rem;font-weight:500;transition:all .3s ease}.projects-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:800px}.featured-projects-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.featured-projects-header h2{color:#fff;font-size:2.8rem;font-weight:800;letter-spacing:-.03em;margin:0}.view-more-link{align-items:center;color:#9ca3af;display:flex;font-size:1rem;font-weight:600;gap:.5rem;text-decoration:none;transition:color .3s ease}.view-more-link:hover{color:#fff}.view-more-link svg{transition:transform .3s ease}.view-more-link:hover svg{transform:none}.featured-projects-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;justify-content:center;max-width:800px}.App.light .featured-projects-header h2{color:#1f2937}.App.light .view-more-link{color:#6b7280}.App.light .view-more-link:hover{color:#1f2937}@media (max-width:408px){.featured-projects-header h2{font-size:2.2rem}.featured-projects-grid{gap:1.25rem;grid-template-columns:1fr}.view-more-link{font-size:.9rem}}#skills{background:#0000;padding:5rem 3% 4rem}#skills h2{color:#fff;font-size:2.8rem;font-weight:800;letter-spacing:-.03em;margin-bottom:4rem;text-align:center}.skills-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0 auto;max-width:1000px}.skill-item{align-items:center;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#1e1e1e66;border:1px solid #ffffff14;border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:2rem 1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1)}.skill-item:hover{background:#282828cc;border-color:#fff3;box-shadow:0 15px 50px #0006;transform:translateY(-8px)}.skill-item img{height:56px;object-fit:contain;transition:transform .3s ease;width:56px}.skill-item:hover img{transform:scale(1.1)}.skill-item span{color:#e5e5e5;font-size:.95rem;font-weight:600;text-align:center}.project-card{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#1e1e1e66;border:1px solid #ffffff14;border-radius:12px;display:flex;flex-direction:column;height:100%;max-width:380px;overflow:hidden;padding:0;transition:all 0s}.project-card:hover{background:#282828cc;border-color:#fff3;box-shadow:0 15px 50px #0006}.project-image{background:#141414cc;border-bottom:1px solid #ffffff1a;height:180px;overflow:hidden;width:100%}.project-image img{height:100%;object-fit:cover;transition:transform 0s;width:100%}.project-content{display:flex;flex-direction:column;flex-grow:1;padding:1.5rem}.project-card h3{color:#fff;font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin-bottom:.75rem}.project-card p{color:#d1d5db;flex-grow:1;font-size:.9rem;line-height:1.6;margin-bottom:1rem}.tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag{background:#ffffff1a;border:1px solid #ffffff26;border-radius:6px;color:#e5e5e5;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.tag:hover{background:#ffffff26;border-color:#ffffff40}.view-repo-button{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0003;color:#0a0a0a;display:inline-block;font-size:.85rem;font-weight:600;margin-top:auto;padding:.65rem 1rem;text-align:center;text-decoration:none;transition:all 0s;width:100%}.view-repo-button:hover{background:#e5e5e5}#contact h2{color:#fff;font-size:2.8rem;font-weight:800;letter-spacing:-.03em;margin-bottom:3rem;text-align:center}.contact-form{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#f2d0d04d;border:1px solid #ffffff14;border-radius:16px;display:flex;flex-direction:column;gap:1.5rem;margin:0 auto 3rem;max-width:715px;padding:3rem}.contact-input,.contact-textarea{background:#141414cc;border:1px solid #ffffff26;border-radius:8px;color:#e5e5e5;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;padding:1rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.contact-input:focus,.contact-textarea:focus{background:#191919e6;border-color:#fff;box-shadow:0 0 0 3px #ffffff1a;outline:none}.contact-input::placeholder,.contact-textarea::placeholder{color:#6b7280}.contact-textarea{min-height:150px;resize:vertical}.contact-submit{align-self:center;background:#fff;border:none;border-radius:8px;box-shadow:0 1px 3px #0003;color:#0a0a0a;cursor:pointer;font-size:1.05rem;font-weight:700;padding:1rem 2.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.contact-submit:hover{background:#e5e5e5}.contact-links-bottom{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.contact-links-bottom a{background:#1e1e1e80;border:2px solid #fff3;border-radius:8px;color:#e5e5e5;font-size:1rem;font-weight:600;padding:.8rem 1.8rem;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.contact-links-bottom a:hover{background:#fff;border-color:#0000;color:#0a0a0a}.App.light{background:#0000;color:#1a1a1a}.App.light .top-header{backdrop-filter:blur(2.5px);-webkit-backdrop-filter:blur(2.5px);background:#fafafad9}.App.light .top-nav-item{color:#737373}.App.light .top-nav-item:hover{color:#0f0f0f}.App.light .top-theme-toggle{color:#6b7280}.App.light .top-theme-toggle:hover{background:#6b728014;color:#4b5563}.App.light .about-text h2{-webkit-text-fill-color:#0f0f0f;background:none;color:#0f0f0f}.App.light .about-text .subtitle{color:#525252}.App.light .about-text .description,.App.light .icon-link{color:#737373}.App.light .icon-link:hover{color:#0f0f0f}.App.light .about-text p{color:#525252;font-weight:400}.App.light .experience-card{background:#0000;border:none;box-shadow:none}.App.light .experience-card:hover{background:#0000;border-color:#0000;box-shadow:none}.App.light .experience-logo{background:#fff}.App.light .experience-card h3{color:#0f0f0f}.App.light .experience-list:before{background:linear-gradient(180deg,#00000026,#0000000d)}.App.light .company-name{color:#0f0f0f}.App.light .employment-type,.App.light .location-info,.App.light .period-location{color:#737373}.App.light .experience-bullets li{color:#525252}.App.light .experience-bullets li:before{color:#0f0f0f}.App.light .skill-tag{background:#0000000f;color:#525252}.App.light .tabs{background:#0000000a}.App.light .tab-button{color:#6b7280}.App.light .tab-button:hover{color:#374151}.App.light .tab-button.active{background:#fff;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;color:#000}.App.light .tab-button.active:after{display:none}.App.light .project-card{background:#fffc;border:1px solid #00000014;box-shadow:0 1px 3px #0000000d}.App.light .project-card:hover{background:#fff;border-color:#0000001f;box-shadow:0 8px 24px #00000014}.App.light .project-image{background:#f5f5f5e6;border-bottom:1px solid #00000014}.App.light .project-card h3{color:#0f0f0f}.App.light .project-card p{color:#525252}.App.light .skill-item span{color:#0f0f0f}.App.light .tag{background:#0000000a;border-color:#0000001a;color:#404040}.App.light .tag:hover{background:#00000014;border-color:#00000026}.App.light #contact h2,.App.light #experience h2,.App.light #skills h2,.App.light .projects-header h2{-webkit-text-fill-color:#0f0f0f;background:none;color:#0f0f0f}.App.light .view-more-link{color:#737373}.App.light .view-more-link:hover{color:#0f0f0f}.App.light .contact-form{background:#fffc;border:1px solid #00000014;box-shadow:0 1px 3px #0000000d}.App.light .contact-input,.App.light .contact-textarea{background:#fff;border-color:#00000026;color:#0f0f0f}.App.light .contact-input:focus,.App.light .contact-textarea:focus{border-color:#0f0f0f;box-shadow:0 0 0 3px #0000000d}.App.light .contact-input::placeholder,.App.light .contact-textarea::placeholder{color:#a3a3a3}.App.light .contact-links-bottom a{background:#fff9;border-color:#00000026;color:#0f0f0f}.App.light .contact-links-bottom a:hover{background:#0f0f0f;border-color:#0000;color:#fff}.App.light .resume-button{background:#0f0f0f;box-shadow:0 1px 3px #0000001a;color:#fff}.App.light .resume-button:hover{background:#262626}.App.light .view-repo-button{background:#0f0f0f;box-shadow:0 1px 3px #0000001a;color:#fff}.App.light .view-repo-button:hover{background:#262626}.App.light .contact-submit{background:#0f0f0f;box-shadow:0 1px 3px #0000001a;color:#fff}.App.light .contact-submit:hover{background:#262626}.App.light .profile-img{border:none;box-shadow:0 8px 24px #00000014,0 1px 3px #0000000d}.App.light .profile-img:hover{box-shadow:0 12px 32px #0000001f,0 2px 6px #00000014}.App.light .modal-content{background:#fff;border:none}.App.light .modal-close{background:#0000;box-shadow:none;color:#fff}.App.light .modal-close:hover{background:#0000}@media (max-width:1024px){.section{padding:4rem 5%}.about-text p{max-width:100%}.experience-header{align-items:flex-start;flex-direction:column}}@media (max-width:768px){.top-header{gap:1rem;padding:1rem 5%}.top-nav{gap:1.5rem}.top-nav-item{font-size:.85rem}.section{padding:3rem 5%}.about-text h2{font-size:2.2rem}.about-text p{font-size:1rem}#contact h2,#experience h2,#projects h2,#skills h2{font-size:2.2rem}.experience-main{gap:1rem}.experience-logo{height:48px;width:48px}.experience-card h3{font-size:1.1rem}.tabs{gap:.5rem}.tab-button{font-size:.9rem;padding:.6rem 1.5rem}.experience-card,.project-card{padding:1.5rem}.projects-grid{grid-template-columns:1fr}.contact-form{padding:2rem}.modal-close{padding:.6rem 1.4rem;right:1rem;top:1rem}}@media (max-width:480px){#contact h2,#experience h2,#projects h2,#skills h2,.about-text h2{font-size:1.8rem}.experience-main{flex-direction:column;gap:1rem}.experience-logo{height:56px;width:56px}.tabs{flex-direction:row;gap:.5rem}.tab-button{flex:1 1;font-size:.85rem;padding:.65rem 1rem}.skill-item{min-width:110px;padding:1.5rem 1.2rem}.skill-item img{height:48px;width:48px}}.blogs-list{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#1e1e1e66;border:1px solid #ffffff14;border-radius:12px;display:flex;flex-direction:column;gap:0;margin-top:2rem;overflow:hidden}.blog-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:none;border-bottom:1px solid #ffffff14;border-radius:0;padding:1.5rem;transition:all 0s}.blog-card:last-child{border-bottom:none}.blog-header{align-items:flex-start;display:flex;gap:2rem;justify-content:space-between;margin-bottom:1rem}.blog-title{color:#fff;flex:1 1;font-size:1.5rem;font-weight:600;line-height:1.3;margin:0}.blog-meta{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;min-width:140px;text-align:right}.blog-date,.blog-read-time,.blog-views{align-items:center;color:#9ca3af;display:flex;font-size:.85rem;gap:.5rem}.blog-date svg,.blog-read-time svg,.blog-views svg{opacity:.7}.blog-description{color:#d1d5db;font-size:.95rem;line-height:1.6;margin-bottom:1rem}.blog-tags{display:flex;flex-wrap:wrap;gap:.5rem}.blog-tag{background:#ffffff1a;border:1px solid #ffffff1a;border-radius:16px;color:#e5e7eb}.blog-tag:hover{background:#ffffff26;border-color:#fff3}.App.light .blogs-list{background:#fffc;border-color:#00000014}.App.light .blog-card{background:#0000;border-bottom-color:#00000014}.App.light .blog-title{color:#1f2937}.App.light .blog-date,.App.light .blog-description,.App.light .blog-read-time,.App.light .blog-views{color:#6b7280}.App.light .blog-tag{background:#00000014;border-color:#00000014;color:#374151}.App.light .blog-tag:hover{background:#0000001f;border-color:#00000026}.site-footer{padding:2rem 3% 4rem}.footer-content{justify-content:space-between;margin:0 auto;max-width:690px}.footer-content,.footer-links{align-items:center;display:flex}.footer-links{gap:1rem}.footer-icon{align-items:center;color:#9ca3af;display:flex;height:40px;justify-content:center;transition:all .2s ease;width:40px}.footer-icon:hover{color:#e5e5e5}.footer-text{align-items:center;color:#9ca3af;display:flex;font-size:.85rem;gap:.25rem}.footer-link{color:#9ca3af;text-decoration:none;transition:color .2s ease}.footer-link:hover{color:#e5e5e5}.App.light .footer-icon{color:#6b7280}.App.light .footer-icon:hover{color:#374151}.App.light .footer-link,.App.light .footer-text{color:#6b7280}.App.light .footer-link:hover{color:#374151}.blog-post-container{margin:0 auto;max-width:800px;min-height:100vh;padding:2rem}.blog-post-header{margin-bottom:3rem;text-align:center}.back-button{align-items:center;color:#8b9dc3;display:inline-flex;font-size:.9rem;gap:.5rem;margin-bottom:3rem;text-decoration:none}.back-button:hover{color:#fff}.blog-post-meta{padding-bottom:0}.blog-post-title{font-size:3.5rem;font-weight:700;line-height:1.1;margin-bottom:1.5rem;max-width:100%;padding-left:0;text-align:center}.blog-post-date{color:#8b9dc3;font-size:1rem;margin-bottom:2rem;text-align:center}.blog-post-content{line-height:1.8}.blog-post-intro{background:#8b9dc30d;border-left:4px solid #8b9dc3;border-radius:0 .5rem .5rem 0;color:#8b9dc3;font-size:1.2rem;font-style:italic;margin-bottom:3rem;padding:1.5rem}.blog-post-content h2{color:#fff;font-size:1.8rem;font-weight:600;line-height:1.3;margin:3rem 0 1.5rem}.blog-post-content h3{color:#fff;font-size:1.4rem;font-weight:600;line-height:1.3;margin:2.5rem 0 1rem}.blog-post-content p{color:#e5e5e5;margin-bottom:1.5rem}.blog-post-content ul{margin:1.5rem 0;padding-left:2rem}.blog-post-content li{color:#e5e5e5;margin-bottom:.8rem}.blog-post-content li strong{color:#fff}.blog-post-outro{background:#8b9dc30d;border:1px solid #8b9dc31a;border-radius:.75rem;color:#8b9dc3;font-size:1rem;margin-top:3rem;padding:2rem}.blog-card{cursor:pointer;transition:all .3s ease}.light-theme .blog-post-container{background:#0000;color:#1f2937}.light-theme .back-button{color:#6b7280}.light-theme .back-button:hover{color:#1f2937}.light-theme .blog-post-meta{border-bottom-color:#6b72801a}.light-theme .blog-post-title{color:#1f2937}.light-theme .blog-post-date{color:#6b7280}.light-theme .blog-post-intro{background:#6b72800d;border-left-color:#6b7280;color:#6b7280}.light-theme .blog-post-content h2,.light-theme .blog-post-content h3{color:#1f2937}.light-theme .blog-post-content li,.light-theme .blog-post-content p{color:#374151}.light-theme .blog-post-content li strong{color:#1f2937}.light-theme .blog-post-outro{background:#6b72800d;border-color:#6b72801a;color:#6b7280}@media (max-width:768px){.blog-post-container{padding:1rem}.blog-post-title{font-size:2.5rem}.blog-post-content h2{font-size:1.5rem}.blog-post-content h3{font-size:1.2rem}.blog-post-intro{font-size:1.1rem;padding:1rem}}.projects-page-header{margin-bottom:3rem}.projects-page-title{color:#fff;font-size:3rem;font-weight:700;line-height:1.2;margin-bottom:0}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;margin:0 auto;max-width:1000px}.project-card-grid{background:#8b9dc308;border:1px solid #8b9dc31a;border-radius:.75rem;display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.project-card-grid:hover{background:#8b9dc30d;border-color:#8b9dc333}.project-card-image{background:#8b9dc30d;flex-shrink:0;height:160px;overflow:hidden}.project-card-image img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.project-card-content{display:flex;flex:1 1;flex-direction:column;padding:1.25rem}.project-card-title{color:#fff;font-size:1.25rem;font-weight:700;line-height:1.3;margin-bottom:.6rem}.project-card-description{color:#8b9dc3;flex:1 1;font-size:.85rem;line-height:1.4;margin-bottom:1.25rem}.project-card-tech{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.tech-tag{background:#8b9dc31a;border:1px solid #8b9dc333;border-radius:.3rem;color:#8b9dc3;font-size:.7rem;font-weight:500;padding:.3rem .6rem}.tech-tag:hover{background:#8b9dc326;border-color:#8b9dc34d}.project-card-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto}.project-button{align-items:center;border:1px solid #0000;border-radius:.4rem;display:inline-flex;font-size:.75rem;font-weight:600;gap:.4rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.website-button{background:#8b9dc31a;border-color:#8b9dc333;color:#8b9dc3}.website-button:hover{background:#8b9dc326;border-color:#8b9dc34d;color:#fff}.source-button{background:#8b9dc31a;border-color:#8b9dc333;color:#8b9dc3}.source-button:hover{background:#8b9dc326;border-color:#8b9dc34d;color:#fff}.source-ui-button{background:#8b9dc31a;border-color:#8b9dc333;color:#8b9dc3}.source-ui-button:hover{background:#8b9dc326;border-color:#8b9dc34d;color:#fff}.light-theme .projects-page-title{color:#1f2937}.light-theme .project-card-grid{background:#6b728008;border-color:#6b72801a}.light-theme .project-card-grid:hover{background:#6b72800d;border-color:#6b728033}.light-theme .project-card-image{background:#6b72800d}.light-theme .project-card-title{color:#1f2937}.light-theme .project-card-description{color:#6b7280}.light-theme .tech-tag{background:#6b72801a;border-color:#6b728033;color:#6b7280}.light-theme .tech-tag:hover{background:#6b728026;border-color:#6b72804d}.light-theme .source-button,.light-theme .source-ui-button,.light-theme .website-button{background:#6b72801a;border-color:#6b728033;color:#6b7280}.light-theme .source-button:hover,.light-theme .source-ui-button:hover,.light-theme .website-button:hover{background:#6b728026;border-color:#6b72804d;color:#1f2937}@media (max-width:768px){.projects-page-title{font-size:2rem}.projects-grid{gap:1.25rem;grid-template-columns:1fr}.project-card-content{padding:1rem}.project-card-title{font-size:1.1rem}.project-card-description{font-size:.8rem}.project-card-image{height:140px}.tech-tag{font-size:.65rem;padding:.25rem .5rem}.project-button{font-size:.7rem;padding:.4rem .8rem}}.blog-page-header{margin-bottom:3rem}.blog-page-title{color:#fff;font-size:2.5rem;font-weight:700;line-height:1.2;margin-bottom:0}.blog-page-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.blog-card-grid{background:#8b9dc308;border:1px solid #8b9dc31a;border-radius:.75rem;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.blog-card-grid:hover{background:#8b9dc30d;border-color:#8b9dc333;transform:translateY(-4px)}.blog-card-content{display:flex;flex:1 1;flex-direction:column;padding:1.25rem}.blog-card-header{margin-bottom:.6rem}.blog-card-title{color:#fff;font-size:1.25rem;font-weight:700;line-height:1.2;margin-bottom:.5rem;text-align:left}.blog-card-meta{align-items:center;color:#8b9dc3;display:flex;font-size:.85rem;gap:.8rem}.blog-card-date,.blog-card-read-time,.blog-card-separator{color:#8b9dc3}.blog-card-description{color:#8b9dc3;flex:1 1;font-size:.85rem;line-height:1.4;margin-bottom:1rem}.blog-card-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.blog-tag{background:#8b9dc31a;border:1px solid #8b9dc333;border-radius:.4rem;color:#8b9dc3;font-size:.8rem;font-weight:500;padding:.4rem .8rem;transition:all .2s ease}.blog-tag:hover{background:#8b9dc326;border-color:#8b9dc34d}.blog-card-actions{margin-top:auto}.blog-read-more{color:#8b9dc3;font-size:.9rem;font-weight:600;transition:color .2s ease}.blog-card-grid:hover .blog-read-more{color:#fff}.App.light .blog-page-title{color:#1f2937}.App.light .blog-card-grid{background:#6b728008;border-color:#6b72801a}.App.light .blog-card-grid:hover{background:#6b72800d;border-color:#6b728033}.App.light .blog-card-title{color:#1f2937}.App.light .blog-card-date,.App.light .blog-card-description,.App.light .blog-card-meta,.App.light .blog-card-read-time,.App.light .blog-card-separator,.App.light .blog-read-more{color:#6b7280}.App.light .blog-card-grid:hover .blog-read-more{color:#1f2937}.App.light .blog-tag{background:#6b72801a;border-color:#6b728033;color:#6b7280}.App.light .blog-tag:hover{background:#6b728026;border-color:#6b72804d}@media (max-width:768px){.blog-page-title{font-size:2rem}.blog-page-grid{gap:1.5rem;grid-template-columns:1fr}.blog-card-content{padding:1.5rem}.blog-card-title{font-size:1.3rem}.blog-card-description{font-size:.9rem}.blog-tag{font-size:.75rem;padding:.35rem .7rem}}.blog-list-container{margin:0 auto;max-width:800px}.blog-list-header{margin-bottom:2rem}.blog-list-title{color:#fff;font-size:3rem;font-weight:700;line-height:1.2;margin-bottom:1.5rem}.blog-search-container{margin-bottom:1.5rem;position:relative}.blog-search{background:#8b9dc308;border:1px solid #8b9dc31a;border-radius:.5rem;color:#fff;font-size:.9rem;padding:.8rem 1rem;transition:border-color .2s ease;width:100%}.blog-search:focus{border-color:#8b9dc34d;outline:none}.blog-search::placeholder{color:#8b9dc3}.blog-clear-search{background:none;border:none;border-radius:.25rem;color:#8b9dc3;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);transition:color .2s ease}.blog-clear-search:hover{color:#fff}.blog-controls{flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.blog-controls,.blog-drafts{align-items:center;display:flex}.blog-drafts{color:#8b9dc3;font-size:.9rem;gap:.5rem}.blog-checkbox{height:16px;width:16px}.blog-sort{align-items:center;color:#8b9dc3;display:flex;font-size:.9rem;gap:.5rem}.blog-sort-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#8b9dc30d;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%238b9dc3'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;background-size:16px;border:1px solid #8b9dc326;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;outline:none;padding:.6rem 2rem .6rem .8rem;position:relative;transition:all .2s ease;z-index:1}.blog-sort-select:hover{background:#8b9dc314;border-color:#8b9dc340}.blog-sort-select:focus{background:#8b9dc314;border-color:#8b9dc34d;box-shadow:0 0 0 2px #8b9dc31a}.blog-sort-select option{background:#1e293b;border:none;color:#fff;padding:.5rem}.blog-posts-list{display:flex;flex-direction:column;gap:0}.blog-post-item{background:#8b9dc308;border:1px solid #8b9dc314;border-radius:0;border-top:0;cursor:pointer;padding:.5rem 1rem 1rem;transition:all .2s ease}.blog-post-item:first-child{border-top:1px solid #8b9dc314;border-top-left-radius:.75rem;border-top-right-radius:.75rem}.blog-post-item:last-child{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.blog-post-item:hover{background:#8b9dc30f;border-color:#8b9dc326}.blog-post-content{width:100%}.blog-post-header{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.1rem}.blog-post-title{color:#fff;flex:1 1;font-size:1.2rem;font-weight:600;line-height:1.2;margin-left:0;margin-top:0;text-align:left}.blog-post-meta{align-items:flex-end;color:#8b9dc3;display:flex;flex-direction:column;font-size:.8rem;gap:.2rem;white-space:nowrap}.blog-post-date,.blog-post-read-time,.blog-post-views{color:#8b9dc3}.blog-post-description{color:#8b9dc3;font-size:.85rem;line-height:1.4;margin-bottom:.75rem}.blog-post-tags{display:flex;flex-wrap:wrap;gap:.4rem}.blog-post-tag{background:#8b9dc314;border-radius:.25rem;color:#8b9dc3;font-size:.75rem;font-weight:500;padding:.25rem .6rem}.App.light .blog-list-title{color:#1f2937}.App.light .blog-search{background:#6b728008;border-color:#6b72801a;color:#1f2937}.App.light .blog-clear-search,.App.light .blog-drafts,.App.light .blog-search::placeholder,.App.light .blog-sort{color:#6b7280}.App.light .blog-clear-search:hover{color:#1f2937}.App.light .blog-sort-select{background:#6b72800d;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236b7280'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");border-color:#6b728026;color:#1f2937}.App.light .blog-sort-select:hover{background:#6b728014;border-color:#6b728040}.App.light .blog-sort-select:focus{background:#6b728014;border-color:#6b72804d;box-shadow:0 0 0 2px #6b72801a}.App.light .blog-sort-select option{background:#fff;color:#1f2937}.App.light .blog-post-item{background:#6b728008;border-color:#6b728014}.App.light .blog-post-item:first-child{border-top-color:#6b728014}.App.light .blog-post-item:hover{background:#6b72800f;border-color:#6b728026}.App.light .blog-post-title{color:#1f2937}.App.light .blog-post-date,.App.light .blog-post-description,.App.light .blog-post-meta,.App.light .blog-post-read-time,.App.light .blog-post-views{color:#6b7280}.App.light .blog-post-tag{background:#6b728014;color:#6b7280}@media (max-width:768px){.blog-list-title{font-size:2.5rem}.blog-post-header{align-items:flex-start;flex-direction:column;gap:.5rem}.blog-post-meta{align-items:center;flex-direction:row;gap:.8rem}.blog-controls{align-items:stretch;flex-direction:column}.blog-post-item:hover{margin:0;padding:1.5rem 0}}.contact-page-container{box-sizing:border-box;margin:0;max-width:2000px;padding:.2rem 3%;width:100%}.contact-page-header{margin-bottom:3rem;text-align:left}.contact-page-title{color:#fff;font-size:3rem;font-weight:700;line-height:1.2;margin:0}.contact-page-form{width:100%}.contact-form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.contact-form-group,.contact-form-row{margin-bottom:1.5rem}.contact-form-input,.contact-form-textarea{resize:none}.contact-form-input,.contact-form-textarea{background:#8b9dc308;border:1px solid #8b9dc31a;border-radius:.5rem;color:#fff;font-family:inherit;font-size:1rem;padding:1rem;transition:border-color .2s ease;width:100%}.contact-form-input:focus,.contact-form-textarea:focus{border-color:#8b9dc34d;outline:none}.contact-form-input::placeholder,.contact-form-textarea::placeholder{color:#8b9dc3}.contact-form-textarea{min-height:120px}.contact-form-submit{align-items:center;background:#fff;border:none;border-radius:.5rem;color:#000;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;margin-bottom:1rem;padding:1rem 1.5rem;width:100%}.light-theme .contact-form-submit{background:#18181b;color:#fff}.light-theme .contact-form-submit:hover{background:#232326;color:#fff}.dark-theme .contact-form-submit{background:#fff;color:#000}.contact-form-submit:hover,.dark-theme .contact-form-submit:hover{background:#f0f0f0;color:#000}.contact-form-disclaimer{color:#8b9dc3;font-size:.9rem;margin:0;text-align:center}.contact-form-link{color:#8b9dc3;text-decoration:underline;transition:color .2s ease}.contact-form-link:hover{color:#fff}.contact-page-footer{margin-top:2rem;padding:1rem 0}.contact-footer-content{max-width:800px}.contact-footer-content,.contact-page-footer-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:0 auto;padding:0 3%}.contact-page-footer-content{max-width:775px}.contact-footer-text{color:#8b9dc3;font-size:.9rem;margin-left:1rem}.contact-footer-link{color:#8b9dc3;text-decoration:none;transition:color .2s ease}.contact-footer-link:hover{color:#fff}.contact-footer-links{display:flex;gap:1.5rem;margin-right:.7rem}.contact-footer-icon{align-items:center;color:#8b9dc3;display:flex;justify-content:center;transition:color .2s ease}.contact-footer-icon:hover{color:#fff}.App.light .contact-page-title{color:#1f2937}.App.light .contact-form-input,.App.light .contact-form-textarea{background:#6b728008;border-color:#6b72801a;color:#1f2937}.App.light .contact-form-input:focus,.App.light .contact-form-textarea:focus{border-color:#6b72804d}.App.light .contact-footer-icon,.App.light .contact-footer-link,.App.light .contact-footer-text,.App.light .contact-form-disclaimer,.App.light .contact-form-input::placeholder,.App.light .contact-form-link,.App.light .contact-form-textarea::placeholder{color:#6b7280}.App.light .contact-footer-icon:hover,.App.light .contact-footer-link:hover,.App.light .contact-form-link:hover{color:#1f2937}@media (max-width:768px){.contact-page-title{font-size:2.5rem}.contact-form-row{grid-template-columns:1fr}.contact-page-container{padding:1rem}.contact-footer-content,.contact-page-footer-content{flex-direction:column;padding:0 1rem;text-align:center}}
/*# sourceMappingURL=main.a6a19b30.css.map*/