@charset "UTF-8";
html {
  touch-action: manipulation; }

body {
  font-family: "Rubik", sans-serif;
  background-color: #D996A6;
  color: white;
  margin: 0; }

h1 {
  margin: 0;
  line-height: 0.9; }

h2, h3, h4 {
  margin-bottom: 0; }

a {
  color: #C34D77;
  font-weight: bold; }
  a:not(:hover) {
    text-decoration: none; }

dl > dt {
  font-weight: bold;
  opacity: 0.8; }

dl > dd {
  margin-left: 0;
  margin-bottom: 0.5em; }

.hidden {
  display: none; }

input[disabled], button[disabled], select[disabled], #go > fieldset[disabled] input, #go > fieldset[disabled] select, #go > fieldset[disabled] button {
  opacity: 0.6;
  cursor: default; }

input, button, select {
  font-family: inherit;
  font-size: inherit;
  padding: 0.5em;
  border: none;
  border-radius: 0; }

input, select {
  color: #C34D77;
  background-color: white; }

input::placeholder {
  color: pink; }

button {
  border: none;
  color: white;
  background-color: #C34D77;
  text-transform: uppercase;
  cursor: pointer; }

#go {
  font-size: 1.2em;
  overflow: auto;
  flex: 1;
  display: flex;
  flex-direction: column; }
  #go > fieldset {
    border: none;
    padding: 60px 20px 20px;
    margin: auto;
    max-width: 666px;
    z-index: 1; }
  #go h1 {
    display: none;
    font-weight: 500; }
    #go h1 span {
      opacity: 0.9; }
    #go h1 b {
      color: #C34D77; }
  #go input[type=text], #go select {
    width: 100%;
    box-sizing: border-box; }
  #go input[type=number] {
    width: 2em;
    margin-left: 0.3em; }
  #go #start {
    letter-spacing: 1.2px;
    float: right; }
  #go blockquote {
    font-size: 0.7em;
    margin: 1em; }
  #go small {
    display: block;
    font-size: 0.7em; }
  #go #asetukset {
    transition: all 0.5s;
    max-height: 20em;
    overflow: hidden;
    padding: 0 0.5em;
    border: 4px solid #C34D77;
    margin-bottom: 1em; }
    #go #asetukset:not(.aktive) {
      max-height: 1em;
      border-color: transparent; }
    #go #asetukset #roomname {
      width: auto; }
    #go #asetukset label[for=roomname] {
      padding-right: 0.3em; }
  #go .valokuvataiteenmuseo {
    margin: 20px;
    line-height: 0;
    align-self: flex-end; }
    #go .valokuvataiteenmuseo svg {
      fill: white;
      width: 120px;
      height: 120px; }
    #go .valokuvataiteenmuseo:not(:hover) {
      opacity: 0.8; }
  #go .sidebyside > p {
    display: inline-block;
    width: calc(50% - 2.5em); }
  #go .sidebyside > .divider {
    letter-spacing: 2px;
    padding: 1em;
    width: 2em; }

#gdpr {
  padding: 0.5em;
  padding-left: 0.6em;
  opacity: 0.9;
  background-color: white; }
  #gdpr a {
    font-weight: 500; }
  #gdpr a.toggle {
    float: right;
    font-size: 1.4em;
    line-height: 0.8;
    text-decoration: none; }
    #gdpr a.toggle:not(:hover) {
      opacity: 0.9; }
  #gdpr:not(.aktive) {
    display: none; }

nav {
  position: fixed;
  z-index: 16;
  top: 0;
  left: 0;
  right: 0;
  height: 40px;
  padding: 1.2em;
  color: #C34D77;
  /* background-color: rgba($pinkki, 0.7); */
  /* text-shadow: 1px 1px 2.2px rgba(0,0,0,0.5); */
  pointer-events: none; }
  nav > ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    align-items: center; }
    nav > ul > li {
      position: relative;
      pointer-events: auto; }
      nav > ul > li > a {
        text-decoration: none;
        opacity: 0.7;
        -webkit-tap-highlight-color: transparent; }
        nav > ul > li > a:hover {
          opacity: 0.9; }
        nav > ul > li > a.aktive {
          opacity: 1;
          font-weight: bold; }
  nav .logo {
    font-size: 1.1em;
    text-transform: uppercase; }
    nav .logo b[lang=fi]:last-child {
      letter-spacing: 1.4px; }
  nav .kieli {
    color: #C34D77;
    font-size: 1.6rem;
    font-feature-settings: "liga" off; }
    nav .kieli > a {
      text-decoration: none;
      font-weight: 500; }
      nav .kieli > a.aktive {
        cursor: default; }
    nav .kieli > span {
      opacity: 0.5; }
  nav .fullscreen {
    display: none;
    font-size: 1.8em;
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg); }
  nav .🍔 {
    width: 2em;
    height: 2em; }
    nav .🍔 > a {
      text-decoration: none;
      font-size: 2em;
      line-height: 1;
      width: 1em;
      height: 1em;
      position: absolute;
      z-index: 2; }
      nav .🍔 > a > * {
        transition: all 0.5s;
        position: absolute; }
      nav .🍔 > a > :last-child {
        font-size: 1.3em;
        padding-right: 0.2em; }
      nav .🍔 > a.aktive:not(:hover) {
        opacity: 0.7; }
      nav .🍔 > a.aktive > :first-child,
      nav .🍔 > a:not(.aktive) > :last-child {
        visibility: hidden;
        opacity: 0; }

#menu {
  position: absolute;
  right: 0;
  top: 0;
  list-style: none;
  min-width: 236px;
  padding: 0.8em;
  max-height: 70vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  font-size: 1.4em;
  color: white;
  background-color: #D996A6;
  transition: all 0.5s; }
  #menu:not(.aktive) {
    opacity: 0;
    visibility: hidden; }
  #menu > li {
    line-height: 1;
    margin-bottom: 0.4em; }
    #menu > li a {
      color: inherit;
      font-weight: normal; }
      #menu > li a.aktive {
        font-weight: bold; }
    #menu > li:not(:last-child)::before {
      content: "> ";
      opacity: 0.6; }
    #menu > li:last-child {
      margin-top: 1em;
      margin-bottom: 0; }

body.ignite nav > ul > li.kieli {
  display: none; }

article.howtoplay {
  padding: 20px; }
  @media (min-width: 480px) {
    article.howtoplay {
      columns: 2; } }
  article.howtoplay h2 {
    margin-top: 0.5em; }
  article.howtoplay h3 {
    break-before: column;
    -webkit-column-break-before: always; }

/* LANGUAGE SWITCH MAGIC */
html:lang(fi) :lang(en),
html:lang(en) :lang(fi),
:lang(og) {
  display: none; }

/* MASTER HELP AREA */
#help {
  position: fixed;
  top: 80px;
  bottom: 120px;
  right: 0;
  overflow: auto;
  z-index: 14;
  width: 360px;
  max-width: 100%;
  padding: 0.6em 1.4em;
  box-sizing: border-box;
  background-color: #d18093;
  transition: all 0.5s;
  -webkit-overflow-scrolling: touch; }
  #help > a {
    position: fixed;
    right: 0;
    overflow: hidden;
    padding: 0.2em;
    font-size: 2.8em;
    line-height: 0.6;
    opacity: 0.6;
    text-decoration: none; }
    #help > a:hover {
      opacity: 0.8; }
  #help h2:first-child, #help h2:nth-child(2) {
    margin-top: 0.5em; }
  #help p {
    margin-top: 0.5em; }
  #help > article:not(.aktive) {
    display: none; }
  #help:not(.aktive) {
    opacity: 0;
    visibility: hidden;
    transform: translateX(100%);
    -webkit-transform: translateX(100%); }
  #help #monkeys a {
    color: inherit;
    font-weight: inherit; }

/* GAME ROOM PLAYER POINTS */
#pisteet {
  position: fixed;
  z-index: 13;
  top: 88px;
  right: 0;
  max-height: 50%;
  padding: 0.3em 0.4em;
  font-size: 1.8em;
  text-align: right;
  color: #D996A6; }
  body:not(.ignite) #pisteet {
    display: none; }
  #pisteet:not(:hover) {
    opacity: 0.9; }
  #pisteet.compact ul > li:not(:first-child) {
    display: none; }
  #pisteet.compact ul > li > span {
    display: none; }
  #pisteet ul > li:not(:first-child) {
    /*display: none;*/ }
  #pisteet ul {
    list-style: none;
    margin: 0;
    padding: 0;
    direction: rtl; }
    #pisteet ul li {
      position: relative;
      padding-right: 0.4em;
      direction: ltr;
      white-space: nowrap; }
      #pisteet ul li b {
        padding-left: 0.4em; }
      #pisteet ul li aside {
        position: absolute;
        right: 8px;
        top: 0;
        font-weight: 500;
        pointer-events: none;
        color: #d1fd7c;
        opacity: 0;
        transform-origin: 75% 50%;
        animation: incoming 0.5s cubic-bezier(0.39, 0.58, 0.57, 1); }

@keyframes incoming {
  0% {
    opacity: 0.2;
    transform: scale(20); }
  100% {
    opacity: 0.8;
    transform: scale(1); } }

#gotoend {
  display: none;
  position: fixed;
  z-index: 15;
  right: 0.1em;
  top: calc(50% - 48px);
  line-height: 0;
  padding: 0.3em 0;
  overflow: hidden;
  font-size: 152px;
  color: #C34D77;
  background-color: transparent;
  opacity: 0.6;
  outline: none;
  -webkit-tap-highlight-color: transparent; }
  #gotoend span:not(:hover) {
    animation: 2s pulser linear infinite; }

@keyframes pulser {
  0%, 100% {
    opacity: 0.9; }
  50% {
    opacity: 0.6; } }

/* DEBUG */
#next {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 16;
  display: none; }

.roomname:not(.aktive) {
  display: none; }

.roomname > span {
  font-weight: normal;
  opacity: 0.6; }

/* CLEARFIX */
.group:after {
  content: "";
  display: table;
  clear: both; }

/* MASTER KUVALISTA */
#master {
  position: absolute;
  display: flex;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  background-size: cover;
  background-position: center; }
  #master > li:first-child {
    color: #111;
    background-color: rgba(217, 150, 166, 0.8);
    animation: annanvärikombot 60s linear infinite; }
  #master > li.kiitos {
    padding: 60px 2em 1em;
    background-size: cover;
    background-position: center;
    animation: annanvärikombot 60s linear infinite; }
    #master > li.kiitos table {
      margin-right: auto; }
      #master > li.kiitos table td {
        max-width: 20em; }
    #master > li.kiitos .my {
      color: #C34D77; }

@keyframes annanvärikombot {
  0% {
    background-color: rgba(236, 167, 241, 0.8); }
  20% {
    background-color: rgba(205, 220, 57, 0.8); }
  40% {
    background-color: rgba(113, 214, 253, 0.8); }
  60% {
    background-color: rgba(209, 253, 124, 0.8); }
  80% {
    background-color: rgba(255, 236, 99, 0.8); }
  100% {
    background-color: rgba(236, 167, 241, 0.8); } }
  #master > li {
    display: flex;
    flex-direction: column;
    position: relative;
    /* STACK 'EM TO THE RIGHT*/
    flex: none;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    /* scroll 'em smoothly */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; }
  #master ul.kuvatextit {
    display: none;
    list-style: none;
    padding-left: 1.5em; }

/* toistuva tehtävänanto & pulmanumero */
.tehtävänanto {
  text-transform: uppercase;
  margin: 0.7em 0;
  line-height: 1;
  font-size: 1.2em;
  font-weight: bold;
  letter-spacing: 1.8px; }
  .tehtävänanto > span {
    display: block;
    overflow: hidden;
    padding: 0 0.4em; }
  .tehtävänanto > .counter {
    float: left; }
  @media (max-width: 343px) {
    .tehtävänanto {
      font-size: 1.1em; }
      .tehtävänanto span {
        overflow: visible; } }

/* vinkki (naputi) */
.hintgenerator {
  position: absolute;
  z-index: 13;
  bottom: 124px;
  right: 144px;
  width: 320px;
  max-width: 66%;
  max-height: calc(100% - 148px);
  overflow: auto;
  padding: 0.6em 0.8em;
  box-sizing: border-box;
  background-color: #c34d77;
  color: white; }
  @media (max-width: 572px) {
    .hintgenerator {
      right: 18px;
      bottom: 140px;
      max-height: calc(100% - 204px); } }
  @media (max-width: 320px) {
    .hintgenerator {
      font-size: 0.9em; } }
  .hintgenerator h4 {
    margin-top: 0;
    margin-bottom: 0.4em;
    text-transform: uppercase;
    font-size: 0.9em;
    opacity: 0.7; }
  .hintgenerator p {
    margin: 0; }
  .hintgenerator:not(.aktive), .done .hintgenerator {
    display: none; }
  .hintgenerator a.toggle {
    position: relative;
    z-index: 2;
    float: right;
    overflow: hidden;
    text-decoration: none;
    font-size: 2em;
    line-height: 0.8;
    margin-left: 4px;
    opacity: 0.8;
    color: white; }
    .hintgenerator a.toggle:not(:hover) {
      opacity: 0.6; }

/* MASTER FIGURE STUFF */
figure {
  position: relative;
  margin: 0; }
  figure > img {
    /* alapidennyshommat */
    /*display: block;*/
    box-sizing: border-box;
    /* fit-inside-flex */
    width: 100%;
    height: 100%;
    object-fit: cover;
    -webkit-tap-highlight-color: transparent; }
    figure > img.contain {
      object-fit: contain;
      transition: transform 0.5s;
      -webkit-transition: transform 0.5s; }
    figure > img.scale {
      transform: scale(1) !important; }
  figure > svg {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 100px;
    height: 100px;
    padding: 1.2em;
    fill: white;
    opacity: 0.7;
    pointer-events: none; }
    @media (max-width: 320px) {
      figure > svg {
        width: 80px;
        height: 80px; } }
  figure > figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.2em 0.5em 0.5em;
    max-height: 25%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    background-color: rgba(255, 255, 255, 0.9);
    color: black; }
    figure > figcaption > h2 {
      margin-top: 0.3em;
      font-weight: 500; }
    figure > figcaption p {
      margin: 0.5em 0; }
    figure > figcaption > small {
      font-size: 0.7em;
      opacity: 0.8; }
    figure > figcaption > small:not(:empty):not(:first-of-type)::before {
      content: " / ";
      opacity: 0.6; }

/* KUVA_PULMA */
.naputi {
  background-color: #D996A6; }
  .naputi > figure {
    /* force fit within flexbox height */
    overflow: hidden;
    height: 100%;
    height: calc(100% - 102px); }
    .naputi > figure > figcaption {
      font-size: 1.2em; }
  .naputi:not(.done) figcaption {
    display: none; }
  .naputi form {
    position: relative;
    display: flex;
    width: 100%; }
    .naputi form input {
      margin: 0;
      padding: 0.6em 0.5em;
      font-size: 1.6em;
      width: 100%;
      flex-grow: 1;
      box-sizing: border-box; }
    .naputi form button {
      margin: 0;
      padding: 0.6em;
      font-size: 1.5em;
      font-weight: 500;
      letter-spacing: 2.5px;
      position: absolute;
      height: 100%;
      right: 0; }
  .naputi:not(.done) input {
    padding-right: 80px; }
  .naputi.done button {
    display: none; }

/* KUVA_TEXTI_PULMA */
.klikketi {
  background-color: #C34D77; }
  .klikketi > .kuvatexti {
    padding: 0.3em 0.6em 0.6em;
    font-size: 1.2em; }
    .klikketi > .kuvatexti .author {
      font-family: monospace;
      opacity: 0.8; }
      .klikketi > .kuvatexti .author:not(:empty)::before {
        content: "<";
        opacity: 0.6; }
      .klikketi > .kuvatexti .author::after {
        content: ">";
        opacity: 0.6; }
  .klikketi > section {
    clear: both;
    display: flex;
    flex-wrap: wrap;
    height: 100%;
    /* force fit within flexbox height (firefox) */
    overflow: hidden;
    /* hack it better within flexbox height (safari <11) */
    height: calc(100% - 88px);
    padding: 4px; }
  .klikketi figure {
    /* 2x2 imgs */
    width: 50%;
    height: 50%;
    box-sizing: border-box;
    border: 4px solid transparent;
    overflow: hidden; }
    .klikketi figure > figcaption {
      display: none;
      z-index: 1; }
      .klikketi figure > figcaption h2 {
        font-size: 1.0em; }
      .klikketi figure > figcaption p {
        font-size: 0.9em; }
    .klikketi figure.oikein > figcaption, .klikketi figure.valittu > figcaption {
      display: block; }
    .klikketi figure > svg {
      fill: #d1fd7c;
      top: 0;
      left: 0;
      width: 100%;
      height: 85%;
      padding: 0;
      opacity: 0.8;
      transform: scale(0);
      -webkit-transform: scale(0);
      transition: transform cubic-bezier(0.18, 0.89, 0.32, 1.28) 0.3s; }
    .klikketi figure.oikein > svg {
      transform: scale(1);
      -webkit-transform: scale(1); }
    .klikketi figure > aside {
      pointer-events: none;
      display: flex;
      position: absolute;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 85%;
      top: 0;
      font-size: 32vw;
      line-height: 0.7;
      opacity: 0.8;
      transform: scale(0);
      -webkit-transform: scale(0);
      transition: transform cubic-bezier(0.18, 0.89, 0.32, 1.28) 0.3s;
      display: none; }
      @media (orientation: landscape) {
        .klikketi figure > aside {
          font-size: 32vh; } }
      .klikketi figure > aside:first-of-type {
        color: #d1fd7c; }
      .klikketi figure > aside:last-of-type {
        color: #cd5c5c; }
    .klikketi figure.oikein > aside:first-of-type,
    .klikketi figure.valittu:not(.oikein) > aside:last-of-type {
      transform: scale(1);
      -webkit-transform: scale(1); }
  .klikketi:not(.done) img {
    cursor: pointer; }
  .klikketi.done blink {
    display: none; }

blink {
  animation: 1s blinker linear infinite;
  font-weight: bold;
  opacity: 0.6; }

@keyframes blinker {
  50% {
    opacity: 0.0; } }
