├── .github ├── labels.json └── workflows │ └── set-default-labels.yml ├── CODE_OF_CONDUCT.md ├── LICENSE ├── index.html ├── mdn-css.css ├── styles.css └── tech-diagram.png /.github/labels.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "good first issue", 4 | "color": "028c46", 5 | "description": "A good issue for newcomers to get started with." 6 | }, 7 | { 8 | "name": "help wanted", 9 | "color": "028c46", 10 | "description": "If you know something about this, we would love your help!" 11 | }, 12 | { 13 | "name": "needs info", 14 | "color": "028c46", 15 | "description": "This needs more information to review or act on." 16 | }, 17 | { 18 | "name": "needs triage", 19 | "color": "028c46", 20 | "description": "Triage needed by staff and/or partners. Automatically applied when an issue is opened." 21 | }, 22 | { 23 | "name": "expert help needed", 24 | "color": "028c46", 25 | "description": "This needs more information from a subject matter expert (SME)." 26 | }, 27 | { 28 | "name": "idle", 29 | "color": "028c46", 30 | "description": "Issues and pull requests with no activity for three months." 31 | }, 32 | { 33 | "name": "on hold", 34 | "color": "028c46", 35 | "description": "Waiting on something else before this can be moved forward." 36 | }, 37 | { 38 | "name": "for later", 39 | "color": "028c46", 40 | "description": "Not planned at this time." 41 | }, 42 | { 43 | "name": "needs content update", 44 | "color": "028c46", 45 | "description": "Needs update to the content to support this change." 46 | }, 47 | { 48 | "name": "chore", 49 | "color": "028c46", 50 | "description": "A routine task." 51 | }, 52 | { 53 | "name": "enhancement", 54 | "color": "028c46", 55 | "description": "Improves an existing feature." 56 | }, 57 | { 58 | "name": "bug", 59 | "color": "c05964", 60 | "description": "Indicates an unexpected problem or unintended behavior." 61 | }, 62 | { 63 | "name": "wontfix", 64 | "color": "c05964", 65 | "description": "Deemed to be outside the scope of the project or would require significant time and resources to fix." 66 | }, 67 | { 68 | "name": "effort: small", 69 | "color": "866dc1", 70 | "description": "Task is a small effort." 71 | }, 72 | { 73 | "name": "effort: medium", 74 | "color": "866dc1", 75 | "description": "Task is a medium effort." 76 | }, 77 | { 78 | "name": "effort: large", 79 | "color": "866dc1", 80 | "description": "Task is large effort." 81 | }, 82 | { 83 | "name": "p0", 84 | "color": "6e8bc1", 85 | "description": "Urgent. We will address this as soon as possible." 86 | }, 87 | { 88 | "name": "p1", 89 | "color": "6e8bc1", 90 | "description": "We will address this soon and will provide capacity from our team for it in the next few releases." 91 | }, 92 | { 93 | "name": "p2", 94 | "color": "6e8bc1", 95 | "description": "We want to address this but may have other higher priority items." 96 | }, 97 | { 98 | "name": "p3", 99 | "color": "6e8bc1", 100 | "description": "We don't have visibility when this will be addressed." 101 | } 102 | ] 103 | -------------------------------------------------------------------------------- /.github/workflows/set-default-labels.yml: -------------------------------------------------------------------------------- 1 | name: set-default-labels 2 | on: [workflow_dispatch] 3 | 4 | jobs: 5 | set-default-labels: 6 | uses: mdn/workflows/.github/workflows/set-default-labels.yml@main 7 | with: 8 | target-repo: "mdn/web-tech-games" 9 | should-delete-labels: true 10 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Community Participation Guidelines 2 | 3 | This repository is governed by Mozilla's code of conduct and etiquette guidelines. 4 | For more details, please read the 5 | [Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/). 6 | 7 | ## How to Report 8 | For more information on how to report violations of the Community Participation Guidelines, please read our '[How to Report](https://www.mozilla.org/about/governance/policies/participation/reporting/)' page. 9 | 10 | 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Web technologies for games 7 | 8 | 9 | 10 | 11 |
12 | 13 |

Summary of web technologies for games

14 | 15 |
16 |

Hosting

17 | 24 |
25 | 26 |
27 |

Network

28 | 34 |
35 | 36 |
37 |

Display

38 | 45 |
46 | 47 |
48 |

Audio

49 | 53 |
54 | 55 |
56 |

Controls

57 | 64 |
65 | 66 |
67 |

Web storage

68 | 74 |
75 | 76 |
77 |

Performance

78 | 83 |
84 | 85 |
86 |

Devtools

87 | 93 |
94 | 95 |
96 |

Compile to Web

97 | 101 |
102 |
103 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /mdn-css.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";/*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */.cta-link:focus,.cta-link:hover,a,a[name]{text-decoration:none}.clear,details{clear:both}ol,ul,ul.option-list{list-style-type:none}#main-header,blockquote{border-image:linear-gradient(to right,#216684,#83d0f2) 10}@font-face{font-family:FontAwesome;src:url("/static/styles/libs/font-awesome/fonts/fontawesome-webfont.90186830c9c5.eot?v=4.1.0");src:url("/static/styles/libs/font-awesome/fonts/fontawesome-webfont.90186830c9c5.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("/static/styles/libs/font-awesome/fonts/fontawesome-webfont.fdf491ce5ff5.woff?v=4.1.0") format("woff"),url("/static/styles/libs/font-awesome/fonts/fontawesome-webfont.4f0022f25672.ttf?v=4.1.0") format("truetype"),url("/static/styles/libs/font-awesome/fonts/fontawesome-webfont.776d58f453c8.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:400;font-style:normal}i[class*=" icon-"],i[class^=icon-]{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-glass:before{content:""}.icon-music:before{content:""}.icon-search:before{content:""}.icon-envelope-alt:before,.icon-envelope-o:before{content:""}.icon-heart:before{content:""}.icon-star:before{content:""}.icon-star-empty:before,.icon-star-o:before{content:""}.icon-user:before{content:""}.icon-film:before{content:""}.icon-th-large:before{content:""}.icon-th:before{content:""}.icon-th-list:before{content:""}.icon-check:before,.icon-ok:before{content:""}.icon-remove:before,.icon-times:before{content:""}.icon-search-plus:before,.icon-zoom-in:before{content:""}.icon-search-minus:before,.icon-zoom-out:before{content:""}.icon-off:before,.icon-power-off:before{content:""}.icon-signal:before{content:""}.icon-cog:before,.icon-gear:before{content:""}.icon-trash-o:before,.icon-trash:before{content:""}.icon-home:before{content:""}.icon-file-alt:before,.icon-file-o:before{content:""}.icon-clock-o:before,.icon-time:before{content:""}.icon-road:before{content:""}.icon-download-alt:before,.icon-download:before{content:""}.icon-arrow-circle-o-down:before,.icon-download-alt:before,.icon-download:before{content:""}.icon-arrow-circle-o-up:before,.icon-upload-alt:before,.icon-upload:before{content:""}.icon-inbox:before{content:""}.icon-play-circle-o:before,.icon-play-circle:before,.icon-play-sign:before{content:""}.icon-repeat:before,.icon-rotate-right:before{content:""}.icon-refresh:before{content:""}.icon-list-alt:before{content:""}.icon-lock:before{content:""}.icon-flag:before{content:""}.icon-headphones:before{content:""}.icon-volume-off:before{content:""}.icon-volume-down:before{content:""}.icon-volume-up:before{content:""}.icon-qrcode:before{content:""}.icon-barcode:before{content:""}.icon-tag:before{content:""}.icon-tags:before{content:""}.icon-book:before{content:""}.icon-bookmark:before{content:""}.icon-print:before{content:""}.icon-camera:before{content:""}.icon-font:before{content:""}.icon-bold:before{content:""}.icon-italic:before{content:""}.icon-text-height:before{content:""}.icon-text-width:before{content:""}.icon-align-left:before{content:""}.icon-align-center:before{content:""}.icon-align-right:before{content:""}.icon-align-justify:before{content:""}.icon-list:before{content:""}.icon-dedent:before,.icon-indent-left:before,.icon-outdent:before{content:""}.icon-indent-right:before,.icon-indent:before{content:""}.icon-facetime-video:before,.icon-video-camera:before{content:""}.icon-image:before,.icon-photo:before,.icon-picture-o:before,.icon-picture:before{content:""}.icon-pencil:before{content:""}.icon-map-marker:before{content:""}.icon-adjust:before{content:""}.icon-tint:before{content:""}.icon-edit:before,.icon-pencil-square-o:before{content:""}.icon-share-square-o:before,.icon-share:before{content:""}.icon-check-square-o:before{content:""}.icon-arrows:before,.icon-move:before{content:""}.icon-step-backward:before{content:""}.icon-fast-backward:before{content:""}.icon-backward:before{content:""}.icon-play:before{content:""}.icon-pause:before{content:""}.icon-stop:before{content:""}.icon-forward:before{content:""}.icon-fast-forward:before{content:""}.icon-step-forward:before{content:""}.icon-eject:before{content:""}.icon-chevron-left:before{content:""}.icon-chevron-right:before{content:""}.icon-plus-circle:before,.icon-plus-sign:before{content:""}.icon-minus-circle:before,.icon-minus-sign:before{content:""}.icon-remove-sign:before,.icon-times-circle:before{content:""}.icon-check-circle:before,.icon-ok-sign:before{content:""}.icon-question-circle:before,.icon-question-sign:before{content:""}.icon-info-circle:before,.icon-info-sign:before{content:""}.icon-crosshairs:before,.icon-screenshot:before{content:""}.icon-remove-circle:before,.icon-times-circle-o:before{content:""}.icon-check-circle-o:before,.icon-ok-circle:before{content:""}.icon-ban-circle:before,.icon-ban:before{content:""}.icon-arrow-left:before{content:""}.icon-arrow-right:before{content:""}.icon-arrow-up:before{content:""}.icon-arrow-down:before{content:""}.icon-mail-forward:before,.icon-share:before{content:""}.icon-expand:before,.icon-resize-full:before{content:""}.icon-compress:before,.icon-resize-small:before{content:""}.icon-plus:before{content:""}.icon-minus:before{content:""}.icon-asterisk:before{content:""}.icon-exclamation-circle:before,.icon-exclamation-sign:before{content:""}.icon-gift:before{content:""}.icon-leaf:before{content:""}.icon-fire:before{content:""}.icon-eye-open:before,.icon-eye:before{content:""}.icon-eye-close:before,.icon-eye-slash:before{content:""}.icon-exclamation-triangle:before,.icon-warning-sign:before,.icon-warning:before{content:""}.icon-plane:before{content:""}.icon-calendar:before{content:""}.icon-random:before{content:""}.icon-comment:before{content:""}.icon-magnet:before{content:""}.icon-chevron-up:before{content:""}.icon-chevron-down:before{content:""}.icon-retweet:before{content:""}.icon-shopping-cart:before{content:""}.icon-folder-close:before,.icon-folder:before{content:""}.icon-folder-open:before{content:""}.icon-arrows-v:before,.icon-resize-vertical:before{content:""}.icon-arrows-h:before,.icon-resize-horizontal:before{content:""}.icon-bar-chart-o:before,.icon-bar-chart:before{content:""}.icon-twitter-sign:before,.icon-twitter-square:before{content:""}.icon-facebook-sign:before,.icon-facebook-square:before{content:""}.icon-camera-retro:before{content:""}.icon-key:before{content:""}.icon-cogs:before,.icon-gears:before{content:""}.icon-comments:before{content:""}.icon-thumbs-o-up:before,.icon-thumbs-up-alt:before{content:""}.icon-thumbs-down-alt:before,.icon-thumbs-o-down:before{content:""}.icon-star-half:before{content:""}.icon-heart-empty:before,.icon-heart-o:before{content:""}.icon-sign-out:before,.icon-signout:before{content:""}.icon-linkedin-sign:before,.icon-linkedin-square:before{content:""}.icon-pushpin:before,.icon-thumb-tack:before{content:""}.icon-external-link:before{content:""}.icon-sign-in:before,.icon-signin:before{content:""}.icon-trophy:before{content:""}.icon-github-sign:before,.icon-github-square:before{content:""}.icon-upload-alt:before,.icon-upload:before{content:""}.icon-lemon-o:before,.icon-lemon:before{content:""}.icon-phone:before{content:""}.icon-check-empty:before,.icon-square-o:before{content:""}.icon-bookmark-empty:before,.icon-bookmark-o:before{content:""}.icon-phone-sign:before,.icon-phone-square:before{content:""}.icon-twitter:before{content:""}.icon-facebook:before{content:""}.icon-github:before{content:""}.icon-unlock:before{content:""}.icon-credit-card:before{content:""}.icon-rss:before{content:""}.icon-hdd-o:before,.icon-hdd:before{content:""}.icon-bullhorn:before{content:""}.icon-certificate:before{content:""}.icon-hand-o-right:before,.icon-hand-right:before{content:""}.icon-hand-left:before,.icon-hand-o-left:before{content:""}.icon-hand-o-up:before,.icon-hand-up:before{content:""}.icon-hand-down:before,.icon-hand-o-down:before{content:""}.icon-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.icon-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.icon-arrow-circle-up:before,.icon-circle-arrow-up:before{content:""}.icon-arrow-circle-down:before,.icon-circle-arrow-down:before{content:""}.icon-globe:before{content:""}.icon-wrench:before{content:""}.icon-tasks:before{content:""}.icon-filter:before{content:""}.icon-briefcase:before{content:""}.icon-arrows-alt:before,.icon-fullscreen:before{content:""}.icon-group:before,.icon-users:before{content:""}.icon-chain:before,.icon-link:before{content:""}.icon-cloud:before{content:""}.icon-beaker:before,.icon-flask:before{content:""}.icon-cut:before,.icon-scissors:before{content:""}.icon-copy:before,.icon-files-o:before{content:""}.icon-paper-clip:before,.icon-paperclip:before{content:""}.icon-floppy-o:before,.icon-save:before{content:""}.icon-sign-blank:before,.icon-square:before{content:""}.icon-bars:before,.icon-navicon:before,.icon-reorder:before{content:""}.icon-list-ul:before{content:""}.icon-list-ol:before{content:""}.icon-strikethrough:before{content:""}.icon-underline:before{content:""}.icon-table:before{content:""}.icon-magic:before{content:""}.icon-truck:before{content:""}.icon-pinterest:before{content:""}.icon-pinterest-sign:before,.icon-pinterest-square:before{content:""}.icon-google-plus-sign:before,.icon-google-plus-square:before{content:""}.icon-google-plus:before{content:""}.icon-money:before{content:""}.icon-caret-down:before{content:""}.icon-caret-up:before{content:""}.icon-caret-left:before{content:""}.icon-caret-right:before{content:""}.icon-columns:before{content:""}.icon-sort:before,.icon-unsorted:before{content:""}.icon-sort-desc:before,.icon-sort-down:before,.icon-sort-up:before{content:""}.icon-sort-asc:before,.icon-sort-down:before,.icon-sort-up:before{content:""}.icon-envelope:before{content:""}.icon-linkedin:before{content:""}.icon-rotate-left:before,.icon-undo:before{content:""}.icon-gavel:before,.icon-legal:before{content:""}.icon-dashboard:before,.icon-tachometer:before{content:""}.icon-comment-alt:before,.icon-comment-o:before{content:""}.icon-comments-alt:before,.icon-comments-o:before{content:""}.icon-bolt:before,.icon-flash:before{content:""}.icon-sitemap:before{content:""}.icon-umbrella:before{content:""}.icon-clipboard:before,.icon-paste:before{content:""}.icon-lightbulb-o:before,.icon-lightbulb:before{content:""}.icon-exchange:before{content:""}.icon-cloud-download:before{content:""}.icon-cloud-upload:before{content:""}.icon-user-md:before{content:""}.icon-stethoscope:before{content:""}.icon-suitcase:before{content:""}.icon-bell-alt:before,.icon-bell-o:before,.icon-bell:before{content:""}.icon-coffee:before{content:""}.icon-cutlery:before,.icon-food:before{content:""}.icon-file-text-alt:before,.icon-file-text-o:before{content:""}.icon-building-o:before,.icon-building:before{content:""}.icon-hospital-o:before,.icon-hospital:before{content:""}.icon-ambulance:before{content:""}.icon-medkit:before{content:""}.icon-fighter-jet:before{content:""}.icon-beer:before{content:""}.icon-h-sign:before,.icon-h-square:before{content:""}.icon-plus-sign-alt:before,.icon-plus-square:before{content:""}.icon-angle-double-left:before,.icon-double-angle-left:before{content:""}.icon-angle-double-right:before,.icon-double-angle-right:before{content:""}.icon-angle-double-up:before,.icon-double-angle-up:before{content:""}.icon-angle-double-down:before,.icon-double-angle-down:before{content:""}.icon-angle-left:before{content:""}.icon-angle-right:before{content:""}.icon-angle-up:before{content:""}.icon-angle-down:before{content:""}.icon-desktop:before{content:""}.icon-laptop:before{content:""}.icon-tablet:before{content:""}.icon-mobile-phone:before,.icon-mobile:before{content:""}.icon-circle-blank:before,.icon-circle-o:before{content:""}.icon-quote-left:before{content:""}.icon-quote-right:before{content:""}.icon-spinner:before{content:""}.icon-circle:before{content:""}.icon-mail-reply:before,.icon-reply:before{content:""}.icon-github-alt:before{content:""}.icon-folder-close-alt:before,.icon-folder-o:before{content:""}.icon-folder-open-alt:before,.icon-folder-open-o:before{content:""}.icon-smile-o:before,.icon-smile:before{content:""}.icon-frown-o:before,.icon-frown:before{content:""}.icon-meh-o:before,.icon-meh:before{content:""}.icon-gamepad:before{content:""}.icon-keyboard-o:before,.icon-keyboard:before{content:""}.icon-flag-alt:before,.icon-flag-o:before{content:""}.icon-flag-checkered:before{content:""}.icon-terminal:before{content:""}.icon-code:before{content:""}.icon-mail-reply-all:before,.icon-reply-all:before{content:""}.icon-star-half-empty:before,.icon-star-half-full:before,.icon-star-half-o:before{content:""}.icon-location-arrow:before{content:""}.icon-crop:before{content:""}.icon-code-fork:before{content:""}.icon-chain-broken:before,.icon-unlink:before{content:""}.icon-question:before{content:""}.icon-info:before{content:""}.icon-exclamation:before{content:""}.icon-superscript:before{content:""}.icon-subscript:before{content:""}.icon-eraser:before{content:""}.icon-puzzle-piece:before{content:""}.icon-microphone:before{content:""}.icon-microphone-off:before,.icon-microphone-slash:before{content:""}.icon-shield:before{content:""}.icon-calendar-empty:before,.icon-calendar-o:before{content:""}.icon-fire-extinguisher:before{content:""}.icon-rocket:before{content:""}.icon-maxcdn:before{content:""}.icon-chevron-circle-left:before,.icon-chevron-sign-left:before{content:""}.icon-chevron-circle-right:before,.icon-chevron-sign-right:before{content:""}.icon-chevron-circle-up:before,.icon-chevron-sign-up:before{content:""}.icon-chevron-circle-down:before,.icon-chevron-sign-down:before{content:""}.icon-html5:before{content:""}.icon-css3:before{content:""}.icon-anchor:before{content:""}.icon-unlock-alt:before{content:""}.icon-bullseye:before{content:""}.icon-ellipsis-h:before,.icon-ellipsis-horizontal:before{content:""}.icon-ellipsis-v:before,.icon-ellipsis-vertical:before{content:""}.icon-rss-sign:before,.icon-rss-square:before{content:""}.icon-play-circle:before,.icon-play-sign:before{content:""}.icon-ticket:before{content:""}.icon-minus-sign-alt:before,.icon-minus-square:before{content:""}.icon-check-minus:before,.icon-collapse-alt:before,.icon-minus-square-o:before{content:""}.icon-level-up:before{content:""}.icon-level-down:before{content:""}.icon-check-sign:before,.icon-check-square:before{content:""}.icon-edit-sign:before,.icon-pencil-square:before{content:""}.icon-external-link-sign:before,.icon-external-link-square:before{content:""}.icon-share-sign:before,.icon-share-square:before{content:""}.icon-compass:before{content:""}.icon-caret-square-o-down:before,.icon-collapse:before,.icon-toggle-down:before{content:""}.icon-caret-square-o-up:before,.icon-collapse-top:before,.icon-toggle-up:before{content:""}.icon-caret-square-o-right:before,.icon-expand:before,.icon-resize-full:before,.icon-toggle-right:before{content:""}.icon-eur:before,.icon-euro:before{content:""}.icon-gbp:before{content:""}.icon-dollar:before,.icon-usd:before{content:""}.icon-inr:before,.icon-rupee:before{content:""}.icon-cny:before,.icon-jpy:before,.icon-rmb:before,.icon-yen:before{content:""}.icon-cny:before,.icon-rouble:before,.icon-rub:before,.icon-ruble:before{content:""}.icon-krw:before,.icon-won:before{content:""}.icon-bitcoin:before,.icon-btc:before{content:""}.icon-file:before{content:""}.icon-file-text:before{content:""}.icon-sort-alpha-asc:before,.icon-sort-by-alphabet:before{content:""}.icon-sort-alpha-desc:before,.icon-sort-by-alphabet-alt:before{content:""}.icon-sort-amount-asc:before,.icon-sort-by-attributes:before{content:""}.icon-sort-amount-desc:before,.icon-sort-by-attributes-alt:before{content:""}.icon-sort-by-order:before,.icon-sort-numeric-asc:before{content:""}.icon-sort-by-order-alt:before,.icon-sort-numeric-desc:before{content:""}.icon-thumbs-up:before{content:""}.icon-thumbs-down:before{content:""}.icon-youtube-sign:before,.icon-youtube-square:before{content:""}.icon-youtube:before{content:""}.icon-xing:before{content:""}.icon-xing-sign:before,.icon-xing-square:before{content:""}.icon-youtube-play:before{content:""}.icon-dropbox:before{content:""}.icon-stack-overflow:before,.icon-stackexchange:before{content:""}.icon-instagram:before{content:""}.icon-flickr:before{content:""}.icon-adn:before{content:""}.icon-bitbucket:before{content:""}.icon-bitbucket-sign:before,.icon-bitbucket-square:before{content:""}.icon-tumblr:before{content:""}.icon-tumblr-sign:before,.icon-tumblr-square:before{content:""}.icon-long-arrow-down:before{content:""}.icon-long-arrow-up:before{content:""}.icon-long-arrow-left:before{content:""}.icon-long-arrow-right:before{content:""}.icon-apple:before{content:""}.icon-windows:before{content:""}.icon-android:before{content:""}.icon-linux:before{content:""}.icon-dribbble:before{content:""}.icon-skype:before{content:""}.icon-foursquare:before{content:""}.icon-trello:before{content:""}.icon-female:before{content:""}.icon-male:before{content:""}.icon-gittip:before{content:""}.icon-sun-o:before,.icon-sun:before{content:""}.icon-moon-o:before,.icon-moon:before{content:""}.icon-archive:before{content:""}.icon-bug:before{content:""}.icon-vk:before{content:""}.icon-weibo:before{content:""}.icon-renren:before{content:""}.icon-pagelines:before{content:""}.icon-stack-exchange:before{content:""}.icon-arrow-circle-o-right:before{content:""}.icon-arrow-circle-o-left:before{content:""}.icon-caret-square-o-left:before,.icon-toggle-left:before{content:""}.icon-dot-circle-o:before{content:""}.icon-wheelchair:before{content:""}.icon-vimeo-square:before{content:""}.icon-try:before,.icon-turkish-lira:before{content:""}.icon-plus-square-o:before{content:""}.icon-space-shuttle:before{content:""}.icon-slack:before{content:""}.icon-envelope-square:before{content:""}.icon-wordpress:before{content:""}.icon-openid:before{content:""}.icon-bank:before,.icon-institution:before,.icon-university:before{content:""}.icon-graduation-cap:before,.icon-mortar-board:before{content:""}.icon-yahoo:before{content:""}.icon-google:before{content:""}.icon-reddit:before{content:""}.icon-reddit-square:before{content:""}.icon-stumbleupon-circle:before{content:""}.icon-stumbleupon:before{content:""}.icon-delicious:before{content:""}.icon-digg:before{content:""}.icon-pied-piper-square:before,.icon-pied-piper:before{content:""}.icon-pied-piper-alt:before{content:""}.icon-drupal:before{content:""}.icon-joomla:before{content:""}.icon-language:before{content:""}.icon-fax:before{content:""}.icon-building:before{content:""}.icon-child:before{content:""}.icon-paw:before{content:""}.icon-spoon:before{content:""}.icon-cube:before{content:""}.icon-cubes:before{content:""}.icon-behance:before{content:""}.icon-behance-square:before{content:""}.icon-steam:before{content:""}.icon-steam-square:before{content:""}.icon-recycle:before{content:""}.icon-automobile:before,.icon-car:before{content:""}.icon-cab:before,.icon-taxi:before{content:""}.icon-tree:before{content:""}.icon-spotify:before{content:""}.icon-deviantart:before{content:""}.icon-soundcloud:before{content:""}.icon-database:before{content:""}.icon-file-pdf-o:before{content:""}.icon-file-word-o:before{content:""}.icon-file-excel-o:before{content:""}.icon-file-powerpoint-o:before{content:""}.icon-file-image-o:before,.icon-file-photo-o:before,.icon-file-picture-o:before{content:""}.icon-file-archive-o:before,.icon-file-zip-o:before{content:""}.icon-file-audio-o:before,.icon-file-sound-o:before{content:""}.icon-file-movie-o:before,.icon-file-video-o:before{content:""}.icon-file-code-o:before{content:""}.icon-vine:before{content:""}.icon-codepen:before{content:""}.icon-jsfiddle:before{content:""}.icon-life-bouy:before,.icon-life-ring:before,.icon-life-saver:before,.icon-support:before{content:""}.icon-circle-o-notch:before{content:""}.icon-ra:before,.icon-rebel:before{content:""}.icon-empire:before,.icon-ge:before{content:""}.icon-git-square:before{content:""}.icon-git:before{content:""}.icon-hacker-news:before{content:""}.icon-tencent-weibo:before{content:""}.icon-qq:before{content:""}.icon-wechat:before,.icon-weixin:before{content:""}.icon-paper-plane:before,.icon-send:before{content:""}.icon-paper-plane-o:before,.icon-send-o:before{content:""}.icon-history:before{content:""}.icon-circle-thin:before{content:""}.icon-header:before{content:""}.icon-paragraph:before{content:""}.icon-sliders:before{content:""}.icon-share-alt:before{content:""}.icon-share-alt-square:before{content:""}.icon-bomb:before{content:""}.offscreen,.only-icon span{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.highlight-spanned.highlight,.text-content h2.highlight-spanned{padding:0;background-color:inherit;color:inherit}.highlight-spanned.highlight a,.text-content h2.highlight-spanned a{color:inherit}.highlight,.highlight .highlight-span,.text-content h2,.text-content h2 .highlight-span{padding:0 4px;background-color:#333;color:#fff;font-weight:400;line-height:1.25;-webkit-box-decoration-break:clone;box-decoration-break:clone}.cta-link,pre code{font-weight:inherit}.highlight .highlight-span a,.highlight a,.text-content h2 .highlight-span a,.text-content h2 a{color:#83d0f2}.cta-link,a,a code,summary{color:#387894}.cta-link{-moz-appearance:none;-webkit-appearance:none;appearance:none;font-size:inherit;letter-spacing:inherit;line-height:inherit;background-color:transparent;text-transform:inherit;border:0;position:relative;box-sizing:border-box;display:inline-block;border-bottom:2px solid;padding:10px 30px 10px 0;text-align:left}h1,h2{line-height:1}aside,pre{background:#eee}code,kbd{background-color:#eee}html,main{background:#fff}code,html,kbd,pre{color:#333}article,aside,audio,canvas,details,figcaption,figure,figure img,footer,header,hgroup,main,nav,section,summary,video{display:block}html[dir=rtl] .cta-link{padding:10px 0 10px 30px;text-align:right}.cta-link:after{position:absolute;bottom:10px;right:0;content:"";font-family:fontAwesome;transition:margin .1s ease-in-out}.center,sup{position:relative}html[dir=rtl] .cta-link:after{left:0;right:auto;content:""}.cta-link:focus:after,.cta-link:hover:after{margin-right:-4px}html[dir=rtl] .cta-link:focus:after,html[dir=rtl] .cta-link:hover:after{margin-left:-4px;margin-right:0}.cta-link i[class^=icon-]{margin-top:4px}@font-face{font-family:'Open Sans';src:url("../../fonts/OpenSans-Regular-webfont.3f642fa3ea74.woff2") format("woff2"),url("../../fonts/OpenSans-Regular-webfont.ac327c4db628.woff") format("woff");font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url("../../fonts/OpenSans-Semibold-webfont.b25e8a5a61a4.woff2") format("woff2"),url("../../fonts/OpenSans-Semibold-webfont.56bfcae65300.woff") format("woff");font-weight:700;font-style:normal}@font-face{font-family:'Open Sans';src:url("../../fonts/OpenSans-Italic-webfont.47c24d65c5a6.woff2") format("woff2"),url("../../fonts/OpenSans-Italic-webfont.525074686dfb.woff") format("woff");font-weight:400;font-style:italic}a,abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0}aside,details{margin-left:20px}address,caption,cite,code,dfn,th,var{font-style:inherit;font-weight:inherit}pre,pre code{font-style:normal}a img{border:0}body{line-height:1.5;font-family:"Open Sans",arial,x-locale-body,sans-serif}html[data-ffo-opensans=false]:not(.no-js) body{font-family:arial,x-locale-body,sans-serif}aside{width:48.5%;float:right;border:1px solid #eee;padding:20px;margin-bottom:20px}aside>:last-child{margin-bottom:0;padding-bottom:0}main{min-height:200px}details{margin-bottom:20px}html[dir=rtl] details{margin-right:20px;margin-left:0}summary{margin-left:-20px;cursor:pointer}html[dir=rtl] summary{margin-right:-20px;margin-left:0}summary h1,summary h2,summary h3,summary h4,summary h5,summary h6{display:inline-block;margin-bottom:0;color:inherit}summary::-webkit-details-marker{display:none}summary:before{content:"▶";display:inline-block;width:20px;color:#3f87a6}html[dir=rtl] summary:before{content:"◀"}details[open]>summary{margin-bottom:10px}h2,hr{margin:20px 0}h3,h4{margin:20px 0 10px}details[open]>summary:before{content:'\25BC'}hr{border-top:1px solid #333;height:0}@media print{header{display:none}}h1{font-size:48px;font-size:3rem;font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}html[data-zillaslab=false]:not(.no-js) h1{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}h2{font-size:24px;font-size:1.5rem;font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}html[data-zillaslab=false]:not(.no-js) h2{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}h3{font-size:22px;font-size:1.375rem;font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}html[data-zillaslab=false]:not(.no-js) h3{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}h4{font-size:20px;font-size:1.25rem;font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}html[data-zillaslab=false]:not(.no-js) h4{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}h5{margin:10px 0;font-size:16px;font-size:1rem;font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}html[data-zillaslab=false]:not(.no-js) h5{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}p{margin-bottom:24px}blockquote{box-sizing:border-box;max-width:42rem;font-size:22px;font-size:1.375rem;border:5px solid #83d0f2;border-width:5px 0;padding:20px 0;margin-bottom:20px}blockquote>p:last-child{margin-bottom:0}a:active,a:focus,a:hover{text-decoration:underline}a i[class^=icon-]:before{cursor:pointer}a[name]{color:inherit}abbr[title]{cursor:help;text-decoration:dotted underline}sup{top:-.15em;vertical-align:top}code{border-radius:2px;box-decoration-break:clone;font-family:consolas,"Liberation Mono",courier,monospace;padding:2px 5px;word-wrap:break-word}pre{font-size:16px;font-size:1rem;line-height:19px;border:0;padding:15px;overflow:auto;margin:0 0 20px;font-family:consolas,monaco,"Andale Mono",monospace}pre code{font-family:inherit}kbd{border-radius:3px;border:1px solid #b4b4b4;box-shadow:0 1px 1px rgba(0,0,0,.2),0 2px 0 0 rgba(255,255,255,.7) inset;display:inline-block;font-family:consolas,"Liberation Mono",courier,monospace;font-size:.85em;font-weight:700;line-height:1;padding:2px 4px;white-space:nowrap}var{font-style:italic}button,input,optgroup,option,select,textarea{font-size:16px;font-size:1rem;font-family:"Open Sans",arial,x-locale-body,sans-serif;font-style:normal;font-weight:400}html[data-ffo-opensans=false]:not(.no-js) button,html[data-ffo-opensans=false]:not(.no-js) input,html[data-ffo-opensans=false]:not(.no-js) optgroup,html[data-ffo-opensans=false]:not(.no-js) option,html[data-ffo-opensans=false]:not(.no-js) select,html[data-ffo-opensans=false]:not(.no-js) textarea{font-family:arial,x-locale-body,sans-serif}input[type=email],input[type=password],input[type=search],input[type=text],input[type=url],textarea{color:#4c4c4c;background:#fff;border:2px solid #9b9b9b;padding:6px 8px;font-weight:700}input[type=email]::-webkit-input-placeholder,input[type=password]::-webkit-input-placeholder,input[type=search]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder,input[type=url]::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a0a0a0}input[type=email]:-ms-input-placeholder,input[type=password]:-ms-input-placeholder,input[type=search]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#a0a0a0}input[type=email]::-moz-placeholder,input[type=password]::-moz-placeholder,input[type=search]::-moz-placeholder,input[type=text]::-moz-placeholder,input[type=url]::-moz-placeholder,textarea::-moz-placeholder{color:#a0a0a0}input[type=email]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder,textarea::placeholder{color:#a0a0a0}textarea{color:#333;font-weight:400}input[type=search]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}label{cursor:pointer}.disabled,[disabled]{pointer-events:none;cursor:not-allowed;opacity:.5}.button,button,input[type=submit],input[type=button]{cursor:pointer;display:inline-block;line-height:1;font-weight:700;letter-spacing:normal;border:2px solid #9b9b9b;background-color:#fff;padding:5px 11px;color:#4c4c4c;text-decoration:none}.button.neutral,button.neutral,input[type=submit].neutral,input[type=button].neutral{border-color:#3f87a6;color:#29627e}.button.negative,button.negative,input[type=submit].negative,input[type=button].negative{border-color:#e66465;color:#b65456}.button.positive,button.positive,input[type=submit].positive,input[type=button].positive{border-color:#4d9f0c;color:#3a7408}.button.transparent,button.transparent,input[type=submit].transparent,input[type=button].transparent{background-color:transparent;border:0;padding-left:0;padding-right:0}.button.link,button.link,input[type=submit].link,input[type=button].link{-moz-appearance:none;-webkit-appearance:none;appearance:none;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;background-color:transparent;text-transform:inherit;border:0;padding:0;color:#387894}.title,caption{font-weight:700}.button.link:focus,.button.link:hover,button.link:focus,button.link:hover,input[type=submit].link:focus,input[type=submit].link:hover,input[type=button].link:focus,input[type=button].link:hover{text-decoration:underline}.button:active,.button:focus,.button:hover,.subnav .toggle-container .toggleable .toggler,.subnav a,.title{text-decoration:none}.button::-moz-focus-inner,button::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=button]::-moz-focus-inner{margin-top:-1px;margin-bottom:-1px}.button i[class^=icon-],button i[class^=icon-],input[type=submit] i[class^=icon-],input[type=button] i[class^=icon-]{font-size:17px;font-size:1.0625rem}.button i[class^=icon-]:before,button i[class^=icon-]:before,input[type=submit] i[class^=icon-]:before,input[type=button] i[class^=icon-]:before{cursor:pointer}.button:not(.only-icon) i[class^=icon-],button:not(.only-icon) i[class^=icon-],input[type=submit]:not(.only-icon) i[class^=icon-],input[type=button]:not(.only-icon) i[class^=icon-]{float:left;margin-right:10px}html[dir=rtl] .button:not(.only-icon) i[class^=icon-],html[dir=rtl] button:not(.only-icon) i[class^=icon-],html[dir=rtl] input[type=submit]:not(.only-icon) i[class^=icon-],html[dir=rtl] input[type=button]:not(.only-icon) i[class^=icon-]{float:right;margin-left:10px;margin-right:0}table{margin-bottom:24px}caption,th{text-align:left}html[dir=rtl] caption,html[dir=rtl] th{text-align:right}iframe,img,video{max-width:100%}img,video{height:auto!important}i[class^=icon-]{cursor:default;display:inline-block}i[class^=icon-]:before{display:inline-block;text-decoration:none}label i[class^=icon-]:first-child{margin-left:0;margin-right:10px}html[dir=rtl] label i[class^=icon-]:first-child{margin-left:10px;margin-right:0}.clear:after{content:' ';clear:both;display:table}.align-center{text-align:center}.center{margin:0 auto;max-width:87.4375em;padding-left:15px;padding-right:15px}main>.center{padding-top:30px;padding-bottom:30px}@media all and (min-width:47.9385em){.center{padding-left:24px;padding-right:24px}}.wiki-main-content .center{padding-left:0;padding-right:0}@media print{.center{padding-left:0;padding-right:0}}.hidden{display:none}.translate-rendered .hidden,body[contenteditable] .hidden,html.cke_panel_container .hidden{position:relative;display:block;border:2px dotted #000;padding:3px}.translate-rendered .hidden:before,body[contenteditable] .hidden:before,html.cke_panel_container .hidden:before{font-size:12px;font-size:.75rem;font-family:Helvetica,arial,sans-serif;content:'hidden';position:absolute;top:-17px;left:-2px;z-index:10;display:block;padding:0 2px;background:#000;color:#fff}.title{color:#333;display:block}.smaller{font-size:14px;font-size:.875rem}.larger{font-size:17px;font-size:1.0625rem}.grid-padding{padding:20px}.heading-link{font-style:italic;font-size:16px;font-size:1rem;font-weight:400;display:inline-block;margin:0 40px}@media all and (max-width:47.9375em){h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{word-break:break-all}.heading-link{margin:8px 0 0;display:block}}.fixed{position:fixed;top:0;z-index:10;overflow-y:auto}.media,.media-body,.notification,.notification-message{overflow:hidden;zoom:1}.media-side,.notification-img{float:left;margin-right:10px}html[dir=rtl] .media-side,html[dir=rtl] .notification-img{float:right;margin-left:10px;margin-right:0}.media-side img,.notification-img img{display:block}.media-reverse .media-side,.media-reverse .notification-img{float:right;margin-left:10px}html[dir=rtl] .media-reverse .media-side,html[dir=rtl] .media-reverse .notification-img{float:left;margin-right:10px;margin-left:0}@media all and (max-width:47.9375em){.media-mobile-stack .media-body,.media-mobile-stack .media-side,.media-mobile-stack .notification-img,.media-mobile-stack .notification-message{float:none;margin-left:0;margin-right:0}.media-mobile-stack.media-reverse{display:table;caption-side:top;width:100%}.media-mobile-stack.media-reverse .media-side,.media-mobile-stack.media-reverse .notification-img{display:table-cell}.media-mobile-stack.media-reverse .media-body,.media-mobile-stack.media-reverse .notification-message{display:table-caption}}@media all and (max-width:29.9375em){.media-small-mobile-stack .media-body,.media-small-mobile-stack .media-side,.media-small-mobile-stack .notification-img,.media-small-mobile-stack .notification-message{float:none;margin-left:0;margin-right:0}.media-small-mobile-stack.media-reverse{display:table;caption-side:top;width:100%}.media-small-mobile-stack.media-reverse .media-side,.media-small-mobile-stack.media-reverse .notification-img{display:table-cell}.media-small-mobile-stack.media-reverse .media-body,.media-small-mobile-stack.media-reverse .notification-message{display:table-caption}}.only-icon i[class^=icon-]{margin-top:-1px!important}.toggler{position:relative}.toggler i[class^=icon-]{position:absolute;top:3px;right:10px;color:#333}html[dir=rtl] .toggler i[class^=icon-]{left:10px;right:auto}.toggler .icon-caret-right{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}html[dir=rtl] .toggler .icon-caret-right{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.toggle-container.closed{display:none}.subnav .toggler,.subnav>ol>li>a{padding:20px 40px 20px 20px;border-bottom:1px dotted #d4dde4;text-transform:uppercase;display:block}.subnav ol ol{display:none}.no-js .subnav ol ol{display:block}.subnav .toggleable.current,.subnav>ol>li.current{background:#eee}.subnav i[class^=icon-]{top:23px;right:20px}html[dir=rtl] .subnav i[class^=icon-]{left:20px;right:auto}.subnav .toggle-container a{font-size:14px;font-size:.875rem;display:block;padding:6px 20px}.subnav .toggle-container .toggleable{background:#e9eef1}.subnav .toggle-container .toggleable .toggler{color:#333;display:block;font-weight:400;padding-top:10px;padding-bottom:10px;border:0}.subnav .toggle-container .toggleable .toggler i{top:10px}.subnav .toggle-container .toggleable .toggle-container a{padding-left:30px}.subnav .toggle-container li.current>a:not(.toggler){position:relative;color:#fff;background-color:#333}.subnav .toggle-container li.current>a:not(.toggler):after,.subnav .toggle-container li.current>a:not(.toggler):before{content:' ';height:0;position:absolute;width:0;border:10px solid transparent}.subnav .toggle-container li.current>a:not(.toggler):before{border-right-color:#fff;position:absolute;top:20%;right:0}.subnav a:active,.subnav a:focus,.subnav a:hover{text-decoration:underline}.notification{border-radius:2px;border-style:solid;border-width:2px;margin-bottom:20px;padding:10px;position:relative}body>.notification{margin-bottom:0}.text-content .notification{box-sizing:border-box;max-width:42rem}.notification.closed{display:none}.notification.clickable{cursor:pointer}.notification button.close{background:0 0;border:0;display:block;padding:2px;position:absolute;top:0;right:0}.notification{background-color:#eee;border-color:#696969;color:#333}.notification .notification-button{background-color:#696969;color:#333}.notification .notification-button:focus,.notification .notification-button:hover{background:0 0;text-decoration:none}.notification .notification-img i{color:#4c4c4c}.notification button.close{color:#696969}.notification button.close:focus,.notification button.close:hover{color:#4c4c4c}.notification.info{background-color:#e4f0f5;border-color:#3f87a6;color:#333}.notification.info .notification-button{background-color:#3f87a6;color:#333}.notification.info .notification-button:focus,.notification.info .notification-button:hover{background:0 0;text-decoration:none}.notification.info .notification-img i{color:#29627e}.notification.info button.close{color:#3f87a6}.notification.info button.close:focus,.notification.info button.close:hover{color:#29627e}.notification.success{background-color:#ebf8e1;border-color:#4d9f0c;color:#333}.notification.success .notification-button{background-color:#4d9f0c;color:#333}.notification.success .notification-button:focus,.notification.success .notification-button:hover{background:0 0;text-decoration:none}.notification.success .notification-img i{color:#3a7408}.notification.success button.close{color:#4d9f0c}.notification.success button.close:focus,.notification.success button.close:hover{color:#3a7408}.notification.warning{background-color:#fff3d4;border-color:#f6b73c;color:#333;border-width:2px;font-style:normal}.notification.warning .notification-button{background-color:#f6b73c;color:#333}.notification.warning .notification-button:focus,.notification.warning .notification-button:hover{background:0 0;text-decoration:none}.notification.warning .notification-img i{color:#b28529}.notification.warning button.close{color:#f6b73c}.notification.warning button.close:focus,.notification.warning button.close:hover{color:#b28529}.notification.warning a,.notification.warning a:focus,.notification.warning a:hover,.notification.warning a:visited{border-bottom:0;color:#387894;text-decoration:none}.notification.warning a:focus,.notification.warning a:hover{text-decoration:underline}.notification.error{background-color:#ffe7e8;border-color:#e66465;color:#333}.notification.error .notification-button{background-color:#e66465;color:#333}.notification.error .notification-button:focus,.notification.error .notification-button:hover{background:0 0;text-decoration:none}.notification.error .notification-img i{color:#b65456}.notification.error button.close{color:#e66465}.notification.error button.close:focus,.notification.error button.close:hover{color:#b65456}.notification-message :first-child{margin-top:0}.notification-img i[class^=icon-]{font-size:22px;margin:0}.notification-button{border:1px solid;border-radius:2px;display:inline-block;line-height:1;margin:5px 5px 0 0;padding:2px 5px 3px;text-transform:none}.notification.warning .notification-button{border:1px solid;margin:5px 5px 0 0;padding:2px 5px 3px}.notification-tray{position:fixed;top:10px;right:10px;z-index:999999;width:300px;font-size:14px}.notification-tray .notification{margin-bottom:8px}@media print{.notification-tray{display:none}}ul.option-list li:after,ul.option-list:after{content:' ';clear:both;display:table}ul.option-list{clear:both;float:left;max-width:100%;overflow:hidden;padding-left:20px}html[dir=rtl] ul.option-list{padding-right:20px;padding-left:0}ul.option-list li{clear:both}.option-list-options{float:right;margin-left:20px;text-align:right}html[dir=rtl] .option-list-options{float:left;margin-right:20px;margin-left:20px;text-align:left}@media all and (max-width:47.9375em){.option-list-options{width:100%}}.text-content dl,.text-content ol,.text-content p,.text-content ul{box-sizing:border-box;max-width:42rem}.text-content pre,.text-content table{box-sizing:border-box;width:100%;max-width:100%}.text-content pre dl,.text-content pre p,.text-content pre ul,.text-content table dl,.text-content table p,.text-content table ul{max-width:100%}.text-content table{border-collapse:collapse;border:solid #e0e0dc;border-width:1px 0 0 1px}.text-content table.standard-table:not(.learn-box){border:2px solid #fff}.text-content table.standard-table:not(.learn-box) td{background-color:#f9fafb;background-color:rgba(212,221,228,.15);border:2px solid #fff;box-shadow:inset 0 -1px 0 0 rgba(212,221,228,.5)}.text-content table.standard-table:not(.learn-box):not(.nostripe) tr:nth-child(odd) td{background-color:#f4f7f8;background-color:rgba(212,221,228,.25)}.text-content table.standard-table:not(.learn-box) td.header,.text-content table.standard-table:not(.learn-box) th{border:2px solid #fff;border-bottom:2px solid #d4dde4;background:#eaeef2;background:rgba(212,221,228,.5);padding:2px 8px 4px;font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif;font-weight:700}html[data-zillaslab=false]:not(.no-js) .text-content table.standard-table:not(.learn-box) td.header,html[data-zillaslab=false]:not(.no-js) .text-content table.standard-table:not(.learn-box) th{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}.text-content table.standard-table:not(.learn-box).fullwidth{width:100%}.text-content table.fullwidth-table{background:#fff;border-width:1px;border-style:solid;border-color:#eaeef2;border-color:rgba(212,221,228,.5);margin-bottom:20px;width:100%}.text-content table.fullwidth-table td{border:1px solid #ccc;padding:5px;text-align:left;vertical-align:top}html[dir=rtl] .text-content table.fullwidth-table td{text-align:right}.text-content table.fullwidth-table td.header,.text-content table.fullwidth-table th{background:#eaeef2;background:rgba(212,221,228,.5);border:1px solid #d4dde4;padding:5px}.text-content td,.text-content th{border:solid #e0e0dc;border-width:0 1px 1px 0;padding:6px 8px;text-align:left}html[dir=rtl] .text-content td,html[dir=rtl] .text-content th{text-align:right}.text-content thead th{background:#eaeef2;background:rgba(212,221,228,.5)}.text-content ul{list-style:disc}.text-content ul ul{list-style:circle}.text-content ol ol,.text-content ol ul,.text-content ul ol,.text-content ul ul{margin-bottom:0;padding-top:6px}.text-content ol,.text-content ul{padding-left:40px;margin-bottom:24px}html[dir=rtl] .text-content ol,html[dir=rtl] .text-content ul{padding-right:40px;padding-left:0}.text-content ol.no-bullets,.text-content ul.no-bullets{list-style-type:none;padding-left:0}html[dir=rtl] .text-content ol.no-bullets,html[dir=rtl] .text-content ul.no-bullets{padding-right:0;padding-left:0}.text-content ol{list-style-type:decimal}.text-content li{margin-bottom:6px}.text-content>li:last-child{padding-bottom:0}.text-content dt{font-style:normal;font-weight:700}.text-content dd{margin-bottom:24px;padding-left:20px}html[dir=rtl] .text-content dd{padding-right:20px;padding-left:0}.text-content span.alllinks{display:block;text-align:right}.text-content img.lwrap{padding:0 20px 10px 0}.text-content img.rwrap{padding:0 0 10px 20px}.text-content .licenseblock,.text-content .originaldocinfo{box-sizing:border-box;max-width:42rem;overflow:hidden;margin-bottom:20px;padding:10px;background:#eee;border:2px solid #696969;font-size:14px;font-size:.875rem}.text-content .licenseblock>:last-child,.text-content .originaldocinfo>:last-child,div.bug>:last-child{margin-bottom:0;padding-bottom:0}html[dir=rtl] .text-content .licenseblock,html[dir=rtl] .text-content .originaldocinfo{border-right-width:5px;border-left-width:0;border-right-style:solid;border-left-style:none}.text-content .originaldocinfo h2{font-size:16px;font-size:1rem}ul.directory-tree{padding-left:0}html[dir=rtl] ul.directory-tree{padding-right:0;padding-left:0}ul.directory-tree,ul.directory-tree ul{margin-left:0;list-style:none}html[dir=rtl] ul.directory-tree,html[dir=rtl] ul.directory-tree ul{margin-right:0;margin-left:0}ul.directory-tree ul{padding-left:28px}html[dir=rtl] ul.directory-tree ul{padding-right:28px;padding-left:0}ul.directory-tree ul li{position:relative}ul.directory-tree ul li:after,ul.directory-tree ul li:before{content:'';position:absolute;left:-15px;display:block}html[dir=rtl] ul.directory-tree ul li:after,html[dir=rtl] ul.directory-tree ul li:before{right:-15px;left:auto}ul.directory-tree ul li:before{top:0;height:.75em;width:10px;border-bottom:1px solid #696969;border-left:1px solid #696969}html[dir=rtl] ul.directory-tree ul li:before{border-right:1px solid #696969;border-left:none}ul.directory-tree ul li:after{bottom:-7px;height:100%;border-left:1px solid #696969}html[dir=rtl] ul.directory-tree ul li:after{border-right:1px solid #696969;border-left:none}.ui-helper-hidden-accessible,ul.directory-tree ul li:last-child:after{display:none}.ui-autocomplete{background:#fff;border:1px solid #e3e3e3;border-top:0;cursor:default;padding-top:2px;position:absolute;box-shadow:1px 1px 1px rgba(0,0,0,.08)}.callout-box,.global-notice{position:relative;background:#eee}.ui-menu{float:left;list-style:none;margin:0;padding:0}.ui-menu .ui-menu-item{clear:left;float:left;margin:0;padding:0;width:100%;zoom:1}.ui-menu .ui-menu-item a{display:block;line-height:1.5;text-decoration:none;zoom:1}.ui-menu .ui-state-active,.ui-menu .ui-state-focus,.ui-menu .ui-state-highlight,.ui-menu .ui-state-hover{background:#eee}div.bug{font-style:italic;overflow:hidden}div.bug pre{color:#333}.callout-box{width:31.33333%;float:right;margin:0 0 20px 20px;box-sizing:border-box;border:1px solid #f1f1f1;padding:20px;text-align:center;min-width:200px;z-index:2}body[contenteditable] .threecolumns,body[contenteditable] .twocolumns{border:2px dotted #adf;column-rule:2px dotted #adf}html[dir=rtl] .callout-box{float:left;margin:0 20px 10px 0}@media all and (max-width:29.9375em){.callout-box{width:100%;margin:0}html[dir=rtl] .callout-box{margin:0}.callout-box,html[dir=rtl] .callout-box{margin-bottom:20px}}html[dir=rtl] .callout-box{margin-bottom:20px}p.footnote{font-size:14px;font-size:.875rem;font-style:italic;color:#696969}.twocolumns{-moz-column-count:2;-webkit-column-count:2;column-count:2;-moz-column-gap:20px;-webkit-column-gap:20px;column-gap:20px}.threecolumns{-moz-column-count:3;-webkit-column-count:3;column-count:3;-moz-column-gap:20px;-webkit-column-gap:20px;column-gap:20px}.cols-2,.cols-3{-moz-column-gap:10px;-webkit-column-gap:10px}@media all and (max-width:29.9375em){.threecolumns,.twocolumns{-moz-column-count:1;-webkit-column-count:1;column-count:1}}.readable-line-length{max-width:42rem}@media all and (max-width:47.9375em){.column-1,.column-10,.column-11,.column-12,.column-2,.column-3,.column-4,.column-5,.column-6,.column-7,.column-8,.column-9,.column-all,.column-container>[class^=column-],.column-half,.column-quarter,.column-strip,.column-third{clear:both}.column-10:after,.column-11:after,.column-12:after,.column-1:after,.column-2:after,.column-3:after,.column-4:after,.column-5:after,.column-6:after,.column-7:after,.column-8:after,.column-9:after,.column-all:after,.column-container>[class^=column-]:after,.column-half:after,.column-quarter:after,.column-strip:after,.column-third:after{content:' ';clear:both;display:table}}@media all and (min-width:47.9385em){.column-container{clear:both}.column-container:after{content:' ';clear:both;display:table}.column-container>[class^=column-]{margin-right:3%;float:left;min-height:1px}.column-container.column-container-reverse>[class^=column-],html[dir=rtl] .column-container>[class^=column-]{float:right}.column-container>[class^=column-]:first-child{margin-right:3%}.column-container>[class^=column-]:last-child,html[dir=rtl] .column-container>[class^=column-]:first-child{margin-right:0}html[dir=rtl] .column-container>[class^=column-]:last-child{margin-right:3%}html[dir=rtl] .column-container.column-container-reverse>[class^=column-]{float:left}.column-container.column-container-reverse>[class^=column-]:first-child{margin-right:0}.column-container.column-container-reverse>[class^=column-]:last-child,html[dir=rtl] .column-container.column-container-reverse>[class^=column-]:first-child{margin-right:3%}html[dir=rtl] .column-container.column-container-reverse>[class^=column-]:last-child{margin-right:0}.column-closed{display:none}.column-1{width:5.58333%}.column-2{width:14.16667%}.column-3,.column-quarter,.column-strip{width:22.75%}.column-4,.column-third{width:31.33333%}.column-5{width:39.91667%}.column-6,.column-half{width:48.5%}.column-7{width:57.08333%}.column-8{width:65.66667%}.column-9,.column-main{width:74.25%}.column-10{width:82.83333%}.column-11{width:91.41667%}.column-12,.column-all{width:auto;margin:0;float:none}}.cols-2{-moz-column-count:2;-webkit-column-count:2;column-count:2;column-gap:10px}.cols-3{-moz-column-count:3;-webkit-column-count:3;column-count:3;column-gap:10px}.cols-4{-moz-column-count:4;-webkit-column-count:4;column-count:4;-moz-column-gap:10px;-webkit-column-gap:10px;column-gap:10px}.global-notice{margin:0 0 -1px}.global-notice .wrap{font-size:14px;font-size:.875rem;padding:10px 24px}.global-notice .wrap>p:last-child{margin-bottom:0}@media print{.global-notice{display:none}}#main-header:after,#main-header>.center:after{content:' ';display:table;clear:both}#nav-access{width:100%;position:absolute;top:-20em;z-index:1001}#nav-access a{background:#fff;background:rgba(255,255,255,.9);padding:12px 10px;position:absolute;left:0;right:0;font-weight:700;text-align:center}#nav-access a:focus,#nav-access a:hover{box-shadow:3px 3px 5px #aaa;top:20em;text-decoration:none}#main-header{clear:both;position:relative;z-index:1;padding-top:15px;border:5px solid #83d0f2;border-width:5px 0 0;background-color:#fff;box-shadow:0 0 9px 0 rgba(0,0,0,.3)}#main-header>.center{clear:both}.logo{position:relative;z-index:2;width:170px;height:30px;background:url("../../img/web-docs-sprite.22a6a085cf14.svg") 100% 0 no-repeat;background-size:219px auto;display:block;direction:ltr;text-indent:-9999px;overflow:hidden}@media all and (min-width:47.9385em){#main-header{padding-top:0;padding-bottom:0}.logo{position:relative;top:20px;height:48px;float:left;margin-right:20px}html[dir=rtl] .logo{float:right;margin-left:20px;margin-right:0}}@media all and (min-width:63.9385em){.logo{width:219px;background-size:100% auto}}.submenu{display:none;position:absolute;z-index:3;top:100%;left:0;width:250px;padding:15px;border-top:5px solid #eee;box-shadow:0 4px 4px rgba(0,0,0,.15);background-color:#fff}#nav-sec .submenu,html[dir=rtl] .submenu{left:auto;right:0}.submenu.submenu-cols-2{width:500px}.submenu .submenu-column{box-sizing:border-box;display:inline-block;vertical-align:text-top;padding-right:20px;width:250px}html[dir=rtl] .submenu .submenu-column{padding-left:20px;padding-right:0}@supports (width:-webkit-max-content) or (width:-moz-max-content) or (width:max-content){.submenu,.submenu .submenu-column,.submenu.submenu-cols-2{width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:max-content}.submenu .submenu-column+.submenu-column{padding-left:40px}html[dir=rtl] .submenu .submenu-column+.submenu-column{padding-right:40px;padding-left:20px}}.submenu .title{font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif;font-size:20px;font-size:1.25rem}html[data-zillaslab=false]:not(.no-js) .submenu .title{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}.submenu i[class^=icon-]{margin-left:5px}html[dir=rtl] .submenu i[class^=icon-]{margin-right:5px;margin-left:0}.submenu a{display:block;padding:5px 0;margin-bottom:5px}#nav-sec .submenu{border-top-color:#000}html[dir=rtl] #nav-sec .submenu{left:0;right:auto}.page-buttons .submenu{left:auto;right:0;border-top:5px solid #9b9b9b}html[dir=rtl] .page-buttons .submenu{left:0;right:auto}.submenu-close{position:absolute;top:0;right:0;z-index:1}html[dir=rtl] .submenu-close{left:0;right:auto}@media all and (max-width:47.9375em){#nav-sec .submenu,.nav-main .submenu{position:relative;width:100%;padding:0;border-top:0;box-shadow:none}#nav-sec .submenu a,.nav-main .submenu a{display:block}#nav-sec .submenu .submenu-column,#nav-sec .submenu.submenu-cols-2,.nav-main .submenu .submenu-column,.nav-main .submenu.submenu-cols-2{width:100%}#nav-sec .submenu .submenu-column+.submenu-column,#nav-sec .submenu.submenu-cols-2+.submenu-column,.nav-main .submenu .submenu-column+.submenu-column,.nav-main .submenu.submenu-cols-2+.submenu-column{padding-left:0}html[dir=rtl] #nav-sec .submenu .submenu-column+.submenu-column,html[dir=rtl] #nav-sec .submenu.submenu-cols-2+.submenu-column,html[dir=rtl] .nav-main .submenu .submenu-column+.submenu-column,html[dir=rtl] .nav-main .submenu.submenu-cols-2+.submenu-column{padding-right:0;padding-left:0}}@media all and (min-width:74.9375em){.submenu-close{display:none}}@media all and (max-width:63.9375em){.nav-tools{display:none}}@media all and (min-width:47.9385em){#nav-sec{float:right;position:relative;right:-24px;z-index:3;background-color:#000}html[dir=rtl] #nav-sec{float:left;left:-24px;right:auto}#nav-sec>ul>li{position:relative;display:inline-block}#nav-sec>ul>li>i[class^=icon-]{display:none}#nav-sec>ul>li>a{display:inline-block;line-height:88px;padding:0 10px;color:#fff}html:not(.no-js) #nav-sec>ul>li>a{text-decoration:none}html:not(.no-js) #nav-sec>ul>li>a i[class^=icon-]{display:inline-block;margin-left:5px}html[dir=rtl]:not(.no-js) #nav-sec>ul>li>a i[class^=icon-]{margin-right:5px}#nav-sec>ul>li>a:focus,#nav-sec>ul>li>a:hover{background-color:#000;color:#fff!important}}@media all and (min-width:63.9385em){>ul>li>a{padding:0 20px}}@media all and (max-width:47.9375em){.button.logout,.login-form,.login>a{display:block}.login{border-bottom:1px solid #333}.login>a{padding:6px 0}.login>a i[class^=icon-]{float:right}html[dir=rtl] .login>a i[class^=icon-]{float:left}.login-form{margin:6px 0}.login-photo{display:none}}@media all and (min-width:47.9385em){.login-name{display:none}.login{position:relative;display:inline-block}.login>i[class^=icon-]{display:none}.login>a{display:inline-block;line-height:88px;color:#fff;padding:0 20px}html:not(.no-js) .login>a{text-decoration:none}html:not(.no-js) .login>a i[class^=icon-]{display:inline-block;margin-left:5px}html[dir=rtl]:not(.no-js) .login>a i[class^=icon-]{margin-right:5px}.login>a:focus,.login>a:hover{background-color:#000;color:#fff;text-decoration:underline}.login-photo{vertical-align:middle}}.nav-main{position:relative}html:not(.no-js) .nav-main-item>a{color:#333}@media all and (max-width:47.9375em){.nav-main-item{border-bottom:1px solid #333}.nav-main-item>a{display:block;padding:6px 0}.nav-main-item>a i[class^=icon-]{float:right}html[dir=rtl] .nav-main-item>a i[class^=icon-]{float:left}}@media all and (min-width:47.9385em){.nav-main{min-height:88px;padding-top:88px}.nav-main:after{content:'';position:absolute;top:88px;left:-24px;width:100%;padding:0 24px;border-top:5px solid #eee}.nav-main-item{position:relative;display:inline-block}.nav-main-item>i[class^=icon-]{display:none}.nav-main-item>a{display:inline-block;line-height:88px;padding:0 10px}html:not(.no-js) .nav-main-item>a{text-decoration:none}html:not(.no-js) .nav-main-item>a i[class^=icon-]{display:inline-block;margin-left:5px}html[dir=rtl]:not(.no-js) .nav-main-item>a i[class^=icon-]{margin-right:5px}.nav-main-item>a:focus,.nav-main-item>a:hover{background-color:#eee;color:#333}}@media all and (min-width:63.9385em){.nav-main{min-height:0;padding-top:0}.nav-main:after{display:none}.nav-main-item>a{padding:0 20px}}.nav-main-search{display:block;position:relative}.search-trigger{position:absolute;top:12px;left:15px;z-index:2;cursor:pointer}html[dir=rtl] .search-trigger{right:15px;left:auto}.search-trigger i[class^=icon-]{cursor:pointer}#main-q{width:100%;margin:6px auto;padding-left:2.5em}html[dir=rtl] #main-q{padding-right:2.5em;padding-left:0}@media all and (min-width:47.9385em){.search-trigger,.search-wrap{position:absolute;top:0}.nav-main-search{display:list-item;float:right;text-align:right}html[dir=rtl] .nav-main-search{float:left;text-align:left}.search-wrap{right:0;width:0;overflow:hidden;padding-left:45px;line-height:88px;-moz-transition-property:width,opacity;-webkit-transition-property:width,opacity;transition-property:width,opacity;-moz-transition-duration:.5s;-webkit-transition-duration:.5s;transition-duration:.5s}html[dir=rtl] .search-wrap{left:0;right:auto;padding-right:45px;padding-left:0}.search-wrap.expanded{width:500px}#main-q{border-color:#fff;padding-left:0;border-bottom:1px solid #696969}html[dir=rtl] #main-q{padding-right:0;padding-left:0}}.footer-group,.languages{border-bottom:1px solid #fff}.search-form{display:block;margin:20px auto 40px;padding:0;position:relative;width:100%;max-width:775px}.search-form.home-search-form{margin:40px auto}.search-form>input#home-q,.search-form>input#search-q{display:block;width:100%;margin:0 auto;padding:10px 10px 10px 48px;background:#fff;font-size:17px;font-size:1.0625rem}html[dir=rtl] .search-form>input#home-q,html[dir=rtl] .search-form>input#search-q{padding-right:48px;padding-left:0}.search-form>input#home-q::-webkit-input-placeholder,.search-form>input#search-q::-webkit-input-placeholder{color:#333}.search-form>input#home-q:-ms-input-placeholder,.search-form>input#search-q:-ms-input-placeholder{color:#333}.search-form>input#home-q::-moz-placeholder,.search-form>input#search-q::-moz-placeholder{color:#333}.search-form>input#home-q::placeholder,.search-form>input#search-q::placeholder{color:#333}.search-form .search-icon{position:absolute;top:0;bottom:0;left:0;width:48px;display:flex;align-items:center;justify-content:center}html[dir=rtl] .search-form .search-icon{right:0;left:auto}.search-form .search-icon:after{content:'';position:absolute;top:10px;bottom:10px;left:40px;display:block;border-left:1px solid #9b9b9b}.footer-group:after,.languages:after,.nav-footer:after{content:' '}html[dir=rtl] .search-form .search-icon:after{right:40px;left:auto}@media all and (min-width:63.9385em){.search-form.home-search-form{margin:0 auto 30px}.search-form>input#home-q,.search-form>input#search-q{padding:20px 20px 20px 70px}html[dir=rtl] .search-form>input#home-q,html[dir=rtl] .search-form>input#search-q{padding-right:70px;padding-left:0}.search-form .search-icon{width:60px}.search-form .search-icon:after{top:20px;bottom:20px;left:54px}html[dir=rtl] .search-form .search-icon:after{right:54px;left:auto}}.document-head{position:relative;clear:both;background-color:#f5f9fa;padding:30px 0}.footer-group,.nav-footer{padding-bottom:15px;clear:both}.document-title{clear:both;position:relative}.document-title h1{font-size:32px;font-size:2rem}.document-title em{font-style:normal;margin-left:-3px;text-transform:none}html[dir=rtl] .document-title em{margin-right:-3px;margin-left:0}.document-actions{float:right;width:100%;margin-bottom:10px}html[dir=rtl] .document-actions{float:left}.crumbs+.document-actions{margin-top:10px}@media all and (min-width:29.9385em){.document-title h1{font-size:48px;font-size:3rem}.document-actions{width:auto;margin-bottom:20px}.crumbs+.document-actions{margin-top:0}}.footer-group,.footer-tos,.languages{margin-bottom:15px}.title-prefix{font-size:22px;font-size:1.375rem;display:block;color:#696969}.title-properties button.link{font-size:14px;font-size:.875rem;font-weight:700}.title-locale{font-size:14px;font-size:.875rem}.nav-footer{padding-top:15px;background-color:#333;color:#fff}.nav-footer:after{clear:both;display:table}.nav-footer a{color:#83d0f2}.nav-footer-logo,.nav-footer-mozilla{width:219px;height:48px;background:url("../../img/web-docs-sprite.22a6a085cf14.svg") 100% -58px no-repeat;background-size:219px auto;display:block;direction:ltr;text-indent:-9999px;overflow:hidden;margin-bottom:15px}.nav-footer-mozilla{width:114px;height:32px;background:url("../../img/web-docs-sprite.22a6a085cf14.svg") -96px -171px no-repeat;background-size:420px auto}.footer-title{display:none}.footer-group:after{clear:both;display:table}.footer-group a{display:inline-block;padding:10px 0}.footer-social{font-size:20px;font-size:1.25rem;display:inline-block;margin-right:10px}html[dir=rtl] .footer-social{margin-left:10px;margin-right:0}.footer-social a{padding-right:20px}html[dir=rtl] .footer-social a{padding-left:20px;padding-right:0}.languages{clear:both;padding-bottom:15px}.languages:after{clear:both;display:table}.footer-tos,.languages label{font-size:12px;font-size:.75rem}.footer-tos li{display:inline-block;margin-right:20px}html[dir=rtl] .footer-tos li{margin-left:20px;margin-right:0}@media all and (min-width:47.9385em){.footer-group,.nav-footer{padding-bottom:24px}.footer-group,.footer-tos,.languages,.nav-footer-logo,.nav-footer-mozilla{margin-bottom:24px}.nav-footer{padding-top:24px}.footer-title{display:none}.footer-group a{padding:5px 0}.footer-social a{padding-right:10px}html[dir=rtl] .footer-social a{padding-left:10px;padding-right:0}.languages{clear:both;padding-bottom:24px}.languages:after{content:' ';clear:both;display:table}.languages select{max-width:22.75%}}@media all and (min-width:63.9385em){.footer-title,.languages label{display:block}.nav-footer{position:relative;padding:60px 20px}.footer-group-mdn,.footer-group-mozilla{position:absolute;top:20px;width:22.75%}.footer-group,.languages{border-bottom:none;padding-bottom:0}.nav-footer-logo,.nav-footer-mozilla{margin-bottom:40px}.footer-title{font-size:16px;font-size:1rem;font-family:"Open Sans",arial,x-locale-body,sans-serif}html[data-ffo-opensans=false]:not(.no-js) .footer-title{font-family:arial,x-locale-body,sans-serif}.footer-group{margin-bottom:0}.footer-tos,.languages{margin-bottom:20px}.footer-group-mdn{left:39.91667%}html[dir=rtl] .footer-group-mdn{right:39.91667%;left:auto}.footer-group-mozilla{left:65.66667%}html[dir=rtl] .footer-group-mozilla{right:65.66667%;left:auto}.contentinfo{width:31.33333%}}@media print{.nav-footer{display:none}}.contentinfo{font-size:12px;font-size:.75rem}.contentinfo p{display:inline}.socialaccount-providers li{margin:0 20px 0 0;display:inline-block}.socialaccount-providers li span.signin{min-width:140px}a.github-button{border-radius:3px;z-index:2;display:inline-block;font-weight:700}a.github-button:focus span{text-decoration:underline}a.github-button span{text-decoration:none;display:block;float:left;font-size:16px;font-size:1rem;line-height:24px;color:#fff;padding:0 10px 0 20px;position:relative}a.github-button span:after{content:'';position:absolute;top:0;right:-12px;width:24px;height:24px;z-index:1;-webkit-transform:scale(.707) rotate(45deg);-ms-transform:scale(.707) rotate(45deg);transform:scale(.707) rotate(45deg);border-radius:0 3px 0 50px}a.github-button span.github-icon{padding-left:3px;border-radius:3px 0 0 3px;height:24px}a.github-button span.github-icon i{position:relative;top:2px;left:5px;width:15px;height:15px;display:inline-block}a.github-button span.signin:after{z-index:2;background:-webkit-linear-gradient(top left,#56565a,#3a3a3a);background:-moz-linear-gradient(top left,#56565a,#3a3a3a);background:-ms-linear-gradient(top left,#56565a,#3a3a3a);background:linear-gradient(top left,#56565a,#3a3a3a);-ms-filter:'progid:DXImageTransform.Microsoft.gradient(startColorstr="#56565a", endColorstr="#3a3a3a", GradientType=1)'}a.github-button span.signin{text-shadow:0 1.5px 1px rgba(0,0,0,.35);line-height:23px;padding-bottom:1px;background:-webkit-linear-gradient(#56565a,#3a3a3a);background:-moz-linear-gradient(#56565a,#3a3a3a);background:-ms-linear-gradient(#56565a,#3a3a3a);background:linear-gradient(#56565a,#3a3a3a);-ms-filter:'progid:DXImageTransform.Microsoft.gradient(startColorstr="#56565a", endColorstr="#3a3a3a", GradientType=1)'}a.github-button span.github-icon{background:-webkit-linear-gradient(#5d649a,#63397b);background:-moz-linear-gradient(#5d649a,#63397b);background:-ms-linear-gradient(#5d649a,#63397b);background:linear-gradient(#5d649a,#63397b);-ms-filter:'progid:DXImageTransform.Microsoft.gradient(startColorstr="#5d649a", endColorstr="#63397b", GradientType=1)'}a.github-button span.github-icon:after{background:-webkit-linear-gradient(left top,#5d649a,#63397b);background:-moz-linear-gradient(left top,#5d649a,#63397b);background:-ms-linear-gradient(left top,#5d649a,#63397b);background:linear-gradient(left top,#5d649a,#63397b);-ms-filter:'progid:DXImageTransform.Microsoft.gradient(startColorstr="#5d649a", endColorstr="#63397b", GradientType=1)'}a.github-button span.github-icon i[class^=icon-]{top:0;left:8px}#feature-test-element{position:absolute;left:0;top:-999999px;width:0;height:0;overflow:hidden;z-index:1}@media all and (max-width:74.9375em){#feature-test-element{z-index:2}}@media all and (max-width:63.9375em){#feature-test-element{z-index:3}}ol.pagination{margin:20px 0;padding:0 0 30px}ol.pagination li{float:left;padding:0 2px}html[dir=rtl] ol.pagination li{float:right}ol.pagination li.prev,ol.pagination li.prev a{padding-left:0}html[dir=rtl] ol.pagination li.prev,html[dir=rtl] ol.pagination li.prev a{padding-right:0;padding-left:inherit}ol.pagination li a{float:left;padding:3px 8px 5px}html[dir=rtl] ol.pagination li a{float:right}ol.pagination li a:hover{text-decoration:underline}ol.pagination li.selected a{background:#387894;color:#fff;border-radius:5px}#wikiArticle>p:first-child:empty{display:none}p.field-explanation{margin-bottom:0}#content-main.full{clear:both;float:none;width:100%}.main{float:left;width:670px}@media all and (max-width:47.9375em){#feature-test-element{z-index:4}.header-clear{display:none}}.form-group{margin-bottom:20px}ul.tags li{background:#eee;border:1px solid #cee9f9;border-radius:2px;display:inline-block;margin:0 10px 10px 0;padding:3px 10px 4px}html[dir=rtl] ul.tags li,ul.tags html[dir=rtl] li{margin:0 0 10px 10px}ul.tags{background-color:transparent;border:none;clear:both;margin-bottom:0;padding-left:0;width:100%}html[dir=rtl] ul.tags{padding-right:0;padding-left:0}.user-edit ul.tags,.wiki-block ul.tags{margin-bottom:-10px}ul.tags li label{margin-bottom:0}ul.tags-small li{margin:0 6px 6px 0;padding:1px 3px}html[dir=rtl] ul.tags-small li{margin:0 0 6px 6px}.tag-attach-list .tags-small{clear:none;display:inline}ul.errorlist{color:#900;font-weight:700}ul.errorlist li{margin:5px 0}.notification.error .errorlist{color:#333}.compact dt{display:inline;font-weight:700}.compact dd{display:inline;margin-bottom:0;padding-left:8px}.newsletter-fields,.newsletter-teaser{margin-bottom:20px}html[dir=rtl] .compact dd{padding-right:8px;padding-left:0}.compact dd:after{content:'\A';white-space:pre}.newsletter-teaser{margin-top:0;font-size:24px;font-size:1.5rem}.newsletter-description{margin-bottom:20px;font-family:x-locale-heading-primary,zillaslab,Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}html[data-zillaslab=false]:not(.no-js) .newsletter-description{font-family:Palatino,"Palatino Linotype",x-locale-heading-secondary,serif}input.newsletter-input-email{box-sizing:border-box;width:100%;padding:10px}.newsletter-hide{position:absolute;top:10px;right:10px;z-index:11;border:none;padding:0}html[dir=rtl] .newsletter-hide{left:10px;right:auto}.newsletter-errors .errorlist{padding-left:0;list-style-type:none}html[dir=rtl] .newsletter-errors .errorlist{padding-right:0;padding-left:0}.newsletter-lang{margin-top:20px;margin-bottom:0;font-style:italic}.newsletter-thanks h2{margin-top:0;margin-bottom:20px}.newsletter-submit{position:relative;width:100%;padding:10px 2em 10px 10px;text-align:left}html[dir=rtl] .newsletter-submit{padding-left:2em;padding-right:inherit}.newsletter-submit:after{position:absolute;top:50%;right:10px;content:"";font-family:fontAwesome;transition:margin .1s ease-in-out;transform:translateY(-50%)}html[dir=rtl] .newsletter-submit:after{left:10px;right:auto;content:""}.newsletter-submit:focus,.newsletter-submit:hover{text-decoration:none}.newsletter-submit:focus:after,.newsletter-submit:hover:after{margin-right:-4px}html[dir=rtl] .newsletter-submit:focus:after,html[dir=rtl] .newsletter-submit:hover:after{margin-left:-4px;margin-right:0}@media all and (min-width:29.9385em){.callout-newsletter .form-input,.newsletter-box .form-input{padding:7px 10px 6px}.callout-newsletter .newsletter-fields,.newsletter-box .newsletter-fields{display:flex;flex-wrap:wrap}.callout-newsletter .newsletter-errors,.callout-newsletter .newsletter-group-privacy,.newsletter-box .newsletter-errors,.newsletter-box .newsletter-group-privacy{width:100%}.callout-newsletter .newsletter-group-email,.newsletter-box .newsletter-group-email{width:60%;margin-bottom:0}.callout-newsletter .newsletter-group-privacy,.newsletter-box .newsletter-group-privacy{order:4}.callout-newsletter .newsletter-group-submit,.newsletter-box .newsletter-group-submit{box-sizing:border-box;width:40%;padding-left:20px}html[dir=rtl] .callout-newsletter .newsletter-group-submit,html[dir=rtl] .newsletter-box .newsletter-group-submit{padding-right:20px;padding-left:0}.callout-newsletter .newsletter-submit,.newsletter-box .newsletter-submit{width:100%}}@media all and (min-width:63.9385em){@supports (display:grid){.callout-newsletter,.newsletter-box{display:flex;align-items:flex-end}.callout-newsletter .newsletter,.newsletter-box .newsletter{width:100%}.callout-newsletter .newsletter-form,.newsletter-box .newsletter-form{display:grid;grid-column-gap:20px;grid-template-columns:1fr 1fr}.callout-newsletter .newsletter-form.hidden,.newsletter-box .newsletter-form.hidden{display:none}.callout-newsletter .newsletter-fields,.newsletter-box .newsletter-fields{display:block}.callout-newsletter .newsletter-group-email,.newsletter-box .newsletter-group-email{width:auto;margin-bottom:20px}.callout-newsletter .newsletter-input-email,.newsletter-box .newsletter-input-email{max-width:none}.callout-newsletter .newsletter-group-submit,.newsletter-box .newsletter-group-submit{width:auto;padding-left:0}html[dir=rtl] .callout-newsletter .newsletter-group-submit,html[dir=rtl] .newsletter-box .newsletter-group-submit{padding-right:0;padding-left:0}.callout-newsletter .newsletter-submit,.newsletter-box .newsletter-submit{width:100%}.callout-newsletter .newsletter-description,.newsletter-box .newsletter-description{margin-bottom:0;font-size:18px;font-size:1.125rem}.newsletter-head{grid-column:1/2}.newsletter-fields{grid-column:2/3;align-self:end}input.newsletter-input-email{margin-top:10px}}}.callout-newsletter .newsletter-fields,.callout-newsletter .newsletter-thanks p,.newsletter-box .newsletter-fields{margin-bottom:0}@media all and (min-width:74.9375em){@supports (display:grid){.callout-newsletter .newsletter-form,.newsletter-box .newsletter-form{grid-template-columns:2fr 1fr}.callout-newsletter .newsletter-input-email,.callout-newsletter .newsletter-submit,.newsletter-box .newsletter-input-email,.newsletter-box .newsletter-submit{height:50px}}}.callout-newsletter .newsletter-teaser,.callout-newsletter .newsletter-thanks h2{font-size:26px;font-size:1.625rem}.callout-newsletter a{color:#000;text-decoration:underline}.callout-newsletter a:focus,.callout-newsletter a:hover{text-decoration:none}.newsletter-box{position:relative;border-top:2px solid #333;padding:20px 0;margin-top:40px;background-color:#fff}.newsletter-box.hidden{display:none}.newsletter-box .newsletter-teaser:before{content:'';display:block;float:right;height:.5em;width:1.5em}html[dir=rtl] .newsletter-box .newsletter-teaser:before{float:left}.newsletter-box .newsletter-description{font-size:22px;font-size:1.375rem}@media all and (min-width:47.9385em){.newsletter-box{padding:40px}}@media all and (min-width:63.9385em){.newsletter-box .newsletter-teaser{font-size:48px;font-size:3rem}.newsletter-box .newsletter-description{font-size:22px;font-size:1.375rem}}@media print{.newsletter-box{display:none}}.redesign-notice{background-color:#ebf8e1;border:5px solid #4d9f0c;margin:20px;padding:20px;position:relative}.redesign-new-logo,.redesign-old-logo{position:relative;display:inline-block;direction:ltr;text-indent:-9999px;overflow:hidden;margin-right:20px}html[dir=rtl] .redesign-new-logo,html[dir=rtl] .redesign-old-logo{margin-left:20px;margin-right:0}.redesign-old-logo{width:205px;height:40px;background:url("../../img/logo_sprite.7d36c4a1422b.svg") no-repeat}.redesign-new-logo{width:219px;height:48px;background:url("../../img/web-docs-sprite.22a6a085cf14.svg") 100% 0 no-repeat;background-size:219px auto}.redesign-hide{position:absolute;top:5px;right:10px}html[dir=rtl] .redesign-hide{left:10px;right:auto} -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | /* General styling */ 2 | 3 | body { 4 | background: white; 5 | overflow: hidden; 6 | } 7 | 8 | .wrapper { 9 | width: 800px; 10 | height: 805px; 11 | margin: 0 auto; 12 | position: relative; 13 | } 14 | 15 | section { 16 | text-align: center; 17 | position: absolute; 18 | } 19 | 20 | h1 { 21 | position: absolute; 22 | left: -9000px; 23 | } 24 | 25 | h2 { 26 | font-size: 1.2rem; 27 | padding: 0 2px; 28 | margin-bottom: 10px; 29 | font-weight: normal; 30 | display: inline-block; 31 | } 32 | 33 | li { 34 | font-size: 0.8rem; 35 | } 36 | 37 | .dark h2 { 38 | color: #00FCFC; 39 | background-color: black; 40 | } 41 | 42 | .light h2 { 43 | color: black; 44 | background-color: white; 45 | } 46 | 47 | .light li { 48 | color: white; 49 | } 50 | 51 | .light li a { 52 | color: white; 53 | } 54 | 55 | /* positioning of the different text boxes */ 56 | 57 | .hosting { 58 | top: 35px; 59 | left: 40%; 60 | } 61 | 62 | .network { 63 | display: flex; 64 | align-items: center; 65 | justify-content: space-between; 66 | width: 230px; 67 | top: 235px; 68 | left: 35%; 69 | } 70 | 71 | .display { 72 | top: 410px; 73 | left: 17%; 74 | } 75 | 76 | .audio { 77 | top: 475px; 78 | left: 43.6%; 79 | } 80 | 81 | .controls { 82 | top: 410px; 83 | left: 70%; 84 | } 85 | 86 | .storage { 87 | top: 635px; 88 | left: 4.5%; 89 | } 90 | 91 | .performance { 92 | top: 635px; 93 | left: 25.5%; 94 | } 95 | 96 | .devtools { 97 | top: 635px; 98 | left: 55%; 99 | } 100 | 101 | .compiling { 102 | top: 635px; 103 | left: 78.7%; 104 | width: 150px; 105 | } 106 | -------------------------------------------------------------------------------- /tech-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mdn/web-tech-games/6aa32cf08bd9d9926b7146cfcc95c5dc447f5d26/tech-diagram.png --------------------------------------------------------------------------------