    /* body {
      margin: 0;
      position: fixed;
      width: 100%;
      height: 100%;
    }

    html,
    body {
      overflow: hidden;
      background-color: #000;
    } */

    .dg ul {
      list-style: none;
      margin: 0;
      padding: 0;
      width: 100%;
      clear: both
    }

    .dg.ac {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      height: 0;
      z-index: 0
    }

    .dg:not(.ac) .main {
      overflow: hidden
    }

    .dg.main {
      -webkit-transition: opacity .1s linear;
      -o-transition: opacity .1s linear;
      -moz-transition: opacity .1s linear;
      transition: opacity .1s linear
    }

    .dg.main.taller-than-window {
      overflow-y: auto
    }

    .dg.main.taller-than-window .close-button {
      opacity: 1;
      margin-top: -1px;
      border-top: 1px solid #2c2c2c
    }

    .dg.main ul.closed .close-button {
      opacity: 1 !important
    }

    .dg.main:hover .close-button,
    .dg.main .close-button.drag {
      opacity: 1
    }

    .dg.main .close-button {
      -webkit-transition: opacity .1s linear;
      -o-transition: opacity .1s linear;
      -moz-transition: opacity .1s linear;
      transition: opacity .1s linear;
      border: 0;
      line-height: 19px;
      height: 20px;
      cursor: pointer;
      text-align: center;
      background-color: #000
    }

    .dg.main .close-button.close-top {
      position: relative
    }

    .dg.main .close-button.close-bottom {
      position: absolute
    }

    .dg.main .close-button:hover {
      background-color: #111
    }

    .dg.a {
      float: right;
      margin-right: 15px;
      overflow-y: visible
    }

    .dg.a.has-save>ul.close-top {
      margin-top: 0
    }

    .dg.a.has-save>ul.close-bottom {
      margin-top: 27px
    }

    .dg.a.has-save>ul.closed {
      margin-top: 0
    }

    .dg.a .save-row {
      top: 0;
      z-index: 1002
    }

    .dg.a .save-row.close-top {
      position: relative
    }

    .dg.a .save-row.close-bottom {
      position: fixed
    }

    .dg li {
      -webkit-transition: height .1s ease-out;
      -o-transition: height .1s ease-out;
      -moz-transition: height .1s ease-out;
      transition: height .1s ease-out;
      -webkit-transition: overflow .1s linear;
      -o-transition: overflow .1s linear;
      -moz-transition: overflow .1s linear;
      transition: overflow .1s linear
    }

    .dg li:not(.folder) {
      cursor: auto;
      height: 27px;
      line-height: 27px;
      padding: 0 4px 0 5px
    }

    .dg li.folder {
      padding: 0;
      border-left: 4px solid rgba(0, 0, 0, 0)
    }

    .dg li.title {
      cursor: pointer;
      margin-left: -4px
    }

    .dg .closed li:not(.title),
    .dg .closed ul li,
    .dg .closed ul li>* {
      height: 0;
      overflow: hidden;
      border: 0
    }

    .dg .cr {
      clear: both;
      padding-left: 3px;
      height: 27px;
      overflow: hidden
    }

    .dg .property-name {
      cursor: default;
      float: left;
      clear: left;
      width: 40%;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .dg .c {
      float: left;
      width: 60%;
      position: relative
    }

    .dg .c input[type=text] {
      border: 0;
      margin-top: 4px;
      padding: 3px;
      width: 100%;
      float: right
    }

    .dg .has-slider input[type=text] {
      width: 30%;
      margin-left: 0
    }

    .dg .slider {
      float: left;
      width: 66%;
      margin-left: -5px;
      margin-right: 0;
      height: 19px;
      margin-top: 4px
    }

    .dg .slider-fg {
      height: 100%
    }

    .dg .c input[type=checkbox] {
      margin-top: 7px
    }

    .dg .c select {
      margin-top: 5px
    }

    .dg .cr.function,
    .dg .cr.function .property-name,
    .dg .cr.function *,
    .dg .cr.boolean,
    .dg .cr.boolean * {
      cursor: pointer
    }

    .dg .cr.color {
      overflow: visible
    }

    .dg .selector {
      display: none;
      position: absolute;
      margin-left: -9px;
      margin-top: 23px;
      z-index: 10
    }

    .dg .c:hover .selector,
    .dg .selector.drag {
      display: block
    }

    .dg li.save-row {
      padding: 0
    }

    .dg li.save-row .button {
      display: inline-block;
      padding: 0px 6px
    }

    .dg.dialogue {
      background-color: #222;
      width: 460px;
      padding: 15px;
      font-size: 13px;
      line-height: 15px
    }

    #dg-new-constructor {
      padding: 10px;
      color: #222;
      font-family: Monaco, monospace;
      font-size: 10px;
      border: 0;
      resize: none;
      box-shadow: inset 1px 1px 1px #888;
      word-wrap: break-word;
      margin: 12px 0;
      display: block;
      width: 440px;
      overflow-y: scroll;
      height: 100px;
      position: relative
    }

    #dg-local-explain {
      display: none;
      font-size: 11px;
      line-height: 17px;
      border-radius: 3px;
      background-color: #333;
      padding: 8px;
      margin-top: 10px
    }

    #dg-local-explain code {
      font-size: 10px
    }

    #dat-gui-save-locally {
      display: none
    }

    .dg {
      color: #eee;
      font: 11px 'Lucida Grande', sans-serif;
      text-shadow: 0 -1px 0 #111
    }

    .dg.main::-webkit-scrollbar {
      width: 5px;
      background: #1a1a1a
    }

    .dg.main::-webkit-scrollbar-corner {
      height: 0;
      display: none
    }

    .dg.main::-webkit-scrollbar-thumb {
      border-radius: 5px;
      background: #676767
    }

    .dg li:not(.folder) {
      background: #1a1a1a;
      border-bottom: 1px solid #2c2c2c
    }

    .dg li.save-row {
      line-height: 25px;
      background: #dad5cb;
      border: 0
    }

    .dg li.save-row select {
      margin-left: 5px;
      width: 108px
    }

    .dg li.save-row .button {
      margin-left: 5px;
      margin-top: 1px;
      border-radius: 2px;
      font-size: 9px;
      line-height: 7px;
      padding: 4px 4px 5px 4px;
      background: #c5bdad;
      color: #fff;
      text-shadow: 0 1px 0 #b0a58f;
      box-shadow: 0 -1px 0 #b0a58f;
      cursor: pointer
    }

    .dg li.save-row .button.gears {
      background: #c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;
      height: 7px;
      width: 8px
    }

    .dg li.save-row .button:hover {
      background-color: #bab19e;
      box-shadow: 0 -1px 0 #b0a58f
    }

    .dg li.folder {
      border-bottom: 0
    }

    .dg li.title {
      padding-left: 16px;
      background: #000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;
      cursor: pointer;
      border-bottom: 1px solid rgba(255, 255, 255, 0.2)
    }

    .dg .closed li.title {
      background-image: url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)
    }

    .dg .cr.boolean {
      border-left: 3px solid #806787
    }

    .dg .cr.color {
      border-left: 3px solid
    }

    .dg .cr.function {
      border-left: 3px solid #e61d5f
    }

    .dg .cr.number {
      border-left: 3px solid #2FA1D6
    }

    .dg .cr.number input[type=text] {
      color: #2FA1D6
    }

    .dg .cr.string {
      border-left: 3px solid #1ed36f
    }

    .dg .cr.string input[type=text] {
      color: #1ed36f
    }

    .dg .cr.function:hover,
    .dg .cr.boolean:hover {
      background: #111
    }

    .dg .c input[type=text] {
      background: #303030;
      outline: none
    }

    .dg .c input[type=text]:hover {
      background: #3c3c3c
    }

    .dg .c input[type=text]:focus {
      background: #494949;
      color: #fff
    }

    .dg .c .slider {
      background: #303030;
      cursor: ew-resize
    }

    .dg .c .slider-fg {
      background: #2FA1D6;
      max-width: 100%
    }

    .dg .c .slider:hover {
      background: #3c3c3c
    }

    .dg .c .slider:hover .slider-fg {
      background: #44abda
    }
    
    @font-face {
                font-family: 'iconfont';
                src: url('iconfont.ttf') format('truetype');
            }

            .dg {
                opacity: 0.9;
            }

            .dg .property-name {
                overflow: visible;
            }

            .bigFont {
                font-size: 150%;
                color: #8C8C8C;
            }

            .cr.function.appBigFont {
                font-size: 150%;
                line-height: 27px;
                color: #A5F8D3;
                background-color: #023C40;
            }

            .cr.function.appBigFont .property-name {
                float: none;
            }

            .cr.function.appBigFont .icon {
                position: sticky;
                bottom: 27px;
            }

            .icon {
                font-family: 'iconfont';
                font-size: 130%;
                float: right;
            }

            .twitter:before {
                content: 'a';
            }

            .github:before {
                content: 'b';
            }

            .app:before {
                content: 'c';
            }

            .discord:before {
                content: 'd';
            }

            .promo {
                display: none;
                /* display: table; */
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 1;
                overflow: auto;
                color: lightblue;
                background-color: rgba(0,0,0,0.4);
                animation: promo-appear-animation 0.35s ease-out;
            }

            .promo-middle {
                display: table-cell;
                vertical-align: middle;
            }

            .promo-content {
                width: 80vw;
                height: 80vh;
                max-width: 80vh;
                max-height: 80vw;
                margin: auto;
                padding: 0;
                font-size: 2.8vmax;
                font-family: Futura, "Trebuchet MS", Arial, sans-serif;
                text-align: center;
                background-image: url("promo_back.png");
                background-position: center;
                background-repeat: no-repeat;
                background-size: cover;
                border-radius: 15px;
                box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
            }

            .promo-header {
                height: 10%;
                padding: 2px 16px;
            }

            .promo-close {
                width: 10%;
                height: 100%;
                text-align: left;
                float: left;
                font-size: 1.3em;
                /* transition: 0.2s; */
            }

            .promo-close:hover {
                /* transform: scale(1.25); */
                cursor: pointer;
            }

            .promo-body {
                padding: 8px 16px 16px 16px;
                margin: auto;
            }

            .promo-body p {
                margin-top: 0;
                mix-blend-mode: color-dodge;
            }

            .link {
                width: 100%;
                display: inline-block;
            }

            .link img {
                width: 100%;
            }

            @keyframes promo-appear-animation {
                0% {
                    transform: scale(2.0);
                    opacity: 0;
                }
                100% {
                    transform: scale(1.0);
                    opacity: 1;
                }
            }
        