.project-card-link{color:inherit;width:100%;text-decoration:none;display:block}.project-card-link:hover .project-card{border-color:var(--border-hover);transform:translateY(-6px);box-shadow:0 8px 30px #0000004d}.project-card{background-color:var(--background-card);border:1px solid var(--border);cursor:pointer;flex-direction:column;width:100%;transition:all .3s;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--border-hover);transform:translateY(-6px);box-shadow:0 8px 30px #0000004d}.project-card-bookmark{z-index:10;position:absolute;top:.5rem;right:.5rem}.project-card-bookmark .bookmark-btn{background:var(--background);border-radius:50%;box-shadow:0 2px 8px #0003}.project-image{width:100%;height:200px;overflow:hidden}.project-image .image-container,.project-image .project-card-image{border-radius:0;width:100%;height:200px}.project-image img,.project-image .lazy-image{object-fit:cover;border-bottom:1px solid var(--border);width:100%!important;height:100%!important;transition:transform .5s!important}.project-card:hover .project-image img,.project-card-link:hover .project-image img,.project-card:hover .project-image .lazy-image,.project-card-link:hover .project-image .lazy-image,.project-card:hover .project-image .image-container img,.project-card-link:hover .project-image .image-container img{transform:scale(1.08)!important}.project-details{flex-direction:column;flex-grow:1;display:flex}.tech-stack{color:var(--text-secondary);border-bottom:1px solid var(--border);background-color:var(--primary-light);padding:8px 12px;font-size:.9rem}.project-details h3{color:var(--text);margin:0;padding:12px;font-size:1.2rem;transition:color .3s}.project-card:hover .project-details h3{color:var(--primary)}.project-details p{color:var(--text-secondary);text-align:justify;flex-grow:1;margin:0;padding:0 12px 12px;font-size:.9rem;line-height:1.5}.project-links{border-top:1px solid var(--primary-light);justify-content:space-between;gap:10px;padding:2rem .75rem .75rem;display:flex}.project-section-contact-button{color:var(--text);cursor:pointer;border-style:solid;border-width:1px;border-color:var(--border);border-image:initial;background-color:#0000;border-radius:4px;align-items:center;padding:8px 16px;font-size:.9rem;transition:background-color .3s,border-color .3s,color .3s,transform .3s,box-shadow .3s;display:flex}.project-section-contact-button:hover{background-color:var(--primary);border-color:var(--primary);color:var(--button-text);box-shadow:0 4px 15px rgba(var(--primary-rgb), .3);transform:translateY(-2px)}.live-link,.cached-link,.details-link{text-decoration:none}.details-btn{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.details-btn:hover{background:linear-gradient(135deg, var(--primary), var(--secondary));color:var(--button-text)}
.footer-outer{transition:border-color .3s;position:relative;border-top:2px solid var(--border)!important;padding:40px 7rem 15px!important}.footer-banner-content,.footer-banner-message,.footer-copyright{transition:opacity .8s,transform .8s}.footer-banner-content{transform:translate(-100px)}.footer-banner-message{transform:translate(100px)}.footer-copyright{transform:translateY(20px)}.footer-banner{color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;transition:color .3s;display:flex}.footer-section-line{background-color:var(--primary);width:500px;height:1.5px;margin-left:10px;transition:background-color .3s}.footer-banner-content{text-align:start;flex-direction:column;align-items:flex-start;width:50%;display:flex}.footer-highlight{color:var(--primary-hover);transition:color .3s}.footer-banner p{color:var(--text-secondary);text-align:start;margin-bottom:1.75rem;font-size:1.125rem;transition:color .3s}.footer-each-icon{color:var(--text-secondary);margin-right:1rem;font-size:1.25rem;transition:color .3s ease-in-out}.footer-each-icon:hover{color:var(--primary)}.footer-contacts-outer{gap:.5rem;display:flex}.footer-contacts-outer a{color:var(--text-secondary);font-size:1rem;text-decoration:none;transition:color .3s}.footer-contacts-outer a:hover{color:var(--primary)}.footer-banner-content-inner{justify-content:center;align-items:center;font-size:1rem;display:flex}.footer-banner-content-inner p{margin-right:1.5rem;font-size:1.5rem;font-weight:600;transition:color .3s ease-in-out}.footer-banner-content-inner p:hover{color:var(--text)}.footer-banner-content-inner a{text-decoration:none}.footer-copyright p{text-align:center;color:var(--text-secondary);-webkit-user-select:none;user-select:none;margin-top:.5rem;font-weight:500;transition:color .3s}@media (max-width:768px){.footer-banner-content-inner{flex-direction:column}.footer-banner-content{align-items:center;width:100%}.footer-banner{flex-direction:column;padding:1rem .25rem}.footer-outer{padding:1rem .25rem}.footer-banner-content,.footer-banner-message{max-width:100%}.footer-banner-message{width:100%;padding:0}.footer-section-line{display:none}.footer-banner-content-inner p{font-size:1.25rem}}
.tooltip-wrapper{display:inline-flex;position:relative}.tooltip-text{visibility:hidden;opacity:0;background:var(--background-secondary);border:1px solid var(--border);color:var(--text);white-space:nowrap;z-index:9999;pointer-events:none;border-radius:6px;padding:6px 12px;font-size:.75rem;font-weight:500;transition:opacity .2s,visibility .2s,transform .2s;position:absolute;box-shadow:0 4px 12px #00000026}.tooltip-text:before{content:"";border:6px solid #0000;position:absolute}.tooltip-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-4px)}.tooltip-bottom:before{border-bottom-color:var(--border);bottom:100%;left:50%;transform:translate(-50%)}.tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.tooltip-top:before{border-top-color:var(--border);top:100%;left:50%;transform:translate(-50%)}.tooltip-left{top:50%;right:calc(100% + 8px);transform:translateY(-50%)translate(4px)}.tooltip-left:before{border-left-color:var(--border);top:50%;left:100%;transform:translateY(-50%)}.tooltip-right{top:50%;left:calc(100% + 8px);transform:translateY(-50%)translate(-4px)}.tooltip-right:before{border-right-color:var(--border);top:50%;right:100%;transform:translateY(-50%)}.tooltip-wrapper:hover .tooltip-text{visibility:visible;opacity:1}.tooltip-wrapper:hover .tooltip-bottom,.tooltip-wrapper:hover .tooltip-top{transform:translate(-50%)translateY(0)}.tooltip-wrapper:hover .tooltip-left,.tooltip-wrapper:hover .tooltip-right{transform:translateY(-50%)translate(0)}
.image-container{background:var(--background-secondary);border-radius:0;width:100%;height:100%;position:relative;overflow:hidden}.image-skeleton{background:linear-gradient(135deg, var(--background-hover) 0%, var(--background-secondary) 50%, var(--background-hover) 100%);z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.skeleton-shimmer{background:linear-gradient(90deg,#0000 0%,#ffffff14 50%,#0000 100%);width:100%;height:100%;animation:1.5s infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{0%{left:-100%}to{left:100%}}.lazy-image-wrapper,.lazy-image-wrapper span{width:100%!important;height:100%!important;display:block!important}.lazy-image{object-fit:cover;opacity:0;transition:opacity .3s,transform .5s;width:100%!important;height:100%!important}.lazy-image.loaded{opacity:1}.blur-placeholder{background-color:#abb2bf;width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.error-placeholder{color:var(--text);background-color:var(--background-hover);justify-content:center;align-items:center;height:100%;font-size:.9rem;display:flex}
.whatsapp-icon{background:linear-gradient(135deg, var(--primary), var(--secondary));cursor:pointer;z-index:100;width:55px;height:55px;box-shadow:0 2px 8px rgba(var(--primary-rgb), .25), 0 6px 20px #0000002e;border:none;border-radius:50%;justify-content:center;align-items:center;padding:12px;transition:transform .2s,box-shadow .2s,background .3s;display:flex;position:fixed;bottom:20px;right:20px}.whatsapp-icon:hover{box-shadow:0 4px 12px rgba(var(--primary-rgb), .35), 0 8px 24px #00000038;transform:scale(1.1)}.whatsapp-icon-style{font-size:1.75rem;transition:color .3s;color:var(--button-text)!important}@media (max-width:768px){.whatsapp-icon{width:45px;height:45px;padding:10px;bottom:20px;right:15px}.whatsapp-icon-style{font-size:1.25rem}}
.carousel .control-arrow,.carousel.carousel-slider .control-arrow{-o-transition:all .25s ease-in;opacity:.4;filter:alpha(opacity=40);z-index:2;cursor:pointer;background:0 0;border:0;font-size:32px;transition:all .25s ease-in;position:absolute;top:20px}.carousel .control-arrow:focus,.carousel .control-arrow:hover{opacity:1;filter:alpha(opacity=100)}.carousel .control-arrow:before,.carousel.carousel-slider .control-arrow:before{content:"";border-top:8px solid #0000;border-bottom:8px solid #0000;margin:0 5px;display:inline-block}.carousel .control-disabled.control-arrow{opacity:0;filter:alpha(opacity=0);cursor:inherit;display:none}.carousel .control-prev.control-arrow{left:0}.carousel .control-prev.control-arrow:before{border-right:8px solid #fff}.carousel .control-next.control-arrow{right:0}.carousel .control-next.control-arrow:before{border-left:8px solid #fff}.carousel-root{outline:none}.carousel{width:100%;position:relative}.carousel *{box-sizing:border-box}.carousel img{pointer-events:none;width:100%;display:inline-block}.carousel .carousel{position:relative}.carousel .control-arrow{background:0 0;border:0;outline:0;margin-top:-13px;font-size:18px;top:50%}.carousel .thumbs-wrapper{margin:20px;overflow:hidden}.carousel .thumbs{-o-transition:all .15s ease-in;white-space:nowrap;list-style:none;transition:all .15s ease-in;position:relative;transform:translate(0,0)}.carousel .thumb{-o-transition:border .15s ease-in;white-space:nowrap;border:3px solid #fff;margin-right:6px;padding:2px;transition:border .15s ease-in;display:inline-block;overflow:hidden}.carousel .thumb:focus{border:3px solid #ccc;outline:none}.carousel .thumb.selected,.carousel .thumb:hover{border:3px solid #333}.carousel .thumb img{vertical-align:top}.carousel.carousel-slider{margin:0;position:relative;overflow:hidden}.carousel.carousel-slider .control-arrow{color:#fff;margin-top:0;padding:5px;font-size:26px;top:0;bottom:0}.carousel.carousel-slider .control-arrow:hover{background:#0003}.carousel .slider-wrapper{-o-transition:height .15s ease-in;width:100%;margin:auto;transition:height .15s ease-in;overflow:hidden}.carousel .slider-wrapper.axis-horizontal .slider{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:flex}.carousel .slider-wrapper.axis-horizontal .slider .slide{flex-flow:column}.carousel .slider-wrapper.axis-vertical{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:flex}.carousel .slider-wrapper.axis-vertical .slider{flex-direction:column}.carousel .slider{width:100%;margin:0;padding:0;list-style:none;position:relative}.carousel .slider.animated{-o-transition:all .35s ease-in-out;transition:all .35s ease-in-out}.carousel .slide{text-align:center;min-width:100%;margin:0;position:relative}.carousel .slide img{vertical-align:top;border:0;width:100%}.carousel .slide iframe{border:0;width:calc(100% - 80px);margin:0 40px 40px;display:inline-block}.carousel .slide .legend{-o-transition:all .5s ease-in-out;color:#fff;text-align:center;opacity:.25;transition:all .5s ease-in-out;-o-transition:opacity .35s ease-in-out;background:#000;border-radius:10px;width:90%;margin-left:-45%;padding:10px;font-size:12px;transition:opacity .35s ease-in-out;position:absolute;bottom:40px;left:50%}.carousel .control-dots{text-align:center;z-index:1;width:100%;margin:10px 0;padding:0;position:absolute;bottom:0}@media (min-width:960px){.carousel .control-dots{bottom:0}}.carousel .control-dots .dot{-o-transition:opacity .25s ease-in;opacity:.3;filter:alpha(opacity=30);cursor:pointer;background:#fff;border-radius:50%;width:8px;height:8px;margin:0 8px;transition:opacity .25s ease-in;display:inline-block;box-shadow:1px 1px 2px #000000e6}.carousel .control-dots .dot.selected,.carousel .control-dots .dot:hover{opacity:1;filter:alpha(opacity=100)}.carousel .carousel-status{text-shadow:1px 1px 1px #000000e6;color:#fff;padding:5px;font-size:10px;position:absolute;top:0;right:0}.carousel:hover .slide .legend{opacity:1}
.carousel-arrow{color:#fff;cursor:pointer;z-index:1001;background:0 0;border:none;font-size:2rem;position:absolute;top:50%;transform:translateY(-50%)}.carousel-arrow-left{left:10px}.carousel-arrow-right{right:10px}
.reading-progress-container{background:var(--background-secondary);z-index:9999;height:3px;position:fixed;top:0;left:0;right:0}.reading-progress-bar{background:var(--primary);transform-origin:0;will-change:transform;height:100%}
.scroll-to-top-btn{background:linear-gradient(135deg, var(--primary), var(--secondary));cursor:pointer;z-index:100;width:55px;height:55px;box-shadow:0 2px 8px rgba(var(--primary-rgb), .25);border:none;border-radius:50%;justify-content:center;align-items:center;padding:12px;transition:transform .2s,box-shadow .2s,background .3s;display:flex;position:fixed;bottom:89px;right:20px}.scroll-to-top-btn:hover{box-shadow:0 4px 12px rgba(var(--primary-rgb), .35);transform:scale(1.1)}.scroll-top-icon{color:var(--button-text,#fff);font-size:24px}@media (max-width:768px){.scroll-to-top-btn{width:45px;height:45px;padding:10px;bottom:79px;right:15px}.scroll-top-icon{font-size:20px}}
.search-bar-container{z-index:100;width:100%;max-width:320px;position:relative}.search-input-wrapper{background:var(--background);border:1px solid var(--border-hover);border-radius:6px;align-items:center;gap:.6rem;height:40px;padding:.6rem 1rem;transition:all .3s;display:flex}.search-input-wrapper:focus-within{border-color:var(--border-hover);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .1)}.search-icon{color:var(--text-secondary);flex-shrink:0;font-size:1rem;line-height:1}.search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;height:100%;font-size:.9rem}.search-input::placeholder{color:var(--text-secondary);opacity:.6}.search-clear-btn{background:var(--border);width:20px;min-width:20px;height:20px;min-height:20px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .3s;display:flex}.search-clear-btn:hover{background:var(--primary-color);color:#fff}.search-results{background:var(--background);z-index:1001;border-radius:6px;width:100%;max-height:350px;margin:0;padding:.5rem;list-style:none;position:absolute;top:calc(100% + 10px);left:0;overflow:hidden auto;box-shadow:0 15px 50px #0006}.search-result-item{cursor:pointer;border-radius:4px;align-items:center;padding:.75rem 1rem;transition:all .3s;display:flex}.search-result-item:hover,.search-result-item.selected{background:var(--primary)}.search-result-item:hover .search-result-title,.search-result-item.selected .search-result-title{color:var(--button-text)}.search-result-item:hover .search-result-category,.search-result-item.selected .search-result-category{color:var(--button-text);background:#00000026}.search-result-content{flex-direction:column;align-items:flex-start;gap:.35rem;width:100%;display:flex}.search-result-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;width:100%;max-width:100%;font-size:.9rem;font-weight:500;transition:color .3s;overflow:hidden}.search-result-category{background:rgba(var(--primary-rgb), .15);color:var(--primary);text-transform:uppercase;letter-spacing:.03em;border-radius:4px;flex-shrink:0;padding:.15rem .45rem;font-size:.65rem;font-weight:600;transition:all .3s}.search-highlight{background:rgba(var(--primary-rgb), .3);color:var(--primary-color);border-radius:2px;padding:0 2px}.search-no-results{background:var(--background);border:1px solid var(--border-hover);color:var(--text-secondary);text-align:center;z-index:1001;border-radius:6px;padding:1rem;font-size:.9rem;position:absolute;top:calc(100% + 10px);left:0;right:0;box-shadow:0 15px 50px #0006}@media (max-width:900px){.search-bar-container{max-width:280px}.search-results{width:100%}}@media (max-width:768px){.search-bar-container{order:3;max-width:100%}.search-results{width:100%;left:0;right:0}.search-input-wrapper{padding:.55rem .85rem}.search-input{font-size:.85rem}}
.skill-section{width:100%}.skill-container{margin:0 auto}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.skill-box{border:1px solid #abb2bf;padding:0;transition:border-color .2s}.skill-box h3{color:#fff;border-bottom:1px solid #abb2bf;margin:0;padding:8px;font-size:1rem;font-weight:500;transition:border-color .2s}.skill-box p{color:#abb2bf;margin:0;padding:8px;font-size:.9rem;line-height:1.8}@media (max-width:768px){.skill-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.skill-grid{grid-template-columns:1fr}}
.skills-radar-container{background:var(--background-card);border:1px solid var(--border);grid-template-columns:1fr 1fr;align-items:center;gap:2rem;margin-top:2rem;padding:2rem;display:grid}.radar-left{flex-direction:column;display:flex}.radar-header{text-align:left;margin-bottom:1.5rem}.radar-header h3{color:var(--text);margin:0 0 .5rem;font-size:1.5rem}.radar-header p{color:var(--text-secondary);margin:0;font-size:.95rem}.radar-categories{flex-wrap:wrap;justify-content:flex-start;gap:.5rem;margin-bottom:1.5rem;display:flex}.radar-category-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:20px;padding:8px 20px;font-size:.9rem;font-weight:500;transition:all .3s}.radar-category-btn:hover{border-color:var(--category-color);color:var(--category-color)}.radar-category-btn.active{background:var(--category-color);border-color:var(--category-color);color:#fff}.radar-chart-wrapper{width:100%;min-height:350px}.radar-tooltip{background:var(--background);border:1px solid var(--border);border-radius:8px;padding:8px 12px;box-shadow:0 4px 12px #0003}.radar-tooltip-label{color:var(--text);margin:0 0 4px;font-size:.9rem;font-weight:600}.radar-tooltip-value{color:var(--primary);margin:0;font-size:1.1rem;font-weight:700}.radar-legend{flex-direction:column;gap:.75rem;display:flex}.radar-legend-item{align-items:center;gap:.75rem;display:flex}.legend-name{color:var(--text-secondary);min-width:85px;font-size:.85rem}.legend-bar-container{background:var(--background-secondary);border-radius:3px;flex:1;height:6px;overflow:hidden}.legend-bar{border-radius:3px;height:100%;transition:width .8s}.legend-value{color:var(--text);text-align:right;min-width:40px;font-size:.85rem;font-weight:600}@media (max-width:900px){.skills-radar-container{grid-template-columns:1fr;gap:1.5rem}.radar-header{text-align:center}.radar-categories{justify-content:center}.radar-chart-wrapper{min-height:300px}}@media (max-width:768px){.skills-radar-container{padding:1.5rem}.radar-header h3{font-size:1.25rem}.radar-categories{gap:.5rem}.radar-category-btn{padding:6px 14px;font-size:.8rem}.radar-chart-wrapper{min-height:280px}.radar-legend{gap:.6rem}.legend-name{min-width:70px;font-size:.8rem}.legend-value{min-width:35px;font-size:.8rem}}@media (max-width:480px){.skills-radar-container{margin-top:1.5rem;padding:1rem}.radar-chart-wrapper{min-height:250px}.radar-category-btn{padding:5px 10px;font-size:.75rem}.legend-name{min-width:60px}}.radar-category-btn{padding:5px 12px;font-size:.75rem}
.social-links{gap:15px;display:flex}.social-links--vertical{flex-direction:column;align-items:center}.social-links--horizontal{flex-direction:row;align-items:center}.social-link{color:#abb2bf;align-items:center;gap:8px;text-decoration:none;transition:color .2s;display:flex}.social-link:hover{color:#fff}.social-icon{font-size:1.25rem;transition:transform .2s}.social-link:hover .social-icon{transform:scale(1.1)}.social-label{font-size:.9rem}
.tech-badge-list{flex-wrap:wrap;gap:8px;display:flex}.tech-badge{background:rgba(var(--primary-color-rgb,182, 127, 226), .1);border:1px solid rgba(var(--primary-color-rgb,182, 127, 226), .3);color:var(--primary-color);border-radius:20px;padding:6px 12px;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-block}.tech-badge:hover{background:rgba(var(--primary-color-rgb,182, 127, 226), .2);border-color:var(--primary-color)}
.tech-stack-filter{width:100%;margin-bottom:1.5rem;position:relative}.selected-techs-container{background:var(--background-secondary);border:1px solid var(--border);border-radius:10px;margin-bottom:1rem;padding:1rem;overflow:hidden}.selected-techs-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.filter-label{color:var(--text);align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;display:flex}.filter-label .filter-icon{color:var(--primary);font-size:1.1rem}.clear-filters-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:.85rem;transition:all .3s}.clear-filters-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.selected-techs-list{flex-wrap:wrap;gap:.5rem;display:flex}.selected-tech-tag{background:linear-gradient(135deg, var(--primary), var(--secondary));color:var(--button-text);cursor:pointer;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:6px 12px;font-size:.85rem;transition:all .3s;display:flex}.selected-tech-tag:hover{box-shadow:0 4px 12px rgba(var(--primary-rgb), .3);transform:translateY(-2px)}.selected-tech-tag .remove-icon{opacity:.9;font-size:1rem}.tech-filter-toggle-btn{background:var(--background-secondary);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.75rem;padding:12px 20px;font-size:.95rem;font-weight:500;transition:all .3s;display:flex}.tech-filter-toggle-btn:hover{border-color:var(--primary);background:var(--background-hover);color:var(--primary)}.tech-filter-toggle-btn .toggle-icon{color:var(--primary);font-size:1.2rem}.tech-filter-toggle-btn .badge{background:var(--primary-light);color:var(--primary);border-radius:10px;margin-left:auto;padding:2px 8px;font-size:.75rem;font-weight:600}.add-more-tech-btn{border:1px dashed var(--border);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:.75rem;padding:12px 20px;font-size:.9rem;font-weight:500;transition:all .3s;display:flex}.add-more-tech-btn:hover{border-color:var(--primary);background:var(--background-hover);color:var(--primary);border-style:solid}.add-more-tech-btn .toggle-icon{color:var(--primary);font-size:1.1rem}.tech-filter-panel{background:var(--background-card);border:1px solid var(--border);z-index:100;border-radius:12px;max-height:400px;padding:1.25rem;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 20px 50px #0006}.tech-filter-panel::-webkit-scrollbar{width:6px}.tech-filter-panel::-webkit-scrollbar-track{background:var(--background-secondary);border-radius:3px}.tech-filter-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.tech-filter-panel::-webkit-scrollbar-thumb:hover{background:var(--primary)}.tech-filter-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.tech-filter-panel-header h3{color:var(--text);margin:0;font-size:1.1rem;font-weight:600}.close-panel-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;font-size:1.5rem;transition:all .3s;display:flex}.close-panel-btn:hover{color:var(--primary);background:var(--primary-light)}.tech-filter-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem;display:grid}.tech-filter-item{background:var(--background-secondary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-align:center;border-radius:8px;padding:8px 12px;font-size:.85rem;transition:all .3s}.tech-filter-item:hover{border-color:var(--primary);color:var(--text);background:var(--background-hover)}.tech-filter-item.active{background:linear-gradient(135deg, var(--primary), var(--secondary));color:var(--button-text);border-color:#0000;font-weight:500}@media (max-width:768px){.tech-filter-panel{max-height:300px}.tech-filter-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.4rem}.tech-filter-item{padding:6px 10px;font-size:.8rem}.selected-tech-tag{padding:5px 10px;font-size:.8rem}}
.toast-notification{z-index:1000;background:#1e1e2e;border-radius:12px;min-width:300px;max-width:400px;position:fixed;top:20px;right:20px;overflow:hidden;box-shadow:0 10px 40px #0006}.toast-success{border:1px solid #4ade80}.toast-error{border:1px solid #f87171}.toast-content{align-items:center;gap:12px;padding:16px 40px 16px 16px;display:flex}.toast-icon{flex-shrink:0;font-size:24px}.toast-success .toast-icon{color:#4ade80}.toast-error .toast-icon{color:#f87171}.toast-text{color:#fff;font-size:.95rem;font-weight:500}.toast-close-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.toast-close-btn:hover{color:#fff;background:#ffffff1a}.toast-progress{height:3px;transition:width .1s linear}.progress-success{background:#4ade80}.progress-error{background:#f87171}@media (max-width:480px){.toast-notification{min-width:auto;left:20px;right:20px}}
.webshare-button{color:var(--text);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:.5rem;padding:12px 24px;font-size:.95rem;font-weight:500;transition:all .3s;display:inline-flex}.webshare-button:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);transform:translateY(-2px)}.webshare-icon{font-size:1.2rem;transition:transform .3s}.webshare-button:hover .webshare-icon{transform:rotate(15deg)}.webshare-btn-small{padding:6px 14px;font-size:.85rem}.webshare-btn-small .webshare-icon{font-size:1rem}.webshare-btn-large{padding:12px 24px;font-size:1.05rem}.webshare-btn-large .webshare-icon{font-size:1.4rem}@media (max-width:768px){.webshare-button span{display:none}.webshare-button{padding:10px}.webshare-icon{font-size:1.3rem}}
.particles-navbar{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-2px,-2px)}40%{transform:translate(2px,2px)}60%{transform:translate(-2px,2px)}80%{transform:translate(2px,-2px)}to{transform:translate(0)}}@keyframes color-change{0%,to{color:var(--text)}50%{color:var(--primary)}}@keyframes glitch-lines{0%,to{clip:rect(0, 900px, 0, 0)}20%{clip:rect(2px, 900px, 10px, 0)}40%{clip:rect(8px, 900px, 15px, 0)}60%{clip:rect(4px, 900px, 20px, 0)}80%{clip:rect(6px, 900px, 25px, 0)}}.navbar-left .navbar-logo{text-transform:uppercase;color:var(--text);font-family:Fira Code,monospace;font-size:2.5rem;animation:1s ease-in-out infinite alternate glitch,2s ease-in-out infinite alternate color-change;position:relative;overflow:hidden}.navbar-left .navbar-logo:before,.navbar-left .navbar-logo:after{content:"Hammas";background:inherit;width:100%;height:100%;color:inherit;position:absolute;top:0;left:0;overflow:hidden}.navbar-left .navbar-logo:before{text-shadow:-2px 0 var(--primary-hover);animation:1.5s linear infinite alternate-reverse glitch-lines;left:2px}.navbar-left .navbar-logo:after{text-shadow:-2px 0 var(--text);animation:1.2s linear infinite alternate-reverse glitch-lines;left:-2px}.navbar{background:var(--background);z-index:999;align-items:center;height:70px;padding:15px 30px;transition:background-color .3s;display:flex;position:sticky;top:0}.navbar-main{justify-content:space-between;align-items:center;width:100%;padding:.25rem 1.5rem;display:flex}.navbar-right .navbar-menu{gap:15px;margin:0;padding:0;list-style:none;display:flex}.navbar-right .navbar-menu li{padding:0 .5rem;font-family:Fira Code,monospace;font-size:1rem}.navbar-right .navbar-menu li a{color:var(--text-muted);text-decoration:none;transition:color .3s ease-in-out}.navbar-right .navbar-menu li a:hover{color:var(--primary-hover)}.navbar-right .navbar-menu li a.active-link{color:var(--primary)}.navbar-right{flex-direction:row;align-items:center;gap:0;display:flex}.icons-main{flex-direction:column;justify-content:center;align-items:center;display:flex;overflow:visible}.icons-main div{flex-direction:columns;display:flex}.navbar-icons{flex-direction:column;overflow:visible}.navbar-icons a{margin:.25rem 0;font-size:1.5rem}.navbar-each-icon{color:var(--text-muted);transition:color .3s ease-in-out;animation:1s ease-in-out iconBounce}.navbar-each-icon:hover{color:var(--primary)}.line{background-color:var(--text-muted);width:1.5px;height:450px;margin-bottom:.5rem;animation:1s cubic-bezier(.4,0,.2,1) forwards lineAnimation}.menu-toggle{cursor:pointer;display:none}.icons-mobile{display:none}@media (max-width:768px){.navbar{flex-direction:column;align-items:flex-start;height:60px;padding:10px;transition:height .3s ease-in-out;overflow:hidden}.navbar-main{flex-direction:column;align-items:flex-start;width:100%;padding:0}.navbar-right{opacity:0;flex-direction:column;align-items:flex-start;width:100%;transition:opacity .3s ease-in-out,transform .3s ease-in-out;display:none;transform:translateY(-20px)}.navbar-right.open{opacity:1;padding:1rem;display:flex;transform:translateY(0)}.navbar-right.open .navbar-menu{flex-direction:column;align-items:flex-start;gap:10px;width:100%}.navbar-right .navbar-menu li{padding:0}.navbar-right.open li a{color:#8b8b8b;width:100%;padding:10px 0;font-size:1.25rem;display:block}.menu-toggle{display:block;position:absolute;top:20px;right:20px}.icons-main{flex-direction:row;justify-content:flex-start;gap:10px;margin-top:10px;display:none}.icons-mobile{justify-content:center;align-items:center;width:100%;display:flex}.icons-mobile a{padding:.5rem;font-size:2rem}.navbar.open{height:100vh}.navbar.open .navbar-right{-webkit-overflow-scrolling:touch;overflow-y:auto}.navbar-each-icon{animation:none}body.menu-open{overflow:hidden}}@keyframes lineAnimation{0%{height:0}25%{height:500px}50%{height:420px}75%{height:480px}to{height:450px}}@keyframes iconBounce{0%,to{transform:translateY(0)}25%{transform:translateY(50px)}50%{transform:translateY(0)}75%{transform:translateY(20px)}}.navbar-bookmark-link{background:var(--background-secondary);border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-left:.5rem;padding:8px 14px;text-decoration:none;transition:all .3s;display:flex}.navbar-bookmark-link:hover{border-color:var(--primary);background:var(--background-hover)}.navbar-bookmark-link .bookmark-icon{color:var(--primary);font-size:1.1rem}.navbar-bookmark-link .bookmark-text{color:var(--text-secondary);font-size:.9rem;transition:color .3s}.navbar-bookmark-link-mobile{display:none}.theme-selector{margin-left:.5rem;position:relative}.theme-mobile{display:none}.theme-toggle-btn{background:var(--background-secondary);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;transition:all .3s;display:flex}.theme-toggle-btn:hover{border-color:var(--primary);background:var(--background-hover)}.theme-icon{color:var(--primary);font-size:1.25rem;transition:color .3s,transform .3s}.theme-toggle-btn:hover .theme-icon{transform:rotate(15deg)}.theme-color-indicator{border:2px solid #ffffff4d;border-radius:50%;width:18px;height:18px;transition:transform .3s,box-shadow .3s}.theme-toggle-btn:hover .theme-color-indicator{transform:scale(1.1);box-shadow:0 0 8px}.theme-btn-text{color:var(--text-secondary);font-size:.85rem;font-weight:500;transition:color .3s}.theme-toggle-btn:hover .theme-btn-text{color:var(--text)}.theme-panel{background:var(--background-card);border:1px solid var(--border);z-index:1000;border-radius:16px;min-width:280px;max-height:400px;padding:0;position:absolute;top:calc(100% + 12px);right:0;overflow:hidden;box-shadow:0 20px 50px #0006}.theme-panel-header{background:linear-gradient(135deg, var(--primary-light), transparent);border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:10px;padding:1rem 1.25rem;font-size:.95rem;font-weight:600;display:flex}.theme-count{color:var(--primary);background:var(--primary-light);border-radius:12px;margin-left:auto;padding:2px 8px;font-size:.75rem;font-weight:500}.theme-panel-icon{color:var(--primary);font-size:1.25rem}.theme-colors{flex-direction:column;max-height:320px;padding:.5rem;display:flex;overflow-y:auto}.theme-colors::-webkit-scrollbar{width:6px}.theme-colors::-webkit-scrollbar-track{background:var(--background-secondary)}.theme-colors::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.theme-colors::-webkit-scrollbar-thumb:hover{background:var(--primary)}.theme-color-btn{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:all .2s;display:flex}.theme-color-btn:hover{background:var(--background-hover)}.theme-color-btn.active{background:var(--primary-light)}.theme-color-preview{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 2px 8px #0003}.theme-color-btn:hover .theme-color-preview{transform:scale(1.1);box-shadow:0 4px 12px #0000004d}.theme-color-name{color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:color .2s}.theme-color-btn:hover .theme-color-name{color:var(--text)}.theme-color-btn.active .theme-color-name{color:var(--primary);font-weight:600}.theme-check-icon{color:#fff;filter:drop-shadow(0 1px 2px #00000080);font-size:.75rem}.theme-color-btn[title=Dark] .theme-check-icon,.theme-color-btn[title=Slate] .theme-check-icon{color:#1a1a1a;filter:none}@media (max-width:768px){.theme-selector.theme-desktop,.navbar-bookmark-link{display:none}.navbar-bookmark-link-mobile{background:var(--background-secondary);border:1px solid var(--border);border-radius:10px;justify-content:flex-start;align-items:center;gap:10px;width:100%;margin:1rem 0 0;padding:12px 16px;text-decoration:none;transition:all .3s;display:flex}.navbar-bookmark-link-mobile:hover{border-color:var(--primary);background:var(--background-hover)}.navbar-bookmark-link-mobile .bookmark-icon{color:var(--primary);font-size:1.1rem}.navbar-bookmark-link-mobile .bookmark-text{color:var(--text);font-size:1rem;font-weight:500;transition:color .3s}.theme-accordion.theme-mobile{width:100%;margin:.5rem 0 1rem;display:block}}.theme-accordion{width:100%;display:none}.theme-accordion-header{background:var(--background-secondary);border:1px solid var(--border);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;transition:all .3s;display:flex}.theme-accordion-header:hover{border-color:var(--primary);background:var(--background-hover)}.theme-accordion-left{align-items:center;gap:10px;display:flex}.theme-accordion-title{color:var(--text);font-size:1rem;font-weight:500}.theme-current-name{color:var(--primary);font-size:.85rem;font-weight:500}.theme-accordion-arrow{color:var(--text-secondary);font-size:.75rem;transition:transform .3s}.theme-accordion-arrow.open{transform:rotate(180deg)}.theme-accordion-content{background:var(--background-secondary);border:1px solid var(--border);border-radius:10px;margin-top:8px;overflow:hidden}.theme-accordion-grid{-webkit-overflow-scrolling:touch;grid-template-columns:repeat(3,1fr);gap:8px;max-height:200px;padding:12px;display:grid;overflow-y:auto}.theme-accordion-grid::-webkit-scrollbar{width:4px}.theme-accordion-grid::-webkit-scrollbar-track{background:var(--background);border-radius:4px}.theme-accordion-grid::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px}.theme-accordion-item{background:var(--background);cursor:pointer;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;transition:all .2s;display:flex}.theme-accordion-item:hover{border-color:var(--border);background:var(--background-hover)}.theme-accordion-item.active{border-color:var(--primary);background:var(--primary-light)}.theme-accordion-item .theme-color-preview{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex;box-shadow:0 2px 6px #0003}.theme-item-name{color:var(--text-secondary);text-align:center;font-size:.7rem;font-weight:500}.theme-accordion-item.active .theme-item-name{color:var(--primary)}@keyframes slideIn{0%{opacity:0;transform:translate(50%)translateY(-15px)scale(.95)}to{opacity:1;transform:translate(50%)translateY(0)scale(1)}}
