:root {
  --base: #1e1e2e;
  --mantle: #181825;
  --crust: #11111b;
  --headings: #89b4fa;
  --accent: #89b4fa;
  --links: #89b4fa;
  --text: #cdd6f4;
  --subtext: #a6adc8;
  --radius: 0.5rem;
  --outline: 0.1rem;
  --padding: 1rem;
  --label-padding: 0.5rem;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url(/deps/fonts/jetbrains_mono.ttf);
}
@font-face {
  font-family: "Bad Script";
  src: url(/deps/fonts/BadScript-Regular.ttf);
}
body {
  background: var(--base);
  color: var(--text);
  font-family: "JetBrains Mono", monospace;
  padding: 0;
  margin: 0;
}
a {
  color: var(--links);
}
em, b {
  color: var(--accent);
}
.container h1,
.container h2,
.conatiner h3 {
  color: var(--headings);
}
h1 {
  font-size: 2rem;
}
h2 {
  font-size: 1.5rem;
}
h3 {
  font-size: 1.25rem;
}
img {
  max-width: 100%;
}
input, textarea, button, .choose-file::before, .button {
  background: var(--mantle);
  color: inherit;
  font: inherit;
  border: none;
  box-sizing: border-box;
  border-radius: var(--radius);
  padding: var(--padding);
}
button, .choose-file::before, .button {
  background: var(--accent);
  color: var(--base);
  cursor: pointer;

  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1ch;
}
input:focus, textarea:focus, button:focus {
  outline: none;
  box-shadow: 0 0 0 var(--outline) var(--accent) inset;
}
label {
  display: grid;
  gap: var(--label-padding);
}
::placeholder {
  color: var(--subtext);
}

input[type="file"] {
  display: none;
}
.choose-file::before {
  content: "Choose file";
}
html:lang(ru) .choose-file::before {
  content: "Выбрать файл";
}

input[type="radio"] {
  display: none;
}
fieldset {
  border: none;
  padding: 0;
  padding-top: var(--label-padding);
  display: flex;
  gap: var(--label-padding);
}
fieldset > * {
  border-radius: 0 ! important; /* sorry about that, please make an issue if you know how to do it better */
  width: 100%;
}
fieldset > *:first-of-type {
  border-top-left-radius: var(--radius) ! important;
  border-bottom-left-radius: var(--radius) ! important;
}
fieldset > *:last-of-type {
  border-top-right-radius: var(--radius) ! important;
  border-bottom-right-radius: var(--radius) ! important;
}
.radio-button {
  background: var(--text);
  display: flex;
  justify-content: center;
  align-items: center;
}
.radio-button:has(input:checked) {
  background: var(--accent);
}
label svg, button svg, .button svg {
  width: 1em;
}
label, fieldset {
  margin-bottom: var(--padding);
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type=number] {
  -moz-appearance: textfield;
}

.sidebar {
  z-index: 100;

  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--padding);

  writing-mode: sideways-rl;
  padding: var(--padding);
  background: var(--mantle);
}
.sidebar * {
  margin: 0;
}
.sidebar>* {
  display: flex;
  gap: inherit;
  align-items: inherit;
}

.container {
  margin: auto;
  padding: var(--padding);
  padding-left: calc(5rem + var(--padding));
  line-height: 1.5;

  display: flex;
  justify-content: space-between;
}
.container > * {
  max-width: 70ch;
}

html:lang(en) span:lang(ru),
html:lang(en) div:lang(ru) {
  display: none;
}

html:lang(ru) span:lang(en),
html:lang(ru) div:lang(en) {
  display: none;
}

.logo {
  width: 3rem;
}
.logo-link {
  display: flex;
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.3s;
}

@keyframes fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

@keyframes sidebar-animation {
  from {
    transform: translateX(-4rem);
  }
  to {
    transform: translateX(0);
  }
}

::view-transition-old(spa-sidebar) {
  animation: 0.3s ease-in reverse sidebar-animation;
}
