/* RESET */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* ОСНОВА */
html, body {
  width: 100%;
  height: 100%;

  font-family: 'Manrope', sans-serif;
  color: #1a2a44;

  background: radial-gradient(circle at center, #ffffff 0%, #eef4ff 100%);

  overflow: hidden;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* CANVAS */
canvas {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}

/* КОНТЕЙНЕР */
.meditation-container {
  position: relative;
  z-index: 10;

  max-width: 600px;
  width: 90%;
  padding: 40px;

  background: rgba(255,255,255,0.9);
  border-radius: 20px;

  backdrop-filter: blur(14px);

  box-shadow:
    0 0 30px rgba(120,180,255,0.25),
    0 0 90px rgba(120,180,255,0.2);

  text-align: center;
}

/* ЯДРО */
.core-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;

  border-radius: 50%;

  background: radial-gradient(circle, #5fa8ff, #2f5cff);

  box-shadow:
    0 0 20px rgba(100,160,255,0.8),
    0 0 60px rgba(100,160,255,0.5);

  animation: pulse 3s infinite ease-in-out;
}

@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.12); }
  100% { transform: scale(1); }
}

/* ЗАГОЛОВОК */
h1 {
  font-size: 1.8em;
  margin-bottom: 10px;
  color: #2f5cff;
}

/* ТЕКСТ */
.instruction {
  margin-bottom: 20px;
  color: #5a7bd8;
}

/* INPUT */
input[type="text"] {
  padding: 12px;
  font-size: 1.1em;
  width: 100%;
  margin: 10px 0;

  border-radius: 12px;
  border: none;

  background: rgba(200,220,255,0.35);

  color: #1a2a44;

  outline: none;
}

input[type="text"]:focus {
  background: rgba(200,220,255,0.6);
}

/* АВАТАР */
.avatar-upload {
  margin-top: 25px;
}

.avatar-text {
  color: #5a7bd8;
  margin-bottom: 10px;
}

.file-label {
  display: block;
  margin-bottom: 6px;
  color: #2f5cff;
  font-weight: bold;
}

input[type="file"] {
  padding: 10px;
  width: 100%;

  border-radius: 10px;
  border: none;

  background: rgba(200,220,255,0.35);
}

/* ПРЕВЬЮ */
#avatarPreview {
  margin-top: 15px;
  max-width: 120px;
  border-radius: 50%;
}

/* КНОПКА */
button,
.download-btn {
  display: inline-block;

  margin-top: 15px;
  padding: 12px 24px;

  border-radius: 12px;
  border: none;

  background: #2f5cff;
  color: white;

  cursor: pointer;

  transition: 0.3s;
  text-decoration: none;
}

button:hover,
.download-btn:hover {
  background: #4a7dff;

  box-shadow:
    0 0 15px rgba(90,130,255,0.6);

  transform: scale(1.05);
}

/* КЛЮЧ */
.key-block {
  margin-top: 30px;
}

.key-title {
  margin-bottom: 10px;
  color: #2f5cff;
  font-weight: bold;
}

.key-id {
  padding: 10px;
  background: rgba(200,220,255,0.5);
  border-radius: 10px;
  margin-bottom: 10px;
  font-weight: bold;
}

/* ОШИБКА */
.error-message {
  color: #ff5a5a;
  margin-top: 10px;
}