1<!DOCTYPE html> 2<html lang="en-US" class="no-js no-svg"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1"> 6 <link href="/wp-content/themes/chuckeeM/fonts/fontawesome/css/fontawesome.css" rel="stylesheet" /> 7 <link href="/wp-content/themes/chuckeeM/fonts/fontawesome/css/brands.css" rel="stylesheet" /> 8 <link href="/wp-content/themes/chuckeeM/fonts/fontawesome/css/solid.css" rel="stylesheet" /> 9 10<link rel="profile" href="http://gmpg.org/xfn/11"> 11
12<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
12 13<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 14 15 <!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ --> 16 <title>Office Of Development & Design - ODD</title> 17 <meta name="description" content="ODD (Office of Development & Design) is a New York & Los Angeles based design + animation company, helmed by Executive Creative Director Gary Breslin. ODD is more than a design and animation company, it's a think tank, a space for experimentation, exploration and development." /> 18 <link rel="canonical" href="https://odd.tv/" /> 19 <meta property="og:locale" content="en_US" /> 20 <meta property="og:type" content="website" /> 21 <meta property="og:title" content="Office Of Development & Design - ODD" /> 22 <meta property="og:description" content="ODD (Office of Development & Design) is a New York & Los Angeles based design + animation company, helmed by Executive Creative Director Gary Breslin. ODD is more than a design and animation company, it's a think tank, a space for experimentation, exploration and development." /> 23 <meta property="og:url" content="https://odd.tv/" /> 24 <meta property="og:site_name" content="ODD" /> 25 <meta property="article:publisher" content="https://www.facebook.com/ODD.NY.LA" /> 26 <meta property="article:modified_time" content="2022-01-22T02:44:42+00:00" /> 27 <meta name="twitter:card" content="summary_large_image" /> 28 <meta name="twitter:site" content="@odd_ny" /> 29
29<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/odd.tv\/","url":"https:\/\/odd.tv\/","name":"Office Of Development & Design - ODD","isPartOf":{"@id":"https:\/\/odd.tv\/#website"},"about":{"@id":"https:\/\/odd.tv\/#organization"},"datePublished":"2019-09-19T14:33:46+00:00","dateModified":"2022-01-22T02:44:42+00:00","description":"ODD (Office of Development & Design) is a New York & Los Angeles based design + animation company, helmed by Executive Creative Director Gary Breslin. ODD is more than a design and animation company, it's a think tank, a space for experimentation, exploration and development.","breadcrumb":{"@id":"https:\/\/odd.tv\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/odd.tv\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/odd.tv\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/odd.tv\/#website","url":"https:\/\/odd.tv\/","name":"ODD","description":"NY","publisher":{"@id":"https:\/\/odd.tv\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/odd.tv\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/odd.tv\/#organization","name":"ODD","url":"https:\/\/odd.tv\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/odd.tv\/#\/schema\/logo\/image\/","url":"https:\/\/odd.tv\/wp-content\/uploads\/2019\/12\/slash_logo-retina-favicon.png","contentUrl":"https:\/\/odd.tv\/wp-content\/uploads\/2019\/12\/slash_logo-retina-favicon.png","width":150,"height":150,"caption":"ODD"},"image":{"@id":"https:\/\/odd.tv\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ODD.NY.LA","https:\/\/x.com\/odd_ny","https:\/\/www.instagram.com\/odd_tv\/","https:\/\/www.linkedin.com\/company\/oddtv\/","https:\/\/www.threads.com\/@odd_tv"]}]}</script>
29 30 <!-- / Yoast SEO plugin. --> 31 32 33<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 34<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' /> 35<link rel="alternate" type="application/rss+xml" title="ODD » Feed" href="https://odd.tv/feed/" /> 36<link rel="alternate" type="application/rss+xml" title="ODD » Comments Feed" href="https://odd.tv/comments/feed/" /> 37<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://odd.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fodd.tv%2F" /> 38<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://odd.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fodd.tv%2F&format=xml" /> 39<style id="wp-img-auto-sizes-contain-inline-css"> 40img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 41/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 42</style> 43<style id="wp-emoji-styles-inline-css"> 44 45 img.wp-smiley, img.emoji { 46 display: inline !important; 47 border: none !important; 48 box-shadow: none !important; 49 height: 1em !important; 50 width: 1em !important; 51 margin: 0 0.07em !important; 52 vertical-align: -0.1em !important; 53 background: none !important; 54 padding: 0 !important; 55 } 56/*# sourceURL=wp-emoji-styles-inline-css */ 57</style> 58<style id="wp-block-library-inline-css"> 59:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
59--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 60 61/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 62</style> 63<style id="classic-theme-styles-inline-css"> 64/*! This file is auto-generated */ 65.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 66/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 67</style> 68 69<style id="global-styles-inline-css"> 70:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
700) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
70.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 71/*# sourceURL=global-styles-inline-css */ 72</style> 73 74<link rel='stylesheet' id='twentyseventeen-fonts-css' href='https://fonts.googleapis.com/css?family=Libre+Franklin%3A300%2C300i%2C400%2C400i%2C600%2C600i%2C800%2C800i&subset=latin%2Clatin-ext' media='all' /> 75<link rel='stylesheet' id='twentyseventeen-style-css' href='https://odd.tv/wp-content/themes/chuckeeM/style.css?ver=7.1.3' media='all' /> 76<link rel='stylesheet' id='twentyseventeen-block-style-css' href='https://odd.tv/wp-content/themes/chuckeeM/assets/css/blocks.css?ver=1.1' media='all' /> 77<link rel='stylesheet' id='bootstrap-css' href='https://odd.tv/wp-content/themes/chuckeeM/css/bootstrap.css?ver=1.0' media='all' /> 78<link rel='stylesheet' id='fonts-css' href='https://odd.tv/wp-content/themes/chuckeeM/fonts/fonts.css?ver=1.0' media='all' /> 79<link rel='stylesheet' id='animate-min-css' href='https://odd.tv/wp-content/themes/chuckeeM/css/animate.min.css?ver=1.0' media='all' /> 80<link rel='stylesheet' id='owl-carousel-css' href='https://odd.tv/wp-content/themes/chuckeeM/css/owl.carousel.css?ver=1.0' media='all' /> 81<link rel='stylesheet' id='video-js-style-css' href='https://odd.tv/wp-content/themes/chuckeeM/css/video-js.css?ver=1.0' media='all' /> 82<link rel='stylesheet' id='main-style-css' href='https://odd.tv/wp-content/themes/chuckeeM/css/style.css?ver=1.0' media='all' /> 83<link rel='stylesheet' id='responsive-css' href='https://odd.tv/wp-content/themes/chuckeeM/css/responsive.css?ver=1.0' media='all' /> 84<link rel='stylesheet' id='custom-css' href='https://odd.tv/wp-content/themes/chuckeeM/css/custom.css?ver=1.0' media='all' />
85<script id="jquery-core-js" src="https://odd.tv/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 85
85
86<script id="jquery-migrate-js" src="https://odd.tv/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
86 87<link rel="https://api.w.org/" href="https://odd.tv/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://odd.tv/wp-json/wp/v2/pages/115" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://odd.tv/xmlrpc.php?rsd" /> 88<meta name="generator" content="WordPress 7.1.3" /> 89<link rel='shortlink' href='https://odd.tv/' /> 90<style>.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style><link rel="icon" href="https://odd.tv/wp-content/uploads/2019/12/slash_logo-retina-favicon-100x100.png" sizes="32x32" /> 91<link rel="icon" href="https://odd.tv/wp-content/uploads/2019/12/slash_logo-retina-favicon.png" sizes="192x192" /> 92<link rel="apple-touch-icon" href="https://odd.tv/wp-content/uploads/2019/12/slash_logo-retina-favicon.png" /> 93<meta name="msapplication-TileImage" content="https://odd.tv/wp-content/uploads/2019/12/slash_logo-retina-favicon.png" /> 94 95<!--Windows Phone Js Code Start-->
96<script type="text/javascript"> 97 // Copyright 2014-2015 Twitter, Inc. 98 // Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 99 if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 100 var msViewportStyle = document.createElement('style') 101 msViewportStyle.appendChild( 102 document.createTextNode( 103 '@-ms-viewport{width:auto!important}' 104 ) 105 ) 106 document.querySelector('head').appendChild(msViewportStyle) 107 } 108 109var defaultHomeSlideFistTiming = ''; 110var ajaxyPage = ''; 111 112/*for home slide*/ 113var setTimeOut,timeInterval, setDelay = null, trackTime = null, totalMoviesPage = 0,$grid; 114/*for home slide*/ 115 116ajaxyPage = 'home' 117</script>
117 118 <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400&display=swap" rel="stylesheet"> 119</head> 120 121<body class="home wp-singular page-template-default page page-id-115 wp-custom-logo wp-embed-responsive wp-theme-chuckeeM enteringpage twentyseventeen-front-page has-header-image page-two-column colors-light"> 122<!-- <div class="loader"></div> --> 123<div class="sweeper"></div> 124<div class="main_wapper" id="main_wapper"> 125 <!--Main Header--> 126 <header id="header" class=""> 127 <div class="header_wapper"> 128 <div class="logo"> 129 <a href="https://odd.tv"><img src="https://odd.tv/wp-content/uploads/2019/11/slash_logo-ON-BLACK-150.png"></a> 130 </div> 131 <nav class="navigation_main" > 132 <div class="menubox"> 133 <ul id="menu-header-menu" class=""><li id="menu-item-1450" class="w3n-active no-ajaxy scroll menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-1450 active "><a href="https://odd.tv/#home" aria-current="page">Home</a></li> 134<li id="menu-item-1451" class="changeOnScrollLBL no-ajaxy ignore-in-filter scroll menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-1451"><a href="https://odd.tv/#work" aria-current="page">Work</a></li> 135<li id="menu-item-1453" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1453"><a href="https://odd.tv/about/">About</a></li> 136<li id="menu-item-1452" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1452"><a href="https://odd.tv/contact/">Contact</a></li> 137</ul> </div> 138 </nav> 139 140 141 <div class="righthead" > 142 <!-- <div class="search_iconwrap"> 143 <a href="#"> 144 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16.2px" height="17.2px" viewBox="0 0 16.2 17.2" enable-background="new 0 0 16.2 17.2" xml:space="preserve"> 145 <circle fill="none" stroke="#FFFFFF" stroke-miterlimit="10" cx="9.6" cy="6.6" r="6.1"/> 146 <line fill="none" stroke="#FFFFFF" stroke-miterlimit="10" x1="6" y1="11.2" x2="0.4" y2="16.8"/> 147 </svg> 148 </a> 149 </div> --> 150 151 <div class="right_line_icon" > 152 <a href="#" class="hamicon "> 153 <!-- <img src="/images/right_line_icon.svg" alt=""> --> 154 <svg 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" width="28.8px" height="16.6px" viewBox="0 0 28.8 16.6" style="enable-background:new 0 0 28.8 16.6;" xml:space="preserve"> 155 <style type="text/css"> 156 .st0{fill:none;stroke:#FFFFFF;stroke-miterlimit:10;} 157 </style> 158 <line class="st0" x1="13.4" y1="0.3" x2="0.4" y2="16.3"/> 159 <line class="st0" x1="20.9" y1="0.3" x2="7.9" y2="16.3"/> 160 <line class="st0" x1="28.4" y1="0.3" x2="15.4" y2="16.3"/> 161 </svg> 162 </a> 163 <div class="socialicons"> 164 <a href="https://instagram.com/odd_tv" target="_blank" class="fa-brands fa-instagram"></a> 165 <a href="https://www.linkedin.com/company/oddtv/" target="_blank" class="fa-brands fa-linkedin-in"></a> 166 <a href="https://www.facebook.com/ODD.NY.LA" target="_blank" class="fa-brands fa-facebook-f"></a> 167 <a href="https://x.com/odd_ny" target="_blank" class="fa-brands fa-x-twitter"></a> 168 <a href="https://www.threads.net/@odd_tv" target="_blank" class="fa-brands fa-threads"></a> 169 <a href="mailto:[email protected]?subject=Inquiry from odd.tv&body=" target="_blank" class="msg_icon"></a> 170 </div> 171 </div> 172 </div> 173 174 175 <div class="menubar"> 176 <button class="hamburger-icon"> 177 <!-- <span class="navbar-toggler-icon"></span> --> 178 <svg 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" width="28.8px" height="16.6px" viewBox="0 0 28.8 16.6" style="enable-background:new 0 0 28.8 16.6;" xml:space="preserve"> 179 <style type="text/css"> 180 .st0{fill:none;stroke:#FFFFFF;stroke-miterlimit:10;} 181 </style> 182 <line class="st0" x1="13.4" y1="0.3" x2="0.4" y2="16.3"/> 183 <line class="st0" x1="20.9" y1="0.3" x2="7.9" y2="16.3"/> 184 <line class="st0" x1="28.4" y1="0.3" x2="15.4" y2="16.3"/> 185 </svg> 186 </button> 187 </div> 188 </div> 189 <!-- <div class="filter_menubox"> 190 <div class="button-group filters-button-group"> 191 <button class="button is-checked" data-filter="*">all</button> 192 </div> 193 </div> --> 194 </header> 195 <!--End Main Header--><!--Main Banner--> 196 <div class="banner_wapper banner_wapper_new" id="home"> 197<!-- <div class="show-on-mobile-portrait">FEATURED</div> --> 198 <div class="home-banner"> 199 <div id="newHomeSlider" class="carousel slide" pause="hover" data-ride="carousel" data-interval=false> 200 <div class="carousel-inner"> 201 <div class="carousel-item active item0 " data-index="0" data-sli
201de="17000"> 202 <div class="imageitem" style="background-image:url(https://odd.tv/wp-content/uploads/2024/08/Geometrip_Thumbnail_Website-scaled-1-768x432.jpg);"> 203 <div class="videobox_home"> 204 <div class="video_inside"> 205 <video id="my_video_1" autoplay playsinline muted loop class="video-js vjs-default-skin" preload="false" width="640" height="268" 206 data-setup='{ "playbackRates": [0.5, 1, 1.5, 2],"loopbutton": true }' 207 > 208 <source src="https://player.vimeo.com/progressive_redirect/playback/1002910758/rendition/1080p/file.mp4%20%281080p%29.mp4?loc=external&signature=2177abbb3e7eeb509e0e3794406efba82c8687879e4e65ee3bdfb79df26e5816" type='video/mp4'> 209 </video> 210 </div> 211 </div> 212 <div class="captionbox"> 213 <a href="#"> 214 <h2>Geometrip</h2> 215 <h3>Motionographer's 2025 The Motion Awards Winner</h3> </a> 216 </div> 217 <div class="play_wrap"><a href="https://odd.tv/work/geometrip/"><img src="https://odd.tv/wp-content/themes/chuckeeM/images/play_button_icon.svg" alt=""></a></div> 218 </div> 219 </div> 220 <div class="carousel-item item1 " data-index="1" data-slide="15000"> 221 <div class="imageitem" style="background-image:url(https://odd.tv/wp-content/uploads/2019/09/Adidas_Revised-768x432.jpg);"> 222 <div class="videobox_home"> 223 <div class="video_inside"> 224 <video id="my_video_2" playsinline muted loop class="video-js vjs-default-skin" preload="false" width="640" height="268" 225 data-setup='{ "playbackRates": [0.5, 1, 1.5, 2],"loopbutton": true }' 226 > 227 <source src="https://player.vimeo.com/progressive_redirect/playback/589680536/rendition/1080p/file.mp4%20%281080p%29.mp4?loc=external&signature=9ac50711c64fac61522c6fff1a46e0b21eb3741de5727d6f61d6a709ef72902b" type='video/mp4'> 228 </video> 229 </div> 230 </div> 231 <div class="captionbox"> 232 <a href="#"> 233 <h2>Adidas</h2> 234 <h3>1985</h3> </a> 235 </div> 236 <div class="play_wrap"><a href="https://odd.tv/work/adidas/"><img src="https://odd.tv/wp-content/themes/chuckeeM/images/play_button_icon.svg" alt=""></a></div> 237 </div> 238 </div> 239 <div class="carousel-item item2 " data-index="2" data-slide="24000"> 240 <div class="imageitem" style="background-image:url(https://odd.tv/wp-content/uploads/2023/05/Fiat_Tesla_Thumbnail2_Small-scaled-1-768x431.jpg);"> 241 <div class="videobox_home"> 242 <div class="video_inside"> 243 <video id="my_video_3" playsinline muted loop class="video-js vjs-default-skin" preload="false" width="640" height="268" 244 data-setup='{ "playbackRates": [0.5, 1, 1.5, 2],"loopbutton": true }' 245 > 246 <source src="https://player.vimeo.com/progressive_redirect/playback/1018503760/rendition/1080p/file.mp4%20%281080p%29.mp4?loc=external&signature=c6cdd44a140d3ae200f4e90ce6fe47bdf9afabc38d6d2c07da9fec0b7052bf54" type='video/mp4'> 247 </video> 248 </div> 249 </div> 250 <div class="captionbox"> 251 <a href="#"> 252 <h2>Fiat</h2> 253 <h3>vs. Tesla Cybertruck</h3> </a> 254 </div> 255 <div class="play_wrap"><a href="https://odd.tv/work/fiat-tesla/"><img src="https://odd.tv/wp-content/themes/chuckeeM/images/play_button_icon.svg" alt=""></a></div> 256 </div> 257 </div> 258 <div class="carousel-item item3 " data-index="3" data-sli
258de="24000"> 259 <div class="imageitem" style="background-image:url(https://odd.tv/wp-content/uploads/2023/12/Hulu_Sports_Thumbnail-768x431.jpg);"> 260 <div class="videobox_home"> 261 <div class="video_inside"> 262 <video id="my_video_4" playsinline muted loop class="video-js vjs-default-skin" preload="false" width="640" height="268" 263 data-setup='{ "playbackRates": [0.5, 1, 1.5, 2],"loopbutton": true }' 264 > 265 <source src="https://player.vimeo.com/progressive_redirect/playback/919841023/rendition/1080p/file.mp4%20%281080p%29.mp4?loc=external&signature=edd70aa25fa1b191ad8610868e04675ec135778fff054b0db2b6f0a2622d71bc" type='video/mp4'> 266 </video> 267 </div> 268 </div> 269 <div class="captionbox"> 270 <a href="#"> 271 <h2>Hulu</h2> 272 <h3>Sports</h3> </a> 273 </div> 274 <div class="play_wrap"><a href="https://odd.tv/work/hulu/"><img src="https://odd.tv/wp-content/themes/chuckeeM/images/play_button_icon.svg" alt=""></a></div> 275 </div> 276 </div> 277 <a class="carousel-control-prev" href="javascript:void(0);" role="button" data-slide="prev"> 278 <svg version="1.1" id="singal_left_arrow" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="11.4px" height="21.4px" viewBox="0 0 11.4 21.4" style="enable-background:new 0 0 11.4 21.4;" xml:space="preserve"> 279 <style type="text/css"> 280 .st0{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-miterlimit:10;} 281 </style> 282 <path class="st0" d="M10.7,0.7l-5,5L1,10.5c0,0.2,0,0.3,0,0.5l4.7,4.8l5,5"/> 283 </svg> </a> 284 <a class="carousel-control-next" href="javascript:void(0);" role="button" data-slide="next"> 285 <svg version="1.1" id="singal_right_arrow" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="11.4px" height="21.4px" viewBox="0 0 11.4 21.4" style="enable-background:new 0 0 11.4 21.4;" xml:space="preserve"> 286 <style type="text/css">.st0{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-miterlimit:10;}</style> 287 <path class="st0" d="M0.7,20.7l5-5l4.7-4.8c0-0.2,0-0.3,0-0.5L5.7,5.7l-5-5"/> 288 </svg> </a> 289 </div> 290 </div> 291 <!-- </div> --> 292
292<script>defaultHomeSlideFistTiming = '17000' </script>
292 </div> 293 </div> 294 <!--End Main Banner--> 295 296 297 298 299 300 301<div id="work"> </div> 302 <!--Main Contain Desktop--> 303 <section class="contain_wapper show-on-desktop-only" id="contain_wapper"> 304 <!-- Homepage Wrapper Start--> 305 306
306<script type="text/javascript"> totalMoviesPage = "1"; </script>
306 307 308 309 310 311 <div class="home_wapper checkScroll" > 312<div class="show-on-mobile-portrait">WORK</div> 313 314<!-- This is the desktop loop--> 315 <div class="filter_workwrap"> 316 <div class="row grid"> 317 <div class="col-lg-4 col-md-6 filteritems all work"> 318 <div class="work_insidebox"> 319 <a href="https://odd.tv/work/icarus/"> 320 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/10/Icarus_image_New-1.jpg"></div> 321 <div class="captionbox"> 322 <h2>Icarus</h2> 323 <h3>Animation Montage</h3> </div> 324 </a> 325 </div> 326 </div> 327 <div class="col-lg-4 col-md-6 filteritems all featured work"> 328 <div class="work_insidebox"> 329 <a href="https://odd.tv/work/geometrip/"> 330 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2024/08/Geometrip_Thumbnail_Website-scaled-1.jpg"></div> 331 <div class="captionbox"> 332 <h2>Geometrip</h2> 333 <h3>Motionographer's 2025 The Motion Awards Winner</h3> </div> 334 </a> 335 </div> 336 </div> 337 <div class="col-lg-4 col-md-6 filteritems all work"> 338 <div class="work_insidebox"> 339 <a href="https://odd.tv/work/taylorswift/"> 340 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/10/LWYMMD_Thumbnail.jpg"></div> 341 <div class="captionbox"> 342 <h2>Taylor Swift</h2> 343 <h3>Look What You Made Me Do</h3> </div> 344 </a> 345 </div> 346 </div> 347 <div class="col-lg-4 col-md-6 filteritems all work"> 348 <div class="work_insidebox"> 349 <a href="https://odd.tv/work/tyson/"> 350 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/09/Tyson_Trailer.jpg"></div> 351 <div class="captionbox"> 352 <h2>TYSON</h2> 353 <h3>Trailer</h3> </div> 354 </a> 355 </div> 356 </div> 357 <div class="col-lg-4 col-md-6 filteritems all work"> 358 <div class="work_insidebox"> 359 <a href="https://odd.tv/work/audi/"> 360 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Audi_Listen_Thumbnail.jpeg"></div> 361 <div class="captionbox"> 362 <h2>Audi</h2> 363 <h3>Listen</h3> </div> 364 </a> 365 </div> 366 </div> 367 <div class="col-lg-4 col-md-6 filteritems all work"> 368 <div class="work_insidebox"> 369 <a href="https://odd.tv/work/dailypay/"> 370 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/09/DailyPay_Thumbnail-scaled.jpg"></div> 371 <div class="captionbox"> 372 <h2>DailyPay</h2> 373 <h3>The Future of Pay</h3> </div> 374 </a> 375 </div> 376 </div> 377 <div class="col-lg-4 col-md-6 filteritems all work"> 378 <div class="work_insidebox"> 379 <a href="https://odd.tv/work/boeing/"> 380 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Boeing_Thumbnail-scaled-1.jpg"></div> 381 <div class="captionbox"> 382 <h2>Boeing</h2> 383 <h3>Build Something Better</h3> </div> 384 </a> 385 </div> 386 </div> 387 <div class="col-lg-4 col-md-6 filteritems all featured work"> 388 <div class="work_insidebox"> 389 <a href="https://odd.tv/work/hulu/"> 390 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2023/12/Hulu_Sports_Thumbnail.jpg"></div> 391 <div class="captionbox"> 392 <h2>Hulu</h2> 393 <h3>Sports</h3> </div> 394 </a> 395 </div> 396 </div> 397 <div class="col-lg-4 col-md-6 filteritems all featured work"> 398 <div class="work_insidebox"> 399 <a href="https://odd.tv/work/adidas/"> 400 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/09/Adidas_Revised.jpg"></div> 401 <div class="captionbox"> 402 <h2>Adidas</h2> 403 <h3>1985</h3> </div> 404 </a> 405 </div> 406 </div> 407 <div class="col-lg-4 col-md-6 filteritems all work"> 408 <div class="work_insidebox"> 409 <a href="https://odd.tv/work/blackfish/"> 410 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/09/Blackfish_Thumbnail.jpg"></div> 411 <div class="captionbox"> 412 <h2>Blackfish</h2> 413 <h3>
413Animation Montage</h3> </div> 414 </a> 415 </div> 416 </div> 417 <div class="col-lg-4 col-md-6 filteritems all work"> 418 <div class="work_insidebox"> 419 <a href="https://odd.tv/work/fiat/"> 420 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2024/03/Fiat_Thumbnail.jpeg"></div> 421 <div class="captionbox"> 422 <h2>Fiat</h2> 423 <h3>Elettrica!</h3> </div> 424 </a> 425 </div> 426 </div> 427 <div class="col-lg-4 col-md-6 filteritems all work"> 428 <div class="work_insidebox"> 429 <a href="https://odd.tv/work/hp/"> 430 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/10/HP_Thumbnail-scaled-1.jpg"></div> 431 <div class="captionbox"> 432 <h2>HP</h2> 433 <h3>Small But Powerful</h3> </div> 434 </a> 435 </div> 436 </div> 437 <div class="col-lg-4 col-md-6 filteritems all work"> 438 <div class="work_insidebox"> 439 <a href="https://odd.tv/work/pepsi/"> 440 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2020/07/Pepsi_Thumbnail.jpg"></div> 441 <div class="captionbox"> 442 <h2>Pepsi</h2> 443 <h3>Satisfied</h3> </div> 444 </a> 445 </div> 446 </div> 447 <div class="col-lg-4 col-md-6 filteritems all work"> 448 <div class="work_insidebox"> 449 <a href="https://odd.tv/work/bublyburst/"> 450 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2024/03/Bubly_Burst_Thumbnail-scaled-1.jpg"></div> 451 <div class="captionbox"> 452 <h2>Bubly Burst</h2> 453 <h3>Big Entrance</h3> </div> 454 </a> 455 </div> 456 </div> 457 <div class="col-lg-4 col-md-6 filteritems all work"> 458 <div class="work_insidebox">
459 <a href="https://odd.tv/work/marriott/"> 460 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Marriott_Thumbnail-scaled-1.jpg"></div> 461 <div class="captionbox"> 462 <h2>Marriott</h2> 463 <h3>Travel Brilliantly</h3> </div> 464 </a> 465 </div> 466 </div> 467 <div class="col-lg-4 col-md-6 filteritems all featured work"> 468 <div class="work_insidebox"> 469 <a href="https://odd.tv/work/fiat-tesla/"> 470 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2023/05/Fiat_Tesla_Thumbnail2_Small-scaled-1.jpg"></div> 471 <div class="captionbox"> 472 <h2>Fiat</h2> 473 <h3>vs. Tesla Cybertruck</h3> </div> 474 </a> 475 </div> 476 </div> 477 <div class="col-lg-4 col-md-6 filteritems all work"> 478 <div class="work_insidebox"> 479 <a href="https://odd.tv/work/redbury/"> 480 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/08/Redbury_Thumbnail_Small-scaled-1.jpg"></div> 481 <div class="captionbox"> 482 <h2>Redbury</h2> 483 <h3>Brand Film</h3> </div> 484 </a> 485 </div> 486 </div> 487 <div class="col-lg-4 col-md-6 filteritems all work"> 488 <div class="work_insidebox"> 489 <a href="https://odd.tv/work/optum/"> 490 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Optum-scaled-1.jpg"></div> 491 <div class="captionbox"> 492 <h2>Optum</h2> 493 <h3>Rory McIlroy</h3> </div> 494 </a> 495 </div> 496 </div> 497 </div> 498 </div> 499 500 501 502 </div> 503 <!-- Homepage Wrapper Start--> 504 505 </section> 506 <!--End Main Contain Desktop--> 507 508 509 510 511 512 513 514 <!--Main Contain mobile--> 515 <section class="contain_wapper show-on-mobile-portrait" id="contain_wapper"> 516 <!-- Homepage Wrapper Start--> 517 518
518<script type="text/javascript"> totalMoviesPage = "1"; </script>
518 519 520 521 <a class="down-arrow no-ajaxy scroll show-on-mobile-portrait" href="#work" style="width: 100%; text-align: center; border: 0px solid white;"> 522 <svg version="1.1" id="singal_down_arrow" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="11.4px" height="21.4px" viewBox="0 0 11.4 21.4" style="enable-background:new 0 0 11.4 21.4;transform: rotate(90deg);" xml:space="preserve"> 523 <style type="text/css">.st99{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-miterlimit:10;}</style> 524 <path class="st99" d=" 525 M0.7, 20.7 526 l5-5 527 l4.7-4.8 528 c0-0.2, 0-0.3, 0-0.5 529 L5.7, 5.7 530 l-5-5" /> 531 </svg> </a> 532 533 <div class="home_wapper checkScroll"> 534<div class="show-on-mobile-portrait">WORK</div> 535 536<!-- This is the desktop loop--> 537 <div class="filter_workwrap"> 538 <div class="row grid"> 539 <div class="col-lg-4 col-md-6 filteritems all mobile"> 540 <div class="work_insidebox"> 541 <a href="https://odd.tv/work/icarus-animation-montage/"> 542 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/10/Icarus_image_New-1.jpg"></div> 543 <div class="captionbox"> 544 <h2>Icarus</h2> 545 <h3>Animation Montage</h3> </div> 546 </a> 547 </div> 548 </div> 549 <div class="col-lg-4 col-md-6 filteritems all mobile"> 550 <div class="work_insidebox"> 551 <a href="https://odd.tv/work/tyson-trailer/"> 552 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/09/Tyson_Trailer.jpg"></div> 553 <div class="captionbox"> 554 <h2>TYSON</h2> 555 <h3>Trailer</h3> </div> 556 </a> 557 </div> 558 </div> 559 <div class="col-lg-4 col-md-6 filteritems all mobile"> 560 <div class="work_insidebox"> 561 <a href="https://odd.tv/work/dailypay-the-future-of-pay/"> 562 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/09/DailyPay_Thumbnail-scaled.jpg"></div> 563 <div class="captionbox"> 564 <h2>DailyPay</h2> 565 <h3>The Future of Pay</h3> </div> 566 </a> 567 </div> 568 </div> 569 <div class="col-lg-4 col-md-6 filteritems all mobile"> 570 <div class="work_insidebox"> 571 <a href="https://odd.tv/work/geometrip-2/"> 572 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2024/08/Geometrip_Thumbnail_Website-scaled-1.jpg"></div> 573 <div class="captionbox"> 574 <h2>Geometrip</h2> 575 <h3>Motionographer's 2025 The Motion Awards Winner</h3> </div> 576 </a> 577 </div> 578 </div> 579 <div class="col-lg-4 col-md-6 filteritems all mobile"> 580 <div class="work_insidebox"> 581 <a href="https://odd.tv/work/audi-listen/"> 582 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Audi_Listen_Thumbnail.jpeg"></div> 583 <div class="captionbox"> 584 <h2>Audi</h2> 585 <h3>Listen</h3> </div> 586 </a> 587 </div> 588 </div> 589 <div class="col-lg-4 col-md-6 filteritems all mobile"> 590 <div class="work_insidebox"> 591 <a href="https://odd.tv/work/adidas-1985-2/"> 592 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/09/Adidas_Revised.jpg"></div> 593 <div class="captionbox"> 594 <h2>Adidas</h2> 595 <h3>1985</h3> </div> 596 </a> 597 </div> 598 </div> 599 <div class="col-lg-4 col-md-6 filteritems all mobile"> 600 <div class="work_insidebox"> 601 <a href="https://odd.tv/work/taylor-swift-look-what-you-made-me-do/"> 602 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/10/LWYMMD_Thumbnail.jpg"></div> 603 <div class="captionbox"> 604 <h2>Taylor Swift</h2> 605 <h3>Look What You Made Me Do</h3> </div> 606 </a> 607 </div> 608 </div> 609 <div class="col-lg-4 col-md-6 filteritems all mobile"> 610 <div class="work_insidebox"> 611 <a href="https://odd.tv/work/boeing-build-something-better/"> 612 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Boeing_Thumbnail-scaled-1.jpg"></div> 613 <div class="captionbox"> 614 <h2>Boeing</h2> 615 <h3>Build Something Better</h3> </div> 616 </a> 617 </div> 618 </div> 619 <div class="col-lg-4 col-md-6 filteritems all mobile"> 620 <div class="work_insidebox"> 621 <a href="https://odd.tv/work/fiat-elettrica/"> 622 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2024/03/Fiat_Thumbnail.jpeg"></div> 623 <div class="captionbox"> 624 <h2>Fiat</h2> 625 <h3>Elettrica!</h3> </div> 626 </a> 627 </div> 628 </div> 629 <div class="col-lg-4 col-md-6 filteritems all mobile"> 630 <div class="work_insidebox"> 631 <a href="https://odd.tv/work/hp-small-but-powerful/"> 632 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/10/HP_Thumbnail-scaled-1.jpg"></div> 633 <div class="captionbox"> 634 <h2>HP</h2> 635 <h3>Small But Powerful</h3> </div> 636 </a> 637 </div> 638 </div> 639 <div class="col-lg-4 col-md-6 filteritems all mobile"> 640 <div class="work_insidebox"> 641 <a href="https://odd.tv/work/blackfish-animation-montage/"> 642 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2019/09/Blackfish_Thumbnail.jpg"></div> 643 <div class="captionbox"> 644 <h2>Blackfish</h2> 645 <h3>
645Animation Montage</h3> </div> 646 </a> 647 </div> 648 </div> 649 <div class="col-lg-4 col-md-6 filteritems all mobile"> 650 <div class="work_insidebox"> 651 <a href="https://odd.tv/work/marriott-travel-brilliantly/"> 652 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Marriott_Thumbnail-scaled-1.jpg"></div> 653 <div class="captionbox"> 654 <h2>Marriott</h2> 655 <h3>Travel Brilliantly</h3> </div> 656 </a> 657 </div> 658 </div> 659 <div class="col-lg-4 col-md-6 filteritems all mobile"> 660 <div class="work_insidebox"> 661 <a href="https://odd.tv/work/hulu-sports/"> 662 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2023/12/Hulu_Sports_Thumbnail.jpg"></div> 663 <div class="captionbox"> 664 <h2>Hulu</h2> 665 <h3>Sports</h3> </div> 666 </a> 667 </div> 668 </div> 669 <div class="col-lg-4 col-md-6 filteritems all mobile"> 670 <div class="work_insidebox"> 671 <a href="https://odd.tv/work/pepsi-satisfied/"> 672 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2020/07/Pepsi_Thumbnail.jpg"></div> 673 <div class="captionbox"> 674 <h2>Pepsi</h2> 675 <h3>Satisfied</h3> </div> 676 </a> 677 </div> 678 </div> 679 <div class="col-lg-4 col-md-6 filteritems all mobile"> 680 <div class="work_insidebox"> 681 <a href="https://odd.tv/work/fiat-tesla-cybertruck/"> 682 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2023/05/Fiat_Tesla_Thumbnail2_Small-scaled-1.jpg"></div> 683 <div class="captionbox"> 684 <h2>Fiat</h2> 685 <h3>vs. Tesla Cybertruck</h3> </div> 686 </a> 687 </div> 688 </div> 689 <div class="col-lg-4 col-md-6 filteritems all mobile"> 690 <div class="work_insidebox"> 691 <a href="https://odd.tv/work/bubly-burst-big-entrance/"> 692 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2024/03/Bubly_Burst_Thumbnail-scaled-1.jpg"></div> 693 <div class="captionbox"> 694 <h2>Bubly Burst</h2> 695 <h3>Big Entrance</h3> </div> 696 </a> 697 </div> 698 </div> 699 <div class="col-lg-4 col-md-6 filteritems all mobile"> 700 <div class="work_insidebox"> 701 <a href="https://odd.tv/work/redbury-brand-film/"> 702 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/08/Redbury_Thumbnail_Small-scaled-1.jpg"></div> 703 <div class="captionbox"> 704 <h2>Redbury</h2> 705 <h3>Brand Film</h3> </div> 706 </a> 707 </div> 708 </div> 709 <div class="col-lg-4 col-md-6 filteritems all mobile"> 710 <div class="work_insidebox"> 711 <a href="https://odd.tv/work/optum-rory-mcilroy/"> 712 <div class="imgbox" data-bg="https://odd.tv/wp-content/uploads/2026/07/Optum-scaled-1.jpg"></div> 713 <div class="captionbox"> 714 <h2>Optum</h2> 715 <h3>Rory McIlroy</h3> </div> 716 </a> 717 </div> 718 </div> 719 </div> 720 </div> 721 722 723 724 </div> 725 <!-- Homepage Wrapper Start--> 726 727 </section> 728 <!--End Main Contain mobile--> 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 <!--Main Footer--> 746 <footer class="footer"> 747 <div class="footer_inner"> 748 <div class="cpy_right_blk"> 749 <p>© 2026 ODD NY LA, Inc.</p> 750 </div> 751 <div class="footer_social_blk"> 752 <a href="https://instagram.com/odd_tv" target="_blank" class="fa-brands fa-instagram"></a> 753 <a href="https://www.linkedin.com/company/oddtv/" target="_blank" class="fa-brands fa-linkedin-in"></a> 754 <a href="https://www.facebook.com/ODD.NY.LA" target="_blank" class="fa-brands fa-facebook-f"></a> 755 <a href="https://x.com/odd_ny" target="_blank" class="fa-brands fa-x-twitter"></a> 756 <a href="https://www.threads.net/@odd_tv" target="_blank" class="fa-brands fa-threads"></a> 757 <a href="mailto:[email protected]?subject=Inquiry from odd.tv&body=" target="_blank" class="msg_icon"></a> 758 </div> 759 </div> 760 </footer> 761 <!--End Main Footer--> 762 763</div> 764<div class="modal fade" id="copy-message" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> 765 <div class="modal-dialog modal-dialog-centered" role="document"> 766 <div class="modal-content"> 767 <div class="modal-body" style="color: #000;font-weight: bolder;text-align: center;"> 768 Copied </div> 769 </div> 770 </div> 771</div> 772
773<script>var oddMovieUrls = ["https:\/\/odd.tv\/work\/icarus\/","https:\/\/odd.tv\/work\/geometrip\/","https:\/\/odd.tv\/work\/taylorswift\/","https:\/\/odd.tv\/work\/tyson\/","https:\/\/odd.tv\/work\/audi\/","https:\/\/odd.tv\/work\/dailypay\/","https:\/\/odd.tv\/work\/boeing\/","https:\/\/odd.tv\/work\/hulu\/","https:\/\/odd.tv\/work\/adidas\/","https:\/\/odd.tv\/work\/blackfish\/","https:\/\/odd.tv\/work\/fiat\/","https:\/\/odd.tv\/work\/hp\/","https:\/\/odd.tv\/work\/pepsi\/","https:\/\/odd.tv\/work\/bublyburst\/","https:\/\/odd.tv\/work\/marriott\/","https:\/\/odd.tv\/work\/fiat-tesla\/","https:\/\/odd.tv\/work\/redbury\/","https:\/\/odd.tv\/work\/optum\/","https:\/\/odd.tv\/work\/alfaromeo\/","https:\/\/odd.tv\/work\/cencora\/","https:\/\/odd.tv\/work\/bmw\/","https:\/\/odd.tv\/work\/shinola\/","https:\/\/odd.tv\/work\/icarus-animation-montage\/","https:\/\/odd.tv\/work\/tyson-trailer\/","https:\/\/odd.tv\/work\/dailypay-the-future-of-pay\/","https:\/\/odd.tv\/work\/geometrip-2\/","https:\/\/odd.tv\/work\/audi-listen\/","https:\/\/odd.tv\/work\/adidas-1985-2\/","https:\/\/odd.tv\/work\/taylor-swift-look-what-you-made-me-do\/","https:\/\/odd.tv\/work\/boeing-build-something-better\/","https:\/\/odd.tv\/work\/fiat-elettrica\/","https:\/\/odd.tv\/work\/hp-small-but-powerful\/","https:\/\/odd.tv\/work\/blackfish-animation-montage\/","https:\/\/odd.tv\/work\/marriott-travel-brilliantly\/","https:\/\/odd.tv\/work\/hulu-sports\/","https:\/\/odd.tv\/work\/pepsi-satisfied\/","https:\/\/odd.tv\/work\/fiat-tesla-cybertruck\/","https:\/\/odd.tv\/work\/bubly-burst-big-entrance\/","https:\/\/odd.tv\/work\/redbury-brand-film\/","https:\/\/odd.tv\/work\/optum-rory-mcilroy\/","https:\/\/odd.tv\/work\/nikon-ivar\/","https:\/\/odd.tv\/work\/alfa-romeo-control\/","https:\/\/odd.tv\/work\/bmw-water\/","https:\/\/odd.tv\/work\/cencora-helping-breakthroughs-break-through\/","https:\/\/odd.tv\/work\/shinola-grit\/","https:\/\/odd.tv\/work\/nikon\/","https:\/\/odd.tv\/work\/hulk-hogan-real-american-trailer\/","https:\/\/odd.tv\/work\/elf_somanydicks\/","https:\/\/odd.tv\/work\/tylenol\/","https:\/\/odd.tv\/work\/boooming\/","https:\/\/odd.tv\/work\/budlightzero\/","https:\/\/odd.tv\/work\/doritos\/","https:\/\/odd.tv\/work\/ford\/","https:\/\/odd.tv\/work\/budweiser_worldcup\/","https:\/\/odd.tv\/work\/hanes\/","https:\/\/odd.tv\/work\/cadillac\/","https:\/\/odd.tv\/work\/pepsiwildcherry\/","https:\/\/odd.tv\/work\/starry\/","https:\/\/odd.tv\/work\/mountaindew_flavorglitch\/","https:\/\/odd.tv\/work\/dodgehornet\/"];</script>
vendor: 1 bytes, line 773
773
774<script type="speculationrules"> 775{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/chuckeeM/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 776</script>
vendor: 1 bytes, line 776
776
777<script id="twentyseventeen-skip-link-focus-fix-js-extra"> 778var twentyseventeenScreenReaderText = {"expand":"Expand child menu","collapse":"Collapse child menu","icon":null}; 779//# sourceURL=twentyseventeen-skip-link-focus-fix-js-extra 780</script>
vendor: 1 bytes, line 780
780
781<script id="twentyseventeen-skip-link-focus-fix-js" src="https://odd.tv/wp-content/themes/chuckeeM/assets/js/skip-link-focus-fix.js?ver=1.0"></script>
vendor: 1 bytes, line 781
781
782<script id="twentyseventeen-navigation-js" src="https://odd.tv/wp-content/themes/chuckeeM/assets/js/navigation.js?ver=1.0"></script>
vendor: 1 bytes, line 782
782
783<script id="twentyseventeen-global-js" src="https://odd.tv/wp-content/themes/chuckeeM/assets/js/global.js?ver=1.0"></script>
vendor: 1 bytes, line 783
783
784<script id="jquery-scrollto-js" src="https://odd.tv/wp-content/themes/chuckeeM/assets/js/jquery.scrollTo.js?ver=2.1.2"></script>
vendor: 1 bytes, line 784
784
785<script id="bootstrap-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/bootstrap.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 785
785
786<script id="modernizr.custom-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/modernizr.custom.js?ver=7.1.3"></script>
vendor: 1 bytes, line 786
786
787<script id="browser_selector-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/browser_selector.js?ver=7.1.3"></script>
vendor: 1 bytes, line 787
787
788<script id="isotope.pkgd-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/isotope.pkgd.js?ver=7.1.3"></script>
vendor: 1 bytes, line 788
788
789<script id="jquery.lazyloadxt.js-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/jquery.lazyloadxt.js?ver=7.1.3"></script>
vendor: 1 bytes, line 789
789
790<script id="jquery.lazyloadxt.bg.js-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/jquery.lazyloadxt.bg.js?ver=7.1.3"></script>
vendor: 1 bytes, line 790
790
791<script id="owl.carousel-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/owl.carousel.js?ver=7.1.3"></script>
vendor: 1 bytes, line 791
791
792<script id="filter.js-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/filter.js?ver=7.1.3"></script>
vendor: 1 bytes, line 792
792
793<script id="video-js-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/video.js?ver=7.1.3"></script>
vendor: 1 bytes, line 793
793
794<script id="jquery-mobile-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/jquery.mobile.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 794
794
795<script id="video-youtube-js-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/youtube-min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 795
795
796<script id="video-vimeo-js-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/vimeo-min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 796
796
797<script id="ajaxify-min-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/ajaxify.min.js?ver=1.0"></script>
vendor: 1 bytes, line 797
797
798<script id="cookies-js-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/cookies.js?ver=1.0"></script>
vendor: 1 bytes, line 798
798
799<script id="script-js-extra"> 800var chuckeeM = {"ajaxURL":"https://odd.tv/wp-admin/admin-ajax.php","isLazyloadEnable":"Yes"}; 801//# sourceURL=script-js-extra 802</script>
vendor: 1 bytes, line 802
802
803<script id="script-js" src="https://odd.tv/wp-content/themes/chuckeeM/js/script.js?ver=7.1.3"></script>
vendor: 1 bytes, line 803
803
804<script id="wp-emoji-settings" type="application/json"> 805{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://odd.tv/wp-includes/js/wp-emoji-release.min.js?ver=7.1.3"}} 806</script>
vendor: 1 bytes, line 806
806
807<script type="module"> 808/*! This file is auto-generated */ 809var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 810//# sourceURL=https://odd.tv/wp-includes/js/wp-emoji-loader.min.js 811</script>
vendor: 1 bytes, line 811
811
812<script> 813/* Ask Flywheel to build the next and previous movie pages while the current one 814 is playing, so they are already sitting in its edge cache when you tap. 815 816 Measured on staging, same page three times in a row: 817 cold (edge miss) 5,694ms 818 warm (edge hit) 13ms 819 warm (edge hit) 11ms 820 821 Nearly six seconds versus thirteen milliseconds. That gap is the whole 822 problem: browsers only permit autoplay WITH SOUND for a short window after 823 the user's tap, and a cold page blows through it, so playback starts too late 824 and the UNMUTE button reappears. It also explains why revisiting a video 825 works - by then the page is warm. 826 827 Note this is NOT about the browser's cache. Pronto re-downloads the page 828 regardless of what the browser has stored. What matters is that Flywheel has 829 already generated it, which turns a 5.7s wait into a 13ms one. 830 831 Requires odd_movie_cache_headers() in custom-functions.php, which sends the 832 Cache-Control header that permits edge caching in the first place. Without it 833 every page stays cold and this does nothing. 834 835 The pages are ~18KB gzipped and most of the cost is server-side thinking 836 rather than transfer, so this is close to free in bandwidth terms. Each URL 837 is requested at most once per session and failures are ignored. 838 839 MEASURED ON DEVICE, Chrome for iOS, instrumenting every play() attempt: 840 841 17 consecutive warm pages play() called 78-103ms after the tap ALL OK 842 1 cold page play() called 2,397ms after the tap REFUSED 843 844 So the permission window sits somewhere between those figures, and the only 845 variable that matters is how long the page takes to arrive. Warm is always 846 ~90ms and always succeeds. Hence: warm everything, not just the neighbours. 847 848 Warming only next/prev was not enough, because a cold page takes ~5.7s to 849 build and a viewer can easily move on before that finishes - which is exactly 850 what the one failure above was. So the whole catalogue gets warmed, staggered, 851 in the background. */ 852var oddPrefetched = {}; 853 854function oddPrefetchUrl(href) { 855 if (!href || oddPrefetched[href]) { return; } 856 oddPrefetched[href] = true; 857 jQuery.get(href).fail(function(){ /* ignore */ }); 858} 859 860/* The current page's next/prev, which are the most urgent by far. */ 861function oddPrefetchNeighbours() { 862 jQuery('.next-prev-blk a').each(function(){ 863 oddPrefetchUrl(this.href); 864 }); 865} 866 867/* Every movie page, one at a time, spaced out so they never arrive as a burst 868 and never compete with the video the visitor is actually watching. The list 869 comes from odd_movie_urls_for_prefetch() in custom-functions.php. 870 871 400ms apart means ~7s to issue all 18 requests, after which every page in the 872 set is built and cached, and from then on every navigation is a ~90ms one. */ 873function oddWarmAll(urls, i) { 874 i = i || 0; 875 if (!urls || i >= urls.length) { return; } 876 oddPrefetchUrl(urls[i]); 877 setTimeout(function(){ oddWarmAll(urls, i + 1); }, 400); 878} 879 880/* One warming pass per page load, skipped while the tab is hidden so a 881 pocketed phone is not pulling a megabyte it will never use. 882 883 Measured, and still unresolved: pages warmed at the start of a session were 884 served as MISS again roughly nine minutes later, with 2.5-3.3s origin 885 builds, despite max-age=3600. Flywheel's edge does not hold these for the 886 hour we ask for, whether that is a TTL cap or ordinary eviction. So a long 887 session can still outlive the cache. 888 889 TRIED AND BACKED OUT: re-warming the whole catalogue every 4 minutes. It 890 made the site noticeably laggy on desktop, and the reason is obvious in 891 hindsight - every cycle asks for 60 pages, and any that are no longer cached 892 make WordPress build them from scratch. With entries disappearing inside ten 893 minutes, that is close to continuous origin build load, and the page the 894 visitor actually wants queues up behind it. Warming is cheap as a one-off 895 and expensive on a loop. 896 897 Back to a single pass per page load, plus neighbours on each navigation - 898 the configuration that measured 60 consecutive successes. The right fix is 899 to make a cold build fast rather than to keep outrunning it; see the note in 900 the project write-up about the per-request Vimeo API call. */ 901function oddWarmCycle() { 902 if (!document.hidden) { 903 oddWarmAll(oddMovieUrls, 0); 904 } 905} 906 907/* ===== TEMPORARY DIAGNOSTIC - remove once the UNMUTE question is settled ===== 908 909 Records, for every attempt to start a movie playing with sound: 910 911 sinceTap ms between the visitor's last tap and the play() call. The 912 autoplay permission window lives here - ~90ms always worked, 913 2,397ms was refused. 914 sinceLoad ms since this DOCUMENT started. Ruled out the theory that the 915 X button causes a real page load: it climbs continuously 916 across X and grid clicks, so those are AJAX navigations. 917 tapToNav ms from the tap to Pronto actually starting the request. If 918 this is the big number, the delay is in the page we are 919 LEAVING - teardown, disposal, whatever runs on the way out. 920 navToPlay ms from the request starting to play() being called. If this 921 is the big number, the delay is the fetch and the new page's 922 setup. 923 xhr how long the navigation request itself took, and how many 924 bytes came over the wire. 0 bytes means it was served from 925 the browser's own cache. 926 927 The split matters because the edge cache measures 7-10ms HIT on every movie 928 page, so a 5,255ms gap between tap and play() is NOT the network. This tells 929 us which half of the journey is actually eating the time. 930 931 Writes to localStorage as well as the console so it survives a full reload, 932 which the console does not. Read it back with: localStorage.oddLog */ 933var oddDocStart = Date.now(); 934var oddLastTap = 0; 935var oddNavStart = 0; 936var oddNavTapGap = -1; 937 938jQuery(window).on('pronto.request', function(){ 939 oddNavStart = Date.now(); 940 oddNavTapGap = oddLastTap ? (oddNavStart - oddLastTap) : -1; 941}); 942 943/* Duration and transferred size of the navigation request itself, read back 944 out of the browser's own resource timing. transferSize 0 means the browser 945 served it from its HTTP cache and never touched the network. */ 946function oddXhrInfo() { 947 try { 948 var want = location.pathname; 949 var list = performance.getEntriesByType('resource'); 950 for (var i = list.length - 1; i >= 0; i--) { 951 var e = list[i]; 952 if (e.initiatorType === 'xmlhttprequest' && e.name.indexOf(want) !== -1) { 953 return Math.round(e.duration) + 'ms/' + (e.transferSize === 0 ? 'cached' : e.transferSize + 'b'); 954 } 955 } 956 } catch (e) { /* not supported - not worth failing over */ } 957 return 'n/a'; 958} 959 960jQuery(document).on('touchstart click', function(){ 961 oddLastTap = Date.now(); 962}); 963 964function oddLog(msg) { 965 var line = new Date().toISOString().substr(11, 8) + ' ' + msg; 966 try { 967 var all = JSON.parse(localStorage.getItem('oddLog') || '[]'); 968 all.push(line); 969 while (all.length > 60) { all.shift(); } 970 localStorage.setItem('oddLog', JSON.stringify(all)); 971 } catch (e) { /* storage full or blocked - console still works */ } 972 if (window.console && console.log) { console.log(line); } 973} 974 975function oddLogPlay(outcome) { 976 var now = Date.now(); 977 oddLog(outcome + 978 ' | sinceTap=' + (oddLastTap ? (now - oddLastTap) : 'never') + 979 ' | tapToNav=' + oddNavTapGap + 980 ' | navToPlay=' + (oddNavStart ? (now - oddNavStart) : -1) + 981 ' | xhr=' + oddXhrInfo() + 982 ' | sinceLoad=' + (now - oddDocStart) + 983 ' | ' + location.pathname); 984} 985/* ===== END TEMPORARY DIAGNOSTIC ===== */ 986
987/* This inline script sits outside #main_wapper, so it runs once per full page 988 load and not on AJAX navigation - which is what we want, since the catalogue 989 only needs warming once per session. */ 990jQuery(document).ready(function(){ 991 if (jQuery('.next-prev-blk a').length > 0) { 992 setTimeout(oddPrefetchNeighbours, 1000); 993 } 994 if (typeof oddMovieUrls !== 'undefined' && oddMovieUrls.length) { 995 setTimeout(oddWarmCycle, 2500); 996 } 997}); 998 999/* */ 1000 jQuery("#main_wapper").ajaxify({ 1001// memoryoff:false, 1002 memoryoff:true, 1003 requestDelay:0, 1004 prefetch:false, 1005 forms:false, 1006 delta:false, 1007 inline:true, 1008 style:true, 1009 scrolltop: true, 1010 verbosity: 0}); 1011 1012 1013 1014 1015 1016jQuery(window).on('pronto.request', function(event, eventInfo){ 1017 if(ajaxyPage != 'home'){ 1018 if(jQuery('.video-blk').length > 0){ 1019 var videoJsEl = jQuery('.video-blk').find('.video-js')[0]; 1020 if (videoJsEl) { 1021 var player = videojs(videoJsEl); 1022 player.muted(true); 1023 player.pause(); 1024 player.currentTime(0); 1025 player.dispose(); 1026 } 1027 jQuery("#custom-seekbar span").css('width', 0) 1028 jQuery('.video-blk').remove(); 1029 jQuery('.prev-link, .next-link').off('click'); // â ADD THIS LINE 1030 jQuery('.video-blk').each(function(){ 1031 if(jQuery(this).find('.video-js').length > 0){ 1032 videojs(jQuery(this).find('.video-js')).dispose(); 1033 } 1034 }) 1035 1036 1037 1038 1039 1040 1041 1042 if(jQuery('.video-blk').find('.video-js').length > 0){ 1043 jQuery('.video-blk').find('.video-js').remove(); 1044 } 1045 } 1046 clearInterval(timeInterval); 1047 clearTimeout(setTimeOut); 1048 //setTimeOut.clearTimer(); 1049 // jQuery('body').addClass('loading-up'); 1050 }else{ 1051 /* Leaving the home page. Its hero carousel creates four Video.js 1052 players, and because this branch did no cleanup they were never 1053 disposed - the DOM gets swapped away but the players live on, 1054 holding media resources for the rest of the session. Measured on 1055 staging: five live players against a single <video> element after 1056 navigating from home into a movie. 1057 1058 iOS is strict about media resources and which element owns the 1059 audio session, so those orphans are a plausible reason a movie 1060 opened from the grid comes up muted while the same movie reached 1061 by the next/prev arrows plays with sound. HYPOTHESIS, not a 1062 measurement - it was not possible to observe the rejection 1063 directly, only the orphaned players. 1064 1065 Wrapped in try/catch deliberately. An uncaught throw inside a 1066 jQuery handler kills everything after it, including Pronto's own 1067 navigation - that exact failure mode cost a day earlier in this 1068 work, so cleanup must never be able to break a page change. */ 1069 try { 1070 var oddHomePlayers = videojs.getPlayers(); 1071 Object.keys(oddHomePlayers).forEach(function(id){ 1072 var p = oddHomePlayers[id]; 1073 if (!p) { return; } 1074 try { 1075 var el = p.el(); 1076 if (el && jQuery(el).closest('.videobox_home, .home-banner').length > 0) { 1077 p.dispose(); 1078 } 1079 } catch (e) { /* skip this one, keep going */ } 1080 }); 1081 } catch (e) { /* never let cleanup break navigation */ } 1082 1083 // jQuery('body').addClass('loading-down'); 1084 } 1085 jQuery('body').addClass('loading-fade-out'); 1086 jQuery('body').removeClass('loading-fade-in'); 1087 }); 1088jQuery(window).on("pronto.render",function(event, eventInfo) 1089{ 1090 setTimeout(function(){ 1091 jQuery('body').removeClass('loading-fade-out'); 1092 jQuery('body').addClass('loading-fade-in'); 1093 1094 // REINITIALIZE AJAX FOR NEW CONTENT 1095/* jQuery("#main_wapper").ajaxify({ 1096 memoryoff:false, 1097 requestDelay:0, 1098 prefetch:false, 1099 forms:false, 1100 delta:false, 1101 inline:true, 1102 style:true, 1103 scrolltop: true, 1104 verbosity: 0 1105 });*/ 1106 1107 },500) 1108 if(ajaxyPage == 'home'){ 1109 /* Homepage Slider : Start */ 1110 clearInterval(timeInterval); 1111// setTimeOut.clearTimer(); 1112 1113 if (typeof setTimeOut !== 'undefined' && setTimeOut && typeof setTimeOut.clearTimer === 'function') { 1114 setTimeOut.clearTimer(); 1115 } 1116 slidercode = '2'; 1117 setDelay(); 1118 trackTime(); 1119 var slidercode; 1120 var second = 0; //,timeInterval; 1121 jQuery("#newHomeSlider").on('slid.bs.carousel', function (event) { 1122 if(slidercode!=1){ 1123 slidercode = '2'; 1124 setDelay(); 1125 } 1126 var total = jQuery(this).find('.carousel-item').length; 1127 var currentSlide = jQuery(this).find('.carousel-item.active').data('index'); 1128 var prevSlide = (currentSlide - 1) 1129 var nextSlide = (currentSlide + 1); 1130 if(prevSlide < 0){ 1131 prevSlide = total-1; 1132 } 1133 if(nextSlide >= total){ 1134 nextSlide = 0; 1135 } 1136 var carousel = jQuery(this); 1137 var current = videojs(carousel.find('.item'+currentSlide).find('.video-js')[0]); 1138 var prev = videojs(carousel.find('.item'+prevSlide).find('.video-js')[0]); 1139 var next = videojs(carousel.find('.item'+nextSlide).find('.video-js')[0]); 1140 prev.pause(); 1141 prev.currentTime(0); 1142 next.pause(); 1143 next.currentTime(0); 1144 current.play(); 1145 // alert('total: '+total+ ' current: '+currentSlide+' prev: '+prevSlide+' next: '+nextSlide); 1146 }); 1147 jQuery(document).keyup(function(event) { 1148 // var homeOwl = jQuery('#home-banner-slider'); 1149 var winscroll = jQuery(window).scrollTop(); 1150 var bannerheightKey = jQuery(".banner_wapper").outerHeight(); 1151 if(winscroll <= bannerheightKey){ 1152 if (event.keyCode == 37) { 1153 jQuery("#newHomeSlider").carousel("prev"); 1154 slidercode = '1'; 1155 setDelay(); 1156 } else if (event.keyCode == 39) { 1157 jQuery("#newHomeSlider").carousel("next"); 1158 slidercode = '1'; 1159 setDelay(); 1160 } 1161 } 1162 }); 1163 // var setTimeOut; 1164 function setDelay(param1){ 1165 // console.log(slidercode); 1166 var defaultTiming = defaultHomeSlideFistTiming; 1167 console.log(defaultTiming); 1168 //console.log(jQuery('.home-banner-slider .owl-item.active .item').data('timing')); 1169 var carouselTiming = jQuery('.carousel-inner .carousel-item.active').data('slide') ? jQuery('.carousel-inner .carousel-item.active').data('slide') : defaultTiming; 1170 if(slidercode!='undefined' && slidercode!="1"){ 1171 jQuery("#newHomeSlider").carousel('pause'); 1172 setTimeOut = new w3nTimer(function () { 1173 carouselTiming = parseInt(carouselTiming); 1174 //console.log('slide changed at:'+second); 1175 second = 0; 1176 clearInterval(timeInterval); 1177 trackTime(); 1178 jQuery("#newHomeSlider").carousel("next"); 1179 },carouselTiming); 1180 }else{ 1181 //console.log('slide changed manully at:'+second); 1182 second = 0; 1183 clearInterval(timeInterval); 1184 trackTime(); 1185 setTimeOut.clearTimer(); 1186 slidercode = '2'; 1187 } 1188 } 1189 function trackTime(){ 1190 timeInterval = setInterval(function(){ 1191 second++; 1192 //console.log('second'+second); 1193 }, 1000); 1194 } 1195 var secondPausedAt = 0; 1196 jQuery(".play_wrap").hover(function(){ 1197 secondPausedAt = second; 1198 // console.log('pause'); 1199 setTimeOut.pause(); 1200 }, function(){ 1201 second = secondPausedAt; 1202 // console.log('resume'); 1203 setTimeOut.resume(); 1204 }); 1205 jQuery(".carousel-item .captionbox").hover(function(){ 1206 secondPausedAt = second; 1207 // console.log('pause'); 1208 setTimeOut.pause(); 1209 }, function(){ 1210 second = secondPausedAt; 1211 // console.log('resume'); 1212 setTimeOut.resume(); 1213 }); 1214 function w3nTimer(callback, delay) { 1215 var timerId, start, remaining = delay; 1216 this.pause = function() { 1217 window.clearTimeout(timerId); 1218 remaining -= Date.now() - start; 1219 }; 1220 this.resume = function() { 1221 start = Date.now(); 1222 window.clearTimeout(timerId); 1223 timerId = window.setTimeout(callback, remaining); 1224 }; 1225 this.clearTimer = function(){ 1226 window.clearTimeout(timerId); 1227 } 1228 this.resume(); 1229 } 1230 jQuery(document).on("click", '.carousel-control-prev',function(e){ 1231 e.preventDefault(); 1232 jQuery("#newHomeSlider").carousel("prev"); 1233 slidercode = '1'; 1234 setDelay(); 1235 }) 1236 jQuery(document).on("click", '.carousel-control-next',function(e){ 1237 e.preventDefault(); 1238 jQuery("#newHomeSlider").carousel("next"); 1239 slidercode = '1'; 1240 setDelay(); 1241 }) 1242 } 1243 /* Homepage Slider : end */ 1244 var playerClass = ''; 1245 if(ajaxyPage == 'home'){ 1246 if(jQuery('.video_inside').length > 0){ 1247 jQuery('.video_inside').each(function(){ 1248 if(jQuery(this).find('video').length > 0){ 1249 videojs(jQuery(this).find('.video-js')[0]).ready(function(){ 1250 }); 1251 1252 } 1253 }) 1254 jQuery(window).trigger('resize'); 1255 } 1256 jQuery(".navigation_main").show() 1257 jQuery(".righthead").show() 1258 setTimeout(function(){ 1259 get_other_post(2); 1260 }, 1000); 1261 /*To solve image wrap in header if came from contact or about*/ 1262 var pageURL = jQuery(location).attr("href"); 1263 var href = pageURL.split('#'); 1264 var section = "#"+href[1]; 1265 var headerOuterHeight = jQuery('.header_wapper').outerHeight(); 1266 if(jQuery(section).length > 0){ 1267 var scrol = jQuery(section).offset().top - headerOuterHeight; 1268 jQuery('html, body').animate({ 1269 scrollTop: scrol 1270 }, 100, 'linear'); 1271 } 1272 /*To solve image wrap in header if came from contact or about*/ 1273 }else{ 1274 // console.log(jQuery('.video-blk').find('.video-js').length); 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 if(jQuery('.video-blk').find('.video-js').length > 0){ 1287 var player = videojs(jQuery('.video-blk').find('.video-js')[0]); 1288 var audioPromptBtn = jQuery('#audio-prompt-btn'); 1289 1290 // ===== AUTOPLAY WITH AUDIO - localStorage remembered ===== 1291 var userPreferredUnmuted = localStorage.getItem('oddVideoUnmuted') === 'true'; 1292 1293 // Show the UNMUTE button and wire it up. A tap always carries a user 1294 // gesture, so unmuting from here is never blocked by the browser.
1295 function oddShowUnmutePrompt() { 1296 audioPromptBtn.show(); 1297 audioPromptBtn.off('click.oddaudio').on('click.oddaudio', function() { 1298 player.muted(false); 1299 player.volume(1); 1300 player.play(); 1301 audioPromptBtn.fadeOut(300); 1302 localStorage.setItem('oddVideoUnmuted', 'true'); // Remember preference 1303 }); 1304 } 1305 1306 if(userPreferredUnmuted) { 1307 // User has already clicked to unmute before 1308 player.muted(false); 1309 player.volume(1); 1310 audioPromptBtn.hide(); // Hide the button 1311 1312 // Mobile browsers (Chrome on iOS especially) block autoplay WITH SOUND 1313 // unless it happens close enough to the user's tap. If that happens the 1314 // video would just sit there loaded but paused, so fall back to muted 1315 // playback and re-offer the UNMUTE button instead of stalling. 1316 var oddPlayAttempt = player.play(); 1317 if (oddPlayAttempt && typeof oddPlayAttempt.catch === 'function') { 1318 oddPlayAttempt.then(function() { 1319 if (typeof oddLogPlay === 'function') { oddLogPlay('SOUND OK '); } 1320 }); 1321 oddPlayAttempt.catch(function(err) { 1322 if (typeof oddLogPlay === 'function') { 1323 oddLogPlay('SOUND FAIL [' + (err && err.name ? err.name : '?') + ']'); 1324 } 1325 player.muted(true); 1326 player.play(); 1327 oddShowUnmutePrompt(); 1328 }); 1329 } 1330 } else { 1331 // First time user - show the audio prompt button 1332 oddShowUnmutePrompt(); 1333 } 1334 // ===== END AUTOPLAY WITH AUDIO ===== 1335 1336 player.currentTime(0); 1337 player.ready(function(){ 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 this.on('timeupdate', function () { 1368 var percentage = ( this.currentTime() / this.duration() ) * 100; 1369 jQuery("#custom-seekbar span").css("width", percentage+"%"); 1370 jQuery("#custom-seekbar span").css("transition", 'width linear 0.5s'); 1371 var currentTime = this.currentTime(); 1372 var totalTime = this.duration(); 1373 var remainingTime = (totalTime - currentTime); 1374 currentTime = convertSecondstoTime(currentTime); 1375 remainingTime = '-'+convertSecondstoTime(remainingTime); 1376 var toalTimeDisplay = convertSecondstoTime(totalTime); 1377 jQuery('#custom-seekbar .currenttime').text(remainingTime); 1378 //jQuery("#custom-seekbar .currenttime").css("left", ); 1379 jQuery('.time-blk .currenttime').text(currentTime); 1380 jQuery('.time-blk .totaltime').text(toalTimeDisplay); 1381 }) 1382 this.on('ended', function () { 1383 jQuery('.play-pause').addClass('play').removeClass('pause'); 1384 jQuery('.play-pause').find('i').addClass('fa-pause').removeClass('fa-play'); 1385 //jQuery('#play-btn-blk').fadeIn('slow'); 1386 jQuery("#custom-seekbar span").css("width", "0%"); 1387 jQuery('.time-blk .currenttime').text('00:00'); 1388 jQuery('#custom-seekbar .currenttime').text(''); 1389 setTimeout(function(){ 1390 jQuery('.video-close-blk a').trigger('click'); 1391 }, 500); 1392 }) 1393 this.on('pause', function () { 1394 jQuery('.play-pause').addClass('play').removeClass('pause'); 1395 jQuery('.play-pause').find('i').addClass('fa-pause').removeClass('fa-play'); 1396 jQuery("#custom-seekbar span").css("transition", ''); 1397 }) 1398 this.on('play', function () { 1399 jQuery('.play-pause').addClass('pause').removeClass('play'); 1400 jQuery('.play-pause').find('i').addClass('fa-pause').removeClass('fa-play'); 1401 jQuery("#custom-seekbar span").css("transition", ''); 1402 jQuery('#play-btn-blk').fadeOut('slow'); 1403 }) 1404 setTimeout(function(){ 1405 // console.log('class added'); 1406 jQuery('body').addClass("make-control-light"); 1407 }, 3000); 1408 }); 1409 jQuery(".navigation_main").hide(); 1410 jQuery(".righthead").hide(); 1411 1412 1413/* if(jQuery(window).width() > 768){ 1414 player.play(); 1415 }else{ 1416 setTimeout(function(){ 1417 jQuery('#play-btn-blk').fadeIn(); 1418 }, 900); 1419 }*/ 1420 1421 var vid = videojs(jQuery('.video-blk').find('.video-js')[0],{ techOrder: ["youtube"]}); 1422 jQuery(document).delegate("#custom-seekbar", "click", function(e){ 1423 var offset = jQuery(this).offset(); 1424 var left = (e.pageX - offset.left); 1425 var totalWidth = jQuery("#custom-seekbar").width(); 1426 var percentage = ( left / totalWidth ); 1427 var vidTime = vid.duration() * percentage; 1428 //console.log(vidTime); 1429 vid.currentTime(vidTime) 1430 }); 1431 1432 /* Warm this page's neighbours in Flywheel's edge cache. See the 1433 note beside oddPrefetchNeighbours() at the top of this script. 1434 This is the AJAX path and the common case; the document.ready 1435 call up there covers direct loads and refreshes. */ 1436 setTimeout(oddPrefetchNeighbours, 1000); 1437 } 1438 } 1439 function convertSecondstoTime(given_seconds, type) { 1440 // given_seconds = 3685; 1441 1442 dateObj = new Date(given_seconds * 1000); 1443 hours = dateObj.getUTCHours(); 1444 minutes = dateObj.getUTCMinutes(); 1445 seconds = dateObj.getSeconds(); 1446 1447 if(type == 'full'){ 1448 // console.log(hours+':'+minutes+':'+seconds); 1449 timeString = hours.toString().padStart(1, '') 1450 + ':' + minutes.toString().padStart(1, '') 1451 + ':' + seconds.toString().padStart(2, '0'); 1452 }else{ 1453 var hours = hours.toString().padStart(1, ''); 1454 var hoursText = ''; 1455 // console.log(hours+':'+minutes+':'+seconds); 1456 if(hours > 0){ 1457 hoursText = hours+ ':'; 1458 } 1459 timeString = hoursText 1460 + minutes.toString().padStart(1, '') 1461 + ':' + seconds.toString().padStart(2, '0'); 1462 }
1463 return timeString; 1464 } 1465 //add class for control opecity 1466 // if(!jQuery('body').hasClass('make-control-light')){ 1467 // jQuery('body').addClass("make-control-light") 1468 // } 1469 //add class for control opecity 1470 jQuery(".search_iconwrap a").click(function(e) { 1471 e.preventDefault(); 1472 jQuery(this).toggleClass("active"); 1473 jQuery(".filter_menubox").toggleClass("showfilter"); 1474 }); 1475 if(jQuery('.no-ajaxy').length > 0 && ajaxyPage == 'home'){ 1476 jQuery('.no-ajaxy').each(function(){ 1477 jQuery('.no-ajaxy').find('a').addClass('no-ajaxy'); 1478 }) 1479 } 1480 $grid = jQuery('.grid').isotope({ 1481 itemSelector: '.filteritems', 1482 layoutMode: 'fitRows' 1483 }); 1484 // bind filter button click 1485 jQuery('.filters-button-group').on( 'click', 'button', function() { 1486 var filterValue = jQuery( this ).attr('data-filter'); 1487 // use filterFn if matches value 1488 filterValue = filterFns[ filterValue ] || filterValue; 1489 $grid.isotope({ filter: filterValue }); 1490 }); 1491 // change is-checked class on buttons 1492 jQuery('.button-group').each( function( i, buttonGroup ) { 1493 var $buttonGroup = jQuery( buttonGroup ); 1494 $buttonGroup.on( 'click', 'button', function() { 1495 $buttonGroup.find('.is-checked').removeClass('is-checked'); 1496 jQuery( this ).addClass('is-checked'); 1497 }); 1498 }); 1499 /*Abuot Slider Start*/ 1500 var aboutSlider = jQuery('.abt-banner-slider').owlCarousel({ 1501 loop:true, 1502 margin:0, 1503 autoplay:true, 1504 autoplayTimeout:5000, 1505 autoplaySpeed:1000, 1506 nav:false, 1507 dots:false, 1508 autoplayHoverPause: true, 1509 animateOut: 'fadeOut', 1510 animateIn: 'fadeIn', 1511 responsive:{ 1512 0:{ 1513 items:1 1514 }, 1515 600:{ 1516 items:1 1517 }, 1518 1000:{ 1519 items:1 1520 } 1521 } 1522 }); 1523 aboutSlider.on('changed.owl.carousel', function(e) { 1524 aboutSlider.trigger('stop.owl.autoplay'); 1525 aboutSlider.trigger('play.owl.autoplay'); 1526 }); 1527 jQuery('.owl-carousel').on('click', '.owl-dots, .owl-nav', function(e) { 1528 jQuery(this).closest('.owl-carousel').trigger('stop.owl.autoplay'); 1529 jQuery(this).closest('.owl-carousel').trigger('play.owl.autoplay'); 1530 }); 1531 // Go to the next item 1532 jQuery('.inner_banner_control .next_btn a').click(function(e) { 1533 e.preventDefault(); 1534 aboutSlider.trigger('next.owl.carousel', [1000]); 1535 }); 1536 1537 // Go to the previous item 1538 jQuery('.inner_banner_control .pre_btn a').click(function(e) { 1539 e.preventDefault(); 1540 aboutSlider.trigger('prev.owl.carousel', [1000]); 1541 }); 1542 jQuery(document).keyup(function(event) { 1543 // var homeOwl = jQuery('#home-banner-slider'); 1544 var winscroll = jQuery(window).scrollTop(); 1545 var bannerheightKey = jQuery(".banner_wapper").outerHeight(); 1546 if(winscroll <= bannerheightKey){ 1547 if (event.keyCode == 37) { 1548 // console.log('prev'); 1549 aboutSlider.trigger('prev.owl.carousel', [1000]); 1550 } else if (event.keyCode == 39) { 1551 // console.log('next'); 1552 aboutSlider.trigger('next.owl.carousel', [1000]); 1553 } 1554 aboutSlider.trigger('stop.owl.autoplay'); 1555 aboutSlider.trigger('play.owl.autoplay'); 1556 } 1557 }); 1558/**/ 1559 jQuery.get('/wp-content/themes/chuckeeM/js/jquery.lazyloadxt.js?ver=5.2.3',function(data){eval(data);}); 1560 jQuery.get('/wp-content/themes/chuckeeM/js/jquery.lazyloadxt.bg.js?ver=5.2.3',function(data){eval(data);}); 1561 1562 var sPageURL = window.location.search; 1563 if(sPageURL != ''){ 1564 var sub = sPageURL.substring(1) 1565 var res = sub.split("="); 1566 var res = res[1].split("#"); 1567 var filter = '.'+res[0]; 1568 jQuery('.filter_menubox .filters-button-group .button').each(function(){ 1569 data = jQuery(this).data('filter'); 1570 var ele = jQuery(this); 1571 if(data == filter){ 1572 ele.trigger('click'); 1573 } 1574 }) 1575 }else{ 1576 // eraseCookie('w3nClickedFilterValue'); 1577 } 1578 1579 /*to filter grid if return from player page*/ 1580 /*var workCookie = getCookie('scrollToWork'); 1581 if(workCookie != '' && workCookie != null){ 1582 console.log('cookie'+workCookie); 1583 eraseCookie('scrollToWork'); 1584 var workTopCount = jQuery(workCookie).offset().top; 1585 var menuHeight = jQuery("#header").outerHeight(); 1586 jQuery('html, body').animate({ 1587 scrollTop: workTopCount - menuHeight 1588 }, 1000); 1589 }*/ 1590 var uri = window.location.href.toString(); 1591 if (uri.indexOf("?") > 0) { 1592 setTimeout(function(){ 1593 var clean_uri = uri.substring(0, uri.indexOf("?")); 1594 window.history.replaceState({}, document.title, clean_uri); 1595 }) 1596 } 1597 1598 1599 /*Menubox hover effect*/ 1600 jQuery(".menubox").hover(function() { 1601 jQuery('#header').addClass('activeheader'); 1602 }, function() { 1603 // jQuery('#header').removeClass('activeheader'); 1604 }) 1605 /*Menubox hover effect*/ 1606 1607 1608 1609 1610 1611 1612 1613 /*image hover on dark*/ 1614 jQuery(".work_insidebox a").hover(function(){ 1615 jQuery(this).parent().parent().addClass("activebox"); 1616 jQuery(".filter_workwrap").addClass("hideothers"); 1617 },function(){ 1618 jQuery(this).parent().parent().removeClass("activebox"); 1619 jQuery(".filter_workwrap").removeClass("hideothers"); 1620 }); 1621 /*image hover on dark*/ 1622 }); 1623 1624 1625
1626 //////////////////////////////////////////// 1627 // MATT hide the menu upon scroll of page // 1628 ///////////////////////////////////////////// 1629// jQuery( window ).scroll(function() { 1630 // jQuery( "#header" ).addClass( "activeheader" ); 1631// jQuery( ".hamicon" ).addClass( "active" ); 1632// }); 1633 1634 1635 1636 1637 1638 // CLOSE BUTTON HANDLER - handles both touch (mobile) and click (desktop) 1639/* document.addEventListener('touchend', function(e) { 1640 var closeLink = e.target.closest('.video-close-blk a'); 1641 if (closeLink) { 1642 e.preventDefault(); 1643 window.location.href = closeLink.getAttribute('href'); 1644 } 1645 }, false); 1646 document.addEventListener('click', function(e) { 1647 var closeLink = e.target.closest('.video-close-blk a'); 1648 if (closeLink) { 1649 e.preventDefault(); 1650 window.location.href = closeLink.getAttribute('href'); 1651 } 1652 }, true); 1653 1654 */ 1655 1656 1657 1658// Permanently disable jQuery Mobile's automatic link-hijacking. 1659// Pronto (ajaxify) handles all AJAX navigation on this site; jQuery Mobile's 1660// competing link handler was causing race conditions with video navigation. 1661jQuery(function(){ 1662 var clickEvents = jQuery._data(document, 'events') && jQuery._data(document, 'events').click; 1663 if (clickEvents) { 1664 clickEvents.slice().forEach(function(e) { 1665 if (e.handler.toString().indexOf('pagecontainer') !== -1) { 1666 jQuery(document).off('click', e.handler); 1667 } 1668 }); 1669 } 1670}); 1671 1672</script>
1672 1673</body> 1674</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.