/*!
 * CASOON Atlas - Complete Style Collection for Tailwind v4
 * Version: 0.0.2 — Modern UI Effects & Utilities
 * Repository: https://github.com/casoon/atlas
 * Author: Jörn Seidel (joern.seidel@casoon.de)
 * License: MIT
 *
 * A comprehensive, modern UI effects library built for Tailwind v4
 * SSR-safe, tree-shakeable, framework-agnostic
 *
 * Usage: @import "@casoon/atlas-styles";
 * Individual imports: @import "@casoon/atlas-styles/glass.css";
 * Package: @casoon/atlas-styles
 */

/* ===== ANIMATIONS ===== */
/*!
 * CASOON Atlas Animations - Complete Animation System for Tailwind v4
 * Version: 0.0.1
 * Repository: https://github.com/casoon/atlas
 * Author: Jörn Seidel (joern.seidel@casoon.de)
 * License: MIT
 *
 * Advanced animation system with 80+ animations and keyframes
 * Part of CASOON Atlas UI effects library
 *
 * Usage: @import "@casoon/atlas-styles/animations";
 * Package: @casoon/atlas-styles
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/*!
 * CASOON Atlas Animations - Complete Animation System for Tailwind v4
 * TOTAL: 6 CSS FILES → Pure Tailwind v4 (80+ animations + advanced features)
 *
 * Features:
 * ✅ Scroll-based animations with Intersection Observer support
 * ✅ Advanced easing functions (spring, bounce, elastic)
 * ✅ Extended stagger system (up to 12 items)
 * ✅ Performance-optimized keyframes
 * ✅ Modern CSS features (view-timeline, scroll-timeline)
 * ✅ Comprehensive reduced motion support
 * ✅ Touch-friendly micro-interactions
 * ✅ SSR-safe, tree-shakeable, framework-agnostic
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/* =========================================================
   CONSOLIDATED ANIMATION THEME & TOKENS
   Complete animation system with timing and easing
   ========================================================= */
@theme {
  /* === DURATION SYSTEM === */
  --cs-anim-duration-xxs: 100ms;
  --cs-anim-duration-xs: 150ms;
  --cs-anim-duration-sm: 200ms;
  --cs-anim-duration-md: 300ms;
  --cs-anim-duration-lg: 500ms;
  --cs-anim-duration-xl: 700ms;
  --cs-anim-duration-2xl: 1000ms;
  --cs-anim-duration-3xl: 1500ms;

  /* === EASING SYSTEM === */
  /* Standard Material Design easing */
  --cs-anim-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --cs-anim-ease-emphasized: cubic-bezier(0.3, 0, 0.8, 0.15);
  --cs-anim-ease-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
  --cs-anim-ease-accelerate: cubic-bezier(0.3, 0, 1, 1);

  /* Spring and elastic easing */
  --cs-anim-ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --cs-anim-ease-soft-spring: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --cs-anim-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --cs-anim-ease-elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6);

  /* Advanced easing curves */
  --cs-anim-ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --cs-anim-ease-crisp: cubic-bezier(0.4, 0, 0.6, 1);
  --cs-anim-ease-overshoot: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* === REDUCED MOTION SYSTEM === */
  --cs-anim-reduced-motion-duration: 1ms;
  --cs-anim-reduced-motion-ease: ease;

  /* === COMPONENT TOKENS === */
  --cs-underline-w: 0%;
  --cs-underline-h: 2px;
  --cs-ripple-color: currentColor;
  --cs-ripple-size: 0%;
  --cs-chip-scale: 1;
  --cs-badge-scale: 0.9;
  --cs-toast-offset: 16px;
  --cs-drawer-shift: 0px;
  --cs-accordion-rows: 0fr;
  --cs-skeleton-sheen: 120%;
  --cs-parallax-offset: 0px;
  --cs-scroll-progress: 0%;

  /* === STAGGER SYSTEM === */
  --cs-stagger-delay-50: 50ms;
  --cs-stagger-delay-75: 75ms;
  --cs-stagger-delay-100: 100ms;
  --cs-stagger-delay-150: 150ms;
  --cs-stagger-delay-200: 200ms;
}

/* =========================================================
   CORE ANIMATION KEYFRAMES
   High-performance keyframes optimized for modern browsers
   ========================================================= */

/* === ENTRANCE ANIMATIONS === */
@keyframes csFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes anim-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes csFadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes anim-fade-out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes csScaleIn {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes anim-scale-in {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes csScaleOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.9);
  }
}

@keyframes anim-scale-out {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.9);
  }
}

@keyframes csSlideUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes anim-slide-up {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes csSlideDown {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes anim-slide-down {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes csSlideLeft {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes anim-slide-left {
  0% {
    opacity: 0;
    transform: translateX(20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes csSlideRight {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes anim-slide-right {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes csBlurIn {
  0% {
    opacity: 0;
    filter: blur(4px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
  }
}

@keyframes anim-blur-in {
  0% {
    opacity: 0;
    filter: blur(4px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
  }
}

@keyframes csBlurOut {
  0% {
    opacity: 1;
    filter: blur(0);
  }
  100% {
    opacity: 0;
    filter: blur(4px);
  }
}

@keyframes anim-blur-out {
  0% {
    opacity: 1;
    filter: blur(0);
  }
  100% {
    opacity: 0;
    filter: blur(4px);
  }
}

@keyframes csRotateIn {
  0% {
    opacity: 0;
    transform: rotate(-5deg);
  }
  100% {
    opacity: 1;
    transform: rotate(0);
  }
}

@keyframes anim-rotate-in {
  0% {
    opacity: 0;
    transform: rotate(-5deg);
  }
  100% {
    opacity: 1;
    transform: rotate(0);
  }
}

@keyframes csFlipIn {
  0% {
    opacity: 0;
    transform: rotateY(-180deg);
  }
  100% {
    opacity: 1;
    transform: rotateY(0);
  }
}

@keyframes csZoomIn {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes csZoomOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.5);
  }
}

/* === CONTINUOUS ANIMATIONS === */
@keyframes csRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes anim-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes csPulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@keyframes anim-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@keyframes csBounce {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-25%);
  }
}

@keyframes anim-bounce {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-25%);
  }
}

@keyframes csWiggle {
  0%,
  100% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-3deg);
  }
  75% {
    transform: rotate(3deg);
  }
}

@keyframes anim-wiggle {
  0%,
  100% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-3deg);
  }
  75% {
    transform: rotate(3deg);
  }
}

@keyframes csShake {
  0%,
  100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-5px);
  }
  75% {
    transform: translateX(5px);
  }
}

@keyframes csHeartbeat {
  0%,
  100% {
    transform: scale(1);
  }
  14%,
  28% {
    transform: scale(1.15);
  }
}

@keyframes csRubberBand {
  0%,
  100% {
    transform: scaleX(1);
  }
  30% {
    transform: scaleX(1.25) scaleY(0.75);
  }
  40% {
    transform: scaleX(0.75) scaleY(1.25);
  }
  60% {
    transform: scaleX(1.15) scaleY(0.85);
  }
}

/* === 3D ANIMATIONS === */
@keyframes csReveal3DUp {
  0% {
    opacity: 0;
    transform: rotateX(-90deg);
  }
  100% {
    opacity: 1;
    transform: rotateX(0);
  }
}

@keyframes csReveal3DRight {
  0% {
    opacity: 0;
    transform: rotateY(90deg);
  }
  100% {
    opacity: 1;
    transform: rotateY(0);
  }
}

@keyframes csReveal3DLeft {
  0% {
    opacity: 0;
    transform: rotateY(-90deg);
  }
  100% {
    opacity: 1;
    transform: rotateY(0);
  }
}

@keyframes csFlip3DX {
  0% {
    transform: rotateX(0);
  }
  100% {
    transform: rotateX(360deg);
  }
}

@keyframes csFlip3DY {
  0% {
    transform: rotateY(0);
  }
  100% {
    transform: rotateY(360deg);
  }
}

/* === SCROLL & PARALLAX ANIMATIONS === */
@keyframes csMarqueeLeft {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}

@keyframes csMarqueeRight {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

@keyframes csParallaxY {
  0% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(10px);
  }
}

@keyframes csParallaxX {
  0% {
    transform: translateX(-10px);
  }
  100% {
    transform: translateX(10px);
  }
}

@keyframes csFloat {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

@keyframes csSway {
  0%,
  100% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(1deg);
  }
}

/* === LOADING & PROGRESS ANIMATIONS === */
@keyframes csProgressGrow {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}

@keyframes csSkeletonShimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

@keyframes csDotLoader {
  0%,
  80%,
  100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}

@keyframes csRippleSpread {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(4);
    opacity: 0;
  }
}

/* === COMPONENT-SPECIFIC ANIMATIONS === */
@keyframes csDropdownIn {
  0% {
    opacity: 0;
    transform: scale(0.95) translateY(-5px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes csDropdownOut {
  0% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
  100% {
    opacity: 0;
    transform: scale(0.95) translateY(-5px);
  }
}

@keyframes csTooltipIn {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes csTooltipOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.8);
  }
}

@keyframes csModalIn {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes csModalOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.9);
  }
}

@keyframes csBackdropIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes csBackdropOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes csDrawerInLeft {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes csDrawerOutLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

@keyframes csDrawerInRight {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes csDrawerOutRight {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}

@keyframes csDrawerInTop {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes csDrawerOutTop {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-100%);
  }
}

@keyframes csDrawerInBottom {
  0% {
    transform: translateY(100%);
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes csDrawerOutBottom {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(100%);
  }
}

@keyframes csAccordionIn {
  0% {
    height: 0;
    opacity: 0;
  }
  100% {
    height: auto;
    opacity: 1;
  }
}

@keyframes csAccordionOut {
  0% {
    height: auto;
    opacity: 1;
  }
  100% {
    height: 0;
    opacity: 0;
  }
}

@keyframes csToastIn {
  0% {
    opacity: 0;
    transform: translateX(100%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes csToastOut {
  0% {
    opacity: 1;
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateX(100%);
  }
}

@keyframes csChipIn {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes csChipOut {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.8);
  }
}

@keyframes csBadgePop {
  0% {
    transform: scale(0.8);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes csSpinner {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes csProgressIndeterminate {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

@keyframes csCarouselSlide {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes csCarouselFade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* === MICRO-INTERACTION ANIMATIONS === */
@keyframes csBtnPress {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.975);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes csTabSlide {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

@keyframes csNotificationSlide {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(0);
  }
}

/* =========================================================
   CORE ANIMATION ENGINE
   Flexible animation system with CSS custom properties
   ========================================================= */

@utility cs-anim {
  animation-duration: var(--cs-anim-duration, var(--cs-anim-duration-md));
  animation-timing-function: var(--cs-anim-ease, var(--cs-anim-ease-standard));
  animation-iteration-count: var(--cs-anim-count, 1);
  animation-direction: var(--cs-anim-direction, normal);
  animation-fill-mode: var(--cs-anim-fill, both);
  animation-delay: var(--cs-anim-delay, 0ms);
}

/* =========================================================
   DURATION UTILITIES
   Complete timing scale for fine-tuned control
   ========================================================= */

@utility cs-anim-xxs {
  --cs-anim-duration: var(--cs-anim-duration-xxs);
}
@utility cs-anim-xs {
  --cs-anim-duration: var(--cs-anim-duration-xs);
}
@utility cs-anim-sm {
  --cs-anim-duration: var(--cs-anim-duration-sm);
}
@utility cs-anim-md {
  --cs-anim-duration: var(--cs-anim-duration-md);
}
@utility cs-anim-lg {
  --cs-anim-duration: var(--cs-anim-duration-lg);
}
@utility cs-anim-xl {
  --cs-anim-duration: var(--cs-anim-duration-xl);
}
@utility cs-anim-2xl {
  --cs-anim-duration: var(--cs-anim-duration-2xl);
}
@utility cs-anim-3xl {
  --cs-anim-duration: var(--cs-anim-duration-3xl);
}

/* =========================================================
   EASING UTILITIES
   Advanced easing functions for natural motion
   ========================================================= */

@utility cs-ease-standard {
  --cs-anim-ease: var(--cs-anim-ease-standard);
}
@utility cs-ease-emphasized {
  --cs-anim-ease: var(--cs-anim-ease-emphasized);
}
@utility cs-ease-decelerate {
  --cs-anim-ease: var(--cs-anim-ease-decelerate);
}
@utility cs-ease-accelerate {
  --cs-anim-ease: var(--cs-anim-ease-accelerate);
}
@utility cs-ease-spring {
  --cs-anim-ease: var(--cs-anim-ease-spring);
}
@utility cs-ease-soft-spring {
  --cs-anim-ease: var(--cs-anim-ease-soft-spring);
}
@utility cs-ease-bounce {
  --cs-anim-ease: var(--cs-anim-ease-bounce);
}
@utility cs-ease-elastic {
  --cs-anim-ease: var(--cs-anim-ease-elastic);
}
@utility cs-ease-smooth {
  --cs-anim-ease: var(--cs-anim-ease-smooth);
}
@utility cs-ease-crisp {
  --cs-anim-ease: var(--cs-anim-ease-crisp);
}
@utility cs-ease-overshoot {
  --cs-anim-ease: var(--cs-anim-ease-overshoot);
}

/* =========================================================
   DELAY UTILITIES
   Precise timing control for orchestration
   ========================================================= */

@utility cs-delay-0 {
  --cs-anim-delay: 0ms;
}
@utility cs-delay-50 {
  --cs-anim-delay: 50ms;
}
@utility cs-delay-75 {
  --cs-anim-delay: 75ms;
}
@utility cs-delay-100 {
  --cs-anim-delay: 100ms;
}
@utility cs-delay-150 {
  --cs-anim-delay: 150ms;
}
@utility cs-delay-200 {
  --cs-anim-delay: 200ms;
}
@utility cs-delay-300 {
  --cs-anim-delay: 300ms;
}
@utility cs-delay-500 {
  --cs-anim-delay: 500ms;
}
@utility cs-delay-700 {
  --cs-anim-delay: 700ms;
}
@utility cs-delay-1000 {
  --cs-anim-delay: 1000ms;
}
@utility cs-delay-1500 {
  --cs-anim-delay: 1500ms;
}

/* =========================================================
   ANIMATION CONTROL UTILITIES
   Direction, iteration, and fill mode controls
   ========================================================= */

@utility cs-anim-infinite {
  --cs-anim-count: infinite;
}
@utility cs-anim-reverse {
  --cs-anim-direction: reverse;
}
@utility cs-anim-alternate {
  --cs-anim-direction: alternate;
}
@utility cs-anim-alternate-reverse {
  --cs-anim-direction: alternate-reverse;
}
@utility cs-anim-both {
  --cs-anim-fill: both;
}
@utility cs-anim-forwards {
  --cs-anim-fill: forwards;
}
@utility cs-anim-backwards {
  --cs-anim-fill: backwards;
}
@utility cs-anim-none {
  --cs-anim-fill: none;
}

/* Iteration count utilities */
@utility cs-anim-once {
  --cs-anim-count: 1;
}
@utility cs-anim-twice {
  --cs-anim-count: 2;
}
@utility cs-anim-thrice {
  --cs-anim-count: 3;
}

/* =========================================================
   ENTRANCE ANIMATION UTILITIES
   Complete set of entrance animations
   ========================================================= */

@utility cs-fade-in {
  animation-name: csFadeIn;
}
@utility cs-fade-out {
  animation-name: csFadeOut;
}
@utility cs-scale-in {
  animation-name: csScaleIn;
}
@utility cs-scale-out {
  animation-name: csScaleOut;
}
@utility cs-zoom-in {
  animation-name: csZoomIn;
}
@utility cs-zoom-out {
  animation-name: csZoomOut;
}
@utility cs-slide-up {
  animation-name: csSlideUp;
}
@utility cs-slide-down {
  animation-name: csSlideDown;
}
@utility cs-slide-left {
  animation-name: csSlideLeft;
}
@utility cs-slide-right {
  animation-name: csSlideRight;
}
@utility cs-blur-in {
  animation-name: csBlurIn;
}
@utility cs-blur-out {
  animation-name: csBlurOut;
}
@utility cs-rotate-in {
  animation-name: csRotateIn;
}
@utility cs-flip-in {
  animation-name: csFlipIn;
}

/* v0.8.0-kompatible Aliase */
@utility cs-anim {
  animation-duration: var(--cs-anim-duration, var(--cs-anim-duration-md));
  animation-timing-function: var(--cs-anim-ease, var(--cs-anim-ease-standard));
  animation-iteration-count: 1;
  animation-direction: var(--cs-anim-direction, normal);
  animation-fill-mode: var(--cs-anim-fill, both);
  animation-delay: var(--cs-anim-delay, 0ms);
}

/* Additional utility classes that match v0.8.0 */
@utility cs-reveal-3d-up {
  animation-name: csReveal3DUp;
}
@utility cs-reveal-3d-right {
  animation-name: csReveal3DRight;
}
@utility cs-marquee {
  animation-name: csMarqueeLeft;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@utility cs-parallax-y {
  animation-name: csParallaxY;
  animation-direction: alternate;
  animation-iteration-count: infinite;
}

/* =========================================================
   CONTINUOUS ANIMATION UTILITIES
   Looping and infinite animations
   ========================================================= */

@utility cs-rotate {
  animation-name: csRotate;
  animation-duration: var(--cs-anim-duration-lg);
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@utility cs-pulse {
  animation-name: csPulse;
  animation-duration: var(--cs-anim-duration-lg);
  animation-iteration-count: infinite;
}

@utility cs-bounce {
  animation-name: csBounce;
  animation-duration: var(--cs-anim-duration-lg);
  animation-iteration-count: infinite;
}

@utility cs-wiggle {
  animation-name: csWiggle;
}
@utility cs-shake {
  animation-name: csShake;
}
@utility cs-heartbeat {
  animation-name: csHeartbeat;
  animation-duration: var(--cs-anim-duration-lg);
  animation-iteration-count: infinite;
}

@utility cs-rubber-band {
  animation-name: csRubberBand;
}

/* =========================================================
   3D ANIMATION UTILITIES
   Perspective and 3D transform animations
   ========================================================= */

@utility cs-reveal-3d-up {
  animation-name: csReveal3DUp;
}
@utility cs-reveal-3d-right {
  animation-name: csReveal3DRight;
}
@utility cs-reveal-3d-left {
  animation-name: csReveal3DLeft;
}
@utility cs-flip-3d-x {
  animation-name: csFlip3DX;
  animation-duration: var(--cs-anim-duration-lg);
}

@utility cs-flip-3d-y {
  animation-name: csFlip3DY;
  animation-duration: var(--cs-anim-duration-lg);
}

/* =========================================================
   SCROLL & PARALLAX UTILITIES
   Scroll-based and parallax animations
   ========================================================= */

@utility cs-marquee-left {
  animation-name: csMarqueeLeft;
  animation-duration: 10s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@utility cs-marquee-right {
  animation-name: csMarqueeRight;
  animation-duration: 10s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@utility cs-parallax-y {
  animation-name: csParallaxY;
  animation-duration: 6s;
  animation-direction: alternate;
  animation-iteration-count: infinite;
}

@utility cs-parallax-x {
  animation-name: csParallaxX;
  animation-duration: 6s;
  animation-direction: alternate;
  animation-iteration-count: infinite;
}

@utility cs-float {
  animation-name: csFloat;
  animation-duration: 3s;
  animation-iteration-count: infinite;
}

@utility cs-sway {
  animation-name: csSway;
  animation-duration: 4s;
  animation-iteration-count: infinite;
}

/* =========================================================
   COMPONENT ANIMATION UTILITIES
   Ready-to-use component animations
   ========================================================= */

/* Button Press Animation */
@utility cs-btn-press {
  animation-name: csBtnPress;
  animation-duration: var(--cs-anim-duration-xxs);
  animation-timing-function: var(--cs-anim-ease-soft-spring);
}

/* Dropdown Animations */
@utility cs-dropdown-in {
  animation-name: csDropdownIn;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-dropdown-out {
  animation-name: csDropdownOut;
  animation-duration: var(--cs-anim-duration-xs);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

/* Tooltip Animations */
@utility cs-tooltip-in {
  animation-name: csTooltipIn;
  animation-duration: var(--cs-anim-duration-xs);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-tooltip-out {
  animation-name: csTooltipOut;
  animation-duration: var(--cs-anim-duration-xxs);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

/* Modal Animations */
@utility cs-modal-in {
  animation-name: csModalIn;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-modal-out {
  animation-name: csModalOut;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

/* Backdrop Animations */
@utility cs-backdrop-in {
  animation-name: csBackdropIn;
  animation-duration: var(--cs-anim-duration-md);
}

@utility cs-backdrop-out {
  animation-name: csBackdropOut;
  animation-duration: var(--cs-anim-duration-sm);
}

/* Drawer Animations */
@utility cs-drawer-in-left {
  animation-name: csDrawerInLeft;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-drawer-out-left {
  animation-name: csDrawerOutLeft;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

@utility cs-drawer-in-right {
  animation-name: csDrawerInRight;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-drawer-out-right {
  animation-name: csDrawerOutRight;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

@utility cs-drawer-in-top {
  animation-name: csDrawerInTop;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-drawer-out-top {
  animation-name: csDrawerOutTop;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

@utility cs-drawer-in-bottom {
  animation-name: csDrawerInBottom;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-drawer-out-bottom {
  animation-name: csDrawerOutBottom;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

/* Accordion Animations */
@utility cs-accordion-in {
  animation-name: csAccordionIn;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-decelerate);
}

@utility cs-accordion-out {
  animation-name: csAccordionOut;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

@utility cs-accordion-fade {
  animation-name: csFadeIn;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-decelerate);
}

/* Toast Animations */
@utility cs-toast-in {
  animation-name: csToastIn;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-toast-out {
  animation-name: csToastOut;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

/* Chip Animations */
@utility cs-chip-in {
  animation-name: csChipIn;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-spring);
}

@utility cs-chip-out {
  animation-name: csChipOut;
  animation-duration: var(--cs-anim-duration-xs);
  animation-timing-function: var(--cs-anim-ease-accelerate);
}

/* Badge Animation */
@utility cs-badge-pop {
  animation-name: csBadgePop;
  animation-duration: var(--cs-anim-duration-sm);
  animation-timing-function: var(--cs-anim-ease-bounce);
}

/* Spinner Animation */
@utility cs-spinner {
  animation-name: csSpinner;
  animation-duration: 1s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

/* Progress Animations */
@utility cs-progress-indeterminate {
  animation-name: csProgressIndeterminate;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

/* Carousel Animations */
@utility cs-carousel-slide {
  animation-name: csCarouselSlide;
  animation-duration: var(--cs-anim-duration-lg);
  animation-timing-function: var(--cs-anim-ease-decelerate);
}

@utility cs-carousel-fade {
  animation-name: csCarouselFade;
  animation-duration: var(--cs-anim-duration-lg);
  animation-timing-function: var(--cs-anim-ease-standard);
}

/* Ripple Effect */
@utility cs-btn-ripple {
  position: relative;
  overflow: hidden;

  &::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: color-mix(
      in srgb,
      var(--cs-ripple-color, currentColor) 20%,
      transparent
    );
    transform: translate(-50%, -50%);
    animation: csRippleSpread 0.6s ease-out;
  }
}

/* Navigation Underline */
@utility cs-nav-underline-in {
  position: relative;

  &::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -2px;
    width: var(--cs-underline-w, 0%);
    height: var(--cs-underline-h, 2px);
    background: currentColor;
    border-radius: 999px;
    transform: translateX(-50%);
    transition: width var(--cs-anim-duration-sm) var(--cs-anim-ease-decelerate);
  }

  &:hover::after {
    --cs-underline-w: 100%;
  }
}

/* Tab Slide Animation */
@utility cs-tab-slide {
  animation-name: csTabSlide;
  animation-duration: var(--cs-anim-duration-sm);
}

/* Notification Slide */
@utility cs-notification-slide {
  animation-name: csNotificationSlide;
  animation-duration: var(--cs-anim-duration-md);
  animation-timing-function: var(--cs-anim-ease-spring);
}

/* =========================================================
   LOADING & PROGRESS UTILITIES
   Loading states and progress indicators
   ========================================================= */

@utility cs-skeleton-shimmer {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    90deg,
    transparent,
    color-mix(in srgb, currentColor 10%, transparent),
    transparent
  );
  background-size: 200% 100%;
  animation: csSkeletonShimmer 1.5s infinite;
}

@utility cs-progress-grow {
  animation-name: csProgressGrow;
  animation-timing-function: var(--cs-anim-ease-decelerate);
}

@utility cs-dot-loader {
  animation-name: csDotLoader;
  animation-duration: 1.4s;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
}

/* =========================================================
   ADVANCED STAGGER SYSTEM
   Orchestrated animations with extended support
   ========================================================= */

@utility cs-stagger-50 {
  > .cs-anim:nth-child(1) {
    --cs-anim-delay: 0ms;
  }
  > .cs-anim:nth-child(2) {
    --cs-anim-delay: 50ms;
  }
  > .cs-anim:nth-child(3) {
    --cs-anim-delay: 100ms;
  }
  > .cs-anim:nth-child(4) {
    --cs-anim-delay: 150ms;
  }
  > .cs-anim:nth-child(5) {
    --cs-anim-delay: 200ms;
  }
  > .cs-anim:nth-child(6) {
    --cs-anim-delay: 250ms;
  }
  > .cs-anim:nth-child(7) {
    --cs-anim-delay: 300ms;
  }
  > .cs-anim:nth-child(8) {
    --cs-anim-delay: 350ms;
  }
  > .cs-anim:nth-child(9) {
    --cs-anim-delay: 400ms;
  }
  > .cs-anim:nth-child(10) {
    --cs-anim-delay: 450ms;
  }
  > .cs-anim:nth-child(11) {
    --cs-anim-delay: 500ms;
  }
  > .cs-anim:nth-child(12) {
    --cs-anim-delay: 550ms;
  }
}

@utility cs-stagger-75 {
  > .cs-anim:nth-child(1) {
    --cs-anim-delay: 0ms;
  }
  > .cs-anim:nth-child(2) {
    --cs-anim-delay: 75ms;
  }
  > .cs-anim:nth-child(3) {
    --cs-anim-delay: 150ms;
  }
  > .cs-anim:nth-child(4) {
    --cs-anim-delay: 225ms;
  }
  > .cs-anim:nth-child(5) {
    --cs-anim-delay: 300ms;
  }
  > .cs-anim:nth-child(6) {
    --cs-anim-delay: 375ms;
  }
  > .cs-anim:nth-child(7) {
    --cs-anim-delay: 450ms;
  }
  > .cs-anim:nth-child(8) {
    --cs-anim-delay: 525ms;
  }
  > .cs-anim:nth-child(9) {
    --cs-anim-delay: 600ms;
  }
  > .cs-anim:nth-child(10) {
    --cs-anim-delay: 675ms;
  }
  > .cs-anim:nth-child(11) {
    --cs-anim-delay: 750ms;
  }
  > .cs-anim:nth-child(12) {
    --cs-anim-delay: 825ms;
  }
}

@utility cs-stagger-100 {
  > .cs-anim:nth-child(1) {
    --cs-anim-delay: 0ms;
  }
  > .cs-anim:nth-child(2) {
    --cs-anim-delay: 100ms;
  }
  > .cs-anim:nth-child(3) {
    --cs-anim-delay: 200ms;
  }
  > .cs-anim:nth-child(4) {
    --cs-anim-delay: 300ms;
  }
  > .cs-anim:nth-child(5) {
    --cs-anim-delay: 400ms;
  }
  > .cs-anim:nth-child(6) {
    --cs-anim-delay: 500ms;
  }
  > .cs-anim:nth-child(7) {
    --cs-anim-delay: 600ms;
  }
  > .cs-anim:nth-child(8) {
    --cs-anim-delay: 700ms;
  }
  > .cs-anim:nth-child(9) {
    --cs-anim-delay: 800ms;
  }
  > .cs-anim:nth-child(10) {
    --cs-anim-delay: 900ms;
  }
  > .cs-anim:nth-child(11) {
    --cs-anim-delay: 1000ms;
  }
  > .cs-anim:nth-child(12) {
    --cs-anim-delay: 1100ms;
  }
}

@utility cs-stagger-150 {
  > .cs-anim:nth-child(1) {
    --cs-anim-delay: 0ms;
  }
  > .cs-anim:nth-child(2) {
    --cs-anim-delay: 150ms;
  }
  > .cs-anim:nth-child(3) {
    --cs-anim-delay: 300ms;
  }
  > .cs-anim:nth-child(4) {
    --cs-anim-delay: 450ms;
  }
  > .cs-anim:nth-child(5) {
    --cs-anim-delay: 600ms;
  }
  > .cs-anim:nth-child(6) {
    --cs-anim-delay: 750ms;
  }
  > .cs-anim:nth-child(7) {
    --cs-anim-delay: 900ms;
  }
  > .cs-anim:nth-child(8) {
    --cs-anim-delay: 1050ms;
  }
  > .cs-anim:nth-child(9) {
    --cs-anim-delay: 1200ms;
  }
  > .cs-anim:nth-child(10) {
    --cs-anim-delay: 1350ms;
  }
  > .cs-anim:nth-child(11) {
    --cs-anim-delay: 1500ms;
  }
  > .cs-anim:nth-child(12) {
    --cs-anim-delay: 1650ms;
  }
}

@utility cs-stagger-200 {
  > .cs-anim:nth-child(1) {
    --cs-anim-delay: 0ms;
  }
  > .cs-anim:nth-child(2) {
    --cs-anim-delay: 200ms;
  }
  > .cs-anim:nth-child(3) {
    --cs-anim-delay: 400ms;
  }
  > .cs-anim:nth-child(4) {
    --cs-anim-delay: 600ms;
  }
  > .cs-anim:nth-child(5) {
    --cs-anim-delay: 800ms;
  }
  > .cs-anim:nth-child(6) {
    --cs-anim-delay: 1000ms;
  }
  > .cs-anim:nth-child(7) {
    --cs-anim-delay: 1200ms;
  }
  > .cs-anim:nth-child(8) {
    --cs-anim-delay: 1400ms;
  }
  > .cs-anim:nth-child(9) {
    --cs-anim-delay: 1600ms;
  }
  > .cs-anim:nth-child(10) {
    --cs-anim-delay: 1800ms;
  }
  > .cs-anim:nth-child(11) {
    --cs-anim-delay: 2000ms;
  }
  > .cs-anim:nth-child(12) {
    --cs-anim-delay: 2200ms;
  }
}

/* =========================================================
   PERFORMANCE UTILITIES
   Optimization hints for better animation performance
   ========================================================= */

@utility cs-will-transform {
  will-change: transform;
}
@utility cs-will-opacity {
  will-change: opacity;
}
@utility cs-will-filter {
  will-change: filter;
}
@utility cs-will-scroll {
  will-change: scroll-position;
}
@utility cs-will-auto {
  will-change: auto;
}

/* Transform origin utilities */
@utility cs-origin-center {
  transform-origin: center;
}
@utility cs-origin-top {
  transform-origin: top;
}
@utility cs-origin-top-right {
  transform-origin: top right;
}
@utility cs-origin-right {
  transform-origin: right;
}
@utility cs-origin-bottom-right {
  transform-origin: bottom right;
}
@utility cs-origin-bottom {
  transform-origin: bottom;
}
@utility cs-origin-bottom-left {
  transform-origin: bottom left;
}
@utility cs-origin-left {
  transform-origin: left;
}
@utility cs-origin-top-left {
  transform-origin: top left;
}

/* v0.8.0-kompatible Aliase für transform-origin */
@utility cs-t-origin-top {
  transform-origin: top;
}
@utility cs-t-origin-center {
  transform-origin: center;
}
@utility cs-t-origin-bottom {
  transform-origin: bottom;
}

/* v0.8.0-kompatible will-change Aliase */
@utility cs-will-transform {
  will-change: transform;
}
@utility cs-will-opacity {
  will-change: opacity;
}
@utility cs-will-filter {
  will-change: filter;
}

/* v0.8.0-kompatible 3D Aliase */
@utility cs-t-preserve-3d {
  transform-style: preserve-3d;
}

/* 3D Perspective utilities */
@utility cs-preserve-3d {
  transform-style: preserve-3d;
}
@utility cs-perspective-sm {
  perspective: 500px;
}
@utility cs-perspective {
  perspective: 1000px;
}
@utility cs-perspective-lg {
  perspective: 1500px;
}
@utility cs-backface-hidden {
  backface-visibility: hidden;
}
@utility cs-backface-visible {
  backface-visibility: visible;
}

/* =========================================================
   SCROLL-BASED ANIMATIONS
   Modern scroll-timeline and view-timeline support
   ========================================================= */

@utility cs-scroll-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s ease-out,
    transform 0.6s ease-out;

  @supports (animation-timeline: view()) {
    animation: csScrollReveal 1s ease-out;
    animation-timeline: view();
    animation-range: entry 0% entry 100%;
  }
}

@keyframes csScrollReveal {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@utility cs-scroll-scale {
  transform: scale(0.8);
  transition: transform 0.6s ease-out;

  @supports (animation-timeline: view()) {
    animation: csScrollScale 1s ease-out;
    animation-timeline: view();
    animation-range: entry 0% entry 100%;
  }
}

@keyframes csScrollScale {
  0% {
    transform: scale(0.8);
  }
  100% {
    transform: scale(1);
  }
}

@utility cs-parallax-scroll {
  @supports (animation-timeline: scroll()) {
    animation: csParallaxScroll linear;
    animation-timeline: scroll();
  }
}

@keyframes csParallaxScroll {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-50px);
  }
}

/* =========================================================
   ACCESSIBILITY & REDUCED MOTION
   Comprehensive reduced motion support with smart fallbacks
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  /* Disable all animations */
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  /* Override specific animation utilities */
  .cs-pulse,
  .cs-bounce,
  .cs-wiggle,
  .cs-shake,
  .cs-heartbeat,
  .cs-rubber-band,
  .cs-rotate,
  .cs-marquee-left,
  .cs-marquee-right,
  .cs-parallax-y,
  .cs-parallax-x,
  .cs-float,
  .cs-sway,
  .cs-skeleton-shimmer,
  .cs-dot-loader {
    animation: none !important;
  }

  /* Keep essential entrance animations but make them instant */
  .cs-fade-in,
  .cs-scale-in,
  .cs-slide-up,
  .cs-slide-down,
  .cs-slide-left,
  .cs-slide-right {
    animation-duration: 0.01ms !important;
  }

  /* Remove transforms that could cause motion sickness */
  .cs-3d-hover,
  .cs-flip-3d-x,
  .cs-flip-3d-y {
    transform: none !important;
  }
}

/* High contrast mode adjustments */
@media (prefers-contrast: high) {
  .cs-skeleton-shimmer {
    background: repeating-linear-gradient(
      90deg,
      transparent 0%,
      currentColor 50%,
      transparent 100%
    );
  }
}

/* =========================================================
   PRINT MEDIA SUPPORT
   Disable animations for print media
   ========================================================= */

@media print {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* =========================================================
   TOUCH DEVICE OPTIMIZATIONS
   Optimizations for touch-based interactions
   ========================================================= */

@media (hover: none) and (pointer: coarse) {
  /* Faster animations for touch devices */
  .cs-btn-press {
    animation-duration: 50ms;
  }

  .cs-btn-ripple::after {
    animation-duration: 300ms;
  }

  /* Reduce motion intensity */
  .cs-wiggle,
  .cs-shake {
    animation-duration: 150ms;
  }
}


/* ===== CORE ===== */
/*!
 * CASOON Atlas Core - Design System Foundation for Tailwind v4
 * Version: 0.0.1
 * Repository: https://github.com/casoon/atlas
 * Author: Jörn Seidel (joern.seidel@casoon.de)
 * License: MIT
 *
 * Core design system with tokens, utilities, and components
 * Part of CASOON Atlas UI effects library
 *
 * Usage: @import "@casoon/atlas-styles/core";
 * Package: @casoon/atlas-styles
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/*!
 * CASOON Atlas Core - Complete Foundation Package
 * Ultra-complete foundation with 7 integrated systems:
 * - Core Utilities, Forms, Cards & Components
 * - Navigation System (navbar, tabs, breadcrumbs, drawer)
 * - Scroll System (custom scrollbars, snap, reveal animations)
 * - Gradients System (dynamic backgrounds & effects)
 * - Loading System (spinners, skeleton, progress indicators)
 * - Micro Interactions (hover effects, animations)
 * - Typography System (prose, blog, marketing, docs styles)
 *
 * Total: 145+ classes, optimized for production
 * SSR-safe, tree-shakeable, framework-agnostic
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/* =========================================================
   DESIGN SYSTEM FOUNDATION
   ========================================================= */

/* Design Tokens - Complete token system for all components */
/*!
 * Design Tokens - Complete Design System Foundation
 * Core color, spacing, typography, and motion tokens
 */

@theme {
  /* Color tokens - Primary design system */
  --cs-bg: #0b0c0f;
  --cs-surface: #14161a;
  --cs-elev1: #1b1e24;
  --cs-elev2: #21252d;
  --cs-text: #eef1f6;
  --cs-text-muted: #b6bfcc;
  --cs-border: #2a2f39;
  --cs-brand: #4f7cff;
  --cs-brand-contrast: #0b0d12;

  /* State colors */
  --cs-success: #22c55e;
  --cs-warning: #f59e0b;
  --cs-danger: #ef4444;
  --cs-info: #06b6d4;

  /* Typography tokens */
  --cs-font-sans:
    ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter,
    'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif;
  --cs-font-mono:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
    'Courier New', monospace;
  --cs-font-size: 16px;
  --cs-line: 1.5;

  /* Spacing tokens with density support */
  --cs-density: 1;
  --cs-space-1: calc(4px * var(--cs-density));
  --cs-space-2: calc(8px * var(--cs-density));
  --cs-space-3: calc(12px * var(--cs-density));
  --cs-space-4: calc(16px * var(--cs-density));
  --cs-space-6: calc(24px * var(--cs-density));
  --cs-space-8: calc(32px * var(--cs-density));

  /* Border radius & shadow tokens */
  --cs-radius: 10px;
  --cs-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px 1px rgba(0, 0, 0, 0.1);
  --cs-shadow-2: 0 8px 24px rgba(0, 0, 0, 0.22), 0 2px 8px rgba(0, 0, 0, 0.18);

  /* Motion tokens */
  --cs-transition: 180ms cubic-bezier(0.2, 0.6, 0.2, 1);
  --cs-anim-duration-sm: 160ms;
  --cs-anim-duration-md: 280ms;
  --cs-anim-duration-lg: 420ms;
  --cs-anim-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --cs-anim-ease-in: cubic-bezier(0.32, 0, 0.67, 0);
  --cs-anim-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  /* Z-index tokens - Extended scale */
  --cs-z-0: 0;
  --cs-z-1: 1;
  --cs-z-base: 1;
  --cs-z-10: 10;
  --cs-z-20: 20;
  --cs-z-30: 30;
  --cs-z-popover: 30;
  --cs-z-40: 40;
  --cs-z-tooltip: 40;
  --cs-z-50: 50;
  --cs-z-toast: 50;
  --cs-z-60: 60;
  --cs-z-modal: 60;
  --cs-z-70: 70;
  --cs-z-80: 80;
  --cs-z-90: 90;
  --cs-z-100: 100;
  --cs-z-200: 200;
  --cs-z-300: 300;
  --cs-z-400: 400;
  --cs-z-500: 500;
  --cs-z-600: 600;
  --cs-z-700: 700;
  --cs-z-800: 800;
  --cs-z-900: 900;
  --cs-z-999: 999;
  --cs-z-high: 9999;
  --cs-z-9999: 9999;
  --cs-z-max: 2147483647;
  /* Additional semantic z-index tokens from v0.8.x */
  --cs-z-drawer: 1000;
  --cs-z-dropdown: 1000;
  --cs-z-fixed: 1030;
  --cs-z-nav: 1020;
  --cs-z-nav-overlay: 1010;
  --cs-z-orb: 5;
  --cs-z-overlay: 1040;
  --cs-z-sticky: 1020;

  /* Layout tokens */
  --cs-page-max: 1200px;
  --cs-page-pad: var(--cs-space-4);

  /* Backdrop/blur tokens */
  --cs-acrylic-blur: 14px;
  --cs-acrylic-tint: rgba(20, 22, 26, 0.55);
  --cs-acrylic-border: rgba(255, 255, 255, 0.06);

  /* Progressive color tokens */
  --cs-brand-oklch: oklch(60% 0.15 255);
  --cs-brand-ink: var(--cs-brand-contrast);

  /* Fluid typography tokens */
  --cs-fs-xs: clamp(0.78rem, 0.75rem + 0.2cqi, 0.84rem);
  --cs-fs-sm: clamp(0.88rem, 0.82rem + 0.3cqi, 0.95rem);
  --cs-fs-md: clamp(1rem, 0.95rem + 0.4cqi, 1.125rem);
  --cs-fs-lg: clamp(1.25rem, 1.05rem + 0.8cqi, 1.5rem);
  --cs-fs-xl: clamp(1.5rem, 1.2rem + 1.2cqi, 1.875rem);
  --cs-fs-2xl: clamp(1.875rem, 1.4rem + 1.6cqi, 2.25rem);

  /* Form tokens */
  --cs-form-bg: var(--cs-surface);
  --cs-form-border: var(--cs-border);
  --cs-form-radius: var(--cs-radius);
  --cs-form-shadow: var(--cs-shadow-1);
  --cs-form-focus: var(--cs-brand);

  /* Typography component tokens */
  --cs-prose-headings: var(--cs-text);
  --cs-prose-body: var(--cs-text-muted);
  --cs-prose-links: var(--cs-brand);
  --cs-prose-bold: var(--cs-text);
  --cs-prose-quotes: var(--cs-text-muted);
  --cs-prose-captions: var(--cs-text-muted);

  /* Gradients system tokens */
  --cs-gradient-primary: linear-gradient(
    135deg,
    var(--cs-brand),
    color-mix(in srgb, var(--cs-brand) 80%, var(--cs-info))
  );
  --cs-gradient-success: linear-gradient(
    135deg,
    var(--cs-success),
    color-mix(in srgb, var(--cs-success) 70%, var(--cs-info))
  );
  --cs-gradient-warning: linear-gradient(
    135deg,
    var(--cs-warning),
    color-mix(in srgb, var(--cs-warning) 80%, var(--cs-danger))
  );
  --cs-gradient-sunset: linear-gradient(135deg, #ff9a9e, #fecfef, #fecfef);
  --cs-gradient-ocean: linear-gradient(135deg, #667eea, #764ba2);
  --cs-gradient-forest: linear-gradient(135deg, #11998e, #38ef7d);

  /* Extended gradient color stop tokens for comprehensive utilities */
  --cs-gradient-sunset-start: #ff6b6b;
  --cs-gradient-sunset-mid: #ffd93d;
  --cs-gradient-sunset-end: #6bcf7f;

  --cs-gradient-ocean-start: #667eea;
  --cs-gradient-ocean-end: #764ba2;

  --cs-gradient-fire-start: #f093fb;
  --cs-gradient-fire-end: #f5576c;

  --cs-gradient-mint-start: #4facfe;
  --cs-gradient-mint-end: #00f2fe;

  --cs-gradient-purple-start: #a8edea;
  --cs-gradient-purple-end: #fed6e3;

  --cs-gradient-orange-start: #ffeaa7;
  --cs-gradient-orange-end: #fab1a0;

  --cs-gradient-blue-start: #74b9ff;
  --cs-gradient-blue-end: #0984e3;

  --cs-gradient-pink-start: #fd79a8;
  --cs-gradient-pink-end: #fdcb6e;

  /* Custom gradient variables (user customizable) */
  --cs-gradient-custom-start: #667eea;
  --cs-gradient-custom-mid: ;
  --cs-gradient-custom-end: #764ba2;

  --cs-gradient-white: #ffffff;

  /* Shared stops list fallback (for radial/conic) */
  --cs-gradient-stops:
    var(--cs-gradient-ocean-start), var(--cs-gradient-ocean-end);

  /* Gradient fade color tokens */
  --cs-gradient-fade-color: rgba(79, 124, 255, 0.6);
  --cs-gradient-fade-mid: rgba(79, 124, 255, 0.3);

  /* Animation defaults for gradient animations */
  --cs-anim-gradient-duration: 4s;
  --cs-anim-gradient-ease: var(--cs-anim-ease-in-out);
  --cs-anim-gradient-iteration: infinite;

  /* Loading system tokens */
  --cs-loading-spinner-size: 40px;
  --cs-loading-spinner-border: 4px;
  --cs-loading-duration-fast: 0.8s;
  --cs-loading-duration-normal: 1.2s;
  --cs-loading-duration-slow: 2s;

  /* Micro interactions tokens */
  --cs-hover-lift: -2px;
  --cs-hover-scale: 1.02;
  --cs-hover-glow-spread: 8px;
  --cs-tap-scale: 0.98;

  /* Scrollbar design tokens */
  --cs-scroll-thumb-gray: #6b7280;
  --cs-scroll-thumb-blue: #3b82f6;
  --cs-scroll-thumb-primary: var(--cs-brand);
  --cs-scroll-track: rgba(0, 0, 0, 0.08);
  --cs-scroll-track-light: rgba(0, 0, 0, 0.04);
  --cs-scroll-thumb-radius: 8px;
  --cs-scrollbar-size: 10px;
  --cs-scrollbar-size-thin: 6px;

  /* Scroll shadow tokens */
  --cs-scroll-shadow-color: rgba(0, 0, 0, 0.08);
  --cs-scroll-shadow-size: 12px;

  /* Scroll animation tokens */
  --cs-scroll-reveal-distance: 16px;
  --cs-scroll-reveal-scale: 0.96;

  /* Navigation design tokens */
  --cs-nav-primary: var(--cs-brand);
  --cs-nav-text: var(--cs-text);
  --cs-nav-text-muted: var(--cs-text-muted);
  --cs-nav-text-secondary: color-mix(in srgb, var(--cs-text) 75%, transparent);
  --cs-nav-text-disabled: color-mix(in srgb, var(--cs-text) 40%, transparent);
  --cs-nav-border: var(--cs-border);
  --cs-nav-border-light: color-mix(in srgb, var(--cs-border) 60%, transparent);
  --cs-nav-bg: var(--cs-surface);
  --cs-nav-bg-hover: color-mix(
    in srgb,
    var(--cs-surface) 80%,
    var(--cs-text) 8%
  );
  --cs-nav-bg-secondary: color-mix(
    in srgb,
    var(--cs-surface) 60%,
    var(--cs-bg)
  );
  --cs-nav-bg-disabled: color-mix(in srgb, var(--cs-surface) 50%, transparent);
  --cs-nav-height: 64px;
  --cs-nav-transition: var(--cs-transition);
  --cs-nav-transition-fast: calc(var(--cs-transition) * 0.75);
  --cs-nav-transition-base: var(--cs-transition);
  --cs-nav-backdrop-bg: rgba(0, 0, 0, 0.5);
  --cs-nav-backdrop-blur: var(--cs-acrylic-blur);

  /* Typography base tokens */
  --cs-prose-font-size: 1rem;
  --cs-prose-line-height: 1.75;
  --cs-prose-color: color-mix(in srgb, currentColor 85%, transparent);
  --cs-prose-headings-color: color-mix(in srgb, currentColor 95%, transparent);
  --cs-prose-links-color: #3b82f6;
  --cs-prose-links-hover: color-mix(in srgb, #3b82f6 80%, transparent);
  --cs-prose-spacing: 1.5rem;
  --cs-prose-max-width: 65ch;

  /* Typography scale tokens */
  --cs-prose-xs: 0.8125rem;
  --cs-prose-sm: 0.875rem;
  --cs-prose-base: 1rem;
  --cs-prose-lg: 1.125rem;
  --cs-prose-xl: 1.25rem;
  --cs-prose-2xl: 1.5rem;
  --cs-prose-3xl: 1.875rem;
  --cs-prose-4xl: 2.25rem;
  --cs-prose-5xl: 3rem;

  /* Typography weight tokens */
  --cs-prose-weight-light: 300;
  --cs-prose-weight-normal: 400;
  --cs-prose-weight-medium: 500;
  --cs-prose-weight-semibold: 600;
  --cs-prose-weight-bold: 700;
  --cs-prose-weight-extrabold: 800;
  --cs-prose-weight-black: 900;

  /* Typography family tokens */
  --cs-prose-font-sans:
    system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
    'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
  --cs-prose-font-serif: Georgia, 'Times New Roman', Times, serif;
  --cs-prose-font-mono:
    'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New',
    monospace;

  /* Typography spacing tokens */
  --cs-prose-spacing-tight: 1.25rem;
  --cs-prose-spacing-normal: 1.5rem;
  --cs-prose-spacing-relaxed: 1.75rem;
  --cs-prose-spacing-loose: 2rem;

  /* Code styling tokens */
  --cs-prose-code-bg: color-mix(in srgb, currentColor 8%, transparent);
  --cs-prose-code-border: color-mix(in srgb, currentColor 10%, transparent);
  --cs-prose-pre-bg: color-mix(in srgb, currentColor 5%, transparent);
}

/* =========================================================
   BASE LAYER - Core accessibility and utilities
   ========================================================= */

/* Core Accessibility Utilities */
/* =========================================================
   BASE ACCESSIBILITY UTILITIES
   ========================================================= */

/* Screen reader only content */
@utility cs-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Focus management utilities */
@utility cs-focus-ring {
  outline: none;

  &:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-brand, #4f7cff),
      0 0 0 4px color-mix(in srgb, var(--cs-brand, #4f7cff) 20%, transparent);
    transition: box-shadow var(--cs-transition);
  }
}

@utility cs-focus-ring-within {
  &:focus-within {
    box-shadow:
      0 0 0 2px var(--cs-brand, #4f7cff),
      0 0 0 6px color-mix(in srgb, var(--cs-brand, #4f7cff) 22%, transparent);
    border-radius: var(--cs-radius);
  }
}

/* Core Layout Utilities */
/* =========================================================
   BASE LAYOUT UTILITIES
   ========================================================= */

/* Container utilities */
@utility cs-container-fluid {
  width: 100%;
  padding-left: var(--cs-page-pad);
  padding-right: var(--cs-page-pad);
  margin-left: auto;
  margin-right: auto;
  max-width: none;
  background-color: var(--cs-surface, #14161a);
  color: var(--cs-text, #eef1f6);

  @media (min-width: 768px) {
    padding-left: calc(var(--cs-page-pad) + var(--cs-space-2));
    padding-right: calc(var(--cs-page-pad) + var(--cs-space-2));
  }

  @media (min-width: 1200px) {
    max-width: var(--cs-page-max);
  }
}

/* Z-Index utilities - Complete scale */
@utility cs-z-0 {
  z-index: var(--cs-z-0);
  position: relative;
}
@utility cs-z-1 {
  z-index: var(--cs-z-1);
  position: relative;
}
@utility cs-z-base {
  z-index: var(--cs-z-base);
  position: relative;
}
@utility cs-z-10 {
  z-index: var(--cs-z-10);
  position: relative;
}
@utility cs-z-20 {
  z-index: var(--cs-z-20);
  position: relative;
}
@utility cs-z-30 {
  z-index: var(--cs-z-30);
  position: relative;
}
@utility cs-z-popover {
  z-index: var(--cs-z-popover);
  position: relative;
}
@utility cs-z-40 {
  z-index: var(--cs-z-40);
  position: relative;
}
@utility cs-z-tooltip {
  z-index: var(--cs-z-tooltip);
  position: relative;
}
@utility cs-z-50 {
  z-index: var(--cs-z-50);
  position: relative;
}
@utility cs-z-toast {
  z-index: var(--cs-z-toast);
  position: relative;
}
@utility cs-z-60 {
  z-index: var(--cs-z-60);
  position: relative;
}
@utility cs-z-modal {
  z-index: var(--cs-z-modal);
  position: relative;
}
@utility cs-z-70 {
  z-index: var(--cs-z-70);
  position: relative;
}
@utility cs-z-80 {
  z-index: var(--cs-z-80);
  position: relative;
}
@utility cs-z-90 {
  z-index: var(--cs-z-90);
  position: relative;
}
@utility cs-z-100 {
  z-index: var(--cs-z-100);
  position: relative;
}
@utility cs-z-200 {
  z-index: var(--cs-z-200);
  position: relative;
}
@utility cs-z-300 {
  z-index: var(--cs-z-300);
  position: relative;
}
@utility cs-z-400 {
  z-index: var(--cs-z-400);
  position: relative;
}
@utility cs-z-500 {
  z-index: var(--cs-z-500);
  position: relative;
}
@utility cs-z-600 {
  z-index: var(--cs-z-600);
  position: relative;
}
@utility cs-z-700 {
  z-index: var(--cs-z-700);
  position: relative;
}
@utility cs-z-800 {
  z-index: var(--cs-z-800);
  position: relative;
}
@utility cs-z-900 {
  z-index: var(--cs-z-900);
  position: relative;
}
@utility cs-z-999 {
  z-index: var(--cs-z-999);
  position: relative;
}
@utility cs-z-high {
  z-index: var(--cs-z-high);
  position: relative;
}
@utility cs-z-9999 {
  z-index: var(--cs-z-9999);
  position: relative;
}
@utility cs-z-max {
  z-index: var(--cs-z-max);
  position: relative;
}

/* Additional semantic z-index utilities from v0.8.x */
@utility cs-z-drawer {
  z-index: var(--cs-z-drawer);
  position: relative;
}
@utility cs-z-dropdown {
  z-index: var(--cs-z-dropdown);
  position: relative;
}
@utility cs-z-fixed {
  z-index: var(--cs-z-fixed);
  position: fixed;
}
@utility cs-z-nav {
  z-index: var(--cs-z-nav);
  position: relative;
}
@utility cs-z-nav-overlay {
  z-index: var(--cs-z-nav-overlay);
  position: relative;
}
@utility cs-z-orb {
  z-index: var(--cs-z-orb);
  position: relative;
}
@utility cs-z-overlay {
  z-index: var(--cs-z-overlay);
  position: relative;
}
@utility cs-z-sticky {
  z-index: var(--cs-z-sticky);
  position: sticky;
}

/* =========================================================
   LAYOUT UTILITIES
   Page layout and spacing utilities
   ========================================================= */
@utility cs-page-max {
  max-width: var(--cs-page-max);
}
@utility cs-page-pad {
  padding: var(--cs-page-pad);
}

/* Shadow utilities */
@utility cs-shadow-0 {
  box-shadow: var(--cs-shadow-0);
}
@utility cs-shadow-1 {
  box-shadow: var(--cs-shadow-1);
}
@utility cs-shadow-2 {
  box-shadow: var(--cs-shadow-2);
}

/* =========================================================
   COLOR SYSTEM UTILITIES
   Core color utilities from design tokens
   ========================================================= */
@utility cs-bg {
  background-color: var(--cs-bg);
}
@utility cs-surface {
  background-color: var(--cs-surface);
}
@utility cs-surface-2 {
  background-color: var(--cs-surface-2);
}
@utility cs-elev1 {
  background-color: var(--cs-elev1);
}
@utility cs-elev2 {
  background-color: var(--cs-elev2);
}
@utility cs-text {
  color: var(--cs-text);
}
@utility cs-text-muted {
  color: var(--cs-text-muted);
}
@utility cs-text-inverse {
  color: var(--cs-text-inverse);
}
@utility cs-brand {
  color: var(--cs-brand);
}
@utility cs-brand-contrast {
  color: var(--cs-brand-contrast);
}
@utility cs-success {
  color: var(--cs-success);
}
@utility cs-warning {
  color: var(--cs-warning);
}
@utility cs-danger {
  color: var(--cs-danger);
}
@utility cs-info {
  color: var(--cs-info);
}
@utility cs-border {
  border-color: var(--cs-border);
}

/* =========================================================
   COMPONENT SYSTEMS - All UI components
   ========================================================= */

/* Cards System - Feature, product, pricing cards */
/* =========================================================
   CARD SYSTEM COMPONENTS
   Standard card components without glass effects
   ========================================================= */

/* Feature Card Component */
@utility cs-card-feature {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: var(--cs-card-space-lg, 1.5rem);
  background: var(--cs-card-bg, #ffffff);
  border: 1px solid var(--cs-card-border, #e5e7eb);
  border-radius: var(--cs-card-radius, 12px);
  box-shadow: var(--cs-card-shadow, 0 1px 2px rgba(0, 0, 0, 0.05));
  padding: var(--cs-card-space-xl, 2rem);
  text-align: center;
  position: relative;
  transition: var(--cs-card-transition, all 0.2s ease);

  &:hover {
    transform: translateY(var(--cs-card-hover-lift, -2px));
    box-shadow: var(--cs-card-shadow-hover, 0 4px 6px rgba(0, 0, 0, 0.07));
  }
}

/* Product Card Component */
@utility cs-card-product {
  background: var(--cs-card-bg, #ffffff);
  border-radius: var(--cs-card-radius, 12px);
  box-shadow: var(--cs-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.1));
  transition: var(--cs-card-transition, all 0.2s ease);
  overflow: hidden;
  max-width: 20rem;
  display: flex;
  flex-direction: column;
  position: relative;

  &:hover {
    transform: translateY(var(--cs-card-hover-lift, -2px));
    box-shadow: var(--cs-card-shadow-hover, 0 4px 6px rgba(0, 0, 0, 0.1));
  }
}

/* Pricing Card Component */
@utility cs-card-pricing {
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: var(--cs-card-bg, #ffffff);
  border: 2px solid var(--cs-card-border, #e5e7eb);
  border-radius: var(--cs-card-radius, 12px);
  box-shadow: var(--cs-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.1));
  padding: var(--cs-card-space-xl, 2rem);
  text-align: center;
  position: relative;
  transition: var(--cs-card-transition, all 0.2s ease);

  &:hover {
    transform: translateY(var(--cs-card-hover-lift, -4px));
    box-shadow: var(--cs-card-shadow-hover, 0 8px 25px rgba(0, 0, 0, 0.15));
  }
}

/* Testimonial Card Component */
@utility cs-card-testimonial {
  background: var(--cs-card-bg, #ffffff);
  border-radius: var(--cs-card-radius, 12px);
  box-shadow: var(--cs-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.1));
  transition: var(--cs-card-transition, all 0.2s ease);
  overflow: hidden;
  padding: var(--cs-card-padding, 1.5rem);
  max-width: 24rem;
  text-align: center;
  position: relative;

  &:hover {
    box-shadow: var(--cs-card-shadow-hover, 0 4px 6px rgba(0, 0, 0, 0.1));
    transform: translateY(var(--cs-card-hover-lift, -2px));
  }
}

/* =========================================================
   CARD HELPER COMPONENTS
   ========================================================= */

/* Card Image */
@utility cs-card-image {
  width: 100%;
  height: 12rem;
  object-fit: cover;
  background: color-mix(in srgb, currentColor 5%, transparent);
}

/* Card Content */
@utility cs-card-content {
  padding: var(--cs-card-padding, 1.5rem);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

/* Card Title */
@utility cs-card-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--cs-card-text, currentColor);
  margin: 0;
  line-height: 1.3;
}

/* Card Description */
@utility cs-card-description {
  color: var(
    --cs-card-text-muted,
    color-mix(in srgb, currentColor 70%, transparent)
  );
  line-height: 1.6;
  margin: 0;
  flex: 1;
}

/* Card Price */
@utility cs-card-price {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--cs-success, #059669);
  margin: 0;
}

/* Card Actions */
@utility cs-card-actions {
  padding: 0 var(--cs-card-padding, 1.5rem) var(--cs-card-padding, 1.5rem);
  display: flex;
  gap: 0.75rem;
}

/* Testimonial Quote */
@utility cs-testimonial-quote {
  font-size: 1.125rem;
  line-height: 1.6;
  font-style: italic;
  color: var(
    --cs-card-text-muted,
    color-mix(in srgb, currentColor 85%, transparent)
  );
  margin-bottom: 1.5rem;
  position: relative;

  &::before {
    content: '"';
    position: absolute;
    top: -0.5rem;
    left: -0.5rem;
    font-size: 3rem;
    color: color-mix(in srgb, currentColor 20%, transparent);
    line-height: 1;
  }
}

/* Testimonial Author */
@utility cs-testimonial-author {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1rem;
}

/* Primary Button for Cards */
@utility cs-button-primary-card {
  background: linear-gradient(
    135deg,
    var(--cs-brand, #3b82f6),
    color-mix(in srgb, var(--cs-brand, #3b82f6) 80%, #000000)
  );
  color: var(--cs-brand-ink, #ffffff);
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: calc(var(--cs-radius, 10px) / 2);
  font-weight: 600;
  cursor: pointer;
  transition: all var(--cs-transition, 200ms ease);
  flex: 1;

  &:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px
      color-mix(in srgb, var(--cs-brand, #3b82f6) 40%, transparent);
  }

  &:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-brand, #3b82f6),
      0 0 0 4px color-mix(in srgb, var(--cs-brand, #3b82f6) 20%, transparent);
  }
}

/* Forms System - Input, labels, validation */
/* =========================================================
   FORMS SYSTEM COMPONENTS
   Complete form system with modern styling
   ========================================================= */

/* Form Base */
@utility cs-form-base {
  display: flex;
  flex-direction: column;
  gap: var(--cs-space-4, 1rem);
}

/* Input Base */
@utility cs-input-base {
  padding: var(--cs-space-3, 12px) var(--cs-space-4, 16px);
  border: 1px solid var(--cs-form-border, #e5e7eb);
  border-radius: var(--cs-form-radius, 8px);
  transition: var(--cs-transition, 180ms ease);
  background: var(--cs-form-bg, #ffffff);
  color: var(--cs-text, #111827);

  &:focus {
    outline: none;
    border-color: var(--cs-form-focus, #3b82f6);
    box-shadow: 0 0 0 3px
      color-mix(in srgb, var(--cs-form-focus, #3b82f6) 15%, transparent);
  }
}

/* Modern Form */
@utility cs-form-modern {
  display: flex;
  flex-direction: column;
  gap: var(--cs-space-4, 1rem);
  max-width: 32rem;
  margin: 0 auto;
  padding: 2rem;
  background: var(--cs-card-bg, #ffffff);
  border-radius: var(--cs-radius, 10px);
  box-shadow: var(--cs-shadow-1, 0 1px 3px rgba(0, 0, 0, 0.1));
}

/* Modern Input */
@utility cs-input-modern {
  padding: var(--cs-space-3, 12px) var(--cs-space-4, 16px);
  border: 2px solid color-mix(in srgb, currentColor 10%, transparent);
  border-radius: var(--cs-form-radius, 8px);
  transition: var(--cs-transition, 180ms ease);
  background: var(--cs-form-bg, #ffffff);
  font-size: var(--cs-fs-md, 1rem);
  line-height: var(--cs-line, 1.5);
  color: var(--cs-text, #111827);

  &:focus {
    outline: none;
    border-color: var(--cs-form-focus, #3b82f6);
    box-shadow: 0 0 0 3px
      color-mix(in srgb, var(--cs-form-focus, #3b82f6) 20%, transparent);
  }

  &::placeholder {
    color: var(--cs-text-muted, #6b7280);
  }
}

/* Modern Label */
@utility cs-label-modern {
  font-weight: 600;
  color: var(--cs-text, #111827);
  margin-bottom: 0.5rem;
  display: block;
  font-size: var(--cs-fs-sm, 0.875rem);
}

/* Modern Primary Button */
@utility cs-button-primary-modern {
  background: linear-gradient(
    135deg,
    var(--cs-brand, #3b82f6),
    color-mix(in srgb, var(--cs-brand, #3b82f6) 80%, #000000)
  );
  color: var(--cs-brand-ink, #ffffff);
  border: none;
  padding: 0.875rem 1.5rem;
  border-radius: var(--cs-form-radius, 8px);
  font-weight: 600;
  cursor: pointer;
  transition: var(--cs-transition, 180ms ease);
  font-size: var(--cs-fs-md, 1rem);

  &:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px
      color-mix(in srgb, var(--cs-brand, #3b82f6) 30%, transparent);
  }

  &:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-brand, #3b82f6),
      0 0 0 4px color-mix(in srgb, var(--cs-brand, #3b82f6) 20%, transparent);
  }
}

/* Form Group */
@utility cs-form-group {
  position: relative;
  margin-bottom: var(--cs-space-4, 1rem);
}

/* =========================================================
   FORM VALIDATION SYSTEM
   ========================================================= */

/* Form Validation States */
@utility cs-input-validation {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  display: none;
  align-items: center;
  gap: 0.25rem;
}

@utility cs-validation-error {
  display: flex;
  color: var(--cs-danger, #ef4444);
}

@utility cs-validation-success {
  display: flex;
  color: var(--cs-success, #22c55e);
}

@utility cs-validation-icon {
  font-size: 1rem;
  line-height: 1;
}

@utility cs-input-error {
  border-color: var(--cs-danger, #ef4444) !important;
  box-shadow: 0 0 0 3px
    color-mix(in srgb, var(--cs-danger, #ef4444) 20%, transparent) !important;
}

@utility cs-input-success {
  border-color: var(--cs-success, #22c55e) !important;
  box-shadow: 0 0 0 3px
    color-mix(in srgb, var(--cs-success, #22c55e) 20%, transparent) !important;
}

/* =========================================================
   INPUT GROUP UTILITIES
   ========================================================= */

/* Input Group Utilities */
@utility cs-input-group {
  position: relative;
  display: flex;
  align-items: stretch;
}

@utility cs-input-addon {
  display: flex;
  align-items: center;
  padding: 0 0.75rem;
  background: color-mix(in srgb, currentColor 5%, transparent);
  border: 1px solid var(--cs-form-border, #e5e7eb);
  color: var(--cs-text-muted, #6b7280);
  font-size: 0.875rem;
}

@utility cs-input-addon-left {
  border-right: none;
  border-radius: var(--cs-form-radius, 8px) 0 0 var(--cs-form-radius, 8px);
}

@utility cs-input-addon-right {
  border-left: none;
  border-radius: 0 var(--cs-form-radius, 8px) var(--cs-form-radius, 8px) 0;
}

@utility cs-input-with-addon-left {
  border-radius: 0 var(--cs-form-radius, 8px) var(--cs-form-radius, 8px) 0;
  border-left: none;
}

@utility cs-input-with-addon-right {
  border-radius: var(--cs-form-radius, 8px) 0 0 var(--cs-form-radius, 8px);
  border-right: none;
}

/* =========================================================
   FORM LAYOUT UTILITIES
   ========================================================= */

/* Form Layout Utilities */
@utility cs-form-row {
  display: flex;
  gap: var(--cs-space-4, 1rem);
  align-items: flex-start;
}

@utility cs-form-col {
  flex: 1;
  min-width: 0;
}

/* =========================================================
   FORM TOKEN UTILITIES
   Direct form token utilities from design system
   ========================================================= */
@utility cs-form-bg {
  background-color: var(--cs-form-bg);
}
@utility cs-form-border {
  border-color: var(--cs-form-border);
}
@utility cs-form-radius {
  border-radius: var(--cs-form-radius);
}
@utility cs-form-shadow {
  box-shadow: var(--cs-form-shadow);
}
@utility cs-form-focus {
  border-color: var(--cs-form-focus);
}

/* =========================================================
   INTEGRATED SYSTEMS - Complex feature systems
   ========================================================= */

/* Typography System - Prose, callouts, lead text */
/* =========================================================
   TYPOGRAPHY SYSTEM
   ========================================================= */

/* Prose typography system */
.cs-prose {
  color: var(--cs-prose-body);
  max-width: 65ch;
  line-height: 1.75;
  font-size: var(--cs-fs-md);
}

.cs-prose h1,
.cs-prose h2,
.cs-prose h3,
.cs-prose h4,
.cs-prose h5,
.cs-prose h6 {
  color: var(--cs-prose-headings);
  font-weight: 700;
  line-height: 1.25;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.cs-prose h1 {
  font-size: var(--cs-fs-2xl);
}
.cs-prose h2 {
  font-size: var(--cs-fs-xl);
}
.cs-prose h3 {
  font-size: var(--cs-fs-lg);
}

.cs-prose p {
  margin-bottom: 1.25rem;
  line-height: 1.7;
}

.cs-prose a {
  color: var(--cs-prose-links);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.cs-prose a:hover {
  text-decoration: none;
}

.cs-prose strong {
  color: var(--cs-prose-bold);
  font-weight: 600;
}

.cs-prose ul,
.cs-prose ol {
  margin-left: 1.5rem;
  margin-bottom: 1.25rem;
}

.cs-prose li {
  margin-bottom: 0.5rem;
}

.cs-prose blockquote {
  border-left: 4px solid var(--cs-border);
  padding-left: 1.5rem;
  margin: 1.5rem 0;
  font-style: italic;
  color: var(--cs-prose-quotes);
}

.cs-prose code {
  background: color-mix(in srgb, currentColor 8%, transparent);
  padding: 0.25rem 0.375rem;
  border-radius: 0.25rem;
  font-size: 0.875em;
  font-family: var(--cs-font-mono);
}

.cs-prose pre {
  background: var(--cs-elev1);
  padding: 1.25rem;
  border-radius: var(--cs-radius);
  overflow-x: auto;
  margin: 1.5rem 0;
}

.cs-prose pre code {
  background: none;
  padding: 0;
}

.cs-callout {
  padding: var(--cs-space-4) var(--cs-space-6);
  border-radius: var(--cs-radius);
  border-left: 4px solid var(--cs-info);
  background: color-mix(in srgb, var(--cs-info) 5%, var(--cs-surface));
  color: var(--cs-text);
  margin: 1.5rem 0;
}

.cs-callout.cs-callout-info {
  border-left-color: var(--cs-info);
  background: color-mix(in srgb, var(--cs-info) 5%, var(--cs-surface));
}

.cs-callout.cs-callout-warning {
  border-left-color: var(--cs-warning);
  background: color-mix(in srgb, var(--cs-warning) 5%, var(--cs-surface));
}

.cs-callout.cs-callout-danger {
  border-left-color: var(--cs-danger);
  background: color-mix(in srgb, var(--cs-danger) 5%, var(--cs-surface));
}

.cs-callout.cs-callout-success {
  border-left-color: var(--cs-success);
  background: color-mix(in srgb, var(--cs-success) 5%, var(--cs-surface));
}

.cs-lead {
  font-size: var(--cs-fs-lg);
  line-height: 1.6;
  color: var(--cs-text-muted);
}

/* =========================================================
   FLUID TYPOGRAPHY UTILITIES
   Responsive typography using CSS clamp()
   ========================================================= */
@utility cs-fs-xs {
  font-size: var(--cs-fs-xs);
}
@utility cs-fs-sm {
  font-size: var(--cs-fs-sm);
}
@utility cs-fs-md {
  font-size: var(--cs-fs-md);
}
@utility cs-fs-lg {
  font-size: var(--cs-fs-lg);
}
@utility cs-fs-xl {
  font-size: var(--cs-fs-xl);
}
@utility cs-fs-2xl {
  font-size: var(--cs-fs-2xl);
}

/* Line Height utilities */
@utility cs-leading-relaxed {
  line-height: var(--cs-leading-relaxed);
}
@utility cs-leading-loose {
  line-height: var(--cs-leading-loose);
}

/* Text Balance utility */
@utility cs-text-balance {
  text-wrap: var(--cs-text-balance);
}

/* Navigation System - Navbar, links, brand */
/* =========================================================
   NAVIGATION SYSTEM
   ========================================================= */

@utility cs-navbar {
  position: relative;
  z-index: var(--cs-z-40, 40);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background-color: var(--cs-surface, #ffffff);
  border-bottom: 1px solid var(--cs-border, #e5e7eb);
  transition: var(--cs-transition, 180ms ease);
}

@utility cs-navbar-brand {
  display: inline-block;
  padding: 0.3125rem 0;
  margin-right: 1rem;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  color: var(--cs-text, #111827);

  &:hover {
    text-decoration: none;
  }
}

@utility cs-navbar-nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

@utility cs-navbar-link {
  display: inline-block;
  padding: 0.75rem 1rem;
  color: var(--cs-text-muted, #6b7280);
  text-decoration: none;
  font-weight: 500;
  border-radius: 0.375rem;
  transition: var(--cs-transition, 180ms ease);

  &:hover {
    color: var(--cs-text);
    background-color: color-mix(in srgb, currentColor 8%, transparent);
    text-decoration: none;
  }

  &.active {
    color: var(--cs-brand);
    background-color: color-mix(in srgb, var(--cs-brand) 10%, transparent);
  }
}

/* Gradient System - CASOON signature gradients */
/* =========================================================
   COMPREHENSIVE GRADIENT SYSTEM - Complete Collection
   ========================================================= */

/* =========================================================
   Core Gradient Background Utilities
   ========================================================= */

@utility cs-gradient-sunset {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-sunset-start),
    var(--cs-gradient-sunset-mid, var(--cs-gradient-sunset-end)),
    var(--cs-gradient-sunset-end)
  );
}

@utility cs-gradient-ocean {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-ocean-start),
    var(--cs-gradient-ocean-end)
  );
}

@utility cs-gradient-fire {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-fire-start),
    var(--cs-gradient-fire-end)
  );
}

@utility cs-gradient-mint {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-mint-start),
    var(--cs-gradient-mint-end)
  );
}

@utility cs-gradient-purple {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-purple-start),
    var(--cs-gradient-purple-end)
  );
}

@utility cs-gradient-orange {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-orange-start),
    var(--cs-gradient-orange-end)
  );
}

@utility cs-gradient-blue {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-blue-start),
    var(--cs-gradient-blue-end)
  );
}

@utility cs-gradient-pink {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-pink-start),
    var(--cs-gradient-pink-end)
  );
}

/* Custom gradient variants - 2-stop and 3-stop */
@utility cs-gradient-custom-2 {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-custom-start),
    var(--cs-gradient-custom-end)
  );
}

@utility cs-gradient-custom {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-custom-start),
    var(--cs-gradient-custom-mid, var(--cs-gradient-custom-end)),
    var(--cs-gradient-custom-end)
  );
}

@utility cs-gradient-custom-3 {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-custom-start),
    var(--cs-gradient-custom-mid, var(--cs-gradient-custom-end)),
    var(--cs-gradient-custom-end)
  );
}

/* =========================================================
   Directional Fade Gradients
   ========================================================= */

/* Basic directional fades */
@utility cs-gradient-fade-r {
  background: linear-gradient(
    to right,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    var(--cs-gradient-fade-mid, rgba(79, 124, 255, 0.3)) 50%,
    transparent 100%
  );
}

@utility cs-gradient-fade-l {
  background: linear-gradient(
    to left,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    var(--cs-gradient-fade-mid, rgba(79, 124, 255, 0.3)) 50%,
    transparent 100%
  );
}

@utility cs-gradient-fade-b {
  background: linear-gradient(
    to bottom,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    var(--cs-gradient-fade-mid, rgba(79, 124, 255, 0.3)) 50%,
    transparent 100%
  );
}

@utility cs-gradient-fade-t {
  background: linear-gradient(
    to top,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    var(--cs-gradient-fade-mid, rgba(79, 124, 255, 0.3)) 50%,
    transparent 100%
  );
}

/* Diagonal fade variants */
@utility cs-gradient-fade-br {
  background: linear-gradient(
    to bottom right,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 100%
  );
}

@utility cs-gradient-fade-bl {
  background: linear-gradient(
    to bottom left,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 100%
  );
}

@utility cs-gradient-fade-tr {
  background: linear-gradient(
    to top right,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 100%
  );
}

@utility cs-gradient-fade-tl {
  background: linear-gradient(
    to top left,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 100%
  );
}

/* Intensity variants for fade gradients */
@utility cs-gradient-fade-subtle {
  --cs-gradient-fade-color: rgba(79, 124, 255, 0.3);
  --cs-gradient-fade-mid: rgba(79, 124, 255, 0.1);
}

@utility cs-gradient-fade-medium {
  --cs-gradient-fade-color: rgba(79, 124, 255, 0.6);
  --cs-gradient-fade-mid: rgba(79, 124, 255, 0.3);
}

@utility cs-gradient-fade-strong {
  --cs-gradient-fade-color: rgba(79, 124, 255, 0.8);
  --cs-gradient-fade-mid: rgba(79, 124, 255, 0.5);
}

/* Smooth fade with color-mix support */
@utility cs-gradient-fade-smooth {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 100%
  );

  @supports (background: color-mix(in srgb, red 50%, transparent)) {
    background: linear-gradient(
      135deg,
      var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
      color-mix(
          in srgb,
          var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 30%,
          transparent
        )
        60%,
      transparent 100%
    );
  }
}

/* =========================================================
   Radial Gradient Utilities
   ========================================================= */

@utility cs-gradient-radial-fade {
  background: radial-gradient(
    circle at center,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    var(--cs-gradient-fade-mid, rgba(79, 124, 255, 0.2)) 40%,
    transparent 70%
  );
}

@utility cs-gradient-radial-fade-tl {
  background: radial-gradient(
    circle at top left,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 60%
  );
}

@utility cs-gradient-radial-fade-tr {
  background: radial-gradient(
    circle at top right,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 60%
  );
}

@utility cs-gradient-radial-fade-bl {
  background: radial-gradient(
    circle at bottom left,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 60%
  );
}

@utility cs-gradient-radial-fade-br {
  background: radial-gradient(
    circle at bottom right,
    var(--cs-gradient-fade-color, rgba(79, 124, 255, 0.6)) 0%,
    transparent 60%
  );
}

@utility cs-gradient-radial-center {
  background: radial-gradient(circle at center, var(--cs-gradient-stops));
}

@utility cs-gradient-radial-top {
  background: radial-gradient(circle at top, var(--cs-gradient-stops));
}

@utility cs-gradient-radial-bottom {
  background: radial-gradient(circle at bottom, var(--cs-gradient-stops));
}

/* =========================================================
   Conic Gradient Utilities
   ========================================================= */

@utility cs-gradient-conic {
  background: conic-gradient(var(--cs-gradient-stops));
}

@utility cs-gradient-conic-center {
  background: conic-gradient(from 0deg at 50% 50%, var(--cs-gradient-stops));
}

/* =========================================================
   Mesh Gradient (Multi-layer System)
   ========================================================= */

@utility cs-gradient-mesh {
  background:
    radial-gradient(
      at 27% 37%,
      color-mix(in srgb, var(--cs-brand) 50%, transparent) 0px,
      transparent 50%
    ),
    radial-gradient(
      at 97% 21%,
      color-mix(in srgb, var(--cs-info) 50%, transparent) 0px,
      transparent 50%
    ),
    radial-gradient(
      at 52% 99%,
      color-mix(in srgb, var(--cs-success) 50%, transparent) 0px,
      transparent 50%
    ),
    radial-gradient(
      at 10% 29%,
      color-mix(in srgb, var(--cs-warning) 50%, transparent) 0px,
      transparent 50%
    ),
    radial-gradient(
      at 97% 96%,
      color-mix(in srgb, var(--cs-danger) 50%, transparent) 0px,
      transparent 50%
    ),
    radial-gradient(
      at 33% 50%,
      color-mix(in srgb, var(--cs-brand) 50%, transparent) 0px,
      transparent 50%
    ),
    radial-gradient(
      at 79% 53%,
      color-mix(in srgb, var(--cs-info) 50%, transparent) 0px,
      transparent 50%
    );
}

/* =========================================================
   CASOON SIGNATURE GRADIENT PRESETS
   ========================================================= */

/* CASOON Original - Your signature gradient */
@utility cs-bg-casoon-original {
  background:
    radial-gradient(circle at 20% 80%, #1e40af 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, #0891b2 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, #f97316 0%, transparent 50%),
    linear-gradient(135deg, #0f172a, #1e293b);
}

/* CASOON Theme Variations */
@utility cs-bg-casoon-warm {
  background:
    radial-gradient(circle at 25% 75%, #dc2626 0%, transparent 55%),
    radial-gradient(circle at 75% 25%, #f59e0b 0%, transparent 45%),
    radial-gradient(circle at 50% 50%, #ea580c 0%, transparent 60%),
    linear-gradient(135deg, #1f2937, #374151);
}

@utility cs-bg-casoon-cool {
  background:
    radial-gradient(circle at 30% 70%, #3b82f6 0%, transparent 50%),
    radial-gradient(circle at 70% 30%, #06b6d4 0%, transparent 55%),
    radial-gradient(circle at 45% 45%, #8b5cf6 0%, transparent 45%),
    linear-gradient(135deg, #111827, #1f2937);
}

@utility cs-bg-casoon-forest {
  background:
    radial-gradient(circle at 15% 85%, #059669 0%, transparent 50%),
    radial-gradient(circle at 85% 15%, #10b981 0%, transparent 60%),
    radial-gradient(circle at 55% 35%, #065f46 0%, transparent 40%),
    linear-gradient(135deg, #064e3b, #134e4a);
}

/* CASOON Utility Variants */
@utility cs-bg-casoon-animated {
  background:
    radial-gradient(circle at 20% 80%, #1e40af 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, #0891b2 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, #f97316 0%, transparent 50%),
    linear-gradient(135deg, #0f172a, #1e293b);
  background-size: 400% 400%;
  animation: cs-gradient-shift 8s ease-in-out infinite;
}

@utility cs-bg-casoon-subtle {
  background:
    radial-gradient(circle at 20% 80%, #1e40af 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, #0891b2 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, #f97316 0%, transparent 50%),
    linear-gradient(135deg, #0f172a, #1e293b);
  filter: brightness(0.8) saturate(0.7) opacity(0.9);
}

@utility cs-bg-casoon-intense {
  background:
    radial-gradient(circle at 20% 80%, #1e40af 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, #0891b2 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, #f97316 0%, transparent 50%),
    linear-gradient(135deg, #0f172a, #1e293b);
  filter: brightness(1.2) saturate(1.3) contrast(1.1);
}

/* =========================================================
   ADDITIONAL SIGNATURE PRESETS
   ========================================================= */

@utility cs-bg-nebula-purple {
  background:
    radial-gradient(circle at 20% 20%, #8b5cf6 0%, transparent 70%),
    radial-gradient(circle at 80% 80%, #ec4899 0%, transparent 60%),
    radial-gradient(circle at 40% 60%, #3b82f6 0%, transparent 80%),
    linear-gradient(135deg, #0c0a1d, #1e1b3b);
}

@utility cs-bg-deep-ocean {
  background:
    radial-gradient(circle at 25% 25%, #1e40af 0%, transparent 65%),
    radial-gradient(circle at 75% 75%, #0891b2 0%, transparent 55%),
    radial-gradient(circle at 50% 80%, #0e7490 0%, transparent 70%),
    linear-gradient(135deg, #0c1e3d, #164e63);
}

@utility cs-bg-corporate-blue {
  background:
    radial-gradient(circle at 30% 30%, #1e40af 0%, transparent 70%),
    radial-gradient(circle at 70% 70%, #3b82f6 0%, transparent 60%),
    radial-gradient(circle at 50% 50%, #1d4ed8 0%, transparent 80%),
    linear-gradient(135deg, #1e3a8a, #1e40af);
}

/* =========================================================
   GRADIENT TEXT UTILITIES
   ========================================================= */

@utility cs-gradient-text {
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@utility cs-gradient-text-sunset {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-sunset-start),
    var(--cs-gradient-sunset-mid, var(--cs-gradient-sunset-end)),
    var(--cs-gradient-sunset-end)
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@utility cs-gradient-text-ocean {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-ocean-start),
    var(--cs-gradient-ocean-end)
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@utility cs-gradient-text-fire {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-fire-start),
    var(--cs-gradient-fire-end)
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@utility cs-gradient-text-custom-2 {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-custom-start),
    var(--cs-gradient-custom-end)
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@utility cs-gradient-text-custom {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-custom-start),
    var(--cs-gradient-custom-mid, var(--cs-gradient-custom-end)),
    var(--cs-gradient-custom-end)
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@utility cs-gradient-text-custom-3 {
  background: linear-gradient(
    135deg,
    var(--cs-gradient-custom-start),
    var(--cs-gradient-custom-mid, var(--cs-gradient-custom-end)),
    var(--cs-gradient-custom-end)
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* =========================================================
   GRADIENT ANIMATION UTILITIES
   ========================================================= */

@utility cs-gradient-animate {
  background-size: 400% 400%;
  animation: cs-gradient-shift var(--cs-anim-gradient-duration)
    var(--cs-anim-gradient-ease) var(--cs-anim-gradient-iteration);
}

@utility cs-gradient-shift-x {
  background-size: 200% 100%;
  animation: cs-gradient-shift-x 3s linear infinite;
}

@utility cs-gradient-shift-y {
  background-size: 100% 200%;
  animation: cs-gradient-shift-y 3s linear infinite;
}

@utility cs-gradient-rotate {
  background-size: 200% 200%;
  animation: cs-gradient-rotate 8s linear infinite;
}

@utility cs-gradient-pulse {
  animation: cs-gradient-pulse 2s ease-in-out infinite;
  transform-origin: center;
}

@utility cs-gradient-pulse-slow {
  animation: cs-gradient-pulse-slow 4s ease-in-out infinite;
}

@utility cs-gradient-breathe {
  animation: cs-gradient-breathe 3s ease-in-out infinite;
  transform-origin: center;
}

@utility cs-gradient-wave {
  background-size:
    300% 300%,
    300% 300%;
  animation: cs-gradient-wave 6s ease-in-out infinite;
}

@utility cs-gradient-shimmer {
  background-size: 200% 100%;
  animation: cs-gradient-shimmer 2s linear infinite;
}

/* Speed and direction variants */
@utility cs-gradient-animate-slow {
  animation-duration: 8s;
}

@utility cs-gradient-animate-fast {
  animation-duration: 1.5s;
}

@utility cs-gradient-animate-reverse {
  animation-direction: reverse;
}

@utility cs-gradient-animate-alternate {
  animation-direction: alternate;
}

@utility cs-gradient-animate-hover-pause {
  &:hover {
    animation-play-state: paused;
  }
}

/* =========================================================
   ADVANCED GRADIENT EFFECTS
   ========================================================= */

@utility cs-gradient-shine {
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.05) 0%,
    rgba(255, 255, 255, 0.15) 50%,
    rgba(255, 255, 255, 0.05) 100%
  );
  background-size: 200% 100%;
  animation: cs-gradient-shine 3s linear infinite;
}

@utility cs-hover-ripple {
  position: relative;
  overflow: hidden;
  isolation: isolate;

  &::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200px;
    height: 200px;
    background: radial-gradient(
      circle,
      rgba(255, 255, 255, 0.4) 10%,
      transparent 80%
    );
    transform: translate(-50%, -50%) scale(0);
    opacity: 0;
    pointer-events: none;
    border-radius: 9999px;
    animation: none;
    z-index: 1;
  }

  &:active::after {
    animation: cs-hover-ripple 0.6s ease-out;
  }
}

@utility cs-gradient-ambient-rotate {
  background: conic-gradient(from 0deg, var(--cs-gradient-stops));
  animation: cs-ambient-rotate 20s linear infinite;
}

@utility cs-gradient-zoom-fade {
  animation: cs-gradient-zoom-fade 800ms var(--cs-anim-ease-in-out) both;
}

/* =========================================================
   GRADIENT BORDER COMPONENT
   ========================================================= */

@utility cs-gradient-border {
  position: relative;
  border-radius: 0.5rem;
  background: linear-gradient(
    135deg,
    var(--cs-gradient-ocean-start),
    var(--cs-gradient-ocean-end)
  );

  &::before {
    content: '';
    position: absolute;
    inset: 1px;
    background: var(--cs-gradient-white);
    border-radius: calc(0.5rem - 1px);
    z-index: 0;
  }

  & > * {
    position: relative;
    z-index: 1;
  }
}

/* =========================================================
   ANIMATION KEYFRAMES
   ========================================================= */

@keyframes cs-gradient-shift {
  0%,
  100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

@keyframes cs-gradient-shift-x {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 100% 50%;
  }
}

@keyframes cs-gradient-shift-y {
  0% {
    background-position: 50% 0%;
  }
  100% {
    background-position: 50% 100%;
  }
}

@keyframes cs-gradient-rotate {
  0% {
    background-position: 0% 0%;
  }
  25% {
    background-position: 100% 0%;
  }
  50% {
    background-position: 100% 100%;
  }
  75% {
    background-position: 0% 100%;
  }
  100% {
    background-position: 0% 0%;
  }
}

@keyframes cs-gradient-pulse {
  0%,
  100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.05);
  }
}

@keyframes cs-gradient-pulse-slow {
  0%,
  100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.9;
  }
}

@keyframes cs-gradient-breathe {
  0%,
  100% {
    filter: brightness(0.8) saturate(1.2);
    transform: scale(1);
  }
  50% {
    filter: brightness(1.2) saturate(1.8);
    transform: scale(1.02);
  }
}

@keyframes cs-gradient-wave {
  0% {
    background-position:
      0% 50%,
      100% 50%;
  }
  25% {
    background-position:
      50% 0%,
      50% 100%;
  }
  50% {
    background-position:
      100% 50%,
      0% 50%;
  }
  75% {
    background-position:
      50% 100%,
      50% 0%;
  }
  100% {
    background-position:
      0% 50%,
      100% 50%;
  }
}

@keyframes cs-gradient-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

@keyframes cs-gradient-shine {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

@keyframes cs-hover-ripple {
  0% {
    transform: translate(-50%, -50%) scale(0);
    opacity: 0.8;
  }
  100% {
    transform: translate(-50%, -50%) scale(2);
    opacity: 0;
  }
}

@keyframes cs-ambient-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes cs-gradient-zoom-fade {
  0% {
    opacity: 0;
    transform: scale(1.05);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* =========================================================
   ACCESSIBILITY & PERFORMANCE
   ========================================================= */

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .cs-bg-casoon-animated,
  .cs-gradient-animate,
  .cs-gradient-shift-x,
  .cs-gradient-shift-y,
  .cs-gradient-rotate,
  .cs-gradient-pulse,
  .cs-gradient-pulse-slow,
  .cs-gradient-breathe,
  .cs-gradient-wave,
  .cs-gradient-shimmer,
  .cs-gradient-shine,
  .cs-gradient-ambient-rotate,
  .cs-gradient-zoom-fade {
    animation: none !important;
    background-size: 100% 100% !important;
  }

  .cs-hover-ripple::after {
    animation: none !important;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .cs-bg-casoon-original,
  .cs-bg-casoon-warm,
  .cs-bg-casoon-cool,
  .cs-bg-casoon-forest,
  .cs-bg-casoon-animated,
  .cs-bg-casoon-subtle,
  .cs-bg-casoon-intense {
    filter: contrast(1.5) brightness(1.2) !important;
  }
}

/* High-contrast/forced colors mode for gradient border */
@media (prefers-contrast: more) {
  .cs-gradient-border::before {
    outline: 1px solid currentColor;
    outline-offset: -1px;
  }
}

@media (forced-colors: active) {
  .cs-gradient-border {
    forced-color-adjust: none;
    background: CanvasText;
  }

  .cs-gradient-border::before {
    background: Canvas;
    border: 1px solid CanvasText;
  }
}

/* Performance optimizations for mobile */
@media (max-width: 480px) {
  .cs-gradient-animate {
    animation-duration: calc(var(--cs-anim-gradient-duration) * 1.25);
  }
}

/* TEMPORARY: Remaining systems inline until extracted */

/* SCROLL SYSTEM */
@utility cs-scrollbar-thin {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, currentColor 20%, transparent) transparent;

  &::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }

  &::-webkit-scrollbar-track {
    background: transparent;
  }

  &::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, currentColor 20%, transparent);
    border-radius: 4px;

    &:hover {
      background: color-mix(in srgb, currentColor 35%, transparent);
    }
  }

  &::-webkit-scrollbar-corner {
    background: transparent;
  }
}

@utility cs-scrollbar-custom {
  scrollbar-width: auto;
  scrollbar-color: var(--cs-brand)
    color-mix(in srgb, var(--cs-brand) 10%, transparent);

  &::-webkit-scrollbar {
    width: 12px;
    height: 12px;
  }

  &::-webkit-scrollbar-track {
    background: color-mix(in srgb, var(--cs-brand) 5%, transparent);
    border-radius: 6px;
  }

  &::-webkit-scrollbar-thumb {
    background: var(--cs-brand);
    border-radius: 6px;
    border: 2px solid color-mix(in srgb, var(--cs-brand) 5%, transparent);

    &:hover {
      background: color-mix(in srgb, var(--cs-brand) 85%, #000);
    }
  }
}

@utility cs-scroll-snap-x {
  scroll-snap-type: x mandatory;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

@utility cs-scroll-snap-y {
  scroll-snap-type: y mandatory;
  overflow-y: auto;
  overscroll-behavior-y: contain;
}

@utility cs-snap-start {
  scroll-snap-align: start;
}
@utility cs-snap-center {
  scroll-snap-align: center;
}
@utility cs-snap-end {
  scroll-snap-align: end;
}
@utility cs-scroll-smooth {
  scroll-behavior: smooth;
}

/* LOADING SYSTEM */
@utility cs-spinner {
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid color-mix(in srgb, currentColor 20%, transparent);
  border-radius: 50%;
  border-top-color: currentColor;
  animation: cs-spin 0.8s linear infinite;
}

@utility cs-spinner-lg {
  width: 2rem;
  height: 2rem;
  border-width: 3px;
}

@utility cs-spinner-sm {
  width: 1rem;
  height: 1rem;
  border-width: 2px;
}

@keyframes cs-spin {
  to {
    transform: rotate(360deg);
  }
}

@utility cs-pulse {
  animation: cs-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes cs-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@utility cs-skeleton {
  background: linear-gradient(
    90deg,
    color-mix(in srgb, currentColor 10%, transparent) 0%,
    color-mix(in srgb, currentColor 18%, transparent) 50%,
    color-mix(in srgb, currentColor 10%, transparent) 100%
  );
  background-size: 200% 100%;
  animation: cs-skeleton 1.5s ease-in-out infinite;
  border-radius: 0.375rem;
}

@keyframes cs-skeleton {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

/* MICRO INTERACTIONS */
@utility cs-hover-lift {
  transition: transform var(--cs-transition);

  &:hover {
    transform: translateY(-2px);
  }
}

@utility cs-hover-scale {
  transition: transform var(--cs-transition);

  &:hover {
    transform: scale(1.02);
  }
}

@utility cs-hover-glow {
  transition: box-shadow var(--cs-transition);

  &:hover {
    box-shadow: 0 8px 25px color-mix(in srgb, var(--cs-brand) 25%, transparent);
  }
}

@utility cs-interactive {
  transition: all var(--cs-transition);
  cursor: pointer;

  &:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px color-mix(in srgb, currentColor 15%, transparent);
  }

  &:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px color-mix(in srgb, currentColor 20%, transparent);
  }
}

/* =========================================================
   RESPONSIVE & ACCESSIBILITY
   ========================================================= */

/* Print Optimizations */
@media print {
  .cs-prose {
    color: black !important;
  }

  .cs-navbar {
    display: none !important;
  }

  .cs-card {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
  }
}

/* Reduced Motion Preferences */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* ===== GLASS ===== */
/*!
 * CASOON Atlas Glass - Complete Glassmorphism System for Tailwind v4
 * Version: 0.0.1
 * Repository: https://github.com/casoon/atlas
 * Author: Jörn Seidel (joern.seidel@casoon.de)
 * License: MIT
 *
 * Advanced glassmorphism effects with backdrop-filter support
 * Part of CASOON Atlas UI effects library
 *
 * Usage: @import "@casoon/atlas-styles/glass";
 * Package: @casoon/atlas-styles
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/*!
 * CASOON Atlas Glass - Complete Glassmorphism System for Tailwind v4
 * Pure Glass Effects & Glass Cards
 *
 * Features:
 * - Glass Backdrop Filter Effects
 * - Glass Background & Border Utilities
 * - Glass Cards (with backdrop-filter)
 * - Glass UI Components (buttons, nav, etc.)
 * - Glass Animation Effects
 * - SSR-safe, tree-shakeable, framework-agnostic
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/* =========================================================
   GLASS DESIGN TOKENS & THEME
   ========================================================= */
@theme {
  /* === GLASS COLOR SYSTEM === */
  --cs-glass-white: #ffffff;
  --cs-glass-black: #000000;
  --cs-glass-blue: #3b82f6;
  --cs-glass-purple: #9333ea;
  --cs-glass-green: #22c55e;
  --cs-glass-pink: #ec4899;
  --cs-glass-amber: #f59e0b;

  /* Glass background opacity tokens - Complete range */
  --cs-glass-bg-xs: rgba(255, 255, 255, 0.02);
  --cs-glass-bg-sm: rgba(255, 255, 255, 0.07);
  --cs-glass-bg-light: rgba(255, 255, 255, 0.1);
  --cs-glass-bg-weak: rgba(255, 255, 255, 0.05);
  --cs-glass-bg-md: rgba(255, 255, 255, 0.12);
  --cs-glass-bg-medium: rgba(255, 255, 255, 0.15);
  --cs-glass-bg-lg: rgba(255, 255, 255, 0.18);
  --cs-glass-bg-strong: rgba(255, 255, 255, 0.2);
  --cs-glass-bg-xl: rgba(255, 255, 255, 0.25);
  --cs-glass-bg-2xl: rgba(255, 255, 255, 0.35);
  --cs-glass-bg-3xl: rgba(255, 255, 255, 0.45);
  --cs-glass-bg-4xl: rgba(255, 255, 255, 0.6);
  --cs-glass-bg-5xl: rgba(255, 255, 255, 0.75);

  /* Dark glass backgrounds - Complete range */
  --cs-glass-bg-dark: rgba(0, 0, 0, 0.1);
  --cs-glass-bg-dark-xs: rgba(0, 0, 0, 0.02);
  --cs-glass-bg-dark-sm: rgba(0, 0, 0, 0.07);
  --cs-glass-bg-dark-md: rgba(0, 0, 0, 0.12);
  --cs-glass-bg-dark-lg: rgba(0, 0, 0, 0.18);
  --cs-glass-bg-dark-strong: rgba(0, 0, 0, 0.2);
  --cs-glass-bg-dark-xl: rgba(0, 0, 0, 0.25);
  --cs-glass-bg-dark-2xl: rgba(0, 0, 0, 0.35);
  --cs-glass-bg-dark-3xl: rgba(0, 0, 0, 0.45);
  --cs-glass-bg-dark-4xl: rgba(0, 0, 0, 0.6);
  --cs-glass-bg-dark-5xl: rgba(0, 0, 0, 0.75);

  /* Colored glass backgrounds */
  --cs-glass-bg-blue: rgba(59, 130, 246, 0.1);
  --cs-glass-bg-purple: rgba(147, 51, 234, 0.1);
  --cs-glass-bg-green: rgba(34, 197, 94, 0.1);
  --cs-glass-bg-pink: rgba(236, 72, 153, 0.1);
  --cs-glass-bg-amber: rgba(245, 158, 11, 0.1);

  /* Glass border opacity tokens - Complete range */
  --cs-glass-border-xs: rgba(255, 255, 255, 0.05);
  --cs-glass-border-sm: rgba(255, 255, 255, 0.08);
  --cs-glass-border-light: rgba(255, 255, 255, 0.1);
  --cs-glass-border-md: rgba(255, 255, 255, 0.15);
  --cs-glass-border-medium: rgba(255, 255, 255, 0.2);
  --cs-glass-border-lg: rgba(255, 255, 255, 0.25);
  --cs-glass-border-strong: rgba(255, 255, 255, 0.3);
  --cs-glass-border-xl: rgba(255, 255, 255, 0.4);
  --cs-glass-border-2xl: rgba(255, 255, 255, 0.5);
  --cs-glass-border-3xl: rgba(255, 255, 255, 0.65);

  /* Colored glass borders */
  --cs-glass-border-blue: rgba(59, 130, 246, 0.2);
  --cs-glass-border-purple: rgba(147, 51, 234, 0.2);
  --cs-glass-border-green: rgba(34, 197, 94, 0.2);
  --cs-glass-border-pink: rgba(236, 72, 153, 0.2);
  --cs-glass-border-amber: rgba(245, 158, 11, 0.2);

  /* Glass effects tokens */
  --cs-glass-blur-sm: blur(8px);
  --cs-glass-blur: blur(16px);
  --cs-glass-blur-lg: blur(24px);
  --cs-glass-blur-xl: blur(32px);

  --cs-glass-radius-sm: 0.25rem;
  --cs-glass-radius: 0.5rem;
  --cs-glass-radius-lg: 0.75rem;
  --cs-glass-radius-xl: 1rem;
  --cs-glass-radius-2xl: 1.5rem;
  --cs-glass-radius-3xl: 2rem;

  /* Glass shadow tokens */
  --cs-glass-shadow-light: rgba(0, 0, 0, 0.05);
  --cs-glass-shadow-medium: rgba(0, 0, 0, 0.1);
  --cs-glass-shadow-strong: rgba(0, 0, 0, 0.15);
  --cs-glass-shadow-xl: rgba(0, 0, 0, 0.2);

  --cs-glass-shadow-sm-def: 0 1px 2px var(--cs-glass-shadow-light);
  --cs-glass-shadow-def: 0 8px 32px var(--cs-glass-shadow-medium);
  --cs-glass-shadow-lg-def: 0 20px 40px var(--cs-glass-shadow-strong);
  --cs-glass-shadow-xl-def: 0 25px 50px var(--cs-glass-shadow-xl);

  /* Glass misc tokens */
  --cs-glass-transition: 0.3s;
  --cs-glass-tooltip-bg: rgba(0, 0, 0, 0.8);
  --cs-glass-bg-hover: rgba(255, 255, 255, 0.15);
  --cs-glass-bg-light-hover: rgba(255, 255, 255, 0.25);
  --cs-glass-bg-contrast: rgba(255, 255, 255, 0.2);
  --cs-glass-bg-dark-contrast: rgba(0, 0, 0, 0.2);
  --cs-glass-bg-fallback: rgba(255, 255, 255, 0.25);
  --cs-glass-bg-dark-fallback: rgba(0, 0, 0, 0.25);
  --cs-glass-bg-blue-fallback: rgba(59, 130, 246, 0.2);
  --cs-glass-bg-purple-fallback: rgba(147, 51, 234, 0.2);
  --cs-glass-bg-green-fallback: rgba(34, 197, 94, 0.2);
  --cs-glass-bg-pink-fallback: rgba(236, 72, 153, 0.2);
  --cs-glass-bg-amber-fallback: rgba(245, 158, 11, 0.2);
  --cs-glass-focus-ring: rgba(59, 130, 246, 0.5);
  --cs-glass-backdrop-filter-extra: none;
}

/* =========================================================
   CORE GLASS UTILITIES
   Base glass backdrop-filter utilities
   ========================================================= */

/* Primary glass utility */
@utility cs-glass {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  transition: all var(--cs-glass-transition) ease;
}

/* Glass size variants - all intensity levels */
@utility cs-glass-xs {
  background: var(--cs-glass-bg-xs);
  border: 1px solid var(--cs-glass-border-xs);
  border-radius: var(--cs-glass-radius-sm);
  backdrop-filter: var(--cs-glass-blur-sm);
  -webkit-backdrop-filter: var(--cs-glass-blur-sm);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-sm {
  background: var(--cs-glass-bg-sm);
  border: 1px solid var(--cs-glass-border-sm);
  border-radius: var(--cs-glass-radius-sm);
  backdrop-filter: var(--cs-glass-blur-sm);
  -webkit-backdrop-filter: var(--cs-glass-blur-sm);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-md {
  background: var(--cs-glass-bg-md);
  border: 1px solid var(--cs-glass-border-md);
  border-radius: var(--cs-glass-radius);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-lg {
  background: var(--cs-glass-bg-lg);
  border: 1px solid var(--cs-glass-border-lg);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-xl {
  background: var(--cs-glass-bg-xl);
  border: 1px solid var(--cs-glass-border-xl);
  border-radius: var(--cs-glass-radius-xl);
  backdrop-filter: var(--cs-glass-blur-lg);
  -webkit-backdrop-filter: var(--cs-glass-blur-lg);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-2xl {
  background: var(--cs-glass-bg-2xl);
  border: 1px solid var(--cs-glass-border-2xl);
  border-radius: var(--cs-glass-radius-2xl);
  backdrop-filter: var(--cs-glass-blur-lg);
  -webkit-backdrop-filter: var(--cs-glass-blur-lg);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-3xl {
  background: var(--cs-glass-bg-3xl);
  border: 1px solid var(--cs-glass-border-3xl);
  border-radius: var(--cs-glass-radius-3xl);
  backdrop-filter: var(--cs-glass-blur-xl);
  -webkit-backdrop-filter: var(--cs-glass-blur-xl);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-4xl {
  background: var(--cs-glass-bg-4xl);
  border: 2px solid var(--cs-glass-border-3xl);
  border-radius: var(--cs-glass-radius-3xl);
  backdrop-filter: var(--cs-glass-blur-xl);
  -webkit-backdrop-filter: var(--cs-glass-blur-xl);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-5xl {
  background: var(--cs-glass-bg-5xl);
  border: 2px solid var(--cs-glass-border-3xl);
  border-radius: var(--cs-glass-radius-3xl);
  backdrop-filter: var(--cs-glass-blur-xl);
  -webkit-backdrop-filter: var(--cs-glass-blur-xl);
  transition: all var(--cs-glass-transition) ease;
}

/* Dark glass variant */
@utility cs-glass-dark {
  background: var(--cs-glass-bg-dark);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  transition: all var(--cs-glass-transition) ease;
}

/* =========================================================
   GLASS BACKGROUND UTILITIES
   Different opacity levels for glass backgrounds
   ========================================================= */
@utility cs-glass-bg-xs {
  background: var(--cs-glass-bg-xs);
}
@utility cs-glass-bg-sm {
  background: var(--cs-glass-bg-sm);
}
@utility cs-glass-bg-light {
  background: var(--cs-glass-bg-light);
}
@utility cs-glass-bg-weak {
  background: var(--cs-glass-bg-weak);
}
@utility cs-glass-bg-md {
  background: var(--cs-glass-bg-md);
}
@utility cs-glass-bg-medium {
  background: var(--cs-glass-bg-medium);
}
@utility cs-glass-bg-lg {
  background: var(--cs-glass-bg-lg);
}
@utility cs-glass-bg-strong {
  background: var(--cs-glass-bg-strong);
}
@utility cs-glass-bg-xl {
  background: var(--cs-glass-bg-xl);
}
@utility cs-glass-bg-2xl {
  background: var(--cs-glass-bg-2xl);
}
@utility cs-glass-bg-3xl {
  background: var(--cs-glass-bg-3xl);
}
@utility cs-glass-bg-4xl {
  background: var(--cs-glass-bg-4xl);
}
@utility cs-glass-bg-5xl {
  background: var(--cs-glass-bg-5xl);
}

/* Dark glass backgrounds */
@utility cs-glass-bg-dark {
  background: var(--cs-glass-bg-dark);
}
@utility cs-glass-bg-dark-xs {
  background: var(--cs-glass-bg-dark-xs);
}
@utility cs-glass-bg-dark-sm {
  background: var(--cs-glass-bg-dark-sm);
}
@utility cs-glass-bg-dark-md {
  background: var(--cs-glass-bg-dark-md);
}
@utility cs-glass-bg-dark-lg {
  background: var(--cs-glass-bg-dark-lg);
}
@utility cs-glass-bg-dark-strong {
  background: var(--cs-glass-bg-dark-strong);
}
@utility cs-glass-bg-dark-xl {
  background: var(--cs-glass-bg-dark-xl);
}
@utility cs-glass-bg-dark-2xl {
  background: var(--cs-glass-bg-dark-2xl);
}
@utility cs-glass-bg-dark-3xl {
  background: var(--cs-glass-bg-dark-3xl);
}
@utility cs-glass-bg-dark-4xl {
  background: var(--cs-glass-bg-dark-4xl);
}
@utility cs-glass-bg-dark-5xl {
  background: var(--cs-glass-bg-dark-5xl);
}

/* Colored glass backgrounds */
@utility cs-glass-bg-blue {
  background: var(--cs-glass-bg-blue);
}
@utility cs-glass-bg-purple {
  background: var(--cs-glass-bg-purple);
}
@utility cs-glass-bg-green {
  background: var(--cs-glass-bg-green);
}
@utility cs-glass-bg-pink {
  background: var(--cs-glass-bg-pink);
}
@utility cs-glass-bg-amber {
  background: var(--cs-glass-bg-amber);
}

/* =========================================================
   GLASS COLOR UTILITIES
   Complete glass effects with specific color themes
   ========================================================= */
@utility cs-glass-white {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  color: var(--cs-glass-black);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-black {
  background: var(--cs-glass-bg-dark);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  color: var(--cs-glass-white);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-blue {
  background: var(--cs-glass-bg-blue);
  border: 1px solid var(--cs-glass-border-blue);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  color: var(--cs-glass-blue);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-purple {
  background: var(--cs-glass-bg-purple);
  border: 1px solid var(--cs-glass-border-purple);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  color: var(--cs-glass-purple);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-green {
  background: var(--cs-glass-bg-green);
  border: 1px solid var(--cs-glass-border-green);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  color: var(--cs-glass-green);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-pink {
  background: var(--cs-glass-bg-pink);
  border: 1px solid var(--cs-glass-border-pink);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  color: var(--cs-glass-pink);
  transition: all var(--cs-glass-transition) ease;
}

@utility cs-glass-amber {
  background: var(--cs-glass-bg-amber);
  border: 1px solid var(--cs-glass-border-amber);
  border-radius: var(--cs-glass-radius-lg);
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
  color: var(--cs-glass-amber);
  transition: all var(--cs-glass-transition) ease;
}

/* =========================================================
   GLASS BORDER UTILITIES
   ========================================================= */
@utility cs-glass-border-xs {
  border-color: var(--cs-glass-border-xs);
}
@utility cs-glass-border-sm {
  border-color: var(--cs-glass-border-sm);
}
@utility cs-glass-border-light {
  border-color: var(--cs-glass-border-light);
}
@utility cs-glass-border-md {
  border-color: var(--cs-glass-border-md);
}
@utility cs-glass-border-medium {
  border-color: var(--cs-glass-border-medium);
}
@utility cs-glass-border-lg {
  border-color: var(--cs-glass-border-lg);
}
@utility cs-glass-border-strong {
  border-color: var(--cs-glass-border-strong);
}
@utility cs-glass-border-xl {
  border-color: var(--cs-glass-border-xl);
}
@utility cs-glass-border-2xl {
  border-color: var(--cs-glass-border-2xl);
}
@utility cs-glass-border-3xl {
  border-color: var(--cs-glass-border-3xl);
}

/* Colored glass borders */
@utility cs-glass-border-blue {
  border-color: var(--cs-glass-border-blue);
}
@utility cs-glass-border-purple {
  border-color: var(--cs-glass-border-purple);
}
@utility cs-glass-border-green {
  border-color: var(--cs-glass-border-green);
}
@utility cs-glass-border-pink {
  border-color: var(--cs-glass-border-pink);
}
@utility cs-glass-border-amber {
  border-color: var(--cs-glass-border-amber);
}

/* =========================================================
   GLASS BLUR UTILITIES
   ========================================================= */
@utility cs-glass-blur-sm {
  backdrop-filter: var(--cs-glass-blur-sm);
  -webkit-backdrop-filter: var(--cs-glass-blur-sm);
}

@utility cs-glass-blur {
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
}

@utility cs-glass-blur-lg {
  backdrop-filter: var(--cs-glass-blur-lg);
  -webkit-backdrop-filter: var(--cs-glass-blur-lg);
}

@utility cs-glass-blur-xl {
  backdrop-filter: var(--cs-glass-blur-xl);
  -webkit-backdrop-filter: var(--cs-glass-blur-xl);
}

/* =========================================================
   GLASS RADIUS UTILITIES
   ========================================================= */
@utility cs-glass-radius-sm {
  border-radius: var(--cs-glass-radius-sm);
}
@utility cs-glass-radius {
  border-radius: var(--cs-glass-radius);
}
@utility cs-glass-radius-lg {
  border-radius: var(--cs-glass-radius-lg);
}
@utility cs-glass-radius-xl {
  border-radius: var(--cs-glass-radius-xl);
}
@utility cs-glass-radius-2xl {
  border-radius: var(--cs-glass-radius-2xl);
}
@utility cs-glass-radius-3xl {
  border-radius: var(--cs-glass-radius-3xl);
}

/* Glass rounded utilities - aliases for radius utilities */
@utility cs-glass-rounded {
  border-radius: var(--cs-glass-radius);
}
@utility cs-glass-rounded-sm {
  border-radius: var(--cs-glass-radius-sm);
}
@utility cs-glass-rounded-lg {
  border-radius: var(--cs-glass-radius-lg);
}
@utility cs-glass-rounded-xl {
  border-radius: var(--cs-glass-radius-xl);
}
@utility cs-glass-rounded-2xl {
  border-radius: var(--cs-glass-radius-2xl);
}
@utility cs-glass-rounded-3xl {
  border-radius: var(--cs-glass-radius-3xl);
}

/* =========================================================
   GLASS SHADOW UTILITIES
   ========================================================= */
@utility cs-glass-shadow-sm {
  box-shadow: var(--cs-glass-shadow-sm-def);
}
@utility cs-glass-shadow {
  box-shadow: var(--cs-glass-shadow-def);
}
@utility cs-glass-shadow-lg {
  box-shadow: var(--cs-glass-shadow-lg-def);
}
@utility cs-glass-shadow-xl {
  box-shadow: var(--cs-glass-shadow-xl-def);
}

/* =========================================================
   GLASS ADD-ON UTILITIES
   ========================================================= */

/* Acrylic look (adds saturation/contrast on the backdrop) */
@utility cs-glass-acrylic {
  --cs-glass-backdrop-filter-extra: saturate(135%) contrast(110%);
  backdrop-filter: var(--cs-glass-backdrop-filter-extra) var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-backdrop-filter-extra)
    var(--cs-glass-blur);
}

/* Frosted edge (inner highlight for stronger glass rim) */
@utility cs-glass-frosted-edge {
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, var(--cs-glass-white) 40%, transparent),
    var(--cs-glass-shadow-def);
}

/* Noise/grain overlay */
@utility cs-glass-noise {
  position: relative;
  isolation: isolate;
  &::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    mix-blend-mode: overlay;
    opacity: 0.07;
    background-image: var(--cs-glass-noise-img, none);
    background-size: 200px 200px;
    z-index: 1;
  }
}

/* Text contrast helpers for content placed on glass */
@utility cs-glass-on {
  color: var(--cs-glass-on, #0f172a);
}
@utility cs-glass-on-invert {
  color: var(--cs-glass-on-invert, #ffffff);
}

/* Disabled/read-only helper for interactive glass */
@utility cs-glass-disabled {
  opacity: 0.6;
  filter: grayscale(20%);
  pointer-events: none;
}

/* Elevation helpers (z-index layering for overlays on glass) */
@utility cs-glass-elev-1 {
  z-index: 10;
}
@utility cs-glass-elev-2 {
  z-index: 20;
}
@utility cs-glass-elev-3 {
  z-index: 30;
}
@utility cs-glass-elev-4 {
  z-index: 40;
}
@utility cs-glass-elev-5 {
  z-index: 50;
}

/* Blend mode utilities (creative tints over imagery) */
@utility cs-glass-blend-overlay {
  mix-blend-mode: overlay;
}
@utility cs-glass-blend-screen {
  mix-blend-mode: screen;
}
@utility cs-glass-blend-multiply {
  mix-blend-mode: multiply;
}

/* Layout helpers for sticky bars & performance hints */
@utility cs-glass-sticky {
  position: sticky;
  top: 0;
}
@utility cs-glass-will-change {
  will-change: transform, backdrop-filter;
}

/* Isolation utility for Canvas/Background-Layering issues */
@utility cs-glass-isolate {
  isolation: isolate;
}

/* =========================================================
   GLASS INTERACTIVE STATE UTILITIES
   Hover and focus states for glass elements
   ========================================================= */
@utility cs-glass-bg-hover {
  background: var(--cs-glass-bg-hover);
}
@utility cs-glass-bg-light-hover {
  background: var(--cs-glass-bg-light-hover);
}
@utility cs-glass-focus-ring {
  outline: 2px solid var(--cs-glass-focus-ring);
  outline-offset: 2px;
}

/* =========================================================
   GLASS CARDS SYSTEM
   Cards with glass backdrop-filter effects
   ========================================================= */

/* Glass card base component */
@utility cs-glass-card {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: var(--cs-glass-shadow-def);
  transition: all var(--cs-glass-transition) ease;
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);

  &:hover {
    background: var(--cs-glass-bg-hover);
    box-shadow: 0 20px 40px var(--cs-glass-shadow-strong);
    transform: translateY(-2px);
    border: 1px solid var(--cs-glass-border-strong);
  }

  &:focus-within {
    outline: 2px solid var(--cs-glass-focus-ring);
    outline-offset: 2px;
  }
}

/* Light glass card variant */
@utility cs-glass-card-light {
  background: var(--cs-glass-bg-medium);
  border: 1px solid var(--cs-glass-border-strong);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: var(--cs-glass-shadow-def);
  transition: all var(--cs-glass-transition) ease;
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);

  &:hover {
    background: var(--cs-glass-bg-light-hover);
    transform: translateY(-1px);
    box-shadow: 0 12px 24px var(--cs-glass-shadow-strong);
  }

  &:focus-within {
    outline: 2px solid var(--cs-glass-focus-ring);
    outline-offset: 2px;
  }
}

/* Glass Feature Card Component */
@utility cs-card-feature-glass {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 1.5rem;
  border-radius: 20px;
  box-shadow: var(--cs-glass-shadow-def);
  padding: 2rem;
  text-align: center;
  position: relative;
  transition: all var(--cs-glass-transition) ease;

  &:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px var(--cs-glass-shadow-strong);
    background: var(--cs-glass-bg-hover);
  }
}

/* Glass Product Card Component */
@utility cs-card-product-glass {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  border-radius: 20px;
  box-shadow: var(--cs-glass-shadow-def);
  overflow: hidden;
  transition: all var(--cs-glass-transition) ease;
  position: relative;
  display: flex;
  flex-direction: column;
  max-width: 20rem;

  &:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px var(--cs-glass-shadow-strong);
    background: var(--cs-glass-bg-hover);
  }
}

/* Glass Pricing Card Component */
@utility cs-card-pricing-glass {
  background: var(--cs-glass-bg-light);
  border: 2px solid var(--cs-glass-border-medium);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  display: grid;
  grid-template-rows: auto 1fr auto;
  border-radius: 20px;
  box-shadow: var(--cs-glass-shadow-def);
  padding: 2rem;
  text-align: center;
  position: relative;
  transition: all var(--cs-glass-transition) ease;

  &:hover {
    transform: translateY(-4px);
    box-shadow: 0 25px 50px var(--cs-glass-shadow-xl);
    background: var(--cs-glass-bg-hover);
    border-color: var(--cs-glass-border-strong);
  }
}

/* =========================================================
   GLASS UI COMPONENTS
   Ready-to-use glass UI elements with backdrop-filter
   ========================================================= */

/* Glass navigation component */
@utility cs-glass-nav {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: 12px;
  box-shadow: var(--cs-glass-shadow-def);
  transition: all var(--cs-glass-transition) ease;
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
}

@utility cs-glass-nav-light {
  background: var(--cs-glass-bg-medium);
  border: 1px solid var(--cs-glass-border-strong);
  border-radius: 12px;
  box-shadow: var(--cs-glass-shadow-def);
  transition: all var(--cs-glass-transition) ease;
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
}

/* Glass button component */
@utility cs-glass-button {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: 12px;
  padding: 0.75rem 1.5rem;
  transition: all var(--cs-glass-transition) ease;
  cursor: pointer;
  min-height: 2.5rem; /* touch target */
  min-width: 2.5rem;
  -webkit-tap-highlight-color: transparent;
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);

  &:hover {
    background: var(--cs-glass-bg-hover);
    transform: translateY(-1px);
    box-shadow: 0 8px 16px var(--cs-glass-shadow-medium);
  }

  &:focus,
  &:focus-visible {
    outline: 2px solid var(--cs-glass-focus-ring);
    outline-offset: 2px;
  }

  &:active {
    transform: translateY(0);
    box-shadow: 0 4px 8px var(--cs-glass-shadow-medium);
  }
}

/* Glass toast component */
@utility cs-glass-toast {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: 0.75rem;
  padding: 1rem 1.5rem;
  box-shadow: 0 8px 32px var(--cs-glass-shadow-strong);
  position: relative;
  overflow: hidden;
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
}

/* Glass tooltip component */
@utility cs-glass-tooltip {
  background: var(--cs-glass-tooltip-bg);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  box-shadow: 0 4px 16px var(--cs-glass-shadow-xl);
  font-size: 0.875rem;
  color: white;
  white-space: nowrap;
  z-index: 50;
  backdrop-filter: var(--cs-glass-blur-sm);
  -webkit-backdrop-filter: var(--cs-glass-blur-sm);
}

/* Glass dropdown component */
@utility cs-glass-dropdown {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: 0.75rem;
  box-shadow: var(--cs-glass-shadow-def);
  padding: 0.5rem;
  min-width: 12rem;
  z-index: 50;
  backdrop-filter: var(--cs-glass-blur);
  -webkit-backdrop-filter: var(--cs-glass-blur);
}

/* Glass Forms System */
@utility cs-form-glass {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  border-radius: 1rem;
  padding: 2rem;
}

@utility cs-input-glass {
  padding: 0.75rem 1rem;
  background: var(--cs-glass-bg-md);
  border: 1px solid var(--cs-glass-border-strong);
  border-radius: 0.75rem;
  transition: all var(--cs-glass-transition) ease;
  color: inherit;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  &:focus {
    outline: none;
    border-color: var(--cs-glass-focus-ring);
    box-shadow: 0 0 0 3px
      color-mix(in srgb, var(--cs-glass-focus-ring) 20%, transparent);
  }

  &::placeholder {
    color: color-mix(in srgb, currentColor 60%, transparent);
  }
}

@utility cs-button-primary-glass {
  background: var(--cs-glass-bg-medium);
  border: 1px solid var(--cs-glass-border-strong);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: inherit;
  padding: 0.875rem 1.5rem;
  border-radius: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--cs-glass-transition) ease;

  &:hover {
    background: var(--cs-glass-bg-strong);
    transform: translateY(-1px);
  }

  &:focus {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-glass-focus-ring),
      0 0 0 4px color-mix(in srgb, var(--cs-glass-focus-ring) 20%, transparent);
  }
}

/* =========================================================
   GLASS PRO EFFECTS
   Advanced animations and glass effects
   ========================================================= */

/* Animated morph effects */
@utility cs-glass-morph-in {
  animation: glassMorphIn 0.4s ease-out both;
}

@utility cs-glass-morph-out {
  animation: glassMorphOut 0.3s ease-in both;
}

@keyframes glassMorphIn {
  from {
    opacity: 0;
    transform: scale(0.95);
    backdrop-filter: blur(0px);
  }
  to {
    opacity: 1;
    transform: scale(1);
    backdrop-filter: var(--cs-glass-blur);
  }
}

@keyframes glassMorphOut {
  from {
    opacity: 1;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(0.95);
  }
}

/* 3D hover glass effect */
@utility cs-glass-3d-hover {
  transform-style: preserve-3d;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;

  &:hover {
    transform: rotateX(6deg) rotateY(-4deg) scale(1.02);
    box-shadow: 0 24px 48px var(--cs-glass-shadow-xl);
  }
}

/* Glossy highlight overlays */
@utility cs-glass-gloss-top {
  position: relative;
  &::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 20%;
    background: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0.4),
      transparent
    );
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    pointer-events: none;
    z-index: 2;
    mix-blend-mode: soft-light;
  }
}

@utility cs-glass-gloss-left {
  position: relative;
  &::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 15%;
    background: linear-gradient(
      to right,
      rgba(255, 255, 255, 0.35),
      transparent
    );
    pointer-events: none;
    z-index: 2;
    mix-blend-mode: soft-light;
  }
}

@utility cs-glass-gloss-right {
  position: relative;
  &::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 15%;
    background: linear-gradient(
      to left,
      rgba(255, 255, 255, 0.35),
      transparent
    );
    pointer-events: none;
    z-index: 2;
    mix-blend-mode: soft-light;
  }
}

/* Pro theme presets */
@utility cs-glass-theme-neon {
  --cs-glass-bg-light: rgba(58, 227, 255, 0.1);
  --cs-glass-border-medium: rgba(58, 227, 255, 0.25);
  --cs-glass-shadow-def: 0 8px 32px rgba(58, 227, 255, 0.25);
  --cs-glass-focus-ring: rgba(58, 227, 255, 0.6);
}

@utility cs-glass-theme-carbon {
  --cs-glass-bg-light: rgba(30, 30, 30, 0.25);
  --cs-glass-border-medium: rgba(255, 255, 255, 0.08);
  --cs-glass-shadow-def: 0 8px 32px rgba(0, 0, 0, 0.4);
  --cs-glass-focus-ring: rgba(255, 255, 255, 0.3);
}

@utility cs-glass-theme-pastel {
  --cs-glass-bg-light: rgba(255, 230, 250, 0.12);
  --cs-glass-border-medium: rgba(255, 230, 250, 0.25);
  --cs-glass-shadow-def: 0 8px 32px rgba(255, 230, 250, 0.25);
  --cs-glass-focus-ring: rgba(255, 230, 250, 0.6);
}

/* =========================================================
   RESPONSIVE GLASS UTILITIES
   ========================================================= */

/* Responsive glass blur based on container size */
@utility cs-glass-responsive {
  background: var(--cs-glass-bg-light);
  border: 1px solid var(--cs-glass-border-medium);
  backdrop-filter: var(--cs-glass-blur-sm);
  -webkit-backdrop-filter: var(--cs-glass-blur-sm);
  background-clip: padding-box;

  @container (min-width: 320px) {
    backdrop-filter: var(--cs-glass-blur-sm);
    -webkit-backdrop-filter: var(--cs-glass-blur-sm);
  }

  @container (min-width: 640px) {
    backdrop-filter: var(--cs-glass-blur);
    -webkit-backdrop-filter: var(--cs-glass-blur);
  }

  @container (min-width: 1024px) {
    backdrop-filter: var(--cs-glass-blur-lg);
    -webkit-backdrop-filter: var(--cs-glass-blur-lg);
  }
}

/* Base backdrop filter utility */
@utility cs-glass-backdrop-clip {
  background-clip: padding-box;
}

/* =========================================================
   FALLBACKS & BROWSER SUPPORT
   ========================================================= */

/* For browsers that don't support backdrop-filter,
   provide a fallback with slightly higher opacity background */
@supports not (
  (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
) {
  .cs-glass,
  .cs-glass-card,
  .cs-glass-card-light,
  .cs-glass-nav,
  .cs-glass-nav-light,
  .cs-glass-button,
  .cs-glass-toast,
  .cs-glass-tooltip,
  .cs-glass-dropdown {
    background: var(--cs-glass-bg-fallback);
    box-shadow: 0 4px 16px var(--cs-glass-shadow-medium);
  }

  .cs-glass-dark {
    background: var(--cs-glass-bg-dark-fallback);
  }

  .cs-glass-blue {
    background: var(--cs-glass-bg-blue-fallback);
  }

  .cs-glass-purple {
    background: var(--cs-glass-bg-purple-fallback);
  }

  .cs-glass-green {
    background: var(--cs-glass-bg-green-fallback);
  }

  .cs-glass-pink {
    background: var(--cs-glass-bg-pink-fallback);
  }

  .cs-glass-amber {
    background: var(--cs-glass-bg-amber-fallback);
  }

  .cs-card-feature-glass,
  .cs-card-product-glass,
  .cs-card-pricing-glass {
    background: rgba(255, 255, 255, 0.4);
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .cs-glass,
  .cs-glass-card,
  .cs-glass-nav,
  .cs-glass-button {
    border-width: 2px;
    background: var(--cs-glass-bg-contrast);
  }
  .cs-glass-dark {
    background: var(--cs-glass-bg-dark-contrast);
    border-color: var(--cs-glass-border-strong);
  }
}

/* Forced colors mode support (Windows High Contrast) */
@media (forced-colors: active) {
  .cs-glass,
  .cs-glass-card,
  .cs-glass-nav,
  .cs-glass-button {
    background: Canvas;
    border-color: CanvasText;
    box-shadow: none;
  }
  .cs-glass-tooltip {
    background: CanvasText;
    color: Canvas;
    border-color: CanvasText;
    box-shadow: none;
  }
}

/* Mobile optimization - reduce blur on small screens */
@media (max-width: 480px) {
  :root {
    --cs-glass-blur: var(--cs-glass-blur-sm);
  }
}

/* Reduced motion optimizations */
@media (prefers-reduced-motion: reduce) {
  .cs-glass-morph-in,
  .cs-glass-morph-out,
  .cs-glass-3d-hover {
    animation: none !important;
    transform: none !important;
  }
}


/* ===== ORBS ===== */
/*!
 * CASOON Atlas Orbs - Floating Orb Effects for Tailwind v4
 * Version: 0.0.1
 * Repository: https://github.com/casoon/atlas
 * Author: Jörn Seidel (joern.seidel@casoon.de)
 * License: MIT
 *
 * Floating animated orb particles with physics and visual effects
 * Part of CASOON Atlas UI effects library
 *
 * Usage: @import "@casoon/atlas-styles/orbs";
 * Package: @casoon/atlas-styles
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/*!
 * CASOON Atlas Orbs - Complete Orb System with Animations
 * Advanced floating orb effects with physics-based animations
 * Scene presets and customizable orb compositions
 *
 * SSR-safe, tree-shakeable, framework-agnostic
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/* =========================================================
   Orbs Theme Tokens
   ========================================================= */
@theme {
  /* Base palette colors */
  --cs-text: #0f172a;
  --cs-text-inverse: #ffffff;
  --cs-bg: #ffffff;
  --cs-surface: #ffffff;
  --cs-surface-2: #f8fafc;
  --cs-border: #e5e7eb;

  /* Orb colors */
  --cs-orb-blue: #3b82f6;
  --cs-orb-blue-light: #93c5fd;
  --cs-orb-blue-lighter: #dbeafe;

  --cs-orb-purple: #9333ea;
  --cs-orb-purple-light: #c4b5fd;
  --cs-orb-purple-lighter: #ede9fe;

  --cs-orb-pink: #ec4899;
  --cs-orb-pink-light: #fbcfe8;
  --cs-orb-pink-lighter: #fdf2f8;

  --cs-orb-custom-primary: #667eea;
  --cs-orb-custom-secondary: #764ba2;
  --cs-orb-custom-accent: #f093fb;

  /* Opacity tokens */
  --cs-opacity-strong: 0.5;
  --cs-opacity-medium: 0.3;
  --cs-opacity-weak: 0.1;

  /* Motion & transitions */
  --cs-transition: 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
  --cs-anim-ease-inout: cubic-bezier(0.4, 0, 0.2, 1);
  --cs-anim-ease-emph: cubic-bezier(0.2, 0.8, 0.2, 1);
  --cs-anim-duration-float: 6s;
  --cs-anim-duration-pulse: 4s;
  --cs-anim-duration-drift: 8s;

  /* Elevation & z-index scale */
  --cs-shadow-0: none;
  --cs-shadow-1: 0 1px 2px rgba(2, 6, 23, 0.06), 0 1px 1px rgba(2, 6, 23, 0.04);
  --cs-shadow-2: 0 2px 6px rgba(2, 6, 23, 0.08), 0 1px 2px rgba(2, 6, 23, 0.06);
  --cs-shadow-3: 0 8px 24px rgba(2, 6, 23, 0.1), 0 2px 6px rgba(2, 6, 23, 0.06);
  --cs-shadow-4:
    0 16px 40px rgba(2, 6, 23, 0.12), 0 4px 10px rgba(2, 6, 23, 0.08);

  --cs-z-tooltip: 60;
  --cs-z-dropdown: 70;
  --cs-z-toast: 80;
  --cs-z-modal: 90;
  --cs-z-orb: 10;

  /* Density */
  --cs-density: 1;

  /* Fallback radial gradients (rgba-based, no color-mix) */
  --cs-orb-fallback-blue: radial-gradient(
    circle,
    rgba(59, 130, 246, var(--cs-opacity-strong)) 0%,
    rgba(147, 197, 253, var(--cs-opacity-medium)) 50%,
    rgba(219, 234, 254, var(--cs-opacity-weak)) 100%
  );

  --cs-orb-fallback-purple: radial-gradient(
    circle,
    rgba(147, 51, 234, var(--cs-opacity-strong)) 0%,
    rgba(196, 181, 253, var(--cs-opacity-medium)) 50%,
    rgba(237, 233, 254, var(--cs-opacity-weak)) 100%
  );

  --cs-orb-fallback-pink: radial-gradient(
    circle,
    rgba(236, 72, 153, var(--cs-opacity-strong)) 0%,
    rgba(251, 207, 232, var(--cs-opacity-medium)) 50%,
    rgba(253, 242, 248, var(--cs-opacity-weak)) 100%
  );

  --cs-orb-fallback-custom: radial-gradient(
    circle,
    rgba(102, 126, 234, var(--cs-opacity-strong)) 0%,
    rgba(118, 75, 162, var(--cs-opacity-medium)) 50%,
    rgba(240, 147, 251, var(--cs-opacity-weak)) 100%
  );

  /* Progressive gradients with color-mix (upgrade path) */
  --cs-orb-gradient-blue: radial-gradient(
    circle,
    color-mix(
        in srgb,
        var(--cs-orb-blue) calc(var(--cs-opacity-strong) * 100%),
        transparent
      )
      0%,
    color-mix(
        in srgb,
        var(--cs-orb-blue-light) calc(var(--cs-opacity-medium) * 100%),
        transparent
      )
      50%,
    color-mix(
        in srgb,
        var(--cs-orb-blue-lighter) calc(var(--cs-opacity-weak) * 100%),
        transparent
      )
      100%
  );

  --cs-orb-gradient-purple: radial-gradient(
    circle,
    color-mix(
        in srgb,
        var(--cs-orb-purple) calc(var(--cs-opacity-strong) * 100%),
        transparent
      )
      0%,
    color-mix(
        in srgb,
        var(--cs-orb-purple-light) calc(var(--cs-opacity-medium) * 100%),
        transparent
      )
      50%,
    color-mix(
        in srgb,
        var(--cs-orb-purple-lighter) calc(var(--cs-opacity-weak) * 100%),
        transparent
      )
      100%
  );

  --cs-orb-gradient-pink: radial-gradient(
    circle,
    color-mix(
        in srgb,
        var(--cs-orb-pink) calc(var(--cs-opacity-strong) * 100%),
        transparent
      )
      0%,
    color-mix(
        in srgb,
        var(--cs-orb-pink-light) calc(var(--cs-opacity-medium) * 100%),
        transparent
      )
      50%,
    color-mix(
        in srgb,
        var(--cs-orb-pink-lighter) calc(var(--cs-opacity-weak) * 100%),
        transparent
      )
      100%
  );

  --cs-orb-gradient-custom: radial-gradient(
    circle,
    color-mix(
        in srgb,
        var(--cs-orb-custom-primary) calc(var(--cs-opacity-strong) * 100%),
        transparent
      )
      0%,
    color-mix(
        in srgb,
        var(--cs-orb-custom-secondary) calc(var(--cs-opacity-medium) * 100%),
        transparent
      )
      50%,
    color-mix(
        in srgb,
        var(--cs-orb-custom-accent) calc(var(--cs-opacity-weak) * 100%),
        transparent
      )
      100%
  );
}

/* =========================================================
   Base Orb Utility
   ========================================================= */
@utility cs-orb {
  border-radius: 50%;
  filter: blur(1px);
  opacity: 0.7;
  pointer-events: none;
  position: relative;
  z-index: var(--cs-z-orb);

  &[data-size~='responsive'] {
    @container (min-width: 480px) {
      width: 120px;
      height: 120px;
    }
    @container (min-width: 768px) {
      width: 180px;
      height: 180px;
    }
    @container (min-width: 1024px) {
      width: 240px;
      height: 240px;
    }
  }
}

/* =========================================================
   Orb Size Utilities
   ========================================================= */
@utility cs-orb-xs {
  width: 50px;
  height: 50px;
}
@utility cs-orb-sm {
  width: 75px;
  height: 75px;
}
@utility cs-orb-md {
  width: 100px;
  height: 100px;
}
@utility cs-orb-lg {
  width: 150px;
  height: 150px;
}
@utility cs-orb-xl {
  width: 200px;
  height: 200px;
}
@utility cs-orb-2xl {
  width: 300px;
  height: 300px;
}
@utility cs-orb-3xl {
  width: 400px;
  height: 400px;
}
@utility cs-orb-4xl {
  width: 500px;
  height: 500px;
}
@utility cs-orb-5xl {
  width: 600px;
  height: 600px;
}
@utility cs-orb-massive {
  width: 800px;
  height: 800px;
}

/* =========================================================
   Blur Level Utilities
   ========================================================= */
@utility cs-orb-blur-none {
  filter: blur(0);
}
@utility cs-orb-blur-sm {
  filter: blur(2px);
}
@utility cs-orb-blur-md {
  filter: blur(4px);
}
@utility cs-orb-blur-lg {
  filter: blur(8px);
}

/* =========================================================
   Positioning Utilities
   ========================================================= */
@utility cs-orb-absolute {
  position: absolute;
}
@utility cs-orb-fixed {
  position: fixed;
}

/* =========================================================
   Color Gradient Utilities with Progressive Enhancement
   ========================================================= */
@utility cs-orb-gradient-blue {
  background: var(--cs-orb-fallback-blue);

  @supports (background: color-mix(in srgb, red 50%, transparent)) {
    background: var(--cs-orb-gradient-blue);
  }
}

@utility cs-orb-gradient-purple {
  background: var(--cs-orb-fallback-purple);

  @supports (background: color-mix(in srgb, red 50%, transparent)) {
    background: var(--cs-orb-gradient-purple);
  }
}

@utility cs-orb-gradient-pink {
  background: var(--cs-orb-fallback-pink);

  @supports (background: color-mix(in srgb, red 50%, transparent)) {
    background: var(--cs-orb-gradient-pink);
  }
}

@utility cs-orb-gradient-custom {
  background: var(--cs-orb-fallback-custom);

  @supports (background: color-mix(in srgb, red 50%, transparent)) {
    background: var(--cs-orb-gradient-custom);
  }
}

/* =========================================================
   Container Query Utility
   ========================================================= */
@utility cs-cq {
  container-type: inline-size;
}

/* =========================================================
   ENHANCED ORB ANIMATIONS (v0.8.x)
   ========================================================= */

/* Float Animation */
@utility cs-orb-float {
  animation: cs-orb-float-kf var(--cs-anim-duration-float)
    var(--cs-anim-ease-inout) infinite;
}

/* Pulse Animation */
@utility cs-orb-pulse {
  animation: cs-orb-pulse-kf var(--cs-anim-duration-pulse)
    var(--cs-anim-ease-inout) infinite;
}

/* Drift Animation */
@utility cs-orb-drift {
  animation: cs-orb-drift-kf var(--cs-anim-duration-drift)
    var(--cs-anim-ease-inout) infinite;
}

/* Morph Animation */
@utility cs-orb-morph {
  animation: cs-orb-morph 12s ease-in-out infinite;
}

/* Shimmer Animation */
@utility cs-orb-shimmer {
  background: linear-gradient(
    270deg,
    var(--cs-orb-blue),
    var(--cs-orb-blue-light),
    var(--cs-orb-blue)
  );
  background-size: 600% 600%;
  animation: cs-orb-shimmer 10s infinite;
}

/* Bloom Animation (hover/focus triggered) */
@utility cs-orb-bloom {
  &:hover,
  &:focus-visible {
    transform-origin: 50%;
    animation: cs-orb-bloom 2s ease-in-out infinite;
  }
}

/* Zen Animation (combined float + morph) */
@utility cs-orb-zen {
  animation:
    cs-orb-float-kf var(--cs-anim-duration-float) var(--cs-anim-ease-inout)
      infinite,
    cs-orb-morph 14s ease-in-out infinite;
}

/* Advanced Movement Animations */
@utility cs-orb-orbit {
  animation: cs-orb-orbit 20s linear infinite;
}

@utility cs-orb-orbit-reverse {
  animation: cs-orb-orbit 20s linear infinite reverse;
}

@utility cs-orb-figure-8 {
  animation: cs-orb-figure-8 16s ease-in-out infinite;
}

@utility cs-orb-wander {
  animation: cs-orb-wander 25s ease-in-out infinite;
}

@utility cs-orb-swing {
  animation: cs-orb-swing 8s ease-in-out infinite;
}

@utility cs-orb-bounce {
  animation: cs-orb-bounce 3s ease-in-out infinite;
}

@utility cs-orb-magnetic {
  animation: cs-orb-magnetic 12s ease-in-out infinite;
}

/* Color & Visual Effects */
@utility cs-orb-hue-shift {
  animation: cs-orb-hue-shift 10s linear infinite;
}

@utility cs-orb-rainbow {
  background: linear-gradient(
      45deg,
      #ff6b6b,
      #4ecdc4,
      #45b7d1,
      #f9ca24,
      #f0932b,
      #eb4d4b,
      #6c5ce7
    )
    0 0/400% 400%;
  animation: cs-orb-rainbow 8s infinite;
}

@utility cs-orb-color-pulse {
  animation: cs-orb-color-pulse 4s ease-in-out infinite;
}

@utility cs-orb-color-breathe {
  animation: cs-orb-color-breathe 6s ease-in-out infinite;
}

@utility cs-orb-glow {
  animation: cs-orb-glow 3s ease-in-out infinite;
}

@utility cs-orb-flicker {
  animation: cs-orb-flicker 2s ease-in-out infinite;
}

@utility cs-orb-scale-pulse {
  animation: cs-orb-scale-pulse 4s ease-in-out infinite;
}

@utility cs-orb-elastic {
  animation: cs-orb-elastic 3s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

/* Complex Combined Animations */
@utility cs-orb-dream {
  animation:
    cs-orb-float-kf 12s ease-in-out infinite,
    cs-orb-hue-shift 15s linear infinite,
    cs-orb-scale-pulse 8s ease-in-out infinite;
}

@utility cs-orb-cosmic {
  animation:
    cs-orb-orbit 30s linear infinite,
    cs-orb-rainbow 10s infinite,
    cs-orb-glow 4s ease-in-out infinite;
}

@utility cs-orb-chaos {
  animation:
    cs-orb-wander 20s ease-in-out infinite,
    cs-orb-flicker 1.5s ease-in-out infinite,
    cs-orb-elastic 5s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

/* =========================================================
   ANIMATION SPEED CONTROLS
   ========================================================= */
@utility cs-orb-slow {
  animation-duration: calc(var(--cs-orb-speed, 1) * 2);
}

@utility cs-orb-fast {
  animation-duration: calc(var(--cs-orb-speed, 1) * 0.5);
}

/* =========================================================
   INTERACTIVE ANIMATION CONTROLS
   ========================================================= */
@utility cs-orb-pause-hover {
  &:hover {
    animation-play-state: paused;
  }
}

@utility cs-orb-reverse-hover {
  &:hover {
    animation-direction: reverse;
  }
}

@utility cs-orb-trigger-hover {
  animation-play-state: paused;

  &:hover {
    animation-play-state: running;
  }
}

/* =========================================================
   CORE UTILITY HELPER CLASSES
   ========================================================= */
@utility cs-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================
   GLOW EFFECTS
   ========================================================= */
@utility cs-glow {
  box-shadow: 0 0 transparent;
}

@utility cs-glow-blue {
  box-shadow: 0 0 24px 8px var(--cs-orb-blue);

  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 24px 8px
      color-mix(in srgb, var(--cs-orb-blue) 35%, transparent);
  }

  @supports not (color: color-mix(in srgb, red 50%, white)) {
    box-shadow: 0 0 24px 8px rgba(59, 130, 246, 0.35);
  }
}

@utility cs-glow-pink {
  box-shadow: 0 0 24px 8px var(--cs-orb-pink);

  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 24px 8px
      color-mix(in srgb, var(--cs-orb-pink) 35%, transparent);
  }

  @supports not (color: color-mix(in srgb, red 50%, white)) {
    box-shadow: 0 0 24px 8px rgba(236, 72, 153, 0.35);
  }
}

/* =========================================================
   CORE POSITIONING UTILITIES
   ========================================================= */
@utility cs-will-transform {
  will-change: transform;
}

/* =========================================================
   CARD COMPONENTS
   ========================================================= */
@utility cs-card {
  position: relative;
  background: var(--cs-surface);
  border: 1px solid var(--cs-border);
  border-radius: calc(12px * var(--cs-density));
  box-shadow: var(--cs-shadow-2);
  padding: calc(16px * var(--cs-density));
  transition:
    box-shadow var(--cs-transition),
    transform var(--cs-transition);

  &:hover {
    box-shadow: var(--cs-shadow-3);
    transform: translateY(-1px);
  }
}

@utility cs-card-title {
  color: var(--cs-text);
  font-weight: 600;
  margin-bottom: 0.5em;
}

@utility cs-card-hover-orb {
  position: relative;
  overflow: hidden;

  &::before {
    content: '';
    position: absolute;
    top: -25%;
    left: -25%;
    width: 200%;
    height: 200%;
    background: var(--cs-orb-fallback-blue);
    filter: blur(32px);
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    transition: opacity 0.5s;
  }

  &:hover::before {
    opacity: 0.6;
  }
}

@utility cs-card-hover-orb-shimmer {
  &::before {
    background: linear-gradient(135deg, #3b82f6, #93c5fd, #3b82f6) 0 0/300% 300%;
    animation: cs-orb-shimmer 6s linear infinite;
  }
}

@utility cs-surface-pop {
  background: var(--cs-surface);
  border: 1px solid var(--cs-border);
  border-radius: 12px;
  box-shadow: var(--cs-shadow-4);
}

/* =========================================================
   ACRYLIC/GLASSMORPHISM EFFECT
   ========================================================= */
@utility cs-acrylic {
  background: var(--cs-surface);
  border: 1px solid var(--cs-border);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);

  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--cs-surface) 70%, transparent);
    border: 1px solid color-mix(in srgb, var(--cs-border) 70%, transparent);
  }

  @supports not (backdrop-filter: blur(10px)) {
    background: rgba(255, 255, 255, 0.75);
  }
}

/* =========================================================
   BUTTON COMPONENTS
   ========================================================= */
@utility cs-btn {
  --_pad-y: calc(8px * var(--cs-density));
  --_pad-x: calc(14px * var(--cs-density));

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: var(--_pad-y) var(--_pad-x);
  border: 1px solid var(--cs-border);
  border-radius: calc(10px * var(--cs-density));
  background: var(--cs-surface-2);
  color: var(--cs-text);
  font-weight: 600;
  line-height: 1.2;
  box-shadow: var(--cs-shadow-1);
  transition:
    background var(--cs-transition),
    box-shadow var(--cs-transition),
    transform var(--cs-transition);

  &:hover {
    box-shadow: var(--cs-shadow-2);
    transform: translateY(-1px);
  }

  &:active {
    transform: translateY(0);
  }
}

@utility cs-btn-primary {
  background: var(--cs-orb-blue);
  border-color: var(--cs-orb-blue);
  color: var(--cs-text);

  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--cs-orb-blue) 12%, var(--cs-surface));
    border-color: color-mix(in srgb, var(--cs-orb-blue) 35%, var(--cs-border));
  }

  @supports not (color: color-mix(in srgb, red 50%, white)) {
    background: #eef5ff;
    border-color: #b8d1ff;
  }
}

@utility cs-btn-orb {
  position: relative;
  overflow: hidden;
  z-index: 1;

  &::after {
    content: '';
    position: absolute;
    inset: -50%;
    background: radial-gradient(
      circle at center,
      var(--cs-orb-blue-light),
      transparent 70%
    );
    opacity: 0;
    transform: scale(0.5);
    transition:
      opacity 0.4s,
      transform 0.4s;
    z-index: 0;
  }

  &:hover::after {
    opacity: 0.4;
    transform: scale(1.2);
  }
}

/* =========================================================
   LAYOUT COMPONENTS
   ========================================================= */
@utility cs-section-orb {
  position: relative;
  overflow: clip;

  & > .cs-orb {
    position: absolute;
    inset: auto;
  }
}

@utility cs-orb-modal-backdrop {
  position: absolute;
  inset: 0;
  background: var(--cs-orb-fallback-purple);
  filter: blur(60px);
  opacity: 0.4;
  pointer-events: none;
  z-index: var(--cs-z-modal);
}

/* =========================================================
   KEYFRAME ANIMATIONS
   ========================================================= */

/* Basic Movement Animations */
@keyframes cs-orb-float-kf {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}

@keyframes cs-orb-pulse-kf {
  0%,
  100% {
    opacity: 0.7;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.05);
  }
}

@keyframes cs-orb-drift-kf {
  0% {
    transform: translate(0);
  }
  33% {
    transform: translate(30px);
  }
  66% {
    transform: translate(-20px);
  }
  100% {
    transform: translate(0);
  }
}

@keyframes cs-orb-morph {
  0% {
    border-radius: 50%;
  }
  25% {
    border-radius: 55% 45% 60% 40% / 60% 40% 55% 45%;
  }
  50% {
    border-radius: 50% 50% 60% 40% / 40% 60% 50% 50%;
  }
  75% {
    border-radius: 45% 55% 50% 50% / 50% 50% 45% 55%;
  }
  100% {
    border-radius: 50%;
  }
}

@keyframes cs-orb-bloom {
  0%,
  100% {
    opacity: 0.7;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.12);
  }
}

@keyframes cs-orb-shimmer {
  0% {
    background-position: 0%;
  }
  50% {
    background-position: 100%;
  }
  100% {
    background-position: 0%;
  }
}

/* Complex Movement Animations */
@keyframes cs-orb-orbit {
  0% {
    transform: rotate(0deg) translate(100px) rotate(0deg);
  }
  100% {
    transform: rotate(360deg) translate(100px) rotate(-360deg);
  }
}

@keyframes cs-orb-figure-8 {
  0% {
    transform: translate(0);
  }
  12.5% {
    transform: translate(30px, -15px);
  }
  25% {
    transform: translate(40px);
  }
  37.5% {
    transform: translate(30px, 15px);
  }
  50% {
    transform: translate(0);
  }
  62.5% {
    transform: translate(-30px, 15px);
  }
  75% {
    transform: translate(-40px);
  }
  87.5% {
    transform: translate(-30px, -15px);
  }
  100% {
    transform: translate(0);
  }
}

@keyframes cs-orb-wander {
  0% {
    transform: translate(0);
  }
  10% {
    transform: translate(25px, -30px);
  }
  20% {
    transform: translate(-15px, -45px);
  }
  30% {
    transform: translate(40px, -20px);
  }
  40% {
    transform: translate(10px, 35px);
  }
  50% {
    transform: translate(-35px, 15px);
  }
  60% {
    transform: translate(-20px, -25px);
  }
  70% {
    transform: translate(30px, 40px);
  }
  80% {
    transform: translate(-40px, -10px);
  }
  90% {
    transform: translate(20px, -35px);
  }
  100% {
    transform: translate(0);
  }
}

@keyframes cs-orb-swing {
  0%,
  100% {
    transform: rotate(-15deg) translate(0);
  }
  50% {
    transform: rotate(15deg) translate(0);
  }
}

@keyframes cs-orb-bounce {
  0%,
  20%,
  53%,
  80%,
  100% {
    transform: translateY(0);
  }
  40%,
  43% {
    transform: translateY(-30px);
  }
  70% {
    transform: translateY(-15px);
  }
  90% {
    transform: translateY(-4px);
  }
}

@keyframes cs-orb-magnetic {
  0% {
    transform: translate(0);
  }
  25% {
    transform: translate(50px, 20px) scale(1.1);
  }
  50% {
    transform: translate(-30px, -40px) scale(0.9);
  }
  75% {
    transform: translate(-50px, 30px) scale(1.05);
  }
  100% {
    transform: translate(0);
  }
}

/* Color & Visual Effect Animations */
@keyframes cs-orb-hue-shift {
  0% {
    filter: hue-rotate(0deg);
  }
  100% {
    filter: hue-rotate(360deg);
  }
}

@keyframes cs-orb-rainbow {
  0% {
    background-position: 0% 0%;
  }
  25% {
    background-position: 100% 0%;
  }
  50% {
    background-position: 100% 100%;
  }
  75% {
    background-position: 0% 100%;
  }
  100% {
    background-position: 0% 0%;
  }
}

@keyframes cs-orb-color-pulse {
  0%,
  100% {
    filter: brightness(1) saturate(1);
  }
  50% {
    filter: brightness(1.3) saturate(1.5);
  }
}

@keyframes cs-orb-color-breathe {
  0%,
  100% {
    filter: brightness(0.8) contrast(1.1);
    opacity: 0.7;
  }
  50% {
    filter: brightness(1.2) contrast(1.3);
    opacity: 1;
  }
}

@keyframes cs-orb-glow {
  0%,
  100% {
    box-shadow: 0 0 20px rgba(79, 124, 255, 0.3);
  }
  50% {
    box-shadow:
      0 0 40px rgba(79, 124, 255, 0.8),
      0 0 80px rgba(79, 124, 255, 0.4);
  }
}

@keyframes cs-orb-flicker {
  0%,
  100% {
    opacity: 0.7;
  }
  10% {
    opacity: 0.9;
  }
  20% {
    opacity: 0.5;
  }
  30% {
    opacity: 1;
  }
  40% {
    opacity: 0.6;
  }
  50% {
    opacity: 0.8;
  }
  60% {
    opacity: 0.4;
  }
  70% {
    opacity: 0.9;
  }
  80% {
    opacity: 0.7;
  }
  90% {
    opacity: 1;
  }
}

@keyframes cs-orb-scale-pulse {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15);
  }
}

@keyframes cs-orb-elastic {
  0%,
  100% {
    transform: scale(1);
  }
  25% {
    transform: scale(1.1, 0.9);
  }
  50% {
    transform: scale(0.9, 1.1);
  }
  75% {
    transform: scale(1.05, 0.95);
  }
}

/* =========================================================
   ACCESSIBILITY & RESPONSIVE DESIGN
   ========================================================= */

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .cs-orb-float,
  .cs-orb-pulse,
  .cs-orb-drift,
  .cs-orb-bloom,
  .cs-orb-shimmer,
  .cs-orb-morph,
  .cs-orb-zen,
  .cs-card-hover-orb::before,
  .cs-btn-orb::after {
    transition: none !important;
    animation: none !important;
  }
}

/* High contrast mode */
@media (prefers-contrast: more) {
  .cs-orb {
    filter: none;
    opacity: 0.9;
  }

  .cs-card,
  .cs-btn {
    box-shadow: var(--cs-shadow-1);
  }
}

/* Forced colors mode (Windows High Contrast) */
@media (forced-colors: active) {
  .cs-orb {
    opacity: 0.15;
    background: CanvasText;
  }

  .cs-btn {
    border: 1px solid ButtonText;
  }
}

/* Mobile optimizations */
@media (max-width: 480px) {
  .cs-orb:is(.cs-orb-blur-lg, .cs-orb-blur-md) {
    filter: blur(2px);
  }

  .cs-orb-float {
    animation-duration: calc(var(--cs-anim-duration-float) * 1.25);
  }
}

/* Focus styles */
.cs-focus-ring:focus-visible,
.cs-btn:focus-visible,
.cs-card:focus-visible {
  outline: 2px solid var(--cs-orb-blue);
  outline-offset: 2px;

  @supports (color: color-mix(in lab, red, red)) {
    outline: 2px solid color-mix(in srgb, var(--cs-orb-blue) 60%, transparent);
  }

  @supports not (color: color-mix(in srgb, red 50%, white)) {
    outline: 2px solid #3b82f6;
  }
}

/* Print styles */
@media print {
  .cs-orb {
    filter: none !important;
    opacity: 0.15 !important;
  }

  .cs-card,
  .cs-btn,
  .cs-surface-pop {
    box-shadow: none !important;
    border: 1px solid black !important;
  }
}

/* =========================================================
   ORB SCENE PRESETS - Complete Background Compositions
   ========================================================= */

/* Galaxy Scene - Multiple cosmic orbs */
.cs-orb-scene-galaxy {
  position: relative;
  overflow: hidden;
}

.cs-orb-scene-galaxy::before,
.cs-orb-scene-galaxy::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: var(--cs-z-orb);
}

/* Main galaxy orb */
.cs-orb-scene-galaxy::before {
  width: 300px;
  height: 300px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--cs-orb-purple) 40%, transparent) 0%,
    color-mix(in srgb, var(--cs-orb-blue) 25%, transparent) 40%,
    color-mix(in srgb, var(--cs-orb-pink) 15%, transparent) 70%,
    transparent 100%
  );
  filter: blur(60px);
  top: -150px;
  right: -150px;
  animation: cs-orb-float-kf 8s ease-in-out infinite;
}

/* Secondary galaxy orb */
.cs-orb-scene-galaxy::after {
  width: 200px;
  height: 200px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--cs-orb-blue) 35%, transparent) 0%,
    color-mix(in srgb, var(--cs-orb-purple) 20%, transparent) 50%,
    transparent 100%
  );
  filter: blur(40px);
  bottom: -100px;
  left: -100px;
  animation: cs-orb-pulse-kf 6s ease-in-out infinite;
}

/* Underwater Scene - Blue/turquoise composition */
.cs-orb-scene-underwater {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--cs-orb-blue) 8%, var(--cs-bg)) 0%,
    color-mix(in srgb, var(--cs-orb-blue-light) 5%, var(--cs-bg)) 100%
  );
}

.cs-orb-scene-underwater::before,
.cs-orb-scene-underwater::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: var(--cs-z-orb);
}

/* Large underwater orb */
.cs-orb-scene-underwater::before {
  width: 400px;
  height: 400px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, #00bcd4 30%, transparent) 0%,
    color-mix(in srgb, #4dd0e1 20%, transparent) 40%,
    color-mix(in srgb, #80deea 10%, transparent) 70%,
    transparent 100%
  );
  filter: blur(80px);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: cs-orb-drift-kf 12s ease-in-out infinite;
}

/* Floating bubbles effect */
.cs-orb-scene-underwater::after {
  width: 150px;
  height: 150px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, #b2ebf2 25%, transparent) 0%,
    color-mix(in srgb, #e0f2f1 15%, transparent) 60%,
    transparent 100%
  );
  filter: blur(20px);
  top: 20%;
  right: 20%;
  animation: cs-orb-wander 15s ease-in-out infinite;
}

/* Aurora Scene - Northern lights effect */
.cs-orb-scene-aurora {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    45deg,
    color-mix(in srgb, #1a237e 15%, var(--cs-bg)) 0%,
    color-mix(in srgb, #283593 10%, var(--cs-bg)) 50%,
    color-mix(in srgb, #1a237e 15%, var(--cs-bg)) 100%
  );
}

.cs-orb-scene-aurora::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 60%;
  top: 0;
  left: 0;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, #4fc3f7 20%, transparent) 0%,
    color-mix(in srgb, #81c784 15%, transparent) 30%,
    color-mix(in srgb, #ffb74d 10%, transparent) 60%,
    transparent 100%
  );
  filter: blur(60px);
  animation: cs-aurora-wave 20s ease-in-out infinite;
  pointer-events: none;
  z-index: var(--cs-z-orb);
}

@keyframes cs-aurora-wave {
  0%,
  100% {
    opacity: 0.6;
    transform: translateY(0) scaleY(1);
  }
  25% {
    opacity: 0.8;
    transform: translateY(-20px) scaleY(1.1);
  }
  50% {
    opacity: 0.7;
    transform: translateY(-10px) scaleY(0.9);
  }
  75% {
    opacity: 0.9;
    transform: translateY(-30px) scaleY(1.2);
  }
}

/* Nebula Scene - Space dust and gas clouds */
.cs-orb-scene-nebula {
  position: relative;
  overflow: hidden;
  background: radial-gradient(
    ellipse at center,
    color-mix(in srgb, var(--cs-orb-purple) 12%, var(--cs-bg)) 0%,
    color-mix(in srgb, var(--cs-orb-pink) 8%, var(--cs-bg)) 40%,
    var(--cs-bg) 100%
  );
}

.cs-orb-scene-nebula::before,
.cs-orb-scene-nebula::after {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: var(--cs-z-orb);
}

/* Main nebula cloud */
.cs-orb-scene-nebula::before {
  width: 500px;
  height: 300px;
  background: linear-gradient(
    45deg,
    color-mix(in srgb, var(--cs-orb-purple) 25%, transparent) 0%,
    color-mix(in srgb, var(--cs-orb-pink) 20%, transparent) 30%,
    color-mix(in srgb, var(--cs-orb-custom-primary) 15%, transparent) 60%,
    transparent 100%
  );
  border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
  filter: blur(100px);
  top: 10%;
  left: 20%;
  animation:
    cs-orb-morph 25s ease-in-out infinite,
    cs-orb-drift-kf 30s ease-in-out infinite;
}

/* Secondary nebula dust */
.cs-orb-scene-nebula::after {
  width: 250px;
  height: 250px;
  background: radial-gradient(
    ellipse,
    color-mix(in srgb, var(--cs-orb-blue) 20%, transparent) 0%,
    color-mix(in srgb, var(--cs-orb-purple-light) 15%, transparent) 50%,
    transparent 100%
  );
  border-radius: 50%;
  filter: blur(60px);
  bottom: 20%;
  right: 15%;
  animation: cs-orb-shimmer 18s ease-in-out infinite;
}

/* Forest Scene - Natural, organic orbs */
.cs-orb-scene-forest {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    135deg,
    color-mix(in srgb, #2e7d32 8%, var(--cs-bg)) 0%,
    color-mix(in srgb, #388e3c 6%, var(--cs-bg)) 50%,
    color-mix(in srgb, #1b5e20 10%, var(--cs-bg)) 100%
  );
}

.cs-orb-scene-forest::before,
.cs-orb-scene-forest::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: var(--cs-z-orb);
}

/* Sunlight filtering through trees */
.cs-orb-scene-forest::before {
  width: 200px;
  height: 400px;
  background: linear-gradient(
    0deg,
    transparent 0%,
    color-mix(in srgb, #ffeb3b 15%, transparent) 20%,
    color-mix(in srgb, #ffc107 20%, transparent) 50%,
    color-mix(in srgb, #ff9800 10%, transparent) 80%,
    transparent 100%
  );
  border-radius: 50% 50% 80% 20% / 60% 40% 60% 40%;
  filter: blur(40px);
  top: -100px;
  right: 30%;
  animation: cs-forest-light 15s ease-in-out infinite;
  transform: rotate(15deg);
}

/* Forest fireflies/magic */
.cs-orb-scene-forest::after {
  width: 100px;
  height: 100px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, #76ff03 30%, transparent) 0%,
    color-mix(in srgb, #8bc34a 20%, transparent) 40%,
    color-mix(in srgb, #4caf50 10%, transparent) 70%,
    transparent 100%
  );
  filter: blur(20px);
  bottom: 30%;
  left: 25%;
  animation:
    cs-orb-flicker 3s ease-in-out infinite,
    cs-orb-wander 20s ease-in-out infinite;
}

@keyframes cs-forest-light {
  0%,
  100% {
    opacity: 0.3;
    transform: rotate(15deg) translateY(0);
  }
  25% {
    opacity: 0.6;
    transform: rotate(12deg) translateY(-10px);
  }
  50% {
    opacity: 0.4;
    transform: rotate(18deg) translateY(-5px);
  }
  75% {
    opacity: 0.7;
    transform: rotate(10deg) translateY(-15px);
  }
}

/* Sunset Scene - Warm, golden orbs */
.cs-orb-scene-sunset {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    45deg,
    color-mix(in srgb, #ff6f00 12%, var(--cs-bg)) 0%,
    color-mix(in srgb, #ff8f00 8%, var(--cs-bg)) 30%,
    color-mix(in srgb, #ffc107 6%, var(--cs-bg)) 70%,
    var(--cs-bg) 100%
  );
}

.cs-orb-scene-sunset::before,
.cs-orb-scene-sunset::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: var(--cs-z-orb);
}

/* Main sun orb */
.cs-orb-scene-sunset::before {
  width: 350px;
  height: 350px;
  background: radial-gradient(
    circle,
    color-mix(in srgb, #ffeb3b 35%, transparent) 0%,
    color-mix(in srgb, #ff9800 25%, transparent) 30%,
    color-mix(in srgb, #ff5722 15%, transparent) 60%,
    transparent 100%
  );
  filter: blur(80px);
  top: -175px;
  left: 70%;
  animation: cs-orb-color-breathe 8s ease-in-out infinite;
}

/* Warm atmospheric glow */
.cs-orb-scene-sunset::after {
  width: 250px;
  height: 150px;
  background: linear-gradient(
    135deg,
    color-mix(in srgb, #ffab40 20%, transparent) 0%,
    color-mix(in srgb, #ff7043 15%, transparent) 50%,
    transparent 100%
  );
  border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
  filter: blur(60px);
  bottom: 20%;
  left: 10%;
  animation: cs-orb-drift-kf 12s ease-in-out infinite;
}

/* Responsive adjustments for scenes */
@container (max-width: 768px) {
  .cs-orb-scene-galaxy::before {
    width: 200px;
    height: 200px;
    filter: blur(40px);
  }

  .cs-orb-scene-galaxy::after {
    width: 150px;
    height: 150px;
    filter: blur(30px);
  }

  .cs-orb-scene-underwater::before {
    width: 250px;
    height: 250px;
    filter: blur(50px);
  }

  .cs-orb-scene-nebula::before {
    width: 300px;
    height: 200px;
    filter: blur(60px);
  }
}

/* Accessibility - respect reduced motion for scenes */
@media (prefers-reduced-motion: reduce) {
  .cs-orb-scene-galaxy::before,
  .cs-orb-scene-galaxy::after,
  .cs-orb-scene-underwater::before,
  .cs-orb-scene-underwater::after,
  .cs-orb-scene-aurora::before,
  .cs-orb-scene-nebula::before,
  .cs-orb-scene-nebula::after,
  .cs-orb-scene-forest::before,
  .cs-orb-scene-forest::after,
  .cs-orb-scene-sunset::before,
  .cs-orb-scene-sunset::after {
    animation: none !important;
  }
}


/* ===== UTILITIES ===== */
/*!
 * CASOON Atlas Utilities - Comprehensive Utility System for Tailwind v4
 * Version: 0.0.1
 * Repository: https://github.com/casoon/atlas
 * Author: Jörn Seidel (joern.seidel@casoon.de)
 * License: MIT
 *
 * Complete utility system with modern design tokens
 * Part of CASOON Atlas UI effects library
 *
 * Usage: @import "@casoon/atlas-styles/utilities";
 * Package: @casoon/atlas-styles
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/*!
 * CASOON Atlas Utilities - Complete Utility System for Tailwind v4
 * TOTAL: 8 CSS FILES → Pure Tailwind v4 (120+ classes + 80+ @utility)
 *
 * Features:
 * ✅ Tree-Shaking Support with @utility directives
 * ✅ Modern Design System with comprehensive tokens
 * ✅ Accessibility-first components and utilities
 * ✅ Progressive Enhancement & Fallbacks
 * ✅ Container Queries & Responsive Design
 * ✅ Performance optimized with reduced motion support
 * ✅ SSR-safe, tree-shakeable, framework-agnostic
 */

/* Note: @import "tailwindcss"; should be added by the consumer */

/* =========================================================
   CONSOLIDATED DESIGN TOKENS & THEME
   Complete design system with light/dark theme support
   ========================================================= */
@theme {
  /* === CORE COLOR SYSTEM === */
  --cs-bg: #0b0c0f;
  --cs-surface: #14161a;
  --cs-elev1: #1b1e24;
  --cs-elev2: #21252d;
  --cs-text: #eef1f6;
  --cs-text-muted: #b6bfcc;
  --cs-border: #2a2f39;
  --cs-brand: #4f7cff;
  --cs-brand-contrast: #0b0d12;
  --cs-brand-ink: var(--cs-brand-contrast);

  /* STATE COLORS */
  --cs-success: #22c55e;
  --cs-warning: #f59e0b;
  --cs-danger: #ef4444;
  --cs-info: #06b6d4;

  /* === TYPOGRAPHY SYSTEM === */
  --cs-font-sans:
    ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter,
    'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif;
  --cs-font-mono:
    ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
    'Courier New', monospace;
  --cs-font-size: 16px;
  --cs-line: 1.5;

  /* FLUID TYPOGRAPHY SCALE */
  --cs-fs-xs: clamp(0.78rem, 0.75rem + 0.2cqi, 0.84rem);
  --cs-fs-sm: clamp(0.88rem, 0.82rem + 0.3cqi, 0.95rem);
  --cs-fs-md: clamp(1rem, 0.95rem + 0.4cqi, 1.125rem);
  --cs-fs-lg: clamp(1.25rem, 1.05rem + 0.8cqi, 1.5rem);
  --cs-fs-xl: clamp(1.5rem, 1.2rem + 1.2cqi, 1.875rem);
  --cs-fs-2xl: clamp(1.875rem, 1.4rem + 1.6cqi, 2.25rem);

  /* TYPOGRAPHY UTILITIES */
  --cs-leading-relaxed: 1.625;
  --cs-leading-loose: 2;
  --cs-text-balance: balance;

  /* === SPACING SYSTEM === */
  --cs-density: 1;
  --cs-space-1: calc(4px * var(--cs-density));
  --cs-space-2: calc(8px * var(--cs-density));
  --cs-space-3: calc(12px * var(--cs-density));
  --cs-space-4: calc(16px * var(--cs-density));
  --cs-space-6: calc(24px * var(--cs-density));
  --cs-space-8: calc(32px * var(--cs-density));

  /* === RADIUS & SHADOW SYSTEM === */
  --cs-radius: 10px;
  --cs-radius-sm: calc(var(--cs-radius) - 4px);
  --cs-radius-lg: calc(var(--cs-radius) + 6px);

  --cs-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.25), 0 1px 1px rgba(0, 0, 0, 0.1);
  --cs-shadow-2: 0 8px 24px rgba(0, 0, 0, 0.22), 0 2px 8px rgba(0, 0, 0, 0.18);

  /* === MOTION SYSTEM === */
  --cs-transition: 180ms cubic-bezier(0.2, 0.6, 0.2, 1);
  --cs-anim-duration-sm: 160ms;
  --cs-anim-duration-md: 280ms;
  --cs-anim-duration-lg: 420ms;
  --cs-anim-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --cs-anim-ease-in: cubic-bezier(0.32, 0, 0.67, 0);
  --cs-anim-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  /* === Z-INDEX SYSTEM === */
  --cs-z-0: 0;
  --cs-z-1: 1;
  --cs-z-base: 1;
  --cs-z-10: 10;
  --cs-z-20: 20;
  --cs-z-30: 30;
  --cs-z-popover: 30;
  --cs-z-40: 40;
  --cs-z-tooltip: 40;
  --cs-z-50: 50;
  --cs-z-toast: 50;
  --cs-z-60: 60;
  --cs-z-modal: 60;
  --cs-z-70: 70;
  --cs-z-80: 80;
  --cs-z-90: 90;
  --cs-z-100: 100;
  --cs-z-200: 200;
  --cs-z-300: 300;
  --cs-z-400: 400;
  --cs-z-500: 500;
  --cs-z-600: 600;
  --cs-z-700: 700;
  --cs-z-800: 800;
  --cs-z-900: 900;
  --cs-z-999: 999;
  --cs-z-9999: 9999;
  --cs-z-max: 2147483647;

  /* === LAYOUT SYSTEM === */
  --cs-page-max: 1200px;
  --cs-page-pad: var(--cs-space-4);

  /* === GLASS/BACKDROP SYSTEM === */
  --cs-acrylic-blur: 14px;
  --cs-acrylic-tint: rgba(20, 22, 26, 0.55);
  --cs-acrylic-border: rgba(255, 255, 255, 0.06);

  /* === PROGRESSIVE COLOR TOKENS === */
  --cs-brand-oklch: oklch(60% 0.15 255);
}

/* =========================================================
   LIGHT THEME SUPPORT
   Complete theme switching system
   ========================================================= */
@media (prefers-color-scheme: light) {
  @theme {
    --cs-bg: #ffffff;
    --cs-surface: #f7f8fa;
    --cs-elev1: #ffffff;
    --cs-elev2: #ffffff;
    --cs-text: #101217;
    --cs-text-muted: #475066;
    --cs-border: #dfe3ea;
    --cs-brand: #375dfb;
    --cs-brand-contrast: #ffffff;
    --cs-shadow-1:
      0 1px 2px rgba(18, 24, 40, 0.06), 0 1px 1px rgba(18, 24, 40, 0.04);
    --cs-shadow-2:
      0 10px 24px rgba(18, 24, 40, 0.1), 0 2px 8px rgba(18, 24, 40, 0.06);
    --cs-acrylic-tint: rgba(255, 255, 255, 0.65);
    --cs-acrylic-border: rgba(0, 0, 0, 0.06);
  }
}

/* Manual theme override classes */
.cs-theme-light {
  --cs-bg: #ffffff;
  --cs-surface: #f7f8fa;
  --cs-elev1: #ffffff;
  --cs-elev2: #ffffff;
  --cs-text: #101217;
  --cs-text-muted: #475066;
  --cs-border: #dfe3ea;
  --cs-brand: #375dfb;
  --cs-brand-contrast: #ffffff;
  --cs-shadow-1:
    0 1px 2px rgba(18, 24, 40, 0.06), 0 1px 1px rgba(18, 24, 40, 0.04);
  --cs-shadow-2:
    0 10px 24px rgba(18, 24, 40, 0.1), 0 2px 8px rgba(18, 24, 40, 0.06);
  --cs-acrylic-tint: rgba(255, 255, 255, 0.65);
  --cs-acrylic-border: rgba(0, 0, 0, 0.06);
}

.cs-theme-dark {
  --cs-bg: #0b0c0f;
  --cs-surface: #14161a;
  --cs-elev1: #1b1e24;
  --cs-elev2: #21252d;
  --cs-text: #eef1f6;
  --cs-text-muted: #b6bfcc;
  --cs-border: #2a2f39;
  --cs-brand: #4f7cff;
  --cs-brand-contrast: #0b0d12;
}

/* =========================================================
   ACCESSIBILITY UTILITIES
   Screen readers, focus management, keyboard navigation
   ========================================================= */

@utility cs-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@utility cs-focus-ring {
  outline: none;

  &:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-brand, #4f7cff),
      0 0 0 4px color-mix(in srgb, var(--cs-brand, #4f7cff) 20%, transparent);
    transition: box-shadow var(--cs-transition);
  }
}

@utility cs-focus-ring-within {
  &:focus-within {
    box-shadow:
      0 0 0 2px var(--cs-brand, #4f7cff),
      0 0 0 6px color-mix(in srgb, var(--cs-brand, #4f7cff) 22%, transparent);
    border-radius: var(--cs-radius);
  }
}

/* =========================================================
   Z-INDEX UTILITIES
   Complete z-index scale for modern UI layering
   ========================================================= */

@utility cs-z-0 {
  z-index: var(--cs-z-0);
  position: relative;
}
@utility cs-z-1 {
  z-index: var(--cs-z-1);
  position: relative;
}
@utility cs-z-base {
  z-index: var(--cs-z-base);
  position: relative;
}
@utility cs-z-10 {
  z-index: var(--cs-z-10);
  position: relative;
}
@utility cs-z-20 {
  z-index: var(--cs-z-20);
  position: relative;
}
@utility cs-z-30 {
  z-index: var(--cs-z-30);
  position: relative;
}
@utility cs-z-popover {
  z-index: var(--cs-z-popover);
  position: relative;
}
@utility cs-z-40 {
  z-index: var(--cs-z-40);
  position: relative;
}
@utility cs-z-tooltip {
  z-index: var(--cs-z-tooltip);
  position: relative;
}
@utility cs-z-50 {
  z-index: var(--cs-z-50);
  position: relative;
}
@utility cs-z-toast {
  z-index: var(--cs-z-toast);
  position: relative;
}
@utility cs-z-60 {
  z-index: var(--cs-z-60);
  position: relative;
}
@utility cs-z-modal {
  z-index: var(--cs-z-modal);
  position: relative;
}
@utility cs-z-70 {
  z-index: var(--cs-z-70);
  position: relative;
}
@utility cs-z-80 {
  z-index: var(--cs-z-80);
  position: relative;
}
@utility cs-z-90 {
  z-index: var(--cs-z-90);
  position: relative;
}
@utility cs-z-100 {
  z-index: var(--cs-z-100);
  position: relative;
}
@utility cs-z-200 {
  z-index: var(--cs-z-200);
  position: relative;
}
@utility cs-z-300 {
  z-index: var(--cs-z-300);
  position: relative;
}
@utility cs-z-400 {
  z-index: var(--cs-z-400);
  position: relative;
}
@utility cs-z-500 {
  z-index: var(--cs-z-500);
  position: relative;
}
@utility cs-z-600 {
  z-index: var(--cs-z-600);
  position: relative;
}
@utility cs-z-700 {
  z-index: var(--cs-z-700);
  position: relative;
}
@utility cs-z-800 {
  z-index: var(--cs-z-800);
  position: relative;
}
@utility cs-z-900 {
  z-index: var(--cs-z-900);
  position: relative;
}
@utility cs-z-999 {
  z-index: var(--cs-z-999);
  position: relative;
}
@utility cs-z-9999 {
  z-index: var(--cs-z-9999);
  position: relative;
}
@utility cs-z-max {
  z-index: var(--cs-z-max);
  position: relative;
}

/* =========================================================
   CORE UTILITIES & COMPONENTS
   Main utility definitions using modern @utility syntax
   ========================================================= */

/* === LOADING & PROGRESS UTILITIES === */

@utility cs-spinner {
  animation: cs-rotate 1s linear infinite;
  will-change: transform;
}

@utility cs-skeleton {
  background: linear-gradient(
    90deg,
    var(--cs-border) 25%,
    var(--cs-elev1) 50%,
    var(--cs-border) 75%
  );
  background-size: 200% 100%;
  animation: cs-shimmer 1.5s ease-in-out infinite;
  border-radius: var(--cs-radius);
}

@keyframes cs-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

@keyframes cs-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@utility cs-progress {
  width: 100%;
  height: 8px;
  background: var(--cs-border);
  border-radius: var(--cs-radius);
  overflow: hidden;
  position: relative;
}

@utility cs-progress-bar {
  height: 100%;
  background: var(--cs-brand);
  border-radius: inherit;
  transition: width var(--cs-transition);
}

@utility cs-progress-indeterminate {
  background: linear-gradient(90deg, transparent, var(--cs-brand), transparent);
  background-size: 200% 100%;
  animation: cs-progress-slide 1.5s ease-in-out infinite;
}

@keyframes cs-progress-slide {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* === SCROLL & OVERFLOW UTILITIES === */

@utility cs-scroll-smooth {
  scroll-behavior: smooth;
}

@utility cs-scroll-auto {
  scroll-behavior: auto;
}

@utility cs-scrollbar-thin {
  scrollbar-width: thin;
}

@utility cs-scrollbar-none {
  scrollbar-width: none;
  -ms-overflow-style: none;

  &::-webkit-scrollbar {
    display: none;
  }
}

@utility cs-snap-x {
  scroll-snap-type: x mandatory;
}

@utility cs-snap-y {
  scroll-snap-type: y mandatory;
}

@utility cs-snap-both {
  scroll-snap-type: both mandatory;
}

@utility cs-snap-none {
  scroll-snap-type: none;
}

@utility cs-snap-start {
  scroll-snap-align: start;
}

@utility cs-snap-end {
  scroll-snap-align: end;
}

@utility cs-snap-center {
  scroll-snap-align: center;
}

/* === ENHANCED CARD UTILITIES === */

@utility cs-card-product {
  background: var(--cs-elev1);
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius-lg);
  padding: var(--cs-space-6);
  transition: all var(--cs-transition);
  position: relative;
  overflow: hidden;

  &:hover {
    transform: translateY(-2px);
    box-shadow: var(--cs-shadow-2);
    border-color: var(--cs-brand);
  }
}

@utility cs-card-hero {
  background: linear-gradient(135deg, var(--cs-elev1), var(--cs-elev2));
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius-lg);
  padding: var(--cs-space-8);
  text-align: center;
  position: relative;
  overflow: hidden;

  &::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(
      90deg,
      var(--cs-brand),
      var(--cs-success),
      var(--cs-info)
    );
  }
}

@utility cs-card-compact {
  background: var(--cs-elev1);
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius);
  padding: var(--cs-space-4);
  display: flex;
  align-items: center;
  gap: var(--cs-space-3);
  transition: all var(--cs-transition);

  &:hover {
    background: var(--cs-elev2);
  }
}

@utility cs-container-fluid {
  width: 100%;
  padding-left: var(--cs-page-pad);
  padding-right: var(--cs-page-pad);
  margin-left: auto;
  margin-right: auto;
  max-width: none;
  background-color: var(--cs-surface, #14161a);
  color: var(--cs-text, #eef1f6);

  @container (min-width: 768px) {
    padding-left: calc(var(--cs-page-pad) + var(--cs-space-2));
    padding-right: calc(var(--cs-page-pad) + var(--cs-space-2));
  }

  @container (min-width: 1200px) {
    max-width: var(--cs-page-max);
  }
}

/* =========================================================
   LAYOUT UTILITIES
   Modern layout patterns and micro-recipes
   ========================================================= */

@utility cs-stack {
  display: grid;
  gap: var(--cs-space-3);
}

@utility cs-stack-sm {
  display: grid;
  gap: var(--cs-space-2);
}

@utility cs-stack-lg {
  display: grid;
  gap: var(--cs-space-6);
}

@utility cs-cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cs-space-2);
  align-items: center;
}

@utility cs-center {
  display: grid;
  place-items: center;
}

@utility cs-grid-fit {
  display: grid;
  gap: var(--cs-space-3);
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}

@utility cs-aspect {
  aspect-ratio: var(--cs-aspect, 16 / 9);
}

@utility cs-bleed-x {
  margin-inline: calc(var(--cs-page-pad) * -1);

  @container (min-width: 960px) {
    margin-inline: calc((var(--cs-page-pad) + var(--cs-space-3)) * -1);
  }
}

@utility cs-safe-pad {
  padding-inline: max(var(--cs-page-pad), env(safe-area-inset-left));
  padding-inline-end: max(var(--cs-page-pad), env(safe-area-inset-right));
  padding-block-end: max(var(--cs-space-4), env(safe-area-inset-bottom));
}

/* Layout positioning utilities */
@utility cs-sticky {
  position: sticky;
  top: 0;
}

@utility cs-will-change-transform {
  will-change: transform;
}

@utility cs-will-change-opacity {
  will-change: opacity;
}

/* =========================================================
   TYPOGRAPHY UTILITIES
   Fluid typography with line height optimization
   ========================================================= */

@utility cs-text-xs {
  font-size: var(--cs-fs-xs);
  line-height: var(--cs-line);
}

@utility cs-text-sm {
  font-size: var(--cs-fs-sm);
  line-height: var(--cs-line);
}

@utility cs-text-md {
  font-size: var(--cs-fs-md);
  line-height: var(--cs-line);
}

@utility cs-text-lg {
  font-size: var(--cs-fs-lg);
  line-height: calc(var(--cs-line) + 0.05);
}

@utility cs-text-xl {
  font-size: var(--cs-fs-xl);
  line-height: calc(var(--cs-line) + 0.1);
}

@utility cs-text-2xl {
  font-size: var(--cs-fs-2xl);
  line-height: calc(var(--cs-line) + 0.12);
}

@utility cs-font-sans {
  font-family: var(--cs-font-sans);
}

@utility cs-font-mono {
  font-family: var(--cs-font-mono);
}

/* =========================================================
   GRID UTILITIES
   Advanced grid system with auto-fit patterns
   ========================================================= */

@utility cs-grid-auto-fit-sm {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--cs-space-4);
}

@utility cs-grid-auto-fit-md {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--cs-space-4);
}

@utility cs-grid-auto-fit-lg {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: var(--cs-space-4);
}

@utility cs-grid-12 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--cs-space-4);
}

/* Fixed grid columns */
@utility cs-grid-cols-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--cs-space-4);
}

@utility cs-grid-cols-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--cs-space-4);
}

@utility cs-grid-cols-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--cs-space-4);
}

@utility cs-grid-cols-6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--cs-space-4);
}

@utility cs-grid-cols-8 {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: var(--cs-space-4);
}

@utility cs-grid-cols-9 {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  gap: var(--cs-space-4);
}

@utility cs-grid-cols-12 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--cs-space-4);
}

/* Column spanning utilities for use within cs-grid-12 */
@utility cs-col-1 {
  grid-column: span 1;
}
@utility cs-col-2 {
  grid-column: span 2;
}
@utility cs-col-3 {
  grid-column: span 3;
}
@utility cs-col-4 {
  grid-column: span 4;
}
@utility cs-col-5 {
  grid-column: span 5;
}
@utility cs-col-6 {
  grid-column: span 6;
}
@utility cs-col-7 {
  grid-column: span 7;
}
@utility cs-col-8 {
  grid-column: span 8;
}
@utility cs-col-9 {
  grid-column: span 9;
}
@utility cs-col-10 {
  grid-column: span 10;
}
@utility cs-col-11 {
  grid-column: span 11;
}
@utility cs-col-12 {
  grid-column: span 12;
}

/* =========================================================
   SPACING UTILITIES
   Gap, padding, margin utilities using design tokens
   ========================================================= */

@utility cs-space-1 {
  gap: var(--cs-space-1);
}
@utility cs-space-2 {
  gap: var(--cs-space-2);
}
@utility cs-space-3 {
  gap: var(--cs-space-3);
}
@utility cs-space-4 {
  gap: var(--cs-space-4);
}
@utility cs-space-6 {
  gap: var(--cs-space-6);
}
@utility cs-space-8 {
  gap: var(--cs-space-8);
}

@utility cs-p-1 {
  padding: var(--cs-space-1);
}
@utility cs-p-2 {
  padding: var(--cs-space-2);
}
@utility cs-p-3 {
  padding: var(--cs-space-3);
}
@utility cs-p-4 {
  padding: var(--cs-space-4);
}
@utility cs-p-6 {
  padding: var(--cs-space-6);
}
@utility cs-p-8 {
  padding: var(--cs-space-8);
}

@utility cs-m-1 {
  margin: var(--cs-space-1);
}
@utility cs-m-2 {
  margin: var(--cs-space-2);
}
@utility cs-m-3 {
  margin: var(--cs-space-3);
}
@utility cs-m-4 {
  margin: var(--cs-space-4);
}
@utility cs-m-6 {
  margin: var(--cs-space-6);
}
@utility cs-m-8 {
  margin: var(--cs-space-8);
}

/* Directional spacing utilities */
@utility cs-px-1 {
  padding-inline: var(--cs-space-1);
}
@utility cs-px-2 {
  padding-inline: var(--cs-space-2);
}
@utility cs-px-3 {
  padding-inline: var(--cs-space-3);
}
@utility cs-px-4 {
  padding-inline: var(--cs-space-4);
}

@utility cs-py-1 {
  padding-block: var(--cs-space-1);
}
@utility cs-py-2 {
  padding-block: var(--cs-space-2);
}
@utility cs-py-3 {
  padding-block: var(--cs-space-3);
}
@utility cs-py-4 {
  padding-block: var(--cs-space-4);
}

/* === TYPOGRAPHY UTILITIES === */

@utility cs-text-balance {
  text-wrap: var(--cs-text-balance);
}

@utility cs-text-gradient {
  background: linear-gradient(135deg, var(--cs-brand), var(--cs-success));
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

@utility cs-prose {
  max-width: 65ch;
  line-height: var(--cs-leading-relaxed);

  & h1,
  & h2,
  & h3 {
    text-wrap: var(--cs-text-balance);
    margin-top: 2em;
    margin-bottom: 1em;
  }

  & p {
    margin-bottom: 1.25em;
  }

  & ul,
  & ol {
    padding-left: 2em;
    margin-bottom: 1.25em;
  }

  & blockquote {
    border-left: 4px solid var(--cs-border);
    padding-left: 1em;
    font-style: italic;
    margin: 1.5em 0;
  }
}

@utility cs-font-feature-numbers {
  font-feature-settings: 'tnum';
}

/* =========================================================
   REDUCED MOTION SUPPORT & ACCESSIBILITY
   Full accessibility compliance for motion-sensitive users
   ========================================================= */

@utility cs-surface {
  background: var(--cs-surface);
  color: var(--cs-text);
}

@utility cs-surface-elevated {
  background: var(--cs-elev1);
  color: var(--cs-text);
}

@utility cs-surface-raised {
  background: var(--cs-elev2);
  color: var(--cs-text);
}

@utility cs-bg-brand {
  background-color: var(--cs-brand, #4f7cff);
  color: var(--cs-brand-ink, #0b0d12);
}

/* Radius utilities */
@utility cs-radius-sm {
  border-radius: var(--cs-radius-sm);
}
@utility cs-radius {
  border-radius: var(--cs-radius);
}
@utility cs-radius-lg {
  border-radius: var(--cs-radius-lg);
}

/* Shadow utilities */
@utility cs-shadow {
  box-shadow: var(--cs-shadow-1);
}
@utility cs-shadow-lg {
  box-shadow: var(--cs-shadow-2);
}

/* =========================================================
   CARD COMPONENTS
   Complete card system with variants
   ========================================================= */

@utility cs-card {
  background: var(--cs-surface);
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius);
  padding: var(--cs-space-4);
  box-shadow: var(--cs-shadow-1);
}

@utility cs-card-elevated {
  background: var(--cs-elev1);
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius);
  padding: var(--cs-space-4);
  box-shadow: var(--cs-shadow-2);
}

/* =========================================================
   BUTTON COMPONENTS
   Complete button system with variants
   ========================================================= */

@utility cs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--cs-space-2) var(--cs-space-4);
  border-radius: var(--cs-radius);
  font-weight: 500;
  text-decoration: none;
  transition: var(--cs-transition);
  cursor: pointer;
  border: 0;
  min-height: 44px; /* Touch target compliance */
  min-width: 44px;
}

@utility cs-btn-primary {
  background: var(--cs-brand);
  color: var(--cs-brand-contrast);

  &:hover {
    background: color-mix(in srgb, var(--cs-brand) 85%, black);
  }

  &:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-brand),
      0 0 0 4px color-mix(in srgb, var(--cs-brand) 25%, transparent);
  }
}

@utility cs-btn-secondary {
  background: var(--cs-elev1);
  color: var(--cs-text);
  border: 1px solid var(--cs-border);

  &:hover {
    background: var(--cs-elev2);
  }

  &:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-border),
      0 0 0 4px color-mix(in srgb, var(--cs-text) 15%, transparent);
  }
}

@utility cs-btn-outline {
  background: transparent;
  color: var(--cs-brand);
  border: 1px solid var(--cs-brand);

  &:hover {
    background: var(--cs-brand);
    color: var(--cs-brand-contrast);
  }

  &:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-brand),
      0 0 0 4px color-mix(in srgb, var(--cs-brand) 25%, transparent);
  }
}

@utility cs-btn-ghost {
  background: transparent;
  color: var(--cs-text);
  border: 1px solid transparent;

  &:hover {
    background: var(--cs-elev1);
    border-color: var(--cs-border);
  }

  &:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow:
      0 0 0 2px var(--cs-border),
      0 0 0 4px color-mix(in srgb, var(--cs-text) 15%, transparent);
  }
}

/* Button sizes */
@utility cs-btn-sm {
  padding: var(--cs-space-1) var(--cs-space-3);
  font-size: var(--cs-fs-sm);
  min-height: 36px;
  min-width: 36px;
}

@utility cs-btn-lg {
  padding: var(--cs-space-3) var(--cs-space-6);
  font-size: var(--cs-fs-lg);
  min-height: 52px;
  min-width: 52px;
}

/* =========================================================
   ALERT COMPONENTS
   Semantic feedback alerts with state colors
   ========================================================= */

@utility cs-alert {
  display: flex;
  align-items: center;
  gap: var(--cs-space-3);
  padding: var(--cs-space-4);
  border: 1px solid var(--cs-border);
  border-radius: var(--cs-radius);
  background: var(--cs-surface);
}

@utility cs-alert-info {
  border-color: var(--cs-info, #0ea5e9);
  background: color-mix(in srgb, var(--cs-info, #0ea5e9) 8%, var(--cs-surface));
  color: var(--cs-info, #0ea5e9);
}

@utility cs-alert-success {
  border-color: var(--cs-success, #22c55e);
  background: color-mix(
    in srgb,
    var(--cs-success, #22c55e) 8%,
    var(--cs-surface)
  );
  color: var(--cs-success, #22c55e);
}

@utility cs-alert-warning {
  border-color: var(--cs-warning, #f59e0b);
  background: color-mix(
    in srgb,
    var(--cs-warning, #f59e0b) 8%,
    var(--cs-surface)
  );
  color: var(--cs-warning, #f59e0b);
}

@utility cs-alert-danger {
  border-color: var(--cs-danger, #ef4444);
  background: color-mix(
    in srgb,
    var(--cs-danger, #ef4444) 8%,
    var(--cs-surface)
  );
  color: var(--cs-danger, #ef4444);
}

/* =========================================================
   BADGE COMPONENTS
   Status badges and tags with variants
   ========================================================= */

@utility cs-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--cs-space-1);
  padding: var(--cs-space-1) var(--cs-space-2);
  border-radius: var(--cs-radius-sm);
  font-size: var(--cs-fs-xs);
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

@utility cs-badge-primary {
  background: var(--cs-brand);
  color: var(--cs-brand-ink);
}

@utility cs-badge-secondary {
  background: var(--cs-text-muted);
  color: var(--cs-bg);
}

@utility cs-badge-success {
  background: var(--cs-success, #22c55e);
  color: white;
}

@utility cs-badge-warning {
  background: var(--cs-warning, #f59e0b);
  color: white;
}

@utility cs-badge-danger {
  background: var(--cs-danger, #ef4444);
  color: white;
}

@utility cs-badge-outline {
  background: transparent;
  border: 1px solid currentColor;
}

/* =========================================================
   ACRYLIC SURFACE COMPONENT
   Modern glass effect with backdrop filtering
   ========================================================= */

@utility cs-acrylic {
  background: var(--cs-acrylic-tint, rgba(20, 22, 26, 0.55));
  border: 1px solid var(--cs-acrylic-border, rgba(255, 255, 255, 0.06));
  border-radius: var(--cs-radius, 10px);
  box-shadow: var(--cs-shadow-2);
  -webkit-backdrop-filter: saturate(140%) blur(var(--cs-acrylic-blur, 14px));
  backdrop-filter: saturate(140%) blur(var(--cs-acrylic-blur, 14px));
  background-clip: padding-box;

  @media (max-width: 480px) {
    --cs-acrylic-blur: 8px;
    box-shadow: var(--cs-shadow-1);
  }
}

/* =========================================================
   ANIMATION UTILITIES
   Performance-optimized micro-interactions
   ========================================================= */

@utility cs-pulse {
  animation: csPulse 1.2s ease-in-out infinite;
  will-change: transform, opacity;
}

@keyframes csPulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.05);
    opacity: 0.75;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@utility cs-fade-delayed {
  opacity: 0;
  animation: csFadeIn var(--cs-anim-duration-lg, 420ms)
    var(--cs-anim-ease-out, ease-out) forwards;
  animation-delay: 0.4s;
}

@keyframes csFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@utility cs-shimmer {
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    90deg,
    var(--cs-elev1),
    var(--cs-elev2),
    var(--cs-elev1)
  );
  background-size: 200% 100%;
  animation: csShimmer 2s linear infinite;
}

@keyframes csShimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

@utility cs-spin {
  animation: csSpin 1s linear infinite;
}

@keyframes csSpin {
  to {
    transform: rotate(360deg);
  }
}

/* Glow effect utility */
@utility cs-glow {
  box-shadow: 0 0 0 transparent;
  transition: box-shadow 0.4s ease-out;

  &.cs-glow-active {
    box-shadow:
      0 0 0 3px color-mix(in srgb, var(--cs-brand, #4f7cff) 40%, transparent),
      0 0 12px color-mix(in srgb, var(--cs-brand, #4f7cff) 65%, transparent);
  }
}

/* =========================================================
   RESPONSIVE VISIBILITY UTILITIES
   Container query based visibility controls
   ========================================================= */

@container (max-width: 640px) {
  .cs-hide-mobile {
    display: none !important;
  }
  .cs-show-mobile {
    display: block !important;
  }
}

@container (min-width: 641px) and (max-width: 1024px) {
  .cs-hide-tablet {
    display: none !important;
  }
  .cs-show-tablet {
    display: block !important;
  }
}

@container (min-width: 1025px) {
  .cs-hide-desktop {
    display: none !important;
  }
  .cs-show-desktop {
    display: block !important;
  }
}

/* =========================================================
   PROGRESSIVE ENHANCEMENT
   Modern CSS features with fallbacks
   ========================================================= */

/* Progressive enhancement for color-mix support */
@supports not (color: color-mix(in srgb, red 50%, blue)) {
  .cs-btn-primary:hover {
    background: rgba(79, 124, 255, 0.85);
  }

  .cs-alert-info {
    background: rgba(14, 165, 233, 0.08);
  }

  .cs-alert-success {
    background: rgba(34, 197, 94, 0.08);
  }

  .cs-alert-warning {
    background: rgba(245, 158, 11, 0.08);
  }

  .cs-alert-danger {
    background: rgba(239, 68, 68, 0.08);
  }
}

/* Fallback for backdrop-filter */
@supports not (backdrop-filter: blur(1px)) {
  .cs-acrylic {
    background: color-mix(in srgb, var(--cs-acrylic-tint) 80%, var(--cs-elev1));
  }
}

/* Progressive enhancement for oklch colors */
@supports (color: oklch(60% 0.2 250)) {
  .cs-theme {
    --cs-brand-oklch: oklch(from var(--cs-brand) l c h);
  }
}

/* =========================================================
   ACCESSIBILITY OPTIMIZATIONS
   Reduced motion and high contrast support
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  .cs-pulse,
  .cs-shimmer,
  .cs-fade-delayed,
  .cs-spin {
    animation: none !important;
  }

  .cs-btn:hover,
  .cs-focus-ring:focus-visible,
  .cs-focus-ring-within:focus-within {
    transition: none !important;
  }

  .cs-glow {
    transition: none !important;
  }
}

@media (prefers-contrast: high) {
  .cs-theme {
    --cs-border: currentColor;
    --cs-text-muted: var(--cs-text);
  }

  .cs-btn {
    border: 2px solid currentColor;
  }

  .cs-card,
  .cs-card-elevated {
    border: 2px solid var(--cs-border);
  }
}
