* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background-image: url(/media/background-duck.gif);
  font-family: 'Courier New', 'Noto Color Emoji', monospace;
  font-size: 16px;
  position: relative;
}

#terminal-container {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
}

#background-blur {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: inherit;
  z-index: 1;
  transition: filter 1s ease;
  filter: none;
}

i {
  font-style: normal;
  color: red;
}

e {
  color: #0e0;
}

b {
  color: #00e;
  font-weight: normal;
}

.cmd-input {
  color: #eee;
}

#cmd {
  width: 100%;
  height: calc(100% - 40px);
  margin: 0;
  padding: 10px;
  color: #eee;
  overflow-y: auto;
  scroll-behavior: smooth;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

#cmdbar {
  position: fixed;
  bottom: 0;
  left: 0;
  padding: 10px;
  margin: 0;
  width: 100%;
  height: 40px;
  background: rgba(0, 0, 0, 0.8);
  display: flex;
  align-items: center;
  z-index: 3;
}

#prompt {
  color: #0e0;
  white-space: nowrap;
}

#command {
  width: calc(100% - 120px);
  height: 36px;
  border: none;
  background: transparent;
  color: #eee;
  outline: none;
  font-family: 'Courier New', 'Noto Color Emoji', monospace;
}

#session-end {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #0e0;
  font-size: 24px;
  text-align: center;
  z-index: 3;
}

#session-end input {
  background: #222;
  border: 1px solid #444;
  color: #0e0;
  font-family: 'Courier New', 'Noto Color Emoji', monospace;
  margin: 5px;
  padding: 5px;
}

#session-end button {
  background: #444;
  border: 1px solid #0e0;
  color: #0e0;
  font-family: 'Courier New', 'Noto Color Emoji', monospace;
  padding: 5px 10px;
  cursor: pointer;
}

#credentials {
  color: #eee;
  font-size: 16px;
  margin-top: 10px;
}

#shutdown {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 3;
}

#power-on {
  background: #0e0;
  border: 2px solid #0e0;
  padding: 20px;
  cursor: pointer;
  border-radius: 50%;
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: background 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 0 10px rgba(0, 255, 0, 0.5);
}

#power-on:hover {
  background: #00ff00;
  box-shadow: 0 0 15px rgba(0, 255, 0, 0.8);
}

#power-on::before {
  content: none;
}

#power-on span {
  display: none;
}

#power-on svg {
  width: 36px;
  height: 36px;
}

#loader {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 300px;
  height: 20px;
  border: 1px solid #0e0;
  background: #000;
  z-index: 4;
}

#loader-bar {
  height: 100%;
  width: 0;
  background: #0e0;
  animation: loader 2s linear forwards;
}

@-webkit-keyframes loader {
  from { width: 0; }
  to { width: 100%; }
}

@keyframes loader {
  from { width: 0; }
  to { width: 100%; }
}

#progCon {
  width: calc(100% - 2px);
  height: 20px;
  background: transparent;
  border: 1px solid #0e0;
}

#progBar {
  height: 20px;
  background: #0e0;
}

#inp-ggame {
  width: 190px;
  height: 24px;
  background: #333;
  border: 1px solid #444;
  display: block;
  outline: none;
  color: #0e0;
  padding-left: 10px;
}

#btn-ggame {
  margin: 10px 0;
  width: 100px;
  height: 24px;
  background: #444;
  border: 1px solid #0e0;
  display: block;
  color: #0e0;
  font-family: 'Courier New', 'Noto Color Emoji', monospace;
  cursor: pointer;
}

#btn-ggame:before {
  content: "Guess \uD83C\uDFB2";
}

a {
  color: #0e0;
  text-decoration: underline;
  cursor: pointer;
}

a:hover {
  color: #00e;
}

#speedProgCon {
  position: relative;
  width: 300px;
  height: 20px;
  border: 1px solid #0e0;
  background-color: #000;
  margin-top: 10px;
  margin-bottom: 10px;
}

#speedProgBar {
  height: 100%;
  width: 0%;
  background-color: #0e0;
  transition: width 0.5s ease;
}

@keyframes progress-0 { 0% { width: 0%; } 50% { width: 80%; } 100% { width: 0%; } }
@keyframes progress-1 { 0% { width: 0%; } 50% { width: 60%; } 100% { width: 0%; } }
@keyframes progress-2 { 0% { width: 0%; } 50% { width: 90%; } 100% { width: 0%; } }
@keyframes progress-3 { 0% { width: 0%; } 50% { width: 70%; } 100% { width: 0%; } }
@keyframes progress-4 { 0% { width: 0%; } 50% { width: 50%; } 100% { width: 0%; } }
@keyframes progress-5 { 0% { width: 0%; } 50% { width: 85%; } 100% { width: 0%; } }
@keyframes progress-6 { 0% { width: 0%; } 50% { width: 65%; } 100% { width: 0%; } }
@keyframes progress-7 { 0% { width: 0%; } 50% { width: 95%; } 100% { width: 0%; } }
@keyframes progress-8 { 0% { width: 0%; } 50% { width: 55%; } 100% { width: 0%; } }
@keyframes progress-9 { 0% { width: 0%; } 50% { width: 75%; } 100% { width: 0%; } }

.recursion-popup {
  position: fixed;
  color: #0e0;
  background: rgba(0, 0, 0, 0.8);
  padding: 5px;
  font-size: 12px;
  z-index: 1000;
  opacity: 0.9;
  border: 1px solid #0e0;
  transition: filter 1s ease;
}

.recursion-popup.code {
  color: yellow;
  border: 1px solid yellow;
}

.recursion-popup.message {
  color: red;
  border: 1px solid red;
}

.recursion-popup.progress-container {
  color: #0e0;
  border: 1px solid #0e0;
  width: 200px;
  padding: 5px;
}

.recursion-popup.large {
  width: 300px;
  height: 150px;
  font-size: 14px;
  padding: 10px;
  line-height: 1.5;
}

.recursion-popup.glitch {
  animation: glitch 0.5s linear infinite;
}

.recursion-popup .progress-label {
  font-size: 10px;
  margin-bottom: 3px;
  display: block;
}

.recursion-popup .progress-bar {
  height: 15px;
  width: 100%;
  background: transparent;
  border: 1px solid #0e0;
  position: relative;
}

.recursion-popup .progress-bar div {
  height: 100%;
  width: 0%;
  background: #0e0;
}

@keyframes glitch {
  0% { transform: translate(0); }
  20% { transform: translate(-2px, 2px); }
  40% { transform: translate(-2px, -2px); }
  60% { transform: translate(2px, 2px); }
  80% { transform: translate(2px, -2px); }
  100% { transform: translate(0); }
}