.algo__animation{height:500px;margin:1.5rem 0;text-align:center}.algo__title{margin-bottom:1rem}.algo__animation img{border-radius:8px;box-shadow:0 4px 12px #0000001a;max-width:100%}.algo__table{background:#fff;border-collapse:collapse;border-radius:8px;margin-top:1rem;overflow:hidden;width:100%}.algo__table td,.algo__table th{border-bottom:1px solid #eee;padding:.75rem 1rem;text-align:left}.algo__table th{background:#f5f5f5;font-weight:600}.algo__table tbody tr:nth-child(2n){background-color:#fafafa}.algo__pseudocode{background:#f5f5f5;border-radius:8px;font-family:Fira Code,monospace;line-height:1.5;overflow-x:auto;padding:1rem;white-space:pre-wrap}.code-tabs{display:flex;gap:.6rem;margin-bottom:1rem}.code-tab{background:#f9f9f9;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-weight:500;padding:.5rem;transition:all .3s}.code-tab:hover{background:#eee}.code-tab.active{background:#1abc9c;border-color:#1abc9c;color:#fff}.algo__list-custom{list-style:none;padding-left:0}.algo__list-custom li{margin-bottom:8px;padding-left:25px;position:relative}.algo__list-custom li:before{color:#000;content:"◍";left:0;position:absolute}section{margin-bottom:2rem}section h3{color:#333;font-size:1.2rem;margin-bottom:.75rem}*{box-sizing:border-box;font-family:Poppins,sans-serif;margin:0;padding:0}body,html{background-color:#f9f9f9;color:#222}#root,body,html{display:flex;flex-direction:column;height:100%}.main{background:#f9f9f9;margin:0 auto;max-width:1200px;padding:2rem 3rem;white-space:pre-line;width:100%}.main__grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:2rem}.main a{color:#1abc9c;transition:color .3s ease}.main a:hover{color:#16a085}a{color:inherit}.btn-back,a{text-decoration:none;transition:color .3s}.btn-back{align-items:center;background:none;border:none;color:#222;cursor:pointer;display:inline-flex;font-size:1rem;gap:.5rem;margin-bottom:1rem;padding:.5rem 0}.btn-back:hover{color:#1abc9c}.btn-back i{font-size:1rem}.card{background:#fff;border-radius:12px;box-shadow:0 4px 10px #0000001a;cursor:pointer;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.card:hover{box-shadow:0 12px 24px #0003;transform:translateY(-8px) scale(1.02)}.card__link{color:inherit;display:flex;flex-direction:column;height:100%}.card__image{flex-shrink:0;height:180px;overflow:hidden}.card__image img{height:100%;object-fit:contain;width:100%}.card__content{display:flex;flex:1 1;flex-direction:column;padding:1rem}.card__title{font-size:1.2rem;font-weight:600;line-height:1.3;margin:0;min-height:3rem;transition:color .3s ease}.card:hover .card__title{color:#1abc9c}.card__subtitle{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;color:#555;display:-webkit-box;flex-grow:1;font-size:.9rem;margin-top:.5rem;overflow:hidden;text-overflow:ellipsis}.footer{background-color:#fff;box-shadow:0 -2px 10px #0003;font-size:14px;margin-top:auto;padding:20px 0}.footer__container{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 20px}.footer__left{margin-bottom:10px}.footer__right{display:flex;gap:15px}.footer__icon{align-items:center;background-color:#ffffff1a;border-radius:50%;color:#fff;display:flex;font-size:20px;height:36px;justify-content:center;text-decoration:none;transition:all .3s ease;width:36px}.footer__icon:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-3px) scale(1.1)}.footer__icon.github{background-color:#333;color:#fff}.footer__icon.telegram{background-color:#08c;color:#fff}.footer__icon.email{background-color:#d44638;color:#fff}.header{background-color:#fff;box-shadow:0 2px 5px #0000000d;font-size:1rem;padding:1rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header__container{align-items:center;display:flex;justify-content:space-between}.header__nav a{font-weight:500;margin-left:1.5rem;position:relative;transition:color .3s ease}.header__nav a:after{background:linear-gradient(90deg,#1abc9c,#16a085);border-radius:2px;bottom:-4px;content:"";height:2px;left:0;position:absolute;transition:width .3s ease;width:0}.header__nav a:hover{color:#1abc9c}.header__nav a:hover:after{width:100%}.logo{height:4rem}@media (max-width:768px){.header__container{align-items:center;flex-direction:column}.header__nav{margin-top:.5rem}}@media (max-width:550px){.buttons-controls{grid-gap:8px;display:grid!important;gap:8px;grid-template-columns:repeat(3,1fr);justify-items:center}.buttons-controls .btn{max-width:130px;width:100%}.footer__container{flex-direction:column;text-align:center}.footer__right{margin-top:10px}.algo__visualization{margin-bottom:4rem}}@media (max-width:370px){.buttons-controls{grid-gap:4px;display:grid!important;gap:4px;grid-template-columns:repeat(2,1fr);justify-items:center}.buttons-controls .btn{max-width:100px;width:100%}.algo__visualization{margin-bottom:7rem}.contact,.tech{flex-direction:column}}.notfound{display:flex;flex-direction:column}.notfound__image-wrapper{display:flex;justify-content:center;margin-top:2rem}.notfound__image{border-radius:8px;height:auto;max-width:400px;width:100%}.search{margin:1rem auto 0;max-width:90%;position:relative}.search__input{border:2px solid #ddd;border-radius:8px;display:block;font-size:1rem;margin:0 auto;padding:.5rem 1rem;transition:border-color .3s,box-shadow .3s;width:100%}.search__input:focus{border-color:#1abc9c;box-shadow:0 0 8px #1abc9c33;outline:none}.search__dropdown{background:#fff;border:1px solid #eee;border-radius:8px;box-shadow:0 4px 12px #0000001a;left:50%;margin-top:.5rem;overflow:hidden;position:absolute;top:100%;transform:translateX(-50%);width:100%;z-index:10}.search__item{display:block;padding:.5rem 1rem;transition:background .2s}.search__item:hover{background-color:#1abc9c1a}.search__type{color:#999;font-size:.8rem;margin-left:.5rem}.loader-overlay{align-items:center;background:#fff;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.loader{color:#1abc9c;text-align:center}.spinner{animation:spin 1s linear infinite;border:5px solid #ffffff4d;border-radius:50%;border-top-color:#1abc9c;height:50px;margin:0 auto 10px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animation-player{align-items:center;display:flex;flex-direction:column;gap:1rem;height:400px;position:relative;width:100%}.canvas{background-color:#fff;border:2px solid #ddd;border-radius:12px;box-shadow:0 4px 8px #0000001a;display:block;height:100%;width:100%}.controls{align-items:center;flex-direction:column}.buttons-controls,.controls{display:flex;gap:12px}.btn{align-items:center;background:#2563eb;border:none;border-radius:8px;box-shadow:0 3px 6px #00000026;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:5px;padding:10px;transition:background .2s,transform .1s}.btn:hover:not(:disabled){background:#1e40af;transform:translateY(-1px)}.btn:active:not(:disabled){background:#1d4ed8;transform:translateY(0)}.btn:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed}.btn.restart{background:#1abc9c}.btn.restart:hover:not(:disabled){background:#10bd9a}.controls label{align-items:center;color:#333;display:flex;font-size:14px;gap:5px}.controls input[type=number]{border:1px solid #ccc;border-radius:4px;padding:5px;text-align:center;width:60px}.about__title{margin-bottom:16px}.about{background:#f9f9f9;margin:0 auto;max-width:1200px;padding:1rem 3rem;white-space:pre-line;width:100%}.about__subtitle{margin-top:24px}.about__description,.about__list,.about__subtitle{margin-bottom:12px}.about__list{list-style:none;padding:0}.about__list-item:before{color:#000;content:"◍";display:inline-block;margin-right:8px}.contact,.tech{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.contact__button,.tech__button{align-items:center;border-radius:6px;color:#fff;display:flex;gap:6px;padding:8px 12px;text-decoration:none;transition:transform .2s,box-shadow .2s}.contact__icon,.tech__icon{font-size:18px}.contact__button:hover,.tech__button:hover{box-shadow:0 4px 10px #0003;transform:translateY(-2px)}.tech__button{color:#000}.contact__button--email{background-color:#d44638}.contact__button--email:hover{background-color:#c23321}.contact__button--github{background-color:#333}.contact__button--github:hover{background-color:#555}.tech__button--react{background-color:#61dafb}.tech__button--js{background-color:#f7df1e}.tech__button--css{background-color:#2965f1}.tech__button--html{background-color:#e34c26}.tech__button--canvas{background-color:#8e44ad}.tech__button--git{background-color:#f05032}.tech__button--context{background-color:#2ecc71}.tech__button--responsive{background-color:#3498db}.lazy-load-image-background.blur{filter:blur(15px)}.lazy-load-image-background.blur.lazy-load-image-loaded{filter:blur(0);transition:filter .3s}.lazy-load-image-background.blur>img{opacity:0}.lazy-load-image-background.blur.lazy-load-image-loaded>img{opacity:1;transition:opacity .3s}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:1.5;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
/*# sourceMappingURL=main.6e2655ac.css.map*/