diff --git a/bin/build.sh b/bin/build.sh index ed86c48..2fe7c32 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -1,3 +1,2 @@ #!/usr/bin/env bash - npm run build \ No newline at end of file diff --git a/bin/test.sh b/bin/test.sh index 51c08d6..de8e0a9 100644 --- a/bin/test.sh +++ b/bin/test.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash -testcafe firefox test/test.testcafe.js -#testcafe remote test/test.testcafe.js --qr-code +#testcafe firefox test/test.testcafe.js +testcafe remote test/test.testcafe.js diff --git a/package.json b/package.json index d604925..6a0c784 100755 --- a/package.json +++ b/package.json @@ -23,9 +23,10 @@ "regenerator": "^0.13.2", "rollup": "^0.57.1", "rollup-plugin-babel": "^3.0.3", - "uglify-es": "^3.3.9" + "uglify-es": "^3.3.9", + "testcafe": "^0.22.1-alpha.3" }, "input": "src/js/init.js", "output": "public/js/app.js", - "namesOutput":"public/version/x/app.names.json" + "namesOutput": "public/version/x/app.names.json" } diff --git a/public/css/wordRotator.css b/public/css/wordRotator.css index 048a15d..d8fd4d8 100755 --- a/public/css/wordRotator.css +++ b/public/css/wordRotator.css @@ -1 +1 @@ -.top-bar-title{white-space:nowrap}#action-bar .close-listener{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;z-index:9000}#action-bar #responsive-menu .top-bar-right{position:relative;text-align:right;width:100%}#action-bar .top-bar-right{width:auto}#action-bar .top-bar-right .menu.action-bar a img+span{display:none}#action-bar .top-bar-right .menu.action-bar .action{position:relative;z-index:9000}#action-bar .top-bar-right .menu.action-bar .action.is-dropdown-submenu-parent{z-index:9001}#action-bar .top-bar-right .menu.action-bar .action.hidden{display:none}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu.action-bar .action.smedium{display:none}}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu.action-bar .action li{display:table-cell}#action-bar .top-bar-right .menu.action-bar .action.medium{display:none}}@media screen and (max-width:63.9375em){#action-bar .top-bar-right .menu.action-bar .action.large{display:none}}#action-bar .top-bar-right .menu.action-bar .action.never{display:none}#action-bar .top-bar-right .menu.action-bar.hidden{display:inline-block;position:absolute;z-index:9000;border:1px solid #cacaca;padding:.2rem;-webkit-transform:translateX(-100%);transform:translateX(-100%);text-align:left}#action-bar .top-bar-right .menu.action-bar.hidden .action.hidden{display:none}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent{z-index:9001}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu{top:auto}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu>.close-listener,#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu>li.action{z-index:9001}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border:6px inset;content:"";border-bottom-width:0;border-top-style:solid;border-color:#fff transparent transparent;right:5px;left:auto;margin-top:-3px}#action-bar .top-bar-right .menu.action-bar.hidden .action a{white-space:nowrap}#action-bar .top-bar-right .menu.action-bar.hidden .action a img{display:none}#action-bar .top-bar-right .menu.action-bar.hidden .action a img+span{display:inherit}@media print,screen and (min-width:40em){#action-bar .top-bar-right .menu.action-bar.hidden .action.medium{display:none}}@media print,screen and (min-width:25em){#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium{display:none}}@media print,screen and (min-width:64em){#action-bar .top-bar-right .menu.action-bar.hidden .action.large{display:none}}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium.hidden{display:none}}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu.action-bar.hidden .action.medium{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.medium.hidden{display:none}}@media screen and (max-width:63.9375em){#action-bar .top-bar-right .menu.action-bar.hidden .action.large{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.large.hidden{display:none}}#action-bar .top-bar-right .menu.action-bar.hidden .action.never{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.always,#action-bar .top-bar-right .menu.action-bar.hidden .action.never.hidden{display:none}#action-bar .top-bar-right .menu .action{z-index:100}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu .action a{width:100%;padding-left:.68rem}}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu .action a{padding-left:.236rem}}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a{padding-right:.68rem}}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a{padding-right:.236rem}}#action-bar .top-bar-right .menu .action.img a{padding-top:0}#action-bar .top-bar-right .menu .action.img a img{vertical-align:inherit;max-height:1.4rem}#action-bar .top-bar-right .menu>li>ul.is-dropdown-submenu{min-width:0}#action-bar .top-bar-right .menu>li>ul.is-dropdown-submenu .action{display:inherit}#action-bar .top-bar-right .menu>li.opens-right>ul.is-dropdown-submenu{right:auto;left:auto}#action-bar .top-bar-right .menu>li.opens-right>ul.is-dropdown-submenu a{text-align:left}.dropdown.menu>li.is-dropdown-submenu-parent>a:after{border-color:#fff transparent transparent}form{position:relative}.sending .sending-loader{position:absolute;background-color:hsla(0,0%,49%,.3);display:block;pointer-events:all;width:100%;height:100%;top:0;left:0;bottom:0;right:0;z-index:10;border-radius:2px}.sending .sending-loader .loader{position:absolute}.sending-loader{display:none}label{position:relative}label [type=color],label [type=date],label [type=datetime-local],label [type=datetime],label [type=email],label [type=month],label [type=number],label [type=password],label [type=search],label [type=tel],label [type=text],label [type=time],label [type=url],label [type=week],label input:not([type]),label input[type=text],label textarea{display:block;width:100%;height:2.4375rem;padding:.5rem;-webkit-box-shadow:none!important;box-shadow:none!important;font-size:1rem;font-weight:400;line-height:1.5;border:none;outline:0;margin:0 0 15px}label [type=color]:focus,label [type=date]:focus,label [type=datetime-local]:focus,label [type=datetime]:focus,label [type=email]:focus,label [type=month]:focus,label [type=number]:focus,label [type=password]:focus,label [type=search]:focus,label [type=tel]:focus,label [type=text]:focus,label [type=time]:focus,label [type=url]:focus,label [type=week]:focus,label input:not([type]):focus,label input[type=text]:focus,label textarea:focus{border:none;-webkit-box-shadow:none!important;box-shadow:none!important}label [type=color].notEmpty:not(:focus)~span,label [type=color]:focus~span,label [type=date].notEmpty:not(:focus)~span,label [type=date]:focus~span,label [type=datetime-local].notEmpty:not(:focus)~span,label [type=datetime-local]:focus~span,label [type=datetime].notEmpty:not(:focus)~span,label [type=datetime]:focus~span,label [type=email].notEmpty:not(:focus)~span,label [type=email]:focus~span,label [type=month].notEmpty:not(:focus)~span,label [type=month]:focus~span,label [type=number].notEmpty:not(:focus)~span,label [type=number]:focus~span,label [type=password].notEmpty:not(:focus)~span,label [type=password]:focus~span,label [type=search].notEmpty:not(:focus)~span,label [type=search]:focus~span,label [type=tel].notEmpty:not(:focus)~span,label [type=tel]:focus~span,label [type=text].notEmpty:not(:focus)~span,label [type=text]:focus~span,label [type=time].notEmpty:not(:focus)~span,label [type=time]:focus~span,label [type=url].notEmpty:not(:focus)~span,label [type=url]:focus~span,label [type=week].notEmpty:not(:focus)~span,label [type=week]:focus~span,label input:not([type]).notEmpty:not(:focus)~span,label input:not([type]):focus~span,label input[type=text].notEmpty:not(:focus)~span,label input[type=text]:focus~span,label textarea.notEmpty:not(:focus)~span,label textarea:focus~span{top:-11px;left:0;bottom:0;font-size:11px;opacity:1}label [type=color]~span,label [type=date]~span,label [type=datetime-local]~span,label [type=datetime]~span,label [type=email]~span,label [type=month]~span,label [type=number]~span,label [type=password]~span,label [type=search]~span,label [type=tel]~span,label [type=text]~span,label [type=time]~span,label [type=url]~span,label [type=week]~span,label input:not([type])~span,label input[type=text]~span,label textarea~span{position:absolute;pointer-events:none;left:10px;bottom:10px;top:7px;-webkit-transition:all .2s ease;transition:all .2s ease}label textarea{height:10rem;border-top-right-radius:3px;border-top-left-radius:3px}label [type=checkbox].before-text{margin-bottom:0}.listjs{position:relative}.listjs label{display:inline-block}.listjs label input{margin-bottom:0}.listjs table{border-collapse:collapse}.listjs table tfoot tr th,.listjs table thead tr th{text-align:left}.listjs table tfoot tr th.sort,.listjs table thead tr th.sort{cursor:pointer}.listjs table tbody.list tr:first-child td{border-top:1px solid #696969}.listjs table tbody.list tr:last-child td{border-bottom:1px solid #696969}.listjs table tbody.list tr td{border-top:1px solid #c8c8c8;padding:.3rem}.listjs ul.pagination{float:right;display:inline-block;margin:0}.listjs ul.pagination li{display:inline-block;padding-left:5px;padding-right:5px;text-decoration:underline}.listjs ul.pagination li.active,.listjs ul.pagination li.disabled{text-decoration:none}.rotated{-webkit-transform-origin:bottom center;transform-origin:bottom center;height:50%;position:absolute;top:0;bottom:0;left:0;right:0}.share-icon{margin:.1rem}.share-icon,.share-icon svg{width:1.5rem;max-width:1.5rem}.tab-header-container .tab-header{display:inline-block;background-color:#eee;border:1px solid #b0b0b0;border-top-left-radius:4px;border-top-right-radius:4px;padding:0 5px}.tab-header-container .tab-header.active{border-bottom:0;background-color:#fff}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}html{width:100%;font-size:18px;letter-spacing:1px}.max-height,html{min-height:100%;height:100%}body{margin:0;padding:0;height:100%;width:100%;font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:#fefefe;color:#0a0a0a}footer{border-top:1px solid #d8d8d8;text-align:center}.top-bar .top-bar-title strong{vertical-align:middle;display:inline-block}nav.top-bar{color:#fff;font-size:20px;-webkit-box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 2px 9px 1px rgba(0,0,0,.12),0 4px 2px -2px rgba(0,0,0,.2);box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 2px 9px 1px rgba(0,0,0,.12),0 4px 2px -2px rgba(0,0,0,.2);padding:.6rem;display:block}a.button,button.button{border-radius:2px}.fill-me{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.fill-me,.fill-me.vertical{-webkit-box-direction:normal}.fill-me.vertical{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.fill-me .grow{-webkit-box-flex:1;-ms-flex:1;flex:1}.flex-center{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.flex-center>*{max-height:100%}.dropdown.menu a,.menu a{padding:.4rem .5rem}svg path{fill:currentColor}div.mainContainer{position:relative;max-height:100%;max-width:100%;overflow:auto;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:.5rem}div.mainContainer #main-content,div.mainContainer #site-content,div.mainContainer>.row{position:absolute;width:100%;height:100%;top:0;bottom:0;left:0;right:0}.inline-block{display:inline-block}.right{float:right}#logo-img{max-height:2.2rem}a{cursor:pointer}a,a.hidden-link{text-decoration:none;color:inherit}label{cursor:pointer}.align-right{text-align:right}.view-panel{display:none}.loader{left:50%;top:50%;position:fixed;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center}.loader.inline{left:auto;top:auto;position:static;-webkit-transform:initial;transform:none;text-align:center;display:inline}.loader.small #spinner{-webkit-transform:scale(.5);transform:scale(.5)}.loader #spinner{-webkit-box-sizing:border-box;box-sizing:border-box;stroke:#b71c1a;stroke-width:3px;-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation:line 1.6s cubic-bezier(.4,0,.2,1) infinite,rotate 1.6s linear infinite;animation:line 1.6s cubic-bezier(.4,0,.2,1) infinite,rotate 1.6s linear infinite}@-webkit-keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(450deg);transform:rotate(450deg)}}@keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(450deg);transform:rotate(450deg)}}@-webkit-keyframes line{0%{stroke-dasharray:2,85.964;-webkit-transform:rotate(0);transform:rotate(0)}50%{stroke-dasharray:65.973,21.9911;stroke-dashoffset:0}to{stroke-dasharray:2,85.964;stroke-dashoffset:-65.973;-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@keyframes line{0%{stroke-dasharray:2,85.964;-webkit-transform:rotate(0);transform:rotate(0)}50%{stroke-dasharray:65.973,21.9911;stroke-dashoffset:0}to{stroke-dasharray:2,85.964;stroke-dashoffset:-65.973;-webkit-transform:rotate(90deg);transform:rotate(90deg)}}#print-content{display:none}.action-button{max-height:1.7rem;margin-left:.4rem;margin-right:.4rem}.action-button:hover{background:#e8e8e8}.vcenter-container{width:100%;height:100%;display:table}.vcenter-container .vcenter{vertical-align:middle;display:table-cell;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.max-width{width:100%}button,input{letter-spacing:1px!important}.no-padding{padding:0;border:0}.center{text-align:center}@media print{#styles,.mainContainer,footer,nav{display:none!important}#print-content{display:block!important}}.overflow-y-auto{overflow-y:auto!important}.row.no-after:after{content:normal}.margin-bottom{margin-bottom:1rem}@media print,screen and (min-width:25em){.margin-bottom{margin-bottom:2rem}}@media print,screen and (min-width:40em){.margin-bottom{margin-bottom:3rem}}@media print,screen and (min-width:64em){.margin-bottom{margin-bottom:4rem}}@media screen and (min-width:75em){.margin-bottom{margin-bottom:5rem}}.font-small{font-size:.7em}.border-bottom{border-bottom:1px solid #cacaca}.border-right{border-right:1px solid #cacaca}.border-left{border-left:1px solid #cacaca}img.logo{vertical-align:inherit;display:inline-block;height:auto;max-width:1.1rem;margin-right:2px}.align-center{text-align:center}hr.separator{margin:1rem 0}.button-line{display:-webkit-box;display:-ms-flexbox;display:flex}.button-line .button{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1px;margin-right:1px;padding:.5rem .77rem}@media screen and (max-width:24.9375em){.small-small{font-size:small}}select{border:0;padding:.3rem}.hidden{display:none}img.action-image{max-height:1.4rem;cursor:pointer}img.back-button{max-height:.6rem;margin-right:.2rem;cursor:pointer;vertical-align:inherit}.no-margin-bottom{margin-bottom:0}div.flashMessage{font-size:.8rem;border-radius:25px;letter-spacing:0;z-index:1001;max-width:100%;display:inline-block;position:relative;-webkit-box-shadow:2px 2px 10px rgba(0,0,0,.28);box-shadow:2px 2px 10px rgba(0,0,0,.28);border:1px solid #626262;background-color:#6b6b6b;padding:.3em .6em;text-align:center;color:#fff}div.flashMessage:hover{opacity:.4;cursor:pointer}div.flashMessage:after,div.flashMessage:before{display:block;content:""}span.flashMessage{float:right;cursor:pointer}div.default{background-color:#1a9cc8}#flashMessageContainer{text-align:center;position:absolute}#flashMessageContainer,#flashMessageContainerAbsoulte{height:0!important;width:100%;overflow:visible!important}#flashMessageContainerAbsoulte{margin:5px 0;position:relative}.background{position:fixed;z-index:1000000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(55,55,55,.6)}.background .modal{position:relative;top:50%;margin:auto;width:80%;-webkit-transform:translateY(-50%);transform:translateY(-50%);padding:.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-height:80%;max-width:1024px}@media screen and (max-width:63.9375em){.background .modal.small-margin{width:90%}}@media screen and (max-width:24.9375em){.background .modal.small-margin{width:95%}}.background .modal.max-small{max-width:0}.background .modal.max-smedium{max-width:400px}.background .modal.max-medium{max-width:640px}.background .modal.max-large{max-width:1024px}.background .modal.max-xlarge{max-width:1200px}.background .modal.max-xxlarge{max-width:1440px}.background .modal .title{font-weight:700;padding-bottom:.5rem}.background .modal .content-container{overflow-y:auto;max-height:100%}.background .modal .content-container .loader{position:static;-webkit-transform:none;transform:none}.background .modal .close{text-align:right;float:right;font-size:28px;font-weight:700;line-height:1}.background .modal .close:focus,.background .modal .close:hover{text-decoration:none;cursor:pointer}.background .modal .modal-button-container{padding-top:.5rem}.background .modal .modal-button-container .button{margin-left:.2rem;margin-bottom:0!important;padding:.6em .8em}@media screen and (max-width:24.9375em){.background .modal .modal-button-container .button{margin-left:.1rem;padding:.3em .5em}}.no-transition,.no-transition *{-webkit-transition:none!important;transition:none!important}.settings-container{border:1px solid #000;border-radius:2px;padding:.3rem}@media print,screen and (min-width:40em){.settings-container #settings-fragments-container{border-left:1px solid #cacaca}}.settings-container #settings-fragments-container #settings-fragments>*{display:none}.settings-container #settings-fragments-container #settings-fragments>.active{display:block}.switch{position:relative;display:inline-block}@media screen and (max-width:24.9375em){.switch{font-size:.6em}}@media screen and (max-width:39.9375em){.switch{font-size:.7em}}.switch input{display:none}.switch input:checked+.slider:before{-webkit-transform:translateX(1.5em);transform:translateX(1.5em)}.switch .slider{display:inline-block;position:relative;cursor:pointer;width:3em;height:1.5em;border-radius:1.5em;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.switch .slider:before{position:absolute;content:"";height:1.1em;width:1.1em;left:.15em;bottom:.15em;background-color:#fff;-webkit-transition:.4s;transition:.4s;border-radius:50%}.switch img,.switch svg{width:1.4em;display:inline;vertical-align:initial}.switch img path,.switch svg path{stroke-color:inherit}.zf-green{color:#68b604}.column:last-child:not(:first-child),.columns:last-child:not(:first-child){float:left}input[type=checkBox].form-control{height:24px;height:1.5rem;width:100%}[type=submit]{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:39px;height:2.4375rem;padding:8px;padding:.5rem;border:1px solid #cacaca;margin:0 0 16px;margin:0 0 1rem;font-family:inherit;font-size:16px;font-size:1rem;color:#0a0a0a;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px hsla(0,0%,4%,.1);box-shadow:inset 0 1px 2px hsla(0,0%,4%,.1);border-radius:0;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none}form ul li{color:red;font-size:12.8px;font-size:.8rem}.button-dropdown:after{border-color:#000 transparent transparent;border-width:.4em;border-style:solid;content:"";position:absolute;top:.4em;display:block;height:0;width:0;right:1em}.button-dropdown{position:relative;display:block;padding-right:2em}.button-dropdown.open:after{border-color:transparent transparent #000;top:0}a.ui-datepicker-next,a.ui-datepicker-prev{height:100%!important}div.container a.navbar-brand>img{display:inline;margin-right:4px}ul.menu.plain li.active a{background-color:#ededed;color:#000}ul.menu.plain li a{color:#000}ul.menu.plain li a:hover{color:#525252}ul.submenu{border-top:1px solid #bcbcbc;border-bottom:1px solid #bcbcbc;margin-left:10px}#cookie-compliance{line-height:1.2;font-size:.8rem;width:100%;margin:0;padding:.3rem 0}#cookie-compliance #close-cookie-msg{float:right;margin-bottom:0;margin-right:3px;padding:.4rem .8rem}.menu-container .button{text-align:center;width:100%}.height-5{height:5%}.max-height-5{max-height:5%}.width-5{width:5%}.max-width-5{max-width:5%}.height-10{height:10%}.max-height-10{max-height:10%}.width-10{width:10%}.max-width-10{max-width:10%}.height-15{height:15%}.max-height-15{max-height:15%}.width-15{width:15%}.max-width-15{max-width:15%}.height-20{height:20%}.max-height-20{max-height:20%}.width-20{width:20%}.max-width-20{max-width:20%}.height-25{height:25%}.max-height-25{max-height:25%}.width-25{width:25%}.max-width-25{max-width:25%}.height-30{height:30%}.max-height-30{max-height:30%}.width-30{width:30%}.max-width-30{max-width:30%}.height-35{height:35%}.max-height-35{max-height:35%}.width-35{width:35%}.max-width-35{max-width:35%}.height-40{height:40%}.max-height-40{max-height:40%}.width-40{width:40%}.max-width-40{max-width:40%}.height-45{height:45%}.max-height-45{max-height:45%}.width-45{width:45%}.max-width-45{max-width:45%}.height-50{height:50%}.max-height-50{max-height:50%}.width-50{width:50%}.max-width-50{max-width:50%}.height-55{height:55%}.max-height-55{max-height:55%}.width-55{width:55%}.max-width-55{max-width:55%}.height-60{height:60%}.max-height-60{max-height:60%}.width-60{width:60%}.max-width-60{max-width:60%}.height-65{height:65%}.max-height-65{max-height:65%}.width-65{width:65%}.max-width-65{max-width:65%}.height-70{height:70%}.max-height-70{max-height:70%}.width-70{width:70%}.max-width-70{max-width:70%}.height-75{height:75%}.max-height-75{max-height:75%}.width-75{width:75%}.max-width-75{max-width:75%}.height-80{height:80%}.max-height-80{max-height:80%}.width-80{width:80%}.max-width-80{max-width:80%}.height-85{height:85%}.max-height-85{max-height:85%}.width-85{width:85%}.max-width-85{max-width:85%}.height-90{height:90%}.max-height-90{max-height:90%}.width-90{width:90%}.max-width-90{max-width:90%}.height-95{height:95%}.max-height-95{max-height:95%}.width-95{width:95%}.max-width-95{max-width:95%}.height-100{height:100%}.max-height-100{max-height:100%}.width-100{width:100%}.max-width-100{max-width:100%}*{-webkit-transition:.25s ease-out,color .25s ease-out;transition:.25s ease-out,color .25s ease-out}body.red{background:#fff;color:#000}body.red #cookie-compliance{background-color:#870015;color:#fff}body.red #cookie-compliance a.link,body.red #cookie-compliance a.link:hover{color:#ff3d00;border-bottom-color:#ff3d00}body.red a.link{text-decoration:none;color:#ff3d00;border-bottom:none}body.red a.link:hover{color:#ff3d00;border-bottom-color:#ff3d00}body.red .loader #spinner{stroke:#b71c1a}body.red nav.top-bar{color:#fff;background:red}body.red .top-bar ul{background:red!important}body.red .top-bar ul a{color:#fff}body.red .switch input:checked+.slider,body.red a.button,body.red a.button.disabled,body.red a.button.disabled:focus,body.red a.button.disabled:hover,body.red a.button:hover,body.red button.button,body.red button.button.disabled,body.red button.button.disabled:focus,body.red button.button.disabled:hover,body.red button.button:hover{background-color:red}body.red .switch input:focus+.slider{-webkit-box-shadow:0 0 1px red;box-shadow:0 0 1px red}body.red label{color:#000}body.red .background .modal{background-color:#fff}body.red svg.fill-color,body.red svg .fill-color{fill:currentColor}body.red svg.fill-background,body.red svg .fill-background{fill:#fff}body.red label [type=color],body.red label [type=date],body.red label [type=datetime-local],body.red label [type=datetime],body.red label [type=email],body.red label [type=month],body.red label [type=number],body.red label [type=password],body.red label [type=search],body.red label [type=tel],body.red label [type=text],body.red label [type=time],body.red label [type=url],body.red label [type=week],body.red label input:not([type]),body.red label input[type=text],body.red label textarea{border-bottom:solid #000;background:#fff;color:#000}body.red label [type=color]:focus,body.red label [type=date]:focus,body.red label [type=datetime-local]:focus,body.red label [type=datetime]:focus,body.red label [type=email]:focus,body.red label [type=month]:focus,body.red label [type=number]:focus,body.red label [type=password]:focus,body.red label [type=search]:focus,body.red label [type=tel]:focus,body.red label [type=text]:focus,body.red label [type=time]:focus,body.red label [type=url]:focus,body.red label [type=week]:focus,body.red label input:not([type]):focus,body.red label input[type=text]:focus,body.red label textarea:focus{border-bottom:solid #000}body.red label [type=color].notEmpty:not(:focus)~span,body.red label [type=color]:focus~span,body.red label [type=date].notEmpty:not(:focus)~span,body.red label [type=date]:focus~span,body.red label [type=datetime-local].notEmpty:not(:focus)~span,body.red label [type=datetime-local]:focus~span,body.red label [type=datetime].notEmpty:not(:focus)~span,body.red label [type=datetime]:focus~span,body.red label [type=email].notEmpty:not(:focus)~span,body.red label [type=email]:focus~span,body.red label [type=month].notEmpty:not(:focus)~span,body.red label [type=month]:focus~span,body.red label [type=number].notEmpty:not(:focus)~span,body.red label [type=number]:focus~span,body.red label [type=password].notEmpty:not(:focus)~span,body.red label [type=password]:focus~span,body.red label [type=search].notEmpty:not(:focus)~span,body.red label [type=search]:focus~span,body.red label [type=tel].notEmpty:not(:focus)~span,body.red label [type=tel]:focus~span,body.red label [type=text].notEmpty:not(:focus)~span,body.red label [type=text]:focus~span,body.red label [type=time].notEmpty:not(:focus)~span,body.red label [type=time]:focus~span,body.red label [type=url].notEmpty:not(:focus)~span,body.red label [type=url]:focus~span,body.red label [type=week].notEmpty:not(:focus)~span,body.red label [type=week]:focus~span,body.red label input:not([type]).notEmpty:not(:focus)~span,body.red label input:not([type]):focus~span,body.red label input[type=text].notEmpty:not(:focus)~span,body.red label input[type=text]:focus~span,body.red label textarea.notEmpty:not(:focus)~span,body.red label textarea:focus~span{color:#000}body.red label [type=color]~span,body.red label [type=date]~span,body.red label [type=datetime-local]~span,body.red label [type=datetime]~span,body.red label [type=email]~span,body.red label [type=month]~span,body.red label [type=number]~span,body.red label [type=password]~span,body.red label [type=search]~span,body.red label [type=tel]~span,body.red label [type=text]~span,body.red label [type=time]~span,body.red label [type=url]~span,body.red label [type=week]~span,body.red label input:not([type])~span,body.red label input[type=text]~span,body.red label textarea~span{color:rgba(0,0,0,.65)}body.red label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.red input.notEmpty:invalid{background-color:rgba(255,0,0,.65)}body.blue{background:#fff;color:#000}body.blue #cookie-compliance{background-color:#1a3062;color:#fff}body.blue #cookie-compliance a.link,body.blue #cookie-compliance a.link:hover{color:#546cfe;border-bottom-color:#546cfe}body.blue a.link{text-decoration:none;color:#546cfe;border-bottom:none}body.blue a.link:hover{color:#546cfe;border-bottom-color:#546cfe}body.blue .loader #spinner{stroke:#673ab7}body.blue nav.top-bar{color:#fff;background:#2c58ae}body.blue .top-bar ul{background:#2c58ae!important}body.blue .top-bar ul a{color:#fff}body.blue .switch input:checked+.slider,body.blue a.button,body.blue a.button.disabled,body.blue a.button.disabled:focus,body.blue a.button.disabled:hover,body.blue a.button:hover,body.blue button.button,body.blue button.button.disabled,body.blue button.button.disabled:focus,body.blue button.button.disabled:hover,body.blue button.button:hover{background-color:#2c58ae}body.blue .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #2c58ae;box-shadow:0 0 1px #2c58ae}body.blue label{color:#000}body.blue .background .modal{background-color:#fff}body.blue svg.fill-color,body.blue svg .fill-color{fill:currentColor}body.blue svg.fill-background,body.blue svg .fill-background{fill:#fff}body.blue label [type=color],body.blue label [type=date],body.blue label [type=datetime-local],body.blue label [type=datetime],body.blue label [type=email],body.blue label [type=month],body.blue label [type=number],body.blue label [type=password],body.blue label [type=search],body.blue label [type=tel],body.blue label [type=text],body.blue label [type=time],body.blue label [type=url],body.blue label [type=week],body.blue label input:not([type]),body.blue label input[type=text],body.blue label textarea{border-bottom:solid #000;background:#fff;color:#000}body.blue label [type=color]:focus,body.blue label [type=date]:focus,body.blue label [type=datetime-local]:focus,body.blue label [type=datetime]:focus,body.blue label [type=email]:focus,body.blue label [type=month]:focus,body.blue label [type=number]:focus,body.blue label [type=password]:focus,body.blue label [type=search]:focus,body.blue label [type=tel]:focus,body.blue label [type=text]:focus,body.blue label [type=time]:focus,body.blue label [type=url]:focus,body.blue label [type=week]:focus,body.blue label input:not([type]):focus,body.blue label input[type=text]:focus,body.blue label textarea:focus{border-bottom:solid #000}body.blue label [type=color].notEmpty:not(:focus)~span,body.blue label [type=color]:focus~span,body.blue label [type=date].notEmpty:not(:focus)~span,body.blue label [type=date]:focus~span,body.blue label [type=datetime-local].notEmpty:not(:focus)~span,body.blue label [type=datetime-local]:focus~span,body.blue label [type=datetime].notEmpty:not(:focus)~span,body.blue label [type=datetime]:focus~span,body.blue label [type=email].notEmpty:not(:focus)~span,body.blue label [type=email]:focus~span,body.blue label [type=month].notEmpty:not(:focus)~span,body.blue label [type=month]:focus~span,body.blue label [type=number].notEmpty:not(:focus)~span,body.blue label [type=number]:focus~span,body.blue label [type=password].notEmpty:not(:focus)~span,body.blue label [type=password]:focus~span,body.blue label [type=search].notEmpty:not(:focus)~span,body.blue label [type=search]:focus~span,body.blue label [type=tel].notEmpty:not(:focus)~span,body.blue label [type=tel]:focus~span,body.blue label [type=text].notEmpty:not(:focus)~span,body.blue label [type=text]:focus~span,body.blue label [type=time].notEmpty:not(:focus)~span,body.blue label [type=time]:focus~span,body.blue label [type=url].notEmpty:not(:focus)~span,body.blue label [type=url]:focus~span,body.blue label [type=week].notEmpty:not(:focus)~span,body.blue label [type=week]:focus~span,body.blue label input:not([type]).notEmpty:not(:focus)~span,body.blue label input:not([type]):focus~span,body.blue label input[type=text].notEmpty:not(:focus)~span,body.blue label input[type=text]:focus~span,body.blue label textarea.notEmpty:not(:focus)~span,body.blue label textarea:focus~span{color:#000}body.blue label [type=color]~span,body.blue label [type=date]~span,body.blue label [type=datetime-local]~span,body.blue label [type=datetime]~span,body.blue label [type=email]~span,body.blue label [type=month]~span,body.blue label [type=number]~span,body.blue label [type=password]~span,body.blue label [type=search]~span,body.blue label [type=tel]~span,body.blue label [type=text]~span,body.blue label [type=time]~span,body.blue label [type=url]~span,body.blue label [type=week]~span,body.blue label input:not([type])~span,body.blue label input[type=text]~span,body.blue label textarea~span{color:rgba(0,0,0,.65)}body.blue label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.blue input.notEmpty:invalid{background-color:rgba(44,88,174,.65)}body.green{background:#fff;color:#000}body.green #cookie-compliance{background-color:#003613;color:#fff}body.green #cookie-compliance a.link,body.green #cookie-compliance a.link:hover{color:#009829;border-bottom-color:#009829}body.green a.link{text-decoration:none;color:#009829;border-bottom:none}body.green a.link:hover{color:#009829;border-bottom-color:#009829}body.green .loader #spinner{stroke:green}body.green nav.top-bar{color:#fff;background:green}body.green .top-bar ul{background:green!important}body.green .top-bar ul a{color:#fff}body.green .switch input:checked+.slider,body.green a.button,body.green a.button.disabled,body.green a.button.disabled:focus,body.green a.button.disabled:hover,body.green a.button:hover,body.green button.button,body.green button.button.disabled,body.green button.button.disabled:focus,body.green button.button.disabled:hover,body.green button.button:hover{background-color:green}body.green .switch input:focus+.slider{-webkit-box-shadow:0 0 1px green;box-shadow:0 0 1px green}body.green label{color:#000}body.green .background .modal{background-color:#fff}body.green svg.fill-color,body.green svg .fill-color{fill:currentColor}body.green svg.fill-background,body.green svg .fill-background{fill:#fff}body.green label [type=color],body.green label [type=date],body.green label [type=datetime-local],body.green label [type=datetime],body.green label [type=email],body.green label [type=month],body.green label [type=number],body.green label [type=password],body.green label [type=search],body.green label [type=tel],body.green label [type=text],body.green label [type=time],body.green label [type=url],body.green label [type=week],body.green label input:not([type]),body.green label input[type=text],body.green label textarea{border-bottom:solid #000;background:#fff;color:#000}body.green label [type=color]:focus,body.green label [type=date]:focus,body.green label [type=datetime-local]:focus,body.green label [type=datetime]:focus,body.green label [type=email]:focus,body.green label [type=month]:focus,body.green label [type=number]:focus,body.green label [type=password]:focus,body.green label [type=search]:focus,body.green label [type=tel]:focus,body.green label [type=text]:focus,body.green label [type=time]:focus,body.green label [type=url]:focus,body.green label [type=week]:focus,body.green label input:not([type]):focus,body.green label input[type=text]:focus,body.green label textarea:focus{border-bottom:solid #000}body.green label [type=color].notEmpty:not(:focus)~span,body.green label [type=color]:focus~span,body.green label [type=date].notEmpty:not(:focus)~span,body.green label [type=date]:focus~span,body.green label [type=datetime-local].notEmpty:not(:focus)~span,body.green label [type=datetime-local]:focus~span,body.green label [type=datetime].notEmpty:not(:focus)~span,body.green label [type=datetime]:focus~span,body.green label [type=email].notEmpty:not(:focus)~span,body.green label [type=email]:focus~span,body.green label [type=month].notEmpty:not(:focus)~span,body.green label [type=month]:focus~span,body.green label [type=number].notEmpty:not(:focus)~span,body.green label [type=number]:focus~span,body.green label [type=password].notEmpty:not(:focus)~span,body.green label [type=password]:focus~span,body.green label [type=search].notEmpty:not(:focus)~span,body.green label [type=search]:focus~span,body.green label [type=tel].notEmpty:not(:focus)~span,body.green label [type=tel]:focus~span,body.green label [type=text].notEmpty:not(:focus)~span,body.green label [type=text]:focus~span,body.green label [type=time].notEmpty:not(:focus)~span,body.green label [type=time]:focus~span,body.green label [type=url].notEmpty:not(:focus)~span,body.green label [type=url]:focus~span,body.green label [type=week].notEmpty:not(:focus)~span,body.green label [type=week]:focus~span,body.green label input:not([type]).notEmpty:not(:focus)~span,body.green label input:not([type]):focus~span,body.green label input[type=text].notEmpty:not(:focus)~span,body.green label input[type=text]:focus~span,body.green label textarea.notEmpty:not(:focus)~span,body.green label textarea:focus~span{color:#000}body.green label [type=color]~span,body.green label [type=date]~span,body.green label [type=datetime-local]~span,body.green label [type=datetime]~span,body.green label [type=email]~span,body.green label [type=month]~span,body.green label [type=number]~span,body.green label [type=password]~span,body.green label [type=search]~span,body.green label [type=tel]~span,body.green label [type=text]~span,body.green label [type=time]~span,body.green label [type=url]~span,body.green label [type=week]~span,body.green label input:not([type])~span,body.green label input[type=text]~span,body.green label textarea~span{color:rgba(0,0,0,.65)}body.green label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.green input.notEmpty:invalid{background-color:rgba(0,128,0,.65)}body.pink{background:#fff;color:#000}body.pink #cookie-compliance{background-color:#70374a;color:#fff}body.pink #cookie-compliance a.link,body.pink #cookie-compliance a.link:hover{color:#fe64af;border-bottom-color:#fe64af}body.pink a.link{text-decoration:none;color:#fe64af;border-bottom:none}body.pink a.link:hover{color:#fe64af;border-bottom-color:#fe64af}body.pink .loader #spinner{stroke:#ff69b4}body.pink nav.top-bar{color:#fff;background:#ff69b4}body.pink .top-bar ul{background:#ff69b4!important}body.pink .top-bar ul a{color:#fff}body.pink .switch input:checked+.slider,body.pink a.button,body.pink a.button.disabled,body.pink a.button.disabled:focus,body.pink a.button.disabled:hover,body.pink a.button:hover,body.pink button.button,body.pink button.button.disabled,body.pink button.button.disabled:focus,body.pink button.button.disabled:hover,body.pink button.button:hover{background-color:#ff69b4}body.pink .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #ff69b4;box-shadow:0 0 1px #ff69b4}body.pink label{color:#000}body.pink .background .modal{background-color:#fff}body.pink svg.fill-color,body.pink svg .fill-color{fill:currentColor}body.pink svg.fill-background,body.pink svg .fill-background{fill:#fff}body.pink label [type=color],body.pink label [type=date],body.pink label [type=datetime-local],body.pink label [type=datetime],body.pink label [type=email],body.pink label [type=month],body.pink label [type=number],body.pink label [type=password],body.pink label [type=search],body.pink label [type=tel],body.pink label [type=text],body.pink label [type=time],body.pink label [type=url],body.pink label [type=week],body.pink label input:not([type]),body.pink label input[type=text],body.pink label textarea{border-bottom:solid #000;background:#fff;color:#000}body.pink label [type=color]:focus,body.pink label [type=date]:focus,body.pink label [type=datetime-local]:focus,body.pink label [type=datetime]:focus,body.pink label [type=email]:focus,body.pink label [type=month]:focus,body.pink label [type=number]:focus,body.pink label [type=password]:focus,body.pink label [type=search]:focus,body.pink label [type=tel]:focus,body.pink label [type=text]:focus,body.pink label [type=time]:focus,body.pink label [type=url]:focus,body.pink label [type=week]:focus,body.pink label input:not([type]):focus,body.pink label input[type=text]:focus,body.pink label textarea:focus{border-bottom:solid #000}body.pink label [type=color].notEmpty:not(:focus)~span,body.pink label [type=color]:focus~span,body.pink label [type=date].notEmpty:not(:focus)~span,body.pink label [type=date]:focus~span,body.pink label [type=datetime-local].notEmpty:not(:focus)~span,body.pink label [type=datetime-local]:focus~span,body.pink label [type=datetime].notEmpty:not(:focus)~span,body.pink label [type=datetime]:focus~span,body.pink label [type=email].notEmpty:not(:focus)~span,body.pink label [type=email]:focus~span,body.pink label [type=month].notEmpty:not(:focus)~span,body.pink label [type=month]:focus~span,body.pink label [type=number].notEmpty:not(:focus)~span,body.pink label [type=number]:focus~span,body.pink label [type=password].notEmpty:not(:focus)~span,body.pink label [type=password]:focus~span,body.pink label [type=search].notEmpty:not(:focus)~span,body.pink label [type=search]:focus~span,body.pink label [type=tel].notEmpty:not(:focus)~span,body.pink label [type=tel]:focus~span,body.pink label [type=text].notEmpty:not(:focus)~span,body.pink label [type=text]:focus~span,body.pink label [type=time].notEmpty:not(:focus)~span,body.pink label [type=time]:focus~span,body.pink label [type=url].notEmpty:not(:focus)~span,body.pink label [type=url]:focus~span,body.pink label [type=week].notEmpty:not(:focus)~span,body.pink label [type=week]:focus~span,body.pink label input:not([type]).notEmpty:not(:focus)~span,body.pink label input:not([type]):focus~span,body.pink label input[type=text].notEmpty:not(:focus)~span,body.pink label input[type=text]:focus~span,body.pink label textarea.notEmpty:not(:focus)~span,body.pink label textarea:focus~span{color:#000}body.pink label [type=color]~span,body.pink label [type=date]~span,body.pink label [type=datetime-local]~span,body.pink label [type=datetime]~span,body.pink label [type=email]~span,body.pink label [type=month]~span,body.pink label [type=number]~span,body.pink label [type=password]~span,body.pink label [type=search]~span,body.pink label [type=tel]~span,body.pink label [type=text]~span,body.pink label [type=time]~span,body.pink label [type=url]~span,body.pink label [type=week]~span,body.pink label input:not([type])~span,body.pink label input[type=text]~span,body.pink label textarea~span{color:rgba(0,0,0,.65)}body.pink label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.pink input.notEmpty:invalid{background-color:rgba(255,105,180,.65)}body.black{background:#fff;color:#000}body.black #cookie-compliance{background-color:#353535;color:#fff}body.black #cookie-compliance a.link{color:#fff;border-bottom-color:#fff}body.black #cookie-compliance a.link:hover{color:#cacaca;border-bottom-color:#cacaca}body.black a.link{text-decoration:none;color:#000;border-bottom:1px solid #000}body.black a.link:hover{color:#4e4e4e;border-bottom-color:#4e4e4e}body.black .loader #spinner{stroke:#000}body.black nav.top-bar{color:#fff;background:#000}body.black .top-bar ul{background:#000!important}body.black .top-bar ul a{color:#fff}body.black .switch input:checked+.slider,body.black a.button,body.black a.button.disabled,body.black a.button.disabled:focus,body.black a.button.disabled:hover,body.black a.button:hover,body.black button.button,body.black button.button.disabled,body.black button.button.disabled:focus,body.black button.button.disabled:hover,body.black button.button:hover{background-color:#000}body.black .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #000;box-shadow:0 0 1px #000}body.black label{color:#000}body.black .background .modal{background-color:#fff}body.black svg.fill-color,body.black svg .fill-color{fill:currentColor}body.black svg.fill-background,body.black svg .fill-background{fill:#fff}body.black label [type=color],body.black label [type=date],body.black label [type=datetime-local],body.black label [type=datetime],body.black label [type=email],body.black label [type=month],body.black label [type=number],body.black label [type=password],body.black label [type=search],body.black label [type=tel],body.black label [type=text],body.black label [type=time],body.black label [type=url],body.black label [type=week],body.black label input:not([type]),body.black label input[type=text],body.black label textarea{border-bottom:solid #000;background:#fff;color:#000}body.black label [type=color]:focus,body.black label [type=date]:focus,body.black label [type=datetime-local]:focus,body.black label [type=datetime]:focus,body.black label [type=email]:focus,body.black label [type=month]:focus,body.black label [type=number]:focus,body.black label [type=password]:focus,body.black label [type=search]:focus,body.black label [type=tel]:focus,body.black label [type=text]:focus,body.black label [type=time]:focus,body.black label [type=url]:focus,body.black label [type=week]:focus,body.black label input:not([type]):focus,body.black label input[type=text]:focus,body.black label textarea:focus{border-bottom:solid #000}body.black label [type=color].notEmpty:not(:focus)~span,body.black label [type=color]:focus~span,body.black label [type=date].notEmpty:not(:focus)~span,body.black label [type=date]:focus~span,body.black label [type=datetime-local].notEmpty:not(:focus)~span,body.black label [type=datetime-local]:focus~span,body.black label [type=datetime].notEmpty:not(:focus)~span,body.black label [type=datetime]:focus~span,body.black label [type=email].notEmpty:not(:focus)~span,body.black label [type=email]:focus~span,body.black label [type=month].notEmpty:not(:focus)~span,body.black label [type=month]:focus~span,body.black label [type=number].notEmpty:not(:focus)~span,body.black label [type=number]:focus~span,body.black label [type=password].notEmpty:not(:focus)~span,body.black label [type=password]:focus~span,body.black label [type=search].notEmpty:not(:focus)~span,body.black label [type=search]:focus~span,body.black label [type=tel].notEmpty:not(:focus)~span,body.black label [type=tel]:focus~span,body.black label [type=text].notEmpty:not(:focus)~span,body.black label [type=text]:focus~span,body.black label [type=time].notEmpty:not(:focus)~span,body.black label [type=time]:focus~span,body.black label [type=url].notEmpty:not(:focus)~span,body.black label [type=url]:focus~span,body.black label [type=week].notEmpty:not(:focus)~span,body.black label [type=week]:focus~span,body.black label input:not([type]).notEmpty:not(:focus)~span,body.black label input:not([type]):focus~span,body.black label input[type=text].notEmpty:not(:focus)~span,body.black label input[type=text]:focus~span,body.black label textarea.notEmpty:not(:focus)~span,body.black label textarea:focus~span{color:#000}body.black label [type=color]~span,body.black label [type=date]~span,body.black label [type=datetime-local]~span,body.black label [type=datetime]~span,body.black label [type=email]~span,body.black label [type=month]~span,body.black label [type=number]~span,body.black label [type=password]~span,body.black label [type=search]~span,body.black label [type=tel]~span,body.black label [type=text]~span,body.black label [type=time]~span,body.black label [type=url]~span,body.black label [type=week]~span,body.black label input:not([type])~span,body.black label input[type=text]~span,body.black label textarea~span{color:rgba(0,0,0,.65)}body.black label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.black input.notEmpty:invalid{background-color:rgba(0,0,0,.65)}body.dark{background:#000;color:#fff}body.dark #cookie-compliance{background-color:#4b4b4b;color:#fff}body.dark #cookie-compliance a.link,body.dark #cookie-compliance a.link:hover{color:#fff;border-bottom-color:#fff}body.dark a.link{text-decoration:none;color:#fff;border-bottom:1px solid #fff}body.dark a.link:hover{color:#fff;border-bottom-color:#fff}body.dark .loader #spinner{stroke:#fff}body.dark nav.top-bar{color:#fff;background:#373737}body.dark .top-bar ul{background:#373737!important}body.dark .top-bar ul a{color:#fff}body.dark .switch input:checked+.slider,body.dark a.button,body.dark a.button.disabled,body.dark a.button.disabled:focus,body.dark a.button.disabled:hover,body.dark a.button:hover,body.dark button.button,body.dark button.button.disabled,body.dark button.button.disabled:focus,body.dark button.button.disabled:hover,body.dark button.button:hover{background-color:#373737}body.dark .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #373737;box-shadow:0 0 1px #373737}body.dark label{color:#fff}body.dark .background .modal{background-color:#000}body.dark svg.fill-color,body.dark svg .fill-color{fill:currentColor}body.dark svg.fill-background,body.dark svg .fill-background{fill:#000}body.dark label [type=color],body.dark label [type=date],body.dark label [type=datetime-local],body.dark label [type=datetime],body.dark label [type=email],body.dark label [type=month],body.dark label [type=number],body.dark label [type=password],body.dark label [type=search],body.dark label [type=tel],body.dark label [type=text],body.dark label [type=time],body.dark label [type=url],body.dark label [type=week],body.dark label input:not([type]),body.dark label input[type=text],body.dark label textarea{border-bottom:solid #fff;background:#000;color:#fff}body.dark label [type=color]:focus,body.dark label [type=date]:focus,body.dark label [type=datetime-local]:focus,body.dark label [type=datetime]:focus,body.dark label [type=email]:focus,body.dark label [type=month]:focus,body.dark label [type=number]:focus,body.dark label [type=password]:focus,body.dark label [type=search]:focus,body.dark label [type=tel]:focus,body.dark label [type=text]:focus,body.dark label [type=time]:focus,body.dark label [type=url]:focus,body.dark label [type=week]:focus,body.dark label input:not([type]):focus,body.dark label input[type=text]:focus,body.dark label textarea:focus{border-bottom:solid #fff}body.dark label [type=color].notEmpty:not(:focus)~span,body.dark label [type=color]:focus~span,body.dark label [type=date].notEmpty:not(:focus)~span,body.dark label [type=date]:focus~span,body.dark label [type=datetime-local].notEmpty:not(:focus)~span,body.dark label [type=datetime-local]:focus~span,body.dark label [type=datetime].notEmpty:not(:focus)~span,body.dark label [type=datetime]:focus~span,body.dark label [type=email].notEmpty:not(:focus)~span,body.dark label [type=email]:focus~span,body.dark label [type=month].notEmpty:not(:focus)~span,body.dark label [type=month]:focus~span,body.dark label [type=number].notEmpty:not(:focus)~span,body.dark label [type=number]:focus~span,body.dark label [type=password].notEmpty:not(:focus)~span,body.dark label [type=password]:focus~span,body.dark label [type=search].notEmpty:not(:focus)~span,body.dark label [type=search]:focus~span,body.dark label [type=tel].notEmpty:not(:focus)~span,body.dark label [type=tel]:focus~span,body.dark label [type=text].notEmpty:not(:focus)~span,body.dark label [type=text]:focus~span,body.dark label [type=time].notEmpty:not(:focus)~span,body.dark label [type=time]:focus~span,body.dark label [type=url].notEmpty:not(:focus)~span,body.dark label [type=url]:focus~span,body.dark label [type=week].notEmpty:not(:focus)~span,body.dark label [type=week]:focus~span,body.dark label input:not([type]).notEmpty:not(:focus)~span,body.dark label input:not([type]):focus~span,body.dark label input[type=text].notEmpty:not(:focus)~span,body.dark label input[type=text]:focus~span,body.dark label textarea.notEmpty:not(:focus)~span,body.dark label textarea:focus~span{color:#fff}body.dark label [type=color]~span,body.dark label [type=date]~span,body.dark label [type=datetime-local]~span,body.dark label [type=datetime]~span,body.dark label [type=email]~span,body.dark label [type=month]~span,body.dark label [type=number]~span,body.dark label [type=password]~span,body.dark label [type=search]~span,body.dark label [type=tel]~span,body.dark label [type=text]~span,body.dark label [type=time]~span,body.dark label [type=url]~span,body.dark label [type=week]~span,body.dark label input:not([type])~span,body.dark label input[type=text]~span,body.dark label textarea~span{color:hsla(0,0%,100%,.65)}body.dark label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.dark input.notEmpty:invalid{background-color:rgba(55,55,55,.65)}@-webkit-keyframes tutorialPointer{0%{top:75%}to{top:25%}}@keyframes tutorialPointer{0%{top:75%}to{top:25%}}.tutorial-blanket{display:none;position:fixed;top:0;bottom:0;left:0;right:0;z-index:9001;background:rgba(98,98,98,.51)}.tutorial .tutorial-blanket{display:block}.tutorial .tutorial-text{color:#fff;font-size:1.5rem;display:-webkit-box;display:-ms-flexbox;display:flex}.tutorial .tutorial-text,.tutorial .tutorial-text *{-webkit-transition:none!important;transition:none!important}.tutorial.step-1 #level .segment-row{position:inherit}.tutorial.step-1 #level .segment-parent:nth-child(3),.tutorial.step-1 #level .segment-parent:nth-child(3).rotating{z-index:9900!important}.tutorial.step-1 .tutorial-text .step-1{display:initial;z-index:9900!important;position:relative}.tutorial.step-2 #level{z-index:9900!important}.tutorial.step-2 .tutorial-text .step-2,.tutorial.step-3 .tutorial-text .step-3{display:initial;z-index:9900!important;position:relative}.tutorial.step-3 #help-button{position:relative;z-index:9900!important;overflow:visible;margin-right:10px;margin-top:10px;-webkit-box-shadow:0 0 10px 5px #fff;box-shadow:0 0 10px 5px #fff}.tutorial.step-4 .tutorial-text .step-4{display:initial;z-index:9900!important;position:relative}.tutorial.step-4 #level .segment-row,.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child{position:inherit}.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child,.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child.rotating{z-index:9900!important}.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child #tutorial-pointer,.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child.rotating #tutorial-pointer{width:.6em;height:.6em;border-radius:50%;left:25%;right:50%;position:absolute;top:75%;bottom:50%;z-index:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-animation:tutorialPointer 2s infinite;animation:tutorialPointer 2s infinite;pointer-events:none}body.red #tutorial-pointer{background:red}body.red #level-number-container.in-main-menu{background:#fff;border-color:#000}body.red .segment.segment-parent{border-color:#555}body.red .segment.segment-parent.layer-2{border-color:#000}body.red #site-content>:not(.won) .segment.locked{border-color:#870015;background-color:red!important}body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.blue #tutorial-pointer{background:#2c58ae}body.blue #level-number-container.in-main-menu{background:#fff;border-color:#000}body.blue .segment.segment-parent{border-color:#555}body.blue .segment.segment-parent.layer-2{border-color:#000}body.blue #site-content>:not(.won) .segment.locked{border-color:#1a3062;background-color:#2c58ae!important}body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.green #tutorial-pointer{background:green}body.green #level-number-container.in-main-menu{background:#fff;border-color:#000}body.green .segment.segment-parent{border-color:#555}body.green .segment.segment-parent.layer-2{border-color:#000}body.green #site-content>:not(.won) .segment.locked{border-color:#003613;background-color:green!important}body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.pink #tutorial-pointer{background:#ff69b4}body.pink #level-number-container.in-main-menu{background:#fff;border-color:#000}body.pink .segment.segment-parent{border-color:#555}body.pink .segment.segment-parent.layer-2{border-color:#000}body.pink #site-content>:not(.won) .segment.locked{border-color:#70374a;background-color:#ff69b4!important}body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.black #tutorial-pointer{background:#000}body.black #level-number-container.in-main-menu{background:#fff;border-color:#000}body.black .segment.segment-parent{border-color:#555}body.black .segment.segment-parent.layer-2{border-color:#000}body.black #site-content>:not(.won) .segment.locked{border-color:#353535;background-color:#000!important}body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.dark #tutorial-pointer{background:#373737}body.dark #level-number-container.in-main-menu{background:#000;border-color:#fff}body.dark .segment.segment-parent{border-color:#9b9b9b}body.dark .segment.segment-parent.layer-2{border-color:#fff}body.dark #site-content>:not(.won) .segment.locked{border-color:#4b4b4b;background-color:#373737!important}body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#000}body.dark .switch input:checked+.slider{border-color:#000}body.dark .switch .slider{border:1px solid #fff;background-color:inherit;padding:1px}body.dark #site-content>:not(.won) .segment.locked.layer-2{border-color:#565656}body.dark .modal{border:1px solid #fff;border-radius:2px}body.black #site-content>:not(.won) .segment.locked{background-color:#9d9d9d!important;border-color:#6e6e6e!important}body.black #site-content>:not(.won) .segment.locked>.child-container>.segment-leaf{background-color:transparent!important}body.black #logo{border:1px solid grey;border-radius:50%}body label{font-size:1em!important}body .setting-row:not(.hidden){line-height:1;padding-top:.5em;padding-bottom:.5em;width:100%;cursor:pointer;background:hsla(0,0%,76%,.13);display:inline-block}nav.top-bar.title-bar{padding:.3rem .6rem 0}#logo{max-width:2rem;-webkit-transition:none;transition:none}#action-bar .top-bar-right .menu .action.img a{padding-bottom:0}#action-bar .top-bar-right .menu .action.img a img{max-height:1.8rem}.dropdown.menu a,.menu a{padding:.2rem .5rem}#level-number-container{z-index:1;-webkit-transition:none;transition:none;position:absolute;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%);border:3px solid #fff;border-radius:50%;visibility:hidden;display:table-cell;height:35px;width:35px;text-align:center;vertical-align:middle}#level-number-container.visible{visibility:visible}#level-number-container.in-main-menu{background:#fff;border-color:#000;height:1em;width:1em;min-height:1em;min-width:1em;max-height:1em;max-width:1em}#level-number-container #level-number{-webkit-transition:none;transition:none;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-weight:700}.coin-counter{display:inline-block;position:relative;font-size:1.6rem}@media screen and (max-width:24.9375em){.coin-counter{font-size:1rem}}.coin-counter :after{background-image:url(../img/coinTower.png);background-size:28px 28px;width:28px;height:28px;display:inline-block;content:""}#coin-container{line-height:1}#coin-container .coin{margin-left:3px;margin-right:3px;max-width:20px;display:inline-block}@media print,screen and (min-width:25em){#coin-container .coin{max-width:25px}}@media print,screen and (min-width:40em){#coin-container .coin{max-width:30px}}@-webkit-keyframes rotate-90{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@keyframes rotate-90{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@-webkit-keyframes rotate-reverse-90{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@keyframes rotate-reverse-90{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@-webkit-keyframes rotate-180{0%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes rotate-180{0%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@-webkit-keyframes rotate-reverse-180{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes rotate-reverse-180{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@-webkit-keyframes rotate-270{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@keyframes rotate-270{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes rotate-reverse-270{0%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@keyframes rotate-reverse-270{0%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes rotate-360{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-360{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes rotate-reverse-360{0%{-webkit-transform:rotate(450deg);transform:rotate(450deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-reverse-360{0%{-webkit-transform:rotate(450deg);transform:rotate(450deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.segment:not(.segment-row):not(.segment-triangle).rotating{z-index:10!important;overflow:hidden}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-90{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-180{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-270{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-360{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180,.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-90{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-180{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-270{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-360{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-90{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-180{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-270{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-360{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment{-webkit-transform:rotate(0deg);transform:rotate(0deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-360{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}#level{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;max-width:100%;-webkit-tap-highlight-color:rgba(255,255,255,0);overflow-y:visible}#level,#level *,.segment{-webkit-transition:none;transition:none}.segment{vertical-align:top;white-space:normal;cursor:pointer;display:inline-block;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1;background-color:inherit;line-height:0}.segment.segment-row{display:block;width:100%;-webkit-animation:none!important;animation:none!important;white-space:nowrap}.segment.segment-leaf{background-color:transparent!important;min-width:1em;padding:.8em}.segment.segment-leaf:before{content:" ";display:block;padding-top:100%}.segment.segment-leaf .leaf-element{position:absolute;width:100%;height:100%;line-height:1.5em;top:0;left:0}.segment.segment-parent{border:1px solid #a9a9a9;border-radius:3px;padding:1px}.segment.segment-parent.layer-2{border:3px solid #000}#site-content>:not(.won) .show-when-won{display:none}.level-container{-webkit-transition:none;transition:none}.won .show-while-playing{display:none}.text-right{text-align:right}#continue-button{margin-bottom:2px}@media screen and (max-width:24.9375em){#continue-button{margin-bottom:0;padding:.3em .6em}}@media screen and (max-width:24.9375em){#play-button{margin-bottom:2px}}#help-button{margin:0;padding:.4em;max-width:3em}@media screen and (max-width:39.9375em){#help-button{padding:.2em;max-width:2em}}.line-height-1{line-height:1}body{overscroll-behavior:contain;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#site-content{overflow:visible}div.mainContainer{overflow-x:hidden}.clickable{cursor:pointer}#share-button svg{cursor:pointer;max-width:1.5rem} \ No newline at end of file +.top-bar-title{white-space:nowrap}#action-bar .close-listener{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;z-index:9000}#action-bar #responsive-menu .top-bar-right{position:relative;text-align:right;width:100%}#action-bar .top-bar-right{width:auto}#action-bar .top-bar-right .menu.action-bar a img+span{display:none}#action-bar .top-bar-right .menu.action-bar .action{position:relative;z-index:9000}#action-bar .top-bar-right .menu.action-bar .action.is-dropdown-submenu-parent{z-index:9001}#action-bar .top-bar-right .menu.action-bar .action.hidden{display:none}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu.action-bar .action.smedium{display:none}}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu.action-bar .action li{display:table-cell}#action-bar .top-bar-right .menu.action-bar .action.medium{display:none}}@media screen and (max-width:63.9375em){#action-bar .top-bar-right .menu.action-bar .action.large{display:none}}#action-bar .top-bar-right .menu.action-bar .action.never{display:none}#action-bar .top-bar-right .menu.action-bar.hidden{display:inline-block;position:absolute;z-index:9000;border:1px solid #cacaca;padding:.2rem;-webkit-transform:translateX(-100%);transform:translateX(-100%);text-align:left}#action-bar .top-bar-right .menu.action-bar.hidden .action.hidden{display:none}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent{z-index:9001}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu{top:auto}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu>.close-listener,#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu>li.action{z-index:9001}#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border:6px inset;content:"";border-bottom-width:0;border-top-style:solid;border-color:#fff transparent transparent;right:5px;left:auto;margin-top:-3px}#action-bar .top-bar-right .menu.action-bar.hidden .action a{white-space:nowrap}#action-bar .top-bar-right .menu.action-bar.hidden .action a img{display:none}#action-bar .top-bar-right .menu.action-bar.hidden .action a img+span{display:inherit}@media print,screen and (min-width:40em){#action-bar .top-bar-right .menu.action-bar.hidden .action.medium{display:none}}@media print,screen and (min-width:25em){#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium{display:none}}@media print,screen and (min-width:64em){#action-bar .top-bar-right .menu.action-bar.hidden .action.large{display:none}}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium.hidden{display:none}}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu.action-bar.hidden .action.medium{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.medium.hidden{display:none}}@media screen and (max-width:63.9375em){#action-bar .top-bar-right .menu.action-bar.hidden .action.large{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.large.hidden{display:none}}#action-bar .top-bar-right .menu.action-bar.hidden .action.never{display:block}#action-bar .top-bar-right .menu.action-bar.hidden .action.always,#action-bar .top-bar-right .menu.action-bar.hidden .action.never.hidden{display:none}#action-bar .top-bar-right .menu .action{z-index:100}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu .action a{width:100%;padding-left:.68rem}}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu .action a{padding-left:.236rem}}@media screen and (max-width:39.9375em){#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a{padding-right:.68rem}}@media screen and (max-width:24.9375em){#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a{padding-right:.236rem}}#action-bar .top-bar-right .menu .action.img a{padding-top:0}#action-bar .top-bar-right .menu .action.img a img{vertical-align:inherit;max-height:1.4rem}#action-bar .top-bar-right .menu>li>ul.is-dropdown-submenu{min-width:0}#action-bar .top-bar-right .menu>li>ul.is-dropdown-submenu .action{display:inherit}#action-bar .top-bar-right .menu>li.opens-right>ul.is-dropdown-submenu{right:auto;left:auto}#action-bar .top-bar-right .menu>li.opens-right>ul.is-dropdown-submenu a{text-align:left}.dropdown.menu>li.is-dropdown-submenu-parent>a:after{border-color:#fff transparent transparent}form{position:relative}.sending .sending-loader{position:absolute;background-color:hsla(0,0%,49%,.3);display:block;pointer-events:all;width:100%;height:100%;top:0;left:0;bottom:0;right:0;z-index:10;border-radius:2px}.sending .sending-loader .loader{position:absolute}.sending-loader{display:none}label{position:relative}label [type=color],label [type=date],label [type=datetime-local],label [type=datetime],label [type=email],label [type=month],label [type=number],label [type=password],label [type=search],label [type=tel],label [type=text],label [type=time],label [type=url],label [type=week],label input:not([type]),label input[type=text],label textarea{display:block;width:100%;height:2.4375rem;padding:.5rem;-webkit-box-shadow:none!important;box-shadow:none!important;font-size:1rem;font-weight:400;line-height:1.5;border:none;outline:0;margin:0 0 15px}label [type=color]:focus,label [type=date]:focus,label [type=datetime-local]:focus,label [type=datetime]:focus,label [type=email]:focus,label [type=month]:focus,label [type=number]:focus,label [type=password]:focus,label [type=search]:focus,label [type=tel]:focus,label [type=text]:focus,label [type=time]:focus,label [type=url]:focus,label [type=week]:focus,label input:not([type]):focus,label input[type=text]:focus,label textarea:focus{border:none;-webkit-box-shadow:none!important;box-shadow:none!important}label [type=color].notEmpty:not(:focus)~span,label [type=color]:focus~span,label [type=date].notEmpty:not(:focus)~span,label [type=date]:focus~span,label [type=datetime-local].notEmpty:not(:focus)~span,label [type=datetime-local]:focus~span,label [type=datetime].notEmpty:not(:focus)~span,label [type=datetime]:focus~span,label [type=email].notEmpty:not(:focus)~span,label [type=email]:focus~span,label [type=month].notEmpty:not(:focus)~span,label [type=month]:focus~span,label [type=number].notEmpty:not(:focus)~span,label [type=number]:focus~span,label [type=password].notEmpty:not(:focus)~span,label [type=password]:focus~span,label [type=search].notEmpty:not(:focus)~span,label [type=search]:focus~span,label [type=tel].notEmpty:not(:focus)~span,label [type=tel]:focus~span,label [type=text].notEmpty:not(:focus)~span,label [type=text]:focus~span,label [type=time].notEmpty:not(:focus)~span,label [type=time]:focus~span,label [type=url].notEmpty:not(:focus)~span,label [type=url]:focus~span,label [type=week].notEmpty:not(:focus)~span,label [type=week]:focus~span,label input:not([type]).notEmpty:not(:focus)~span,label input:not([type]):focus~span,label input[type=text].notEmpty:not(:focus)~span,label input[type=text]:focus~span,label textarea.notEmpty:not(:focus)~span,label textarea:focus~span{top:-11px;left:0;bottom:0;font-size:11px;opacity:1}label [type=color]~span,label [type=date]~span,label [type=datetime-local]~span,label [type=datetime]~span,label [type=email]~span,label [type=month]~span,label [type=number]~span,label [type=password]~span,label [type=search]~span,label [type=tel]~span,label [type=text]~span,label [type=time]~span,label [type=url]~span,label [type=week]~span,label input:not([type])~span,label input[type=text]~span,label textarea~span{position:absolute;pointer-events:none;left:10px;bottom:10px;top:7px;-webkit-transition:all .2s ease;transition:all .2s ease}label textarea{height:10rem;border-top-right-radius:3px;border-top-left-radius:3px}label [type=checkbox].before-text{margin-bottom:0}.listjs{position:relative}.listjs label{display:inline-block}.listjs label input{margin-bottom:0}.listjs table{border-collapse:collapse}.listjs table tfoot tr th,.listjs table thead tr th{text-align:left}.listjs table tfoot tr th.sort,.listjs table thead tr th.sort{cursor:pointer}.listjs table tbody.list tr:first-child td{border-top:1px solid #696969}.listjs table tbody.list tr:last-child td{border-bottom:1px solid #696969}.listjs table tbody.list tr td{border-top:1px solid #c8c8c8;padding:.3rem}.listjs ul.pagination{float:right;display:inline-block;margin:0}.listjs ul.pagination li{display:inline-block;padding-left:5px;padding-right:5px;text-decoration:underline}.listjs ul.pagination li.active,.listjs ul.pagination li.disabled{text-decoration:none}.background{position:fixed;z-index:1000000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(55,55,55,.6)}.background .modal{position:relative;top:50%;margin:auto;width:80%;-webkit-transform:translateY(-50%);transform:translateY(-50%);padding:.5rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-height:80%;max-width:1024px}@media screen and (max-width:63.9375em){.background .modal.small-margin{width:90%}}@media screen and (max-width:24.9375em){.background .modal.small-margin{width:95%}}.background .modal.max-small{max-width:0}.background .modal.max-smedium{max-width:400px}.background .modal.max-medium{max-width:640px}.background .modal.max-large{max-width:1024px}.background .modal.max-xlarge{max-width:1200px}.background .modal.max-xxlarge{max-width:1440px}.background .modal .title{font-weight:700;padding-bottom:.5rem}.background .modal .content-container{overflow-y:auto;max-height:100%}.background .modal .content-container .loader{position:static;-webkit-transform:none;transform:none}.background .modal .close{text-align:right;float:right;font-size:28px;font-weight:700;line-height:1}.background .modal .close:focus,.background .modal .close:hover{text-decoration:none;cursor:pointer}.background .modal .modal-button-container{padding-top:.5rem}.background .modal .modal-button-container .button{margin-left:.2rem;margin-bottom:0!important;padding:.6em .8em}@media screen and (max-width:24.9375em){.background .modal .modal-button-container .button{margin-left:.1rem;padding:.3em .5em}}.rotated{-webkit-transform-origin:bottom center;transform-origin:bottom center;height:50%;position:absolute;top:0;bottom:0;left:0;right:0}.share-icon{margin:.1rem}.share-icon,.share-icon svg{width:1.5rem;max-width:1.5rem}.tab-header-container .tab-header{display:inline-block;background-color:#eee;border:1px solid #b0b0b0;border-top-left-radius:4px;border-top-right-radius:4px;padding:0 5px}.tab-header-container .tab-header.active{border-bottom:0;background-color:#fff}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}html{width:100%;font-size:18px;letter-spacing:1px}.max-height,html{min-height:100%;height:100%}body{margin:0;padding:0;height:100%;width:100%;font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:#fefefe;color:#0a0a0a}footer{border-top:1px solid #d8d8d8;text-align:center}.top-bar .top-bar-title strong{vertical-align:middle;display:inline-block}nav.top-bar{color:#fff;font-size:20px;-webkit-box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 2px 9px 1px rgba(0,0,0,.12),0 4px 2px -2px rgba(0,0,0,.2);box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 2px 9px 1px rgba(0,0,0,.12),0 4px 2px -2px rgba(0,0,0,.2);padding:.6rem;display:block}a.button,button.button{border-radius:2px}.fill-me{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.fill-me,.fill-me.vertical{-webkit-box-direction:normal}.fill-me.vertical{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.fill-me .grow{-webkit-box-flex:1;-ms-flex:1;flex:1}.flex-center{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.flex-center>*{max-height:100%}.dropdown.menu a,.menu a{padding:.4rem .5rem}svg path{fill:currentColor}div.mainContainer{position:relative;max-height:100%;max-width:100%;overflow:auto;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:.5rem}div.mainContainer #main-content,div.mainContainer #site-content,div.mainContainer>.row{position:absolute;width:100%;height:100%;top:0;bottom:0;left:0;right:0}.inline-block{display:inline-block}.right{float:right}#logo-img{max-height:2.2rem}a{cursor:pointer}a,a.hidden-link{text-decoration:none;color:inherit}label{cursor:pointer}.align-right{text-align:right}.view-panel{display:none}.loader{left:50%;top:50%;position:fixed;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center}.loader.inline{left:auto;top:auto;position:static;-webkit-transform:initial;transform:none;text-align:center;display:inline}.loader.small #spinner{-webkit-transform:scale(.5);transform:scale(.5)}.loader #spinner{-webkit-box-sizing:border-box;box-sizing:border-box;stroke:#b71c1a;stroke-width:3px;-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation:line 1.6s cubic-bezier(.4,0,.2,1) infinite,rotate 1.6s linear infinite;animation:line 1.6s cubic-bezier(.4,0,.2,1) infinite,rotate 1.6s linear infinite}@-webkit-keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(450deg);transform:rotate(450deg)}}@keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(450deg);transform:rotate(450deg)}}@-webkit-keyframes line{0%{stroke-dasharray:2,85.964;-webkit-transform:rotate(0);transform:rotate(0)}50%{stroke-dasharray:65.973,21.9911;stroke-dashoffset:0}to{stroke-dasharray:2,85.964;stroke-dashoffset:-65.973;-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@keyframes line{0%{stroke-dasharray:2,85.964;-webkit-transform:rotate(0);transform:rotate(0)}50%{stroke-dasharray:65.973,21.9911;stroke-dashoffset:0}to{stroke-dasharray:2,85.964;stroke-dashoffset:-65.973;-webkit-transform:rotate(90deg);transform:rotate(90deg)}}#print-content{display:none}.action-button{max-height:1.7rem;margin-left:.4rem;margin-right:.4rem}.action-button:hover{background:#e8e8e8}.vcenter-container{width:100%;height:100%;display:table}.vcenter-container .vcenter{vertical-align:middle;display:table-cell;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.max-width{width:100%}button,input{letter-spacing:1px!important}.no-padding{padding:0;border:0}.center{text-align:center}@media print{#styles,.mainContainer,footer,nav{display:none!important}#print-content{display:block!important}}.overflow-y-auto{overflow-y:auto!important}.row.no-after:after{content:normal}.margin-bottom{margin-bottom:1rem}@media print,screen and (min-width:25em){.margin-bottom{margin-bottom:2rem}}@media print,screen and (min-width:40em){.margin-bottom{margin-bottom:3rem}}@media print,screen and (min-width:64em){.margin-bottom{margin-bottom:4rem}}@media screen and (min-width:75em){.margin-bottom{margin-bottom:5rem}}.font-small{font-size:.7em}.border-bottom{border-bottom:1px solid #cacaca}.border-right{border-right:1px solid #cacaca}.border-left{border-left:1px solid #cacaca}img.logo{vertical-align:inherit;display:inline-block;height:auto;max-width:1.1rem;margin-right:2px}.align-center{text-align:center}hr.separator{margin:1rem 0}.button-line{display:-webkit-box;display:-ms-flexbox;display:flex}.button-line .button{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1px;margin-right:1px;padding:.5rem .77rem}@media screen and (max-width:24.9375em){.small-small{font-size:small}}select{border:0;padding:.3rem}.hidden{display:none}img.action-image{max-height:1.4rem;cursor:pointer}img.back-button{max-height:.6rem;margin-right:.2rem;cursor:pointer;vertical-align:inherit}.no-margin-bottom{margin-bottom:0}div.flashMessage{font-size:.8rem;border-radius:25px;letter-spacing:0;z-index:1001;max-width:100%;display:inline-block;position:relative;-webkit-box-shadow:2px 2px 10px rgba(0,0,0,.28);box-shadow:2px 2px 10px rgba(0,0,0,.28);border:1px solid #626262;background-color:#6b6b6b;padding:.3em .6em;text-align:center;color:#fff}div.flashMessage:hover{opacity:.4;cursor:pointer}div.flashMessage:after,div.flashMessage:before{display:block;content:""}span.flashMessage{float:right;cursor:pointer}div.default{background-color:#1a9cc8}#flashMessageContainer{text-align:center;position:absolute}#flashMessageContainer,#flashMessageContainerAbsoulte{height:0!important;width:100%;overflow:visible!important}#flashMessageContainerAbsoulte{margin:5px 0;position:relative}.relative{position:relative}.no-transition,.no-transition *{-webkit-transition:none!important;transition:none!important}.settings-container{border:1px solid #000;border-radius:2px;padding:.3rem}@media print,screen and (min-width:40em){.settings-container #settings-fragments-container{border-left:1px solid #cacaca}}.settings-container #settings-fragments-container #settings-fragments>*{display:none}.settings-container #settings-fragments-container #settings-fragments>.active{display:block}.switch{position:relative;display:inline-block}@media screen and (max-width:24.9375em){.switch{font-size:.6em}}@media screen and (max-width:39.9375em){.switch{font-size:.7em}}.switch input{display:none}.switch input:checked+.slider:before{-webkit-transform:translateX(1.5em);transform:translateX(1.5em)}.switch .slider{display:inline-block;position:relative;cursor:pointer;width:3em;height:1.5em;border-radius:1.5em;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.switch .slider:before{position:absolute;content:"";height:1.1em;width:1.1em;left:.15em;bottom:.15em;background-color:#fff;-webkit-transition:.4s;transition:.4s;border-radius:50%}.switch img,.switch svg{width:1.4em;display:inline;vertical-align:initial}.switch img path,.switch svg path{stroke-color:inherit}.zf-green{color:#68b604}.column:last-child:not(:first-child),.columns:last-child:not(:first-child){float:left}input[type=checkBox].form-control{height:24px;height:1.5rem;width:100%}[type=submit]{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:39px;height:2.4375rem;padding:8px;padding:.5rem;border:1px solid #cacaca;margin:0 0 16px;margin:0 0 1rem;font-family:inherit;font-size:16px;font-size:1rem;color:#0a0a0a;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px hsla(0,0%,4%,.1);box-shadow:inset 0 1px 2px hsla(0,0%,4%,.1);border-radius:0;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none}form ul li{color:red;font-size:12.8px;font-size:.8rem}.button-dropdown:after{border-color:#000 transparent transparent;border-width:.4em;border-style:solid;content:"";position:absolute;top:.4em;display:block;height:0;width:0;right:1em}.button-dropdown{position:relative;display:block;padding-right:2em}.button-dropdown.open:after{border-color:transparent transparent #000;top:0}a.ui-datepicker-next,a.ui-datepicker-prev{height:100%!important}div.container a.navbar-brand>img{display:inline;margin-right:4px}ul.menu.plain li.active a{background-color:#ededed;color:#000}ul.menu.plain li a{color:#000}ul.menu.plain li a:hover{color:#525252}ul.submenu{border-top:1px solid #bcbcbc;border-bottom:1px solid #bcbcbc;margin-left:10px}#cookie-compliance{line-height:1.2;font-size:.8rem;width:100%;margin:0;padding:.3rem 0}#cookie-compliance #close-cookie-msg{float:right;margin-bottom:0;margin-right:3px;padding:.4rem .8rem}.menu-container .button{text-align:center;width:100%}.height-5{height:5%}.max-height-5{max-height:5%}.width-5{width:5%}.max-width-5{max-width:5%}.height-10{height:10%}.max-height-10{max-height:10%}.width-10{width:10%}.max-width-10{max-width:10%}.height-15{height:15%}.max-height-15{max-height:15%}.width-15{width:15%}.max-width-15{max-width:15%}.height-20{height:20%}.max-height-20{max-height:20%}.width-20{width:20%}.max-width-20{max-width:20%}.height-25{height:25%}.max-height-25{max-height:25%}.width-25{width:25%}.max-width-25{max-width:25%}.height-30{height:30%}.max-height-30{max-height:30%}.width-30{width:30%}.max-width-30{max-width:30%}.height-35{height:35%}.max-height-35{max-height:35%}.width-35{width:35%}.max-width-35{max-width:35%}.height-40{height:40%}.max-height-40{max-height:40%}.width-40{width:40%}.max-width-40{max-width:40%}.height-45{height:45%}.max-height-45{max-height:45%}.width-45{width:45%}.max-width-45{max-width:45%}.height-50{height:50%}.max-height-50{max-height:50%}.width-50{width:50%}.max-width-50{max-width:50%}.height-55{height:55%}.max-height-55{max-height:55%}.width-55{width:55%}.max-width-55{max-width:55%}.height-60{height:60%}.max-height-60{max-height:60%}.width-60{width:60%}.max-width-60{max-width:60%}.height-65{height:65%}.max-height-65{max-height:65%}.width-65{width:65%}.max-width-65{max-width:65%}.height-70{height:70%}.max-height-70{max-height:70%}.width-70{width:70%}.max-width-70{max-width:70%}.height-75{height:75%}.max-height-75{max-height:75%}.width-75{width:75%}.max-width-75{max-width:75%}.height-80{height:80%}.max-height-80{max-height:80%}.width-80{width:80%}.max-width-80{max-width:80%}.height-85{height:85%}.max-height-85{max-height:85%}.width-85{width:85%}.max-width-85{max-width:85%}.height-90{height:90%}.max-height-90{max-height:90%}.width-90{width:90%}.max-width-90{max-width:90%}.height-95{height:95%}.max-height-95{max-height:95%}.width-95{width:95%}.max-width-95{max-width:95%}.height-100{height:100%}.max-height-100{max-height:100%}.width-100{width:100%}.max-width-100{max-width:100%}*{-webkit-transition:.25s ease-out,color .25s ease-out;transition:.25s ease-out,color .25s ease-out}body.red{background:#fff;color:#000}body.red #cookie-compliance{background-color:#870015;color:#fff}body.red #cookie-compliance a.link,body.red #cookie-compliance a.link:hover{color:#ff3d00;border-bottom-color:#ff3d00}body.red a.link{text-decoration:none;color:#ff3d00;border-bottom:none}body.red a.link:hover{color:#ff3d00;border-bottom-color:#ff3d00}body.red .loader #spinner{stroke:#b71c1a}body.red nav.top-bar{color:#fff;background:red}body.red .top-bar ul{background:red!important}body.red .top-bar ul a{color:#fff}body.red .switch input:checked+.slider,body.red a.button,body.red a.button.disabled,body.red a.button.disabled:focus,body.red a.button.disabled:hover,body.red a.button:hover,body.red button.button,body.red button.button.disabled,body.red button.button.disabled:focus,body.red button.button.disabled:hover,body.red button.button:hover{background-color:red}body.red .switch input:focus+.slider{-webkit-box-shadow:0 0 1px red;box-shadow:0 0 1px red}body.red label{color:#000}body.red .background .modal{background-color:#fff}body.red svg.fill-color,body.red svg .fill-color{fill:currentColor}body.red svg.fill-background,body.red svg .fill-background{fill:#fff}body.red label [type=color],body.red label [type=date],body.red label [type=datetime-local],body.red label [type=datetime],body.red label [type=email],body.red label [type=month],body.red label [type=number],body.red label [type=password],body.red label [type=search],body.red label [type=tel],body.red label [type=text],body.red label [type=time],body.red label [type=url],body.red label [type=week],body.red label input:not([type]),body.red label input[type=text],body.red label textarea{border-bottom:solid #000;background:#fff;color:#000}body.red label [type=color]:focus,body.red label [type=date]:focus,body.red label [type=datetime-local]:focus,body.red label [type=datetime]:focus,body.red label [type=email]:focus,body.red label [type=month]:focus,body.red label [type=number]:focus,body.red label [type=password]:focus,body.red label [type=search]:focus,body.red label [type=tel]:focus,body.red label [type=text]:focus,body.red label [type=time]:focus,body.red label [type=url]:focus,body.red label [type=week]:focus,body.red label input:not([type]):focus,body.red label input[type=text]:focus,body.red label textarea:focus{border-bottom:solid #000}body.red label [type=color].notEmpty:not(:focus)~span,body.red label [type=color]:focus~span,body.red label [type=date].notEmpty:not(:focus)~span,body.red label [type=date]:focus~span,body.red label [type=datetime-local].notEmpty:not(:focus)~span,body.red label [type=datetime-local]:focus~span,body.red label [type=datetime].notEmpty:not(:focus)~span,body.red label [type=datetime]:focus~span,body.red label [type=email].notEmpty:not(:focus)~span,body.red label [type=email]:focus~span,body.red label [type=month].notEmpty:not(:focus)~span,body.red label [type=month]:focus~span,body.red label [type=number].notEmpty:not(:focus)~span,body.red label [type=number]:focus~span,body.red label [type=password].notEmpty:not(:focus)~span,body.red label [type=password]:focus~span,body.red label [type=search].notEmpty:not(:focus)~span,body.red label [type=search]:focus~span,body.red label [type=tel].notEmpty:not(:focus)~span,body.red label [type=tel]:focus~span,body.red label [type=text].notEmpty:not(:focus)~span,body.red label [type=text]:focus~span,body.red label [type=time].notEmpty:not(:focus)~span,body.red label [type=time]:focus~span,body.red label [type=url].notEmpty:not(:focus)~span,body.red label [type=url]:focus~span,body.red label [type=week].notEmpty:not(:focus)~span,body.red label [type=week]:focus~span,body.red label input:not([type]).notEmpty:not(:focus)~span,body.red label input:not([type]):focus~span,body.red label input[type=text].notEmpty:not(:focus)~span,body.red label input[type=text]:focus~span,body.red label textarea.notEmpty:not(:focus)~span,body.red label textarea:focus~span{color:#000}body.red label [type=color]~span,body.red label [type=date]~span,body.red label [type=datetime-local]~span,body.red label [type=datetime]~span,body.red label [type=email]~span,body.red label [type=month]~span,body.red label [type=number]~span,body.red label [type=password]~span,body.red label [type=search]~span,body.red label [type=tel]~span,body.red label [type=text]~span,body.red label [type=time]~span,body.red label [type=url]~span,body.red label [type=week]~span,body.red label input:not([type])~span,body.red label input[type=text]~span,body.red label textarea~span{color:rgba(0,0,0,.65)}body.red label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.red input.notEmpty:invalid{background-color:rgba(255,0,0,.65)}body.blue{background:#fff;color:#000}body.blue #cookie-compliance{background-color:#1a3062;color:#fff}body.blue #cookie-compliance a.link,body.blue #cookie-compliance a.link:hover{color:#546cfe;border-bottom-color:#546cfe}body.blue a.link{text-decoration:none;color:#546cfe;border-bottom:none}body.blue a.link:hover{color:#546cfe;border-bottom-color:#546cfe}body.blue .loader #spinner{stroke:#673ab7}body.blue nav.top-bar{color:#fff;background:#2c58ae}body.blue .top-bar ul{background:#2c58ae!important}body.blue .top-bar ul a{color:#fff}body.blue .switch input:checked+.slider,body.blue a.button,body.blue a.button.disabled,body.blue a.button.disabled:focus,body.blue a.button.disabled:hover,body.blue a.button:hover,body.blue button.button,body.blue button.button.disabled,body.blue button.button.disabled:focus,body.blue button.button.disabled:hover,body.blue button.button:hover{background-color:#2c58ae}body.blue .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #2c58ae;box-shadow:0 0 1px #2c58ae}body.blue label{color:#000}body.blue .background .modal{background-color:#fff}body.blue svg.fill-color,body.blue svg .fill-color{fill:currentColor}body.blue svg.fill-background,body.blue svg .fill-background{fill:#fff}body.blue label [type=color],body.blue label [type=date],body.blue label [type=datetime-local],body.blue label [type=datetime],body.blue label [type=email],body.blue label [type=month],body.blue label [type=number],body.blue label [type=password],body.blue label [type=search],body.blue label [type=tel],body.blue label [type=text],body.blue label [type=time],body.blue label [type=url],body.blue label [type=week],body.blue label input:not([type]),body.blue label input[type=text],body.blue label textarea{border-bottom:solid #000;background:#fff;color:#000}body.blue label [type=color]:focus,body.blue label [type=date]:focus,body.blue label [type=datetime-local]:focus,body.blue label [type=datetime]:focus,body.blue label [type=email]:focus,body.blue label [type=month]:focus,body.blue label [type=number]:focus,body.blue label [type=password]:focus,body.blue label [type=search]:focus,body.blue label [type=tel]:focus,body.blue label [type=text]:focus,body.blue label [type=time]:focus,body.blue label [type=url]:focus,body.blue label [type=week]:focus,body.blue label input:not([type]):focus,body.blue label input[type=text]:focus,body.blue label textarea:focus{border-bottom:solid #000}body.blue label [type=color].notEmpty:not(:focus)~span,body.blue label [type=color]:focus~span,body.blue label [type=date].notEmpty:not(:focus)~span,body.blue label [type=date]:focus~span,body.blue label [type=datetime-local].notEmpty:not(:focus)~span,body.blue label [type=datetime-local]:focus~span,body.blue label [type=datetime].notEmpty:not(:focus)~span,body.blue label [type=datetime]:focus~span,body.blue label [type=email].notEmpty:not(:focus)~span,body.blue label [type=email]:focus~span,body.blue label [type=month].notEmpty:not(:focus)~span,body.blue label [type=month]:focus~span,body.blue label [type=number].notEmpty:not(:focus)~span,body.blue label [type=number]:focus~span,body.blue label [type=password].notEmpty:not(:focus)~span,body.blue label [type=password]:focus~span,body.blue label [type=search].notEmpty:not(:focus)~span,body.blue label [type=search]:focus~span,body.blue label [type=tel].notEmpty:not(:focus)~span,body.blue label [type=tel]:focus~span,body.blue label [type=text].notEmpty:not(:focus)~span,body.blue label [type=text]:focus~span,body.blue label [type=time].notEmpty:not(:focus)~span,body.blue label [type=time]:focus~span,body.blue label [type=url].notEmpty:not(:focus)~span,body.blue label [type=url]:focus~span,body.blue label [type=week].notEmpty:not(:focus)~span,body.blue label [type=week]:focus~span,body.blue label input:not([type]).notEmpty:not(:focus)~span,body.blue label input:not([type]):focus~span,body.blue label input[type=text].notEmpty:not(:focus)~span,body.blue label input[type=text]:focus~span,body.blue label textarea.notEmpty:not(:focus)~span,body.blue label textarea:focus~span{color:#000}body.blue label [type=color]~span,body.blue label [type=date]~span,body.blue label [type=datetime-local]~span,body.blue label [type=datetime]~span,body.blue label [type=email]~span,body.blue label [type=month]~span,body.blue label [type=number]~span,body.blue label [type=password]~span,body.blue label [type=search]~span,body.blue label [type=tel]~span,body.blue label [type=text]~span,body.blue label [type=time]~span,body.blue label [type=url]~span,body.blue label [type=week]~span,body.blue label input:not([type])~span,body.blue label input[type=text]~span,body.blue label textarea~span{color:rgba(0,0,0,.65)}body.blue label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.blue input.notEmpty:invalid{background-color:rgba(44,88,174,.65)}body.green{background:#fff;color:#000}body.green #cookie-compliance{background-color:#003613;color:#fff}body.green #cookie-compliance a.link,body.green #cookie-compliance a.link:hover{color:#009829;border-bottom-color:#009829}body.green a.link{text-decoration:none;color:#009829;border-bottom:none}body.green a.link:hover{color:#009829;border-bottom-color:#009829}body.green .loader #spinner{stroke:green}body.green nav.top-bar{color:#fff;background:green}body.green .top-bar ul{background:green!important}body.green .top-bar ul a{color:#fff}body.green .switch input:checked+.slider,body.green a.button,body.green a.button.disabled,body.green a.button.disabled:focus,body.green a.button.disabled:hover,body.green a.button:hover,body.green button.button,body.green button.button.disabled,body.green button.button.disabled:focus,body.green button.button.disabled:hover,body.green button.button:hover{background-color:green}body.green .switch input:focus+.slider{-webkit-box-shadow:0 0 1px green;box-shadow:0 0 1px green}body.green label{color:#000}body.green .background .modal{background-color:#fff}body.green svg.fill-color,body.green svg .fill-color{fill:currentColor}body.green svg.fill-background,body.green svg .fill-background{fill:#fff}body.green label [type=color],body.green label [type=date],body.green label [type=datetime-local],body.green label [type=datetime],body.green label [type=email],body.green label [type=month],body.green label [type=number],body.green label [type=password],body.green label [type=search],body.green label [type=tel],body.green label [type=text],body.green label [type=time],body.green label [type=url],body.green label [type=week],body.green label input:not([type]),body.green label input[type=text],body.green label textarea{border-bottom:solid #000;background:#fff;color:#000}body.green label [type=color]:focus,body.green label [type=date]:focus,body.green label [type=datetime-local]:focus,body.green label [type=datetime]:focus,body.green label [type=email]:focus,body.green label [type=month]:focus,body.green label [type=number]:focus,body.green label [type=password]:focus,body.green label [type=search]:focus,body.green label [type=tel]:focus,body.green label [type=text]:focus,body.green label [type=time]:focus,body.green label [type=url]:focus,body.green label [type=week]:focus,body.green label input:not([type]):focus,body.green label input[type=text]:focus,body.green label textarea:focus{border-bottom:solid #000}body.green label [type=color].notEmpty:not(:focus)~span,body.green label [type=color]:focus~span,body.green label [type=date].notEmpty:not(:focus)~span,body.green label [type=date]:focus~span,body.green label [type=datetime-local].notEmpty:not(:focus)~span,body.green label [type=datetime-local]:focus~span,body.green label [type=datetime].notEmpty:not(:focus)~span,body.green label [type=datetime]:focus~span,body.green label [type=email].notEmpty:not(:focus)~span,body.green label [type=email]:focus~span,body.green label [type=month].notEmpty:not(:focus)~span,body.green label [type=month]:focus~span,body.green label [type=number].notEmpty:not(:focus)~span,body.green label [type=number]:focus~span,body.green label [type=password].notEmpty:not(:focus)~span,body.green label [type=password]:focus~span,body.green label [type=search].notEmpty:not(:focus)~span,body.green label [type=search]:focus~span,body.green label [type=tel].notEmpty:not(:focus)~span,body.green label [type=tel]:focus~span,body.green label [type=text].notEmpty:not(:focus)~span,body.green label [type=text]:focus~span,body.green label [type=time].notEmpty:not(:focus)~span,body.green label [type=time]:focus~span,body.green label [type=url].notEmpty:not(:focus)~span,body.green label [type=url]:focus~span,body.green label [type=week].notEmpty:not(:focus)~span,body.green label [type=week]:focus~span,body.green label input:not([type]).notEmpty:not(:focus)~span,body.green label input:not([type]):focus~span,body.green label input[type=text].notEmpty:not(:focus)~span,body.green label input[type=text]:focus~span,body.green label textarea.notEmpty:not(:focus)~span,body.green label textarea:focus~span{color:#000}body.green label [type=color]~span,body.green label [type=date]~span,body.green label [type=datetime-local]~span,body.green label [type=datetime]~span,body.green label [type=email]~span,body.green label [type=month]~span,body.green label [type=number]~span,body.green label [type=password]~span,body.green label [type=search]~span,body.green label [type=tel]~span,body.green label [type=text]~span,body.green label [type=time]~span,body.green label [type=url]~span,body.green label [type=week]~span,body.green label input:not([type])~span,body.green label input[type=text]~span,body.green label textarea~span{color:rgba(0,0,0,.65)}body.green label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.green input.notEmpty:invalid{background-color:rgba(0,128,0,.65)}body.pink{background:#fff;color:#000}body.pink #cookie-compliance{background-color:#70374a;color:#fff}body.pink #cookie-compliance a.link,body.pink #cookie-compliance a.link:hover{color:#fe64af;border-bottom-color:#fe64af}body.pink a.link{text-decoration:none;color:#fe64af;border-bottom:none}body.pink a.link:hover{color:#fe64af;border-bottom-color:#fe64af}body.pink .loader #spinner{stroke:#ff69b4}body.pink nav.top-bar{color:#fff;background:#ff69b4}body.pink .top-bar ul{background:#ff69b4!important}body.pink .top-bar ul a{color:#fff}body.pink .switch input:checked+.slider,body.pink a.button,body.pink a.button.disabled,body.pink a.button.disabled:focus,body.pink a.button.disabled:hover,body.pink a.button:hover,body.pink button.button,body.pink button.button.disabled,body.pink button.button.disabled:focus,body.pink button.button.disabled:hover,body.pink button.button:hover{background-color:#ff69b4}body.pink .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #ff69b4;box-shadow:0 0 1px #ff69b4}body.pink label{color:#000}body.pink .background .modal{background-color:#fff}body.pink svg.fill-color,body.pink svg .fill-color{fill:currentColor}body.pink svg.fill-background,body.pink svg .fill-background{fill:#fff}body.pink label [type=color],body.pink label [type=date],body.pink label [type=datetime-local],body.pink label [type=datetime],body.pink label [type=email],body.pink label [type=month],body.pink label [type=number],body.pink label [type=password],body.pink label [type=search],body.pink label [type=tel],body.pink label [type=text],body.pink label [type=time],body.pink label [type=url],body.pink label [type=week],body.pink label input:not([type]),body.pink label input[type=text],body.pink label textarea{border-bottom:solid #000;background:#fff;color:#000}body.pink label [type=color]:focus,body.pink label [type=date]:focus,body.pink label [type=datetime-local]:focus,body.pink label [type=datetime]:focus,body.pink label [type=email]:focus,body.pink label [type=month]:focus,body.pink label [type=number]:focus,body.pink label [type=password]:focus,body.pink label [type=search]:focus,body.pink label [type=tel]:focus,body.pink label [type=text]:focus,body.pink label [type=time]:focus,body.pink label [type=url]:focus,body.pink label [type=week]:focus,body.pink label input:not([type]):focus,body.pink label input[type=text]:focus,body.pink label textarea:focus{border-bottom:solid #000}body.pink label [type=color].notEmpty:not(:focus)~span,body.pink label [type=color]:focus~span,body.pink label [type=date].notEmpty:not(:focus)~span,body.pink label [type=date]:focus~span,body.pink label [type=datetime-local].notEmpty:not(:focus)~span,body.pink label [type=datetime-local]:focus~span,body.pink label [type=datetime].notEmpty:not(:focus)~span,body.pink label [type=datetime]:focus~span,body.pink label [type=email].notEmpty:not(:focus)~span,body.pink label [type=email]:focus~span,body.pink label [type=month].notEmpty:not(:focus)~span,body.pink label [type=month]:focus~span,body.pink label [type=number].notEmpty:not(:focus)~span,body.pink label [type=number]:focus~span,body.pink label [type=password].notEmpty:not(:focus)~span,body.pink label [type=password]:focus~span,body.pink label [type=search].notEmpty:not(:focus)~span,body.pink label [type=search]:focus~span,body.pink label [type=tel].notEmpty:not(:focus)~span,body.pink label [type=tel]:focus~span,body.pink label [type=text].notEmpty:not(:focus)~span,body.pink label [type=text]:focus~span,body.pink label [type=time].notEmpty:not(:focus)~span,body.pink label [type=time]:focus~span,body.pink label [type=url].notEmpty:not(:focus)~span,body.pink label [type=url]:focus~span,body.pink label [type=week].notEmpty:not(:focus)~span,body.pink label [type=week]:focus~span,body.pink label input:not([type]).notEmpty:not(:focus)~span,body.pink label input:not([type]):focus~span,body.pink label input[type=text].notEmpty:not(:focus)~span,body.pink label input[type=text]:focus~span,body.pink label textarea.notEmpty:not(:focus)~span,body.pink label textarea:focus~span{color:#000}body.pink label [type=color]~span,body.pink label [type=date]~span,body.pink label [type=datetime-local]~span,body.pink label [type=datetime]~span,body.pink label [type=email]~span,body.pink label [type=month]~span,body.pink label [type=number]~span,body.pink label [type=password]~span,body.pink label [type=search]~span,body.pink label [type=tel]~span,body.pink label [type=text]~span,body.pink label [type=time]~span,body.pink label [type=url]~span,body.pink label [type=week]~span,body.pink label input:not([type])~span,body.pink label input[type=text]~span,body.pink label textarea~span{color:rgba(0,0,0,.65)}body.pink label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.pink input.notEmpty:invalid{background-color:rgba(255,105,180,.65)}body.black{background:#fff;color:#000}body.black #cookie-compliance{background-color:#353535;color:#fff}body.black #cookie-compliance a.link{color:#fff;border-bottom-color:#fff}body.black #cookie-compliance a.link:hover{color:#cacaca;border-bottom-color:#cacaca}body.black a.link{text-decoration:none;color:#000;border-bottom:1px solid #000}body.black a.link:hover{color:#4e4e4e;border-bottom-color:#4e4e4e}body.black .loader #spinner{stroke:#000}body.black nav.top-bar{color:#fff;background:#000}body.black .top-bar ul{background:#000!important}body.black .top-bar ul a{color:#fff}body.black .switch input:checked+.slider,body.black a.button,body.black a.button.disabled,body.black a.button.disabled:focus,body.black a.button.disabled:hover,body.black a.button:hover,body.black button.button,body.black button.button.disabled,body.black button.button.disabled:focus,body.black button.button.disabled:hover,body.black button.button:hover{background-color:#000}body.black .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #000;box-shadow:0 0 1px #000}body.black label{color:#000}body.black .background .modal{background-color:#fff}body.black svg.fill-color,body.black svg .fill-color{fill:currentColor}body.black svg.fill-background,body.black svg .fill-background{fill:#fff}body.black label [type=color],body.black label [type=date],body.black label [type=datetime-local],body.black label [type=datetime],body.black label [type=email],body.black label [type=month],body.black label [type=number],body.black label [type=password],body.black label [type=search],body.black label [type=tel],body.black label [type=text],body.black label [type=time],body.black label [type=url],body.black label [type=week],body.black label input:not([type]),body.black label input[type=text],body.black label textarea{border-bottom:solid #000;background:#fff;color:#000}body.black label [type=color]:focus,body.black label [type=date]:focus,body.black label [type=datetime-local]:focus,body.black label [type=datetime]:focus,body.black label [type=email]:focus,body.black label [type=month]:focus,body.black label [type=number]:focus,body.black label [type=password]:focus,body.black label [type=search]:focus,body.black label [type=tel]:focus,body.black label [type=text]:focus,body.black label [type=time]:focus,body.black label [type=url]:focus,body.black label [type=week]:focus,body.black label input:not([type]):focus,body.black label input[type=text]:focus,body.black label textarea:focus{border-bottom:solid #000}body.black label [type=color].notEmpty:not(:focus)~span,body.black label [type=color]:focus~span,body.black label [type=date].notEmpty:not(:focus)~span,body.black label [type=date]:focus~span,body.black label [type=datetime-local].notEmpty:not(:focus)~span,body.black label [type=datetime-local]:focus~span,body.black label [type=datetime].notEmpty:not(:focus)~span,body.black label [type=datetime]:focus~span,body.black label [type=email].notEmpty:not(:focus)~span,body.black label [type=email]:focus~span,body.black label [type=month].notEmpty:not(:focus)~span,body.black label [type=month]:focus~span,body.black label [type=number].notEmpty:not(:focus)~span,body.black label [type=number]:focus~span,body.black label [type=password].notEmpty:not(:focus)~span,body.black label [type=password]:focus~span,body.black label [type=search].notEmpty:not(:focus)~span,body.black label [type=search]:focus~span,body.black label [type=tel].notEmpty:not(:focus)~span,body.black label [type=tel]:focus~span,body.black label [type=text].notEmpty:not(:focus)~span,body.black label [type=text]:focus~span,body.black label [type=time].notEmpty:not(:focus)~span,body.black label [type=time]:focus~span,body.black label [type=url].notEmpty:not(:focus)~span,body.black label [type=url]:focus~span,body.black label [type=week].notEmpty:not(:focus)~span,body.black label [type=week]:focus~span,body.black label input:not([type]).notEmpty:not(:focus)~span,body.black label input:not([type]):focus~span,body.black label input[type=text].notEmpty:not(:focus)~span,body.black label input[type=text]:focus~span,body.black label textarea.notEmpty:not(:focus)~span,body.black label textarea:focus~span{color:#000}body.black label [type=color]~span,body.black label [type=date]~span,body.black label [type=datetime-local]~span,body.black label [type=datetime]~span,body.black label [type=email]~span,body.black label [type=month]~span,body.black label [type=number]~span,body.black label [type=password]~span,body.black label [type=search]~span,body.black label [type=tel]~span,body.black label [type=text]~span,body.black label [type=time]~span,body.black label [type=url]~span,body.black label [type=week]~span,body.black label input:not([type])~span,body.black label input[type=text]~span,body.black label textarea~span{color:rgba(0,0,0,.65)}body.black label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.black input.notEmpty:invalid{background-color:rgba(0,0,0,.65)}body.dark{background:#000;color:#fff}body.dark #cookie-compliance{background-color:#4b4b4b;color:#fff}body.dark #cookie-compliance a.link,body.dark #cookie-compliance a.link:hover{color:#fff;border-bottom-color:#fff}body.dark a.link{text-decoration:none;color:#fff;border-bottom:1px solid #fff}body.dark a.link:hover{color:#fff;border-bottom-color:#fff}body.dark .loader #spinner{stroke:#fff}body.dark nav.top-bar{color:#fff;background:#373737}body.dark .top-bar ul{background:#373737!important}body.dark .top-bar ul a{color:#fff}body.dark .switch input:checked+.slider,body.dark a.button,body.dark a.button.disabled,body.dark a.button.disabled:focus,body.dark a.button.disabled:hover,body.dark a.button:hover,body.dark button.button,body.dark button.button.disabled,body.dark button.button.disabled:focus,body.dark button.button.disabled:hover,body.dark button.button:hover{background-color:#373737}body.dark .switch input:focus+.slider{-webkit-box-shadow:0 0 1px #373737;box-shadow:0 0 1px #373737}body.dark label{color:#fff}body.dark .background .modal{background-color:#000}body.dark svg.fill-color,body.dark svg .fill-color{fill:currentColor}body.dark svg.fill-background,body.dark svg .fill-background{fill:#000}body.dark label [type=color],body.dark label [type=date],body.dark label [type=datetime-local],body.dark label [type=datetime],body.dark label [type=email],body.dark label [type=month],body.dark label [type=number],body.dark label [type=password],body.dark label [type=search],body.dark label [type=tel],body.dark label [type=text],body.dark label [type=time],body.dark label [type=url],body.dark label [type=week],body.dark label input:not([type]),body.dark label input[type=text],body.dark label textarea{border-bottom:solid #fff;background:#000;color:#fff}body.dark label [type=color]:focus,body.dark label [type=date]:focus,body.dark label [type=datetime-local]:focus,body.dark label [type=datetime]:focus,body.dark label [type=email]:focus,body.dark label [type=month]:focus,body.dark label [type=number]:focus,body.dark label [type=password]:focus,body.dark label [type=search]:focus,body.dark label [type=tel]:focus,body.dark label [type=text]:focus,body.dark label [type=time]:focus,body.dark label [type=url]:focus,body.dark label [type=week]:focus,body.dark label input:not([type]):focus,body.dark label input[type=text]:focus,body.dark label textarea:focus{border-bottom:solid #fff}body.dark label [type=color].notEmpty:not(:focus)~span,body.dark label [type=color]:focus~span,body.dark label [type=date].notEmpty:not(:focus)~span,body.dark label [type=date]:focus~span,body.dark label [type=datetime-local].notEmpty:not(:focus)~span,body.dark label [type=datetime-local]:focus~span,body.dark label [type=datetime].notEmpty:not(:focus)~span,body.dark label [type=datetime]:focus~span,body.dark label [type=email].notEmpty:not(:focus)~span,body.dark label [type=email]:focus~span,body.dark label [type=month].notEmpty:not(:focus)~span,body.dark label [type=month]:focus~span,body.dark label [type=number].notEmpty:not(:focus)~span,body.dark label [type=number]:focus~span,body.dark label [type=password].notEmpty:not(:focus)~span,body.dark label [type=password]:focus~span,body.dark label [type=search].notEmpty:not(:focus)~span,body.dark label [type=search]:focus~span,body.dark label [type=tel].notEmpty:not(:focus)~span,body.dark label [type=tel]:focus~span,body.dark label [type=text].notEmpty:not(:focus)~span,body.dark label [type=text]:focus~span,body.dark label [type=time].notEmpty:not(:focus)~span,body.dark label [type=time]:focus~span,body.dark label [type=url].notEmpty:not(:focus)~span,body.dark label [type=url]:focus~span,body.dark label [type=week].notEmpty:not(:focus)~span,body.dark label [type=week]:focus~span,body.dark label input:not([type]).notEmpty:not(:focus)~span,body.dark label input:not([type]):focus~span,body.dark label input[type=text].notEmpty:not(:focus)~span,body.dark label input[type=text]:focus~span,body.dark label textarea.notEmpty:not(:focus)~span,body.dark label textarea:focus~span{color:#fff}body.dark label [type=color]~span,body.dark label [type=date]~span,body.dark label [type=datetime-local]~span,body.dark label [type=datetime]~span,body.dark label [type=email]~span,body.dark label [type=month]~span,body.dark label [type=number]~span,body.dark label [type=password]~span,body.dark label [type=search]~span,body.dark label [type=tel]~span,body.dark label [type=text]~span,body.dark label [type=time]~span,body.dark label [type=url]~span,body.dark label [type=week]~span,body.dark label input:not([type])~span,body.dark label input[type=text]~span,body.dark label textarea~span{color:hsla(0,0%,100%,.65)}body.dark label textarea{-webkit-box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important;box-shadow:0 0 3px 2px hsla(0,0%,53%,.31)!important}body.dark input.notEmpty:invalid{background-color:rgba(55,55,55,.65)}@-webkit-keyframes tutorialPointer{0%{top:75%}to{top:25%}}@keyframes tutorialPointer{0%{top:75%}to{top:25%}}.tutorial-blanket{display:none;position:fixed;top:0;bottom:0;left:0;right:0;z-index:9001;background:rgba(98,98,98,.51)}.tutorial .tutorial-blanket{display:block}.tutorial .tutorial-text{color:#fff;font-size:1.5rem;display:-webkit-box;display:-ms-flexbox;display:flex}.tutorial .tutorial-text,.tutorial .tutorial-text *{-webkit-transition:none!important;transition:none!important}.tutorial.step-1 #level .segment-row{position:inherit}.tutorial.step-1 #level .segment-parent:nth-child(3),.tutorial.step-1 #level .segment-parent:nth-child(3).rotating{z-index:9900!important}.tutorial.step-1 .tutorial-text .step-1{display:initial;z-index:9900!important;position:relative}.tutorial.step-2 #level{z-index:9900!important}.tutorial.step-2 .tutorial-text .step-2,.tutorial.step-3 .tutorial-text .step-3{display:initial;z-index:9900!important;position:relative}.tutorial.step-3 #help-button{position:relative;z-index:9900!important;overflow:visible;margin-right:10px;margin-top:10px;-webkit-box-shadow:0 0 10px 5px #fff;box-shadow:0 0 10px 5px #fff}.tutorial.step-4 .tutorial-text .step-4{display:initial;z-index:9900!important;position:relative}.tutorial.step-4 #level .segment-row,.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child{position:inherit}.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child,.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child.rotating{z-index:9900!important}.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child #tutorial-pointer,.tutorial.step-4 #level .segment-row>.child-container>.segment-triangle:first-child>.child-container>.segment-parent:first-child.rotating #tutorial-pointer{width:.6em;height:.6em;border-radius:50%;left:25%;right:50%;position:absolute;top:75%;bottom:50%;z-index:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-animation:tutorialPointer 2s infinite;animation:tutorialPointer 2s infinite;pointer-events:none}body.red #tutorial-pointer{background:red}body.red #level-number-container.in-main-menu{background:#fff;border-color:#000}body.red .segment.segment-parent{border-color:#555}body.red .segment.segment-parent.layer-2{border-color:#000}body.red #site-content>:not(.won) .segment.locked{border-color:#870015;background-color:red!important}body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.red .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.blue #tutorial-pointer{background:#2c58ae}body.blue #level-number-container.in-main-menu{background:#fff;border-color:#000}body.blue .segment.segment-parent{border-color:#555}body.blue .segment.segment-parent.layer-2{border-color:#000}body.blue #site-content>:not(.won) .segment.locked{border-color:#1a3062;background-color:#2c58ae!important}body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.blue .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.green #tutorial-pointer{background:green}body.green #level-number-container.in-main-menu{background:#fff;border-color:#000}body.green .segment.segment-parent{border-color:#555}body.green .segment.segment-parent.layer-2{border-color:#000}body.green #site-content>:not(.won) .segment.locked{border-color:#003613;background-color:green!important}body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.green .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.pink #tutorial-pointer{background:#ff69b4}body.pink #level-number-container.in-main-menu{background:#fff;border-color:#000}body.pink .segment.segment-parent{border-color:#555}body.pink .segment.segment-parent.layer-2{border-color:#000}body.pink #site-content>:not(.won) .segment.locked{border-color:#70374a;background-color:#ff69b4!important}body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.pink .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.black #tutorial-pointer{background:#000}body.black #level-number-container.in-main-menu{background:#fff;border-color:#000}body.black .segment.segment-parent{border-color:#555}body.black .segment.segment-parent.layer-2{border-color:#000}body.black #site-content>:not(.won) .segment.locked{border-color:#353535;background-color:#000!important}body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.black .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#fff}body.dark #tutorial-pointer{background:#373737}body.dark #level-number-container.in-main-menu{background:#000;border-color:#fff}body.dark .segment.segment-parent{border-color:#9b9b9b}body.dark .segment.segment-parent.layer-2{border-color:#fff}body.dark #site-content>:not(.won) .segment.locked{border-color:#4b4b4b;background-color:#373737!important}body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-90>.child-container>.segment.rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-180>.child-container>.segment.rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-270>.child-container>.segment.rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-90,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-180,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-270,body.dark .segment:not(.segment-row):not(.segment-triangle).rotate-360>.child-container>.segment.rotate-360{background-color:#000}body.dark .switch input:checked+.slider{border-color:#000}body.dark .switch .slider{border:1px solid #fff;background-color:inherit;padding:1px}body.dark #site-content>:not(.won) .segment.locked.layer-2{border-color:#565656}body.dark .modal{border:1px solid #fff;border-radius:2px}body.black #site-content>:not(.won) .segment.locked{background-color:#9d9d9d!important;border-color:#6e6e6e!important}body.black #site-content>:not(.won) .segment.locked>.child-container>.segment-leaf{background-color:transparent!important}body.black #logo{border:1px solid grey;border-radius:50%}body label{font-size:1em!important}body .setting-row:not(.hidden){line-height:1;padding-top:.5em;padding-bottom:.5em;width:100%;cursor:pointer;background:hsla(0,0%,76%,.13);display:inline-block}nav.top-bar.title-bar{padding:.3rem .6rem 0}#logo{max-width:2rem;-webkit-transition:none;transition:none}#action-bar .top-bar-right .menu .action.img a{padding-bottom:0}#action-bar .top-bar-right .menu .action.img a img{max-height:1.8rem}.dropdown.menu a,.menu a{padding:.2rem .5rem}#level-number-container{z-index:1;-webkit-transition:none;transition:none;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;visibility:hidden;display:table-cell;height:35px;width:35px;text-align:center;vertical-align:middle}#level-number-container.visible{visibility:visible}#level-number-container.in-main-menu{background:#fff;border-color:#000;height:1em;width:1em;min-height:1em;min-width:1em;max-height:1em;max-width:1em}#level-number-container #level-number{-webkit-transition:none;transition:none;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-weight:700}.coin-counter{display:inline-block;position:relative;font-size:1.6rem}@media screen and (max-width:24.9375em){.coin-counter{font-size:1rem}}.coin-counter :after{background-image:url(../img/coinTower.png);background-size:28px 28px;width:28px;height:28px;display:inline-block;content:""}#coin-container{line-height:1}#coin-container .coin{margin-left:3px;margin-right:3px;max-width:20px;display:inline-block}@media print,screen and (min-width:25em){#coin-container .coin{max-width:25px}}@media print,screen and (min-width:40em){#coin-container .coin{max-width:30px}}@-webkit-keyframes rotate-90{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@keyframes rotate-90{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@-webkit-keyframes rotate-reverse-90{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@keyframes rotate-reverse-90{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}@-webkit-keyframes rotate-180{0%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes rotate-180{0%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@-webkit-keyframes rotate-reverse-180{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes rotate-reverse-180{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@-webkit-keyframes rotate-270{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@keyframes rotate-270{0%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes rotate-reverse-270{0%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@keyframes rotate-reverse-270{0%{-webkit-transform:rotate(1turn);transform:rotate(1turn)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes rotate-360{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-360{0%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes rotate-reverse-360{0%{-webkit-transform:rotate(450deg);transform:rotate(450deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate-reverse-360{0%{-webkit-transform:rotate(450deg);transform:rotate(450deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.segment:not(.segment-row):not(.segment-triangle).rotating{z-index:10!important;overflow:hidden}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-90.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-180.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-270.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;animation-direction:reverse;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-180;animation-name:rotate-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-270;animation-name:rotate-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-360;animation-name:rotate-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-90;animation-name:rotate-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-90{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-180{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-270{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle).rotating.rotate-360.reverse>.child-container>.segment.rotate-360{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-90{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-180{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-270{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-360{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-90>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180,.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-90{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-180{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-270{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-360{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-180>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-90{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-180{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-270{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-360{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-270>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment{-webkit-transform:rotate(0deg);transform:rotate(0deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-90.rotating{-webkit-animation-name:rotate-90;animation-name:rotate-90;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-90.rotating.reverse{-webkit-animation-name:rotate-reverse-90;animation-name:rotate-reverse-90}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-180.rotating{-webkit-animation-name:rotate-180;animation-name:rotate-180;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-180.rotating.reverse{-webkit-animation-name:rotate-reverse-180;animation-name:rotate-reverse-180}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-270.rotating{-webkit-animation-name:rotate-270;animation-name:rotate-270;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-270.rotating.reverse{-webkit-animation-name:rotate-reverse-270;animation-name:rotate-reverse-270}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-360{-webkit-transform:rotate(1turn);transform:rotate(1turn);background-color:inherit;z-index:1}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-360.rotating{-webkit-animation-name:rotate-360;animation-name:rotate-360;-webkit-animation-duration:.25s;animation-duration:.25s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:linear;animation-timing-function:linear}.segment:not(.segment-row):not(.segment-triangle):not(.rotating).rotate-360>.child-container>.segment.rotate-360.rotating.reverse{-webkit-animation-name:rotate-reverse-360;animation-name:rotate-reverse-360}#level{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;max-width:100%;-webkit-tap-highlight-color:rgba(255,255,255,0);overflow-y:visible}#level,#level *,.segment{-webkit-transition:none;transition:none}.segment{vertical-align:top;white-space:normal;cursor:pointer;display:inline-block;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1;background-color:inherit;line-height:0}.segment.segment-row{display:block;width:100%;-webkit-animation:none!important;animation:none!important;white-space:nowrap}.segment.segment-leaf{background-color:transparent!important;min-width:1em;padding:.8em}.segment.segment-leaf:before{content:" ";display:block;padding-top:100%}.segment.segment-leaf .leaf-element{position:absolute;width:100%;height:100%;line-height:1.5em;top:0;left:0}.segment.segment-parent{border:1px solid #a9a9a9;border-radius:3px;padding:1px}.segment.segment-parent.layer-2{border:3px solid #000}#site-content>:not(.won) .show-when-won{display:none}.level-container{-webkit-transition:none;transition:none}.won .show-while-playing{display:none}.text-right{text-align:right}#continue-button{margin-bottom:2px}@media screen and (max-width:24.9375em){#continue-button{margin-bottom:0;padding:.3em .6em}}@media screen and (max-width:24.9375em){#play-button{margin-bottom:2px}}#help-button{margin:0;padding:.4em;max-width:3em}@media screen and (max-width:39.9375em){#help-button{padding:.2em;max-width:2em}}.line-height-1{line-height:1}body{overscroll-behavior:contain;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#site-content{overflow:visible}div.mainContainer{overflow-x:hidden}.clickable{cursor:pointer}#share-button svg{cursor:pointer;max-width:1.5rem} \ No newline at end of file diff --git a/public/html/application/menu.html b/public/html/application/menu.html index 0dc0c47..be841ac 100644 --- a/public/html/application/menu.html +++ b/public/html/application/menu.html @@ -1 +1 @@ -
1
\ No newline at end of file +
1
\ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js index 1e4fd7d..c45af61 100755 --- a/public/js/app.js +++ b/public/js/app.js @@ -1,3 +1,65 @@ +class InitPromise +{ + static addPromise(promise) + { + if (typeof promise === 'function') + { + let func = promise; + promise = InitPromise.mainPromise.then(function(app){ + return (func(app)); + }); + } + InitPromise.promises.push(promise); + } + + static resolve(app) + { + InitPromise.mainResolver(app); + return InitPromise.mainPromise.then(function(){ + return Promise.all(InitPromise.promises); + }); + } +} + +InitPromise.promises = []; +InitPromise.mainPromise = new Promise(function(resolver){ + InitPromise.mainResolver = resolver; +}); + +class AndroidBridge { + + static addDefinition(definition, object) { + if (typeof definition !== "function") { + if (typeof definition === "string"){ + let parts = definition.split("."); + for (let i = parts.length-1; i >= 1; i--) { + let newObject = {}; + newObject[parts[i]] = object; + object = newObject; + } + definition = parts[0]; + console.log("parts for", definition, parts, object); + } + let textDefinition = definition; + definition = () => { + console.log("defining", textDefinition, object); + window[textDefinition] = object; + }; + } + AndroidBridge.definitions.push(definition); + } + + static applyDefinitions() { + for (let i = 0; i < AndroidBridge.definitions.length; i++) { + AndroidBridge.definitions[i](); + } + return Promise.resolve(); + } +} + +AndroidBridge.definitions = []; +AndroidBridge.addDefinition("InitPromise.addPromise", InitPromise.addPromise); + class MenuAction { constructor(title, callback, showFor, order) { this.title = Helper.nonNull(title, null); @@ -840,6 +902,9 @@ Translator.languageBasePath = "js/lang/"; Translator.currentLanguage = null; Translator.translations = {}; + +AndroidBridge.addDefinition("Translator.setLanguage", Translator.setLanguage); + class Helper { static init() { Helper.heightMmToPxFactor = null; @@ -1367,11 +1432,21 @@ class ThemeManager { static addChangeListener(listener) { ThemeManager.changeListeners.push(listener); } + + static getCurrentTheme(){ + return ThemeManager.currentTheme; + } } +ThemeManager.currentTheme = null; ThemeManager.themes = []; ThemeManager.changeListeners = []; +AndroidBridge.addDefinition("ThemeManager", { + "addChangeListener": ThemeManager.addChangeListener, + "getCurrentTheme": ThemeManager.getCurrentTheme, +}); + class CookieCompliance { static async showIfNeeded(cookieContainer) { @@ -2626,33 +2701,6 @@ FlashMessenger.MESSAGE_TYPE_DEFAULT = 'default'; FlashMessenger.MESSAGE_TYPE_INFO = 'info'; FlashMessenger.MESSAGE_TYPE_WARNING = 'warning'; -class InitPromise -{ - static addPromise(promise) - { - if (typeof promise === 'function') - { - let func = promise; - promise = InitPromise.mainPromise.then(function(app){ - return (func(app)); - }); - } - InitPromise.promises.push(promise); - } - - static resolve(app) - { - InitPromise.mainResolver(app); - return InitPromise.mainPromise.then(function(){ - return Promise.all(InitPromise.promises); - }); - } -} -InitPromise.promises = []; -InitPromise.mainPromise = new Promise(function(resolver){ - InitPromise.mainResolver = resolver; -}); - class MyDb { constructor(dbName, version) { let indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB; @@ -2987,6 +3035,12 @@ ShareButton.TYPE_MOBILE_LEFTOVER = 4; ShareButton.TYPE_MOBILE = ShareButton.TYPE_MOBILE_APPLE+ShareButton.TYPE_MOBILE_LEFTOVER; ShareButton.TYPE_ALL = ShareButton.TYPE_DESKTOP+ShareButton.TYPE_MOBILE; +AndroidBridge.addDefinition(() => { + window["ShareButton"] = ShareButton; + window["ShareButton"]["TYPE_ALL"] = ShareButton.TYPE_ALL; + +}); + class MultipleShareButton extends ShareButton{ constructor(deviceType, icon, callbacks, shouldLoadImg) { @@ -3087,6 +3141,8 @@ class ShareManager { ShareManager.init(); +AndroidBridge.addDefinition("ShareManager.addShareButton", ShareManager.addShareButton); + class SmsShareButton extends ShareButton { constructor(icon, shouldLoadImg) { @@ -4888,6 +4944,8 @@ class MatomoShareButton extends MultipleShareButton{ } } +AndroidBridge.addDefinition("MatomoShareButton", MatomoShareButton); + class ScaleHelper { async scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, animationDelay, addListener) { @@ -5420,14 +5478,16 @@ class ParentSegment extends Segment { let self = this; this.touchendListener = function (e) { - let target = document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY); - if (e.targetTouches.length === 0 && e.changedTouches.length === 1 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(target)) { - let position = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY}; + if (e.changedTouches.length >= 1) { + let target = document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY); + if (e.targetTouches.length === 0 && e.changedTouches.length === 1 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(target)) { + let position = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY}; - self.getLevel().segmentClickedListener(self); - self.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position); - e.stopPropagation(); - e.preventDefault(); + self.getLevel().segmentClickedListener(self); + self.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position); + e.stopPropagation(); + e.preventDefault(); + } } }; this.mouseupListener = function (e) { @@ -7071,13 +7131,14 @@ InitPromise.addPromise(function () { class SelectWordsSite extends UserSite{ constructor(siteManager) { - super(siteManager, "version/1/html/selectWords.html", null, "admin"); + super(siteManager, "version/2/html/selectWords.html", null, "select-words"); } async onConstruct(args) { let res = await super.onConstruct(args); this.stats = (await DataManager.load("words"))["result"]; this.words = this.stats["wordsToCheck"]; + console.log(this.stats); return res; } @@ -7087,6 +7148,7 @@ class SelectWordsSite extends UserSite{ this.findBy("#checked").appendChild(document.createTextNode(this.stats["wordsChecked"])); this.findBy("#not-sure").appendChild(document.createTextNode(this.stats["wordsUnsure"])); this.findBy("#deleted").appendChild(document.createTextNode(this.stats["wordsDeleted"])); + this.findBy("#unused").appendChild(document.createTextNode(this.stats["wordsNotUsed"])); let template = this.findBy("#word-template"); template.id = null; @@ -7128,7 +7190,6 @@ class SelectWordsSite extends UserSite{ } setWord(wordElement, word){ - console.log(wordElement, word); wordElement.querySelector(".word").removeAllChildren().appendChild(document.createTextNode(word["word"])); wordElement.dataset["id"] = word["id"]; } @@ -7137,12 +7198,12 @@ class SelectWordsSite extends UserSite{ InitPromise.addPromise(app => { app.addDefaultAction(new UserAction("select-words", () => { app.startSite(SelectWordsSite); - }, null, null, "admin")); + }, null, null, "select-words")); }); class DeleteWordsSite extends UserSite { constructor(siteManager) { - super(siteManager, "version/1/html/deleteLevels.html", null, "admin"); + super(siteManager, "version/2/html/deleteLevels.html", null, "admin"); } async onConstruct(args) { @@ -7223,17 +7284,17 @@ ShareManager.addShareButton(new MatomoShareButton(new TelegramShareButton('img/t // ShareManager.addShareButton(new CopyShareButton('img/copy.svg')); let app = new App(); -// app.addDeepLink("policy", PrivatePolicySite.name); + +AndroidBridge.addDefinition(() => { + window["app"] = app; + window["app"]["pause"] = app.pause; + window["app"]["resume"] = app.resume; + // window["app"]["refreshCurrentSite"] = app.refreshCurrentSite; +}); // bridge für Android -// window["ThemeManager"] = ThemeManager; -// window["ThemeManager"]["addChangeListener"] = ThemeManager.addChangeListener; -// window["app"] = app; -// window["app"]["refreshCurrentSite"] = app.refreshCurrentSite; // window["Translator"] = Translator; // window["Translator"]["setLanguage"] = Translator.setLanguage; -// window["InitPromise"] = InitPromise; -// window["InitPromise"]["addPromise"] = InitPromise.addPromise; SettingsSite.setTemplate("html/application/setting-template.html"); @@ -7256,4 +7317,6 @@ InitPromise.resolve(app).then(async function(){ InstallManager.setCanInstallListener(e => { console.log("can install!", e); }); + + window["applyAndroidBridge"] = AndroidBridge.applyDefinitions; }); diff --git a/public/version/x/app.names.json b/public/version/x/app.names.json index c319693..b8f30ba 100644 --- a/public/version/x/app.names.json +++ b/public/version/x/app.names.json @@ -1 +1 @@ -{"vars":{"props":{"$_typeof":"t","$_get":"e","$_createClass":"n","$_asyncToGenerator":"r","$_possibleConstructorReturn":"i","$_inherits":"o","$_classCallCheck":"s","$MenuAction":"a","$OpenSubmenuAction":"u","$Menu":"l","$Submenu":"c","$TranslatorDB":"h","$Translator":"f","$Helper":"p","$SystemSettings":"d","$ThemeManager":"v","$CookieCompliance":"y","$ActionBarMenu":"m","$ViewInflater":"g","$Context":"k","$AbstractSite":"w","$SiteContainer":"_","$SiteManager":"b","$PauseSite":"O","$App":"x","$Dialog":"L","$FlashMessenger":"P","$InitPromise":"E","$MyDb":"S","$ScriptLoader":"j","$ShareButton":"A","$MultipleShareButton":"C","$ShareManager":"T","$SmsShareButton":"R","$TelegramShareButton":"I","$WhatsappShareButton":"M","$Fragment":"N","$Theme":"J","$Constants":"X","$DataManager":"D","$Form":"B","$SettingsManager":"q","$LocalStorageSettingsFragment":"G","$SmartColumn":"H","$ConstSmartColumn":"F","$DataSmartColumn":"Z","$ImgConstSmartColumn":"$","$ListHelper":"Q","$SettingsSite":"V","$UserManager":"Y","$UserAction":"U","$NotAllowedSite":"W","$UserSite":"z","$LoginForm":"K","$RegistrationForm":"tt","$UserFragment":"et","$PasswordSettingsFragment":"nt","$UserSettingsFragment":"rt","$EditUserRolesSite":"it","$ForgotPasswordSite":"ot","$LoginSite":"st","$RegistrationSite":"at","$SetNewPasswordSite":"ut","$InstallManager":"lt","$Matomo":"ct","$MatomoShareButton":"ht","$ScaleHelper":"ft","$AudioChain":"pt","$SoundManager":"dt","$Code":"vt","$CodeSite":"yt","$ContactSite":"mt","$WordRotatorBaseSite":"gt","$TemplateContainer":"kt","$Segment":"wt","$LeafSegment":"_t","$ParentSegment":"bt","$Level":"Ot","$RowSegment":"xt","$RowLevel":"Lt","$SimpleLevel":"Pt","$RowLevel8":"Et","$RowLevel10":"St","$TriangleSegment":"jt","$SixWordsRowLevel":"At","$SixWordsRowLevel8":"Ct","$SixWordsRowLevel12":"Tt","$FourWordsLevel":"Rt","$FourWordsLevel8":"It","$FourWordsLevel12":"Mt","$LevelHelper":"Nt","$WordRotatorDb":"Jt","$EndSite":"Xt","$LevelSite":"Dt","$MainMenuLevel":"Bt","$ShareDialog":"qt","$MenuSite":"Gt","$PrivacyPolicySite":"Ht","$CreditsSite":"Ft","$ChooseThemeDialog":"Zt","$ImpressumSite":"$t","$WordRotatorSettingFragment":"Qt","$SelectWordsSite":"Vt","$DeleteWordsSite":"Yt","$basePath":"Ut","$app":"Wt"}},"props":{"props":{"$nonNull":"t","$callback":"s","$showFor":"i","$SHOW_FOR_MEDIUM":"o","$_liClass":"l","$_menu":"h","$_activated":"u","$_visible":"m","$maxId":"p","$_icon":"g","$_shouldTranslate":"S","$_copies":"M","$setTitle":"H","$setShouldTranslate":"v","$getShowFor":"P","$getTitle":"L","$getShouldTranslate":"T","$isNotNull":"A","$removeAction":"k","$getMenu":"C","$setMenu":"F","$getVisible":"R","$setVisible":"D","$redraw":"I","$getActivated":"B","$getIcon":"U","$setIcon":"W","$getId":"N","$updateAction":"O","$copy":"_","$redrawMenu":"j","$SHOW_ALWAYS":"V","$SHOW_FOR_LARGE":"J","$SHOW_NEVER":"q","$getSubmenu":"K","$submenu":"G","$setParentAction":"X","$actions":"$","$submenus":"Y","$parentElements":"Z","$addAction":"tt","$includesNot":"et","$draw":"nt","$sortActions":"st","$renderAction":"it","$_htmlElement":"rt","$_getOnClickListener":"ot","$makePersistentTranslation":"at","$renderLiElement":"lt","$getParentElement":"ht","$_getElementsForAction":"ut","$isNull":"ct","$SHOW_FOR_SMEDIUM":"dt","$parentAction":"pt","$_indexedDB":"gt","$_version":"ft","$_dbPromise":"St","$_upgradeDb":"wt","$setLanguage":"Mt","$_openTransaction":"Ht","$saveTranslationsForLang":"yt","$loadTranslationsForLang":"vt","$getLanguage":"Pt","$_translations":"Lt","$_db":"Tt","$_currentLanguage":"bt","$_supportedLanguages":"At","$supportedLanguages":"kt","$_baseLanguage":"Ct","$baseLanguage":"Ft","$_languageBasePath":"xt","$languageBasePath":"Rt","$_markUntranslatedTranslations":"Dt","$markUntranslatedTranslations":"It","$_markTranslations":"Bt","$markTranslations":"Ut","$_initPromise":"Et","$loadBaseLanguage":"Wt","$loadUserLanguage":"Nt","$_loadLanguage":"Ot","$basePath":"_t","$getInstance":"jt","$updateTranslations":"Vt","$addDynamicTranslation":"Jt","$logMissingTranslations":"zt","$generateChangeLanguageMenuAction":"qt","$instance":"Kt","$currentLanguage":"Gt","$translations":"Xt","$heightMmToPxFactor":"$t","$widthMmToPxFactor":"Qt","$isSet":"Yt","$notEmpty":"Zt","$buildQuery":"te","$inflateElementsFromString":"ee","$createLoadingSymbol":"ne","$getBasePath":"se","$isMobileApple":"ie","$isMobile":"re","$encodeToBase":"oe","$decodeToBase":"ae","$toggleVisibility":"le","$strftime":"he","$cloneJson":"ue","$htmlspecialcharsDecode":"ce","$formDataFromObject":"de","$scaleContentRecursive":"me","$scaleDownContentRecursive":"pe","$convertChildrenToRelativeRecursive":"ge","$convertToRelative":"fe","$isChrome":"Se","$getIndexedObject":"we","$invertKeyValues":"Me","$setBasePath":"He","$_basePath":"ye","$_settings":"ve","$loadCurrentTheme":"Pe","$changeCurrentTheme":"Le","$themes":"Te","$_name":"be","$_className":"Ae","$currentTheme":"ke","$changeListeners":"Ce","$addTheme":"Fe","$generateChangeThemeMenuAction":"xe","$addChangeListener":"Re","$showIfNeeded":"De","$cookieContainerId":"Ie","$dropCookie":"Be","$cookieDuration":"Ue","$cookieName":"Ee","$cookieValue":"We","$checkCookie":"Ne","$removeMe":"Oe","$createCookie":"_e","$eraseCookie":"je","$currentMenu":"Ve","$updateToggleButton":"Je","$queries":"ze","$_getCurrentSize":"qe","$filterVisibleElements":"Ke","$inflate":"Ge","$_siteContent":"Xe","$firstStart":"$e","$inflatePromise":"Qe","$inflatePromiseResolver":"Ye","$fragments":"Ze","$inflateView":"tn","$onConstruct":"en","$onStart":"nn","$onFirstStart":"sn","$isActive":"in","$onPause":"rn","$onDestroy":"on","$addFragment":"an","$findBy":"ln","$isVisible":"hn","$siteManager":"un","$isFinishing":"cn","$actionMenu":"dn","$deepLink":"mn","$startArgs":"pn","$getDefaultTitle":"gn","$element":"fn","$updateTitle":"Sn","$startStartsite":"wn","$startSite":"Mn","$getStartSiteName":"Hn","$setUrlFromParams":"yn","$endSite":"vn","$toForeground":"Pn","$finishAndStartNext":"Ln","$createActionBarMenu":"Tn","$getDefaultActions":"bn","$setUrl":"An","$updateUrl":"kn","$updateUrlParams":"Cn","$getUrl":"Fn","$getFullUrl":"xn","$onBackPressed":"Rn","$addKeyListener":"Dn","$addKeyAndEventListener":"In","$_site":"Bn","$_pauseParameters":"Un","$_startParameters":"En","$_finishResolver":"Wn","$getSite":"Nn","$setSite":"On","$getSiteContent":"_n","$setSiteContent":"jn","$getPauseParameters":"Vn","$setPauseParameters":"Jn","$getStartParameters":"zn","$setStartParameters":"qn","$getFinishResolver":"Kn","$setFinishResolver":"Gn","$siteDiv":"Xn","$siteContainerStack":"$n","$currentSiteContainerToShow":"Qn","$actionBarMenuSelector":"Yn","$siteStartingPromise":"Zn","$defaultActions":"ts","$startSiteName":"es","$titleElement":"ns","$defaultTitle":"ss","$setStartSiteName":"rs","$addDefaultAction":"os","$buildActionBarMenu":"as","$findContainerIndexBySite":"ls","$showAppEndedMessage":"hs","$refreshCurrentSite":"us","$getCurrentSite":"cs","$redrawCurrentActionBar":"ds","$findContainerBySite":"ms","$_siteManager":"ps","$_actionBarMenuSelector":"gs","$_siteContentId":"fs","$_deepLinks":"Ss","$_defaultActions":"ws","$_addThemeAction":"Ms","$_showCookieCompliance":"Hs","$_startSite":"ys","$getSiteManager":"vs","$setAddThemeAction":"Ps","$getSiteContentId":"Ls","$setSiteContentId":"Ts","$getActionBarMenuSelector":"bs","$setActionBarMenuSelector":"As","$addDeepLink":"ks","$setShowCookieCompliance":"Cs","$_resolveDeepLink":"Fs","$_getDeepLink":"xs","$_addDeepLinksListener":"Rs","$_extractParams":"Ds","$removeDefaultAction":"Is","$_getStartParams":"Bs","$_cookieClosePromise":"Us","$resolver":"Es","$backgroundElement":"Ws","$translatable":"Ns","$additionalClasses":"Os","$setContent":"_s","$setTranslatable":"js","$setAdditionalClasses":"Vs","$setCancelable":"Js","$contentPromise":"zs","$addButton":"qs","$addDefaultButton":"Ks","$deleteMessage":"Gs","$addMessage":"Xs","$MESSAGE_TYPE_SUCCESS":"$s","$messageCount":"Qs","$defaultTimeToShow":"Ys","$LENGTH_SHORT":"Zs","$MESSAGE_TYPE_ERROR":"ti","$MESSAGE_TYPE_DEFAULT":"ei","$MESSAGE_TYPE_INFO":"ni","$MESSAGE_TYPE_WARNING":"si","$addPromise":"ii","$mainPromise":"ri","$promises":"oi","$mainResolver":"ai","$shimIndexedDB":"li","$_conn":"hi","$upgrade":"ui","$queryPromise":"ci","$openTransaction":"di","$openStore":"mi","$saveObj":"pi","$saveMany":"gi","$loadAll":"fi","$loadMany":"Si","$removeMany":"wi","$removeWithIndex":"Mi","$removeAll":"Hi","$loadScript":"yi","$scriptPromises":"vi","$loadCss":"Pi","$cssPromises":"Li","$_deviceType":"Ti","$_callback":"bi","$shouldShowFor":"Ai","$getCallback":"ki","$TYPE_DESKTOP":"Ci","$TYPE_MOBILE_APPLE":"Fi","$TYPE_MOBILE_LEFTOVER":"xi","$TYPE_MOBILE":"Ri","$TYPE_ALL":"Di","$shareButtons":"Ii","$addShareButton":"Bi","$generateDefaultShareElement":"Ui","$generateShareElement":"Ei","$getDefaultGenerateCallback":"Wi","$generateDefaultShareElementForButtons":"Ni","$generateShareElementForButtons":"Oi","$getCurrentDeviceType":"_i","$site":"ji","$ActiveXObject":"Vi","$SCRIPTS":"Ji","$CKEDITOR":"zi","$LIST_JS":"qi","$cachePath":"Ki","$dataPath":"Gi","$_load":"Xi","$loadStatic":"$i","$formElem":"Qi","$isCachable":"Yi","$isBusy":"Zi","$submitHandler":"tr","$submitCallback":"er","$errorCallback":"nr","$setErrors":"sr","$doSubmit":"ir","$onError":"rr","$setValues":"or","$setIsBusy":"ar","$readonly":"lr","$onSubmit":"hr","$_instance":"ur","$_localStorageKey":"cr","$getSettings":"dr","$_loadSettings":"mr","$getSetting":"pr","$deleteSetting":"gr","$_saveSettings":"Sr","$setSetting":"wr","$date":"Mr","$setSettings":"Hr","$hasSetting":"yr","$_label":"vr","$_translateable":"Pr","$_sortable":"Lr","$_index":"Tr","$_clickListener":"br","$setClickListener":"Ar","$setIndex":"kr","$getName":"Cr","$getLabel":"Fr","$getHeadElement":"xr","$_headElement":"Rr","$getValueName":"Dr","$prepareData":"Ir","$getItemElement":"Br","$_valueTranslatable":"Ur","$_tableElement":"Er","$_options":"Wr","$_values":"Nr","$_columns":"Or","$prepareDataset":"_r","$createTable":"jr","$updateColumns":"Vr","$getList":"Jr","$updateItem":"zr","$setBusy":"qr","$template":"Kr","$settingsFragments":"Gr","$addSettingsFragment":"Xr","$buildList":"$r","$setAddSettingsSite":"Qr","$shouldAddSettingsSite":"Yr","$setTemplate":"Zr","$settingsAction":"to","$shouldAddSettingsAction":"eo","$getMeUrl":"no","$userData":"so","$online":"io","$fetchMePromise":"ro","$fetchMePromiseResolver":"oo","$fetchMe":"ao","$logOut":"lo","$hasAccess":"ho","$addCurrentUserListener":"uo","$addIsLoggedInListener":"co","$isCurrentUser":"do","$isLoggedIn":"mo","$_access":"po","$getAccess":"fo","$checkPw":"So","$setUserRoles":"wo","$setAvailableRoles":"Mo","$setUsername":"Ho","$loginAction":"yo","$logoutAction":"vo","$addLoginAction":"Po","$addLogoutAction":"Lo","$setDeferredPrompt":"To","$deferredPromt":"bo","$canInstallListener":"Ao","$setCanInstallListener":"ko","$isTrackingPromise":"Co","$LOCAL_STORAGE_KEY":"Fo","$_askIsTracking":"xo","$setTrack":"Ro","$TRACK_SITE":"Do","$SIDE_ID":"Io","$currentUrl":"Bo","$query":"Uo","$BASE_PATH":"Eo","$getTrackingPromise":"Wo","$trackEvent":"No","$scaleTo":"Oo","$_getNewFontSize":"_o","$scaleToFull":"jo","$shouldLoop":"Vo","$chainFunction":"Jo","$pauseTime":"zo","$running":"qo","$setBuffer":"Ko","$setLooping":"Go","$channels":"Xo","$handleVisibilityChange":"$o","$DEFAULT":"Qo","$CHANNELS":"Yo","$audio":"Zo","$loadedPromise":"ta","$timeOffset":"ea","$MUSIC":"na","$SOUND":"sa","$args":"ia","$isCacheable":"ra","$setIsCacheable":"oa","$getIsCacheable":"aa","$activate":"la","$DEEP_LINK":"ha","$leafTemplate":"ua","$parentTemplate":"ca","$rowTemplate":"da","$triangleTemplate":"ma","$copyLeafTemplate":"pa","$copyParentTemplate":"ga","$copyRowTemplate":"fa","$copyTriangleTemplate":"Sa","$getCurrentRotations":"wa","$sameAs":"Ma","$setParent":"Ha","$getLevel":"ya","$canRotate":"va","$isSolved":"Pa","$_updateElement":"La","$applyRotations":"Ta","$applyLocks":"ba","$getCurrentLocked":"Aa","$getElement":"ka","$leaf":"Ca","$setLeaf":"Fa","$initListener":"xa","$mouseDownTarget":"Ra","$clickPosition":"Da","$setIsRotatable":"Ia","$rotatable":"Ba","$class":"Ua","$touchendListener":"Ea","$segmentClickedListener":"Wa","$mouseupListener":"Na","$getHasWon":"Oa","$_updateRotationClass":"_a","$checkHasWon":"ja","$setChildren":"Va","$addChild":"Ja","$_getLayer":"za","$rootSegment":"qa","$startRotations":"Ka","$templateContainer":"Ga","$hasWon":"Xa","$wonResolver":"$a","$giveUpResolver":"Qa","$wonPromise":"Ya","$saveAsCurrentLevel":"Za","$setLocks":"tl","$setId":"el","$setRootSegment":"nl","$setWords":"sl","$setStartRotations":"il","$getWonPromise":"rl","$getRootSegment":"ol","$createSegments":"al","$getRotatableSegments":"ll","$_getRotatableSegmentsFrom":"hl","$setSegmentClickedListener":"ul","$_createLeafsForWord":"cl","$wordLength":"dl","$setLevelType":"ml","$getLevelClass":"pl","$inflateLevel":"gl","$LEVEL":"fl","$OBJECT_STORE":"Sl","$saveManyLevels":"wl","$loadLevel":"Ml","$loadNextLevel":"Hl","$saveLevelPlayed":"yl","$coinAction":"vl","$levelCounter":"Pl","$levelScaler":"Ll","$wonParams":"Tl","$aborted":"bl","$coinCounterTimer":"Al","$coinPromise":"kl","$nextLevel":"Cl","$continueButtonScaler":"Fl","$wonTextScaler":"xl","$wonText":"Rl","$levelCounterActionContainer":"Dl","$levelCounterAction":"Il","$levelNumberScaler":"Bl","$coinTemplate":"Ul","$coinContainer":"El","$help":"Wl","$loadLastLevel":"Nl","$levelWon":"Ol","$tutorial":"_l","$RENDERER_TYPES":"jl","$FIRST_LEVEL":"Vl","$TUTORIAL":"Jl","$SECOND_LEVEL":"zl","$BIG_SEGMENT_LEVEL":"ql","$loadLevelPromise":"Kl","$loadLevels":"Gl","$startLevelSite":"Xl","$randomRotateTimeout":"$l","$stats":"Ql","$setWord":"Yl"}}} \ No newline at end of file +{"vars":{"props":{"$_typeof":"t","$_get":"e","$_createClass":"n","$_asyncToGenerator":"r","$_possibleConstructorReturn":"i","$_inherits":"o","$_classCallCheck":"s","$InitPromise":"a","$AndroidBridge":"u","$MenuAction":"l","$OpenSubmenuAction":"c","$Menu":"h","$Submenu":"f","$TranslatorDB":"p","$Translator":"d","$Helper":"v","$SystemSettings":"m","$ThemeManager":"y","$CookieCompliance":"g","$ActionBarMenu":"k","$ViewInflater":"w","$Context":"_","$AbstractSite":"b","$SiteContainer":"x","$SiteManager":"O","$PauseSite":"L","$App":"P","$Dialog":"E","$FlashMessenger":"I","$MyDb":"S","$ScriptLoader":"C","$ShareButton":"j","$MultipleShareButton":"R","$ShareManager":"T","$SmsShareButton":"M","$TelegramShareButton":"A","$WhatsappShareButton":"q","$Fragment":"N","$Theme":"B","$Constants":"D","$DataManager":"X","$Form":"H","$SettingsManager":"F","$LocalStorageSettingsFragment":"z","$SmartColumn":"$","$ConstSmartColumn":"U","$DataSmartColumn":"G","$ImgConstSmartColumn":"V","$ListHelper":"J","$SettingsSite":"Z","$UserManager":"Q","$UserAction":"W","$NotAllowedSite":"Y","$UserSite":"K","$LoginForm":"tt","$RegistrationForm":"et","$UserFragment":"nt","$PasswordSettingsFragment":"rt","$UserSettingsFragment":"it","$EditUserRolesSite":"ot","$ForgotPasswordSite":"st","$LoginSite":"at","$RegistrationSite":"ut","$SetNewPasswordSite":"lt","$InstallManager":"ct","$Matomo":"ht","$MatomoShareButton":"ft","$ScaleHelper":"pt","$AudioChain":"dt","$SoundManager":"vt","$Code":"mt","$CodeSite":"yt","$ContactSite":"gt","$WordRotatorBaseSite":"kt","$TemplateContainer":"wt","$Segment":"_t","$LeafSegment":"bt","$ParentSegment":"xt","$Level":"Ot","$RowSegment":"Lt","$RowLevel":"Pt","$SimpleLevel":"Et","$RowLevel8":"It","$RowLevel10":"St","$TriangleSegment":"Ct","$SixWordsRowLevel":"jt","$SixWordsRowLevel8":"Rt","$SixWordsRowLevel12":"Tt","$FourWordsLevel":"Mt","$FourWordsLevel8":"At","$FourWordsLevel12":"qt","$LevelHelper":"Nt","$WordRotatorDb":"Bt","$EndSite":"Dt","$LevelSite":"Xt","$MainMenuLevel":"Ht","$ShareDialog":"Ft","$MenuSite":"zt","$PrivacyPolicySite":"$t","$CreditsSite":"Ut","$ChooseThemeDialog":"Gt","$ImpressumSite":"Vt","$WordRotatorSettingFragment":"Jt","$SelectWordsSite":"Zt","$DeleteWordsSite":"Qt","$basePath":"Wt","$app":"Yt"}},"props":{"props":{"$addPromise":"t","$mainPromise":"s","$promises":"i","$mainResolver":"o","$addDefinition":"l","$definitions":"h","$applyDefinitions":"u","$nonNull":"m","$callback":"p","$showFor":"g","$SHOW_FOR_MEDIUM":"S","$_liClass":"M","$_menu":"H","$_activated":"v","$_visible":"P","$maxId":"T","$_icon":"L","$_shouldTranslate":"A","$_copies":"C","$setTitle":"k","$setShouldTranslate":"F","$getShowFor":"B","$getTitle":"R","$getShouldTranslate":"D","$isNotNull":"I","$removeAction":"U","$getMenu":"W","$setMenu":"N","$getVisible":"O","$setVisible":"_","$redraw":"j","$getActivated":"V","$getIcon":"J","$setIcon":"q","$getId":"K","$updateAction":"G","$copy":"X","$redrawMenu":"$","$SHOW_ALWAYS":"Y","$SHOW_FOR_LARGE":"Z","$SHOW_NEVER":"tt","$getSubmenu":"et","$submenu":"nt","$setParentAction":"st","$actions":"it","$submenus":"rt","$parentElements":"ot","$addAction":"at","$includesNot":"lt","$draw":"ht","$sortActions":"ut","$renderAction":"ct","$_htmlElement":"dt","$_getOnClickListener":"pt","$makePersistentTranslation":"gt","$renderLiElement":"ft","$getParentElement":"St","$_getElementsForAction":"wt","$isNull":"Mt","$SHOW_FOR_SMEDIUM":"Ht","$parentAction":"yt","$_indexedDB":"vt","$_version":"Pt","$_dbPromise":"Tt","$_upgradeDb":"Lt","$setLanguage":"bt","$_openTransaction":"At","$saveTranslationsForLang":"Ct","$loadTranslationsForLang":"kt","$getLanguage":"Ft","$_translations":"xt","$_db":"Bt","$_currentLanguage":"Rt","$_supportedLanguages":"Dt","$supportedLanguages":"It","$_baseLanguage":"Ut","$baseLanguage":"Et","$_languageBasePath":"Wt","$languageBasePath":"Nt","$_markUntranslatedTranslations":"Ot","$markUntranslatedTranslations":"_t","$_markTranslations":"jt","$markTranslations":"Vt","$_initPromise":"Jt","$loadBaseLanguage":"zt","$loadUserLanguage":"qt","$_loadLanguage":"Kt","$basePath":"Gt","$getInstance":"Xt","$updateTranslations":"$t","$addDynamicTranslation":"Qt","$logMissingTranslations":"Yt","$generateChangeLanguageMenuAction":"Zt","$instance":"te","$currentLanguage":"ee","$translations":"ne","$heightMmToPxFactor":"se","$widthMmToPxFactor":"ie","$isSet":"re","$notEmpty":"oe","$buildQuery":"ae","$inflateElementsFromString":"le","$createLoadingSymbol":"he","$getBasePath":"ue","$isMobileApple":"ce","$isMobile":"de","$encodeToBase":"me","$decodeToBase":"pe","$toggleVisibility":"ge","$strftime":"fe","$cloneJson":"Se","$htmlspecialcharsDecode":"we","$formDataFromObject":"Me","$scaleContentRecursive":"He","$scaleDownContentRecursive":"ye","$convertChildrenToRelativeRecursive":"ve","$convertToRelative":"Pe","$isChrome":"Te","$getIndexedObject":"Le","$invertKeyValues":"be","$setBasePath":"Ae","$_basePath":"Ce","$_settings":"ke","$loadCurrentTheme":"Fe","$changeCurrentTheme":"xe","$themes":"Be","$_name":"Re","$_className":"De","$currentTheme":"Ie","$changeListeners":"Ue","$addTheme":"Ee","$generateChangeThemeMenuAction":"We","$showIfNeeded":"Ne","$cookieContainerId":"Oe","$dropCookie":"_e","$cookieDuration":"je","$cookieName":"Ve","$cookieValue":"Je","$checkCookie":"ze","$removeMe":"qe","$createCookie":"Ke","$eraseCookie":"Ge","$currentMenu":"Xe","$updateToggleButton":"$e","$queries":"Qe","$_getCurrentSize":"Ye","$filterVisibleElements":"Ze","$inflate":"tn","$_siteContent":"en","$firstStart":"nn","$inflatePromise":"sn","$inflatePromiseResolver":"in","$fragments":"rn","$inflateView":"on","$onConstruct":"an","$onStart":"ln","$onFirstStart":"hn","$isActive":"un","$onPause":"cn","$onDestroy":"dn","$addFragment":"mn","$findBy":"pn","$isVisible":"gn","$siteManager":"fn","$isFinishing":"Sn","$actionMenu":"wn","$deepLink":"Mn","$startArgs":"Hn","$getDefaultTitle":"yn","$element":"vn","$updateTitle":"Pn","$startStartsite":"Tn","$startSite":"Ln","$getStartSiteName":"bn","$setUrlFromParams":"An","$endSite":"Cn","$toForeground":"kn","$finishAndStartNext":"Fn","$createActionBarMenu":"xn","$getDefaultActions":"Bn","$setUrl":"Rn","$updateUrl":"Dn","$updateUrlParams":"In","$getUrl":"Un","$getFullUrl":"En","$onBackPressed":"Wn","$addKeyListener":"Nn","$addKeyAndEventListener":"On","$_site":"_n","$_pauseParameters":"jn","$_startParameters":"Vn","$_finishResolver":"Jn","$getSite":"zn","$setSite":"qn","$getSiteContent":"Kn","$setSiteContent":"Gn","$getPauseParameters":"Xn","$setPauseParameters":"$n","$getStartParameters":"Qn","$setStartParameters":"Yn","$getFinishResolver":"Zn","$setFinishResolver":"ts","$siteDiv":"es","$siteContainerStack":"ns","$currentSiteContainerToShow":"ss","$actionBarMenuSelector":"rs","$siteStartingPromise":"os","$defaultActions":"as","$startSiteName":"ls","$titleElement":"hs","$defaultTitle":"us","$setStartSiteName":"cs","$addDefaultAction":"ds","$getCurrentSite":"ms","$findSite":"ps","$buildActionBarMenu":"gs","$findContainerIndexBySite":"fs","$showAppEndedMessage":"Ss","$refreshCurrentSite":"ws","$redrawCurrentActionBar":"Ms","$findContainerBySite":"Hs","$_siteManager":"ys","$_actionBarMenuSelector":"vs","$_siteContentId":"Ps","$_deepLinks":"Ts","$_defaultActions":"Ls","$_addThemeAction":"bs","$_showCookieCompliance":"As","$_startSite":"Cs","$getSiteManager":"ks","$setAddThemeAction":"Fs","$getSiteContentId":"xs","$setSiteContentId":"Bs","$getActionBarMenuSelector":"Rs","$setActionBarMenuSelector":"Ds","$addDeepLink":"Is","$setShowCookieCompliance":"Us","$_resolveDeepLink":"Es","$_getDeepLink":"Ws","$_addDeepLinksListener":"Ns","$_extractParams":"Os","$removeDefaultAction":"_s","$_getStartParams":"js","$_cookieClosePromise":"Vs","$resolver":"Js","$backgroundElement":"zs","$translatable":"qs","$additionalClasses":"Ks","$setContent":"Gs","$setTranslatable":"Xs","$setAdditionalClasses":"$s","$setCancelable":"Qs","$contentPromise":"Ys","$addButton":"Zs","$addDefaultButton":"ti","$deleteMessage":"ei","$addMessage":"ni","$MESSAGE_TYPE_SUCCESS":"si","$messageCount":"ii","$defaultTimeToShow":"ri","$LENGTH_SHORT":"oi","$MESSAGE_TYPE_ERROR":"ai","$MESSAGE_TYPE_DEFAULT":"li","$MESSAGE_TYPE_INFO":"hi","$MESSAGE_TYPE_WARNING":"ui","$shimIndexedDB":"ci","$_conn":"di","$upgrade":"mi","$queryPromise":"pi","$openTransaction":"gi","$openStore":"fi","$saveObj":"Si","$saveMany":"wi","$loadAll":"Mi","$loadMany":"Hi","$removeMany":"yi","$removeWithIndex":"vi","$removeAll":"Pi","$loadScript":"Ti","$scriptPromises":"Li","$loadCss":"bi","$cssPromises":"Ai","$_deviceType":"Ci","$_callback":"ki","$shouldShowFor":"Fi","$getCallback":"xi","$TYPE_DESKTOP":"Bi","$TYPE_MOBILE_APPLE":"Ri","$TYPE_MOBILE_LEFTOVER":"Di","$TYPE_MOBILE":"Ii","$shareButtons":"Ui","$addShareButton":"Ei","$generateDefaultShareElement":"Wi","$generateShareElement":"Ni","$getDefaultGenerateCallback":"Oi","$generateDefaultShareElementForButtons":"_i","$generateShareElementForButtons":"ji","$getCurrentDeviceType":"Vi","$site":"Ji","$ActiveXObject":"zi","$SCRIPTS":"qi","$CKEDITOR":"Ki","$LIST_JS":"Gi","$cachePath":"Xi","$dataPath":"$i","$_load":"Qi","$loadStatic":"Yi","$formElem":"Zi","$isCachable":"tr","$isBusy":"er","$submitHandler":"nr","$submitCallback":"sr","$errorCallback":"ir","$setErrors":"rr","$doSubmit":"or","$onError":"ar","$setValues":"lr","$setIsBusy":"hr","$readonly":"ur","$onSubmit":"cr","$_instance":"dr","$_localStorageKey":"mr","$getSettings":"pr","$_loadSettings":"gr","$getSetting":"Sr","$deleteSetting":"wr","$_saveSettings":"Mr","$setSetting":"Hr","$date":"yr","$setSettings":"vr","$hasSetting":"Pr","$_label":"Tr","$_translateable":"Lr","$_sortable":"br","$_index":"Ar","$_clickListener":"Cr","$setClickListener":"kr","$setIndex":"Fr","$getName":"xr","$getLabel":"Br","$getHeadElement":"Rr","$_headElement":"Dr","$getValueName":"Ir","$prepareData":"Ur","$getItemElement":"Er","$_valueTranslatable":"Wr","$_tableElement":"Nr","$_options":"Or","$_values":"_r","$_columns":"jr","$prepareDataset":"Vr","$createTable":"Jr","$updateColumns":"zr","$getList":"qr","$updateItem":"Kr","$setBusy":"Gr","$template":"Xr","$settingsFragments":"$r","$addSettingsFragment":"Qr","$buildList":"Yr","$setAddSettingsSite":"Zr","$shouldAddSettingsSite":"to","$setTemplate":"eo","$settingsAction":"no","$shouldAddSettingsAction":"so","$getMeUrl":"io","$userData":"ro","$online":"oo","$fetchMePromise":"ao","$fetchMePromiseResolver":"lo","$fetchMe":"ho","$logOut":"uo","$hasAccess":"co","$addCurrentUserListener":"do","$addIsLoggedInListener":"mo","$isCurrentUser":"po","$isLoggedIn":"fo","$_access":"So","$getAccess":"wo","$checkPw":"Mo","$setUserRoles":"Ho","$setAvailableRoles":"yo","$setUsername":"vo","$loginAction":"Po","$logoutAction":"To","$addLoginAction":"Lo","$addLogoutAction":"bo","$setDeferredPrompt":"Ao","$deferredPromt":"Co","$canInstallListener":"ko","$setCanInstallListener":"Fo","$isTrackingPromise":"xo","$LOCAL_STORAGE_KEY":"Bo","$_askIsTracking":"Ro","$setTrack":"Do","$TRACK_SITE":"Io","$SIDE_ID":"Uo","$currentUrl":"Eo","$query":"Wo","$BASE_PATH":"No","$getTrackingPromise":"Oo","$trackEvent":"_o","$scaleTo":"jo","$_getNewFontSize":"Vo","$scaleToFull":"Jo","$shouldLoop":"zo","$chainFunction":"qo","$pauseTime":"Ko","$running":"Go","$setBuffer":"Xo","$setLooping":"$o","$channels":"Qo","$handleVisibilityChange":"Yo","$DEFAULT":"Zo","$CHANNELS":"ta","$audio":"ea","$loadedPromise":"na","$timeOffset":"sa","$MUSIC":"ia","$SOUND":"ra","$args":"oa","$isCacheable":"aa","$setIsCacheable":"la","$getIsCacheable":"ha","$activate":"ua","$DEEP_LINK":"ca","$leafTemplate":"da","$parentTemplate":"ma","$rowTemplate":"pa","$triangleTemplate":"ga","$copyLeafTemplate":"fa","$copyParentTemplate":"Sa","$copyRowTemplate":"wa","$copyTriangleTemplate":"Ma","$getCurrentRotations":"Ha","$sameAs":"ya","$setParent":"va","$getLevel":"Pa","$canRotate":"Ta","$isSolved":"La","$_updateElement":"ba","$applyRotations":"Aa","$applyLocks":"Ca","$getCurrentLocked":"ka","$getElement":"Fa","$leaf":"xa","$setLeaf":"Ba","$initListener":"Ra","$mouseDownTarget":"Da","$clickPosition":"Ia","$setIsRotatable":"Ua","$rotatable":"Ea","$class":"Wa","$touchendListener":"Na","$segmentClickedListener":"Oa","$mouseupListener":"_a","$getHasWon":"ja","$_updateRotationClass":"Va","$checkHasWon":"Ja","$setChildren":"za","$addChild":"qa","$_getLayer":"Ka","$rootSegment":"Ga","$startRotations":"Xa","$templateContainer":"$a","$hasWon":"Qa","$wonResolver":"Ya","$giveUpResolver":"Za","$wonPromise":"tl","$saveAsCurrentLevel":"el","$setLocks":"nl","$setId":"sl","$setRootSegment":"il","$setWords":"rl","$setStartRotations":"ol","$getWonPromise":"al","$getRootSegment":"ll","$createSegments":"hl","$getRotatableSegments":"ul","$_getRotatableSegmentsFrom":"cl","$setSegmentClickedListener":"dl","$_createLeafsForWord":"ml","$wordLength":"pl","$setLevelType":"gl","$getLevelClass":"fl","$inflateLevel":"Sl","$LEVEL":"wl","$OBJECT_STORE":"Ml","$saveManyLevels":"Hl","$loadLevel":"yl","$loadNextLevel":"vl","$saveLevelPlayed":"Pl","$coinAction":"Tl","$levelCounter":"Ll","$levelScaler":"bl","$wonParams":"Al","$aborted":"Cl","$coinCounterTimer":"kl","$coinPromise":"Fl","$nextLevel":"xl","$continueButtonScaler":"Bl","$wonTextScaler":"Rl","$wonText":"Dl","$levelCounterActionContainer":"Il","$levelCounterAction":"Ul","$levelNumberScaler":"El","$coinTemplate":"Wl","$coinContainer":"Nl","$help":"Ol","$loadLastLevel":"_l","$levelWon":"jl","$tutorial":"Vl","$RENDERER_TYPES":"Jl","$FIRST_LEVEL":"zl","$TUTORIAL":"ql","$SECOND_LEVEL":"Kl","$BIG_SEGMENT_LEVEL":"Gl","$loadLevelPromise":"Xl","$loadLevels":"$l","$startLevelSite":"Ql","$randomRotateTimeout":"Yl","$stats":"Zl","$setWord":"th"}}} \ No newline at end of file diff --git a/src/js/init.js b/src/js/init.js index 84b61bd..846d0fd 100755 --- a/src/js/init.js +++ b/src/js/init.js @@ -1,4 +1,5 @@ import { + AndroidBridge, App, applyPolyfills, InitPromise, MenuAction, ShareManager, @@ -46,17 +47,17 @@ ShareManager.addShareButton(new MatomoShareButton(new TelegramShareButton('img/t // ShareManager.addShareButton(new CopyShareButton('img/copy.svg')); let app = new App(); -// app.addDeepLink("policy", PrivatePolicySite.name); + +AndroidBridge.addDefinition(() => { + window["app"] = app; + window["app"]["pause"] = app.pause; + window["app"]["resume"] = app.resume; + // window["app"]["refreshCurrentSite"] = app.refreshCurrentSite; +}); // bridge für Android -// window["ThemeManager"] = ThemeManager; -// window["ThemeManager"]["addChangeListener"] = ThemeManager.addChangeListener; -// window["app"] = app; -// window["app"]["refreshCurrentSite"] = app.refreshCurrentSite; // window["Translator"] = Translator; // window["Translator"]["setLanguage"] = Translator.setLanguage; -// window["InitPromise"] = InitPromise; -// window["InitPromise"]["addPromise"] = InitPromise.addPromise; SettingsSite.setTemplate("html/application/setting-template.html"); @@ -79,4 +80,6 @@ InitPromise.resolve(app).then(async function(){ InstallManager.setCanInstallListener(e => { console.log("can install!", e); }); + + window["applyAndroidBridge"] = AndroidBridge.applyDefinitions; }); diff --git a/src/js/lib/pwa-assets.js b/src/js/lib/pwa-assets.js index 98832a6..0c39f1f 100755 --- a/src/js/lib/pwa-assets.js +++ b/src/js/lib/pwa-assets.js @@ -1,4 +1,4 @@ -import { Helper, InitPromise, MultipleShareButton, Fragment, Translator } from './pwa-lib.js'; +import { Helper, InitPromise, MultipleShareButton, AndroidBridge, Fragment, Translator } from './pwa-lib.js'; class DelayPromise extends Promise { static async delay(delay) { @@ -174,6 +174,8 @@ class MatomoShareButton extends MultipleShareButton{ } } +AndroidBridge.addDefinition("MatomoShareButton", MatomoShareButton); + class RotateHelper { rotate(element, degrees){ let rotateText = element.innerText; diff --git a/src/js/lib/pwa-lib.js b/src/js/lib/pwa-lib.js index df26d77..acb7f37 100755 --- a/src/js/lib/pwa-lib.js +++ b/src/js/lib/pwa-lib.js @@ -1,3 +1,65 @@ +class InitPromise +{ + static addPromise(promise) + { + if (typeof promise === 'function') + { + let func = promise; + promise = InitPromise.mainPromise.then(function(app){ + return (func(app)); + }); + } + InitPromise.promises.push(promise); + } + + static resolve(app) + { + InitPromise.mainResolver(app); + return InitPromise.mainPromise.then(function(){ + return Promise.all(InitPromise.promises); + }); + } +} + +InitPromise.promises = []; +InitPromise.mainPromise = new Promise(function(resolver){ + InitPromise.mainResolver = resolver; +}); + +class AndroidBridge { + + static addDefinition(definition, object) { + if (typeof definition !== "function") { + if (typeof definition === "string"){ + let parts = definition.split("."); + for (let i = parts.length-1; i >= 1; i--) { + let newObject = {}; + newObject[parts[i]] = object; + object = newObject; + } + definition = parts[0]; + console.log("parts for", definition, parts, object); + } + let textDefinition = definition; + definition = () => { + console.log("defining", textDefinition, object); + window[textDefinition] = object; + }; + } + AndroidBridge.definitions.push(definition); + } + + static applyDefinitions() { + for (let i = 0; i < AndroidBridge.definitions.length; i++) { + AndroidBridge.definitions[i](); + } + return Promise.resolve(); + } +} + +AndroidBridge.definitions = []; +AndroidBridge.addDefinition("InitPromise.addPromise", InitPromise.addPromise); + class MenuAction { constructor(title, callback, showFor, order) { this.title = Helper.nonNull(title, null); @@ -840,6 +902,9 @@ Translator.languageBasePath = "js/lang/"; Translator.currentLanguage = null; Translator.translations = {}; + +AndroidBridge.addDefinition("Translator.setLanguage", Translator.setLanguage); + class Helper { static init() { Helper.heightMmToPxFactor = null; @@ -1367,11 +1432,21 @@ class ThemeManager { static addChangeListener(listener) { ThemeManager.changeListeners.push(listener); } + + static getCurrentTheme(){ + return ThemeManager.currentTheme; + } } +ThemeManager.currentTheme = null; ThemeManager.themes = []; ThemeManager.changeListeners = []; +AndroidBridge.addDefinition("ThemeManager", { + "addChangeListener": ThemeManager.addChangeListener, + "getCurrentTheme": ThemeManager.getCurrentTheme, +}); + class CookieCompliance { static async showIfNeeded(cookieContainer) { @@ -3291,33 +3366,6 @@ class GapiHandler { } } -class InitPromise -{ - static addPromise(promise) - { - if (typeof promise === 'function') - { - let func = promise; - promise = InitPromise.mainPromise.then(function(app){ - return (func(app)); - }); - } - InitPromise.promises.push(promise); - } - - static resolve(app) - { - InitPromise.mainResolver(app); - return InitPromise.mainPromise.then(function(){ - return Promise.all(InitPromise.promises); - }); - } -} -InitPromise.promises = []; -InitPromise.mainPromise = new Promise(function(resolver){ - InitPromise.mainResolver = resolver; -}); - class MyDb { constructor(dbName, version) { let indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB; @@ -3716,6 +3764,12 @@ ShareButton.TYPE_MOBILE_LEFTOVER = 4; ShareButton.TYPE_MOBILE = ShareButton.TYPE_MOBILE_APPLE+ShareButton.TYPE_MOBILE_LEFTOVER; ShareButton.TYPE_ALL = ShareButton.TYPE_DESKTOP+ShareButton.TYPE_MOBILE; +AndroidBridge.addDefinition(() => { + window["ShareButton"] = ShareButton; + window["ShareButton"]["TYPE_ALL"] = ShareButton.TYPE_ALL; + +}); + class CopyShareButton extends ShareButton { constructor(icon, shouldLoadImg) { @@ -3847,6 +3901,8 @@ class ShareManager { ShareManager.init(); +AndroidBridge.addDefinition("ShareManager.addShareButton", ShareManager.addShareButton); + class SmsShareButton extends ShareButton { constructor(icon, shouldLoadImg) { @@ -4379,4 +4435,4 @@ function applyPolyfills() { }); } -export { App, ChainAble, CookieCompliance, ConfirmDialog, Dialog, FlashMessenger, AbstractService, AbstractGapiResponse, Achievement, AchievementList, GameService, GapiPlayer, Leaderboard, Score, GapiHandler, Helper, InitPromise, ActionBarMenu, Menu, MenuAction, OpenSubmenuAction, Submenu, MyDb, Prioritised, ScriptLoader, CopyShareButton, MultipleShareButton, ShareButton, ShareManager, SmsShareButton, TelegramShareButton, WhatsappShareButton, SimpleWS, AbstractSite, Context, Fragment, PauseSite, SiteContainer, SiteManager, SystemSettings, Theme, ThemeManager, DBTranslator, Translator, TranslatorDB, ViewInflater, applyPolyfills }; +export { AndroidBridge, App, ChainAble, CookieCompliance, ConfirmDialog, Dialog, FlashMessenger, AbstractService, AbstractGapiResponse, Achievement, AchievementList, GameService, GapiPlayer, Leaderboard, Score, GapiHandler, Helper, InitPromise, ActionBarMenu, Menu, MenuAction, OpenSubmenuAction, Submenu, MyDb, Prioritised, ScriptLoader, CopyShareButton, MultipleShareButton, ShareButton, ShareManager, SmsShareButton, TelegramShareButton, WhatsappShareButton, SimpleWS, AbstractSite, Context, Fragment, PauseSite, SiteContainer, SiteManager, SystemSettings, Theme, ThemeManager, DBTranslator, Translator, TranslatorDB, ViewInflater, applyPolyfills }; diff --git a/src/module/Application/pwa/js/wordrotator/Segment/ParentSegment.js b/src/module/Application/pwa/js/wordrotator/Segment/ParentSegment.js index 5ea3ca1..c5674ac 100755 --- a/src/module/Application/pwa/js/wordrotator/Segment/ParentSegment.js +++ b/src/module/Application/pwa/js/wordrotator/Segment/ParentSegment.js @@ -37,14 +37,16 @@ export class ParentSegment extends Segment { let self = this; this.touchendListener = function (e) { - let target = document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY); - if (e.targetTouches.length === 0 && e.changedTouches.length === 1 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(target)) { - let position = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY}; + if (e.changedTouches.length >= 1) { + let target = document.elementFromPoint(e.changedTouches[0].pageX, e.changedTouches[0].pageY); + if (e.targetTouches.length === 0 && e.changedTouches.length === 1 && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(target)) { + let position = {x: e.changedTouches[0].pageX, y: e.changedTouches[0].pageY}; - self.getLevel().segmentClickedListener(self); - self.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position); - e.stopPropagation(); - e.preventDefault(); + self.getLevel().segmentClickedListener(self); + self.rotate(ParentSegment.mouseDownTarget, target, ParentSegment.clickPosition, position); + e.stopPropagation(); + e.preventDefault(); + } } }; this.mouseupListener = function (e) { diff --git a/src/module/Application/pwa/public/html/application/menu.html b/src/module/Application/pwa/public/html/application/menu.html index db15a4d..b35a96b 100644 --- a/src/module/Application/pwa/public/html/application/menu.html +++ b/src/module/Application/pwa/public/html/application/menu.html @@ -14,7 +14,7 @@
-
+
1 diff --git a/src/scss/_settings.scss b/src/scss/_settings.scss index 048b516..04b72a4 100755 --- a/src/scss/_settings.scss +++ b/src/scss/_settings.scss @@ -1,6 +1,6 @@ @import "defaultSettings"; -$themes: map-merge($themes,(dark: ( +$themes: map-merge($themes, (dark: ( class: dark, themeColor: #373737, lightThemeColor: #4b4b4b, @@ -17,4 +17,24 @@ $themes: map-merge($themes,(dark: ( ))); $rotationDegrees: (90 180 270 360); -$animationDuration: .25s; \ No newline at end of file +$animationDuration: .25s; + +//$degreeMatrix: ( +// //0:matrix(1, 0, 0, 1, 0, 0), +// 0:rotate(0deg), +// 90:matrix(0, 1, -1, 0, 0, 0), +// 180:matrix(-1, 0, 0, -1, 0, 0), +// 270:matrix(0, -1, 1, 0, 0, 0), +// //360:matrix(0.99999, 0, 0, 0.99999, 0, 0), +// //450:matrix(0, 1, -1, 0, 0, 0), +// 360:rotate(360deg), +// 450:rotate(450deg), +//); +$degreeMatrix: ( + 0:rotate(0deg), + 90:rotate(90deg), + 180:rotate(180deg), + 270:rotate(270deg), + 360:rotate(360deg), + 450:rotate(450deg), +); \ No newline at end of file diff --git a/src/scss/_wordRotator.scss b/src/scss/_wordRotator.scss new file mode 100755 index 0000000..bbb5b3b --- /dev/null +++ b/src/scss/_wordRotator.scss @@ -0,0 +1,379 @@ +@import "imports"; +@import "tutorial"; +@import "wordrotatorTheme"; + +//ActionBar +nav.top-bar.title-bar { + padding: 0.3rem 0.6rem 0; +} + +#logo { + max-width: 2rem; + transition: none; +} + +#action-bar .top-bar-right .menu .action.img a { + padding-bottom: 0; + img { + max-height: 1.8rem; + } +} + +.menu, .dropdown.menu { + a { + padding: 0.2rem 0.5rem; + } +} + +#level-number-container { + z-index: 1; + transition: none; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + border: 3px solid white; + border-radius: 50%; + visibility: hidden; + display: table-cell; + + height: 35px; + width: 35px; + text-align: center; + vertical-align: middle; + + &.visible { + visibility: visible; + } + &.in-main-menu { + background: white; + border-color: black; + + height: 1em; + width: 1em; + min-height: 1em; + min-width: 1em; + max-height: 1em; + max-width: 1em; + } + + #level-number { + transition: none; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + font-weight: bold; + } +} + +$coinTowerDimension: 28px; +//coin element +.coin-counter { + display: inline-block; + position: relative; + font-size: 1.6rem; + @include breakpoint(small down) { + font-size: 1rem; + } + + :after { + background-image: url('../img/coinTower.png'); + background-size: $coinTowerDimension $coinTowerDimension; + width: $coinTowerDimension; + height: $coinTowerDimension; + display: inline-block; + content: ""; + } +} + +#coin-container { + line-height: 1; + .coin { + margin-left: 3px; + margin-right: 3px; + max-width: 20px; + display: inline-block; + @include breakpoint(smedium) { + max-width: 25px; + } + @include breakpoint(medium) { + max-width: 30px; + } + } +} + +//Segments + +@for $i from 1 through length($rotationDegrees) { + $startDegree: ((nth($rotationDegrees, $i)+270)%360); + + @keyframes rotate-#{nth($rotationDegrees, $i)} { + 0% { + //transform: rotate(#{$startDegree}deg); + transform: #{map-get($degreeMatrix, $startDegree)}; + } + 100% { + //transform: rotate(#{nth($rotationDegrees, $i)}deg); + transform: #{map-get($degreeMatrix, nth($rotationDegrees, $i))}; + } + } + @keyframes rotate-reverse-#{nth($rotationDegrees, $i)} { + 0% { + //transform: rotate(#{(nth($rotationDegrees, $i))+90}deg); + transform: #{map-get($degreeMatrix, nth($rotationDegrees, $i)+90)} + } + 100% { + //transform: rotate(#{$startDegree+90}deg); + transform: #{map-get($degreeMatrix, $startDegree+90)}; + } + } +} + +.segment:not(.segment-row):not(.segment-triangle) { + &.rotating { + z-index: 10 !important; + overflow: hidden; + + @for $i from 1 through length($rotationDegrees) { + &.rotate-#{nth($rotationDegrees, $i)} { + animation-name: rotate-#{nth($rotationDegrees, $i)}; + animation-duration: $animationDuration; + animation-fill-mode: forwards; + animation-timing-function: linear; + + > .child-container { + > .segment { + animation-name: rotate-#{450- nth($rotationDegrees, $i)}; + animation-duration: $animationDuration; + animation-fill-mode: forwards; + animation-direction: reverse; + animation-timing-function: linear; + + @for $j from 1 through length($rotationDegrees) { + $animationName: ((nth($rotationDegrees, $j)- nth($rotationDegrees, $i)+360)%360)+90; + &.rotate-#{nth($rotationDegrees, $j)} { + animation-name: rotate-#{$animationName}; + } + } + } + } + + &.reverse { + //animation-name: rotate-reverse-#{(nth($rotationDegrees, $i))%360+90}; + animation-name: rotate-reverse-#{nth($rotationDegrees, $i)}; + > .child-container { + > .segment { + //animation-name: rotate-reverse-#{360- (nth($rotationDegrees, $i)%360)}; + animation-name: rotate-reverse-#{(540- nth($rotationDegrees, $i))%360+90}; + @for $j from 1 through length($rotationDegrees) { + $animationName: ((nth($rotationDegrees, $j)- nth($rotationDegrees, $i)+360)%360)+90; + &.rotate-#{nth($rotationDegrees, $j)} { + animation-name: rotate-reverse-#{($animationName+90)%360+90}; + } + } + } + } + } + } + } + } + + &:not(.rotating) { + @for $i from 1 through length($rotationDegrees) { + &.rotate-#{nth($rotationDegrees, $i)} { + transform: rotate(#{nth($rotationDegrees, $i)}deg); + background-color: inherit; + z-index: 1; + > .child-container { + > .segment { + transform: rotate(#{360- nth($rotationDegrees, $i)}deg); + background-color: inherit; + z-index: 1; + + @for $j from 1 through length($rotationDegrees) { + $animationName: ((nth($rotationDegrees, $j)- nth($rotationDegrees, $i)+360)%360); + @if $animationName==0 { + $animationName: 360; + } + + &.rotate-#{nth($rotationDegrees, $j)} { + transform: rotate(#{$animationName}deg); + background-color: inherit; + z-index: 1; + + &.rotating { + animation-name: rotate-#{$animationName}; + animation-duration: $animationDuration; + animation-fill-mode: forwards; + animation-timing-function: linear; + + &.reverse { + animation-name: rotate-reverse-#{$animationName}; + } + } + } + } + } + } + } + } + } +} + +#level { + user-select: none; + white-space: nowrap; + transition: none; + max-width: 100%; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + //width: 100%; + + * { + transition: none; + } + overflow-y: visible; +} + +.segment { + vertical-align: top; + white-space: initial; + cursor: pointer; + display: inline-block; + text-align: center; + position: relative; + transition: none; + user-select: none; + z-index: 1; + background-color: inherit; + line-height: 0; + + &.segment-row { + display: block; + width: 100%; + animation: none !important; + white-space: nowrap; + } + + &.segment-leaf { + background-color: transparent !important; + min-width: 1em; + padding: 0.8em; + &:before { + content: " "; + display: block; + padding-top: 100%; + } + .leaf-element { + position: absolute; + width: 100%; + height: 100%; + line-height: 1.5em; + top: 0; + left: 0; + } + } + + &.segment-parent { + border: solid 1px #a9a9a9; + border-radius: 3px; + padding: 1px; + + &.layer-2 { + border: solid 3px #000000; + } + } + + &.segment-triangle { + > .child-container { + > .segment-parent { + //border: solid 3px #000000; + //position: relative; + } + } + } +} + +//Won-screen +#site-content > :not(.won) { + .show-when-won { + display: none; + } +} + +.level-container { + //flex: 1; + transition: none; +} + +.won { + .level-container { + //height: 60%; + } + .show-when-won { + //visibility: initial; + } + .show-while-playing { + display: none; + } +} + +.text-right { + text-align: right; +} + +#continue-button { + margin-bottom: 2px; + @include breakpoint(small down) { + margin-bottom: 0; + padding: 0.3em .6em; + } +} + +#play-button { + @include breakpoint(small down) { + margin-bottom: 2px; + } +} + +#help-button { + margin: 0; + padding: 0.4em 0.4em; + max-width: 3em; + @include breakpoint(smedium down) { + padding: 0.2em 0.2em; + max-width: 2em; + } +} + +.line-height-1 { + line-height: 1; +} + +body { + overscroll-behavior: contain; + user-select: none; +} + +#site-content { + overflow: visible; +} +div.mainContainer{ + overflow-x: hidden; + +} + +//#img-sound:before { +// content: ""; +// max-width: 1.4em; +// background: url('../img/speaker.svg') +//} + +.clickable{ + cursor: pointer; +} + +#share-button svg{ + cursor: pointer; + max-width: 1.5rem; +} diff --git a/src/scss/wordRotator.scss b/src/scss/wordRotator.scss index 212f514..1da42b4 100755 --- a/src/scss/wordRotator.scss +++ b/src/scss/wordRotator.scss @@ -30,7 +30,8 @@ nav.top-bar.title-bar { transition: none; position: absolute; left: 50%; - transform: translate(-50%); + top: 50%; + transform: translate(-50%, -50%); border: 3px solid white; border-radius: 50%; visibility: hidden; @@ -109,21 +110,24 @@ $coinTowerDimension: 28px; @keyframes rotate-#{nth($rotationDegrees, $i)} { 0% { - transform: rotate(#{$startDegree}deg); + //transform: rotate(#{$startDegree}deg); + transform: #{map-get($degreeMatrix, $startDegree)}; } 100% { - transform: rotate(#{nth($rotationDegrees, $i)}deg); + //transform: rotate(#{nth($rotationDegrees, $i)}deg); + transform: #{map-get($degreeMatrix, nth($rotationDegrees, $i))}; } } @keyframes rotate-reverse-#{nth($rotationDegrees, $i)} { 0% { - transform: rotate(#{(nth($rotationDegrees, $i))+90}deg); + //transform: rotate(#{(nth($rotationDegrees, $i))+90}deg); + transform: #{map-get($degreeMatrix, nth($rotationDegrees, $i)+90)} } 100% { - transform: rotate(#{$startDegree+90}deg); + //transform: rotate(#{$startDegree+90}deg); + transform: #{map-get($degreeMatrix, $startDegree+90)}; } } - } .segment:not(.segment-row):not(.segment-triangle) { @@ -178,12 +182,14 @@ $coinTowerDimension: 28px; &:not(.rotating) { @for $i from 1 through length($rotationDegrees) { &.rotate-#{nth($rotationDegrees, $i)} { - transform: rotate(#{nth($rotationDegrees, $i)}deg); + //transform: rotate(#{nth($rotationDegrees, $i)}deg); + transform: #{map-get($degreeMatrix, nth($rotationDegrees, $i))}; background-color: inherit; z-index: 1; > .child-container { > .segment { - transform: rotate(#{360- nth($rotationDegrees, $i)}deg); + //transform: rotate(#{360- nth($rotationDegrees, $i)}deg); + transform: #{map-get($degreeMatrix, 360- nth($rotationDegrees, $i))}; background-color: inherit; z-index: 1; @@ -194,7 +200,8 @@ $coinTowerDimension: 28px; } &.rotate-#{nth($rotationDegrees, $j)} { - transform: rotate(#{$animationName}deg); + //transform: rotate(#{$animationName}deg); + transform: #{map-get($degreeMatrix, $animationName)}; background-color: inherit; z-index: 1; diff --git a/test/test.testcafe.js b/test/test.testcafe.js index 374f96a..fe328f5 100644 --- a/test/test.testcafe.js +++ b/test/test.testcafe.js @@ -1,7 +1,24 @@ import {Selector} from 'testcafe'; import {ClientFunction} from 'testcafe'; -let isLocal = false; +let isLocal = true; + +const checkMatrix = async (matrixString, shouldValues) => { + let values = (await matrixString).substring(7,matrixString.length -1).split(","); + for (let i = 0; i < values.length; i++) { + if (Array.isArray(shouldValues[i])){ + if (shouldValues[i][0] > values[i] || shouldValues[i][1] < values[1]){ + return false; + } + } + else { + if (shouldValues[i] != values[i]){ + return false; + } + } + } + return true; +}; const goBack = ClientFunction(() => window.history.back()); const testLocalStorageSet = ClientFunction((key, value) => { @@ -37,7 +54,8 @@ async function waitForMainMenu(t) { if (isLocal) { fixture`Play` - .page`https://127.0.0.1/pwa/wordRotator/publicTest/`.beforeEach(async t => { + // .page`https://127.0.0.1/pwa/wordRotator/publicTest/`.beforeEach(async t => { + .page`https://192.168.0.51/pwa/wordRotator/publicTest/`.beforeEach(async t => { await beforeEachTest(t); }).afterEach(async t => { await afterEachTest(t); @@ -86,7 +104,7 @@ const SEGMENT = { TWENTYONE: 20 }; -test('Play', async t => { +test.only('Play', async t => { let levelNumber = 1; await waitForMainMenu(t); @@ -96,7 +114,7 @@ test('Play', async t => { //firstTutorial .expect(Selector('.tutorial-text .step-1').visible).eql(true) - .expect(Selector('.tutorial-text .step-2').visible).eql(false) + .expect(Selector('.tutorial-text .step-2').visible).eql(false).debug() .click(Selector('.segment-parent').nth(SEGMENT.THREE)) .expect(Selector('.tutorial-text .step-2').visible).eql(true) .expect(Selector('.tutorial-text .step-1').visible).eql(false) @@ -109,6 +127,7 @@ test('Play', async t => { levelNumber++; //first Level + await t.debug(); await t.expect(Selector('.segment.segment-parent.rotate-90').nth(0).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)") .expect(Selector('.segment.segment-parent.rotate-90').nth(1).getStyleProperty('transform')).eql("matrix(0, 1, -1, 0, 0, 0)") .expect(Selector('.segment.segment-parent.rotate-270').getStyleProperty('transform')).eql("matrix(0, -1, 1, 0, 0, 0)")