html {
    font-family: sans-serif;
    -webkit-text-size-adjust: none;
    -ms-text-size-adjust: none;
    -moz-text-size-adjust: none;
    text-size-adjust: none
}
body {
    margin: 0
}
a {
    background: 0 0
}
h1 {
    margin: 0
}
img {
    border: 0
}
svg:not(:root) {
    overflow: hidden
}
fieldset {
    border: 1px solid silver;
    margin: 0 2px;
    padding: 0
}
button, input, select, textarea {
    font-family: inherit;
    font-size: 100%;
    margin: 0
}
button, input {
    line-height: normal
}
button, select {
    text-transform: none
}
button, html input[type=button], input[type=reset], input[type=submit] {
    -webkit-appearance: button;
    cursor: pointer
}
button[disabled], html input[disabled] {
    cursor: default
}
input[type=checkbox], input[type=radio] {
    box-sizing: border-box;
    padding: 0
}
button::-moz-focus-inner, input::-moz-focus-inner {
    border: 0;
    padding: 0
}
.menu {
    display: none;
    position: absolute;
    right: 17px;
    right: calc(17px + env(safe-area-inset-right));
    top: 17px;
    top: calc(17px + env(safe-area-inset-top));
    min-width: 94px;
    text-align: center;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    touch-callout: none;
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent
}
.menu h2 {
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    margin: 0;
    max-width: 120px;
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}
.menu input, .menu label {
    cursor: pointer;
    font-size: 15px
}
.menu.hidden {
    height: 0
}
.menu fieldset {
    border: none
}
.menu.hidden fieldset {
    height: 0
}
.range {
    width: 120px;
    height: 44px;
    padding-top: 2px;
    will-change: opacity;
    opacity: .6;
    -webkit-transition: opacity .15s ease;
    transition: opacity .15s ease;
    cursor: col-resize
}
body:not(.mobile) .range:hover, .range:active {
    opacity: 1
}
.range .track {
    position: relative;
    width: 100%;
    height: 1px;
    top: 16px;
    background-color: #fff;
    pointer-events: none
}
.range .thumb {
    position: relative;
    width: 16px;
    height: 16px;
    top: 7px;
    border-radius: 50%;
    will-change: transform;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    background-color: #fff;
    pointer-events: none
}
.item .list input[type=radio] {
    -webkit-appearance: none;
    display: none
}
.item .list label {
    display: block;
    border: none;
    margin: 0 auto;
    line-height: 1.6;
    width: 90px;
    will-change: opacity;
    opacity: .5;
    -webkit-transition: opacity .15s ease;
    transition: opacity .15s ease
}
.item .list label:hover {
    opacity: 1
}
.item .list label:active {
    background-color: rgba(255, 255, 255, .25);
    border-radius: 4px
}
.item .list input:checked + label {
    opacity: 1
}
.item.noise .list {
    margin-top: 10px;
    -webkit-transition: opacity .15s ease;
    transition: opacity .15s ease
}
.checkbox input {
    display: none
}
.checkbox {
    margin: 8px auto 0;
    width: 30px;
    height: 30px;
    border-radius: 50%
}
.checkbox label {
    position: absolute;
    display: block;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-image: url(./circle.svg);
    background-size: 30px 30px;
    will-change: opacity;
    opacity: .6;
    -webkit-transition: opacity .15s ease;
    transition: opacity .15s ease
}
body:not(.mobile) .checkbox label:hover, .checkbox label:active {
    opacity: 1
}
.checkbox label:active {
    background-color: rgba(255, 255, 255, .25);
    background-image: none
}
.checkbox label:after {
    content: "";
    position: absolute;
    width: 14px;
    height: 6px;
    left: 7px;
    top: 10px;
    border: 2px solid #fff;
    border-top: none;
    border-right: none;
    will-change: transform, opacity;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
}
body:not(.mobile) .checkbox label:hover:after, .checkbox label:active:after {
    border-color: transparent;
    opacity: 1
}
.checkbox label:active:after {
    border-color: #fff;
    opacity: 1
}
.checkbox input[type=checkbox]:checked + label:after {
    border-color: #fff;
    opacity: 1
}
.item.mic, .item.elasticity, .item.total, .item.mode, .item.noise {
    position: relative;
    right: 0;
    will-change: transform;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-transition: -webkit-transform .4s cubic-bezier(1, 0, .4, 1.5);
    transition: -webkit-transform .4s cubic-bezier(1, 0, .4, 1.5);
    transition: transform .4s cubic-bezier(1, 0, .4, 1.5);
    transition: transform .4s cubic-bezier(1, 0, .4, 1.5), -webkit-transform .4s cubic-bezier(1, 0, .4, 1.5)
}
.menu.hidden .item.mic, .menu.hidden .item.elasticity, .menu.hidden .item.total, .menu.hidden .item.mode, .menu.hidden .item.noise {
    -webkit-transform: translateX(150px);
    transform: translateX(150px)
}
.item {
    margin-bottom: 10px
}
.item.mic .icon {
    width: 80px;
    height: 80px;
    margin: 0 auto;
    padding: 0;
    border-radius: 50%;
    background-color: transparent;
    background-size: 92% 92%;
    background-repeat: no-repeat;
    background-position: 50% 38%;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    will-change: opacity;
    opacity: .5;
    -webkit-transition: opacity .15s ease;
    transition: opacity .15s ease
}
body:not(.mobile) .item.mic .icon:hover, .item.mic .icon:active {
    opacity: 1
}
.item.mic .icon:active {
    background-color: rgba(255, 255, 255, .25)
}
.item.mic .icon.on {
    background-image: url(./microphone-on.png)
}
.item.mic .icon.off {
    background-image: url(./microphone-off.png)
}
.item.mic {
    margin-bottom: 20px
}
.item.elasticity {
    -webkit-transition-delay: .05s;
    transition-delay: .05s
}
.item.total {
    -webkit-transition-delay: .1s;
    transition-delay: .1s
}
.item.mode {
    -webkit-transition-delay: .15s;
    transition-delay: .15s;
    margin-bottom: 25px
}
.item.mode h2 {
    margin-bottom: 5px
}
.item.noise {
    -webkit-transition-delay: .2s;
    transition-delay: .2s
}
.link-twitter {
    position: absolute;
    left: 21px;
    left: calc(21px + env(safe-area-inset-left));
    top: 70px;
    top: calc(70px + env(safe-area-inset-top));
    width: 32px;
    height: 32px;

    background-repeat: no-repeat
}
.link-twitter span {
    display: none
}
body:not(.mobile) .link-twitter:hover, .link-twitter:active {
    opacity: 1
}
.noise-alert {
    will-change: opacity;
    opacity: 0;
    cursor: default;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    user-drag: none;
    pointer-events: none
}
.noise-alert h3 {
    position: absolute;
    width: 100%;
    padding: 0;
    top: 50%;
    margin-top: -200px;
    font-family: wacky action btn, comic sans ms, sans-serif;
    font-size: 120px;
    font-weight: 400;
    line-height: 1;
    text-rendering: optimizeLegibility;
    text-align: center;
    text-shadow: 0 0 16px #000;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    user-drag: none;
    pointer-events: none;
    white-space: nowrap;
    text-transform: uppercase;
    -webkit-animation: wobble-anim .8s ease-in-out infinite;
    animation: wobble-anim .8s ease-in-out infinite
}
@-webkit-keyframes wobble-anim {
    0% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
    50% {
        -webkit-transform: scaleX(.9) scaleY(1.11);
        transform: scaleX(.9) scaleY(1.11)
    }
    100% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
}
@keyframes wobble-anim {
    0% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
    50% {
        -webkit-transform: scaleX(.9) scaleY(1.11);
        transform: scaleX(.9) scaleY(1.11)
    }
    100% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0)
    }
}
.intro-main {
    will-change: opacity;
    opacity: 0;
    display: none
}
.intro-main h1 {
    position: absolute;
    width: 100%;
    padding: 0;
    top: 50%;
    margin-top: -150px;
    font-family: wacky action btn, comic sans ms, sans-serif;
    font-size: 120px;
    font-weight: 400;
    line-height: 1;
    text-rendering: optimizeLegibility;
    text-align: center;
    text-shadow: 0 0 16px rgba(0, 0, 0, .75);
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    user-drag: none;
    white-space: nowrap
}
.intro-main .button {
    position: absolute;
    width: 100%;
    top: 50%;
    margin-top: 100px;
    text-align: center
}
.intro-main .button p {
    display: inline;
    border-radius: 18px;
    padding: 16px 24px 15px;
    font-size: 20px;
    text-transform: uppercase;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    color: #fff;
    background-color: rgba(255, 0, 255, 1);
    -webkit-transition: background-color .1s ease-out;
    transition: background-color .1s ease-out
}
.mobile .intro-main .button {
    -webkit-transition: none;
    transition: none
}
.intro-main .button p:hover {
    background-color: #90f
}
.intro-main .button p:active {
    background-color: #f09
}
.intro-main.emoji .button p:active {
    background-color: #eb3
}
.intro-main.bubbles .button p:hover {
    background-color: #26d
}
.intro-main.bubbles .button p:active {
    background-color: #6af
}
.intro-main.eyes .button p:hover {
    background-color: #812
}
.intro-main.eyes .button p:active {
    background-color: #c12
}
.intro-main .privacy {
    position: absolute;
    bottom: 0;
    bottom: env(safe-area-inset-bottom);
    left: 50%;
    width: 300px;
    margin-left: -150px;
    text-align: center;
    font-size: 15px
}
.intro-main .privacy a {
    color: #fff;
    text-decoration: none
}
.intro-main .privacy a:hover {
    text-decoration: underline
}
.intro-text {
    position: absolute;
    top: 50%;
    width: 100%;
    margin-top: -20px;
    text-align: center;
    z-index: 2;
    will-change: opacity;
    opacity: 0
}
.intro-text p {
    font-size: 20px;
    line-height: 1.6;
    margin: 0
}
.intro-text a {
    color: #aaa;
    text-decoration: underline
}
.intro-text a:hover {
    color: #fff
}
.intro-text a:active {
    color: #90f
}
.intro-text.error {
    display: none;
    margin-top: -35px
}
.intro-text.noscript {
    opacity: 1
}
.intro-text .description {
    display: none
}
.ball {
    position: absolute;
    border-radius: 0;
    will-change: transform;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    user-drag: none
}
.grab .ball {
    cursor: pointer;
}
.grab .ball:active {
    cursor: pointer;
}

.emoji .ball {
    border-radius: 0;
    background-image: url(./emoji-new.png);
    background-size: 600% 600%
}

.bg.eyes {
    background-color: transparent;
}
.eyes .ball {
    background-color: transparent;
    background-image: url(./emoji-new.png);
    background-size: 600% 600%;
}
html {
    width: 100%;
    height: 100%;
    overflow: hidden
}
body {
    width: 100%;
    height: 100%;
    overflow: hidden;
    font-family: museo sans, sans-serif;
    font-weight: 500;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    color: #fff;
    background-color: #000
}
::scrollbar {
    display: none
}
.drop {
    -webkit-transition: top .4s ease-in, opacity .3s ease;
    transition: top .4s ease-in, opacity .3s ease
}
.fade {
    -webkit-transition: opacity .3s ease .3s;
    transition: opacity .3s ease .3s
}
.bg {
    position: absolute;
    width: 100%;
    height: 100%
}
.stage.fade, .bg.fade {
    -webkit-transition: opacity .4s ease;
    transition: opacity .4s ease
}
.stage {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden
}
.mobile .stage {
    height: auto;
    top: 0;
    bottom: 0;
    bottom: env(safe-area-inset-bottom);
    overflow: visible
}
.stage:active.grab {
    cursor: pointer;
    cursor: move
}
.neave svg {
    opacity: 1
}
.awake {
    position: absolute;
    width: 0;
    height: 0
}
@media(max-width:1000px) {
    .noise-alert h3 {
        font-size: 80px;
        margin-top: -180px
    }
}
@media(max-width:800px) {
    .intro-main h1 {
        margin-top: -140px
    }
    .intro-main h1 {
        font-size: 96px
    }
    .intro-main .button p, .intro-text p {
        font-size: 19px
    }
    .intro-main .button {
        margin-top: 90px
    }
}
@media(max-width:600px), (max-height:640px) {
    .menu {
        right: 10px;
        right: calc(10px + env(safe-area-inset-right));
        top: 10px;
        top: calc(10px + env(safe-area-inset-top))
    }
    .menu h2 {
        max-width: 100px
    }
    .range, .item.mode label {
        margin: 0 auto;
        width: 80px
    }
    .range {
        padding-top: 0
    }
    .menu h2, .menu label {
        font-size: 13px
    }
    .item.mic .icon {
        width: 60px;
        height: 60px
    }
    .item.mode h2 {
        margin-bottom: 8px
    }
    .item.mode label {
        line-height: 1.7
    }
    .checkbox {
        margin-top: 5px
    }
    .bg.bubbles {
        background-size: 600px 350px
    }
}
@media(max-height:560px) {
    .menu h2, .menu label {
        font-size: 11.5px
    }
    .item.mode label {
        line-height: 1.6
    }
    .item {
        margin-bottom: 0
    }
    .item.mic {
        margin-bottom: 10px
    }
    .item.mic .icon {
        width: 48px;
        height: 48px
    }
    .item.total {
        -webkit-transition-delay: .1s;
        transition-delay: .1s
    }
    .item.mode {
        -webkit-transition-delay: .2s;
        transition-delay: .2s;
        margin-bottom: 15px
    }
    .item.noise {
        -webkit-transition-delay: .3s;
        transition-delay: .3s
    }
    .range {
        height: 40px
    }
    .noise-alert h3 {
        margin-top: -120px
    }
}
@media(max-width:600px), (max-height:480px) {
    .noise-alert, .item.noise, .link-twitter {
        display: none
    }
    .intro-main h1 {
        font-size: 80px;
        line-height: .9;
        margin: -175px auto 0;
        min-width: 0;
        white-space: pre-wrap;
        text-shadow: 0 0 8px #000, 0 0 32px #000
    }
    .intro-main h1 span {
        display: block;
        max-width: 320px;
        margin: 0 auto
    }
    .intro-text {
        margin-top: -15px;
        pointer-events: none
    }
    .intro-text.error {
        display: none;
        min-width: 0;
        margin-top: -80px;
        pointer-events: auto
    }
    .intro-text.error p {
        max-width: 280px;
        margin: 0 auto;
        padding: 10px 20px
    }
    .intro-text p {
        line-height: 1.3;
        text-shadow: 0 0 1px #000, 0 0 8px #000, 0 0 32px #000;
        max-width: 310px;
        margin: 0 auto 10px
    }
    .intro-main .button {
        margin-top: 125px
    }
    .intro-main .button p {
        background-color: #90f
    }
    .intro-main.bubbles .button p {
        background-color: #26d
    }
    .intro-main.eyes .button p {
        background-color: #812
    }
    .intro-text p, .intro-main .button p {
        font-size: 17px
    }
    .intro-main .privacy {
        font-size: 13px
    }
    .stage:not(.grab) {
        opacity: .4
    }
}
@media(max-height:480px) {
    .intro-main .privacy {
        display: none
    }
}
@media(max-height:320px) {
    .item.mic, .item.elasticity {
        display: none
    }
    .item.total {
        -webkit-transition-delay: .1s;
        transition-delay: .1s
    }
    .item.mode {
        -webkit-transition-delay: .2s;
        transition-delay: .2s
    }
}
@media(-webkit-min-device-pixel-ratio:1.3), (min-resolution:1.3dppx) {
    .emoji .ball {
        background-image: url(./emoji-new-2x.png)
    }
}