*{box-sizing:border-box;margin:0;padding:0}@font-face{font-family:Outfit;src:local(Outfit),url(/fonts/Outfit-VariableFont_wght.ttf)format("truetype");font-display:swap}@font-face{font-family:Coolvetica;src:local(Coolvetica),url(/fonts/coolvetica-rg.ttf)format("truetype");font-display:swap}@font-face{font-family:Lemon Milk;src:local(Lemon Milk),url(/fonts/LEMONMILK-Regular.otf)format("opentype");font-display:swap}:root{--bg-color:#f5f5fa;--fg-dark:#d3d3d3;--fg-color:#271b46;--accent-violet:#4217c2;--accent-violet-dark:#301091;--accent-orange:#f97779;--accent-orange-dark:#f75254;--primary-original:#c4a6ed;--primary-color:#d3bff1;--secondary-color:#5a4180;--secondary-dark:#664992;--violet-light:#eeeaf9;--orange-light:#f5dfe2;--font-base:"Outfit", sans-serif;--font-header:"Coolvetica", sans-serif;--font-special:"Lemon Milk", sans-serif;--size-normal:18px;--size-lg:24px;--size-sm:14px;--margin-xs:5px;--margin-sm:10px;--margin-md:15px;--margin-lg:20px;--margin-xl:32px;--margin-2xl:50px;--radius-max:9999px;--radius-xl:30px;--radius-lg:20px;--radius-md:15px;--radius-sm:10px;--radius-xs:3px}.textcenter{text-align:center}.center{justify-content:center;align-items:center;width:100%;display:flex}.hidden{display:none!important}body{background-color:var(--bg-color);color:var(--fg-color);font-family:var(--font-base)}p,a,ul,button,body{font-size:var(--size-normal);font-family:var(--font-base);overflow-wrap:break-word}h1,h2,h3,h4{font-family:var(--font-header);letter-spacing:1.6px}h1{color:var(--accent-orange);margin-bottom:var(--margin-md);font-size:1.5rem;font-weight:700}h2{margin-bottom:var(--margin-lg);font-size:190%}h3{margin-top:var(--margin-sm);font-size:130%}h4{font-size:120%}hr{margin:var(--margin-2xl) 0}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--violet-light);outline-offset:2px}button,a,input,textarea,select{-webkit-tap-highlight-color:#eae5fa80}header{background-color:var(--secondary-color);color:var(--bg-color)}header a{color:var(--bg-color);border-radius:var(--radius-xs);text-decoration:none}ul span{word-spacing:normal}footer{background-color:var(--secondary-color);color:var(--bg-color);flex-direction:column;align-items:stretch;display:flex}input{border:1px solid #1f1b464d;width:min(100%,350px);padding:.3rem;font-family:Roboto,sans-serif}.intro{letter-spacing:3px;margin-bottom:var(--margin-xl);font-size:4.5rem;line-height:1em}.hero{background-color:var(--primary-color);gap:var(--margin-md);border-radius:30px;flex-direction:column;justify-content:center;max-width:1250px;margin:28px auto;padding:max(5%,50px);display:flex}.hero p{max-width:820px;display:inline}.headline{display:inline;position:relative}.headline span{color:var(--accent-violet)}.approach{color:var(--accent-orange);font-size:1.2em;font-weight:700}.subtitle{font-size:var(--size-sm);font-family:var(--font-special);color:var(--primary-color);letter-spacing:1.6px;line-height:1.8;display:block}.anchor{color:#271b46;font-weight:700}.logo{letter-spacing:2px;display:flex}.logo img{width:auto;height:60px}.getintouch{gap:var(--margin-xs);border:none;flex-direction:column;align-items:center;width:max(70%,300px);margin:0 auto;display:flex}.getintouch a{text-align:center;margin-top:0}.getintouch p,.hero p{margin-bottom:10px}.footcont{justify-content:center;width:100%;display:flex}#contact-form{align-items:center;gap:var(--margin-sm);flex-direction:column;width:100%;max-width:520px;margin:0 auto;display:flex}#contact-form .field{gap:var(--margin-xs);text-align:left;flex-direction:column;width:100%;display:flex}#contact-form label{color:var(--fg-color);font-weight:600}#contact-form input,#contact-form textarea{border-radius:var(--radius-sm);background-color:var(--bg-color);width:100%;color:var(--fg-color);font-family:var(--font-base);font-size:var(--size-normal);border:1px solid #1f1b464d;padding:8px 10px;transition:border-color .2s,box-shadow .2s}#contact-form input::placeholder,#contact-form textarea::placeholder{color:#271b4673}#contact-form input:focus,#contact-form textarea:focus{outline:2px solid var(--accent-violet);outline-offset:2px;border-color:var(--accent-violet)}#contact-form textarea{resize:vertical;min-height:100px}#contact-form .cf-turnstile{justify-content:center;display:flex}#contact-form button{min-width:220px}#contact-form #form-status{text-align:center;min-height:1.5em;margin:0}.item :is(p,a){color:var(--bg-color);border-radius:var(--radius-xs);padding:5px 10px;text-decoration:none;display:inline-block}.item{justify-content:left;align-items:center;display:flex}iconify-icon{position:relative;top:2px}#social{align-items:center;max-width:200px;display:flex}.item:first-of-type,#social{margin-top:var(--margin-xs)}.icon-cont{border-radius:100%;justify-content:center;align-items:center;width:35px;height:35px;margin:.5rem;display:flex}.social-icon{color:var(--bg-color);padding:1rem}.service-icon{color:var(--fg-color);margin-bottom:var(--margin-xs)}.icon-cont:hover{background-color:var(--bg-color)}.icon-cont:hover .social-icon{color:var(--secondary-color)}#cop{justify-content:center;gap:var(--margin-sm);text-align:center;background-color:var(--secondary-color);color:var(--bg-color);padding:8px 0;display:flex}#cop a{color:var(--bg-color)}section>div{max-width:1350px;margin:0 auto}#aboutme,#portfolio,.footcont,.policies,#services,.reviews,#projects,footer,.why-me{padding:var(--margin-2xl) max(2%, 15px)}#aboutme{background-color:var(--violet-light)}#projects{background-color:var(--orange-light)}#aboutme>div{gap:60px;display:flex}#aboutme img{object-fit:contain;width:min(97%,450px);height:auto}.policies{list-style-position:inside}.policies h4{margin:var(--margin-sm) 0}.why-me-cont{justify-content:space-around;gap:var(--margin-md);display:flex}.why-me-cont>div{gap:var(--margin-sm);width:28%;margin-top:var(--margin-sm);flex-direction:column;display:flex}.btn{color:var(--bg-color);border-radius:var(--radius-xl);border:none;min-width:150px;padding:10px 30px;text-decoration:none;display:inline-block}.icon-btn{justify-content:center;align-items:center;gap:var(--margin-xs);display:flex}a.disabled,a.disabled:hover{cursor:not-allowed;opacity:.6;color:var(--bg-color);background-color:var(--accent-orange)}a.disabled:active{pointer-events:none}.violet{background-color:var(--accent-violet);border:solid var(--accent-violet) 1px}.violet:hover{background-color:var(--accent-violet-dark);border:solid var(--accent-violet-dark) 1px}.orange{background-color:var(--accent-orange);border:solid var(--accent-orange) 1px;margin-bottom:var(--margin-lg)}.orange:hover{background-color:var(--accent-orange-dark);border:solid var(--accent-orange-dark) 1px}.btncont{margin-top:var(--margin-lg);gap:var(--margin-lg);align-items:center;display:flex}.btn2{color:var(--fg-color);border:solid var(--fg-color) 1.5px;border-radius:var(--radius-xl);background-color:var(--bg-color);border:solid var(--fg-color) 2px;min-width:150px;padding:10px 30px;text-decoration:none}.btn2:hover{background-color:var(--fg-color);color:var(--bg-color)}.btn-ghost{color:var(--accent-violet);border-radius:var(--radius-xl);background-color:#0000;border:none;min-width:150px;padding:10px 20px;text-decoration:none}.btn-ghost:hover{color:var(--accent-violet-dark)}.btn-ghost i{color:var(--accent-violet);transition:transform .35s,color .35s}.btn-ghost:hover i{color:var(--accent-violet-dark)}.stack{justify-content:space-around;align-items:center;width:100%;margin:48px 0 32px;display:flex}.duplicate{display:none}.list{justify-content:flex-start;list-style-type:none;display:flex;overflow-x:visible}.product{border:solid var(--fg-color) 2px;padding:var(--margin-xl);border-radius:var(--radius-lg);gap:var(--margin-xs);flex-direction:column;width:100%;margin:20px 1rem .5rem 0;list-style-type:none;display:flex}.review{border-radius:var(--radius-md);min-height:200px;margin-top:var(--margin-lg);margin-bottom:var(--margin-lg);background-color:#fff;border:1px solid #00000013;flex-direction:column;align-items:flex-start;padding:24px;display:flex;box-shadow:0 0 8px -2px #00000029}.clientrev{justify-content:space-between;width:100%;display:flex}.review p{margin-top:var(--margin-md)}.grid-container{width:100%;margin:var(--margin-md) 0;grid-template-columns:repeat(3,1fr);justify-content:space-between;gap:max(2vw,10px);display:grid}.small-grid{width:100%;margin:var(--margin-md) 0;grid-template-columns:repeat(2,1fr);justify-content:space-between;gap:max(2vw,10px);display:grid}.large-grid{width:100%;margin:var(--margin-md) 0;flex-direction:column;gap:max(2vw,10px);display:flex}.tabs{border-radius:var(--radius-max);background-color:var(--violet-light);padding:var(--margin-xs);-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;margin-bottom:32px;display:flex;position:relative;overflow-x:auto}.tab-indicator{top:var(--margin-xs);bottom:var(--margin-xs);z-index:0;border-radius:inherit;background-color:var(--primary-color);width:0;transition:left .3s,width .3s;position:absolute;left:0}.tabs::-webkit-scrollbar{display:none}.tab{z-index:1;white-space:nowrap;padding:var(--margin-xs) 25px;border-radius:inherit;font-weight:700;font-family:var(--font-base);cursor:pointer;background-color:#0000;border:none;font-size:1.1rem;transition:color .3s;position:relative}.active{color:var(--bg-color)}.small-card{background-color:var(--bg-color);padding:var(--margin-md);gap:var(--margin-md);border-radius:var(--radius-sm);flex-direction:column;justify-content:space-between;display:flex;box-shadow:0 4px 12px #0000001a}.small-content{align-items:flex-start;gap:var(--margin-md);flex-wrap:wrap;display:flex}.large-card{background-color:var(--bg-color);padding:var(--margin-md);gap:var(--margin-md);border-radius:var(--radius-sm);flex-direction:column;justify-content:space-between;display:flex;box-shadow:0 4px 12px #0000001a}.large-content{gap:var(--margin-sm) var(--margin-md);grid-template:"img text""img extra"/.4fr .6fr;display:grid}.large-content .projtext{grid-area:text;min-width:0}.third-area{grid-area:extra}.large-content .btncontfull{margin-top:var(--margin-md)}.small-card img{border-radius:var(--radius-xs);object-fit:contain;flex:250px;min-width:0;max-width:100%;height:auto}.large-card img{object-fit:contain;border-radius:var(--radius-xs);grid-area:img;align-self:start;width:100%;height:100%}.projtext{flex:250px;min-width:250px}.btncontfull{align-items:stretch;gap:var(--margin-sm);flex-flow:wrap;justify-content:center;display:flex}.btncontfull>*{text-align:center;white-space:nowrap;flex:150px;min-width:0;margin:0}.accordion{grid-template-rows:0fr;margin-top:0;transition:grid-template-rows .35s,margin-top .35s;display:grid}.accordion.open{margin-top:var(--margin-sm);grid-template-rows:1fr}.accordion .more-info{min-height:0;padding:0 var(--margin-md);opacity:0;border-top:0 solid #00000013;transition:padding .35s,border-top-width .35s,opacity .3s;overflow:hidden}.accordion.open .more-info{padding:var(--margin-md);opacity:1;border-top-width:2px}.more-info-btn i{transition:transform .35s}.more-info-btn.open i{transform:rotate(180deg)}.more-info-btn .label-less,.more-info-btn.open .label-more{display:none}.more-info-btn.open .label-less{display:inline}.ftcont{justify-content:space-around;gap:28px;display:flex}.ftsubcont{justify-content:space-around;gap:32px;display:flex}.ft-info{flex-direction:column;justify-content:space-between;gap:16px;display:flex}.numbers{gap:var(--margin-lg);padding:0 var(--margin-lg);margin-top:var(--margin-xl);justify-content:space-between;max-width:1250px;margin-left:auto;margin-right:auto;display:flex}.num{background-color:var(--violet-light);border-radius:var(--radius-lg);flex-direction:column;align-items:center;padding:24px 60px;display:flex}.num span{color:var(--accent-violet);letter-spacing:3px;font-family:Coolvetica,sans-serif;font-size:3.5rem;font-weight:700}.num p{text-align:center;margin-top:var(--margin-xs);font-size:1.25rem;font-weight:700}.portfolio-final{margin-top:var(--margin-2xl);flex-direction:column}.portfolio-final h3{margin-bottom:var(--margin-md)}.mobile{display:none}#menucont{justify-content:flex-end;align-items:center;gap:var(--margin-xl);display:flex}#menu{justify-content:flex-end;align-items:center;gap:var(--margin-xl);list-style:none;display:inline-flex}#menu a{font-family:var(--font-header);letter-spacing:.5px;font-size:var(--size-lg);padding:4px 8px}#menu :is(a,ul span):hover{background-color:var(--secondary-dark)}.navbar{align-items:center;padding:24px 30px;display:flex}.navbar img{width:auto;height:3em}nav{text-align:right;flex:1}#ham{display:none}.emojione--flag-for-italy{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%2375a843' d='M1.7 32c0 13.1 8.4 24.2 20 28.3V3.7C10.1 7.8 1.7 18.9 1.7 32'/%3E%3Cpath fill='%23ed4c5c' d='M61.7 32c0-13.1-8.4-24.2-20-28.3v56.6c11.7-4.1 20-15.2 20-28.3'/%3E%3Cpath fill='%23fff' d='M21.7 60.3c3.1 1.1 6.5 1.7 10 1.7s6.9-.6 10-1.7V3.7C38.6 2.6 35.2 2 31.7 2s-6.9.6-10 1.7z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:100% 100%;width:27px;height:27px;display:inline-block;position:relative;top:7px}.icon-park--international{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23fff' stroke-width='4'%3E%3Cpath d='M24 44.0002C35.0457 44.0002 44 35.0459 44 24.0002C44 12.9545 35.0457 4.00024 24 4.00024C12.9543 4.00024 4 12.9545 4 24.0002C4 35.0459 12.9543 44.0002 24 44.0002Z'/%3E%3Cpath stroke-linecap='round' d='M6 30.9856C8.63192 32.041 10.5266 32.041 11.6839 30.9856C13.4199 29.4025 11.9219 24.5978 14.3532 23.2727C16.7844 21.9476 20.4886 27.8214 23.9508 25.8887C27.4129 23.9559 23.6246 18.8023 26.0272 16.713C28.4298 14.6237 31.554 16.98 32.1001 13.4865C32.6462 9.99304 29.5521 11.5082 28.9584 8.20693C28.5625 6.00611 28.5625 4.84884 28.9584 4.73511'/%3E%3Cpath stroke-linecap='round' d='M29.0209 43.3505C27.1468 41.4325 26.4721 39.6497 26.9969 38.0019C27.7841 35.5303 29.0826 35.6764 29.6488 34.1482C30.2149 32.6199 28.6156 30.4433 32.1643 28.5826C34.5301 27.3421 37.783 28.7794 41.9228 32.8944'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:100% 100%;width:27px;height:27px;display:inline-block;position:relative;top:7px}.mySwiper1 .swiper-button-next,.mySwiper1 .swiper-button-prev{width:calc(var(--swiper-navigation-size) / 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));z-index:10;cursor:pointer;color:var(--fg-color);justify-content:center;align-items:center;display:flex;position:absolute;top:50%}.mySwiper1 .swiper-button-next{right:0!important}.mySwiper1 .swiper-button-prev{left:0!important}.mySwiper1 .swiper-scrollbar{display:none!important}.mySwiper1 .swiper-button-next:active,.mySwiper1 .swiper-button-prev:active{color:var(--bg-color)}.list{overflow-x:visible}.badges{gap:var(--margin-xs);flex-wrap:wrap;margin:10px 0;display:flex}.badge{color:var(--primary-color);background-color:var(--bg-color);border:solid var(--primary-color) 1.5px;border-radius:var(--radius-lg);padding:5px 10px;font-size:.9rem}.badge.python{color:#2b5b84;background-color:#e3f2fd;border-color:#2b5b84}.badge.flask,.badge.nextjs,.badge.langchain,.badge.expressjs{color:#1a1a1a;background-color:#eaeaea;border-color:#1a1a1a}.badge.javascript,.badge.js{color:#735600;background-color:#fffde7;border-color:#735600}.badge.typescript,.badge.gsc{color:#1971c9;background-color:#eef6fc;border-color:#1971c9}.badge.reactjs,.badge.tailwindcss{color:#0176b6;background-color:#f1fafc;border-color:#0176b6}.badge.django{color:#2c6f4d;background-color:#e8f5e9;border-color:#2c6f4d}.badge.pandas{color:#072c54;background-color:#e3f2fd;border-color:#072c54}.badge.node,.badge.nodejs{color:#3c6e3e;background-color:#e8f5e9;border-color:#3c6e3e}.badge.css,.badge.sql,.badge.mysql,.badge.postgresql{color:#1565c0;background-color:#e3f2fd;border-color:#1565c0}.badge.mongodb{color:#2d6f3c;background-color:#e8f5e9;border-color:#2d6f3c}.badge.docker,.badge.gensim{color:#0c5d9e;background-color:#e3f2fd;border-color:#0c5d9e}.badge.matplotlib,.badge.scikit-learn{color:#a24d03;background-color:#fcf6ed;border-color:#b85e0e}.badge.astrojs,.badge.plotly,.badge.ai{color:#6a1b9a;background-color:#f3e5f5;border-color:#6a1b9a}.badge.nltk{color:#00796b;background-color:#e0f2f1;border-color:#00796b}.badge.stripe{color:#5b63a8;background-color:#ede7f6;border-color:#5b63a8}.badge.streamlit,.badge.figma{color:#c83e1c;background-color:#f7f1ef;border-color:#c83e1c}.badge.hugo,.badge.shap{color:#c71585;background-color:#fce4ec;border-color:#c71585}.badge.under-maintenance,.badge.updating,.badge.refactoring{color:#e67e22;border-radius:none;background-color:#fff8e1;border-style:dashed;border-color:#e67e22;font-style:italic}@media (width>=600px){.swiper.mySwiper2 .swiper-slide{width:calc(50% - 20px)!important}}@media (width>=851px){#ham{display:none}}@media (width>=1000px){.swiper.mySwiper2 .swiper-slide{width:calc(33.333% - 14px)!important}}@media (width<=1200px){.wrapper{width:100%;overflow:hidden}.duplicate{display:block}.stack{gap:5rem;width:max-content;animation:20s linear infinite scroll-left}@keyframes scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}}@media (width<=900px){.num{padding:24px 30px}.logo{justify-content:center}.ftcont{flex-direction:column;gap:70px}.getintouch{width:90%}.grid-container{grid-template-columns:repeat(2,1fr)}.intro{font-size:4rem}#aboutme>div{flex-direction:column-reverse;align-items:center;gap:6vw}.mySwiper1 .swiper{width:100%;height:100%}.mySwiper1 .swiper-slide{width:23em;display:flex;position:relative}.ham{z-index:1;background:0 0;flex-direction:column;justify-content:space-between;align-self:center;width:28px;height:24px;display:flex}header :is(a,ul span):hover{background-color:#5a4180}.line{background:#f5f5fa;border-radius:10px;width:100%;height:4px;transition:all .25s ease-in-out;display:block;transform:rotate(0)}.product{margin-right:0}.mobilebtn{flex-direction:row-reverse;justify-content:flex-start;gap:20px;display:flex;position:relative;right:0}h2:not(.intro){text-align:center}h2{font-size:170%}#menu{flex-direction:column;align-items:flex-end;gap:48px;display:flex}#menucont{z-index:1;opacity:0;background-color:#5a4180;border-top:4px solid #c4a6ed;border-bottom:4px solid #c4a6ed;width:max(60%,350px);max-height:0;padding:32px;transition:max-height .5s,opacity .5s;display:block;position:absolute;top:111px;right:0;overflow:hidden;box-shadow:0 4px #fff}#menucont.open{opacity:1;max-height:800px}.desktop{display:none}.mobile{width:27px;height:27px;padding:0;display:inline-block;position:relative;top:0}.line1,.line2,.line3{transform-origin:0}.ham input:checked~.line1{top:0;left:5px;transform:rotate(45deg)}.ham input:checked~.line2{opacity:0;width:0%}.ham input:checked~.line3{top:28px;left:5px;transform:rotate(-45deg)}.why-me-cont{flex-direction:column}.why-me-cont>div{align-items:left;width:100%}.why-me h2{text-align:left}.large-content{grid-template-areas:"img text""extra extra"}.large-content img{grid-row:1}}@media (width<=600px){.numbers{gap:var(--margin-sm);padding:0}.num span{font-size:2.5rem}.num{padding:var(--margin-md)}.btncont{gap:var(--margin-md);flex-direction:column}.hero .btncont{align-items:flex-start}#contact-form button{width:100%;min-width:0}.grid-container{grid-template-columns:repeat(1,1fr)}.ftsubcont{flex-direction:column;align-items:center}.ftsubcont div{text-align:center}.item{justify-content:center}#cop{text-align:center;flex-direction:column}.small-grid{grid-template-columns:repeat(1,1fr)}.large-content{gap:var(--margin-md);grid-template-columns:1fr;grid-template-areas:"img""text""extra"}}@media (width<=400px){.hero{margin:50px 20px}.product{padding:1.5em}.fix{top:0}#menucont{top:102px}span.mobile{top:-.5px}.numbers{display:none}.intro{font-size:3.7rem}#menucont{width:100%;padding-top:64px;padding-bottom:64px}#menu a{font-size:30px}#menu{gap:64px}.navbar img{height:3em}a.mobile{position:relative;top:0}#social,.item{justify-content:center}}
