@font-face{font-family:"Spline Sans";src:url("assets/fonts/SplineSans-variable.ttf") format("truetype");font-weight:300 700;font-style:normal;font-display:swap}
:root{--paper:#f8f8f6;--ink:#181818;--muted:#666662;--line:#d7d7d2;--gutter:clamp(24px,5.6vw,96px);--film:min(68%,1100px)}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,video:focus-visible{outline:2px solid currentColor;outline-offset:6px}button{cursor:pointer}a:hover{text-decoration:underline;text-underline-offset:5px}::selection{background:#222;color:#fff}.wrap{width:calc(100% - var(--gutter)*2);max-width:1600px;margin-inline:auto}.site-header{height:104px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line);background:rgba(248,248,246,.94);position:relative;z-index:20}.brand{display:block;width:210px;flex-shrink:0}.brand img{width:100%;height:auto;display:block;filter:brightness(0)}.site-header nav{display:flex;gap:36px;margin-left:auto;margin-right:52px;font-size:14px}.language{display:flex;align-items:center;gap:7px;font-size:13px}.language button{background:none;border:0;min-height:44px;min-width:32px;padding:0;color:#777}.language button[aria-pressed=true]{color:var(--ink);font-weight:600}.language span{color:#aaa}.hero{position:relative;padding-top:74px;padding-bottom:58px;min-height:calc(100svh - 104px);max-height:1050px;background:radial-gradient(ellipse at 68% 48%,rgba(217,217,212,.17),transparent 67%)}.eyebrow{display:flex;align-items:center;gap:30px;font-size:12px;text-transform:uppercase;letter-spacing:.13em}.hero-eyebrow{justify-content:space-between;color:#555}.hero h1{font-size:clamp(80px,11.8vw,180px);font-weight:620;line-height:1.02;letter-spacing:-.055em;max-width:none;margin:78px 0 56px;text-wrap:balance}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-start;gap:40px}.hero-mark{font-size:14px;letter-spacing:.03em;padding-top:8px}.hero-bottom p{font-size:clamp(20px,2.1vw,31px);line-height:1.4;letter-spacing:-.035em;max-width:580px;width:48%;margin:0}.explore{display:inline-block;margin-top:60px;font-size:14px;border-bottom:1px solid #444;padding-bottom:7px}.vision,.projects-intro{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:7%;padding-block:108px}.section-side{font-size:14px}.section-number{color:var(--muted);font-size:12px;letter-spacing:.08em}.section-side h2{font-size:15px;line-height:1.5;font-weight:400;margin:18px 0}.vision-copy{max-width:810px}.vision-copy p{font-size:18px;line-height:1.75;margin:0 0 32px;letter-spacing:-.01em}.vision-copy .lead,.lead{font-size:clamp(21px,2vw,28px);line-height:1.5;letter-spacing:-.03em;margin:0 0 30px}.vision-copy .statement{font-size:clamp(28px,3.1vw,43px);line-height:1.3;letter-spacing:-.045em;padding-block:36px;margin-block:20px}.vision-copy .closing{font-size:clamp(24px,2.5vw,34px);line-height:1.4;letter-spacing:-.04em;margin-top:48px;margin-bottom:0}.projects-intro{padding-bottom:64px}.disclaimer{font-size:13px;color:var(--muted);line-height:1.6;max-width:520px;margin-top:24px}.film-index{margin-top:32px;font-size:14px}.film-index summary{cursor:pointer;padding:12px 0;width:fit-content}.film-index ol{list-style:decimal-leading-zero;padding-left:26px;columns:2;column-gap:32px;margin:12px 0 0}.film-index li{padding:8px 0 8px 10px;break-inside:avoid;line-height:1.5}.film-index li::marker{font-size:11px;color:var(--muted)}.film{padding:65px 0 112px;scroll-margin-top:28px}.film-inner{width:var(--film);margin-inline:auto}.film-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:12px;letter-spacing:.09em;color:var(--muted);text-transform:uppercase}.project-anchor{font-size:16px;line-height:1;padding:8px;color:#555}.player{position:relative;aspect-ratio:16/9;background:#e5e5e1;overflow:hidden}.player video{display:block;width:100%;height:100%;object-fit:contain;background:#111}.player .audio-button{position:absolute;right:16px;top:16px;display:flex;align-items:center;gap:8px;background:rgba(15,15,15,.7);color:white;border:1px solid #ffffff40;border-radius:24px;min-height:40px;padding:10px 14px;font-size:12px;backdrop-filter:blur(8px)}.audio-button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.5}.play-button{position:absolute;left:20px;top:20px;width:42px;height:42px;border:1px solid #ffffff60;border-radius:50%;background:#1119;color:white;display:grid;place-items:center;font-size:14px;backdrop-filter:blur(8px)}.play-button[hidden]{display:none}.player-error{position:absolute;inset:40% 10%;color:#fff;text-align:center;font-size:16px}.film-caption{display:grid;grid-template-columns:1fr 1.12fr;gap:8%;margin-top:28px}.film h2{font-size:clamp(23px,2.1vw,32px);font-weight:400;line-height:1.22;letter-spacing:-.045em;margin:0;text-wrap:balance}.film-caption p{margin:0;font-size:16px;line-height:1.65;color:#575754;letter-spacing:-.01em}.film:not(:last-child) .film-inner:after{content:"";display:block;height:1px;background:var(--line);margin-top:66px}.showreel{padding-top:54px;padding-bottom:124px}.showreel .film-top{border-top:1px solid var(--line);padding-top:28px}.coming-soon{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px;background:radial-gradient(ellipse at 45% 60%,#252525,#111 75%);color:#f3f3ee}.coming-soon strong{font-weight:400;font-size:clamp(40px,7vw,100px);letter-spacing:-.065em}.coming-soon span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#b5b5b0}.contact{background:#171717;color:#f3f3ee;padding-top:80px;background-image:radial-gradient(ellipse at 78% 18%,#303030 0%,#232323 34%,transparent 72%),linear-gradient(145deg,#151515 10%,#1c1c1c 60%,#141414 100%)}.contact .eyebrow{color:#a4a49e}.contact h2{font-size:clamp(45px,6.4vw,102px);line-height:1.07;letter-spacing:-.06em;font-weight:400;max-width:1050px;margin:70px 0 64px}.contact-bottom{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start;padding-bottom:100px}.contact-bottom>a{font-size:clamp(21px,2.4vw,36px);letter-spacing:-.035em;border-bottom:1px solid #888;padding-bottom:10px;width:fit-content}.contact-bottom p{font-size:17px;line-height:1.75;margin:0;color:#bcbcb6;max-width:570px}footer{border-top:1px solid #484844;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:135px;font-size:12px;color:#a4a49e}footer .brand{width:185px}footer .brand img{filter:grayscale(1) brightness(2)}.skip-link{position:fixed;top:-80px;left:24px;background:#111;color:#fff;padding:16px;z-index:100}.skip-link:focus{top:12px}.noscript{padding:24px;background:#fff;color:#111}
@media(min-width:1800px){:root{--film:1100px}.hero{min-height:850px}}
@media(max-width:1000px){:root{--film:80%}.site-header nav{margin-right:16px;gap:22px}.brand{width:175px}.hero h1{max-width:none}.hero{min-height:740px}.vision,.projects-intro{gap:5%;grid-template-columns:1fr 2.5fr}.film-caption{gap:5%}.contact-bottom{gap:7%}}
@media(max-width:640px){:root{--gutter:24px;--film:calc(100% - 32px)}html{scroll-padding-top:24px}.site-header{height:86px;gap:10px;padding-inline:20px}.brand{width:152px}.site-header nav{gap:0;margin:0 0 0 auto}.site-header nav a{display:none}.site-header nav a[href="#progetti"]{display:block;font-size:13px}.language{gap:0;font-size:12px}.language button{min-width:28px}.hero{padding-top:36px;min-height:620px;max-height:none;padding-bottom:38px}.hero-eyebrow{font-size:10px;letter-spacing:.1em}.hero-eyebrow span:last-child{display:none}.hero h1{font-size:clamp(52px,16.4vw,96px);line-height:1.05;letter-spacing:-.055em;margin:72px 0 40px;max-width:520px}.hero-bottom{display:block}.hero-mark{display:none}.hero-bottom p{width:100%;max-width:340px;font-size:23px}.explore{margin-top:40px}.vision,.projects-intro{grid-template-columns:1fr;padding-block:54px;gap:34px}.section-side{display:flex;align-items:center;gap:24px}.section-side h2{margin:0;font-size:14px}.vision-copy p{font-size:17px;line-height:1.7}.vision-copy .lead,.lead{font-size:21px}.vision-copy .statement{font-size:31px;padding-block:16px;margin-block:22px}.vision-copy .closing{font-size:27px;margin-top:30px}.projects-intro{padding-bottom:30px}.film-index ol{columns:1}.film{padding:34px 0 30px;scroll-margin-top:14px}.film-top,.film-caption{margin-inline:8px}.film-top{margin-bottom:12px;font-size:10px}.film-caption{grid-template-columns:1fr;gap:16px;margin-top:22px}.film h2{font-size:25px;max-width:350px;text-wrap:initial}.film-caption p{font-size:16px;line-height:1.65}.film:not(:last-child) .film-inner:after{margin-top:42px;margin-inline:8px}.player .audio-button{right:10px;top:10px;min-height:36px;padding:8px 11px;font-size:11px}.play-button{left:10px;top:10px;width:36px;height:36px}.showreel{padding-bottom:70px}.coming-soon{gap:18px}.contact{padding-top:48px}.contact h2{font-size:clamp(40px,12.3vw,48px);margin:48px 0 40px}.contact-bottom{grid-template-columns:1fr;gap:35px;padding-bottom:55px}.contact-bottom>a{font-size:clamp(22px,6.9vw,27px)}.contact-bottom p{font-size:16px}footer{padding-block:30px;flex-wrap:wrap;gap:28px}footer .brand{width:160px}footer>span{order:3;width:100%;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Brand Films update: variable display type and restrained logo ribbon. */
.hero h1,.section-side h2,.film h2,.contact h2,.coming-soon strong{font-family:"Spline Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:620;font-synthesis:none}
.hero h1{white-space:nowrap}
.section-side h2{letter-spacing:-.02em}
.film h2{letter-spacing:-.035em;line-height:1.3}
.contact h2{letter-spacing:-.045em;line-height:1.12}
.vision-copy .mission{margin-bottom:0}
.logo-marquee{position:relative;padding:26px 0 42px;background:var(--paper);border-top:1px solid var(--line)}
.logo-window{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent)}
.logo-track{display:flex;width:max-content;animation:logo-scroll 270s linear infinite;animation-play-state:paused}
.logo-group{display:flex;align-items:center;gap:48px;padding-right:48px;flex-shrink:0}
.logo-cell{display:block;width:100px;height:74px;flex-shrink:0;background-image:url("assets/brand-logos.png");background-size:900px 500px;background-repeat:no-repeat;filter:grayscale(1);opacity:.78}
.logo-marquee.is-visible:not(.is-paused) .logo-track{animation-play-state:running}
.logo-window:hover .logo-track,.logo-window:focus-within .logo-track{animation-play-state:paused!important}
.logo-pause{position:absolute;right:var(--gutter);bottom:5px;display:grid;place-items:center;width:32px;height:32px;padding:8px;background:transparent;color:#767672;border:0;border-radius:50%}
.logo-pause:hover{background:#e9e9e4;color:#222}
.logo-pause svg{grid-area:1/1;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4}
.logo-pause .resume-icon{display:none}
.logo-pause[aria-pressed="true"] .pause-icon{display:none}
.logo-pause[aria-pressed="true"] .resume-icon{display:block}
@keyframes logo-scroll{to{transform:translateX(-50%)}}
@media(max-width:640px){.logo-marquee{padding-top:20px;padding-bottom:34px}.logo-group{gap:28px;padding-right:28px}.logo-cell{width:90px;height:64px;background-size:810px 450px}.logo-pause{bottom:1px}.contact h2{font-size:clamp(35px,10.6vw,48px)}}
@media(prefers-reduced-motion:reduce){.logo-track{animation:none!important}.logo-window{overflow-x:auto;scrollbar-width:thin;mask-image:none}.logo-group[aria-hidden="true"]{display:none}.logo-pause{display:none}}

/* One continuous image treatment behind the hero and introduction only. */
.intro-surface{position:relative;isolation:isolate;background:var(--paper)}
/* Opacity applies to the composite, so crossfades never flash white. */
.intro-slideshow{position:absolute;inset:0 0 auto;height:56.25vw;z-index:-1;pointer-events:none;overflow:hidden;opacity:.60;mask-image:linear-gradient(to bottom,#000 0%,#000 70%,rgba(0,0,0,.65) 82%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 70%,rgba(0,0,0,.65) 82%,transparent 100%)}
.intro-slideshow img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center top}
.slide-next{opacity:0}
.slideshow-toggle{position:absolute;right:var(--gutter);top:24px;border:0;background:transparent;padding:8px;font-size:15px;opacity:.65;z-index:2}

.intro-surface .hero{background:none}
.hero-mark{line-height:1.5;font-size:12px;letter-spacing:.07em}
@media(max-width:640px){.hero-mark{display:block;padding-top:0;margin-bottom:24px;font-size:11px}}

/* On phones, fill the opening screen with a proportional side crop. */
@media(max-width:768px){.intro-slideshow{height:max(620px,calc(100svh - 104px))}}
@media(max-width:640px){.intro-slideshow{height:max(620px,calc(100svh - 86px))}}

/* Project introduction takes the former vision body typography. */
.projects-description{font-size:18px;font-weight:400;line-height:1.75;letter-spacing:-.01em;margin:0 0 32px}
@media(max-width:640px){.projects-description{font-size:17px;line-height:1.7}}
