@charset "utf-8";

:where(html[dir="ltr"]),
    :where([data-sonner-toaster][dir="ltr"]) {
      --toast-icon-margin-start: -3px;
      --toast-icon-margin-end: 4px;
      --toast-svg-margin-start: -1px;
      --toast-svg-margin-end: 0px;
      --toast-button-margin-start: auto;
      --toast-button-margin-end: 0;
      --toast-close-button-start: 0;
      --toast-close-button-end: unset;
      --toast-close-button-transform: translate(-35%, -35%)
    }

    :where(html[dir="rtl"]),
    :where([data-sonner-toaster][dir="rtl"]) {
      --toast-icon-margin-start: 4px;
      --toast-icon-margin-end: -3px;
      --toast-svg-margin-start: 0px;
      --toast-svg-margin-end: -1px;
      --toast-button-margin-start: 0;
      --toast-button-margin-end: auto;
      --toast-close-button-start: unset;
      --toast-close-button-end: 0;
      --toast-close-button-transform: translate(35%, -35%)
    }

    :where([data-sonner-toaster]) {
      position: fixed;
      width: var(--width);
      font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
      --gray1: hsl(0, 0%, 99%);
      --gray2: hsl(0, 0%, 97.3%);
      --gray3: hsl(0, 0%, 95.1%);
      --gray4: hsl(0, 0%, 93%);
      --gray5: hsl(0, 0%, 90.9%);
      --gray6: hsl(0, 0%, 88.7%);
      --gray7: hsl(0, 0%, 85.8%);
      --gray8: hsl(0, 0%, 78%);
      --gray9: hsl(0, 0%, 56.1%);
      --gray10: hsl(0, 0%, 52.3%);
      --gray11: hsl(0, 0%, 43.5%);
      --gray12: hsl(0, 0%, 9%);
      --border-radius: 8px;
      box-sizing: border-box;
      padding: 0;
      margin: 0;
      list-style: none;
      outline: none;
      z-index: 999999999;
      transition: transform .4s ease
    }

    :where([data-sonner-toaster][data-lifted="true"]) {
      transform: translateY(-10px)
    }

    @media (hover: none) and (pointer: coarse) {
      :where([data-sonner-toaster][data-lifted="true"]) {
        transform: none
      }
    }

    :where([data-sonner-toaster][data-x-position="right"]) {
      right: var(--offset-right)
    }

    :where([data-sonner-toaster][data-x-position="left"]) {
      left: var(--offset-left)
    }

    :where([data-sonner-toaster][data-x-position="center"]) {
      left: 50%;
      transform: translate(-50%)
    }

    :where([data-sonner-toaster][data-y-position="top"]) {
      top: var(--offset-top)
    }

    :where([data-sonner-toaster][data-y-position="bottom"]) {
      bottom: var(--offset-bottom)
    }

    :where([data-sonner-toast]) {
      --y: translateY(100%);
      --lift-amount: calc(var(--lift) * var(--gap));
      z-index: var(--z-index);
      position: absolute;
      opacity: 0;
      transform: var(--y);
      filter: blur(0);
      touch-action: none;
      transition: transform .4s, opacity .4s, height .4s, box-shadow .2s;
      box-sizing: border-box;
      outline: none;
      overflow-wrap: anywhere
    }

    :where([data-sonner-toast][data-styled="true"]) {
      padding: 16px;
      background: var(--normal-bg);
      border: 1px solid var(--normal-border);
      color: var(--normal-text);
      border-radius: var(--border-radius);
      box-shadow: 0 4px 12px #0000001a;
      width: var(--width);
      font-size: 13px;
      display: flex;
      align-items: center;
      gap: 6px
    }

    :where([data-sonner-toast]:focus-visible) {
      box-shadow: 0 4px 12px #0000001a, 0 0 0 2px #0003
    }

    :where([data-sonner-toast][data-y-position="top"]) {
      top: 0;
      --y: translateY(-100%);
      --lift: 1;
      --lift-amount: calc(1 * var(--gap))
    }

    :where([data-sonner-toast][data-y-position="bottom"]) {
      bottom: 0;
      --y: translateY(100%);
      --lift: -1;
      --lift-amount: calc(var(--lift) * var(--gap))
    }

    :where([data-sonner-toast]) :where([data-description]) {
      font-weight: 400;
      line-height: 1.4;
      color: inherit
    }

    :where([data-sonner-toast]) :where([data-title]) {
      font-weight: 500;
      line-height: 1.5;
      color: inherit
    }

    :where([data-sonner-toast]) :where([data-icon]) {
      display: flex;
      height: 16px;
      width: 16px;
      position: relative;
      justify-content: flex-start;
      align-items: center;
      flex-shrink: 0;
      margin-left: var(--toast-icon-margin-start);
      margin-right: var(--toast-icon-margin-end)
    }

    :where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg {
      opacity: 0;
      transform: scale(.8);
      transform-origin: center;
      animation: sonner-fade-in .3s ease forwards
    }

    :where([data-sonner-toast]) :where([data-icon])>* {
      flex-shrink: 0
    }

    :where([data-sonner-toast]) :where([data-icon]) svg {
      margin-left: var(--toast-svg-margin-start);
      margin-right: var(--toast-svg-margin-end)
    }

    :where([data-sonner-toast]) :where([data-content]) {
      display: flex;
      flex-direction: column;
      gap: 2px
    }

    [data-sonner-toast][data-styled=true] [data-button] {
      border-radius: 4px;
      padding-left: 8px;
      padding-right: 8px;
      height: 24px;
      font-size: 12px;
      color: var(--normal-bg);
      background: var(--normal-text);
      margin-left: var(--toast-button-margin-start);
      margin-right: var(--toast-button-margin-end);
      border: none;
      cursor: pointer;
      outline: none;
      display: flex;
      align-items: center;
      flex-shrink: 0;
      transition: opacity .4s, box-shadow .2s
    }

    :where([data-sonner-toast]) :where([data-button]):focus-visible {
      box-shadow: 0 0 0 2px #0006
    }

    :where([data-sonner-toast]) :where([data-button]):first-of-type {
      margin-left: var(--toast-button-margin-start);
      margin-right: var(--toast-button-margin-end)
    }

    :where([data-sonner-toast]) :where([data-cancel]) {
      color: var(--normal-text);
      background: rgba(0, 0, 0, .08)
    }

    :where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]) {
      background: rgba(255, 255, 255, .3)
    }

    :where([data-sonner-toast]) :where([data-close-button]) {
      position: absolute;
      left: var(--toast-close-button-start);
      right: var(--toast-close-button-end);
      top: 0;
      height: 20px;
      width: 20px;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 0;
      color: var(--gray12);
      border: 1px solid var(--gray4);
      transform: var(--toast-close-button-transform);
      border-radius: 50%;
      cursor: pointer;
      z-index: 1;
      transition: opacity .1s, background .2s, border-color .2s
    }

    [data-sonner-toast] [data-close-button] {
      background: var(--gray1)
    }

    :where([data-sonner-toast]) :where([data-close-button]):focus-visible {
      box-shadow: 0 4px 12px #0000001a, 0 0 0 2px #0003
    }

    :where([data-sonner-toast]) :where([data-disabled="true"]) {
      cursor: not-allowed
    }

    :where([data-sonner-toast]):hover :where([data-close-button]):hover {
      background: var(--gray2);
      border-color: var(--gray5)
    }

    :where([data-sonner-toast][data-swiping="true"]):before {
      content: "";
      position: absolute;
      left: -50%;
      right: -50%;
      height: 100%;
      z-index: -1
    }

    :where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before {
      bottom: 50%;
      transform: scaleY(3) translateY(50%)
    }

    :where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before {
      top: 50%;
      transform: scaleY(3) translateY(-50%)
    }

    :where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before {
      content: "";
      position: absolute;
      inset: 0;
      transform: scaleY(2)
    }

    :where([data-sonner-toast]):after {
      content: "";
      position: absolute;
      left: 0;
      height: calc(var(--gap) + 1px);
      bottom: 100%;
      width: 100%
    }

    :where([data-sonner-toast][data-mounted="true"]) {
      --y: translateY(0);
      opacity: 1
    }

    :where([data-sonner-toast][data-expanded="false"][data-front="false"]) {
      --scale: var(--toasts-before) * .05 + 1;
      --y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));
      height: var(--front-toast-height)
    }

    :where([data-sonner-toast])>* {
      transition: opacity .4s
    }

    :where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>* {
      opacity: 0
    }

    :where([data-sonner-toast][data-visible="false"]) {
      opacity: 0;
      pointer-events: none
    }

    :where([data-sonner-toast][data-mounted="true"][data-expanded="true"]) {
      --y: translateY(calc(var(--lift) * var(--offset)));
      height: var(--initial-height)
    }

    :where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]) {
      --y: translateY(calc(var(--lift) * -100%));
      opacity: 0
    }

    :where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]) {
      --y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));
      opacity: 0
    }

    :where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]) {
      --y: translateY(40%);
      opacity: 0;
      transition: transform .5s, opacity .2s
    }

    :where([data-sonner-toast][data-removed="true"][data-front="false"]):before {
      height: calc(var(--initial-height) + 20%)
    }

    [data-sonner-toast][data-swiping=true] {
      transform: var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));
      transition: none
    }

    [data-sonner-toast][data-swiped=true] {
      user-select: none
    }

    [data-sonner-toast][data-swipe-out=true][data-y-position=bottom],
    [data-sonner-toast][data-swipe-out=true][data-y-position=top] {
      animation-duration: .2s;
      animation-timing-function: ease-out;
      animation-fill-mode: forwards
    }

    [data-sonner-toast][data-swipe-out=true][data-swipe-direction=left] {
      animation-name: swipe-out-left
    }

    [data-sonner-toast][data-swipe-out=true][data-swipe-direction=right] {
      animation-name: swipe-out-right
    }

    [data-sonner-toast][data-swipe-out=true][data-swipe-direction=up] {
      animation-name: swipe-out-up
    }

    [data-sonner-toast][data-swipe-out=true][data-swipe-direction=down] {
      animation-name: swipe-out-down
    }

    @keyframes swipe-out-left {
      0% {
        transform: var(--y) translate(var(--swipe-amount-x));
        opacity: 1
      }

      to {
        transform: var(--y) translate(calc(var(--swipe-amount-x) - 100%));
        opacity: 0
      }
    }

    @keyframes swipe-out-right {
      0% {
        transform: var(--y) translate(var(--swipe-amount-x));
        opacity: 1
      }

      to {
        transform: var(--y) translate(calc(var(--swipe-amount-x) + 100%));
        opacity: 0
      }
    }

    @keyframes swipe-out-up {
      0% {
        transform: var(--y) translateY(var(--swipe-amount-y));
        opacity: 1
      }

      to {
        transform: var(--y) translateY(calc(var(--swipe-amount-y) - 100%));
        opacity: 0
      }
    }

    @keyframes swipe-out-down {
      0% {
        transform: var(--y) translateY(var(--swipe-amount-y));
        opacity: 1
      }

      to {
        transform: var(--y) translateY(calc(var(--swipe-amount-y) + 100%));
        opacity: 0
      }
    }

    @media (max-width: 600px) {
      [data-sonner-toaster] {
        position: fixed;
        right: var(--mobile-offset-right);
        left: var(--mobile-offset-left);
        width: 100%
      }

      [data-sonner-toaster][dir=rtl] {
        left: calc(var(--mobile-offset-left) * -1)
      }

      [data-sonner-toaster] [data-sonner-toast] {
        left: 0;
        right: 0;
        width: calc(100% - var(--mobile-offset-left) * 2)
      }

      [data-sonner-toaster][data-x-position=left] {
        left: var(--mobile-offset-left)
      }

      [data-sonner-toaster][data-y-position=bottom] {
        bottom: var(--mobile-offset-bottom)
      }

      [data-sonner-toaster][data-y-position=top] {
        top: var(--mobile-offset-top)
      }

      [data-sonner-toaster][data-x-position=center] {
        left: var(--mobile-offset-left);
        right: var(--mobile-offset-right);
        transform: none
      }
    }

    [data-sonner-toaster][data-theme=light] {
      --normal-bg: #fff;
      --normal-border: var(--gray4);
      --normal-text: var(--gray12);
      --success-bg: hsl(143, 85%, 96%);
      --success-border: hsl(145, 92%, 91%);
      --success-text: hsl(140, 100%, 27%);
      --info-bg: hsl(208, 100%, 97%);
      --info-border: hsl(221, 91%, 91%);
      --info-text: hsl(210, 92%, 45%);
      --warning-bg: hsl(49, 100%, 97%);
      --warning-border: hsl(49, 91%, 91%);
      --warning-text: hsl(31, 92%, 45%);
      --error-bg: hsl(359, 100%, 97%);
      --error-border: hsl(359, 100%, 94%);
      --error-text: hsl(360, 100%, 45%)
    }

    [data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true] {
      --normal-bg: #000;
      --normal-border: hsl(0, 0%, 20%);
      --normal-text: var(--gray1)
    }

    [data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true] {
      --normal-bg: #fff;
      --normal-border: var(--gray3);
      --normal-text: var(--gray12)
    }

    [data-sonner-toaster][data-theme=dark] {
      --normal-bg: #000;
      --normal-bg-hover: hsl(0, 0%, 12%);
      --normal-border: hsl(0, 0%, 20%);
      --normal-border-hover: hsl(0, 0%, 25%);
      --normal-text: var(--gray1);
      --success-bg: hsl(150, 100%, 6%);
      --success-border: hsl(147, 100%, 12%);
      --success-text: hsl(150, 86%, 65%);
      --info-bg: hsl(215, 100%, 6%);
      --info-border: hsl(223, 100%, 12%);
      --info-text: hsl(216, 87%, 65%);
      --warning-bg: hsl(64, 100%, 6%);
      --warning-border: hsl(60, 100%, 12%);
      --warning-text: hsl(46, 87%, 65%);
      --error-bg: hsl(358, 76%, 10%);
      --error-border: hsl(357, 89%, 16%);
      --error-text: hsl(358, 100%, 81%)
    }

    [data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button] {
      background: var(--normal-bg);
      border-color: var(--normal-border);
      color: var(--normal-text)
    }

    [data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover {
      background: var(--normal-bg-hover);
      border-color: var(--normal-border-hover)
    }

    [data-rich-colors=true][data-sonner-toast][data-type=success],
    [data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button] {
      background: var(--success-bg);
      border-color: var(--success-border);
      color: var(--success-text)
    }

    [data-rich-colors=true][data-sonner-toast][data-type=info],
    [data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button] {
      background: var(--info-bg);
      border-color: var(--info-border);
      color: var(--info-text)
    }

    [data-rich-colors=true][data-sonner-toast][data-type=warning],
    [data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button] {
      background: var(--warning-bg);
      border-color: var(--warning-border);
      color: var(--warning-text)
    }

    [data-rich-colors=true][data-sonner-toast][data-type=error],
    [data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button] {
      background: var(--error-bg);
      border-color: var(--error-border);
      color: var(--error-text)
    }

    .sonner-loading-wrapper {
      --size: 16px;
      height: var(--size);
      width: var(--size);
      position: absolute;
      inset: 0;
      z-index: 10
    }

    .sonner-loading-wrapper[data-visible=false] {
      transform-origin: center;
      animation: sonner-fade-out .2s ease forwards
    }

    .sonner-spinner {
      position: relative;
      top: 50%;
      left: 50%;
      height: var(--size);
      width: var(--size)
    }

    .sonner-loading-bar {
      animation: sonner-spin 1.2s linear infinite;
      background: var(--gray11);
      border-radius: 6px;
      height: 8%;
      left: -10%;
      position: absolute;
      top: -3.9%;
      width: 24%
    }

    .sonner-loading-bar:nth-child(1) {
      animation-delay: -1.2s;
      transform: rotate(.0001deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(2) {
      animation-delay: -1.1s;
      transform: rotate(30deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(3) {
      animation-delay: -1s;
      transform: rotate(60deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(4) {
      animation-delay: -.9s;
      transform: rotate(90deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(5) {
      animation-delay: -.8s;
      transform: rotate(120deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(6) {
      animation-delay: -.7s;
      transform: rotate(150deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(7) {
      animation-delay: -.6s;
      transform: rotate(180deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(8) {
      animation-delay: -.5s;
      transform: rotate(210deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(9) {
      animation-delay: -.4s;
      transform: rotate(240deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(10) {
      animation-delay: -.3s;
      transform: rotate(270deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(11) {
      animation-delay: -.2s;
      transform: rotate(300deg) translate(146%)
    }

    .sonner-loading-bar:nth-child(12) {
      animation-delay: -.1s;
      transform: rotate(330deg) translate(146%)
    }

    @keyframes sonner-fade-in {
      0% {
        opacity: 0;
        transform: scale(.8)
      }

      to {
        opacity: 1;
        transform: scale(1)
      }
    }

    @keyframes sonner-fade-out {
      0% {
        opacity: 1;
        transform: scale(1)
      }

      to {
        opacity: 0;
        transform: scale(.8)
      }
    }

    @keyframes sonner-spin {
      0% {
        opacity: 1
      }

      to {
        opacity: .15
      }
    }

    @media (prefers-reduced-motion) {

      [data-sonner-toast],
      [data-sonner-toast]>*,
      .sonner-loading-bar {
        transition: none !important;
        animation: none !important
      }
    }

    .sonner-loader {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      transform-origin: center;
      transition: opacity .2s, transform .2s
    }

    .sonner-loader[data-visible=false] {
      opacity: 0;
      transform: scale(.8) translate(-50%, -50%)
    }
    *,
    ::before,
    ::after {
      --tw-border-spacing-x: 0;
      --tw-border-spacing-y: 0;
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-rotate: 0;
      --tw-skew-x: 0;
      --tw-skew-y: 0;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-pan-x: ;
      --tw-pan-y: ;
      --tw-pinch-zoom: ;
      --tw-scroll-snap-strictness: proximity;
      --tw-gradient-from-position: ;
      --tw-gradient-via-position: ;
      --tw-gradient-to-position: ;
      --tw-ordinal: ;
      --tw-slashed-zero: ;
      --tw-numeric-figure: ;
      --tw-numeric-spacing: ;
      --tw-numeric-fraction: ;
      --tw-ring-inset: ;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-color: rgb(59 130 246 / 0.5);
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-ring-shadow: 0 0 #0000;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-colored: 0 0 #0000;
      --tw-blur: ;
      --tw-brightness: ;
      --tw-contrast: ;
      --tw-grayscale: ;
      --tw-hue-rotate: ;
      --tw-invert: ;
      --tw-saturate: ;
      --tw-sepia: ;
      --tw-drop-shadow: ;
      --tw-backdrop-blur: ;
      --tw-backdrop-brightness: ;
      --tw-backdrop-contrast: ;
      --tw-backdrop-grayscale: ;
      --tw-backdrop-hue-rotate: ;
      --tw-backdrop-invert: ;
      --tw-backdrop-opacity: ;
      --tw-backdrop-saturate: ;
      --tw-backdrop-sepia: ;
      --tw-contain-size: ;
      --tw-contain-layout: ;
      --tw-contain-paint: ;
      --tw-contain-style: ;
    }

    ::backdrop {
      --tw-border-spacing-x: 0;
      --tw-border-spacing-y: 0;
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-rotate: 0;
      --tw-skew-x: 0;
      --tw-skew-y: 0;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-pan-x: ;
      --tw-pan-y: ;
      --tw-pinch-zoom: ;
      --tw-scroll-snap-strictness: proximity;
      --tw-gradient-from-position: ;
      --tw-gradient-via-position: ;
      --tw-gradient-to-position: ;
      --tw-ordinal: ;
      --tw-slashed-zero: ;
      --tw-numeric-figure: ;
      --tw-numeric-spacing: ;
      --tw-numeric-fraction: ;
      --tw-ring-inset: ;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-color: rgb(59 130 246 / 0.5);
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-ring-shadow: 0 0 #0000;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-colored: 0 0 #0000;
      --tw-blur: ;
      --tw-brightness: ;
      --tw-contrast: ;
      --tw-grayscale: ;
      --tw-hue-rotate: ;
      --tw-invert: ;
      --tw-saturate: ;
      --tw-sepia: ;
      --tw-drop-shadow: ;
      --tw-backdrop-blur: ;
      --tw-backdrop-brightness: ;
      --tw-backdrop-contrast: ;
      --tw-backdrop-grayscale: ;
      --tw-backdrop-hue-rotate: ;
      --tw-backdrop-invert: ;
      --tw-backdrop-opacity: ;
      --tw-backdrop-saturate: ;
      --tw-backdrop-sepia: ;
      --tw-contain-size: ;
      --tw-contain-layout: ;
      --tw-contain-paint: ;
      --tw-contain-style: ;
    }

    /*
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
*/
    /*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

    *,
    ::before,
    ::after {
      box-sizing: border-box;
      /* 1 */
      border-width: 0;
      /* 2 */
      border-style: solid;
      /* 2 */
      border-color: #e5e7eb;
      /* 2 */
    }

    ::before,
    ::after {
      --tw-content: '';
    }

    /*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

    html,
    :host {
      line-height: 1.5;
      /* 1 */
      -webkit-text-size-adjust: 100%;
      /* 2 */
      -moz-tab-size: 4;
      /* 3 */
      -o-tab-size: 4;
      tab-size: 4;
      /* 3 */
      font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif;
      /* 4 */
      font-feature-settings: normal;
      /* 5 */
      font-variation-settings: normal;
      /* 6 */
      -webkit-tap-highlight-color: transparent;
      /* 7 */
    }

    /*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

    body {
      margin: 0;
      /* 1 */
      line-height: inherit;
      /* 2 */
    }

    /*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

    hr {
      height: 0;
      /* 1 */
      color: inherit;
      /* 2 */
      border-top-width: 1px;
      /* 3 */
    }

    /*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

    abbr:where([title]) {
      -webkit-text-decoration: underline dotted;
      text-decoration: underline dotted;
    }

    /*
Remove the default font size and weight for headings.
*/

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-size: inherit;
      font-weight: inherit;
    }

    /*
Reset links to optimize for opt-in styling instead of opt-out.
*/

    a {
      color: inherit;
      text-decoration: inherit;
    }

    /*
Add the correct font weight in Edge and Safari.
*/

    b,
    strong {
      font-weight: bolder;
    }

    /*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

    code,
    kbd,
    samp,
    pre {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      /* 1 */
      font-feature-settings: normal;
      /* 2 */
      font-variation-settings: normal;
      /* 3 */
      font-size: 1em;
      /* 4 */
    }

    /*
Add the correct font size in all browsers.
*/

    small {
      font-size: 80%;
    }

    /*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

    sub,
    sup {
      font-size: 75%;
      line-height: 0;
      position: relative;
      vertical-align: baseline;
    }

    sub {
      bottom: -0.25em;
    }

    sup {
      top: -0.5em;
    }

    /*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

    table {
      text-indent: 0;
      /* 1 */
      border-color: inherit;
      /* 2 */
      border-collapse: collapse;
      /* 3 */
    }

    /*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

    button,
    input,
    optgroup,
    select,
    textarea {
      font-family: inherit;
      /* 1 */
      font-feature-settings: inherit;
      /* 1 */
      font-variation-settings: inherit;
      /* 1 */
      font-size: 100%;
      /* 1 */
      font-weight: inherit;
      /* 1 */
      line-height: inherit;
      /* 1 */
      letter-spacing: inherit;
      /* 1 */
      color: inherit;
      /* 1 */
      margin: 0;
      /* 2 */
      padding: 0;
      /* 3 */
    }

    /*
Remove the inheritance of text transform in Edge and Firefox.
*/

    button,
    select {
      text-transform: none;
    }

    /*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

    button,
    input:where([type='button']),
    input:where([type='reset']),
    input:where([type='submit']) {
      -webkit-appearance: button;
      /* 1 */
      background-color: transparent;
      /* 2 */
      background-image: none;
      /* 2 */
    }

    /*
Use the modern Firefox focus style for all focusable elements.
*/

    :-moz-focusring {
      outline: auto;
    }

    /*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

    :-moz-ui-invalid {
      box-shadow: none;
    }

    /*
Add the correct vertical alignment in Chrome and Firefox.
*/

    progress {
      vertical-align: baseline;
    }

    /*
Correct the cursor style of increment and decrement buttons in Safari.
*/

    ::-webkit-inner-spin-button,
    ::-webkit-outer-spin-button {
      height: auto;
    }

    /*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

    [type='search'] {
      -webkit-appearance: textfield;
      /* 1 */
      outline-offset: -2px;
      /* 2 */
    }

    /*
Remove the inner padding in Chrome and Safari on macOS.
*/

    ::-webkit-search-decoration {
      -webkit-appearance: none;
    }

    /*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

    ::-webkit-file-upload-button {
      -webkit-appearance: button;
      /* 1 */
      font: inherit;
      /* 2 */
    }

    /*
Add the correct display in Chrome and Safari.
*/

    summary {
      display: list-item;
    }

    /*
Removes the default spacing and border for appropriate elements.
*/

    blockquote,
    dl,
    dd,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    hr,
    figure,
    p,
    pre {
      margin: 0;
    }

    fieldset {
      margin: 0;
      padding: 0;
    }

    legend {
      padding: 0;
    }

    ol,
    ul,
    menu {
      list-style: none;
      margin: 0;
      padding: 0;
    }

    /*
Reset default styling for dialogs.
*/
    dialog {
      padding: 0;
    }

    /*
Prevent resizing textareas horizontally by default.
*/

    textarea {
      resize: vertical;
    }

    /*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

    input::-moz-placeholder,
    textarea::-moz-placeholder {
      opacity: 1;
      /* 1 */
      color: #9ca3af;
      /* 2 */
    }

    input::placeholder,
    textarea::placeholder {
      opacity: 1;
      /* 1 */
      color: #9ca3af;
      /* 2 */
    }

    /*
Set the default cursor for buttons.
*/

    button,
    [role="button"] {
      cursor: pointer;
    }

    /*
Make sure disabled buttons don't get the pointer cursor.
*/
    :disabled {
      cursor: default;
    }

    /*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

    img,
    svg,
    video,
    canvas,
    audio,
    iframe,
    embed,
    object {
      display: block;
      /* 1 */
      vertical-align: middle;
      /* 2 */
    }

    /*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

    img,
    video {
      max-width: 100%;
      height: auto;
    }

    /* Make elements with the HTML hidden attribute stay hidden by default */
    [hidden]:where(:not([hidden="until-found"])) {
      display: none;
    }

    :root {
      --background: 0 0% 0%;
      --foreground: 0 0% 98%;

      --card: 0 0% 4%;
      --card-foreground: 0 0% 98%;

      --popover: 0 0% 4%;
      --popover-foreground: 0 0% 98%;

      --primary: 238 84% 67%;
      --primary-foreground: 0 0% 100%;

      --secondary: 0 0% 10%;
      --secondary-foreground: 0 0% 98%;

      --muted: 0 0% 12%;
      --muted-foreground: 0 0% 55%;

      --accent: 238 60% 55%;
      --accent-foreground: 0 0% 98%;

      --destructive: 0 84% 60%;
      --destructive-foreground: 0 0% 98%;

      --border: 0 0% 14%;
      --input: 0 0% 14%;
      --ring: 238 84% 67%;

      --radius: 0.75rem;

      /* Custom gradients */
      --gradient-primary: linear-gradient(135deg, hsl(238, 84%, 67%) 0%, hsl(280, 70%, 60%) 50%, hsl(320, 80%, 55%) 100%);
      --gradient-background: radial-gradient(ellipse 80% 50% at 50% -20%, hsl(238, 50%, 15%) 0%, hsl(0, 0%, 0%) 100%);
      --gradient-glow: 0 0 60px hsl(238, 84%, 67%, 0.4);

      /* Glass effect */
      --glass-background: hsl(0, 0%, 5%, 0.7);
      --glass-border: hsl(0, 0%, 20%, 0.5);

      --sidebar-background: 0 0% 4%;
      --sidebar-foreground: 0 0% 98%;
      --sidebar-primary: 238 84% 67%;
      --sidebar-primary-foreground: 0 0% 100%;
      --sidebar-accent: 0 0% 12%;
      --sidebar-accent-foreground: 0 0% 98%;
      --sidebar-border: 0 0% 14%;
      --sidebar-ring: 238 84% 67%;
    }

    .dark {
      --background: 0 0% 0%;
      --foreground: 0 0% 98%;

      --card: 0 0% 4%;
      --card-foreground: 0 0% 98%;

      --popover: 0 0% 4%;
      --popover-foreground: 0 0% 98%;

      --primary: 238 84% 67%;
      --primary-foreground: 0 0% 100%;

      --secondary: 0 0% 10%;
      --secondary-foreground: 0 0% 98%;

      --muted: 0 0% 12%;
      --muted-foreground: 0 0% 55%;

      --accent: 238 60% 55%;
      --accent-foreground: 0 0% 98%;

      --destructive: 0 62% 30%;
      --destructive-foreground: 0 0% 98%;

      --border: 0 0% 14%;
      --input: 0 0% 14%;
      --ring: 238 84% 67%;

      --sidebar-background: 0 0% 4%;
      --sidebar-foreground: 0 0% 98%;
      --sidebar-primary: 238 84% 67%;
      --sidebar-primary-foreground: 0 0% 100%;
      --sidebar-accent: 0 0% 12%;
      --sidebar-accent-foreground: 0 0% 98%;
      --sidebar-border: 0 0% 14%;
      --sidebar-ring: 238 84% 67%;
    }


    /* HERO SECTION */
    .overview {
    position: relative;
    overflow: clip;
    background-image: url(../images/common/hero_Grid.svg);
    background-position: 50% 0%;
    background-size: 1440px;
}
/* ============================================
   HERO SECTION ANIMATIONS
   ============================================ */

/* 아래에서 위로 떠오르는 애니메이션 */
@keyframes hero-up {
  0% {
    transform: translateY(100vh) scale(0.5);
    opacity: 0;
  }
  10% {
    opacity: 0.6;
  }
  50% {
    opacity: 0.8;
  }
  90% {
    opacity: 0.4;
  }
  100% {
    transform: translateY(-120vh) scale(1.2);
    opacity: 0;
  }
}

.animate-hero-up {
  animation: hero-up 25s ease-in-out infinite;
}

/* 추가 원형 요소들 - JavaScript로 동적 생성할 수도 있습니다 */
.hero-floating-circle {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(80px);
}

/* 다양한 크기와 속도의 원형들 */
.hero-circle-1 {
  animation: hero-up 20s ease-in-out infinite;
}

.hero-circle-2 {
  animation: hero-up 25s ease-in-out infinite;
  animation-delay: 3s;
}

.hero-circle-3 {
  animation: hero-up 30s ease-in-out infinite;
  animation-delay: 6s;
}

.hero-circle-4 {
  animation: hero-up 22s ease-in-out infinite;
  animation-delay: 9s;
}

.hero-circle-5 {
  animation: hero-up 28s ease-in-out infinite;
  animation-delay: 12s;
}

/* 좌우로 흔들리는 효과 추가 */
@keyframes hero-up-drift {
  0% {
    transform: translateY(100vh) translateX(0) scale(0.5);
    opacity: 0;
  }
  10% {
    opacity: 0.6;
  }
  25% {
    transform: translateY(75vh) translateX(-30px) scale(0.7);
  }
  50% {
    opacity: 0.8;
    transform: translateY(40vh) translateX(30px) scale(0.9);
  }
  75% {
    transform: translateY(10vh) translateX(-20px) scale(1.1);
  }
  90% {
    opacity: 0.4;
  }
  100% {
    transform: translateY(-120vh) translateX(0) scale(1.2);
    opacity: 0;
  }
}

.animate-hero-up-drift {
  animation: hero-up-drift 30s ease-in-out infinite;
}

/* 펄스 효과 (선택사항) */
@keyframes hero-pulse {
  0%, 100% {
    opacity: 0.15;
    transform: scale(1);
  }
  50% {
    opacity: 0.25;
    transform: scale(1.05);
  }
}

.animate-hero-pulse {
  animation: hero-pulse 8s ease-in-out infinite;
}

/* 회전 효과가 있는 버전 */
@keyframes hero-up-rotate {
  0% {
    transform: translateY(100vh) rotate(0deg) scale(0.5);
    opacity: 0;
  }
  10% {
    opacity: 0.5;
  }
  50% {
    opacity: 0.7;
    transform: translateY(40vh) rotate(180deg) scale(0.9);
  }
  90% {
    opacity: 0.3;
  }
  100% {
    transform: translateY(-120vh) rotate(360deg) scale(1.2);
    opacity: 0;
  }
}

.animate-hero-up-rotate {
  animation: hero-up-rotate 35s linear infinite;
}

/* 기존 float 애니메이션 개선 */
@keyframes float-3d {
  0%, 100% {
    transform: translateZ(150px) translateY(0px);
  }
  50% {
    transform: translateZ(150px) translateY(-20px);
  }
}

.animate-float-3d {
  animation: float-3d 6s ease-in-out infinite;
}

/* 페이드인 애니메이션 */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fade-in 0.8s ease-out;
}

/* 반응형 조정 */
@media (max-width: 640px) {
  @keyframes hero-up {
    0% {
      transform: translateY(100vh) scale(0.3);
      opacity: 0;
    }
    10% {
      opacity: 0.5;
    }
    50% {
      opacity: 0.7;
    }
    90% {
      opacity: 0.3;
    }
    100% {
      transform: translateY(-100vh) scale(1);
      opacity: 0;
    }
  }
  
  .hero-floating-circle {
    filter: blur(60px);
  }
}

@media (max-width: 1024px) {
  .hero-floating-circle {
    filter: blur(70px);
  }
}


/* OUR CLIENTS */
    /* 왼쪽으로 스크롤 애니메이션 */
    @keyframes scroll-left {
        0% {
            transform: translateX(0);
        }
        100% {
            transform: translateX(-50%);
        }
    }

    /* 오른쪽으로 스크롤 애니메이션 */
    @keyframes scroll-right {
        0% {
            transform: translateX(-50%);
        }
        100% {
            transform: translateX(0);
        }
    }

    .scroll-left {
        animation: scroll-left 40s linear infinite;
    }

    .scroll-right {
        animation: scroll-right 40s linear infinite;
    }

    /* 호버 시 애니메이션 일시정지 */
    .scroll-container:hover .scroll-left,
    .scroll-container:hover .scroll-right {
        animation-play-state: paused;
    }
    .partner-logo {
        transition: all 0.3s ease;
        filter: grayscale(100%) opacity(0.5);
    }

    .scroll-container::before {
        left: 0;
        background: linear-gradient(to right, #0a0a0a, transparent);
    }

    .scroll-container::after {
        right: 0;
        background: linear-gradient(to left, #0a0a0a, transparent);
    }