/* ==========================================================================
   site.css — shared site CSS that used to be inline in every page's <head> (Osmo snippets:
   variables, scaling system, grain, marquee, flick cards, underline links, falling shapes canvas).
   Moved here verbatim so there is one copy and every page gets it after a Barba navigation.
   Load order: normalize -> webflow -> site css (generated) -> site.css -> custom.css.
   ========================================================================== */

  /* ------------------------- Variables ------------------------------------------- */
  :root {
    --color-light: var(--color-neutral-200);
    --color-dark: var(--color-neutral-800);
    --color-primary: #ff4c24;
    --color-neutral-100: #ffffff;
    --color-neutral-200: #efeeec;
    --color-neutral-300: #e3e1de;
    --color-neutral-400: #cbc8c5;
    --color-neutral-500: #818180;
    --color-neutral-600: #2c2c2c;
    --color-neutral-700: #1f1f1f;
    --color-neutral-800: #131313;
    --color-neutral-900: #000000;
    --color-white: var(--color-neutral-100);
    --color-black: var(--color-neutral-900);
    --color-error: #ea384c;
    --color-success: #0ba954;
    --color-warning: #f5a524;
    --cubic-default: cubic-bezier(0.65, 0.05, 0, 1);
    --duration-default: 0.735s;
    --animation-default: var(--duration-default) var(--cubic-default);
  }
  /* ------------------------- Hide Scrollbar -------------------------------------------------- */
  body ::-webkit-scrollbar,
  body::-webkit-scrollbar {
    display: none;
  } /* Chrome, Safari, Opera */
  body {
    -ms-overflow-style: none;
  } /* IE & Edge */
  html {
    scrollbar-width: none;
  } /* Firefox */
  /* ------------------------- Reset -------------------------------------------------- */
  *,
  *:after,
  *:before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  html {
    scroll-behavior: initial;
  }
  html,
  body {
    -webkit-font-smoothing: antialiased;
  }
  svg {
    max-width: none;
    height: auto;
    box-sizing: border-box;
    vertical-align: middle;
  }
  a {
    color: inherit;
  }
  /* Selection */
  ::selection {
    background-color: var(--color-primary);
    color: var(--color-dark);
    text-shadow: none;
  }
  ::-moz-selection {
    background-color: var(--color-primary);
    color: var(--color-dark);
    text-shadow: none;
  }
  /* ---- Badge ---- */
  .status-badge__label {
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--text);
    text-transform: uppercase;
  }
  /* ---- LED dot ---- */
  .led {
    --led-color: var(--available);
    position: relative;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background: var(--led-color);
    flex: none;
    animation: led-pulse 2s ease-in-out infinite;
  }
  /* Halo suave detrás — se expande y desvanece */
  .led::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: var(--led-color);
    animation: led-halo 2s ease-in-out infinite;
  }
  /* Variantes de color */
  .led.is-available {
    --led-color: var(--color-success);
  }
  .led.is-warning {
    --led-color: var(--color-warning);
  }
  .led.is-error {
    --led-color: var(--color-error);
  }
  /* ---- Keyframes ---- */
  @keyframes led-pulse {
    0%,
    100% {
      box-shadow: 0 0 0.4rem 0.05rem var(--led-color);
    }
    50% {
      box-shadow: 0 0 0.7rem 0.15rem var(--led-color);
    }
  }
  @keyframes led-halo {
    0% {
      transform: scale(1);
      opacity: 0.6;
    }
    70%,
    100% {
      transform: scale(2.8);
      opacity: 0;
    }
  }
  /* ---- Fixed Underlay Navigation ---- */
  body [data-main] {
    position: relative;
    z-index: 2;
    background-color: #f5f5f4; /* poné el color de fondo real de tu sitio */
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  /* Animated Film Grain Effect */
  .grain[data-grain-animate='true'] {
    animation: grain 0.6s steps(1, end) infinite;
  }
  @keyframes grain {
    0% {
      background-position: 0em 0em;
    }
    20% {
      background-position: -0.5em 0.3em;
    }
    40% {
      background-position: 0.4em -0.2em;
    }
    60% {
      background-position: -0.3em -0.4em;
    }
    80% {
      background-position: 0.2em 0.5em;
    }
  }

  /* CSS Keyframe Animation */
  @keyframes translateX {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(-50%);
    }
  }
  @keyframes translateX-reverse {
    from {
      transform: translateX(-50%);
    }
    to {
      transform: translateX(0);
    }
  }
  [data-css-marquee-list] {
    animation: translateX 15s linear;
    animation-iteration-count: infinite;
    animation-play-state: paused;
  }
  /*Flick cards slider*/
  [data-flick-cards-dragger] {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: auto;
    touch-action: pan-y;
  }
  /* Flick cards: side cards are dimmer, the active one is full, the button only shows on the active card */
  [data-flick-cards-item-status] .flick-card__media {
    transition: opacity 0.2s ease;
    opacity: 0.5;
  }
  [data-flick-cards-item-status='2-before'] .flick-card__media,
  [data-flick-cards-item-status='2-after'] .flick-card__media {
    transition: opacity 0.2s ease;
    opacity: 0.75;
  }
  [data-flick-cards-item-status='active'] .flick-card__media {
    opacity: 1;
  }
  [data-flick-cards-item-status] .flick-card__btn {
    transition:
      opacity 0.4s cubic-bezier(0.625, 0.05, 0, 1),
      1s cubic-bezier(0.16, 1, 0.3, 1);
    opacity: 0;
    transform: translate(0%, 50%) rotate(0.001deg);
  }
  [data-flick-cards-item-status='active'] .flick-card__btn {
    opacity: 1;
    transform: translate(0%, 0%) rotate(0.001deg);
  }
  /* Falling 2d Objects */
  #canvas-target canvas {
    position: relative;
    top: -1px;
    left: -1px;
    right: -1px;
    bottom: -1px;
    max-width: unset;
    pointer-events: all;
    max-width: calc(100% + 2px);
    max-height: calc(100% + 2px);
    min-width: calc(100% + 2px);
    min-height: calc(100% + 2px);
  }
  /* Footer Parallax*/
  [data-underline-link] {
    text-decoration: none;
    position: relative;
  }
  [data-underline-link]::before {
    content: '';
    position: absolute;
    bottom: -0.0625em;
    left: 0;
    width: 100%;
    height: 0.1em;
    background-color: currentColor;
    transition: transform 0.735s cubic-bezier(0.625, 0.05, 0, 1);
    transform-origin: right;
    transform: scaleX(0) rotate(0.001deg);
  }
  @media (hover: hover) and (pointer: fine) {
    [data-hover]:hover [data-underline-link]::before,
    [data-underline-link]:hover::before {
      transform-origin: left;
      transform: scaleX(1) rotate(0.001deg);
    }
  }

/* ------------------------- Scaling System by Osmo [https://osmo.supply/] -------------------------  */
/* Desktop */
:root {
  --size-unit: 16; /* body font-size in design - no px */
  --size-container-ideal: 1920; /* screen-size in design - no px */
  --size-container-min: 992px;
  --size-container-max: 1920px;
  --size-container: clamp(var(--size-container-min), 100vw, var(--size-container-max));
  --size-font: calc(var(--size-container) / (var(--size-container-ideal) / var(--size-unit)));  --gap: 2em;
  --section-padding: calc(3.5em + (var(--gap) * 2));
  --container-padding: 2em;
  --header-height: calc(1.5em + (var(--gap) * 2));
  --footer-height: calc(2.785em + (var(--gap) * 2));
}
/* Tablet */
@media screen and (max-width: 991px) {
  :root {
    --size-container-ideal: 834; /* screen-size in design - no px */
    --size-container-min: 768px;
    --size-container-max: 991px;
  }
}
/* Mobile Landscape */
@media screen and (max-width: 767px) {
  :root {
    --size-container-ideal: 550; /* screen-size in design - no px */
    --size-container-min: 480px;
    --size-container-max: 767px;
  }
}
/* Mobile Portrait */
@media screen and (max-width: 479px) {
  :root {
    --size-container-ideal: 390; /* screen-size in design - no px */
    --size-container-min: 320px;
    --size-container-max: 479px;
  }
}

/* ------------------------- Badges ------------------------------------------------------------
   Blur behind the project tags. (index.html used to carry this in a <style> block, together with a
   "progressive-blur-hero" group of 7 layers per card. That group was display: none on every page, so
   it was removed.)                                                                                 */
.badge {
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* ------------------------- Lenis 1.3.17 base styles (was a cross-origin render-blocking <link>) ---- */
html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}
