*{margin:0;padding:0;box-sizing:border-box}@font-face{font-family:Outfit;src:local("Outfit"),url(/fonts/Outfit-VariableFont_wght.ttf) format("truetype");font-display:block}@font-face{font-family:Coolvetica;src:local("Coolvetica"),url(/fonts/coolvetica-rg.ttf) format("truetype");font-display:block}@font-face{font-family:Lemon Milk;src:local("Lemon Milk"),url(/fonts/LEMONMILK-Regular.otf) format("opentype");font-display:block}:root{--bg-color: #f5f5fa;--fg-dark: #d3d3d3;--fg-color: #271B46;--accent-violet:#7F5BEB;--accent-violet-dark:#684BBF;--accent-orange: #fa9192;--accent-orange-dark: #F97779;--primary-color: #c4a6ed;--secondary-color: #5a4180;--secondary-dark: #664992;--violet-light: #EAE5FA;--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{width:100%;display:flex;justify-content:center;align-items:center}.hidden{display:none!important}body{background-color:var(--bg-color);color:var(--fg-color);font-family:var(--font-base)}p,a,ul,body{font-size:var(--size-normal);overflow-wrap:break-word}h1,h2,h3,h4{font-family:var(--font-header);letter-spacing:1.6px}h1{font-weight:700;font-size:1.5rem;color:var(--accent-orange);margin-bottom:var(--margin-md)}h2{font-size:190%;margin-bottom:var(--margin-lg)}h3{font-size:150%;margin-top:var(--margin-lg)}h4{font-size:120%}hr{margin:var(--margin-2xl) 0}header{background-color:var(--secondary-color);color:var(--bg-color)}header a{color:var(--bg-color);text-decoration:none;border-radius:var(--radius-xs)}ul span{word-spacing:normal}footer{background-color:var(--secondary-color);color:var(--bg-color);display:flex;flex-direction:column;align-items:stretch}input{font-family:Roboto,sans-serif;padding:.3rem;width:min(100%,350px);border:solid rgba(31,27,70,.3) 1px}.intro{font-size:4.5rem;letter-spacing:3px;margin-bottom:var(--margin-md);line-height:1em}.hero{background-color:var(--primary-color);max-width:1250px;margin:28px auto;padding:max(5%,50px);display:flex;justify-content:center;align-items:center;border-radius:30px}.hero p{display:inline;max-width:820px}.headline{position:relative;display:inline}.headline span{color:var(--accent-violet-dark)}.approach{font-weight:700;font-size:1.2em;color:var(--accent-orange)}.subtitle{display:block;font-weight:700;font-size:var(--size-sm);font-family:var(--font-special);color:var(--primary-color);line-height:1.8;letter-spacing:1.6px}.anchor{color:#271b46;font-weight:700}.logo{display:flex;letter-spacing:2px}.getintouch{border:none;width:max(70%,300px);margin:0 auto;display:flex;gap:var(--margin-xs);flex-direction:column;align-items:center}.getintouch a{margin-top:0;text-align:center}.getintouch p,.hero p{margin-bottom:10px}.footcont{display:flex;justify-content:center;width:100%}.item :is(p,a){display:inline-block;color:var(--bg-color);text-decoration:none;padding:5px 10px;border-radius:var(--radius-xs)}.item{display:flex;justify-content:left;align-items:center}iconify-icon{position:relative;top:2px}#social{display:flex;align-items:center;max-width:200px}.item:first-of-type,#social{margin-top:var(--margin-xs)}.icon-cont{display:flex;align-items:center;justify-content:center;border-radius:100%;margin:.5rem;height:35px;width:35px}.social-icon{color:var(--bg-color);padding:1rem}.icon-cont:hover{background-color:var(--bg-color)}.icon-cont:hover .social-icon{color:var(--secondary-color)}#cop{display:flex;justify-content:center;gap:var(--margin-sm);padding:8px 0;text-align:center;background-color:var(--secondary-color);color:var(--bg-color)}#cop a{color:var(--bg-color)}.projtext{padding:16px}section>div{max-width:1350px;margin:0 auto}#aboutme,#portfolio,.footcont,.policies,#services,.reviews,#projects,footer{padding:var(--margin-2xl) max(2%,15px)}#aboutme{background-color:var(--violet-light)}#projects{background-color:var(--orange-light)}#aboutme>div{display:flex;gap:60px}#aboutme img{width:min(97%,450px);object-fit:contain}.policies{list-style-position:inside}.policies h4{margin:var(--margin-sm) 0}.btn{display:inline-block;color:var(--bg-color);padding:10px 30px;border-radius:var(--radius-xl);border:none;text-decoration:none;max-width:500px}a.disabled,a.disabled:hover{cursor:not-allowed;opacity:60%;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{display:flex;margin-top:var(--margin-lg);gap:var(--margin-lg);align-items:center}.btn2{text-decoration:none;padding:10px 30px;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}.btn2:hover{background-color:var(--fg-color);color:var(--bg-color)}.stack{width:100%;display:flex;justify-content:space-around;margin:48px 0 16px;align-items:center}.duplicate{display:none}.list{display:flex;justify-content:flex-start;list-style-type:none;overflow-x:visible}.product{border:solid var(--fg-color) 2px;padding:var(--margin-xl);margin:20px 1rem .5rem 0;border-radius:var(--radius-lg);width:95%;list-style-type:none;display:flex;flex-direction:column;gap:var(--margin-xs)}.review{display:flex;padding:24px;background-color:#fff;flex-direction:column;align-items:flex-start;min-height:200px;border:solid 1px rgba(0,0,0,.075);border-radius:var(--radius-md);margin-top:var(--margin-lg);margin-bottom:var(--margin-lg);box-shadow:0 0 8px -2px #00000029}.clientrev{display:flex;width:100%;justify-content:space-between}.review p{margin-top:var(--margin-md)}.grid-container{display:grid;width:100%;grid-template-columns:repeat(3,1fr);gap:2vw;justify-content:space-between;margin:var(--margin-md) 0}.tabs{margin-bottom:32px;display:flex;overflow-x:auto;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}.tabs::-webkit-scrollbar{display:none}.tab{border:none;white-space:nowrap;padding:var(--margin-xs) 25px;border-radius:inherit;background-color:inherit;font-weight:700;font-family:var(--font-base);font-size:1.1rem;cursor:pointer}.active{background-color:var(--primary-color);color:var(--bg-color)}.work{background-color:var(--bg-color);padding:0;display:flex;gap:0px;flex-direction:column;justify-content:space-between}.work.contrib{flex-direction:row;gap:var(--margin-sm);grid-column:1 / -1;justify-content:flex-start}.work img{width:100%}.work.contrib img{height:100%;width:40%;object-fit:contain}#portfolio .work{box-shadow:0 4px 12px #0000001a}.btncontfull{display:flex;flex-direction:row;align-items:stretch;gap:var(--margin-sm);margin-top:auto;justify-content:center;padding:16px}.btncontfull>*{margin:0;text-align:center;flex:1}.ftcont{display:flex;justify-content:space-around;gap:28px}.ftsubcont{display:flex;justify-content:space-around;gap:32px}.ft-info{display:flex;flex-direction:column;justify-content:space-between;gap:16px}.numbers{display:flex;gap:var(--margin-lg);padding:0 var(--margin-lg);justify-content:space-between;margin-top:var(--margin-xl);margin-left:auto;margin-right:auto;max-width:1250px}.num{display:flex;flex-direction:column;align-items:center;background-color:var(--violet-light);padding:24px 60px;border-radius:var(--radius-lg)}.num span{font-size:3.5rem;font-weight:700;color:var(--accent-violet);font-family:Coolvetica,sans-serif;letter-spacing:3px}.num p{font-size:1.25rem;font-weight:700;text-align:center;margin-top:var(--margin-xs)}.portfolio-final{flex-direction:column;margin-top:var(--margin-2xl)}.mobile{display:none}#menu{display:inline;word-spacing:1.5rem}#menu a{font-family:var(--font-header);letter-spacing:.5px;font-size:var(--size-lg)}#menu :is(a,ul span):hover{background-color:var(--secondary-dark)}.navbar{display:flex;align-items:center;padding:24px 30px}.navbar img{height:3em}nav{flex:1;text-align:right}#ham{display:none}.emojione--flag-for-italy{display:inline-block;width:27px;height:27px;position:relative;top:7px;background-repeat:no-repeat;background-size:100% 100%;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")}.icon-park--international{display:inline-block;width:27px;height:27px;position:relative;top:7px;background-repeat:no-repeat;background-size:100% 100%;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")}.mySwiper1 .swiper-button-next,.swiper-button-prev{position:absolute;top:50%;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;display:flex;align-items:center;justify-content:center;color:var(--fg-color)}.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,.swiper-button-prev:active{color:var(--bg-color)}.list{overflow-x:visible}.badges{display:flex;gap:var(--margin-xs);flex-wrap:wrap;margin:10px 0}.badge{color:var(--primary-color);background-color:var(--bg-color);border:solid var(--primary-color) 1.5px;padding:5px 10px;border-radius:var(--radius-lg);font-size:.9rem}.badge.python{color:#2b5b84;background-color:#e3f2fd;border-color:#2b5b84}.badge.flask,.badge.nextjs{color:#1a1a1a;background-color:#f0f0f0;border-color:#1a1a1a}.badge.javascript,.badge.js{color:#b8930f;background-color:#fffbea;border-color:#b8930f}.badge.typescript,.badge.ts{color:#2d79c7;background-color:#e3f2fd;border-color:#2d79c7}.badge.react{color:#0d96b8;background-color:#e0f7fa;border-color:#0d96b8}.badge.django{color:#2c6f4d;background-color:#e8f5e9;border-color:#2c6f4d}.badge.html,.badge.html5{color:#c44125;background-color:#fff3e0;border-color:#c44125}.badge.css,.badge.css3{color:#0e4d92;background-color:#e3f2fd;border-color:#0e4d92}.badge.node,.badge.nodejs{color:#3c6e3e;background-color:#e8f5e9;border-color:#3c6e3e}.badge.database,.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.langchain,.badge.expressjs{color:#1a1a1a;background-color:#f5f5f5;border-color:#1a1a1a}.badge.docker,.badge.gensim{color:#0c5d9e;background-color:#e3f2fd;border-color:#0c5d9e}.badge.web-design,.badge.matplotlib{color:#b85e0e;background-color:#fff3e0;border-color:#b85e0e}.badge.machine,.badge.plotly,.badge.machine-learning{color:#6a1b9a;background-color:#f3e5f5;border-color:#6a1b9a}.badge.data-science,.badge.analytics,.badge.data-analysis{color:#00796b;background-color:#e0f2f1;border-color:#00796b}.badge.ai,.badge.artificial{color:#6a1b9a;background-color:#f3e5f5;border-color:#6a1b9a}.badge.stripe{color:#5b63a8;background-color:#ede7f6;border-color:#5b63a8}.badge.streamlit{color:#d24726;background-color:#fff3e0;border-color:#d24726}.badge.astrojs{color:#b85e0e;background-color:#fff3e0;border-color:#b85e0e}.badge.seo{color:#558b2f;background-color:#f1f8e9;border-color:#558b2f}.badge.hugo{color:#c71585;background-color:#fce4ec;border-color:#c71585}.badge.under-maintenance,.badge.updating,.badge.refactoring{color:#e67e22;background-color:#fff8e1;border-color:#e67e22;border-style:dashed;font-style:italic;border-radius:none}@media (min-width: 600px){.swiper.mySwiper2 .swiper-slide{width:calc(50% - 20px)!important}}@media (min-width: 851px){#ham{display:none}.mySwiper1 .swiper-slide{width:50.5%!important}}@media (min-width: 1000px){.swiper.mySwiper2 .swiper-slide{width:calc(33.333% - 14px)!important}.mySwiper1 .swiper-slide{width:33.5%!important}}@media (max-width: 1200px){.wrapper{width:100%;overflow:hidden}.duplicate{display:block}.stack{gap:5rem;width:max-content;animation:scroll-left 20s linear infinite}@keyframes scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}}@media (max-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)}.work.contrib{flex-direction:column;justify-content:flex-start}.work.contrib img{width:100%;height:auto}.intro{font-size:4rem}#aboutme>div{flex-direction:column-reverse;align-items:center;gap:6vw}.mySwiper1 .swiper{width:100%;height:100%}.mySwiper1 .swiper-slide{display:flex;width:23em;position:relative;left:2vw}.ham{display:block;height:24px;width:28px;align-self:center;display:flex;background:transparent;z-index:1;flex-direction:column;justify-content:space-between}header :is(a,ul span):hover{background-color:#5a4180}.line{display:block;height:4px;width:100%;border-radius:10px;background:#f5f5fa;transform:rotate(0);transition:.25s ease-in-out}.product{margin-right:0}.mobilebtn{position:relative;right:0;display:flex;gap:20px;flex-direction:row-reverse;justify-content:flex-start}h2:not(.intro){text-align:center}h2{font-size:170%}#menu{display:flex;gap:48px;flex-direction:column}#menucont{border-top:solid #c4a6ed 4px;border-bottom:solid #c4a6ed 4px;box-shadow:0 4px #fff;display:block;width:max(60%,350px);position:absolute;top:115px;right:0;background-color:#5a4180;padding:32px;z-index:1;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s ease,opacity .5s ease}#menucont.open{max-height:800px;opacity:1}.desktop{display:none}.mobile{display:inline-block;width:27px;height:27px;position:relative;padding:0;top:0}.line1,.line2,.line3{transform-origin:left center}.ham input:checked~.line1{transform:rotate(45deg);top:0;left:5px}.ham input:checked~.line2{width:0%;opacity:0}.ham input:checked~.line3{transform:rotate(-45deg);top:28px;left:5px}}@media (max-width: 600px){.numbers{padding:0;gap:var(--margin-sm)}.num span{font-size:2.5rem}.num{padding:var(--margin-md)}.btncont{flex-direction:column;gap:var(--margin-md)}.hero .btncont{align-items:flex-start}.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{flex-direction:column;text-align:center}}@media (max-width: 400px){.hero{margin:50px 20px}.product{padding:1.5em}.fix{top:0}#menucont{top:102px}.navbar img{height:2.5em}span.mobile{top:-.5px}.intro{font-size:3.5rem}.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}}
