/*html label{
  font-family: "Concert One", sans-serif;
  font-weight: 400;
  font-style: normal;
}*/

.rainbow-bg{
    background: linear-gradient(-45deg, #eeaef0, #c86aff, #ff97e0, #817eff);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
    height: 100vh;
}

@keyframes gradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.main-title{
  display: block;
  rotate: 355deg;
  font-size: 8rem;
  top: -3rem;
  position: absolute;
  text-wrap: nowrap;
  font-family: 'Chewy-Bubble';
  /*box-shadow: 0 0.125rem 1rem 0px rgb(58 83 109 / 13%);*/
  text-shadow: 0px 14px 24px #6d6d6d;
  color: white;
}

@font-face{
    font-family: 'Chewy-Bubble';
    src: url('fonts/Chewy-Bubble.otf') format('truetype');
}

:root {
  --really-green: #e8898b;
  --speed: 700ms;
}

.breath-text > span {
  display: inline-block;
  animation: breath var(--speed) ease calc(var(--index) * 100ms) infinite alternate;
  text-shadow: 0 0 20px var(--really-green);
}

@keyframes breath {
  from {
    animation-timing-function: ease-out;
  }
  to {
    transform: scale(1) translateY(-5px);
    animation-timing-function: ease-in-out;
  }
}

.press-start-2p-regular {
  font-family: "Press Start 2P", system-ui;
  font-weight: 400;
  font-style: normal;
}

.subtitle-phrase{
    rotate: -3deg;
    font-size: 17px;
    color: yellow;
    position: absolute;
    top: 6rem;
    left: 8rem;
    text-wrap: nowrap;
    text-shadow: 0 2px 7px #525252;
}

.biboo-roll-move{
    animation: moveAndReturn 2s ease-in-out infinite;
}

@keyframes moveAndReturn{
    0%{
        left: 5rem;
    }
    50%{
        left: 25rem;
    }
    100%{
        left: 5rem;
    }
}

@layer properties {
  @property --bg-position {
    syntax: "<number>";
    inherits: true;
    initial-value: 100;
  }

  @property --after-blur {
    syntax: "<number>";
    inherits: true;
    initial-value: 0;
  }

  @property --after-opacity {
    syntax: "<number>";
    inherits: true;
    initial-value: 1;
  }

  @property --before-opacity {
    syntax: "<number>";
    inherits: true;
    initial-value: 0.3;
  }

  @property --btn-offset {
    syntax: "<number>";
    inherits: true;
    initial-value: 1;
  }
  @property --btn-scale {
    syntax: "<number>";
    inherits: true;
    initial-value: 1;
  }
}
:root {
  /* colors */
  --body-bg: hsl(0, 0%, 100%);
  --btn-bg: hsl(0, 0%, 0%);
  --btn-border-width: 1.5;
  --btn-offset: 1;
  --btn-scale: 1;
  --after-bg: linear-gradient(
    to right,
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0),
    rgb(0 0 0)
  );
  --after-blur: 10;
  --after-opacity: 1;
  --after-pos-y: 10;
  --before-opacity: 0.3;
  /* positions */
  --bg-position: 100;
  --color-white: hsl(0, 0%, 100%);
  --color-cyan: hsl(180, 100%, 50%);
  --color-blue: hsl(240, 100%, 50%);
  --color-purple: hsl(270, 100%, 50%);
  --color-pink: hsl(330, 40%, 70%);
  --color-red: hsl(0, 100%, 50%);
  --color-yellow: hsl(60, 100%, 50%);
  --color-lime: hsl(90, 100%, 75%);
  --color-orange: oklch(69.1% 0.223 36.85);
}

@supports (color: color(display-p3 0 0 0)) {
  :root {
    --color-white: color(display-p3 1 1 1);
    --color-cyan: color(display-p3 0 1 1);
    --color-blue: color(display-p3 0 0 1);
    --color-purple: color(display-p3 0.5 0 1);
    --color-pink: color(display-p3 1 0.4 0.7);
    --color-red: color(display-p3 1 0 0);
    --color-yellow: color(display-p3 1 1 0);
    --color-lime: color(display-p3 0.75 1 0);
    --color-orange: color(display-p3 0.96 0.39 0.2);
  }
}

*,
*:before,
*:after {
  box-sizing: border-box;
  outline: calc(var(--debug) * 1px) dotted red;
  outline-offset: -1px;
}

main {
  display: grid;
  place-items: center;
}

main button {
  all: unset;
  background: transparent;
  border-width: 0;
  transform: scale(var(--btn-scale));
  transition: --bg-position 3s ease, --after-blur 0.3s ease, --before-opacity 0.3s ease, --btn-offset 0.3s ease, --btn-scale 0.2s cubic-bezier(0.76, -0.25, 0.51, 1.13);
}

main button > div {
  display: block;
  padding: 0.8em 1.2em;
  background: var(--btn-bg);
  color: white;
  font-weight: bold;
  border-radius: 8px;
  font-size: 22px;
  position: relative;
  cursor: pointer;
}

main button > div:not(:hover) {
  transition: --after-blur 0.3s ease;
}

main button > div > span {
  background: linear-gradient(to right, var(--color-white), var(--color-white), var(--color-cyan), var(--color-blue), var(--color-purple), var(--color-pink), var(--color-red), var(--color-yellow), var(--color-lime), var(--color-white), var(--color-white)) no-repeat calc(var(--bg-position) * 1%) 0%/900%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 0.15ch;
  font-weight: 600;
}

main button > div:after {
  display: block;
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: var(--after-bg) no-repeat calc(var(--bg-position) * 1%) 0%/900%;
  transform: translateY(calc(var(--after-pos-y) * 1px));
  left: 0;
  top: 0;
  z-index: -2;
  filter: blur(calc(var(--after-blur) * 1px));
  opacity: var(--after-opacity);
}

main button > div:before {
  content: "";
  display: block;
  position: absolute;
  width: calc(100% + calc(calc(var(--btn-border-width) * 2) * 1px));
  height: calc(100% + calc(calc(var(--btn-border-width) * 2) * 1px));
  background: linear-gradient(to right, var(--color-white), var(--color-white), var(--color-cyan), var(--color-blue), var(--color-purple), var(--color-pink), var(--color-red), var(--color-yellow), var(--color-lime), var(--color-white), var(--color-white)) no-repeat calc(var(--bg-position) * 1%) 0%/900%;
  border-radius: 9px;
  z-index: -1;
  top: calc(var(--btn-border-width) * -1px);
  left: calc(var(--btn-border-width) * -1px);
  opacity: var(--before-opacity);
}

main button:hover {
  --btn-scale: 1.05;
  --bg-position: 0;
  --after-bg: linear-gradient(
    to right,
    var(--color-white),
    var(--color-white),
    var(--color-cyan),
    var(--color-blue),
    var(--color-purple),
    var(--color-pink),
    var(--color-red),
    var(--color-yellow),
    var(--color-lime),
    var(--color-white),
    var(--color-white)
  );
  --after-blur: 30;
  --after-opacity: 0.3;
  --after-pos-y: 0;
  --before-opacity: 1;
  --btn-offset: 5;
}

main button:hover:active {
  --btn-scale: 0.98;
  --after-blur: 15;
}

.rainbow-button{
  padding: 20px 50px;
  font-size: 1.5rem;
  cursor: pointer;
  border: 0px;
  /*background: transparent;*/
  position: relative;
  transition: all .2s;
  overflow: hidden;
  background-color: #ffffff;
  color: #696297;
  border-radius: 30px;
  box-shadow: 0px -0px 0px 0px rgba(143, 64, 248, .5), 0px 0px 0px 0px rgba(39, 200, 255, .5);
}

.rainbow-button::after {
  content: '';
  width: 400px;
  height: 400px;
  position: absolute;
  top: -50px;
  left: -100px;
  background-image: linear-gradient(225deg, 
#27d86c 0%, #26caf8 50%, #c625d0 100%);
  z-index: -1;
  transition: all .5s;
}

.rainbow-button:hover::after {
  transform: rotate(150deg);
}

.rainbow-button:hover {
  color: white;
  transform: translate(0, -6px);
  box-shadow: 10px -10px 25px 0px rgba(143, 64, 248, .25), -10px 10px 25px 0px rgba(39, 200, 255, .25);
}




.btn-grad {background-image: linear-gradient(to right, #E0EAFC 0%, #CFDEF3  51%, #E0EAFC  100%)}
         .btn-grad {
            margin: 10px;
            padding: 15px 45px;
            text-align: center;
            text-transform: uppercase;
            transition: 0.5s;
            background-size: 200% auto;
            color: white;            
            box-shadow: 0 0 20px #eee;
            border-radius: 10px;
            display: block;
}

.btn-grad:hover {
            background-position: right center; /* change the direction of the change here */
            color: #fff;
            text-decoration: none;
}       


.box {
  --border-angle: 0deg;
  border-radius: 50px;
  width: 140px;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0px 2px 4px hsl(0 0% 0% / 25%);
  animation: border-angle-rotate 2s infinite linear;
  border: 0.5rem solid transparent;
  position: relative;
  font-size: 25px;

  &.a {
    background: linear-gradient(white, white) padding-box,
      conic-gradient(
          from var(--border-angle),
          oklch(100% 100% 0deg),
          oklch(100% 100% 45deg),
          oklch(100% 100% 90deg),
          oklch(100% 100% 135deg),
          oklch(100% 100% 180deg),
          oklch(100% 100% 225deg),
          oklch(100% 100% 270deg),
          oklch(100% 100% 315deg),
          oklch(100% 100% 360deg)
        )
        border-box;
  }

  &.b {
    background: linear-gradient(white, white) padding-box,
      conic-gradient(
          from var(--border-angle),
          var(--bg) 50%,
        white
        )
        border-box;
  }

  &.c {
    border-radius: 100%;
    background: radial-gradient(circle, var(--bg) 60%, transparent 60%);

    &:before,
    &:after {
      content: "";
      display: block;
      position: absolute;
      inset: 4px;
      border-radius: 100%;
      animation: border-angle-rotate 4s infinite linear;
      z-index: -1;
    }

    &:before {
      inset: 0;
      background: repeating-conic-gradient(
          from var(--border-angle),
          var(--bg),
          var(--bg) 30deg,
          oklch(100% 50% 190deg) calc(360deg / 6)
        )
        border-box;
    }

    &:after {
      background: repeating-conic-gradient(
          from calc(var(--border-angle) * -1),
          oklch(100% 40% 50deg),
          black 60deg
        )
        border-box;
    }
  }
}

@keyframes border-angle-rotate {
  from { --border-angle: 0deg; }
  to { --border-angle: 360deg; }
}


@property --border-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

/*.carousel-item.active {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}*/

/*DICKRENDER:*/
.render-btn{
  border: 0;
  font-size: 14px;
  background-color: #9c9c9c82;
  border-radius: 9px;
  padding: 6px 11px;
  backdrop-filter: blur(9px);
  display: flex;
  margin-right: 16px;
  margin-bottom: 6px;
  text-wrap: nowrap;
}

.render-btn i{
  display: flex;
  font-size: 18px;
  margin-right: 6px;
  align-items: center;
}

.canvas-veins-preview{
  /*border-radius: 10px;
  box-shadow: 0 0 12px 2px #0000004d;*/
  /*max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
  display: block;
  */
  object-fit: contain;
}

@media screen and (max-width: 1500px){
  .container-title{
    flex-direction: column !important;
  }

  #LabelNamePreview{
    font-size: 36px !important;
  }

  #ContainerModels{
    max-width: 40rem !important;
  }
}

@media screen and (max-width: 1200px) {
  .slider-container{
    flex-direction: column !important;
  }

  .slider-container > div{
    margin-bottom: 16px !important;
    margin-right: unset !important;
    margin-left: unset !important;
  }

  .veins-info-container{
    flex-direction: column !important;
  }

  #LabelNamePreview{
    font-size: 27px !important;
  }

  #ContainerModels{
    max-width: 25rem !important;
  }
}

@media screen and (max-width: 900px) {
  .master{
    flex-direction: column !important;
    min-height: 60rem !important;
  }

  .my-grip{
    display: block !important;
  }

  .master > div{
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .master > div:first-child{
    padding: 0 4px 20px 13px !important;
    margin-bottom: 0px !important;
  }

  .master .main-render-container{
    min-height: 34rem !important;
  }

  .render-btn{
    text-wrap: nowrap !important;
  }

  .container-title{
    flex-direction: column !important;
  }

  #LabelNamePreview{
    font-size: 23px !important;
  }

  #ModalAddVeins .modal-body{
    flex-direction: column !important;
  }

  .container-brushes{
    flex-direction: row !important;
    height: unset !important;
  }

  .container-brushes > button{
    margin: 0 10px 0 0 !important;
  }

  .vertical-range{
    -webkit-appearance: unset !important;
    width: 100% !important;
    margin: 0 13px !important;
  }
  
  #ModalAddVeins label{
    rotate: unset !important;
    position: unset !important;
    height: unset !important;
    align-self: unset !important;
    margin: 0 0 11px 0 !important;
  }

  .brush-slider-container{
    flex-direction: row !important;
    width: 100% !important;
  }

  .brush-master-container{
    flex-direction: column !important;
  }

  .toolbar-master-container{
    flex-direction: column !important;
    height: unset !important;
  }

  .toolbar-master-container > div{
    justify-content: center !important;
    margin-bottom: 10px !important;
  }
  .comparator-title{
    justify-content: center !important;
  }

  #ContainerModels{
    max-width: unset !important;
  }

  .render-multiple{
    margin-bottom: 14.5rem !important;
    width: 93vw !important;
    overflow-y: auto !important;
    pointer-events: all !important;
  }

  .render-option-compare{
    min-width: 16rem !important;
  }

  .render-buttons-flexed{
    flex-wrap: nowrap !important;
    padding: 13px 13px 4px 13px !important;
  }
}

@media screen and (max-width: 450px) {
  .container-title{
    font-size: 36px !important;
  }
}

@media screen and (max-width: 600px){
  .welcome-title{
    font-size: 23px !important;
    text-wrap: nowrap !important;
  }

  .welcome-perks{
    font-size: 16px !important;
  }

  .welcome-perks:first-child{
    font-size: 17px !important;
  }
}

#RenderContainer canvas{
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}

.welcome-modal{
  box-shadow: 0 0 19px -6px #4b4b4b;
  background-color: #ffffffa1;
  backdrop-filter: blur(10px);
  border: 0;
  border-radius: 12px;
  padding: 24px;
}

.perks-container > div{
  margin-bottom: 12px;
}

.animated-text {
  font-weight: bold;
  animation: colorCycle 5s linear infinite, textShake 0.2s infinite;
  text-shadow: 0 0 3px #000000;
}

/* Cambios de color suaves */
@keyframes colorCycle {
  0%   { color: #ff4b5c; }
  25%  { color: #f9c80e; }
  50%  { color: #3ae374; }
  75%  { color: #17c0eb; }
  100% { color: #ff4b5c; }
}

/* Vibración ligera */
@keyframes textShake {
  0%   { transform: translate(0px, 0px); }
  25%  { transform: translate(-0.5px, 0.5px); }
  50%  { transform: translate(0.5px, -0.5px); }
  75%  { transform: translate(-0.5px, 0px); }
  100% { transform: translate(0px, 0.5px); }
}

.blurred-text {
  position: relative;
  font-size: 64px;
  font-weight: bold;
  color: transparent;
  background: rgba(255, 255, 255, 0.3); /* fondo semitransparente */
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  -webkit-background-clip: text;
  background-clip: text;
}

.title-button{
  padding: 2px 10px;
  font-size: 12px;
}

.modal{
  /*backdrop-filter: blur(3px);*/
}

.upload-option-container{
  margin: 10px;
  box-shadow: 0px 0px 8px 0px #00000047;
  border-radius: 10px;
  padding: 20px;
}

.upload-option-container > *{
  margin-bottom: 24px;
}

.upload-option-container a{
  width: 100%;
}

.model-ui{
  /*box-shadow: 0px 0px 9px 2px #0000002b;*/
  border-radius: 4px;
  height: 38px;
  display: flex;
  align-items: center;
  flex-direction: column;
  /*border: 1px solid rgb(170, 170, 170);*/
  background-color: #e3e3e3;
  margin: 0 6px;
}

.floating-close-btn{
  align-self: end;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 20px;
  height: 20px;

  color: white;
  background-color: var(--bs-red);
  border-radius: 50%;
  font-size: 18px;

  position: absolute;

  border: none;

  top: -6px;
  right: -6px;
}

.floating-close-btn:hover{
  cursor: pointer;
}

.render-multiple{
  margin-bottom: 8.5rem;
  background-color: #9c9c9c82;
  padding: 7px 17px;
  border-radius: 10px;
  backdrop-filter: blur(9px);
}

.canvas-render{
  cursor: grab !important;
}

.canvas-render:active{
  cursor: grabbing !important;
}

.vertical-range{
  writing-mode: bt-lr;
  -webkit-appearance: slider-vertical;
  width: 16px;                  
  height: 10px;
  margin: 7px 0;   
}

#ContainerVeinsPreview > img{
  max-width: 22rem;
}

#ContainerVeinsPreview > canvas{
  max-width: 22rem !important;
}

.copy-fade{
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.restore-label{
  border: 0;
  padding: 0;
  background-color: unset;
  font-size: 13px;
  text-decoration: underline;
  color: blue;
}

.info-label{
  text-align: end;
  font-size: 24px;
  font-weight: 600;
  border: 0;
}

/* Cambiar ancho de la barra */
::-webkit-scrollbar {
  width: 6px;  /* para scroll vertical */
  height: 6px; /* para scroll horizontal */
}

/* Fondo de la barra */
::-webkit-scrollbar-track {
  background: #80808000;
  border-radius: 10px;
}

/* Pulgar (la parte que se arrastra) */
::-webkit-scrollbar-thumb {
  background: #00000034;
  /*border-radius: 10px;*/
}

/* Pulgar al pasar el mouse */
::-webkit-scrollbar-thumb:hover {
  background: #0000004b;
}