body,
html {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  background-color: rgb(0, 0, 0);
  /* background-image: linear-gradient(19deg, #05050f 0%, #474747 100%); */
  /* color: white; */
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  overflow: hidden;
}

/* Add subtle overlay pattern */
body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: radial-gradient(
      circle at 20% 80%,
      rgba(255, 255, 255, 0.1) 0%,
      transparent 50%
    ),
    radial-gradient(
      circle at 80% 20%,
      rgba(255, 255, 255, 0.08) 0%,
      transparent 50%
    ),
    radial-gradient(
      circle at 40% 40%,
      rgba(255, 255, 255, 0.05) 0%,
      transparent 50%
    );
  /* pointer-events: none; */
  z-index: 1;
}

/* Floating particles effect */
/* body::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: radial-gradient(
      circle at 10% 20%,
      rgba(255, 255, 255, 0.778) 1px,
      transparent 1px
    ),
    radial-gradient(
      circle at 70% 80%,
      rgba(255, 255, 255, 0.618) 1px,
      transparent 1px
    ),
    radial-gradient(
      circle at 90% 10%,
      rgba(255, 255, 255, 0.227) 1px,
      transparent 1px
    ),
    radial-gradient(
      circle at 30% 90%,
      rgba(255, 255, 255, 0.12) 1px,
      transparent 1px
    );
  background-size: 150px 150px, 200px 200px, 180px 180px, 220px 220px;
  animation: floatParticles 20s linear infinite;
  pointer-events: none;
  z-index: 1;
} */

@keyframes floatParticles {
  0% {
    transform: translateY(0px) rotate(0deg);
  }

  100% {
    transform: translateY(-100vh) rotate(360deg);
  }
}

/* Update avatar container */
#avatar {
  width: 100vh; /* Changed from 100vw */
  height: 100vh;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; /* Prevents clicking/dragging */
  z-index: 2;
}

/* Add container for click prevention */
.avatar-container {
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  /* overflow: hidden; */
}

/* Controls container at top with glassmorphism effect */
#controls {
  display: flex;
  align-items: center;
  gap: 15px;
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 700px;
  height: 70px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border-radius: 25px;
  padding: 0 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  z-index: 10;
}

#text {
  flex: 1;
  font-size: 18px;
  height: 40px;
  padding: 5px 15px;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
  border-radius: 20px;
  outline: none;
  transition: all 0.3s ease;
}

#text:focus {
  background: rgba(255, 255, 255, 0.266);
  border-color: rgba(255, 255, 255, 0.4);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.364);
}

#text::placeholder {
  color: rgba(255, 255, 255, 0.7);
}

/* Settings toggle button */
#settings-button {
  height: 40px;
  padding: 0 16px;
  font-size: 14px;
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}

#settings-button:hover {
  background: rgba(0, 0, 0, 0.4);
  transform: scale(1.05);
}

/* Uiverse Button Styles */
.uiverse {
  --duration: 7s;
  --easing: linear;
  --c-color-1: rgba(255, 163, 26, 0.7);
  --c-color-2: #1a23ff;
  --c-color-3: #e21bda;
  --c-color-4: rgba(255, 232, 26, 0.7);
  --c-shadow: rgba(255, 223, 87, 0.5);
  --c-shadow-inset-top: rgba(255, 223, 52, 0.9);
  --c-shadow-inset-bottom: rgba(255, 250, 215, 0.8);
  --c-radial-inner: #ffd215;
  --c-radial-outer: #fff172;
  --c-color: #fff;
  -webkit-tap-highlight-color: transparent;
  -webkit-appearance: none;
  outline: none;
  position: relative;
  cursor: pointer;
  border: none;
  display: table;
  border-radius: 24px;
  padding: 0;
  margin: 0;
  text-align: center;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.02em;
  line-height: 1.5;
  color: var(--c-color);
  background: radial-gradient(
    circle,
    var(--c-radial-inner),
    var(--c-radial-outer) 80%
  );
  box-shadow: 0 0 14px var(--c-shadow);
  height: 40px;
}

.uiverse:before {
  content: "";
  pointer-events: none;
  position: absolute;
  z-index: 3;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  border-radius: 24px;
  box-shadow: inset 0 3px 12px var(--c-shadow-inset-top),
    inset 0 -3px 4px var(--c-shadow-inset-bottom);
}

.uiverse .wrapper {
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  overflow: hidden;
  border-radius: 24px;
  min-width: 120px;
  padding: 10px 0;
  height: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.uiverse .wrapper span {
  display: inline-block;
  position: relative;
  z-index: 1;
}

.uiverse:hover {
  --duration: 1400ms;
}

.uiverse .wrapper .circle {
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  filter: blur(var(--blur, 8px));
  background: var(--background, transparent);
  transform: translate(var(--x, 0), var(--y, 0)) translateZ(0);
  animation: var(--animation, none) var(--duration) var(--easing) infinite;
}

.uiverse .wrapper .circle.circle-1,
.uiverse .wrapper .circle.circle-9,
.uiverse .wrapper .circle.circle-10 {
  --background: var(--c-color-4);
}

.uiverse .wrapper .circle.circle-3,
.uiverse .wrapper .circle.circle-4 {
  --background: var(--c-color-2);
  --blur: 14px;
}

.uiverse .wrapper .circle.circle-5,
.uiverse .wrapper .circle.circle-6 {
  --background: var(--c-color-3);
  --blur: 16px;
}

.uiverse .wrapper .circle.circle-2,
.uiverse .wrapper .circle.circle-7,
.uiverse .wrapper .circle.circle-8,
.uiverse .wrapper .circle.circle-11,
.uiverse .wrapper .circle.circle-12 {
  --background: var(--c-color-1);
  --blur: 12px;
}

.uiverse .wrapper .circle.circle-1 {
  --x: 0;
  --y: -40px;
  --animation: circle-1;
}

.uiverse .wrapper .circle.circle-2 {
  --x: 92px;
  --y: 8px;
  --animation: circle-2;
}

.uiverse .wrapper .circle.circle-3 {
  --x: -12px;
  --y: -12px;
  --animation: circle-3;
}

.uiverse .wrapper .circle.circle-4 {
  --x: 80px;
  --y: -12px;
  --animation: circle-4;
}

.uiverse .wrapper .circle.circle-5 {
  --x: 12px;
  --y: -4px;
  --animation: circle-5;
}

.uiverse .wrapper .circle.circle-6 {
  --x: 56px;
  --y: 16px;
  --animation: circle-6;
}

.uiverse .wrapper .circle.circle-7 {
  --x: 8px;
  --y: 28px;
  --animation: circle-7;
}

.uiverse .wrapper .circle.circle-8 {
  --x: 28px;
  --y: -4px;
  --animation: circle-8;
}

.uiverse .wrapper .circle.circle-9 {
  --x: 20px;
  --y: -12px;
  --animation: circle-9;
}

.uiverse .wrapper .circle.circle-10 {
  --x: 64px;
  --y: 16px;
  --animation: circle-10;
}

.uiverse .wrapper .circle.circle-11 {
  --x: 4px;
  --y: 4px;
  --animation: circle-11;
}

.uiverse .wrapper .circle.circle-12 {
  --blur: 14px;
  --x: 52px;
  --y: 4px;
  --animation: circle-12;
}

@keyframes circle-1 {
  33% {
    transform: translate(0px, 16px) translateZ(0);
  }

  66% {
    transform: translate(12px, 64px) translateZ(0);
  }
}

@keyframes circle-2 {
  33% {
    transform: translate(80px, -10px) translateZ(0);
  }

  66% {
    transform: translate(72px, -48px) translateZ(0);
  }
}

@keyframes circle-3 {
  33% {
    transform: translate(20px, 12px) translateZ(0);
  }

  66% {
    transform: translate(12px, 4px) translateZ(0);
  }
}

@keyframes circle-4 {
  33% {
    transform: translate(76px, -12px) translateZ(0);
  }

  66% {
    transform: translate(112px, -8px) translateZ(0);
  }
}

@keyframes circle-5 {
  33% {
    transform: translate(84px, 28px) translateZ(0);
  }

  66% {
    transform: translate(40px, -32px) translateZ(0);
  }
}

@keyframes circle-6 {
  33% {
    transform: translate(28px, -16px) translateZ(0);
  }

  66% {
    transform: translate(76px, -56px) translateZ(0);
  }
}

@keyframes circle-7 {
  33% {
    transform: translate(8px, 28px) translateZ(0);
  }

  66% {
    transform: translate(20px, -60px) translateZ(0);
  }
}

@keyframes circle-8 {
  33% {
    transform: translate(32px, -4px) translateZ(0);
  }

  66% {
    transform: translate(56px, -20px) translateZ(0);
  }
}

@keyframes circle-9 {
  33% {
    transform: translate(20px, -12px) translateZ(0);
  }

  66% {
    transform: translate(80px, -8px) translateZ(0);
  }
}

@keyframes circle-10 {
  33% {
    transform: translate(68px, 20px) translateZ(0);
  }

  66% {
    transform: translate(100px, 28px) translateZ(0);
  }
}

@keyframes circle-11 {
  33% {
    transform: translate(4px, 4px) translateZ(0);
  }

  66% {
    transform: translate(68px, 20px) translateZ(0);
  }
}

@keyframes circle-12 {
  33% {
    transform: translate(56px, 0px) translateZ(0);
  }

  66% {
    transform: translate(60px, -32px) translateZ(0);
  }
}

/* Collapsible Settings Panel with glassmorphism */
#settings-panel {
  position: absolute;
  top: 110px;
  right: 260px;
  width: 250px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(15px);
  padding: 10px;
  border-radius: 15px;
  display: none;
  z-index: 998;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

#settings-panel label {
  display: block;
  margin-top: 10px;
  font-weight: bold;
  font-size: 0.9rem;
  color: white;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

#settings-panel input {
  width: calc(100% - 10px);
  padding: 8px;
  margin-top: 5px;
  font-size: 0.9rem;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 8px;
  color: white;
  outline: none;
}

#settings-panel input::placeholder {
  color: rgba(255, 255, 255, 0.6);
}

#settings-panel input:focus {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.5);
}

/* When the body gets a class "show-settings", show the panel */
body.show-settings #settings-panel {
  display: block;
  animation: slideIn 0.3s ease;
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Loading text at bottom with glassmorphism */
#loading {
  display: block;
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 600px;
  height: 40px;
  /* font-size: 16px; */
  /* background: rgba(255, 255, 255, 0.1); */
  /* backdrop-filter: blur(10px); */
  /* border-radius: 20px; */
  padding: 0 15px;
  /* border: 1px solid rgba(255, 255, 255, 0.2); */
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  /* color: #d4d4d4; */
}

#subtitles {
  position: absolute;
  bottom: 80px;
  left: 5%;
  right: 5%;
  text-align: center;
  font-size: 1.2em;
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
  pointer-events: none;
  z-index: 1000;
  padding: 10px 15px;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: none;
}

#view {
  text-align: left;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  padding: 15px;
  margin-top: 15px;
  background: rgba(255, 255, 255, 0.05);
}

#view legend {
  color: white;
  font-weight: bold;
  padding: 0 10px;
  font-size: 0.9rem;
}

#view label {
  display: inline-flex;
  align-items: center;
  margin-right: 1rem;
  margin-top: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  color: white;
}

#view label:hover {
  transform: scale(1.05);
}

#view label input[type="radio"] {
  display: inline-block !important;
  width: auto !important;
  margin-right: 0.5rem;
  accent-color: #3d78ff;
}

/* Add pulse animation for interactive elements */
@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(61, 120, 255, 0.7);
  }

  70% {
    box-shadow: 0 0 0 10px rgba(61, 120, 255, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(61, 120, 255, 0);
  }
}

button:active {
  animation: pulse 0.6s;
}

/* ========== MOBILE RESPONSIVE STYLES ========== */

/* Tablet breakpoint */
@media screen and (max-width: 768px) {
  #controls {
    width: 95%;
    gap: 10px;
    padding: 0 15px;
    height: 60px;
    top: 15px;
  }

  #settings-panel {
    right: 2.5%;
    width: 220px;
    top: 85px;
  }

  #subtitles {
    left: 2.5%;
    right: 2.5%;
    font-size: 1.1em;
    bottom: 70px;
  }

  #loading {
    width: 95%;
    bottom: 15px;
  }
}

/* Mobile breakpoint */
@media screen and (max-width: 480px) {
  body::after {
    background-size: 100px 100px, 120px 120px, 110px 110px, 130px 130px;
  }

  #controls {
    width: 95%;
    gap: 8px;
    padding: 0 12px;
    height: 55px;
    top: 10px;
    flex-direction: row;
    flex-wrap: nowrap;
  }

  #text {
    font-size: 16px;
    height: 35px;
    padding: 5px 12px;
    min-width: 0;
  }

  #settings-button {
    height: 35px;
    padding: 0 12px;
    font-size: 12px;
    flex-shrink: 0;
  }

  .uiverse {
    height: 35px;
    font-size: 14px;
    flex-shrink: 0;
  }

  .uiverse .wrapper {
    min-width: 90px;
    padding: 8px 0;
  }

  /* Mobile settings panel - make it overlay better */
  #settings-panel {
    position: fixed;
    top: 75px;
    left: 2.5%;
    right: 2.5%;
    width: auto;
    max-height: 60vh;
    overflow-y: auto;
    border-radius: 12px;
    padding: 15px;
  }

  #settings-panel label {
    font-size: 0.85rem;
    margin-top: 8px;
  }

  #settings-panel input {
    font-size: 0.85rem;
    padding: 6px;
  }

  #view {
    padding: 12px;
    margin-top: 12px;
  }

  #view legend {
    font-size: 0.85rem;
  }

  #view label {
    margin-right: 0.5rem;
    margin-top: 6px;
    font-size: 0.85rem;
  }

  /* Mobile subtitles */
  #subtitles {
    left: 2.5%;
    right: 2.5%;
    font-size: 1em;
    bottom: 65px;
    padding: 8px 12px;
  }

  /* Mobile loading */
  #loading {
    width: 95%;
    height: 35px;
    font-size: 14px;
    bottom: 10px;
    padding: 0 12px;
  }

  /* Adjust particle effects for mobile performance */
  body::before {
    background-image: radial-gradient(
        circle at 20% 80%,
        rgba(255, 255, 255, 0.08) 0%,
        transparent 50%
      ),
      radial-gradient(
        circle at 80% 20%,
        rgba(255, 255, 255, 0.06) 0%,
        transparent 50%
      );
  }
}

/* Small mobile phones */
@media screen and (max-width: 360px) {
  #controls {
    padding: 0 10px;
    gap: 6px;
    height: 50px;
  }

  #text {
    font-size: 14px;
    height: 32px;
    padding: 4px 10px;
  }

  #settings-button {
    height: 32px;
    padding: 0 10px;
    font-size: 11px;
  }

  .uiverse {
    height: 32px;
    font-size: 12px;
  }

  .uiverse .wrapper {
    min-width: 80px;
    padding: 6px 0;
  }

  #settings-panel {
    padding: 12px;
    border-radius: 10px;
  }

  #subtitles {
    font-size: 0.9em;
    padding: 6px 10px;
  }

  #loading {
    height: 32px;
    font-size: 12px;
    padding: 0 10px;
  }
}

/* Landscape orientation adjustments */
@media screen and (max-height: 500px) and (orientation: landscape) {
  #controls {
    top: 5px;
    height: 45px;
  }

  #text {
    height: 30px;
    font-size: 14px;
  }

  #settings-button {
    height: 30px;
    font-size: 12px;
  }

  .uiverse {
    height: 30px;
    font-size: 13px;
  }

  #settings-panel {
    top: 55px;
    max-height: 50vh;
  }

  #subtitles {
    bottom: 55px;
    font-size: 0.9em;
  }

  #loading {
    bottom: 5px;
    height: 30px;
    font-size: 13px;
  }
}

/* Touch-friendly improvements */
@media (hover: none) and (pointer: coarse) {
  #settings-button:hover {
    transform: none;
  }

  #view label:hover {
    transform: none;
  }

  /* Larger touch targets */
  #settings-button {
    min-height: 44px;
    min-width: 44px;
  }

  .uiverse {
    min-height: 44px;
  }

  #view label {
    min-height: 44px;
    padding: 8px 0;
  }
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  body::after {
    animation: none;
  }

  .uiverse .wrapper .circle {
    animation: none;
  }

  button:active {
    animation: none;
  }

  #settings-panel {
    animation: none;
  }
}
/* dotBackground.css */

/* Tiled dot pattern */
.dot-pattern {
  position: absolute;
  inset: 0;
  background-size: 20px 20px;
  background-image: radial-gradient(#d4d4d4 1px, transparent 1px);
}

.dark .dot-pattern {
  background-image: radial-gradient(#404040 1px, transparent 1px);
}

/* Faded vignette mask */
.dot-mask {
  pointer-events: none;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgb(6, 6, 6);
  /* fade out toward edges */
  -webkit-mask-image: radial-gradient(
    ellipse at center,
    transparent 20%,
    black 100%
  );
  mask-image: radial-gradient(ellipse at center, transparent 20%, black 100%);
}

.dark .dot-mask {
  background-color: black;
}

/* Social media */
/* SIZE CONTROL - Update these values to resize the whole component */
:root {
  --action-size: 2.5rem; /* Main button size - was 3.5rem */
  --backdrop-size: 14rem; /* Rotating backdrop - was 20.5rem */
}

.action-wrap {
  position: fixed;
  display: grid;
  bottom: 35px;
  left: 20px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border-radius: 9999px;
  z-index: 99999;
}

.backdrop {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: -1;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.backdrop::before {
  content: "";
  position: absolute;
  height: var(--backdrop-size);
  width: var(--backdrop-size);
  border-radius: 9999px;
  background: linear-gradient(
    144deg,
    rgba(175, 64, 255, 0.608),
    rgba(229, 229, 70, 0.618)
  );
  animation: rotate 1.5s linear infinite;
}
.backdrop::after {
  content: "";
  position: absolute;
  height: 100%;
  width: 100%;
  backdrop-filter: blur(8px);
  border-radius: 9999px;
  z-index: 1;
}

.action {
  --sz-light-hover: 45px; /* Reduced from 60px */
  --rd-light-hover: 9999px;
  --l-light-hover: 10px; /* Reduced from 14px */
  --cl-light: #0000;
  --cr-light: rgba(175, 64, 255, 0.4);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform, color, background-color, 300ms ease;
  height: var(--action-size);
  width: var(--action-size);
  border: none;
  color: #444444;
  background: none transparent;
  cursor: pointer;
  padding: 0.35rem; /* Reduced from 0.5rem */
  border-radius: 9999px;
}

.action-icon {
  height: 60%;
  width: 100%;
  position: relative;
  z-index: 9;
  padding: 0.35rem; /* Reduced from 0.5rem */
  border-radius: 9999px;
  background-color: rgba(241, 241, 241, 0.8);
  transition: transform, color, background, 300ms ease;
}

.action-content {
  --sz-light-hover: 70px; /* Reduced from 100px */
  --rd-light-hover: 6px;
  --l-light-hover: 0px;
  --cl-light: rgba(255, 255, 255, 0.5);
  --cr-light: rgba(175, 64, 255, 0.4);
  transition: transform, 400ms ease;
  opacity: 0;
  font-size: 1rem; /* Reduced from 1.25rem */
  line-height: 1.4; /* Reduced from 1.5 */
  background-color: inherit;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  flex-direction: row;
  width: max-content;
  height: 1.5rem; /* Reduced from 1.75rem */
  padding: 6px 1px; /* Reduced from 8px 1px */
  position: absolute;
  left: 0;
  z-index: -1;
  border: 1px solid rgba(204, 204, 204, 0.5);
}

.action-content::before {
  content: attr(data-content);
  transition: transform, 300ms ease;
  text-transform: capitalize;
  font-size: small; /* Reduced from medium */
  font-weight: 600;
  z-index: 1;
  transform: translateX(-100%);
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: calc(var(--rd-light-hover) - 2px);
  padding-inline: 3px; /* Reduced from 4px */
}

.action::after,
.action-content::after {
  content: "";
  opacity: 0;
  position: absolute;
  border-radius: var(--rd-light-hover);
  transition: all 50ms ease 200ms;
  background: conic-gradient(
    from 45deg at 50% 50%,
    var(--cl-light),
    var(--cr-light),
    var(--cl-light),
    var(--cl-light),
    var(--cl-light),
    var(--cr-light),
    var(--cl-light),
    var(--cl-light),
    var(--cl-light)
  );
}

.action:hover .action-icon {
  color: #000;
  background-color: rgba(255, 255, 255, 0.95);
  transform: scale(1.4) translate3d(12px, 0px, 12px);
}

.action:hover::after,
.action-content::after {
  height: var(--sz-light-hover);
  width: var(--sz-light-hover);
  left: var(--l-light-hover);
  opacity: 1;
  animation: rotate 4s linear infinite;
}
@keyframes rotate {
  from {
    transform: rotate(0);
  }
  to {
    transform: rotate(1turn);
  }
}

.action:hover .action-content {
  color: #000;
  background-color: rgba(255, 255, 255, 0.9);
  opacity: 1;
  width: max-content;
  height: 18px; /* Reduced from 20px */
  left: calc(100% + 18px); /* Reduced spacing from 24px */
  z-index: 9;
}

.action:hover .action-content::before {
  transform: translateX(0px);
}

/* CUSTOM LOADER */
.loader {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 80px;
  height: 80px;
  position: relative;
}

.loader:before {
  content: "";
  position: absolute;
  top: -10px;
  left: -10px;
  right: -10px;
  bottom: -10px;
  border-radius: 50%;
}

.loader-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.loader-block {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 2px;
  background-color: #29d5f3;
  box-shadow: 0 0 20px #eef2f3;
  animation: loader_562 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}

.loader-block:nth-child(1) {
  animation-delay: 0.1s;
}

.loader-block:nth-child(2) {
  animation-delay: 0.2s;
}

.loader-block:nth-child(3) {
  animation-delay: 0.3s;
}

.loader-block:nth-child(4) {
  animation-delay: 0.4s;
}

.loader-block:nth-child(5) {
  animation-delay: 0.5s;
}

.loader-block:nth-child(6) {
  animation-delay: 0.6s;
}

.loader-block:nth-child(7) {
  animation-delay: 0.7s;
}

.loader-block:nth-child(8) {
  animation-delay: 0.8s;
}

@keyframes loader_562 {
  0% {
    transform: scale(1);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.5);
  }

  20% {
    transform: scale(1, 2.5);
    box-shadow: 0 0 50px rgba(255, 255, 255, 0.7);
  }

  40% {
    transform: scale(1);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.5);
  }
}

/* AGENT */

.assistant-box {
  position: fixed; /* keep it fixed on screen */
  top: 1rem; /* space from top */
  left: 1rem; /* space from left */
  width: 300px; /* fixed width for the box */
  background: rgba(255, 255, 255, 0.395);
  backdrop-filter: blur(12px); /* glass blur effect */
  padding: 0.5rem;
  margin-top: 8rem;
  border-radius: 0.5rem; /* rounded-lg */
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* subtle shadow */
  z-index: 9999; /* make sure it's on top */
}

.assistant-box h1 {
  font-weight: 900;
  font-size: 1.25rem;
  margin: 0;
  padding: 0;
}

.assistant-box p {
  margin: 0;
  padding: 0;
}
.rowWrap {
  position: fixed; /* stays fixed on screen */
  top: 20px;
  right: 20px;
  z-index: 9999;

  width: 230px; /* fixed width */
  height: 220px; /* fixed height to make it square */

  display: flex;
  flex-wrap: wrap;
  align-content: flex-start; /* wrap from top */
  gap: 8px; /* shorthand for row-gap/column-gap */

  background: #fff;
  padding: 8px;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);

  overflow-y: auto; /* scroll if emojis overflow */
}

.emoji {
  cursor: pointer;
  font-size: 24px; /* larger emojis */
  transition: transform 0.1s ease;
}

.emoji:hover {
  transform: scale(1.2); /* slight zoom on hover */
}
/* The morphs panel itself matches the emoji style */
.column {
  position: fixed; /* fixed on screen */
  top: 320px; /* a bit lower than the emojis */
  right: 20px;
  z-index: 9999;

  width: 220px;
  max-height: 400px; /* limit height so it's scrollable */
  overflow-y: auto;

  padding: 12px;
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);

  display: flex;
  flex-direction: column;
  row-gap: 8px; /* spacing between morphs */
}

/* each morph control */
.row.morph {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* label style matches emoji aesthetic */
.text.label {
  font-family: Arial, sans-serif;
  font-weight: bold;
  font-size: 14px;
  color: #333;
}

/* range input */
.row.morph input[type="range"] {
  width: 100%;
  cursor: pointer;
  accent-color: #007bff; /* blue slider thumb */
}

/* value text style */
.row.morph .text:not(.label) {
  font-size: 12px;
  color: #666;
  text-align: right;
}

.reset {
  position: absolute;
  top: 285px; /* place it slightly above the column */
  right: 40px;
  z-index: 10000; /* higher than the column */

  padding: 8px 16px;
  background-color: #5b55ff;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  font-size: 0.9rem;
  transition: background-color 0.2s ease;
}
.reset:hover {
  background: #d2d2d2;
}
