@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#111112;--ink:#ffffff;--muted:#b4b4b6;--accent:#f03732;--line:#ffffff26;--font:Manrope,Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 var(--font);overflow-x:clip}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:6px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}button{background:none}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}.header{position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;gap:40px;padding:22px max(40px,env(safe-area-inset-left));background:linear-gradient(#111112b0,transparent);min-height:92px}.brand{font:800 32px/1 var(--font);letter-spacing:-2px;display:block}.brand span{font:500 10px/1.9 var(--font);letter-spacing:2.5px;display:block;margin-top:6px}.header nav{display:flex;gap:30px;margin-left:auto}.header nav a{font-size:14px;color:#e8e8e8}.header nav a:hover{color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);border:1px solid var(--accent);color:#ffffff;min-height:52px;border-radius:2px;padding:13px 25px;font-size:14px;font-weight:700;transition:background .2s,transform .2s}.button:hover{background:#d32c28;transform:translateY(-2px)}.small{min-height:44px;padding:10px 20px}.menu{display:none;border:1px solid var(--line);min-height:44px;padding:8px 14px}.skip{position:fixed;top:-100px;left:20px;background:var(--accent);color:black;z-index:100;padding:12px}.skip:focus{top:15px}
#stage{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 67% 40%,#363034 0%,#211b1e 37%,#111112 73%);transition:opacity .5s}#scene{width:100%;height:100%;display:block;position:absolute;inset:0}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#11111270,transparent 65%),linear-gradient(0deg,#111112aa,transparent 30%)}.scene-fallback{position:absolute;inset:15% 7% 10% 48%;display:none;align-items:center}.no-webgl .scene-fallback{display:flex}.scene-fallback img{width:100%;border-radius:2px;opacity:.6;transform:perspective(1200px) rotateY(-20deg)}.webgl-ready .scene-fallback{display:none}.chapter{min-height:110svh;position:relative;display:flex;align-items:center;scroll-margin-top:0}.chapter-inner{width:min(1320px,calc(100% - 112px));margin-inline:auto;position:relative}.chapter-inner.side{padding-block:130px;pointer-events:none}.chapter-inner.side>*{max-width:430px;pointer-events:auto}.eyebrow{font-size:12px;letter-spacing:2.2px;font-weight:600;margin-bottom:24px;color:var(--accent)}h1{font:700 clamp(70px,9vw,154px)/.91 var(--display);letter-spacing:-1.5px;margin:0 0 28px;text-transform:uppercase}h1 span{-webkit-text-stroke:1px #ffffff;color:transparent}h2{font:700 clamp(56px,6.6vw,100px)/.97 var(--display);letter-spacing:-.8px}h2 em{color:var(--accent);font-style:normal}.intro{font-size:17px;line-height:1.8;color:#d8d8da;max-width:430px;margin-bottom:24px}.hero .chapter-inner{align-self:center;padding-top:35px}.hero{min-height:100svh}.hero .text-link{font-size:14px}.text-link{display:inline-block;border-bottom:1px solid #cccccc80;padding:6px 0;font-weight:500}.text-link:hover{color:var(--accent);border-color:var(--accent)}.hero-bottom{position:absolute;bottom:32px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:11px;letter-spacing:1.5px;color:#dedede}.hero-bottom button{border:1px solid #ffffff35;padding:10px 14px;font-size:12px;letter-spacing:0;min-height:44px}.hero-bottom a{display:flex;align-items:center;gap:12px}.hero-bottom i{height:29px;width:17px;border:1px solid #bababc;border-radius:20px;position:relative}.hero-bottom i:after{content:'';position:absolute;left:7px;top:7px;width:1px;height:7px;background:var(--accent);animation:scrollcue 1.8s infinite}@keyframes scrollcue{to{transform:translateY(9px);opacity:0}}.side h2{margin-bottom:24px}.side p:not(.eyebrow){color:#c8c8ca;line-height:1.85;font-size:16px}.chapter-spec{display:block;font-size:12px;letter-spacing:1.2px;color:var(--accent);margin:25px 0}.chapter-nav{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:25;display:flex;flex-direction:column;transition:opacity .3s}.chapter-nav a{width:44px;height:35px;display:flex;align-items:center;justify-content:center;position:relative}.chapter-nav a:after{content:'';width:4px;height:4px;background:#969698;border-radius:50%;transition:transform .3s,background .3s}.chapter-nav a.active:after{background:var(--accent);transform:scale(2.5);box-shadow:0 0 0 4px #f0373215}.chapter-nav span{position:absolute;right:38px;font-size:12px;opacity:0;transition:opacity .2s;white-space:nowrap}.chapter-nav a:hover span,.chapter-nav a:focus-visible span{opacity:1}.past-journey .chapter-nav{opacity:0;pointer-events:none}.past-journey #stage{opacity:0}.past-journey .header{background:#111112ee;border-bottom:1px solid var(--line)}
.content-surface{background:var(--bg);position:relative}.section{padding-block:110px}.section h2{font-size:clamp(48px,5vw,76px)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:45px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:340px;color:var(--muted);margin-bottom:4px}.work{background:#f3f3f3;color:#202023}.work .eyebrow{color:#a52724}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}.filters button{border:1px solid #c2c2c5;color:#4d4d50;padding:10px 18px;min-height:44px;font-size:14px}.filters button.active{background:#202023;color:white;border-color:#202023}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.project{border:0;padding:0;color:inherit;min-width:0;text-align:left}.project.wide{grid-column:span 2}.project img{width:100%;height:320px;object-fit:cover;transition:filter .3s}.project:hover img{filter:brightness(.85)}.project-meta{display:block;margin-top:15px}.project-meta strong{display:block;font-size:17px;font-weight:700}.project-meta>span{display:block;font-size:12px;letter-spacing:1px;color:#606064;margin-top:4px}.technology{display:grid;grid-template-columns:1fr 1fr;gap:90px}.technology h2{margin-bottom:28px}.tech-list details{border-bottom:1px solid var(--line)}.tech-list details:first-child{border-top:1px solid var(--line)}.tech-list summary{display:flex;justify-content:space-between;align-items:center;padding:22px 0;font-size:18px;gap:15px;list-style:none;min-height:54px}.tech-list summary::-webkit-details-marker{display:none}.plus{font-size:25px;color:var(--accent)}details[open] .plus{transform:rotate(45deg)}.tech-list p{color:var(--muted);font-size:16px;margin:0 0 25px}.tech-note{display:flex;align-items:center;gap:20px;margin-top:35px}.tech-note>span{font:700 72px/1 var(--display);color:var(--accent)}.tech-note>span>span{font-size:25px;margin-left:5px}.tech-note p{color:var(--muted);font-size:14px;margin:0}.process{border-top:1px solid var(--line);padding-top:50px}.process-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:30px}.process-grid h2{font-size:45px}.process-grid>div>span{font-size:12px;letter-spacing:1px;color:var(--accent)}.process-grid h3{font-size:18px;line-height:1.5;margin:20px 0 12px}.process-grid p{font-size:16px;color:var(--muted)}.contact{background:#1c1c1f}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px}.contact h2{font-size:clamp(58px,6vw,86px)}.contact p{color:var(--muted);font-size:16px}.contact-main{display:block;font-size:clamp(18px,2vw,26px);margin-top:28px;overflow-wrap:anywhere}.contact-phone{font-size:25px;display:block;margin-top:8px}.address{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-block:35px}.address strong{font-size:14px}.address .text-link{font-size:14px}.team{border-top:1px solid var(--line);padding-top:12px}.team summary{padding:12px 0;min-height:48px}.inquiry{background:#28282c;border:1px solid #ffffff1c;padding:35px;align-self:start;min-width:0}.inquiry h3{font:700 36px/1.1 var(--display)}.inquiry>p{margin:12px 0 26px}.inquiry label{display:block;font-size:14px;margin:20px 0 8px}.inquiry input,.inquiry select,.inquiry textarea{width:100%;min-width:0;background:#1a1a1d;border:1px solid #ffffff45;color:white;padding:12px;font-size:16px;border-radius:0}.inquiry textarea{min-height:140px;resize:vertical}.inquiry input::placeholder,.inquiry textarea::placeholder{color:#b2bdb4}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row>div{min-width:0}.inquiry .form-note{font-size:13px;line-height:1.7;margin:18px 0}.inquiry .button{width:100%}.inquiry #form-status{margin-bottom:0}.inquiry #email-fallback{text-decoration:underline}dialog{width:min(1050px,calc(100% - 32px));max-height:90dvh;background:#18181b;color:white;padding:20px;border:1px solid #ffffff30}dialog::backdrop{background:#000d}dialog img{max-height:70dvh;margin:auto;width:auto;object-fit:contain}dialog p{margin:15px 0 0}.close-dialog{border:1px solid #ffffff40;display:block;padding:10px 15px;margin:0 0 15px auto;min-height:44px}.footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:35px;font-size:14px}.footer p{margin:0;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}[hidden]{display:none!important}
@media(min-width:1600px){.chapter-inner.side>*{max-width:480px}}
@media(max-width:1050px){.header{padding-inline:28px;gap:25px}.header nav{gap:18px}.wrap,.chapter-inner{width:calc(100% - 72px)}h1{font-size:clamp(78px,11vw,130px)}.side h2{font-size:72px}.chapter-inner.side>*{max-width:350px}.technology,.contact-grid{gap:35px}.process-grid{grid-template-columns:1fr 1fr}.gallery{gap:25px 18px}.project img{height:250px}.inquiry{padding:24px}}
@media(max-width:760px){html{scroll-padding-top:90px}.header{padding:18px 20px;min-height:85px;gap:15px;background:linear-gradient(#111112d9,#11111220)}.brand{font-size:27px}.brand span{font-size:9px}.header-cta{margin-left:auto}.menu{display:block}.header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#1b1b1e;padding:20px;flex-direction:column;border-bottom:1px solid var(--line);margin:0}.header nav.open{display:flex}.header nav a{padding:8px;font-size:16px}.wrap,.chapter-inner{width:calc(100% - 40px)}h1{font-size:clamp(65px,15vw,104px);line-height:.97}.hero{min-height:100svh;align-items:start}.hero .chapter-inner{align-self:start;padding-top:140px}.hero .intro{font-size:16px;max-width:300px}.hero .eyebrow{font-size:11px;letter-spacing:1.5px}.hero-bottom{bottom:22px;left:20px;right:20px;flex-wrap:wrap;font-size:10px;letter-spacing:.7px}.hero-bottom>span{display:none}.hero-bottom button{font-size:12px;padding-inline:9px}.chapter{min-height:125svh;align-items:end}.chapter-inner.side{padding-block:62svh 65px}.chapter-inner.side>*{max-width:510px}.side h2{font-size:clamp(53px,11vw,72px)}.side p:not(.eyebrow){font-size:16px}.chapter-nav{right:4px;top:50%;background:#11111266;border-radius:20px}.chapter-nav a{height:30px;width:32px}.chapter-nav span{display:none}.vignette{background:linear-gradient(0deg,#111112f5 0%,#111112d9 27%,transparent 65%)}.scene-fallback{inset:20% 8% 35%}.section{padding-block:65px}.section-heading{display:block}.section-heading>p{margin-top:25px;max-width:none}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project.wide{grid-column:span 2}.technology,.contact-grid{grid-template-columns:1fr;gap:40px}.section h2{font-size:58px}.footer{flex-direction:column;align-items:start}.past-journey .chapter-nav{display:none}.chapter-spec{font-size:11px}}
@media(max-width:480px){.header-cta{display:none}.menu{margin-left:auto}.gallery{grid-template-columns:1fr}.project.wide{grid-column:auto}.project img{height:245px}.process-grid,.address,.form-row{grid-template-columns:1fr}.process-grid>div{padding-top:20px;border-top:1px solid var(--line)}.inquiry{padding:24px 18px}.contact-main{font-size:18px}.hero .chapter-inner{padding-top:125px}h1{font-size:clamp(58px,15vw,76px)}.eyebrow{font-size:11px}.side h2{font-size:clamp(49px,12vw,65px)}.chapter-inner.side{padding-bottom:55px}.chapter-inner.side>*{max-width:calc(100% - 15px)}}
@media(horizontal-viewport-segments:2){.chapter-inner.side{width:calc(env(viewport-segment-width 0 0) - 64px);margin-left:32px;margin-right:auto}.chapter-inner.side>*{max-width:100%}.hero .chapter-inner{width:calc(env(viewport-segment-width 0 0) - 64px);margin-left:32px}.hero h1{font-size:clamp(56px,8vw,95px)}.technology,.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:max(40px,calc(env(viewport-segment-left 1 0) - env(viewport-segment-right 0 0) + 40px))}.form-row{grid-template-columns:1fr}.header{padding-left:32px}.header nav{gap:16px}.hero-bottom{justify-content:flex-start}.hero-bottom button{margin-left:auto}}
@media(vertical-viewport-segments:2){.header{max-width:env(viewport-segment-width 0 0)}.hero .chapter-inner{padding-top:max(125px,env(safe-area-inset-top))}.hero-bottom{bottom:max(22px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.chapter{min-height:100svh}}
.motion-reduced{scroll-behavior:auto}.motion-reduced .hero-bottom i:after{animation:none}.header,.hero-bottom{padding-right:max(20px,env(safe-area-inset-right))}.technology>div,.contact-grid>div{min-width:0}h2,h3{overflow-wrap:break-word}
.gallery-more{margin-top:35px;background:#202023;border-color:#202023;color:white}.gallery-more:hover{background:#39393d}.more-services{border-top:1px solid var(--line);padding-top:15px;margin-top:30px}.more-services summary{padding:10px 0;min-height:44px}.more-services p{color:var(--muted);margin-top:15px}.supported{font-size:12px;color:var(--muted);max-width:170px}.hero .chapter-inner{z-index:2}@media(max-width:760px){.hero .vignette{background:transparent}.hero h1{max-width:100%}.hero-bottom{z-index:3}.hero-bottom a{font-size:10px}.hero-bottom button{background:#11111299}}
@media(max-width:760px){.hero{min-height:100svh}.at-intro .vignette{background:linear-gradient(0deg,#11111260,transparent 40%)}}
.lightbox-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px}.lightbox-controls button{padding:8px 15px;border:1px solid #ffffff40;min-height:44px;font-size:14px}.lightbox-controls span{font-size:14px;color:var(--muted)}

/* Wizard original palette: black, white, #f03732. */
.button{color:#fff}.button:hover{color:#fff}.skip{color:#fff}.work .filters button.active{background:#f03732;border-color:#f03732}.gallery-more{background:#202023;border-color:#202023}.gallery-more:hover{background:#f03732;border-color:#f03732}
.header .brand-logo{flex-shrink:0;width:170px;line-height:0;letter-spacing:0}.brand-logo img{width:100%;height:auto;object-fit:contain}@media(max-width:760px){.header .brand-logo{width:150px}}
.hero h1{text-transform:none}
.language-switch{display:flex;gap:6px}.hero-bottom .language-switch button{min-width:44px;min-height:44px;padding:8px;font-size:13px;letter-spacing:1px}.language-switch button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:white}@media(max-width:760px){.hero-bottom{gap:12px}.language-switch{order:0}.hero-bottom>a{order:2;flex-basis:100%}.hero-bottom>#motion-toggle{margin-left:auto}}html[lang="en"] .hero h1,html[lang="it"] .hero h1{font-size:clamp(65px,7.4vw,126px)}@media(max-width:760px){html[lang="en"] .hero h1,html[lang="it"] .hero h1{font-size:clamp(52px,12vw,76px)}}

.footer .brand-logo{display:block;flex-shrink:0;width:170px;line-height:0;letter-spacing:0}@media(max-width:760px){.footer .brand-logo{width:150px}}

.hero h1.hero-title,html[lang="en"] .hero h1.hero-title,html[lang="it"] .hero h1.hero-title{font-size:clamp(56px,6.2vw,104px);line-height:.98;text-transform:uppercase}@media(max-width:760px){.hero h1.hero-title,html[lang="en"] .hero h1.hero-title{font-size:clamp(40px,10.5vw,64px)}html[lang="it"] .hero h1.hero-title{font-size:clamp(32px,8.8vw,54px)}}
