@import 'tailwindcss'; @source '../views'; @source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php'; @custom-variant dark (&:where(.dark, .dark *)); /* inno-projekt Design System - The Art of Balance Typography: Commissioner als einzige Hausschrift für Headlines und Body */ @theme { /* Font Family */ --font-sans: 'Commissioner', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --font-heading: 'Commissioner', ui-sans-serif, system-ui, sans-serif; --font-body: 'Commissioner', ui-sans-serif, system-ui, sans-serif; /* Brand Colors - Premium Textures */ --color-background: #F8F9FA; /* Soft paper-like background */ --color-foreground: #474844; /* 220 7% 28% */ --color-card: rgba(255, 255, 255); /* Semi-transparent for glassmorphism */ --color-card-solid: #ffffff; /* Solid white when needed */ --color-card-foreground: #474844; --color-popover: #ffffff; --color-popover-foreground: #474844; /* Primary Brand Blue #0088cc - Modern Premium Palette */ --color-primary: #0088cc; /* Modern primary */ --color-primary-foreground: #ffffff; --color-primary-light: #009bdd; /* Gradient start */ --color-primary-dark: #0071a8; /* Gradient end */ --color-primary-darker: #005580; /* Deeper variant */ --color-primary-glow: #33a3dd; /* Hover/glow state */ /* Premium Gradient - From #009bdd to #0071a8 */ --gradient-premium: linear-gradient(135deg, #009bdd 0%, #0071a8 100%); --gradient-premium-hover: linear-gradient(135deg, #33b4e6 0%, #0088cc 100%); --gradient-subtle: linear-gradient(135deg, rgba(0, 155, 221, 0.05) 0%, rgba(0, 113, 168, 0.02) 100%); /* Secondary Anthracite #474844 */ --color-secondary: #f1f1f1; /* Light gray as secondary */ --color-secondary-foreground: #474844; --color-muted: #f8f8f8; /* 220 7% 97% */ --color-muted-foreground: #606060; /* 220 7% 50% */ --color-accent: #e6f4fc; /* 206 100% 96% */ --color-accent-foreground: #006eb7; --color-destructive: #dc3545; /* 0 84.2% 60.2% */ --color-destructive-foreground: #ffffff; --color-border: #e0e0e0; /* 220 7% 90% */ --color-input: #f1f1f1; /* 220 7% 95% */ --color-ring: #006eb7; /* Section Background Colors for Alternating Pattern */ --color-section-bg-white: #ffffff; --color-section-bg-gray: #F8F9FA; /* Radius */ --radius: 0.5rem; } @layer theme { .dark { --color-background: #141414; /* 220 7% 8% */ --color-foreground: #fafafa; --color-card: #1f1f1f; --color-card-foreground: #fafafa; --color-popover: #1f1f1f; --color-popover-foreground: #fafafa; --color-primary: #2196f3; --color-primary-foreground: #141414; --color-secondary: #262626; --color-secondary-foreground: #fafafa; --color-muted: #262626; --color-muted-foreground: #a6a6a6; --color-accent: #262626; --color-accent-foreground: #fafafa; --color-destructive: #b71c1c; --color-destructive-foreground: #fafafa; --color-border: #333333; --color-input: #333333; --color-ring: #2196f3; } } @layer base { html { scroll-behavior: smooth; } body { @apply bg-background text-foreground antialiased; font-family: var(--font-body); font-feature-settings: "kern" 1, "liga" 1; /* Subtle paper texture pattern */ background-image: radial-gradient(circle at 1px 1px, rgba(0, 0, 0, 0.015) 1px, transparent 0); background-size: 40px 40px; background-attachment: fixed; } /* Typography System - Premium & Elegant */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); @apply tracking-tight; } h1 { @apply text-5xl lg:text-6xl font-semibold leading-none; } h2 { @apply text-4xl lg:text-5xl font-medium leading-tight; letter-spacing: -0.02em; } h3 { @apply text-3xl lg:text-4xl font-medium leading-tight; } h4 { @apply text-2xl lg:text-3xl font-normal leading-snug; } h5 { @apply text-xl lg:text-2xl font-normal leading-snug; } p { @apply leading-relaxed; } /* Premium heading variants */ .heading-elegant { font-weight: 500; letter-spacing: -0.02em; } .heading-light { font-weight: 400; letter-spacing: -0.01em; } } @layer utilities { /* Section Background Colors */ .section-bg-white { background-color: var(--color-section-bg-white); } .section-bg-gray { background: linear-gradient(135deg, #EBEEF0 0%, #F8F9FA 100%); } /* Premium Section Spacing - Generous Whitespace */ .section-spacing { @apply py-20 lg:py-28; } .section-spacing-large { @apply py-24 lg:py-32; } .section-spacing-compact { @apply py-16 lg:py-20; } /* Hero Background Gradient - Subtle diagonal from cool gray to white */ .hero-gradient { background: linear-gradient(135deg, #e2e8ee 0%, #ffffff 100%); } /* Premium Service Card - Prominenter Style für Kernleistungen */ .service-card-premium { position: relative; background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(10px) saturate(180%); -webkit-backdrop-filter: blur(10px) saturate(180%); border: 1px solid rgba(0, 0, 0, 0.1); border-radius: 1rem; padding: 2rem; box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.08), 0 4px 20px -4px rgba(0, 136, 204, 0.15); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .service-card-premium:hover { transform: translateY(-8px); box-shadow: 0 20px 20px -15px rgba(0, 136, 204, 0.5); } .service-card-premium .service-icon { position: relative; width: 4rem; height: 4rem; background: var(--gradient-premium); border-radius: 1rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 20px rgba(0, 155, 221, 0.15), 0 0 40px rgba(0, 155, 221, 0.1), 0 4px 20px -4px rgba(0, 136, 204, 0.2); transition: all 0.3s ease; overflow: hidden; } /* Icon Shine Animation */ .service-card-premium .service-icon::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient( 45deg, transparent 30%, rgba(255, 255, 255, 0.2) 50%, transparent 70% ); animation: icon-shine 5s ease-in-out infinite; z-index: 1; } .service-card-premium .service-icon svg { position: relative; z-index: 2; } /* Service Card mit Hintergrundbild */ .service-card-with-bg { position: relative; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px) saturate(180%); -webkit-backdrop-filter: blur(10px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 1rem; padding: 2rem; box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.15), 0 4px 20px -4px rgba(0, 136, 204, 0.2); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; min-height: 280px; display: flex; flex-direction: column; justify-content: flex-end; } .service-card-with-bg:hover { transform: translateY(-4px); box-shadow: 0 8px 30px -4px rgba(0, 0, 0, 0.2), 0 12px 40px -8px rgba(0, 136, 204, 0.35); } .service-card-with-bg .service-icon-white { position: relative; width: 4rem; height: 4rem; background: var(--color-white); border-radius: 1rem; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 20px rgba(0, 155, 221, 0.15), 0 0 40px rgba(0, 155, 221, 0.1), 0 4px 20px -4px rgba(0, 136, 204, 0.2); transition: all 0.3s ease; overflow: hidden; color:#2196f3; } .service-card-with-bg .service-icon-white svg { position: relative; z-index: 2; } .service-card-with-bg h3 { font-size: 1.25rem; font-weight: 600; margin-bottom: 0.5rem; line-height: 1.4; } /* Success Story Cards */ .success-story-card { position: relative; background: var(--color-card-solid); border-radius: 1rem; overflow: hidden; box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.08), 0 4px 20px -4px rgba(0, 136, 204, 0.15); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column; } .success-story-card:hover { transform: translateY(-8px); box-shadow: 0 8px 30px -4px rgba(0, 0, 0, 0.15), 0 12px 40px -8px rgba(0, 136, 204, 0.3); } .success-story-image { position: relative; width: 100%; height: 240px; overflow: hidden; } .success-story-overlay { position: absolute; inset: 0; background: linear-gradient( to bottom, transparent 0%, rgba(0, 0, 0, 0.05) 50%, rgba(0, 136, 204, 0.08) 100% ); z-index: 1; } .success-story-content { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; } .success-story-card h3 { font-size: 1.25rem; line-height: 1.4; } /* Success Story Card Hover Effects */ .success-story-card:hover .success-story-overlay { background: linear-gradient( to bottom, transparent 0%, rgba(0, 0, 0, 0.02) 50%, rgba(0, 136, 204, 0.12) 100% ); } /* Testimonials Section */ .testimonial-card-featured { position: relative; background: var(--color-card-solid); border-radius: 1rem; padding: 2rem; box-shadow: 0 4px 20px -4px rgba(0, 0, 0, 0.1), 0 8px 40px -8px rgba(0, 136, 204, 0.2); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .testimonial-card-featured:hover { transform: translateY(-4px); box-shadow: 0 8px 30px -4px rgba(0, 0, 0, 0.15), 0 12px 50px -8px rgba(0, 136, 204, 0.3); } .testimonial-card-compact { position: relative; background: var(--color-card-solid); border-radius: 1.25rem; padding: 2rem; box-shadow: 0 2px 12px -2px rgba(0, 0, 0, 0.08), 0 4px 24px -4px rgba(0, 136, 204, 0.15); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); height: 100%; display: flex; flex-direction: column; } .testimonial-card-compact:hover { transform: translateY(-4px); box-shadow: 0 6px 24px -4px rgba(0, 0, 0, 0.12), 0 10px 40px -8px rgba(0, 136, 204, 0.25); } .testimonial-quote-icon { margin-bottom: 1.5rem; } .testimonial-quote-icon-small { margin-bottom: 1rem; } .testimonial-text-featured { font-size: 1.375rem; line-height: 1.6; color: var(--color-foreground); font-weight: 500; margin-bottom: 2rem; font-style: italic; } .testimonial-text-compact { font-size: 1rem; line-height: 1.6; color: var(--color-foreground); font-weight: 500; margin-bottom: 1.5rem; font-style: italic; flex: 1; } .testimonial-author { display: flex; align-items: center; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(0, 0, 0, 0.08); } .testimonial-author-compact { display: flex; align-items: center; gap: 0.75rem; padding-top: 1rem; border-top: 1px solid rgba(0, 0, 0, 0.08); margin-top: auto; } .testimonial-avatar { flex-shrink: 0; } /* Testimonial Slider Styles */ .testimonial-card-slider { position: relative; background: var(--color-card-solid); border-radius: 1.75rem; padding: 2rem; box-shadow: 0 4px 24px -4px rgba(0, 0, 0, 0.12), 0 8px 48px -8px rgba(0, 136, 204, 0.25); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .testimonial-quote-icon-large { margin-bottom: 2rem; } .testimonial-text-slider { font-size: 1.15rem; line-height: 1.6; color: var(--color-foreground); font-weight: 500; margin-bottom: 1.5rem; font-style: italic; } .testimonial-author-slider { display: flex; align-items: center; gap: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(0, 0, 0, 0.08); } /* Navigation Buttons */ .testimonial-nav-btn { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.2); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 50%; color: white; transition: all 0.3s ease; cursor: pointer; } .testimonial-nav-btn:hover { background: rgba(255, 255, 255, 0.3); transform: scale(1.05); } /* Dots Indicator */ .testimonial-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, 0.3); border: 2px solid rgba(255, 255, 255, 0.5); transition: all 0.3s ease; cursor: pointer; } .testimonial-dot.active { width: 32px; border-radius: 5px; background: rgba(255, 255, 255, 0.9); border-color: rgba(255, 255, 255, 1); } .testimonial-dot:hover:not(.active) { background: rgba(255, 255, 255, 0.5); transform: scale(1.2); } /* Premium Sticky Header */ .sticky-header { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); transform: translateY(0); } /* Offset für fixed header - damit Content nicht darunter verschwindet */ body main { padding-top: 64px; /* 4rem = h-16 vom header */ } .sticky-header.scrolled { background: rgba(248, 249, 250, 0.98) !important; backdrop-filter: blur(16px) saturate(180%); box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.08), 0 4px 16px -4px rgba(0, 136, 204, 0.12), 0 8px 24px -8px rgba(0, 136, 204, 0.08); border-bottom-color: rgba(0, 136, 204, 0.15); } /* Slide-Down Animation beim ersten Scroll */ .sticky-header.hide { transform: translateY(-100%); } /* Scroll Progress Indicator */ .scroll-progress-bar { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--color-primary-light) 0%, var(--color-primary) 50%, var(--color-primary-dark) 100%); width: 0%; z-index: 99999; transition: width 0.1s ease-out, opacity 0.3s ease; opacity: 0; box-shadow: 0 0 10px rgba(0, 155, 221, 0.5), 0 0 20px rgba(0, 155, 221, 0.3); } .scroll-progress-bar.visible { opacity: 1; } /* Smooth Progress Animation */ @media (prefers-reduced-motion: no-preference) { .scroll-progress-bar { transition: width 0.15s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease; } } /* Für Nutzer mit Motion-Präferenz */ @media (prefers-reduced-motion: reduce) { .scroll-progress-bar { transition: opacity 0.3s ease; } } /* Sicherere Cross-Browser-Variante von Methode 2: */ .gradient-border-radius-safe { position: relative; border: 1px solid transparent; /* * Zwei Hintergründe: * 1. Die Inhaltsfarbe (z.B. weiß) * 2. Der Verlauf (3x breiter für Animation) */ background-image: linear-gradient(white, white), /* Innerer Hintergrund */ linear-gradient(90deg, #00b3ff50 0%, #00568150 25%, #00b3ff40 50%, #00568150 75%, #00b3ff50 100%); /* Äußerer Verlauf */ /* Den Ursprung für beide festlegen */ background-origin: border-box; /* * Den Clip-Pfad für beide festlegen: * 1. Der weiße Hintergrund füllt nur die padding-box (Inhalt). * 2. Der Verlauf füllt die border-box (alles). */ background-clip: padding-box, border-box; /* Größeren Hintergrund für Animation */ background-size: 100%, 300% 100%; background-position: 0 0, 0% 0; /* Animation für Gradient-Bewegung */ animation: border-gradient-slide 8s ease-in-out infinite alternate; } /* Animierter Border Gradient - Sliding */ @keyframes border-gradient-slide { 0%, 100% { background-position: 0 0, 0% 0; } 50% { background-position: 0 0, 100% 0; } } /* Hover: Animation pausieren */ .gradient-border-radius-safe:hover { animation-play-state: paused; } @keyframes icon-shine { 0%, 100% { transform: translateX(-150%) translateY(-150%) rotate(35deg); } 40%, 60% { transform: translateX(150%) translateY(150%) rotate(35deg); } } /* Hero Image Shine Effect */ .hero-image-shine { position: relative; overflow: hidden; } .hero-image-shine::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient( 45deg, transparent 30%, rgba(255, 255, 255, 0.3) 50%, transparent 70% ); animation: hero-shine 10s ease-in-out infinite; pointer-events: none; z-index: 10; } @keyframes hero-shine { 0%, 100% { transform: translateX(-150%) translateY(-150%) rotate(35deg); } 40%, 60% { transform: translateX(150%) translateY(150%) rotate(35deg); } } /* Button Shine Effect */ .btn-shine { position: relative; overflow: hidden; } .btn-shine::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient( 45deg, transparent 30%, rgba(255, 255, 255, 0.2) 50%, transparent 70% ); animation: btn-shine 8s ease-in-out infinite; pointer-events: none; z-index: 1; } /* Weißer Button Shine - mit leichtem Blau/Grau */ .btn-shine.bg-white::before { background: linear-gradient( 45deg, transparent 30%, rgba(0, 136, 204, 0.2) 50%, transparent 70% ); } .btn-shine > * { position: relative; z-index: 2; } @keyframes btn-shine { 0%, 100% { transform: translateX(-150%) translateY(-150%) rotate(35deg); } 40%, 60% { transform: translateX(150%) translateY(150%) rotate(35deg); } } /* Partner Card Glow Effect - subtiler pulsierender Glow */ .card-glow { position: relative; animation: card-glow-pulse 4s ease-in-out infinite; } @keyframes card-glow-pulse { 0%, 100% { box-shadow: 0 -4px 20px -4px rgba(0, 136, 204, 0.10), 0 -8px 0 0 rgba(0, 136, 204, 0); } 50% { box-shadow: 0 -4px 20px -4px rgba(0, 136, 204, 0.25), 0 -15px 20px 0 rgba(0, 136, 204, 0.15); } } .card-glow:hover { animation: none; } .service-card-premium:hover .service-icon { box-shadow: 0 0 25px rgba(0, 155, 221, 0.25), 0 0 50px rgba(0, 155, 221, 0.15), 0 10px 30px -10px rgba(0, 136, 204, 0.3); transform: scale(1.05); } .service-card-premium h3 { font-family: var(--font-heading); font-weight: 600; font-size: 1.125rem; margin-bottom: 0.75rem; transition: color 0.3s ease; } .service-card-premium:hover h3 { color: var(--color-primary); } /* Premium Scroll Animations - Optimiert und subtil */ .scroll-animate { opacity: 0; will-change: opacity, transform; transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .scroll-animate.is-visible { opacity: 1; } /* Fade In - Sanftes Einblenden */ .fade-in { opacity: 0; will-change: opacity; transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .fade-in.is-visible { opacity: 1; } /* Slide from Bottom - Subtiler */ .slide-up { opacity: 0; transform: translateY(30px); will-change: opacity, transform; transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .slide-up.is-visible { opacity: 1; transform: translateY(0); } /* Slide from Left - Subtiler */ .slide-right { opacity: 0; transform: translateX(-30px); will-change: opacity, transform; transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .slide-right.is-visible { opacity: 1; transform: translateX(0); } /* Slide from Right - Subtiler */ .slide-left { opacity: 0; transform: translateX(30px); will-change: opacity, transform; transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .slide-left.is-visible { opacity: 1; transform: translateX(0); } /* Scale In - Sehr subtil */ .scale-in { opacity: 0; transform: scale(0.97); will-change: opacity, transform; transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .scale-in.is-visible { opacity: 1; transform: scale(1); } /* Staggered delays - Für gestaffelte Animationen */ .delay-100 { transition-delay: 0.1s; } .delay-200 { transition-delay: 0.2s; } .delay-300 { transition-delay: 0.3s; } .delay-400 { transition-delay: 0.4s; } .delay-500 { transition-delay: 0.5s; } .delay-600 { transition-delay: 0.6s; } /* Reduziere Motion für Nutzer mit Präferenz */ @media (prefers-reduced-motion: reduce) { .scroll-animate, .fade-in, .slide-up, .slide-right, .slide-left, .scale-in { transition: none !important; opacity: 1 !important; transform: none !important; } } /* Glassmorphism Effects - Frosted Glass */ .glass-card { background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(12px) saturate(180%); -webkit-backdrop-filter: blur(12px) saturate(180%); border: 1px solid rgba(0, 0, 0, 0.08); } .glass-card-light { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); border: 1px solid rgba(0, 0, 0, 0.06); } .glass-card-strong { background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(10px) saturate(180%); -webkit-backdrop-filter: blur(10px) saturate(180%); border: 1px solid rgba(0, 0, 0, 0.08); } /* Metallic Shimmer Effect (inspired by Möbius band) */ .shimmer-effect { position: relative; overflow: hidden; } .shimmer-effect::after { content: ''; position: absolute; top: -50%; right: -50%; bottom: -50%; left: -50%; background: linear-gradient( to bottom, transparent, rgba(255, 255, 255, 0.1) 50%, transparent ); transform: rotate(45deg); animation: shimmer 3s infinite; } @keyframes shimmer { 0%, 100% { transform: translateX(-150%) translateY(-150%) rotate(35deg); } 40%, 60% { transform: translateX(150%) translateY(150%) rotate(35deg); } } /* Hover shimmer for cards */ .hover-shimmer { position: relative; overflow: hidden; } .hover-shimmer::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.3), transparent ); transition: left 0.5s ease; pointer-events: none; } .hover-shimmer:hover::after { left: 100%; } /* Premium Gradient Backgrounds */ .bg-gradient-premium { background: var(--gradient-premium); background-size: 100% 100%; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .bg-gradient-premium:hover { background: var(--gradient-premium-hover); transform: translateY(-1px); box-shadow: 0 10px 40px -10px rgba(0, 136, 204, 0.4); } .bg-gradient-premium-safe { background: var(--gradient-premium); background-size: 100% 100%; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .bg-gradient-subtle { background: var(--gradient-subtle); } /* Text Gradient */ .text-gradient { background: var(--gradient-premium); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .text-gradient-premium { background: var(--gradient-premium); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: 600; } /* Shadow Effects - Updated for new primary color */ .shadow-elegant { box-shadow: 0 10px 30px -10px rgba(0, 136, 204, 0.2); } .shadow-elegant-white { box-shadow: 0 10px 30px -10px rgba(255, 255, 255, 0.2); } .shadow-white { box-shadow: 0 10px 30px -10px rgba(255, 255, 255, 0.4); } .shadow-card { box-shadow: 0 2px 8px -2px rgba(0, 0, 0, 0.08), 0 4px 20px -4px rgba(0, 136, 204, 0.15); } .shadow-premium { box-shadow: 0 20px 60px -15px rgba(0, 136, 204, 0.3); } /* Glow Effects - Inspired by Möbius band's luminous edge */ .glow-soft { box-shadow: 0 0 10px rgba(0, 155, 221, 0.15), 0 0 20px rgba(0, 155, 221, 0.1), 0 4px 10px -4px rgba(0, 136, 204, 0.2); } .glow-medium { box-shadow: 0 0 20px rgba(0, 155, 221, 0.25), 0 0 40px rgba(0, 155, 221, 0.15), 0 10px 20px -10px rgba(0, 136, 204, 0.3); } .glow-strong { box-shadow: 0 0 30px rgba(0, 155, 221, 0.35), 0 0 60px rgba(0, 155, 221, 0.2), 0 0 90px rgba(0, 113, 168, 0.1), 0 10px 10px -10px rgba(0, 136, 204, 0.4); } /* Hover Glow Enhancement */ .hover-glow { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .hover-glow:hover { box-shadow: 0 0 30px rgba(0, 155, 221, 0.4), 0 0 60px rgba(0, 155, 221, 0.25), 0 0 90px rgba(0, 113, 168, 0.15), 0 10px 50px -10px rgba(0, 136, 204, 0.5); transform: translateY(-2px); } .hover-glow-white { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .hover-glow-white:hover { box-shadow: 0 0 15px rgba(255, 255, 255, 0.4), 0 0 30px rgba(255, 255, 255, 0.25), 0 0 45px rgba(255, 255, 255, 0.15), 0 10px 25px -10px rgba(255, 255, 255, 0.5); transform: translateY(-2px); } .hover-glow-soft { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .hover-glow-soft:hover { box-shadow: 0 0 10px rgba(0, 155, 221, 0.15), 0 0 20px rgba(0, 155, 221, 0.1), 0 4px 10px -4px rgba(0, 136, 204, 0.2); transform: translateY(-2px); } /* Pulsing Glow Animation for special elements */ .glow-pulse { animation: glowPulse 3s ease-in-out infinite; } @keyframes glowPulse { 0%, 100% { box-shadow: 0 0 20px rgba(0, 155, 221, 0.2), 0 0 40px rgba(0, 155, 221, 0.1), 0 10px 30px -10px rgba(0, 136, 204, 0.3); } 50% { box-shadow: 0 0 30px rgba(0, 155, 221, 0.35), 0 0 60px rgba(0, 155, 221, 0.2), 0 0 90px rgba(0, 113, 168, 0.1), 0 10px 40px -10px rgba(0, 136, 204, 0.4); } } /* Transition */ .transition-smooth { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } /* Card Hover Effects */ .card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover:hover { transform: translateY(-4px); box-shadow: 0 10px 30px -10px rgba(0, 136, 204, 0.2); } /* Premium Button Styles with Glow */ .btn-premium { background: var(--gradient-premium); color: white; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 500; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 0 20px rgba(0, 155, 221, 0.15), 0 0 40px rgba(0, 155, 221, 0.1), 0 4px 15px -3px rgba(0, 136, 204, 0.3); } .btn-premium:hover { background: var(--gradient-premium-hover); transform: translateY(-2px); box-shadow: 0 0 30px rgba(0, 155, 221, 0.4), 0 0 60px rgba(0, 155, 221, 0.25), 0 10px 40px -10px rgba(0, 136, 204, 0.5); } /* Glow on Focus for Accessibility */ .btn-premium:focus, .hover-glow:focus { outline: none; box-shadow: 0 0 0 3px rgba(0, 155, 221, 0.3), 0 0 30px rgba(0, 155, 221, 0.4), 0 0 60px rgba(0, 155, 221, 0.25); } /* Inner Glow - Simulates the luminous inner edge of Möbius band */ .inner-glow { box-shadow: inset 0 0 30px rgba(0, 155, 221, 0.15), inset 0 0 15px rgba(0, 155, 221, 0.1), 0 0 25px rgba(0, 155, 221, 0.2); } .inner-glow-strong { box-shadow: inset 0 0 40px rgba(0, 155, 221, 0.25), inset 0 0 20px rgba(0, 155, 221, 0.15), 0 0 30px rgba(0, 155, 221, 0.3); } /* Line Clamp Utilities */ .line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; } .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; } /* Alpine.js Cloak */ [x-cloak] { display: none !important; } /* Prose Styling for Modal Content */ .prose h3 { @apply text-xl font-semibold mt-6 mb-3 text-foreground; } .prose h4 { @apply text-lg font-semibold mt-4 mb-2 text-foreground; } .prose ul { @apply list-disc ml-5 mb-4; } .prose li { @apply mb-2; line-height: 1.3em; } .prose p { @apply mb-4 leading-relaxed text-foreground; } }