/* IMPORT DES COMPORTEMENT */
@import url('/assets/css/components/forms.css');
@import url('/assets/css/components/modals.css');
@import url('/assets/css/components/modal/preferredGenres.css');
@import url('/assets/css/components/buttons.css');
@import url('/assets/css/components/imgAsset.css');
@import url('/assets/css/components/itembuilder.css');

@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes loading {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

@keyframes ripple-animation {
  to {
    transform: scale(4);
    opacity: 0;
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes dots {

  0%,
  80%,
  100% {
    transform: scale(0.8);
  }

  40% {
    transform: scale(1.2);
  }
}

@keyframes shimmer {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.7;
  }
}

@keyframes message-pulse {
  0% {
    border-radius: var(--radius-xs);
  }

  25% {
    border-radius: var(--radius-100) var(--radius-300) var(--radius-300) var(--radius-100) / var(--radius-100) var(--radius-100) var(--radius-300) var(--radius-300);
  }

  50% {
    border-radius: var(--radius-400);
  }

  75% {
    border-radius: var(--radius-300) var(--radius-100) var(--radius-100) var(--radius-300) / var(--radius-300) var(--radius-300) var(--radius-100) var(--radius-100);
  }

  100% {
    border-radius: var(--radius-xs);
  }
}

@keyframes svg-bounce {

  0%,
  100% {
    stroke: var(--text-muted) !important;
    transform: scale(1);
  }

  50% {
    stroke: var(--color-error) !important;
    transform: scale(1.15);
  }

  52% {
    stroke: var(--color-info) !important;
    transform: scale(1.15) translateX(-8px) rotate(-6deg);
  }

  54% {
    stroke: var(--color-error) !important;
    transform: scale(1.15) translateX(8px) rotate(6deg);
  }

  56% {
    stroke: var(--color-warning) !important;
    transform: scale(1.15) translateX(-8px) rotate(-6deg);
  }

  58% {
    stroke: var(--color-info) !important;
    transform: scale(1.15) translateX(8px) rotate(6deg);
  }

  60% {
    stroke: var(--color-error) !important;
    transform: scale(1.15) translateX(-6px) rotate(-4deg);
  }

  62% {
    stroke: var(--color-warning) !important;
    transform: scale(1.15) translateX(6px) rotate(4deg);
  }

  64% {
    stroke: var(--color-info) !important;
    transform: scale(1.15) translateX(-4px) rotate(-2deg);
  }

  66% {
    stroke: var(--color-error) !important;
    transform: scale(1.15) translateX(4px) rotate(2deg);
  }

  68% {
    stroke: var(--color-error) !important;
    transform: scale(1.15) translateX(0) rotate(0deg);
  }
}

@keyframes border-bounce {

  0%,
  100% {
    border-color: var(--color-border-secondary);
    border-width: 1px;
  }

  50% {
    border-color: var(--color-error);
    border-width: 2px;
  }

  52% {
    border-color: var(--color-info);
    border-width: 2px;
    transform: translateX(-8px) rotate(-2deg);
  }

  54% {
    border-color: var(--color-error);
    border-width: 2px;
    transform: translateX(8px) rotate(2deg);
  }

  56% {
    border-color: var(--color-warning);
    border-width: 2px;
    transform: translateX(-8px) rotate(-2deg);
  }

  58% {
    border-color: var(--color-info);
    border-width: 2px;
    transform: translateX(8px) rotate(2deg);
  }

  60% {
    border-color: var(--color-error);
    border-width: 2px;
    transform: translateX(-6px) rotate(-1.5deg);
  }

  62% {
    border-color: var(--color-warning);
    border-width: 2px;
    transform: translateX(6px) rotate(1.5deg);
  }

  64% {
    border-color: var(--color-info);
    border-width: 2px;
    transform: translateX(-4px) rotate(-1deg);
  }

  66% {
    border-color: var(--color-error);
    border-width: 2px;
    transform: translateX(4px) rotate(1deg);
  }

  68% {
    border-color: var(--color-error);
    border-width: 2px;
    transform: translateX(0) rotate(0deg);
  }
}

@keyframes scan {
  0% {
    left: 0%;
    width: 0%;
  }

  50% {
    width: 30%;
  }

  100% {
    left: 100%;
    width: 0%;
  }
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}

:root {
  --font-body: 'Poppins', sans-serif;

  --z-below: -1;
  --z-base: 0;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-popover: 500;
  --z-toast: 600;
  --z-player: 700;
  --z-tooltip: 800;
  --z-top: 9999;

  --gap-2xs: 0.25rem;
  --gap-xs: 0.5rem;
  --gap-sm: 0.75rem;
  --gap-md: 1rem;
  --gap-lg: 1.5rem;
  --gap-xl: 2rem;
  --gap-2xl: 3rem;
  --gap-3xl: 4.5rem;

  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-full: 999px;
  --radius-pill: 999px;

  --font-size-tiny: calc(0.5625rem + 0.08vw);
  --font-size-xxs: calc(0.625rem + 0.09vw);
  --font-size-xs: calc(0.6875rem + 0.1vw);
  --font-size-sm: calc(0.8125rem + 0.12vw);
  --font-size-base: calc(0.875rem + 0.15vw);
  --font-size-lg: calc(0.9375rem + 0.18vw);
  --font-size-xl: calc(1rem + 0.21vw);
  --font-size-2xl: calc(1.125rem + 0.25vw);
  --font-size-3xl: calc(1.375rem + 0.3vw);
  --font-size-4xl: calc(1.75rem + 0.4vw);

  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-black: 900;

  --size-icon-sm: 16px;
  --size-icon-md: 20px;
  --size-icon-lg: 24px;
  --size-icon-xl: 32px;

  --container-xs: 480px;
  --container-sm: 640px;
  --container-md: 768px;
  --container-lg: 1024px;
  --container-xl: 1280px;
  --container-2xl: 1440px;
  --container-full: 100%;

  --width-poster-xs: 72px;
  --width-poster-sm: 90px;
  --width-poster-md: 108px;
  --width-poster-lg: 144px;
  --width-poster-xl: 192px;
  --width-poster-2xl: 256px;

  --height-poster-xs: 108px;
  --height-poster-sm: 135px;
  --height-poster-md: 162px;
  --height-poster-lg: 216px;
  --height-poster-xl: 288px;
  --height-poster-2xl: 384px;

  --width-cover-xxxs: 120px;
  --width-cover-xxs: 154px;
  --width-cover-xs: 192px;
  --width-cover-sm: 240px;
  --width-cover-md: 288px;
  --width-cover-lg: 384px;
  --width-cover-xl: 512px;
  --width-cover-2xl: 683px;

  --height-cover-xxxs: 67px;
  --height-cover-xxs: 86px;
  --height-cover-xs: 108px;
  --height-cover-sm: 135px;
  --height-cover-md: 162px;
  --height-cover-lg: 216px;
  --height-cover-xl: 288px;
  --height-cover-2xl: 384px;

  --width-stroke: 1.5px;
  --width-nav: 220px;

  --height-nav: 55px;
  --height-header: 64px;
  --height-player: 80px;
  --height-beforeimg: 2px;

  --height-input-sm: 32px;
  --height-input-md: 40px;
  --height-input-lg: 48px;

  --height-btn-sm: 32pt;
  --height-btn-md: 40pt;
  --height-btn-lg: 48pt;

  --transition-fast: 0.2s ease;
  --transition-base: 0.35s ease;
  --transition-slow: 0.6s ease;

  --blur-sm: blur(4px);
  --blur-md: blur(8px);
  --blur-lg: blur(20px);

  --ratio-square: 1 / 1;
  --ratio-cover: 16 / 9;
  --ratio-landscape: 16 / 9;
  --ratio-portrait: 2 / 3;
  --ratio-banner: 3 / 1;
  --ratio-widescreen: 21 / 9;
}

[theme="dark"] {
  --bg-transparent: transparent;
  --bg-primary: #000000;
  --bg-secondary: #111111;
  --bg-tertiary: #1A1A1A;
  --bg-tertiary-90: #1A1A1A90;
  --bg-elevated: #242424;
  --bg-elevated-95: rgba(36, 36, 36, 0.95);
  --bg-hover: #2E2E2E;
  --bg-active: #383838;

  --bg-overlay: rgba(0, 0, 0, 0.65);
  --bg-overlay-soft: rgba(0, 0, 0, 0.45);
  --bg-overlay-light: rgba(255, 255, 255, 0.04);

  --text-primary: #F5F5F5;
  --text-secondary: #B3B3B3;
  --text-muted: #808080;
  --text-disabled: #666666;
  --text-inverse: #000000;

  --text-overlay: #F5F5F565;
  --text-overlay-soft: #F5F5F545;

  --color-accent: #F56416;
  --color-accent-hover: #FF7430;
  --color-accent-active: #E0550F;
  --color-accent-light: #3D1A06;
  --color-accent-soft: rgba(245, 100, 22, 0.15);

  --color-success: #22C55E;
  --color-success-light: #052E16;
  --color-success-soft: rgba(34, 197, 94, 0.15);

  --color-warning: #FACC15;
  --color-warning-light: #2D1F00;
  --color-warning-soft: rgba(250, 204, 21, 0.15);

  --color-error: #EF4444;
  --color-error-light: #2D0A0A;
  --color-error-soft: rgba(239, 68, 68, 0.15);

  --color-info: #38BDF8;
  --color-info-light: #0C2233;
  --color-info-soft: rgba(56, 189, 248, 0.15);

  --color-border: #2A2A2A;
  --color-divider: #333333;

  --color-scrim-top: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, .9), rgba(0, 0, 0, .8), rgba(0, 0, 0, .7), rgba(0, 0, 0, .6), rgba(0, 0, 0, .5), rgba(0, 0, 0, .4), rgba(0, 0, 0, .3), rgba(0, 0, 0, .2), rgba(0, 0, 0, .1), rgba(0, 0, 0, 0));
  --color-scrim-right: linear-gradient(to right, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.70) 50%, rgba(0, 0, 0, 0.10) 100%);
  --color-scrim-bottom: linear-gradient(to top, rgba(0, 0, 0, 0.96) 0%, rgba(0, 0, 0, 0.50) 40%, transparent 100%);
  --color-scrim-full: rgba(0, 0, 0, 0.78);

  --player-controls-bg: rgba(0, 0, 0, 0.75);
  --player-controls-hover: rgba(0, 0, 0, 0.90);

  --player-progress-bg: #333333;
  --player-progress-buffered: #444444;
  --player-progress-fill: var(--color-accent);

  --player-icon: var(--text-primary);
  --player-icon-active: var(--color-accent);

  --shadow-soft: 0 4px 16px rgba(0, 0, 0, 0.60);
  --shadow-md: 0 8px 32px rgba(0, 0, 0, 0.75);
  --shadow-strong: 0 12px 48px rgba(0, 0, 0, 0.90);
  --shadow-glow: 0 0 40px rgba(245, 100, 22, 0.25);

  --skeleton-bg: #1A1A1A;
  --skeleton-wave: linear-gradient(90deg, var(--bg-tertiary) 0%, var(--bg-tertiary) 35%, var(--bg-elevated) 50%, var(--bg-tertiary) 65%, var(--bg-tertiary) 100%);
  --skeleton-size: 200% 100%;
}