Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!doctype html>
- <html lang='en' class="">
- <head>
- <title>
- Humble Book Bundle: Cybersecurity presented by Wiley (pay what you want and help charity)
- </title>
- <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
- <meta name="application-name" content="Humble Bundle">
- <meta name="msapplication-TileColor" content="rgb(218,222,230)">
- <meta name="msapplication-TileImage" content="https://humblebundle-a.akamaihd.net/static/hashed/49bccd0f2050e5fcfc3c442b269d4ff47b038ed9.png">
- <meta name='medium' content='news' />
- <meta name="theme-color" content="rgb(73,79,92)">
- <meta property='og:site_name' content='Humble Bundle' />
- <meta property='og:type' content='website' />
- <meta property="fb:app_id" content="101146256651042" />
- <meta property="fb:profile_id" content="162315830478396" />
- <meta property="fb:pages" content="162315830478396"><meta name='robots' content='noindex, nofollow'>
- <meta name='og:image:width' content='1200'>
- <meta name='og:image:height' content='630'>
- <meta itemprop='image' content='https://humblebundle.imgix.net/misc/files/hashed/b3a575f3721ad7fc82416fef6aa9a2bc1ec3177f.png?auto=format&lossless=1&ixlib=python-0.2.0&s=716eb9b765d06783f32def6a5116d206' />
- <meta name='title' content='Humble Book Bundle: Cybersecurity presented by Wiley'/>
- <meta name='description' content='Pay what you want for cybersecurity ebooks and support charity!' />
- <meta property='og:url' content='https://www.humblebundle.com/books/cybersecurity-wiley'/>
- <meta property='og:title' content='Humble Book Bundle: Cybersecurity presented by Wiley'/>
- <meta property='og:description' content='Pay what you want for cybersecurity ebooks and support charity!' />
- <meta property='og:image' content='https://humblebundle.imgix.net/misc/files/hashed/b3a575f3721ad7fc82416fef6aa9a2bc1ec3177f.png?auto=format&lossless=1&ixlib=python-0.2.0&s=716eb9b765d06783f32def6a5116d206' />
- <link rel='image_src' href='https://humblebundle.imgix.net/misc/files/hashed/b3a575f3721ad7fc82416fef6aa9a2bc1ec3177f.png?auto=format&lossless=1&ixlib=python-0.2.0&s=716eb9b765d06783f32def6a5116d206' />
- <meta name="twitter:card" content="summary_large_image" />
- <meta name="twitter:site" content="@humble" />
- <meta name="twitter:title" content="Humble Book Bundle: Cybersecurity presented by Wiley" />
- <meta name="twitter:description" content="Pay what you want for cybersecurity ebooks and support charity!" />
- <meta name="twitter:image" content="https://humblebundle.imgix.net/misc/files/hashed/a1b497a33b09ca5ed2a98ffaa05bb5ddc05fcf0b.png?auto=format&lossless=1&ixlib=python-0.2.0&s=dc028671827dd4debafa21d595065da3" />
- <meta name="twitter:url" content="https://www.humblebundle.com/books/cybersecurity-wiley" />
- <link rel="apple-touch-icon" sizes="144x144" href="https://humblebundle-a.akamaihd.net/static/hashed/03df0490a53d595fd930f9fff52038366d60a05d.png">
- <link rel="icon" type="image/png" sizes="16x16" href="https://humblebundle-a.akamaihd.net/static/hashed/4c8bbc6fc7b2b8a9fa21e895afe1157188e28bfb.png">
- <link rel="icon" type="image/png" sizes="32x32" href="https://humblebundle-a.akamaihd.net/static/hashed/46cf2ed85a0641bfdc052121786440c70da77d75.png">
- <link rel="shortcut icon" href="https://humblebundle-a.akamaihd.net/static/hashed/47e474eed38083df699b7dfd8d29d575e3398f1e.ico">
- <link rel="search" type="application/opensearchdescription+xml" title="Humble Bundle Search" href="https://humblebundle-a.akamaihd.net/static/hashed/6606d9a78e51b66308bfa309bcba0b60395dd5e5.xml" />
- <link rel='alternate' type='application/rss+xml' title='Humble Mumble' href='http://blog.humblebundle.com/rss' />
- <style>
- .button { border: none; border-radius: 3px; color: white !important; cursor: pointer; display: inline-block; font-size: 14px; line-height: 26px; margin: 0; padding: 0px 10px; text-decoration: none; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); transition: box-shadow 0.2s ease, background 0.2s ease; }
- .button.light-background { box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1), inset 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 2px 0px 0px rgba(255, 255, 255, 0.2); }
- .button.dark-background { box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.2), 0px 1px 2px 0px rgba(0, 0, 0, 0.2), inset 0px 1px 0px 0px rgba(255, 255, 255, 0.2); }
- .button:focus { outline: none; }
- .button:active { box-shadow: inset 0px 1px 2px 0px rgba(0, 0, 0, 0.2), inset 0px 0px 0px 1px rgba(0, 0, 0, 0.2); }
- .button.large { box-sizing: border-box; line-height: 46px; font-size: 18px; padding: 0 20px; margin-top: 1px; }
- .button.blue { background-image: linear-gradient(-180deg, #4dc4ff 0%, #17a1e6 100%); }
- .button.blue:hover { background-image: linear-gradient(-180deg, #80d4ff 0%, #19b2ff 100%); }
- .button.blue:active { background: #148fcc; }
- .button.red { background-image: linear-gradient(-180deg, #ff5244 0%, #e62217 100%); }
- .button.red:hover { background-image: linear-gradient(-180deg, #ff8280 0%, #ff0b0e 100%); }
- .button.red:active { background: #148fcc; }
- .button.green { background-color: #97b147; background-image: linear-gradient(-180deg, #97b147 0%, #7e992e 100%); }
- .button.green:hover { background-image: linear-gradient(-180deg, #adcc52 0%, #93b336 100%); }
- .button.green:active { background: #7e992e; }
- .button.gray { background-color: #bbb; background-image: linear-gradient(-180deg, #bbb 0%, #aaa 100%); }
- .button.gray:hover { background-image: linear-gradient(-180deg, #bbb 0%, #aaa 100%); }
- .button.gray:active { background: #999; }
- .button.disabled { opacity: 0.5; cursor: default; pointer-events: none; }
- .plain-oval, .gray-oval, .round-active-button { padding: 5px 10px; border: 1px solid #898e97; border-radius: 18px; background: white; color: black; font-weight: bold; text-align: center; font-size: 14px; display: inline-block; }
- .plain-oval:focus, .gray-oval:focus, .round-active-button:focus { outline: none; }
- .gray-oval, .round-active-button { background-color: #a1a7b2; color: white; text-shadow: 1px 1px #898e97; }
- .round-active-button { cursor: pointer; background: linear-gradient(-180deg, #97b147 0%, #7e992e 100%); text-decoration: none; color: white !important; }
- .round-active-button:hover, .round-active-button:focus { filter: brightness(1.1); }
- .fixed-width-button { width: 100px; }
- .flat-button { border: 1px solid rgba(0, 0, 0, 0.25); border-radius: 5px; display: inline-block; background-color: transparent; color: white; padding: 0.5em 1em; font-weight: bold; text-align: center; text-decoration: none; transition: background-color 0.1s ease-in-out; }
- .flat-button.disabled { opacity: 0.5; cursor: default; pointer-events: none; }
- .flat-button.large-button { font-size: 1.15em; }
- .flat-button.larger-button { font-size: 1.25em; padding: 0.85em 1.75em; }
- .flat-button.green { background-color: #97b147; }
- .flat-button.green:hover { background-color: #acc368; }
- .flat-button.blue { background-color: #17a1e5; }
- .flat-button.blue:hover { background-color: #43b4ec; }
- .flat-button.red { background-color: #cb272c; }
- .flat-button.red:hover { background-color: #dc494d; }
- .flat-button.gray { background-color: #757b86; }
- .flat-button.gray:hover { background-color: #90959e; }
- .subtab-button { border-radius: 3px; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; font-weight: bold; font-size: 14px; line-height: 17px; padding: 14px; text-decoration: none; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.2); }
- .subtab-button.grey { box-shadow: inset 0px 2px 0px 0px rgba(255, 255, 255, 0.2), inset 0px -2px 0px 0px rgba(0, 0, 0, 0.5); background-image: linear-gradient(-180deg, #A1A7B2 0%, #7B818C 100%); color: #FFFFFF; }
- .subtab-button.orange { box-shadow: inset 0px -2px 0px 0px rgba(255, 255, 255, 0.2), inset 0px 2px 0px 0px rgba(0, 0, 0, 0.2); background-image: linear-gradient(0deg, #FFAF61 0%, #EF9741 100%); color: #FFF3DD; }
- .subtab-button:hover, .subtab-button:focus { filter: brightness(1.1); }
- .simple-payment-button { outline: none; background: none; border-radius: 3px; border: none; box-shadow: inset 0px 0px 0px 1px #3b3e48; color: #494f5c; cursor: pointer; display: inline-block; line-height: 18px; padding: 10px 15px; text-decoration: none; margin-right: 10px; transition: all, 0.1s; background: #e4e7ed; }
- .simple-payment-button:focus { outline: none; }
- .simple-payment-button:hover, .simple-payment-button:active { background: #f3f5f7; }
- .payment-button { outline: none; background: none; border-radius: 3px; border: none; box-shadow: inset 0px 0px 0px 1px #3b3e48; color: #494f5c; cursor: pointer; display: inline-block; line-height: 18px; padding: 10px 15px; text-decoration: none; margin-right: 10px; transition: all, 0.1s; }
- .payment-button:focus { outline: none; }
- .payment-button:hover { box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1), inset 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 2px 0px 0px rgba(255, 255, 255, 0.2); }
- .payment-button:active { box-shadow: inset 0px 1px 2px 0px rgba(0, 0, 0, 0.2), inset 0px 0px 0px 1px rgba(0, 0, 0, 0.2); }
- .payment-button i { vertical-align: middle; }
- .stripe-payment-button { background-image: linear-gradient(#4dc4ff, #17a1e6); color: white; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1), inset 0px 0px 0px 1px rgba(0, 0, 0, 0.2), inset 0px 2px 0px 0px rgba(255, 255, 255, 0.2); }
- .stripe-payment-button:hover { background-image: linear-gradient(#80d4ff, #19b2ff); }
- .stripe-payment-button:active { background: #148fcc; }
- .stripe-payment-button .hb-stripe { font-size: 18px; margin-right: 4px; }
- .paypal-payment-button { background-image: linear-gradient(#ffebc1, #ffaa02); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1), inset 0px 0px 0px 1px #c68200, inset 0px 2px 0px 0px rgba(255, 255, 255, 0.6); padding-right: 10px; }
- .paypal-payment-button:hover { background-image: linear-gradient(#fff4db, #ffbc36); }
- .paypal-payment-button:active { background: #e69a02; }
- .paypal-payment-button img { vertical-align: middle; }
- .amazon-payment-button { background-image: linear-gradient(#ffe8ab, #f5c747); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1), inset 0px 0px 0px 1px #b38b22, inset 0px 2px 0px 0px rgba(255, 255, 255, 0.6); }
- .amazon-payment-button:hover { background-image: linear-gradient(#ffeebf, #ffd359); }
- .amazon-payment-button:active { background: #d9b03f; }
- .amazon-payment-button .hb-amazon { font-size: 18px; margin-right: 4px; }
- .bbm-modal { background: #3B3E48; color: white; font-size: 14px; font-weight: normal; box-shadow: 0 0 6px rgba(0, 0, 0, 0.6), 0 1px 2px rgba(0, 0, 0, 0.9); }
- .bbm-wrapper { background: rgba(0, 0, 0, 0.1); position: absolute; }
- /* Modal positioning */
- .bbm-wrapper { box-sizing: border-box; left: 0; top: 0; width: 100%; height: 100%; z-index: 100; padding: 0 10px 0 10px; text-align: left; overflow: auto; }
- .bbm-wrapper * { box-sizing: border-box; }
- .bbm-modal { border-radius: 3px; margin: auto; margin-bottom: 40px; width: auto; max-width: 550px; }
- .bbm-views { width: 100%; box-sizing: border-box; }
- .generic-bbm-views { width: 100%; }
- /* BLOCKS */
- .bbm-modal__topbar, .bbm-modal__bottombar { padding: 0 30px; }
- .bbm-modal__topbar { border-bottom: 1px solid rgba(0, 0, 0, 0.1); border-radius: 3px 3px 0 0; padding: 10px 30px; background: #272C33; font-weight: bold; font-size: 16px; margin-bottom: 30px; }
- .bbm-modal__topbar i { margin-right: 10px; }
- .bbm-modal__topbar > ul { list-style: none; text-align: center; padding: 0; margin: 0; }
- .bbm-modal__tab { display: inline-block; padding: 15px 10px; }
- .bbm-modal__tab a { font-size: 16px; font-weight: bold; color: #999999; }
- .bbm-modal__tab a:hover, .bbm-modal__tab a.active { color: #222222; }
- .bbm-modal__title { padding: 20px 30px; margin: 0; line-height: 1em; color: #312d3a; }
- .bbm-modal__section { padding: 0 30px; font-size: 14px; font-weight: normal; line-height: 26px; color: white; }
- .bbm-modal__section p:last-child { padding: 0; margin-bottom: 0; }
- .bbm-modal__section a { color: white; }
- .bbm-modal__section h3 { margin: 0; font-size: 20px; line-height: 1em; }
- .bbm-modal__bottombar { border-top: 1px solid rgba(0, 0, 0, 0.1); padding: 18px; text-align: right; margin-top: 30px; }
- /* MODULES */
- .bbm-group { content: ""; display: table; clear: both; }
- .bbm-button { display: inline-block; color: rgba(49, 45, 58, 0.8); text-decoration: none; font-size: 14px; font-weight: 500; position: relative; line-height: 1em; padding: 10px 14px; border-radius: 3px; background: #fcfcfc; background-image: -o-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: -moz-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: -webkit-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: -ms-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); -moz-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.2); box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.2); }
- .bbm-button.inactive { opacity: 0.5; pointer-events: none; }
- .bbm-button:active { background-image: -o-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: -moz-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: -webkit-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: -ms-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); -moz-box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.2); }
- /* ANIMATIONS */
- /* Open modal */
- @-webkit-keyframes bbm-open { 0% { -webkit-transform: matrix(0.99126, 0, 0, 0.99126, 0, 43.8813); opacity: 0.1259; }
- 4% { -webkit-transform: matrix(0.99295, 0, 0, 0.99295, 0, 45.06809); opacity: 0.29544; }
- 8% { -webkit-transform: matrix(0.99467, 0, 0, 0.99467, 0, 46.26922); opacity: 0.46703; }
- 12% { -webkit-transform: matrix(0.99619, 0, 0, 0.99619, 0, 47.33355); opacity: 0.61908; }
- 16% { -webkit-transform: matrix(0.99743, 0, 0, 0.99743, 0, 48.19991); opacity: 0.74284; }
- 20% { -webkit-transform: matrix(0.99837, 0, 0, 0.99837, 0, 48.86067); opacity: 0.83724; }
- 24% { -webkit-transform: matrix(0.99905, 0, 0, 0.99905, 0, 49.33658); opacity: 0.90523; }
- 28% { -webkit-transform: matrix(0.99952, 0, 0, 0.99952, 0, 49.66049); opacity: 0.9515; }
- 32% { -webkit-transform: matrix(0.99981, 0, 0, 0.99981, 0, 49.8675); opacity: 0.98107; }
- 36% { -webkit-transform: matrix(0.99999, 0, 0, 0.99999, 0, 49.98966); opacity: 0.99852; }
- 40% { -webkit-transform: matrix(1.00008, 0, 0, 1.00008, 0, 50.05361); opacity: 1.00766; }
- 44% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.08); opacity: 1.01143; }
- 48% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08394); opacity: 1.01199; }
- 52% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.07589); opacity: 1.01084; }
- 56% { -webkit-transform: matrix(1.00009, 0, 0, 1.00009, 0, 50.06265); opacity: 1.00895; }
- 60% { -webkit-transform: matrix(1.00007, 0, 0, 1.00007, 0, 50.04833); opacity: 1.0069; }
- 64% { -webkit-transform: matrix(1.00005, 0, 0, 1.00005, 0, 50.03518); opacity: 1.00503; }
- 68% { -webkit-transform: matrix(1.00004, 0, 0, 1.00004, 0, 50.02421); opacity: 1.00346; }
- 72% { -webkit-transform: matrix(1.00002, 0, 0, 1.00002, 0, 50.01567); opacity: 1.00224; }
- 76% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00941); opacity: 1.00134; }
- 80% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00506); opacity: 1.00072; }
- 84% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.00223); opacity: 1.00032; }
- 88% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.0005); opacity: 1.00007; }
- 92% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99956); opacity: 0.99994; }
- 96% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99913); opacity: 0.99988; }
- 100% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50); opacity: 1; } }
- .bbm-modal--open { -webkit-animation-duration: 0.3s; -webkit-animation-name: bbm-open; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* Open a stacked modal */
- @-webkit-keyframes bbm-stacked { 0% { -webkit-transform: matrix(0.99874, 0, 0, 0.99874, 0, 49.1187); opacity: 0.93705; }
- 4% { -webkit-transform: matrix(0.99705, 0, 0, 0.99705, 0, 47.93192); opacity: 0.85228; }
- 8% { -webkit-transform: matrix(0.99533, 0, 0, 0.99533, 0, 46.73078); opacity: 0.76648; }
- 12% { -webkit-transform: matrix(0.99381, 0, 0, 0.99381, 0, 45.66645); opacity: 0.69046; }
- 16% { -webkit-transform: matrix(0.99257, 0, 0, 0.99257, 0, 44.80009); opacity: 0.62858; }
- 20% { -webkit-transform: matrix(0.99163, 0, 0, 0.99163, 0, 44.13933); opacity: 0.58138; }
- 24% { -webkit-transform: matrix(0.99095, 0, 0, 0.99095, 0, 43.66342); opacity: 0.54739; }
- 28% { -webkit-transform: matrix(0.99049, 0, 0, 0.99049, 0, 43.33951); opacity: 0.52425; }
- 32% { -webkit-transform: matrix(0.99019, 0, 0, 0.99019, 0, 43.1325); opacity: 0.50946; }
- 36% { -webkit-transform: matrix(0.99002, 0, 0, 0.99002, 0, 43.01034); opacity: 0.50074; }
- 40% { -webkit-transform: matrix(0.98992, 0, 0, 0.98992, 0, 42.94639); opacity: 0.49617; }
- 44% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92001); opacity: 0.49429; }
- 48% { -webkit-transform: matrix(0.98988, 0, 0, 0.98988, 0, 42.91606); opacity: 0.494; }
- 52% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92411); opacity: 0.49458; }
- 56% { -webkit-transform: matrix(0.98991, 0, 0, 0.98991, 0, 42.93736); opacity: 0.49553; }
- 60% { -webkit-transform: matrix(0.98993, 0, 0, 0.98993, 0, 42.95167); opacity: 0.49655; }
- 64% { -webkit-transform: matrix(0.98995, 0, 0, 0.98995, 0, 42.96482); opacity: 0.49749; }
- 68% { -webkit-transform: matrix(0.98997, 0, 0, 0.98997, 0, 42.97579); opacity: 0.49827; }
- 72% { -webkit-transform: matrix(0.98998, 0, 0, 0.98998, 0, 42.98433); opacity: 0.49888; }
- 76% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99059); opacity: 0.49933; }
- 80% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99494); opacity: 0.49964; }
- 84% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.99777); opacity: 0.49984; }
- 88% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.9995); opacity: 0.49996; }
- 92% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00044); opacity: 0.50003; }
- 96% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00088); opacity: 0.50006; }
- 100% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43); opacity: 0.5; } }
- .bbm-modal--stacked { -webkit-animation-duration: 0.43333s; -webkit-animation-name: bbm-stacked; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* destroy a stacked modal */
- @-webkit-keyframes bbm-stacked-reverse { 0% { -webkit-transform: matrix(0.99123, 0, 0, 0.99123, 0, 43.86266); opacity: 0.56162; }
- 4% { -webkit-transform: matrix(0.99293, 0, 0, 0.99293, 0, 45.05306); opacity: 0.64665; }
- 8% { -webkit-transform: matrix(0.99465, 0, 0, 0.99465, 0, 46.25785); opacity: 0.7327; }
- 12% { -webkit-transform: matrix(0.99618, 0, 0, 0.99618, 0, 47.32543); opacity: 0.80896; }
- 16% { -webkit-transform: matrix(0.99742, 0, 0, 0.99742, 0, 48.19443); opacity: 0.87103; }
- 20% { -webkit-transform: matrix(0.99837, 0, 0, 0.99837, 0, 48.8572); opacity: 0.91837; }
- 24% { -webkit-transform: matrix(0.99905, 0, 0, 0.99905, 0, 49.33456); opacity: 0.95247; }
- 28% { -webkit-transform: matrix(0.99951, 0, 0, 0.99951, 0, 49.65946); opacity: 0.97568; }
- 32% { -webkit-transform: matrix(0.99981, 0, 0, 0.99981, 0, 49.8671); opacity: 0.99051; }
- 36% { -webkit-transform: matrix(0.99999, 0, 0, 0.99999, 0, 49.98963); opacity: 0.99926; }
- 40% { -webkit-transform: matrix(1.00008, 0, 0, 1.00008, 0, 50.05377); opacity: 1.00384; }
- 44% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08024); opacity: 1.00573; }
- 48% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08419); opacity: 1.00601; }
- 52% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.07612); opacity: 1.00544; }
- 56% { -webkit-transform: matrix(1.00009, 0, 0, 1.00009, 0, 50.06284); opacity: 1.00449; }
- 60% { -webkit-transform: matrix(1.00007, 0, 0, 1.00007, 0, 50.04848); opacity: 1.00346; }
- 64% { -webkit-transform: matrix(1.00005, 0, 0, 1.00005, 0, 50.03529); opacity: 1.00252; }
- 68% { -webkit-transform: matrix(1.00004, 0, 0, 1.00004, 0, 50.02428); opacity: 1.00173; }
- 72% { -webkit-transform: matrix(1.00002, 0, 0, 1.00002, 0, 50.01572); opacity: 1.00112; }
- 76% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00944); opacity: 1.00067; }
- 80% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00508); opacity: 1.00036; }
- 84% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.00223); opacity: 1.00016; }
- 88% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.0005); opacity: 1.00004; }
- 92% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99956); opacity: 0.99997; }
- 96% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99912); opacity: 0.99994; }
- 100% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50); opacity: 1; } }
- .bbm-modal--stacked-reverse { -webkit-animation-duration: 0.43333s; -webkit-animation-name: bbm-stacked-reverse; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* destroy a modal */
- @-webkit-keyframes bbm-destroy { 0% { -webkit-transform: matrix(0.99874, 0, 0, 0.99874, 0, 49.1187); opacity: 0.8741; }
- 4% { -webkit-transform: matrix(0.99705, 0, 0, 0.99705, 0, 47.93192); opacity: 0.70456; }
- 8% { -webkit-transform: matrix(0.99533, 0, 0, 0.99533, 0, 46.73078); opacity: 0.53297; }
- 12% { -webkit-transform: matrix(0.99381, 0, 0, 0.99381, 0, 45.66645); opacity: 0.38092; }
- 16% { -webkit-transform: matrix(0.99257, 0, 0, 0.99257, 0, 44.80009); opacity: 0.25716; }
- 20% { -webkit-transform: matrix(0.99163, 0, 0, 0.99163, 0, 44.13933); opacity: 0.16276; }
- 24% { -webkit-transform: matrix(0.99095, 0, 0, 0.99095, 0, 43.66342); opacity: 0.09477; }
- 28% { -webkit-transform: matrix(0.99049, 0, 0, 0.99049, 0, 43.33951); opacity: 0.0485; }
- 32% { -webkit-transform: matrix(0.99019, 0, 0, 0.99019, 0, 43.1325); opacity: 0.01893; }
- 36% { -webkit-transform: matrix(0.99002, 0, 0, 0.99002, 0, 43.01034); opacity: 0.00148; }
- 40% { -webkit-transform: matrix(0.98992, 0, 0, 0.98992, 0, 42.94639); opacity: -0.00766; }
- 44% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92001); opacity: -0.01143; }
- 48% { -webkit-transform: matrix(0.98988, 0, 0, 0.98988, 0, 42.91606); opacity: -0.01199; }
- 52% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92411); opacity: -0.01084; }
- 56% { -webkit-transform: matrix(0.98991, 0, 0, 0.98991, 0, 42.93736); opacity: -0.00895; }
- 60% { -webkit-transform: matrix(0.98993, 0, 0, 0.98993, 0, 42.95167); opacity: -0.0069; }
- 64% { -webkit-transform: matrix(0.98995, 0, 0, 0.98995, 0, 42.96482); opacity: -0.00503; }
- 68% { -webkit-transform: matrix(0.98997, 0, 0, 0.98997, 0, 42.97579); opacity: -0.00346; }
- 72% { -webkit-transform: matrix(0.98998, 0, 0, 0.98998, 0, 42.98433); opacity: -0.00224; }
- 76% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99059); opacity: -0.00134; }
- 80% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99494); opacity: -0.00072; }
- 84% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.99777); opacity: -0.00032; }
- 88% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.9995); opacity: -7e -5; }
- 92% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00044); opacity: 6.0 e-05; }
- 96% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00088); opacity: 0.00012; }
- 100% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43); opacity: 0; } }
- .bbm-modal--destroy { -webkit-animation-duration: 0.43333s; -webkit-animation-name: bbm-destroy; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- .curtain { display: none; opacity: 0.75; position: absolute; background: black; top: 0; bottom: 0; left: 0; right: 0; z-index: 10; }
- .curtain .dialogs { height: 0; padding-bottom: 56.25%; width: auto; margin: auto; }
- .curtain .dialogs.spinner, .curtain .dialogs.spinner img { width: 48px; display: none; }
- .curtain div.loading-bindle { display: block; width: 32; height: 26px; zoom: 3; margin: 0 auto 10px auto; background-position: -480px 0; }
- .curtain div.loading-bindle.f10 { background-position: -480px 0; }
- .curtain div.loading-bindle.f11 { background-position: -512px 0; }
- .curtain div.loading-bindle.f12 { background-position: -544px 0; }
- .curtain div.loading-bindle.f13 { background-position: -576px 0; }
- .curtain div.loading-bindle.f14 { background-position: -608px 0; }
- .curtain div.loading-bindle.f15 { background-position: -640px 0; }
- .curtain div.loading-bindle.f16 { background-position: -672px 0; }
- .curtain div.loading-bindle.f17 { background-position: -704px 0; }
- .curtain div.loading-bindle.f18 { background-position: -736px 0; }
- .curtain div.loading-bindle.f19 { background-position: -768px 0; }
- .curtain div.loading-bindle.f20 { background-position: -800px 0; }
- .curtain div.loading-bindle.f21 { background-position: -832px 0; }
- .curtain div.loading-bindle.f22 { background-position: -864px 0; }
- .curtain div.loading-bindle.f23 { background-position: -896px 0; }
- .curtain div.loading-bindle.f24 { background-position: -928px 0; }
- .curtain div.loading-bindle.f25 { background-position: 0px 0; }
- .curtain div.loading-bindle.f26 { background-position: -32px 0; }
- .curtain div.loading-bindle.f27 { background-position: -64px 0; }
- .curtain div.loading-bindle.f28 { background-position: -96px 0; }
- .curtain div.loading-bindle.f29 { background-position: -128px 0; }
- .curtain div.loading-bindle.f30 { background-position: -160px 0; }
- .curtain div.loading-bindle.f31 { background-position: -192px 0; }
- .curtain div.loading-bindle.f32 { background-position: -224px 0; }
- .curtain div.loading-bindle.f33 { background-position: -256px 0; }
- .curtain div.loading-bindle.f34 { background-position: -288px 0; }
- .curtain div.loading-bindle.f35 { background-position: -320px 0; }
- .curtain div.loading-bindle.f36 { background-position: -352px 0; }
- .curtain div.loading-bindle.f37 { background-position: -384px 0; }
- .curtain div.loading-bindle.f38 { background-position: -416px 0; }
- .curtain div.loading-bindle.f39 { background-position: -448px 0; }
- .curtain div.loading-bindle.f40 { background-position: -480px 0; }
- .cover { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; text-align: center; color: #fff; }
- .cover.start, .cover.load { cursor: pointer; font-size: 256px; display: none; }
- .cover.show { display: inline-block; }
- .progress { display: none; width: 80%; height: 260px; margin: auto; text-align: center; }
- .progress .progress-bar { background: #202226; border: 1px solid #323641; height: 16px; overflow: hidden; border-radius: 3px; position: relative; padding: 4px; width: 100%; }
- .progress .progress-bar .progress-done { background-image: linear-gradient(to right, #C82931 11%, #A9171C 100%); border: 1px solid #282C34; height: 14px; border-radius: 3px; float: left; }
- .progress .status, .progress .unsupported { line-height: 20px; color: #FFF; margin-top: 10px; width: 100%; display: block; }
- .progress .demo-message { color: #FFF; }
- .modal-holder label { display: block; }
- .modal-holder .controls { line-height: 40px; margin-top: 10px; }
- .modal-holder .controls .button { display: inline-block; }
- .modal-holder .button { margin: 5px; padding: 5px 20px; }
- .modal-holder .button.green, .modal-holder .button.red, .modal-holder .button.gray { color: white !important; border-radius: 3px; border: 0px solid rgba(0, 0, 0, 0.2); box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.2), inset 0px 1px 0px 0px rgba(255, 255, 255, 0.2); }
- .modal-holder .button.green { background: #97B147; }
- .modal-holder .button.red { background: #E62217; }
- .modal-holder .button.gray { background: #A1A7B2; }
- div.loading-bindle { display: block; width: 32; height: 26px; zoom: 3; margin: 0 auto 10px auto; background-position: -480px 0; }
- div.loading-bindle.f10 { background-position: -480px 0; }
- div.loading-bindle.f11 { background-position: -512px 0; }
- div.loading-bindle.f12 { background-position: -544px 0; }
- div.loading-bindle.f13 { background-position: -576px 0; }
- div.loading-bindle.f14 { background-position: -608px 0; }
- div.loading-bindle.f15 { background-position: -640px 0; }
- div.loading-bindle.f16 { background-position: -672px 0; }
- div.loading-bindle.f17 { background-position: -704px 0; }
- div.loading-bindle.f18 { background-position: -736px 0; }
- div.loading-bindle.f19 { background-position: -768px 0; }
- div.loading-bindle.f20 { background-position: -800px 0; }
- div.loading-bindle.f21 { background-position: -832px 0; }
- div.loading-bindle.f22 { background-position: -864px 0; }
- div.loading-bindle.f23 { background-position: -896px 0; }
- div.loading-bindle.f24 { background-position: -928px 0; }
- div.loading-bindle.f25 { background-position: 0px 0; }
- div.loading-bindle.f26 { background-position: -32px 0; }
- div.loading-bindle.f27 { background-position: -64px 0; }
- div.loading-bindle.f28 { background-position: -96px 0; }
- div.loading-bindle.f29 { background-position: -128px 0; }
- div.loading-bindle.f30 { background-position: -160px 0; }
- div.loading-bindle.f31 { background-position: -192px 0; }
- div.loading-bindle.f32 { background-position: -224px 0; }
- div.loading-bindle.f33 { background-position: -256px 0; }
- div.loading-bindle.f34 { background-position: -288px 0; }
- div.loading-bindle.f35 { background-position: -320px 0; }
- div.loading-bindle.f36 { background-position: -352px 0; }
- div.loading-bindle.f37 { background-position: -384px 0; }
- div.loading-bindle.f38 { background-position: -416px 0; }
- div.loading-bindle.f39 { background-position: -448px 0; }
- div.loading-bindle.f40 { background-position: -480px 0; }
- .modal-gallery-wrapper { overflow: auto; margin: auto; height: 300px; width: 450px; background: #3b3e48; padding: 10px; }
- .modal-gallery-wrapper a { text-decoration: none; display: inline-block; color: white; }
- .modal-gallery-wrapper .grid-item { display: inline-block; position: relative; background: black; width: 200px; height: 150px; margin: 2px; }
- .modal-gallery-wrapper .grid-item .content { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; width: 100%; max-height: 100%; }
- .modal-gallery-wrapper .grid-item.take-screenshot:hover { background: #ccc; color: black; cursor: pointer; }
- .modal-gallery-wrapper .grid-item.take-screenshot .content { top: 43%; text-align: center; }
- .modal-gallery-wrapper .grid-item.pending-image-spinner img { margin: auto; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
- .modal-gallery-wrapper .grid-item .hover-wrapper { position: absolute; margin: auto; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.5); font-size: 18px; text-align: center; display: none; }
- .modal-gallery-wrapper .grid-item .hover-wrapper .shares { position: absolute; top: 40%; left: 0; right: 0; margin: auto; cursor: pointer; }
- .modal-gallery-wrapper .grid-item .hover-wrapper .shares .hb-twitter:hover { color: #55acee; }
- .modal-gallery-wrapper .grid-item .hover-wrapper .shares .hb-facebook:hover { color: #3b5998; }
- .modal-gallery-wrapper .grid-item .hover-wrapper .delete-screenshot { position: absolute; bottom: 5px; right: 5px; cursor: pointer; }
- .modal-gallery-wrapper .grid-item:hover .hover-wrapper { display: block; }
- .sharing-modal-body { font-size: 16px; }
- .sharing-modal-body input[type=text] { padding: 10px; border: none; border-radius: 3px; width: 100%; }
- .asm-frame { overflow: hidden; display: block; }
- .asm-frame iframe { display: block; }
- .asm-switcher { position: relative; border-radius: 3px; white-space: nowrap; padding: 0; margin: 0; text-align: left; }
- .asm-switcher .iframe-holder { position: relative; height: 0; width: 100%; padding-bottom: 56.25%; }
- .asm-switcher .curtain, .asm-switcher .dialogs { position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
- .asm-switcher .curtain { opacity: 1; }
- .asm-switcher h1 { margin-bottom: 10px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 200; font-size: 20px; color: #4A4C45; line-height: 24px; }
- .asm-switcher .toggle-collapsable { position: absolute; cursor: pointer; right: 5px; top: 5px; display: none; }
- .asm-switcher .toggle-collapsable.visible { display: block; }
- .asm-switcher .collapsable { overflow: hidden; max-height: 0; transition: .5s max-height; -webkit-transition: .5s max-height; -moz-transition: .5s max-height; -o-transition: .5s max-height; }
- .asm-switcher .collapsable.open { max-height: 3000px; }
- .asm-switcher div.game-button-panel { height: auto; }
- .asm-switcher div.game-button-panel div.game-list { padding: 0; margin: 15px -5px 0 -5px; display: flex; flex-direction: row; flex-wrap: wrap; width: auto; }
- .asm-switcher div.game-button-panel div.game-list div.game-button { flex-grow: 0; cursor: pointer; text-decoration: none; padding: 0; border-radius: 3px; background: #A1A7B2; margin: 5px; width: 172px; -moz-box-shadow: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.15); box-shadow: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.15); }
- .asm-switcher div.game-button-panel div.game-list div.game-button p { overflow: hidden; text-overflow: ellipsis; font-family: Helvetica; font-weight: bold; font-size: 14px; color: #FFFFFF; line-height: 17px; text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2); padding: 12px 16px 7px 16px; margin: 0; }
- .asm-switcher div.game-button-panel div.game-list div.game-button.selected { background: #4D5462; position: relative; }
- .asm-switcher div.game-button-panel div.game-list div.game-button .progress-bar { width: 100%; background: #3B3E48; height: 5px; overflow: hidden; border-radius: 10px; visibility: hidden; position: relative; z-index: 100; }
- .asm-switcher div.game-button-panel div.game-list div.game-button .progress-bar .progress-done { background-image: linear-gradient(to right, #C82931 11%, #A9171C 100%); border: 1px solid #202226; height: 3px; border-radius: 6px; float: left; }
- .asm-switcher .player-panel { height: auto; position: relative; white-space: normal; background: black; }
- .asm-switcher .player-panel:after { content: ''; height: 42px; display: block; }
- .asm-switcher .rec-firefox-update { text-align: center; margin: 10px; }
- .asm-switcher .do-popout, .asm-switcher .do-confirm-close { position: absolute; cursor: pointer; color: #555; }
- .asm-switcher .do-popout { right: 0; top: 0; display: inline-block; }
- .asm-switcher .do-confirm-close { font-size: 24px; right: 20px; top: 20px; display: none; }
- .asm-switcher.popout { margin: auto; position: relative; background: #fff; padding: 30px 50px 30px 40px; z-index: 9999; }
- .asm-switcher.popout .toggle-collapsable { display: none; }
- .asm-switcher.popout .do-confirm-close { display: inline-block; }
- .asm-switcher.popout .do-popout { display: none; }
- .asm-switcher-embed { margin-bottom: 30px; }
- .asm-switcher-embed .asm-switcher.frame-only { border: 0; padding: 0; }
- .asm-user-page { background: #eee; border: 1px solid #ccc; border-radius: 3px; padding: 20px; margin-bottom: 30px; display: none; }
- .asm-user-page .toggle-collapsable { right: -13px; top: -13px; }
- .asm-user-page .collapsable { max-height: 0; }
- .asm-download-page { background: #fff; border-radius: 3px; border: 1px solid #ccc; padding: 20px; display: none; }
- .asm-download-page h1 { margin-top: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: bold; }
- .asm-download-page .toggle-collapsable { display: none; }
- .asm-download-page .toggle-collapsable.visible { display: none; }
- .asm-download-page .collapsable { height: auto; max-height: 3000px; }
- #asm-grayout { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: none; }
- body { overflow-x: auto !important; }
- /* Coupons */
- .library-coupon { width: 285px; margin-left: 5px; margin-right: 5px; margin-bottom: 20px; display: inline-block; border: 1px solid #E9E9E9; text-decoration: none; vertical-align: top; }
- .library-coupon-image { width: 100%; }
- .library-coupon-description { text-align: center; background: white; padding: 10px; }
- .library-coupon-human-name { font-size: 16px; font-weight: bold; }
- .library-coupon-expiration { color: red; font-size: 12px; width: 100%; margin-top: 3px; }
- .library-coupon-terms-and-conditions { margin-top: 3px; }
- .charity-item { width: 135px; padding: 35px; background-color: white; height: 80px; margin: 10px; }
- .charity-image-wrapper { position: relative; height: 100%; width: 100%; }
- .charity-image-wrapper img { max-height: 100%; max-width: 100%; width: auto; height: auto; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; }
- .charity-grid { display: flex; flex-wrap: wrap; justify-content: center; max-width: 1100px; padding: 10px; margin: auto; }
- @media (max-width: 590px) { .charity-grid { padding: 10px 0; }
- .charity-grid .charity-item { width: 100px; margin: 5px; } }
- .charity-highlight { display: flex; flex-wrap: wrap; justify-content: center; margin: auto; padding: 10px; }
- .charity-highlight .charity-description { text-align: justify; width: 100%; margin-left: 40px; max-width: 300px; }
- .charity-highlight .charity-item { padding: 5px; width: 195px; height: 140px; }
- .charity-highlight p { line-height: 1.5; margin-bottom: 30px; }
- .charity-highlight h4 { line-height: 1; margin: 12px 0; text-align: left; }
- @media (max-width: 625px) { .charity-highlight .charity-description { margin-left: 0; width: 270px; }
- .charity-highlight .charity-item { width: 200px; } }
- .no-feature { margin: auto; }
- .no-feature p { line-height: 1.5; }
- .no-feature .charity-button { text-align: center; }
- .display-modal { position: fixed; width: 100%; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 400; }
- .display-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(40, 44, 52, 0.98); z-index: 350; }
- .close-button { color: white; position: absolute; top: 10px; right: 10px; font-size: 24px; padding: 20px; }
- .close-button:hover { color: grey; cursor: pointer; }
- .display-modal-inside { margin: auto; padding: 50px; max-width: 100%; max-height: 100vh; box-sizing: border-box; }
- .charity { text-align: center; margin-top: 0; }
- .charity.supporting a { text-decoration: underline; }
- .charity img { vertical-align: middle; margin-top: -4px; display: inline-block; }
- .charity .charity-info, .charity .item-title { font-size: 16px; }
- .charity .charity-info { color: #fff; margin-bottom: 25px; }
- .charity .item-title { display: inline-block; text-align: right; margin-left: 10px; font-weight: normal; }
- .cyoc-holder { display: block; }
- .charity-selection { height: auto; }
- .slideout-expandable { border: 1px solid #24282f; margin-top: 10px; padding: 30px; }
- .charity-support { color: white; }
- .charity-support h4 { font-size: 22px; }
- .charity-support a { color: white; }
- .charity-item { position: relative; }
- .cyoc-holder .charity-highlight .charity-item { width: 255px; height: 175px; padding: 5px; }
- .cyoc-holder .charity-highlight .charity-item .charity-img { background-color: white; background-repeat: no-repeat; background-position: center; background-size: contain; height: 100%; width: 100%; }
- .cyoc-holder .charity-highlight .charity-description { max-width: 350px; text-align: left; }
- .cyoc-holder .charity-highlight p { font-size: 15px; }
- @media (max-width: 860px) { .cyoc-holder .charity-highlight { flex-direction: column; }
- .cyoc-holder .charity-highlight .charity-item { margin: auto; }
- .cyoc-holder .charity-highlight .charity-description { text-align: center; margin: auto; }
- .cyoc-holder .charity-highlight h4 { text-align: center; } }
- .bottom-right { position: absolute; bottom: 10px; right: 10px; color: white; font-size: 24px; }
- .bottom-right .charity-edit { padding: 5px 10px; border: 2px solid white; background-color: rgba(0, 0, 0, 0.5); }
- .bottom-right .charity-edit:hover { background-color: rgba(0, 0, 0, 0.8); cursor: pointer; }
- @media (max-width: 500px) { .bottom-right { font-size: 16px; } }
- .charity-item.none-chosen { background-color: grey; border: 5px dashed white; }
- .display-modal-inside { color: white; overflow-y: scroll; }
- .display-modal-inside h1 { text-align: center; font-size: 28px; line-height: 4; }
- .display-modal-inside .charity-selection-view { max-width: 975px; margin: auto; }
- .display-modal-inside .charity-selection-view h2 { padding: 0px 5px; margin-bottom: 0px; line-height: 1; }
- .display-modal-inside .charity-selection-view button { background: grey; border-radius: 2px; border: none; padding: 4px 7px; text-transform: uppercase; font-weight: bold; letter-spacing: -0.01rem; margin-top: 10px; }
- .charity-page-link { padding-top: 30px; font-size: 20px; text-align: center; }
- .charity-page-link a { color: white; }
- .charity-item-wrapper { text-align: center; color: white; }
- .display-modal-inside .charity-list { display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 50px; }
- .display-modal-inside .charity-preview { margin: 10px; width: 130px; text-align: center; white-space: nowrap; }
- .display-modal-inside .charity-preview h4, .display-modal-inside .charity-preview h5 { text-overflow: ellipsis; overflow: hidden; line-height: 1; margin: 10px auto; }
- .display-modal-inside .charity-preview h4 { font-size: 15px; }
- .display-modal-inside .charity-preview .location { color: lightgrey; font-size: 10px; }
- @media screen and (max-width: 500px) { .display-modal-inside .charity-preview { margin: 5px auto; } }
- .display-modal-inside .charity-img { background-color: white; }
- .display-modal-inside .charity-name { margin-top: 10px; }
- .display-modal-inside .results-heading, .display-modal-inside .results-heading-disclaimer { text-align: center; }
- .display-modal-inside .results-heading { font-size: 24px; line-height: 1em; }
- .display-modal-inside .results-heading-disclaimer { color: lightgrey; font-size: 15px; }
- .display-modal-inside .pagination { text-align: right; }
- .display-modal-inside .partnership-line { text-align: right; padding: 5px; }
- .display-modal-inside .partnership-line a { color: white; }
- .display-modal-inside .charity-search { padding-bottom: 20px; position: relative; font-size: 14px; }
- .display-modal-inside .charity-search input, .display-modal-inside .charity-search label, .display-modal-inside .charity-search button { display: inline-block; margin-right: 10px; }
- .display-modal-inside .charity-search input, .display-modal-inside .charity-search select { border-radius: 3px; height: 31px; padding: 4px; box-sizing: border-box; border: 1px solid #ddd; margin-top: 4px; font-size: 14px; }
- .display-modal-inside .charity-search button { padding: 8px 30px; border-radius: 5px; margin: 5px; }
- .display-modal-inside .charity-search label { text-transform: uppercase; font-size: 10px; color: #a1a7b2; margin: 5px; letter-spacing: 1.25px; }
- .display-modal-inside .charity-search label::first-letter { margin-left: 2px; }
- .display-modal-inside .charity-search .query { position: relative; width: 350px; max-width: 100%; }
- .display-modal-inside .charity-search .query input { width: 100%; padding-left: 26px; color: #494f5c; }
- .display-modal-inside .charity-search .query i { position: absolute; bottom: 8px; left: 8px; font-size: 14px; color: #a1a7b2; }
- .display-modal-inside .charity-search .category select, .display-modal-inside .charity-search .country select, .display-modal-inside .charity-search .state select { width: 100%; display: inline-block; color: #494f5c; }
- .display-modal-inside .charity-search .category { width: 250px; }
- .display-modal-inside .charity-search .country { width: 210px; }
- .display-modal-inside .charity-search .state { display: none; }
- .display-modal-inside .charity-search .state.is-united-states, .display-modal-inside .charity-search .country.is-united-states { width: 100px; display: inline-block; }
- .display-modal-inside .select-charity .unselected-text { display: inline; }
- .display-modal-inside .select-charity .disallowed-text, .display-modal-inside .select-charity .selected-text, .display-modal-inside .select-charity .featured-text { display: none; }
- .display-modal-inside .select-charity.is-unselected-featured .featured-text { display: inline; }
- .display-modal-inside .select-charity.is-unselected-featured .selected-text, .display-modal-inside .select-charity.is-unselected-featured .unselected-text, .display-modal-inside .select-charity.is-unselected-featured .disallowed-text { display: none; }
- .display-modal-inside .select-charity.is-selected { background-color: #97b147; }
- .display-modal-inside .select-charity.is-selected .selected-text { display: inline; }
- .display-modal-inside .select-charity.is-selected .disallowed-text, .display-modal-inside .select-charity.is-selected .unselected-text, .display-modal-inside .select-charity.is-selected .featured-text { display: none; }
- .display-modal-inside .select-charity.is-disallowed { cursor: default; background: #333; }
- .display-modal-inside .select-charity.is-disallowed .disallowed-text { display: inline; color: #787878; }
- .display-modal-inside .select-charity.is-disallowed .selected-text, .display-modal-inside .select-charity.is-disallowed .unselected-text, .display-modal-inside .select-charity.is-disallowed .featured-text { display: none; }
- .display-modal-inside .select-charity.is-featured { cursor: default; background: #17A1E5; }
- .display-modal-inside .select-charity.is-featured .featured-text { display: inline; }
- .display-modal-inside .select-charity.is-featured .selected-text, .display-modal-inside .select-charity.is-featured .unselected-text, .display-modal-inside .select-charity.is-featured .disallowed-text { display: none; }
- .ch-main { padding-bottom: 75px; padding-top: 75px; }
- .admin-tiny-link i { position: relative; }
- #hibtext { margin-top: 0 !important; color: #cc0000; font-size: 20px !important; font-weight: bold; padding-top: 4px; line-height: 24px; }
- .center-wrapper { float: left; width: 100%; position: relative; }
- .center { overflow: visible; clear: left; float: left; position: relative; left: 50%; }
- /* spiel */
- #spiel { text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75); line-height: 21px; font-size: 14px; }
- #spiel a { color: #5D801A; }
- #main { font-size: 12px; margin: 0 auto; text-shadow: none; width: 831px; }
- .whitebox-redux { background: white; box-sizing: border-box; padding: 20px 0; border: 1px solid #c7cbd4; border-radius: 5px; box-shadow: 0 1px 1px 0px #c7cbd4; position: relative; color: #4a4c45; width: 762px; margin: 7px auto 13px auto; }
- /* inner boxes */
- .whitebox { position: relative; color: #4a4c45; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); width: 762px; margin: 7px auto 13px auto; }
- .whitetop { position: absolute; top: 0; width: 762px; height: 20px; background: url("//humblebundle-a.akamaihd.net/static/hashed/112ab639e90490bc2dcee89740036e6ff20838f8.png") 0 0 no-repeat; }
- .whitemid { position: absolute; top: 20px; width: 762px; bottom: 20px; background: url("//humblebundle-a.akamaihd.net/static/hashed/835bbcaad6a563ba85fa91773af142691ff5f6e0.png"); }
- .whitebottom { position: absolute; bottom: 0; width: 762px; height: 20px; background: url("//humblebundle-a.akamaihd.net/static/hashed/112ab639e90490bc2dcee89740036e6ff20838f8.png") bottom no-repeat; }
- .whitecontent { position: relative; padding: 20px; /* if you change this, remember to change the keytabs top margin by the same amount */ }
- .whitecontent .hr { background: #e6e6e6; }
- .whitecontent.nopadding { padding-left: 0; padding-right: 0; }
- #dlplatform, #dltype, div.custominstructions { margin: 0 20px; }
- #dltype.only-one-button { display: none; }
- .whitecontent.nopadding .row { margin: 0 12px; }
- .expandorder { display: block; height: 44px; text-align: center; color: #5d801a; font-size: 16px; }
- .redeemsmallheading { width: 480px; margin: 0 auto; padding-bottom: 12px; text-align: center; font-size: 90%; font-weight: normal; }
- .keyredeemer { float: left; margin-right: 10px; margin-bottom: 16px; height: 28px; width: 111px; cursor: pointer; }
- .redeeminstructions { text-align: center; padding-bottom: 30px; }
- .onliveusukradio { padding-left: 127px; }
- .steam-profile { position: relative; top: -15px; right: -6px; text-align: right; }
- .steam-profile .account-text { display: inline-block; }
- .steam-profile .indicator { float: right; left: -40px; background: url("//humblebundle-a.akamaihd.net/static/hashed/e73d51c16b07d083026843ceda9c22056b9d04a2.gif") no-repeat; }
- .steam-profile .profile-pic { width: 32px; height: 32px; display: inline-block; vertical-align: bottom; margin-left: 10px; }
- .genericbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/aafd697db4950b99bc95a0ef740f10d7301eb437.png") no-repeat; }
- .activated .genericbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/7f9102778b07eec38f1ba5911c95c24d3aa98318.png") no-repeat; }
- .steambutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/4679a3c4d14fbda0fe37478d446d001fad44e3c1.png") no-repeat; }
- .activated .steambutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/7d32b8cb2ed51ab18ec0e5a40208afd4a41c988c.png") no-repeat; }
- .uplaybutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/4b3fd1c208843f91a063bec2349b526202a4fe6e.png") no-repeat; }
- .activated .uplaybutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/4ca5ac1bf3373babd5a508d6556f5f7fd6ad4b38.png") no-repeat; }
- .originbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/e76fbc1ccb8733279587f6038056cd3fdc0271a9.png") no-repeat; }
- .activated .originbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/3ff62f831583f243b65f8954c08f40702eed5912.png") no-repeat; }
- .ouyabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/e8916956991bdd418ccdb45e6dead81cae599a34.png") no-repeat; }
- .activated .ouyabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/cb5ea8b036c49c5f6466d97c37703016668df034.png") no-repeat; }
- .desurabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/97b4d580682444ec310e39480957a39d84a50106.png") no-repeat; }
- .activated .desurabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/72c7a91a612ceee5ceda77133c9d79bf66b8dec3.png") no-repeat; }
- .onlivebutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/e7426f51dea62e220deeb988794cb32e15c265ae.png") no-repeat; }
- .activated .onlivebutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/8c812b14676720a1c5541e5ff0084336f8ca952b.png") no-repeat; }
- .multiplayerbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/6f98857f10330e006847a2571bd2fcdd972da502.png") no-repeat; }
- .activated .multiplayerbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/20048fabc7a0a68316b0315f584c58ad95b17055.png") no-repeat; }
- .squareenix_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/ac97edf1d373f749576bab85be377698494478d9.png") no-repeat; }
- .activated .squareenix_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/3af19fcba4ca44990c78e1aebee17bbadd21afe7.png") no-repeat; }
- .bethesda_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/61a2c4c13f0b95b11aec7784356d325f1ad76223.png") no-repeat; }
- .activated .bethesda_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/80a34f59a907904dcb29c5e434affb9f88ee6fc6.png") no-repeat; }
- .telltalegames_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/c3c956701f7cbf7842d1fef8d713f829042dbfb4.png") no-repeat; }
- .activated .telltalegames_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/cfe22581a0a30154a85744ae2f58671af6b731b6.png") no-repeat; }
- .nintendo_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/32be74acd8de11c5a9a240c5ce3c00d0287b83a3.png") no-repeat; }
- .activated .nintendo_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/2a16694e165dc6e39f3e89f6eba6d1451d278f6a.png") no-repeat; }
- .soldout { visibility: hidden; }
- #papers-content a { color: #360; }
- .keyfield { width: 342px; padding: 0 4px; white-space: nowrap; height: 28px; color: #808080; text-align: center; line-height: 28px; font-size: 12px; float: left; background: url("//humblebundle-a.akamaihd.net/static/hashed/9e9017643ddecc7f2d3cd0032c577b88d96ce5e0.png") no-repeat; }
- .keyfield-content { overflow-x: auto; width: 340px; }
- .redeemholder { margin: 0 auto; width: 503px; }
- .giftbutton { padding-left: 6px; padding-top: 5px; float: left; cursor: pointer; }
- .redeemheading { text-align: center; font-size: 16px; padding-bottom: 18px; padding-top: 6px; width: 70%; margin: 0 auto; }
- .indicator { height: 16px; position: relative; top: 2px; width: 16px; }
- #steaminfo { background: url("//humblebundle-a.akamaihd.net/static/hashed/cceac795b8e3fb4e5ad5582e6bd7ac85ccda5839.png") no-repeat; height: 28px; width: 30px; position: absolute; top: 12px; left: 12px; display: block; }
- #inst a { color: #5d801a; }
- #inst { text-align: center; }
- .displaying .infotext { display: block; }
- .infotext { background: black; color: #fff; font-size: 12px; font-weight: normal; padding: 12px; text-shadow: none; width: 300px; display: none; position: absolute; top: 23px; line-height: 18px; right: -63px; }
- .infotitle { text-decoration: underline; }
- #moreinfolink { cursor: pointer; color: white; right: -107px; position: absolute; font-weight: bold; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.75); font-size: 14px; top: -1px; z-index: 30; }
- .key-expander .shrinkwrapper { display: none; }
- .key-expander.kexpanded .shrinkwrapper { display: block; }
- .shrinkwrapper { height: 23px; overflow: hidden; }
- .shrinkwrapper.expanded { height: auto; }
- .expandkeys { display: block; overflow: hidden; height: 22px; text-align: center; color: #5d801a !important; font-size: 16px; }
- #normal { width: 100%; margin-top: -7px; font-size: 12px; line-height: 12px; }
- #addorder.small { cursor: pointer; }
- #addorder .whitecontent { box-sizing: content-box; height: 22px; overflow: hidden; }
- #orderwrapper { bottom: -8px; left: 20px; overflow: hidden; position: absolute; right: 20px; top: 20px; }
- #expandorder { display: block; height: 44px; text-align: center; color: #5d801a; font-size: 16px; }
- a.slide-down-trigger { display: block; text-align: center; color: #5d801a; font-size: 16px; }
- .slide-down { padding-top: 20px; }
- .flexbtn .label { visibility: hidden; }
- .flexbtn { font-weight: bold; height: 28px; line-height: 28px; position: relative; margin-right: 12px; padding-left: 33px; float: left; margin-left: 8px; }
- .flexbtn .right { position: absolute; right: -12px; top: 0; bottom: 0; width: 12px; }
- .flexbtn.active .right { background-position: right; }
- .flexbtn .a { position: absolute; top: 0; left: 0; right: -12px; bottom: 0; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); color: #4a4c45 !important; text-decoration: none; padding-left: 33px; background: none; border: none; outline: none; }
- .streaming-video-player { margin: 25px; position: relative; top: 10px; text-align: center; }
- .selected-video-quality { background-color: #CACED8; cursor: pointer; }
- .video-quality-selector { border: 1px solid #BFC3CC; border-radius: 3px; cursor: pointer; display: inline-block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: bold; padding: 5px; text-align: center; vertical-align: middle; width: 70px; }
- .flexbtn.active .a { text-shadow: 0 1px 0 white; }
- .flexbtn.noicon, .flexbtn.noicon a { padding-left: 6px; }
- .icon { position: absolute; }
- .mac .icon { left: 10px; top: 4px; height: 18px; width: 14px; background: url("//humblebundle-a.akamaihd.net/static/hashed/a010a63e8e934c3b8652c314f22422fd78375f87.png") no-repeat; }
- .windows .icon { left: 10px; top: 6px; height: 17px; width: 19px; background: url("//humblebundle-a.akamaihd.net/static/hashed/0caa53023b380142150807b45ed4e63b440db7a7.png") no-repeat; }
- .windows .a, .windows.flexbtn { padding-left: 38px; }
- .linux .icon { left: 10px; top: 6px; height: 17px; width: 14px; background: url("//humblebundle-a.akamaihd.net/static/hashed/6fdf9bdbf6874ddad9011dd07252cdc2e42e88be.png") no-repeat; }
- .android .icon { left: 8px; top: 5px; height: 19px; width: 15px; background: url("//humblebundle-a.akamaihd.net/static/hashed/12ad16b0169963dd8374c09a36d83b9628301797.png") no-repeat; }
- .audio .icon { left: 10px; top: 5px; height: 17px; width: 14px; background: url("//humblebundle-a.akamaihd.net/static/hashed/31ca574c537461526fe5e3882e1799d93fd3442a.png") no-repeat; }
- .audio .a, .audio.flexbtn { padding-left: 38px; }
- .ebook .icon { left: 10px; top: 5px; height: 17px; width: 14px; background: url("//humblebundle-a.akamaihd.net/static/hashed/2f8c311b2ad54c0996b6f2231ce69b52f9ef7b42.png") no-repeat; }
- .comedy .icon { left: 10px; top: 5px; height: 17px; width: 14px; background: url("//humblebundle-a.akamaihd.net/static/hashed/0ebb919bcdef9c3b5c7fb1dc19a416f8bfddfc1f.png") no-repeat; }
- .video .icon { left: 10px; top: 10px; height: 17px; width: 14px; background: url("//humblebundle-a.akamaihd.net/static/hashed/ac23ed56c286d1d8e284d7b0aa3046c8e20f00f1.png") no-repeat; }
- .vertical-rule { border-left: 1px solid black; width: 1px; height: 30px; margin-left: 15px; float: left; }
- .bittorrent .icon { left: 10px; top: 6px; height: 17px; width: 16px; background: url("//humblebundle-a.akamaihd.net/static/hashed/e17a19111dffdd17728c4f754dc5bb0e9dad2746.png") no-repeat; }
- .bittorrent .a, .flexbtn.bittorrent { padding-left: 35px; }
- .direct .icon { left: 10px; top: 6px; height: 17px; width: 16px; background: url("//humblebundle-a.akamaihd.net/static/hashed/19b899d281c429dfab8e55f4d81c5202cc5cb26d.png") no-repeat; }
- .direct .a, .direct.flexbtn { padding-left: 35px; }
- .hr { height: 1px; margin: 12px 0; background: #ccc; }
- .download.hr { clear: both; }
- .textlabel { float: left; height: 28px; line-height: 28px; width: 160px; text-align: right; }
- .dlplatform-list { overflow: auto; }
- .title a { text-decoration: none; font-weight: bold; }
- .subtitle { color: #4a4c45; font-weight: normal; font-size: 12px; line-height: normal; }
- .subtitle a { text-decoration: none; font-weight: normal; color: #4a4c45 !important; }
- .row { position: relative; }
- .stepoption { padding: 7px 0 7px 42px; font-weight: normal; position: relative; }
- /* key page */
- .downloads { float: right; width: 400px; }
- .downloads .flexbtn { margin-left: 0; min-width: 120px; text-align: center; }
- .newbuilds, .custominstructions { display: none; }
- .small .flexbtn { margin-left: 0; min-width: 69px; text-align: center; }
- .small .dldetails { width: 79px; }
- .download { float: right; margin-left: 14px; }
- .dldetails { clear: both; width: 130px; padding: 0 4px; }
- .dlsize { text-align: center; padding-top: 8px; font-size: 12px; font-weight: bold; }
- .dlsize.showmd5 { padding-top: 2px; }
- .dldate, .newdate { font-size: 11px; font-weight: normal; }
- .newdate { color: #c00; }
- .row.arc64 .arc32 { display: none; }
- .row.arc64 .arc64 { display: block; }
- .row .arc64 { display: none; }
- .arc-toggle { white-space: nowrap; float: right; }
- .newbuilds div { text-align: center; margin: 14px 0 16px 0; }
- .newbuilds { display: none; }
- .newbuilds.show { display: block; text-align: center; }
- .showmd5, .showdate { font-size: 11px; font-weight: normal; }
- .dlmd5 { word-wrap: break-word; }
- #steam { height: 20px; padding-left: 0; margin: 12px 0; width: 120px; background: url("//humblebundle-a.akamaihd.net/static/hashed/8daad48c8018906de902cfe0dbbd59d75f462ca3.png") no-repeat; font-size: 10px; font-weight: normal; }
- #desura { height: 25px; width: 98px; background: url("//humblebundle-a.akamaihd.net/static/hashed/dc5ab80a0b9ceb87eb3e713ed68a3dc5c72d08c9.png") no-repeat; }
- #onlive { height: 24px; width: 118px; position: absolute; top: 27px; left: 120px; background: url("//humblebundle-a.akamaihd.net/static/hashed/fd3afea08ca2008119469cbf053f5eccb374602c.png") no-repeat; }
- .clear { clear: both; height: 0; }
- #settings div { padding: 6px; line-height: 1.4em; }
- #deletekeypage { position: absolute; right: 16px; bottom: 26px; color: red; font-size: 10px; }
- #deletebuttons { text-align: center; padding-top: 4px; }
- #deletekeyconfirm { width: 280px; position: absolute; bottom: -10px; right: -40px; background: white; border-radius: 5px; padding: 6px; border: black solid 1px; z-index: 200; display: none; }
- /* page content */
- .errormsg { display: none; position: relative; text-shadow: none; }
- #temail { width: 200px; }
- #quickiefix { padding-bottom: 19px; }
- #leaderboardstep { display: none; }
- /* order form */
- #needhelp { color: #999; text-decoration: none; font-style: italic; }
- .placeholder { color: silver; line-height: 25px; padding-left: 5px; position: absolute; }
- #tamount { width: 70px; }
- #customAmountHolder { display: inline-block; }
- #customAmount { height: 18px; width: 70px; }
- #payment-amount { padding-left: 42px; margin-left: -42px; }
- /* Icons */
- .icn { display: inline-block; position: relative; height: 70px; width: 70px; padding-right: 5px; float: left; }
- .icn a img { border: none; }
- /* Android instructions */
- div.custominstructions { padding: 0 20px 20px 20px; }
- .instructionsteps h3 { font-size: 18px; }
- .instructionsteps a, .instructionsteps a:visited { color: #5D801A; }
- .instructionsteps img { float: right; display: block; margin-right: -15px; margin-top: -8px; }
- .instructionsteps p { font-weight: normal; font-size: 14px; line-height: 24px; margin: 1em 0; }
- .instructionsteps p.introsteps { margin-top: 0; }
- .instructionsteps .stepholder p { width: 400px; }
- .instructionsteps .stepholder { font-size: 14px; margin: 20px 0; }
- .instructionsteps .stepholder:last-child { margin-bottom: 0; }
- .instructionsteps .steptext { font-weight: bold; padding: 10px 0 10px 55px; }
- #show_android_binaries .expandkeys { font-weight: bold; margin-top: 20px; }
- .clearfix { clear: both; }
- p.mobile-link { font-size: 18px; }
- .mobile-link a { letter-spacing: 1px; text-decoration: none; font-weight: bold; }
- .mobile-link a:hover { text-decoration: underline; }
- #send-email-message { font-weight: normal; font-size: 12px; padding: 0 15px 0 20px; color: #888; }
- #send-email-form label { padding-bottom: 10px; }
- #email-truncated { width: 200px; }
- .download-popup { display: none; background: #eee; border-radius: 3px; position: fixed; top: 30%; left: 50%; margin-left: -255px; width: 450px; z-index: 9999; padding: 20px 30px 30px 30px; font-weight: normal; }
- .download-popup h2 { font-size: 25px; }
- .download-popup p.warning-text { color: red; }
- .download-popup p.warning-text a { color: #4a4c45; }
- .buttonHolder { padding-top: 20px; float: right; }
- .addAndroidPlatform { padding: 30px 0; }
- .addAndroidPlatform h2 { padding-bottom: 20px; }
- .custom-download-text { width: 400px; position: absolute; right: 10px; top: 10px; text-align: right; }
- .custom-download-text a { color: #360; }
- .loading { margin: auto; width: 200px; text-align: center; }
- #download-page-outer-progress { background-color: #eee; border-radius: 12px; box-shadow: inset 0 2px 0 rgba(0, 0, 0, 0.2), inset 0 0 0 1px rgba(255, 255, 255, 0.2); margin: 0 auto; overflow: hidden; width: 50%; }
- #download-page-inner-progress { background-image: linear-gradient(to bottom, #97b147 11%, #7e992e 100%); border-radius: 12px; box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.2), inset 0 0 0 1px rgba(0, 0, 0, 0.2); height: 24px; width: 0%; /* Adjust with JavaScript */ }
- #download-page-progress-text { text-align: center; }
- .arc64 { display: none; }
- .whitebox .loading { padding: 50px; width: 300px; }
- .whitebox .downloads { padding-right: 30px; }
- .whitebox .platform-chooser { padding-top: 30px; }
- .whitebox .row { padding-left: 15px; }
- .gameinfo { float: left; width: 200px; margin-top: 10px; }
- h1 { margin-top: 30px; }
- .row { overflow: hidden; transition: all 0.5s ease; }
- .row.show { border-bottom: 1px solid #ddd; min-height: 80px; display: block; }
- .row .download-buttons, .row .arc-toggle { margin-top: 10px; }
- .row.show:last-child { border-bottom: none; }
- /* Steam Key Table */
- table.unredeemed-keys-table { width: 100%; border: 1px solid #CCCCCC; }
- table.unredeemed-keys-table th { background-image: linear-gradient(-179deg, #F4F4F4 0%, #E9E9E9 100%); border: 1px solid #CCCCCC; font-family: "HelveticaNeue-Medium", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 14px; color: #555555; line-height: 17px; padding: 20px; text-align: left; }
- table.unredeemed-keys-table tr { font-family: "HelveticaNeue-Light", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 14px; color: #555555; line-height: 17px; background: #FFFFFF; }
- table.unredeemed-keys-table td { border: 1px solid #E9E9E9; padding: 10px 20px; max-width: 400px; }
- table.unredeemed-keys-table tr:nth-child(even) { background: #FAFAFA; border: 1px solid #E9E9E9; }
- table.unredeemed-keys-table i { font-size: 120%; }
- .whitebox-redux.credit button { margin-left: 1em; }
- #sms-form { width: 345px; padding: 10px; border: 1px solid #ddd; border-radius: 5px; background: #eee; }
- #sms-form::after { clear: both; content: ""; display: table; }
- #sms-form .country-code-field { width: 45px; float: left; }
- #sms-form .country-code-label { width: 40px; padding-left: 22px; }
- #sms-form .form-label { display: block; float: left; margin-bottom: 5px; color: #888; font-size: 12px; font-weight: normal; }
- #sms-form .phone-number-field { width: 140px; float: left; margin-left: 10px; }
- #sms-form .phone-number-label { width: 150px; padding-left: 15px; }
- #sms-form .plus-sign { clear: left; float: left; display: block; width: 10px; margin-right: 10px; padding-top: 7px; color: #888; }
- #sms-form .send-sms-button { float: left; }
- #sms-form .sms-disclaimer { clear: left; margin: 0 0 0 20px; padding-top: 5px; color: #aaa; font-size: 10px; font-weight: normal; }
- #sms-form .sms-message { display: none; margin: 10px 0 0; padding: 0 15px 0 20px; color: #888; font-weight: normal; font-size: 12px; }
- #sms-form .validate-code-link { cursor: pointer; margin: 0; padding: 0 15px 0 20px; color: #aaa; font-size: 10px; font-weight: normal; }
- .disabled.gray-button { background: #e4e4e4; cursor: default; }
- .generic-popup { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; }
- .generic-popup a { color: #535353; }
- .generic-popup.outer-shadow { box-shadow: 0 -1px 25px rgba(0, 0, 0, 0.3); left: 50%; top: 50%; margin-left: -200px; margin-top: -200px; position: absolute; z-index: 9999; border-radius: 7px; display: none; }
- .generic-popup.content { border-radius: 7px; color: #999999; padding: 20px; background: #f5f5f5; width: 360px; position: relative; text-align: center; }
- .generic-popup.content .description { padding: 4px 0 25px 0; }
- .generic-popup .no-center { max-width: 360px; text-align: right; position: relative; }
- .generic-popup.content h1 { font-size: 24px; text-shadow: 0 0 1px #eee; color: #666; }
- .generic-popup.content h1.noimg { margin-right: 0; line-height: 32px; }
- .generic-popup.content h1 img { position: relative; top: 5px; margin-right: 15px; }
- .generic-popup.content h1 span { display: inline-block; height: 25px; width: 25px; margin-right: 15px; position: relative; top: 5px; }
- .generic-popup.content h2 { font-size: 14px; font-weight: 300; text-shadow: 0 0 1px #eee; margin: 20px 0 0 0; color: #666; }
- .generic-popup.content .split-left { color: #666; display: inline-block; text-align: left; width: 180px; }
- .generic-popup.content .split-right { color: #666; display: inline-block; text-align: right; width: 180px; }
- .generic-popup input[type='text'], .generic-popup input[type='password'] { background: none; border: 1px solid #ccc; border-top: 1px solid #999; border-radius: 3px; box-shadow: 0 1px 2px #bbb inset; padding: 9px; font-size: 16px; color: #333; display: block; width: 342px; margin: 0; }
- .generic-popup input[type='text'].inline-input, .generic-popup input[type='password'].inline-input { width: 150px; display: inline; }
- @-moz-document url-prefix() { .generic-popup input[type='text'], .generic-popup input[type='password'] { padding-top: 7px; } }
- .generic-popup form p { text-align: left; position: relative; }
- .account-infield { color: #999; font-size: 16px; font-weight: normal; position: absolute; top: 8px; left: 10px; z-index: 1; }
- .account-input { position: relative; z-index: 2; }
- .account-input.always-caps { text-transform: uppercase; }
- .generic-popup .suggest-holder { color: #c66; display: block; font-size: 90%; margin-top: -28px; position: absolute; right: 0; width: 284px; }
- .generic-popup .suggest-holder a { color: #c66; }
- .green-button { background-image: linear-gradient(to bottom, #e0ffc2 0%, #b1e37f 100%); border: 1px solid #a7c28c; border-radius: 4px; box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.5), 0 1px 0 0 white; color: #42661e; cursor: pointer; display: inline-block; font-weight: bold; margin: 0 0 0 5px; min-width: 50px; padding: 5px 8px 5px 8px; text-align: center; text-shadow: 0 1px rgba(255, 255, 255, 0.6); }
- .green-button:hover:not(disabled) { background: #b1e37f; }
- .green-button:disabled, .green-button.disabled { cursor: default; opacity: 0.4; }
- .gray-button { background-image: linear-gradient(to bottom, #f5f5f5 0%, #dedede 100%); border: 1px solid #bbb; border-radius: 4px; box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.5), 0 1px 0 0 white; color: #444; cursor: pointer; display: inline-block; font-weight: bold; margin: 0 0 0 5px; min-width: 50px; padding: 5px 8px 5px 8px; text-align: center; text-shadow: 0 1px rgba(255, 255, 255, 0.6); }
- a:hover .gray-button { background: #e4e4e4; }
- .button-link { cursor: pointer; text-decoration: none; }
- .button-link:disabled, .button-link.disabled { pointer-events: none; }
- input[type="number"].classy-input, input[type="password"].classy-input, input[type="tel"].classy-input, input[type="text"].classy-input { border: 1px solid #ccc; box-shadow: inset 0 1px 0 #eee,#fff 0 1px 0; margin: 0; padding: 7px; border-radius: 3px; background-color: white; color: #999; }
- .classy-input[disabled='disabled'] { background: #ccc; color: #333; }
- .info-tooltip > i { font-size: .8em; opacity: 0.7; transition: all 0.1s linear; }
- .info-tooltip:hover > i, .info-tooltip:focus > i { opacity: 1; }
- .small-link, .link-holder { font-size: 12px; font-weight: normal; line-height: 20px; }
- .generic-popup .small-link { margin: .3em; text-decoration: underline; }
- .link-holder { text-align: left; position: absolute; left: 2px; top: -2px; height: 20px; width: 200px; }
- .link-holder a, .generic-popup .small-link { color: #888; }
- .link-holder a { text-decoration: none; }
- .generic-popup .clearfix { clear: both; }
- .generic-popup .center { float: none; left: 0; }
- .generic-popup.content h2.subtitle { padding-bottom: 12px; text-align: center; margin-top: -10px; }
- .generic-popup .button-holder { margin-top: 20px; }
- .subtitle.warning { font-weight: bold; }
- .generic-popup .error-holder { color: #333; font-size: 14px; padding: 0 4px; position: absolute; left: -280px; text-align: right; z-index: 10; display: none; }
- .error-holder .errorlist { margin: 0; padding: 0 0 0 30px; }
- .arrow-holder { position: absolute; left: -525px; top: 0; width: 500px; height: 42px; }
- .arrow-error { float: right; padding: 12px 0 16px 16px; background: url("//humblebundle-a.akamaihd.net/static/hashed/2d10ad27ca2af9ebcc54fd4322657696e5e50dec.png") no-repeat; margin-right: -5px; margin-top: -2px; font-size: 14px; color: white; font-weight: bold; text-align: right; display: none; position: absolute; right: 0; }
- .arrow-error-right { background: url("//humblebundle-a.akamaihd.net/static/hashed/d00e64d9e0b5a925c42404a41014b85aecb2f0ea.png") no-repeat; width: 26px; height: 45px; position: absolute; right: -26px; top: 0; z-index: 100; }
- .arrow-error a { color: #fff; }
- #email-errors { top: 155px; }
- .generic-popup .errorlist .error-item { color: #c66; text-decoration: none; }
- .generic-popup .message-holder { margin-bottom: 20px; line-height: 22px; font-weight: normal; }
- .generic-popup p { margin: 0 0 20px 0; padding: 0; }
- .header-text { font-size: 18px; }
- .account-switch { background: #ddd; border-top: 1px solid #ccc; border-bottom-right-radius: 7px; border-bottom-left-radius: 7px; margin: 20px -20px -22px; font-weight: normal; font-size: 14px; color: #333; }
- .account-switch .create-account { color: #333; display: block; padding: 12px; text-decoration: none; }
- .account-switch .create-account .create-inner { font-weight: bold; text-decoration: underline; }
- .grayout, .generic-bbm-wrapper { background: url("//humblebundle-a.akamaihd.net/static/hashed/cb322c1cdfcdae03f826d02c39b7d998800d15c6.png"); }
- .grayout { position: fixed; top: 0; left: 0; z-index: 998; right: 0; bottom: 0; background: rgba(40, 44, 52, 0.85); display: none; }
- .grayout-inner { position: relative; width: 100%; height: 100%; }
- .slide-down { display: none; }
- .above-text-label { display: block; text-align: left; margin-bottom: 8px; }
- /* Modal positioning */
- .generic-bbm-wrapper { position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 998; background: rgba(0, 0, 0, 0.5); overflow-x: auto; overflow-y: auto; }
- .generic-bbm-modal { position: relative; top: calc(50% - 250px); left: calc(50% - 200px); width: 276px; }
- .generic-bbm-modal.eula-modal { top: calc(50% - 360px); left: calc(50% - 300px); width: 600px; }
- .generic-bbm-modal.eula-modal .generic-popup.content { width: 100%; height: 100%; }
- .generic-bbm-modal.eula-modal .generic-popup.content .message-holder { max-height: 500px; text-align: left; white-space: pre-line; overflow-x: hidden; overflow-y: scroll; }
- .generic-bbm-modal.eula-modal .generic-popup.content .noimg { font-size: 22px; margin: 0.25em 0; }
- .generic-bbm-views { width: 100%; }
- /* Modal theme */
- .generic-bbm-wrapper { -webkit-transition: background-color 0.3s; }
- .generic-bbm-modal { border-radius: 3px; box-shadow: 0 -1px 25px rgba(0, 0, 0, 0.3); box-sizing: initial; }
- .captcha-invisible { display: none; }
- /* Animations */
- /* Open modal */
- @-webkit-keyframes generic-bbm-open { 0% { -webkit-transform: matrix(0.99126, 0, 0, 0.99126, 0, 43.8813); opacity: 0.1259; }
- 4% { -webkit-transform: matrix(0.99295, 0, 0, 0.99295, 0, 45.06809); opacity: 0.29544; }
- 8% { -webkit-transform: matrix(0.99467, 0, 0, 0.99467, 0, 46.26922); opacity: 0.46703; }
- 12% { -webkit-transform: matrix(0.99619, 0, 0, 0.99619, 0, 47.33355); opacity: 0.61908; }
- 16% { -webkit-transform: matrix(0.99743, 0, 0, 0.99743, 0, 48.19991); opacity: 0.74284; }
- 20% { -webkit-transform: matrix(0.99837, 0, 0, 0.99837, 0, 48.86067); opacity: 0.83724; }
- 24% { -webkit-transform: matrix(0.99905, 0, 0, 0.99905, 0, 49.33658); opacity: 0.90523; }
- 28% { -webkit-transform: matrix(0.99952, 0, 0, 0.99952, 0, 49.66049); opacity: 0.9515; }
- 32% { -webkit-transform: matrix(0.99981, 0, 0, 0.99981, 0, 49.8675); opacity: 0.98107; }
- 36% { -webkit-transform: matrix(0.99999, 0, 0, 0.99999, 0, 49.98966); opacity: 0.99852; }
- 40% { -webkit-transform: matrix(1.00008, 0, 0, 1.00008, 0, 50.05361); opacity: 1.00766; }
- 44% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.08); opacity: 1.01143; }
- 48% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08394); opacity: 1.01199; }
- 52% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.07589); opacity: 1.01084; }
- 56% { -webkit-transform: matrix(1.00009, 0, 0, 1.00009, 0, 50.06265); opacity: 1.00895; }
- 60% { -webkit-transform: matrix(1.00007, 0, 0, 1.00007, 0, 50.04833); opacity: 1.0069; }
- 64% { -webkit-transform: matrix(1.00005, 0, 0, 1.00005, 0, 50.03518); opacity: 1.00503; }
- 68% { -webkit-transform: matrix(1.00004, 0, 0, 1.00004, 0, 50.02421); opacity: 1.00346; }
- 72% { -webkit-transform: matrix(1.00002, 0, 0, 1.00002, 0, 50.01567); opacity: 1.00224; }
- 76% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00941); opacity: 1.00134; }
- 80% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00506); opacity: 1.00072; }
- 84% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.00223); opacity: 1.00032; }
- 88% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.0005); opacity: 1.00007; }
- 92% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99956); opacity: 0.99994; }
- 96% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99913); opacity: 0.99988; }
- 100% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50); opacity: 1; } }
- .generic-bbm-modal--open { -webkit-animation-duration: 0.3s; -webkit-animation-name: generic-bbm-open; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* Open a stacked modal */
- @-webkit-keyframes generic-bbm-stacked { 0% { -webkit-transform: matrix(0.99874, 0, 0, 0.99874, 0, 49.1187); opacity: 0.93705; }
- 4% { -webkit-transform: matrix(0.99705, 0, 0, 0.99705, 0, 47.93192); opacity: 0.85228; }
- 8% { -webkit-transform: matrix(0.99533, 0, 0, 0.99533, 0, 46.73078); opacity: 0.76648; }
- 12% { -webkit-transform: matrix(0.99381, 0, 0, 0.99381, 0, 45.66645); opacity: 0.69046; }
- 16% { -webkit-transform: matrix(0.99257, 0, 0, 0.99257, 0, 44.80009); opacity: 0.62858; }
- 20% { -webkit-transform: matrix(0.99163, 0, 0, 0.99163, 0, 44.13933); opacity: 0.58138; }
- 24% { -webkit-transform: matrix(0.99095, 0, 0, 0.99095, 0, 43.66342); opacity: 0.54739; }
- 28% { -webkit-transform: matrix(0.99049, 0, 0, 0.99049, 0, 43.33951); opacity: 0.52425; }
- 32% { -webkit-transform: matrix(0.99019, 0, 0, 0.99019, 0, 43.1325); opacity: 0.50946; }
- 36% { -webkit-transform: matrix(0.99002, 0, 0, 0.99002, 0, 43.01034); opacity: 0.50074; }
- 40% { -webkit-transform: matrix(0.98992, 0, 0, 0.98992, 0, 42.94639); opacity: 0.49617; }
- 44% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92001); opacity: 0.49429; }
- 48% { -webkit-transform: matrix(0.98988, 0, 0, 0.98988, 0, 42.91606); opacity: 0.494; }
- 52% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92411); opacity: 0.49458; }
- 56% { -webkit-transform: matrix(0.98991, 0, 0, 0.98991, 0, 42.93736); opacity: 0.49553; }
- 60% { -webkit-transform: matrix(0.98993, 0, 0, 0.98993, 0, 42.95167); opacity: 0.49655; }
- 64% { -webkit-transform: matrix(0.98995, 0, 0, 0.98995, 0, 42.96482); opacity: 0.49749; }
- 68% { -webkit-transform: matrix(0.98997, 0, 0, 0.98997, 0, 42.97579); opacity: 0.49827; }
- 72% { -webkit-transform: matrix(0.98998, 0, 0, 0.98998, 0, 42.98433); opacity: 0.49888; }
- 76% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99059); opacity: 0.49933; }
- 80% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99494); opacity: 0.49964; }
- 84% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.99777); opacity: 0.49984; }
- 88% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.9995); opacity: 0.49996; }
- 92% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00044); opacity: 0.50003; }
- 96% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00088); opacity: 0.50006; }
- 100% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43); opacity: 0.5; } }
- .generic-bbm-modal--stacked { -webkit-animation-duration: 0.43333s; -webkit-animation-name: generic-bbm-stacked; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* Close a stacked modal */
- @-webkit-keyframes generic-bbm-stacked-reverse { 0% { -webkit-transform: matrix(0.99123, 0, 0, 0.99123, 0, 43.86266); opacity: 0.56162; }
- 4% { -webkit-transform: matrix(0.99293, 0, 0, 0.99293, 0, 45.05306); opacity: 0.64665; }
- 8% { -webkit-transform: matrix(0.99465, 0, 0, 0.99465, 0, 46.25785); opacity: 0.7327; }
- 12% { -webkit-transform: matrix(0.99618, 0, 0, 0.99618, 0, 47.32543); opacity: 0.80896; }
- 16% { -webkit-transform: matrix(0.99742, 0, 0, 0.99742, 0, 48.19443); opacity: 0.87103; }
- 20% { -webkit-transform: matrix(0.99837, 0, 0, 0.99837, 0, 48.8572); opacity: 0.91837; }
- 24% { -webkit-transform: matrix(0.99905, 0, 0, 0.99905, 0, 49.33456); opacity: 0.95247; }
- 28% { -webkit-transform: matrix(0.99951, 0, 0, 0.99951, 0, 49.65946); opacity: 0.97568; }
- 32% { -webkit-transform: matrix(0.99981, 0, 0, 0.99981, 0, 49.8671); opacity: 0.99051; }
- 36% { -webkit-transform: matrix(0.99999, 0, 0, 0.99999, 0, 49.98963); opacity: 0.99926; }
- 40% { -webkit-transform: matrix(1.00008, 0, 0, 1.00008, 0, 50.05377); opacity: 1.00384; }
- 44% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08024); opacity: 1.00573; }
- 48% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08419); opacity: 1.00601; }
- 52% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.07612); opacity: 1.00544; }
- 56% { -webkit-transform: matrix(1.00009, 0, 0, 1.00009, 0, 50.06284); opacity: 1.00449; }
- 60% { -webkit-transform: matrix(1.00007, 0, 0, 1.00007, 0, 50.04848); opacity: 1.00346; }
- 64% { -webkit-transform: matrix(1.00005, 0, 0, 1.00005, 0, 50.03529); opacity: 1.00252; }
- 68% { -webkit-transform: matrix(1.00004, 0, 0, 1.00004, 0, 50.02428); opacity: 1.00173; }
- 72% { -webkit-transform: matrix(1.00002, 0, 0, 1.00002, 0, 50.01572); opacity: 1.00112; }
- 76% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00944); opacity: 1.00067; }
- 80% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00508); opacity: 1.00036; }
- 84% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.00223); opacity: 1.00016; }
- 88% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.0005); opacity: 1.00004; }
- 92% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99956); opacity: 0.99997; }
- 96% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99912); opacity: 0.99994; }
- 100% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50); opacity: 1; } }
- .generic-bbm-modal--stacked-reverse { -webkit-animation-duration: 0.43333s; -webkit-animation-name: generic-bbm-stacked-reverse; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* Close a modal */
- @-webkit-keyframes generic-bbm-close { 0% { -webkit-transform: matrix(0.99874, 0, 0, 0.99874, 0, 49.1187); opacity: 0.8741; }
- 4% { -webkit-transform: matrix(0.99705, 0, 0, 0.99705, 0, 47.93192); opacity: 0.70456; }
- 8% { -webkit-transform: matrix(0.99533, 0, 0, 0.99533, 0, 46.73078); opacity: 0.53297; }
- 12% { -webkit-transform: matrix(0.99381, 0, 0, 0.99381, 0, 45.66645); opacity: 0.38092; }
- 16% { -webkit-transform: matrix(0.99257, 0, 0, 0.99257, 0, 44.80009); opacity: 0.25716; }
- 20% { -webkit-transform: matrix(0.99163, 0, 0, 0.99163, 0, 44.13933); opacity: 0.16276; }
- 24% { -webkit-transform: matrix(0.99095, 0, 0, 0.99095, 0, 43.66342); opacity: 0.09477; }
- 28% { -webkit-transform: matrix(0.99049, 0, 0, 0.99049, 0, 43.33951); opacity: 0.0485; }
- 32% { -webkit-transform: matrix(0.99019, 0, 0, 0.99019, 0, 43.1325); opacity: 0.01893; }
- 36% { -webkit-transform: matrix(0.99002, 0, 0, 0.99002, 0, 43.01034); opacity: 0.00148; }
- 40% { -webkit-transform: matrix(0.98992, 0, 0, 0.98992, 0, 42.94639); opacity: -0.00766; }
- 44% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92001); opacity: -0.01143; }
- 48% { -webkit-transform: matrix(0.98988, 0, 0, 0.98988, 0, 42.91606); opacity: -0.01199; }
- 52% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92411); opacity: -0.01084; }
- 56% { -webkit-transform: matrix(0.98991, 0, 0, 0.98991, 0, 42.93736); opacity: -0.00895; }
- 60% { -webkit-transform: matrix(0.98993, 0, 0, 0.98993, 0, 42.95167); opacity: -0.0069; }
- 64% { -webkit-transform: matrix(0.98995, 0, 0, 0.98995, 0, 42.96482); opacity: -0.00503; }
- 68% { -webkit-transform: matrix(0.98997, 0, 0, 0.98997, 0, 42.97579); opacity: -0.00346; }
- 72% { -webkit-transform: matrix(0.98998, 0, 0, 0.98998, 0, 42.98433); opacity: -0.00224; }
- 76% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99059); opacity: -0.00134; }
- 80% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99494); opacity: -0.00072; }
- 84% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.99777); opacity: -0.00032; }
- 88% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.9995); opacity: -7e -5; }
- 92% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00044); opacity: 6.0e-05; }
- 96% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00088); opacity: 0.00012; }
- 100% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43); opacity: 0; } }
- .generic-bbm-modal--close { -webkit-animation-duration: 0.43333s; -webkit-animation-name: generic-bbm-close; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- #account-login-authy-token-holder { display: none; }
- @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { .generic-bbm-modal--open, .generic-bbm-modal--stacked, .generic-bbm-modal--stacked-reverse, .generic-bbm-modal--destroy { -webkit-animation: none !important; } }
- #flash {
- position:fixed;
- right: 30px;
- top:10px;
- background: black;
- opacity: .8;
- border-radius: 10px;
- color:#eee;
- padding:20px;
- min-width: 200px;
- max-width: 400px;
- text-align: center;
- z-index: 99999;
- box-shadow: 1px 1px 5px #000;
- display:none;
- }
- html, body {
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- }
- body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 14px;
- margin: 0;
- padding: 0;
- }
- // Localize.js uses the <var> tag to indicate certain special things. However,
- // some browsers apply special CSS to the <var> tag which we don't want. This
- // effectively removes any special CSS that the browser might apply to <var>.
- var {
- margin: 0;
- padding: 0;
- border: 0;
- font-size: 100%;
- font: inherit;
- vertical-align: baseline;
- }
- .humble-banner { box-sizing: content-box; background: radial-gradient(ellipse closest-side, #4b4b4b 0%, black 40%); height: 90px; padding: 10px 0; }
- .humble-banner a, .humble-banner a:visited { display: block; width: 651px; height: 89px; text-align: center; margin: 0 auto; text-decoration: none; position: relative; }
- .humble-banner p { font-size: 18px; line-height: 18px; color: #ccc; font-style: italic; margin: 0; padding: 0; position: absolute; top: 36px; left: -250px; width: 240px; text-align: right; }
- .humble-banner img { margin: 12px 0 0 0; height: 45px; width: auto; }
- .humble-banner h3 { margin: 0; padding: 0; display: inline-block; position: relative; }
- .humble-banner h4 { font-size: 14px; line-height: 14px; color: #eee; margin: 0; font-weight: normal; padding: 4px 0 16px 0; }
- .sharer {
- display: inline-block;
- vertical-align: middle;
- }
- .sharer.l {
- float: none;
- position: static;
- }
- .sharer + .sharer,
- script + .sharer {
- margin-left: 15px;
- }
- .social-media-shares {
- text-align: center;
- padding-bottom: 10px;
- }
- </style>
- <style type="text/css">@font-face { font-family: 'hb-icons'; src: url("/static/hashed/17015ce97435ec01a0b93ed4cd7e0c07d8358d94.woff2") format("woff2"), url("/static/hashed/aa7c3e70c582fdfe2eaa1f7fa385de1fdf9ad5aa.woff") format("woff"), url("/static/hashed/a644e848801b42652db065692ad02c14597addc3.ttf") format("truetype"), url("/static/hashed/e0d86cf22c1a59129aaccbf71a27375ce4d8ab4a.otf") format("opentype"); font-weight: normal; font-style: normal; }
- /* Sophia Pro */
- @font-face { font-family: 'Sofia Pro'; src: url("/static/hashed/9e29ad97c24ce996ebe7aefbc55c0077ed0d8d2f.woff2") format("woff2"), url("/static/hashed/cbe7d774210bd1694c15df789ac02ccf3b2b4e92.woff") format("woff"), url("/static/hashed/c25e4297360ab6310322bcc95cf47b58fd6321bc.ttf") format("truetype"), url("/static/hashed/a294c7b2895267014ac902206c4bd4c75b586a04.otf") format("opentype"); font-weight: 900; font-style: normal; }
- @font-face { font-family: 'Sofia Pro'; src: url("/static/hashed/86b0d4d2129d83657c3712791efc7e9754aa8a82.woff2") format("woff2"), url("/static/hashed/c0623e77d8862256a4360e1115d945053eb655ef.woff") format("woff"), url("/static/hashed/e01d35c833cf887534576322604e6e1ec2c95361.ttf") format("truetype"), url("/static/hashed/1b015efad5d8d477ac94c6c74de3a6d3d3ed16df.otf") format("opentype"); font-weight: 900; font-style: italic; }
- @font-face { font-family: 'Sofia Pro'; src: url("/static/hashed/34c59909d0360e2d5e43bcb210176a753e1866b0.woff2") format("woff2"), url("/static/hashed/11d59a3ff5cdd3390fb93fbd9615dc0fb56a8c65.woff") format("woff"), url("/static/hashed/7e9bccdbfb3878e6a5453bf99993eed610d0e41d.ttf") format("truetype"), url("/static/hashed/18a648d337ad820b6dbf8145682d67d5259dcebd.otf") format("opentype"); font-weight: 300; font-style: normal; }
- @font-face { font-family: 'Sofia Pro'; src: url("/static/hashed/5b6a9522d5ddf17bbc23ee59f994e6df291ed825.woff2") format("woff2"), url("/static/hashed/df30037a1c8ff81537368af51b9e3fe836ee2804.woff") format("woff"), url("/static/hashed/9746d94d32ced44188e055d15495eed7f8fd43b1.ttf") format("truetype"), url("/static/hashed/1ce1b93b6c5386c81aed0a4d365d51809545ec39.otf") format("opentype"); font-weight: 300; font-style: italic; }
- @font-face { font-family: 'Sofia Pro'; src: url("/static/hashed/0052ab0bbfee0e88edc1e6c68494d9449016fd24.woff2") format("woff2"), url("/static/hashed/dcfc553e267fb5bb92a7510b6be35159fdadf57f.woff") format("woff"), url("/static/hashed/9370f719a25957b05ace466b39c2a2d4b33734c6.ttf") format("truetype"), url("/static/hashed/ab1f225985185b4ebb319b4c7f89b1d9b2b59848.otf") format("opentype"); font-weight: normal; font-style: normal; }
- @font-face { font-family: 'Sofia Pro'; src: url("/static/hashed/c294b2a2521169835a44953e87e2cc8900cee5ec.woff2") format("woff2"), url("/static/hashed/9322caa9a8ca9c74d5f0af655d789d1d7d63a24a.woff") format("woff"), url("/static/hashed/034595580ccc31b93f69fe336eb28bd519f5dc95.ttf") format("truetype"), url("/static/hashed/f4e4f58e25e1a1ad121ed70b9c4832bb69c941b3.otf") format("opentype"); font-weight: normal; font-style: italic; }</style>
- <link rel="stylesheet" href="https://humblebundle-a.akamaihd.net/static/hashed/149e1a4113c4b83734843264419d4e94a6094e3a.css" />
- <link rel="stylesheet" href="https://humblebundle-a.akamaihd.net/static/hashed/d683df30c58a55cd5d46de4e620d4ef3f38ed244.css" />
- <link rel="stylesheet" href="https://humblebundle-a.akamaihd.net/static/hashed/4357c6bf647048575c04f0cd82dac536a610dbbb.css" />
- <style>
- @charset "UTF-8";
- .charity-selection .charity-results .charity-preview .select-charity, .charity-selection .charity-results .charity-preview .remove-charity, .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity, .charity-details .charity-title .select-charity { display: block; padding: 4px 0; border-radius: 3px; border: none; background: rgba(255, 255, 255, 0.3); border: 1px solid rgba(0, 0, 0, 0.2); text-align: center; font-size: 12px; font-weight: bold; text-decoration: none; color: #494f5c; }
- .charity-selection .charity-results .charity-preview .select-charity.is-selected, .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity.is-selected, .charity-details .charity-title .select-charity.is-selected, .charity-details .charity-title .select-charity.is-featured { border: 1px solid rgba(0, 0, 0, 0.1); background: #17a1e5; color: #fff; }
- .charity-selection h2 { font-size: 26px; color: #494f5c; font-weight: 200; margin: -6px 0 0 0; }
- .charity-selection .charity-search { padding-bottom: 20px; position: relative; font-size: 14px; }
- .charity-selection .charity-search input, .charity-selection .charity-search label, .charity-selection .charity-search button { display: inline-block; margin-right: 10px; }
- .charity-selection .charity-search input, .charity-selection .charity-search select, .charity-selection .charity-search button { border-radius: 3px; height: 31px; padding: 4px; box-sizing: border-box; border: 1px solid #ddd; margin-top: 4px; font-size: 14px; }
- .charity-selection .charity-search label { text-transform: uppercase; font-size: 10px; color: #a1a7b2; }
- .charity-selection .charity-search label::first-letter { margin-left: 2px; }
- .charity-selection .charity-search .query { position: relative; width: 350px; }
- .charity-selection .charity-search .query input { width: 100%; padding-left: 26px; color: #494f5c; }
- .charity-selection .charity-search .query i { position: absolute; bottom: 8px; left: 8px; font-size: 14px; color: #a1a7b2; }
- .charity-selection .charity-search .category select, .charity-selection .charity-search .country select, .charity-selection .charity-search .state select { width: 100%; display: inline-block; color: #494f5c; }
- .charity-selection .charity-search .category { width: 250px; }
- .charity-selection .charity-search .country { width: 210px; }
- .charity-selection .charity-search .state { display: none; }
- .charity-selection .charity-search .state.is-united-states, .charity-selection .charity-search .country.is-united-states { width: 100px; display: inline-block; }
- .charity-selection .charity-search button { width: 100px; margin-right: 0; border: 1px solid rgba(0, 0, 0, 0.2); box-shadow: 0px 1px 2px rgba(255, 255, 255, 0.2) inset; background-image: linear-gradient(top, #4DC4FF 0%, #17A1E6 100%); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); color: #fff; font-weight: 500; }
- .charity-selection .charity-search:after { content: ''; display: block; clear: both; }
- .charity-selection .results-heading { margin: 4px 0 0 0; font-size: 20px; font-weight: 200; }
- .charity-selection .results-heading-disclaimer { margin: 4px 0 2px 0; font-size: 12px; color: #7b818c; font-weight: normal; display: none; }
- .charity-selection .charity-img { height: 64px; width: 64px; background-color: white; background-size: contain; background-repeat: no-repeat; background-position: center center; border-radius: 3px; overflow: hidden; position: absolute; cursor: pointer; left: 0; top: 0; }
- .charity-selection .partnership-line { position: absolute; right: 0; bottom: 0; color: #7B818C; font-size: 12px; font-style: italic; }
- .charity-selection .partnership-line a { color: #7B818C; }
- .charity-selection .charity-results { padding-top: 5px; margin-bottom: 20px; margin-right: -20px; }
- .charity-selection .charity-results .charity-selection-message { text-align: center; color: #7b818c; margin: 65px; }
- .charity-selection .charity-results .charity-selection-message h1 { font-size: 24px; font-weight: normal; }
- .charity-selection .charity-results .charity-selection-message img { vertical-align: middle; margin-right: 5px; }
- .charity-selection .charity-results .charity-preview { width: 300px; margin: 20px 20px 20px 0; display: inline-block; text-align: left; vertical-align: top; position: relative; padding-left: 76px; box-sizing: border-box; }
- .charity-selection .charity-results .charity-preview.is-disallowed { opacity: 0.5; }
- .charity-selection .charity-results .charity-preview.is-disallowed button { outline: none; }
- .charity-selection .charity-results .charity-preview a { text-decoration: none; }
- .charity-selection .charity-results .charity-preview .select-charity { display: inline-block; font-size: 10px; height: 18px; padding: 1px 8px; text-transform: uppercase; }
- .charity-selection .charity-results .charity-preview .select-charity .unselected-text { display: inline; }
- .charity-selection .charity-results .charity-preview .select-charity .disallowed-text, .charity-selection .charity-results .charity-preview .select-charity .selected-text, .charity-selection .charity-results .charity-preview .select-charity .featured-text { display: none; }
- .charity-selection .charity-results .charity-preview .select-charity.is-unselected-featured .featured-text { display: inline; }
- .charity-selection .charity-results .charity-preview .select-charity.is-unselected-featured .selected-text, .charity-selection .charity-results .charity-preview .select-charity.is-unselected-featured .unselected-text, .charity-selection .charity-results .charity-preview .select-charity.is-unselected-featured .disallowed-text { display: none; }
- .charity-selection .charity-results .charity-preview .select-charity.is-selected .selected-text { display: inline; }
- .charity-selection .charity-results .charity-preview .select-charity.is-selected .disallowed-text, .charity-selection .charity-results .charity-preview .select-charity.is-selected .unselected-text, .charity-selection .charity-results .charity-preview .select-charity.is-selected .featured-text { display: none; }
- .charity-selection .charity-results .charity-preview .select-charity.is-disallowed { cursor: default; background: #333; }
- .charity-selection .charity-results .charity-preview .select-charity.is-disallowed .disallowed-text { display: inline; color: #787878; }
- .charity-selection .charity-results .charity-preview .select-charity.is-disallowed .selected-text, .charity-selection .charity-results .charity-preview .select-charity.is-disallowed .unselected-text, .charity-selection .charity-results .charity-preview .select-charity.is-disallowed .featured-text { display: none; }
- .charity-selection .charity-results .charity-preview .select-charity.is-featured { cursor: default; background: #17A1E5; }
- .charity-selection .charity-results .charity-preview .select-charity.is-featured .featured-text { color: #fff; display: inline; }
- .charity-selection .charity-results .charity-preview .select-charity.is-featured .selected-text, .charity-selection .charity-results .charity-preview .select-charity.is-featured .unselected-text, .charity-selection .charity-results .charity-preview .select-charity.is-featured .disallowed-text { display: none; }
- .charity-selection .charity-results .charity-preview .remove-charity { background-color: #cb272c; color: white; display: inline-block; font-size: 10px; height: 18px; margin-left: 5px; padding: 1px 8px; text-transform: uppercase; }
- .charity-selection .charity-results .charity-preview .charity-name { margin: 0 0 0 auto; }
- .charity-selection .charity-results .charity-preview .charity-name h4 { margin: -1px 0 0 0; padding: 0 0 7px 0; height: 18px; font-size: 16px; font-weight: 400; white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; width: 204px; }
- .charity-selection .charity-results .charity-preview .charity-name h5.location { margin: 0 0 9px 0; font-size: 12px; font-weight: normal; color: #7b818c; height: 14px; }
- .charity-selection .featured-charities { border-bottom: 1px solid #ddd; margin-bottom: 20px; padding-bottom: 20px; min-height: 116px; }
- .charity-selection .featured-charities::after { clear: both; content: ""; display: table; }
- .charity-selection .featured-charities .featured-description-wrapper { float: left; }
- .charity-selection .featured-charities .featured-heading { font-size: 20px; font-weight: 200; margin: 20px 0 18px 0; }
- .charity-selection .featured-charities .featured-charities-description { width: 245px; margin: 0; line-height: 16px; }
- .charity-selection .featured-charities .featured-charities-list { padding-top: 20px; float: right; }
- .charity-selection .featured-charities .featured-charities-list .charity-list { text-align: right; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview { width: 64px; margin: 0 -10px 0 65px; display: inline-block; text-align: center; vertical-align: top; position: relative; box-sizing: border-box; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview:first-of-type { margin-left: 0; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview a { text-decoration: none; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .charity-img { position: static; display: block; margin: 0 auto; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity { padding: 1px 8px; font-size: 10px; text-transform: uppercase; height: 18px; margin: 0 auto; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity .selected-text, .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity .unselected-text, .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity .featured-text { display: none; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity.is-selected .selected-text { display: inline; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity.is-featured .featured-text { display: inline; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity.is-unselected-featured .featured-text { display: inline; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .select-charity:not(.is-selected):not(.is-featured):not(.is-unselected-featured) .unselected-text { display: inline; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .charity-name { margin: 0 0 0 auto; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .charity-name h4 { margin: 12px -40% 12px -40%; height: 18px; font-size: 12px; font-weight: normal; }
- .charity-selection .featured-charities .featured-charities-list .charity-preview .charity-name h5.location { display: none; }
- .charity-details { margin-bottom: 40px; }
- .charity-details:after { content: ''; display: block; clear: both; }
- .charity-details .charity-title { display: block; position: relative; padding-bottom: 16px; border-bottom: 1px solid #ddd; margin-bottom: 20px; }
- .charity-details .charity-title h2 { font-size: 26px; font-weight: 200; margin: 0; }
- .charity-details .charity-title .select-charity { padding: 7px 14px; font-size: 14px; position: absolute; top: 0; right: 0; }
- .charity-details .charity-title .select-charity .selected-text, .charity-details .charity-title .select-charity .unselected-text, .charity-details .charity-title .select-charity .featured-text { display: none; }
- .charity-details .charity-title .select-charity.is-selected .selected-text { display: inline; }
- .charity-details .charity-title .select-charity.is-featured .featured-text { display: inline; }
- .charity-details .charity-title .select-charity.is-unselected-featured .featured-text { display: inline; }
- .charity-details .charity-title .select-charity:not(.is-selected):not(.is-featured):not(.is-unselected-featured) .unselected-text { display: inline; }
- .charity-details .charity-img { width: 190px; height: 190px; float: left; border: 1px solid #ddd; border-radius: 3px; background-color: white; background-size: contain; background-repeat: no-repeat; background-position: center center; position: relative; }
- .charity-details .charity-sidebar { margin-left: 210px; }
- .charity-details .charity-sidebar .charity-info { font-style: italic; }
- .charity-details .charity-sidebar .charity-info strong { font-style: normal; }
- .charity-details .charity-sidebar .charity-link { display: block; font-weight: bold; font-style: normal; color: #17a1e5; margin: 1em 0; }
- .charity-details .charity-description { font-size: 14px; line-height: 21px; }
- .charity-account-cta { position: fixed; bottom: -56px; left: 0; right: 0; height: 48px; text-align: center; z-index: 1000; }
- .charity-account-cta .charity-account-cta-message { display: inline-block; height: 48px; padding: 18px 40px; box-sizing: border-box; border-radius: 3px 3px 0 0; background: #d5d9e1; border: 1px solid rgba(161, 167, 178, 0.5); box-shadow: 0 -1px 8px rgba(0, 0, 0, 0.3); }
- .charity-account-cta .charity-account-cta-message p { margin: 0; }
- .unstyled-link { text-decoration: none; }
- .genericbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/aafd697db4950b99bc95a0ef740f10d7301eb437.png") no-repeat; }
- .activated .genericbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/7f9102778b07eec38f1ba5911c95c24d3aa98318.png") no-repeat; }
- .steambutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/4679a3c4d14fbda0fe37478d446d001fad44e3c1.png") no-repeat; }
- .activated .steambutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/7d32b8cb2ed51ab18ec0e5a40208afd4a41c988c.png") no-repeat; }
- .uplaybutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/4b3fd1c208843f91a063bec2349b526202a4fe6e.png") no-repeat; }
- .activated .uplaybutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/4ca5ac1bf3373babd5a508d6556f5f7fd6ad4b38.png") no-repeat; }
- .originbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/e76fbc1ccb8733279587f6038056cd3fdc0271a9.png") no-repeat; }
- .activated .originbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/3ff62f831583f243b65f8954c08f40702eed5912.png") no-repeat; }
- .ouyabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/e8916956991bdd418ccdb45e6dead81cae599a34.png") no-repeat; }
- .activated .ouyabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/cb5ea8b036c49c5f6466d97c37703016668df034.png") no-repeat; }
- .desurabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/97b4d580682444ec310e39480957a39d84a50106.png") no-repeat; }
- .activated .desurabutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/72c7a91a612ceee5ceda77133c9d79bf66b8dec3.png") no-repeat; }
- .onlivebutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/e7426f51dea62e220deeb988794cb32e15c265ae.png") no-repeat; }
- .activated .onlivebutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/8c812b14676720a1c5541e5ff0084336f8ca952b.png") no-repeat; }
- .multiplayerbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/6f98857f10330e006847a2571bd2fcdd972da502.png") no-repeat; }
- .activated .multiplayerbutton { background: url("//humblebundle-a.akamaihd.net/static/hashed/20048fabc7a0a68316b0315f584c58ad95b17055.png") no-repeat; }
- .squareenix_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/ac97edf1d373f749576bab85be377698494478d9.png") no-repeat; }
- .activated .squareenix_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/3af19fcba4ca44990c78e1aebee17bbadd21afe7.png") no-repeat; }
- .bethesda_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/61a2c4c13f0b95b11aec7784356d325f1ad76223.png") no-repeat; }
- .activated .bethesda_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/80a34f59a907904dcb29c5e434affb9f88ee6fc6.png") no-repeat; }
- .telltalegames_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/c3c956701f7cbf7842d1fef8d713f829042dbfb4.png") no-repeat; }
- .activated .telltalegames_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/cfe22581a0a30154a85744ae2f58671af6b731b6.png") no-repeat; }
- .nintendo_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/32be74acd8de11c5a9a240c5ce3c00d0287b83a3.png") no-repeat; }
- .activated .nintendo_button { background: url("//humblebundle-a.akamaihd.net/static/hashed/2a16694e165dc6e39f3e89f6eba6d1451d278f6a.png") no-repeat; }
- .soldout { visibility: hidden; }
- .bbm-modal .whitebox .loading { padding: 50px; width: 300px; }
- .bbm-modal .whitebox .downloads { padding-right: 30px; }
- .bbm-modal .whitebox .platform-chooser { padding-top: 30px; }
- .bbm-modal .whitebox .row { padding-left: 15px; }
- .bbm-modal .whitebox .keyfield { width: 350px; height: 28px; color: #808080; text-align: center; line-height: 28px; font-size: 12px; -webkit-font-smoothing: antialiased; float: left; background: url("//humblebundle-a.akamaihd.net/static/hashed/9e9017643ddecc7f2d3cd0032c577b88d96ce5e0.png") no-repeat; }
- .bbm-modal .whitebox .clear { clear: both; height: 0; }
- .bbm-modal { background: #fff; color: #333; font-size: 14px; font-weight: normal; box-shadow: 0 0 6px rgba(0, 0, 0, 0.6), 0 1px 2px rgba(0, 0, 0, 0.9); }
- /* Modal positioning */
- .bbm-wrapper { background: rgba(0, 0, 0, 0.4); position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 100; padding: 0 10px 0 10px; text-align: left; overflow: auto; }
- .bbm-modal { border-radius: 3px; min-width: 761px; margin: auto; margin-bottom: 40px; width: auto; max-width: 550px; }
- .bbm-views { width: 100%; }
- .generic-bbm-views { width: 100%; }
- /* BLOCKS */
- .bbm-modal__topbar, .bbm-modal__bottombar { padding: 0 30px; }
- .bbm-modal__topbar { border-bottom: 1px solid rgba(0, 0, 0, 0.1); border-radius: 3px 3px 0 0; padding: 10px 30px; background: #bbb; font-weight: bold; font-size: 16px; margin-bottom: 30px; }
- .bbm-modal__topbar i { margin-right: 10px; }
- .bbm-modal__topbar > ul { list-style: none; text-align: center; padding: 0; margin: 0; }
- .bbm-modal__tab { display: inline-block; padding: 15px 10px; }
- .bbm-modal__tab a { font-size: 16px; font-weight: bold; color: #999999; }
- .bbm-modal__tab a:hover, .bbm-modal__tab a.active { color: #222222; }
- .bbm-modal__title { padding: 20px 30px; margin: 0; line-height: 1em; color: #312d3a; }
- .bbm-modal__section { padding: 60px 30px 0px 30px; font-size: 14px; font-weight: normal; line-height: 26px; color: #333; }
- .bbm-modal__section p:last-child { padding: 0; margin-bottom: 0; }
- .bbm-modal__section a { color: #333; }
- .bbm-modal__section h3 { margin: 0; font-size: 20px; line-height: 1em; }
- .bbm-modal__bottombar { border-top: 1px solid rgba(0, 0, 0, 0.1); padding: 18px; text-align: right; margin-top: 30px; }
- /* MODULES */
- .bbm-group { content: ""; display: table; clear: both; }
- .bbm-button { display: inline-block; color: rgba(49, 45, 58, 0.8); text-decoration: none; font-size: 14px; font-weight: 500; position: relative; line-height: 1em; padding: 10px 14px; border-radius: 3px; background: #fcfcfc; background-image: -o-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: -moz-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: -webkit-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: -ms-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); background-image: linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.15) 100%); -moz-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.2); box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.2); }
- .bbm-button.inactive { opacity: 0.5; pointer-events: none; }
- .bbm-button:active { background-image: -o-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: -moz-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: -webkit-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: -ms-linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); background-image: linear-gradient(rgba(70, 30, 170, 0) 0%, rgba(65, 61, 75, 0.25) 100%); -moz-box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.2); box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.2); }
- /* ANIMATIONS */
- /* Open modal */
- @-webkit-keyframes bbm-open { 0% { -webkit-transform: matrix(0.99126, 0, 0, 0.99126, 0, 43.8813); opacity: 0.1259; }
- 4% { -webkit-transform: matrix(0.99295, 0, 0, 0.99295, 0, 45.06809); opacity: 0.29544; }
- 8% { -webkit-transform: matrix(0.99467, 0, 0, 0.99467, 0, 46.26922); opacity: 0.46703; }
- 12% { -webkit-transform: matrix(0.99619, 0, 0, 0.99619, 0, 47.33355); opacity: 0.61908; }
- 16% { -webkit-transform: matrix(0.99743, 0, 0, 0.99743, 0, 48.19991); opacity: 0.74284; }
- 20% { -webkit-transform: matrix(0.99837, 0, 0, 0.99837, 0, 48.86067); opacity: 0.83724; }
- 24% { -webkit-transform: matrix(0.99905, 0, 0, 0.99905, 0, 49.33658); opacity: 0.90523; }
- 28% { -webkit-transform: matrix(0.99952, 0, 0, 0.99952, 0, 49.66049); opacity: 0.9515; }
- 32% { -webkit-transform: matrix(0.99981, 0, 0, 0.99981, 0, 49.8675); opacity: 0.98107; }
- 36% { -webkit-transform: matrix(0.99999, 0, 0, 0.99999, 0, 49.98966); opacity: 0.99852; }
- 40% { -webkit-transform: matrix(1.00008, 0, 0, 1.00008, 0, 50.05361); opacity: 1.00766; }
- 44% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.08); opacity: 1.01143; }
- 48% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08394); opacity: 1.01199; }
- 52% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.07589); opacity: 1.01084; }
- 56% { -webkit-transform: matrix(1.00009, 0, 0, 1.00009, 0, 50.06265); opacity: 1.00895; }
- 60% { -webkit-transform: matrix(1.00007, 0, 0, 1.00007, 0, 50.04833); opacity: 1.0069; }
- 64% { -webkit-transform: matrix(1.00005, 0, 0, 1.00005, 0, 50.03518); opacity: 1.00503; }
- 68% { -webkit-transform: matrix(1.00004, 0, 0, 1.00004, 0, 50.02421); opacity: 1.00346; }
- 72% { -webkit-transform: matrix(1.00002, 0, 0, 1.00002, 0, 50.01567); opacity: 1.00224; }
- 76% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00941); opacity: 1.00134; }
- 80% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00506); opacity: 1.00072; }
- 84% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.00223); opacity: 1.00032; }
- 88% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.0005); opacity: 1.00007; }
- 92% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99956); opacity: 0.99994; }
- 96% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99913); opacity: 0.99988; }
- 100% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50); opacity: 1; } }
- .bbm-modal--open { -webkit-animation-duration: 0.3s; -webkit-animation-name: bbm-open; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* Open a stacked modal */
- @-webkit-keyframes bbm-stacked { 0% { -webkit-transform: matrix(0.99874, 0, 0, 0.99874, 0, 49.1187); opacity: 0.93705; }
- 4% { -webkit-transform: matrix(0.99705, 0, 0, 0.99705, 0, 47.93192); opacity: 0.85228; }
- 8% { -webkit-transform: matrix(0.99533, 0, 0, 0.99533, 0, 46.73078); opacity: 0.76648; }
- 12% { -webkit-transform: matrix(0.99381, 0, 0, 0.99381, 0, 45.66645); opacity: 0.69046; }
- 16% { -webkit-transform: matrix(0.99257, 0, 0, 0.99257, 0, 44.80009); opacity: 0.62858; }
- 20% { -webkit-transform: matrix(0.99163, 0, 0, 0.99163, 0, 44.13933); opacity: 0.58138; }
- 24% { -webkit-transform: matrix(0.99095, 0, 0, 0.99095, 0, 43.66342); opacity: 0.54739; }
- 28% { -webkit-transform: matrix(0.99049, 0, 0, 0.99049, 0, 43.33951); opacity: 0.52425; }
- 32% { -webkit-transform: matrix(0.99019, 0, 0, 0.99019, 0, 43.1325); opacity: 0.50946; }
- 36% { -webkit-transform: matrix(0.99002, 0, 0, 0.99002, 0, 43.01034); opacity: 0.50074; }
- 40% { -webkit-transform: matrix(0.98992, 0, 0, 0.98992, 0, 42.94639); opacity: 0.49617; }
- 44% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92001); opacity: 0.49429; }
- 48% { -webkit-transform: matrix(0.98988, 0, 0, 0.98988, 0, 42.91606); opacity: 0.494; }
- 52% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92411); opacity: 0.49458; }
- 56% { -webkit-transform: matrix(0.98991, 0, 0, 0.98991, 0, 42.93736); opacity: 0.49553; }
- 60% { -webkit-transform: matrix(0.98993, 0, 0, 0.98993, 0, 42.95167); opacity: 0.49655; }
- 64% { -webkit-transform: matrix(0.98995, 0, 0, 0.98995, 0, 42.96482); opacity: 0.49749; }
- 68% { -webkit-transform: matrix(0.98997, 0, 0, 0.98997, 0, 42.97579); opacity: 0.49827; }
- 72% { -webkit-transform: matrix(0.98998, 0, 0, 0.98998, 0, 42.98433); opacity: 0.49888; }
- 76% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99059); opacity: 0.49933; }
- 80% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99494); opacity: 0.49964; }
- 84% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.99777); opacity: 0.49984; }
- 88% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.9995); opacity: 0.49996; }
- 92% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00044); opacity: 0.50003; }
- 96% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00088); opacity: 0.50006; }
- 100% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43); opacity: 0.5; } }
- .bbm-modal--stacked { -webkit-animation-duration: 0.43333s; -webkit-animation-name: bbm-stacked; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* destroy a stacked modal */
- @-webkit-keyframes bbm-stacked-reverse { 0% { -webkit-transform: matrix(0.99123, 0, 0, 0.99123, 0, 43.86266); opacity: 0.56162; }
- 4% { -webkit-transform: matrix(0.99293, 0, 0, 0.99293, 0, 45.05306); opacity: 0.64665; }
- 8% { -webkit-transform: matrix(0.99465, 0, 0, 0.99465, 0, 46.25785); opacity: 0.7327; }
- 12% { -webkit-transform: matrix(0.99618, 0, 0, 0.99618, 0, 47.32543); opacity: 0.80896; }
- 16% { -webkit-transform: matrix(0.99742, 0, 0, 0.99742, 0, 48.19443); opacity: 0.87103; }
- 20% { -webkit-transform: matrix(0.99837, 0, 0, 0.99837, 0, 48.8572); opacity: 0.91837; }
- 24% { -webkit-transform: matrix(0.99905, 0, 0, 0.99905, 0, 49.33456); opacity: 0.95247; }
- 28% { -webkit-transform: matrix(0.99951, 0, 0, 0.99951, 0, 49.65946); opacity: 0.97568; }
- 32% { -webkit-transform: matrix(0.99981, 0, 0, 0.99981, 0, 49.8671); opacity: 0.99051; }
- 36% { -webkit-transform: matrix(0.99999, 0, 0, 0.99999, 0, 49.98963); opacity: 0.99926; }
- 40% { -webkit-transform: matrix(1.00008, 0, 0, 1.00008, 0, 50.05377); opacity: 1.00384; }
- 44% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08024); opacity: 1.00573; }
- 48% { -webkit-transform: matrix(1.00012, 0, 0, 1.00012, 0, 50.08419); opacity: 1.00601; }
- 52% { -webkit-transform: matrix(1.00011, 0, 0, 1.00011, 0, 50.07612); opacity: 1.00544; }
- 56% { -webkit-transform: matrix(1.00009, 0, 0, 1.00009, 0, 50.06284); opacity: 1.00449; }
- 60% { -webkit-transform: matrix(1.00007, 0, 0, 1.00007, 0, 50.04848); opacity: 1.00346; }
- 64% { -webkit-transform: matrix(1.00005, 0, 0, 1.00005, 0, 50.03529); opacity: 1.00252; }
- 68% { -webkit-transform: matrix(1.00004, 0, 0, 1.00004, 0, 50.02428); opacity: 1.00173; }
- 72% { -webkit-transform: matrix(1.00002, 0, 0, 1.00002, 0, 50.01572); opacity: 1.00112; }
- 76% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00944); opacity: 1.00067; }
- 80% { -webkit-transform: matrix(1.00001, 0, 0, 1.00001, 0, 50.00508); opacity: 1.00036; }
- 84% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.00223); opacity: 1.00016; }
- 88% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50.0005); opacity: 1.00004; }
- 92% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99956); opacity: 0.99997; }
- 96% { -webkit-transform: matrix(1, 0, 0, 1, 0, 49.99912); opacity: 0.99994; }
- 100% { -webkit-transform: matrix(1, 0, 0, 1, 0, 50); opacity: 1; } }
- .bbm-modal--stacked-reverse { -webkit-animation-duration: 0.43333s; -webkit-animation-name: bbm-stacked-reverse; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- /* destroy a modal */
- @-webkit-keyframes bbm-destroy { 0% { -webkit-transform: matrix(0.99874, 0, 0, 0.99874, 0, 49.1187); opacity: 0.8741; }
- 4% { -webkit-transform: matrix(0.99705, 0, 0, 0.99705, 0, 47.93192); opacity: 0.70456; }
- 8% { -webkit-transform: matrix(0.99533, 0, 0, 0.99533, 0, 46.73078); opacity: 0.53297; }
- 12% { -webkit-transform: matrix(0.99381, 0, 0, 0.99381, 0, 45.66645); opacity: 0.38092; }
- 16% { -webkit-transform: matrix(0.99257, 0, 0, 0.99257, 0, 44.80009); opacity: 0.25716; }
- 20% { -webkit-transform: matrix(0.99163, 0, 0, 0.99163, 0, 44.13933); opacity: 0.16276; }
- 24% { -webkit-transform: matrix(0.99095, 0, 0, 0.99095, 0, 43.66342); opacity: 0.09477; }
- 28% { -webkit-transform: matrix(0.99049, 0, 0, 0.99049, 0, 43.33951); opacity: 0.0485; }
- 32% { -webkit-transform: matrix(0.99019, 0, 0, 0.99019, 0, 43.1325); opacity: 0.01893; }
- 36% { -webkit-transform: matrix(0.99002, 0, 0, 0.99002, 0, 43.01034); opacity: 0.00148; }
- 40% { -webkit-transform: matrix(0.98992, 0, 0, 0.98992, 0, 42.94639); opacity: -0.00766; }
- 44% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92001); opacity: -0.01143; }
- 48% { -webkit-transform: matrix(0.98988, 0, 0, 0.98988, 0, 42.91606); opacity: -0.01199; }
- 52% { -webkit-transform: matrix(0.98989, 0, 0, 0.98989, 0, 42.92411); opacity: -0.01084; }
- 56% { -webkit-transform: matrix(0.98991, 0, 0, 0.98991, 0, 42.93736); opacity: -0.00895; }
- 60% { -webkit-transform: matrix(0.98993, 0, 0, 0.98993, 0, 42.95167); opacity: -0.0069; }
- 64% { -webkit-transform: matrix(0.98995, 0, 0, 0.98995, 0, 42.96482); opacity: -0.00503; }
- 68% { -webkit-transform: matrix(0.98997, 0, 0, 0.98997, 0, 42.97579); opacity: -0.00346; }
- 72% { -webkit-transform: matrix(0.98998, 0, 0, 0.98998, 0, 42.98433); opacity: -0.00224; }
- 76% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99059); opacity: -0.00134; }
- 80% { -webkit-transform: matrix(0.98999, 0, 0, 0.98999, 0, 42.99494); opacity: -0.00072; }
- 84% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.99777); opacity: -0.00032; }
- 88% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 42.9995); opacity: -7e -5; }
- 92% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00044); opacity: 6.0 e-05; }
- 96% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43.00088); opacity: 0.00012; }
- 100% { -webkit-transform: matrix(0.99, 0, 0, 0.99, 0, 43); opacity: 0; } }
- .bbm-modal--destroy { -webkit-animation-duration: 0.43333s; -webkit-animation-name: bbm-destroy; -webkit-animation-timing-function: linear; -webkit-animation-fill-mode: both; -webkit-transform-origin: 50% 50%; -webkit-backface-visibility: hidden; }
- .admin-quicklinks { list-style: none; z-index: 150; position: fixed; bottom: 10px; right: 10px; height: 45px; width: 47px; margin: 0; padding: 5px; border: 2px solid #cb272c; border-radius: 5px; background: #fff; font-size: 12px; text-align: right; box-sizing: content-box; transition: height 200ms ease-out, width 200ms ease-out, padding 200ms ease-out; }
- .admin-quicklinks .hb-bundle { position: fixed; color: #cb272c; right: 16px; font-size: 45px; }
- .admin-quicklinks:hover { height: auto; width: auto; padding: 10px; }
- .admin-quicklinks:hover .hb-bundle { display: none; }
- .admin-quicklinks:hover .menu-item { display: block; width: auto; }
- .admin-quicklinks .menu-item { display: none; width: 0; padding: 5px 0; }
- .admin-quicklinks .quicklink { color: #000; text-decoration: none; }
- .admin-tiny-link { position: relative; overflow: visible; font-size: 12px; color: white !important; z-index: 100; text-decoration: none; }
- .admin-tiny-link i { position: absolute; left: -10px; top: -10px; text-shadow: 0 2px 3px rgba(0, 0, 0, 0.6); transform: scale(1); transform-origin: center; transition: text-shadow .3s ease, transform .3s ease; }
- .admin-tiny-link i:hover { text-shadow: 0 3px 5px rgba(0, 0, 0, 0.4); transform: scale(2); }
- .admin-tiny-link.disabled { display: none; }
- .early-unlocks-box-art-display { display: flex; justify-content: center; background-image: url("//humblebundle-a.akamaihd.net/static/hashed/c4e776a095b10a28a80f4130cf67f34df6987047.png"); background-size: contain; background-position: center center; background-repeat: no-repeat; height: 346px; }
- .early-unlocks-box-art-display.nocrates { background-image: none; }
- .early-unlocks-box-art-display.multiple { background-image: url("//humblebundle-a.akamaihd.net/static/hashed/14be0a5788d217ac41af9afa55c3ffdff9c23de3.png"); }
- .early-unlocks-box-art-display.margin-bottom { margin-bottom: 50px; }
- .early-unlock-box-art { padding-top: 80px; }
- .early-unlock-showcase { background-color: #3B3E48; background-position: center; background-repeat: no-repeat; background-size: 100% 100%; margin-top: -56px; padding: 56px 0 50px; }
- .early-unlock-info { width: 800px; text-align: center; margin: auto; }
- .early-unlock-info .humble-monthly-10-note span { font-size: 16pt; font-weight: bold; position: relative; top: -16px; margin-left: 16px; }
- .early-unlock-info .humble-monthly-10-note span a { color: white; text-decoration: none; }
- .early-unlock-game-text { font-size: 12pt; line-height: 18pt; width: 580px; margin: auto; margin-bottom: 30px; }
- .early-unlocks-box-art-display .early-unlock-box-art-wrapper { margin: 0 2em; position: relative; /** Modified from https://jsfiddle.net/josedvq/3HG6d/ **/ }
- .early-unlocks-box-art-display .early-unlock-box-art-wrapper .early-unlock-box-art-msrp-wrapper { position: absolute; bottom: 180px; left: -9px; }
- .early-unlocks-box-art-display .early-unlock-box-art-wrapper .early-unlock-box-art-msrp-wrapper .early-unlock-box-art-msrp-display { background-color: #00a0e8; padding: 10px; font-size: 16px; font-weight: bold; color: white; text-align: center; }
- .early-unlocks-box-art-display .early-unlock-box-art-wrapper .box-art-msrp-triangle { width: 0; height: 0; border-top: 10px solid #1d508b; border-left: 20px solid transparent; }
- .humble-monthly .header-timer { margin-bottom: 25px; }
- .humble-monthly article section.header-box-art-display { margin-top: 50px; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper { display: flex; height: 100%; margin: 0 auto; position: relative; max-width: 800px; width: 100%; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .box-art-wrapper { display: flex; justify-content: center; height: inherit; margin: 0 auto; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .box-art-wrapper .box-art { height: 100%; max-height: 470px; margin-left: 1em; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .box-art-wrapper .box-art:first-of-type { margin-left: 0; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .timer-wrapper .subscribe { display: inline-block; position: relative; text-align: center; top: -160px; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .timer-wrapper .subscribe .button.subscribed { margin-top: 25%; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .box-art-msrp-text { background-color: #FF8F59; bottom: 4em; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5); left: 50%; padding: .5em 1em; position: absolute; text-align: center; transform: translateX(-50%); z-index: 10; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .box-art-msrp-text .base-price { display: block; font-size: 1.3em; font-weight: bold; }
- .humble-monthly article section.header-box-art-display .inner-early-unlock-wrapper .box-art-msrp-text .msrp-text { opacity: .8; text-decoration: line-through; }
- .humble-monthly.mobile .header-timer { margin-bottom: 25px; text-align: center; }
- .humble-monthly.mobile article section.header-box-art-display .inner-early-unlock-wrapper { flex-direction: column; height: 205px; }
- .humble-monthly.mobile article section.header-box-art-display .inner-early-unlock-wrapper .box-art-wrapper { height: 100%; order: 2; position: static; width: 100%; }
- .humble-monthly.mobile article section.header-box-art-display .inner-early-unlock-wrapper .box-art-wrapper .box-art { display: block; height: auto; left: auto; max-height: 100%; top: 3.5em; z-index: 3; }
- .pagination { margin: 10px 0; white-space: nowrap; text-align: left; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
- .pagination .jump-to-page { cursor: pointer; display: inline-block; padding: 5px 10px; border-radius: 3px; background: #484f5c; }
- .charity-selection { height: 523px; }
- .charity-selection .cyoc-spinner-dark { display: inline-block; }
- .charity-selection .cyoc-spinner-light { display: none; }
- .charity-selection h1, .charity-selection h2, .charity-selection h3, .charity-selection p, .charity-selection a { color: #eeeeee; }
- .charity-selection h2 { font-size: 18px; font-weight: bold; }
- .charity-selection .charity-results .charity-preview { padding-left: 0; width: 117px; text-align: center; }
- .charity-selection .charity-results .charity-preview .charity-img { width: 64px; height: 64px; position: relative; margin: auto; }
- .charity-selection .charity-results .charity-preview .charity-name { position: relative; width: 124px; text-align: center; padding-bottom: 0; margin-top: 4px; }
- .charity-selection .charity-results .charity-preview .charity-name .see-details { cursor: pointer; }
- .charity-selection .charity-results .charity-preview .charity-name h4 { width: 124px; font-size: 14px; margin-top: 10px; }
- .charity-selection .charity-results .charity-preview .select-charity { background: #A1A7B2; color: white; margin: auto; position: relative; left: -4px; }
- .charity-selection .pagination .jump-to-page { background: #393D49; }
- .charity-selection .pagination .jump-to-page:hover, .charity-selection .pagination .jump-to-page.current { background: #1E2127; }
- .order-form .show-charity-selector { text-decoration: underline; cursor: pointer; }
- .order-form .custom-values-inner { overflow: visible; }
- .order-form .custom-values-inner .subsplit-wrapper { overflow: visible; }
- .order-form .partnership-line { display: none; }
- .order-form .subsplit-wrapper .cyoc-wrapper { left: 0px; }
- .order-form .subsplit-wrapper .cyoc-wrapper .top-arrow { left: 250px; }
- .order-form .cyoc-wrapper { float: left; background: #E4E7ED; height: 354px; display: none; position: relative; width: 897px; left: -114px; padding: 20px; border-top: 1px solid #A6A9B2; border-bottom: 1px solid #A6A9B2; margin-bottom: 10px; }
- .order-form .cyoc-wrapper .top-arrow { position: relative; top: -31px; left: 180px; margin-left: -12px; -webkit-backface-visibility: hidden; background-position: center; width: 23px; height: 11px; background-image: url("//humblebundle-a.akamaihd.net/static/hashed/189096a19ea989ec5b84f8edd0e9efa61bb4c476.png"); background-image: -webkit-image-set(url("//humblebundle-a.akamaihd.net/static/hashed/189096a19ea989ec5b84f8edd0e9efa61bb4c476.png") 1x, url("//humblebundle-a.akamaihd.net/static/hashed/bbe05e5bac2f08dabc6100b32ca67f32c34e044d.png") 2x); }
- .order-form .cyoc-wrapper h1, .order-form .cyoc-wrapper h2, .order-form .cyoc-wrapper h3, .order-form .cyoc-wrapper p, .order-form .cyoc-wrapper a { color: #494f5c; }
- .order-form .cyoc-wrapper .charity-search label.query { width: 280px; }
- .order-form .cyoc-wrapper .cyoc-spinner-dark { display: none; }
- .order-form .cyoc-wrapper .cyoc-spinner-light { display: inline-block; }
- .order-form .cyoc-wrapper .pagination { color: black; }
- .order-form .cyoc-wrapper .pagination .jump-to-page { background: #CBD0DA; }
- .order-form .cyoc-wrapper .pagination .jump-to-page:hover, .order-form .cyoc-wrapper .pagination .jump-to-page.current { background: #a1a5ad; }
- .order-form .splits-holder > .cyoc-wrapper { left: -64px; }
- .cyoc-selector-slide { display: none; }
- .slideout-expandable { background: #33373e; color: #eeeeee; border-top: 1px solid #24282f; border-bottom: 1px solid #24282f; position: relative; padding: 30px 0; -webkit-backface-visibility: hidden; }
- .slideout-expandable .selected-game-arrow.top-arrow { top: -35px; left: 50%; opacity: 1; }
- .slideout-expandable .overflow-wrapper { overflow: hidden; }
- .charity-img { flex-shrink: 0; }
- .charity-img { width: 100px; height: 100px; display: inline-block; background-repeat: no-repeat; background-size: contain; background-position: center center; border-radius: 3px; overflow: hidden; }
- .charity-popup { position: fixed; max-width: 750px; width: 100%; background-color: white; border-radius: 3px; padding: 20px; padding-bottom: 30px; z-index: 1000; top: 50%; left: 50%; transform: translate(-50%, -50%); max-height: 100%; overflow-y: scroll; }
- .charity-popup .charity-info-wrapper { padding: 20px; }
- .charity-popup a { color: #17a1e5; font-weight: bold; }
- .charity-popup .charity-logo { max-width: 100%; max-height: 150px; }
- .charity-popup h2 { font-weight: normal; }
- .charity-popup p { margin: 10px 0; font-size: 15px; line-height: 1.5; }
- .charity-popup .charity-title { font-size: 16px; }
- .charity-popup .charity-description { margin-top: 10px; font-size: 15px; line-height: 1.5; padding-bottom: 15px; }
- .charity-popup .close-button-holder { height: 0; position: relative; overflow: visible; }
- .charity-popup .close-button-holder .close-button { position: absolute; right: -10px; top: -10px; cursor: pointer; }
- .charity-account-cta-message { display: inline-block; position: fixed; left: 0; right: 0; bottom: -100px; max-width: 700px; width: 100%; padding: 18px 40px; margin: 0 auto; box-sizing: border-box; border-radius: 3px 3px 0 0; background: #d5d9e1; border: 1px solid rgba(161, 167, 178, 0.5); box-shadow: 0 -1px 8px rgba(0, 0, 0, 0.3); text-align: center; z-index: 10; }
- .charity-account-cta-message p { margin: 0; }
- #site-xpromo-banner .headline, #site-xpromo-banner .body { width: 500px; font-family: 'Sofia Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; text-shadow: 0.05em 0.05em 0.05em rgba(0, 0, 0, 0.65); }
- #site-xpromo-banner .headline { font-size: 24px; font-weight: 900; line-height: 1.25em; margin: 0 0 0.75em 0; }
- #site-xpromo-banner .body { font-weight: 400; margin: 0 0 1em 0; }
- #site-xpromo-banner .logo, #site-xpromo-banner .cta { max-width: 500px; }
- #site-xpromo-banner .logo { max-height: 150px; margin: 0 0 0.75em 0; }
- #site-xpromo-banner .cta { white-space: nowrap; }
- #site-xpromo-banner .banner { overflow: hidden; transition: height 500ms ease-in-out; }
- #site-xpromo-banner .banner.fadeout { height: 0 !important; }
- #site-xpromo-banner .banner .banner-content:last-child { margin-bottom: 0; }
- @media (max-width: 500px) { #site-xpromo-banner .banner .headline, #site-xpromo-banner .banner .body { width: 320px; }
- #site-xpromo-banner .banner .logo, #site-xpromo-banner .banner .cta { max-width: 320px; } }
- #site-xpromo-banner.is-stuck .banner { position: fixed !important; z-index: 100000; }
- #site-xpromo-banner.is-stuck.top .banner { top: 0; }
- #site-xpromo-banner.is-stuck.bottom .banner { bottom: 0; }
- #site-xpromo-banner.alert-banner .banner { height: 45px; }
- #site-xpromo-banner.alert-banner .banner .body { font-size: 18px; }
- #site-xpromo-banner.small-banner .banner { height: 125px; }
- #site-xpromo-banner.small-banner .banner .logo { max-height: 50px; }
- #site-xpromo-banner.small-banner .banner .body { font-size: 18px; line-height: 1.2em; }
- #site-xpromo-banner.medium-banner .banner { height: 310px; }
- #site-xpromo-banner.medium-banner .banner .body { font-size: 20px; line-height: 1.75em; }
- #site-xpromo-banner.large-banner .banner { height: 450px; }
- #site-xpromo-banner.large-banner .banner .body { font-size: 18px; line-height: 1.5em; }
- #site-xpromo-banner .banner { background-position: center; background-repeat: no-repeat; background-size: cover; position: relative; width: 100%; }
- #site-xpromo-banner .banner .dismiss-button { color: white; cursor: pointer; position: absolute; right: 0; top: 0; padding: 1em; text-shadow: 0 0 0.2em black; }
- #site-xpromo-banner .banner .dismiss-button:after { content: '✕'; font-size: 1.2em; line-height: 1; }
- #site-xpromo-banner .banner a.page-banner-link { align-items: center; color: white; display: flex; flex-direction: column; height: 100%; justify-content: center; position: relative; text-align: center; text-decoration: none; width: 100%; }
- html { box-sizing: border-box; }
- *, *::after, *::before { box-sizing: inherit; }
- body { background: #333; min-width: 880px; -webkit-font-smoothing: antialiased; }
- #dlheader { position: relative; margin: 0 auto 20px auto; min-width: 880px; }
- #logo { margin: 30px auto 0 auto; position: static; }
- #logo img { display: block; margin: 20px auto; max-width: 640px; }
- /* page content */
- .unlock-time { color: #7B818C; font-size: 16px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 500; margin: 0 auto 8px; text-align: center; }
- #papers-top, #papers-bottom { background: url("//humblebundle-a.akamaihd.net/static/hashed/4396bdf4831e7f1368dcdb5a8ec237f1b42bdbc2.png") no-repeat; }
- #papers-top { position: absolute; top: 0; left: 0; height: 280px; width: 831px; }
- #papers-bottom { position: absolute; bottom: 0; left: 0; height: 22px; width: 831px; background-position: 0 bottom; }
- #papers-mid { position: absolute; top: 280px; bottom: 22px; left: 0; width: 831px; background: url("//humblebundle-a.akamaihd.net/static/hashed/277729198acf769d0141fb22563b3b2b3709c9fb.png") repeat-y; }
- #papers-content { position: relative; width: 762px; margin: 0 auto; padding: 30px 0; min-height: 290px; }
- #download-page-wrapper { width: 831px; margin: 0 auto 24px auto; }
- #main { position: relative; color: #4c4c4c; box-sizing: content-box; }
- .order-adder-whitebox { font-weight: normal; }
- /* spiel */
- #spiel { /* Workaround for Android browser's bizarre "auto-fit pages" default setting https://code.google.com/p/android/issues/detail?id=40186 */ background: url(data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==) no-repeat; }
- .download-social-alignment { display: flex; flex-direction: center; align-items: center; width: 100%; }
- #videopaperclip { left: -57px !important; }
- #payment-amount img { margin-bottom: -5px; }
- .instruction-expand { color: #5D801A !important; text-align: center; display: block; }
- .instructions { display: none; }
- .steaminfo { font-size: 16px; cursor: pointer; }
- .key-expander .nosteam { font-weight: normal; width: 70%; margin: 0 auto; padding: 1em 0; }
- .descitem a.steaminfo { text-decoration: none; }
- .youtubeCentered { margin: auto; width: 580px; }
- .shrinksizer.instructionsteps { padding: 16px 20px; }
- .magic-or { padding-left: 230px; }
- #ubuntuinstructions { padding-top: 20px; text-align: center; }
- #ubuntuinstructions h2 { padding-bottom: 10px; }
- #share-box { text-align: center; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75); line-height: 21px; font-size: 14px; }
- .ebookinstructions { display: block; font-weight: normal; }
- .ebookinstructions .open-in-external-window { color: #5d801a; display: block; font-size: 16px; font-weight: bold; text-align: center; }
- .ebookinstructions .slide-down-trigger { font-weight: bold; }
- .ebookinstructions .slide-down { font-size: 13px; line-height: 170%; }
- .ebookinstructions .steptext { padding-top: 6px; }
- .ebookinstructions h2 { font-size: 20px; font-weight: bold; margin-bottom: 1em; }
- .ebookinstructions h3 { font-size: 120%; font-weight: bold; margin-top: 0; padding-top: 0; }
- .ebookinstructions .pre-box { font-size: 130%; text-align: center; }
- .ebookinstructions .sms-form { width: 400px; }
- #send-email-message { color: #468847; padding-left: 2px; }
- #send-email-message.error { color: #b94a48; }
- #ebook-email-form { position: relative; }
- #email-kindle { width: 128px; }
- #send-email { top: 10px; right: 10px; }
- #ebook-email-form .email-details { font-size: 10px; margin-bottom: 0; line-height: 14px; }
- #download-page-wrapper a, #download-page-wrapper a:visited { color: #5d801a; }
- .whitecontent a { font-weight: bold; }
- .small .flexbtn { min-width: 50px; }
- .small .dldetails { width: 60px; }
- #download-page-wrapper .order-form { border: 1px solid #b5b8bf; }
- #download-page-wrapper .order-form a { color: inherit; }
- .media-object { display: block; }
- .media-object::after { clear: both; content: ""; display: table; }
- .media-object .avatar { float: left; margin-right: 10px; }
- .media-object .details { float: left; }
- .credit { padding: 30px; }
- .credit p { margin: 0; }
- .credit p + p { margin-top: 1.2em; }
- .credit .credit-expiry { font-style: italic; }
- .coupon .column { box-sizing: border-box; }
- .coupon .coupon-info, .coupon .redeem-product { padding: 0 90px; }
- .coupon .coupon-info { display: flex; justify-content: space-between; align-items: center; line-height: 1.35; }
- .coupon .coupon-info .coupon-name { font-size: 16px; font-weight: bold; max-width: 438px; }
- .coupon .coupon-info .coupon-name .admin-tiny-link i { position: relative; }
- .coupon .coupon-info .coupon-icon { max-width: 32px; max-height: 32px; margin-top: 5px; }
- .coupon .coupon-info .coupon-terms { color: inherit !important; }
- .coupon .coupon-info .expired { color: #d0021b; }
- .coupon .coupon-info .discount-price { box-sizing: border-box; border-radius: 3px; padding: 5px 10px; display: inline-block; border: 1px solid #d0021b; font-weight: bold; font-size: 12px; color: #d0021b; margin-left: 10px; }
- .coupon .coupon-info .discount-amount { color: #d0021b; }
- .coupon .redeem-product { margin-top: 20px; padding-top: 10px; margin-bottom: -10px; border-top: 1px solid #e4e7ed; text-align: right; font-weight: bold; }
- .coupon .platforms { margin: 0 20px 0 0; text-align: left; display: inline-block; }
- .coupon .platforms li > i { color: inherit; display: inline-block; margin-left: 5px; }
- .coupon .platforms .platform-info { top: 35px; border: 1px solid #e4e7ed; box-shadow: 0 1px 1px #e4e7ed; }
- #monthly-coupon h3, #trove-promo h3 { font-size: 1.3em; margin: 0; }
- #monthly-coupon p, #trove-promo p { font-size: 1.1em; font-weight: 300; margin: .3em 0 0; }
- #monthly-coupon .button-container, #trove-promo .button-container { padding-top: 20px; }
- #monthly-coupon .button-container a, #trove-promo .button-container a { white-space: nowrap; }
- #monthly-coupon .image-wrapper, #trove-promo .image-wrapper { flex-basis: 70px; flex-shrink: 0; padding-right: 20px; text-align: right; }
- #monthly-coupon .coupon-details, #monthly-coupon .trove-details, #trove-promo .coupon-details, #trove-promo .trove-details { flex-basis: 100%; flex-shrink: 1; }
- #monthly-coupon.wrapper { display: flex; flex-direction: row; justify-content: space-around; }
- #monthly-coupon .hb-bundle { color: #cb272c; font-size: 60px; }
- #monthly-coupon .coupon-details .coupon-info-link { color: #757b86; display: inline-block; margin: 5px 0; }
- #monthly-coupon .coupon-details .tooltip-right { color: #3b3e48 !important; }
- #monthly-coupon .coupon-details .tooltip-right:before { border-right-color: #333; top: 5px; }
- #monthly-coupon .coupon-details .tooltip-right:after { background-color: #333; color: #fff; }
- #monthly-coupon .centered { text-align: center; }
- #monthly-coupon .store-logo { margin-bottom: .2em; width: 200px; }
- #monthly-coupon .button { color: white !important; }
- #trove-promo.wrapper { display: flex; justify-content: space-around; }
- #trove-promo .trove-logo { height: 60px; }
- #trove-promo .trove-details { padding-top: 10px; }
- /* Additional order adder styling */
- .order-form .splits-holder > .cyoc-wrapper { left: -72px; width: 680px; overflow-y: scroll; }
- .order-form .subsplit-wrapper .cyoc-wrapper { left: -62px; width: 680px; overflow-y: scroll; }
- .charity-selection .charity-results .charity-name h4 { overflow-y: hidden; }
- /* We don't want this functionality on the order adder */
- .js-remove-charity { display: none; }
- #heading-time-remaining { display: none; }
- #signup-email { width: 334px; height: 42px; line-height: 42px; background: none; border: none; color: white; font-size: 18px; font-weight: bold; z-index: 15; }
- .green-button { background-image: linear-gradient(to bottom, #e0ffc2 0%, #b1e37f 100%); border: 1px solid #a7c28c; border-radius: 4px; box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.5), 0 1px 0 0 white; color: #42661e; cursor: pointer; display: inline-block; font-weight: bold; margin: 0 0 0 5px; min-width: 50px; padding: 5px 8px 5px 8px; text-align: center; text-shadow: 0 1px rgba(255, 255, 255, 0.6); }
- .green-button:hover:not(disabled) { background: #b1e37f; }
- .green-button:disabled, .green-button.disabled { cursor: default; opacity: 0.4; }
- .gray-button { background-image: linear-gradient(to bottom, #f5f5f5 0%, #dedede 100%); border: 1px solid #bbb; border-radius: 4px; box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.5), 0 1px 0 0 white; color: #444; cursor: pointer; display: inline-block; font-weight: bold; margin: 0 0 0 5px; min-width: 50px; padding: 5px 8px 5px 8px; text-align: center; text-shadow: 0 1px rgba(255, 255, 255, 0.6); }
- a:hover .gray-button { background: #e4e4e4; }
- .button-link { cursor: pointer; text-decoration: none; }
- .button-link:disabled, .button-link.disabled { pointer-events: none; }
- input[type="number"].classy-input, input[type="password"].classy-input, input[type="tel"].classy-input, input[type="text"].classy-input { border: 1px solid #ccc; box-shadow: inset 0 1px 0 #eee,#fff 0 1px 0; margin: 0; padding: 7px; border-radius: 3px; background-color: white; color: #999; }
- .classy-input[disabled='disabled'] { background: #ccc; color: #333; }
- .info-tooltip > i { font-size: .8em; opacity: 0.7; transition: all 0.1s linear; }
- .info-tooltip:hover > i, .info-tooltip:focus > i { opacity: 1; }
- #settings .indicator {
- background: url(https://humblebundle-a.akamaihd.net/static/hashed/e73d51c16b07d083026843ceda9c22056b9d04a2.gif) no-repeat;
- display: none;
- padding: 0 0 0 0;
- margin-left: 10px;
- top: 3px;
- }
- #settings .indicator.on {
- display: inline-block;
- }
- #settings input[type=submit] {
- margin-top: 5px;
- }
- #settings .submitholder {
- height: 30px;
- margin-left: 330px;
- position: relative;
- }
- #settings .account-claimbutton,
- #settings .account-claimbutton-signedout {
- padding: 0 0 0 33px;
- line-height: 28px;
- }
- #settings .account-claimbutton div,
- #settings .account-claimbutton-signedout div {
- padding: 0;
- }
- #change-email {
- position: absolute;
- left: 16px;
- bottom: 26px;
- color: #666;
- font-size: 10px;
- }
- #change-email-form{
- width:280px;
- position:absolute;
- bottom:-10px;
- left:-40px;
- background:white;
- border-radius:5px;
- padding:6px 6px 6px 16px;
- border:black solid 1px;
- z-index:200;
- box-shadow: 2px 2px 5px 1px rgba(0,0,0,0.5);
- display:none;
- }
- #change-email-form .alignlabel{
- text-align: right;
- width:132px;
- float:left;
- padding-top:3px;
- }
- #change-email-form .cebuttons {
- text-align:center;
- padding-top:4px;
- }
- /* tabbed-key-redeem.css */
- .expandkeys-new {
- display:block;
- overflow:hidden;
- text-align:center;
- margin-bottom:8px;
- color:#5d801a !important;
- font-size:16px;
- }
- .keytab {
- display: none;
- }
- .keytabs {
- padding: 8px 0 7px 0;
- margin: -48px 0 28px -10px;
- text-align: left;
- width: 720px;
- line-height: 15px;
- }
- .keytabs a {
- text-decoration: none;
- color: #666;
- margin: 0;
- }
- .keytabs li.activekeytab a {
- color: #333;
- }
- .keytabs li {
- display: inline;
- list-decoration: none;
- margin: 0 -1px 0 0;
- padding: 9px 20px 5px 20px;
- border: 1px solid #aaa;
- border-radius: 5px 5px 0 0;
- -moz-border-radius: 5px 5px 0 0;
- -webkit-border-radius: 5px 5px 0 0;
- -ms-border-radius: 5px 5px 0 0;
- -o-border-radius: 5px 5px 0 0;
- background: #eee;
- font-weight: bold;
- }
- .keytabs li.activekeytab {
- background: white;
- border-bottom: 1px solid white;
- }
- #keystation {
- margin-top: 40px;
- }
- .shrinksizer-new {
- display:none;
- overflow: hidden;
- }
- .redeeminstructions {
- margin-bottom: 1em;
- }
- .instructions_html, .instructions_html a{
- color: #5D801A;
- }
- .urlredeemlink {
- text-align: center;
- margin: auto;
- width:200px;
- }
- /* Custom styling for store keys */
- .overgrowthspf_link {
- color: #5D801A;
- font-size: 15px;
- }
- .overgrowthspf_instruct {
- padding-top: 10px;
- }
- /* stats.css */
- .stats-box {
- line-height: 24px;
- position: relative;
- font-weight: normal;
- font-size: 12px;
- }
- .stats-box h4 {
- font-size: 18px;
- font-weight: normal;
- margin: 0 0 14px 0;
- }
- .stats-box dd {
- margin-top: -23px;
- text-align: right;
- height: 23px;
- }
- .stats-pre-columns {
- width: 33.33333%;
- margin-bottom: 2em;
- }
- .stats-group-pre-columns {
- display: inline-block;
- width: 100%;
- }
- .stats-col-1-of-3,
- .stats-col-2-of-3,
- .stats-col-3-of-3 {
- box-sizing: border-box;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- width: 33.33333%;
- float: left;
- position: relative;
- }
- .stats-col-1-of-3 {
- padding-right: 20px;
- }
- .stats-col-2-of-3 {
- padding-right: 10px;
- padding-left: 10px;
- }
- .stats-col-3-of-3 {
- padding-left: 20px;
- }
- .stats-box:after {
- content: '';
- display: block;
- clear: both;
- }
- .stats-info, .pubnub-promo {
- color: #ccc;
- font-style: italic;
- font-size: 10px;
- line-height: 12px;
- margin: 0;
- }
- .stats-info {
- margin-top: 14px;
- cursor: help;
- }
- .pubnub-promo {
- margin-top: -12px;
- text-align: right;
- }
- .piechart {
- margin: -4px -11px;
- }
- .chartcolor {
- display: inline-block;
- height: 12px;
- margin-right: 4px;
- width: 12px;
- }
- .chartlegend {
- position: absolute;
- top: 78px;
- left: 180px;
- margin: 0;
- padding: 0;
- list-style: none;
- white-space: nowrap;
- }
- .stats-box .contributor-list {
- line-height: 19px;
- margin: 0 0 0 -8px;
- }
- .stats-box .contributor-list dd {
- margin-top: -19px;
- height: 19px;
- }
- .stats-box .contributor-list dt {
- position: relative;
- }
- .contributor-list .number {
- width: 20px;
- text-align: right;
- display: block;
- }
- .contributor-list .contributor-name {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- position: absolute;
- top: 0;
- bottom: 0;
- left: 28px;
- right: 70px;
- display: block;
- }
- .contributor-list a,
- .contributor-list a:visited {
- color: #0072e6;
- font-weight: bold;
- text-decoration: none;
- }
- /* single platform version with no pie chart */
- .stats-box .contributor-list.short {
- line-height: 24px;
- margin-left: -8px;
- }
- .stats-box .contributor-list.short dd {
- margin-top: -24px;
- }
- .stats-box .contributor-list.noheading {
- margin-top: 38px;
- }
- /** Styles for the SteamRedeemer module, used to display a user's Steam keys on an order's associated download page. */
- .sr-widget .sr-widget-header { margin-bottom: 13px; }
- .sr-widget .sr-widget-content { width: 70%; margin: auto; }
- .sr-user .sr-user-button { display: flex; align-items: center; float: right; padding: 2px 14px; border-radius: 3px; background-color: #ededed; background: linear-gradient(to top, #e6e6e6, #f4f4f4); border: 1px solid #d8d8d8; cursor: pointer; }
- .sr-user .sr-user-button.sr-linked { cursor: default; }
- .sr-user .sr-user-button .sr-user-button-icon { margin: 0 5px; }
- .sr-user .sr-user-button .sr-user-button-text { font-weight: normal; }
- .sr-key .custom-instruction { margin-top: 10px; }
- .sr-key .sr-key-heading { font-size: 17px; }
- .sr-key .sr-key-heading .sr-key-heading-alert { position: relative; display: inline-block; color: #17A1E5; }
- .sr-key .sr-key-heading .sr-key-heading-alert .sr-key-heading-alert-help-text { width: 150px; font-size: 13px; position: absolute; top: 3px; left: 20px; }
- .sr-key .sr-key-heading .admin-tiny-link i { position: relative; }
- .sr-key .sr-key-content-region { margin: 8px 0 23px; }
- .sr-unredeemed { display: flex; justify-content: space-between; }
- .sr-unredeemed .sr-unredeemed-button { display: flex; align-items: center; justify-content: center; margin: 0 5px; width: 100%; cursor: pointer; text-align: center; line-height: 1.6em; border: 1px solid #C9CCD3; background-color: #C5C5C5; background: linear-gradient(to top, #cacaca, #e7e7e7); overflow-x: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 10px; border-radius: 3px; }
- .sr-unredeemed .sr-unredeemed-button:hover { border: 1px solid #b7bac0; background-color: #fafcff; color: #555961; }
- .sr-unredeemed .sr-unredeemed-button .sr-unredeemed-button-steam-icon { margin-right: 8px; font-size: 19px; }
- .sr-unredeemed .sr-unredeemed-button .sr-unredeemed-button-gift-icon { font-size: 19px; margin-right: 7px; margin-top: 2px; }
- .sr-unredeemed .sr-unredeemed-button .sr-unredeemed-button-gift-text { margin-top: 3px; }
- .sr-unredeemed .sr-unredeemed-button.sr-inactive { background-color: #F3F3F3; background: linear-gradient(to top, #E8E8E8, #F6F6F6); }
- .sr-unredeemed .sr-unredeemed-button.sr-inactive > * { opacity: .37; }
- .sr-redeemed { width: 100%; }
- .sr-redeemed .sr-redeemed-bubble { position: relative; cursor: pointer; margin: 5px 0; text-align: center; line-height: 1.6em; font-weight: bold; background: #E9EEE4; color: #7A981C; border: 1px solid #7A981C; text-overflow: ellipsis; white-space: nowrap; padding: 10px; border-radius: 3px; }
- .sr-redeemed .sr-redeemed-bubble .keyfield-text { display: inline-block; }
- .sr-redeemed .sr-redeemed-bubble:hover { background: #eef3e9; color: #7A981C; border-color: #8fae1d; }
- .sr-redeemed .sr-redeemed-bubble .steam-redeem-button { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; text-decoration: none; position: absolute; margin: auto; border-radius: 3px; right: 3%; top: 0; bottom: 0; height: 30px; width: 60px; background: #97B147; }
- .sr-redeemed .sr-redeemed-bubble .steam-redeem-button:hover { background: #adcc52; }
- .sr-redeemed .sr-redeemed-bubble .steam-redeem-button:hover .tooltiptext { visibility: visible; }
- .sr-redeemed .sr-redeemed-bubble .steam-redeem-button .tooltiptext { visibility: hidden; width: 120px; font-size: 1em; background-color: black; color: #fff; text-align: center; border-radius: 6px; padding: 5px 0; position: absolute; z-index: 1; bottom: 150%; left: 50%; margin-left: -60px; text-shadow: none; }
- .sr-redeemed .sr-redeemed-bubble .steam-redeem-button .tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: black transparent transparent transparent; }
- .sr-redeemed .sr-redeemed-bubble .steam-redeem-button .steam-redeem-text { color: white; font-size: 12px; width: 100%; border-radius: 3px; text-shadow: none; }
- .sr-redeemed .sr-gift-redeemed-bubble { font-weight: bold; background: #e5f5fc; color: #1280b7; border-color: #1280b7; }
- .sr-redeemed .sr-gift-redeemed-bubble:hover { color: #1280b7; background: #eaf7fd; border-color: #17a1e5; }
- .sr-gift-instructions { display: flex; justify-content: center; margin: 0 auto; font-size: 1.2em; }
- a#sr-gift-instruction-link { margin-left: 2px; color: #1280b7; }
- .redeem-instructions { font-size: 14px; font-weight: normal; text-align: center; }
- .recommend-this-game { font-size: 14px; font-weight: normal; padding: 6px 0 10px; text-align: center; }
- .recommend-this-game .sr-redeem-button { border: 1px solid transparent; border-radius: 15px; color: white !important; cursor: pointer; display: inline-block; font-size: 12px; padding: 4px 10px; text-decoration: none; }
- .recommend-this-game .sr-redeem-button.yes-button { background-color: darkgreen; }
- .recommend-this-game .sr-redeem-button.no-button { background-color: red; }
- .recommend-this-game .tooltip-right:after { border: 1px solid rgba(40, 44, 52, 0.25); box-shadow: none; }
- .game-recommended { display: none; font-size: 14px; font-weight: normal; padding-top: 6px; text-align: center; }
- .sr-footer { text-align: center; font-weight: normal; border-top: 1px solid #D3D3D3; padding-top: 7px; }
- .sr-footer > * { margin: 10px 0; }
- .sr-footer .sr-footer-button { color: white !important; }
- .sr-footer .sr-footer-partial-gift-cta { margin-bottom: 28px; }
- .sr-footer .sr-footer-partial-gift-cta p { margin: 10px 0; }
- .sr-warning-modal { box-shadow: none; border-radius: 3px; text-decoration: none; background: #f5f5f5; width: 360px; }
- .sr-warning-modal .sr-warning-modal-content { margin: 4px 0 5px 0; font-family: 'Helvetica Nueue', Helvetica, Arial, sans-serif; }
- .sr-warning-modal .sr-warning-modal-content .sr-warning-modal-title { margin-bottom: 30px; }
- .sr-warning-modal .sr-warning-modal-content .sr-warning-modal-content-text { color: #666; padding-bottom: 12px; margin: 0; font-size: 14px; font-weight: 300; }
- .sr-warning-modal .sr-warning-modal-region-list { color: black; text-align: center; margin: auto 15%; padding: 10px 0px; list-style: none; max-height: 300px; column-count: 3; column-gap: 10px; overflow-y: auto; }
- .sr-warning-modal .sr-warning-modal-region-list li { max-width: 100px; }
- .sr-warning-modal .sr-warning-modal-buttons { margin-bottom: 3px; }
- .sr-warning-modal-buttons { text-align: end; font-weight: bold; }
- .sr-warning-modal-buttons .sr-warning-modal-button { text-shadow: none; border-radius: 3px; background: #D5D9E1; border: 1px solid #BBC0C9; cursor: pointer; padding: 10px 10px; margin-top: 10px; background: none; box-shadow: none; }
- .sr-warning-modal-buttons .sr-warning-modal-button:hover { background: #dfe4ec; }
- .sr-warning-modal-buttons .sr-warning-modal-confirm-button { background: #ceecfa; color: #1280b7; border-color: #1280b7; }
- .sr-warning-modal-buttons .sr-warning-modal-confirm-button:hover { background: #a0d9f5; }
- </style>
- <script>
- window.app = window.app || {};
- window.pageData = {atTime: 1506712580 };
- window.models = window.models || {};
- window.models.product_json = {"disclaimer_text": null, "machine_name": "wiley_bookbundle", "monetary_content_event_data": [{"amount": 0.01, "type": "price"}, {"amount": 1.0, "warning_locked": "Warning: You must pay at least $1.00 for content!", "type": "price"}, {"amount": 8.0, "warning_locked": "Warning: You will not receive the $8 content! Add just \u003c%\u003d money_difference %\u003e more to unlock!", "type": "price"}, {"amount": 15.0, "warning_locked": "Warning: You will not receive the $15 content! Add just \u003c%\u003d money_difference %\u003e more to unlock!", "type": "price"}], "expand_default_split": false, "tpkd_cutoff_amount": 1.0, "bundle_display_vars": {"active_content_events": ["lessthan1", "initial", "bt8", "bt15"], "over": true, "cleanavg": "14.62", "pricing_tiers": {"initial": 1.0, "bt15": 15.0, "bt8": 8.0, "lessthan1": 0.01}}, "split_disclaimer": null, "expand_subsplits": false, "giving_fund": "ppgf", "stats_template": "Default", "order_form_vars": {"country_code": "DE", "splitsjson": "[{\"class\": \"wiley\", \"partner_split\": 0.59999999999999998, \"sibling_split\": 0.65000000000000002, \"name\": \"Wiley\"}, {\"name\": \"Charity\", \"partner_split\": 0.10000000000000001, \"sibling_split\": 0.14999999999999999, \"subsplit\": [{\"class\": \"paypalgivingfund\", \"secondary_id\": \"8443\", \"sibling_split\": 1.0, \"name\": \"Electronic Frontier Foundation\"}, {\"class\": \"paypalgivingfund\", \"secondary_id\": \"cyoc\", \"sibling_split\": 0.0, \"name\": \"Choose your own charity\"}], \"class\": \"charity\"}, {\"class\": \"humblebundle\", \"partner_split\": 0.14999999999999999, \"sibling_split\": 0.20000000000000001, \"name\": \"Humble Tip\"}]", "avguuid": "sIW3Jqtr1cyalYNO", "stripe_pubkey": "pk_live_Z77z5cJvv0rUOE1ayBDe1xHq", "is_order_adder": false, "min_leaderboard": 150.0, "avg": "14.62383152612060625604643663", "avghash": "1kacdfRuuLSnGywPTrJbdYBGCPFAvo4mmAlaPLMS8WI\u003d"}, "default_dollar_price": 25, "human_name": "Humble Book Bundle: Cybersecurity presented by Wiley", "disallowed_payment_processors": ["coinbase"], "has_nonsteam_keys": false, "splits": [{"class": "wiley", "partner_split": 0.59999999999999998, "sibling_split": 0.65000000000000002, "name": "Wiley"}, {"name": "Charity", "partner_split": 0.10000000000000001, "sibling_split": 0.14999999999999999, "subsplit": [{"class": "paypalgivingfund", "secondary_id": "8443", "sibling_split": 1.0, "name": "Electronic Frontier Foundation"}, {"class": "paypalgivingfund", "secondary_id": "cyoc", "sibling_split": 0.0, "name": "Choose your own charity"}], "class": "charity"}, {"class": "humblebundle", "partner_split": 0.14999999999999999, "sibling_split": 0.20000000000000001, "name": "Humble Tip"}], "has_steam_keys": false, "product_title": "the Humble Book Bundle: Cybersecurity presented by Wiley", "category": "bundle", "pretty_path": "/books/cybersecurity-wiley", "has_any_keys": false, "end": "2017-07-31T18:00:00", "auth_required_for_purchase_if_free": false, "slider_replacement_text": "All for one and one for all!", "start": "2017-07-17T18:00:00", "has_free_content": false, "eula": null, "has_free_keys": false, "media_type": "ebook", "cutoff_warning_override": null};
- window.models.keyentity_json = {"avghash": "8c8LjokekjmElEWsW9fKJAM+xeJ17XBUJ3hS6PsB9ro\u003d", "gamekey": "wWuG2hMxeynmcRrC", "forced_content_events": [], "avg": "15.08300903735141792927419235", "avguuid": "3RgOIIZiFquPvoUt", "cleanfamilytotal": "15.00"};
- window.models.user_json = {
- email: "jonasmarioschaefer@gmail.com",
- payment_credentials: [],
- has_monthly_perks: false,
- has_steam_link: true
- };
- window.models.request = {
- country_code: "DE",
- humble_guard_enabled: true,
- };
- </script>
- <script id="main-js" data-dist_version="4940bbeb11c91fc1421e1df41f1de2c10e9f7b06" src='https://humblebundle-a.akamaihd.net/4940bbeb11c91fc1421e1df41f1de2c10e9f7b06/dist/main.min.js'></script>
- <script>
- (function ($, Backbone) {
- 'use strict';
- var Stats = Backbone.Model.extend({
- defaults: {
- 'stats_data': {},
- 'total_contributions': '0',
- 'total_contributed': '$0.00',
- 'average_contribution': '$0.00',
- 'average_mac': '$0.00',
- 'average_windows': '$0.00',
- 'average_linux': '$0.00',
- 'average_android': '$0.00',
- 'percent_mac': '',
- 'percent_windows': '',
- 'percent_linux': '',
- },
- initialize: function() {
- _.bindAll(this, 'recalculate');
- this.bind('change', this.recalculate, this);
- this.recalculate();
- },
- recalculate: function() {
- var calculated_values = {};
- var stats_data = this.get('stats_data');
- if (!stats_data || !stats_data.rawplatformtotals || !stats_data.numberofcontributions) {
- return;
- }
- var total = new Big(stats_data['rawtotal']);
- var macRawTotal = new Big(stats_data.rawplatformtotals.mac);
- var windowsRawTotal = new Big(stats_data.rawplatformtotals.windows);
- var linuxRawTotal = new Big(stats_data.rawplatformtotals.linux);
- var androidRawTotal = new Big(stats_data.rawplatformtotals.android);
- var totalContribution = parseInt(stats_data.numberofcontributions.total);
- var macTotalContribution = parseInt(stats_data.numberofcontributions.mac);
- var windowsTotalContribution = parseInt(stats_data.numberofcontributions.windows);
- var linuxTotalContribution = parseInt(stats_data.numberofcontributions.linux);
- var androidTotalContribution = parseInt(stats_data.numberofcontributions.android);
- var platform_total = macRawTotal.add(windowsRawTotal).add(linuxRawTotal);
- // Totals
- calculated_values['total_contributions'] = numberWithCommas(totalContribution);
- calculated_values['total_contributed'] = moneyfmt(total);
- // Averages
- calculated_values['average_contribution'] = moneyfmt(total.div(totalContribution || 1));
- calculated_values['average_mac'] = moneyfmt(macRawTotal.div(macTotalContribution || 1));
- calculated_values['average_windows'] = moneyfmt(windowsRawTotal.div(windowsTotalContribution || 1));
- calculated_values['average_linux'] = moneyfmt(linuxRawTotal.div(linuxTotalContribution || 1));
- calculated_values['average_android'] = moneyfmt(androidRawTotal.div(androidTotalContribution || 1));
- // Percentages
- calculated_values['percent_mac'] = parseFloat(macRawTotal.div(platform_total).toFixed(2));
- calculated_values['percent_windows'] = parseFloat(windowsRawTotal.div(platform_total).toFixed(2));
- calculated_values['percent_linux'] = parseFloat(linuxRawTotal.div(platform_total).toFixed(2));
- this.set(calculated_values, { silent: true });
- }
- });
- window.StatsView = Backbone.View.extend({
- events: {
- 'mouseenter .piechart': 'show_grayscale_chart',
- 'mouseleave .piechart': 'show_color_chart'
- },
- initialize: function (options) {
- this.options = options;
- this.model = new Stats({
- 'stats_data': this.options['initial_stats_data'],
- 'leaderboard_data': this.options['leaderboard_data']
- });
- _.bindAll(this,
- 'render',
- 'show_grayscale_chart',
- 'show_color_chart'
- );
- if (!this.$el.length) {
- throw new Error('$el is required');
- }
- // render the html
- var raw_template = this.options['template'];
- var tmpl = _.template(raw_template);
- var template_json = this.model.toJSON();
- this.$el.html(tmpl(template_json));
- // populate values for the first column
- this.render();
- // initialize pie chart
- this.show_color_chart();
- // linkify leaderboard
- this.$('.contributor-name').each(function() { twitter_linkify($(this)); });
- // automatically re-render when the model changes
- this.model.on('change', this.render);
- },
- render: function() {
- /*
- * Update the values in the first column (totals / averages). The pie
- * chart and leaderboard do not live update.
- *
- * Note: The HTML elements where they are displayed have classes matching
- * the corresponding fields on the model. This code relys on that.
- */
- var model_json = this.model.toJSON();
- for (var key in model_json) {
- var $field = this.$('.' + key);
- if ($field.length == 1) {
- if ((key != 'average_contribution') || this.options['live_update_average'] || ($field.text() === '')) {
- $field.text(model_json[key]);
- }
- }
- }
- },
- show_grayscale_chart: function () {
- var $piechart = this.$('.piechart');
- $piechart.attr('src', $piechart.data('grayscaleSrc'));
- this.$('.chartlegend .chartcolor').each(function() {
- $(this).css('background-color', $(this).data('grayscaleColor'));
- });
- },
- show_color_chart: function () {
- var $piechart = this.$('.piechart');
- $piechart.attr('src', $piechart.data('colorSrc'));
- this.$('.chartlegend .chartcolor').each(function() {
- $(this).css('background-color', $(this).data('color'));
- });
- }
- });
- })(jQuery, Backbone); // END CLOSURE
- (function () {
- $(function() {
- var sales_counter = function(machine_name, products_sold, statsView, element_query) {
- // set up the animated counter
- var animatedCounter = null;
- var $counterElement = $(element_query);
- if ($counterElement.length) {
- var numDigits = 6;
- animatedCounter = $counterElement.animatedCounter({'numDigits': numDigits}).data('animatedCounter');
- }
- var lastStatsTimestamp = 0;
- // subscribe to pubnub notifications which will be used to update the stats and counter if we are not on a receipt page
- pubnub_client.subscribe({
- 'channel': 'humble'+machine_name,
- 'callback': function(message) {
- if (!message.stats) {
- return;
- }
- var counterValue = parseInt(message.stats.numberofcontributions.total);
- // ignore outdated messages
- if (message.timestamp <= lastStatsTimestamp) {
- return;
- }
- lastStatsTimestamp = message.timestamp;
- // update the animated counter with the new data
- if (animatedCounter) {
- animatedCounter.setValue(counterValue);
- }
- // update the stats box with the new data
- if (statsView) {
- statsView.model.set({'stats_data': message.stats});
- }
- }
- });
- }
- 'use strict';
- // set up the backbone stats controller
- var statsView = null;
- var $stats_holder = $('#stats-holder');
- var $stats_template = $('#stats-template');
- var $leaderboard = $('#leaderboard-data');
- var leaderboard_html = $leaderboard.length ? $leaderboard.html().trim() : '';
- var leaderboard_data = leaderboard_html ? JSON.parse(leaderboard_html) : [];
- if (typeof StatsView != 'undefined' && $stats_holder.length && $stats_template.length) {
- statsView = new StatsView({
- 'initial_stats_data': {"rawtotal": 1451152.05, "sales_bt8": 89598, "numberofcontributions": {"windows": 55151, "ios": 5933, "mac": 16050, "linux": 12622, "android": 9476, "total": 99232.0}, "sales_btX": 1, "sales_lessthan1": 47, "sales_bt15": 83373, "sales_initial": 99185, "rawplatformtotals": {"windows": 788500.16000000003, "mac": 252149.51000000001, "ios": 86498.960000000006, "android": 126372.23, "linux": 197631.19}},
- 'leaderboard_data': leaderboard_data,
- 'live_update_average': true,
- 'el': $stats_holder,
- 'template': $stats_template.html()
- });
- }
- // Set up the sales counter
- sales_counter('wiley_bookbundle', 0, statsView, '#heading-bundles-sold .digit-holder, #heading-bundles-sold .mini-digit-holder');
- })
- })();
- // keypage.js
- images = [];
- var uplay_link = '';
- var get_uplay_ticket = null;
- function npreload(items) {
- for (var i=0; i<items.length; i++) {
- var nimg = new Image();
- nimg.src = items[i];
- images.push(nimg);
- }
- }
- /*
- * Format 5 as 05 (e.g.)
- */
- function zeropad(num) {
- num += '';
- if (num.length == 1) {
- num = '0' + num;
- }
- return num;
- }
- /*
- * Get steam profile data for a given user and call the provided callbacks. On sucess it will cache the steam profile data.
- * steam_id: the steam id of the profile to retrieve, null for currently logged in user
- * options['success']
- * options['error']
- * options['complete']: functions to call for the respective callbacks, will be a no-op if not provided
- * options['context']: the context to call the callbacks with, window by default
- * returns an object containing steam_name and avatar_url
- */
- window.steam_profiles = {};
- function get_steam_profile(steam_id, options) {
- options = options || {};
- options['context'] = options['context'] || window;
- $.each(['success', 'error', 'complete'], function(index, callback_name) {
- options[callback_name] = options[callback_name] || $.noop;
- });
- if (window.steam_profiles[steam_id]) {
- options['success'].call(options['context'], window.steam_profiles[steam_id]);
- return;
- }
- $.ajax({
- url: '/user/steam_profile',
- dataType: 'json',
- data: {steam_id: steam_id},
- success: function(profile_data) {
- window.steam_profiles[steam_id] = profile_data;
- options['success'].apply(options['context'], arguments);
- },
- error: function() {
- options['error'].apply(options['context'], arguments);
- },
- complete: function() {
- options['complete'].apply(options['context'], arguments);
- },
- });
- }
- /*
- * Format and display the dates that new builds were posted, in the user's local
- * timezone. Detect if there are new builds since the user visited the download
- * page, and highlight them.
- */
- require(['account/accountModals'], function (AccountModals) {
- $(function() {
- var HumbleGuardModal = AccountModals.AccountHumbleGuardModal;
- var newbuilds = {'Mac': 0, 'Windows': 0, 'Linux': 0};
- // Display a string at the top of the download list for each platform informing
- // the user of how many new builds there are since their last visit.
- for (pretty_platform in newbuilds) {
- if (!newbuilds.hasOwnProperty(pretty_platform) || newbuilds[pretty_platform] == 0) continue;
- var platform = pretty_platform.toLowerCase();
- var plural = '';
- if (newbuilds[pretty_platform] > 1) {
- plural = 's';
- }
- var builds_string = newbuilds[pretty_platform] + ' updated ' + pretty_platform + ' build' + plural + ' posted since your last visit!';
- $('.newbuilds.' + platform).html('<div>' + builds_string + '</div>');
- }
- $('#keystation,.key-expander').click(function(e) {
- var t = $(this);
- if (t.hasClass('kexpanded')) return;
- t.addClass('kexpanded');
- e.preventDefault();
- t.find('.expandkeys').animate({height:0,opacity:0});
- t.find('.shrinkwrapper').animate({height:t.find('.shrinksizer').height() + 6}, function() {$(this).height('auto');});
- });
- $(document).ready(function() {
- $('.auto-expand-redeemer').trigger('click');
- });
- $('.keystation-new').click(function(e){
- var parentbox = $(this).closest('.whitebox');
- e.preventDefault();
- parentbox.find('.keystation-new').animate({height:0,opacity:0});
- if (parentbox.find('.keytabs').length > 0) {
- parentbox.closest('.whitebox').animate({'margin-top':'40px'});
- }
- parentbox.find('.shrinksizer-new').css({'overflow':'visible'});
- parentbox.find('.keytabs').css({'opacity':0});
- parentbox.find('.keytabs').animate({'opacity':1.0},1000);
- parentbox.find('.shrinksizer-new').animate({height:'toggle'});
- parentbox.find('.keystation-new').remove();
- });
- $('.keyfield').click(function(e) {
- // When clicking an already redeemed key, select the entire string.
- var $holder = $(this).parent();
- if ($holder.hasClass('activated')) {
- e.preventDefault();
- selectText(this);
- }
- });
- $('.keyredeemer, .giftbutton').click(function(e) {
- e.preventDefault();
- var $that = $(this);
- var $holder = $that.parent();
- if ($that.data('enabled') === true) {
- return;
- }
- $that.data('enabled', true);
- function fetchkey() {
- var keytype = $holder.data('keytype');
- var keyindex = $holder.data('keyindex');
- var helpertext = $holder.data('helpertext') || '';
- var uplay_user_ticket = '';
- if (get_uplay_ticket) {
- uplay_user_ticket = get_uplay_ticket();
- }
- $holder.addClass('pending').find('.keyfield-content').html('<img class="indicator" src="https://humblebundle-a.akamaihd.net/static/hashed/e73d51c16b07d083026843ceda9c22056b9d04a2.gif" /> Retrieving key...');
- var retry = 5;
- function redeemerror(data) {
- if (!data) {
- data = {};
- }
- retry--;
- if (retry <= 0 || data.fatal_error) {
- var error_msg = data.error == 'Already Purchased' ? 'Your Steam account already owns this game' :
- data.error == 'Duplicate activation code' ? 'This key has been activated already' :
- data.error == 'Does not own required app' ? 'You need to purchase the base product first' :
- data.error == 'Restricted country' ? 'This product not available in your country' :
- data.error == 'Bad activation code' ? 'Steam errored, please refresh page and try again' :
- data.error == 'Humble Guard Required' ? 'Humble Account Security check required.' :
- data.error == 'Too many bad activation code attempts in period' ? 'Too many Steam keys redeemed. Try again later.' :
- data.error_msg ? data.error_msg : 'Please try redeeming again later';
- $holder.find('.keyfield-content').text(error_msg);
- if (data.error_msg && (data.error_msg.toLowerCase().indexOf('sold out') != -1)) {
- $holder.find('.keyredeemer').addClass('soldout');
- $holder.find('.giftbutton').hide();
- }
- } else {
- setTimeout(grabKey, 3500);
- }
- }
- function humbleGuardHandler(jqXHR) {
- var data;
- try {
- data = $.parseJSON(jqXHR.responseText);
- } catch (e) {
- // probably a 500, let the standard error handler take it instead
- return;
- }
- if (data.humble_guard_required) {
- jqXHR.fatal_error = true;
- jqXHR.error = "Humble Guard Required";
- $holder.removeClass('activated');
- var modal = new HumbleGuardModal({
- onSuccess: function (view) {
- fetchkey();
- view.close();
- }
- });
- $('#site-modal').html(modal.render().el);
- }
- }
- function grabKey() {
- $.post(
- '/humbler/redeemkey',
- {
- keytype: keytype,
- key: 'wWuG2hMxeynmcRrC',
- keyindex: keyindex,
- uplay_ticket: uplay_user_ticket,
- gift: $that.hasClass('giftbutton')
- },
- function (data) {
- if (data && data.success) {
- $holder.removeClass('pending');
- $holder.addClass('activated');
- if (data.steam_id) {
- var link_text = 'this account';
- if (data.steam_name) {
- link_text = _.escape(data.steam_name);
- }
- $holder.find('.keyfield-content').html('redeemed to <a href="http://steamcommunity.com/profiles/' + data.steam_id + '" target="_blank">' + link_text + '</a>');
- $holder.find('.giftbutton').hide();
- _gaTrackEvent('Download page', 'Redeemed Steam key', keytype);
- } else if (data.giftkey) {
- $holder.addClass('is-gift');
- $holder.find('.keyfield-content').html('https://humblebundle.com/gift?key=' + data.giftkey);
- $holder.find('.giftbutton').hide();
- } else {
- var $keyfield = $holder.find('.keyfield-content');
- $keyfield.html(helpertext + data.key); // data.key has already been escaped by the backend
- selectText($keyfield[0]); // Highlight text so it can easily be copied to clipboard
- }
- } else if (data.access_token_missing) {
- $holder.find('.keyfield-content').html('<a href="/steam/link" target="_blank">Connect to Steam</a> to redeem!');
- } else if (data.bad_access_token) {
- $holder.find('.keyfield-content').html('Steam access expired. <a href="/steam/link" target="_blank">Reconnect to Steam</a> to redeem!');
- } else if (data.uplay_ticket_missing) {
- $holder.find('.keyfield-content').html('<a href="'+ uplay_link + '" target="_blank">Connect to uPlay</a> to redeem!');
- } else {
- redeemerror(data);
- }
- },
- 'json'
- ).fail(humbleGuardHandler)
- .fail(redeemerror)
- .always(function() {
- $that.data('enabled', false);
- });
- }
- grabKey();
- }
- fetchkey();
- });
- // redeem all button (origin_bundle only)
- $('.origin_bundle_redeem_all_button').click(function(e) {
- e.preventDefault();
- var keytype = $(this).data('keytype');
- // click all unactivated redeem key buttons that match the provided selector
- $(".redeemholder").each(
- function (index, elem) {
- if ($(elem).hasClass("activated")) {
- return;
- }
- // check for the type of button we are looking for
- var button = $(elem).find("." + keytype + "button").get(0);
- if (button) {
- $(button).click();
- }
- }
- );
- });
- });
- });
- // preload the images for the redeemed state of the 3rd party key redeemers
- npreload([
- 'https://humblebundle-a.akamaihd.net/static/hashed/8c812b14676720a1c5541e5ff0084336f8ca952b.png',
- 'https://humblebundle-a.akamaihd.net/static/hashed/72c7a91a612ceee5ceda77133c9d79bf66b8dec3.png',
- 'https://humblebundle-a.akamaihd.net/static/hashed/7d32b8cb2ed51ab18ec0e5a40208afd4a41c988c.png',
- 'https://humblebundle-a.akamaihd.net/static/hashed/7f9102778b07eec38f1ba5911c95c24d3aa98318.png',
- 'https://humblebundle-a.akamaihd.net/static/hashed/20048fabc7a0a68316b0315f584c58ad95b17055.png',
- 'https://humblebundle-a.akamaihd.net/static/hashed/e73d51c16b07d083026843ceda9c22056b9d04a2.gif'
- ]);
- $(document).ready(function() {
- $('.keytabs li').click(function(e) {
- var parentbox = $(this).closest('.whitebox');
- e.preventDefault();
- parentbox.find('.keytab').css({'visibility':'hidden'}).hide(200);
- parentbox.find('.keytabs li.activekeytab').removeClass('activekeytab');
- $(this).addClass('activekeytab');
- var tgtSelector = $(this).find('a').attr('href');
- parentbox.find(tgtSelector).show(200,function(){ $(this).css({'visibility':'visible'});})
- });
- });
- $(document).ready(function() {
- $('#deletekeypage').click(function(e) {
- e.preventDefault();
- $('#deletekeyconfirm').fadeIn();
- });
- $('#dkcancel').click(function(e) {
- e.preventDefault();
- $('#deletekeyconfirm').fadeOut();
- });
- $('#dkconfirm').click(function(e) {
- e.preventDefault();
- var url = '/delete-key';
- $.post(url, {'key': 'wWuG2hMxeynmcRrC'}, function(data) {
- var dict = JSON.parse(strip_json_prefix(data));
- var result = '';
- if (dict.hasOwnProperty('result')) {
- result = dict['result'];
- } else {
- result = 'Sorry, a problem occurred.';
- }
- $('#deletekeyconfirm').html('<p class=\'centered-text\'>' + result + '</p>');
- }, 'text');
- });
- require(['downloadPages/uplay'], function(uplay) {
- uplay_link = uplay.getConnectLink();
- uplay.init($('.uplay-login-status'));
- get_uplay_ticket = uplay.getTicket;
- });
- });
- $(document).ready(function() {
- $('.steam-profile .js-unlink-submit').on('click', function(e) {
- e.preventDefault();
- e.stopPropagation();
- $(e.currentTarget).closest('form').submit();
- });
- // fetch and update steam info for the currently logged in user
- var $steam_profile = $('.steam-profile');
- if ($steam_profile.length) {
- var $spinner = $('<div class=\'indicator\'></div>');
- $steam_profile.children().hide();
- $steam_profile.append($spinner);
- // get steam profile for current user
- get_steam_profile(null, {
- context: this,
- success: function(profile_data) {
- $steam_profile.children().show();
- if (profile_data['steam_name'] && profile_data['avatar_url']) {
- $steam_profile.find('.account-text a:first').text(profile_data['steam_name']);
- $steam_profile.find('.profile-pic').css('background-image', 'url(' + profile_data['avatar_url'] + ')');
- } else {
- $steam_profile.find('.profile-pic').hide();
- }
- },
- error: function(profile_data) {
- $steam_profile.children().show();
- $steam_profile.find('.profile-pic').hide();
- },
- complete: function(profile_data) {
- $spinner.remove();
- },
- });
- }
- // fetch steam profile data for already redeemed keys
- // get unique steam ids
- var steam_ids = {};
- $('.keyfield-content a[data-steam-id]').each(function(index, el) {
- steam_ids[$(el).data('steamId')] = true;
- });
- // fetch unique keys and update the redeem text
- var self = this;
- $.each(steam_ids, function(key, value) {
- var $spinner = $('<img class="indicator" src="https://humblebundle-a.akamaihd.net/static/hashed/e73d51c16b07d083026843ceda9c22056b9d04a2.gif" />');
- var $steam_profile_links = $('.keyfield-content a[data-steam-id=' + key + ']');
- var original_text = $steam_profile_links.first().text();
- $steam_profile_links.html($spinner);
- get_steam_profile(key, {
- context: self,
- success: function(profile_data) {
- var link_text = profile_data['steam_name'] || original_text;
- $steam_profile_links.text(link_text);
- },
- error: function(profile_data) {
- $steam_profile_links.text(original_text);
- },
- });
- });
- });
- // arch_toggle.js
- $(document).ready(function() {
- $('.arc-toggle input').change(function() {
- var arc = $(this).val() == '64';
- $(this).closest('.row').toggleClass('arc64',arc);
- });
- });
- </script>
- <script type="application/ld+json">
- {
- "@context": "http://schema.org",
- "@type": "WebSite",
- "url": "https://www.humblebundle.com/",
- "potentialAction": {
- "@type": "SearchAction",
- "target": "https://www.humblebundle.com/store/search?search={search_term}",
- "query-input": "required name=search_term"
- }
- }
- </script>
- </head>
- <body>
- <div class="page-wrap">
- <div class="navigation-container">
- <nav class="navbar">
- <ul class="navbar-items-left">
- <li class="navbar-item-header">
- <a href="/">
- <i class="navbar-item-header-icon hb hb-bundle"></i>
- </a>
- </li>
- <script type='text/template' id='site-search-list-product'>
- <div data-product='<%- machine_name %>' class='site-search-list-product product-<%- machine_name %>'>
- <% var classes = 'product-details-link'; %>
- <% if (on_sale) { %>
- <% classes += ' product-' + sale_type + '-sale'; %>
- <% } %>
- <% if (type === 'bundle' || type === 'monthly') { %>
- <a href='<%- bundle_path %>?hmb_source=search_bar' class='<%- classes %>'>
- <% } else { %>
- <a href='/store<%- link %>?hmb_source=search_bar' class='<%- classes %>'>
- <% } %>
- <div class='scrollable-wrapper' title='<%- human_name %>'>
- <img class='product-image' src='<%- storefront_icon %>' alt=''/>
- <div class='product-list-wrapper'>
- <div class='wishlist-holder'></div>
- <div class='buy-button'>
- <div class='action-button'>
- <% var button_classes = ''; %>
- <% var button_text = ''; %>
- <% if (on_sale) { %>
- <% var percent_off = Math.round(100.0 * ((full_price[0] - current_price[0]) / full_price[0])); %>
- <% } %>
- <% var text_class = 'text'; %>
- <% if (!can_be_purchased || type === 'bundle') { %>
- <% button_text = 'View'; %>
- <% } else { %>
- <% if (type != 'bundle' && display_as_free) { %>
- <% button_text = 'Free'; %>
- <% button_classes += ' on-sale'; %>
- <% } else { %>
- <% button_text = button_text || moneyfmt(current_price[0], current_price[1], false, current_country !== 'US') %>
- <% text_class += ' store-price'; %>
- <% } %>
- <% if (on_sale && !display_as_free) { %>
- <span class='discount'>-<%= percent_off %>%</span>
- <% button_classes += ' on-sale'; %>
- <% } %>
- <% button_classes += ' js-show-product-details'; %>
- <% } %>
- <button class='store-item-button js-action-button <%= button_classes %>'>
- <i class='hb hb-shopping-cart'></i>
- <span class='<%- text_class %>'>
- <%= button_text %>
- </span>
- <span class='view-text'>View</span>
- </button>
- </div>
- </div>
- <div class='product-title-and-description'>
- <h2 class='product-title'><%- human_name %></h2>
- <% if (type === 'monthly') { %>
- <h3 class="product-description"><%- description %></h3>
- <% } %>
- </div>
- <div class='platforms-wrapper'>
- <% if (cta_badge && cta_badge != 'n/a') { %>
- <%= render_platform_icons(icon_dict).trim() %><span class='cta-text <%= cta_badge %>'><%= cta_text %></span>
- <% } else { %>
- <%= render_platform_icons(icon_dict) %>
- <% } %>
- </div>
- </div>
- </div>
- </a>
- </div>
- </script>
- <script type='text/template' id='site-search-empty-product'>
- <div class='site-search-list-product'>
- <div class='scrollable-wrapper empty-product'>
- <div class='product-list-wrapper'>
- <div class='product-title-and-description'>
- <span class="product-title">Sorry, we could not find what you were looking for!</span>
- </div>
- </div>
- </div>
- </div>
- </script>
- <li class="navbar-item site-search">
- <span class="js-site-minisearch site-minisearch-view">
- <span class="js-site-searchbar-holder site-searchbar-holder">
- <div class="searchbar">
- <input class="js-site-search site-search" placeholder="Search Humble Bundle"/>
- <i class="js-clear-site-search hb hb-search clear-search-button"></i>
- </div>
- </span>
- <div class="js-site-search-results-holder site-search-results-holder">
- <div class="js-site-search-results site-search-results"></div>
- </div>
- </span>
- </li>
- </ul>
- <ul class="navbar-items-right">
- <li class="navbar-item">
- <a href='https://support.humblebundle.com' target="_blank">
- <i class="navbar-item-icon hb hb-support"></i>
- <span class="navbar-item-text">Support</span>
- </a>
- </li>
- <li class="navbar-item">
- <a href='http://blog.humblebundle.com/' target="_blank">
- <i class="navbar-item-icon hb hb-file"></i>
- <span class="navbar-item-text">Blog</span>
- </a>
- </li>
- <li class="navbar-item-dropdown navbar-user-item">
- <a class="navbar-item-dropdown-toggle" href="#">
- <i class="navbar-item-icon hb hb-user"></i>
- <span class="display-name">
- <div class="display-name-container" title="jonasmarioschaefer@gmail.com">jonasmarioschaefer@gmail.com</div>
- </span>
- <i class="hb hb-caret-down"></i>
- </a>
- <div class="navbar-item-dropdown-container is-hidden">
- <div class="navbar-item-dropdown-items">
- <div class="navbar-item-dropdown-arrow"></div>
- <ul>
- <li class="navbar-item-dropdown-item">
- <a href='/home/library'>
- <i class="navbar-item-dropdown-icon hb hb-library"></i>
- <span class="navbar-item-dropdown-text">Library</span>
- </a>
- </li>
- <li class="navbar-item-dropdown-item">
- <a href='/home/purchases'>
- <i class="navbar-item-dropdown-icon hb hb-tier"></i>
- <span class="navbar-item-dropdown-text">Purchases</span>
- </a>
- </li>
- <li class="navbar-item-dropdown-item">
- <a href='/home/keys'>
- <i class="navbar-item-dropdown-icon hb hb-key"></i>
- <span class="navbar-item-dropdown-text">Keys</span>
- </a>
- </li>
- <li class="navbar-item-dropdown-item">
- <a href='/home/coupons'>
- <i class="navbar-item-dropdown-icon hb hb-scissors"></i>
- <span class="navbar-item-dropdown-text">Coupons</span>
- </a>
- </li>
- <li class="navbar-item-dropdown-item">
- <a href='/store/wishlist'>
- <i class="navbar-item-dropdown-icon hb hb-star"></i>
- <span class="navbar-item-dropdown-text">Wish List</span>
- </a>
- </li>
- <li class="navbar-item-dropdown-item">
- <a href='/user/wallet'>
- <i class="navbar-item-dropdown-icon hb hb-money"></i>
- <span class="navbar-item-dropdown-text">Wallet</span>
- </a>
- </li>
- <li class="navbar-item-dropdown-item">
- <a href='/user/settings'>
- <i class="navbar-item-dropdown-icon hb hb-cog"></i>
- <span class="navbar-item-dropdown-text">Settings</span>
- </a>
- </li>
- <li class="navbar-item-dropdown-item">
- <form id="navbar-logout-form" action="/logout?goto=/downloads&qs=key%3DwWuG2hMxeynmcRrC" method="POST">
- <input type='hidden' class='csrftoken' name='_le_csrf_token' value='wpOLiPSCcKd_Z-T--1-1506712425' />
- <a href="#" onclick="document.getElementById('navbar-logout-form').submit(); return false;">
- <i class="navbar-item-dropdown-icon hb hb-sign-out"></i>
- <span class="navbar-item-dropdown-text">Logout</span>
- </a>
- </form>
- </li>
- </ul>
- </div>
- </div>
- </li>
- </ul>
- </nav>
- </div>
- <div class="base-main-wrapper">
- <nav class="tabbar ">
- <a class="tabbar-tab
- "
- href="/">Game Bundles
- </a><a class="tabbar-tab
- "
- href="/books">Book Bundles
- </a><a class="tabbar-tab
- "
- href="/monthly">Monthly
- </a><a class="tabbar-tab
- "
- href="/store">Store
- </a>
- </nav>
- <div id="page-top-messages"></div><div class="page_title"></div>
- <div class="inner-main-wrapper">
- <div class="js-admin-edit"
- data-entity-kind="product"
- data-machine-name="haikasoru_bookbundle"
- >
- </div>
- <div class='humble-banner'>
- <a href='/books/haikasoru-books?utm_source=download_page'>
- <h3>
- <img class='banner-logo' src='https://humblebundle.imgix.net/misc/files/hashed/0b024b0ee064abd7c2351cc4b1a5019be4d52a3e.png?auto=format&lossless=1&ixlib=python-0.2.0&s=fd18927645653a22ffd6f0c680ad8039' alt='Humble Book Bundle: Haikasoru presented by VIZ Media' />
- <p>Also happening now:</p>
- </h3>
- <h4>Pay what you want for awesome Japanese science fiction books and support charity!</h4>
- </a>
- </div>
- <div class="js-admin-edit"
- data-entity-kind="product"
- data-machine-name="wiley_bookbundle"
- >
- </div>
- <div id='dlheader'>
- <a id='logo' href='/books/cybersecurity-wiley'><img src='https://humblebundle.imgix.net/misc/files/hashed/80b534eb691f234833835f47339eb3ddcfeee67b.png?auto=format&lossless=1&ixlib=python-0.2.0&s=99d591567fbb9ee9e84af1f371aa824d' /></a>
- </div>
- <div id='download-page-wrapper'>
- <div id='main'>
- <div id='papers-top'></div>
- <div id='papers-mid'></div>
- <div id='papers-bottom'></div>
- <div id='papers-content'>
- <div class='already-claimed' style="float:right;">This page is claimed by <strong>you</strong>.</div>
- <div id='headertext'>
- <div id='hibtext'>
- Thanks for purchasing the Humble Book Bundle: Cybersecurity presented by Wiley!<div class="js-admin-edit"
- data-entity-kind="product"
- data-machine-name="wiley_bookbundle"
- >
- </div>
- </div>
- <div id='spiel'>
- <p>
- Follow <a href='http://www.twitter.com/humble'>@humble</a> on Twitter, Google+, and Facebook for the latest Humble Bundle status reports:
- </p>
- <div class="download-social-alignment">
- <a href="https://twitter.com/humble" class="twitter-follow-button" data-show-count="true" data-size="large">Follow @humble</a>
- <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
- <!-- Place this tag where you want the widget to render. -->
-
- <div class="g-follow" data-annotation="bubble" data-height="24" data-href="//plus.google.com/103555773917939181320" data-rel="publisher"></div>
-
- <div class="fb-like" data-href="https://www.facebook.com/humblebundle" data-width="250px" data-colorscheme="light" data-layout="standard" data-action="like" data-show-faces="false" data-send="false"></div>
- </div>
- </div>
- </div>
- <div class="js-coupon-whitebox-holder"></div>
- <div class="js-credit-whitebox-holder"></div>
- <div class='generic-popup outer-shadow' id='confirm-content-event-choice-dialog'>
- <div class='generic-popup content'>
- <h1><span class='main-base-arrow'></span>Confirm Choice</h1>
- <form action='/humbler/choosecontent' method='post' data-input-prefix='confirm-content-event-choice-'>
- <input type='hidden' name='gamekey' value='wWuG2hMxeynmcRrC'>
- <input type='hidden' name='parent_identifier' value=''>
- <input type='hidden' name='chosen_identifier' value=''>
- <div class='message-holder'>Once you make your choice, you will not be able to change it. Are you sure you want to choose this option?</div>
- <div class='no-center'>
- <span class='input-holder'><span id='confirm-content-event-choice-dummy'></span></span>
- <div class='button-holder'>
- <a class='button-link cancel' href='#' data-goto=''><span class='gray-button'>Cancel</span></a>
- <a class='button-link green-button submit js-submit' href='#'>Confirm</a>
- </div>
- <div class='clearfix'></div>
- </div>
- </form>
- </div>
- </div>
- <script type='text/javascript'>
- require(['account/accountModals'], function(AccountModals) {
- $(function(){
- $('.js-choose-content-form').submit(function(e) {
- e.preventDefault();
- var $form = $(this);
- var $dialog = $('#confirm-content-event-choice-dialog');
- if ($dialog.closest('.grayout').length == 0) {
- var marginTop = '-' + ($dialog.height() / 2) + 'px';
- $dialog.css('margin-top', marginTop).fadeIn();
- $dialog.appendTo($('.grayout'));
- } else {
- $dialog.show();
- }
- $('.grayout').fadeIn();
- $dialog.find('input[name=parent_identifier]').val($form.find('input[name=parent_identifier]').val());
- $dialog.find('input[name=chosen_identifier]').val($form.find('input[name=chosen_identifier]:checked').val());
- });
- $('#confirm-content-event-choice-dialog form .js-submit').click(function (event) {
- event.preventDefault();
- var $form = $(event.target).closest('form'),
- url = $form.attr('action'),
- data = $form.serialize();
- $.ajax({
- type: 'POST',
- url: url,
- data: data,
- dataType: 'json',
- success: function(data) {
- if (data.success) {
- if (data.force_refresh) {
- window.location.reload();
- }
- } else {
- if (data.errors) {
- var errorStr = '';
- for (var fieldName in data.errors) {
- errorStr = data.errors[fieldName][0];
- }
- if (errorStr) {
- AccountModals.displayDialog('Error', errorStr, data.goto);
- }
- }
- }
- }
- });
- });
- });
- });
- </script>
- <div class="js-asm-switcher-holder asm-download-page"></div>
- <div class="js-subproduct-whitebox-holder"></div>
- <script id='gift-confirm-dialog-template' type='text/template'>
- <div class='generic-popup outer-shadow' id='gift-confirm-dialog'>
- <div class='generic-popup content'>
- <h1 class='noimg'>Gift this item?</h1>
- <h2 class='subtitle'>Gifting this item removes it from your order and turns it into a giftable link. You can't undo this action.</h2>
- <div class='no-center'>
- <div class='button-holder'>
- <a class='button-link cancel' href='#' data-goto=''><span class='gray-button'>Cancel</span></a>
- <a class='button-link submit' href='#'><span class='green-button'>Create Gift Link</span></a>
- </div>
- <div class='clearfix'></div>
- </div>
- </div>
- </div>
- </script>
- <div class='whitebox small'>
- <div class='whitetop'></div>
- <div class='whitemid'></div>
- <div class='whitebottom'></div>
- <div class='whitecontent'>
- <div class='ebookinstructions' id='kindleinstructions'>
- <a href="#" class='js-slide-down-trigger slide-down-trigger'>Send the eBooks to my Kindle or Kindle reader</a>
- <div class="slide-down">
- <h2>Via USB</h2>
- <div class='stepholder'>
- <div class='step num1'></div>
- <div class='steptext'>
- <h3>Download your desired eBooks below as MOBI</h3>
- </div>
- </div>
- <div class='stepholder'>
- <div class='step num2'></div>
- <div class='steptext'>
- <h3>Follow <a href='http://www.amazon.com/gp/help/customer/display.html?nodeId=200798780' target='_blank'>Amazon's official instructions on transferring your eBooks via USB</a></h3>
- </div>
- </div>
- <h2>Via Email</h2>
- <div class='stepholder'>
- <div class='step'></div>
- <div class='steptext'>
- <h3>Warning: Graphic novels must be transferred via USB due to their large file size of 10MB or more.</h3>
- </div>
- </div>
- <div class='stepholder'>
- <div class='step num1'></div>
- <div class='steptext'>
- <h3>Ensure your device is connected to the internet</h3>
- <p>To avoid mobile data charges, we recommend using Wi-Fi to transfer the eBooks to your device.</p>
- </div>
- </div>
- <div class='stepholder'>
- <div class='step num2'></div>
- <div class='steptext'>
- <h3>Allow Humble Bundle to email your Kindle account</h3>
- <p>
- Visit Amazon's <a href='https://www.amazon.com/gp/digital/fiona/manage?ie=UTF8' target='_blank'>Manage Your Kindle</a> page and select the Settings tab.
- Locate the section titled <em><strong>Approved Personal Document E-mail List</strong></em>, click <em><strong>Add a new approved e-mail address</strong></em>, and type:
- <pre class='pre-box'>kindle@humblebundle.com</pre>
- </p>
- </div>
- </div>
- <div class='stepholder'>
- <div class='step num3'></div>
- <div class='steptext'>
- <h3>Select which eBooks to Email</h3>
- <p>
- From the <a href='https://www.amazon.com/mn/dcw/myx.html#/home/settings/payment' target='_blank'>Settings</a> page above, locate your Kindle email ending in @kindle.com from the <em><strong>Send-to-Kindle E-Mail Settings</strong></em> section and enter it into the input box below.
- </p>
- <p>
- Please note that you can now send individual titles to your Kindle!
- Simply select which book(s) you would like to send below before hitting the "Send Email" button.
- If you experience issues receiving your eBooks (sometimes caused by certain types of eReaders and the size of the eBooks), you may want to use this option.
- </p>
- <p>
- Please be aware that only certain titles are listed and available to send using this feature due to a 10MB size restriction.
- </p>
- <form method='POST' action='/util/kindle' class='sms-form' id='ebook-email-form'>
- <input type='hidden' name='key' value='wWuG2hMxeynmcRrC'>
- <div class='clearfix'></div>
- <input id='email-kindle' class='classy-input' type='text' name='email_prefix' value='' placeholder='Your kindle address'> <strong>@free.kindle.com</strong>
- <input type='submit' id='send-ebook-email' class='button-link green-button' value='Send Email'>
- <div class='clearfix'></div>
- <div id='send-email-message'></div>
- <div class='clearfix'></div>
- <p class='email-details'>
- We use the <em>@free.kindle.com</em> email domain <a href='http://www.amazon.com/gp/help/customer/display.html/?nodeId=200767340#fees' target='_blank'>to avoid charging you</a>.
- </p>
- <br>
- </form>
- <p>Try syncing your device with the Kindle server if eBooks are not appearing.</p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class='whitebox small'>
- <div class='whitetop'></div>
- <div class='whitemid'></div>
- <div class='whitebottom'></div>
- <div class='whitecontent'>
- <div class='ebookinstructions' id='otherebookinstructions'>
- <a href='https://support.humblebundle.com/hc/en-us/articles/202712300' target='_blank' class='open-in-external-window'>
- Instructions for Android, Nook, Kindle, and iOS devices</a>
- </div>
- </div>
- </div>
- <div class="js-gamelist-holder"></div>
- <div id='share-box'>
- <p>
- While you are waiting for your downloads to complete, please consider spreading the word!
- </p>
- <div id='normal'>
- <div class='social-media-shares'>
- <div class='sharer l twittershare'>
- <a href='http://twitter.com/share?url=https%3A//www.humblebundle.com/books/cybersecurity-wiley&via=humble&text=Pay%20what%20you%20want%20for%20cybersecurity%20ebooks%20and%20support%20charity%21'
- class='twitter-share-button' data-url='https://www.humblebundle.com/books/cybersecurity-wiley'
- data-text='Pay%20what%20you%20want%20for%20cybersecurity%20ebooks%20and%20support%20charity%21'
- data-count='horizontal' data-via='humble'></a>
- </div>
- <div class='sharer l fb'>
- <fb:like href='https://www.humblebundle.com/books/cybersecurity-wiley' send='false' layout='button_count' width='90' show_faces='false' font='arial'></fb:like>
- </div>
- <div class='sharer l plus'>
- <g:plusone size='medium' href='https://www.humblebundle.com/books/cybersecurity-wiley'></g:plusone>
- </div>
- <script>
- reddit_url = 'https://www.humblebundle.com/books/cybersecurity-wiley';
- reddit_target = 'books';
- </script>
- <div class='sharer l reddit'></div>
- <script>
- function run_once(name, f) {
- if (window["run_once_" + name]) {
- return;
- } else {
- f();
- window["run_once_" + name] = true;
- }
- }
- $(window).load(function() {
- var f = (function() {
- if ('https:' == document.location.protocol) {
- var base_url = 'https://redditstatic.s3.amazonaws.com'
- } else {
- var base_url = 'http://www.reddit.com/static'
- }
- var write_string="<iframe src=\"" + base_url + "/button/button1.html?width=120&url=";
- if (window.reddit_url) {
- write_string += encodeURIComponent(reddit_url);
- }
- else {
- write_string += encodeURIComponent(window.location.href);
- }
- if (window.reddit_title) {
- write_string += '&title=' + encodeURIComponent(window.reddit_title);
- }
- if (window.reddit_target) {
- write_string += '&sr=' + encodeURIComponent(window.reddit_target);
- }
- if (window.reddit_css) {
- write_string += '&css=' + encodeURIComponent(window.reddit_css);
- }
- if (window.reddit_bgcolor) {
- write_string += '&bgcolor=' + encodeURIComponent(window.reddit_bgcolor);
- }
- if (window.reddit_bordercolor) {
- write_string += '&bordercolor=' + encodeURIComponent(window.reddit_bordercolor);
- }
- if (window.reddit_newwindow) {
- write_string += '&newwindow=' + encodeURIComponent(window.reddit_newwindow);}
- write_string += "\" height=\"22\" width=\"120\" scrolling='no' frameborder='0'></iframe>";
- $("div.reddit.sharer").append($(write_string));
- });
- run_once("reddit", f);
- });
- </script>
- </div></div>
- <div style='clear:both;'></div>
- </div>
- <script type='text/template' id='stats-template'>
- <div class='stats-box'>
- <div class='stats-col-1-of-3'>
- <h4>Numbers</h4>
- <dl>
- <dt>Total payments:</dt>
- <dd class='total_contributed'></dd>
- <dt>Number of purchases:</dt>
- <dd class='total_contributions'></dd>
- <dt>Average purchase:</dt>
- <dd class='average_contribution'></dd>
- <dt>Average Windows:</dt>
- <dd class='average_windows'></dd>
- <dt>Average Mac:</dt>
- <dd class='average_mac'></dd>
- <dt>Average Linux:</dt>
- <dd class='average_linux'></dd>
- </dl>
- <p class='pubnub-promo'><i class="hb hb-info"></i> Real-time updating by <a href='http://www.pubnub.com/' target='_blank' title="This is our humble estimate for payments that are coming in. It does not account for merchant fees, canceled payments, or other merchant related issues.">PubNub</a></p>
- </div>
- <div class='stats-col-2-of-3'>
- <h4>Total Paid by Platform</h4>
- <img class='piechart'
- data-color-src='//chart.googleapis.com/chart?cht=p&chs=150x150&chco=ff8800|b90f00|001fba&chd=t:<%= percent_mac %>,<%= percent_windows %>,<%= percent_linux %>&chf=bg,s,00000000&chdlp=r'
- data-grayscale-src='//chart.googleapis.com/chart?cht=p&chs=150x150&chco=999999|666666|333333&chd=t:<%= percent_mac %>,<%= percent_windows %>,<%= percent_linux %>&chf=bg,s,00000000&chdlp=r'
- alt='Mac, Windows, and Linux total revenue breakdown' />
- <ul class='chartlegend'>
- <li><span class='chartcolor' data-color='#ff8800' data-grayscale-color='#999999'></span><span>Mac</span></li>
- <li><span class='chartcolor' data-color='#b90f00' data-grayscale-color='#666666'></span><span>Windows</span></li>
- <li><span class='chartcolor' data-color='#001fba' data-grayscale-color='#333333'></span><span>Linux</span></li>
- </ul>
- </div>
- <div class='stats-col-3-of-3'>
- <h4>Top Contributors</h4>
- <dl class='contributor-list'>
- <% for (var ii = 0; ii < leaderboard_data.length; ii++ ) { %>
- <dt title='<%= leaderboard_data[ii].name %>'>
- <span class='number'><%- ii + 1 %>.</span>
- <span class='contributor-name'><%= leaderboard_data[ii].name %></span>
- </dt>
- <dd><%- leaderboard_data[ii].amount %></dd>
- <% } %>
- </dl>
- </div>
- </div>
- </script>
- <script type='application/json' id='leaderboard-data'>
- [{"amount": "$555.00", "name": "Anonymous"}, {"amount": "$325.00", "name": "Anonymous"}, {"amount": "$313.37", "name": "Premonition.io"}, {"amount": "$300.00", "name": "Anonymous"}, {"amount": "$250.00", "name": "@seanmcelroy"}, {"amount": "$223.00", "name": "Nobody"}, {"amount": "$213.37", "name": "Anonymous"}, {"amount": "$200.00", "name": "Anonymous"}, {"amount": "$170.00", "name": "Anonymous"}, {"amount": "$150.00", "name": "@kingbytewolf"}]
- </script>
- <div class='whitebox'>
- <div class='whitetop'></div>
- <div class='whitemid'></div>
- <div class='whitebottom'></div>
- <div class='whitecontent'>
- <a name='stats'></a>
- <div id='stats-holder'></div>
- </div>
- </div>
- <div class='whitebox'>
- <div class='whitetop'></div>
- <div class='whitemid'></div>
- <div class='whitebottom'></div>
- <div class='whitecontent'>
- <form id='settings' action='/humbler/update/wWuG2hMxeynmcRrC' method='post'>
- <div style='text-align:center;'>Your Humble Bundle settings:</div>
- <div class='already-claimed' style="float:right;">This page is claimed by <strong>you</strong>.</div>
- <div>
- <label><input type='checkbox' name='leaderboard' value='false' /> <span>Please remove me from the leaderboard</span></label>
- <br />
- <a href='https://support.humblebundle.com/hc/en-us/articles/202421394-top-contributor-faq' target='_blank'>Top Contributor FAQ</a>
- </div>
- <div class='submitholder'>
- <input type='submit' value='Update' />
- <div class='settings indicator'></div>
- </div>
- </form>
- </div>
- <script type="text/javascript">
- // form submit
- $(document).ready(function(){
- var $form = $('#settings');
- var $indicator = $form.find('.indicator');
- $form.css({'visibility':'visible'});
- $form.submit(function(e){
- e.preventDefault();
- $indicator.addClass('on');
- var serialized = $form.serialize();
- var url = $form.attr('action');
- $.ajax({
- type: 'POST',
- url: url,
- data: serialized,
- success: function() {
- $indicator.removeClass('on');
- show_flash('Settings updated!');
- },
- error: function() {
- $indicator.removeClass('on');
- show_flash('Error updating settings!');
- }
- });
- });
- });
- </script>
- </div>
- </div>
- </div>
- <div class='clear'></div>
- </div>
- <script type="text/javascript">
- $(function () { ga('send', 'pageview', '/downloadpage'); })
- </script>
- </div>
- </div><script id='asm-switcher-template' type="text/template">
- <h1 class="heading">Humble asm.js Games</h1>
- <img src="https://humblebundle-a.akamaihd.net/static/hashed/47c1990235eb2e1f62be175ae3d6cf187f8ad457.png" alt="expand" class="js-toggle-collapsable toggle-collapsable visible"/>
- <img src="https://humblebundle-a.akamaihd.net/static/hashed/6681e6d3b3e00fbf9d3142767002d6420f1af623.png" alt="collapse" class="js-toggle-collapsable toggle-collapsable "/>
- <i class="js-do-confirm-close do-confirm-close hb hb-times"></i>
- <div class="collapsable">
- <div class="player-panel">
- <%= playerPanel %>
- </div>
- <% if (recFirefoxUpdate) { %>
- <div class="rec-firefox-update">
- <a href="https://www.getfirefox.com/">Get the latest version of Mozilla Firefox to get the best browser gaming experience possible.</a>
- </div>
- <% } %>
- <div class="game-button-panel"></div>
- </div>
- </script>
- <script id='asm-switcher-player-panel' type="text/template">
- <div class="modal-holder"></div>
- <div class="curtain"></div>
- <div class="dialogs">
- <img class='dialog spinner' src="https://humblebundle-a.akamaihd.net/static/hashed/2de55388a5f1201232a4c2b6a8d4f83b5006f418.gif" alt=""/>
- </div>
- <div class="iframe-holder" style="background: #000"></div>
- </script>
- <script id='asm-switcher-game-list' type="text/template">
- <div class="game-list">
- <% for(var game_machine_name in games) { %>
- <% var gameDict = games[game_machine_name]; %>
- <div class="game-button asm-switch <% if (machineName === game_machine_name) { %>selected<% } %>" data-machine-name="<%- game_machine_name %>">
- <p title="<%- gameDict.human_name %>"><%- gameDict.human_name %></p>
- <div class='progress-bar'>
- <div class='progress-done'></div>
- </div>
- </div>
- <% } %>
- </div>
- </script>
- <script id="js-download-list-template" type="text/template">
- <div class="js-platform-chooser-holder"></div>
- <div class="js-pre-downloads-holder"></div>
- <div class="js-progress-bar-holder"></div>
- <div class="js-all-downloads-holder"></div>
- <div class="error-holder js-error-holder"></div>
- </script>
- <script id="js-gamelist-message-template" type="text/template">
- <div class="custom-download-text">
- <%= download_struct.message %>
- </div>
- </script>
- <script id='js-platform-chooser-template' type="text/template">
- <div class="js-platform-chooser platform-chooser">
- <div class="dlplatform">
- <div class='textlabel'>Choose platform:</div>
- <div class='dlplatform-list'>
- <% for (var i in platforms) { %>
- <% var platform = platforms[i] %>
- <% var platform_obj = allPlatforms[platform] %>
- <div data-platform='<%= platform %>' class='flexbtn<% if (platform == activePlatform) { %> active<% } %> <%= platform %>'>
- <div class='icon'></div>
- <div class='right'></div>
- <span class='label'><%= platform_obj.human_name %></span><a class='a' href='#'><%= platform_obj.human_name %></a>
- </div>
- <% } %>
- </div>
- </div>
- <div style='clear:both;padding:4px;'></div>
- <% if (hasBittorrent) { %>
- <div class='dltype'>
- <div class='textlabel'>Choose download type:
- </div>
- <div data-type='direct' class='flexbtn direct active'>
- <div class='icon'></div>
- <div class='right'></div>
- <span class='label'>Direct link</span><a class='a' href='#'>Direct link</a>
- </div>
- <div data-type='bittorrent'
- class='flexbtn bittorrent'>
- <div class='icon'></div>
- <div class='right'></div>
- <span class='label'>BitTorrent</span><a class='a' href='#'>BitTorrent</a>
- </div>
- </div>
- <div style='clear:both;padding:4px;'></div>
- <% } %>
- </div>
- <div class="clear-fix"></div>
- </script>
- <script id='js-gamelist-loading-template' type="text/template">
- <div class="loading">
- <h1>Loading...</h1>
- <img src="https://humblebundle-a.akamaihd.net/static/hashed/26faf55c6e36ba3b1a57f9001942059fe05050f2.gif" alt=""/>
- </div>
- </script>
- <script id='js-progress-bar-template' type="text/template">
- <div id="download-page-progress-bar">
- <div id="download-page-outer-progress">
- <div id="download-page-inner-progress"></div>
- </div>
- <div id="download-page-progress-text"></div>
- </div>
- </script>
- <script id='js-android-instructions-template' type="text/template">
- <div class='custominstructions instructionsteps android hide_downloads'>
- <h3>Android Installation Instructions</h3>
- <p>Follow these instructions to <a href="/app" target="_blank">install the Humble Bundle app.</a></p>
- <p>You can also access your downloads by opening your order page on your mobile device.</p>
- <p>Enter your phone number below and we will send you the link via SMS:</p>
- <form id="sms-form" class="sms-form" method="POST" action="/util/sms" >
- <input type="hidden" name="channel" value="BUm1h9svg4KLn3Ff">
- <input type="hidden" name="key" value="wWuG2hMxeynmcRrC">
- <label class="form-label country-code-label" for="country-code">country code</label>
- <label class="form-label phone-number-label" for="phone-number">phone number <span class="area-code">(including area code)</span></label>
- <span class="plus-sign">+</span>
- <input id="country-code" class="country-code-field classy-input" type="number" name="countrycode" value="1">
- <input id="phone-number" class="phone-number-field classy-input" type="tel" name="number" value="">
- <input id="send-sms" class="send-sms-button green-button" type="submit" value="Send SMS">
- <p class="sms-disclaimer">Standard SMS rates may apply.</p>
- <p id="sms-message" class="sms-message"></p>
- </form>
- <div class='clear'></div>
- <p>Or, use the widget below to re-send the link to your email address:</p>
- <form id='send-email-form' method='POST' action='/util/sendemail' class='sms-form'>
- <input type='hidden' name='key' value='wWuG2hMxeynmcRrC'>
- <label for='email-truncated'>The email will be sent to the address you entered when you purchased the bundle.</label>
- <div class='clearfix'></div>
- <input class='classy-input' id='email-truncated' disabled='disabled' type='text' name='number' value='jo...@...il.com'>
- <input type='submit' id='send-email' class='button-link green-button' value='Send Email'>
- <div class='clearfix'></div>
- <div id='send-email-message'></div>
- <div class='clearfix'></div>
- </form>
- <p>If you would like to install the games using another method, you
- can use the links below to download the APK files to your computer:</p>
- <div id='show_android_binaries'>
- <a href='#' class='expandkeys'>Show Android Binaries</a>
- <div class='clear'></div>
- </div>
- <script type='text/javascript'>
- $(document).ready(function () {
- function isValidPhoneNumber(numberStr) {
- var rePattern = /[^\d]/;
- return numberStr && (numberStr.length > 3) && !numberStr.match(rePattern);
- }
- function getFullNumber() {
- var localnumber = $('#phone-number').val().toString().replace(/[\-\s\(\)]/g, '');
- var countrycode = $('#country-code').val().toString().replace(/[\-\s\(\)]/g, '');
- return countrycode + localnumber;
- }
- var $smsForm = $('#sms-form');
- var INVALID_PHONE = 'Please enter your phone number using only the digits 0 through 9.';
- $smsForm.submit(function(e) {
- e.preventDefault();
- $('#sms-message').text('').hide();
- var assembled = getFullNumber();
- if (isValidPhoneNumber(assembled)) {
- $('#sms-message').text('Sending...').show();
- $.ajax({
- url: $smsForm.attr('action'),
- dataType: 'json',
- type: 'POST',
- data: $smsForm.serialize(),
- success: function(data) {
- if (data && !data.success) {
- var message = '';
- if (data.error === 'noorder') {
- message = 'Your key(s) are invalid.';
- } else if (data.error === 'nonumber') {
- message = INVALID_PHONE;
- } else if (data.error === 'ratelimited') {
- message = 'You are sending too many SMS messages. Please try again in 24 hours.';
- } else {
- message = 'Unknown error';
- }
- $('#sms-message').text('Error: ' + message).show();
- } else {
- $('#sms-message').text('').hide();
- }
- },
- error: function(data) {
- $('#sms-message').text('There was an unknown error while sending the SMS.').show();
- }
- });
- }
- });
- var $smsMessage = $('#sms-message');
- pubnub_client.subscribe({
- 'channel': 'BUm1h9svg4KLn3Ffsmsresult',
- 'callback': function(message) {
- if (console) console.log('got a message');
- var assembled = getFullNumber();
- $smsMessage.css('padding-top', '10px');
- if (message.success) {
- $smsMessage.text('Success! The link was sent to +' + assembled +' and should be arriving shortly.');
- } else {
- $smsMessage.text('We are having trouble sending the message, but will keep trying.');
- }
- }
- });
- });
- var $emailForm = $('#send-email-form');
- $emailForm.submit(function (e) {
- e.preventDefault();
- $('#send-email-message').text('').css('padding-top','0');
- $.post(
- $emailForm.attr('action'),
- $emailForm.serialize(),
- function(data) {
- data = $.parseJSON(data);
- if (!data.success) {
- var message = '';
- if (data.error === 'noorder') {
- message = 'Your key(s) are invalid.';
- } else if (data.error == 'noemail') {
- message = 'Your email address is invalid.';
- } else if (data.error == 'ratelimited') {
- message = 'You are sending emails too quickly. Please try again in 24 hours.';
- } else {
- message = 'Unknown error';
- }
- $('#send-email-message').text('There was an error: ' + message).css('padding-top','10px');
- } else {
- $('#send-email-message').text('Email sent!').css('padding-top','10px');
- }
- }
- );
- });
- $('#send-email').click(function(e) {
- e.preventDefault();
- $emailForm.submit();
- });
- </script>
- </div>
- </script>
- <script id="js-canonical-template" type="text/template">
- <div class='custominstructions linux' id='ubuntuinstructions'>
- <h2>Click the button below to redeem your bundle on the Ubuntu Software Center.</h2>
- <a href='https://software-center.ubuntu.com/coupons/<%= product_machine_name %>/?key=<%= gamekey %>&utm_source=humblebundle&utm_medium=download&utm_campaign=<%= product_machine_name %>'>
- <img src='https://humblebundle-a.akamaihd.net/static/hashed/b40b894cf171bca8af0a30601d41d59425d4b6ba.png' alt='Download for Ubuntu'/>
- </a>
- </div>
- </script>
- <script id="js-custom-whitebox-template" type="text/template">
- <div class='whitebox'>
- <div class='whitetop'></div>
- <div class='whitemid'></div>
- <div class='whitebottom'></div>
- <div class='whitecontent'>
- <%= custom_html %>
- </div>
- </div>
- </script>
- <script id="js-coupon-box-template" type="text/template">
- <div class="whitebox-redux coupon">
- <div class="coupon-info">
- <div class="column">
- <div class="media-object">
- <div class="avatar">
- <% if (coupon.storefront_product) { %>
- <img class="coupon-icon" src="<%- coupon.storefront_product.icon %>">
- <% } else { %>
- <img class="coupon-icon" src="<%= humble_icon %>">
- <% } %>
- </div>
- <div class="details">
- <div class="coupon-name"> <%- coupon.coupon_human_name %> <div class="js-coupon-admin-edit" data-entity-kind="coupon" data-machine-name="<%- coupon.coupon_machine_name %>"></div>
- </div>
- <% if (coupon.coupon_status == 'used') { %>
- <div>*Already redeemed*</div>
- <% } else if (coupon.coupon_status == 'expired') { %>
- <div class="expired">*This coupon expired on <%= couponModel.get_expiration_date_as_string() %>*</div>
- <% } else if (coupon.coupon_status == 'unused' && coupon.coupon_expiration) { %>
- <div>Expires <%= couponModel.get_expiration_date_as_string() %></div>
- <% } %>
- <a href="#" class="coupon-terms js-show-coupon-terms">Coupon Details</a>
- </div>
- </div>
- </div>
- <div class="column">
- <% if (coupon.storefront_product) { %>
- <% if (coupon.coupon_status == 'used') { %>
- <a href="/home/purchases">View purchase</a>
- <% } else if (coupon.coupon_status == 'expired') { %>
- <a href="<%- '/store/' + coupon.storefront_product.human_url %>">View game in store</a>
- <% } else if (coupon.coupon_status == 'unused') { %>
- <% if (!_.isEmpty(coupon.storefront_product.platform_icon_dict)) { %>
- <%= render_platform_icons(coupon.storefront_product.platform_icon_dict) %>
- <% } %>
- <% if (coupon.coupon_type == 'discount-percentage') { %>
- <span class="discount-amount">
- -<%= coupon.coupon_discount %>%
- </span>
- <% } else if (coupon.coupon_type == 'credit-amount') { %>
- <span class="discount-amount">
- -<%= moneyfmt(coupon.coupon_credit, coupon.storefront_product.currency) %>
- </span>
- <% } %>
- <span class="discount-price">
- <% // BTW, Discount price is calculated differently depending on coupon type
- %>
- <%= moneyfmt(coupon.storefront_product.discount_price, coupon.storefront_product.currency) %>
- </span>
- <% } %>
- <% } else { %>
- <% if (coupon.coupon_status == 'used') { %>
- <a href="/home/purchases">View purchase</a>
- <% } else if (coupon.coupon_status == 'expired') { %>
- <a href="/store">View store</a>
- <% } else if (coupon.coupon_status == 'unused') { %>
- <% if (coupon.subscriptions && _.contains(coupon.subscriptions , 'humble_monthly')) { %>
- <a href="/monthly" class="round-active-button" target="_blank">Check it out</a>
- <% } else { %>
- <a href="<%= coupon.coupon_storefront_link %>" class="round-active-button" target="_blank">View store</a>
- <% } %>
- <% } %>
- <% } %>
- </div>
- </div>
- <% if (coupon.storefront_product && coupon.coupon_status == 'unused') { %>
- <div class="redeem-product">
- <span class="redeem-callout">
- Apply your coupon and go straight to checkout:
- <a href="<%- '/store/' + coupon.storefront_product.human_url + '/coupon' + coupon.coupon_key %>" class="round-active-button" target="_blank">
- Redeem now!
- </a>
- </span>
- </div>
- <% } %>
- </div>
- </script>
- <script id="js-credit-box-template" type="text/template">
- <div class="whitebox-redux credit">
- <div class="credit-info">
- <% if (settled) { %>
- <p>This order added <%- moneyfmt(amount, currency) %> to your <a href='/user/wallet'>Humble Wallet</a>.</p>
- <% } else if (claimed) { %>
- <% if (has_wallet) { %>
- <p>This order grants <strong><%- moneyfmt(amount, currency) %></strong> worth of credit for the Humble Store. Add it to your Humble Wallet now: <button class='button blue js-redeem-humblewallet-credit' data-gamekey='<%= gamekey %>'>Add to my Wallet</button></p>
- <% } else { %>
- <p>Set up your <a href='/user/wallet/create?goto=%2Fdownloads%3Fkey%3D<%= page_gamekey %>'>Humble Wallet</a> and return to this page to redeem <%- moneyfmt(amount, currency) %> worth of credit for the Humble Store.</p>
- <% } %>
- <% } else { %>
- <% if (signed_in) { %>
- <p>This order grants <strong><%- moneyfmt(amount, currency) %></strong> worth of credit for the Humble Store. To add it to your Humble Wallet: <button class='button blue js-claim-page' href='#' data-gamekey='<%= gamekey %>'>Claim this order</button></p>
- <% } else { %>
- <p><a class='a account-login' data-target-popup='#account-login' href='/bundle/claim?claimkey=<%= page_gamekey %>'>Sign in to claim this page</a> and redeem <%- moneyfmt(amount, currency) %> worth of credit for the Humble Store.</p>
- <% } %>
- <% } %>
- <div class="js-credit-admin-edit" data-entity-kind="product" data-anchor-name="#row_pricing" data-machine-name="<%- machine_name %>"></div>
- </div>
- </div>
- </script>
- <script id="js-missed-credit-box-template" type="text/template">
- <div class="whitebox-redux credit">
- <div class="credit-info">
- <p>
- This order would have added <%- amount %> to your <a href='/user/wallet'>Humble Wallet</a>.
- <a href='/monthly'>Subscribe to Humble Monthly</a> now for future rewards!
- </p>
- </div>
- </div>
- </script>
- <script id="js-credit-redeem-message" type="text/template">
- <div class="whitebox-redux credit">
- <div class="credit-info">
- <% if (success) { %>
- Success! The credit has been added to <a href='/user/wallet'>your Humble Wallet</a>.
- <% } else { %>
- Error: There was a problem adding the credit to your Humble Wallet.
- <% } %>
- </div>
- </div>
- </script>
- <div id='large-download-warning' class='download-popup'>
- <h2>This is a very large download</h2>
- <p class='bittorrent-warning'>
- We recommend the BitTorrent option for this file, to ensure that there are no interruptions or risks of data
- corruption during the download.
- </p>
- <p class='bittorrent-warning'>
- Our BitTorrent files contains a "webseed" from the same content delivery network that powers our regular downloads,
- which means that it will be downloaded over both HTTP and from BitTorrent users who share their bandwidth for the
- fastest experience possible.
- </p>
- <p class='warning-text fat32-warning'>
- Warning: This file cannot be downloaded on FAT32 file systems (commonly found on USB thumb drives) due to its large
- size.
- <a href='https://support.humblebundle.com/hc/en-us/articles/202421414' target='_blank'>Click here</a>
- for additional details.
- </p>
- <p class='bittorrent-warning'>Are you sure you want to do a direct download?</p>
- <div class='buttonHolder'>
- <a href='#' class='button-link use-http bittorrent-warning'><span class='green-button'>Download anyway</span></a>
- <a href='#' class='button-link use-bittorrent bittorrent-warning'><span
- class='green-button'>Use BitTorrent</span></a>
- <a href='#' class='button-link use-http not-bittorrent-warning'><span class='green-button'>Download</span></a>
- <a href='#' class='button-link use-bittorrent not-bittorrent-warning'><span class='green-button'>Download</span></a>
- <a href='#' class='button-link cancel'><span class='gray-button'>Cancel</span></a>
- </div>
- </div>
- <div id='confirm-apk' class='download-popup' style='display:none'>
- <h2>You are not on an Android device</h2>
- <p>This package is intended to be downloaded and installed on an Android device.</p>
- <p>Are you sure you want to download it even though you are not using an Android device?</p>
- <div class='buttonHolder'>
- <a href='#' class='download-anyway button-link'><span class='green-button'>Download anyway</span></a>
- <a href='#' class='cancel' class='button-link'><span class='gray-button'>Cancel</span></a>
- </div>
- </div>
- <script type='text/javascript'>
- $(function(){
- $('#regular_download_list .android .download .flexbtn').click(function(e){
- e.preventDefault();
- var $dialog = $('#confirm-apk');
- $('.grayout').fadeIn();
- $dialog.find('.download-anyway').attr('href', $(e.target).attr('href'));
- $dialog.fadeIn();
- })
- $('.download-anyway').click(function(e){
- $('.grayout').fadeOut();
- $('#confirm-apk').fadeOut();
- })
- });
- </script>
- <div class='grayout'>
- <div class='grayout-inner'>
- </div>
- </div>
- <div id='site-modal'></div>
- <script>
- /* v1.0.1 */(function(b){b.fn.mailcheck=function(a,b){var d="yahoo.com,google.com,hotmail.com,gmail.com,me.com,aol.com,mac.com,live.com,comcast.net,googlemail.com,msn.com,hotmail.co.uk,yahoo.co.uk,facebook.com,verizon.net,sbcglobal.net,att.net,gmx.com,mail.com".split(",");if("object"===typeof a&&void 0===b)a.domains=a.domains||d;else{var e=a,a=b;a.domains=e||d}(d=Kicksend.mailcheck.suggest(encodeURI(this.val()),a.domains))?a.suggested&&a.suggested(this,d):a.empty&&a.empty(this)}})(jQuery);
- var Kicksend={mailcheck:{threshold:3,suggest:function(b,a){var b=b.toLowerCase(),c=this.splitEmail(b),d=this.findClosestDomain(c.domain,a);return d?{address:c.address,domain:d,full:c.address+"@"+d}:!1},findClosestDomain:function(b,a){for(var c,d=99,e=null,f=0;f<a.length;f++){if(b===a[f])return!1;c=this.stringDistance(b,a[f]);c<d&&(d=c,e=a[f])}return d<=this.threshold&&null!==e?e:!1},stringDistance:function(b,a){if(null==b||0===b.length)return null==a||0===a.length?0:a.length;if(null==a||0===a.length)return b.length;
- for(var c=0,d=0,e=0,f=0;c+d<b.length&&c+e<a.length;){if(b[c+d]==a[c+e])f++;else for(var g=e=d=0;5>g;g++){if(c+g<b.length&&b[c+g]==a[c]){d=g;break}if(c+g<a.length&&b[c]==a[c+g]){e=g;break}}c++}return(b.length+a.length)/2-f},splitEmail:function(b){b=b.split("@");if(2>b.length)return!1;for(var a=0;a<b.length;a++)if(""===b[a])return!1;return{domain:b.pop(),address:b.join("@")}}}};
- </script>
- <script>
- require(['account/accountModals'], function (accountModals) {
- window.modal_attributes = {
- request_reason: "",
- base_url_secure: "https://www.humblebundle.com",
- goto: null,
- qs: null,
- csrf_token_input: "<input type='hidden' class='csrftoken' name='_le_csrf_token' value='wpOLiPSCcKd_Z-T--1-1506712425' />",
- is_eu_country: true
- };
- accountModals.bindCancelDialog();
- accountModals.bindAccountModalHandling({
- debug: false,
- attributes: window.modal_attributes
- });
- });
- </script>
- <div ssl='on' id='pubnub'></div>
- <script>
- // log all calls and be able to play them back on another object
- // sort of like a more generic version of the _gaq object
- function Replayer(methods) {
- this._log = [];
- var self = this;
- methods.forEach(function(method) {
- self[method] = function() {
- self._log.push([method, Array.prototype.slice.call(arguments)]);
- };
- });
- this._playback = function (obj) {
- self._log.forEach(function(entry) {
- methodname = entry[0];
- args = entry[1];
- method = obj[methodname];
- method.apply(obj, args);
- });
- };
- }
- window.pubnub_client = new Replayer(['subscribe', 'history']);
- var pubnub_async_loader = function(PUBNUB) {
- if (typeof PUBNUB === "string") {
- PUBNUB = window.PUBNUB;
- }
- var pubnub_callbacks = {};
- /* {
- 'stats': [callback1, callback2]
- 'thanks': [thankscallback]
- }
- */
- var register_pubnub_handler = function (channel, callback) {
- var channel_callbacks = pubnub_callbacks[channel];
- if (channel_callbacks == undefined) {
- channel_callbacks = [];
- }
- channel_callbacks.push(callback);
- pubnub_callbacks[channel] = channel_callbacks;
- };
- var pubnub_delegator = function (message, envelope, channel) {
- var callbacks = pubnub_callbacks[channel];
- for (var i = 0; i < callbacks.length; i++) {
- callbacks[i](message);
- }
- };
- var original_pubnub_client = PUBNUB.init({
- noleave: true,
- ssl: true,
- subscribe_key: '6b5eeae3-796b-11df-8b2d-ef048cc31d2e'
- });
- var multiplexed_pubnub_client = {};
- $.extend(multiplexed_pubnub_client, original_pubnub_client);
- multiplexed_pubnub_client.subscribe = function(options) {
- var callback = options['callback'];
- var channel = options['channel'];
- delete options['callback'];
- register_pubnub_handler(channel, callback);
- options['callback'] = pubnub_delegator;
- return original_pubnub_client.subscribe(options);
- };
- multiplexed_pubnub_client.ready(); // since we fire after the ready event, trigger it on the pubnub object
- window.pubnub_client._playback(multiplexed_pubnub_client);
- window.pubnub_client = multiplexed_pubnub_client;
- };
- // Using requirejs instead of require because it appears that the ACE editor has some sort of conflict.
- if (typeof requirejs === 'function') {
- requirejs(['https://humblebundle-a.akamaihd.net/static/hashed/998cdf8d471fa4ae7935c0bc267cae547fa8826e.js'], pubnub_async_loader)
- } else {
- async_js('https://humblebundle-a.akamaihd.net/static/hashed/998cdf8d471fa4ae7935c0bc267cae547fa8826e.js', pubnub_async_loader);
- }
- </script>
- <div id='flash'></div>
- <script>
- $(window).ready(function() {
- //
- var urls = [
- 'https://connect.facebook.net/en_US/all.js',
- 'https://apis.google.com/js/platform.js',
- 'https://platform.twitter.com/widgets.js'
- ];
- _(urls).each(function(url) {
- async_js(url);
- });
- });
- </script>
- <script id="js-google-analytics">
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
- ga('create', 'UA-467050-6', 'auto');
- ga('require', 'displayfeatures');
- ga('require', 'ecommerce');
- ga('require', 'linkid', 'linkid.js');
- function _hbga(verb){
- ga.apply(this, arguments);
- }
- _hbga('set', 'metric1', 14.62);
- _hbga('set', 'dimension1', 14.62);
- _hbga('send', 'pageview');
- </script>
- <script>
- function _gaTrackEvent(category, action, opt_label, opt_value, opts) {
- category = category || ('/' + window.location.pathname.split('/')[1]);
- _hbga('send', 'event', category, action, opt_label, opt_value, opts);
- }
- function _gaTrackPageview(page) {
- _hbga('send', 'pageview', page);
- }
- function _gaTrackEventNoninteractive(category, action, opt_label, opt_value) {
- _gaTrackEvent(category, action, opt_label, opt_value, {'nonInteraction': 1})
- }
- </script>
- <!-- Facebook Pixel Code -->
- <script>
- !function(f,b,e,v,n,t,s)
- {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
- n.callMethod.apply(n,arguments):n.queue.push(arguments)};
- if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
- n.queue=[];t=b.createElement(e);t.async=!0;
- t.src=v;s=b.getElementsByTagName(e)[0];
- s.parentNode.insertBefore(t,s)}(window,document,'script',
- 'https://connect.facebook.net/en_US/fbevents.js');
- fbq('init', '1658430177760250');
- fbq('track', 'PageView');
- </script>
- <noscript>
- <img height="1" width="1" src="https://www.facebook.com/tr?id=1658430177760250&ev=PageView&noscript=1"/>
- </noscript>
- <!-- End Facebook Pixel Code -->
- <script async src='https://checkout.stripe.com/checkout.js'></script>
- <script>
- var _user_id = "1JMmJVX1yO8aHixHXsStAsuN2GtFvBqE4w5E7vPFdvt6mZVeH8FglBAn0NUBBA9kLx";
- var _session_id = "qXAZhsnXXi";
- var _sift = _sift || [];
- _sift.push(['_setAccount', 'fa5602386c']);
- _sift.push(['_setUserId', _user_id]);
- _sift.push(['_setSessionId', _session_id]);
- _sift.push(['_trackPageview']);
- (function () {
- function ls() {
- var e = document.createElement('script');
- e.type = 'text/javascript';
- e.async = true;
- e.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.siftscience.com/s.js';
- var s = document.getElementsByTagName('script')[0];
- s.parentNode.insertBefore(e, s);
- }
- if (window.attachEvent) {
- window.attachEvent('onload', ls);
- } else {
- window.addEventListener('load', ls, false);
- }
- })();
- </script>
- <script type="text/javascript">
- (function(s,m,y,t,e){s._smyte=s._smyte||[];t=m.createElement(y);t.async=1;t.src='//ping.smyte.com/p.js';e=m.getElementsByTagName(y)[0];e.parentNode.insertBefore(t,e);})(window,document,'script');
- _smyte.push(['_setClientKey', '90d681dbb6997b4dfd2be21919378c00']);
- _smyte.push(['_setSession', {
- id: 'qXAZhsnXXi',
- actor: {
- id: '1JMmJVX1yO8aHixHXsStAsuN2GtFvBqE4w5E7vPFdvt6mZVeH8FglBAn0NUBBA9kLx',
- type: 'user'
- }
- }]);
- _smyte.push(['_log']);
- </script>
- <script>
- //timer
- (function(){
- var TIMER_FREQUENCY = 500;
- var drawsimpleclock = function(t, $element) {
- for (var i=0;i<t.length;i++) {
- var d = '' + Math.floor(t[i]);
- if (d.length == 1) d = '0' + d;
- $element.find('.digit.' + i).text(d);
- }
- };
- var drawclock = function(t, $element) {
- for (var i=0;i<t.length;i++) {
- var d = '' + Math.floor(t[i]);
- if (d.length == 1) d = '0' + d;
- for (var j=0;j<2;j++) {
- $element.find('.c' + (2*i + j)).find('.top-cutter .heading-num').text(d.substr(j,1));
- }
- }
- };
- var count = function(d, element) {
- var s = Math.max((new Date(d - new Date())).valueOf(),0),
- digits = $.map([s / 86400000,s / 3600000 % 24,s / 60000 % 60,s / 1000 % 60],function(a) {return parseInt(a);}),
- $el = $(element);
- if ($el.hasClass('simple-timer')) {
- drawsimpleclock(digits, $el);
- } else {
- drawclock(digits, $el);
- }
- };
- var timers = [];
- var timerIntervals = [];
- window.start_countdown_timer = function(d, element){
- var timer_callback = function(){
- count(d, element);
- };
- timers.push(timer_callback);
- timerIntervals.push(setInterval(timer_callback, TIMER_FREQUENCY));
- timer_callback();
- };
- window.start_countdown_timers = function() {
- $('.js-countdown-timer').each(function(i, el) {
- var $el = $(el);
- var end_time = $el.data('end-time');
- var timer = function() {
- $el.text(render_time_remaining_until(end_time));
- };
- timers.push(timer);
- timerIntervals.push(setInterval(timer, TIMER_FREQUENCY));
- });
- };
- window.pause_timers = function(){
- for(var i = timerIntervals.length - 1; i >= 0; i--){
- clearInterval(timerIntervals.pop());
- }
- }
- window.resume_timers = function(){
- for(var i = 0; i < timers.length; i++){
- timerIntervals.push(setInterval(timers[i], TIMER_FREQUENCY));
- }
- }
- })();
- var timing = {};
- var enddate = new Date(timing.end * 1000);
- start_countdown_timer(enddate, 'heading-time-remaining');
- /* popups.js */
- (function() {
- if ($('div.youtube-embed, div.youtube-embed-forceload').length > 0) {
- // 2. This code loads the IFrame Player API code asynchronously.
- async_js('//www.youtube.com/player_api');
- }
- function onPlayerStateChange(e) {
- if (e.data == YT.PlayerState.PLAYING) {
- // For now, just fire a coarse-grained global notification whenever a
- // video starts playing. This should be cleaned up to fire a more specific
- // notification.
- $(window).trigger('youtube-play');
- }
- }
- window.players = [];
- function activateEmbeddedPlayer($elem) {
- if (typeof YT === 'undefined') {
- return;
- }
- var data = $elem.data();
- if (!('playerVars' in data)) {
- // each video must have a unique id -- randomly generate one here
- var random_id = 'yt-' + Math.random().toString(36).substr(2, 5);
- $elem.attr('id', random_id);
- data.playerVars = {};
- for (var i in data) {
- if (data.hasOwnProperty(i) && i.indexOf('playervar') === 0) {
- data.playerVars[i.substring(9).toLowerCase()] = data[i];
- delete data[i];
- }
- }
- data.events = {
- 'onStateChange': onPlayerStateChange
- };
- var player = new YT.Player($elem.attr('id'), data);
- // Set the index data on the iframe
- $(player.getIframe()).data('index', window.players.length);
- window.players.push(player);
- }
- }
- // make clicking a product icon show the popup
- $('a.gamelinks, a.gamelinks-nostyle, a.minigame-link, .charitylinks a, .soundlink, .popup-links a').click(function(e) {
- var popupHash = $(this).attr('href'); // action
- if (popupHash.indexOf('#popup-') >= 0) {
- e.preventDefault();
- popupHash = popupHash.substr(popupHash.indexOf('#'));
- } else {
- return; // the href should always start with #popup-
- }
- var $popup = $(popupHash);
- if ($popup.length === 0) {
- return;
- } else {
- // Setting overflow-y: hidden will hide the scroll bar, which changes the
- // width, which causes the content to shift. To counteract this effect, add
- // a margin-right where the scroll bar used to be.
- var old_width = $('body').width();
- $('body').css('overflow-y', 'hidden');
- var new_width = $('body').width();
- $('body').css('margin-right', new_width - old_width);
- $popup.show().addClass('active-popup');
- $('#dark-cover-inner').css('min-height', $popup.outerHeight());
- $popup.find('div.youtube-embed').each(function() {
- var $elem = $(this);
- activateEmbeddedPlayer($elem);
- });
- }
- $('#dark-cover').fadeIn('fast');
- var productName = $('#contribute').find('input[name=product]').val();
- _gaTrackEvent(undefined, 'Popup action: ' + popupHash, 'Product: ' + productName);
- });
- function closePopup() {
- var $videoFrame = $('.active-popup .game-movie iframe');
- var $activePopup = $('.active-popup');
- if ($activePopup.data('closeCallback')) {
- $activePopup.data('closeCallback')($activePopup);
- }
- $activePopup.hide().removeClass('active-popup');
- $('#dark-cover').fadeOut('fast');
- $('body').css('overflow-y', 'auto');
- $('body').css('margin-right', '0');
- if (!$videoFrame.length) {
- return;
- }
- // stop playing by removing the iframe
- var $frameParent = $videoFrame.parent(),
- $frameClone = $videoFrame.clone();
- $videoFrame.remove();
- $frameClone.appendTo($frameParent);
- }
- // Close the popup if the user presses escape.
- $(document).keyup(function(e) {
- if (e.keyCode == 27) {
- closePopup();
- }
- });
- // Close the popup when the user clicks the close button or clicks outside the popup.
- $('#dark-cover,.game-popup .close-popup').click(function(e) {
- e.preventDefault();
- closePopup();
- });
- // ...but make sure clicking inside the popup doesn't close it.
- $('.game-popup').click(function(e) {
- e.stopPropagation();
- });
- $(window).on('onYouTubeIframeAPIReady', function() {
- // Only load forceloaded embeds. Other embeds will be loaded when their containing popup is opened.
- $('div.youtube-embed-forceload').each(function() {
- var $elem = $(this);
- activateEmbeddedPlayer($elem);
- });
- });
- /*
- * eBook preview font controls.
- */
- $(document).ready(function () {
- var font_size = 14;
- $('.font-size .larger').click(function(e) {
- e.preventDefault();
- font_size += 2;
- $('.book-preview').css('font-size', font_size + 'px');
- });
- $('.font-size .smaller').click(function(e) {
- e.preventDefault();
- font_size -= 2;
- $('.book-preview').css('font-size', font_size + 'px');
- });
- $('.font-style .sans').click(function(e) {
- e.preventDefault();
- $('.ebook-popup').addClass('sans');
- });
- $('.font-style .serif').click(function(e) {
- e.preventDefault();
- $('.ebook-popup').removeClass('sans');
- });
- });
- /*
- * Subtab navigation
- */
- $('#active-subtab').click(function (e) {
- e.preventDefault();
- var target = $(this).attr('href');
- $('body').animate({'scrollTop': $(target).offset().top}, 800);
- });
- })();
- $('.steaminfo').click(function(e) {
- e.preventDefault();
- $('#keysinfotext').toggleClass('displaying');
- });
- /* show grayscale pie chart on hover for colorblind users */
- var $chartLegendColors = $('#chartlegend').find('.chartcolor');
- $('#chartgloss').hover(function() {
- $('#googlechart').attr('src', $('#googlechart').data('grayscalesrc'));
- $chartLegendColors.each(function() {
- $(this).css('background-color', $(this).data('grayscaleColor'));
- });
- },function() {
- $('#googlechart').attr('src', $('#googlechart').data('colorsrc'));
- $chartLegendColors.each(function() {
- $(this).css('background-color', $(this).data('color'));
- });
- });
- $chartLegendColors.each(function() {
- $(this).data('color', $(this).css('background-color'));
- });
- $(document).ready(function() {
- var cookiedata = $.cookie('androidapp');
- if (cookiedata == 'expanded') {
- $('#androidappbox').click();
- }
- $('#androidappbox').click(function(e) {
- $.cookie('androidapp', 'expanded');
- });
- });
- </script>
- <script>
- var active_platform = "ebook";
- var humbleIcon = "https://humblebundle-a.akamaihd.net/static/hashed/703cddaea1919f4b3840a4527dbbd0a0c4dc160c.png";
- var gamekeys = ['wWuG2hMxeynmcRrC'];
- var single_key_page = true;
- var android_version = false;
- var hasAdminAccess = false;
- require([
- 'downloadPages/initDownloadList',
- 'banner/banner'
- ], function (
- initDownloadList,
- XPromoBanner
- ) {
- initDownloadList(gamekeys, {
- el: $('.js-gamelist-holder'),
- activePlatform: active_platform,
- singleKeyPage: single_key_page,
- androidVersion: android_version,
- humbleIcon: humbleIcon,
- hasAdminAccess: hasAdminAccess
- });
- XPromoBanner.init();
- });
- var runanalytics = function() {
- var analyze = function(id) {
- if (!id) return;
- var storage = getLocalStorage();
- var previds = storage.getItem('hbprevids') || '';
- if (previds.match(id)) return;
- $.post('/analytics', {'id':id}, function(data) {
- var gaData;
- if (data.complete) {
- storage.setItem('hbprevids', previds + ',' + id);
- }
- if (!data.uid) {
- return;
- }
- gaData = {
- id: data.uid,
- revenue: data.amount
- };
- ga('ecommerce:addTransaction', gaData);
- ga('send', {
- hitType: 'event',
- eventCategory: 'Purchase',
- eventAction: data.category,
- eventLabel: data.product,
- eventValue: data.pennies
- });
- for (var i = 0; i < data.items.length; i++) {
- var item = data.items[i];
- gaData = {
- id: data.uid,
- name: item.kind,
- sku: data.product,
- category: item.kind,
- price: item.amount,
- quantity: '1'
- };
- ga('ecommerce:addItem', gaData);
- }
- ga('ecommerce:send');
- },'json');
- };
- analyze('wWuG2hMxeynmcRrC');
- var partnerId = $.cookie('partner_id');
- if (partnerId) {
- ga('set', 'dimension2', partnerId);
- }
- };
- runanalytics();
- /*
- * TypeWatch 2.0 - Original by Denny Ferrassoli / Refactored by Charles Christolini
- *
- * Examples/Docs: www.dennydotnet.com
- *
- * Copyright(c) 2007 Denny Ferrassoli - DennyDotNet.com
- * Coprright(c) 2008 Charles Christolini - BinaryPie.com
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
- (function(jQuery) {
- jQuery.fn.typeWatch = function(o) {
- // Options
- var options = jQuery.extend({
- wait : 750,
- callback : function() {
- },
- highlight : true,
- captureLength : 2
- }, o);
- function checkElement(timer, override) {
- var elTxt = jQuery(timer.el).val();
- // Fire if text > options.captureLength AND text != saved txt OR if override AND text > options.captureLength
- if ((elTxt.length > options.captureLength && elTxt.toUpperCase() != timer.text)
- || (override && elTxt.length > options.captureLength)) {
- timer.text = elTxt.toUpperCase();
- timer.cb(elTxt);
- }
- };
- function watchElement(elem) {
- // Must be text or textarea
- if (elem.type.toUpperCase() == "TEXT" || elem.nodeName.toUpperCase() == "TEXTAREA") {
- // Allocate timer element
- var timer = {
- timer : null,
- text : jQuery(elem).val().toUpperCase(),
- cb : options.callback,
- el : elem,
- wait : options.wait
- };
- // Set focus action (highlight)
- if (options.highlight) {
- jQuery(elem).focus(
- function() {
- this.select();
- });
- }
- // Key watcher / clear and reset the timer
- var startWatch = function(evt) {
- var timerWait = timer.wait;
- var overrideBool = false;
- if (evt.keyCode == 13 && this.type.toUpperCase() == "TEXT") {
- timerWait = 1;
- overrideBool = true;
- }
- var timerCallbackFx = function() {
- checkElement(timer, overrideBool)
- }
- // Clear timer
- clearTimeout(timer.timer);
- timer.timer = setTimeout(timerCallbackFx, timerWait);
- };
- jQuery(elem).keydown(startWatch);
- // HTML5 adds an "input" event which is a more reliable way of telling
- // when the field has changed -- it fires for things like browser
- // autofill (where there is no keydown event). For browsers that support
- // it, we bind startWatch to fire here too.
- jQuery(elem).bind('input', startWatch);
- }
- }
- ;
- // Watch Each Element
- return this.each(function(index) {
- watchElement(this);
- });
- };
- })(jQuery);
- var MAILCHECK_DOMAINS = ['gmail.com', 'hotmail.com', 'yahoo.com', 'hotmail.co.uk', 'googlemail.com', 'gmx.de', 'live.com', 'live.ca', 'web.de', 'aol.com', 'msn.com', 'comcast.net', 'me.com', 'gmx.net', 'hotmail.fr', 'mail.ru', 'yahoo.co.uk', 'live.co.uk', 'yandex.ru', 'mac.com', 'yahoo.de', 'yahoo.fr'];
- function isValidEmail(e) {
- return (e != '') && /.+@.+\..+/.test(e);
- }
- function live_email_check($field, setEmailMessage) {
- var emailValid = false;
- $field.mailcheck({
- domains: MAILCHECK_DOMAINS,
- suggested: function($input, suggestion) {
- // set the error text to the suggested correction
- var message = 'Did you mean <a href="#" class="suggested-email" data-email="' + suggestion['full'] + '">' + suggestion['address'] + '@<strong>' + suggestion['domain'] + '</strong></a>?'
- var $msgField = setEmailMessage($field, message);
- $msgField.find('.suggested-email').click(function(e) {
- e.preventDefault();
- $input.val($(this).data('email'));
- live_email_check($field, setEmailMessage, false);
- });
- emailValid = true;
- },
- empty: function($input) {
- // no suggested domain correction, check if the email address looks valid
- var email = $input.val();
- emailValid = isValidEmail(email);
- if (emailValid) {
- setEmailMessage($field, false);
- } else {
- setEmailMessage($field, 'Email address is not valid', true);
- }
- }
- });
- return emailValid;
- }
- // this method will set up email "validation" and error correction.
- // Parameters:
- // $field is the input field to bind to
- // setEmailMessage is a function that takes the input field the error is related to and a message to set.
- // It sets the message then returns the error holder.
- function bindEmailField($field, setEmailMessage){
- function bound_live_email_check () {
- live_email_check($field, setEmailMessage);
- }
- $field.typeWatch({
- callback: bound_live_email_check,
- captureLength: -1,
- highlight: false,
- wait: 500
- });
- }
- var flash = $('#flash');
- function show_flash(message){
- flash.text(message)
- flash.show();
- setTimeout(function() {
- flash.fadeOut();
- },5000);
- }
- function set_flash(message) {
- $.cookie('hbflash', message, {path: '/'});
- }
- $(function(){
- function show_flash(message){
- flash.text(message)
- flash.show();
- setTimeout(function() {
- flash.fadeOut();
- },5000);
- }
- var flashmessage = $.cookie('hbflash');
- if (flashmessage == 'None') {
- flashmessage = '';
- }
- if (flashmessage) {
- show_flash(flashmessage);
- $.cookie('hbflash', 'None', {path: '/'});
- }
- flash.click(function(){
- flash.fadeOut();
- });
- });
- // When CSS4 is widely-supported by all the modern browsers, detecting touch support may not be necessary depending on the usage of the touch.
- $(function(){
- // Class assignment can be used for touch screen problems. Such as :hover.
- if ('ontouchstart' in window) {
- $('body').addClass('touch-support');
- }
- });
- require([
- 'lib/require-domReady',
- 'search/search',
- 'lib/algolia'
- ], function(domReady, SiteSearchView, algoliasearch) {
- var public_key ='AYSZEWDAZ2';
- var search_key ='e287f1da94f143ba1c4a5ec357135623';
- var index_name ='slave_product_query_site_search';
- var algolia_client = algoliasearch(public_key, search_key).initIndex(index_name);
- var options = {
- 'pricing_constants': {
- 'current_country': "DE",
- 'currencies': ["USD", "EUR", "GBP"],
- 'exchange_rates': {"USD": 1.0, "IDR": 13493.003905586687, "BGN": 1.6605535744608593, "ILS": 3.5215656308371539, "GBP": 0.74405671591102052, "DKK": 6.3170317541178465, "CAD": 1.2467311937510612, "JPY": 112.54881983358804, "HUF": 264.10256410256409, "RON": 3.9058413992188825, "MYR": 4.2315333672949569, "SEK": 8.1338087960604515, "SGD": 1.359313975208015, "HKD": 7.8092205807437596, "AUD": 1.2781456953642385, "CHF": 0.97300050942435046, "KRW": 1146.3321446765156, "CNY": 6.6595347257598911, "TRY": 3.5654610290371878, "HRK": 6.3656817795890648, "NZD": 1.3892851078281543, "THB": 33.390219052470705, "EUR": 0.84904058413992189, "NOK": 7.9448972660893187, "RUB": 58.062064866700631, "INR": 65.47376464595007, "MXN": 18.165732722024114, "CZK": 22.109865851587706, "BRL": 3.182543725590083, "PLN": 3.661232806928171, "PHP": 50.940736967227032, "ZAR": 13.515792154865002},
- 'euro_countries': ["BE", "FR", "BG", "DK", "HR", "DE", "HU", "FI", "BA", "NL", "PT", "RS", "LI", "LV", "LT", "LU", "RO", "PL", "VA", "CH", "GR", "EE", "IT", "AL", "CZ", "CY", "AT", "AD", "IE", "ES", "ME", "EUROPE_EURO", "MC", "NO", "MK", "SK", "MT", "SI", "SM", "SE"],
- 'gbp_countries': ["GS", "GG", "SH", "IM", "GB", "UK", "JE", "EUROPE_GBP", "BQ"]
- },
- 'bundle_icon': "https://humblebundle-a.akamaihd.net/static/hashed/40f0b827c9d1c12cfc3dfd358ec39cc34e5dd3a7.jpg",
- 'monthly_icon': "https://humblebundle-a.akamaihd.net/static/hashed/ac7ab70a9a2116ba9fae8feead3ba35fe1c609f5.jpg",
- 'algolia_client': algolia_client
- };
- domReady(function() {
- var searchBars = $('.site-minisearch-view');
- for (var idx = 0; idx < searchBars.length; idx++) {
- options.$el = $(searchBars[idx]);
- new SiteSearchView(options);
- }
- });
- });
- $(document).ready(function() {
- var Dropdown = (function() {
- function Dropdown(options) {
- var that = this;
- this.el = {
- $toggle: options.toggleEl,
- $container: options.containerEl
- };
- this.events = {
- toggleClick: function(event) {
- event.stopPropagation();
- event.preventDefault();
- that.toggleState();
- that.render();
- if (that.visible) {
- return that.bindToDocument();
- } else {
- return that.unbindToDocument();
- }
- },
- hide: function() {
- that.visible = false;
- that.render();
- return that.unbindToDocument();
- }
- };
- if (_.has(options, 'visible')) {
- this.visible = options.visible;
- } else {
- this.visible = true;
- }
- if (options.hiddenClass) {
- this.hiddenClass = options.hiddenClass;
- } else {
- this.hiddenClass = 'is-hidden';
- }
- this.validateOptions().bind().render();
- }
- Dropdown.prototype.validateOptions = function() {
- var messages;
- messages = {
- toggleNotFound: 'Toggle element not found',
- containerNotFound: 'Container element not found'
- };
- if (!this.el.$toggle.length) {
- throw new Error(messages.toggleNotFound);
- }
- if (!this.el.$container.length) {
- throw new Error(messages.containerNotFound);
- }
- return this;
- };
- Dropdown.prototype.remove = function() {
- this.unbind();
- delete this.el;
- delete this.events;
- return this;
- };
- // Ctrl: Event handling
- Dropdown.prototype.bind = function() {
- this.el.$toggle.on('click', this.events.toggleClick);
- return this;
- };
- Dropdown.prototype.unbind = function() {
- this.el.$toggle.off('click', this.events.toggleClick);
- return this;
- };
- Dropdown.prototype.bindToDocument = function() {
- $(document).on('click', this.events.hide);
- return this;
- };
- Dropdown.prototype.unbindToDocument = function() {
- $(document).off('click', this.events.hide);
- return this;
- };
- // Ctrl: State handling
- Dropdown.prototype.toggleState = function() {
- this.visible = !this.visible;
- return this;
- };
- // View: DOM manipulation
- Dropdown.prototype.render = function() {
- if (this.visible) {
- this.$show();
- } else {
- this.$hide();
- }
- return this;
- };
- Dropdown.prototype.$hide = function() {
- if (!this.el.$container.hasClass(this.hiddenClass)) {
- this.el.$container.addClass(this.hiddenClass);
- }
- return this;
- };
- Dropdown.prototype.$show = function() {
- if (this.el.$container.hasClass(this.hiddenClass)) {
- this.el.$container.removeClass(this.hiddenClass);
- }
- return this;
- };
- return Dropdown;
- })();
- $('.navbar-item-dropdown-toggle').each(function() {
- var $toggle = $(this),
- d = new Dropdown({
- toggleEl: $toggle,
- containerEl: $toggle.siblings('.navbar-item-dropdown-container'),
- fadeTime: 200,
- visible: false
- })
- ;
- d.render();
- });
- });
- (function(){
- var TIMER_FREQUENCY = 500;
- var drawsimpleclock = function(t, $element) {
- for (var i=0;i<t.length;i++) {
- var d = '' + Math.floor(t[i]);
- if (d.length == 1) d = '0' + d;
- $element.find('.digit.' + i).text(d);
- }
- };
- var drawclock = function(t, $element) {
- for (var i=0;i<t.length;i++) {
- var d = '' + Math.floor(t[i]);
- if (d.length == 1) d = '0' + d;
- for (var j=0;j<2;j++) {
- $element.find('.c' + (2*i + j)).find('.top-cutter .heading-num').text(d.substr(j,1));
- }
- }
- };
- var count = function(d, element) {
- var s = Math.max((new Date(d - new Date())).valueOf(),0),
- digits = $.map([s / 86400000,s / 3600000 % 24,s / 60000 % 60,s / 1000 % 60],function(a) {return parseInt(a);}),
- $el = $(element);
- if ($el.hasClass('simple-timer')) {
- drawsimpleclock(digits, $el);
- } else {
- drawclock(digits, $el);
- }
- };
- var timers = [];
- var timerIntervals = [];
- window.start_countdown_timer = function(d, element){
- var timer_callback = function(){
- count(d, element);
- };
- timers.push(timer_callback);
- timerIntervals.push(setInterval(timer_callback, TIMER_FREQUENCY));
- timer_callback();
- };
- window.start_countdown_timers = function() {
- $('.js-countdown-timer').each(function(i, el) {
- var $el = $(el);
- var end_time = $el.data('end-time');
- var timer = function() {
- $el.text(render_time_remaining_until(end_time));
- };
- timers.push(timer);
- timerIntervals.push(setInterval(timer, TIMER_FREQUENCY));
- });
- };
- window.pause_timers = function(){
- for(var i = timerIntervals.length - 1; i >= 0; i--){
- clearInterval(timerIntervals.pop());
- }
- }
- window.resume_timers = function(){
- for(var i = 0; i < timers.length; i++){
- timerIntervals.push(setInterval(timers[i], TIMER_FREQUENCY));
- }
- }
- })();
- $(function() {
- function start_timer (element) {
- var timing = $(element).data('timing');
- var enddate = new Date(timing.end * 1000);
- start_countdown_timer(enddate, element);
- };
- var $timers = $('.tabbar .tabbar-timer, .tabs .tab-timer');
- $timers.each(function (i, el) {
- start_timer($(el));
- });
- });
- $(function () {
- var $emailForm = $('#ebook-email-form');
- $emailForm.submit(function(e) {
- console.log($emailForm.attr('action'));
- e.preventDefault();
- $.post(
- $emailForm.attr('action'),
- $emailForm.serialize(),
- function(data) {
- console.log(data);
- data = $.parseJSON(data);
- if (!data.success) {
- $('#send-email-message').text('Error: ' + data.message).css('padding-top','10px').addClass('error');
- } else {
- $('#send-email-message').text(data.message).css('padding-top','10px').removeClass('error');
- }
- }
- );
- });
- $('.js-slide-down-trigger').click(function (event) {
- event.preventDefault();
- $customInstruct = $(event.target);
- $customInstruct.siblings('.slide-down').slideToggle();
- });
- });
- </script>
- </div><!--[if lte IE 9]><style>.site-footer-col, .site-footer-cols, .site-footer-social-widget-list { display: inline-block; }
- .site-footer-col section, .site-footer-cols section, .site-footer-social-widget-list section, .site-footer-col div, .site-footer-cols div, .site-footer-social-widget-list div, .site-footer-col .site-footer-social-widget-list-item, .site-footer-cols .site-footer-social-widget-list-item, .site-footer-social-widget-list .site-footer-social-widget-list-item { display: inline-block; }
- .site-footer { text-align: center; }</style><![endif]-->
- <div class="site-footer-padding"></div>
- <footer class="site-footer-container">
- <div class="site-footer">
- <nav class="site-footer-cols">
- <div class="site-footer-col site-footer-col-links">
- <section>
- <ul class="site-footer-list">
- <li class="site-footer-list-item">
- <a href="http://blog.humblebundle.com" target="_blank">
- Blog
- </a>
- </li>
- <li class="site-footer-list-item">
- <a href="/charities" target="_blank">
- Charities
- </a>
- </li>
- <li class="site-footer-list-item">
- <a href="https://jobs.humblebundle.com" target="_blank">
- Careers
- </a>
- </li>
- </ul>
- </section>
- <section>
- <ul class="site-footer-list">
- <li class="site-footer-list-item">
- <a href="https://support.humblebundle.com" target="_blank">
- Support
- </a>
- </li>
- <li class="site-footer-list-item">
- <a href="/resender" target="_blank">
- Order Resender
- </a>
- </li>
- <li class="site-footer-list-item">
- <a href="/developer" target="_blank">
- Developer
- </a>
- </li>
- </ul>
- </section>
- <section>
- <ul class="site-footer-list">
- <li class="site-footer-list-item">
- <a href="/terms" target="_blank">
- Terms of Service
- </a>
- </li>
- <li class="site-footer-list-item">
- <a href="/privacy" target="_blank">
- Privacy Policy
- </a>
- </li>
- <li class="site-footer-list-item">
- <a href="/publishing" target="_blank">
- Publishing
- </a>
- </li>
- </ul>
- </section>
- </div>
- <div class="site-footer-col site-footer-col-social">
- <ul class="site-footer-social-widget-list">
- <li class="site-footer-social-widget-list-item">
- <a href="https://www.facebook.com/humblebundle" target="_blank">Facebook</a>
- <div class="site-footer-facebook-widget">
- <div id="fb-root"></div>
- <fb:like href="https://www.facebook.com/humblebundle" send="false" layout="button_count" width="90" show_faces="false" font="arial"></fb:like>
- </div>
- </li>
- <li class="site-footer-social-widget-list-item">
- <a href="https://twitter.com/humble" target="_blank">Twitter</a>
- <div class="site-footer-twitter-widget">
- <a href="https://twitter.com/humble" class="twitter-follow-button"
- data-show-count="true" data-show-screen-name="false"
- data-width="150px">Follow</a>
- </div>
- </li>
- <li class="site-footer-social-widget-list-item">
- <a href="https://plus.google.com/+HumbleBundle" target="_blank">Google+</a>
- <div class="site-footer-gplus-widget">
- <div class="g-follow" data-annotation="bubble" data-height="20" data-href="https://plus.google.com/+HumbleBundle" data-rel="author"></div>
- </div>
- </li>
- </ul>
- </div>
- </nav>
- </div>
- </footer><!-- /.site-footer --></body>
- </html>
Add Comment
Please, Sign In to add comment