CINXE.COM
Recommendation systems | TensorFlow
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="TensorFlow"> <meta property="og:type" content="website"><meta name="theme-color" content="#ff6f00"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/tensorflow/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/images/favicon.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/images/apple-touch-icon-180x180.png"><link rel="canonical" href="https://www.tensorflow.org/resources/recommendation-systems"><link rel="search" type="application/opensearchdescription+xml" title="TensorFlow" href="https://www.tensorflow.org/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://www.tensorflow.org/resources/recommendation-systems" /><link rel="alternate" hreflang="x-default" href="https://www.tensorflow.org/resources/recommendation-systems" /><link rel="alternate" hreflang="ar" href="https://www.tensorflow.org/resources/recommendation-systems?hl=ar" /><link rel="alternate" hreflang="bn" href="https://www.tensorflow.org/resources/recommendation-systems?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://www.tensorflow.org/resources/recommendation-systems?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://www.tensorflow.org/resources/recommendation-systems?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://www.tensorflow.org/resources/recommendation-systems?hl=fa" /><link rel="alternate" hreflang="fr" href="https://www.tensorflow.org/resources/recommendation-systems?hl=fr" /><link rel="alternate" hreflang="he" href="https://www.tensorflow.org/resources/recommendation-systems?hl=he" /><link rel="alternate" hreflang="hi" href="https://www.tensorflow.org/resources/recommendation-systems?hl=hi" /><link rel="alternate" hreflang="id" href="https://www.tensorflow.org/resources/recommendation-systems?hl=id" /><link rel="alternate" hreflang="it" href="https://www.tensorflow.org/resources/recommendation-systems?hl=it" /><link rel="alternate" hreflang="ja" href="https://www.tensorflow.org/resources/recommendation-systems?hl=ja" /><link rel="alternate" hreflang="ko" href="https://www.tensorflow.org/resources/recommendation-systems?hl=ko" /><link rel="alternate" hreflang="pl" href="https://www.tensorflow.org/resources/recommendation-systems?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://www.tensorflow.org/resources/recommendation-systems?hl=pt-br" /><link rel="alternate" hreflang="pt" href="https://www.tensorflow.org/resources/recommendation-systems?hl=pt" /><link rel="alternate" hreflang="ru" href="https://www.tensorflow.org/resources/recommendation-systems?hl=ru" /><link rel="alternate" hreflang="es" href="https://www.tensorflow.org/resources/recommendation-systems?hl=es" /><link rel="alternate" hreflang="es-419" href="https://www.tensorflow.org/resources/recommendation-systems?hl=es-419" /><link rel="alternate" hreflang="th" href="https://www.tensorflow.org/resources/recommendation-systems?hl=th" /><link rel="alternate" hreflang="tr" href="https://www.tensorflow.org/resources/recommendation-systems?hl=tr" /><link rel="alternate" hreflang="vi" href="https://www.tensorflow.org/resources/recommendation-systems?hl=vi" /><title>Recommendation systems | TensorFlow</title> <meta property="og:title" content="Recommendation systems | TensorFlow"><meta name="description" content="Explore open source libraries and tools to build production-ready recommendation systems."> <meta property="og:description" content="Explore open source libraries and tools to build production-ready recommendation systems."><meta property="og:url" content="https://www.tensorflow.org/resources/recommendation-systems"><meta property="og:image" content="https://www.tensorflow.org/static/images/tf_logo_social.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Recommendation systems | TensorFlow" } </script> <link href="/static/en/site-assets/images/marketing/favicon.png" rel="shortcut icon"/> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, height=device-height" name="viewport"/> <link href="https://fonts.googleapis.com/css?family=Google+Sans:+400,500,700" rel="stylesheet" data-page-link> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="tensorflow-theme" type="article" layout="full" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="tensorFlow" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/images/lockup.svg" class="devsite-site-logo" alt="TensorFlow"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://www.tensorflow.org/install" track-metadata-eventdetail="https://www.tensorflow.org/install" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - install" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Install" track-name="install" > Install </a> </tab> <tab class="devsite-dropdown "> <a href="https://www.tensorflow.org/learn" track-metadata-eventdetail="https://www.tensorflow.org/learn" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - learn" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" > Learn </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Learn" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/learn" track-metadata-position="nav - learn" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column tfo-menu-column-learn"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/learn" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/learn" track-metadata-position="nav - learn" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Introduction </div> <div class="devsite-nav-item-description"> New to TensorFlow? </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/tutorials" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/tutorials" track-metadata-position="nav - learn" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Tutorials </div> <div class="devsite-nav-item-description"> Learn how to use TensorFlow with end-to-end examples </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/guide" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/guide" track-metadata-position="nav - learn" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Guide </div> <div class="devsite-nav-item-description"> Learn framework concepts and components </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/resources/learn-ml" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/resources/learn-ml" track-metadata-position="nav - learn" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Learn ML </div> <div class="devsite-nav-item-description"> Educational resources to master your path with TensorFlow </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://www.tensorflow.org/api" track-metadata-eventdetail="https://www.tensorflow.org/api" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - api" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: API" track-name="api" > API </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for API" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/api" track-metadata-position="nav - api" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: API" track-name="api" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/api/stable" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/api/stable" track-metadata-position="nav - api" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> TensorFlow (v2.16.1) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/versions" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/versions" track-metadata-position="nav - api" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Versions… </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://js.tensorflow.org/api/latest/" track-type="nav" track-metadata-eventdetail="https://js.tensorflow.org/api/latest/" track-metadata-position="nav - api" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> TensorFlow.js </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/lite/api_docs" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/lite/api_docs" track-metadata-position="nav - api" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> TensorFlow Lite </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/tfx/api_docs" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/tfx/api_docs" track-metadata-position="nav - api" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> TFX </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-active "> <a href="https://www.tensorflow.org/resources/models-datasets" track-metadata-eventdetail="https://www.tensorflow.org/resources/models-datasets" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - ecosystem" track-metadata-module="primary nav" aria-label="Ecosystem, selected" data-category="Site-Wide Custom Events" data-label="Tab: Ecosystem" track-name="ecosystem" > Ecosystem </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Ecosystem" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/resources/models-datasets" track-metadata-position="nav - ecosystem" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Ecosystem" track-name="ecosystem" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>LIBRARIES</li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/js" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/js" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> TensorFlow.js </div> <div class="devsite-nav-item-description"> Develop web ML applications in JavaScript </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/lite" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/lite" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> TensorFlow Lite </div> <div class="devsite-nav-item-description"> Deploy ML on mobile, microcontrollers and other edge devices </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/tfx" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/tfx" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> TFX </div> <div class="devsite-nav-item-description"> Build production ML pipelines </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/resources/libraries-extensions" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/resources/libraries-extensions" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="libraries" tooltip > <div class="devsite-nav-item-title"> All libraries </div> <div class="devsite-nav-item-description"> Create advanced models and extend TensorFlow </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>RESOURCES</li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/resources/models-datasets" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/resources/models-datasets" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="resources" tooltip > <div class="devsite-nav-item-title"> Models & datasets </div> <div class="devsite-nav-item-description"> Pre-trained models and datasets built by Google and the community </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/resources/tools" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/resources/tools" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="resources" tooltip > <div class="devsite-nav-item-title"> Tools </div> <div class="devsite-nav-item-description"> Tools to support and accelerate TensorFlow workflows </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/responsible_ai" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/responsible_ai" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="resources" tooltip > <div class="devsite-nav-item-title"> Responsible AI </div> <div class="devsite-nav-item-description"> Resources for every stage of the ML workflow </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/resources/recommendation-systems" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/resources/recommendation-systems" track-metadata-position="nav - ecosystem" track-metadata-module="tertiary nav" track-metadata-module_headline="resources" tooltip > <div class="devsite-nav-item-title"> Recommendation systems </div> <div class="devsite-nav-item-description"> Build recommendation systems with open source tools </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://www.tensorflow.org/community" track-metadata-eventdetail="https://www.tensorflow.org/community" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Community" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/community" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/community/groups" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/community/groups" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Groups </div> <div class="devsite-nav-item-description"> User groups, interest groups and mailing lists </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/community/contribute" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/community/contribute" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Contribute </div> <div class="devsite-nav-item-description"> Guide for contributing to code and documentation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://blog.tensorflow.org/" track-type="nav" track-metadata-eventdetail="https://blog.tensorflow.org/" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Blog </div> <div class="devsite-nav-item-description"> Stay up to date with all things TensorFlow </div> </a> </li> <li class="devsite-nav-item"> <a href="https://discuss.tensorflow.org" track-type="nav" track-metadata-eventdetail="https://discuss.tensorflow.org" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Forum </div> <div class="devsite-nav-item-description"> Discussion platform for the TensorFlow community </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://www.tensorflow.org/about" track-metadata-eventdetail="https://www.tensorflow.org/about" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - why tensorflow" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Why TensorFlow" track-name="why tensorflow" > Why TensorFlow </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Why TensorFlow" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/about" track-metadata-position="nav - why tensorflow" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Why TensorFlow" track-name="why tensorflow" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/about" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/about" track-metadata-position="nav - why tensorflow" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> About </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/about/case-studies" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/about/case-studies" track-metadata-position="nav - why tensorflow" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Case studies </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="TensorFlow" tenant-name="TensorFlow" > <form class="devsite-search-form" action="https://www.tensorflow.org/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//github.com/tensorflow" data-category="Site-Wide Custom Events" data-label="Site header link" > GitHub </a> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://www.tensorflow.org/resources/models-datasets" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Ecosystem </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://www.tensorflow.org/resources/models-datasets" track-metadata-eventdetail="https://www.tensorflow.org/resources/models-datasets" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - models & datasets" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Models & datasets" track-name="models & datasets" > Models & datasets </a> </tab> <tab > <a href="https://www.tensorflow.org/resources/tools" track-metadata-eventdetail="https://www.tensorflow.org/resources/tools" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - tools" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" > Tools </a> </tab> <tab > <a href="https://www.tensorflow.org/resources/libraries-extensions" track-metadata-eventdetail="https://www.tensorflow.org/resources/libraries-extensions" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - libraries & extensions" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Libraries & extensions" track-name="libraries & extensions" > Libraries & extensions </a> </tab> <tab > <a href="https://www.tensorflow.org/resources/learn-ml" track-metadata-eventdetail="https://www.tensorflow.org/resources/learn-ml" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - learn ml" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Learn ML" track-name="learn ml" > Learn ML </a> </tab> <tab > <a href="https://www.tensorflow.org/responsible_ai" track-metadata-eventdetail="https://www.tensorflow.org/responsible_ai" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - responsible ai" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Responsible AI" track-name="responsible ai" > Responsible AI </a> </tab> <tab class="devsite-active"> <a href="https://www.tensorflow.org/resources/recommendation-systems" track-metadata-eventdetail="https://www.tensorflow.org/resources/recommendation-systems" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - recommendation systems" track-metadata-module="primary nav" aria-label="Recommendation systems, selected" data-category="Site-Wide Custom Events" data-label="Tab: Recommendation systems" track-name="recommendation systems" > Recommendation systems </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars hidden> <div class="devsite-book-nav-filter" hidden> <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="tensorFlow" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/images/lockup.svg" class="devsite-site-logo" alt="TensorFlow"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/install" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Install" track-name="install" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Install" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Install </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" > <span class="devsite-nav-text" tooltip menu="Learn"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Learn"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: API" track-name="api" data-category="Site-Wide Custom Events" data-label="Responsive Tab: API" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > API </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: API" track-name="api" > <span class="devsite-nav-text" tooltip menu="API"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="API"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/resources/models-datasets" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Ecosystem" track-name="ecosystem" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Ecosystem" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Ecosystem </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Ecosystem" track-name="ecosystem" > <span class="devsite-nav-text" tooltip menu="Ecosystem"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Ecosystem"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/resources/models-datasets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Models & datasets" track-name="models & datasets" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Models & datasets" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Models & datasets </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tools" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/libraries-extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Libraries & extensions" track-name="libraries & extensions" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Libraries & extensions" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Libraries & extensions </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/learn-ml" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Learn ML" track-name="learn ml" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn ML" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn ML </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/responsible_ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Responsible AI" track-name="responsible ai" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Responsible AI" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Responsible AI </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/recommendation-systems" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Recommendation systems" track-name="recommendation systems" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Recommendation systems" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Recommendation systems </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > <span class="devsite-nav-text" tooltip menu="Community"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Community"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Why TensorFlow" track-name="why tensorflow" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Why TensorFlow" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Why TensorFlow </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Why TensorFlow" track-name="why tensorflow" > <span class="devsite-nav-text" tooltip menu="Why TensorFlow"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Why TensorFlow"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="//github.com/tensorflow" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: GitHub" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > GitHub </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="Learn" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Introduction" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Introduction </span> </a> </li> <li class="devsite-nav-item"> <a href="/tutorials" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tutorials" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tutorials </span> </a> </li> <li class="devsite-nav-item"> <a href="/guide" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guide" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Guide </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/learn-ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn ML </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="API" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/api/stable" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow (v2.16.1)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TensorFlow (v2.16.1) </span> </a> </li> <li class="devsite-nav-item"> <a href="/versions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Versions…" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Versions… </span> </a> </li> <li class="devsite-nav-item"> <a href="https://js.tensorflow.org/api/latest/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow.js" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TensorFlow.js </span> </a> </li> <li class="devsite-nav-item"> <a href="/lite/api_docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow Lite" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TensorFlow Lite </span> </a> </li> <li class="devsite-nav-item"> <a href="/tfx/api_docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TFX" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TFX </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Ecosystem" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > LIBRARIES </span> </span> </li> <li class="devsite-nav-item"> <a href="/js" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow.js" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TensorFlow.js </span> </a> </li> <li class="devsite-nav-item"> <a href="/lite" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow Lite" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TensorFlow Lite </span> </a> </li> <li class="devsite-nav-item"> <a href="/tfx" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TFX" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TFX </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/libraries-extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All libraries" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All libraries </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > RESOURCES </span> </span> </li> <li class="devsite-nav-item"> <a href="/resources/models-datasets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Models & datasets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Models & datasets </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/responsible_ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Responsible AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Responsible AI </span> </a> </li> <li class="devsite-nav-item"> <a href="/resources/recommendation-systems" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Recommendation systems" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Recommendation systems </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Community" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/community/groups" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Groups" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Groups </span> </a> </li> <li class="devsite-nav-item"> <a href="/community/contribute" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contribute" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contribute </span> </a> </li> <li class="devsite-nav-item"> <a href="https://blog.tensorflow.org/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="https://discuss.tensorflow.org" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Forum" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Forum </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Why TensorFlow" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: About" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > About </span> </a> </li> <li class="devsite-nav-item"> <a href="/about/case-studies" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Case studies" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Case studies </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars disabled></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /site-assets/css/style.css */ /* override theme */ table img { max-width: 100%; } /* .devsite-terminal virtualenv prompt */ .tfo-terminal-venv::before { content: "(venv) $ " !important; } /* .devsite-terminal root prompt */ .tfo-terminal-root::before { content: "# " !important; } /* Used in links for type annotations in function/method signatures */ .tfo-signature-link a, .tfo-signature-link a:visited, .tfo-signature-link a:hover, .tfo-signature-link a:focus, .tfo-signature-link a:hover *, .tfo-signature-link a:focus * { text-decoration: none !important; } .tfo-signature-link a, .tfo-signature-link a:visited { border-bottom: 1px dotted #1a73e8; } .tfo-signature-link a:focus { border-bottom-style: solid; } /* .devsite-terminal Windows prompt */ .tfo-terminal-windows::before { content: "C:\\> " !important; } /* .devsite-terminal Windows prompt w/ virtualenv */ .tfo-terminal-windows-venv::before { content: "(venv) C:\\> " !important; } .tfo-diff-green-one-level + * { background: rgba(175, 245, 162, .6) !important; } .tfo-diff-green + * > * { background: rgba(175, 245, 162, .6) !important; } .tfo-diff-green-list + ul > li:first-of-type { background: rgba(175, 245, 162, .6) !important; } .tfo-diff-red-one-level + * { background: rgba(255, 230, 230, .6) !important; text-decoration: line-through !important; } .tfo-diff-red + * > * { background: rgba(255, 230, 230, .6) !important; text-decoration: line-through !important; } .tfo-diff-red-list + ul > li:first-of-type { background: rgba(255, 230, 230, .6) !important; text-decoration: line-through !important; } devsite-code .tfo-notebook-code-cell-output { max-height: 300px; overflow: auto; background: rgba(255, 247, 237, 1); /* orange bg to distinguish from input code cells */ } devsite-code .tfo-notebook-code-cell-output + .devsite-code-buttons-container button { background: rgba(255, 247, 237, .7); /* orange bg to distinguish from input code cells */ } devsite-code[dark-code] .tfo-notebook-code-cell-output { background: rgba(64, 78, 103, 1); /* medium slate */ } devsite-code[dark-code] .tfo-notebook-code-cell-output + .devsite-code-buttons-container button { background: rgba(64, 78, 103, .7); /* medium slate */ } /* override default table styles for notebook buttons */ .devsite-table-wrapper .tfo-notebook-buttons { display: inline-block; margin-left: 3px; width: auto; } .tfo-notebook-buttons td { padding-left: 0; padding-right: 20px; } .tfo-notebook-buttons a, .tfo-notebook-buttons :link, .tfo-notebook-buttons :visited { border-radius: 8px; box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15); color: #202124; padding: 12px 17px; transition: box-shadow 0.2s; } .tfo-notebook-buttons a:hover, .tfo-notebook-buttons a:focus { box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 2px 6px 2px rgba(60, 64, 67, .15); } .tfo-notebook-buttons tr { background: 0; border: 0; } /* on rendered notebook page, remove link to webpage since we're already here */ .tfo-notebook-buttons:not(.tfo-api) td:first-child { display: none; } .tfo-notebook-buttons td > a { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; } .tfo-notebook-buttons td > a > img { margin-right: 8px; } /* landing pages */ .tfo-landing-row-item-inset-white { background-color: #fff; padding: 32px; } .tfo-landing-row-item-inset-white ol, .tfo-landing-row-item-inset-white ul { padding-left: 20px; } /* colab callout button */ .colab-callout-row devsite-code { border-radius: 8px 8px 0 0; box-shadow: none; } .colab-callout-footer { background: #e3e4e7; border-radius: 0 0 8px 8px; color: #37474f; padding: 20px; } .colab-callout-row devsite-code[dark-code] + .colab-callout-footer { background: #3f4f66; } .colab-callout-footer > .button { margin-top: 4px; color: #ff5c00; } .colab-callout-footer > a > span { vertical-align: middle; color: #37474f; padding-left: 10px; font-size: 14px; } .colab-callout-row devsite-code[dark-code] + .colab-callout-footer > a > span { color: #fff; } a.colab-button { background: rgba(255, 255, 255, .75); border: solid 1px rgba(0, 0, 0, .08); border-bottom-color: rgba(0, 0, 0, .15); border-radius: 4px; color: #aaa; display: inline-block; font-size: 11px !important; font-weight: 300; line-height: 16px; padding: 4px 8px; text-decoration: none; text-transform: uppercase; } a.colab-button:hover { background: white; border-color: rgba(0, 0, 0, .2); color: #666; } a.colab-button span { background: url(/images/colab_logo_button.svg) no-repeat 1px 1px / 20px; border-radius: 4px; display: inline-block; padding-left: 24px; text-decoration: none; } @media screen and (max-width: 600px) { .tfo-notebook-buttons td { display: block; } } /* guide and tutorials landing page cards and sections */ .tfo-landing-page-card { padding: 16px; box-shadow: 0 0 36px rgba(0,0,0,0.1); border-radius: 10px; } /* Page section headings */ .tfo-landing-page-heading h2, h2.tfo-landing-page-heading { font-family: "Google Sans", sans-serif; color: #425066; font-size: 30px; font-weight: 700; line-height: 40px; } /* Item title headings */ .tfo-landing-page-heading h3, h3.tfo-landing-page-heading, .tfo-landing-page-card h3, h3.tfo-landing-page-card { font-family: "Google Sans", sans-serif; color: #425066; font-size: 20px; font-weight: 500; line-height: 26px; } /* List of tutorials notebooks for subsites */ .tfo-landing-page-resources-ul { padding-left: 15px } .tfo-landing-page-resources-ul > li { margin: 6px 0; } /* Temporary fix to hide product description in header on landing pages */ devsite-header .devsite-product-description { display: none; } </style><style> /* Styles inlined from /site-assets/css/prod.min.css */ .tensorsite-icon--address::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M11.6667 0L11.56.02 8 1.4 4 0 .24 1.2667c-.14.0466-.24.1666-.24.32v10.08C0 11.8533.1467 12 .3333 12l.1067-.02L4 10.6 8 12l3.76-1.2667c.14-.0466.24-.1666.24-.32V.3333A.3301.3301 0 0 0 11.6667 0zM8 10.6667L4 9.26V1.3333L8 2.74v7.9267z'/%3E%3Cpath d='M-2-2h16v16H-2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--arrow-upward span::before{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23ff6f00'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M13 19V7.83l4.88 4.88c.39.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.41l-6.59-6.59c-.39-.39-1.02-.39-1.41 0l-6.6 6.58c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L11 7.83V19c0 .55.45 1 1 1s1-.45 1-1z'/%3E%3C/svg%3E")}.tensorsite-icon--arrow-upward span::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%23425066'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M13 19V7.83l4.88 4.88c.39.39 1.03.39 1.42 0 .39-.39.39-1.02 0-1.41l-6.59-6.59c-.39-.39-1.02-.39-1.41 0l-6.6 6.58c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L11 7.83V19c0 .55.45 1 1 1s1-.45 1-1z'/%3E%3C/svg%3E")}.tensorsite-icon--build span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M1 11h1v-1H1v1zm1-2H1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7-6h1V2H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM9 7h1V6H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zM5 7h1V6H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zm3 6h1v-1H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-5 2h1v-1H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--build span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M1 11h1v-1H1v1zm1-2H1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7-6h1V2H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM9 7h1V6H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zM5 7h1V6H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zm3 6h1v-1H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-5 2h1v-1H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1z' fill='%23ffffff%0A'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--certificate span::after{background-image:url("data:image/svg+xml,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 0h24v24H0z'/%3E%3Cg fill='%23425066'%3E%3Cpath d='M12 9.6l-3.84 2.88a2.3984 2.3984 0 0 0-.96 1.92v8.6378c0 .792.9024 1.2433 1.536.768L12 21.966l3.264 1.8399c.6336.4752 1.536.024 1.536-.768V14.4c0-.756-.3552-1.4664-.96-1.92L12 9.6z'/%3E%3Cpath d='M6 6c0 3.3144 2.6856 6 6 6s6-2.6856 6-6-2.6856-6-6-6-6 2.6856-6 6'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--chat span::after{background-image:url("data:image/svg+xml,%3C?xml version='1.0' encoding='utf-8'?%3E %3C!-- Generator: Adobe Illustrator 25.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E %3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 600 600' style='enable-background:new 0 0 600 600;' xml:space='preserve'%3E %3Cstyle type='text/css'%3E .st0%7Bfill:%23435066;%7D %3C/style%3E %3Cpath class='st0' d='M471,181v20.4h29.8v268.4l-62.6-62.5l-222.4,0.1v-29.2h-20.4v49.6l234.4-0.1l91.4,91.4V181H471z M459,110.9 H79.7v338.2l84.4-82.9h295V110.9z M303.8,305H132v-23.9h171.8V305z M405.6,246.1H132v-24h273.7V246.1z M405.6,187.1H132v-24h273.7 V187.1z'/%3E %3C/svg%3E")}.tensorsite-icon--check::before{background-image:url("data:image/svg+xml,%3Csvg width='21' height='20' viewBox='0 0 21 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(1 1)' fill='none' fill-rule='evenodd'%3E%3Ccircle stroke='%23FF6F00' cx='9' cy='9' r='9'/%3E%3Cpath stroke='%23425066' stroke-width='3' d='M4 9l3.729 3.729L18.064 2.393'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--code span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M4.832 1.126a.5.5 0 0 0-.706.042l-4 4.5a.5.5 0 0 0 0 .664l4 4.5a.5.5 0 1 0 .748-.664L1.169 6l3.705-4.168a.5.5 0 0 0-.042-.706m7.042 5.206l-4 4.5a.5.5 0 1 1-.748-.664L10.831 6 7.126 1.832a.5.5 0 1 1 .748-.664l4 4.5a.5.5 0 0 1 0 .664' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--code span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M4.832 1.126a.5.5 0 0 0-.706.042l-4 4.5a.5.5 0 0 0 0 .664l4 4.5a.5.5 0 1 0 .748-.664L1.169 6l3.705-4.168a.5.5 0 0 0-.042-.706m7.042 5.206l-4 4.5a.5.5 0 1 1-.748-.664L10.831 6 7.126 1.832a.5.5 0 1 1 .748-.664l4 4.5a.5.5 0 0 1 0 .664' fill='%23ffffff%0A'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--devlibrary span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1378.16 666.81'%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Layer_1-2' data-name='Layer 1'%3E%3Cpath d='M592.21,55.08A110.11,110.11,0,0,0,441.79,14.77L55.08,238h0a110.09,110.09,0,0,0,0,190.72L441.79,652A110.12,110.12,0,0,0,551.91,461.31L330.37,333.41,551.91,205.5A110.12,110.12,0,0,0,592.21,55.08Z' style='fill:%23425066'/%3E%3Cpath d='M1323.08,238,936.38,14.77A110.12,110.12,0,1,0,826.26,205.5l221.53,127.91L826.26,461.31A110.12,110.12,0,1,0,936.38,652l385.56-222.61.93-.53.21-.13h0a110.11,110.11,0,0,0,0-190.73Z' style='fill:%23425066'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--download span::before{background-image:url("data:image/svg+xml,<svg width='16' height='16' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M0 16h16V0H0z'/><g fill='%23ff6f00'><path d='M13.2207 6h-2.721V1.5c0-.276-.223-.5-.5-.5h-4c-.276 0-.5.224-.5.5V6h-2.721c-.455 0-.673.559-.339.867l5.221 4.82c.192.176.487.176.679 0l5.221-4.82c.334-.308.116-.867-.34-.867M2 13.5v1c0 .276.224.5.5.5h11c.276 0 .5-.224.5-.5v-1c0-.276-.224-.5-.5-.5h-11c-.276 0-.5.224-.5.5'/></g></g></svg>")}.tensorsite-icon--download span::after{background-image:url("data:image/svg+xml,<svg width='16' height='16' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M0 16h16V0H0z'/><g fill='%23425066'><path d='M13.2207 6h-2.721V1.5c0-.276-.223-.5-.5-.5h-4c-.276 0-.5.224-.5.5V6h-2.721c-.455 0-.673.559-.339.867l5.221 4.82c.192.176.487.176.679 0l5.221-4.82c.334-.308.116-.867-.34-.867M2 13.5v1c0 .276.224.5.5.5h11c.276 0 .5-.224.5-.5v-1c0-.276-.224-.5-.5-.5h-11c-.276 0-.5.224-.5.5'/></g></g></svg>")}.tensorsite-icon--email::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='12'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-2h16v16H-1z'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M12.3333.6667H1.6667C.9333.6667.34 1.2667.34 2l-.0067 8c0 .7333.6 1.3333 1.3334 1.3333h10.6666c.7334 0 1.3334-.6 1.3334-1.3333V2c0-.7333-.6-1.3333-1.3334-1.3333zm0 9.3333H1.6667V3.3333L7 6.6667l5.3333-3.3334V10zM7 5.3333L1.6667 2h10.6666L7 5.3333z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--external span::before,.tensorsite-icon--newsletter span::before{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M10 1H2c-.6 0-1 .4-1 1s.4 1 1 1h5.6L1.3 9.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0L9 4.4V10c0 .6.4 1 1 1s1-.4 1-1V2c0-.6-.4-1-1-1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--external span::after,.tensorsite-icon--newsletter span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M10 1H2c-.6 0-1 .4-1 1s.4 1 1 1h5.6L1.3 9.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0L9 4.4V10c0 .6.4 1 1 1s1-.4 1-1V2c0-.6-.4-1-1-1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--codepen span::after{background-image:url("data:image/svg+xml,%3Csvg enable-background='new 0 0 500 500' height='500' viewBox='0 0 500 500' width='500' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m250.001 0c-138.074 0-250.001 111.927-250.001 250.001 0 138.076 111.927 249.999 250.001 249.999 138.072 0 249.999-111.923 249.999-249.999 0-138.074-111.927-250.001-249.999-250.001zm0 458.943c-115.212 0-208.941-93.733-208.941-208.942 0-115.208 93.729-208.941 208.941-208.941 115.208 0 208.938 93.733 208.938 208.941 0 115.209-93.729 208.942-208.938 208.942z'/%3E%3Cpath d='m404.462 201.172c-.028-.195-.076-.382-.109-.577-.065-.374-.135-.748-.232-1.114-.057-.22-.138-.431-.206-.642-.106-.326-.212-.651-.342-.968-.091-.22-.196-.439-.297-.651-.14-.3-.285-.593-.452-.877-.122-.212-.251-.416-.377-.618-.18-.277-.362-.546-.562-.806-.146-.194-.3-.39-.454-.577-.212-.243-.432-.487-.664-.716-.174-.178-.346-.357-.528-.521-.244-.219-.496-.431-.752-.633-.198-.155-.395-.31-.602-.456-.078-.049-.146-.114-.22-.163l-141.296-94.197c-4.464-2.976-10.274-2.976-14.738 0l-141.295 94.196c-.073.049-.142.114-.219.163-.208.146-.403.301-.598.456-.26.203-.512.415-.752.633-.187.164-.357.342-.533.521-.231.229-.451.473-.658.716-.159.188-.313.383-.459.577-.195.26-.383.529-.557.806-.134.203-.26.406-.382.618-.163.284-.309.577-.451.877-.102.211-.208.431-.297.651-.13.317-.236.642-.341.968-.07.211-.146.422-.208.642-.097.366-.162.74-.231 1.114-.032.195-.081.382-.106.577-.077.569-.122 1.146-.122 1.732v94.197c0 .585.044 1.162.122 1.74.025.188.074.382.106.568.069.374.134.748.231 1.114.062.22.138.432.208.643.105.324.211.65.341.975.089.222.195.433.297.645.143.3.289.592.451.885.122.204.248.406.382.61.174.276.362.545.557.806.146.203.301.391.459.577.208.243.427.488.658.716.175.178.346.357.533.52.24.221.492.432.752.635.195.155.391.31.598.454.077.05.146.115.219.163l141.295 94.197c2.231 1.487 4.802 2.236 7.371 2.236 2.566 0 5.135-.749 7.368-2.236l141.295-94.197c.074-.048.142-.113.22-.163.207-.145.403-.299.602-.454.256-.203.508-.414.752-.635.183-.162.354-.342.528-.52.232-.228.452-.473.664-.716.154-.187.308-.374.454-.577.2-.261.383-.529.562-.806.126-.204.255-.406.377-.61.167-.293.312-.585.452-.885.101-.212.206-.423.297-.645.13-.324.235-.65.342-.975.068-.211.149-.423.206-.643.098-.366.167-.74.232-1.114.033-.187.081-.381.109-.568.073-.578.119-1.155.119-1.74v-94.197c0-.585-.046-1.162-.119-1.731zm-141.176-67.639 104.088 69.387-46.493 31.103-57.595-38.527zm-26.571 0v61.963l-57.592 38.527-46.497-31.103zm-114.725 94.238 33.238 22.231-33.238 22.233zm114.725 138.7-104.088-69.388 46.497-31.094 57.592 38.52v61.962zm13.286-85.04-46.988-31.429 46.988-31.428 46.985 31.428zm13.285 85.04v-61.962l57.595-38.52 46.493 31.094zm114.724-94.237-33.233-22.233 33.233-22.231z'/%3E%3C/svg%3E")}.tensorsite-icon--glitch span::after{background-image:url("data:image/svg+xml,%3Csvg width='310' height='310' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M80.2 153.3c-10.37 1.94-16.1 1.71-24.3 1.71-8.56 0-42.4-13.03-53.32-27 0 0 16.94-4.18 16.94-7.73 0-3.54-19.35-10.09-19.35-10.09s-2.93-16.34 17.8-32.66c20.74-16.31 36.26-24.06 53.7-24.97 17.43-.9 23.28-.9 23.28-.9s15.18-20.77 23.15-20.77c3.99 0 62.4 12.58 67.45 20.77 5.06 8.19 7.52 7.6 10.1 9.56 2.6 1.96.96.39 12.68 3.04 29.3 6.64 25.3 9.24 47.08 13.27 8.81 1.64 49.2-18.48 53-16.53 1.78.91 3.17 18.21-3.76 29.56-6.93 11.34 5.56 20.71-.05 34.92-5.61 14.2 6.43 24.72 3.82 29.53-2.62 4.81-45.5-15.74-53-14.25-7.52 1.49-30.47 12.67-77 19.73-16.74 2.54-33.85 2.16-48.94.68 3.96 7.66 3.1 15.34 3.1 15.34s-9.63 2.94-27.02-.8c-16.5-3.55-24.58-20.67-25.36-22.4z' fill='%23000'/%3E%3Cpath d='M80.62 75.1a43.7 43.7 0 011.4 1.85 53.93 53.93 0 013.2 5.08c2.41 4.36 4 8.68 4.39 12.62.21 2.16.06 4.78-.42 7.75a71.28 71.28 0 01-2.38 9.75 97.99 97.99 0 01-2.94 8.08c-.8 1.86-.14 4.1 1.5 5.03 1.64.91 3.62.15 4.43-1.71a106.06 106.06 0 003.24-8.88 79.35 79.35 0 002.66-10.9c.59-3.65.78-6.98.48-9.96-.52-5.24-2.47-10.55-5.36-15.77a61.43 61.43 0 00-5.38-8.09 3.04 3.04 0 00-4.67-.16 4.12 4.12 0 00-.15 5.3zM111.24 74.44a3697.76 3697.76 0 0120.5 1.13c4.46.26 8.21.5 11.09.7 10.83.76 27.52 3.3 40.27 5.88 19.54 3.95 35.49 9.8 60.82 21.18l8.72 3.94c1.7.76 3.62-.18 4.3-2.1.67-1.93-.16-4.11-1.86-4.88l-8.73-3.94c-25.7-11.54-42.02-17.53-62.1-21.59-12.97-2.62-29.9-5.2-41.01-5.99a999.18 999.18 0 00-16.13-.99 3703.41 3703.41 0 00-22.13-1.17l-.5-.03c-2.55-.13-4.26 2.92-3.08 5.48l.27.62c.23.54.5 1.15.77 1.84.81 1.98 1.62 4.13 2.37 6.4a75.27 75.27 0 012.7 10.27c.23 1.2.4 2.36.5 3.46.32 3.2-.4 8.7-1.94 15.67-.54 2.46-1.18 5.05-1.89 7.72a266.87 266.87 0 01-3.97 13.48c-.64 1.94.22 4.1 1.93 4.84 1.71.73 3.62-.25 4.26-2.2a70 70 0 00.36-1.1c.28-.89.6-1.89.93-2.99.96-3.14 1.93-6.47 2.82-9.86.74-2.78 1.4-5.48 1.98-8.06 1.72-7.8 2.52-14 2.1-18.34-.14-1.33-.34-2.7-.6-4.13-.65-3.65-1.69-7.5-3-11.42-.44-1.34-.9-2.65-1.38-3.9l1.63.08z' fill='%23FFF' fill-rule='nonzero'/%3E%3Cg transform='matrix(-1 0 0 1 58.34 81.29)'%3E%3Cellipse fill='%23000' cx='14.48' cy='16.43' rx='14.48' ry='16.43'/%3E%3Cpath d='M28.96 16.62v-.19C28.96 7.36 22.48 0 14.48 0S0 7.36 0 16.43c0 9.08 6.48 16.44 14.48 16.44 7.17 0 13.12-5.9 14.28-13.66-1 5.83-5.53 10.24-10.96 10.24-6.16 0-11.16-5.68-11.16-12.67 0-7 5-12.67 11.16-12.67 6.12 0 11.09 5.58 11.16 12.5z' fill='%23FFF'/%3E%3Cellipse fill='%23FFF' cx='21.12' cy='20.54' rx='3.02' ry='3.42'/%3E%3C/g%3E%3Cg%3E%3Cpath d='M80.2 254.62c-10.37 1.94-16.1 1.71-24.3 1.71-8.56 0-42.4-13.03-53.32-27 0 0 16.94-4.19 16.94-7.73S.17 211.51.17 211.51s-2.93-16.34 17.8-32.66c20.74-16.32 36.26-24.06 53.7-24.97 17.43-.9 23.28-.9 23.28-.9s15.18-20.78 23.15-20.78c3.99 0 62.4 12.59 67.45 20.78 5.06 8.19 7.52 7.59 10.1 9.55 2.6 1.97.96.4 12.68 3.05 29.3 6.64 25.3 9.24 47.08 13.27 8.81 1.63 49.2-18.48 53-16.53 1.78.91 3.17 18.21-3.76 29.56-6.93 11.34 5.56 20.7-.05 34.91-5.61 14.2 6.43 24.73 3.82 29.54-2.62 4.8-45.5-15.74-53-14.25-7.52 1.48-30.47 12.67-77 19.73-16.74 2.54-33.85 2.16-48.94.68 3.96 7.66 3.1 15.34 3.1 15.34s-9.63 2.93-27.02-.8c-16.5-3.55-24.58-20.68-25.36-22.41z' fill='%23000'/%3E%3Cpath d='M80.62 176.4c.05.07.18.22.35.46a53.93 53.93 0 014.25 6.5c2.41 4.34 4 8.67 4.39 12.61.21 2.16.06 4.78-.42 7.75a71.28 71.28 0 01-2.38 9.75 97.99 97.99 0 01-2.94 8.08c-.8 1.86-.14 4.1 1.5 5.02 1.64.92 3.62.15 4.43-1.7a106.06 106.06 0 003.24-8.88 79.35 79.35 0 002.66-10.91c.59-3.64.78-6.98.48-9.95-.52-5.24-2.47-10.55-5.36-15.77a61.43 61.43 0 00-5.38-8.1 3.04 3.04 0 00-4.67-.16 4.12 4.12 0 00-.15 5.3zM111.24 175.76a3697.76 3697.76 0 0120.5 1.12c4.46.27 8.21.5 11.09.7 10.83.77 27.52 3.3 40.27 5.89 19.54 3.95 35.49 9.8 60.82 21.18l8.72 3.93c1.7.77 3.62-.17 4.3-2.1.67-1.92-.16-4.1-1.86-4.87l-8.73-3.94c-25.7-11.55-42.02-17.53-62.1-21.6-12.97-2.62-29.9-5.2-41.01-5.98a999.18 999.18 0 00-16.13-.99 3703.41 3703.41 0 00-22.13-1.18l-.5-.02c-2.55-.13-4.26 2.92-3.08 5.48l.27.62c.23.53.5 1.15.77 1.84.81 1.98 1.62 4.13 2.37 6.39a75.27 75.27 0 012.7 10.28c.23 1.2.4 2.36.5 3.46.32 3.2-.4 8.7-1.94 15.66-.54 2.46-1.18 5.06-1.89 7.73a266.87 266.87 0 01-3.97 13.48c-.64 1.94.22 4.1 1.93 4.84 1.71.73 3.62-.26 4.26-2.2a70 70 0 00.36-1.1c.28-.89.6-1.89.93-2.99.96-3.14 1.93-6.48 2.82-9.86.74-2.79 1.4-5.49 1.98-8.07 1.72-7.79 2.52-13.99 2.1-18.33-.14-1.33-.34-2.71-.6-4.13-.65-3.65-1.69-7.5-3-11.43-.44-1.33-.9-2.64-1.38-3.9l1.63.09z' fill='%23FFF' fill-rule='nonzero'/%3E%3Cg transform='matrix(-1 0 0 1 58.34 182.6)'%3E%3Cellipse fill='%23000' cx='14.48' cy='16.43' rx='14.48' ry='16.43'/%3E%3Cpath d='M28.96 16.62v-.19C28.96 7.36 22.48 0 14.48 0S0 7.36 0 16.43c0 9.08 6.48 16.44 14.48 16.44 7.17 0 13.12-5.9 14.28-13.66-1 5.83-5.53 10.24-10.96 10.24-6.16 0-11.16-5.68-11.16-12.67 0-7 5-12.67 11.16-12.67 6.12 0 11.09 5.58 11.16 12.5z' fill='%23FFF'/%3E%3Cellipse fill='%23FFF' cx='21.12' cy='20.54' rx='3.02' ry='3.42'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github--orange span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github--slate span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github--white span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23ffffff%0A'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ffffff%0A' xlink:href='%23a'/%3E%3Cpath fill='%23ffffff%0A' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--google-ai span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='22' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M3.036 6.413c-.574 0-1.024.424-1.035.98-.013.564.465 1.035 1.042 1.027a1.015 1.015 0 0 0 1.012-1.014c.002-.554-.448-.993-1.019-.993m-.028 10.15c-.55.012-1.02.493-1.007 1.029a1.044 1.044 0 0 0 1.03 1.007 1.033 1.033 0 0 0 1.024-1.05 1.038 1.038 0 0 0-1.047-.987m.01-3.056a1.015 1.015 0 0 0 1.037-.99c.016-.559-.467-1.046-1.035-1.041A1.042 1.042 0 0 0 2 12.493a1.021 1.021 0 0 0 1.017 1.013m4.42 5.38c-.698-.007-1.22.498-1.226 1.184a1.19 1.19 0 0 0 1.196 1.223c.68.008 1.22-.517 1.227-1.193.007-.689-.505-1.21-1.197-1.215m-.04-12.769a1.192 1.192 0 0 0 1.237-1.184 1.174 1.174 0 0 0-1.186-1.227c-.702-.008-1.226.49-1.237 1.175a1.192 1.192 0 0 0 1.186 1.236m.049 7.723a1.206 1.206 0 0 0-1.235 1.223 1.214 1.214 0 0 0 1.208 1.217 1.214 1.214 0 0 0 1.216-1.21 1.205 1.205 0 0 0-1.189-1.23M7.422 8.72a1.186 1.186 0 0 0-1.21 1.209c0 .692.515 1.202 1.21 1.202.697 0 1.215-.514 1.213-1.203A1.187 1.187 0 0 0 7.422 8.72m4.41.123c.782-.005 1.43-.654 1.412-1.414a1.43 1.43 0 0 0-1.447-1.391 1.418 1.418 0 0 0-1.404 1.427c.012.79.63 1.383 1.44 1.378m1.41 8.698c.007-.769-.64-1.407-1.426-1.408-.785-.001-1.427.632-1.424 1.405a1.414 1.414 0 0 0 1.42 1.409 1.424 1.424 0 0 0 1.43-1.406M11.8 11.089a1.414 1.414 0 0 0-1.406 1.423 1.419 1.419 0 0 0 1.438 1.393 1.425 1.425 0 0 0 1.413-1.423c-.007-.77-.66-1.399-1.445-1.393m.033 10.08a1.436 1.436 0 0 0-1.439 1.402c-.012.77.627 1.42 1.405 1.429.777.009 1.43-.62 1.446-1.396.015-.752-.645-1.422-1.412-1.436M11.81 1c-.787 0-1.42.63-1.418 1.408A1.41 1.41 0 0 0 11.82 3.81c.793-.004 1.43-.635 1.425-1.412A1.416 1.416 0 0 0 11.811 1m4.349 17.487a1.624 1.624 0 0 0-1.658 1.62c-.008.957.692 1.673 1.637 1.676a1.648 1.648 0 0 0 1.675-1.656 1.651 1.651 0 0 0-1.654-1.64m.013-15.26c-.94-.008-1.655.679-1.671 1.602-.016.956.683 1.681 1.625 1.687.945.006 1.686-.715 1.687-1.642a1.64 1.64 0 0 0-1.641-1.647m-.013 10.2c-.94-.001-1.66.72-1.658 1.666.003.93.704 1.628 1.638 1.631.943.003 1.678-.723 1.674-1.654a1.663 1.663 0 0 0-1.654-1.642m1.654-3.486a1.673 1.673 0 0 0-1.669-1.675 1.635 1.635 0 0 0-1.643 1.644c-.005.945.718 1.679 1.652 1.673a1.667 1.667 0 0 0 1.66-1.642m2.666-.624c1.082.001 1.9-.805 1.901-1.875a1.88 1.88 0 0 0-1.897-1.895 1.873 1.873 0 0 0-1.899 1.89c-.006 1.069.81 1.878 1.895 1.88m.023 6.389c-1.088-.007-1.907.787-1.918 1.86a1.867 1.867 0 0 0 1.878 1.909c1.073.004 1.91-.81 1.918-1.868.01-1.069-.806-1.895-1.878-1.901m-1.918-3.19c-.003-1.068.818-1.886 1.894-1.887 1.075 0 1.902.817 1.902 1.882.001 1.066-.819 1.88-1.896 1.882-1.08.001-1.896-.806-1.9-1.877' id='a'/%3E%3C/defs%3E%3Cg transform='translate(0 -.5)' fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 .5h24v24H0z'/%3E%3Cmask id='b' fill='%23C6CAD1'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23C6CAD1' xlink:href='%23a'/%3E%3Cpath fill='%23C6CAD1' fill-rule='nonzero' mask='url(%23b)' d='M0 .5h24v24H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--google-ai.tensorsite-content__subtitle-icon span::after{top:-3px}.tensorsite-icon--group span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='22' height='14' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-1.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05.02.01.03.03.04.04 1.14.83 1.93 1.94 1.93 3.41V18c0 .35-.07.69-.18 1H22c.55 0 1-.45 1-1v-1.5c0-2.33-4.67-3.5-7-3.5z' id='a'/%3E%3C/defs%3E%3Cg stroke-width='0' fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -5)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-5h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--internal span::before{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M11.7 5.3l-5-5c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L8.6 5H1c-.6 0-1 .4-1 1s.4 1 1 1h7.6l-3.3 3.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0l5-5c.4-.4.4-1 0-1.4z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--internal span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M11.7 5.3l-5-5c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L8.6 5H1c-.6 0-1 .4-1 1s.4 1 1 1h7.6l-3.3 3.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0l5-5c.4-.4.4-1 0-1.4z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--mailbox span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='20' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M18 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-.4 4.25l-6.54 4.09c-.65.41-1.47.41-2.12 0L2.4 4.25a.85.85 0 1 1 .9-1.44L10 7l6.7-4.19a.85.85 0 1 1 .9 1.44z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M-2-4h24v24H-2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--math span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75 7.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0m.75 2.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m2-1.5h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1M4.444 7.556a.499.499 0 0 0-.707 0L2.5 8.793 1.263 7.556a.499.499 0 0 0-.707 0 .499.499 0 0 0 0 .707L1.793 9.5.556 10.737a.499.499 0 0 0 0 .707.499.499 0 0 0 .707 0L2.5 10.207l1.237 1.237a.499.499 0 0 0 .707 0 .499.499 0 0 0 0-.707L3.207 9.5l1.237-1.237a.499.499 0 0 0 0-.707M7.5 3h4a.5.5 0 0 0 0-1h-4a.5.5 0 0 0 0 1M5 2.5a.5.5 0 0 1-.5.5H3v1.5a.5.5 0 0 1-1 0V3H.5a.5.5 0 0 1 0-1H2V.5a.5.5 0 0 1 1 0V2h1.5a.5.5 0 0 1 .5.5' fill='%23425066' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--math span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75 7.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0m.75 2.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m2-1.5h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1M4.444 7.556a.499.499 0 0 0-.707 0L2.5 8.793 1.263 7.556a.499.499 0 0 0-.707 0 .499.499 0 0 0 0 .707L1.793 9.5.556 10.737a.499.499 0 0 0 0 .707.499.499 0 0 0 .707 0L2.5 10.207l1.237 1.237a.499.499 0 0 0 .707 0 .499.499 0 0 0 0-.707L3.207 9.5l1.237-1.237a.499.499 0 0 0 0-.707M7.5 3h4a.5.5 0 0 0 0-1h-4a.5.5 0 0 0 0 1M5 2.5a.5.5 0 0 1-.5.5H3v1.5a.5.5 0 0 1-1 0V3H.5a.5.5 0 0 1 0-1H2V.5a.5.5 0 0 1 1 0V2h1.5a.5.5 0 0 1 .5.5' fill='%23ffffff%0A' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--blog span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpolygon points='0 0 24 0 24 24 0 24'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M21,11.01 L3,11 L3,13 L21,13 L21,11.01 Z M3,16 L15,16 L15,18 L3,18 L3,16 Z M21,6 L3,6 L3,8.01 L21,8 L21,6 Z'/%3E%3C/g%3E%3C/svg%3E%0A")}.tensorsite-icon--next span::before{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.418 7.01h11.17l-4.88-4.88c-.39-.39-.39-1.03 0-1.42a.996.996 0 0 1 1.41 0l6.59 6.59c.39.39.39 1.02 0 1.41l-6.59 6.59a.996.996 0 1 1-1.41-1.41l4.88-4.88H1.417c-.55 0-1-.45-1-1s.45-1 1-1z' fill='%23ff6f00' fill-rule='nonzero'/%3E%3C/svg%3E")}.tensorsite-icon--next span::after{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.418 7.01h11.17l-4.88-4.88c-.39-.39-.39-1.03 0-1.42a.996.996 0 0 1 1.41 0l6.59 6.59c.39.39.39 1.02 0 1.41l-6.59 6.59a.996.996 0 1 1-1.41-1.41l4.88-4.88H1.417c-.55 0-1-.45-1-1s.45-1 1-1z' fill='%23425066' fill-rule='nonzero'/%3E%3C/svg%3E")}.tensorsite-icon--newsletter::before{background:center/contain no-repeat url("data:image/svg+xml;utf8,%3Csvg width='20' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M18 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-.4 4.25l-6.54 4.09c-.65.41-1.47.41-2.12 0L2.4 4.25a.85.85 0 1 1 .9-1.44L10 7l6.7-4.19a.85.85 0 1 1 .9 1.44z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(%23b)' d='M-2-4h24v24H-2z'/%3E%3C/g%3E%3C/svg%3E");content:'\00a0';display:inline-block;height:20px;margin-right:7px;width:20px}.tensorsite-icon--previous span::before{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M15 7H3.83l4.88-4.88c.39-.39.39-1.03 0-1.42A.996.996 0 0 0 7.3.7L.71 7.29a.996.996 0 0 0 0 1.41l6.59 6.59a.996.996 0 1 0 1.41-1.41L3.83 9H15c.55 0 1-.45 1-1s-.45-1-1-1z' id='a'/%3E%3C/defs%3E%3Cuse fill='%23ff6f00' transform='matrix(1 0 0 -1 -.417 15.99)' xlink:href='%23a' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--previous span::after{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M15 7H3.83l4.88-4.88c.39-.39.39-1.03 0-1.42A.996.996 0 0 0 7.3.7L.71 7.29a.996.996 0 0 0 0 1.41l6.59 6.59a.996.996 0 1 0 1.41-1.41L3.83 9H15c.55 0 1-.45 1-1s-.45-1-1-1z' id='a'/%3E%3C/defs%3E%3Cuse fill='%23425066' transform='matrix(1 0 0 -1 -.417 15.99)' xlink:href='%23a' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--product-hub span::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 385.34 385.34' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3ClinearGradient id='a' gradientTransform='matrix(1 0 0 -1 -107.33 494.67)' gradientUnits='userSpaceOnUse' x1='144.09' x2='431.73' y1='302' y2='302'%3E%3Cstop offset='0' stop-color='%23425066'/%3E%3Cstop offset='1' stop-color='%23425066'/%3E%3C/linearGradient%3E%3Ccircle cx='192.67' cy='192.67' fill='url(%23a)' r='192.67'/%3E%3Cg fill='%23fff'%3E%3Cpath d='m285.6 234.34-40.94-23.64-10.09 17.48 41.2 23.78v19.6l27.33 15.78 27.32-15.78v-31.55l-27.32-15.78z'/%3E%3Cpath d='m203.39 247.18h-20.18v46.51l-17.24 9.95v31.55l27.33 15.78 27.33-15.78v-31.55l-17.24-9.95z'/%3E%3Cpath d='m101.53 233.96-17.65-10.19-27.33 15.78v31.55l27.33 15.77 27.33-15.77v-19.42l40.74-23.53-10.09-17.47z'/%3E%3Cpath d='m220.61 51.01v31.56l-17.2 9.99v40.74l-10.13-5.85-10.07 5.78v-40.67l-17.2-9.99v-31.56l27.27-15.77z'/%3E%3Cpath d='m149.48 165.6-5.85 10.06-16.32-9.45-25.7-14.83-17.14 9.93-27.33-15.77v-31.56l27.33-15.77 27.34 15.77v20l23.6 13.6 11.42 6.66-8.5 4.9z'/%3E%3Cpath d='m330.44 114.12v31.55l-27.34 15.78-17.82-10.27-26.11 15.1h-.07l-16.18 9.38-5.85-10.06-.14-.28 11.02-6.32-8.3-4.76 11.43-6.66 24.68-14.22v-19.24l27.34-15.78z'/%3E%3Cpath d='m358.41 254.91-47.67-27.48-10.2-5.91-10 5.78-47.81 27.61-8.09 4.69v76.09l12.11 7 43.79 25.31 10 5.78 10.2-5.91 43.65-25.16 12.11-7v-76.11zm-14.15 17.75-43.72 25.22v.28l-43.73-25.23-11.15-6.46 8.5-4.9 36.38-21 10.07-5.78 10.13 5.85 36.26 20.93 8.3 4.76z' transform='translate(-107.33 -107.33)'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--phone::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-2-2h16v16H-2z'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M2.4133 5.1933C3.3733 7.08 4.92 8.62 6.8067 9.5867L8.2733 8.12c.18-.18.4467-.24.68-.16.7467.2467 1.5534.38 2.38.38.3667 0 .6667.3.6667.6667v2.3266c0 .3667-.3.6667-.6667.6667C5.0733 12 0 6.9267 0 .6667 0 .3.3 0 .6667 0H3c.3667 0 .6667.3.6667.6667 0 .8333.1333 1.6333.38 2.38.0733.2333.02.4933-.1667.68L2.4133 5.1933z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-build::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M34.935 18.52a1.98 1.98 0 0 1-1.337 1.39 1.979 1.979 0 0 1-1.796-.32.5.5 0 0 0-.802.398V30.5a.5.5 0 0 1-.5.5h-20A5.506 5.506 0 0 1 5 25.5v-20c0-.276.224-.5.5-.5h9.677a3.021 3.021 0 0 0-.046 1.883 2.999 2.999 0 0 0 2.108 2.023 3.026 3.026 0 0 0 2.607-.542A2.982 2.982 0 0 0 20.826 5H30.5a.5.5 0 0 1 .5.5v10.513c0 .19.108.363.277.447.17.085.373.067.524-.049.866-.656 2.128-.469 2.776.358.382.49.513 1.128.358 1.752zm.43-2.366c-.785-1.005-2.181-1.406-3.366-.98V5.5c0-.826-.671-1.5-1.5-1.5H19.99a.503.503 0 0 0-.45.278.504.504 0 0 0 .05.524c.27.356.41.77.41 1.199 0 .62-.28 1.194-.768 1.577a2.02 2.02 0 0 1-1.75.359 1.978 1.978 0 0 1-1.392-1.338 1.976 1.976 0 0 1 .322-1.796.497.497 0 0 0 .047-.524.499.499 0 0 0-.446-.278H5.5C4.673 4 4 4.672 4 5.5v20c0 3.584 2.915 6.5 6.5 6.5h20a1.5 1.5 0 0 0 1.5-1.5v-9.677a3.028 3.028 0 0 0 1.883.046 2.997 2.997 0 0 0 2.023-2.108 3.022 3.022 0 0 0-.541-2.607zM16.998 18h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm3-2h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-1 6h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-1 6h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-9 2h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm3 2h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-code::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M27.094 17.24a2.996 2.996 0 0 1 2.022-2.109 2.983 2.983 0 0 1 1.884.043V5.5a.5.5 0 0 0-.5-.5h-20A5.506 5.506 0 0 0 5 10.5v20a.5.5 0 0 0 .5.5h10.511a.5.5 0 0 1 .4.802 1.97 1.97 0 0 0-.32 1.796 1.973 1.973 0 0 0 1.39 1.337 2.026 2.026 0 0 0 1.75-.359c.488-.382.77-.957.77-1.576 0-.429-.143-.844-.41-1.198a.5.5 0 0 1 .398-.802H30.5a.5.5 0 0 0 .5-.5v-9.675c-1.18.427-2.579.026-3.364-.979a3.02 3.02 0 0 1-.542-2.607zm.971.24a2.028 2.028 0 0 0 .358 1.75c.647.83 1.91 1.016 2.775.36a.5.5 0 0 1 .802.398V30.5c0 .827-.673 1.5-1.5 1.5h-9.676a2.987 2.987 0 0 1-.977 3.364 2.993 2.993 0 0 1-1.85.635c-.252 0-.506-.03-.758-.093A2.992 2.992 0 0 1 15.177 32H5.5c-.827 0-1.5-.673-1.5-1.5v-20C4 6.916 6.916 4 10.5 4h20c.827 0 1.5.673 1.5 1.5v10.511a.5.5 0 0 1-.802.4 1.979 1.979 0 0 0-1.797-.32 1.974 1.974 0 0 0-1.336 1.388zm-8.19-4.312a.5.5 0 0 0-.749.664L22.831 18l-3.705 4.168a.5.5 0 1 0 .748.664l4-4.5a.5.5 0 0 0 0-.664l-4-4.5zm-3 .664L13.168 18l3.705 4.168a.501.501 0 0 1-.748.664l-4-4.5a.5.5 0 0 1 0-.664l4-4.5a.5.5 0 1 1 .748.664z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-math::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M31 10.5C31 7.468 28.532 5 25.5 5h-20c-.275 0-.5.225-.5.5v10.512a.499.499 0 0 1-.802.398 1.982 1.982 0 0 0-1.797-.32 1.979 1.979 0 0 0-1.337 1.389 2.031 2.031 0 0 0 .36 1.752c.646.829 1.909 1.014 2.774.359a.5.5 0 0 1 .802.398V30.5c0 .275.225.5.5.5h9.675a2.983 2.983 0 0 1 .978-3.364 3.02 3.02 0 0 1 2.608-.542 3 3 0 0 1 2.108 2.022A3.014 3.014 0 0 1 20.823 31H30.5c.275 0 .5-.225.5-.5v-20zm1 0v20c0 .827-.673 1.5-1.5 1.5H19.988a.499.499 0 0 1-.398-.802c.395-.522.51-1.161.32-1.797a1.978 1.978 0 0 0-1.39-1.337 2.025 2.025 0 0 0-1.75.36c-.49.382-.77.957-.77 1.576 0 .43.142.844.41 1.198a.501.501 0 0 1-.398.802H5.5c-.827 0-1.5-.673-1.5-1.5v-9.675c-1.184.427-2.58.027-3.364-.978a3.021 3.021 0 0 1-.542-2.608 2.996 2.996 0 0 1 2.022-2.108A3.021 3.021 0 0 1 4 15.177V5.5C4 4.673 4.673 4 5.5 4h20c3.584 0 6.5 2.916 6.5 6.5zm-9.75 9.25a.75.75 0 1 0-1.501 0 .75.75 0 0 0 1.5 0zM23.5 21h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1zm0-7h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1zm-7.056 5.556a.499.499 0 0 0-.707 0L14.5 20.793l-1.237-1.237a.499.499 0 0 0-.707 0 .499.499 0 0 0 0 .707l1.237 1.237-1.237 1.237a.499.499 0 0 0 0 .707.499.499 0 0 0 .707 0l1.237-1.237 1.237 1.237a.499.499 0 0 0 .707 0 .499.499 0 0 0 0-.707L15.207 21.5l1.237-1.237a.499.499 0 0 0 0-.707zM21.5 22.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zm-4.5-8a.5.5 0 0 1-.5.5H15v1.5a.5.5 0 0 1-1 0V15h-1.5a.5.5 0 0 1 0-1H14v-1.5a.5.5 0 0 1 1 0V14h1.5a.5.5 0 0 1 .5.5z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-theory::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M31 5.5c0-.275-.225-.5-.5-.5H19.988a.499.499 0 0 1-.398-.802c.395-.522.51-1.161.32-1.797a1.979 1.979 0 0 0-1.389-1.337 2.023 2.023 0 0 0-1.752.36A1.988 1.988 0 0 0 16 3c0 .43.142.844.41 1.198a.501.501 0 0 1-.398.802H5.5c-.275 0-.5.225-.5.5v9.675c1.183-.427 2.579-.027 3.364.978.574.734.772 1.684.542 2.608a3 3 0 0 1-2.022 2.108A3.02 3.02 0 0 1 5 20.823V30.5c0 .275.225.5.5.5h20c3.032 0 5.5-2.468 5.5-5.5v-20zm1 0v20c0 3.584-2.916 6.5-6.5 6.5h-20c-.827 0-1.5-.673-1.5-1.5V19.988a.499.499 0 0 1 .802-.398 1.978 1.978 0 0 0 1.797.32 1.978 1.978 0 0 0 1.337-1.39 2.028 2.028 0 0 0-.36-1.75c-.646-.83-1.909-1.016-2.774-.36A.501.501 0 0 1 4 16.012V5.5C4 4.673 4.673 4 5.5 4h9.675a2.981 2.981 0 0 1 .978-3.364 3.025 3.025 0 0 1 2.608-.542 2.996 2.996 0 0 1 2.108 2.022A3.014 3.014 0 0 1 20.823 4H30.5c.827 0 1.5.673 1.5 1.5zM23.5 13h-11a.5.5 0 0 0 0 1h11a.5.5 0 0 0 0-1zm0 6h-11a.5.5 0 0 0 0 1h11a.5.5 0 0 0 0-1zm-6 3h-5a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zm6.5-5.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1 0-1h11a.5.5 0 0 1 .5.5z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--wechat span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0' y='0' viewBox='0 0 24 24' xml:space='preserve'%3E%3Cg%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cg%3E%3Cpath fill='%23425066' d='M9.09 3.02c.01 0 .03.01.04.01.21.01.41.02.62.04.25.03.5.07.75.11.32.05.63.13.93.22.36.11.71.23 1.05.38.13.06.26.11.38.18.49.24.95.53 1.37.86.16.13.32.26.48.4.13.11.25.23.37.36.22.23.42.47.6.73.12.18.24.35.34.54.17.29.31.6.42.92.08.23.15.46.2.7v.03c-.06-.01-.12-.01-.18-.02-.29-.03-.58-.04-.87-.02-.49.02-.97.09-1.45.21-.4.1-.78.23-1.15.4-.51.23-.98.52-1.41.86-.25.2-.48.41-.69.65-.3.32-.56.67-.78 1.04-.2.33-.36.68-.49 1.05-.12.34-.21.69-.26 1.05-.03.2-.06.39-.06.58 0 .19-.02.38-.01.56.01.24.03.48.08.71.04.2.09.41.14.61 0 .02.01.03.01.05v.02c-.04 0-.07.01-.11.01-.07 0-.15.01-.22.01-.15 0-.3.01-.45.01-.22 0-.44-.01-.66-.04-.2-.02-.4-.05-.6-.08-.25-.04-.5-.09-.75-.14l-.6-.12c-.03-.01-.06 0-.09.01l-1.62.81c-.22.11-.45.22-.67.34-.11.06-.23.12-.34.17-.01.01-.02.01-.03.02h-.01v-.01-.02c.25-.77.51-1.53.76-2.3v-.01c-.08-.06-.16-.11-.23-.17-.17-.14-.34-.27-.51-.41-.25-.2-.48-.43-.71-.67-.27-.28-.51-.59-.72-.92-.1-.15-.19-.31-.28-.47-.16-.28-.28-.58-.38-.89-.09-.28-.16-.57-.2-.86-.02-.14-.03-.28-.05-.42-.01-.05-.01-.11-.02-.16 0-.01-.01-.02-.01-.03C1 9.74 1 9.57 1 9.4c.01 0 .02-.01.02-.02 0-.06.01-.12.01-.18.01-.12.02-.23.04-.35.04-.34.12-.68.23-1.01.13-.4.31-.79.52-1.15.28-.48.62-.92 1.01-1.31.14-.14.3-.28.45-.41.17-.14.34-.27.51-.4.29-.22.6-.41.92-.57.38-.2.76-.36 1.16-.5.36-.12.73-.22 1.1-.3.29-.06.59-.1.88-.13.2-.02.41-.03.62-.04.02 0 .03-.01.04-.01h.58zm2.57 3.32c-.3.01-.63.12-.88.4-.19.2-.26.44-.21.71.04.24.18.43.37.58.27.2.58.28.92.24.39-.05.66-.25.78-.63.07-.22.07-.45 0-.67-.07-.22-.2-.39-.4-.5-.16-.09-.34-.13-.58-.13zm-5.43 0c-.05.01-.14.01-.22.03-.29.06-.54.19-.72.42-.17.21-.23.46-.16.72.06.26.22.44.44.58.26.15.53.22.83.18.34-.03.6-.2.75-.51.13-.29.13-.58.01-.88-.05-.12-.12-.22-.22-.3-.19-.17-.42-.23-.71-.24z'/%3E%3Cpath fill='%23425066' d='M20.86 20.98c-.04-.03-.08-.05-.12-.08-.25-.14-.51-.28-.76-.42-.24-.13-.48-.26-.73-.4-.16-.09-.31-.17-.47-.26-.04-.02-.07-.02-.11-.01-.28.07-.55.14-.83.2-.28.06-.56.11-.84.14-.2.02-.4.03-.6.03-.21-.01-.43 0-.64-.02-.39-.03-.77-.08-1.14-.18-.22-.05-.43-.11-.65-.18-.23-.08-.46-.17-.68-.26-.26-.11-.5-.24-.74-.39-.26-.16-.51-.33-.75-.53-.22-.18-.43-.38-.62-.59-.3-.32-.56-.68-.78-1.07-.2-.37-.36-.76-.47-1.17-.06-.24-.11-.51-.14-.79-.02-.22-.03-.44-.02-.66.02-.35.06-.7.15-1.04.08-.3.18-.58.3-.86.19-.41.43-.79.71-1.14.1-.12.2-.24.31-.35.13-.13.25-.26.39-.38.22-.2.45-.37.7-.53.26-.18.54-.33.82-.47.36-.17.74-.31 1.12-.42.36-.1.72-.17 1.08-.22.14-.02.28-.03.42-.04.13-.01.25-.01.38-.02.09 0 .18-.01.27-.01l.54.03c.32.02.63.07.93.13.28.06.56.13.83.23.27.09.54.2.8.33.45.21.87.47 1.26.77.16.12.3.25.45.38.08.07.15.14.22.21.19.19.36.4.52.61.17.23.33.48.46.74.19.37.34.75.43 1.15.05.22.1.44.11.67 0 .01.01.02.01.03v.77c0 .01-.01.02-.01.03-.01.25-.07.49-.13.73-.1.37-.25.71-.44 1.04-.16.28-.34.55-.54.81-.16.2-.32.39-.5.57-.14.14-.28.27-.42.4l-.39.33c-.09.07-.18.14-.27.22.01.03.01.05.02.08.03.11.07.22.1.33l.24.81c.07.24.15.49.22.73.01-.01 0-.01 0-.01zM14.29 12c-.11 0-.2.02-.28.05-.17.07-.3.18-.4.33-.11.17-.16.35-.11.54.08.28.26.47.53.58.12.05.24.05.36.03.29-.04.53-.15.7-.39.13-.18.16-.39.08-.6-.06-.14-.15-.26-.27-.35-.18-.13-.4-.18-.61-.19zm4.31 1.55c.05-.01.15-.02.25-.05.23-.06.42-.19.55-.4.08-.13.11-.27.09-.42-.04-.25-.2-.42-.41-.55-.14-.08-.3-.12-.46-.14-.13-.01-.25.01-.37.07-.18.09-.31.22-.4.38-.09.15-.11.32-.06.49.05.18.15.31.29.43.13.12.29.19.52.19z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--share span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h5c.55 0 1-.45 1-1s-.45-1-1-1H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55-.45 1-1 1zM14 4c0 .55.45 1 1 1h2.59l-9.13 9.13a.996.996 0 1 0 1.41 1.41L19 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3Cpath d='M0 0h24v24H0z'/%3E%3C/g%3E%3C/svg%3E%0A")}.tensorsite-icon--stackoverflow span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M6.715 14.673l10.154 2.167.43-2.085L7.145 12.59l-.43 2.084zm1.343-4.937l9.402 4.47.86-1.92L8.918 7.79l-.86 1.947zm2.606-4.717l7.978 6.774 1.316-1.618-7.978-6.774-1.316 1.618zM15.82 0l-1.665 1.262 6.178 8.502L22 8.502 15.821 0zM6.5 19.5v-2.112h10.37V19.5H6.5zm12.395 2.382V15.5H21V24H2v-8.5h2.105v6.382h14.79z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-2)'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-2 0h24v24H-2z'/%3E%3C/g%3E%3C/svg%3E%0A")}.tensorsite-icon--theory span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M.5 11h5a.5.5 0 0 0 0-1h-5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1M0 1.5A.5.5 0 0 1 .5 1h11a.5.5 0 0 1 0 1H.5a.5.5 0 0 1-.5-.5' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--theory span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M.5 11h5a.5.5 0 0 0 0-1h-5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1M0 1.5A.5.5 0 0 1 .5 1h11a.5.5 0 0 1 0 1H.5a.5.5 0 0 1-.5-.5' fill='%23ffffff%0A'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--twitter span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='22' height='18' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M22.208 3.333a8.848 8.848 0 0 1-2.843 1.1A4.433 4.433 0 0 0 16.099 3c-2.47 0-4.473 2.035-4.473 4.544 0 .356.039.702.115 1.035-3.718-.19-7.015-1.997-9.223-4.75a4.592 4.592 0 0 0-.606 2.288 4.56 4.56 0 0 0 1.991 3.781 4.425 4.425 0 0 1-2.028-.566v.055c0 2.203 1.543 4.04 3.591 4.456a4.401 4.401 0 0 1-2.021.08c.57 1.804 2.221 3.118 4.18 3.154a8.89 8.89 0 0 1-5.558 1.945c-.36 0-.718-.02-1.067-.062A12.542 12.542 0 0 0 7.86 21c8.23 0 12.73-6.923 12.73-12.928 0-.198-.004-.395-.011-.59a9.127 9.127 0 0 0 2.23-2.351 8.83 8.83 0 0 1-2.569.715 4.542 4.542 0 0 0 1.968-2.513' id='a'/%3E%3C/defs%3E%3Cg transform='translate(-1 -3)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--website::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1z'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M6.9933.3333C3.3133.3333.3333 3.32.3333 7c0 3.68 2.98 6.6667 6.66 6.6667 3.6867 0 6.6734-2.9867 6.6734-6.6667 0-3.68-2.9867-6.6667-6.6734-6.6667zm4.62 4H9.6467C9.4333 3.5 9.1267 2.7 8.7267 1.96c1.2266.42 2.2466 1.2733 2.8866 2.3733zM7 1.6933c.5533.8.9867 1.6867 1.2733 2.64H5.7267c.2866-.9533.72-1.84 1.2733-2.64zm-5.16 6.64C1.7333 7.9067 1.6667 7.46 1.6667 7c0-.46.0666-.9067.1733-1.3333h2.2533C4.04 6.1067 4 6.5467 4 7c0 .4533.04.8933.0933 1.3333H1.84zm.5467 1.3334h1.9666c.2134.8333.52 1.6333.92 2.3733a5.3245 5.3245 0 0 1-2.8866-2.3733zm1.9666-5.3334H2.3867A5.3245 5.3245 0 0 1 5.2733 1.96c-.4.74-.7066 1.54-.92 2.3733zM7 12.3067c-.5533-.8-.9867-1.6867-1.2733-2.64h2.5466c-.2866.9533-.72 1.84-1.2733 2.64zm1.56-3.9734H5.44c-.06-.44-.1067-.88-.1067-1.3333 0-.4533.0467-.9.1067-1.3333h3.12c.06.4333.1067.88.1067 1.3333 0 .4533-.0467.8933-.1067 1.3333zm.1667 3.7067c.4-.74.7066-1.54.92-2.3733h1.9666c-.64 1.1-1.66 1.9533-2.8866 2.3733zm1.18-3.7067C9.96 7.8933 10 7.4533 10 7c0-.4533-.04-.8933-.0933-1.3333H12.16c.1067.4266.1733.8733.1733 1.3333 0 .46-.0666.9067-.1733 1.3333H9.9067z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--video span::before{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M6.8 4.1l4.7 3.5c.3.2.3.6 0 .8l-4.7 3.5c-.3.3-.8 0-.8-.4v-7c0-.4.5-.7.8-.4zM8 0c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 14c3.3 0 6-2.7 6-6s-2.7-6-6-6-6 2.7-6 6 2.7 6 6 6z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(%23b)' d='M0 0h16v16H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--video span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M6.8 4.1l4.7 3.5c.3.2.3.6 0 .8l-4.7 3.5c-.3.3-.8 0-.8-.4v-7c0-.4.5-.7.8-.4zM8 0c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 14c3.3 0 6-2.7 6-6s-2.7-6-6-6-6 2.7-6 6 2.7 6 6 6z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h16v16H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--youku span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='%23425066' fill-rule='evenodd'%3E%3Cpath d='M12,24 C5.372583,24 0,18.627417 0,12 C0,5.372583 5.372583,0 12,0 C18.627417,0 24,5.372583 24,12 C24,18.627417 18.627417,24 12,24 Z M12,20.25 C16.5563492,20.25 20.25,16.5563492 20.25,12 C20.25,7.44365081 16.5563492,3.75 12,3.75 C7.44365081,3.75 3.75,7.44365081 3.75,12 C3.75,16.5563492 7.44365081,20.25 12,20.25 Z'/%3E%3Cpath d='M16.6557974,13.689665 L10.8450403,17.6090702 C9.98654383,18.1881334 8.82117141,17.9616079 8.2421082,17.1031114 C7.66304499,16.2446149 7.88957044,15.0792425 8.74806695,14.5001793 L12.3626201,12.0621324 L8.76409468,9.6348964 C7.90559817,9.05583318 7.67907272,7.89046077 8.25813593,7.03196425 C8.83719914,6.17346774 10.0025716,5.94694229 10.8610681,6.5260055 L16.7679608,10.5102549 C17.6264573,11.0893181 17.8529827,12.2546906 17.2739195,13.1131871 C17.1086958,13.3581413 16.8957391,13.551645 16.6557974,13.689665 Z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--youtube span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='18' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M23.5 3.14A3 3 0 0 0 21.38 1C19.51.5 12 .5 12 .5S4.49.5 2.62 1A3 3 0 0 0 .5 3.14 31.668 31.668 0 0 0 0 8.95c-.011 1.95.156 3.899.5 5.82a3 3 0 0 0 2.12 2.13c1.87.51 9.38.51 9.38.51s7.51 0 9.38-.51a3 3 0 0 0 2.12-2.13c.344-1.921.511-3.87.5-5.82a31.668 31.668 0 0 0-.5-5.81zM9.55 12.5V5.39l6.27 3.56-6.27 3.55z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0-3h24v24H0z'/%3E%3C/g%3E%3Cpath d='M0-3h24v24H0z'/%3E%3C/g%3E%3C/svg%3E");position:relative;top:3px}.tensorsite-icon--youtube--white span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='18' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M23.5 3.14A3 3 0 0 0 21.38 1C19.51.5 12 .5 12 .5S4.49.5 2.62 1A3 3 0 0 0 .5 3.14 31.668 31.668 0 0 0 0 8.95c-.011 1.95.156 3.899.5 5.82a3 3 0 0 0 2.12 2.13c1.87.51 9.38.51 9.38.51s7.51 0 9.38-.51a3 3 0 0 0 2.12-2.13c.344-1.921.511-3.87.5-5.82a31.668 31.668 0 0 0-.5-5.81zM9.55 12.5V5.39l6.27 3.56-6.27 3.55z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg%3E%3Cmask id='b' fill='%23ffffff%0A'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ffffff%0A' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23ffffff%0A' fill-rule='nonzero' mask='url(%23b)' d='M0-3h24v24H0z'/%3E%3C/g%3E%3Cpath d='M0-3h24v24H0z'/%3E%3C/g%3E%3C/svg%3E");position:relative;top:3px}.tensorsite-icon--redesign-arrow span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='24' viewBox='0 0 12 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12L2.09852 24L-1.11005e-07 21.4605L7.83251 12L-9.38069e-07 2.53949L2.09852 -9.17293e-08L12 12Z' fill='%23FFFFFF'/%3E%3C/svg%3E%0A");position:relative}.tensorsite-icon--redesign-arrow span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='24' viewBox='0 0 12 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 12L2.09852 24L-1.11005e-07 21.4605L7.83251 12L-9.38069e-07 2.53949L2.09852 -9.17293e-08L12 12Z' fill='%23FF6F00'/%3E%3C/svg%3E%0A");position:relative}.tensorsite-icon--redesign-arrow--small span::before{background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.5 4.5L6.4425 5.5575L9.8775 9L6.4425 12.4425L7.5 13.5L12 9L7.5 4.5Z' fill='%23FFFFFF'/%3E%3C/svg%3E%0A");position:relative;left:5px}.tensorsite-icon--redesign-arrow--small span::after{background-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.5 4.5L6.4425 5.5575L9.8775 9L6.4425 12.4425L7.5 13.5L12 9L7.5 4.5Z' fill='%23FF6F00'/%3E%3C/svg%3E%0A");position:relative;left:5px}.tensorsite-icon--colab span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' id='Layer_1' data-name='Layer 1' viewBox='0 0 600 600'%3E%3Cpath d='M112.83,236.3,53.89,177.11a173.82,173.82,0,0,0,0,245.56l59.19-59.19A90.06,90.06,0,0,1,112.83,236.3Z' style='fill:%23e8710a'/%3E%3Cpath d='M53.89,177.11l58.94,59.19a90.05,90.05,0,0,1,127.35-.07l.08.07,42.89-73.49h0l-2.51-2h0A173.83,173.83,0,0,0,53.89,177.11Z' style='fill:%23f9ab00'/%3E%3Cpath d='M283.4,437h0l-43.14-73.24a90,90,0,0,1-127.35.07l-.08-.07L53.89,422.92a173.82,173.82,0,0,0,225.75,16.31L282.4,437' style='fill:%23f9ab00'/%3E%3Cpath d='M300,177.11a173.84,173.84,0,0,0,0,245.56l59.2-59.19A90.1,90.1,0,0,1,486.57,236.05L546,177.11a173.83,173.83,0,0,0-245.83-.24Z' style='fill:%23f9ab00'/%3E%3Cpath d='M546,177.11,487.08,236.3A90.11,90.11,0,0,1,359.65,363.73h0L300,422.92A173.91,173.91,0,1,0,546,177.11Z' style='fill:%23e8710a'/%3E%3C/svg%3E");position:relative}.tensorsite-icon--colab:hover span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='Layer_1' x='0px' y='0px' viewBox='0 0 600 600' style='enable-background:new 0 0 600 600;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0%7Bfill:%23FFFFFF;%7D%0A%3C/style%3E%3Cg%3E%3Cpath class='st0' d='M113.1,363.5c-35.1-35.1-35.2-92-0.2-127.2c35.1-35.2,92.2-35.2,127.3-0.1l0,0l0.1,0.1l42.9-73.5l-2.5-2 c-69.2-51.6-165.7-44.7-226.8,16.3c-67.7,67.9-67.7,177.7,0,245.6L113.1,363.5z'/%3E%3Cpath class='st0' d='M240.3,363.8c-35.1,35.2-92.1,35.2-127.3,0.1c0,0,0,0-0.1-0.1l-0.1-0.1l-58.9,59.2 c60.9,60.4,156.8,67.3,225.8,16.3l2.8-2.2h1L240.3,363.8z'/%3E%3C/g%3E%3Cg%3E%3Cpath class='st0' d='M300.2,176.9l-0.2,0.2c-67.7,67.9-67.7,177.7,0,245.6l59.2-59.2c-34.6-35.8-33.5-92.8,2.3-127.4 c34.9-33.7,90.2-33.7,125.1,0l59.4-58.9C478.2,109.2,368.1,109.1,300.2,176.9z'/%3E%3Cpath class='st0' d='M550.5,181.6c-1.5-1.5-3-3-4.5-4.5l-58.9,59.2c34.9,35.5,34.4,92.5-1.1,127.4c-35.1,34.5-91.3,34.5-126.3,0 L300,422.9c66.6,69.2,176.7,71.2,245.9,4.6S617.1,250.8,550.5,181.6z'/%3E%3C/g%3E%3C/svg%3E");position:relative}.tensorsite-icon--course span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath d='m23.95 42-14.5-7.95v-12L2 18 23.95 6 46 18v15.85h-3v-14.1l-4.55 2.3v12Zm0-15.4L39.7 18 23.95 9.55 8.3 18Zm0 12 11.5-6.35v-8.4L23.95 30l-11.5-6.25v8.5Zm.05-12Zm-.05 3.7Zm0 0Z'/%3E%3C/svg%3E");position:relative}.tensorsite-icon--video-series span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath d='M5 31.5v-3h15.3v3Zm0-8.25v-3h23.65v3ZM5 15v-3h23.65v3Zm27.1 27V25.9L43 33.95Z'/%3E%3C/svg%3E");position:relative}.tensorsite-icon--codelab span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath d='m18.95 30.85 2.2-2.2L16.5 24l4.6-4.6-2.2-2.2-6.8 6.8Zm10.1 0L35.9 24l-6.85-6.85-2.2 2.2L31.5 24l-4.65 4.65ZM9 42q-1.2 0-2.1-.9Q6 40.2 6 39V9q0-1.2.9-2.1Q7.8 6 9 6h30q1.2 0 2.1.9.9.9.9 2.1v30q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h30V9H9v30ZM9 9v30V9Z'/%3E%3C/svg%3E");position:relative}.tensorsite-icon--codelab--white span::after{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24" style="&%2310;"><path d="m384-336 56-57-87-87 87-87-56-57-144 144 144 144Zm192 0 144-144-144-144-56 57 87 87-87 87 56 57ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm0-560v560-560Z" style="&%2310; fill: %23fff;&%2310;"/></svg>');position:relative}.tensorsite-icon--group span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='48' width='48'%3E%3Cpath d='M1.9 40v-4.7q0-1.75.9-3.175Q3.7 30.7 5.3 30q3.65-1.6 6.575-2.3Q14.8 27 17.9 27q3.1 0 6 .7t6.55 2.3q1.6.7 2.525 2.125.925 1.425.925 3.175V40Zm35 0v-4.7q0-3.15-1.6-5.175t-4.2-3.275q3.45.4 6.5 1.175t4.95 1.775q1.65.95 2.6 2.35.95 1.4.95 3.15V40Zm-19-16.05q-3.3 0-5.4-2.1-2.1-2.1-2.1-5.4 0-3.3 2.1-5.4 2.1-2.1 5.4-2.1 3.3 0 5.4 2.1 2.1 2.1 2.1 5.4 0 3.3-2.1 5.4-2.1 2.1-5.4 2.1Zm18-7.5q0 3.3-2.1 5.4-2.1 2.1-5.4 2.1-.55 0-1.225-.075T25.95 23.6q1.2-1.25 1.825-3.075.625-1.825.625-4.075t-.625-3.975Q27.15 10.75 25.95 9.3q.55-.15 1.225-.25t1.225-.1q3.3 0 5.4 2.1 2.1 2.1 2.1 5.4ZM4.9 37h26v-1.7q0-.8-.475-1.55T29.25 32.7q-3.6-1.6-6.05-2.15-2.45-.55-5.3-.55-2.85 0-5.325.55T6.5 32.7q-.7.3-1.15 1.05-.45.75-.45 1.55Zm13-16.05q1.95 0 3.225-1.275Q22.4 18.4 22.4 16.45q0-1.95-1.275-3.225Q19.85 11.95 17.9 11.95q-1.95 0-3.225 1.275Q13.4 14.5 13.4 16.45q0 1.95 1.275 3.225Q15.95 20.95 17.9 20.95Zm0 16.05Zm0-20.55Z'/%3E%3C/svg%3E");position:relative}.tensorsite-icon--community span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36' fill='none'%3E%3Cg clip-path='url(%23clip0_163_1111)'%3E%3Ccircle cx='18' cy='18' r='17.5' stroke='%23425066'/%3E%3Ccircle cx='18.0543' cy='11.0837' r='3.58371' fill='%23425066'/%3E%3Ccircle cx='25.4118' cy='12.9027' r='2.47059' fill='%23425066'/%3E%3Ccircle cx='11.2941' cy='12.9027' r='2.47059' fill='%23425066'/%3E%3Cpath d='M11.6471 18.0792C11.6471 16.9746 12.5425 16.0792 13.6471 16.0792H22.3529C23.4575 16.0792 24.3529 16.9746 24.3529 18.0792V25.4615C24.3529 25.7377 24.1291 25.9615 23.8529 25.9615H12.1471C11.8709 25.9615 11.6471 25.7377 11.6471 25.4615V18.0792Z' fill='%23425066'/%3E%3Cpath d='M6 18.0792C6 16.9746 6.89543 16.0792 8 16.0792H13.0588L12.3917 16.2698C11.5331 16.5151 10.9412 17.2998 10.9412 18.1928V18.4993V24.0498C10.9412 24.3259 10.7173 24.5498 10.4412 24.5498H6.5C6.22386 24.5498 6 24.3259 6 24.0498V18.0792Z' fill='%23425066'/%3E%3Cpath d='M30 18.0792C30 16.9746 29.1046 16.0792 28 16.0792H22.9412L23.6083 16.2698C24.4669 16.5151 25.0588 17.2998 25.0588 18.1928V18.4993V24.0498C25.0588 24.3259 25.2827 24.5498 25.5588 24.5498H29.5C29.7761 24.5498 30 24.3259 30 24.0498V18.0792Z' fill='%23425066'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_163_1111'%3E%3Crect width='36' height='36' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");position:relative}[template=page] .devsite-article-body{margin-top:0px}.wrapper{overflow:clip}body{background:transparent;font-family:"Roboto",sans-serif;font-size:16px;line-height:28px;color:#616161;-webkit-font-smoothing:antialiased;margin:0}h1{font-family:"Google Sans",sans-serif;font-size:34px;font-weight:500;line-height:44px;margin:0}h2{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:700;line-height:48px;margin:0}@media only screen and (max-width: 767px){h2{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){h2{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}h3{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;margin:0}h4{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;margin:0}h5{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;margin:0}h6{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:22px;margin:0}.hidden-text{height:1px;overflow:hidden;pointer-events:none;position:absolute;top:-10px;width:1px}img,video{border:0;height:auto;max-width:100%}.desktop-only{display:block}@media only screen and (max-width: 1279px){.desktop-only{display:none}}.tablet-only{display:none}@media only screen and (max-width: 1279px){.tablet-only{display:block}}.tensorsite-container{margin:80px auto;max-width:1420px;padding:0 40px;width:100%}@media only screen and (max-width: 767px){.tensorsite-container{margin:50px auto;padding:0 20px}}.tensorsite-container--no-margin-top{margin-top:0}.tensorsite-container--narrow{max-width:1160px}.tensorsite-container--narrower{max-width:860px}.tensorsite-container--half-margin{margin:40px auto}.tensorsite-container--redesign-margin{margin:120px auto}@media only screen and (max-width: 767px){.tensorsite-container--redesign-margin{margin:48px auto}}body[theme="tensorflow-theme"][layout="full"] .devsite-main-content{max-width:none;padding:0}body[theme="tensorflow-theme"][layout="full"] .devsite-banner{margin:0}body[devsite-framebox]{margin:0;overflow:hidden}body[devsite-framebox] .tensorsite-container{margin:0 auto}body[ready] .devsite-wrapper{overflow:clip !important}.tensorsite-block{display:flex;flex-basis:calc(100% / 3 - 30px);flex-direction:column;flex-grow:0;flex-shrink:1;margin:15px}.tensorsite-block:not(.tensorsite-block--code-block) .tensorsite-content{padding-bottom:0}.tensorsite-block .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-block .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:28px}.tensorsite-block .tensorsite-content__description p:last-of-type{margin-bottom:0}.tensorsite-block__image-wrapper{margin:auto;position:relative;width:30%}.tensorsite-block__image{height:auto;max-width:100%;width:auto}@media only screen and (min-width: 768px){.tensorsite-block__image:focus{outline:2px solid #425066;outline-offset:2px}}.tensorsite-block--action .tensorsite-content__subtitle{padding:0}.tensorsite-block--plain,.tensorsite-block--plain-links{margin:15px;text-align:center}@media only screen and (max-width: 1000px){.tensorsite-block--plain,.tensorsite-block--plain-links{margin-bottom:20px;margin-top:20px}}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-block--plain,.tensorsite-block--plain-links{display:block}}.tensorsite-block--plain .tensorsite-content__cta,.tensorsite-block--plain-links .tensorsite-content__cta{align-self:center}.tensorsite-block--plain .tensorsite-content__cta-wrapper a,.tensorsite-block--plain-links .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-block--plain-links .tensorsite-content{padding-top:0}.tensorsite-block--code-block{overflow:hidden}.tensorsite-block--code-block .tensorsite-content{text-align:center}.tensorsite-block--code-block .tensorsite-content__description{flex-grow:0}.tensorsite-block--code-block .devsite-landing-row-item-code{flex-grow:1}.tensorsite-block--code-block .devsite-landing-row-item-code devsite-code,.tensorsite-block--code-block .devsite-landing-row-item-code devsite-code>pre{border-radius:8px 8px 0 0;box-shadow:none}.tensorsite-block--code-block .colab-callout-footer{background:#e3e4e7;border-radius:0 0 8px 8px;color:#37474f;padding:20px}.tensorsite-block--code-block .colab-callout-row devsite-code[dark-code]+.colab-callout-footer{background:#3f4f66}.tensorsite-block--code-block .colab-callout-footer>a>span{vertical-align:middle;color:#37474f;font-size:14px}.tensorsite-block--code-block .colab-callout-row devsite-code[dark-code]+.colab-callout-footer>a>span{color:#fff}.tensorsite-block--code-block .colab-callout-footer>a:focus{box-shadow:0 0 0 2px #fff}.tensorsite-block--code-block .colab-callout-footer>a>span{font-size:12px}.tensorsite-block--code-block .colab-callout-footer .button{background:linear-gradient(to top right, #ff6f00, #FFA800);border:0;color:#fff;position:relative;z-index:1}.tensorsite-block--code-block .colab-callout-footer .button::before{background:#ff6f00;bottom:0;content:'';left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s;z-index:-1}.tensorsite-block--code-block .colab-callout-footer .button:focus{outline:1px dotted #fff;outline:5px auto #fff}.tensorsite-block--code-block .colab-callout-footer .button:hover::before{opacity:1}.tensorsite-block--code-block devsite-code,.tensorsite-block--code-block devsite-code pre{height:100%}@media only screen and (max-width: 767px){.tensorsite-block--code-block devsite-code,.tensorsite-block--code-block devsite-code pre{height:auto}}.tensorsite-breadcrumb-link{color:#616161;font-size:12px;padding:10px 6px;transition:color .2s linear}.tensorsite-breadcrumb-link:hover{color:#ff6f00}.tensorsite-breadcrumb-link:first-of-type{padding-left:0}.tensorsite-breadcrumb-arrow:last-of-type{display:none}.tensorsite-button-tab{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);margin:auto;overflow:hidden;z-index:1}@media only screen and (max-width: 767px){.tensorsite-button-tab{border-radius:0}}.tensorsite-button-tab ::-webkit-scrollbar{background:transparent;display:none}.tensorsite-button-tab input[name='tabs']{left:-10000px;opacity:0;position:absolute}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__image-wrapper:nth-of-type(1){display:flex}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(1){color:#fff}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(1)::after{background:#425066}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__content__text:nth-of-type(2){display:flex}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__image-wrapper:nth-of-type(2){display:flex}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(2){color:#fff}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(2)::after{background:#425066}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__content__text:nth-of-type(3){display:flex}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__image-wrapper:nth-of-type(3){display:flex}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(3){color:#fff}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(3)::after{background:#425066}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__content__text:nth-of-type(4){display:flex}.tensorsite-button-tab .tensorsite-button-tab__content{display:flex;padding:40px}@media only screen and (max-width: 1279px){.tensorsite-button-tab .tensorsite-button-tab__content{flex-direction:column}}@media only screen and (max-width: 767px){.tensorsite-button-tab .tensorsite-button-tab__content{padding:20px}}.tensorsite-button-tab__image-wrapper{display:none;flex:1;justify-content:center}@media only screen and (max-width: 1279px){.tensorsite-button-tab__image-wrapper{margin-right:0}}.tensorsite-button-tab__content--info{display:flex;flex:2;flex-direction:column;margin-top:40px;padding-left:60px;position:relative}@media only screen and (max-width: 1279px){.tensorsite-button-tab__content--info{align-items:center;padding-left:0}.tensorsite-button-tab__content--info::after{z-index:-1}}.tensorsite-button-tab__content--info::after{border-left:1px solid #e3e5e8;bottom:0;content:'';height:115%;left:0;position:absolute;top:0;-webkit-transform:translateY(-12%);transform:translateY(-12%)}.tensorsite-button-tab__content__text{-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-name:tensorsite-button-tab__content-fade;animation-name:tensorsite-button-tab__content-fade;display:none}label.tensorsite-button-tab__button:focus-within::after{opacity:.3}.tensorsite-button-tab__tabs{margin-bottom:32px}@media only screen and (max-width: 767px){.tensorsite-button-tab__tabs{align-items:center;display:flex;flex-direction:column}}.tensorsite-button-tab__tabs label{margin:6px 14px 6px 0}@-webkit-keyframes tensorsite-button-tab__content-fade{from{opacity:0}to{opacity:1}}@keyframes tensorsite-button-tab__content-fade{from{opacity:0}to{opacity:1}}.tensorsite-button{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:20px;background:none;border:none;border-radius:8px;box-shadow:0 0 20px rgba(0,0,0,0);color:#425066;display:inline-block;height:auto;outline:none;padding:13px 18px;position:relative;text-transform:none;transition:box-shadow .2s linear,background .2s linear,color .2s linear;z-index:1}.tensorsite-button:active{box-shadow:none}.tensorsite-button:hover,.tensorsite-button:focus,.tensorsite-button.tensorsite-content__cta:hover,.tensorsite-button.tensorsite-content__cta:focus{color:#fff;outline:none}.tensorsite-button:hover::after,.tensorsite-button:focus::after,.tensorsite-button.tensorsite-content__cta:hover::after,.tensorsite-button.tensorsite-content__cta:focus::after{opacity:0}.tensorsite-button::before{background:linear-gradient(to top right, #ff6f00, #FFA800);border-radius:8px;content:'';height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.tensorsite-button::after{background:#fff;border-radius:7px;content:'';height:calc(100% - 4px);left:2px;opacity:1;position:absolute;top:2px;transition:.3s opacity linear;width:calc(100% - 4px);z-index:-1}.tensorsite-button--white-text{color:#fff}.tensorsite-button--white{color:#425066;padding:13px 22px}.tensorsite-button--white::before{background:#425066}.tensorsite-button--white::after{height:100%;left:0;top:0;width:100%}.tensorsite-button--gray::after{background:#f5f6f7}.tensorsite-button--dark-gray{color:#425066}.tensorsite-button--dark-gray:hover{color:#fff}.tensorsite-button--dark-gray::before{background:#425066}.tensorsite-button--dark-gray::after{background:#e3e5e8;height:100%;left:0;top:0;width:100%}.tensorsite-arrow-button{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#425066;background-color:#fff;border:1px solid #ccc;border-radius:4px;padding:8px 16px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:100%;transition:box-shadow .2s linear,background .2s linear,color .2s linear;font-weight:500 !important}.tensorsite-arrow-button:hover,.tensorsite-arrow-button:focus{color:#f5f5f5}.tensorsite-arrow-button:hover,.tensorsite-arrow-button:focus{background:linear-gradient(to top right, #ff6f00, #FFA800);border:1px solid #ff6f00;color:#fff}.tensorsite-arrow-button:hover ::before,.tensorsite-arrow-button:focus ::before{opacity:1}.tensorsite-arrow-button:hover ::after,.tensorsite-arrow-button:focus ::after{opacity:0}.tensorsite-arrow-button:hover span::after,.tensorsite-arrow-button:hover span::before,.tensorsite-arrow-button:focus span::after,.tensorsite-arrow-button:focus span::before{-webkit-transform:translateX(4px);transform:translateX(4px)}button.tensorsite-play-button,a.tensorsite-play-button{background:#fff center/contain no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='-427.9393' y1='229.2344' x2='-428.1819' y2='228.8326' gradientTransform='matrix(20 0 0 -30 8610 6917)'%3E%3Cstop offset='0' stop-color='%23ff9100'/%3E%3Cstop offset='1' stop-color='%23ff6f00'/%3E%3C/linearGradient%3E%3Cpath d='M41 63V33l20 15-20 15z' fill='url(%23a)'/%3E%3C/svg%3E");border:0;border-radius:50%;bottom:0;box-shadow:0 0 20px rgba(0,0,0,0.08);height:96px;margin:auto;padding:0;top:0;transition:-webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1);width:96px}button.tensorsite-play-button:focus,button.tensorsite-play-button:hover,a.tensorsite-play-button:focus,a.tensorsite-play-button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.tensorsite-version-button.button-row{flex-direction:row;justify-content:start;margin:auto;position:relative;text-align:center}.tensorsite-version-button.button-row .stars-number{color:#fff;background-color:#ff6f00;padding:4px 20px 4px 15px;border-radius:5px;margin-right:10px}.tensorsite-version-button.button-row .stars-number::before{content:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTciIHZpZXdCb3g9IjAgMCAxOCAxNyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEuNzAyNDEgNi4zNTcxNEg2Ljg5NTMzQzcuMTI0NzYgNi4zNTcxNCA3LjMyNDc1IDYuMjAwOTkgNy4zODA0IDUuOTc4NDFMOC41MTQ5MyAxLjQ0MDI5QzguNjQxMTcgMC45MzUzMDkgOS4zNTg4MyAwLjkzNTMxIDkuNDg1MDcgMS40NDAyOUwxMC42MTk2IDUuOTc4NDFDMTAuNjc1MiA2LjIwMDk5IDEwLjg3NTIgNi4zNTcxNCAxMS4xMDQ3IDYuMzU3MTRIMTYuMjk3NkMxNi43OTY2IDYuMzU3MTQgMTYuOTg3NyA3LjAwNzg4IDE2LjU2OCA3LjI3NzczTDEyLjM1MDcgOS45ODg4NEMxMi4xNDc2IDEwLjExOTQgMTIuMDY2OCAxMC4zNzY1IDEyLjE1ODcgMTAuNTk5OEwxNC4yMDc2IDE1LjU3NTZDMTQuNDA3NyAxNi4wNjE1IDEzLjgxODggMTYuNDg3NiAxMy40MTk5IDE2LjE0NTZMOS4zMjU0IDEyLjYzNjFDOS4xMzgxNSAxMi40NzU2IDguODYxODUgMTIuNDc1NiA4LjY3NDYgMTIuNjM2MUw0LjU4MDE0IDE2LjE0NTZDNC4xODExNyAxNi40ODc2IDMuNTkyMzMgMTYuMDYxNSAzLjc5MjQgMTUuNTc1Nkw1Ljg0MTI2IDEwLjU5OThDNS45MzMyIDEwLjM3NjUgNS44NTI0MiAxMC4xMTk0IDUuNjQ5MyA5Ljk4ODg0TDEuNDMyMDMgNy4yNzc3M0MxLjAxMjI2IDcuMDA3ODggMS4yMDMzOCA2LjM1NzE0IDEuNzAyNDEgNi4zNTcxNFoiIGZpbGw9IndoaXRlIiBzdHJva2U9IndoaXRlIi8+Cjwvc3ZnPg==");position:relative;top:2px;margin-right:5px}.tensorsite-version-button.button-row .tensorsite-content{padding:0}.tensorsite-version-button.button-row .tensorsite-content__cta-wrapper{flex-direction:row;align-self:center;align-self:flex-start}@media only screen and (max-width: 385px){.tensorsite-version-button.button-row .tensorsite-content__cta-wrapper{justify-content:center}}.tensorsite-version-button.button-row .tensorsite-content__cta{align-self:center;border:none;outline:none;width:unset}.tensorsite-version-button.button-row .tensorsite-content__cta:hover,.tensorsite-version-button.button-row .tensorsite-content__cta:focus{color:#ff6f00}.tensorsite-card{-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(to top right, #ff6f00, #FFA800);border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);display:flex;flex-basis:calc(100% / 3 - 30px);flex-direction:column;flex-grow:0;flex-shrink:1;margin:15px;position:relative;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);transition:box-shadow .2s linear,opacity .2s linear}.tensorsite-card::before{background:#fff;border-radius:10px;content:'';height:100%;left:0;pointer-events:none;position:absolute;top:0;transition:opacity .2s linear;width:100%}.tensorsite-card .tensorsite-content{border-radius:0 0 10px 10px;position:static}@media only screen and (max-width: 767px){.tensorsite-card .tensorsite-content{padding-left:30px;padding-right:30px}}.tensorsite-card .tensorsite-content--under-image::before{top:-1px}.tensorsite-card .tensorsite-content .tensorsite-content__subtitle,.tensorsite-card .tensorsite-content .tensorsite-content__description,.tensorsite-card .tensorsite-content .tensorsite-content__cta-wrapper,.tensorsite-card .tensorsite-content ul{position:relative}.tensorsite-card .tensorsite-content .tensorsite-content__cta-wrapper--shorter{padding-right:70px}.tensorsite-card .tensorsite-content__image-wrapper{border-bottom:solid 1px #dadada;border-radius:10px 10px 0 0;overflow:hidden;position:relative;transition:border-color .2s linear;z-index:1}.tensorsite-card .tensorsite-content__image-wrapper img{background-color:#fbfcfc;-webkit-transform:scale(1.01);transform:scale(1.01);transition:-webkit-transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform .5s cubic-bezier(0.25, 0.1, 0.25, 1), -webkit-transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);will-change:transform}.tensorsite-card .tensorsite-content__image-wrapper .tensorsite-content__image__play-button{bottom:0;left:0;margin:auto;overflow:visible;position:absolute;right:0;top:0}.tensorsite-card .tensorsite-price-tag__inner{transition:background-color .2s linear,color .2s linear}.tensorsite-card .tensorsite-content__categories{display:flex;flex-wrap:wrap;margin-bottom:-8px;margin-top:30px;padding-top:18px;position:relative;z-index:1}.tensorsite-card .tensorsite-content__categories::before{border-top:1px solid #dadada;content:'';left:-30px;position:absolute;top:0;width:calc(100% + 60px)}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category{padding-right:18px}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category:last-child{padding-right:0}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text{font-size:12px;line-height:18px;color:#425066;padding-left:16px;position:relative;text-transform:capitalize;transition:color .2s linear}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text::before,.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text::after{background-position:center center;background-repeat:no-repeat;bottom:0;content:'';height:12px;left:0;margin:auto;position:absolute;top:0;width:12px}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text::before{transition:opacity .2s linear;z-index:1}.tensorsite-card .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;align-items:center;display:flex;justify-content:space-between;z-index:1}.tensorsite-card .tensorsite-content__title:before{bottom:0;content:'';left:0;position:absolute;right:0;top:0}.tensorsite-card .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px}.tensorsite-card .tensorsite-content__subtitle--thin{font-family:"Roboto",sans-serif;font-weight:400}.tensorsite-card .tensorsite-content__subtitle--thin.tensorsite-content__subtitle--under-title{margin-bottom:18px;margin-top:0px}.tensorsite-card .tensorsite-content__description{font-size:14px;line-height:22px}.tensorsite-card .tensorsite-content__description strong:first-child:last-child{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;color:#425066;display:inline-block;margin-top:8px;transition:color .2s linear}.tensorsite-card .tensorsite-content__cta{color:#425066;z-index:3}.tensorsite-card:hover:not(.no-link){box-shadow:0 0 64px rgba(0,0,0,0.22);cursor:pointer}.tensorsite-card.no-link .tensorsite-content__title::before{content:none}.tensorsite-card.font-size-body .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:28px}.tensorsite-card--double{flex-grow:0;flex-shrink:1}.tensorsite-card__href{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:2}.tensorsite-card--hero .tensorsite-content__cta:hover{color:#425066}.tensorsite-card--hero-whitecta .tensorsite-content__cta{color:#fff}.tensorsite-card--hero-whitecta a span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card--hero-whitecta .tensorsite-content__cta:hover{color:#fff}.tensorsite-card--hero-whitetext .tensorsite-content__title{color:#fff}.tensorsite-card--hero-bluegradient .tensorsite-content--under-image{background-image:linear-gradient(0deg, rgba(32,18,20,0) 0%, rgba(32,18,20,0) 45%, #5464b5 100%)}.tensorsite-card--hero-h3title .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}.tensorsite-card--hero .tensorsite-content__title{flex-grow:1}.tensorsite-card--hero .tensorsite-content__title::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card--hero .tensorsite-content__image-wrapper{border-bottom:none;border-radius:10px;height:100%;position:absolute;width:100%}.tensorsite-card--hero .tensorsite-content__image{height:100%;-o-object-fit:cover;object-fit:cover}.tensorsite-card--hero .tensorsite-content__image,.tensorsite-card--hero .tensorsite-content--under-image{border-radius:10px}.tensorsite-card--clip .tensorsite-content{background:transparent;margin-top:40%;padding-top:17%;position:static;z-index:1}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-card--clip .tensorsite-content{background-color:#fff;padding-top:20px}}.tensorsite-card--clip .tensorsite-content__clip-bg{padding-top:40%}.tensorsite-card--clip .tensorsite-content__clip-bg+.tensorsite-content__title{padding-top:7%}.tensorsite-card--clip .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;max-width:81%}@media only screen and (max-width: 1000px){.tensorsite-card--clip .tensorsite-content__title{max-width:none}}@media only screen and (max-width: 850px){.tensorsite-card--clip .tensorsite-content__title{max-width:80%}}@media only screen and (max-width: 767px){.tensorsite-card--clip .tensorsite-content__title{max-width:60%}}@media only screen and (max-width: 480px){.tensorsite-card--clip .tensorsite-content__title{max-width:80%}}.tensorsite-card--clip .tensorsite-content__subtitle{color:#425066;font-weight:700;max-width:42%}.tensorsite-card--clip .tensorsite-content__image-wrapper{border-bottom:0;border-radius:10px;height:100%;position:absolute;width:100%}.tensorsite-card--horizontal{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}.tensorsite-card--horizontal .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}@media only screen and (min-width: 851px){.tensorsite-card--horizontal{flex-direction:row}.tensorsite-card--horizontal .tensorsite-content__image-wrapper,.tensorsite-card--horizontal .tensorsite-content--under-image{flex:1 0 50%;max-width:50%}.tensorsite-card--horizontal .tensorsite-content__image-wrapper{border-bottom:0;border-radius:10px 0 0 10px;border-right:1px solid #dadada}.tensorsite-card--horizontal .tensorsite-content__image{border-radius:10px 0 0 10px;height:100%;-o-object-fit:cover;object-fit:cover}}@media only screen and (min-width: 851px) and (-ms-high-contrast: none), only screen and (min-width: 851px) and (-ms-high-contrast: active){.tensorsite-card--horizontal .tensorsite-content__image-wrapper{display:flex;flex-direction:column;justify-content:center}.tensorsite-card--horizontal .tensorsite-content__image{height:auto;-o-object-fit:unset;object-fit:unset}}.tensorsite-card .tensorsite-content__cta-wrapper .tensorsite-content__cta-icon:hover span::before{opacity:0}.tensorsite-card .tensorsite-content__cta-wrapper .tensorsite-content__cta-icon:hover span::after{opacity:1}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover::before{opacity:0}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content a,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content div,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content strong{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content::before{opacity:1;transition:opacity .2s linear}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content ul a span::after,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-content__cta-icon span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__title span::after,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__subtitle span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__tag{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-price-tag__inner{background-color:#fff;color:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-price-tag__inner::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='24' viewBox='0 0 12 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9.474 0H56a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H9.474a2 2 0 0 1-1.636-.85l-7.03-10a2 2 0 0 1 0-2.3l7.03-10A2 2 0 0 1 9.474 0z' fill='%23FFF'/%3E%3Ccircle fill='%23FF6F00' cx='10' cy='12' r='2'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__categories .tensorsite-content__category-text{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__clip-bg::before{background:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__clip-shape path{fill:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__category-text::before{opacity:0}html[dir='rtl'] .tensorsite-content__clip-shape{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.tensorsite-card:hover .tensorsite-content__image-wrapper{border-color:transparent}.tensorsite-card:hover .tensorsite-content__image-wrapper img{-webkit-transform:scale(1.03);transform:scale(1.03);transition:-webkit-transform 1s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform 1s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform 1s cubic-bezier(0.25, 0.1, 0.25, 1), -webkit-transform 1s cubic-bezier(0.25, 0.1, 0.25, 1)}.tensorsite-card--bnw img{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.tensorsite-card--bnw:hover img{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.tensorsite-card .tensorsite-content__title:hover ~ div.tensorsite-content__cta-wrapper .tensorsite-content__cta:first-child span::after,.tensorsite-card .tensorsite-card__href:hover ~ .tensorsite-content div.tensorsite-content__cta-wrapper .tensorsite-content__cta:first-child span::after{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-card .tensorsite-content__title:hover ~ ul.tensorsite-content__cta-wrapper li:first-child .tensorsite-content__cta span::after{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-card .tensorsite-content__title:focus::before{border-radius:10px;box-shadow:0 0 0 2px #425066}.tensorsite-card .tensorsite-card__href:focus ~ .tensorsite-content .tensorsite-content__title::before{border-radius:10px;box-shadow:0 0 0 2px #425066}.tensorsite-content{border-radius:10px;display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;flex-shrink:1;overflow-wrap:break-word;padding:26px 30px;position:relative;word-wrap:break-word}@media only screen and (max-width: 767px){.tensorsite-content{padding-left:15px;padding-right:15px}}.tensorsite-content a:not(.tensorsite-content__button),.tensorsite-content div{transition:color .2s linear}.tensorsite-content ol,.tensorsite-content ul{padding-left:18px}.tensorsite-content ol li,.tensorsite-content ul li{margin:8px 0}.tensorsite-content ol li:last-of-type,.tensorsite-content ul li:last-of-type{margin-bottom:0}.tensorsite-content p a,.tensorsite-content-underline{line-height:normal;display:inline-block;border-bottom:1px solid #ff6f00;color:#616161;transition:color .2s linear}.tensorsite-content p a:focus,.tensorsite-content-underline:focus{outline:2px solid #425066;outline-offset:2px}.tensorsite-content p a:hover,.tensorsite-content-underline:hover{color:#ff6f00}.tensorsite-content p{margin:10px 0}.tensorsite-content p:first-child{margin-top:0}.tensorsite-content p:last-child{margin-bottom:0}.tensorsite-content ol+p,.tensorsite-content ul+p{margin-top:calc(1em + 10px)}.tensorsite-content__clip-bg{display:flex;flex-direction:column;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-content__clip-bg{display:none}}.tensorsite-content__clip-bg::after{background:#fff;border-radius:0 0 10px 10px;content:'';display:block;flex:1 0 auto;margin-top:-2px;transition:background .2s linear;width:100%}.tensorsite-content__clip-shape{margin-left:-1px;width:102%}.tensorsite-content__clip-shape path{transition:fill .2s linear}.tensorsite-content__cta-wrapper{display:flex;flex-direction:column;line-height:1;margin-top:-4px}@media only screen and (max-width: 767px){.tensorsite-content__cta-wrapper{width:100%}}.tensorsite-content__cta-wrapper--abreast{display:block}.tensorsite-content__cta-wrapper--abreast .tensorsite-content__cta{margin-right:21px}@media only screen and (min-width: 768px){.tensorsite-content__cta-wrapper--row{flex-direction:row;justify-content:center;width:100%}.tensorsite-content__cta-wrapper--row a:not(:last-child){margin-right:20px}}.tensorsite-content__cta-wrapper--row .tensorsite-content__button{text-align:center;width:100%}.tensorsite-content__cta-wrapper .tensorsite-content__button{margin-top:8px}.tensorsite-content__cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:20px;align-self:flex-start;color:#425066;display:inline-block;margin-top:8px;position:relative}.tensorsite-content__cta:focus{outline:2px solid #425066;outline-offset:2px}.tensorsite-content__cta:last-child{margin-right:0}.tensorsite-content__cta--disabled,.tensorsite-content__cta--disabled:hover{color:#818181}.tensorsite-content__cta-image:focus,.tensorsite-content__cta-image:hover{outline:none;color:#ff6f00}.tensorsite-content__cta-image:focus span::after,.tensorsite-content__cta-image:focus span::before,.tensorsite-content__cta-image:hover span::after,.tensorsite-content__cta-image:hover span::before{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-content__cta-image:focus span::after,.tensorsite-content__cta-image:hover span::after{opacity:0}.tensorsite-content__cta-image:focus span::before,.tensorsite-content__cta-image:hover span::before{opacity:1}.tensorsite-content__cta-image:focus:focus .cta-image,.tensorsite-content__cta-image:hover:focus .cta-image{box-shadow:0px 2px 12px rgba(66,80,102,0.24)}.tensorsite-content__cta-image:focus img,.tensorsite-content__cta-image:hover img{-webkit-filter:none;filter:none}.tensorsite-content__cta-icon span{margin-left:-3px;position:relative;white-space:nowrap}.tensorsite-content__cta-icon span::after,.tensorsite-content__cta-icon span::before{background-repeat:no-repeat;background-size:contain;content:'\00a0';display:inline-block;height:20px;margin-left:4px;transition:opacity .2s linear,-webkit-filter .2s linear,-webkit-transform .5s;transition:filter .2s linear,transform .5s,opacity .2s linear;transition:filter .2s linear,transform .5s,opacity .2s linear,-webkit-filter .2s linear,-webkit-transform .5s;vertical-align:text-bottom;width:20px}.tensorsite-content__cta-icon span::before{bottom:0;margin-left:7px;opacity:0;position:absolute;right:0}.tensorsite-content__cta-icon.tensorsite-icon--internal span::after,.tensorsite-content__cta-icon.tensorsite-icon--internal span::before,.tensorsite-content__cta-icon.tensorsite-icon--external span::after,.tensorsite-content__cta-icon.tensorsite-icon--external span::before,.tensorsite-content__cta-icon.tensorsite-icon--newsletter span::after,.tensorsite-content__cta-icon.tensorsite-icon--newsletter span::before,.tensorsite-content__cta-icon.tensorsite-icon--video span::after,.tensorsite-content__cta-icon.tensorsite-icon--video span::before{background-position:center;background-size:80%;margin-left:0}.tensorsite-content__cta.devsite-dialog-button:hover{cursor:pointer}.tensorsite-content__cta.tensorsite-content__button ~ *:not(.tensorsite-content__button){line-height:46px}.tensorsite-content__image-wrapper{position:relative}.tensorsite-content__image-wrapper .tensorsite-content__image__play-button{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;-webkit-transform:scale(0.8);transform:scale(0.8);transition:-webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1)}.tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:28px;flex-basis:auto;flex-grow:1;flex-shrink:1;margin-bottom:48px}@media only screen and (min-width: 1280px){.tensorsite-content__description{font-size:18px}}.tensorsite-content__description p a{font-weight:500}.tensorsite-content__description:last-child{margin-bottom:0}.tensorsite-content__image{border-radius:10px 10px 0 0;display:block;height:auto;width:100%}.tensorsite-content__subtitle{font-size:14px;line-height:22px;align-items:center;color:#425066;display:flex;margin-bottom:8px;position:relative}.tensorsite-content__subtitle-icon{margin-left:40px}.tensorsite-content__subtitle-icon span::after{background-repeat:no-repeat;background-size:contain;content:'';height:20px;left:-40px;position:absolute;top:0;transition:-webkit-filter .2s linear;transition:filter .2s linear;transition:filter .2s linear, -webkit-filter .2s linear;width:24px}.tensorsite-content__subtitle--under-title{margin-top:10px}.tensorsite-content__subtitle--bold{font-weight:700}.tensorsite-content__subtitle--gray{color:#818181;font-family:"Google Sans",sans-serif}.tensorsite-content__small-title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;margin-bottom:12px}.tensorsite-content__small-title a:focus{outline:2px solid #425066;outline-offset:2px}.tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:700;line-height:48px;color:#425066;margin-bottom:12px;width:100%;position:relative}@media only screen and (max-width: 767px){.tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}.tensorsite-content__title span::after{background-repeat:no-repeat;background-size:contain;content:'';height:24px;position:absolute;right:0;top:0;transition:-webkit-filter .2s linear;transition:filter .2s linear;transition:filter .2s linear, -webkit-filter .2s linear;width:24px}.tensorsite-content>.tensorsite-content__title:last-child{margin-bottom:0}.tensorsite-content__title.tensorsite-icon{padding-right:26px}.tensorsite-content__title--clip{-webkit-transform:translateY(-35px);transform:translateY(-35px)}.tensorsite-content__title--grow{flex-grow:1}.tensorsite-content__title--grow span{top:auto}.tensorsite-content__title--orange{color:#ff6f00}.tensorsite-content__title--sideheading{font-family:"Google Sans",sans-serif;font-size:28px;font-weight:700;line-height:32px}.tensorsite-content__title--sidesubheading{font-family:"Google Sans",sans-serif;font-size:22px;font-weight:700;line-height:32px}.tensorsite-content__title i{font-size:32px;margin-right:-6px}.tensorsite-content--under-image{border-radius:0 0 10px 10px}.tensorsite-content__title+.tensorsite-content__cta{margin-top:16px}.tensorsite-content__description--align-left{text-align:left}.tensorsite-content__tag{color:#818181}.tensorsite-content__toc{margin-top:20px}.tensorsite-content__toc a:hover{color:#ff6f00}.tensorsite-content__toc a:hover span::after,.tensorsite-content__toc a:hover span::before{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-content__toc a:hover span::after{opacity:0}.tensorsite-content__toc a:hover span::before{opacity:1}.tensorsite-content__toc a:hover span::after,.tensorsite-content__toc a:hover span::before{-webkit-transform:translateX(0px) translateY(-4px);transform:translateX(0px) translateY(-4px)}.tensorsite-content__toc .tensorsite-content__cta-image:focus .cta-image{box-shadow:none}.tensorsite-content__toc--main{display:flex;flex-direction:row;align-items:center;justify-content:space-evenly;width:100%;max-width:1000px;margin:10px auto}.tensorsite-content__toc--main a{display:flex;flex-direction:column;align-items:center}@media only screen and (max-width: 850px){.tensorsite-content__toc{display:flex;flex-direction:column;align-items:center}}.tensorsite-content__toc img{max-width:100px}@media only screen and (max-width: 767px){.tensorsite-content--center-on-mobile{text-align:center;align-items:center;padding:26px 0}.tensorsite-content--center-on-mobile a{align-self:center}}.tensorsite-content--align-center{text-align:center;align-items:center}.tensorsite-content--align-center a{align-self:center}.tensorsite-expandable__section{margin-bottom:16px}.tensorsite-expandable__section:last-child{margin-bottom:0}.tensorsite-expandable__section input{display:none}.tensorsite-expandable__section input:checked ~ .tensorsite-expandable__content{max-height:1000px}.tensorsite-expandable__section input:checked ~ label::after{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.tensorsite-expandable__section label{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;background:#fff;border:1px #ccc solid;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);color:#425066;display:block;padding:20px 40px 18px 25px;position:relative}.tensorsite-expandable__section label::before,.tensorsite-expandable__section label::after{background:#425066;content:'';height:2px;position:absolute;right:25px;top:50%;transition:-webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);width:11px}.tensorsite-expandable__section label::after{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tensorsite-expandable__section .tensorsite-expandable__content{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(0.4, 0, 0.2, 1)}.tensorsite-expandable__section .tensorsite-expandable__content .tensorsite-content{padding:16px 25px}.tensorsite-expandable__section .tensorsite-expandable__content .tensorsite-content__description{font-size:14px;line-height:22px}a{color:#ff6f00;text-decoration:none}a:active,a:focus{text-decoration:none}.firesite-cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:20px}.tensorsite-video-modal{width:720px}@media only screen and (min-width: 1280px){.tensorsite-video-modal{width:1124px}}.tensorsite-video-modal .devsite-dialog-buttons{display:none}.tensorsite-video-modal__buttons{padding:8px 16px 0;text-align:right}.tensorsite-video-modal__buttons .material-icons{cursor:pointer;font-size:20px;pointer-events:none}.tensorsite-video-modal__buttons .devsite-dialog-buttons{padding:8px 16px 0}.tensorsite-video-modal__buttons .video-wrapper-full-width{float:none;margin:0;width:100%}.tensorsite-video-modal__buttons .devsite-dialog-close{color:#425066;border:none;box-shadow:none;justify-content:center;margin:0;padding:0}.tensorsite-price-tag{position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.tensorsite-price-tag__inner{background-color:#425066;border-radius:0 4px 4px 0;color:#fff;font-weight:bold;margin-left:12px;padding:4px 10px;position:relative;transition:background-color .2s linear,color .2s linear}.tensorsite-price-tag__inner::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='24' viewBox='0 0 12 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9.474 0H56a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H9.474a2 2 0 0 1-1.636-.85l-7.03-10a2 2 0 0 1 0-2.3l7.03-10A2 2 0 0 1 9.474 0z' fill='%23425066'/%3E%3Ccircle fill='%23FFF' cx='10' cy='12' r='2'/%3E%3C/g%3E%3C/svg%3E");content:"";height:100%;position:absolute;right:100%;top:0;transition:background-image .2s linear;width:12px}.tensorsite-profile-wrapper:not(:first-of-type){margin-top:30px}@media only screen and (min-width: 768px){.tensorsite-profile__info{align-items:center;display:flex}}.tensorsite-profile__image{border-radius:50%;max-width:110px;min-width:55px;width:20%}@media only screen and (min-width: 768px){.tensorsite-profile__image{padding-right:20px}}.tensorsite-profile__name{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;color:#425066}.tensorsite-profile__name p{margin:0}.tensorsite-sidenote{background-color:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);padding:26px 35px}@media only screen and (max-width: 767px){.tensorsite-sidenote{padding:30px 30px}}.tensorsite-sidenote__header-content .tensorsite-content{padding:26px 15px}.tensorsite-sidenote__header-content .tensorsite-content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-content{padding-top:26px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-content{padding-top:0}}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-content{border-bottom:none;padding-bottom:26px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-content{padding-bottom:0}}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__large-title .tensorsite-content__title,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__large-title .tensorsite-list__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__large-title .tensorsite-list__title{margin-bottom:16px}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__no-border .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__no-border .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__no-border .tensorsite-content{border-bottom:none}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content{border-bottom:1px solid #dadada;padding:39px 15px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content{padding:26px 0}}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper li,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper.tensorsite-content__cta-wrapper--abreast li{text-align:center}}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper li:last-child,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper.tensorsite-content__cta-wrapper--abreast li:last-child{margin-bottom:0}}.tensorsite-top-tab{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);margin:auto;overflow:hidden;z-index:1}@media only screen and (max-width: 767px){.tensorsite-top-tab{border-radius:0}}.tensorsite-top-tab ::-webkit-scrollbar{background:transparent;display:none}.tensorsite-top-tab input[name='tabs']{left:-10000px;opacity:0;position:absolute}.tensorsite-top-tab input[name='tabs']#tab-1:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(1){display:block}.tensorsite-top-tab input[name='tabs']#tab-1:checked ~ .tensorsite-top-tab__tabs label:nth-child(1){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-1:checked ~ .tensorsite-top-tab__tabs label:nth-child(1)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-1:checked ~ .tensorsite-top-tab__tabs label:nth-child(1){outline:2px solid #425066;outline-offset:2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-2:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(2){display:block}.tensorsite-top-tab input[name='tabs']#tab-2:checked ~ .tensorsite-top-tab__tabs label:nth-child(2){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-2:checked ~ .tensorsite-top-tab__tabs label:nth-child(2)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-2:checked ~ .tensorsite-top-tab__tabs label:nth-child(2){outline:2px solid #425066;outline-offset:2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-3:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(3){display:block}.tensorsite-top-tab input[name='tabs']#tab-3:checked ~ .tensorsite-top-tab__tabs label:nth-child(3){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-3:checked ~ .tensorsite-top-tab__tabs label:nth-child(3)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-3:checked ~ .tensorsite-top-tab__tabs label:nth-child(3){outline:2px solid #425066;outline-offset:2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-4:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(4){display:block}.tensorsite-top-tab input[name='tabs']#tab-4:checked ~ .tensorsite-top-tab__tabs label:nth-child(4){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-4:checked ~ .tensorsite-top-tab__tabs label:nth-child(4)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-4:checked ~ .tensorsite-top-tab__tabs label:nth-child(4){outline:2px solid #425066;outline-offset:2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-5:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(5){display:block}.tensorsite-top-tab input[name='tabs']#tab-5:checked ~ .tensorsite-top-tab__tabs label:nth-child(5){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-5:checked ~ .tensorsite-top-tab__tabs label:nth-child(5)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-5:checked ~ .tensorsite-top-tab__tabs label:nth-child(5){outline:2px solid #425066;outline-offset:2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-6:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(6){display:block}.tensorsite-top-tab input[name='tabs']#tab-6:checked ~ .tensorsite-top-tab__tabs label:nth-child(6){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-6:checked ~ .tensorsite-top-tab__tabs label:nth-child(6)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-6:checked ~ .tensorsite-top-tab__tabs label:nth-child(6){outline:2px solid #425066;outline-offset:2px;outline-offset:-5px}.tensorsite-top-tab .tensorsite-top-tab__tabs label::after{transition:width .3s ease}.tensorsite-top-tab .tensorsite-top-tab__content{-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-name:tensorsite-top-tab__content-fade;animation-name:tensorsite-top-tab__content-fade;display:none;padding:0 40px 40px 40px}.tensorsite-top-tab .tensorsite-top-tab__content a{display:inline-block;line-height:normal;border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-top-tab .tensorsite-top-tab__content a:hover{color:#ff6f00}@media only screen and (max-width: 767px){.tensorsite-top-tab .tensorsite-top-tab__content{padding:20px 0}}.tensorsite-top-tab__content--inner{align-items:center;display:flex;flex-wrap:wrap}.tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text{flex-basis:calc(40% - 30px)}.tensorsite-top-tab__content--inner .tensorsite-top-tab__image{background-position:center;background-repeat:no-repeat;background-size:contain;flex-basis:calc(60% - 30px);height:100%;margin-top:39px;min-height:400px}.tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text,.tensorsite-top-tab__content--inner .tensorsite-top-tab__image{margin:15px}@media only screen and (max-width: 1000px){.tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text,.tensorsite-top-tab__content--inner .tensorsite-top-tab__image{flex-basis:calc(100% - 30px);margin:0 auto}}.tensorsite-top-tab__tabs{display:flex;margin:auto;-ms-overflow-style:none;overflow-x:auto;position:relative;scrollbar-width:none;white-space:nowrap;width:84%}@media only screen and (max-width: 1000px){.tensorsite-top-tab__tabs{width:100%}}.tensorsite-top-tab__tabs label{font-size:14px;line-height:22px;color:#425066;cursor:pointer;flex:1 1 auto;font-weight:500;padding:45px 18px 18px 18px;position:relative;text-align:center;transition:color .2s linear;-webkit-user-select:none;-ms-user-select:none;user-select:none}.tensorsite-top-tab__tabs label:focus::after,.tensorsite-top-tab__tabs label:hover::after{width:calc(100% - 30px)}.tensorsite-top-tab__tabs label::after{background:#293241;border-radius:5px 5px 0 0;bottom:0;content:'';height:3px;left:15px;position:absolute;width:0;z-index:1}@media only screen and (max-width: 767px){.tensorsite-top-tab__tabs label:last-child{border-bottom:1px solid #dadada}}.tensorsite-top-tab__tabs::after{background:#dadada;bottom:0;content:'';height:1px;left:18px;position:absolute;width:calc(100% - 36px)}@media only screen and (max-width: 1000px){.tensorsite-top-tab__tabs::after{width:calc(180% - 36px)}}@media only screen and (min-width: 768px){.tensorsite-top-tab__tabs::after{width:calc(100% - 36px)}}@-webkit-keyframes tensorsite-top-tab__content-fade{from{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes tensorsite-top-tab__content-fade{from{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.tensorsite-sub-step__header-content .tensorsite-content{padding-left:0}@media only screen and (max-width: 767px){.tensorsite-sub-step__header-content .tensorsite-content{padding-right:0}}.tensorsite-sub-step__header-content .tensorsite-content__title{font-size:22px}.tensorsite-sub-step__title{color:#425066;font-size:22px;font-weight:500;margin-bottom:12px;margin-top:38px}@media only screen and (min-width: 768px){.tensorsite-sub-step__cards{display:flex;flex-wrap:wrap;justify-content:space-between}}.tensorsite-sub-step__cards .tensorsite-card{flex-shrink:0;margin-left:0;margin-right:0}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-sub-step__cards .tensorsite-card{flex-basis:calc(50% / 3 - 30px - 1px)}}@supports (-ms-ime-align: auto){.tensorsite-sub-step__cards .tensorsite-card{flex-basis:calc(50% / 3 - 30px - 1px)}}@media only screen and (max-width: 850px){.tensorsite-sub-step__cards .tensorsite-card{flex-basis:100%;max-width:100%}}@media only screen and (max-width: 767px){.tensorsite-sub-step__cards .tensorsite-card{display:inline-block}}.tensorsite-list{padding:26px 0}@media only screen and (max-width: 767px){.tensorsite-list{padding:26px 0}}.tensorsite-list h5{overflow:visible}.tensorsite-list__title{color:#425066}.tensorsite-list__description a,.tensorsite-list__secondary-description a{display:inline-block;line-height:normal;border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-list__description a:hover,.tensorsite-list__secondary-description a:hover{color:#ff6f00}.tensorsite-list__items{padding-left:30px}.tensorsite-list__items--check{padding-left:40px}.tensorsite-list__items--custom-large{padding-left:56px}.tensorsite-list__item--check,.tensorsite-list__item--custom,.tensorsite-list__item--custom-large{list-style:none;position:relative}.tensorsite-list__item--check::before,.tensorsite-list__item--custom::before,.tensorsite-list__item--custom-large::before{content:'';position:absolute;top:3px}.tensorsite-list__item--check-large::before,.tensorsite-list__item--custom-large::before,.tensorsite-list__item--custom-large-large::before{height:36px;right:calc(100% + 20px);width:36px}.tensorsite-list__item--check::before{height:20px;left:-40px;width:20px}.tensorsite-list__item--custom::before{background-position:center;background-repeat:no-repeat;height:16px;left:-30px;width:16px}.tensorsite-list__item--email a{word-break:break-word}.tensorsite-list__item a{display:inline-block;line-height:normal;border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-list__item a:hover{color:#ff6f00}.tensorsite-list__item a p{display:inline}.tensorsite-list--box{border:1px #dadada solid;border-radius:10px;padding:26px}.tensorsite-list--white-bg{background-color:#fff}.tensorsite-list--large-title .tensorsite-list__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}.tensorsite-list--no-padding-bottom{padding-bottom:0 !important}.tensorsite-list--no-padding-top{padding-top:0 !important}.tensorsite-inline-video{margin:auto;width:100%}@media only screen and (max-width: 1279px){.tensorsite-inline-video{width:720px}}@media only screen and (min-width: 1280px){.tensorsite-inline-video{width:1124px}}.tensorsite-tooltip__container{display:inline-block;vertical-align:middle}.tensorsite-tooltip__container:hover{cursor:help}.tensorsite-tooltip__container:hover .tensorsite-tooltip__content-wrapper,.tensorsite-tooltip__container:hover .tensorsite-tooltip__content{display:block}.tensorsite-tooltip{background:none;border:none;box-shadow:none;display:inline-block;height:auto;margin:0;overflow:unset;padding:0;pointer-events:auto;position:relative;text-transform:unset;white-space:initial;width:auto;z-index:2}.tensorsite-tooltip a:hover{cursor:pointer}.tensorsite-tooltip .tensorsite-tooltip__content-wrapper{display:none;height:auto;left:-53px;padding:20px 0 0 0;position:absolute;width:auto}.tensorsite-tooltip .tensorsite-tooltip__content:before{border:none;border-bottom:10px solid #323232;border-left:10px solid transparent;border-right:10px solid transparent;content:'';height:10px;left:27px;position:absolute;top:11px;width:10px}.tensorsite-tooltip .tensorsite-tooltip__content{background-color:#323232;box-sizing:border-box;color:rgba(255,255,255,0.8);display:none;padding:15px;text-align:left;width:200px;border-radius:10px}.tensorsite-article-hero{margin:0 auto;max-width:1140px;position:relative}@media only screen and (min-width: 768px){.tensorsite-article-hero{padding:100px 180px 0}}@media only screen and (max-width: 1279px){.tensorsite-article-hero{flex-direction:column;padding:100px 100px 0}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-article-hero{display:block}}@media only screen and (max-width: 767px){.tensorsite-article-hero{padding:50px 35px 0}}.tensorsite-article-hero__inner{margin-bottom:80px}.tensorsite-article-hero .tensorsite-group__divider{margin:0 auto;width:100%}.tensorsite-article-hero__content .tensorsite-content{padding-left:0;padding-right:0}.tensorsite-article-hero__content:last-of-type .tensorsite-content{padding-bottom:0}.tensorsite-article-hero__content--white-bg{border:1px #ccc solid;border-radius:10px;padding:26px}.tensorsite-article-hero__content--white-bg .tensorsite-content{padding:0}.tensorsite-casestudy{background-color:#f5f6f7;margin:auto;min-height:1200px;padding:10px 40px;position:relative;display:flex;flex-direction:column;align-items:center}@media only screen and (max-width: 767px){.tensorsite-casestudy{padding:10px 20px}}.tensorsite-casestudy .tensorsite-card{background-color:#fff;max-width:none;z-index:1}@media only screen and (max-width: 1000px){.tensorsite-casestudy .tensorsite-card{flex-basis:calc(100% / 2 - 30px)}}@media only screen and (max-width: 767px){.tensorsite-casestudy .tensorsite-card{flex-basis:calc(100% - 30px)}}.tensorsite-casestudy .tensorsite-group__header{padding:0 40px;max-width:1380px}.tensorsite-casestudy .tensorsite-group__header .tensorsite-content{padding:0}@media only screen and (max-width: 767px){.tensorsite-casestudy .tensorsite-group__header{padding:0 12px}}.tensorsite-casestudy .tensorsite-container{padding:0}.tensorsite-casestudy__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;color:#425066;margin:15px 15px 60px 15px}.tensorsite-casestudy__content{align-items:center;display:flex;flex-direction:column}@media only screen and (max-width: 767px){.tensorsite-casestudy__content{display:block}}.tensorsite-casestudy__content--centered{display:block}.tensorsite-casestudy__cards{flex-basis:calc(3 * 100% / 4 - 30px);flex-grow:0;flex-shrink:1;width:100%}.tensorsite-casestudy__cards .tensorsite-group__inner{border-bottom:none}.tensorsite-casestudy__cards .tensorsite-container{padding:0px}.tensorsite-casestudy__filters{margin-top:24px}.tensorsite-casestudy__filters button{font-size:14px;line-height:22px;background-color:transparent;color:#425066;font-weight:500;transition:color .2s linear;padding:0 16px 0 2px;margin:0 20px 12px 0;border:1px solid #ff6f00;border-radius:20px;height:auto}@media only screen and (max-width: 480px){.tensorsite-casestudy__filters button{margin:8px 0}}.tensorsite-casestudy__filters button:focus:not([selected]),.tensorsite-casestudy__filters button:hover:not([selected]){color:#ff6f00;border:1px solid #ff6f00;background-color:transparent}.tensorsite-casestudy__filters button[selected]{background-color:#ff6f00}.tensorsite-casestudy__filters button[selected]::before{content:none}.tensorsite-casestudy__filters button[selected] .icon{display:none}.tensorsite-casestudy__filters button[selected] .icon--checked{display:block}.tensorsite-casestudy__filters button span{display:none;visibility:collapse}.tensorsite-casestudy__filters button img{max-width:40px}.tensorsite-casestudy__filters button .icon{display:block}.tensorsite-casestudy__filters button .icon--checked{display:none}#filter-checkboxes-match-all{display:flex;flex-direction:row;justify-content:flex-start;flex-wrap:wrap;padding:12px 40px 0;max-width:1380px;margin:0 auto}#filter-checkboxes-match-all label{font-size:14px;line-height:22px;color:#425066;font-weight:500;transition:color .2s linear;padding:0 16px 0 2px;margin:0 20px 12px 0;border:1px solid #ff6f00;border-radius:20px;display:flex;align-items:center}#filter-checkboxes-match-all label:focus,#filter-checkboxes-match-all label:hover{color:#ff6f00}#filter-checkboxes-match-all label::before{content:none}#filter-checkboxes-match-all label span{display:none;visibility:collapse}#filter-checkboxes-match-all label img{max-width:40px}#filter-checkboxes-match-all label .icon{display:block}#filter-checkboxes-match-all label .icon--checked{display:none}#filter-checkboxes-match-all input[type='checkbox']{position:absolute;visibility:hidden}#filter-checkboxes-match-all input[type='checkbox']:checked+label{background-color:#ff6f00;color:white}#filter-checkboxes-match-all input[type='checkbox']:checked+label .icon{display:none}#filter-checkboxes-match-all input[type='checkbox']:checked+label .icon--checked{display:block}#filter-checkboxes-match-all input[type='checkbox']::after{content:none}.tensorsite-column-list{margin:0 auto 52px;max-width:1440px;padding:0 30px}.tensorsite-column-list__intro{margin:0 auto;max-width:642px}.tensorsite-column-list__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;color:#425066;text-align:center}.tensorsite-column-list__description{color:#616161;text-align:center}.tensorsite-column-list__description a{display:inline-block;line-height:normal;border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-column-list__description a:hover{color:#ff6f00}.tensorsite-column-list__description a:focus{outline:2px solid #425066;outline-offset:2px;text-decoration:none}.tensorsite-column-list__item{border-top:1px solid #dadada;display:flex;padding:50px 100px 30px}.tensorsite-column-list__item:last-child{border-bottom:1px solid #dadada}@media only screen and (max-width: 767px){.tensorsite-column-list__item{border-top:0;flex-direction:column;margin:20px 0;padding:20px;text-align:center}}@media only screen and (min-width: 768px){.tensorsite-column-list__item-image{flex:0 0 8%;margin-right:30px}}@media only screen and (max-width: 767px){.tensorsite-column-list__item-image{margin:15px 0}}.tensorsite-column-list__item-image img{max-height:96px;max-width:96px;width:100%}@media only screen and (min-width: 768px){.tensorsite-column-list__item-heading{flex:0 0 30%;margin-right:20px}}@media only screen and (max-width: 767px){.tensorsite-column-list__item-heading{margin:0}.tensorsite-column-list__item-heading .tensorsite-column-list__item-cta{display:none}}.tensorsite-column-list__item-title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;color:#425066;margin-bottom:20px}.tensorsite-column-list__item-cta{transition:color .2s linear}@media only screen and (max-width: 767px){.tensorsite-column-list__item-cta{align-self:center}}@media only screen and (min-width: 768px){.tensorsite-column-list__item-cta--mobile{display:none}}.tensorsite-column-list__item-description{color:#616161}.tensorsite-column-list__item-description p:first-child{margin-top:0}.tensorsite-dynamic-blog-section .devsite-card-wrapper{flex-basis:auto;max-width:none;padding:0}.tensorsite-dynamic-blog-section .devsite-card-group{grid-template-columns:repeat(4, 1fr);margin:0 15px}@media only screen and (max-width: 1000px){.tensorsite-dynamic-blog-section .devsite-card-group{grid-template-columns:repeat(2, 1fr)}}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .tensorsite-container{padding:0}}.tensorsite-ecosystem .ecosystem{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);padding:60px}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .ecosystem{overflow:scroll;padding:50px 20px}}.tensorsite-ecosystem .ecosystem__row{border-bottom:1px solid #dadada;display:flex}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .ecosystem__row{width:970px}.tensorsite-ecosystem .ecosystem__row::after{content:'';display:block;flex:0 0 20px;height:1px}}.tensorsite-ecosystem .ecosystem__row--header{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;border:none;color:#425066;text-align:center}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col{padding-top:30px;position:relative}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col::before{font-size:18px;line-height:30px;background:#fff;border-radius:50%;box-shadow:0 0 36px rgba(0,0,0,0.1);color:#ff6f00;display:block;height:32px;left:50%;position:absolute;top:0;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:32px}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(0)::before{content:"-1"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(1)::before{content:"0"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(2)::before{content:"1"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(3)::before{content:"2"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(4)::before{content:"3"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__row-body__bg::before,.tensorsite-ecosystem .ecosystem__row--header .ecosystem__row-body__bg::after,.tensorsite-ecosystem .ecosystem__row--header .ecosystem__row-body__bg .ecosystem__row-body__bg-col{border-top-left-radius:10px;border-top-right-radius:10px}.tensorsite-ecosystem .ecosystem__row-header{align-items:center;display:flex;flex:0 0 11%;flex-direction:column;justify-content:center;max-width:11%;padding:20px;text-align:center}.tensorsite-ecosystem .ecosystem__row-header__image{background-position:center;background-repeat:no-repeat;background-size:contain;height:40px;margin-bottom:10px;width:100%}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__row-header__image{height:32px}}.tensorsite-ecosystem .ecosystem__row-header__title{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px;align-items:center;color:#425066;font-weight:500}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__row-header__title{font-size:11px;line-height:14px}}.tensorsite-ecosystem .ecosystem__row-header__labels{font-family:"Google Sans",sans-serif;font-size:12px;font-weight:700;line-height:18px;color:#616161;margin-top:15px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__row-header__labels{font-size:10px;line-height:14px;margin-top:10px}}.tensorsite-ecosystem .ecosystem__row-body{display:flex;flex:0 0 89%;justify-content:space-between;max-width:89%;position:relative}.tensorsite-ecosystem .ecosystem__row-body__bg{bottom:0;display:flex;justify-content:space-between;left:0;position:absolute;right:0;top:0}.tensorsite-ecosystem .ecosystem__row-body__bg::before,.tensorsite-ecosystem .ecosystem__row-body__bg::after,.tensorsite-ecosystem .ecosystem__row-body__bg .ecosystem__row-body__bg-col{background:#f5f6f7;content:'';display:block;flex:0 0 calc(33.33% - 5px);max-width:calc(33.33% - 5px)}.tensorsite-ecosystem .ecosystem__col{display:flex;flex:0 0 calc(100%/3 - 5px);flex-direction:column;max-width:calc(100%/3 - 5px);padding:20px 20px 0;position:relative}.tensorsite-ecosystem .ecosystem__col--full{flex:0 0 100%;max-width:100%}.tensorsite-ecosystem .ecosystem__col--full .ecosystem-card__main-content,.tensorsite-ecosystem .ecosystem__col--full .ecosystem-card__expanding-content{margin:0 auto;max-width:450px;width:60%}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__col{padding:15px 15px 0}}.tensorsite-ecosystem .ecosystem__next{background-image:url(/site-assets/images/marketing/icon/icon_ecosystem_next.svg);background-position:center;background-repeat:no-repeat;background-size:80%;display:inline-block;height:20px;margin:-15px auto 5px;text-align:center;width:20px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__next{margin-top:-10px}}.tensorsite-ecosystem .ecosystem-input{left:-10000px;opacity:0;position:fixed}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card{z-index:10}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card .ecosystem-card__expanding-content{margin-bottom:20px;max-height:200px;opacity:1}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card .ecosystem-card__lower-content{box-shadow:0 0 64px rgba(0,0,0,0.22)}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card .ecosystem-card__toggle{background-image:url(/site-assets/images/marketing/icon/icon_ecosystem_close.svg)}.tensorsite-ecosystem .ecosystem-card{border-radius:10px;font-weight:500;margin-bottom:20px;position:relative;font-family:"Google Sans",sans-serif;font-size:12px;line-height:16px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card{font-size:10px;line-height:14px;margin-bottom:15px}}.tensorsite-ecosystem .ecosystem-card--no-cta .ecosystem-card__lower-content{padding-bottom:32px}.tensorsite-ecosystem .ecosystem-card__label{font-family:"Google Sans",sans-serif;font-size:12px;font-weight:700;line-height:18px;border-bottom:1px solid rgba(66,80,102,0.08);color:#425066;font-size:9px;position:relative;text-align:center;text-transform:uppercase;z-index:2}.tensorsite-ecosystem .ecosystem-card__content-wrapper{padding-bottom:31px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card__content-wrapper{padding-bottom:29px}}.tensorsite-ecosystem .ecosystem-card__main-content{align-items:center;display:flex;height:80px;justify-content:center;margin:0 30px;overflow:hidden;position:relative;text-align:center;z-index:2}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card__main-content{height:60px;margin:0 15px}}.tensorsite-ecosystem .ecosystem-card__lower-content{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);height:auto;left:0;padding:100px 30px 15px;position:absolute;right:0;text-align:center;top:0;transition:box-shadow .3s ease;z-index:1}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card__lower-content{padding:80px 15px 15px}}.tensorsite-ecosystem .ecosystem-card__expanding-content{max-height:0px;opacity:0;overflow:hidden;text-align:center;transition:all .3s ease}.tensorsite-ecosystem .ecosystem-card__cta{display:inline-block;line-height:normal;border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear;color:#616161;font-weight:700}.tensorsite-ecosystem .ecosystem-card__cta:hover{color:#ff6f00}.tensorsite-ecosystem .ecosystem-card__cta:focus{outline:2px solid #425066;outline-offset:2px}.tensorsite-ecosystem .ecosystem-card__toggle{background-image:url(/site-assets/images/marketing/icon/icon_ecosystem_info.svg);background-position:center;background-repeat:no-repeat;background-size:auto;border-radius:50%;bottom:12px;cursor:pointer;height:24px;position:absolute;right:12px;width:24px}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .ecosystem-card__toggle{bottom:0;height:48px;right:0;width:48px}}.tensorsite-examples-table{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);padding:40px}.tensorsite-examples-table input.tensorsite-examples-table__search{background:#f1f3f4;border:0;border-bottom:2px solid transparent;border-radius:2px;margin:12px 0;max-width:426px;padding:8px}.tensorsite-examples-table input.tensorsite-examples-table__search:focus{border-bottom:2px solid #1a73e8}.tensorsite-examples-table .devsite-select--multiple{margin:0 16px 8px 0}.tensorsite-examples-table .devsite-select .devsite-icon-arrow-drop-down{right:0}.tensorsite-examples-table .checkbox-demo{margin:8px 0}.tensorsite-examples-table table{border-radius:10px;margin-top:24px;overflow:hidden}.tensorsite-examples-table thead{background:#425066;color:#fff}.tensorsite-examples-table thead th{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:22px;background:none;color:#fff;padding:14px 24px}.tensorsite-examples-table thead th.widest-column{min-width:210px}.tensorsite-examples-table thead th.medium-column{min-width:150px}.tensorsite-examples-table tr{border:0}.tensorsite-examples-table tr td{min-width:130px;padding:12px 24px;vertical-align:middle;width:140px}.tensorsite-examples-table tr td>a{font-family:"Google Sans",sans-serif;font-weight:700;font-size:14px;line-height:22px}.tensorsite-examples-table tr td span:before,.tensorsite-examples-table tr td span:after{width:16px}.tensorsite-examples-table tr:nth-child(even){background-color:#425066}.tensorsite-examples-table .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-fancy-hero-wrapper{background-color:transparent;margin:0 auto;overflow:hidden;position:relative;width:100%}.tensorsite-fancy-hero-wrapper iframe.framebox{opacity:0}@media only screen and (min-width: 768px){.tensorsite-fancy-hero-wrapper iframe{min-height:550px}}.tensorsite-fancy-hero-wrapper devsite-framebox iframe{opacity:1}@media only screen and (min-width: 768px){.tensorsite-fancy-hero-wrapper+.tensorsite-casestudy{margin-top:-90px}}.tensorsite-fancy-hero-wrapper--short{min-height:0}.tensorsite-fancy-hero{background-color:transparent;margin:0 auto;max-width:1420px;padding:0 40px;position:relative}@media only screen and (min-width: 768px){.tensorsite-fancy-hero{min-height:440px}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero{padding:0 20px}}.tensorsite-fancy-hero .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:22px;font-weight:600}.tensorsite-fancy-hero .tensorsite-content__description{font-size:18px;line-height:30px;color:#425066}.tensorsite-fancy-hero .tensorsite-content__cta-wrapper{margin-top:8px}.tensorsite-fancy-hero__brand-image{background-repeat:no-repeat;background-size:contain;height:40px;margin:0 15px;width:calc(16.66667% - $margin-gutter)}.tensorsite-fancy-hero__image{position:absolute;right:-22%;top:0;width:70%}.tensorsite-fancy-hero__image img{max-height:430px}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__image{width:110%}}.tensorsite-fancy-hero__content{margin:0 15px;padding:0;text-align:left;width:calc(41.66667% - 30px)}@media only screen and (max-width: 1000px){.tensorsite-fancy-hero__content{width:calc(50% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__content{margin:40% 0 0;width:100%}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__content .tensorsite-content{padding:26px 15px}}.tensorsite-fancy-hero__slides-wrapper{position:relative}.tensorsite-fancy-hero__slide{left:0;opacity:1;top:0;transition:.3s opacity linear;width:100%}@media only screen and (min-width: 768px){.tensorsite-fancy-hero__slide{padding:40px 8.33333%}}@media only screen and (max-width: 1279px){.tensorsite-fancy-hero__slide{flex-direction:column;padding:40px 0}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__slide{box-sizing:border-box;overflow:hidden;padding:50px 15px 20px}}.tensorsite-fancy-hero__slide--fade{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-name:tensorsite-fancy-hero__slide-fade;animation-name:tensorsite-fancy-hero__slide-fade}.tensorsite-fancy-hero__slide.is-carousel{position:absolute}.tensorsite-fancy-hero__slide.is-invisible{opacity:0;pointer-events:none}.tensorsite-fancy-hero__slide .tensorsite-content{padding-left:0;padding-right:0}.tensorsite-fancy-hero__dots{bottom:140px;position:absolute}@media only screen and (min-width: 1280px){.tensorsite-fancy-hero__dots{margin:30px 0 30px calc(8.33333% + (30px / 2 - 7px))}}@media only screen and (max-width: 1279px){.tensorsite-fancy-hero__dots{margin:30px 0 30px 10px}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__dots{bottom:20px;margin:0 0 30px 15px}}.tensorsite-fancy-hero__dot{background:none;border:2px #ccc solid;border-radius:50%;cursor:pointer;display:inline-block;height:14px;margin:0 2px;min-width:0;padding:0;transition:background-color .3s linear;width:14px}.tensorsite-fancy-hero__dot:focus{outline:2px solid #425066;outline-offset:2px}.tensorsite-fancy-hero__dot.is-active{background-color:#ccc}.tensorsite-footer{margin-top:-92px;overflow:hidden;padding-top:92px;pointer-events:none;position:relative}.tensorsite-footer::before,.tensorsite-footer::after{bottom:0;content:'';display:block;position:absolute}.tensorsite-footer::before{background:#ff6f00;left:0;right:calc(1440px + ((100% - 1440px) / 2) + (192px / 2));top:184px}.tensorsite-footer::after{background:#FFA800;left:calc(1440px + ((100% - 1440px) / 2) + (192px / 2));right:0;top:0}.tensorsite-footer--gray{margin-top:0px;background-color:#f5f6f7}.tensorsite-footer__container{background-image:linear-gradient(-90deg, #FFA800 18%, #ff6f00 86%);margin:0 auto;max-width:calc(100% - 192px);min-height:350px;padding:70px 0;position:relative}@media screen and (min-width: 1440px){.tensorsite-footer__container{max-width:1248px}}@media only screen and (max-width: 767px){.tensorsite-footer__container{background-image:linear-gradient(-90deg, #FFA800, #ff6f00);padding-bottom:100px}}.tensorsite-footer__side{bottom:0;position:absolute;width:192px}.tensorsite-footer__side::before{content:'';display:block;height:92px;margin-top:-92px;width:100%}.tensorsite-footer__side--left{background:#ff6f00;left:-192px;top:92px}.tensorsite-footer__side--left::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 92'%3E%3Cpath d='M162 8L96 46 30 84a60.7 60.7 0 0 1-30 8h192V0a60.7 60.7 0 0 0-30 8z' fill='%23FF6F00'/%3E%3C/svg%3E")}.tensorsite-footer__side--right{background:#FFA800;right:-192px;top:0}.tensorsite-footer__side--right::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 92'%3E%3Cpath d='M162 8L96 46 30 84a60.7 60.7 0 0 1-30 8h192V0a60.7 60.7 0 0 0-30 8z' fill='%23ffa800'/%3E%3C/svg%3E")}.tensorsite-footer__content{pointer-events:auto;position:relative;z-index:3}.tensorsite-footer__content .tensorsite-content{margin:0 auto;max-width:650px;padding:0}.tensorsite-footer__content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:700;line-height:48px;color:#fff;padding:0;text-align:center;width:auto}@media only screen and (max-width: 767px){.tensorsite-footer__content .tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-footer__content .tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}.tensorsite-footer__content .tensorsite-content__description{font-size:18px;line-height:30px;color:#fff;text-align:center}.tensorsite-footer__content .tensorsite-content__cta-wrapper{margin-top:10px;text-align:center}.tensorsite-footer__content .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-footer__content .tensorsite-content .tensorsite-content__title+.tensorsite-content__cta-wrapper{margin-top:40px}@media only screen and (max-width: 767px){.tensorsite-footer__content{margin:36px -76px}}.tensorsite-footer__lines{background:url(/site-assets/images/marketing/footer-lines.svg) center bottom/100% auto no-repeat;bottom:0;left:50%;max-width:1720px;min-width:1320px;pointer-events:none;position:absolute;top:0;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);width:90vw;z-index:2}@media only screen and (max-width: 767px){.tensorsite-footer__lines{-webkit-transform:translate(-30%, 0);transform:translate(-30%, 0)}}@media only screen and (max-width: 480px){.tensorsite-footer__lines{-webkit-transform:translate(-20%, 0);transform:translate(-20%, 0)}}.tensorsite-footer--redesign .tensorsite-content{max-width:unset}.tensorsite-footer--redesign .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:700;line-height:72px;letter-spacing:-0.5px;color:#fff;color:#fff;text-align:center}@media only screen and (max-width: 1279px){.tensorsite-footer--redesign .tensorsite-content__title{line-height:58px}}@media only screen and (max-width: 767px){.tensorsite-footer--redesign .tensorsite-content__title{font-size:36px;line-height:44px;letter-spacing:-0.25px}}.tensorsite-footer--redesign .tensorsite-content__cta-wrapper{flex-direction:row;text-align:center;align-self:center;gap:34px}@media only screen and (max-width: 767px){.tensorsite-footer--redesign .tensorsite-content__cta-wrapper{flex-direction:column;gap:16px}}.tensorsite-footer--redesign .tensorsite-content .tensorsite-button{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#616161;text-decoration:underline;text-underline-offset:4px;text-decoration:none;align-self:center}.tensorsite-footer--redesign .tensorsite-content .tensorsite-button:hover,.tensorsite-footer--redesign .tensorsite-content .tensorsite-button:focus{color:#ff6f00}.tensorsite-footer--redesign .tensorsite-content .tensorsite-button:hover{color:#fff}.tensorsite-footerlink{color:#425066;margin:0 auto 80px;max-width:1140px}@media only screen and (min-width: 768px){.tensorsite-footerlink{padding:0 180px}}@media only screen and (max-width: 1279px){.tensorsite-footerlink{flex-direction:column;margin-bottom:50px;padding:0 100px}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-footerlink{display:block}}@media only screen and (max-width: 767px){.tensorsite-footerlink{padding:35px 35px 0}}.tensorsite-footerlink__inner{display:flex}.tensorsite-footerlink__wrapper{color:#425066;cursor:pointer;margin-bottom:auto;transition:.2s color linear;width:46%}.tensorsite-footerlink__wrapper:focus{outline:2px solid #425066;outline-offset:2px}.tensorsite-footerlink__wrapper-left{margin-right:auto;text-align:left}.tensorsite-footerlink__wrapper-left .tensorsite-footerlink__label{padding-left:35px}.tensorsite-footerlink__wrapper-left .tensorsite-footerlink__label::before,.tensorsite-footerlink__wrapper-left .tensorsite-footerlink__label::after{left:0}.tensorsite-footerlink__wrapper-right{margin-left:auto;text-align:right}.tensorsite-footerlink__wrapper-right .tensorsite-footerlink__label{padding-right:35px}.tensorsite-footerlink__wrapper-right .tensorsite-footerlink__label::before,.tensorsite-footerlink__wrapper-right .tensorsite-footerlink__label::after{right:0}.tensorsite-footerlink__wrapper:hover,.tensorsite-footerlink__wrapper:focus{color:#ff6f00}.tensorsite-footerlink__wrapper:hover .tensorsite-footerlink__label::before,.tensorsite-footerlink__wrapper:focus .tensorsite-footerlink__label::before{opacity:1}.tensorsite-footerlink__wrapper:hover .tensorsite-footerlink__label::after,.tensorsite-footerlink__wrapper:focus .tensorsite-footerlink__label::after{opacity:0}.tensorsite-footerlink__label{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;position:relative}.tensorsite-footerlink__label::before,.tensorsite-footerlink__label::after{background-repeat:no-repeat;background-size:contain;bottom:0;content:'';height:18px;margin:auto 0;position:absolute;right:0px;top:0;transition:.2s opacity linear;width:18px}.tensorsite-footerlink__label::before{opacity:0}.tensorsite-footerlink__body{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-hero+.tensorsite-group:not(.tensorsite-group--has-top-divider) .tensorsite-container:first-child{margin-top:0}@media only screen and (max-width: 767px){.tensorsite-group .tensorsite-block .tensorsite-card{flex-basis:calc(100% - 30px);flex-shrink:0}}@media only screen and (max-width: 767px){.tensorsite-group .tensorsite-expandable{padding:0 15px}}.tensorsite-group__divider{border-top:1px solid #dadada;margin:auto 80px;max-width:1420px}@media only screen and (min-width: 1430px){.tensorsite-group__divider{margin:auto;width:90%}}.tensorsite-group__divider--footerlink{border-color:#425066;margin:0 auto 22px;width:100%}.tensorsite-group__header .tensorsite-content{padding-bottom:50px;padding-top:0}@media only screen and (max-width: 767px){.tensorsite-group__header .tensorsite-content{padding-left:15px;padding-right:15px}}.tensorsite-group__header:last-child .tensorsite-content{padding-bottom:0}.tensorsite-group__header,.tensorsite-group__footer{margin:0 auto;text-align:center}.tensorsite-group__header .tensorsite-content__title,.tensorsite-group__footer .tensorsite-content__title{align-self:flex-start;margin:auto;max-width:540px}.tensorsite-group__header .tensorsite-content__small-title,.tensorsite-group__footer .tensorsite-content__small-title{align-self:flex-start;margin:auto;max-width:860px}.tensorsite-group__header .tensorsite-content__description,.tensorsite-group__footer .tensorsite-content__description{margin:10px auto;width:55%}@media only screen and (max-width: 1279px){.tensorsite-group__header .tensorsite-content__description,.tensorsite-group__footer .tensorsite-content__description{width:70%}}@media only screen and (max-width: 767px){.tensorsite-group__header .tensorsite-content__description,.tensorsite-group__footer .tensorsite-content__description{width:100%}}.tensorsite-group__header .tensorsite-content__description:last-child,.tensorsite-group__footer .tensorsite-content__description:last-child{margin-bottom:0}.tensorsite-group__header .tensorsite-content__cta-wrapper,.tensorsite-group__footer .tensorsite-content__cta-wrapper{margin-top:16px}.tensorsite-group__header ul.tensorsite-content__cta-wrapper,.tensorsite-group__footer ul.tensorsite-content__cta-wrapper{justify-content:center}.tensorsite-group__header .tensorsite-content__cta,.tensorsite-group__header .tensorsite-content__button,.tensorsite-group__footer .tensorsite-content__cta,.tensorsite-group__footer .tensorsite-content__button{align-self:center}.tensorsite-group__header--align-left,.tensorsite-group__footer--align-left{text-align:left}@media only screen and (max-width: 850px){.tensorsite-group__header--align-left,.tensorsite-group__footer--align-left{max-width:600px}}.tensorsite-group__header--align-left .tensorsite-content__description,.tensorsite-group__header--align-left .tensorsite-content__title,.tensorsite-group__footer--align-left .tensorsite-content__description,.tensorsite-group__footer--align-left .tensorsite-content__title{align-self:flex-start;margin-left:0;margin-right:0}.tensorsite-group__header--align-left .tensorsite-content__cta,.tensorsite-group__footer--align-left .tensorsite-content__cta{align-self:flex-start}.tensorsite-group__footer .tensorsite-content{padding-bottom:0;padding-top:50px}.tensorsite-group__footer .tensorsite-content .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-group__footer .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}.tensorsite-group__inner{display:flex;flex-wrap:wrap;list-style:none;margin:-15px auto}.tensorsite-group__inner[data-carousel-container]{flex-wrap:nowrap;transition:-webkit-transform .5s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .5s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .5s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .5s cubic-bezier(0.4, 0, 0.2, 1);will-change:transform}.tensorsite-group [data-carousel-wrapper]{position:relative}.tensorsite-group__button-previous,.tensorsite-group__button-next{background:#fff;border-radius:50%;box-shadow:0 0 36px rgba(0,0,0,0.1);height:46px;opacity:0;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%) translateY(20px);transform:translateY(-50%) translateY(20px);transition:box-shadow .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .2s linear,-webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .2s linear,transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .2s linear,transform .2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);width:46px;z-index:10}@media only screen and (max-width: 1279px){.tensorsite-group__button-previous.is-visible,.tensorsite-group__button-next.is-visible{opacity:1;pointer-events:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%)}}.tensorsite-group__button-previous:focus,.tensorsite-group__button-previous:hover,.tensorsite-group__button-next:focus,.tensorsite-group__button-next:hover{box-shadow:0 0 64px rgba(0,0,0,0.22)}.tensorsite-group__button-previous .material-icons,.tensorsite-group__button-next .material-icons{color:#ff6f00;font-size:36px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.tensorsite-group:focus__button-previous.is-visible,.tensorsite-group:focus__button-next.is-visible,.tensorsite-group:hover__button-previous.is-visible,.tensorsite-group:hover__button-next.is-visible{opacity:1;pointer-events:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.tensorsite-group__button-previous{left:40px}@media only screen and (min-width: 1280px){.tensorsite-group__button-previous{left:calc((100vw - 1420px) / -2 + 40px)}}@media only screen and (max-width: 1279px){.tensorsite-group__button-previous{left:0}}.tensorsite-group__button-next{right:40px}@media only screen and (min-width: 1280px){.tensorsite-group__button-next{right:calc((100vw - 1420px) / -2 + 40px)}}@media only screen and (max-width: 1279px){.tensorsite-group__button-next{right:0}}.tensorsite-group--gray{background-color:#f5f6f7}.tensorsite-group--gray:not(.tensorsite-group--redesign){margin-bottom:-120px;padding-bottom:120px;padding-top:80px}.tensorsite-group--gray .tensorsite-container{margin-top:0}.tensorsite-group--gray+.tensorsite-footer{margin-top:-180px}.tensorsite-group--gray.padding-100{padding:100px 0}.tensorsite-group--condensed-top{padding-top:60px}.tensorsite-group--show-all .tensorsite-container{padding-bottom:86px;position:relative}.tensorsite-group--show-all .tensorsite-group__show-all-toggle{bottom:0;left:50%;opacity:0;position:absolute;-webkit-transform:translate(-50%, -5px);transform:translate(-50%, -5px)}.tensorsite-group--show-all .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{margin-bottom:0;max-height:500px;overflow:hidden;transition:.3s max-height cubic-bezier(0.4, 0, 0.2, 1),.3s margin-bottom cubic-bezier(0.4, 0, 0.2, 1)}.tensorsite-group--show-all .tensorsite-group__show-all-toggle+label{bottom:0;left:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tensorsite-group--show-all .tensorsite-group__show-all-toggle+label span::before{content:attr(data-show-all-default);display:inline-block}.tensorsite-group--show-all .tensorsite-group__show-all-toggle:checked{pointer-events:none}.tensorsite-group--show-all .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{max-height:500px}.tensorsite-group--show-all .tensorsite-group__show-all-toggle:checked+label span::before{content:attr(data-show-all-collapse)}@media only screen and (max-width: 850px){.tensorsite-group--2up .tensorsite-group__inner,.tensorsite-group--row .tensorsite-group__inner{max-width:600px}}.tensorsite-group--2up .tensorsite-block,.tensorsite-group--2up .tensorsite-card:not(.tensorsite-card--horizontal),.tensorsite-group--row .tensorsite-block,.tensorsite-group--row .tensorsite-card:not(.tensorsite-card--horizontal){flex-shrink:0}.tensorsite-group--2up .devsite-landing-row-item-code,.tensorsite-group--row .devsite-landing-row-item-code{display:flex;flex-direction:column}@media only screen and (max-width: 850px){.tensorsite-group--2up .tensorsite-block,.tensorsite-group--2up .tensorsite-card:not(.tensorsite-card--horizontal),.tensorsite-group--row .tensorsite-block,.tensorsite-group--row .tensorsite-card:not(.tensorsite-card--horizontal){flex-basis:calc(100% - 30px);max-width:calc(100% - 30px);order:0 !important}}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-group--2up .tensorsite-content,.tensorsite-group--row .tensorsite-content{display:block}}@media only screen and (max-width: 850px){.tensorsite-group--3up .tensorsite-group__inner,.tensorsite-group--3up-small .tensorsite-group__inner,.tensorsite-group--3up-short .tensorsite-group__inner{max-width:600px}}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-group--3up .tensorsite-block,.tensorsite-group--3up .tensorsite-card,.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card,.tensorsite-group--3up-short .tensorsite-block,.tensorsite-group--3up-short .tensorsite-card{flex-basis:calc(100% / 3 - 30px - 1px)}}@supports (-ms-ime-align: auto){.tensorsite-group--3up .tensorsite-block,.tensorsite-group--3up .tensorsite-card,.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card,.tensorsite-group--3up-short .tensorsite-block,.tensorsite-group--3up-short .tensorsite-card{flex-basis:calc(100% / 3 - 30px - 1px)}}@media only screen and (max-width: 850px){.tensorsite-group--3up .tensorsite-block,.tensorsite-group--3up .tensorsite-card,.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card,.tensorsite-group--3up-short .tensorsite-block,.tensorsite-group--3up-short .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px);order:0 !important}}@media only screen and (max-width: 1000px){.tensorsite-group--3up .tensorsite-block .tensorsite-content,.tensorsite-group--3up-small .tensorsite-block .tensorsite-content,.tensorsite-group--3up-short .tensorsite-block .tensorsite-content{padding-left:0;padding-right:0}}@media only screen and (max-width: 767px){.tensorsite-group--3up .tensorsite-block .tensorsite-content,.tensorsite-group--3up-small .tensorsite-block .tensorsite-content,.tensorsite-group--3up-short .tensorsite-block .tensorsite-content{padding:0 30px}}.tensorsite-group--3up .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--3up .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code,.tensorsite-group--3up-small .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--3up-small .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code,.tensorsite-group--3up-short .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--3up-short .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code,.tensorsite-group--row .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--row .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code{display:flex;flex-direction:column}.tensorsite-group--3up-small .tensorsite-group__inner{justify-content:center;width:75%}@media only screen and (max-width: 1000px){.tensorsite-group--3up-small .tensorsite-group__inner{width:auto}}.tensorsite-group--3up-short .tensorsite-content__image-wrapper{align-items:center;display:flex;justify-content:center;max-height:150px;overflow:hidden}.tensorsite-group--4up .tensorsite-group__inner,.tensorsite-group--5up .tensorsite-group__inner{justify-content:center}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-group__inner,.tensorsite-group--5up .tensorsite-group__inner{max-width:600px}}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-block,.tensorsite-group--5up .tensorsite-block{margin:40px 0}}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-card--hero,.tensorsite-group--5up .tensorsite-card--hero{min-height:400px}}.tensorsite-group--4up .tensorsite-content__title,.tensorsite-group--5up .tensorsite-content__title{max-width:none}.tensorsite-group--4up .tensorsite-block--plain .tensorsite-content,.tensorsite-group--5up .tensorsite-block--plain .tensorsite-content{padding-left:0;padding-right:0}.tensorsite-group--4up .tensorsite-block,.tensorsite-group--4up .tensorsite-card{flex-basis:calc(50% - 30px);max-width:calc(50% - 30px)}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-block,.tensorsite-group--4up .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-group--5up .tensorsite-block,.tensorsite-group--5up .tensorsite-card{flex-basis:calc(20% - 30px);flex-shrink:0;max-width:calc(20% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-group--5up .tensorsite-block,.tensorsite-group--5up .tensorsite-card{flex-basis:calc(50% - 30px);max-width:calc(50% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--5up .tensorsite-block,.tensorsite-group--5up .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-group--logos .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__inner{justify-content:center;margin-top:-20px}.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos .tensorsite-card,.tensorsite-group--logos-small .tensorsite-block,.tensorsite-group--logos-small .tensorsite-card{flex-basis:calc(12.5% - 30px);flex-grow:0;flex-shrink:0}@media only screen and (max-width: 1279px){.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos .tensorsite-card,.tensorsite-group--logos-small .tensorsite-block,.tensorsite-group--logos-small .tensorsite-card{flex-basis:calc(25% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos .tensorsite-card,.tensorsite-group--logos-small .tensorsite-block,.tensorsite-group--logos-small .tensorsite-card{flex-basis:calc(50% - 30px)}}.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos-small .tensorsite-block{margin-bottom:0;margin-top:20px}.tensorsite-group--logos .tensorsite-block:nth-child(n+9),.tensorsite-group--logos-small .tensorsite-block:nth-child(n+9){visibility:hidden}.tensorsite-group--logos .tensorsite-block:last-of-type,.tensorsite-group--logos-small .tensorsite-block:last-of-type{margin-bottom:4px}.tensorsite-group--logos .tensorsite-block__image,.tensorsite-group--logos-small .tensorsite-block__image{background-position:center center;background-repeat:no-repeat;background-size:contain;height:65px;outline-offset:-4px}.tensorsite-group--logos .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{max-height:90px}@media only screen and (max-width: 1279px){.tensorsite-group--logos .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{max-height:calc(86px * 2)}}@media only screen and (max-width: 767px){.tensorsite-group--logos .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{max-height:calc(86px * 4)}}.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{--number-of-rows: 6;max-height:510px;max-height:calc(86px * var(--number-of-rows))}@media only screen and (max-width: 1279px){.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{max-height:1020px;max-height:calc(86px * var(--number-of-rows) * 2)}}@media only screen and (max-width: 767px){.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{max-height:1020px;max-height:calc(86px * var(--number-of-rows) * 4)}}.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner .tensorsite-block:nth-child(n+9),.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner .tensorsite-block:nth-child(n+9){visibility:visible}.tensorsite-group--logos-wide .tensorsite-block{margin-left:30px;margin-right:30px}.tensorsite-group--row .tensorsite-group__header,.tensorsite-group--row-3up .tensorsite-group__header{display:flex;flex-basis:calc(100% / 3);flex-direction:column;flex-grow:0;flex-shrink:0;margin:15px 0;max-width:calc(100% / 3);text-align:left}@media only screen and (max-width: 850px){.tensorsite-group--row .tensorsite-group__header,.tensorsite-group--row-3up .tensorsite-group__header{flex-basis:100%;max-width:none}}@media only screen and (max-width: 767px){.tensorsite-group--row .tensorsite-group__header,.tensorsite-group--row-3up .tensorsite-group__header{flex-basis:100%;max-width:100%}}.tensorsite-group--row .tensorsite-group__header .tensorsite-content,.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content{padding-bottom:0;padding-top:0;flex-grow:0;flex-shrink:0;position:sticky;top:120px}.tensorsite-group--row .tensorsite-group__header .tensorsite-content__title,.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__title{align-self:flex-start;margin:0;max-width:none}.tensorsite-group--row .tensorsite-group__header .tensorsite-content__description,.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__description{margin:0;flex-grow:0;flex-shrink:0;width:auto}.tensorsite-group--row .tensorsite-group__inner-wrapper,.tensorsite-group--row-3up .tensorsite-group__inner-wrapper{display:flex;flex-basis:calc(100% / 3 * 2);flex-wrap:wrap;max-width:calc(100% / 3 * 2)}@media only screen and (max-width: 850px){.tensorsite-group--row .tensorsite-group__inner-wrapper,.tensorsite-group--row-3up .tensorsite-group__inner-wrapper{flex-basis:100%;max-width:none}}@media only screen and (max-width: 767px){.tensorsite-group--row .tensorsite-group__inner-wrapper,.tensorsite-group--row-3up .tensorsite-group__inner-wrapper{flex-basis:100%;max-width:100%}}@media only screen and (min-width: 851px){.tensorsite-group--row-3up .tensorsite-container{display:flex}}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-container .tensorsite-group__inner{max-width:600px}}@media only screen and (min-width: 851px){.tensorsite-group--row-3up .tensorsite-group__header{max-width:calc(100% / 4)}}.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content{padding:0 15px 50px}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content{text-align:center}}.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__title{align-self:center}}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__subtitle{margin:0 auto 8px}}.tensorsite-group--row-3up .tensorsite-group__inner{width:100%}.tensorsite-group--row-3up .tensorsite-group__inner .tensorsite-card{max-width:calc(100% / 3 - 30px)}@media only screen and (max-width: 1279px){.tensorsite-group--row-3up .tensorsite-group__inner .tensorsite-card{flex-basis:calc(100% / 2 - 30px);max-width:calc(100% / 2 - 30px)}}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__inner .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-group--why-learn{position:relative;z-index:1}@media only screen and (max-width: 850px){.tensorsite-group--single-card .tensorsite-group__inner{max-width:600px}}.tensorsite-group--single-card .tensorsite-card{margin:15px auto;max-width:calc(66.66667% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-group--single-card .tensorsite-card{max-width:calc(83.33333% - 30px)}}@media only screen and (max-width: 850px){.tensorsite-group--single-card .tensorsite-card{max-width:100%}}.tensorsite-group--full-width .tensorsite-content__title{max-width:100%}.tensorsite-group--full-width .tensorsite-content__description{width:auto}.tensorsite-group--standalone .tensorsite-container{margin-bottom:0}.tensorsite-group--community-day .tensorsite-content__small-title,.tensorsite-group--community-day .tensorsite-content__title{font-size:24px}.tensorsite-group--community-day .tensorsite-content__description p{font-family:"Google Sans",sans-serif;font-size:20px}.tensorsite-group--community-day-program .tensorsite-card--horizontal{flex-direction:column}.tensorsite-group--community-day-program .tensorsite-content:not(:last-child){padding-bottom:0}.tensorsite-hero{display:flex;margin:0 auto;max-width:1420px;padding:0 40px;position:relative;overflow-clip-margin:calc(50vw - 710px)}@media only screen and (min-width: 768px){.tensorsite-hero{padding:100px 40px 50px}}@media only screen and (max-width: 1279px){.tensorsite-hero{flex-direction:column;padding:100px 100px 50px}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-hero{display:block}}@media only screen and (max-width: 767px){.tensorsite-hero{padding:50px 20px 0}}@media only screen and (min-width: 1280px){.tensorsite-hero--river,.tensorsite-hero--river-large{align-items:center;justify-content:space-between}}.tensorsite-hero--river::before,.tensorsite-hero--river-large::before{background:url(/site-assets/images/marketing/hero-river-bg-left.svg) center/cover no-repeat;content:'';height:304px;left:-250px;position:absolute;top:0;width:443px}@media only screen and (min-width: 768px){.tensorsite-hero--river::after,.tensorsite-hero--river-large::after{background:url(/site-assets/images/marketing/hero-river-bg-right.svg) center/cover no-repeat;content:'';height:904px;position:absolute;right:-350px;top:0;width:1440px;z-index:-1}}.tensorsite-hero--river .tensorsite-hero__side--left,.tensorsite-hero--river-large .tensorsite-hero__side--left{background-color:#ff6f00;height:304px;right:calc(100% + 250px);top:0}.tensorsite-hero--river .tensorsite-hero__side--right,.tensorsite-hero--river-large .tensorsite-hero__side--right{background:linear-gradient(to bottom, #f5f6f7, rgba(255,255,255,0));height:904px;left:calc(100% + 350px);top:0}.tensorsite-hero--center .tensorsite-hero__content{flex-basis:100% !important;margin-left:0;max-width:none !important}.tensorsite-hero--center .tensorsite-hero__content .tensorsite-content{margin:0 auto;text-align:center;width:50%}@media only screen and (max-width: 767px){.tensorsite-hero--center .tensorsite-hero__content .tensorsite-content{width:auto}}.tensorsite-hero--river .tensorsite-hero__content{flex:0 0 calc(41.66667% - 30px);max-width:calc(41.66667% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-hero--river .tensorsite-hero__content{flex-basis:83.33333%;margin:0 auto;max-width:83.33333%}}@media only screen and (max-width: 767px){.tensorsite-hero--river .tensorsite-hero__content{flex-basis:100%;max-width:100%}}.tensorsite-hero--river.tensorsite-hero--wider .tensorsite-hero__content{flex:auto;max-width:inherit}@media only screen and (min-width: 768px){.tensorsite-hero--river.tensorsite-hero--wider .tensorsite-hero__image{flex:0 0 35%}}@media only screen and (min-width: 768px){.tensorsite-hero--river.tensorsite-hero--wider .tensorsite-content{max-width:580px}}.tensorsite-hero--river-large{padding-left:180px;padding-right:180px}@media only screen and (max-width: 767px){.tensorsite-hero--river-large{padding:80px 20px 40px}}.tensorsite-hero--river-large::before{background:url(/site-assets/images/marketing/hero-river-bg-left-large.svg) center/cover no-repeat;height:546px;left:-450px;width:774px}.tensorsite-hero--river-large .tensorsite-hero__side--left{height:546px;right:calc(100% + 449px)}.tensorsite-hero--river-large .tensorsite-hero__image{display:none}.tensorsite-hero--image{display:block}@media only screen and (min-width: 768px){.tensorsite-hero--image{min-height:550px}}@media only screen and (max-width: 1279px){.tensorsite-hero--image{padding-left:70px;padding-right:70px}}@media only screen and (max-width: 767px){.tensorsite-hero--image{padding:50px 20px}}@media only screen and (min-width: 768px){.tensorsite-hero--image+.tensorsite-casestudy{margin-top:-90px}}.tensorsite-hero--image .tensorsite-hero__image{margin:0 auto;padding:0;position:absolute;right:-18%;top:0;width:68%}@media only screen and (max-width: 767px){.tensorsite-hero--image .tensorsite-hero__image{width:122%}.tensorsite-hero--image .tensorsite-hero__image img{max-width:100%}}@media only screen and (min-width: 768px){.tensorsite-hero--image .tensorsite-hero__content{width:33.33333%}}@media only screen and (max-width: 1279px){.tensorsite-hero--image .tensorsite-hero__content{text-align:left;width:41.66667%}}@media only screen and (max-width: 767px){.tensorsite-hero--image .tensorsite-hero__content{margin:60% 0 0;padding-top:26px;width:100%}}.tensorsite-hero--image .tensorsite-hero__content .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:28px}@media only screen and (min-width: 768px){.tensorsite-hero--image .tensorsite-hero__content .tensorsite-content__description{padding-bottom:100px}}@media only screen and (min-width: 1280px){.tensorsite-hero--shape{align-items:center;justify-content:space-between;padding-bottom:0;padding-top:20px}}.tensorsite-hero--shape::before{background:url(/site-assets/images/marketing/hero-shape-bg.svg) center/cover no-repeat;content:'';height:402.25179px;position:absolute;right:-32%;top:0;width:1500px;z-index:-1}@media only screen and (max-width: 767px){.tensorsite-hero--shape::before{left:50%;right:auto;top:0;-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@media only screen and (max-width: 1279px){.tensorsite-hero--shape .tensorsite-hero__content{flex-basis:66.66667%;margin:0 auto;max-width:66.66667%}}@media only screen and (max-width: 767px){.tensorsite-hero--shape .tensorsite-hero__content{flex-basis:100%;max-width:100%}}.tensorsite-hero--video{height:600px;margin-bottom:50px}@media only screen and (min-width: 1280px){.tensorsite-hero--video{padding-top:120px}}@media only screen and (max-width: 1279px){.tensorsite-hero--video{flex-direction:row}}@media only screen and (max-width: 1000px){.tensorsite-hero--video{flex-direction:column;height:auto}}@media only screen and (max-width: 767px){.tensorsite-hero--video{margin-bottom:0}}.tensorsite-hero--video::after{background:#dadada;bottom:0;content:'';height:1px;left:50%;position:absolute;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);width:100vw;z-index:1}.tensorsite-hero--video::before{background:url(/site-assets/images/marketing/hero-video-bg.svg) top right/cover no-repeat;bottom:0;content:'';left:0;position:absolute;top:0;width:75%;z-index:1}@media only screen and (max-width: 1000px){.tensorsite-hero--video::before{display:none}}.tensorsite-hero--video .tensorsite-hero__content{position:relative;z-index:1}@media only screen and (max-width: 1279px){.tensorsite-hero--video .tensorsite-hero__content{text-align:left}}@media only screen and (min-width: 1280px){.tensorsite-hero--video .tensorsite-hero__content{max-width:calc(33.33333% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__content{padding-bottom:50px;text-align:center}}@media only screen and (min-width: 768px){.tensorsite-hero--video .tensorsite-hero__content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:46px;font-weight:700;line-height:56px}}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-content__cta-wrapper{justify-content:center}}.tensorsite-hero--video .tensorsite-hero__image{bottom:0;left:0;margin-bottom:0;margin-top:0;padding:0;position:absolute;right:0;top:0}@media only screen and (min-width: 1441px){.tensorsite-hero--video .tensorsite-hero__image{margin-left:2px;margin-right:calc((100vw - 1420px) / -2)}}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__image{height:45vw;margin-left:-100px;margin-right:-100px;min-height:350px;position:relative}.tensorsite-hero--video .tensorsite-hero__image.tensorsite-hero__image--has-mobile .tensorsite-hero__image--desktop{display:none}}.tensorsite-hero--video .tensorsite-hero__image--desktop,.tensorsite-hero--video .tensorsite-hero__image--mobile{background:center right 45% / cover no-repeat;bottom:0;left:0;position:absolute;right:0;top:0}.tensorsite-hero--video .tensorsite-hero__image--mobile{display:none}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__image--mobile{display:block}}.tensorsite-hero--video .tensorsite-hero__side--left{background-color:#fff;height:100%;right:100%;top:0;z-index:1}.tensorsite-hero--video .tensorsite-hero__play-button{bottom:0;position:absolute;right:20%;top:0;z-index:2}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__play-button{left:0;right:0}}@media only screen and (min-width: 1280px){.tensorsite-hero--community{padding-bottom:20px;padding-right:60px;padding-top:20px}.tensorsite-hero--community .tensorsite-hero__content{max-width:400px}}.tensorsite-hero--narrow{min-height:440px}.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-content{width:500px}@media only screen and (max-width: 1279px){.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-content{width:auto}}@media only screen and (max-width: 767px){.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-content{padding:0 15px;width:auto}}@media only screen and (max-width: 767px){.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-hero__buttons{padding:0 15px}}@media only screen and (min-width: 1280px){.tensorsite-hero--community-day{padding:0px}.tensorsite-hero--community-day .tensorsite-hero__content{flex:0 0 50%;max-width:50%}.tensorsite-hero--community-day .tensorsite-hero__content .tensorsite-content__title{font-size:40px;line-height:52px}}.tensorsite-hero.hero-library-extensions::before{top:-25px}.tensorsite-hero__side{position:absolute;width:calc((100vw - 1440px) / 2)}@media only screen and (min-width: 1280px){.tensorsite-hero__content{margin-left:calc(8.33333% + (30px / 2))}.tensorsite-hero--shape .tensorsite-hero__content{max-width:400px}}@media only screen and (max-width: 1279px){.tensorsite-hero__content{text-align:center}}@media only screen and (min-width: 768px){.tensorsite-hero__content{flex:0 0 50%}}.tensorsite-hero__content .tensorsite-content{padding:0}@media only screen and (max-width: 767px){.tensorsite-hero__content .tensorsite-content{padding:0 15px}}.tensorsite-hero__content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:700;line-height:48px}@media only screen and (max-width: 767px){.tensorsite-hero__content .tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-hero__content .tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}.tensorsite-hero__content .tensorsite-content__description{font-size:18px;line-height:30px;color:#425066}.tensorsite-hero__content .tensorsite-content__description a{color:#425066}.tensorsite-hero__content .tensorsite-content__cta-wrapper{margin-top:8px}@media only screen and (max-width: 1279px){.tensorsite-hero__content .tensorsite-content__cta-wrapper .tensorsite-content__cta{align-self:center}}.tensorsite-hero__buttons{-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:grid;grid-template-rows:-webkit-max-content -webkit-max-content;grid-template-rows:max-content max-content;margin:24px auto 20px;max-width:300px}@media only screen and (min-width: 768px){.tensorsite-hero__buttons{grid-auto-flow:column;grid-template-columns:1fr 1fr 1fr;max-width:none}}@media only screen and (max-width: 1279px){.tensorsite-hero__buttons{justify-content:center}}.tensorsite-hero__buttons--fixed-width{grid-template-columns:auto}.tensorsite-hero__buttons--fixed-width .tensorsite-hero__button-column{width:160px}.tensorsite-hero__buttons--fixed-width .tensorsite-hero__button{width:100%}.tensorsite-hero__button{align-items:center;display:flex;justify-content:center;text-align:center}.tensorsite-hero__button-subtitle{font-size:12px;line-height:18px;color:#616161}@media only screen and (max-width: 767px){.tensorsite-hero__image{margin:20px -8%}}@media only screen and (min-width: 768px){.tensorsite-hero__image{flex:0 0 50%}}@media only screen and (max-width: 1279px){.tensorsite-hero__image{margin:20px auto;text-align:center}}@media only screen and (min-width: 1280px){.tensorsite-hero__image{padding-left:25px}.tensorsite-hero__image.video-wrapper{padding-right:10%}}@media only screen and (max-width: 767px){.tensorsite-hero__image img{max-width:500px;width:100%}}@media only screen and (min-width: 768px){.tensorsite-hero__image img{min-width:480px}}.tensorsite-hero--redesign .tensorsite-hero__content .tensorsite-content{width:80%}@media only screen and (max-width: 767px){.tensorsite-hero--redesign .tensorsite-hero__content .tensorsite-content{width:auto}}.tensorsite-hero--redesign .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:52px;font-weight:500;line-height:62px;letter-spacing:-0.5px;color:#425066}@media only screen and (max-width: 1279px){.tensorsite-hero--redesign .tensorsite-content__title{font-size:40px;line-height:48px}}@media only screen and (max-width: 767px){.tensorsite-hero--redesign .tensorsite-content__title{font-size:30px;line-height:36px;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-hero--redesign .tensorsite-content__title{text-align:left}}.tensorsite-hero--redesign .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:18px;font-weight:400;line-height:28px;color:#616161}@media only screen and (max-width: 767px){.tensorsite-hero--redesign .tensorsite-content__description{text-align:left}}.tensorsite-partner-detail{background:#f5f6f7}.tensorsite-partner-detail .tensorsite-container{margin:0 auto;max-width:1420px;padding:0 40px}@media only screen and (max-width: 767px){.tensorsite-partner-detail .tensorsite-container{padding:0 20px}}.tensorsite-partner-detail .tensorsite-container::after{clear:both;content:'';display:table}.tensorsite-partner-detail+.tensorsite-footer{margin-top:0}.tensorsite-partner-detail__section{float:left;margin-left:calc(8.33333% + (30px / 2));margin-right:15px;padding:50px 0;position:relative;width:calc(58.33333% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-partner-detail__section{margin-left:15px;padding:30px 0}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section{margin-left:0;margin-right:0;width:100%}.tensorsite-partner-detail__section:first-child::after{content:none}}.tensorsite-partner-detail__section::after{border-bottom:1px solid #dadada;bottom:0;content:'';height:1px;left:0;position:absolute;right:0}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section::after{left:15px;right:15px}}.tensorsite-partner-detail__section:last-child{padding-bottom:0}.tensorsite-partner-detail__section:last-child::after,.tensorsite-partner-detail__section--secondary::after{content:none}.tensorsite-partner-detail__section--secondary{float:right;margin:0 15px;padding-top:120px;width:calc(25% - (30px))}@media only screen and (max-width: 1279px){.tensorsite-partner-detail__section--secondary{padding-top:100px;width:calc(33.33333% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--secondary{float:left;margin:0;padding:0 15px 60px;width:100%}.tensorsite-partner-detail__section--secondary::after{content:''}}@media only screen and (max-width: 767px){.tensorsite-partner-detail__section--secondary{padding:0 15px 60px}}.tensorsite-partner-detail__section--secondary .tensorsite-list+.tensorsite-list{margin-top:30px}.tensorsite-partner-detail__section--links .tensorsite-partner-detail__section-inner .tensorsite-content:first-child,.tensorsite-partner-detail__section--links .tensorsite-partner-detail__section-inner .tensorsite-content+.tensorsite-content{padding-top:0}.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:0}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner{padding:0 15px}}.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner .tensorsite-list{flex:0 0 calc(50% - (30px / 2));margin-bottom:30px}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner .tensorsite-list{flex:0 0 100%}}.tensorsite-partner-detail__section--text .tensorsite-content__image-wrapper{background-position:center;background-size:cover;margin:0 auto 30px;padding-top:56.75%;width:100%}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--text .tensorsite-content__image-wrapper{width:calc(100% - 30px)}}.tensorsite-partner-detail__section .tensorsite-content{padding-left:0;padding-right:0}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section .tensorsite-content{padding-left:15px;padding-right:15px}}.tensorsite-partner-detail .tensorsite-list{font-size:14px;line-height:22px}.tensorsite-partner-detail .tensorsite-list__description p:last-child,.tensorsite-partner-detail .tensorsite-list__item:last-child{margin-bottom:0}.tensorsite-partner-detail-hero{padding:70px 0}.tensorsite-partner-detail-hero .tensorsite-container{display:flex;justify-content:space-between;margin:0 auto;max-width:1420px;padding:0 40px}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero .tensorsite-container{flex-wrap:wrap}}@media only screen and (max-width: 767px){.tensorsite-partner-detail-hero .tensorsite-container{padding:0 20px}}.tensorsite-partner-detail-hero__main{display:flex;margin-left:calc(8.33333% + (30px / 2));margin-right:15px;width:calc(58.33333% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-partner-detail-hero__main{margin-left:15px;width:calc(66.66667% + 30px)}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__main{flex-wrap:wrap;margin-left:0;margin-right:0;width:100%}}@media only screen and (max-width: 767px){.tensorsite-partner-detail-hero__main{padding:0 15px}}.tensorsite-partner-detail-hero__image{display:flex;flex:0 0 50%;flex-direction:column;justify-content:center;padding-right:50px}.tensorsite-partner-detail-hero__image-wrapper{display:flex;flex-direction:column;height:155px;justify-content:center}.tensorsite-partner-detail-hero__image img{display:block;margin-right:auto;max-height:100%;max-width:252px}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__image{flex:0 0 100%;flex-direction:row;margin-bottom:26px;padding-right:0}.tensorsite-partner-detail-hero__image-wrapper{height:auto;margin:0 auto;max-height:100px;max-width:300px}.tensorsite-partner-detail-hero__image img{margin:0 auto}}.tensorsite-partner-detail-hero__content{padding:30px 0 30px 50px;position:relative}.tensorsite-partner-detail-hero__content::before{background:#dadada;content:'';height:100%;left:0;position:absolute;top:0;width:1px}@media only screen and (min-width: 768px){.tensorsite-partner-detail-hero__content .tensorsite-content{padding-left:0;padding-right:0}}.tensorsite-partner-detail-hero__content .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px}@media only screen and (max-width: 1279px){.tensorsite-partner-detail-hero__content{padding-left:30px;padding-right:30px}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__content{flex:0 0 100%;padding:0;text-align:center}.tensorsite-partner-detail-hero__content::before{display:block;height:1px;margin:0 auto;position:relative;width:30%}.tensorsite-partner-detail-hero__content .tensorsite-content__subtitle{align-self:center}}.tensorsite-partner-detail-hero__secondary{flex:0 0 auto;margin:0 15px;padding:30px 0;width:calc(25% - (30px))}@media only screen and (max-width: 1279px){.tensorsite-partner-detail-hero__secondary{width:calc(33.33333% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__secondary{margin:0 auto;max-width:100%;padding:0 15px;width:auto}}@media only screen and (max-width: 767px){.tensorsite-partner-detail-hero__secondary{padding:30px 15px 0}}.tensorsite-partner-detail-hero__secondary .tensorsite-list{font-size:14px;line-height:22px;background:#f5f6f7}.tensorsite-partner-detail-hero__secondary .tensorsite-list__description p:last-child,.tensorsite-partner-detail-hero__secondary .tensorsite-list__item:last-child{margin-bottom:0}.tensorsite-side-side .tensorsite-container{margin:0 auto;max-width:1420px;padding:80px 40px}@media only screen and (max-width: 767px){.tensorsite-side-side .tensorsite-container{padding:80px 20px}}.tensorsite-side-side .tensorsite-container--no-padding{padding-top:0;padding-bottom:0}.tensorsite-side-side--condensed-bottom .tensorsite-container{padding-bottom:60px}.tensorsite-side-side--no-bottom .tensorsite-container{padding-bottom:0}.tensorsite-side-side .tensorsite-content{padding-left:0;padding-right:0}@media only screen and (max-width: 767px){.tensorsite-side-side .tensorsite-content{padding:26px 0}}.tensorsite-side-side .tensorsite-content p{margin:10px 0}.tensorsite-side-side .tensorsite-content__title{margin-bottom:24px}.tensorsite-side-side .tensorsite-content__image-wrapper{background-position:center;background-size:cover;border-radius:10px;height:100%}@media only screen and (max-width: 1000px){.tensorsite-side-side .tensorsite-content__image-wrapper{height:300px;margin:0}}.tensorsite-side-side .tensorsite-content__image-wrapper.contain-image{background-size:contain;width:100%;background-position:center;background-repeat:no-repeat}.tensorsite-side-side--gray{background-color:#f5f6f7}.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper{justify-content:space-between}@media only screen and (max-width: 767px){.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper{display:block}}@media only screen and (min-width: 768px){.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{margin-top:15px}}@media only screen and (max-width: 767px){.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{border-top:1px solid #dadada;margin-top:50px;padding-top:50px}}.tensorsite-side-side--multi-partial .tensorsite-content{height:auto;padding-left:0;padding-right:0}.tensorsite-side-side--multi-partial .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;margin-bottom:0}.tensorsite-side-side--multi-partial .tensorsite-card{flex-basis:100%;margin-left:0;margin-right:0}@media only screen and (min-width: 768px){.tensorsite-side-side--multi-partial .tensorsite-card{max-width:100%}}@media only screen and (max-width: 767px){.tensorsite-side-side--multi-partial .tensorsite-card{max-width:100%}}.tensorsite-side-side--multi-partial .tensorsite-card .tensorsite-content{padding:26px 30px}.tensorsite-side-side--multi-partial .tensorsite-card .tensorsite-content__image-wrapper{border-radius:10px 10px 0 0;height:auto}.tensorsite-side-side--multi-partial .tensorsite-list--no-background .tensorsite-list__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}@media only screen and (max-width: 1279px){.tensorsite-side-side--centered .tensorsite-side-side__main-section,.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{flex-basis:calc(41.66667% - 30px);max-width:calc(41.66667% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side__main-section,.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-side-side--centered .tensorsite-side-side__main-section{margin-left:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side__main-section{margin-left:15px}}.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{margin-right:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{margin-right:15px}}.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__main-section{margin-right:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__main-section{margin-right:15px}}.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__secondary-section{margin-left:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__secondary-section{margin-left:15px}}.tensorsite-side-side-wrapper{display:flex;flex:1 1 auto;flex-wrap:wrap;justify-content:space-between}.tensorsite-side-side-wrapper--reverse{flex-direction:row-reverse}.tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{margin-left:calc(8.33333% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{margin-left:15px}}.tensorsite-side-side__main-section,.tensorsite-side-side__secondary-section{flex-basis:calc(41.66667% - 30px);margin:15px;max-width:calc(41.66667% - 30px);z-index:1}@media only screen and (max-width: 1000px){.tensorsite-side-side__main-section,.tensorsite-side-side__secondary-section{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-side-side__main-section{margin-left:calc(8.33333% + (30px / 2));margin-right:15px}@media only screen and (max-width: 1279px){.tensorsite-side-side__main-section{flex-basis:calc(50% - 30px);margin-left:15px;max-width:calc(50% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-side-side__main-section{flex-basis:calc(100% - 30px);margin-left:15px;max-width:calc(100% - 30px)}}.tensorsite-side-side__main-section .tensorsite-content .tensorsite-content__description{margin-bottom:24px}.tensorsite-side-side__main-section .tensorsite-content .tensorsite-content__description:last-child{margin-bottom:0}.tensorsite-side-side__text-wrapper--white-bg{background-color:#fff;border:1px #ccc solid;border-radius:10px;flex-basis:calc(40% - 30px);margin-bottom:26px;padding:0}@media only screen and (max-width: 1000px){.tensorsite-side-side__text-wrapper--white-bg{flex-basis:calc(100% - 30px)}}.tensorsite-side-side__text-wrapper--white-bg .tensorsite-content{padding:40px}.tensorsite-side-side__text-wrapper--white-bg .tensorsite-content__description{margin-bottom:24px}.tensorsite-side-side__text-wrapper--white-bg .tensorsite-content__description strong{color:#425066}@media only screen and (min-width: 1001px){.tensorsite-side-side__text-wrapper--short{margin-top:140px}}.tensorsite-side-side--why-bg,.tensorsite-side-side--learn-bg,.tensorsite-side-side--home-bg{position:relative}.tensorsite-side-side--why-bg::before,.tensorsite-side-side--why-bg::after,.tensorsite-side-side--learn-bg::before,.tensorsite-side-side--learn-bg::after,.tensorsite-side-side--home-bg::before,.tensorsite-side-side--home-bg::after{background:#f5f6f7;content:'';position:absolute;width:calc((100vw - 1794px) / 2)}.tensorsite-side-side--why-bg .tensorsite-side-side__background,.tensorsite-side-side--learn-bg .tensorsite-side-side__background,.tensorsite-side-side--home-bg .tensorsite-side-side__background{background:url(/site-assets/images/marketing/why/whytf-bg.svg) center/contain no-repeat;content:'';height:1932px;left:50%;position:absolute;top:60%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:1794px;z-index:-1}.tensorsite-side-side--why-bg::before{bottom:-411px;left:50%;top:-643px;-webkit-transform:translateX(-100%) translateX(-897px);transform:translateX(-100%) translateX(-897px)}.tensorsite-side-side--why-bg::after{bottom:-751px;left:50%;top:284px;-webkit-transform:translateX(896px);transform:translateX(896px)}.tensorsite-side-side--learn-bg::before{bottom:-324px;left:50%;top:-513px;-webkit-transform:translateX(-100%) translateX(-897px);transform:translateX(-100%) translateX(-897px)}.tensorsite-side-side--learn-bg::after{bottom:-664px;left:50%;top:415px;-webkit-transform:translateX(896px);transform:translateX(896px)}.tensorsite-side-side--home-bg::before{bottom:-329px;left:50%;top:-521px;-webkit-transform:translateX(-100%) translateX(-895px);transform:translateX(-100%) translateX(-895px);z-index:-1}.tensorsite-side-side--home-bg::after{bottom:-670px;left:50%;top:406px;-webkit-transform:translateX(895px);transform:translateX(895px);z-index:-1}.tensorsite-step{margin:0 auto;max-width:1140px}@media only screen and (min-width: 768px){.tensorsite-step{padding:0 180px}}@media only screen and (max-width: 1279px){.tensorsite-step{flex-direction:column;padding:0 100px}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-step{display:block}}@media only screen and (max-width: 767px){.tensorsite-step{padding:35px 35px 0}}.tensorsite-step__title{color:#425066}.tensorsite-step .tensorsite-container{padding:0}.tensorsite-step .tensorsite-group__divider{margin:0 auto;width:100%}@media only screen and (max-width: 1000px){.tensorsite-tab-group .tensorsite-container{padding:0;width:100%}}.tensorsite-tab-group .tensorsite-button-tab{max-width:1090px}.tensorsite-tab-group .tensorsite-top-tab{max-width:1200px;min-height:580px}@media only screen and (max-width: 1000px){.tensorsite-tab-group .tensorsite-top-tab__tabs::after{left:85px}}@media only screen and (max-width: 767px){.tensorsite-tab-group .tensorsite-top-tab__tabs::after{left:45px}}@media only screen and (max-width: 1000px){.tensorsite-tab-group .tensorsite-top-tab__tabs{padding:0 67px}}@media only screen and (max-width: 767px){.tensorsite-tab-group .tensorsite-top-tab__tabs{padding:0 27px}}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-tab-group .tensorsite-top-tab__content--inner{display:block;padding:0 30px;width:30%}}.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text{flex-basis:calc(60% - 30px)}@media only screen and (max-width: 1000px){.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text{order:2}}.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__image{flex-basis:calc(40% - 30px)}@media only screen and (max-width: 1000px){.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text,.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__image{flex-basis:calc(100% - 30px)}}.tensorsite-tab-group--equal-tab-width .tensorsite-top-tab__tabs label{flex-basis:100%}.tensorsite-tab-group--extra-margin-bottom{margin-bottom:160px}@media only screen and (max-width: 1279px){.tensorsite-tab-group--extra-margin-bottom{margin-bottom:80px}}.tensorsite-diagram{opacity:0;position:relative}.tensorsite-diagram--loaded{opacity:1}.tensorsite-diagram .tensorsite-content__cta{margin-top:16px;font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:19.6px}.tensorsite-diagram .tensorsite-content__cta-icon span:before,.tensorsite-diagram .tensorsite-content__cta-icon span:after{height:14px;width:14px}.tensorsite-diagram__dimmer{background-color:rgba(255,255,255,0.5);height:100%;position:absolute;width:100%;z-index:-1}.tensorsite-diagram__dimmer.active{z-index:2}.tensorsite-diagram__dimmer.scroll-active{cursor:ew-resize}.tensorsite-diagram__scrollbox{box-sizing:content-box;overflow-x:auto}.tensorsite-diagram__scrollbox.grabbing *{cursor:grabbing;cursor:-webkit-grabbing}.tensorsite-diagram__overlay{background:linear-gradient(90deg, rgba(255,255,255,0), #fff);height:calc(100% - 15px);opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity 500ms;width:20vw;z-index:4}.tensorsite-diagram__overlay.active{opacity:1}.tensorsite-diagram .tensorsite-container{display:flex;position:relative}.tensorsite-diagram .tensorsite-container.scroll-active{cursor:ew-resize}.tensorsite-diagram .tensorsite-container.scroll-active .last-section{padding-right:50px}.tensorsite-diagram p{margin:0}.tensorsite-diagram__section{box-sizing:border-box;display:inline-block}.tensorsite-diagram__section hr{background:#dadce0;border:0;height:1px;margin:16px auto;width:calc(100% - (16px * 2))}.tensorsite-diagram__section.first-section hr,.tensorsite-diagram__section.last-section hr{width:calc(100% - (16px))}.tensorsite-diagram__section.first-section hr{margin-left:0}.tensorsite-diagram__section.last-section hr{margin-right:0}.tensorsite-diagram__title{position:relative;text-align:center;font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px}.tensorsite-diagram__title.active{z-index:3}.tensorsite-diagram__cols{display:flex}.tensorsite-diagram__col{align-items:center;display:flex;flex-direction:column;padding:0 16px}.tensorsite-diagram__col.first-col{padding-left:0}.tensorsite-diagram__col.last-col{padding-right:0}.tensorsite-diagram__nodes{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-bottom:40px;min-height:252px}.tensorsite-diagram__product.active{z-index:3}.tensorsite-diagram__product .tensorsite-content__cta{align-self:center;margin-top:0;max-width:160px;min-height:154px;text-align:center}.tensorsite-diagram__product .cta-image{align-items:center;border:1px solid #e3e5e8;border-radius:50%;display:flex;height:100px;justify-content:center;margin:0 auto;margin-bottom:16px;width:100px}.tensorsite-diagram__product .cta-image img{max-height:64px;max-width:64px}.tensorsite-diagram .box{background:#fff;border:1px solid transparent;border-radius:6px;box-shadow:0px 2px 8px rgba(66,80,102,0.16);box-sizing:border-box;cursor:pointer;height:52px;margin:16px 0;min-width:196px;outline:none;overflow:hidden;position:relative;text-align:center;transition:all ease-in-out 0.2s;width:100%;z-index:1}.tensorsite-diagram .box .position{transition:all ease-in-out 0.2s}.tensorsite-diagram .box:hover,.tensorsite-diagram .box:focus,.tensorsite-diagram .box.enlarged{box-shadow:0px 2px 12px rgba(66,80,102,0.24)}.tensorsite-diagram .box:hover .position,.tensorsite-diagram .box:focus .position,.tensorsite-diagram .box.enlarged .position{color:#ff6f00}.tensorsite-diagram .box.enlarged,.tensorsite-diagram .box:focus{border:1px solid #ff6f00}.tensorsite-diagram .position{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px;margin-bottom:16px}.tensorsite-diagram .additionalInfo{font-size:14px;line-height:22px}.tensorsite-diagram .information{padding:16px}.tfx-diagram-arrow{display:none}.tfx-arrow--up{-webkit-transform:translateY(50%) translateX(-3%);transform:translateY(50%) translateX(-3%)}.tfx-arrow--right{-webkit-transform:translateX(-64%) translateY(2%);transform:translateX(-64%) translateY(2%)}.tfx-arrow--down{-webkit-transform:translateY(-50%) translateX(3%);transform:translateY(-50%) translateX(3%)}.jsplumb-draggable{pointer-events:none}.tensorsite-adjacent-partials-wrapper{display:flex}@media only screen and (max-width: 767px){.tensorsite-adjacent-partials-wrapper{flex-direction:column}}@media only screen and (max-width: 767px){.tensorsite-adjacent-partials-wrapper--mobile-reverse{flex-direction:column-reverse}}.tensorsite-adjacent-partials__main-section,.tensorsite-adjacent-partials__secondary-section{width:100%}@media only screen and (max-width: 767px){.tensorsite-adjacent-partials__main-section .tensorsite-content__cta-wrapper,.tensorsite-adjacent-partials__main-section .tensorsite-content__button,.tensorsite-adjacent-partials__secondary-section .tensorsite-content__cta-wrapper,.tensorsite-adjacent-partials__secondary-section .tensorsite-content__button{align-self:center}}@media only screen and (min-width: 1280px){.tensorsite-adjacent-partials .tensorsite-container--redesign-margin{padding:0 132px}}.tensorsite-blog-carousel--gray{background-color:#f5f6f7;padding-bottom:20px;padding-top:20px}@media only screen and (max-width: 767px){.tensorsite-blog-carousel{margin:0;padding:0}}.tensorsite-blog-carousel .tensorsite-content{align-items:center}.tensorsite-blog-carousel__card{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);margin:auto;overflow:hidden;padding:50px 20px;text-align:center}@media only screen and (max-width: 767px){.tensorsite-blog-carousel__card{background:none;border-radius:0px;box-shadow:none;padding:0px}}.tensorsite-blog-carousel__card .tensorsite-content__description{max-width:600px}.tensorsite-blog-carousel__section{padding:30px 20px;position:relative}.tensorsite-blog-carousel__section::after{content:"";position:absolute;bottom:0;right:20px;pointer-events:none;background-image:linear-gradient(to right, rgba(255,255,255,0), #fff 100%);width:2em;height:100%}@media only screen and (max-width: 767px){.tensorsite-blog-carousel__section{padding:0 20px}.tensorsite-blog-carousel__section::before,.tensorsite-blog-carousel__section::after{content:none}}.tensorsite-blog-carousel__section ul{align-items:stretch;padding:20px;gap:16px}.tensorsite-blog-carousel__section li{background:#fff;width:25%;width:calc(25% - 10px)}@media only screen and (max-width: 1279px){.tensorsite-blog-carousel__section li{width:calc(50% - 10px)}}@media only screen and (max-width: 767px){.tensorsite-blog-carousel__section li{width:100%}}.tensorsite-blog-carousel__section li:first-child{padding-left:20px}.tensorsite-blog-carousel__section li:nth-last-child(2){padding-right:20px}.tensorsite-blog-carousel__section li:first-child,.tensorsite-blog-carousel__section li:nth-last-child(2){width:calc(25% + 10px)}@media only screen and (max-width: 1279px){.tensorsite-blog-carousel__section li:first-child,.tensorsite-blog-carousel__section li:nth-last-child(2){width:calc(50% + 10px)}}@media only screen and (max-width: 767px){.tensorsite-blog-carousel__section li:first-child,.tensorsite-blog-carousel__section li:nth-last-child(2){width:100%}}@media only screen and (max-width: 767px){.tensorsite-blog-carousel__section li{padding:0}.tensorsite-blog-carousel__section li:first-child{padding-left:0}.tensorsite-blog-carousel__section li:nth-last-child(2){padding-right:0}}.tensorsite-blog-carousel__wrapper{display:flex;flex-direction:column;gap:12px;padding:30px;text-align:left;border-radius:10px;border:none;border:1px solid #DADCE0;height:100%}.tensorsite-blog-carousel__wrapper:hover,.tensorsite-blog-carousel__wrapper:focus{box-shadow:0px 4px 14px rgba(0,0,0,0.25)}.tensorsite-blog-carousel__wrapper .tensorsite-blog-carousel__eyebrow{font-family:"Roboto",sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#818181;letter-spacing:0.5px;text-transform:uppercase;margin:0}.tensorsite-blog-carousel__wrapper .tensorsite-blog-carousel__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:28px;color:#425066;transition:color .2s linear}.tensorsite-blog-carousel__wrapper .tensorsite-blog-carousel__title:hover,.tensorsite-blog-carousel__wrapper .tensorsite-blog-carousel__title:focus{color:#ff6f00}.tensorsite-blog-carousel__wrapper .tensorsite-blog-carousel__title::after{content:'';display:block;border-bottom:1px solid #ff6f00}.tensorsite-blog-carousel__wrapper .tensorsite-blog-carousel__description{font-size:16px;font-weight:400;line-height:24px;color:#616161;margin-top:0px;max-height:100px}.tensorsite-blog-carousel__ctas{display:flex;justify-content:space-evenly;padding:0 10%}@media only screen and (max-width: 767px){.tensorsite-blog-carousel__ctas{flex-direction:column;padding:0}}.tensorsite-blog-carousel__ctas>a{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:28px;color:#425066;transition:color .2s linear;text-align:center;width:100%}.tensorsite-blog-carousel__ctas>a:hover,.tensorsite-blog-carousel__ctas>a:focus{color:#ff6f00}.tensorsite-blog-carousel__footer .tensorsite-container{margin:26px 0}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-container{padding:24px 20px}}.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066;max-width:900px}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066;text-align:left;padding-bottom:0}}@media only screen and (max-width: 767px) and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 767px) and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__small-title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:400;line-height:44px;letter-spacing:-0.25px;color:#425066;max-width:-webkit-max-content;max-width:max-content}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__small-title{font-size:20px;line-height:28px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__small-title{font-size:24px;line-height:36px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__small-title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066}}@media only screen and (max-width: 1279px) and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__small-title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px) and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__small-title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content__small-title{text-align:left}}.tensorsite-side-side--redesign .tensorsite-side-side__secondary-section{margin-top:0px;margin-bottom:0px;width:600px;margin:0px !important;flex-basis:50%}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__secondary-section{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px);margin-right:0px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__secondary-section{flex-basis:calc(100%);max-width:calc(100%);margin-right:0px}}.tensorsite-side-side--redesign .tensorsite-side-side__secondary-section .tensorsite-content__image-wrapper{padding-top:48.5% !important;background-repeat:no-repeat;border-radius:0}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__secondary-section .tensorsite-content__image-wrapper{height:200px}}.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content{padding-bottom:80px}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-group__header .tensorsite-content{padding-bottom:24px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign.home-join-tf .tensorsite-group__header .tensorsite-content{padding-bottom:12px}}.tensorsite-side-side--redesign .tensorsite-side-side-wrapper{justify-content:space-around}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side-wrapper{flex-wrap:nowrap}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side-wrapper{flex-wrap:wrap-reverse;flex-direction:row;justify-content:center}}.tensorsite-side-side--redesign .tensorsite-side-side-wrapper.tensorsite-side-side-wrapper--one-way{justify-content:space-between}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side-wrapper.tensorsite-side-side-wrapper--one-way .tensorsite-side-side__secondary-section{max-width:50%}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side-wrapper.tensorsite-side-side-wrapper--one-way .tensorsite-side-side__secondary-section{max-width:100%}}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side-wrapper.tensorsite-side-side-wrapper--one-way{flex-wrap:nowrap;gap:20px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side-wrapper.tensorsite-side-side-wrapper--one-way{flex-wrap:wrap}}.tensorsite-side-side--redesign.card .tensorsite-side-side-wrapper{background:#fff;padding:80px;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1)}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign.card .tensorsite-side-side-wrapper{padding:20px 20px 20px 0px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign.card .tensorsite-side-side-wrapper{padding:20px 0px 20px 20px}.tensorsite-side-side--redesign.card .tensorsite-side-side-wrapper .tensorsite-side-side__main-section{flex-basis:100%}}.tensorsite-side-side--redesign .tensorsite-side-side__main-section{display:flex;align-items:center;width:600px;margin:0 0 0 0 !important;flex-basis:50%}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section{margin:0 0 0 5% !important;flex-basis:calc(100% - 75px)}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section{margin:0 auto 0 0 !important;flex-basis:calc(100%);max-width:calc(100%)}}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content{padding:0}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:400;line-height:44px;letter-spacing:-0.25px;color:#425066;font-weight:400;padding-top:20px;padding-bottom:14px;margin-bottom:0}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-size:20px;line-height:28px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-size:24px;line-height:36px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066;font-weight:400}}@media only screen and (max-width: 1279px) and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px) and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:40px;font-weight:400;line-height:48px;letter-spacing:-0.5px;color:#425066;font-weight:400}}@media only screen and (max-width: 767px) and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-size:24px;line-height:36px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px) and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__title{font-weight:400;line-height:30px}}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-family:"Roboto",sans-serif;font-size:28px;font-weight:400;line-height:36px;color:#616161}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-size:18px;line-height:28px;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-weight:400}}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:18px;font-weight:500;line-height:28px;color:#616161}}@media only screen and (max-width: 1279px) and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-weight:400}}@media only screen and (max-width: 1279px) and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-size:16px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-family:"Roboto",sans-serif;font-size:24px;font-weight:400;line-height:28px;color:#616161;margin-top:24px}}@media only screen and (max-width: 767px) and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-size:18px;line-height:28px;font-weight:500}}@media only screen and (max-width: 767px) and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__subtitle{font-size:18px;font-weight:400;line-height:28px}}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:18px;font-weight:400;line-height:28px;color:#616161;font-family:"Roboto",sans-serif;margin-bottom:25px}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__cta-wrapper{gap:25px}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__cta:not(.tensorsite-content__button){font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:20px;color:#425066;letter-spacing:0.5px;text-decoration:underline;-webkit-text-decoration-color:#ff6f00;text-decoration-color:#ff6f00;text-transform:uppercase;text-underline-offset:4px}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__cta:not(.tensorsite-content__button):hover,.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__cta:not(.tensorsite-content__button):focus{color:#ff6f00}@media only screen and (max-width: 1279px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__cta:not(.tensorsite-content__button){line-height:21px}}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-content__cta:not(.tensorsite-content__button){letter-spacing:0;line-height:24px}}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#425066;border:1px solid #818181;margin-top:40px;border-radius:4px}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button:hover,.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button:focus{color:#f5f5f5}@media only screen and (max-width: 767px){.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button{margin-top:24px}}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button::before{border-radius:3px}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button::after{border-radius:4px;width:100%;height:100%;top:0px;left:0px}.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button:hover,.tensorsite-side-side--redesign .tensorsite-side-side__main-section .tensorsite-button:focus{border:1px solid #E6E6E6}.scrollfit.tensorsite-side-side__code-block devsite-code{height:360px;overflow-x:hidden;overflow-y:auto;border-radius:8px}.tensorsite-home-footer{background-image:linear-gradient(to top right, #ff6f00, #FFA800)}.tensorsite-home-footer__container{margin:0 auto;position:relative;height:625px}@media only screen and (max-width: 767px){.tensorsite-home-footer__container{height:500px}}.tensorsite-home-footer__content{position:relative;padding-top:10%}.tensorsite-home-footer__content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:700;line-height:72px;letter-spacing:-0.5px;color:#fff;color:#fff;text-align:center;margin-bottom:80px}@media only screen and (max-width: 1279px){.tensorsite-home-footer__content .tensorsite-content__title{line-height:58px}}@media only screen and (max-width: 767px){.tensorsite-home-footer__content .tensorsite-content__title{font-size:36px;line-height:44px;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-home-footer__content .tensorsite-content__title{margin-bottom:60px;margin-inline:auto;max-width:500px}}@media only screen and (max-width: 767px){.tensorsite-home-footer__content .tensorsite-content__title{margin-bottom:48px;max-width:300px}}.tensorsite-home-footer__content .tensorsite-content__cta-wrapper{flex-direction:row;text-align:center;align-self:center;gap:34px}@media only screen and (max-width: 767px){.tensorsite-home-footer__content .tensorsite-content__cta-wrapper{flex-direction:column;gap:16px}}.tensorsite-home-footer__content .tensorsite-content .tensorsite-button{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#616161;text-decoration:underline;text-underline-offset:4px;text-decoration:none;align-self:center}.tensorsite-home-footer__content .tensorsite-content .tensorsite-button:hover,.tensorsite-home-footer__content .tensorsite-content .tensorsite-button:focus{color:#ff6f00}.tensorsite-home-footer__content .tensorsite-content .tensorsite-button:hover{color:#fff}.tensorsite-home-footer__lines{background-image:url(/site-assets/images/marketing/home-footer-lines.png);background-size:100%;background-repeat:no-repeat;background-position:top;position:relative;bottom:0;left:50%;width:1444px;position:absolute;top:0;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0)}@media only screen and (max-width: 1279px){.tensorsite-home-footer__lines{width:100%;background-position:bottom}}@media only screen and (max-width: 767px){.tensorsite-home-footer__lines{-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);width:600px}}@media only screen and (max-width: 480px){.tensorsite-home-footer__lines{-webkit-transform:translate(-35%, 0);transform:translate(-35%, 0)}}.tensorsite-card--redesign{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);display:flex;flex-direction:column;flex-grow:0;flex-shrink:1;position:relative;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);transition:box-shadow .2s linear,opacity .2s linear}@media only screen and (max-width: 767px){.tensorsite-card--redesign{flex-basis:auto;max-width:100%}}.tensorsite-card--redesign::before{background:#fff;border-radius:10px;content:'';height:100%;left:0;pointer-events:none;position:absolute;top:0;transition:opacity .2s linear;width:100%}.tensorsite-card--redesign .tensorsite-content{border-radius:0 0 10px 10px;position:static;padding:20px}.tensorsite-card--redesign .tensorsite-content__image{-webkit-transform:scale(0.9);transform:scale(0.9)}.tensorsite-card--redesign .tensorsite-content__hover-image,.tensorsite-card--redesign .tensorsite-content__hover-video{display:none}@media only screen and (max-width: 767px){.tensorsite-card--redesign .tensorsite-content{padding:24px}}.tensorsite-card--redesign .tensorsite-content--under-image::before{top:-1px}.tensorsite-card--redesign .tensorsite-content .tensorsite-content__subtitle,.tensorsite-card--redesign .tensorsite-content .tensorsite-content__description,.tensorsite-card--redesign .tensorsite-content .tensorsite-content__cta-wrapper,.tensorsite-card--redesign .tensorsite-content ul{position:relative}.tensorsite-card--redesign .tensorsite-content .tensorsite-content__cta-wrapper--shorter{padding-right:70px}.tensorsite-card--redesign .tensorsite-content__image-wrapper{margin:20px 20px 1px 20px;border:1px solid #E6E6E6;border-radius:10px !important;overflow:hidden;position:relative;transition:border-color .2s linear;z-index:1}.tensorsite-card--redesign .tensorsite-content__image-wrapper img{background-color:#fbfcfc;transition:-webkit-transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform .5s cubic-bezier(0.25, 0.1, 0.25, 1), -webkit-transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);will-change:transform}.tensorsite-card--redesign .tensorsite-content__image-wrapper .tensorsite-content__image__play-button{bottom:0;left:0;margin:auto;overflow:visible;position:absolute;right:0;top:0}.tensorsite-card--redesign .tensorsite-price-tag__inner{transition:background-color .2s linear,color .2s linear}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories{display:flex;flex-wrap:wrap;position:relative;z-index:1;margin-top:0px;margin-bottom:12px}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories::before{content:''}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories .tensorsite-content__category{padding-right:8px;padding-top:0px}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories .tensorsite-content__category:last-child{padding-right:0}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories .tensorsite-content__category-text{font-family:"Roboto",sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#818181;letter-spacing:0.5px;text-transform:uppercase;position:relative;transition:color .2s linear;padding:4px 6px 3px 6px;border-radius:5px;background-color:#E6E6E6}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories .tensorsite-content__category-text::before,.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories .tensorsite-content__category-text::after{background-position:center center;background-repeat:no-repeat;bottom:0;content:'';height:12px;left:0;margin:auto;position:absolute;top:0;width:12px}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__categories .tensorsite-content__category-text::before{transition:opacity .2s linear;z-index:1}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__title{font-size:24px;font-weight:500;line-height:30px;letter-spacing:0px;margin-bottom:16px;align-items:center;display:flex;justify-content:space-between;z-index:1}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__title:before{bottom:0;content:'';left:0;position:absolute;right:0;top:0}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__subtitle--thin{font-size:16px;font-family:"Roboto",sans-serif;font-weight:400;color:#818181}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__subtitle--thin.tensorsite-content__subtitle--under-title{margin-bottom:18px;margin-top:0px}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__description{margin-bottom:24px}.tensorsite-card--redesign .tensorsite-content--under-image .tensorsite-content__description strong:first-child:last-child{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;color:#425066;display:inline-block;margin-top:8px;transition:color .2s linear}.tensorsite-card--redesign .tensorsite-content__cta{z-index:3;font-weight:500}.tensorsite-card--redesign .tensorsite-content__cta:hover:not(.no-link){color:#fff}.tensorsite-card--redesign:hover:not(.no-link){box-shadow:0 0 64px rgba(0,0,0,0.22);cursor:pointer}.tensorsite-card--redesign:hover:not(.no-link) .tensorsite-content__main-image{display:none}.tensorsite-card--redesign:hover:not(.no-link) .tensorsite-content__hover-image,.tensorsite-card--redesign:hover:not(.no-link) .tensorsite-content__hover-video{display:flex}.tensorsite-card--redesign:hover:not(.no-link) .tensorsite-content__image__play-button{-webkit-transform:scale(1.2);transform:scale(1.2)}.tensorsite-card--redesign.no-link .tensorsite-content__title::before{content:none}.tensorsite-card--redesign.font-size-body .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:28px}.tensorsite-card--redesign--double{flex-grow:0;flex-shrink:1}.tensorsite-card--redesign__href{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:2}.tensorsite-card--redesign--hero .tensorsite-content__cta:hover{color:#425066}.tensorsite-card--redesign--hero-whitecta .tensorsite-content__cta{color:#fff}.tensorsite-card--redesign--hero-whitecta a span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card--redesign--hero-whitecta .tensorsite-content__cta:hover{color:#fff}.tensorsite-card--redesign--hero-whitetext .tensorsite-content__title{color:#fff}.tensorsite-card--redesign--hero-bluegradient .tensorsite-content--under-image{background-image:linear-gradient(0deg, rgba(32,18,20,0) 0%, rgba(32,18,20,0) 45%, #5464b5 100%)}.tensorsite-card--redesign--hero-h3title .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}.tensorsite-card--redesign--hero .tensorsite-content__title{flex-grow:1}.tensorsite-card--redesign--hero .tensorsite-content__title::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card--redesign--hero .tensorsite-content__image-wrapper{border-bottom:none;border-radius:10px;height:100%;position:absolute;width:100%}.tensorsite-card--redesign--hero .tensorsite-content__image{height:100%;-o-object-fit:cover;object-fit:cover}.tensorsite-card--redesign--hero .tensorsite-content__image,.tensorsite-card--redesign--hero .tensorsite-content--under-image{border-radius:10px}.tensorsite-card--redesign--clip .tensorsite-content{background:transparent;margin-top:40%;padding-top:17%;position:static;z-index:1}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-card--redesign--clip .tensorsite-content{background-color:#fff;padding-top:20px}}.tensorsite-card--redesign--clip .tensorsite-content__clip-bg{padding-top:40%}.tensorsite-card--redesign--clip .tensorsite-content__clip-bg+.tensorsite-content__title{padding-top:7%}.tensorsite-card--redesign--clip .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;max-width:81%}@media only screen and (max-width: 1000px){.tensorsite-card--redesign--clip .tensorsite-content__title{max-width:none}}@media only screen and (max-width: 850px){.tensorsite-card--redesign--clip .tensorsite-content__title{max-width:80%}}@media only screen and (max-width: 767px){.tensorsite-card--redesign--clip .tensorsite-content__title{max-width:60%}}@media only screen and (max-width: 480px){.tensorsite-card--redesign--clip .tensorsite-content__title{max-width:80%}}.tensorsite-card--redesign--clip .tensorsite-content__subtitle{color:#425066;font-weight:700;max-width:42%}.tensorsite-card--redesign--clip .tensorsite-content__image-wrapper{border-bottom:0;border-radius:10px;height:100%;position:absolute;width:100%}.tensorsite-card--redesign--horizontal{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}.tensorsite-card--redesign--horizontal .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}@media only screen and (min-width: 851px){.tensorsite-card--redesign--horizontal{flex-direction:row}.tensorsite-card--redesign--horizontal .tensorsite-content__image-wrapper,.tensorsite-card--redesign--horizontal .tensorsite-content--under-image{flex:1 0 50%;max-width:50%}.tensorsite-card--redesign--horizontal .tensorsite-content__image-wrapper{border-bottom:0;border-radius:10px 0 0 10px;border-right:1px solid #dadada}.tensorsite-card--redesign--horizontal .tensorsite-content__image{border-radius:10px 0 0 10px;height:100%;-o-object-fit:cover;object-fit:cover}}@media only screen and (min-width: 851px) and (-ms-high-contrast: none), only screen and (min-width: 851px) and (-ms-high-contrast: active){.tensorsite-card--redesign--horizontal .tensorsite-content__image-wrapper{display:flex;flex-direction:column;justify-content:center}.tensorsite-card--redesign--horizontal .tensorsite-content__image{height:auto;-o-object-fit:unset;object-fit:unset}}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover::before{opacity:0}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content a,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content div,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content strong{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content::before{opacity:1;transition:opacity .2s linear}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content ul a span::after,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-content__cta-icon span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__title span::after,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__subtitle span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__tag{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-price-tag__inner{background-color:#fff;color:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-price-tag__inner::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='24' viewBox='0 0 12 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9.474 0H56a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H9.474a2 2 0 0 1-1.636-.85l-7.03-10a2 2 0 0 1 0-2.3l7.03-10A2 2 0 0 1 9.474 0z' fill='%23FFF'/%3E%3Ccircle fill='%23FF6F00' cx='10' cy='12' r='2'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__categories .tensorsite-content__category-text{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__clip-bg::before{background:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__clip-shape path{fill:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__category-text::before{opacity:0}html[dir='rtl'] .tensorsite-content__clip-shape{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.tensorsite-card:hover .tensorsite-content__image-wrapper{border-color:transparent}.tensorsite-card:hover .tensorsite-content__image-wrapper img{-webkit-transform:scale(1.03);transform:scale(1.03);transition:-webkit-transform 1s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform 1s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform 1s cubic-bezier(0.25, 0.1, 0.25, 1), -webkit-transform 1s cubic-bezier(0.25, 0.1, 0.25, 1)}.tensorsite-card--bnw img{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.tensorsite-card--bnw:hover img{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.tensorsite-card .tensorsite-content__title:hover ~ div.tensorsite-content__cta-wrapper .tensorsite-content__cta:first-child span::after,.tensorsite-card .tensorsite-card__href:hover ~ .tensorsite-content div.tensorsite-content__cta-wrapper .tensorsite-content__cta:first-child span::after{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-card .tensorsite-content__title:hover ~ ul.tensorsite-content__cta-wrapper li:first-child .tensorsite-content__cta span::after{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-card .tensorsite-content__title:focus::before{border-radius:10px;box-shadow:0 0 0 2px #425066}.tensorsite-card .tensorsite-card__href:focus ~ .tensorsite-content .tensorsite-content__title::before{border-radius:10px;box-shadow:0 0 0 2px #425066}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-container{margin:24px auto;padding:0 20px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-container .tensorsite-group__header .tensorsite-content .tensorsite-content__description{text-align:center}}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-container .tensorsite-group__header .tensorsite-content{padding-left:0px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-container .tensorsite-group__header .tensorsite-content .tensorsite-content__description{text-align:center}}.tensorsite-group--redesign .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:700;line-height:48px;margin-bottom:12px;max-width:900px}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-content__title{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-content__title:last-child{margin-bottom:24px}}.tensorsite-group--redesign h1.tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:52px;font-weight:500;line-height:62px;letter-spacing:-0.5px;color:#425066;margin-bottom:30px;max-width:680px}@media only screen and (max-width: 1279px){.tensorsite-group--redesign h1.tensorsite-content__title{font-size:40px;line-height:48px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign h1.tensorsite-content__title{font-size:30px;line-height:36px;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign h1.tensorsite-content__title{margin:unset}}.tensorsite-group--redesign h3.tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:400;line-height:44px;letter-spacing:-0.25px;color:#425066;margin-bottom:0px;max-width:680px}@media only screen and (max-width: 1279px){.tensorsite-group--redesign h3.tensorsite-content__title{font-size:20px;line-height:28px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign h3.tensorsite-content__title{font-size:24px;line-height:36px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign h3.tensorsite-content__title{margin:unset}}.tensorsite-group--redesign .tensorsite-content__small-title{font-family:"Roboto",sans-serif;font-size:24px;font-weight:400;line-height:28px;color:#616161;margin-bottom:48px;max-width:905px}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-content__small-title{font-size:18px;line-height:28px;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-content__small-title{font-size:18px;font-weight:400;line-height:28px}}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-content__small-title{max-width:440px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-content__small-title{text-align:left;max-width:100%}}.tensorsite-group--redesign .tensorsite-content__button{align-self:flex-start}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-content__button{align-self:center}}.tensorsite-group--redesign .tensorsite-group__inner{margin:0;display:grid;gap:24px;grid-template-columns:repeat(2, 1fr)}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-group__inner{grid-template-columns:repeat(1, 1fr);justify-content:center;max-width:100%}}.tensorsite-group--redesign .tensorsite-content__image-wrapper{border-radius:2px 2px 0 0}.tensorsite-group--redesign .tensorsite-content__image-wrapper::after{content:none}.tensorsite-group--redesign .tensorsite-content__image-wrapper .tensorsite-content__image{border-radius:0px;scale:1.11}.tensorsite-group--redesign .tensorsite-card{margin:0;border-radius:4px;border:1px solid #DADCE0;box-shadow:0px 4px 14px rgba(0,0,0,0.25)}.tensorsite-group--redesign .tensorsite-card::before{border-radius:2px}.tensorsite-group--redesign .tensorsite-card .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:28px;font-weight:400;line-height:36px;letter-spacing:-0.25px;color:#425066;flex-basis:86px;align-items:flex-start;margin-bottom:0}.tensorsite-group--redesign .tensorsite-card .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:18px;font-weight:400;line-height:28px;color:#616161;margin-bottom:48px}.tensorsite-group--redesign .tensorsite-card .tensorsite-content__cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:20px;color:#425066;letter-spacing:0.5px;text-decoration:underline;-webkit-text-decoration-color:#ff6f00;text-decoration-color:#ff6f00;text-transform:uppercase;text-underline-offset:4px}.tensorsite-group--redesign .tensorsite-card .tensorsite-content__cta:hover,.tensorsite-group--redesign .tensorsite-card .tensorsite-content__cta:focus{color:#ff6f00}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-card .tensorsite-content__cta{line-height:21px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-card .tensorsite-content__cta{letter-spacing:0;line-height:24px}}.tensorsite-group--redesign .tensorsite-card:hover .tensorsite-content__cta{-webkit-text-decoration-color:#fff;text-decoration-color:#fff}.tensorsite-group--redesign .tensorsite-card:hover .tensorsite-content__image-wrapper::after{content:none}.tensorsite-group--redesign .tensorsite-block{margin:0;gap:48px}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-block{gap:20px}}.tensorsite-group--redesign .tensorsite-block--sideside{display:flex;flex-direction:row}.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content{padding-top:0;padding-bottom:48px;width:100%}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content{padding-bottom:12px}}.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:400;line-height:44px;letter-spacing:-0.25px;color:#425066;color:#425066;margin-bottom:24px}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__title{font-size:20px;line-height:28px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__title{font-size:24px;line-height:36px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__title{margin-bottom:12px}}.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:18px;font-weight:400;line-height:28px;color:#616161;margin-bottom:24px}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__description{margin-bottom:12px}}.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:20px;color:#425066;letter-spacing:0.5px;text-decoration:underline;-webkit-text-decoration-color:#ff6f00;text-decoration-color:#ff6f00;text-transform:uppercase;text-underline-offset:4px}.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__cta:hover,.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__cta:focus{color:#ff6f00}@media only screen and (max-width: 1279px){.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__cta{line-height:21px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-content__cta{letter-spacing:0;line-height:24px}}.tensorsite-group--redesign .tensorsite-block--sideside .tensorsite-block__image-wrapper{margin:0}.tensorsite-group--redesign.tensorsite-group--3up.home-module3-browsetf .tensorsite-container{padding:0 40px}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.home-module3-browsetf .tensorsite-container{padding:20px;margin:0px}}.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-group__divider{border-top:1px solid #ff6f00;max-width:1340px;width:100%}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-group__divider{border-top:1px solid transparent}}.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-group__inner{display:grid;gap:24px;padding:0 30px;grid-template-columns:repeat(3, 1fr)}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-group__inner{padding-left:0px;padding-right:0px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-group__inner{grid-template-columns:repeat(1, 1fr);padding-left:0px;padding-right:0px;gap:48px}}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block{flex-basis:calc(100% / 3 - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block{flex-basis:calc(100%)}}.tensorsite-group--redesign.tensorsite-group--3up.home-module3-browsetf .tensorsite-block--plain .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:28px;font-weight:500;line-height:36px;letter-spacing:-0.25px;color:#425066}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.home-module3-browsetf .tensorsite-block--plain .tensorsite-content__title{font-size:24px;line-height:30px}}.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content{align-items:flex-start;padding:0}.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:28px;font-weight:500;line-height:36px;letter-spacing:-0.25px;color:#425066;margin-bottom:48px;text-align:left}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__title{font-size:24px;line-height:30px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__title{margin-bottom:24px}}.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:20px;color:#425066;letter-spacing:0.5px;text-decoration:underline;-webkit-text-decoration-color:#ff6f00;text-decoration-color:#ff6f00;text-transform:uppercase;text-underline-offset:4px}.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__cta:hover,.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__cta:focus{color:#ff6f00}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__cta{line-height:21px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__cta{letter-spacing:0;line-height:24px}}.tensorsite-group--redesign.tensorsite-group--3up .tensorsite-block--plain .tensorsite-content__cta-wrapper{text-align:left}.tensorsite-group--redesign.tensorsite-group--3up.small{padding-bottom:68px}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-container{margin-bottom:0}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-container{margin:0px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content{padding-bottom:24px;padding-top:0px}}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content__title{padding-top:68px;padding-bottom:18px;font-family:"Google Sans",sans-serif;font-size:36px;font-weight:400;line-height:44px;letter-spacing:-0.25px;color:#425066}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content__title{font-size:20px;line-height:28px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content__title{font-size:24px;line-height:36px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066;padding-bottom:0px}}@media only screen and (max-width: 1279px) and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px) and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__header .tensorsite-content__title{text-align:left;margin:0;padding-top:24px}}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner{max-width:85%;margin:auto}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner{max-width:100%;font-family:"Google Sans",sans-serif;font-size:20px;font-weight:400;line-height:28px;color:#425066;margin:0;gap:24px}}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card{flex-direction:row;border:1px solid #ccc;border-radius:8px;background-color:#fff;gap:0px;flex-basis:calc(100% / 3 - 57px);max-width:100%}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card{flex-direction:column;align-items:center;padding-right:0px;flex-basis:calc(100% / 3 - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card{flex-direction:row;flex-basis:100%;padding-right:0px}}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-block__image-wrapper{display:flex;width:100%;max-width:77px;margin:12px 20px}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-block__image-wrapper{margin-right:15px}}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content{display:flex;justify-content:space-between;height:100%;padding:24px 0 16px 0;align-self:center}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content{align-items:center}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content{align-items:flex-start}}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:400;line-height:28px;color:#425066;font-weight:500;color:#616161;margin-bottom:0px;flex-grow:0}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__title{text-align:center}}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:20px;color:#425066;letter-spacing:0.5px;text-decoration:underline;-webkit-text-decoration-color:#ff6f00;text-decoration-color:#ff6f00;text-transform:uppercase;text-underline-offset:4px}.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__cta:hover,.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__cta:focus{color:#ff6f00}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__cta{line-height:21px}}@media only screen and (max-width: 767px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__cta{letter-spacing:0;line-height:24px}}@media only screen and (max-width: 1279px){.tensorsite-group--redesign.tensorsite-group--3up.small .tensorsite-group__inner .tensorsite-block--horizontal-card .tensorsite-content__cta{padding-bottom:12px}}.hide-cards-on-mobile .tensorsite-card{display:flex}@media only screen and (max-width: 1279px){.hide-cards-on-mobile .tensorsite-card{display:none}}.hide-cards-on-mobile .tensorsite-block{display:none}@media only screen and (max-width: 1279px){.hide-cards-on-mobile .tensorsite-block{display:flex}}.tensorsite-group--accordion .tensorsite-container{padding-top:80px;padding-bottom:68px;margin:0 auto}@media only screen and (max-width: 1279px){.tensorsite-group--accordion .tensorsite-container{padding-top:60px;padding-bottom:60px;margin:0 auto}}@media only screen and (max-width: 767px){.tensorsite-group--accordion .tensorsite-container{padding-top:12px;padding-bottom:12px;margin:0 auto}}.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content{padding:0}.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066;max-width:900px}@media only screen and (max-width: 1279px){.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 1279px){.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:52px;font-weight:500;line-height:62px;letter-spacing:-0.5px;color:#425066;font-weight:500}}@media only screen and (max-width: 1279px) and (max-width: 1279px){.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content__title{font-size:40px;line-height:48px}}@media only screen and (max-width: 1279px) and (max-width: 767px){.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content__title{font-size:30px;line-height:36px;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-group--accordion .tensorsite-group__header .tensorsite-content__title{text-align:left;max-width:350px;flex-direction:row;align-items:flex-start;margin:0}}@media only screen and (max-width: 767px){.tensorsite-group--accordion .tensorsite-accordion .expanded-container__section{max-width:100%;padding-bottom:24px}}@media only screen and (max-width: 767px){.tensorsite-group--accordion .tensorsite-accordion .expanded-container__section .tensorsite-button{margin-top:0px}}.tensorsite-group.tensorsite-group--redesign .recsys{position:relative;z-index:-1;margin:0 auto;max-width:1420px;width:100%;top:-200px;left:150px;-webkit-transform:scale(1.2);transform:scale(1.2);max-height:280px}@media only screen and (max-width: 1279px){.tensorsite-group.tensorsite-group--redesign .recsys{top:-150px;left:100px;-webkit-transform:scale(1.2);transform:scale(1.2)}}@media only screen and (max-width: 767px){.tensorsite-group.tensorsite-group--redesign .recsys{top:-50px;-webkit-transform:scale(2);transform:scale(2)}}.tensorsite-jumbotron{margin:0 auto;max-width:1420px;width:100%}@media only screen and (max-width: 767px){.tensorsite-jumbotron{-webkit-transform:scale(2) translateX(-25%);transform:scale(2) translateX(-25%);margin:50px auto}}.tensorsite-jumbotron--grey-gradient::before{content:' ';background-image:linear-gradient(180deg, #E6E9EA, transparent, transparent, transparent);width:200%;display:block;height:350px;position:absolute;z-index:-1;-webkit-transform:translateX(-25%);transform:translateX(-25%)}.tensorsite-jumbotron--grey-gradient{position:relative;z-index:-1}.tensorsite-stay-connected__container{margin:0 auto;display:flex;flex-direction:row}@media only screen and (max-width: 767px){.tensorsite-stay-connected__container{flex-direction:column}}.tensorsite-stay-connected__text-container{padding-left:0px}@media only screen and (max-width: 767px){.tensorsite-stay-connected__text-container{margin-top:24px;padding-bottom:0px}}.tensorsite-stay-connected__text-container .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066}@media only screen and (max-width: 1279px){.tensorsite-stay-connected__text-container .tensorsite-content__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-stay-connected__text-container .tensorsite-content__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-stay-connected__text-container .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:52px;font-weight:500;line-height:62px;letter-spacing:-0.5px;color:#425066;font-weight:400;text-align:center}}@media only screen and (max-width: 767px) and (max-width: 1279px){.tensorsite-stay-connected__text-container .tensorsite-content__title{font-size:40px;line-height:48px}}@media only screen and (max-width: 767px) and (max-width: 767px){.tensorsite-stay-connected__text-container .tensorsite-content__title{font-size:30px;line-height:36px;letter-spacing:-0.25px}}.tensorsite-stay-connected__text-container .tensorsite-content__description{margin-bottom:48px;font-family:"Roboto",sans-serif;font-size:18px;font-weight:400;line-height:28px;color:#616161;flex-grow:unset}@media only screen and (max-width: 767px){.tensorsite-stay-connected__text-container .tensorsite-content__description{text-align:center;margin-bottom:0px;font-size:16px;line-height:26px}}.tensorsite-stay-connected .tensorsite-content__cta-wrapper{gap:12px}.tensorsite-stay-connected__steps-container{width:100%}.tensorsite-logo-ctas-container{display:flex;gap:40px;text-align:center}.tensorsite-logo-ctas-container>a{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#425066}.tensorsite-logo-ctas-container.show-on-mobile{display:none}.tensorsite-logo-ctas-container.show-on-desktop{display:flex}@media only screen and (max-width: 767px){.tensorsite-logo-ctas-container{gap:20px;flex-wrap:wrap;justify-content:center;align-self:center}.tensorsite-logo-ctas-container>a{flex-basis:calc(50% - 64px)}.tensorsite-logo-ctas-container.show-on-mobile{display:flex}.tensorsite-logo-ctas-container.show-on-desktop{display:none}}.tensorsite-stay-connected{position:relative;padding:30px 0;background-color:#f5f6f7}.tensorsite-stay-connected .tensorsite-stay-connected__background{background:url(/site-assets/images/marketing/home-bg-stay-connected.svg) center/cover no-repeat;content:'';height:100%;position:absolute;top:-125%;width:100vw;-webkit-transform:scale(1.5);transform:scale(1.5);z-index:-1}.tensorsite-home-hero-wrapper{background:url(/site-assets/images/marketing/home/hero/tf-hero-desktop.svg) no-repeat center top/cover;-webkit-transform:translate(0, 70%);transform:translate(0, 70%);background-size:contain;height:1000px;overflow:hidden;position:absolute;width:100%}@media only screen and (max-width: 1279px){.tensorsite-home-hero-wrapper{background:none}}@media only screen and (min-width: 768px){.tensorsite-home-background::after{background:url(/site-assets/images/marketing/hero-river-bg-right.svg) center/cover no-repeat;content:'';height:904px;position:absolute;right:0;top:0;width:1440px;z-index:-1}}@media only screen and (max-width: 1279px){.tensorsite-container{padding:16px}}@media only screen and (max-width: 767px){.tensorsite-container{padding:16px}}@media only screen and (min-width: 768px){.tensorsite-home-background::after{background:url(/site-assets/images/marketing/hero-river-bg-right.svg) center/cover no-repeat;content:'';height:904px;position:absolute;right:0;top:0;width:1440px;z-index:-1}}.tensorsite-home-hero{max-height:750px;position:relative;display:flex}@media only screen and (max-width: 767px){.tensorsite-home-hero{flex-direction:column;align-items:flex-start;max-width:350px;max-height:680px;margin:auto;padding:0px}}.tensorsite-home-hero__main-section{width:70%}@media only screen and (max-width: 767px){.tensorsite-home-hero__main-section{margin-top:48px;width:100%}}.tensorsite-home-hero__main-section .tensorsite-content__title{max-width:650px;font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066;font-weight:700;margin-bottom:36px}@media only screen and (max-width: 1279px){.tensorsite-home-hero__main-section .tensorsite-content__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 767px){.tensorsite-home-hero__main-section .tensorsite-content__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 1279px){.tensorsite-home-hero__main-section .tensorsite-content__title{font-weight:700}}.tensorsite-home-hero__header{padding:0 30px;width:100%}@media only screen and (max-width: 767px){.tensorsite-home-hero__header{padding:0px}}.tensorsite-accordion{width:100%;padding-top:48px}.tensorsite-accordion .main-container{border-top:1px solid #ff6f00;margin-bottom:0;padding:48px 0}@media only screen and (max-width: 767px){.tensorsite-accordion .main-container{border-top:2px solid #ff6f00}}.tensorsite-accordion .main-container:last-child{border-top:1px solid #ff6f00;border-bottom:1px solid #ff6f00}@media only screen and (max-width: 767px){.tensorsite-accordion .main-container:last-child{border-top:2px solid #ff6f00;border-bottom:2px solid #ff6f00}}.tensorsite-accordion .main-container button{background:none;border:none;box-shadow:none;padding:0;text-align:left;white-space:unset;overflow:unset}.tensorsite-accordion .main-container button .material-icons{font-size:50px;height:50px;width:50px;top:0px}.tensorsite-accordion .main-container button:focus{border:2px solid #425066}.tensorsite-accordion .main-container button:focus:not(:focus-visible){border:none}.tensorsite-accordion .expand-control{display:flex;width:100%;color:#ff6f00;flex-direction:row;justify-content:space-between;align-items:center}.tensorsite-accordion .expand-control__title{font-family:"Google Sans",sans-serif;font-size:36px;font-weight:400;line-height:44px;letter-spacing:-0.25px;color:#425066}@media only screen and (max-width: 1279px){.tensorsite-accordion .expand-control__title{font-size:20px;line-height:28px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px){.tensorsite-accordion .expand-control__title{font-size:24px;line-height:36px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px){.tensorsite-accordion .expand-control__title{font-family:"Google Sans",sans-serif;font-size:48px;font-weight:500;line-height:56px;letter-spacing:-0.5px;color:#425066}}@media only screen and (max-width: 1279px) and (max-width: 1279px){.tensorsite-accordion .expand-control__title{font-size:32px;line-height:38px;font-weight:400;letter-spacing:-0.25px}}@media only screen and (max-width: 1279px) and (max-width: 767px){.tensorsite-accordion .expand-control__title{font-size:28px;line-height:36px;letter-spacing:-0.25;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-accordion .expand-control__title{font-family:"Google Sans",sans-serif;font-size:40px;font-weight:400;line-height:48px;letter-spacing:-0.5px;color:#425066}}@media only screen and (max-width: 767px) and (max-width: 1279px){.tensorsite-accordion .expand-control__title{font-size:24px;line-height:36px;font-weight:500;letter-spacing:0px}}@media only screen and (max-width: 767px) and (max-width: 767px){.tensorsite-accordion .expand-control__title{font-weight:400;line-height:30px}}.tensorsite-accordion .expand-control .collapser{-webkit-transform:rotate(180deg);transform:rotate(180deg);transition:all .15s ease-in-out}.tensorsite-accordion .expand-control .close-collapser{-webkit-transform:rotate(0);transform:rotate(0);transition:all .15s ease-in-out}.tensorsite-accordion .close-container{display:none}.tensorsite-accordion .expanded-container{display:flex;width:100%;max-height:1000px;flex-direction:row;align-items:flex-start;padding-top:68px}@media only screen and (max-width: 1279px){.tensorsite-accordion .expanded-container{align-items:center;flex-direction:column;padding-top:48px}}@media only screen and (max-width: 767px){.tensorsite-accordion .expanded-container{flex-direction:column;padding-top:48px}}.tensorsite-accordion .expanded-container__section{max-width:50%}@media only screen and (max-width: 1279px){.tensorsite-accordion .expanded-container__section{max-width:100%}}@media only screen and (max-width: 767px){.tensorsite-accordion .expanded-container__section{max-width:100%;padding-bottom:48px}}.tensorsite-accordion .expanded-container__section .tensorsite-button{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#425066;border:1px solid #818181;margin-top:40px;border-radius:4px}.tensorsite-accordion .expanded-container__section .tensorsite-button:hover,.tensorsite-accordion .expanded-container__section .tensorsite-button:focus{color:#f5f5f5}.tensorsite-accordion .expanded-container__section .tensorsite-button::before{border-radius:4px}.tensorsite-accordion .expanded-container__section .tensorsite-button::after{border-radius:3px;width:100%;height:100%;top:0px;left:0px}.tensorsite-accordion .expanded-container__section .tensorsite-button:hover,.tensorsite-accordion .expanded-container__section .tensorsite-button:focus{border:1px solid #E6E6E6}.tensorsite-accordion .expanded-container__image{width:613px;height:411px;border-radius:14px;-o-object-fit:cover;object-fit:cover}@media only screen and (max-width: 1279px){.tensorsite-accordion .expanded-container__image{width:1200px}}@media only screen and (max-width: 767px){.tensorsite-accordion .expanded-container__image{height:220px}}.tensorsite-accordion .expanded-container p{margin:0px;font-family:"Roboto",sans-serif;font-size:28px;font-weight:400;line-height:36px;color:#616161;padding-left:94px}@media only screen and (max-width: 1279px){.tensorsite-accordion .expanded-container p{font-size:18px;line-height:28px;font-weight:500}}@media only screen and (max-width: 767px){.tensorsite-accordion .expanded-container p{font-weight:400}}@media only screen and (max-width: 1279px){.tensorsite-accordion .expanded-container p{padding-left:0}}.tensorsite-accordion .expanded-container p a{display:inline;margin:0px;font-family:"Roboto",sans-serif;font-size:28px;font-weight:500;line-height:36px;color:#616161;text-decoration:underline;text-underline-offset:4px}.tensorsite-accordion .expanded-container p a:hover,.tensorsite-accordion .expanded-container p a:focus{color:#ff6f00}@media only screen and (max-width: 1279px){.tensorsite-accordion .expanded-container p a{font-size:18px;line-height:28px}}.tensorsite-accordion .expanded-container p a:focus{color:#ff6f00}.tensorsite-accordion .expanded-container .tensorsite-content{padding-top:48px;padding-left:94px}@media only screen and (max-width: 1279px){.tensorsite-accordion .expanded-container .tensorsite-content{padding-left:0;padding-bottom:0}}@media only screen and (max-width: 767px){.tensorsite-accordion .expanded-container .tensorsite-content{padding-left:0}}.tensorsite-single-cta{margin-top:0px;max-width:780px;text-align:center}.tensorsite-single-cta .tensorsite-content__cta{font-family:"Google Sans",sans-serif;font-size:28px;font-weight:500;line-height:36px;letter-spacing:-0.25px;color:#425066;display:inline-block;line-height:normal;border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear;text-decoration:underline;border-bottom:none}@media only screen and (max-width: 767px){.tensorsite-single-cta .tensorsite-content__cta{font-size:24px;line-height:30px}}.tensorsite-single-cta .tensorsite-content__cta:hover{color:#ff6f00}.dac-form-after-submit{display:none}.dac-form-error{display:none}.dac-form-failed .dac-form-error{display:inline-block;margin:0 .5em}.dac-form-submitted .dac-form-after-submit{display:block}.dac-form-submitted .dac-subscribe-hero:not(:has(.tensorsite-newsletter-container--simplified)){display:none}.dac-recaptcha-invalid{display:none}.dac-form-recaptcha-invalid .dac-recaptcha-invalid{display:inline}.tensorflow-select{background-color:#fff;width:100%;max-width:100%;color:#616161;padding:10px;width:100%;font-family:"Roboto Mono",monospace;font-size:17px;height:auto;font-weight:normal;border:1px solid #425066;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='12' viewBox='0 0 19 12' fill='none'%3E%3Cpath d='M19 2.2834L16.7675 -9.75857e-08L9.5 7.417L2.2325 -7.32931e-07L-9.98106e-08 2.2834L9.5 12L19 2.2834Z' fill='%23FF6F00'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - 12px) center}.tensorflow-select:hover,.tensorflow-select:focus{background-color:#fff;border:1px solid #425066}.dac-form label{margin-bottom:16px;color:#303E4E;font:17px "Roboto",sans-serif;font-weight:500}.dac-field-group{margin:0;color:#425066;width:100%;font:17px "Roboto",sans-serif;text-align:left}.dac-field-group .dac-legend,.dac-field-group .dac-checkbox label{color:#303E4E;font:17px "Roboto",sans-serif;font-weight:500;margin-bottom:24px}.dac-field-group .dac-label-description{display:block;margin:16px 0 24px 30px;color:#616161;font:17px "Roboto",sans-serif;line-height:25px}@media only screen and (max-width: 767px){.dac-field-group .dac-label-description{font-size:14px}}.dac-form-container{max-width:700px;margin:auto}.dac-names-field{display:flex;gap:50px}@media only screen and (max-width: 1279px){.dac-names-field{gap:20px}}.dac-field{margin:0 0 24px;width:100%}@media only screen and (max-width: 1279px){.dac-field{margin:0 0 12px}}.dac-field input{color:#616161;padding:15px 10px;width:100%;font-family:"Roboto Mono",monospace;font-size:17px;border:1px solid #425066;border-radius:4px}.dac-field input::-webkit-input-placeholder{color:#616161}.dac-field input:-ms-input-placeholder{color:#616161}.dac-field input::-ms-input-placeholder{color:#616161}.dac-field input::placeholder{color:#616161}.dac-field input:focus{padding-bottom:15px;border-bottom:1px solid #425066}.dac-checkbox{margin-left:10px}.dac-checkbox--consent{margin-top:32px;display:flex}.dac-checkbox--consent .dac-form-checkbox{margin-top:2px}.dac-checkbox--consent .dac-label-description{margin:0px 0 24px 0px}.dac-checkbox--consent .dac-label-description a{color:#616161;display:inline-block;text-decoration:underline;text-underline-offset:4px;font-weight:500}.subscribe-button{border:1px solid #E6E6E6;display:flex;font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#425066}.subscribe-button:hover,.subscribe-button:focus{color:#f5f5f5}.devsite-select-list{width:100%}.tensorsite-content.tensorsite-content--newsletter{padding-bottom:0px}.tensorsite-content.tensorsite-content--newsletter .tensorsite-content__title{margin-inline:auto;text-align:center}.tensorsite-group.newsletter .tensorsite-group__inner{justify-content:center}.tensorsite-group.newsletter .tensorsite-content__image-wrapper .tensorsite-content__image{-o-object-fit:cover;object-fit:cover;height:150px}.tensorsite-group.newsletter input[type=text]:focus,.tensorsite-group.newsletter input[type=email]:focus{padding-bottom:15px;border-bottom:1px solid #425066}.tensorflow-custom-select{position:relative}.tensorflow-custom-selecttext{width:100%;max-width:100%;color:#616161;padding:15px 10px;width:100%;font-family:"Roboto Mono",monospace;font-size:17px;height:auto;font-weight:normal;border:1px solid #425066;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='12' viewBox='0 0 19 12' fill='none'%3E%3Cpath d='M19 2.2834L16.7675 -9.75857e-08L9.5 7.417L2.2325 -7.32931e-07L-9.98106e-08 2.2834L9.5 12L19 2.2834Z' fill='%23FF6F00'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - 12px) center;border-radius:4px}.tensorflow-custom-selecttext::-ms-expand{display:none}.tensorflow-custom-selecttext:hover,.tensorflow-custom-selecttext:focus{background-color:var(--devsite-select-background-color-hover, var(--devsite-background-3));border:var(--devsite-select-border-hover, var(--devsite-select-border, var(--devsite-secondary-border)));color:var(--devsite-select-color-hover)}.tensorflow-custom-select-options{border:1px solid #E6E6E6;border-radius:0 0 0.25em 0.25em;line-height:1.5;margin:0;margin-top:-0.5em;padding:0;list-style-type:none;font-weight:normal;cursor:pointer;z-index:2;position:absolute;width:calc(100% - 1px);background-color:#fff}.tensorflow-custom-select-options li{padding:1em}.tensorflow-select option{background-color:#fff}.tensorflow-custom-select-options li:hover,.tensorflow-custom-select-options li:focus,.tensorflow-select option:focus,.tensorflow-select option:hover{background-color:var(--devsite-select-background-color-hover, var(--devsite-background-3))}#tensorflow-custom-select-input{opacity:0;float:left;position:absolute;top:0;text-align:center}.hidden-all{display:none}.hidden-visually{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);border:0}.tensorsite-newsletter-container--simplified .tensorsite-newsletter-communication{display:flex}@media only screen and (max-width: 1279px){.tensorsite-newsletter-container--simplified .tensorsite-newsletter-communication{flex-direction:column}}.tensorsite-newsletter-container--simplified .tensorsite-newsletter-communication .communication-checkboxes{width:100%}.tensorsite-newsletter-container--simplified .tensorsite-newsletter-communication .communication-checkboxes .dac-checkbox:not(:last-child){margin-bottom:16px}.tensorsite-newsletter-container--simplified .dac-checkbox--consent{margin-top:0px}.tensorsite-newsletter-container--simplified .dac-checkbox--consent .dac-label-description{margin-bottom:0px}.tensorsite-newsletter-container--simplified .newsletter-submission{display:flex}@media only screen and (max-width: 1279px){.tensorsite-newsletter-container--simplified .newsletter-submission{flex-direction:column}}@media only screen and (min-width: 1280px){.tensorsite-newsletter-container--simplified .subscribe-button{width:100%;align-items:center;height:70px;align-self:center;justify-content:center;margin-bottom:24px}}.tensorsite-library-divider{border-left:1px solid #DADCE0;height:100%}@media only screen and (max-width: 1279px){.tensorsite-library-divider{border-left:none;border-top:1px solid #DADCE0;width:100%}}.tensorsite-library__filters{display:flex;margin-bottom:20px;flex-direction:row;position:sticky;top:48px;background-color:#fff;padding:8px 10px;border-radius:0 0 10px 10px;z-index:1}@media only screen and (max-width: 1279px){.tensorsite-library__filters{flex-direction:column;margin-bottom:0}}.tensorsite-library__filters-container{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tensorsite-library__filters-checkboxes{display:flex;align-items:center;flex-direction:row;gap:10px}@media only screen and (max-width: 1279px){.tensorsite-library__filters-checkboxes{align-items:start;margin-top:20px;flex-direction:column}}.tensorsite-library__filters-checkboxes input[type=checkbox]{margin-top:2px}.tensorsite-library__filters-checkboxes span{margin-left:20px}@media only screen and (max-width: 1279px){.tensorsite-library__filters-checkboxes span{margin-left:0px}}.tensorsite-library__filters-checkboxes label,.tensorsite-library__filters-checkboxes span{font-family:"Roboto",sans-serif;font-size:13px;font-weight:500;line-height:28px;color:#616161;letter-spacing:1.5px;text-transform:uppercase}.tensorsite-library__clear{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#425066}.tensorsite-library__clear:hover,.tensorsite-library__clear:focus{color:#f5f5f5}.tensorsite-library__clear:hover,.tensorsite-library__clear:focus{background:linear-gradient(to top right, #ff6f00, #FFA800);border:1px solid #ff6f00}.tensorsite-library-3up{display:grid;grid-template-columns:repeat(3, 1fr);padding:0px;gap:18px}@media only screen and (max-width: 1000px){.tensorsite-library-3up{grid-template-columns:repeat(2, 1fr)}}@media only screen and (max-width: 767px){.tensorsite-library-3up{grid-template-columns:repeat(1, 1fr)}}.tensorsite-library-3up li{margin:0}.tensorsite-library-3up li[no-matches]{display:block;font-family:"Google Sans",sans-serif;font-size:20px;font-weight:400;line-height:28px;color:#425066;font-weight:500}.tensorsite-library-card{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);list-style-type:none;display:flex;flex-direction:column;justify-content:space-between}.tensorsite-library-card__body{padding:20px;display:flex;flex-direction:column;justify-content:space-between}.tensorsite-library-card__body-container{min-height:144px}@media only screen and (max-width: 767px){.tensorsite-library-card__body-container{min-height:auto;margin-bottom:20px}}.tensorsite-library-card__title-container{display:flex;justify-content:space-between;margin-bottom:16px}.tensorsite-library-card__title{font-size:24px;font-weight:500;line-height:30px;letter-spacing:0px}.tensorsite-library-card__icon span::after{display:block;content:'';width:30px;height:30px;background-size:30px}.tensorsite-library__github{padding:14px 20px;justify-content:space-between;display:flex;gap:2px;background:#ebebeb;border-radius:0 0 10px 10px;align-items:center}.tensorsite-library__github-cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:500;line-height:24px;color:#425066}.tensorsite-library__github-cta:hover,.tensorsite-library__github-cta:focus{color:#f5f5f5}.tensorsite-library__github-cta:hover,.tensorsite-library__github-cta:focus{color:#425066;text-decoration:underline}.tensorsite-library__github-data{display:flex;gap:5px}.tensorsite-library__github-data-group{display:flex;fill:#425066;transition:color,fill .2s linear}.tensorsite-library__github-data-group:hover,.tensorsite-library__github-data-group:focus{fill:#ff6f00}.tensorsite-library__github-data-group:hover .tensorsite-library__github-data-text,.tensorsite-library__github-data-group:focus .tensorsite-library__github-data-text{color:#ff6f00}.tensorsite-library__github-icon{width:20px;height:20px;padding:2px}.tensorsite-library__github-data-text{font-family:"Google Sans",sans-serif;font-size:18px;font-weight:500;line-height:28px;color:#616161;color:#425066;margin:0}@media only screen and (max-width: 1279px){.tensorsite-library__github-data-text{font-weight:400}}@media only screen and (max-width: 767px){.tensorsite-library__github-data-text{font-size:16px}}.tensorsite-content__code-block .colab-callout-footer{background:#e3e4e7;border-radius:0 0 8px 8px;color:#37474f;padding:20px}.tensorsite-content__code-block .colab-callout-row devsite-code[dark-code]+.colab-callout-footer{background:#3f4f66}.tensorsite-content__code-block .colab-callout-row devsite-code[dark-code]+.colab-callout-footer>a>span{color:#fff}.tensorsite-content__code-block .colab-callout-footer>a:focus{box-shadow:0 0 0 2px #fff}.tensorsite-content__code-block .colab-callout-footer .button{background:#425066;border:0;color:#fff;position:relative;z-index:1}.tensorsite-content__code-block .colab-callout-footer .button span{vertical-align:middle}.tensorsite-content__code-block .colab-callout-footer .button::before{background:#ff6f00;bottom:0;content:'';left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s;z-index:-1}.tensorsite-content__code-block .colab-callout-footer .button:focus{outline:1px dotted #fff;outline:5px auto #fff}.tensorsite-content__code-block .colab-callout-footer .button:hover::before{opacity:1}.tensorsite-content__code-block devsite-code,.tensorsite-content__code-block devsite-code pre{margin:0;height:100%;border-radius:8px 8px 0 0;box-shadow:none}@media only screen and (max-width: 767px){.tensorsite-content__code-block devsite-code,.tensorsite-content__code-block devsite-code pre{height:auto}}body[layout=full] devsite-code{overflow:hidden}.tensorsite-tile{background:#fff;border-radius:10px;border:1px solid #DADCE0;padding:30px;height:100%}.tensorsite-tile:hover,.tensorsite-tile:focus{box-shadow:0px 4px 14px rgba(0,0,0,0.25)}.tensorsite-tile__wrapper{display:flex;flex-direction:row-reverse;text-align:left;gap:10px}@media only screen and (max-width: 1279px){.tensorsite-tile__wrapper{flex-direction:column}}@media only screen and (max-width: 767px){.tensorsite-tile__wrapper{flex-direction:column}}.tensorsite-tile__wrapper .tensorsite-tile__image-wrapper{min-width:20%;text-align:center}.tensorsite-tile__wrapper .tensorsite-tile__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:28px;color:#425066;transition:color .2s linear;margin-bottom:12px}.tensorsite-tile__wrapper .tensorsite-tile__title:hover,.tensorsite-tile__wrapper .tensorsite-tile__title:focus{color:#ff6f00}.tensorsite-tile__wrapper .tensorsite-tile__description{font-size:16px;font-weight:400;line-height:24px;color:#616161;margin-top:0px;max-height:100px}.tensorsite-grid-group__wrapper{display:grid}.tensorsite-grid-group__wrapper--2up{grid-template-columns:repeat(2, 1fr);gap:16px}.tensorsite-grid-group__wrapper--3up{grid-template-columns:repeat(3, 1fr);gap:16px}@media only screen and (max-width: 767px){.tensorsite-grid-group__wrapper--3up{grid-template-columns:repeat(1, 1fr)}}.tensorsite-home-dynamic-blog .devsite-card-group{display:grid;grid-template-columns:repeat(2, 1fr);margin:0 15px 40px 15px}@media only screen and (max-width: 767px){.tensorsite-home-dynamic-blog .devsite-card-group{grid-template-columns:repeat(1, 1fr)}}.tensorsite-home-dynamic-blog .devsite-card{border:none;box-shadow:0 0 36px rgba(0,0,0,0.1);transition:box-shadow .2s linear,opacity .2s linear}.tensorsite-home-dynamic-blog .devsite-card:hover{box-shadow:0 0 64px rgba(0,0,0,0.22)}.tensorsite-home-dynamic-blog .devsite-card-image-container{padding:0 0 240px}.tensorsite-home-dynamic-blog .devsite-card-image{margin:20px;width:calc(100% - 40px);height:calc(100% - 40px);max-height:200px;border-radius:8px;border:1px solid #E6E6E6}.tensorsite-home-dynamic-blog .devsite-card-content{display:flex;flex-direction:column;margin:0 20px 20px 20px;padding:0}.tensorsite-home-dynamic-blog .devsite-card-content>a{order:1}.tensorsite-home-dynamic-blog .devsite-card-buttons{display:none}.tensorsite-home-dynamic-blog .devsite-pagination-less-button,.tensorsite-home-dynamic-blog .devsite-pagination-more-button{background-color:#fff;color:#425066;transition:box-shadow .2s linear,background .2s linear,color .2s linear}.tensorsite-home-dynamic-blog .devsite-pagination-less-button .material-icons,.tensorsite-home-dynamic-blog .devsite-pagination-more-button .material-icons{color:#ff6f00}.tensorsite-home-dynamic-blog .devsite-pagination-less-button:hover,.tensorsite-home-dynamic-blog .devsite-pagination-less-button:focus,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:hover,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:focus{background:linear-gradient(to top right, #ff6f00, #FFA800);border:1px solid #ff6f00;color:#fff}.tensorsite-home-dynamic-blog .devsite-pagination-less-button:hover .material-icons,.tensorsite-home-dynamic-blog .devsite-pagination-less-button:focus .material-icons,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:hover .material-icons,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:focus .material-icons{color:#fff}.tensorsite-home-dynamic-blog .devsite-pagination-less-button:hover ::before,.tensorsite-home-dynamic-blog .devsite-pagination-less-button:focus ::before,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:hover ::before,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:focus ::before{opacity:1}.tensorsite-home-dynamic-blog .devsite-pagination-less-button:hover ::after,.tensorsite-home-dynamic-blog .devsite-pagination-less-button:focus ::after,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:hover ::after,.tensorsite-home-dynamic-blog .devsite-pagination-more-button:focus ::after{opacity:0}.tensorsite-home-dynamic-blog .devsite-card-date{font-size:16px;font-family:"Roboto",sans-serif;font-weight:400;color:#818181;margin-bottom:12px}.tensorsite-home-dynamic-blog .devsite-card h3{font-size:24px;font-weight:500;line-height:30px;letter-spacing:0px;margin:0;color:#425066;transition:color .2s linear}.tensorsite-home-dynamic-blog .devsite-card h3:hover{color:#ff6f00} </style> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://www.tensorflow.org/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="TensorFlow" > TensorFlow </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://www.tensorflow.org/resources/models-datasets" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Ecosystem </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://www.tensorflow.org/resources/recommendation-systems" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="" > Recommendation systems </a> </li> </ul> </div> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded disabled> </devsite-toc> <div class="devsite-article-body clearfix devsite-no-page-title"> <div class="wrapper"> <section class="tensorsite-hero tensorsite-hero--river-large tensorsite-hero--center tensorsite-hero--redesign" data-section-id="hero"> <div class="tensorsite-hero__side tensorsite-hero__side--left"> </div> <div class="tensorsite-hero__side tensorsite-hero__side--right"> </div> <div class="tensorsite-hero__side tensorsite-hero__side--left-lower"> </div> <div class="tensorsite-hero__content"> <div class="tensorsite-content"> <h1 class="tensorsite-content__title" id="recommendation-systems" data-text=" Recommendation systems " tabindex="-1"> Recommendation systems </h1> <div class="tensorsite-content__description"> <inline-html> <p>From food ordering to video on demand and audio streaming to fashion, recommendation systems power some of the most popular applications today. Explore how you can build production-ready recommendation systems with open source libraries and tools from the TensorFlow ecosystem.</p> </inline-html> </div> </div> </div> <div class="tensorsite-hero__image"> </div> </section> <section class="tensorsite-side-side tensorsite-side-side--redesign" data-section-id="hero"> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container tensorsite-container--no-padding"> <div class="tensorsite-side-side-wrapper tensorsite-side-side-wrapper--reverse"> <div class="tensorsite-side-side__main-section"> <div class="tensorsite-content"> <div class="tensorsite-content__description"> <inline-html> <p>Recommendation systems increase user engagement within your app and elevate user experience by providing the most desirable content. Modern recommenders are complex systems that are often broken down into multiple stages to achieve low latency in production. Through the retrieval, ranking, and potentially post-ranking stages, irrelevant items are gradually filtered out from a large pool of candidates and a list of options that users are the most likely to interact with are finally presented.</p> <p>Start building with <a content-type="blog" href="https://blog.tensorflow.org/2020/11/tensorflow-recommenders-scalable-retrieval-feature-interaction-modelling.html" item-id="TensorFlow Recommenders" rel="noopener noreferrer" target="_blank">TensorFlow Recommenders</a>, an easy-to-use framework that facilitates the full workflow of building a recommender system from data preparation to deployment.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__button tensorsite-button tensorsite-content__cta-icon tensorsite-icon--redesign-arrow--small" devsite="true" href="/recommenders" item-id="TensorFlow Recommenders"> Get started with TensorFlow Recommenders <span> </span> </a> </div> </div> </div> <div class="tensorsite-side-side__secondary-section"> <div class="tensorsite-content__image-wrapper" style="background-image: url(/site-assets/images/marketing/resources/recommendation-systems/recsys-diagram.gif)"> </div> </div> </div> </div> </section> <section class="tensorsite-side-side tensorsite-side-side--redesign" data-section-id="hero"> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container"> <div class="tensorsite-side-side-wrapper"> <div class="tensorsite-side-side__main-section"> <div class="tensorsite-content"> <div class="tensorsite-content__description"> <inline-html> <p>When you've finished training your models, deploy them into production to serve recommendations to end users. TensorFlow Serving productionizes your models for high performance inference. It aims to maximize the throughput of machine learning models and can support large recommendation models that require distributed serving.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__button tensorsite-button tensorsite-content__cta-icon tensorsite-icon--redesign-arrow--small" devsite="true" href="/tfx/guide/serving" item-id="TensorFlow Serving"> Get started with TensorFlow Serving <span> </span> </a> </div> </div> </div> <div class="tensorsite-side-side__secondary-section"> <div class="scrollfit tensorsite-side-side__code-block"> <div></div><devsite-code><pre class="devsite-click-to-copy devsite-disable-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="scdoc"><span class="devsite-syntax-gh">#</span> Deploy the retrieval model with TensorFlow Serving docker run -t --rm -p 8501:8501 \ -v "RETRIEVAL/MODEL/PATH:/models/retrieval" \ -e MODEL_NAME=retrieval tensorflow/serving & <span class="devsite-syntax-gh">#</span> Retrieve top movies that user 42 may like curl -X POST -H "Content-Type: application/json" \ -d '{"instances":["42"]}' \ http://localhost:8501/v1/models/retrieval:predict <span class="devsite-syntax-gh">#</span> Output <span class="devsite-syntax-gh">#</span> { <span class="devsite-syntax-gh">#</span> "predictions":[ <span class="devsite-syntax-gh">#</span> { <span class="devsite-syntax-gh">#</span> "output_1": [2.032, 1.969, 1.813], <span class="devsite-syntax-gh">#</span> "output_2": ["movie1”, “movie2”, “movie3”] <span class="devsite-syntax-gh">#</span> } <span class="devsite-syntax-gh">#</span> ] <span class="devsite-syntax-gh">#</span> } <span class="devsite-syntax-gh">#</span> Deploy the ranking model with TensorFlow Serving docker run -t --rm -p 8501:8501 \ -v "RANKING/MODEL/PATH:/models/ranking" \ -e MODEL_NAME=ranking tensorflow/serving & <span class="devsite-syntax-gh">#</span> Get the prediction score for user 42 and movie 3 curl -X POST -H "Content-Type: application/json" \ -d '{"instances":[{"user_id":"42", "movie_title":"movie3"}]}' \ http://localhost:8501/v1/models/ranking:predict <span class="devsite-syntax-gh">#</span> Output: <span class="devsite-syntax-gh">#</span> {"predictions": [[3.66357923]]}</pre></devsite-code> </div> </div> </div> </div> </section> <section class="tensorsite-container tensorsite-single-cta" data-section-id="hero"> <div class="material-symbols-outlined"> code_blocks </div> <a class="tensorsite-content__cta" href="https://codelabs.developers.google.com/tfrecommenders-flutter" item-id="Learn how to build and deploy a full stack recommendation system"> Learn how to build and deploy a full stack recommendation system with TensorFlow </a> </section> <section #="" analytics="" anchors="" class="tensorsite-group tensorsite-group--redesign tensorsite-group--gray tensorsite-group--2up padding-100" data-section-id="ranking-retrieval" for=""> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container tensorsite-container--redesign-margin"> <div class="tensorsite-group__header"> <div class="tensorsite-content"> <h3 class="tensorsite-content__title" id="improve-the-retrieval-and-ranking-stages-of-recommendation-engines" data-text=" Improve the retrieval and ranking stages of recommendation engines " tabindex="-1"> Improve the retrieval and ranking stages of recommendation engines </h3> <div class="tensorsite-content__description"> <inline-html> <p>Large-scale recommendation systems require the most relevant items to be determined from millions of candidates through the retrieval and ranking stages in an effective and efficient manner. Complement TensorFlow Recommenders with state-of-the-art Approximate Nearest Neighbor (ANN) search algorithms and learning-to-rank (LTR) techniques to improve recommendations.</p> </inline-html> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" href="https://github.com/google-research/google-research/tree/master/scann" item-id="Google ScaNN" rel="noopener noreferrer" target="_blank"> Google ScaNN </a> <div class="tensorsite-content__description"> <inline-html> <p>ScaNN is a library for vector similarity search at scale. It leverages state-of-the-art ANN techniques, such as asymmetric hashing and anisotropic quantization, to accelerate retrieval of top candidates.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://github.com/google-research/google-research/tree/master/scann" item-id="Google ScaNN" rel="noopener noreferrer" tabindex="-1" target="_blank"> GitHub <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://ai.googleblog.com/2020/07/announcing-scann-efficient-vector.html" item-id="Google ScaNN" rel="noopener noreferrer" target="_blank"> Blog Post <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal" content-type="tutorial" devsite="true" href="/recommenders/examples/efficient_serving" item-id="Google ScaNN"> Tutorial <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" href="https://github.com/tensorflow/ranking" item-id="TensorFlow Ranking" rel="noopener noreferrer" target="_blank"> TensorFlow Ranking </a> <div class="tensorsite-content__description"> <inline-html> <p>TensorFlow Ranking is a library for developing scalable, neural LTR models. It provides additional functionalities to rank candidate items to maximize the ranking utilities.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://github.com/tensorflow/ranking" item-id="TensorFlow Ranking" rel="noopener noreferrer" tabindex="-1" target="_blank"> GitHub <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://ai.googleblog.com/2018/12/tf-ranking-scalable-tensorflow-library.html" item-id="TensorFlow Ranking" rel="noopener noreferrer" target="_blank"> Blog Post <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal" content-type="tutorial" devsite="true" href="/recommenders/examples/listwise_ranking" item-id="TensorFlow Ranking"> Tutorial <span> </span> </a> </div> </div> </div> </div> </div> </section> <section #="" analytics="" anchors="" class="tensorsite-group tensorsite-group--redesign tensorsite-group--2up" data-section-id="large embeddings" for=""> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container tensorsite-container--redesign-margin"> <div class="tensorsite-group__header"> <div class="tensorsite-content"> <h3 class="tensorsite-content__title" id="optimize-large-embeddings-for-model-training-and-inference" data-text=" Optimize large embeddings for model training and inference " tabindex="-1"> Optimize large embeddings for model training and inference </h3> <div class="tensorsite-content__description"> <inline-html> <p>The embedding lookup operation is a critical component for large-scale recommendation systems. Leverage hardware acceleration and dynamic embedding technology to overcome performance bottlenecks common in large embedding tables.</p> </inline-html> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" devsite="true" href="/api_docs/python/tf/tpu/experimental/embedding/TPUEmbedding" item-id="TensorFlow TPUEmbedding"> TensorFlow TPUEmbedding </a> <div class="tensorsite-content__description"> <inline-html> <p>The TPUEmbedding layer API facilitates training and serving large embedding tables on Tensor Processing Units (TPUs).</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal" devsite="true" href="/api_docs/python/tf/tpu/experimental/embedding/TPUEmbedding" item-id="TensorFlow TPUEmbedding" tabindex="-1"> Doc <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://cloud.google.com/blog/topics/developers-practitioners/building-large-scale-recommenders-using-cloud-tpus" item-id="TensorFlow TPUEmbedding" rel="noopener noreferrer" target="_blank"> Blog Post <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title tensorsite-icon tensorsite-icon--group" href="https://github.com/tensorflow/recommenders-addons" item-id="TensorFlow Recommenders Addons" rel="noopener noreferrer" target="_blank"> TensorFlow Recommenders Addons <span> </span> </a> <div class="tensorsite-content__description"> <inline-html> <p>TensorFlow Recommenders Addons is a community-contributed project that leverages dynamic embedding technology that is particularly useful for online learning.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://github.com/tensorflow/recommenders-addons" item-id="TensorFlow Recommenders Addons" rel="noopener noreferrer" tabindex="-1" target="_blank"> GitHub <span> </span> </a> </div> </div> </div> </div> </div> </section> <section #="" analytics="" anchors="" class="tensorsite-group tensorsite-group--redesign tensorsite-group--gray tensorsite-group--2up padding-100" data-section-id="privacy" for=""> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container tensorsite-container--redesign-margin"> <div class="tensorsite-group__header"> <div class="tensorsite-content"> <h3 class="tensorsite-content__title" id="preserve-user-privacy" data-text=" Preserve user privacy " tabindex="-1"> Preserve user privacy </h3> <div class="tensorsite-content__description"> <inline-html> <p>Traditional recommendation engines rely on collecting user interaction logs and training recommendation models based on raw user activities. Ensure that user data remains private by incorporating <a content-type="cta" href="https://www.tensorflow.org/responsible_ai" item-id="Responsible AI">Responsible AI</a> development practices.</p> </inline-html> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" href="https://ai.google.dev/edge/lite/examples/recommendation/overview" item-id="TensorFlow Lite on-device recommendation"> TensorFlow Lite on-device recommendation </a> <div class="tensorsite-content__description"> <inline-html> <p>TensorFlow Lite provides an on-device recommendation solution that achieves low-latency and high-quality recommendations, while keeping all user data on the mobile devices.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal" href="https://ai.google.dev/edge/lite/examples/recommendation/overview" item-id="TensorFlow Lite on-device recommendation" tabindex="-1"> Doc <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://blog.tensorflow.org/2020/09/introduction-to-tflite-on-device-recommendation.html" item-id="TensorFlow Lite on-device recommendation" rel="noopener noreferrer" target="_blank"> Blog Post <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" content-type="tutorial" devsite="true" href="/federated/tutorials/federated_reconstruction_for_matrix_factorization" item-id="Federated Reconstruction with TensorFlow Federated"> Federated Reconstruction with TensorFlow Federated </a> <div class="tensorsite-content__description"> <inline-html> <p>TensorFlow Federated is a framework for federated learning and other computations on decentralized data. Federated Reconstruction brings matrix factorization to the federated learning setting and better protects user privacy for recommendations.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal" content-type="tutorial" devsite="true" href="/federated/tutorials/federated_reconstruction_for_matrix_factorization" item-id="Federated Reconstruction with TensorFlow Federated" tabindex="-1"> Tutorial <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://ai.googleblog.com/2021/12/a-scalable-approach-for-partially-local.html" item-id="Federated Reconstruction with TensorFlow Federated" rel="noopener noreferrer" target="_blank"> Blog Post <span> </span> </a> </div> </div> </div> </div> </div> </section> <section #="" analytics="" anchors="" class="tensorsite-group tensorsite-group--redesign tensorsite-group--3up" data-section-id="advanced techniques" for=""> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container tensorsite-container--redesign-margin"> <div class="tensorsite-group__header"> <div class="tensorsite-content"> <h3 class="tensorsite-content__title" id="use-advanced-techniques-for-more-sophisticated-recommenders" data-text=" Use advanced techniques for more sophisticated recommenders " tabindex="-1"> Use advanced techniques for more sophisticated recommenders </h3> <div class="tensorsite-content__description"> <inline-html> <p>While classical collaborative filtering models are widely used in the industry, there is a growing trend to adopt advanced techniques, such as reinforcement learning and Graph Neural Networks (GNNs), to build recommendation systems.</p> </inline-html> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" href="https://github.com/tensorflow/agents/tree/master/tf_agents/bandits" item-id="TensorFlow Agents Bandits" rel="noopener noreferrer" target="_blank"> TensorFlow Agents Bandits </a> <div class="tensorsite-content__description"> <inline-html> <p>TensorFlow Agents Bandits is a comprehensive library of bandit algorithms that can explore and exploit effectively in the recommendation engine setting.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://github.com/tensorflow/agents/tree/master/tf_agents/bandits" item-id="TensorFlow Agents Bandits" rel="noopener noreferrer" tabindex="-1" target="_blank"> GitHub <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://blog.tensorflow.org/2021/07/using-tensorflow-agents-bandits-library-for-recommendations.html" item-id="TensorFlow Agents Bandits" rel="noopener noreferrer" target="_blank"> Blog Post <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" href="https://github.com/tensorflow/gnn" item-id="TensorFlow GNN" rel="noopener noreferrer" target="_blank"> TensorFlow GNN </a> <div class="tensorsite-content__description"> <inline-html> <p>TensorFlow GNN is a library that can efficiently facilitate item recommendations based on network structures and be used in conjunction with retrieval and ranking models.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://github.com/tensorflow/gnn" item-id="TensorFlow GNN" rel="noopener noreferrer" tabindex="-1" target="_blank"> GitHub <span> </span> </a> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://blog.tensorflow.org/2021/11/introducing-tensorflow-gnn.html" item-id="TensorFlow GNN" rel="noopener noreferrer" target="_blank"> Blog Post <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content"> <a class="tensorsite-content__title" content-type="blog" href="https://blog.tensorflow.org/2023/04/training-recommendation-model-with-dynamic-embeddings.html" item-id="Generative AI" rel="noopener noreferrer" target="_blank"> Generative AI </a> <div class="tensorsite-content__description"> <inline-html> <p>Learn how to use large language models (LLMs) like the PaLM API to augment your recommendation systems.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper tensorsite-content__cta-wrapper--abreast"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" content-type="blog" href="https://blog.tensorflow.org/2023/04/training-recommendation-model-with-dynamic-embeddings.html" item-id="Generative AI" rel="noopener noreferrer" tabindex="-1" target="_blank"> Blog Post <span> </span> </a> </div> </div> </div> </div> </div> <div class="recsys"> <img alt src="/static/site-assets/images/marketing/resources/recommendation-systems/bg-diagram.png"> </div> </section> <section class="tensorsite-side-side tensorsite-side-side--redesign tensorsite-side-side--gray card tensorsite-side-side--centered" data-section-id="advanced techniques"> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container"> <div class="tensorsite-side-side-wrapper"> <div class="tensorsite-side-side__main-section"> <div class="tensorsite-content"> <h3 class="tensorsite-content__title" id="reference-state-of-the-art-recommendation-models" data-text=" Reference state-of-the-art recommendation models " tabindex="-1"> Reference state-of-the-art recommendation models </h3> <div class="tensorsite-content__description"> <inline-html> <p>To benchmark performance for a well-known model or build your own recommendation models, check out official TensorFlow implementations of popular models – such as NCF, DLRM, and DCN v2 – for best practices.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__button tensorsite-button tensorsite-content__cta-icon tensorsite-icon--redesign-arrow--small" href="https://github.com/tensorflow/models/tree/master/official#recommendation" item-id="TensorFlow Model Garden"> Visit TensorFlow Model Garden <span> </span> </a> </div> </div> </div> <div class="tensorsite-side-side__secondary-section"> <div class="tensorsite-content__image-wrapper contain-image" style="background-image: url(/site-assets/images/marketing/resources/recommendation-systems/model-garden.png)"> </div> </div> </div> </div> </section> <section #="" analytics="" anchors="" class="tensorsite-group tensorsite-group--redesign tensorsite-group--3up" data-section-id="learn ml" for=""> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container tensorsite-container--redesign-margin"> <div class="tensorsite-group__header"> <div class="tensorsite-content"> <h3 class="tensorsite-content__title" id="educational-resources" data-text=" Educational resources " tabindex="-1"> Educational resources </h3> <div class="tensorsite-content__description"> <inline-html> <p>Learn more about building recommendation systems by following step-by-step courses and videos.</p> </inline-html> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content__image-wrapper"> <img alt class="tensorsite-content__image" src="/static/site-assets/images/marketing/resources/recommendation-systems/google-developers-recsys.jpeg"> </img> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--bold tensorsite-content__subtitle-icon tensorsite-icon--course"> Course <span> </span> </div> <a class="tensorsite-content__title tensorsite-content__title--grow" href="https://developers.google.com/machine-learning/recommendation" item-id="Intro to recommendation systems" rel="noopener noreferrer" target="_blank"> Intro to recommendation systems </a> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://developers.google.com/machine-learning/recommendation" item-id="Intro to recommendation systems" rel="noopener noreferrer" tabindex="-1" target="_blank"> Explore the course <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content__image-wrapper"> <img alt class="tensorsite-content__image" src="/static/site-assets/images/marketing/resources/recommendation-systems/tf-youtube-series.jpg"> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--bold tensorsite-content__subtitle-icon tensorsite-icon--video-series"> Video Series <span> </span> </div> <a class="tensorsite-content__title tensorsite-content__title--grow" href="https://www.youtube.com/watch?v=BthUPVwA59s&list=PLQY2H8rRoyvy2MiyUBz5RWZr5MPFkV3qz&index=1" item-id="Building recommendation systems with TensorFlow" rel="noopener noreferrer" target="_blank"> Building recommendation systems with TensorFlow </a> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://www.youtube.com/watch?v=BthUPVwA59s&list=PLQY2H8rRoyvy2MiyUBz5RWZr5MPFkV3qz&index=1" item-id="Building recommendation systems with TensorFlow" rel="noopener noreferrer" tabindex="-1" target="_blank"> Watch the videos <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content__image-wrapper"> <img alt class="tensorsite-content__image" src="/static/site-assets/images/marketing/resources/recommendation-systems/building-a-fullstack-recsys.jpg"> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--bold tensorsite-content__subtitle-icon tensorsite-icon--codelab"> Codelab <span> </span> </div> <a class="tensorsite-content__title tensorsite-content__title--grow" href="https://codelabs.developers.google.com/tfrecommenders-flutter" item-id="Building a full stack recommendation system" rel="noopener noreferrer" target="_blank"> Building a full stack recommendation system </a> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://codelabs.developers.google.com/tfrecommenders-flutter" item-id="Building a full stack recommendation system" rel="noopener noreferrer" tabindex="-1" target="_blank"> Try the codelab <span> </span> </a> </div> </div> </div> </div> </div> </section> <div class="tensorsite-jumbotron"> <img alt src="/static/site-assets/images/marketing/home/home-join-header.png"> </div> <section #="" analytics="" anchors="" class="tensorsite-group tensorsite-group--redesign tensorsite-group--gray tensorsite-group--4up padding-100" data-section-id="case study" for=""> <div class="tensorsite-side-side__background"> </div> <div class="tensorsite-container tensorsite-container--redesign-margin"> <div class="tensorsite-group__header"> <div class="tensorsite-content"> <h3 class="tensorsite-content__title" id="real-world-recommendation-systems" data-text=" Real-world recommendation systems " tabindex="-1"> Real-world recommendation systems </h3> <div class="tensorsite-content__description"> <inline-html> <p>Explore examples and case studies of recommendation systems powering applications in every industry.</p> </inline-html> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content__image-wrapper"> <img alt class="tensorsite-content__image" src="/static/site-assets/images/marketing/resources/recommendation-systems/recsys-video-app.png"> </img> </div> <div class="tensorsite-content tensorsite-content--under-image"> <a class="tensorsite-content__title" href="https://blog.youtube/inside-youtube/on-youtubes-recommendation-system/" item-id="Online video" rel="noopener noreferrer" target="_blank"> Online video </a> <div class="tensorsite-content__description"> <inline-html> <p>Learn how YouTube builds their powerful recommendation system in a responsible manner.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://blog.youtube/inside-youtube/on-youtubes-recommendation-system/" item-id="Online video" rel="noopener noreferrer" tabindex="-1" target="_blank"> Read the blog <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content__image-wrapper"> <img alt class="tensorsite-content__image" src="/static/site-assets/images/marketing/resources/recommendation-systems/recsys-digitac-galaxus.gif"> </div> <div class="tensorsite-content tensorsite-content--under-image"> <a class="tensorsite-content__title" href="https://blog.tensorflow.org/2021/08/how-digitec-galaxus-trains-and-serves-millions-of-personalized-newsletters-per-week-with-TFX.html" item-id="Ecommerce" rel="noopener noreferrer" target="_blank"> Ecommerce </a> <div class="tensorsite-content__description"> <inline-html> <p>Read about how Digitec Galaxus trains and serves millions of personalized newsletters per week with TFX and TensorFlow Agents.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://blog.tensorflow.org/2021/08/how-digitec-galaxus-trains-and-serves-millions-of-personalized-newsletters-per-week-with-TFX.html" item-id="Ecommerce" rel="noopener noreferrer" tabindex="-1" target="_blank"> Read the blog <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content__image-wrapper"> <img alt class="tensorsite-content__image" src="/static/site-assets/images/marketing/resources/recommendation-systems/recsys-harperdb-tensorflow-js.jpeg"> </div> <div class="tensorsite-content tensorsite-content--under-image"> <a class="tensorsite-content__title" href="https://www.youtube.com/watch?v=JQksipdQiGI" item-id="Grocery" rel="noopener noreferrer" target="_blank"> Grocery </a> <div class="tensorsite-content__description"> <inline-html> <p>Learn how HarperDB uses TensorFlow Recommenders and TensorFlow.js to build a collaborative-filtering-based recommendation system for grocery store items.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://www.youtube.com/watch?v=JQksipdQiGI" item-id="Grocery" rel="noopener noreferrer" tabindex="-1" target="_blank"> View the video <span> </span> </a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--card"> <div class="tensorsite-content__image-wrapper"> <img alt class="tensorsite-content__image" src="/static/site-assets/images/marketing/resources/recommendation-systems/spotify-tensorflow-agents-recommendations.png"> </div> <div class="tensorsite-content tensorsite-content--under-image"> <a class="tensorsite-content__title" href="https://blog.tensorflow.org/2023/10/simulated-spotify-listening-experiences-reinforcement-learning-tensorflow-tf-agents.html" item-id="Audio streaming" rel="noopener noreferrer" target="_blank"> Audio streaming </a> <div class="tensorsite-content__description"> <inline-html> <p>Learn how Spotify leveraged the TensorFlow ecosystem to design an extendable offline simulator and train RL Agents to generate playlist recommendations.</p> </inline-html> </div> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external" href="https://blog.tensorflow.org/2023/10/simulated-spotify-listening-experiences-reinforcement-learning-tensorflow-tf-agents.html" item-id="Audio streaming" rel="noopener noreferrer" tabindex="-1" target="_blank"> Read the blog <span> </span> </a> </div> </div> </div> </div> </div> </section> <section class="tensorsite-footer tensorsite-footer--redesign" data-section-id="footer"> <div class="tensorsite-container tensorsite-footer__container"> <div class="tensorsite-footer__side tensorsite-footer__side--left"> </div> <div class="tensorsite-footer__side tensorsite-footer__side--right"> </div> <div class="tensorsite-footer__content"> <div class="tensorsite-content"> <h2 class="tensorsite-content__title tensorsite-content__title--grow" id="start-building-with-tensorflow" data-text=" Start building with TensorFlow " tabindex="-1"> Start building with TensorFlow </h2> <div class="tensorsite-content__cta-wrapper"> <a class="tensorsite-content__button tensorsite-button tensorsite-button--white tensorsite-content__button tensorsite-button tensorsite-button--white tensorsite-content__cta-icon tensorsite-icon--redesign-arrow--small" devsite="true" href="/install" item-id="Install TensorFlow"> Install TensorFlow <span> </span> </a> <a class="tensorsite-content__button tensorsite-button tensorsite-button--white tensorsite-content__button tensorsite-button tensorsite-button--white tensorsite-content__cta-icon tensorsite-icon--redesign-arrow--small" href="/learn" item-id="Explore the ecosystem"> Explore the ecosystem <span> </span> </a> </div> </div> </div> </div> <div class="tensorsite-footer__lines"> </div> </section> <footer> </footer> </div> </div> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Stay connected</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//blog.tensorflow.org" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//discuss.tensorflow.org" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Forum </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//github.com/tensorflow/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > GitHub </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//twitter.com/tensorflow" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//youtube.com/tensorflow" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//github.com/tensorflow/tensorflow/issues" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Issue tracker </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//github.com/tensorflow/tensorflow/blob/master/RELEASE.md" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Release notes </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//stackoverflow.com/questions/tagged/tensorflow" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/extras/tensorflow_brand_guidelines.pdf" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Brand guidelines </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/about/bib" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Cite TensorFlow </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the TensorFlow newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="//www.tensorflow.org/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{"dimensions": {"dimension6": "en", "dimension1": "Signed out", "dimension3": false, "dimension4": "TensorFlow", "dimension5": "en", "dimension12": false}, "gaid": "UA-69864048-1", "metrics": {"ratings_count": "metric2", "ratings_value": "metric1"}, "purpose": 0}]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [], "ga4p": [], "gtm": [{"id": "GTM-MXSL34P", "purpose": 0}], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "TensorFlow", "signedIn": "False", "tenant": "tensorflow", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="OghnDxUuHvTwg7vZbvzAQK8B5MpvIP"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/js/app_loader.js', '[15,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow","https://tensorflow-dot-devsite-v2-prod-3p.appspot.com",1,null,["/_pwa/tensorflow/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/images/favicon.png","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/tensorflow/images/lockup.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyCNm9YxQumEXwGJgTDjxoxXK6m1F-9720Q","AIzaSyCc76DZePGtoyUjqKrLdsMGk_ry7sljLbY","www.tensorflow.org","AIzaSyB9bqgQ2t11WJsOX8qNsCQ6U-w91mmqF-I","AIzaSyAdYnStPdzjcJJtQ0mvIaeaMKj7_t6J_Fg",null,null,null,["MiscFeatureFlags__enable_variable_operator","Profiles__enable_complete_playlist_endpoint","Cloud__enable_legacy_calculator_redirect","Cloud__enable_cloud_shell_fte_user_flow","CloudShell__cloud_shell_button","Profiles__enable_dashboard_curated_recommendations","Search__enable_ai_eligibility_checks","Analytics__enable_clearcut_logging","MiscFeatureFlags__developers_footer_image","MiscFeatureFlags__emergency_css","SignIn__enable_refresh_access_tokens","EngEduTelemetry__enable_engedu_telemetry","Cloud__enable_cloudx_experiment_ids","Cloud__enable_llm_concierge_chat","Cloud__enable_free_trial_server_call","Profiles__enable_public_developer_profiles","Profiles__enable_recognition_badges","MiscFeatureFlags__developers_footer_dark_image","TpcFeatures__enable_mirror_tenant_redirects","Cloud__enable_cloud_facet_chat","DevPro__enable_developer_subscriptions","BookNav__enable_tenant_cache_key","Concierge__enable_pushui","Profiles__enable_completecodelab_endpoint","MiscFeatureFlags__enable_view_transitions","Profiles__enable_awarding_url","Profiles__enable_profile_collections","Cloud__enable_cloud_shell","Profiles__enable_release_notes_notifications","Profiles__enable_developer_profiles_callout","Search__enable_dynamic_content_confidential_banner","Experiments__reqs_query_experiments","Search__enable_page_map","TpcFeatures__enable_required_headers","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_page_saving","MiscFeatureFlags__enable_firebase_utm","CloudShell__cloud_code_overflow_menu","Search__enable_suggestions_from_borg","Cloud__enable_cloudx_ping","MiscFeatureFlags__enable_project_variables","DevPro__enable_cloud_innovators_plus","Cloud__enable_cloud_dlp_service","Profiles__require_profile_eligibility_for_signin"],null,null,"AIzaSyA58TaKli1DculwmAmbpzLVGuWc8eCQgQc","https://developerscontentserving-pa.googleapis.com","AIzaSyDWBU60w0P9hEkr29kkksYs8Z7gvZ8u_wc","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[15,"tensorflow","TensorFlow","www.tensorflow.org",null,"tensorflow-dot-devsite-v2-prod-3p.appspot.com",null,null,[null,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1]],null,null,null,[1,null,1],[1,1,null,1,1]],null,[25,null,null,null,null,null,"/images/lockup.svg","/images/logo.png",null,null,null,1,1,null,null,null,null,null,null,null,null,1,null,null,null,null,[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1],null,[[],[1,1]],[[["UA-69864048-1"],["UA-69864048-4"],null,null,["UA-69864048-5"],["GTM-MXSL34P"],null,null,[["UA-69864048-1",1]],null,[["UA-69864048-5",1]],[["GTM-MXSL34P",1]],1],[[3,2],[5,4],[12,8],[6,5],[4,3],[1,1]],[[1,1],[2,2]]],null,4]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>