@charset "UTF-8";

@font-face {
  font-family: logo;
  src: url(/static/comfortaa-subset.ttf);
}

@font-face {
  font-family: text;
  src: url(/static/nanumgothic-subset.ttf);
}

@font-face {
  font-family: monospace;
  src: url(/static/inconsolata-subset.ttf);
}

:root {
  --c-bg: #ffffff;
  --c-link: #2442a3;
  --c-link-hover: #0f0f53;
  --c-link-visited: #7d86bf;
  --c-block-code-bg: #636576;
  --c-block-code-text: #FFFFFF;
  --c-inline-code-bg: #f1effa;
  --c-inline-code-text: #2e373f;
  --c-button1: #7e829c;
  --c-button1-text: #4e526e;
  --c-button1-light: #c6d0e7;
  --c-button2: #ff8844;
  --c-button2-light: #ffba88;
  --c-notice-err: #b80f0f;
  --c-allocation: #ffbb6a;
  --c-form-help: #666666;
  --c-mascot: #9f7fb0;
  --s-secwidth: 16cm;
  --s-bigpad: 10mm;
  --s-medpad: 4mm;
  --s-pad: 2mm;
  --s-button1-radius: 1mm;
  --s-button1-border: 0.6mm;
  --s-breads-width: 33.706mm;
  --s-breads-height: 53.374mm;
}

.material-symbols-outlined {
  font-variation-settings:
    'FILL' 0,
    'wght' 400,
    'GRAD' 0,
    'opsz' 48;
}

/*
#################################################
General elements
#################################################
*/
/*
_________________________________________________
Text blocks, inline
*/
h1 {
  font-family: logo;
  display: inline-block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: text;
  display: inline-block;
}

h2,
h3,
h4,
h5,
h6 {
  margin-top: var(--s-medpad);
  margin-bottom: var(--s-medpad);
}

div {
  display: inline-block;
}

a {
  text-decoration: none;
  color: var(--c-link);
}

a:hover {
  color: var(--c-link-hover);
}

a:visited {
  color: var(--c-link-visited);
}

p {
  display: block;
  margin: var(--s-medpad) 0;
  line-height: 1.4em;
  align-self: stretch;
}

p img {
  vertical-align: middle;
}

.mixin_code {
  font-size: 1.1em;
  font-family: monospace;
}

span.inline_code {
  padding: 0 2mm;
  border-radius: 1.5mm;
  z-index: -9999;
  color: var(--c-inline-code-text);
  background-color: var(--c-inline-code-bg);
}

div.expander {
  justify-self: stretch;
  flex-grow: 1;
}

/*
_________________________________________________
Other blocks
*/
.async {
  display: inline-block;
  width: 0.5cm;
  height: 0.5cm;
  border: 0.06cm solid var(--c-button2);
  border-radius: var(--s-button1-radius);
  animation-duration: 1s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: forward;
  animation-play-state: running;
  animation-name: async;
  margin: 0 var(--s-medpad);
}

@keyframes async {
  0% {
    transform: rotate(0deg);
  }

  80% {
    transform: rotate(90deg);
  }

  100% {
    transform: rotate(90deg);
  }
}

/*
_________________________________________________
Lists
*/
li>*:first-child {
  padding-top: 0;
  margin-top: 0;
}

ol {
  counter-reset: items;
}

ol li {
  padding-left: 2em;
  list-style: none;
  counter-increment: items;
  position: relative;
}

ol li:before {
  position: absolute;
  left: 0.5em;
  font-size: 1.3em;
  content: counter(items);
}

ul li {
  list-style: none;
  position: relative;
  margin-left: 2em;
  margin-bottom: var(--s-medpad);
}

ul li:before {
  content: "○";
  position: absolute;
  top: -0.2em;
  left: -1em;
  font-size: 1.5em;
}

/*
_________________________________________________
Forms, controls
*/
div.form {
  align-self: stretch;
}

div.form p {
  color: var(--c-form-help);
}

div.form div.row {
  justify-content: flex-end;
  gap: var(--s-medpad);
  margin: var(--s-medpad) 0;
}

div.buttons {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: var(--s-medpad);
  margin: var(--s-bigpad) 0;
  align-self: stretch;
}

.button {
  text-decoration: none;
  border-radius: var(--s-button1-radius);
  font-size: 1.1em;
  padding: calc(var(--s-pad) + 0.5mm) calc(var(--s-pad) + 2mm);
  background: none;
  color: var(--c-button1-text);
  border: var(--s-button1-border) solid var(--c-button1-light);
  position: relative;
  display: flex;
}

a.button:visited {
  color: var(--c-button1-text);
}

.button:disabled {
  opacity: 0.5;
}

.button.button_volatile:before {
  content: ' ';
  display: inline-block;
  position: absolute;
  border: var(--s-button1-border) solid var(--c-button1-light);
  border-radius: calc(var(--s-button1-radius) / 2);
  left: calc(var(--s-pad) / 8);
  right: calc(var(--s-pad) / 8);
  top: calc(var(--s-pad) / 8);
  bottom: calc(var(--s-pad) / 8);
}

.button:hover {
  border-color: var(--c-button1);
}

.button.button_volatile:hover:before {
  border-color: var(--c-button1);
}

.icon_button {
  border: none;
  background: none;
  color: var(--c-button2-light);
  box-sizing: border-box;
  width: 0.8cm;
  height: 0.8cm;
  display: flex;
  justify-content: center;
  align-items: center;
}

.icon_button:hover {
  color: var(--c-button2);
  border-color: var(--c-button2);
}

input[type="text"] {
  flex-grow: 1;
}

input[type="checkbox"] {
  margin: var(--s-pad) var(--s-medpad);
  vertical-align: middle;
}

select {
  padding: var(--s-pad);
  background: none;
  border: 0.1mm solid var(--c-button1);
  border-radius: 1mm;
}

/*
_________________________________________________
Layout
*/
section {
  width: 16cm;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0 var(--s-medpad);
  padding-bottom: var(--s-medpad);
  display: flex;
  flex-direction: column;
}

section.left {
  align-items: flex-start;
}

section.right {
  align-items: flex-end;
}

section.center {
  align-items: center;
}

div.big {
  font-size: 1.3em;
  margin: var(--s-medpad) 0;
}

section.right div.big {
  text-align: right;
}

div.block_code {
  background-color: var(--c-block-code-bg);
  color: var(--c-block-code-text);
  border-radius: var(--s-pad);
  padding: var(--s-pad);
  display: block;
  white-space: pre-wrap;
  overflow: clip;
  align-self: stretch;
}

div.splitline {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-self: stretch;
  justify-content: space-between;
  padding: var(--s-pad);
  row-gap: var(--s-pad);
  border-radius: 1mm;
}

div.splitline:nth-child(odd) {
  background-color: #f4f4f4;
}

div.row {
  display: flex;
  flex-direction: row;
  align-items: center;
}

section>div.row {
  padding: var(--s-pad);
  gap: var(--s-bigpad);
  justify-content: space-around;
  align-self: stretch;
}

div.transparent {
  display: contents;
}

/*
#################################################
Specific structural
#################################################
*/
* {
  padding: 0;
  margin: 0;
  font-family: text;
}

html {
  height: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

section.header {
  display: grid;
  grid-template-columns: auto 1fr;
  position: relative;
  margin-top: var(--s-bigpad);
  align-items: center;
  margin-bottom: calc(var(--s-bigpad) * 2);
}

section.header>.left {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: row;
  flex-shrink: 1;
  gap: var(--s-medpad);
  align-items: center;
}

section.header>.left a {
  color: black;
  display: flex;
  flex-direction: row;
  align-items: center;
}

section.header>.right {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  display: flex;
  flex-direction: row;
  gap: var(--s-medpad);
}

section.header>.right>a {
  display: flex;
  flex-direction: column;
  color: black;
  font-size: 1.2em;
}

section.header>.right>a:after {
  content: " ";
  display: inline-block;
  width: 0.4cm;
  height: 0.06cm;
  border-radius: 0.06cm;
  background-color: var(--c-mascot);
  margin-left: 0.03cm;
  position: relative;
  right: -0.05cm;
  bottom: -0.05cm;
}

section.header>.right>a:hover {
  color: var(--c-button1);
}

section.header>.right>a:hover:after {
  border-color: var(--c-button1);
  background-color: var(--c-button1);
}

section.header:after {
  grid-row: 2;
  grid-column-start: 1;
  grid-column-end: 3;
  margin-top: var(--s-bigpad);
  display: block;
  content: "";
  border-radius: 1mm;
  background-color: black;
  width: 60vw;
  min-width: 100%;
  height: 1.7mm;
  position: absolute;
  box-sizing: border-box;
  left: min(calc(20vw - (50vw - (16cm / 2))), 0px);
  bottom: -var(--s-bigpad);
}

section#async_notices:not(:empty) {
  margin-bottom: 1cm;
}

section#async_notices div.error {
  color: var(--c-notice-err);
  padding: var(--s-pad) 0;
}

section.footer {
  margin-top: var(--s-bigpad);
  padding-bottom: var(--s-bigpad);
  flex-wrap: wrap;
  flex-direction: row;
  column-gap: var(--s-medpad);
  align-items: center;
  justify-content: center;
  font-size: 0.8em;
}

section.footer p {
  align-self: revert;
}

div.narrow-twocols {
  position: relative;
  width: 100%;
  overflow-x: clip;
  min-height: min(80vh, 16cm);
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: min(3cm, 5vw);
  font-size: 1.2em;
}

div.narrow-twocols:before {
  content: ' ';
  background: var(--c-mascot);
  width: 100vw;
  height: 8cm;
  position: absolute;
  z-index: -9999;
}

div.narrow-twocols>section.center {
  width: min-content;
  min-width: 0;
  max-width: 40%;
  flex-shrink: 1;
  display: flex;
  flex-direction: row;
  justify-content: center;
  overflow: visible;
}

div.narrow-twocols>section.right {
  position: relative;
  width: 8cm;
  height: 101%;
  justify-content: center;
}

div#top_short_bg {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  left: -1.8cm;
  right: -2.9cm;
  top: 0;
  bottom: 0;
  min-height: 8cm;
  z-index: -9;
  position: absolute;
  background-color: white;
}

div#top_short_bg>img {
  flex-grow: 0;
  height: 8cm;
  object-fit: fill;
}

div#top_short_bg>img:nth-child(1) {
  width: 0.8cm;
  margin-left: -0.7cm;
}

div#top_short_bg>img:nth-child(2) {
  width: 0.2cm;
  margin-right: -0.099cm;
}

div.twocols {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-evenly;
}

div.modalbg {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: rgba(128, 128, 128, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
}

modal,
div.modal {
  padding: var(--s-bigpad);
  border-radius: 1mm;
  background-color: white;
}

/*
#################################################
Single page/unique items
#################################################
*/
/*
_________________________________________________
Bread
*/
#breads {
  display: flex;
  justify-content: center;
  align-items: center;
  width: max(calc(var(--s-breads-width) * 2.4), 10vw);
  height: calc(var(--s-breads-height) * 2.4);
  filter: drop-shadow(0.10cm 0 0 white) drop-shadow(0.14cm 0.14cm 0 white) drop-shadow(0 0.10cm 0 white) drop-shadow(-0.14cm 0.14cm 0 white) drop-shadow(-0.10cm 0 0 white) drop-shadow(-0.14cm -0.14cm 0 white) drop-shadow(0 -0.10cm 0 white) drop-shadow(0.14cm -0.14cm 0 white);
}

#breads>div {
  scale: 240%;
  translate: calc(var(--s-breads-width) * -2.4 / 2) calc(var(--s-breads-height) * -2.4 / 2);
  position: relative;
  display: inline-block;
  height: 0;
  width: 0;
}

#breads-bagel,
#breads-pita,
#breads-french,
#breads-braid,
#breads-naan {
  transform-box: fill-box;
  transform-origin: center;
}

#breads-bagel:not(.go),
#breads-pita:not(.go),
#breads-french:not(.go),
#breads-braid:not(.go),
#breads-naan:not(.go) {
  opacity: 0;
}

#breads-bagel.go,
#breads-pita.go,
#breads-french.go,
#breads-braid.go,
#breads-naan.go {
  rotate: 0deg;
  translate: 0 0;
}

#breads-bagel {
  position: absolute;
  left: 13.363mm;
  top: 43.360mm;
  rotate: -50deg;
  translate: 0.3cm -1cm;
}

#breads-bagel.go {
  transition: rotate 2s, translate 2s, opacity 0.5s;
}

#breads-pita {
  position: absolute;
  left: 2.025mm;
  top: 31.221mm;
  rotate: 12deg;
  translate: 1cm -2.3cm;
}

#breads-pita.go {
  transition: rotate 2s, translate 2s, opacity 0.5s;
}

#breads-french {
  position: absolute;
  left: 5.723mm;
  top: 11.172mm;
  rotate: -12deg;
  translate: 0 -3cm;
}

#breads-french.go {
  transition: rotate 2s, translate 2.5s, opacity 0.5s;
}

#breads-braid {
  position: absolute;
  left: 0;
  top: 15.913mm;
  rotate: 10deg;
  translate: -0.5cm -3cm;
}

#breads-braid.go {
  transition: rotate 1.5s, translate 2s, opacity 0.5s;
}

#breads-naan {
  position: absolute;
  left: 15.512mm;
  top: 0;
  rotate: -20deg;
  translate: 0 -1.5cm;
}

#breads-naan.go {
  transition: rotate 3s, translate 2s, opacity 0.5s;
}

img[src="/static/logo.svg"] {
  width: 2.5cm;
  margin: 0 0.5cm;
  vertical-align: center;
}

/*
_________________________________________________
Allocations
*/
.allocation_rows {
  margin-top: var(--s-medpad);
  margin-bottom: var(--s-medpad);
  display: flex;
  flex-direction: column;
  gap: var(--s-medpad);
}

.allocation_rows>* {
  display: flex;
  flex-direction: row;
  gap: var(--s-medpad);
}

.allocation_rows>* input[type="text"] {
  font-size: 1.1em;
  line-height: 2em;
  border: none;
  background: none;
  text-align: left;
  text-overflow: ellipsis;
}

.allocation_rows>* input[type="text"]:focus {
  border: none;
  outline: none;
}

.allocation_rows>*>*:nth-child(1) {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  position: relative;
}

.allocation_rows>*>*:nth-child(1) div.fill {
  z-index: -1;
  position: absolute;
  box-sizing: border-box;
  height: 100%;
  background: var(--c-allocation);
}

.allocation_rows>*>*:nth-child(1) input[type="range"] {
  -webkit-appearance: none;
  background: none;
  margin-left: -0.5em;
  margin-right: -0.5em;
}

.allocation_rows>*>*:nth-child(1) input[type="range"]::-webkit-slider-runnable-track,
.allocation_rows>*>*:nth-child(1) input[type="range"]::-moz-range-track {
  background-color: rgba(255, 255, 255, 0);
  border: none;
}

.allocation_rows>*>*:nth-child(1)>*:nth-child(1) {
  background-color: rgba(255, 255, 255, 0.7);
}

.allocation_rows .allocation_row_account>div>*:nth-child(1) {
  display: flex;
  flex-direction: row;
}

.allocation_rows .allocation_row_account>div>*:nth-child(1)>*:nth-child(2) {
  flex-grow: 1;
}

.allocation_rows .allocation_row_new {
  border-bottom: 0.15em dotted lightgrey;
}

/*
_________________________________________________
Tokens
*/
.token_rows {
  margin-top: var(--s-medpad);
  margin-bottom: var(--s-medpad);
  display: flex;
  flex-direction: column;
  align-self: stretch;
  gap: var(--s-medpad);
}

div.token_row {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  position: relative;
  border-top: 1mm dotted lightgray;
  padding-top: var(--s-pad);
  margin-bottom: var(--s-medpad);
}

div.token_row input[type="text"] {
  font-size: 1.1em;
  line-height: 2em;
  border: none;
  background: none;
  text-align: left;
  text-overflow: ellipsis;
}

div.token_row input[type="text"]:focus {
  border: none;
  outline: none;
}

div.token_row>*:nth-child(1) {
  display: flex;
  flex-direction: row;
  gap: var(--s-medpad);
}

/*
#################################################
Media changes
#################################################
*/
@media (max-aspect-ratio: 1/1) and (max-width: 15cm) {
  h1 {
    rotate: 90deg;
    translate: 0 -0.5em;
    width: 1.5em;
    vertical-align: center;
  }

  #breads-bagel.go {
    opacity: 0;
  }

  #breads-pita.go {
    opacity: 0;
  }

  #breads-french.go {
    rotate: 20deg !important;
    translate: 0 0.4cm;
  }

  #breads-braid.go {
    opacity: 0;
  }

  #breads-naan.go {
    opacity: 0;
  }

  div.narrow-twocols:before {
    top: 0;
    bottom: 0;
    height: unset;
  }

  div#top_short_bg>img {
    height: 100%;
  }
}