CINXE.COM

Online Learning for Teams - O'Reilly Media

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Online Learning for Teams - O'Reilly Media</title> <meta name="description" content="Help your tech teams stay ahead of what's next." /> <meta name="date" content="2025-02-17" /> <meta name="search_date" content="2023-02-02" /> <meta name="search-title" content="Online Learning for Teams - O'Reilly Media" /> <meta name="pagename" content="Online Learning for Teams - O'Reilly Media" /> <meta name="site" content="O'Reilly" /> <meta name="twitter:title" content="Online Learning for Teams - O'Reilly Media" /> <meta name="twitter:description" content="Help your tech teams stay ahead of what's next." /> <meta name="twitter:site" content="@OReillyMedia" /> <meta property="og:type" content="website" /> <meta property="og:title" content="Online Learning for Teams - O'Reilly Media" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:image" content="https://cdn.oreillystatic.com/oreilly/images/oreilly-social-200.png" /> <meta property="og:image" content="https://cdn.oreillystatic.com/oreilly/images/oreilly-social-200.png" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="language_name" content="English"> <meta name="native_language_name" content="English"> <meta name="format-detection" content="telephone=no"> <link rel="icon" type="image/png" href="//www.oreilly.com/favicon.ico"> <!--[if lte IE 9]> <script> 'article aside footer header main nav section time'.replace(/\w+/g,function(n){document.createElement(n)}) </script> <![endif]--> <link rel="stylesheet" type="text/css" href="https://cdn.oreillystatic.com/assets/css/2018_font_face.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.oreillystatic.com/assets/css/odot-layout-20240226.css" /> <!--[if IE 9]> <style type="text/css"> #menu-toggle:checked ~ .mobile-nav { display:block; } .mobile-nav { display: none; } </style> <![endif]--> <!-- Initiate dataLayer for GA --> <script> loggedInObject = new Object(); var dataLayer = window.dataLayer || []; //Check for O'Reilly Unified logged-in status if (document.cookie.split(';').filter(function(item) { return item.indexOf('orm-jwt=') >= 0 }).length) { loggedInObject.unifiedLoggedIn = 'yes'; loggedInObject.loggedIn = 'yes'; dataLayer.push(loggedInObject); //Add 'loggedIn class to html tag const htmlTag = document.querySelector('html'); if (htmlTag !== null) { htmlTag.classList.add('loggedIn'); } } </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5P4V6Z');</script> <!-- End Google Tag Manager --> <!-- Start VWO Async SmartCode --> <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" /> <script type='text/javascript' id='vwoCode'> window._vwo_code || (function() { var account_id=27087, version=2.1, settings_tolerance=2000, hide_element='body', hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important', /* DO NOT EDIT BELOW THIS LINE */ f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var i=this.getSettings(),n=d.createElement('script'),r=this;t=t||{};if(i){n.textContent=i;d.getElementsByTagName('head')[0].appendChild(n);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var i=this.hide_element(),n=i?i+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=n;else t.appendChild(d.createTextNode(n));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var n=d.createElement('div');n.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;';n.setAttribute('id','_vis_opt_path_hides');n.classList.add('_vis_hide_layer');t.parentNode.insertBefore(n,t.nextSibling)}var o='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:o})}else{this.load(o+'&x=true')}}};w._vwo_code=code;code.init();})(); </script> <!-- End VWO Async SmartCode --> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5P4V6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="skipToMain" id="skipToMain"><a href="#maincontent"><span class="skipToMain-text">Skip to main content</span></a></div> <header role="banner"> <div class="content"> <nav role="navigation" aria-label="site sections"> <a href="https://www.oreilly.com" class="logo" title="home page"><img src="https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red.svg" onerror="this.src='https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red_@2x.png'; this.onerror=null;" alt="O'Reilly home"></a> <button id="mobileNavButton" class="mobileNavButton mobileNavButton--collapse mobileNavButton--3dx" type="button" aria-expanded="false" aria-controls="menuList"> <span class="mobileNavButton-box"> <span class="mobileNavButton-inner"></span> </span> </button> <ul id="menuList" class="menuList mobileHidden "> <li class="menuList-itemsP1"> <ul> <li class="menuList-item menuList-signIn"><a id="nav-signIn" href="https://www.oreilly.com/member/login/">Sign In</a></li> <li class="menuList-item menuList-tryNow"><a id="nav-tryNow" class="menuList-cta" href="https://www.oreilly.com/online-learning/try-now.html">Try Now</a></li> <li class="menuList-item menuList-platform"><a id="nav-platform" class="menuList-cta" href="https://www.oreilly.com/member/login/">O&rsquo;Reilly Platform</a></li> </ul> </li> <li class="menuList-itemsP2"> <ul> <li class="menuList-item menuList-itemWithSub"><a href="https://www.oreilly.com/online-learning/teams.html" aria-current="page">Teams</a> <ul class="menuList-subList"> <li class="menuList-subItem menuList-extra"><a href="https://www.oreilly.com/online-learning/teams.html">For business</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/government.html">For government</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/academic.html">For higher ed</a></li> </ul> </li> <li class="menuList-item"><a href="https://www.oreilly.com/online-learning/individuals.html">Individuals</a></li> <li class="menuList-item menuList-itemWithSub"><a href="https://www.oreilly.com/online-learning/features.html">Features</a> <ul class="menuList-subList"> <li class="menuList-subItem menuList-extra"><a href="https://www.oreilly.com/online-learning/features.html">All features</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/courses.html">Courses</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/feature-certification.html">Certifications</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/intro-interactive-learning.html">Interactive learning</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/live-events.html">Live events</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/feature-answers.html">Answers</a></li> <li class="menuList-subItem"><a href="https://www.oreilly.com/online-learning/insights-dashboard.html">Insights reporting</a></li> </ul> </li> <li class="menuList-item"><a href="https://www.oreilly.com/online-learning/pricing.html">Plans</a></li> <li class="menuList-item"><a href="https://www.oreilly.com/radar/">Blog</a></li> <li class="menuList-item" id="nav-forMarketers"><a href="https://www.oreilly.com/content-marketing-solutions.html">Content sponsorship</a></li> <li class="menuList-item menuList-item-search" id="nav-search"> <form id="js-searchForm" class="searchForm" action="https://www.oreilly.com/search/"><input id="search" type="search" name="query" placeholder="Explore our content" autocomplete="off" required=""><button id="js-searchCloseButton" class="navSearchCloseButton">Close</button></form> <button id="js-searchButton" class="navSearchButton">Search</button> </li> </ul> </li> </ul> </nav> </div> </header> <main role="main" id="maincontent"> <style> body .teams { opacity: 0; } body:not(.raven) { .sectionIcon, .sectionLabel, .ravenLink, .ravenVersion { display: none !important; } .teams { opacity: 1 !important; transition: opacity 400ms 1s; } /* .hero-teams */ .teams-hero { background-color: transparent; overflow: visible; position: relative; z-index: 1; } .teams-hero .content { position: relative; padding: 0 20px; } .teams-hero .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #fff transparent transparent transparent; } .teams-hero .sectionText { position: relative; text-align: center; margin: 0; padding: 54px 0 0; } .teams-hero .sectionText:after { content: ""; position: absolute; z-index: 0; right: -20px; top: 0; width: calc(100% + 40px); height: 100%; background: linear-gradient(91.31deg, rgba(0,113,235,1) 0%, rgba(0,113,235,1) 50%, rgba(20,212,216,1) 200%); } .teams-hero h1 { position: relative; z-index: 1; margin: 0 0 12px; max-width: 100%; color: #fff; font-family: "gilroy", Arial, sans-serif; font-size: 2.5rem; line-height: 1.2em; } .teams-hero .teams-hero-odotAnimal { display: none; } .teams-hero p.teams-hero-subtitle { position: relative; z-index: 1; margin: 0 0 20px; max-width: 100%; font-family: "gilroy", Arial, sans-serif; font-weight: 300; font-size: 2rem; line-height: 1.3em; color: #fff; } .teams-hero p.teams-hero-intro { position: relative; display: inline-block; z-index: 1; margin: 0 0 54px; max-width: 100%; font-size: 1rem; line-height: 1.5em; color: #fff; } .teams-hero .teams-hero-form .pardotForm > p { text-align: left; font-size: 1.25rem; line-height: 1.5rem; font-weight: 400; color: #515151; } .teams-hero .teams-hero-form p.pardotForm-privacy { text-align: left; } .teams-hero .blueButton { display: block; margin: 0 auto; width: max-content; text-decoration: none; -webkit-appearance: none; outline: none; border: none; border-radius: 2px; padding: 8px 16px 6px; background: rgb(0, 113, 235); color: rgb(255, 255, 255); font-size: 1.25rem; line-height: 1.5em; font-weight: 600; font-family: "gilroy", Arial, sans-serif; cursor: pointer; transition: box-shadow .2s; } .teams-hero .blueButton:after { content: ""; display: inline-block; margin: -8px -2px -6px 6px; width: .75rem; height: 1.5rem; vertical-align: middle; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_right_arrow_white.svg) center center no-repeat; background-size: contain; } @media (min-width: 40em) { /* 640px */ .teams-hero h1 { font-size: 3.75rem; line-height: 1em; } .teams-hero p.teams-hero-subtitle { font-size: 2.5rem; line-height: 1.1em; } .teams-hero p.teams-hero-intro { font-family: "gilroy", Arial, sans-serif; font-size: 1.5rem; line-height: 1.5em; font-weight: 300; } } @media (min-width: 50em) { /* 800px */ .teams-hero .sectionText { text-align: left; } .teams-hero .sectionText:after { content: ""; position: absolute; z-index: 0; right: -20px; top: 0; width: calc(100% + 40px); height: 640px; background: linear-gradient(220deg, rgba(0,113,235,1) 2%, rgba(20,212,216,1) 16%, rgba(20,212,216,0) 32%); } .teams-hero h1 { margin: 0 0 12px; width: calc(100% - 360px); text-align: left; color: #222; } .teams-hero h1 .highlight { color: rgb(0,113,235); } @supports (-webkit-background-clip: text) or (-moz-background-clip: text) { .teams-hero h1 .highlight { background: rgb(0,113,235) linear-gradient(135deg, rgb(0,113,235) 30%, rgb(20,212,216) 150%); background-size: 100%; -webkit-background-clip: text; -moz-background-clip: text; -webkit-text-fill-color: transparent; -moz-text-fill-color: transparent; box-decoration-break: clone; -webkit-box-decoration-break: clone; } } .teams-hero p.teams-hero-subtitle { margin: 0 0 20px; width: calc(100% - 360px); color: #222; text-align: left; } .teams-hero p.teams-hero-intro { width: calc(100% - 360px); color: #222; } .teams-hero .teams-hero-odotAnimal { display: block; position: absolute; z-index: 1; top: 54px; right: 40px; margin: 0; width: 280px; } .teams-hero .teams-hero-odotAnimal figure { display: block; width: 100%; padding-bottom: 81.87%; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/hero-odot-penguins.png) 0 0 no-repeat; background-size: contain; } } @media (min-width: 58em) { /* 928px */ .teams-hero p.teams-hero-intro { color: #222; } } @media (min-width: 76.5em) { /* 1224px */ .teams-hero .sectionText:after { right: 0; top: 0; width: 100%; height: 480px; } } /* END .teams-hero */ /* .teamsSection */ .teamsSection .content { padding: 72px 20px 80px; } .teamsSection h2 { margin: 0 auto 4px; max-width: 960px; text-align: center; font-family: "gilroy", Arial, sans-serif; font-size: 2rem; line-height: 1.2em; color: #222; } .teamsSection p { margin: 0 auto 20px; max-width: 960px; text-align: center; font-size: 1.25rem; line-height: 1.5em; color: #222; } /* END .teamsSection */ .teams .textCTA-light, .teams .textCTA-blue, .teams .redCTA { position: relative; display: block; width: max-content; padding-right: 20px; font-size: 1.25rem; line-height: 1.5em; font-weight: 600; color: #0071eb; text-decoration: none; } .teams .redCTA { color: #d30000; } .teams .textCTA-light { color: #fff; } .teams .textCTA-light:hover, .teams .textCTA-light:focus, .teams .textCTA-blue:hover, .teams .textCTA-blue:focus, .teams .redCTA:hover, .teams .redCTA:focus { text-decoration: underline; } .teams .textCTA-light .inner, .teams .textCTA-blue .inner, .teams .redCTA .inner { position: relative; } .teams .textCTA-light .inner:after, .teams .textCTA-blue .inner:after, .teams .redCTA .inner:after { content: ""; position: absolute; bottom: 0; right: -16px; width: 8px; height: 100%; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_right_arrow_blue.svg) right center no-repeat; background-size: contain; } .teams .redCTA .inner:after { background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_right_arrow_red.svg) right center no-repeat; background-size: contain; } .teams .textCTA-light .inner:after { background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_right_arrow_white.svg) right center no-repeat; background-size: contain; } .teams .redButton, .teams .blueButton, .teams .whiteButton { display: block; width: max-content; margin: 0 auto 0; padding: 12px 20px 10px; border-radius: 4px; color: #fff; font-family: "gilroy", Arial, sans-serif; font-size: 1.25rem; line-height: 1.5em; font-weight: 500; text-decoration: none; transition: box-shadow .2s; } .teams .redButton { background-color: #d30000; } .teams .blueButton { background-color: #0071eb; } .teams .whiteButton { background-color: #fff; color: #0071eb; } .teams .redButton:hover, .teams .redButton:focus, .teams .blueButton:hover, .teams .blueButton:focus, .teams .whiteButton:hover, .teams .whiteButton:focus { text-decoration: none; box-shadow: 0 2px 8px rgb(0 0 0 / 30%); } /* .teams-hero-form */ .teams .teams-hero-form { margin: 0 auto; width: 100%; max-width: 485px; } .teams .teams-hero-form > p { margin-bottom: 8px; } .teams .teams-hero-form .pardotForm { max-width: 100%; color: #515151; } .teams .teams-hero-form p { width: 100%; max-width: 100%; } .teams .teams-hero-form .pardotForm p { margin-bottom: 20px; font-family: 'guardian-text-oreilly', Helvetica, sans-serif; } .teams .teams-hero-form .pardotForm p.pardotForm-privacy { display: inline-block; font-size: 14px; font-size: .875rem; line-height: 1.5em; } .teams .teams-hero-form .pardotForm-thankyou { margin: 0 auto; max-width: 485px; } .teams .teams-hero-form .pardotForm-thankyou h2 { margin-top: 0; margin-bottom: 0; max-width: 100%; text-align: center; font-family: 'gilroy', Arial, sans-serif; font-size: 1.5rem; line-height: 1.5em; font-weight: 600; color: #222; } @media (min-width: 37.5em) { .teams .teams-hero-form .pardotForm, .teams .teams-hero-form .pardotForm-thankyou { width: 100%; float: none; } } @media (min-width: 50em) { .teams .teams-hero-form { width: calc(50% - 40px); } .teams .teams-hero-form p { margin-bottom: 0; font-size: 22px; font-size: 1.375rem; line-height: 1.5em; } .teams .teams-hero-form > p { margin-bottom: 8px; } } @media (min-width: 46.25em) { /* 740px */ .teams .teams-hero-form, .teams .teams-hero-form .pardotForm, .teams .teams-hero-form .pardotForm-thankyou { width: 100%; float: none; } } @media (min-width: 56.25em) { /* 900px */ .teams .teams-hero-form .pardotForm, .teams .teams-hero-form .pardotForm-thankyou { width: 100%; } } @media (min-width: 71em) { .teams .teams-hero-form h2 { font-size: 40px; font-size: 2.5rem; line-height: 1.2em; } } /* END .teams-hero-form */ /* .teams-upskill */ .teamsSection.teams-upskill { } .teamsSection.teams-upskill .content { position: relative; max-width: 1000px; padding: 72px 20px 40px; } .teamsSection.teams-upskill .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #fff transparent transparent transparent; } .teamsSection.teams-upskill h2, .teamsSection.teams-upskill p { color: #222; } .teamsSection.teams-upskill .sectionFigure { display: block; margin: 0 auto 40px; width: 80%; text-decoration: none; } .teamsSection.teams-upskill .sectionFigure img { display: block; max-width: 100%; overflow: hidden; border-radius: 8px; box-shadow: 0 0 20px rgba(0,0,0,.2); } .teamsSection.teams-upskill .textCTA-blue { margin: 0 auto 0; } @media (min-width: 50em) { .teamsSection.teams-upskill .content { padding: 80px 20px; display: flex; justify-content: space-between; align-items: center; flex-direction: row; } .teamsSection.teams-upskill .sectionText { margin: 0; width: calc(50% - 40px); text-align: left; } .teamsSection.teams-upskill .sectionText *:last-child { margin-bottom: 0; } .teamsSection.teams-upskill .sectionText h2, .teamsSection.teams-upskill .sectionText p { text-align: left; } .teamsSection.teams-upskill .sectionFigure { margin: 0; width: calc(50% - 40px); } .teamsSection.teams-upskill .textCTA-blue { margin: 0; } } /* end .teams-upskill */ /* .teamsSection-industry */ .teamsSection.teamsSection-industry .content { position: relative; max-width: 1000px; padding: 72px 20px 40px; } .teamsSection.teamsSection-industry .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #fff transparent transparent transparent; } .teamsSection.teamsSection-industry .sectionText { margin-bottom: 28px; } .teamsSection.teamsSection-industry .sectionFigure { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: center; } .teamsSection.teamsSection-industry .sectionFigure img { display: block; margin: 0 30px 40px; width: calc(50% - (120px / 2)); max-width: 100%; max-height: 200px; object-fit: contain; } @media (min-width: 50em) { .teamsSection.teamsSection-industry .nowrap-desktop { white-space: nowrap; } .teamsSection.teamsSection-industry .sectionFigure img { margin: 0 30px 40px; width: calc(25% - (180px / 3)); } } /* END .teamsSection-industry */ /* .teamsSection-org */ .teamsSection.teamsSection-org { background: linear-gradient(265.91deg, #0071EB 6.68%, #474AC9 76.77%, #8E22A7 146.86%); } .teamsSection.teamsSection-org .content { position: relative; max-width: 1000px; padding: 72px 20px 80px; } .teamsSection.teamsSection-org .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #3057d5 transparent transparent transparent; } .teamsSection.teamsSection-org .sectionText { margin-bottom: 28px; } .teamsSection.teamsSection-org h2 { margin: 0; color: #fff; } .teamsSection.teamsSection-org .sectionFigure { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; background-color: #fff; border-radius: 20px; box-shadow: inset 0 5px 10px rgba(0, 0, 0, 0.2); } .teamsSection.teamsSection-org .sectionFigure img { display: block; margin: 30px; } .teamsSection.teamsSection-org .sectionFigure img.height_xs { height: 15px; } .teamsSection.teamsSection-org .sectionFigure img.height_s { height: 20px; } .teamsSection.teamsSection-org .sectionFigure img.height_m { height: 40px; } .teamsSection.teamsSection-org .sectionFigure img.height_l { height: 50px; } @media (min-width: 65em) { .teamsSection.teamsSection-org .sectionFigure img.height_xs { height: 20px; } .teamsSection.teamsSection-org .sectionFigure img.height_s { height: 30px; } .teamsSection.teamsSection-org .sectionFigure img.height_m { height: 50px; } .teamsSection.teamsSection-org .sectionFigure img.height_l { height: 60px; } } /* END .teamsSection-org */ /* .teamsSection-video */ .teamsSection.teamsSection-video { background: linear-gradient(258.17deg, #8E22a7 41.34%, #0071eb 100%); } .teamsSection.teamsSection-video .content { position: relative; max-width: 1000px; padding: 72px 20px 80px; } .teamsSection.teamsSection-video .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #653abc transparent transparent transparent; } .teamsSection.teamsSection-video .sectionText { margin-bottom: 30px; } .teamsSection.teamsSection-video h2 { margin-bottom: 8px; color: #fff; } .teamsSection.teamsSection-video p { color: #fff; } .teamsSection.teamsSection-video .sectionFigure { position: relative; margin: 40px auto 20px; width: 100%; padding-bottom: 56.25%; } .teamsSection.teamsSection-video .sectionFigure .kWidgetIframeContainer { position: absolute; width: 100%; height: 100%; border-radius: 20px; overflow: hidden; box-shadow: 0 0 20px rgba(0,0,0,.2); } .teamsSection.teamsSection-video .sectionFigure:before { content: ""; position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; left: 0; margin: -1px; border-radius: inherit; background: transparent linear-gradient(135deg, #d30000 0%, #d30000 30%, #FF9C1A 100%); } .teamsSection.teamsSection-video .textCTA-light { margin: 20px auto 0; } /* .teamsSection-video */ /* .teams-topics */ .teamsSection.teams-topics .content { position: relative; max-width: 1000px; padding: 72px 20px 60px; } .teamsSection.teams-topics .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #fff transparent transparent transparent; } .teamsSection.teams-topics .sectionText { margin-bottom: 30px; } .teamsSection.teams-topics h2 { margin-bottom: 8px; } .teamsSection.teams-topics p { margin-bottom: 20px; } .teamsSection.teams-topics .textCTA-blue { display: inline-block; } .teamsSection.teams-topics ul.teams-topics-list { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; } .teamsSection.teams-topics ul.teams-topics-list > li { display: block; margin-bottom: 20px; padding: 16px 20px 8px; border: 1px solid #8e22a7; border-radius: 8px; background: #fff; width: calc(50% - 10px); text-align: center; } .teamsSection.teams-topics ul.teams-topics-list > li a { display: block; margin: 0 0 8px; font-family: 'guardian-text-oreilly', Helvetica, sans-serif; font-size: 1rem; line-height: 1.5em; font-weight: 600; text-decoration: none; } .teamsSection.teams-topics ul.teams-topics-list > li a:hover { text-decoration: underline; } .teamsSection.teams-topics ul.teams-topics-list > li li a { font-weight: 400; } @media (min-width: 40em) { .teamsSection.teams-topics ul.teams-topics-list > li a { } } @media (min-width: 50em) { /* 800px */ .teamsSection.teams-topics ul.teams-topics-list > li { width: calc(25% - 10px); } .teamsSection.teams-topics ul.teams-topics-list > li a { font-size: 1.25rem; line-height: 1.5em; } } /* END .teams-topics */ /* .teams-awards */ .teamsSection.teams-awards { background-color: rgb(0,0,0,1); background-image: linear-gradient(-70deg, rgba(226,190,110,.1), rgba(226,190,110,0)), linear-gradient(130deg, rgba(255,255,255,0) 45%, rgba(255,255,255,.1) 100%), linear-gradient(170deg, rgba(255,255,255,0) 70%, rgba(255,255,255,.2) 100%); background-size: cover; } .teamsSection.teams-awards .content { position: relative; max-width: 1000px; padding: 72px 20px; } .teamsSection.teams-awards .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #46443e transparent transparent transparent; } .teamsSection.teams-awards h2 { margin-bottom: 8px; color: #fff; } .teamsSection.teams-awards p { margin-bottom: 20px; color: #fff; } .teamsSection.teams-awards .sectionFigure { display: block; margin: 0 auto 40px; width: 80%; text-decoration: none; } .teamsSection.teams-awards .sectionFigure:after { content: ""; display: block; width: 100%; height: 0; padding-bottom: 76.6%; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_awards_2024_443x442.png) center center no-repeat; background-size: contain; } .teamsSection.teams-awards .sectionFigure video { display: none; } .teamsSection.teams-awards .teams-awards-logos { display: none; } .teamsSection.teams-awards .textCTA-light { margin: 0 auto 0; } @media (min-width: 50em) { .teamsSection.teams-awards .content { padding: 80px 20px; display: flex; justify-content: space-between; align-items: center; flex-direction: row-reverse; } .teamsSection.teams-awards .content:after { border-color: #282828 transparent transparent transparent; } .teamsSection.teams-awards .sectionText { margin: 0; width: calc(50% - 40px); text-align: left; } .teamsSection.teams-awards h2 { text-align: left; } .teamsSection.teams-awards p { text-align: left; } .teamsSection.teams-awards .sectionFigure { margin: -30px 0; padding: 0; width: calc(50% - 40px); } .teamsSection.teams-awards .textCTA-light { margin: 0; } } /* end .teams-awards */ /* .teamsSection-rfp */ .teamsSection.teamsSection-rfp .content { position: relative; max-width: 1000px; padding: 72px 20px 80px; } .teamsSection.teamsSection-rfp .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #fff transparent transparent transparent; } .teamsSection.teamsSection-rfp h2 { margin-bottom: 8px; } .teamsSection.teamsSection-rfp p { margin-bottom: 20px; } .teamsSection.teamsSection-rfp .sectionFigure { position: relative; margin: 40px auto 20px; border-radius: 8px; border: 1px solid transparent; width: 100%; max-width: 600px; box-shadow: 0 0 20px rgba(0,0,0,.2); } .teamsSection.teamsSection-rfp .sectionFigure img { display: block; width: 100%; max-width: 700px; border-radius: 7px; } .teamsSection.teamsSection-rfp .sectionFigure:before { content: ""; position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; left: 0; margin: -1px; border-radius: inherit; background: transparent linear-gradient(135deg, #d30000 0%, #d30000 30%, #FF9C1A 100%); } .teamsSection.teamsSection-rfp .sectionText { margin: 0 0 40px; } .teamsSection.teamsSection-rfp .textCTA-blue { margin: 0 auto; } @media (min-width: 50em) { /* 800px */ .teamsSection.teamsSection-rfp .content { padding: 80px 20px; display: flex; flex-direction: row-reverse; justify-content: space-between; align-items: center; } .teamsSection.teamsSection-rfp .sectionText { margin: 0; width: calc(50% - 30px); text-align: left; } .teamsSection.teamsSection-rfp h2 { text-align: left; } .teamsSection.teamsSection-rfp p { margin-bottom: 30px; text-align: left; } .teamsSection.teamsSection-rfp .sectionText *:last-child { margin-bottom: 0; } .teamsSection.teamsSection-rfp .sectionFigure { margin: 0; width: calc(50% - 30px); } .teamsSection.teamsSection-rfp .textCTA-blue { margin: 0; } } /* END .teamsSection-rfp */ /* .teamsSection-govEd */ .teamsSection.teamsSection-govEd { position: relative; background: linear-gradient(360deg, #14D4D8 -152.84%, #00C5E3 -102.27%, #00B4EF -51.7%, #00A1F6 -1.13%, #008BF6 49.43%, #0071eb 100%); } .teamsSection.teamsSection-govEd .content { max-width: 1000px; padding: 72px 20px 72px; } .teamsSection.teamsSection-govEd .content:after { content: ""; display: block; position: absolute; z-index: 1; top: 100%; left: calc(50% - 20px); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #01a0f7 transparent transparent transparent; } .teamsSection.teamsSection-govEd h2 { margin-bottom: 8px; color: #fff; } .teamsSection.teamsSection-govEd p { margin-bottom: 20px; color: #fff; } .teamsSection.teamsSection-govEd .sectionText { margin: 0 0 40px; } .teamsSection.teamsSection-govEd .sectionText:last-child { margin: 0; } .teamsSection.teamsSection-govEd .textCTA-light { margin: 0 auto; } @media (min-width: 50em) { .teamsSection.teamsSection-govEd .content { padding: 60px 20px; display: flex; justify-content: space-between; align-items: top; } .teamsSection.teamsSection-govEd h2 { text-align: left; } .teamsSection.teamsSection-govEd p { margin-bottom: 30px; text-align: left; } .teamsSection.teamsSection-govEd .sectionText { margin: 0; width: calc(50% - 30px); text-align: left; } .teamsSection.teamsSection-govEd .textCTA-light { margin: 0; } } /* END .teamsSection-govEd */ /* .teams-cta */ .teamsSection.teams-cta .content { max-width: 1000px; } .teamsSection.teams-cta h2 { margin: 0 auto 28px; } /* END .teams-cta */ /* .bentoSection */ .bentoSection { position: relative; z-index: 2; } .bentoSection .content { padding: 20px 20px; } .bentoSection-grid { display: grid; grid-template-columns: 100%; grid-auto-rows: minmax(100px, auto); gap: 20px; } .bentoSection-item { border: 1px solid rgba(0,0,0,0.22); border-radius: 24px; padding: 40px; background: rgba(255,255,255,0.8); } .bentoSection-item.item-1 { grid-column: 1; } .bentoSection-item.item-2 { grid-column: 1; } .bentoSection-item.item-3 { grid-column: 1; } .bento-events { display: flex; flex-direction: column; gap: 16px; margin-top: 32px; } .bento-events a { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 24px 32px; border: 1px solid #BCBEC3; border-radius: 16px; text-decoration: none; transition: box-shadow 200ms; } .bento-events a:hover, .bento-events a:focus { box-shadow: 0 2px 8px rgba(0,0,0,.1); } .bento-events .bento-events-day { margin: 0 0 4px; font-size: 1.125rem; line-height: 1.5em; font-weight: 700; } .bento-events .bento-events-time { margin: 0 0 8px; font-size: .875rem; line-height: 1.5em; color: #525358; } .bento-events .bento-events-cta { position: relative; width: max-content; padding: 0 24px 0 0; margin: 0; font-size: 1rem; line-height: 1.5em; color: #d30000; font-weight: 500; } .bento-events .bento-events-cta:after { content: ""; position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: block; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_full_right_arrow_red.svg) center center no-repeat; background-size: contain; } .bentoSection h2 { margin: 0; font-family: "gilroy", Arial, sans-serif; font-size: 2.5rem; line-height: 1.2em; text-align: center; } .bentoSection h3 { text-align: center; } .bentoSection p { font-size: 1rem; line-height: 1.5em; text-align: center; } .bentoSection .pardotForm-test-group-heading p { margin: 0; font-size: 0.875rem; line-height: 1.5em; } .bentoSection .pardotForm-test p.pardotForm-test-privacy { font-size: .75rem; line-height: 1.5em; } .bentoSection .redButton { position: relative; display: block; margin: 32px auto 0; padding: 12px 44px 12px 20px; width: max-content; border: 0; border-radius: 8px; background-color: #d30000; font-size: 1rem; line-height: 1.25em; color: #fff; font-family: 'guardian-text-oreilly', Arial, sans-serif; font-weight: 600; letter-spacing: 0; text-decoration: none; white-space: nowrap; cursor: pointer; box-shadow: none; transition: background-color 200ms; } .bentoSection .redButton:hover, .bentoSection .redButton:focus { opacity: 1; text-decoration: none; background-color: #BC123C; color: #fff; box-shadow: none; } .bentoSection .redButton:after { content: ""; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); display: block; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_full_right_arrow_white.svg) center center no-repeat; background-size: contain; } @media (min-width: 50em) { /* 800px */ .bentoSection .content { padding: 0 20px 32px; } .bentoSection-grid { grid-template-columns: 56% auto; grid-auto-rows: auto 1fr; gap: 32px; } .bentoSection-item.item-1 { grid-column: 1; grid-row: 1 / 3; } .bentoSection-item.item-2 { grid-column: 2; } .bentoSection-item.item-3 { grid-column: 2; } .bento-events a { align-items: unset; text-align: left; } .bentoSection h2 { text-align: left; } .bentoSection h3 { text-align: left; } .bentoSection p { text-align: left; } .bentoSection .redButton { margin: 32px 0 0; } } /* end .bentoSection */ } </style> <style> body.raven { .controlVersion { display: none !important; } .teams { opacity: 1 !important; transition: opacity 400ms 1s; } footer.footer { background: rgb(255, 255, 255); } /* .teams general */ .teams { display: block; background-color: rgb(18, 25, 38); } .teams .content { width: 100%; max-width: 1288px; } .teams .sectionText { margin: 0 auto; max-width: 1050px; text-align: center; } .teams h2 { margin-bottom: 16px; font-size: 2rem; line-height: 1.2em; font-family: 'gilroy', Arial, sans-serif; color: rgb(255, 255, 255); } .teams p { margin-bottom: 20px; font-size: 1rem; line-height: 1.5em; font-weight: 400; color: rgb(255, 255, 255); } .teams .textCTA, .teams .textCTA-light, .teams .textCTA-dark, .teams .textCTA-blue { position: relative; display: flex; flex-direction: row; align-items: center; gap: 4px; width: max-content; padding: 12px 12px 12px 20px; border-radius: 8px; font-size: 1rem; line-height: 1.5em; font-weight: 600; color: rgb(255, 255, 255); background-color: rgb(0,113,235); text-decoration: none; transition: background-color 400ms; } .teams .textCTA:hover, .teams .textCTA:focus, .teams .textCTA-light:hover, .teams .textCTA-light:focus, .teams .textCTA-dark:hover, .teams .textCTA-dark:focus, .teams .textCTA-blue:hover, .teams .textCTA-blue:focus { text-decoration: none; background-color: rgb(0, 87, 187); } .teams .textCTA:after, .teams .textCTA-light:after, .teams .textCTA-dark:after, .teams .textCTA-blue:after { content: ""; display: block; padding-right: 4px; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_link_chevron_white.svg) left center no-repeat; background-size: contain; opacity: 1; transition: background-position-x 400ms; } .teams .textCTA:hover:after, .teams .textCTA:focus:after, .teams .textCTA-light:hover:after, .teams .textCTA-light:focus:after, .teams .textCTA-dark:hover:after, .teams .textCTA-dark:focus:after, .teams .textCTA-blue:hover:after, .teams .textCTA-blue:focus:after { background-position-x: 4px; } .teams .btnCTA, .teams .btnCTA-blue { display: flex; flex-direction: row; align-items: center; gap: 4px; width: max-content; padding: 12px 12px 12px 20px; border-radius: 8px; background-color: rgb(0,113,235); font-size: 1rem; line-height: 1.5em; font-weight: 600; color: rgb(255, 255, 255); text-decoration: none; transition: background-color 400ms; } .teams .btnCTA:hover, .teams .btnCTA:focus, .teams .btnCTA-blue:hover, .teams .btnCTA-blue:focus { text-decoration: none; background-color: rgb(0, 87, 187); } .teams .btnCTA:after, .teams .btnCTA-blue:after { content: ""; display: block; padding-right: 4px; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_link_chevron_white.svg) left center no-repeat; background-size: contain; opacity: 1; transition: background-position-x 400ms; } .teams .btnCTA:hover:after, .teams .btnCTA:focus:after, .teams .btnCTA-blue:hover:after, .teams .btnCTA-blue:focus:after { background-position-x: 4px; } .teams .sectionIcon { display: block; margin: 0 auto 24px; width: 48px; height: 48px; padding: 11px; border-radius: 50%; background: rgb(255, 255, 255); border: 1px solid rgb(147, 196, 252); opacity: 1; animation: iconScroll forwards linear; animation-timeline: view(); animation-range: entry 0% cover 15%; } .teams .sectionIcon svg { display: block; } .teams .sectionLabel { display: block; margin: 0 auto 24px; width: max-content; padding: 4px 12px; border-radius: 100px; background: rgb(255, 255, 255); opacity: 1; animation: iconScroll forwards linear; animation-timeline: view(); animation-range: entry 0% cover 15%; } .teams .sectionLabel p { margin: 0; font-size: .875rem; line-height: 1.25em; font-weight: 600; color: rgb(37, 99, 234); } .teams .sectionBreak:before { display: none; } @media (min-width: 65em) { /* 1040px */ .teams h2 { font-size: 2.5rem; line-height: 1.2em; } .teams p { font-size: 1.25rem; line-height: 1.5em; } } /* END .teams general */ /* .teams-hero */ .teams-hero { position: relative; z-index: 1; overflow: hidden; background: rgb(18, 25, 38) url(https://cdn.oreillystatic.com/oreilly/images/hero-events-bg-20240611.svg) center -300px no-repeat; background-size: auto 600px; } .teams-hero .content { position: relative; padding: 40px 20px 40px; text-align: center; } .teams-hero .teams-hero-odotAnimal { display: none; } .teams-hero h1 { margin: 0 auto 24px; max-width: 818px; font-size: 2.25rem; line-height: 1.2em; font-family: 'gilroy', Arial, sans-serif; color: rgb(255,255,255); } .teams-hero p { margin: 0 auto; max-width: 818px; font-family: 'guardian-text-oreilly', Arial, sans-serif; color: rgb(255,255,255); } .teams-hero-cta { display: flex; flex-direction: row; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: center; } .teams .teams-hero-cta .textCTA { color: rgb(43, 45, 48); background-color: rgba(255, 255, 255, 1); } .teams .teams-hero-cta .textCTA:hover { color: rgb(43, 45, 48); background-color: rgba(255, 255, 255, .9); } .teams .teams-hero-cta .textCTA:after, .teams .teams-hero-cta .textCTA-light:after { background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_link_chevron_black.svg) left center no-repeat; background-size: contain; } .teams .teams-hero-cta .textCTA:hover:after, .teams .teams-hero-cta .textCTA:focus:after { background-position-x: 4px; } .teams .teams-hero-cta .btnCTA, .teams .teams-hero-cta .textCTA { margin: 0 0 20px; } @media (min-width: 40em) { /* 640px */ .teams-hero .content { position: relative; padding: 40px 52px 40px; text-align: center; } .teams-hero h1 { font-size: 3rem; line-height: 1.2em; } .teams .teams-hero-cta .btnCTA, .teams .teams-hero-cta .textCTA { margin: 0; } } @media (min-width: 50em) { /* 800px */ .teams-hero { background: rgb(18, 25, 38); background-size: auto auto; } .teams-hero .content { padding: 96px 52px; text-align: center; } .teams-hero .sectionText { margin: 0; width: 56%; * { position: relative; z-index: 1; text-align: left; } } .teams-hero h1 { max-width: 1072px; font-size: 3rem; line-height: 1.2em; } .teams-hero p { font-size: 1.25rem; line-height: 1.5em; letter-spacing: -.4px; } .teams-hero .teams-hero-odotAnimal { display: block; position: absolute; z-index: 0; right: -20px; top: 0; height: 100%; transform: translateX(0%); width: calc(((100% - 104px) * .44) - 32px + 74px); } .teams-hero .teams-hero-odotAnimal figure { position: absolute; top: 0; left: 50%; width: 387%; height: 100%; transform: translateX(-50%); background: transparent url(https://cdn.oreillystatic.com/oreilly/images/teams_raven_hero_background2.jpg) center top no-repeat; background-size: contain; } } @media (min-width: 58em) { /* 928px */ .teams-hero h1 { font-size: 3rem; line-height: 1.2em; } } @media (min-width: 65em) { /* 1040px */ .teams-hero h1 { font-size: 3rem; line-height: 1.2em; } } @media (min-width: 77.375em) { /* 1238px */ .teams-hero .teams-hero-odotAnimal { right: 52px; width: calc(((100% - 104px) * .44) - 32px); } } /* END .teams-hero */ /* .bentoSection */ .bentoSection { position: relative; z-index: 2; } .bentoSection .content { padding: 0 52px 40px; } .bentoSection-grid { display: grid; grid-template-columns: 100%; grid-auto-rows: minmax(100px, auto); gap: 20px; } .bentoSection-item { border: none; border-radius: 16px; padding: 32px 40px; background: #fff; h2 { margin: 0 0 12px; font-family: "gilroy", Arial, sans-serif; font-size: 2.5rem; line-height: 1.2em; text-align: center; color: #070D12; } h3 { text-align: center; color: #070D12; } p { font-size: 1rem; line-height: 1.5em; text-align: center; color: #4A5763; } .pardotForm-test-group-heading p, .pardotForm-test input[type="text"], .pardotForm-test input[type="email"], .pardotForm-test input[type="date"], .pardotForm-test textarea, .pardotForm-test select { color: #4A5763; } } .bentoSection-item.item-1 { grid-column: 1; } .bentoSection-item.item-2 { grid-column: 1; } .bentoSection-item.item-3 { grid-column: 1; } .bento-events { display: flex; flex-direction: column; gap: 16px; margin-top: 32px; } .bento-events a { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 24px 32px; border: 1px solid #C5CCD3; border-radius: 16px; text-decoration: none; transition: box-shadow 200ms; } .bento-events a:hover, .bento-events a:focus { box-shadow: 0 2px 8px rgba(0,0,0,.1); } .bento-events .bento-events-day { margin: 0 0 4px; font-size: 1.125rem; line-height: 1.5em; font-weight: 700; } .bento-events .bento-events-time { margin: 0 0 8px; font-size: .875rem; line-height: 1.5em; color: #525358; } .bento-events .bento-events-cta { display: flex; flex-direction: row; align-items: center; gap: 4px; margin: 0; padding:0; width: max-content; font-size: 1rem; line-height: 1.5em; font-weight: 500; color: rgb(0,113,235); text-decoration: none; transition: background-color 400ms; } .bento-events .bento-events-cta:after { content: ""; position: static; transform: none; display: block; padding-right: 4px; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_link_chevron_blue.svg) left center no-repeat; background-size: contain; opacity: 1; transition: background-position-x 400ms; } .bento-events a:hover .bento-events-cta:after, .bento-events a:focus .bento-events-cta:after { background-position-x: 4px; } .bentoSection .redButton, .bentoSection .pardotForm-test-cta { display: flex; flex-direction: row; align-items: center; gap: 4px; width: max-content; padding: 12px 12px 12px 20px; border-radius: 8px; background-color: rgb(0,113,235); font-size: 1rem; line-height: 1.5em; font-weight: 600; color: rgb(255, 255, 255); text-decoration: none; transition: background-color 400ms; } .bentoSection .redButton:hover, .bentoSection .redButton:focus, .bentoSection .pardotForm-test-cta:hover, .bentoSection .pardotForm-test-cta:focus { text-decoration: none; background-color: rgb(0, 87, 187); } .bentoSection .redButton:after, .bentoSection .pardotForm-test-cta:after { content: ""; position: static; transform: none; display: block; padding-right: 4px; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_link_chevron_white.svg) left center no-repeat; background-size: contain; opacity: 1; transition: background-position-x 400ms; } .bentoSection .redButton:hover:after, .bentoSection .redButton:focus:after, .bentoSection .pardotForm-test-cta:hover:after, .bentoSection .pardotForm-test-cta:focus:after { background-position-x: 4px; } @media (min-width: 50em) { /* 800px */ .bentoSection .content { padding: 0 52px 92px; } .bentoSection-grid { grid-template-columns: 56% auto; grid-auto-rows: auto 1fr; gap: 32px; } .bentoSection-item.item-1 { grid-column: 1; grid-row: 1 / 3; } .bentoSection-item.item-2 { grid-column: 2; } .bentoSection-item.item-3 { grid-column: 2; } .bento-events a { align-items: unset; text-align: left; } .bentoSection h2 { text-align: left; } .bentoSection h3 { text-align: left; } .bentoSection p { text-align: left; } .bentoSection .redButton { margin: 32px 0 0; } } /* end .bentoSection */ /* .teams-upskill */ .teams-upskill { position: relative; z-index: 1; } .teams-upskill .content { padding: 40px 20px 40px; } .teams-upskill .sectionText p { margin-bottom: 32px; } .teams-upskill .teams-upskill-figure { display: block; margin: 0 auto 40px; width: 100%; text-decoration: none; } .teams-upskill .teams-upskill-figure img { position: relative; margin: 20px auto 20px; width: 100%; border-radius: 8px; box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03); } .teams-upskill .textCTA-blue { margin: 0 auto; } @media (min-width: 40em) { /* 640px */ .teams-upskill .content { padding: 40px 52px 40px; } } @media (min-width: 50em) { /* 800px */ .teams-upskill .content { padding: 92px 52px; display: flex; flex-direction: row; align-items: center; gap: 112px; } .teams .teams-upskill .sectionIcon { margin: 0 0 24px; } .teams-upskill .sectionText { margin: 0; width: calc(50% - 56px); padding: 0; text-align: left; } .teams-upskill .sectionText a:last-child { margin-bottom: 0; } .teams-upskill .teams-upskill-figure { margin: 0; width: calc(50% - 56px); padding: 0; } .teams-upskill .teams-upskill-figure img { margin: 0 auto; } .teams-upskill .textCTA-blue { margin: 0; } } /* END .teams-upskill */ /* .teams-logos */ .teams-logos { position: relative; z-index: 1; } .teams-logos .content { padding: 40px 20px 40px; } .teams-logos .sectionFigure { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, auto); gap: 36px; align-items: center; margin: 0 auto; padding: 0; width: 100%; max-width: 360px; text-decoration: none; img { display: block; margin: 0; width: 100%; padding: 0; object-fit: contain; &.height_xs { padding: 0; } &.height_s { padding: 10px; } &.height_m { padding: 20px; } &.height_l { padding: 30px; } } } @media (min-width: 40em) { .teams-logos .content { padding: 40px 52px 40px; } } @media (min-width: 50em) { .teams-logos .content { padding: 92px 52px; display: flex; flex-direction: column; align-items: center; gap: 20px; } .teams-logos .sectionText { margin: 0; width: 100%; padding: 0; } .teams-logos .sectionFigure { grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, auto); margin: 0 auto; width: 100%; max-width: 100%; padding: 0; } } @media (min-width: 65em) { /* 1040px */ .teams-logos .sectionFigure { grid-template-columns: repeat(8, 1fr); grid-template-rows: repeat(1, auto); margin: 0 auto; width: 100%; padding: 0; } .teamsSection-industry.teams-logos .sectionFigure { grid-template-columns: repeat(7, 1fr); } } /* END .teams-logos */ .industry-testimonial-wrapper { display: flex; flex-direction: column-reverse; } /* .teams-video */ .teams-video { position: relative; z-index: 1; } .teams-video .content .textCTA-light { display: none; } .teams-video .content { padding: 40px 20px 40px; display: flex; flex-direction: column; gap: 64px; } .teams-video .sectionText { margin: 0 auto; max-width: 818px; } .teams-video p { margin-bottom: 0; } .teams-video .ravenLink { color: #fff; text-decoration-thickness: 1px; text-underline-offset: 6px; opacity: .85; transition: opacity 200ms, text-underline-offset 200ms; &:hover { text-underline-offset: 4px; opacity: 1; } } .teams-video .sectionFigure { position: relative; width: 100%; margin: 0 auto; height: 0; padding: 0 0 56.25%; border-radius: 8px; box-shadow: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03); overflow: hidden; & > div { position: absolute; } } @media (min-width: 40em) { /* 640px */ .teams-video .content { padding: 40px 52px 40px; } } @media (min-width: 50em) { /* 800px */ .teams-video .content { padding: 92px 52px; } } @media (min-width: 62em) { .teams-video .sectionFigure { width: 100%; padding: 0 0 56.25%; } } /* END .teams-video */ /* .teams-topics */ .teams-topics { position: relative; z-index: 1; } .teams-topics .content { padding: 40px 20px 40px; display: flex; flex-direction: column; gap: 64px; } .teams-topics .sectionText { margin: 0 auto; max-width: 818px; } .teams-topics p { margin-bottom: 0; } .teams-topics .ravenLink { color: #fff; text-decoration-thickness: 1px; text-underline-offset: 6px; opacity: .85; transition: opacity 200ms, text-underline-offset 200ms; &:hover { text-underline-offset: 4px; opacity: 1; } } .teams-topics .teams-topics-list { display: grid; grid-template-columns: repeat(1, 1fr); grid-template-rows: repeat(4, auto); gap: 36px; align-items: flex-start; margin: 0 auto; padding: 0; width: 100%; text-align: center; li { display: flex; flex-direction: column; gap: 12px; font-size: 1.25rem; line-height: 1.5em; ul { display: flex; flex-direction: column; gap: 12px; li { font-size: 1rem; line-height: 1.5em; } } } a { margin: 0 auto; display: block; width: max-content; color: #fff; text-decoration: none; text-decoration-thickness: 1px; text-underline-offset: 6px; opacity: .85; transition: opacity 200ms, text-underline-offset 200ms; &:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; opacity: 1; } } } @media (min-width: 40em) { .teams-topics .content { padding: 40px 52px 40px; } .teams-topics .teams-topics-list { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, auto); } } @media (min-width: 50em) { .teams-topics .content { padding: 92px 52px; } } @media (min-width: 65em) { .teams-topics .teams-topics-list { grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(1, auto); li { font-family: "gilroy", Arial, sans-serif; font-size: 1.5rem; line-height: 1.5em; ul { li { font-family: 'guardian-text-oreilly', Arial, sans-serif; font-size: 1rem; line-height: 1.5em; } } } } } /* END .teams-topics */ /* .teams-awards */ .teams-awards { position: relative; z-index: 1; } .teams-awards .content { padding: 40px 20px 40px; } .teams-awards p { margin-bottom: 32px; } .teams-awards .sectionFigure { display: block; margin: 0 auto 40px; width: 100%; text-decoration: none; } .teams-awards .sectionFigure:after { content: ""; display: block; width: 100%; height: 0; padding-bottom: 76.6%; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_awards_2024_443x442.png) center center no-repeat; background-size: contain; } .teams-awards .sectionFigure video { display: none; } .teams-awards-logos { display: none; } .teams-awards .textCTA-light { margin: 0 auto; } @media (min-width: 40em) { /* 640px */ .teams-awards .content { padding: 40px 52px 40px; } } @media (min-width: 50em) { /* 640px */ .teams-awards .content { padding: 92px 52px; display: flex; flex-direction: row-reverse; align-items: center; gap: 112px; } .teams .teams-awards .sectionIcon { margin: 0 0 24px; } .teams-awards .sectionText { margin: 0; width: calc(50% - 56px); padding: 0; text-align: left; } .teams-awards .sectionFigure { margin: -30px 0; width: calc(50% - 56px); padding: 0; } .teams-awards .textCTA-light { margin: 0; } } /* END .teams-awards */ /* .teams-other */ .teams-other { position: relative; z-index: 1; } .teams-other .content { padding: 40px 20px 80px; display: flex; flex-direction: column; gap: 40px; } .teams-other .sectionText { margin: 0 auto; max-width: 818px; h2 { margin: 0; } } .teams-other p { margin-bottom: 0; } .teams-other .teams-other-options { display: flex; flex-direction: row; flex-wrap: wrap; gap: 36px; align-items: stretch; justify-content: center; margin: 0 auto; padding: 0; width: 100%; text-align: center; .item { display: flex; flex-direction: column; gap: 16px; align-items: center; width: 100%; h2 { margin: 0; font-size: 2rem; line-height: 1.5em; } .btnCTA-blue { margin-top: auto; } } } @media (min-width: 40em) { /* 640px */ .teams-other .content { padding: 40px 52px 80px; } } @media (min-width: 50em) { /* 800px */ .teams-other .content { padding: 92px 52px 184px; gap: 64px; } } @media (min-width: 65em) { .teams-other .teams-other-options { .item { gap: 24px; width: calc(100% / 3 - 72px / 3); } } } /* END .teams-other */ /* .teams-cta */ .teams-cta { position: relative; z-index: 1; background: linear-gradient(242deg, rgb(142, 34, 167) 0.01%, rgb(37, 99, 234) 97.15%); } .teams-cta .content { padding: 40px 20px 40px; text-align: center; } .teams-cta .sectionText { display: flex; flex-direction: column; gap: 24px; padding: 0; } .teams-cta h2 { margin: 0 auto; max-width: 818px; } .teams-cta .teams-cta-btnGroup { display: flex; flex-direction: row; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: center; } .teams .teams-cta .textCTA-blue { color: rgb(43, 45, 48); background-color: rgba(255, 255, 255, 1); } .teams .teams-cta .textCTA-blue:hover { color: rgb(43, 45, 48); background-color: rgba(255, 255, 255, .9); } .teams .teams-cta .textCTA-blue:after { background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_link_chevron_black.svg) left center no-repeat; background-size: contain; } .teams .teams-cta .textCTA-blue:hover:after, .teams .teams-cta .textCTA-blue:focus:after { background-position-x: 4px; } .teams .teams-cta .btnCTA, .teams .teams-cta .textCTA { margin: 0 0 20px; } @media (min-width: 40em) { /* 640px */ .teams-cta .content { padding: 40px 52px 40px; } } @media (min-width: 80em) { .teams-cta .content { padding: 50px 52px; text-align: center; } .teams-cta .sectionText { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; max-width: 100%; } .teams-cta h2 { margin: 0; width: auto; font-size: 1.875rem; line-height: 1.2em; text-align: left; } .teams-cta .teams-cta-btnGroup { display: flex; flex-direction: row; gap: 12px; align-items: flex-end; width: max-content; } } /* END .teams-cta */ .teams { contain: paint; } .teams .ravenBlobs { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 1280px; height: 100%; z-index: 0; div { opacity: 1; } .blob1 { position: absolute; left: calc(-1200px / 1.75); top: 1060px; width: 1200px; height: 1200px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_blob_purple.svg) 0 0 no-repeat; background-size: contain; @media (min-width:50em) { & { left: calc(-2000px / 1.75); top: 1060px; width: 1920px; height: 1920px; } } @media (min-width:80em) { & { left: calc(-2000px / 1.75); top: 760px; width: 1920px; height: 1920px; } } } .blob2 { position: absolute; right: calc(-1200px / 1.75); top: 2600px; width: 1200px; height: 1200px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_blob_blue.svg) 0 0 no-repeat; background-size: contain; @media (min-width:50em) { & { right: calc(-2000px / 1.75); top: 2600px; width: 1920px; height: 1920px; } } @media (min-width:80em) { & { right: calc(-2000px / 1.75); top: 2200px; width: 1920px; height: 1920px; } } } .blob3 { position: absolute; left: calc(-1200px / 1.75); top: 3400px; width: 1200px; height: 1200px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_blob_purple.svg) 0 0 no-repeat; background-size: contain; @media (min-width:50em) { & { left: calc(-2000px / 1.75); top: 3400px; width: 1920px; height: 1920px; } } @media (min-width:80em) { & { left: calc(-2000px / 1.75); top: 2800px; width: 1920px; height: 1920px; } } } .blob4 { position: absolute; right: calc(-1200px / 1.75); top: 5000px; width: 1200px; height: 1200px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_blob_blue.svg) 0 0 no-repeat; background-size: contain; @media (min-width:50em) { & { right: calc(-2000px / 1.75); top: 5000px; width: 1920px; height: 1920px; } } @media (min-width:80em) { & { right: calc(-2000px / 1.75); top: 4400px; width: 1920px; height: 1920px; } } } .blob5 { position: absolute; left: calc(-1200px / 1.75); top: 6600px; width: 1200px; height: 1200px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_blob_purple.svg) 0 0 no-repeat; background-size: contain; @media (min-width:50em) { & { left: calc(-2000px / 1.75); top: 6600px; width: 1920px; height: 1920px; } } @media (min-width:80em) { & { left: calc(-2000px / 1.75); top: 6000px; width: 1920px; height: 1920px; } } } .blob6 { position: absolute; right: calc(-1200px / 1.75); top: 8200px; width: 1200px; height: 1200px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/raven_blob_blue.svg) 0 0 no-repeat; background-size: contain; @media (min-width:50em) { & { right: calc(-2000px / 1.75); top: 8200px; width: 1920px; height: 1920px; } } @media (min-width:80em) { & { right: calc(-2000px / 1.75); top: 7600px; width: 1920px; height: 1920px; } } } } } /* Define the icon scroll animation */ @keyframes iconScroll { 0% { transform: scale(75%) translateY(20px); opacity: 0; } 25% { transform: scale(75%) translateY(20px); opacity: 0; } 100% { transform: scale(100%) translateY(0); opacity: 1; } } </style> <!-- Exit intent overlay --> <div id="demoSessionsContainer"> <div class="exitIntentOverlay" id="exitIntentOverlay"> <div class="exitIntentOverlay-contents"> <div class="exitIntentOverlay-text"> <h2>See what the O&rsquo;Reilly learning platform <span class="nowrap">can do</span></h2> <p>Don&rsquo;t miss this opportunity to find out how our learning platform can help your teams stay ahead of <span class="nowrap">the competition.</span></p> <h3>Attend a live demo</h3> </div> <div class="exitIntentOverlay-events" id="exitIntentOverlay-events"> </div> <button class="exitIntentOverlay-close"><span class="hide-text">Close</span></button> </div> </div> </div> <style> .exitIntentOverlay { position: fixed; top: 0; left: 0; bottom: 0; right: 0; z-index: 501; transform: scale(0); opacity: 1; overflow-y: auto; background: rgba(0, 0, 0, 0); transition: background-color .5s cubic-bezier(0.4, 0.0, 0.2, 1); } .exitIntentOverlay.visible { transform: scale(1); opacity: 1; background: rgba(0, 0, 0, 0.4); } .exitIntentOverlay:after { content: ""; position: absolute; z-index: -1; top: 0; left: 0; width: 100%; height: 100%; backdrop-filter: blur(2px); } .exitIntentOverlay .exitIntentOverlay-contents { position: absolute; top: 20px; left: 20px; padding: 30px 20px 20px; width: calc(100% - 40px); max-width: 640px; border-radius: 20px; background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(10px); } .exitIntentOverlay .exitIntentOverlay-text { text-align: center; } .exitIntentOverlay .exitIntentOverlay-text h2 { margin: 0; font-family: "gilroy",Arial,sans-serif; font-weight: 600; font-size: 1.75rem; line-height: 1.15em; color: #222; } .exitIntentOverlay .exitIntentOverlay-text h3 { margin: 0; font-family: "gilroy",Arial,sans-serif; font-weight: 600; font-size: 1rem; line-height: 1.5em; color: #222; } .exitIntentOverlay .exitIntentOverlay-text p { margin-bottom: 12px; font-family: "gilroy",Arial,sans-serif; font-weight: 300; font-size: 1rem; line-height: 1.5em; color: #222; } .exitIntentOverlay .exitIntentOverlay-events { display: grid; grid-template-columns: repeat(2, 1fr); /* Two columns */ grid-template-rows: repeat(2, 1fr); /* Two rows */ gap: 10px; padding: 8px; } .exitIntentOverlay .exitIntentOverlay-events > a { display: flex; flex-direction: column; text-align: center; padding: 8px; border: 1px solid #0071EB; border-radius: 8px; font-family: "gilroy",Arial,sans-serif; font-size: 1rem; line-height: 1.4em; color: #222; text-decoration: none; transition: box-shadow .25s; } .exitIntentOverlay .exitIntentOverlay-events > a:focus, .exitIntentOverlay .exitIntentOverlay-events > a:hover { text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,.2); } .exitIntentOverlay .exitIntentOverlay-events-day { display: block; font-weight: 600; } .exitIntentOverlay .exitIntentOverlay-events-time { display: block; font-weight: 300; font-size: 1rem; line-height: 1.5em; } .exitIntentOverlay .exitIntentOverlay-close { display: block; position: absolute; right: 0px; top: 0px; height: 40px; width: 40px; padding: 15px; border: none; cursor: pointer; overflow: hidden; opacity: .8; background: transparent; transition: opacity .25s; } .exitIntentOverlay .exitIntentOverlay-close:focus, .exitIntentOverlay .exitIntentOverlay-close:hover { opacity: 1; } .exitIntentOverlay .exitIntentOverlay-close:before { content: ""; display: block; height: 10px; width: 10px; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/icon_close_16x16.svg) 0 0 no-repeat; background-size: contain; } .exitIntentOverlay .exitIntentOverlay-close .hide-text { display: block; height: 0; width: 0; text-indent: -9999px; overflow: hidden; white-space: nowrap; } @media (min-width: 40em) { .exitIntentOverlay .exitIntentOverlay-contents { top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 60px 40px 40px; } .exitIntentOverlay .exitIntentOverlay-text h2 { font-size: 2rem; line-height: 1.125em; } .exitIntentOverlay .exitIntentOverlay-text h3 { font-size: 1.25rem; line-height: 1.5em; } .exitIntentOverlay .exitIntentOverlay-text p { font-size: 1.25rem; line-height: 1.5em; } .exitIntentOverlay .exitIntentOverlay-events > a { font-size: 1.25rem; line-height: 1.2em; } } </style> <script> //Exit intent overlay scripts //Setter and getter for exit intent cookie const ExitIntentCookieService = { setCookie(name, value, days) { let expires = ''; if (days) { const date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = '; expires=' + date.toUTCString(); } document.cookie = name + '=' + (value || '') + expires + ';'; }, getCookie(name) { const cookies = document.cookie.split(';'); for (const cookie of cookies) { if (cookie.indexOf(name + '=') > -1) { return cookie.split('=')[1]; } } return null; } }; //When a user clicks outside overlay or close icon or hits escape key //close exit intent overlay const exit = e => { const shouldExit = [...e.target.classList].includes('exitIntentOverlay') || // user clicks on overlay e.target.className === 'exitIntentOverlay-close' || // user clicks on the close icon e.keyCode === 27; // user hits escape if (shouldExit) { document.querySelector('.exitIntentOverlay').classList.remove('visible'); } }; //When a user's cursor leaves the document //show exit intent overlay const mouseEvent = e => { const shouldShowExitIntent = !e.toElement && !e.relatedTarget && e.clientY < 10; if (shouldShowExitIntent) { document.removeEventListener('mouseout', mouseEvent); //Create session links if (document.getElementById('demoSessions')) { var sessionItems = document.getElementById('demoSessions').querySelectorAll('.session'); var sessionsAdded = 0; if (document.getElementById('exitIntentOverlay-events')) { const sessionTarget = document.getElementById('exitIntentOverlay-events'); Array.prototype.forEach.call(sessionItems, function (session) { //Limit upcoming webinars to 4 if (sessionsAdded < 4) { const sessionHref = session.querySelector('.session-btn').href; const sessionDay = session.querySelector('.session-day').textContent; const sessionTime = session.querySelector('.session-time').textContent; const newLink = document.createElement('a'); newLink.href = sessionHref; const newLinkDay = document.createElement('span'); newLinkDay.classList.add('exitIntentOverlay-events-day'); newLinkDay.textContent = sessionDay; const newLinkTime = document.createElement('span'); newLinkTime.classList.add('exitIntentOverlay-events-time'); newLinkTime.textContent = sessionTime; // Append the <span> tags to the new <a> tag newLink.appendChild(newLinkDay); newLink.appendChild(newLinkTime); // Append the <a> tag to the overlay sessionTarget.appendChild(newLink); } sessionsAdded ++; }); } } if (exitIntentCookieValue === null) { //Set value of exitIntentCookieValue exitIntentCookieValue = 'teams'; //make exitIntentOverlay visible document.querySelector('.exitIntentOverlay').classList.add('visible'); //Send tracking for exit intent overlay impression window.dataLayer.push({ 'event': 'eventTracker', 'eventCat': 'marketing', 'eventAct': 'exit intent imp', 'eventLbl': 'attend a live demo' }); } //Set exit intent cookie ExitIntentCookieService.setCookie('exitIntentShown', exitIntentCookieValue, 30); } }; //If exit intentcookie doesn't exist, //then initialize exit intent overlay scripts var exitIntentCookieValue = ExitIntentCookieService.getCookie('exitIntentShown'); if (exitIntentCookieValue === null) { setTimeout(() => { document.addEventListener('mouseout', mouseEvent); document.addEventListener('keydown', exit); document.querySelector('.exitIntentOverlay').addEventListener('click', exit); }, 0); } </script> <div class="teams" id="teams"><!-- start .teams --> <section class="hero teams-hero" id="teams-hero"> <div class="content"> <div class="sectionText"> <h1>Help your <span class="highlight">tech teams</span> stay ahead of what&rsquo;s next</h1> <div class="teams-hero-odotAnimal"><figure></figure></div> <p class="teams-hero-intro">O&rsquo;Reilly has been sharing the knowledge of innovators to help tech teams for over 45 years. But we also offer droves of content to help with project management, leadership training, and more.</p> </div> </div> </section> <section class="bentoSection"> <div class="content"> <div class="bentoSection-grid"> <div class="bentoSection-item item-1"> <div class="bentoSection-form" id="bentoSection-form"> <h2>Get a demo</h2> <p>Learn how O&rsquo;Reilly benefits teams of 26+ people on a 1:1 tour</p> <form role="form" id="pardotForm-test" class="pardotForm-test salesforce-form" novalidate="true" method="post" data-pardot-form="lead gen form submit, request demo, enterprise short" action="https://ae.oreilly.com/l/1009792/2023-03-31/bwx4"> <div id="pardotForm-test-errorMessage" class="pardotForm-test-errorMessage"></div> <noscript> <p>Do you have JavaScript turned off? Sorry, but this form won&rsquo;t work without it.</p> </noscript> <div class="pardotForm-test-fields"> <div class="pardotForm-test-group"> <div class="pardotForm-test-group-heading"> <h3>Tell us about yourself!</h3> <p>We collect your general info so we know who we&rsquo;ll be speaking with and how to reach you.</p> </div> <div class="pardotForm-test-split"> <div> <label for="pardotForm-test_first_name">First name</label> <input type="text" name="first_name" id="pardotForm-test_first_name" data-text="first name" autocomplete="given-name" aria-required="true" disabled > </div> <div> <label for="pardotForm-test_last_name">Last name</label> <input type="text" name="last_name" id="pardotForm-test_last_name" data-text="last name" autocomplete="family-name" aria-required="true" disabled > </div> </div> <div class="pardotForm-test-full"> <label for="pardotForm-test_email">Work email address</label> <input type="email" name="email" id="pardotForm-test_email" data-text="email address" autocomplete="email" aria-required="true" disabled > </div> <div class="pardotForm-test-full"> <label for="pardotForm-test_phone">Phone number (optional)</label> <input type="text" name="phone" id="pardotForm-test_phone" data-text="phone" autocomplete="tel" disabled> </div> </div> <div class="pardotForm-test-group"> <div class="pardotForm-test-group-heading"> <h3>What&rsquo;s your organization about?</h3> <p>We collect general info about your organization to know how best to meet your needs.</p> </div> <div class="pardotForm-test-split"> <div> <label for="pardotForm-test_company">Company name</label> <input type="text" name="company" id="pardotForm-test_company" data-text="company" autocomplete="organization" aria-required="true" disabled> </div> <div> <label for="pardotForm-test_job_title">Job title</label> <input type="text" name="job_title" id="pardotForm-test_job_title" data-text="job title" autocomplete="organization-title" aria-required="true" disabled> </div> </div> </div> <div class="pardotForm-test-group"> <div class="pardotForm-test-group-heading"> <h3>Where are you located?</h3> <p>We collect info about your location to route you to the appropriate representative.</p> </div> <div class="pardotForm-test-split"> <div> <label for="pardotForm-test_country">Country</label> <select name="country" id="pardotForm-test_country" data-text="country" autocomplete="country-name" aria-required="true" disabled > <option disabled selected value>- Select country -</option> <option value="Afghanistan">Afghanistan</option> <option value="Albania">Albania</option> <option value="Algeria">Algeria</option> <option value="Andorra">Andorra</option> <option value="Angola">Angola</option> <option value="Antigua and Barbuda">Antigua and Barbuda</option> <option value="Argentina">Argentina</option> <option value="Armenia">Armenia</option> <option value="Aruba">Aruba</option> <option value="Australia">Australia</option> <option value="Austria">Austria</option> <option value="Azerbaijan">Azerbaijan</option> <option value="Bahamas">The Bahamas</option> <option value="Bahrain">Bahrain</option> <option value="Bangladesh">Bangladesh</option> <option value="Barbados">Barbados</option> <option value="Belarus">Belarus</option> <option value="Belgium">Belgium</option> <option value="Belize">Belize</option> <option value="Benin">Benin</option> <option value="Bermuda">Bermuda</option> <option value="Bhutan">Bhutan</option> <option value="Bolivia, Plurinational State of">Bolivia</option> <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option> <option value="Botswana">Botswana</option> <option value="Brazil">Brazil</option> <option value="Brunei Darussalam">Brunei</option> <option value="Bulgaria">Bulgaria</option> <option value="Burkina Faso">Burkina Faso</option> <option value="Burundi">Burundi</option> <option value="Cambodia">Cambodia</option> <option value="Cameroon">Cameroon</option> <option value="Canada">Canada</option> <option value="Cape Verde">Cape Verde</option> <option value="Central African Republic">Central African Republic</option> <option value="Chad">Chad</option> <option value="Chile">Chile</option> <option value="China">People's Republic of China</option> <option value="Colombia">Colombia</option> <option value="Comoros">Comoros</option> <option value="Congo, the Democratic Republic of the">Congo, Democratic Republic of the</option> <option value="Congo">Congo, Republic of the</option> <option value="Cook Islands">Cook Islands</option> <option value="Costa Rica">Costa Rica</option> <option value="Cote d'Ivoire">C&ocirc;te d'Ivoire (Ivory Coast)</option> <option value="Croatia">Croatia</option> <option value="Cuba">Cuba</option> <option value="Cyprus">Cyprus</option> <option value="Czech Republic">Czechia</option> <option value="Denmark">Denmark</option> <option value="Djibouti">Djibouti</option> <option value="Dominica">Dominica</option> <option value="Dominican Republic">Dominican Republic</option> <option value="Ecuador">Ecuador</option> <option value="Egypt">Egypt</option> <option value="El Salvador">El Salvador</option> <option value="Equatorial Guinea">Equatorial Guinea</option> <option value="Eritrea">Eritrea</option> <option value="Estonia">Estonia</option> <option value="Swaziland">Eswatini (formerly Swaziland)</option> <option value="Ethiopia">Ethiopia</option> <option value="Fiji">Fiji</option> <option value="Finland">Finland</option> <option value="France">France</option> <option value="Gabon">Gabon</option> <option value="Gambia">The Gambia</option> <option value="Georgia">Georgia</option> <option value="Germany">Germany</option> <option value="Ghana">Ghana</option> <option value="Greece">Greece</option> <option value="Grenada">Grenada</option> <option value="Guatemala">Guatemala</option> <option value="Guinea">Guinea</option> <option value="Guinea-Bissau">Guinea-Bissau</option> <option value="Guyana">Guyana</option> <option value="Haiti">Haiti</option> <option value="Honduras">Honduras</option> <option value="Hungary">Hungary</option> <option value="Iceland">Iceland</option> <option value="India">India</option> <option value="Indonesia">Indonesia</option> <option value="Iran, Islamic Republic of">Iran</option> <option value="Iraq">Iraq</option> <option value="Ireland">Ireland</option> <option value="Israel">Israel</option> <option value="Italy">Italy</option> <option value="Jamaica">Jamaica</option> <option value="Japan">Japan</option> <option value="Jordan">Jordan</option> <option value="Kazakhstan">Kazakhstan</option> <option value="Kenya">Kenya</option> <option value="Kiribati">Kiribati</option> <option value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option> <option value="Korea, Republic of">Korea, Republic of</option> <option value="Kuwait">Kuwait</option> <option value="Kyrgyzstan">Kyrgyzstan</option> <option value="Lao People's Democratic Republic">Laos</option> <option value="Latvia">Latvia</option> <option value="Lebanon">Lebanon</option> <option value="Lesotho">Lesotho</option> <option value="Liberia">Liberia</option> <option value="Libyan Arab Jamahiriya">Libya</option> <option value="Liechtenstein">Liechtenstein</option> <option value="Lithuania">Lithuania</option> <option value="Luxembourg">Luxembourg</option> <option value="Macedonia, the former Yugoslav Republic of">Macedonia, Republic of</option> <option value="Madagascar">Madagascar</option> <option value="Malawi">Malawi</option> <option value="Malaysia">Malaysia</option> <option value="Maldives">Maldives</option> <option value="Mali">Mali</option> <option value="Malta">Malta</option> <option value="Mauritania">Mauritania</option> <option value="Mauritius">Mauritius</option> <option value="Mexico">Mexico</option> <option value="Federated States of Micronesia">Federated States of Micronesia</option> <option value="Moldova, Republic of">Moldova</option> <option value="Monaco">Monaco</option> <option value="Mongolia">Mongolia</option> <option value="Montenegro">Montenegro</option> <option value="Morocco">Morocco</option> <option value="Mozambique">Mozambique</option> <option value="Myanmar">Myanmar</option> <option value="Namibia">Namibia</option> <option value="Nauru">Nauru</option> <option value="Nepal">Nepal</option> <option value="Netherlands">Netherlands</option> <option value="New Zealand">New Zealand</option> <option value="Nicaragua">Nicaragua</option> <option value="Niger">Niger</option> <option value="Nigeria">Nigeria</option> <option value="Niue">Niue</option> <option value="Norway">Norway</option> <option value="Oman">Oman</option> <option value="Pakistan">Pakistan</option> <option value="Palestinian Territory, Occupied">Palestine, State of</option> <option value="Panama">Panama</option> <option value="Papua New Guinea">Papua New Guinea</option> <option value="Paraguay">Paraguay</option> <option value="Peru">Peru</option> <option value="Philippines">Philippines</option> <option value="Poland">Poland</option> <option value="Portugal">Portugal</option> <option value="Qatar">Qatar</option> <option value="Romania">Romania</option> <option value="Rwanda">Rwanda</option> <option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option> <option value="Saint Lucia">Saint Lucia</option> <option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option> <option value="Samoa">Samoa</option> <option value="San Marino">San Marino</option> <option value="Sao Tome and Principe">S&atilde;o Tom&eacute; and Pr&iacute;ncipe</option> <option value="Saudi Arabia">Saudi Arabia</option> <option value="Senegal">Senegal</option> <option value="Serbia">Serbia</option> <option value="Seychelles">Seychelles</option> <option value="Sierra Leone">Sierra Leone</option> <option value="Singapore">Singapore</option> <option value="Slovakia">Slovakia</option> <option value="Slovenia">Slovenia</option> <option value="Solomon Islands">Solomon Islands</option> <option value="Somalia">Somalia</option> <option value="South Africa">South Africa</option> <option value="South Sudan">South Sudan</option> <option value="Spain">Spain</option> <option value="Sri Lanka">Sri Lanka</option> <option value="Sudan">Sudan</option> <option value="Suriname">Suriname</option> <option value="Sweden">Sweden</option> <option value="Switzerland">Switzerland</option> <option value="Syrian Arab Republic">Syria</option> <option value="Taiwan">Taiwan</option> <option value="Tajikistan">Tajikistan</option> <option value="Tanzania, United Republic of">Tanzania</option> <option value="Thailand">Thailand</option> <option value="Timor-Leste">Timor-Leste (East Timor)</option> <option value="Togo">Togo</option> <option value="Tonga">Tonga</option> <option value="Trinidad and Tobago">Trinidad and Tobago</option> <option value="Tunisia">Tunisia</option> <option value="Turkey">Turkey</option> <option value="Turkmenistan">Turkmenistan</option> <option value="Tuvalu">Tuvalu</option> <option value="Uganda">Uganda</option> <option value="Ukraine">Ukraine</option> <option value="United Arab Emirates">United Arab Emirates</option> <option value="United Kingdom">United Kingdom</option> <option value="United States">United States</option> <option value="Uruguay">Uruguay</option> <option value="Uzbekistan">Uzbekistan</option> <option value="Vanuatu">Vanuatu</option> <option value="Holy See (Vatican City State)">Vatican City</option> <option value="Venezuela, Bolivarian Republic of">Venezuela</option> <option value="Viet Nam">Vietnam</option> <option value="Yemen">Yemen</option> <option value="Zambia">Zambia</option> <option value="Zimbabwe">Zimbabwe</option> </select> </div> <div class="us-states disabled"> <label for="pardotForm-test_state">State</label> <select name="state" id="pardotForm-test_state" data-text="state" autocomplete="address-level1" disabled tabindex="-1"> <option disabled selected value>- Select state -</option> <option value="Alabama">Alabama</option> <option value="Alaska">Alaska</option> <option value="American Samoa">American Samoa</option> <option value="Arizona">Arizona</option> <option value="Arkansas">Arkansas</option> <option value="California">California</option> <option value="Colorado">Colorado</option> <option value="Connecticut">Connecticut</option> <option value="Delaware">Delaware</option> <option value="DC">District of Columbia</option> <option value="Florida">Florida</option> <option value="Georgia">Georgia</option> <option value="Guam">Guam</option> <option value="Hawaii">Hawaii</option> <option value="Idaho">Idaho</option> <option value="Illinois">Illinois</option> <option value="Indiana">Indiana</option> <option value="Iowa">Iowa</option> <option value="Kansas">Kansas</option> <option value="Kentucky">Kentucky</option> <option value="Louisiana">Louisiana</option> <option value="Maine">Maine</option> <option value="Maryland">Maryland</option> <option value="Massachusetts">Massachusetts</option> <option value="Michigan">Michigan</option> <option value="Minnesota">Minnesota</option> <option value="Mississippi">Mississippi</option> <option value="Missouri">Missouri</option> <option value="Montana">Montana</option> <option value="Nebraska">Nebraska</option> <option value="Nevada">Nevada</option> <option value="New Hampshire">New Hampshire</option> <option value="New Jersey">New Jersey</option> <option value="New Mexico">New Mexico</option> <option value="New York">New York</option> <option value="North Carolina">North Carolina</option> <option value="North Dakota">North Dakota</option> <option value="Northern Mariana Islands">Northern Mariana Islands</option> <option value="Ohio">Ohio</option> <option value="Oklahoma">Oklahoma</option> <option value="Oregon">Oregon</option> <option value="Pennsylvania">Pennsylvania</option> <option value="Puerto Rico">Puerto Rico</option> <option value="Rhode Island">Rhode Island</option> <option value="South Carolina">South Carolina</option> <option value="South Dakota">South Dakota</option> <option value="Tennessee">Tennessee</option> <option value="Texas">Texas</option> <option value="US Virgin Islands">U.S. Virgin Islands</option> <option value="Utah">Utah</option> <option value="Vermont">Vermont</option> <option value="Virginia">Virginia</option> <option value="Washington">Washington</option> <option value="West Virginia">West Virginia</option> <option value="Wisconsin">Wisconsin</option> <option value="Wyoming">Wyoming</option> </select> </div> </div> <div class="pardotForm-test-full option-select gdpr-consent hidden"></div> </div> </div> <input type="hidden" name="marketing_consent_context" value="demo request"> <div class="pardotForm-test-full"> <button type="submit" class="pardotForm-test-cta" onclick="return test_verif('pardotForm-test');" value="Submit" disabled> Let&rsquo;s do this </button> </div> <p class="pardotForm-test-privacy">We keep your information confidential. <a href="https://www.oreilly.com/oreilly/privacy.html">Privacy policy</a>. </p> </form> <div id="pardotForm-test-thankyou" class="pardotForm-test-thankyou hidden"> <h2>Thanks for your interest in O&rsquo;Reilly.</h2> <p>You&rsquo;ll hear from us shortly.</p> </div> <style> /* pardotForm */ .pardotForm-test, .pardotForm-test-thankyou { max-width: 100%; margin: 0 auto; font-family: 'guardian-text-oreilly', Arial, sans-serif; } .pardotForm-test-fields { margin: 36px 0 40px; display: flex; flex-direction: column; gap: 36px; } .pardotForm-test-group { display: flex; display: flex; flex-direction: column; gap: 24px; } .pardotForm-test-group-heading h3 { margin: 0 0 4px; font-size: 1.125rem; line-height: 1.5em; font-weight: 500; } .pardotForm-test-group-heading p { margin: 0; font-size: 0.875rem; line-height: 1.5em; color: #525358; } .pardotForm-test fieldset { margin: 0; padding: 0; border: 0; font-size: 100%; vertical-align: baseline; -webkit-font-smoothing: antialiased; } .pardotForm-test input, .pardotForm-test label { display: block; font-family: inherit; } .pardotForm-test label { margin: 0 0 4px; font-size: .875rem; line-height: 1.5em; font-weight: 500; } .pardotForm-test legend { margin: 0 0 4px; font-size: .875rem; line-height: 1.5em; font-weight: 400; } .pardotForm-test .disabled { opacity: .5; } .pardotForm-test .disabled label, .pardotForm-test .disabled input, .pardotForm-test .disabled textarea, .pardotForm-test .disabled select { pointer-events: none; cursor: default; } .pardotForm-test.salesforce-form p.required { margin: 0 0 4px; font-size: 0.875rem; line-height: 1.5em; font-weight: 700; } .pardotForm-test input[type="text"], .pardotForm-test input[type="email"], .pardotForm-test input[type="date"], .pardotForm-test textarea { -webkit-appearance: none; -moz-appearance: none; margin: 0; padding: 12px 10px; width: 100%; min-height: 48px; box-sizing: border-box; border: 1px solid #BCBEC3; border-radius: 8px; font-size: 0.875rem; line-height: 1.5em; color: #525358; } .pardotForm-test .option-select input[type="radio"], .pardotForm-test .option-select label { display: inline-block; margin-right: 8px; } .pardotForm-test select { -webkit-appearance: none; -moz-appearance: none; margin: 0; padding: 12px 10px; min-height: 48px; box-sizing: border-box; border: 1px solid #BCBEC3; border-radius: 8px; appearance: none; background: transparent url(https://cdn.oreillystatic.com/oreilly/images/inbound-aisf-select-arrow.png) right center no-repeat; color: #525358; font-size: 0.875rem; line-height: 1.5em; } .pardotForm-test select, .pardotForm-test .option-select { width: 100%; margin: 0; } .pardotForm-test textarea { height: auto; } .pardotForm-test-cta { position: relative; display: block; margin: 0 auto 16px; padding: 12px 44px 12px 20px; width: max-content; border-radius: 8px; background-color: #d30000; font-size: 1rem; line-height: 1.25em; color: #fff; font-family: 'guardian-text-oreilly', Arial, sans-serif; font-weight: 600; letter-spacing: 0; text-decoration: none; white-space: nowrap; cursor: pointer; border: 0; transition: background-color 200ms; } .pardotForm-test-cta:hover, .pardotForm-test-cta:active { text-decoration: none; background-color: #BC123C; color: #fff; } .pardotForm-test-cta:after { content: ""; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); display: block; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_full_right_arrow_white.svg) center center no-repeat; background-size: contain; } p.pardotForm-test-fillout { font-weight: bold; margin-bottom: 0; } .pardotForm-test p.pardotForm-test-privacy { margin: 0 auto; width: 100%; max-width: max-content; font-size: .75rem; line-height: 1.5em; color: #9C9EA3; } .pardotForm-test p.pardotForm-test-privacy:before { content: ""; display: inline-block; vertical-align: middle; margin: 0 6px; width: 20px; height: 20px; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_lock_gray.svg) center center no-repeat; background-size: contain; } .pardotForm-test p.pardotForm-test-privacy a { color: #9C9EA3; } .pardotForm-test-thankyou h2 { margin: 0 0 12px; font-family: "gilroy", Arial, sans-serif; font-size: 2.5rem; line-height: 1.2em; text-align: center; font-weight: 700; } .pardotForm-test-thankyou p { font-size: 1rem; line-height: 1.5em; text-align: center; } @media (min-width: 50em) { .pardotForm-test-thankyou h2 { text-align: left; } .pardotForm-test-thankyou p { text-align: left; } } @media (min-width: 28em ) and /* 448px */ (max-width: 71em ), /* px */ (min-width: 71em) { /* 1120px */ .pardotForm-test-split { display: flex; flex-direction: row; gap: 16px; width: 100%; } .pardotForm-test-split > div { width: 50%; } } @media (min-width: 37.5em) { /* 600px */ .pardotForm-test-text, .pardotForm-test, .pardotForm-test-thankyou { box-sizing: border-box; width: 100%; } .pardotForm-test-text { margin-right: 0; } } @media (min-width: 56.25em) { /* 900px */ .pardotForm-test-text { width: 100%; } .pardotForm-test, .pardotForm-test-thankyou { width: 100%; } } /* pardotForm error message styles */ .pardotForm-test input[type="text"].error, .pardotForm-test input[type="email"].error, .pardotForm-test select.error, .pardotForm-test .option-select.error { border-width: 2px; border-color: #e00; } .pardotForm-test select.error, .pardotForm-test .option-select.error { background-color: #fae0de; color: #e00; } .pardotForm-test label.error, .pardotForm-test-errorMessage p, .pardotForm-test .option-select.error legend { padding-left: 28px; color: #e00; position: relative; } .pardotForm-test noscript { font-weight: 600; color: #e00; position: relative; } .pardotForm-test noscript p { padding-left: 28px; } .pardotForm-test label.error:before, .pardotForm-test-errorMessage p:before, .pardotForm-test noscript p:before, .pardotForm-test .option-select.error legend:before { content: url('https://cdn.oreillystatic.com/images/icons/baseline-error_outline-24px.svg'); position: absolute; left: 0; top: -2px; } .pardotForm-test button { cursor: pointer; border: 0; } .pardotForm-test button[disabled], .pardotForm-test input[disabled], .pardotForm-test textarea[disabled], .pardotForm-test select[disabled] { opacity: 0.5; } /* end pardotForm */ </style> <script src="https://cdn.oreillystatic.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> document.addEventListener("DOMContentLoaded", function(event) { test_toggleFormThankYou(); test_enableForm(); test_addCountryEventListeners(); }); function test_toggleFormThankYou() { // show/hide form or thankyou message depending on URL parameters if (test_parseParams('submit') === 'true') { var formId = ('#' + test_parseParams('name')); test_toggleHidden(formId, formId + '-thankyou'); // Open Qualified overlay setTimeout(function() { qualified("showFormExperience", "experience-1721175106650"); }, 1000); // End Qualified //During test only console.log('test'); document.querySelector('#bentoSection-form > h2').remove(); document.querySelector('#bentoSection-form > p').remove(); history.pushState(null, "", location.href.split("?")[0]); $('html, body').animate({ scrollTop: $(formId + '-thankyou').offset().top - 200 }, 500); } } function test_parseParams(name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if (results === null) return ""; else return (results[1]); } function test_enableForm() { // enable form submit button if javascript present $('form input, form select, form textarea, form button').prop('disabled', false); } function test_addCountryEventListeners() { var countries = document.querySelectorAll('[name="country"]'); for (i = 0; i < countries.length; i++ ) { countries[i].addEventListener('change', test_identifyEventTarget, false); } } function test_identifyEventTarget(e) { var country = e.target.value; var parentForm = e.target.closest('form'); test_checkOptInStatus(country, parentForm); test_checkForStates(country, parentForm); } function test_checkOptInStatus(country, parentForm) { var gdprSelect = parentForm.getElementsByClassName('gdpr-consent')[0]; var optInHtml = '\n <fieldset role="radiogroup" aria-required="true" data-text="choice for receiving O&rsquo;Reilly email updates"> \n <legend>I would like to receive email updates from O&rsquo;Reilly on its latest ideas, events, and&nbsp;offers: <strong class="red" aria-hidden="true">*</strong></legend> \n <input type="radio" name="marketing_consent" value="True"><label for="gdprYes">Yes</label> \n <input type="radio" name="marketing_consent" value="False"><label for="gdprNo">No</label> \n </fieldset>'; if (test_requiresConsent(country) && test_gdprConsentHidden(gdprSelect)) { test_toggleOptIn(gdprSelect, optInHtml); } else if (!test_requiresConsent(country) && !test_gdprConsentHidden(gdprSelect)) { test_toggleOptIn(gdprSelect, ' '); } } function test_requiresConsent(country) { var euCountries = ['Austria', 'Belgium', 'Bulgaria', 'China', 'Croatia', 'Republic of Cyprus', 'Czech Republic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary', 'Iceland', 'Ireland', 'Italy', 'Latvia', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Malta', 'Netherlands', 'Norway', 'Poland', 'Portugal', 'Romania', 'Slovakia', 'Slovenia', 'Spain', 'Sweden', 'United Kingdom']; return(euCountries.indexOf(country) + 1); } function test_gdprConsentHidden(gdprSelect) { return gdprSelect.classList.contains('hidden') ? true : false; } function test_toggleOptIn(gdprSelect, optInHtml) { test_toggleHidden(gdprSelect); gdprSelect.innerHTML = optInHtml; test_checkError(gdprSelect); } function test_checkForStates(country, parentForm) { if (country === "United States") { stateSelect = parentForm.getElementsByClassName('us-states')[0]; document.getElementById('pardotForm-test_state').setAttribute('aria-required','true'); document.getElementById('pardotForm-test_state').tabIndex = 0; stateSelect.classList.remove('disabled'); } else { stateSelect = parentForm.getElementsByClassName('us-states')[0]; document.getElementById('pardotForm-test_state').removeAttribute('aria-required'); document.getElementById('pardotForm-test_state').tabIndex = -1; stateSelect.classList.add('disabled'); document.getElementById('pardotForm-test_state').value = ""; document.getElementById('pardotForm-test_state').selectedIndex = 0; } } function test_toggleHidden() { var targets = Array.prototype.slice.call(arguments); targets.forEach(function(target) { $(target).toggleClass('hidden'); }); } function test_checkError(arg) { if (arg.classList.contains('error')) { $(arg).removeClass('error'); } } function test_verif(formName) { var form = document.getElementById(formName); var formId = '#' + formName; $(formId +' .error').removeClass('error'); $('[aria-invalid$="true"]').attr('aria-invalid','false'); var errors = []; // find all elements in form that are required fields var requiredFields = $(formId + ' [aria-required$="true"]'); // loop through required fields to check if they are valid for (i = 0; i < requiredFields.length; i++) { var field = requiredFields[i]; if (test_fieldInvalid(field, form)) { test_createError(field, formId, formName, errors); }; } // If errors found, display them and prevent submit if (errors.length > 0) { test_displayErrors(errors, formId); return false; } // When no errors found continue... // Create hidden field for Sales_Request_Context const salesRequestContext = document.createElement("input"); salesRequestContext.type = "hidden"; salesRequestContext.name = "Sales_Request_Context"; salesRequestContext.value = window.location.host + window.location.pathname; form.appendChild(salesRequestContext); // Append URL to marketing_consent_context field form['marketing_consent_context'].value = form['marketing_consent_context'].value + " at " + window.location.host + window.location.pathname; //Add successParam to form action var successURL = encodeURIComponent(location.href.split("?")[0] + "?submit=true&name=pardotForm-test"); var successParam = "?success_location=" + successURL; form.action += successParam; // Send data to Qualified const formData = new FormData(form); qualified( "saveFormData", { "first_namefrom": formData.get("first_name"), "last_nameform": formData.get("last_name"), "email": formData.get("email"), "phone": formData.get("phone"), "company": formData.get("company"), "job_title": formData.get("job_title"), "country": formData.get("country"), "state": formData.get("state"), "marketing_consent_context": formData.get("marketing_consent_context"), "marketing_consent_optin": formData.get("marketing_consent"), "sales_request_context": formData.get("Sales_Request_Context"), "cta": "Submit", } ); qualified("emitFormFill", "custom"); // End Qualified return true; } function test_fieldInvalid(field, form) { if (field.tagName === "FIELDSET") { return (test_radioInvalid(field, form)) ? true : false; } else if (field.name === "email") { return (test_emailInvalid(form)) ? true : false; } else { return (field.value.length < 1) ? true : false; } } function test_radioInvalid(field, form) { var fieldsetName = field.querySelectorAll('input')[0].name; if (form[fieldsetName].value.length < 1) return true; } function test_emailInvalid(form) { var mail = new RegExp('@+','g'); if ( (form.email.value.length < 1) || (!mail.test(form.email.value)) ) { return true; } } function test_createError(field, formId, formName, errors) { if (field.tagName === 'FIELDSET') { $(formId + ' .gdpr-consent').addClass('error'); $(formId + ' .gdpr-consent fieldset input').addClass('error').attr('aria-invalid','true'); } else { $(formId + ' [name$="' + field.name + '"]').addClass('error').attr('aria-invalid','true'); } $(formId +' label[for="' + formName + '_' + field.name + '"]').addClass('error'); errors.push(field.dataset.text); return errors; } function test_displayErrors(errors, formId) { var errorMessage = ''; if (errors.length > 3) { errorMessage = '<p>Please fill out all required fields.</p>'; } else { errorMessage = '<p>Please enter your '; for (i = 0; i < errors.length; i++) { errorMessage += errors[i]; if (i === errors.length - 2) { errorMessage += ', and ' } else if (i < errors.length - 1) { errorMessage += ', ' } else { errorMessage += '.</p>' } } } $(formId +'-errorMessage').html(errorMessage); } </script> </div> </div> <div class="bentoSection-item item-2"> <h2>Set up a small team</h2> <p>Get access for teams of 2&ndash;25 people now</p> <a id="bento-smallTeam-cta" class="redButton" href="https://learning.oreilly.com/team-setup/">Start now</a> </div> <div class="bentoSection-item item-3"> <h2>Tour the platform</h2> <p>Join an expert-led webinar to learn about O&rsquo;Reilly</p> <div class="bento-events" id="bento-events"></div> <!-- base content to reconfigure and show in #bento-events --> <div class="hidden"> <div id="demoSessions" class="demoSessions"> <h3>Sign up for your <span class="nowrap">free tour</span></h3> </div> <style> /* .demoSessions */ .demoSessions h3 { margin: 0 0 8px; max-width: 880px; font-size: 24px; font-size: 1.5rem; line-height: 1.4em; font-family: 'gilroy', Arial, sans-serif; font-weight: 600; letter-spacing: 0; } .demoSessions .session { display: block; margin: 0 0 20px; &:nth-child(n + 6) { display: none; } } .demoSessions .session-date { display: block; margin-bottom: 8px; font-weight:bold; } .demoSessions .session-btn { display: block; width: max-content; text-decoration: none; -webkit-appearance: none; outline: none; border: none; border-radius: 2px; padding: 8px 16px; background: rgb(0, 113, 235); color: rgb(255, 255, 255); font-size: 1rem; line-height: 1.5em; font-weight: 600; font-family: 'guardian-text-oreilly', Arial, sans-serif; cursor: pointer; transition: box-shadow .2s; } .demoSessions .session-btn:hover, .demoSessions .session-btn:focus { box-shadow: 0 0 4px rgba(0, 0, 0, .3); } .demoSessions .session-btn:after { content: ""; display: inline-block; margin: -8px -2px -6px 6px; width: 13px; height: 22px; vertical-align: middle; background: transparent url(https://cdn.oreillystatic.com/images/icons/icon_right_arrow_white.svg) center center no-repeat; background-size: contain; } @media (min-width: 40em) { /* 640px */ .demoSessions h3 { margin: 0 0 12px; font-size: 28px; font-size: 1.75rem; line-height: 1.3em; } } /* END .demoSessions */ </style> <script> document.addEventListener("DOMContentLoaded", async () => { try { // Fetch the JSON file const response = await fetch("/online-learning/platform_tour_dates.json"); if (!response.ok) throw new Error("Failed to load JSON file"); const eventData = await response.json(); // Get the container where the events will be inserted const eventContainer = document.getElementById("demoSessions"); // Get the current date in UTC const currentDate = new Date().toISOString(); // Filter future events const futureEvents = eventData.filter(event => event.utc > currentDate); if (futureEvents.length === 0) { eventContainer.innerHTML += "<p>No upcoming events.</p>"; return; } // Loop through future events and create elements futureEvents.forEach(event => { // Create the outer span with class and data attribute const sessionSpan = document.createElement("span"); sessionSpan.classList.add("session"); sessionSpan.setAttribute("data-date", event.utc); // Create the date span const dateSpan = document.createElement("span"); dateSpan.classList.add("session-date"); // Extract day and time const sessionDay = document.createElement("span"); sessionDay.classList.add("session-day"); sessionDay.textContent = event.localdate; const sessionTime = document.createElement("span"); sessionTime.classList.add("session-time"); sessionTime.textContent = event.localtime; // Append date and time to the date span dateSpan.appendChild(sessionDay); dateSpan.append(" | "); dateSpan.appendChild(sessionTime); // Create the register button const registerBtn = document.createElement("a"); registerBtn.classList.add("session-btn"); registerBtn.href = event.url; registerBtn.target = "_blank"; registerBtn.textContent = "Register now"; // Append elements to session span sessionSpan.appendChild(dateSpan); sessionSpan.appendChild(registerBtn); // Append to the container eventContainer.appendChild(sessionSpan); }); } catch (error) { console.error("Error loading event dates:", error); } if (document.getElementById('bento-events')) { const sessionTarget = document.getElementById('bento-events'); var sessionItems = document.getElementById('demoSessions').querySelectorAll('.session'); var sessionsAdded = 0; Array.prototype.forEach.call(sessionItems, function (session) { //Limit upcoming webinars to 4 if (sessionsAdded < 4) { const sessionHref = session.querySelector('.session-btn').href; const sessionDay = session.querySelector('.session-day').textContent; const sessionTime = session.querySelector('.session-time').textContent; const newLink = document.createElement('a'); newLink.href = sessionHref; const newLinkDay = document.createElement('span'); newLinkDay.classList.add('bento-events-day'); newLinkDay.textContent = sessionDay; const newLinkTime = document.createElement('span'); newLinkTime.classList.add('bento-events-time'); newLinkTime.textContent = sessionTime; const ctaText = document.createElement('span'); ctaText.classList.add('bento-events-cta'); ctaText.textContent = "Register now"; // Append the <span> tags to the new <a> tag newLink.appendChild(newLinkDay); newLink.appendChild(newLinkTime); newLink.appendChild(ctaText); // Append the <a> tag to the overlay sessionTarget.appendChild(newLink); } sessionsAdded ++; }); } }); </script> </div> </div> </div> </div> </section> <script> //Create session links for bento section // (function () { // if (document.getElementById('demoSessions')) { // var sessionItems = document.getElementById('demoSessions').querySelectorAll('.session'); // var sessionsAdded = 0; // if (document.getElementById('bento-events')) { // const sessionTarget = document.getElementById('bento-events'); // Array.prototype.forEach.call(sessionItems, function (session) { // //Limit upcoming webinars to 4 // if (sessionsAdded < 4) { // const sessionHref = session.querySelector('.session-btn').href; // const sessionDay = session.querySelector('.session-day').textContent; // const sessionTime = session.querySelector('.session-time').textContent; // const newLink = document.createElement('a'); // newLink.href = sessionHref; // const newLinkDay = document.createElement('span'); // newLinkDay.classList.add('bento-events-day'); // newLinkDay.textContent = sessionDay; // const newLinkTime = document.createElement('span'); // newLinkTime.classList.add('bento-events-time'); // newLinkTime.textContent = sessionTime; // const ctaText = document.createElement('span'); // ctaText.classList.add('bento-events-cta'); // ctaText.textContent = "Register now"; // // Append the <span> tags to the new <a> tag // newLink.appendChild(newLinkDay); // newLink.appendChild(newLinkTime); // newLink.appendChild(ctaText); // // Append the <a> tag to the overlay // sessionTarget.appendChild(newLink); // } // sessionsAdded ++; // }); // } // } // })(); </script> <section class="teamsSection teams-upskill sectionBreak"> <div class="content"> <a id="llm-image" href="https://www.oreilly.com/online-learning/generative-ai.html" class="sectionFigure teams-upskill-figure"> <img src="https://cdn.oreillystatic.com/oreilly/images/llm-video-frame-20230622.jpg" alt=""> </a> <div class="sectionText"> <figure class="sectionIcon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.0016 3C11.0016 2.44772 11.4493 2 12.0016 2C14.9638 2 17.6263 3.28904 19.4562 5.33358C21.0393 7.10237 22.0031 9.44056 22.0031 12.0015C22.0031 12.0355 22.0014 12.069 21.9981 12.1021C22.0006 12.1345 22.0016 12.1674 22.0009 12.2005L22.0008 12.2089L22.0006 12.2162C21.9889 12.7684 21.5318 13.2065 20.9797 13.1948C20.4275 13.1831 19.9894 12.7261 20.0011 12.1739L20.0012 12.1681L20.0013 12.1613C20.0019 12.134 20.0035 12.107 20.0061 12.0803C20.0041 12.0543 20.0031 12.028 20.0031 12.0015C20.0031 9.95152 19.2335 8.08369 17.9659 6.66741C17.8109 6.49418 17.6484 6.32776 17.4791 6.16866C17.4738 6.16391 17.4685 6.1591 17.4633 6.15421L17.4583 6.1496C17.453 6.14459 17.4477 6.13953 17.4424 6.13443C16.0139 4.80887 14.1027 4 12.0016 4C11.4493 4 11.0016 3.55229 11.0016 3ZM3.00012 11.0015C3.55241 11.0015 4.00012 11.4492 4.00012 12.0015C4.00012 12.2373 4.01031 12.4708 4.03029 12.7015C4.03091 12.7073 4.03149 12.7131 4.03201 12.719L4.03261 12.7257L4.03314 12.7315C4.03374 12.738 4.03427 12.7446 4.03474 12.7511C4.22657 14.8177 5.20377 16.6557 6.66753 17.9658C8.08381 19.2334 9.95164 20.003 12.0016 20.003C12.5539 20.003 13.0016 20.4507 13.0016 21.003C13.0016 21.5553 12.5539 22.003 12.0016 22.003C9.44068 22.003 7.10249 21.0392 5.3337 19.456C5.28699 19.4142 5.24067 19.372 5.19475 19.3293C5.18992 19.325 5.18512 19.3206 5.18035 19.3161L5.17502 19.3112C5.1701 19.3066 5.16523 19.3019 5.16043 19.2973C3.2166 17.4738 2.00012 14.8791 2.00012 12.0015C2.00012 11.4492 2.44784 11.0015 3.00012 11.0015ZM12.0015 9.26957L11.7068 10.0167C11.4019 10.7899 10.7899 11.4019 10.0167 11.7068L9.26957 12.0015L10.0167 12.2962C10.7899 12.6011 11.4019 13.2131 11.7068 13.9863L12.0015 14.7335L12.2962 13.9863C12.6011 13.2131 13.2131 12.6011 13.9863 12.2962L14.7335 12.0015L13.9863 11.7068C13.2131 11.4019 12.6011 10.7899 12.2962 10.0167L12.0015 9.26957ZM12.9318 6.17707C12.5989 5.33293 11.4042 5.33293 11.0713 6.17707L9.84632 9.28295C9.74467 9.54067 9.54067 9.74467 9.28294 9.84632L6.17707 11.0713C5.33293 11.4042 5.33293 12.5989 6.17707 12.9318L9.28294 14.1567C9.54067 14.2584 9.74467 14.4624 9.84632 14.7201L11.0713 17.826C11.4042 18.6701 12.5989 18.6701 12.9318 17.826L14.1567 14.7201C14.2584 14.4624 14.4624 14.2584 14.7201 14.1567L17.826 12.9318C18.6701 12.5989 18.6701 11.4042 17.826 11.0713L14.7201 9.84632C14.4624 9.74467 14.2584 9.54067 14.1567 9.28295L12.9318 6.17707ZM19.3209 18.8172C19.6973 18.413 19.6748 17.7802 19.2706 17.4039C18.8664 17.0275 18.2336 17.05 17.8573 17.4542L17.8533 17.4585C17.4766 17.8624 17.4987 18.4952 17.9026 18.8719C18.3065 19.2485 18.9393 19.2264 19.316 18.8225L19.3209 18.8172ZM6.14943 6.54452C6.52609 6.1406 6.50399 5.50783 6.10008 5.13117C5.69616 4.75451 5.06338 4.77661 4.68672 5.18052L4.68099 5.18667C4.30467 5.5909 4.32729 6.22366 4.73151 6.59998C5.13574 6.97631 5.7685 6.95369 6.14482 6.54946L6.14943 6.54452Z" fill="#2563EA"></path></svg></figure> <h2>It&rsquo;s time to upskill your teams to leverage generative AI</h2> <p>LLMs aren&rsquo;t just the future of work&mdash;they&rsquo;re the <em>now</em>. Learning to use large language models is vital for every business and every knowledge worker. O&rsquo;Reilly has all the resources your team needs.</p> <a id="llm-cta" href="https://www.oreilly.com/online-learning/generative-ai.html" class="textCTA-blue"><span class="inner">Learn more</span></a> </div> </div> </section> <section class="teamsSection teamsSection-org teams-logos"> <div class="content"> <div class="sectionText"> <h2>More than 5,000 organizations count on O&rsquo;Reilly</h2> </div> <figure class="sectionFigure"> <img class="height_s ravenVersion" src="https://cdn.oreillystatic.com/oreilly/logos/logo_airbnb_reverse.svg" alt="logo: AirBnB"> <img class="height_m controlVersion" src="https://cdn.oreillystatic.com/oreilly/logos/logo_airbnb.svg" alt="logo: AirBnB"> <img class="height_s ravenVersion" src="https://cdn.oreillystatic.com/oreilly/logos/logo_blue_origin_reverse.svg" alt="logo: Blue Origin"> <img class="height_s controlVersion" src="https://cdn.oreillystatic.com/oreilly/logos/logo_blue_origin.svg" alt="logo: Blue Origin"> <img class="height_xs ravenVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_electronic_arts.svg" alt="logo: Electronic Arts"> <img class="height_s controlVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_electronic_arts.svg" alt="logo: Electronic Arts"> <img class="height_m ravenVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_ibm_reverse.svg" alt="logo: IBM"> <img class="height_m controlVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_ibm.svg" alt="logo: IBM"> <img class="height_l" src="https://cdn.oreillystatic.com/oreilly/images/logo_home_depot.svg" alt="logo: Home Depot"> <img class="height_s ravenVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_nasdaq_reverse.svg" alt="logo: Nasdaq"> <img class="height_m controlVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_nasdaq.svg" alt="logo: Nasdaq"> <img class="height_s ravenVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_rakuten_reverse.svg" alt="logo: Rakuten"> <img class="height_m controlVersion" src="https://cdn.oreillystatic.com/oreilly/images/logo_rakuten.svg" alt="logo: Rakuten"> <img class="height_s ravenVersion" src="https://cdn.oreillystatic.com/oreilly/logos/logo_tcs_reverse.svg" alt="logo: TCS"> <img class="height_m controlVersion" src="https://cdn.oreillystatic.com/oreilly/logos/logo_tcs.svg" alt="logo: TCS"> </figure> </div> </section> <span class="industry-testimonial-wrapper"> <section class="teamsSection teamsSection-industry teams-logos"> <div class="content"> <div class="sectionText"> <h2>The industry says our platform is pretty sweet. Your teams will too.</h2> </div> <figure class="sectionFigure"> <img class="height_m" src="https://cdn.oreillystatic.com/oreilly/images/award_ti_tech_training_b_2024.png" alt="Training Industry, 2024 Top 20 Company: IT and Technical Training"> <img class="height_m" src="https://cdn.oreillystatic.com/oreilly/images/award_ti_tech_training_2024.png" alt="Training Industry, 2024 Top 20 Company: Online Learning Library"> <img class="height_s" src="https://cdn.oreillystatic.com/oreilly/images/award-bh-gold-2021.png" alt="Brandon Hall Group, Excelence in Technology Awards 2021"> <img class="height_s" src="https://cdn.oreillystatic.com/oreilly/images/award-bh-silver-2022.png" alt="Brandon Hall Group, Excelence in Technology Awards 2022"> <img class="height_s" src="https://cdn.oreillystatic.com/oreilly/images/award_edtech_2024.svg" alt="Edtech Breakthrough Award 2024"> <img class="height_m" src="https://cdn.oreillystatic.com/oreilly/images/award_g2_leader_enterprise_winter_2025.svg" alt="G2 Leader, Enterprise Winter 2025"> <img class="height_m" src="https://cdn.oreillystatic.com/oreilly/images/award_g2_best_est_roi_winter_2025.svg" alt="G2 Best Est. ROI Winter 2025"> <img class="height_m" src="https://cdn.oreillystatic.com/oreilly/images/award_g2_fastest_implementation_winter_2025.svg" alt="G2 Fastest Implementation, Winter 2025"> </figure> </div> </section> <section class="teamsSection teamsSection-video teams-video"> <div class="content"> <div class="sectionText"> <figure class="sectionLabel"> <p>Testimonials</p> </figure> <h2>Don&rsquo;t just take our word for it</h2> <p>Watch how Nuance uses O&rsquo;Reilly to help its teams prepare for tomorrow with the right knowledge today. Then check out more videos and reviews from organizations and individuals who&rsquo;ve put O&rsquo;Reilly to work. <span class="ravenVersion"><a href="https://www.oreilly.com/online-learning/testimonials.html" class="ravenLink">See more reviews</a>.</span></p> </div> <div class="sectionFigure"> <script src="https://cdnapisec.kaltura.com/p/1681692/sp/168169200/embedIframeJs/uiconf_id/47268383/partner_id/1681692"></script> <div id="kaltura_player_1532712341" style="width: 100%; height: 100%;"></div> <script> kWidget.embed({ "targetId": "kaltura_player_1532712341", "wid": "_1681692", "uiconf_id": 47268383, "flashvars": {}, "cache_st": 1695141139, "entry_id": "1_ah61ik2o" }); </script> </div> <a id="testimonial-cta" href="https://www.oreilly.com/online-learning/testimonials.html" class="textCTA-light"><span class="inner">See more reviews</span></a> </div> </section> </span> <section class="teamsSection teams-topics" id="teams-topics"> <div class="content"> <div class="sectionText"> <figure class="sectionLabel"> <p>Insights Dashboard</p> </figure> <span class="controlVersion"> <h2>Deeper insights into your own company&mdash;and the competition too</h2> <p>Our proprietary Insights Dashboard gives you an at-a-glance understanding of what employees are learning, how they&rsquo;re learning&mdash;and if they&rsquo;re keeping up with trending topics, like the ones below, against other companies in your industry. <a href="https://www.oreilly.com/online-learning/insights-dashboard.html" class="textCTA-blue"><span class="inner">Learn more</span></a></p> </span> <span class="ravenVersion"> <h2>Gain insights on your company and competition</h2> <p>Our Insights Dashboard provides a quick overview of employee learning, progress, and trends in your industry. <span class="ravenVersion"><a href="https://www.oreilly.com/online-learning/insights-dashboard.html" class="ravenLink">Learn more</a>.</span></p> </span> </div> <ul class="teams-topics-list"> <li><a href="https://www.oreilly.com/products/whats-popular-data.html">Data &amp; AI</a> <ul> <li><a href="https://www.oreilly.com/products/whats-popular-machine-learning.html">Machine learning</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-python.html">Python</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-blockchain.html">Blockchain</a></li> </ul> </li> <li><a href="https://www.oreilly.com/products/whats-popular-business.html">Business</a> <ul> <li><a href="https://www.oreilly.com/products/whats-popular-career-development.html">Career development</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-system-administration.html">System administration</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-math-science-engineering.html">Math, science &amp; engineering</a></li> </ul> </li> <li><a href="https://www.oreilly.com/products/whats-popular-software-development.html">Software development</a> <ul> <li><a href="https://www.oreilly.com/products/whats-popular-cloud-platforms.html">Cloud platforms</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-java.html">Java</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-design.html">Design</a></li> </ul> </li> <li><a href="https://www.oreilly.com/products/whats-popular-software-architecture.html">Software architecture</a> <ul> <li><a href="https://www.oreilly.com/products/whats-popular-microservices.html">Microservices</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-security.html">Security</a></li> <li><a href="https://www.oreilly.com/products/whats-popular-web-mobile.html">Web and mobile</a></li> </ul> </li> </ul> </div> </section> <section class="teamsSection teams-awards" id="awardsSection"> <div class="content"> <figure class="sectionFigure"></figure> <div class="sectionText"> <figure class="sectionIcon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 15C8.68629 15 6 12.3137 6 9V3.44444C6 3.0306 6 2.82367 6.06031 2.65798C6.16141 2.38021 6.38021 2.16141 6.65798 2.06031C6.82367 2 7.0306 2 7.44444 2H16.5556C16.9694 2 17.1763 2 17.342 2.06031C17.6198 2.16141 17.8386 2.38021 17.9397 2.65798C18 2.82367 18 3.0306 18 3.44444V9C18 12.3137 15.3137 15 12 15ZM12 15V18M18 4H20.5C20.9659 4 21.1989 4 21.3827 4.07612C21.6277 4.17761 21.8224 4.37229 21.9239 4.61732C22 4.80109 22 5.03406 22 5.5V6C22 6.92997 22 7.39496 21.8978 7.77646C21.6204 8.81173 20.8117 9.62038 19.7765 9.89778C19.395 10 18.93 10 18 10M6 4H3.5C3.03406 4 2.80109 4 2.61732 4.07612C2.37229 4.17761 2.17761 4.37229 2.07612 4.61732C2 4.80109 2 5.03406 2 5.5V6C2 6.92997 2 7.39496 2.10222 7.77646C2.37962 8.81173 3.18827 9.62038 4.22354 9.89778C4.60504 10 5.07003 10 6 10M7.44444 22H16.5556C16.801 22 17 21.801 17 21.5556C17 19.5919 15.4081 18 13.4444 18H10.5556C8.59188 18 7 19.5919 7 21.5556C7 21.801 7.19898 22 7.44444 22Z" stroke="#2563EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></figure> <h2>The 2024 O&rsquo;Reilly Awards winners are in!</h2> <p>Learn who best put the O&rsquo;Reilly learning platform to work for their organization and what the judges were looking for in winning submissions.</p> <a id="awards-cta" href="https://www.oreilly.com/online-learning/oreilly-awards-winners-2024.html" class="textCTA-light"><span class="inner">Get the results</span></a> </div> </div> </section> <section class="teamsSection teamsSection-rfp sectionBreak controlVersion"> <div class="content"> <div class="sectionText"> <h2>If you&rsquo;re putting out an RFP, we&rsquo;d like in</h2> <p>Looking for a new learning partner? We&rsquo;re quick to respond to requests for formal proposals. We just need a few details first.</p> <a href="https://www.oreilly.com/online-learning/rfp.html" class="textCTA-blue"><span class="inner">Get in touch</span></a> </div> <div class="sectionFigure"> <img src="https://cdn.oreillystatic.com/oreilly/images/enterprise_rpf_illustration_800x450_20210415.png" alt=""> </div> </div> </section> <section class="teamsSection teamsSection-govEd controlVersion"> <div class="content"> <div class="sectionText"> <h2>For government</h2> <p>We&rsquo;re approved to offer prenegotiated FEDLINK and GSA pricing for US departments and we&rsquo;re available through the UK&rsquo;s G-Cloud framework.</p> <a href="https://www.oreilly.com/online-learning/government.html" class="textCTA-light"><span class="inner">See how</span></a> </div> <div class="sectionText"> <h2>For higher ed</h2> <p>With 60K+ titles, 30K+ hours of video, courses, case studies, expert playlists, and more, O&rsquo;Reilly is a strong supplement to any curriculum.</p> <a href="https://www.oreilly.com/online-learning/academic.html" class="textCTA-light"><span class="inner">Learn more</span></a> </div> </div> </section> <section class="teams-other ravenVersion"> <div class="content"> <div class="sectionText"> <figure class="sectionLabel"> <p>Get in touch</p> </figure> <h2>See how O&rsquo;Reilly can help your tech teams stay ahead</h2> </div> <div class="teams-other-options"> <div class="item"> <h2>RFP</h2> <p>Need a learning partner? We respond quickly to proposal requests. Share a few details with us.</p> <a href="https://www.oreilly.com/online-learning/rfp.html" class="btnCTA-blue"><span class="inner">Get in touch</span></a> </div> <div class="item"> <h2>Government</h2> <p>We&rsquo;re approved to offer prenegotiated FEDLINK and GSA pricing for US departments and are available through the UK&rsquo;s G-Cloud framework.</p> <a href="https://www.oreilly.com/online-learning/government.html" class="btnCTA-blue"><span class="inner">See how</span></a> </div> <div class="item"> <h2>Higher Ed</h2> <p>With 60K+ titles, 30K+ hours of video, courses, case studies, expert playlists, and more, O&rsquo;Reilly is a strong supplement to any curriculum.</p> <a href="https://www.oreilly.com/online-learning/academic.html" class="btnCTA-blue"><span class="inner">Learn more</span></a> </div> </div> </div> </section> <section class="teamsSection teams-cta"> <div class="content"> <div class="sectionText"> <h2>See how O&rsquo;Reilly can help your tech teams stay ahead</h2> <div class="teams-cta-btnGroup"> <a id="demoLink2" href="#teams" class="blueButton btnCTA-blue"><span class="inner">Request a demo</span></a> </div> </div> </div> </section> <div class="ravenBlobs"> <div class="blob1"></div> <div class="blob2"></div> <div class="blob3"></div> <div class="blob4"></div> <div class="blob5"></div> <div class="blob6"></div> </div> </div><!-- end .teams --> <script> //Tracking document.addEventListener("DOMContentLoaded", function(event) { //GA event for "see more reviews" CTA const testimonialCta = document.getElementById('testimonial-cta'); testimonialCta.addEventListener('click', function(e) { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'click', 'eventLbl':'see more reviews', 'eventVal':0, 'nonInteraction': 0, }); }); //GA events for "Learn more" LLM CTA and LLM Image const llmCta = document.getElementById('llm-cta'); llmCta.addEventListener('click', function(e) { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'click', 'eventLbl':'llm: learn more', 'eventVal':0, 'nonInteraction': 0, }); }); const llmImage = document.getElementById('llm-image'); llmImage.addEventListener('click', function(e) { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'click', 'eventLbl':'llm: learn more', 'eventVal':0, 'nonInteraction': 0, }); }); }); </script> </main> <footer id="footer" class="footer"> <div class="content"> <div class="footer-main" aria-label="company info"> <div class="footer-mainLeft"> <div class="footer-mainLeftOne"> <div class="footer-approach"> <h2 class="footer-header"><a href="/about/">About O&rsquo;Reilly</a></h2> <ul class="footer-links"> <li><a href="/work-with-us.html">Teach/write/train</a></li> <li><a href="/careers/">Careers</a></li> <li><a href="/press/">O&rsquo;Reilly news</a></li> <li><a href="/press/media-coverage.html">Media coverage</a></li> <li><a href="/partner/signup.csp">Community partners</a></li> <li><a href="/affiliates/">Affiliate program</a></li> <li><a href="/online-learning/rfp.html">Submit an RFP</a></li> <li><a href="/diversity/">Diversity</a></li> <li><a href="/content-marketing-solutions.html" id="footerSponsorshipLink">O&rsquo;Reilly for marketers</a></li> </ul> </div> </div> <div class="footer-mainLeftTwo"> <div class="footer-contact"> <h2 class="footer-header"><a href="/online-learning/support/">Support</a></h2> <ul class="footer-links"> <li><a href="/about/contact.html">Contact us</a></li> <li><a href="/emails/newsletters/">Newsletters</a></li> <li><a href="/privacy.html">Privacy policy</a></li> <li><a href="/about/oreilly-approach-to-generative-ai.html">AI policy</a></li> </ul> <a href="https://www.linkedin.com/company/oreilly-media" target="_blank"><svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.25 32.25"><defs><style>.cls-1{fill:#d30000;fill-rule:evenodd;}</style></defs><title>linkedin-logo</title><path class="cls-1" d="M17.43,13.53v0l0,0ZM16.12,0A16.13,16.13,0,1,0,32.25,16.12,16.12,16.12,0,0,0,16.12,0ZM11.77,22.92H8.12v-11h3.65ZM9.94,10.44h0a1.89,1.89,0,0,1-2-1.89A1.91,1.91,0,0,1,10,6.65a1.9,1.9,0,1,1,0,3.79Zm15,12.48H21.28V17.05c0-1.48-.53-2.49-1.85-2.49a2,2,0,0,0-1.88,1.34,2.63,2.63,0,0,0-.12.89v6.13H13.79s.05-10,0-11h3.64V13.5a3.63,3.63,0,0,1,3.29-1.82c2.4,0,4.21,1.57,4.21,4.95Z"/></svg></a> <a href="https://www.youtube.com/user/OreillyMedia" target="_blank"><svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.25 32.25"><defs><style>.cls-1{fill:#d30000;fill-rule:evenodd;}</style></defs><title>youtube-logo</title><path class="cls-1" d="M18.35,18.68a.89.89,0,0,0-.86.63V16.94h-1v7.59h1v-.59a.92.92,0,0,0,.89.74c.52,0,.86-.36,1-1.07a8.56,8.56,0,0,0,.14-1.9,10.47,10.47,0,0,0-.12-1.93C19.21,19.05,18.87,18.68,18.35,18.68Zm.09,4.14c-.05.52-.2.77-.45.77s-.43-.21-.49-.63a7.22,7.22,0,0,1,0-1c0-.72,0-1.14,0-1.26.07-.58.23-.88.51-.88s.4.27.46.79c0,.09,0,.47,0,1.13S18.46,22.71,18.44,22.82ZM8.61,18.19H9.86v6.34H11V18.19H12.2V16.94H8.61Zm7.71-6.12c.27,0,.43-.22.49-.66,0-.09,0-.45,0-1.07V9.78c0-.58,0-.93,0-1-.07-.43-.23-.65-.48-.65s-.41.19-.48.57a8.79,8.79,0,0,0,0,1v.53c0,.71,0,1.09,0,1.16C15.88,11.82,16.05,12.07,16.32,12.07Zm-1.74,10.4a2.92,2.92,0,0,1-.06.71c-.07.25-.2.37-.4.37s-.32-.11-.38-.34a2.63,2.63,0,0,1-.05-.66V18.83h-1v4.48c0,.91.33,1.37,1,1.37A1,1,0,0,0,14.6,24v.57h1v-5.7h-1Zm7.1-3.79a1.35,1.35,0,0,0-1.22.59,2.48,2.48,0,0,0-.3,1.07c0,.23,0,.61,0,1.16s0,1.13,0,1.37a2.93,2.93,0,0,0,.35,1.27,1.25,1.25,0,0,0,1.14.54,1.36,1.36,0,0,0,1.13-.45,2.29,2.29,0,0,0,.37-1.43s0-.07,0-.11v-.12h-1c0,.75-.17,1.12-.51,1.12s-.38-.18-.45-.56a4.68,4.68,0,0,1-.06-.9c0-.18,0-.31,0-.37h2v-.43a4.86,4.86,0,0,0-.3-2.11A1.28,1.28,0,0,0,21.68,18.68ZM22.15,21h-1c0-.05,0-.11,0-.16v-.08a1.64,1.64,0,0,1,.11-.8.39.39,0,0,1,.38-.23.42.42,0,0,1,.43.33,2.32,2.32,0,0,1,.07.7Zm-6-21A16.13,16.13,0,1,0,32.25,16.12,16.12,16.12,0,0,0,16.12,0Zm2.51,7.2h1V11a2.52,2.52,0,0,0,.06.66c.06.23.18.34.38.34s.34-.12.41-.37a3.76,3.76,0,0,0,.05-.71V7.2h1v5.74h-1v-.57a1,1,0,0,1-.93.72c-.66,0-1-.46-1-1.38ZM15,8a1.29,1.29,0,0,1,1.33-.92A1.3,1.3,0,0,1,17.65,8a6.77,6.77,0,0,1,.23,2.1,6.77,6.77,0,0,1-.23,2.1,1.3,1.3,0,0,1-1.32.92A1.29,1.29,0,0,1,15,12.17a6.77,6.77,0,0,1-.23-2.1A6.86,6.86,0,0,1,15,8ZM11.45,5.3l.89,2.87.88-2.87H14.4L12.88,9.7v3.24h-1.1V9.7L10.24,5.3ZM24.93,23.91a3,3,0,0,1-3,3h-12a3,3,0,0,1-3-3V18.05a3,3,0,0,1,3-3h12a3,3,0,0,1,3,3Z"/></svg></a> </div> <div class="footer-international"> <h2 class="footer-header">International</h2> <ul class="footer-links"> <li><a href="https://www.oreilly.com/anz/">Australia &amp; New Zealand</a></li> <li><a href="https://oreilly.hk/">Hong Kong &amp; Taiwan</a></li> <li><a href="https://oreillylearning.in/">India</a></li> <li><a href="https://oreilly.id/">Indonesia</a></li> <li><a href="https://www.oreilly.co.jp/index.shtml">Japan</a></li> </ul> </div> </div> </div> <div class="footer-download" id="download-info"> <h2 class="footer-header">Download the O&rsquo;Reilly App</h2> <p>Take O&rsquo;Reilly with you and learn anywhere, anytime on your phone <span class="nowrap">and tablet.</span></p> <div class="footer-downloadLinks"> <a href="https://itunes.apple.com/us/app/safari-to-go/id881697395"><img src="https://cdn.oreillystatic.com/oreilly/images/app-store-logo.png" alt="Apple app store" /></a> <a href="https://play.google.com/store/apps/details?id=com.safariflow.queue"><img src="https://cdn.oreillystatic.com/oreilly/images/google-play-logo.png" alt="Google play store" /></a> </div> </div> <div class="footer-download" id="tv-info"> <h2 class="footer-header">Watch on your big screen</h2> <p>View all O&rsquo;Reilly videos, Superstream events, and Meet the Expert sessions on your <span class="nowrap">home TV.</span></p> <div class="footer-downloadLinks"> <a href="https://channelstore.roku.com/details/c8a2d0096693eb9455f6ac165003ee06/oreilly"><img src="https://cdn.oreillystatic.com/oreilly/images/roku-tv-logo.png" alt="Roku Players and TVs" /></a> <a href="https://www.amazon.com/OReilly-Media-Inc/dp/B087YYHL5C/ref=sr_1_2?dchild=1&keywords=oreilly&qid=1604964116&s=mobile-apps&sr=1-2"><img src="https://cdn.oreillystatic.com/oreilly/images/amazon-appstore-logo.png" alt="Amazon appstore" /></a> </div> </div> <div class="footer-donotsell" id="donotsell-info"> <h2 class="footer-header"><a href="https://www.oreilly.com/privacy.html?donotsell=show">Do not sell or share my personal information</a></h2> </div> </div> <div class="footer-subfooter"> <a href="https://www.oreilly.com" title="home page" aria-current="page"> <img class="footer-subfooterLogo" id="footer-subfooterLogo" src="https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red.svg" onerror="this.src='https://cdn.oreillystatic.com/images/sitewide-headers/oreilly_logo_mark_red_@2x.png'; this.onerror=null;" alt="O'Reilly home"> </a> <p>&copy; 2025, O&rsquo;Reilly Media, Inc. All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.</p> <p><a href="/terms/">Terms of service</a> &bull; <a href="/privacy.html">Privacy policy</a> &bull; <a href="/about/editorial_independence.html">Editorial independence</a><span class="transparencyStatement" style="display:none;"> &bull; <a href="/modern-slavery-act-transparency-statement.html">Modern Slavery Act Statement</a></span></p> </div> </div> </footer> <script src="https://cdn.oreillystatic.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script> <script> $(function() { //Toggle isActive and mobileHidden classes for mobileNavButton $('nav #mobileNavButton').on('click', function() { var expanded = $(this).attr('aria-expanded') === 'true' || false; $(this).attr('aria-expanded', !expanded); $(this).toggleClass("isActive"); $(this).next().toggleClass("mobileHidden"); }); //Toggle isFocused class for keyboard navigation of submenus $('nav #menuList .menuList-subItem a').each(function(navItem) { $(this).on('focus', function() { $(this).parent().parent().toggleClass('isFocused'); }); $(this).on('blur', function() { $(this).parent().parent().toggleClass('isFocused'); }); }); //Toggle mobileHidden class accordian elements $('.mobileAccordian').each(function() { var $btn = $(this).find('button'); var $target = $(this).next(); $btn.on('click', function() { var expanded = $btn.attr('aria-expanded') === 'true' || false; $btn.attr('aria-expanded', !expanded); $target.toggleClass("mobileHidden"); }); }); //Search platform form action function searchSubmit(e) { e.preventDefault(); sParameter = searchForm.search.value; sParameter = encodeURIComponent(sParameter.trim()); sURL = searchForm.action + '?query=' + sParameter; window.location = sURL; //GA event for search dataLayer.push({ 'event': 'eventTracker', 'eventCat':'site search', 'eventAct':'search box', 'eventLbl':'explore our content', 'eventVal':0, 'nonInteraction': 0, }); } const searchForm = document.getElementById('js-searchForm'); searchForm.addEventListener('submit', searchSubmit); //Search button action function showNavSearch(e) { $('.menuList-item-search').addClass('overlay'); $('.menuList-item-search input#search').focus(); } const searchButton = document.getElementById('js-searchButton'); searchButton.addEventListener('click', showNavSearch); //Close search button action function hideNavSearch(e) { $('.menuList-item-search').removeClass('overlay'); } const searchCloseButton = document.getElementById('js-searchCloseButton'); searchCloseButton.addEventListener('click', hideNavSearch); //"Try Now" nav button tracking $('#nav-tryNow').on('click', function() { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'nav', 'eventLbl':'try now', 'eventVal':0, 'nonInteraction': 0, }); }); //"Sign in" nav button tracking $('#nav-signIn').on('click', function() { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'nav', 'eventLbl':'sign in', 'eventVal':0, 'nonInteraction': 0, }); }); //"O'Reilly Platform" nav button tracking $('#nav-platform').on('click', function() { dataLayer.push({ 'event': 'eventTracker', 'eventCat':'marketing', 'eventAct':'nav', 'eventLbl':'oreilly platform', 'eventVal':0, 'nonInteraction': 0, }); }); }); (function(document, history, location) { var HISTORY_SUPPORT = !!(history && history.pushState); FIXED_HEADER_HEIGHT = document.querySelector('body > header').offsetHeight; FIXED_HEADER_HEIGHT += 20; var anchorScrolls = { ANCHOR_REGEX: /^#[^ ]+$/, OFFSET_HEIGHT_PX: FIXED_HEADER_HEIGHT, /** * Establish events, and fix initial scroll position if a hash is provided. */ init: function() { this.scrollToCurrent(); window.addEventListener('hashchange', this.scrollToCurrent.bind(this)); document.body.addEventListener('click', this.delegateAnchors.bind(this)); }, /** * Return the offset amount to deduct from the normal scroll position. * Modify as appropriate to allow for dynamic calculations */ getFixedOffset: function() { return this.OFFSET_HEIGHT_PX; }, /** * If the provided href is an anchor which resolves to an element on the * page, scroll to it. * @param {String} href * @return {Boolean} - Was the href an anchor. */ scrollIfAnchor: function(href, pushToHistory) { var match, rect, anchorOffset; if(!this.ANCHOR_REGEX.test(href)) { return false; } match = document.getElementById(href.slice(1)); if(match) { rect = match.getBoundingClientRect(); anchorOffset = window.pageYOffset + rect.top - this.getFixedOffset(); // Wait 1ms and scroll. It wasn't consistently scrolling immediately. setTimeout(function(){ window.scroll(window.pageXOffset, anchorOffset); }, 1); // Add the state to history as-per normal anchor links if(HISTORY_SUPPORT && pushToHistory) { history.pushState({}, document.title, location.pathname + href); } } return !!match; }, /** * Attempt to scroll to the current location's hash. */ scrollToCurrent: function() { this.scrollIfAnchor(window.location.hash); }, /** * If the click event's target was an anchor, fix the scroll position. */ delegateAnchors: function(e) { var elem = e.target; if( elem.nodeName === 'A' && this.scrollIfAnchor(elem.getAttribute('href'), true) ) { e.preventDefault(); } } }; window.addEventListener( 'DOMContentLoaded', anchorScrolls.init.bind(anchorScrolls) ); })(window.document, window.history, window.location); </script><script type="text/javascript" src="/rhNq5lNIuI0lo/_EQN5TzEsqDrg/M/uOitL6rkmXLN7pOJ/WlluOA/M3BwKF0/PXHgB"></script><link rel="stylesheet" type="text/css" href="/rhNq5lNIuI0lo/_EQN5TzEsqDrg/M/SJit7b/SAxgOA/cUBJARt/CB3xY"><script src="/rhNq5lNIuI0lo/_EQN5TzEsqDrg/M/SJit7b/SAxgOA/JXtFVXR/HMm0p" async defer></script><div id="sec-overlay" style="display:none;"><div id="sec-container"></div></div></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10