@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/1f160ec2cb9962ef-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ad8a7e2c3c2c120b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cde148027b808b99-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e61ae719f7cc4155-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0ea4f4df910e6120-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/739c2d8941231bb4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/1f160ec2cb9962ef-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ad8a7e2c3c2c120b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/cde148027b808b99-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e61ae719f7cc4155-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0ea4f4df910e6120-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/739c2d8941231bb4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Roboto Mono Fallback;src:local("Arial");ascent-override:77.84%;descent-override:20.13%;line-gap-override:0.00%;size-adjust:134.61%}.__className_adeef6{font-family:Roboto Mono,Roboto Mono Fallback;font-style:normal}.__variable_adeef6{--font-roboto-mono:"Roboto Mono","Roboto Mono Fallback"}*{box-sizing:border-box}body{cursor:url(/cursor.png) 0 0,auto}a,button{cursor:url(/cursor.png) 0 0,pointer}:root{--bg-color:#1a1a1a;--primary-color:#e8e8e8;--secondary-color:#a8a8a8;--accent-color:#5a9fd4;--border-color:#505050;--terminal-green:#00ff00;--grid-gap:clamp(1.5rem,5vw,2.5rem);--font-mono:"SF Mono","Roboto Mono",monospace;--container-padding:clamp(1.5rem,5vw,2rem);--title-size:clamp(2rem,6vw,3rem);--subtitle-size:clamp(1.1rem,3.5vw,1.4rem);--text-size:clamp(1rem,2.5vw,1.1rem)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{background-color:var(--bg-color);color:var(--primary-color);font-family:var(--font-mono);line-height:1.6;margin:0;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15),rgba(0,0,0,.15) 1px,transparent 0,transparent 2px);pointer-events:none;z-index:999;will-change:transform}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--container-padding)}.navbar{position:sticky;top:0;background-color:transparent;backdrop-filter:blur(8px);padding:1rem var(--container-padding);border-bottom:1px solid var(--border-color);z-index:100;display:flex;justify-content:center}.logo-link{display:inline-block}.logo{height:auto;width:clamp(100px,30vw,200px);filter:grayscale(100%) contrast(200%)}.hero-section{display:grid;place-items:center;min-height:calc(100vh - 4rem);text-align:center;border-bottom:1px solid var(--border-color)}.hero-content,.hero-section{padding:4rem 0}.title{font-size:var(--title-size);text-transform:uppercase;letter-spacing:.15em;margin:0 0 1.5rem;text-shadow:0 0 10px rgba(232,232,232,.3);max-width:100%;word-wrap:break-word}.subtitle{color:var(--secondary-color);font-size:var(--subtitle-size);max-width:min(600px,90%);margin:0 auto 2.5rem;line-height:1.5}.section-title{font-size:clamp(1.75rem,5vw,2.5rem);text-align:center;margin-bottom:2rem}.cta{display:inline-block;padding:clamp(.8rem,3vw,1rem) clamp(1.5rem,5vw,2rem);border:1px solid var(--primary-color);color:var(--primary-color);text-decoration:none;text-transform:uppercase;letter-spacing:.1em;transition:all .3s ease;position:relative;overflow:hidden;background:transparent;cursor:pointer;white-space:nowrap;touch-action:manipulation;margin-bottom:2rem}.cta.clicked{transform:scale(.95);box-shadow:0 0 5px rgba(232,232,232,.3)}.cta:focus,.cta:hover{background:rgba(232,232,232,.1);box-shadow:0 0 15px rgba(232,232,232,.2);outline:none}.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--grid-gap);padding:4rem 0}.service-box{border:1px solid var(--border-color);padding:2rem;position:relative;background:var(--bg-color);transition:transform .3s ease,border-color .3s ease;height:100%;display:flex;flex-direction:column}.service-box:focus-within,.service-box:hover{transform:translateY(-5px);border-color:var(--primary-color)}.service-banner{height:4px;background:var(--accent-color);margin:-2rem -2rem 2rem}.service-box h3{margin-bottom:1rem;font-size:clamp(1.25rem,4vw,1.5rem)}.service-box p{font-size:var(--text-size);line-height:1.5}.differenza-section{background:#252525;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:4rem 0;padding:4rem 0}.differenza-content{margin-top:2rem}.differenza-text{margin-bottom:1.5rem;font-size:var(--text-size)}.differenza-list{list-style:none;padding:0;display:grid;gap:1.2rem;margin-top:1.5rem}.differenza-list li{position:relative;padding-left:1.8rem;line-height:1.4;font-size:var(--text-size)}.differenza-list li:before{content:"■";position:absolute;left:0;color:var(--accent-color);font-size:1.2rem;top:50%;transform:translateY(-50%)}footer{text-align:center;padding:2rem var(--container-padding);color:var(--secondary-color);border-top:1px solid var(--border-color)}footer p{font-size:var(--text-size)}footer a{color:var(--secondary-color)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cta,.portfolio-item,.service-box{transition:none}}@media print{body:after{display:none}body{background:white}.cta,body{color:black}.cta{border:1px solid black}}.portfolio-section{padding:4rem 0}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--grid-gap);margin-top:2rem}.portfolio-item{border:1px solid var(--border-color);padding:1.5rem;transition:transform .3s ease,border-color .3s ease;display:flex;flex-direction:column;height:100%}.portfolio-item:focus-within,.portfolio-item:hover{transform:translateY(-5px);border-color:var(--primary-color)}.portfolio-item-link.clicked{transform:scale(.98);box-shadow:0 0 5px rgba(232,232,232,.2)}.portfolio-image-wrapper{background-color:#252525;display:flex;justify-content:center;align-items:center;height:200px;margin-bottom:1.5rem;position:relative;overflow:hidden}.portfolio-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;font-family:var(--font-mono);font-size:1rem;line-height:1.2;overflow:hidden;padding:0;background-image:linear-gradient(rgba(18,16,16,0) 50%,rgba(0,0,0,.25) 0),linear-gradient(90deg,rgba(255,0,0,.06),rgba(0,255,0,.02),rgba(0,0,255,.06));background-size:100% 3px,3px 100%;background-color:#0d0d0d;color:var(--terminal-green);text-shadow:0 0 3px rgba(0,255,0,.6),0 0 10px rgba(0,255,0,.4)}.portfolio-image{width:100%;height:100%;object-fit:cover;display:block}.portfolio-image-wrapper:before{content:"";position:absolute;inset:0;background-color:var(--accent-color);opacity:0;transition:opacity .3s ease;z-index:1}.portfolio-item:hover .portfolio-image-wrapper:before{opacity:.2}.portfolio-item-title{font-size:1.25rem;margin-bottom:.5rem;line-height:1.3}.portfolio-item-description{font-size:var(--text-size);line-height:1.5;margin-bottom:1rem;flex-grow:1}.portfolio-item-link{color:inherit;text-decoration:none;display:block;height:100%}.portfolio-item-app .portfolio-item-description{margin-bottom:1.5rem}.app-store-buttons{display:flex;gap:1rem;margin-top:auto}.app-store-button{flex-grow:1;text-align:center;padding:.75rem;border:1px solid var(--border-color);color:var(--primary-color);text-decoration:none;transition:all .3s ease;background-color:#2a2a2a}.app-store-button:hover{background-color:var(--accent-color);border-color:var(--accent-color);color:white}@media (max-width:768px){.portfolio-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (max-width:480px){.portfolio-grid{grid-template-columns:1fr}.portfolio-section{padding:2rem 0}}@media (max-width:768px){:root{--container-padding:clamp(1rem,4vw,1.5rem)}.title{margin-bottom:1rem}.services{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}}@media (max-width:480px){:root{--container-padding:1rem}.differenza-section,.hero-content,.services{padding:2rem 0}.title{margin-bottom:.8rem}.subtitle{margin-bottom:1.5rem}.services{grid-template-columns:1fr}.service-box{padding:1.5rem}.service-banner{margin:-1.5rem -1.5rem 1.5rem}}.cookie-banner{position:fixed;bottom:0;left:0;width:100%;background-color:rgba(26,26,26,.95);backdrop-filter:blur(10px);border-top:1px solid var(--border-color);padding:1rem var(--container-padding);z-index:1000;display:none;text-align:center}.cookie-banner-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.cookie-banner p{font-size:var(--text-size);color:#e8e8e8;line-height:1.4}.cookie-banner a{color:#7ab8e0!important;text-decoration:underline}.cookie-banner a:focus,.cookie-banner a:hover{color:#9dd0f5!important;outline:2px solid #9dd0f5;outline-offset:2px}.cookie-accept{padding:.5rem 1rem;background-color:#2d7bb8;color:#ffffff;border:2px solid #2d7bb8;cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;transition:background-color .3s ease,border-color .3s ease;white-space:nowrap;touch-action:manipulation;font-weight:600;min-height:44px}.cookie-accept:focus,.cookie-accept:hover{background-color:#1e5a8a;color:#ffffff;border-color:#1e5a8a;outline:2px solid #ffffff;outline-offset:2px}.cookie-accept.clicked{transform:scale(.95);box-shadow:0 0 5px rgba(232,232,232,.3)}@media (min-width:768px){.cookie-banner-content{flex-direction:row;justify-content:space-between}.cookie-banner p{margin-bottom:0}}.faq-section{padding:4rem 0;background:#252525;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.faq-list{display:grid;gap:var(--grid-gap);margin-top:2rem}.faq-item{border:1px solid var(--border-color);padding:2rem;background:var(--bg-color);transition:transform .3s ease,border-color .3s ease}.faq-item:focus-within,.faq-item:hover{transform:translateY(-5px);border-color:var(--primary-color)}.faq-question{font-size:clamp(1.1rem,3.5vw,1.3rem);margin-bottom:1rem;color:var(--accent-color);font-weight:700}.faq-answer{font-size:var(--text-size);line-height:1.6;color:var(--secondary-color)}@media (max-width:480px){.faq-section{padding:2rem 0}.faq-item{padding:1.5rem}}