@tailwind base; @tailwind components; @tailwind utilities; /* Definition of the design system. All colors, gradients, fonts, etc should be defined here. All colors MUST be HSL. */ @layer base { :root { /* Coder's Club Color System */ --background: 43 55% 96%; /* #FAF7EE - light ivory */ --foreground: 75 15% 19%; /* #31372B - dark gray-green */ --card: 0 0% 100%; --card-foreground: 75 15% 19%; --popover: 0 0% 100%; --popover-foreground: 75 15% 19%; --primary: 335 51% 38%; /* #912F56 - rich burgundy rose */ --primary-foreground: 43 55% 96%; --secondary: 146 50% 36%; /* #2E8B57 - deep sage green */ --secondary-foreground: 43 55% 96%; --muted: 43 30% 90%; --muted-foreground: 75 15% 45%; --accent: 335 51% 38%; --accent-foreground: 43 55% 96%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 43 55% 96%; --border: 150 20% 85%; --input: 150 20% 90%; --ring: 335 51% 38%; --radius: 1rem; /* Custom Design System Tokens */ --gradient-primary: linear-gradient(135deg, hsl(335 51% 38%), hsl(335 51% 48%)); --gradient-secondary: linear-gradient(135deg, hsl(146 50% 36%), hsl(146 50% 46%)); --gradient-hero: linear-gradient(135deg, hsl(335 51% 38% / 0.1), hsl(146 50% 36% / 0.1)); --shadow-soft: 0 4px 24px hsl(335 51% 38% / 0.08); --shadow-glow: 0 0 40px hsl(335 51% 38% / 0.2); --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); --sidebar-background: 0 0% 98%; --sidebar-foreground: 240 5.3% 26.1%; --sidebar-primary: 240 5.9% 10%; --sidebar-primary-foreground: 0 0% 98%; --sidebar-accent: 240 4.8% 95.9%; --sidebar-accent-foreground: 240 5.9% 10%; --sidebar-border: 220 13% 91%; --sidebar-ring: 217.2 91.2% 59.8%; } .dark { --background: 75 15% 12%; --foreground: 43 55% 96%; --card: 75 15% 15%; --card-foreground: 43 55% 96%; --popover: 75 15% 12%; --popover-foreground: 43 55% 96%; --primary: 335 51% 48%; --primary-foreground: 43 55% 96%; --secondary: 146 50% 46%; --secondary-foreground: 43 55% 96%; --muted: 75 15% 20%; --muted-foreground: 43 30% 70%; --accent: 335 51% 48%; --accent-foreground: 43 55% 96%; --destructive: 0 62.8% 50.6%; --destructive-foreground: 43 55% 96%; --border: 75 15% 25%; --input: 75 15% 25%; --ring: 335 51% 48%; --sidebar-background: 75 15% 10%; --sidebar-foreground: 43 55% 96%; --sidebar-primary: 335 51% 48%; --sidebar-primary-foreground: 43 55% 96%; --sidebar-accent: 75 15% 18%; --sidebar-accent-foreground: 43 55% 96%; --sidebar-border: 75 15% 25%; --sidebar-ring: 335 51% 48%; } } @layer base { * { @apply border-border; } html { scroll-behavior: smooth; scroll-padding-top: 60px; } @media (min-width: 640px) { html { scroll-padding-top: 80px; } } body { @apply bg-background text-foreground font-['Poppins',sans-serif] antialiased; /* Ensure text is visible on dot background */ color: white !important; overflow-x: hidden; min-height: 100vh; font-size: 16px; line-height: 1.6; } /* Enhanced smooth scrolling for webkit browsers */ @supports (scroll-behavior: smooth) { html { scroll-behavior: smooth; } } h1, h2, h3, h4, h5, h6 { @apply font-['Space_Grotesk',sans-serif]; /* Enhanced headings visibility with better contrast */ color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8), 0 2px 4px rgba(0, 0, 0, 0.6), 0 4px 8px rgba(0, 0, 0, 0.3); font-weight: 600; } /* Ensure all text elements are visible with better contrast */ p, span, div, a, li, td, th, label { color: rgba(255, 255, 255, 0.95) !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8), 0 2px 4px rgba(0, 0, 0, 0.4); } /* Button styles */ button { text-shadow: none !important; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; transition: all 0.2s ease-in-out; } /* Ensure consistent icon sizing and alignment */ button svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; } /* Specific button size adjustments */ .btn-with-icon { padding-right: 1.25rem !important; padding-left: 1.25rem !important; } /* Enhanced visibility for links and interactive elements */ a { color: rgba(255, 255, 255, 0.9) !important; transition: color 0.3s ease; } a:hover { color: white !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.9), 0 2px 6px rgba(0, 0, 0, 0.5); } } @layer utilities { .animate-fade-up { animation: fade-up 0.8s ease-out forwards; } .animate-scale-in { animation: scale-in 0.6s ease-out forwards; } .glass-card { @apply backdrop-blur-lg; border: 1px solid rgba(192, 132, 252, 0.3) !important; /* Light purple border */ transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1); background: transparent !important; box-shadow: none !important; } .glass-card:hover { border-color: rgba(192, 132, 252, 0.6) !important; /* Slightly more visible on hover */ @apply backdrop-blur-xl; background: transparent !important; box-shadow: none !important; } .hover-lift { @apply transition-all duration-300; transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1); } .hover-lift:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); } /* Section transitions */ .section-transition { transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1); } /* Enhanced parallax containers */ .parallax-container { will-change: transform; transform-style: preserve-3d; } /* Performance optimizations */ .will-change-transform { will-change: transform; } .will-change-opacity { will-change: opacity; } .transform-gpu { transform: translateZ(0); } /* Intersection observer optimization */ .animate-on-scroll { opacity: 0; transform: translateY(60px); transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1); } .animate-on-scroll.visible { opacity: 1; transform: translateY(0); } /* Responsive animation controls */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } .animate-fade-up, .animate-scale-in { animation: none !important; opacity: 1 !important; transform: none !important; } .hover-lift:hover { transform: none !important; } .glass-card:hover { transform: none !important; } } /* Mobile optimizations */ @media (max-width: 768px) { .hover-lift:hover { transform: translateY(-4px) scale(1.01); } .glass-card:hover { transform: none; } /* Reduce animation complexity on mobile */ [data-animate] { animation-duration: 0.3s !important; } /* Optimize parallax for mobile */ .parallax-container { will-change: auto; transform: none !important; } /* Enhanced text visibility on mobile */ h1, h2, h3, h4, h5, h6 { font-size: clamp(1.25rem, 4vw, 2.5rem); line-height: 1.3; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.9), 0 4px 8px rgba(0, 0, 0, 0.6); } p, span, div, a, li, td, th, label { font-size: clamp(0.875rem, 3vw, 1rem); line-height: 1.6; } /* Mobile-specific glass effects */ .glass-card { @apply backdrop-blur-md border border-white/15; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.05); } /* Improve touch targets */ button, a, [role="button"], .touch-target { min-height: 44px; min-width: 44px; padding: 0.75rem 1rem; cursor: pointer; } /* Enhanced mobile spacing */ .container { padding-left: 1rem; padding-right: 1rem; } } /* Tablet optimizations */ @media (min-width: 769px) and (max-width: 1024px) { h1, h2, h3, h4, h5, h6 { font-size: clamp(1.75rem, 4vw, 2.5rem); } .glass-card { @apply backdrop-blur-lg border border-white/10; } } /* Desktop enhancements */ @media (min-width: 1025px) { .glass-card { @apply backdrop-blur-xl border border-white/10; } /* Enhanced hover effects for desktop */ .hover-lift:hover { transform: translateY(-12px) scale(1.03); box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.1); } } /* Dot background specific styles */ .dot-background-text { @apply text-white drop-shadow-lg; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 2px 6px rgba(0, 0, 0, 0.3); } .dot-background-heading { @apply text-white drop-shadow-xl; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.9), 0 4px 8px rgba(0, 0, 0, 0.4); } .glass-section { @apply backdrop-blur-sm border-white/5; backdrop-filter: blur(8px); } .glass-section-alt { @apply backdrop-blur-sm border-white/5; backdrop-filter: blur(8px); } .glass-navbar { @apply backdrop-blur-md border-white/10; backdrop-filter: blur(12px); } /* Enhanced responsive typography */ .responsive-text-xs { font-size: clamp(0.75rem, 2.5vw, 0.875rem); } .responsive-text-sm { font-size: clamp(0.875rem, 3vw, 1rem); } .responsive-text-base { font-size: clamp(1rem, 3.5vw, 1.125rem); } .responsive-text-lg { font-size: clamp(1.125rem, 4vw, 1.25rem); } .responsive-text-xl { font-size: clamp(1.25rem, 4.5vw, 1.5rem); } .responsive-text-2xl { font-size: clamp(1.5rem, 5vw, 2rem); } .responsive-text-3xl { font-size: clamp(1.875rem, 6vw, 2.5rem); } .responsive-text-4xl { font-size: clamp(2.25rem, 7vw, 3rem); } .responsive-text-5xl { font-size: clamp(3rem, 8vw, 4rem); } /* Responsive spacing utilities */ .responsive-px { padding-left: clamp(1rem, 4vw, 2rem); padding-right: clamp(1rem, 4vw, 2rem); } .responsive-py { padding-top: clamp(2rem, 6vw, 4rem); padding-bottom: clamp(2rem, 6vw, 4rem); } .responsive-mx { margin-left: clamp(1rem, 4vw, 2rem); margin-right: clamp(1rem, 4vw, 2rem); } .responsive-my { margin-top: clamp(2rem, 6vw, 4rem); margin-bottom: clamp(2rem, 6vw, 4rem); } /* Improved container queries */ .container { width: 100%; margin-left: auto; margin-right: auto; padding-left: clamp(1rem, 4vw, 2rem); padding-right: clamp(1rem, 4vw, 2rem); } /* Enhanced accessibility for low contrast situations */ @media (prefers-contrast: high) { h1, h2, h3, h4, h5, h6 { text-shadow: 0 0 0 rgba(0, 0, 0, 1), 0 2px 4px rgba(0, 0, 0, 1), 0 4px 8px rgba(0, 0, 0, 0.8); font-weight: 700; } p, span, div, a, li, td, th, label { text-shadow: 0 0 0 rgba(0, 0, 0, 1), 0 1px 2px rgba(0, 0, 0, 1); font-weight: 500; } .glass-card { @apply backdrop-blur-xl border-2 border-white/30; } } } @keyframes fade-up { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes scale-in { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } @keyframes slideInUp { from { opacity: 0; transform: translateY(100px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInLeft { from { opacity: 0; transform: translateX(-60px); } to { opacity: 1; transform: translateX(0); } } @keyframes fadeInRight { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: translateX(0); } } @keyframes pulse-glow { 0%, 100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } } /* Enhanced loading states */ @keyframes shimmer { 0% { background-position: -200px 0; } 100% { background-position: calc(200px + 100%) 0; } } .shimmer { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); background-size: 200px 100%; animation: shimmer 1.5s infinite; } /* Enhanced 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; } /* Scroll snap utilities for better mobile experience */ .scroll-snap-x { scroll-snap-type: x mandatory; } .scroll-snap-y { scroll-snap-type: y mandatory; } .snap-start { scroll-snap-align: start; } .snap-center { scroll-snap-align: center; } .snap-end { scroll-snap-align: end; } /* Enhanced focus states for accessibility */ .focus-ring { @apply focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-background; } /* Better touch targets for mobile */ .touch-target { min-height: 44px; min-width: 44px; } /* Loading states */ .loading-skeleton { background: linear-gradient(90deg, rgba(255, 255, 255, 0.1) 25%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.1) 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; } /* Enhanced interaction states */ .interactive { @apply transition-all duration-200 ease-out; @apply hover:scale-105 active:scale-95; @apply focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2; } /* Better scrollbar styling */ .custom-scrollbar::-webkit-scrollbar { width: 6px; height: 6px; } .custom-scrollbar::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.1); border-radius: 3px; } .custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.3); border-radius: 3px; } .custom-scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.5); } /* Print styles */ @media print { .dot-background-text, .dot-background-heading { color: black !important; text-shadow: none !important; } .glass-card, .glass-section, .glass-section-alt, .glass-navbar { background: white !important; backdrop-filter: none !important; border: 1px solid #ccc !important; } .hover-lift:hover { transform: none !important; } } /* Dark mode specific enhancements */ @media (prefers-color-scheme: dark) { :root { color-scheme: dark; } } /* Final performance optimizations */ .will-change-transform { will-change: transform; } .will-change-opacity { will-change: opacity; } .will-change-auto { will-change: auto; } /* Ensure proper stacking context */ .stack-context { transform: translateZ(0); isolation: isolate; /* Glass Overlay System - Enhanced Layering */ .glass-overlay { position: relative; will-change: transform, opacity; transform: translateZ(0); isolation: isolate; /* Ensure proper stacking context */ z-index: 5; } /* Enhanced glass morphism effects with proper layering */ .glass-overlay::before { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient( 135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 50%, rgba(255, 255, 255, 0.02) 100% ); z-index: -1; opacity: 0.8; } /* Glass overlay variants - Mobile First */ .glass-overlay--light { backdrop-filter: blur(4px) saturate(105%); -webkit-backdrop-filter: blur(4px) saturate(105%); background: rgba(0, 0, 0, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); } .glass-overlay--medium { backdrop-filter: blur(6px) saturate(110%); -webkit-backdrop-filter: blur(6px) saturate(110%); background: rgba(0, 0, 0, 0.08); border: 1px solid rgba(255, 255, 255, 0.08); } .glass-overlay--heavy { backdrop-filter: blur(8px) saturate(115%); -webkit-backdrop-filter: blur(8px) saturate(115%); background: rgba(0, 0, 0, 0.15); border: 1px solid rgba(255, 255, 255, 0.1); } /* Tablet glass effects */ @media (min-width: 768px) { .glass-overlay--light { backdrop-filter: blur(6px) saturate(108%); -webkit-backdrop-filter: blur(6px) saturate(108%); background: rgba(0, 0, 0, 0.04); border: 1px solid rgba(255, 255, 255, 0.07); } .glass-overlay--medium { backdrop-filter: blur(10px) saturate(115%); -webkit-backdrop-filter: blur(10px) saturate(115%); background: rgba(0, 0, 0, 0.12); border: 1px solid rgba(255, 255, 255, 0.1); } .glass-overlay--heavy { backdrop-filter: blur(14px) saturate(125%); -webkit-backdrop-filter: blur(14px) saturate(125%); background: rgba(0, 0, 0, 0.2); border: 1px solid rgba(255, 255, 255, 0.13); } } /* Desktop glass effects */ @media (min-width: 1024px) { .glass-overlay--light { backdrop-filter: blur(8px) saturate(110%); -webkit-backdrop-filter: blur(8px) saturate(110%); background: rgba(0, 0, 0, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); } .glass-overlay--medium { backdrop-filter: blur(12px) saturate(120%); -webkit-backdrop-filter: blur(12px) saturate(120%); background: rgba(0, 0, 0, 0.15); border: 1px solid rgba(255, 255, 255, 0.12); } .glass-overlay--heavy { backdrop-filter: blur(16px) saturate(130%); -webkit-backdrop-filter: blur(16px) saturate(130%); background: rgba(0, 0, 0, 0.25); border: 1px solid rgba(255, 255, 255, 0.15); } } /* Layering system classes */ .layer-background { z-index: -10; } .layer-glass { z-index: 5; } .layer-content { z-index: 10; } .layer-overlay { z-index: 15; } .layer-modal { z-index: 20; } /* Enhanced hover effects for glass overlays */ .glass-overlay:hover { transform: translateY(-2px); transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1); } .glass-overlay:hover::before { opacity: 1; background: linear-gradient( 135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.08) 50%, rgba(255, 255, 255, 0.03) 100% ); } /* Responsive glass overlay adjustments */ @media (max-width: 767px) { .glass-overlay { backdrop-filter: blur(4px) saturate(105%); -webkit-backdrop-filter: blur(4px) saturate(105%); } .glass-overlay:hover { transform: none; } /* Disable complex animations on touch devices */ .glass-overlay { transition: opacity 0.3s ease; } /* Simplified hover states for touch devices */ .glass-overlay:active { opacity: 0.9; transform: scale(0.98); } } /* Enhanced glass effects for high-resolution screens */ @media (min-width: 1440px) and (min-resolution: 2dppx) { .glass-overlay--light { backdrop-filter: blur(10px) saturate(112%); -webkit-backdrop-filter: blur(10px) saturate(112%); } .glass-overlay--medium { backdrop-filter: blur(15px) saturate(125%); -webkit-backdrop-filter: blur(15px) saturate(125%); } .glass-overlay--heavy { backdrop-filter: blur(20px) saturate(135%); -webkit-backdrop-filter: blur(20px) saturate(135%); } } /* Performance optimizations for glass overlays */ @media (prefers-reduced-motion: reduce) { .glass-overlay { transition: none; } .glass-overlay:hover { transform: none; } } /* Enhanced focus states for glass overlays */ .glass-overlay:focus-within { outline: 2px solid rgba(255, 255, 255, 0.3); outline-offset: 2px; } /* Glass overlay content spacing */ .glass-overlay .curved-section__content { padding: 1.5rem; } @media (min-width: 768px) { .glass-overlay .curved-section__content { padding: 2rem; } } @media (min-width: 1024px) { .glass-overlay .curved-section__content { padding: 3rem; } } /* Ensure proper text visibility within glass overlays */ .glass-overlay h1, .glass-overlay h2, .glass-overlay h3, .glass-overlay h4, .glass-overlay h5, .glass-overlay h6 { color: white !important; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 2px 6px rgba(0, 0, 0, 0.6), 0 4px 12px rgba(0, 0, 0, 0.4); } .glass-overlay p, .glass-overlay span, .glass-overlay div, .glass-overlay a, .glass-overlay li { color: rgba(255, 255, 255, 0.95) !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8), 0 2px 4px rgba(0, 0, 0, 0.5); } /* Glass overlay animation entrance */ @keyframes glass-overlay-entrance { from { opacity: 0; transform: translateY(20px) scale(0.98); backdrop-filter: blur(0px); } to { opacity: 1; transform: translateY(0) scale(1); backdrop-filter: blur(12px); } } .glass-overlay { animation: glass-overlay-entrance 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards; } /* Staggered animation for multiple glass overlays */ .glass-overlay:nth-child(1) { animation-delay: 0s; } .glass-overlay:nth-child(2) { animation-delay: 0.1s; } .glass-overlay:nth-child(3) { animation-delay: 0.2s; } .glass-overlay:nth-child(4) { animation-delay: 0.3s; } .glass-overlay:nth-child(5) { animation-delay: 0.4s; } .glass-overlay:nth-child(6) { animation-delay: 0.5s; } .glass-overlay:nth-child(7) { animation-delay: 0.6s; } .glass-overlay:nth-child(8) { animation-delay: 0.7s; } .glass-overlay:nth-child(9) { animation-delay: 0.8s; } .glass-overlay:nth-child(10) { animation-delay: 0.9s; } .glass-overlay:nth-child(11) { animation-delay: 1.0s; } .glass-overlay:nth-child(12) { animation-delay: 1.1s; } /* iPhone-style Navbar Enhancements */ .iPhone-nav { /* Override default notch nav styles for iPhone aesthetic */ } .iPhone-nav .relative { background: linear-gradient(135deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.4)) !important; border: 1px solid rgba(255, 255, 255, 0.15) !important; border-radius: 9999px !important; backdrop-filter: blur(20px) saturate(180%) !important; -webkit-backdrop-filter: blur(20px) saturate(180%) !important; } /* iPhone Dynamic Island effect */ @keyframes island-glow { 0%, 100% { box-shadow: 0 0 20px rgba(255, 255, 255, 0.1), 0 8px 32px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1); } 50% { box-shadow: 0 0 30px rgba(255, 255, 255, 0.15), 0 12px 40px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.15); } } .iPhone-nav .relative { animation: island-glow 3s ease-in-out infinite; } /* Enhanced navbar transitions */ nav[class*="fixed"] { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); } /* Smooth scrolling enhancements for navbar */ @supports (scroll-behavior: smooth) { html { scroll-padding-top: 100px; /* Account for new navbar height */ } } /* Mobile navbar optimizations */ @media (max-width: 767px) { .iPhone-nav { display: none; /* Hide on mobile since we have the mobile menu */ } /* Enhance mobile navbar backdrop */ nav[class*="fixed"] > div { backdrop-filter: blur(12px) saturate(140%) !important; -webkit-backdrop-filter: blur(12px) saturate(140%) !important; height: 64px !important; } /* Mobile-specific adjustments */ body { font-size: 14px; } /* Ensure proper spacing on very small screens */ @media (max-width: 375px) { .container { padding-left: 0.75rem; padding-right: 0.75rem; } } } /* Small tablet optimizations */ @media (min-width: 768px) and (max-width: 1023px) { nav[class*="fixed"] > div { height: 72px !important; } } /* Large tablet optimizations */ @media (min-width: 1024px) and (max-width: 1279px) { .iPhone-nav .relative { padding: 0.5rem 1rem !important; } nav[class*="fixed"] > div { height: 76px !important; } } /* Desktop enhancements */ @media (min-width: 1025px) { .iPhone-nav .relative { backdrop-filter: blur(25px) saturate(200%) !important; -webkit-backdrop-filter: blur(25px) saturate(200%) !important; } } /* Focus states for iPhone-style navigation */ .iPhone-nav button:focus-visible { outline: 2px solid rgba(255, 255, 255, 0.3); outline-offset: 2px; border-radius: 9999px; } /* Active state enhancements */ .iPhone-nav button[aria-pressed="true"] { background: linear-gradient(135deg, rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0.15)) !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important; } }