@import "tailwindcss"; @theme { /* === Luxury robotics — Black + Gold === */ --color-bg: #050505; --color-bg-2: #0a0a0c; --color-bg-3: #111114; --color-bg-4: #18181c; --color-surface: rgba(20, 18, 14, 0.7); --color-primary: #050505; --color-secondary: #0a0a0c; /* Gold spectrum (matches YS Lootah brand) */ --color-gold: #c4a265; --color-gold-light: #e0c896; --color-gold-rich: #d4af6a; --color-gold-bronze: #8b6f47; --color-gold-deep: #6b5436; /* Accent aliases */ --color-accent: #c4a265; --color-accent-2: #d4af6a; --color-accent-3: #8b6f47; --color-accent-hover: #d4af6a; /* Text */ --color-text-primary: #f5f1e8; --color-text-secondary: #cbc4b3; --color-text-muted: #94908a; --color-text-dim: #6b6862; /* Borders */ --color-border: rgba(196, 162, 101, 0.18); --color-border-strong: rgba(196, 162, 101, 0.36); --color-border-light: rgba(196, 162, 101, 0.08); --color-border-neutral: rgba(245, 241, 232, 0.08); /* Glass */ --color-glass-bg: rgba(20, 18, 14, 0.55); --color-glass-border: rgba(196, 162, 101, 0.22); --color-glass-highlight: rgba(245, 241, 232, 0.05); /* Spacing */ --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 3rem; /* Radius */ --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --radius-2xl: 1.5rem; /* Shadows */ --shadow-glow: 0 0 30px rgba(196, 162, 101, 0.22); --shadow-glow-lg: 0 0 60px rgba(196, 162, 101, 0.28); --shadow-card: 0 14px 50px rgba(0, 0, 0, 0.55); /* Transitions */ --transition-fast: 150ms ease; --transition-base: 200ms ease; --transition-slow: 300ms ease; } html, body { margin: 0; padding: 0; min-height: 100vh; background-color: var(--color-bg); color: var(--color-text-primary); font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; overflow-x: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { background: radial-gradient(1200px 700px at 80% -10%, rgba(196, 162, 101, 0.10), transparent 60%), radial-gradient(900px 500px at -10% 30%, rgba(196, 162, 101, 0.06), transparent 60%), radial-gradient(800px 500px at 50% 110%, rgba(139, 111, 71, 0.10), transparent 60%), linear-gradient(180deg, #030303 0%, #050505 50%, #030303 100%); background-attachment: fixed; } html { scroll-behavior: smooth; } :focus-visible { outline: 2px solid var(--color-gold); outline-offset: 2px; } ::selection { background-color: rgba(196, 162, 101, 0.4); color: #ffffff; } /* === Glassmorphism === */ .glass { background: var(--color-glass-bg); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border: 1px solid var(--color-glass-border); box-shadow: var(--shadow-card); } .glass-panel { background: var(--color-glass-bg); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid var(--color-glass-border); box-shadow: var(--shadow-card); } .glass-panel-highlight { background: linear-gradient(135deg, var(--color-glass-highlight) 0%, transparent 60%); } /* === Typography gradients === */ .text-gradient { background: linear-gradient(135deg, #ffffff 0%, #f5e9c8 40%, #d4af6a 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; } .text-gradient-accent { background: linear-gradient(135deg, #e0c896 0%, #c4a265 50%, #8b6f47 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; } .text-gold { color: var(--color-gold); } /* Metallic gold border */ .metallic-border { position: relative; } .metallic-border::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; background: linear-gradient(135deg, rgba(224, 200, 150, 0.6), rgba(196, 162, 101, 0.25) 45%, rgba(139, 111, 71, 0.0) 100%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; } /* === Hero animated gradient === */ .hero-gradient { position: absolute; inset: 0; background: radial-gradient(ellipse 70% 60% at 60% 40%, rgba(196, 162, 101, 0.20) 0%, transparent 60%), radial-gradient(ellipse 60% 50% at 20% 70%, rgba(139, 111, 71, 0.18) 0%, transparent 55%), radial-gradient(ellipse 80% 70% at 80% 100%, rgba(224, 200, 150, 0.14) 0%, transparent 60%), linear-gradient(180deg, #050505 0%, #070605 50%, #030303 100%); animation: heroShift 16s ease-in-out infinite alternate; } @keyframes heroShift { 0% { background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%; } 100% { background-position: 100% 100%, 80% 0%, 0% 100%, 0% 0%; } } /* Grid overlay */ .grid-overlay { position: absolute; inset: 0; background-image: linear-gradient(rgba(196, 162, 101, 0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(196, 162, 101, 0.04) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse 60% 50% at 50% 40%, #000 30%, transparent 80%); -webkit-mask-image: radial-gradient(ellipse 60% 50% at 50% 40%, #000 30%, transparent 80%); pointer-events: none; } /* === Animations === */ .fade-in-up { animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } } .shimmer { background: linear-gradient(110deg, transparent 35%, rgba(224, 200, 150, 0.12) 50%, transparent 65%); background-size: 200% 100%; animation: shimmer 3.5s linear infinite; } @keyframes shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } } .float-y { animation: floatY 6s ease-in-out infinite; } @keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } } @keyframes spin { to { transform: rotate(360deg); } } @keyframes pulseGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(196, 162, 101, 0.55), 0 0 40px rgba(196, 162, 101, 0.25); } 50% { box-shadow: 0 0 0 12px rgba(196, 162, 101, 0), 0 0 60px rgba(196, 162, 101, 0.45); } } /* Scroll indicator */ .scroll-indicator { width: 1px; height: 40px; position: relative; overflow: hidden; } .scroll-indicator::after { content: ''; position: absolute; top: 0; left: 0; width: 1px; height: 100%; background: linear-gradient(180deg, var(--color-gold), transparent); animation: scrollPulse 2s ease-in-out infinite; } @keyframes scrollPulse { 0%, 100% { transform: translateY(-100%); opacity: 0; } 50% { transform: translateY(0); opacity: 1; } } /* === Scrollbar === */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--color-bg-2); } ::-webkit-scrollbar-thumb { background: rgba(196, 162, 101, 0.25); border-radius: var(--radius-sm); } ::-webkit-scrollbar-thumb:hover { background: rgba(196, 162, 101, 0.55); } /* === Buttons === */ .btn { display: inline-flex; align-items: center; gap: 0.625rem; padding: 0.875rem 1.75rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease; border: 1px solid transparent; white-space: nowrap; } .btn:hover { transform: translateY(-1px); } .btn-primary { background: linear-gradient(135deg, #e0c896 0%, #c4a265 55%, #8b6f47 100%); color: #0b0905; box-shadow: 0 8px 28px rgba(196, 162, 101, 0.35), inset 0 1px 0 rgba(255, 244, 220, 0.4); } .btn-primary:hover { box-shadow: 0 12px 38px rgba(224, 200, 150, 0.55), inset 0 1px 0 rgba(255, 244, 220, 0.5); } .btn-ghost { background: rgba(245, 241, 232, 0.04); color: #f5f1e8; border-color: rgba(196, 162, 101, 0.28); backdrop-filter: blur(12px); } .btn-ghost:hover { background: rgba(196, 162, 101, 0.10); border-color: rgba(196, 162, 101, 0.55); color: #e0c896; } .btn-outline { background: transparent; color: #e0c896; border-color: rgba(196, 162, 101, 0.55); } .btn-outline:hover { background: rgba(196, 162, 101, 0.10); } /* === Layout helpers === */ .container-wide { max-width: 1320px; margin: 0 auto; padding-left: clamp(1rem, 4vw, 2rem); padding-right: clamp(1rem, 4vw, 2rem); } .eyebrow { display: inline-flex; align-items: center; gap: 0.625rem; font-size: 0.72rem; letter-spacing: 0.34em; text-transform: uppercase; color: var(--color-text-muted); font-weight: 600; } .eyebrow::before { content: ''; width: 28px; height: 1px; background: linear-gradient(90deg, transparent, var(--color-gold)); } /* === Cards === */ .card { position: relative; background: rgba(10, 9, 7, 0.72); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--color-border); border-radius: var(--radius-2xl); transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), border-color 0.3s, box-shadow 0.3s; overflow: hidden; } .card:hover { transform: translateY(-6px); border-color: rgba(196, 162, 101, 0.55); box-shadow: 0 20px 60px rgba(0,0,0,0.7), 0 0 40px rgba(196, 162, 101, 0.15); } /* === Configurator (preserve previous theme rules) === */ .snap-section { scroll-snap-align: start; } @media (max-width: 1024px) { .glass-panel-responsive { width: 360px !important; } } @media (max-width: 768px) { .layout-container { flex-direction: column-reverse !important; height: 100dvh !important; } .glass-panel-responsive { order: unset !important; position: relative !important; bottom: auto !important; left: auto !important; right: auto !important; width: 100% !important; height: 55dvh !important; max-height: 55dvh !important; border-right: none !important; border-left: none !important; border-top: 1px solid var(--color-border) !important; box-shadow: 0 -4px 30px rgba(0, 0, 0, 0.06) !important; border-radius: 1rem 1rem 0 0 !important; overflow-y: auto !important; overflow-x: hidden !important; z-index: 50; padding-bottom: env(safe-area-inset-bottom, 0px) !important; } .glass-panel-responsive.panel-expanded { position: fixed !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100dvh !important; max-height: 100dvh !important; border-radius: 0 !important; border-top: none !important; box-shadow: none !important; z-index: 200 !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch !important; padding-bottom: 0 !important; } .canvas-area { height: 45dvh !important; max-height: 45dvh !important; min-height: 180px !important; width: 100% !important; flex: none !important; } #configurator { height: 100dvh !important; } .mobile-handle { display: flex !important; } } @media (max-width: 480px) { .glass-panel-responsive { height: 58dvh !important; max-height: 58dvh !important; border-radius: 0.75rem 0.75rem 0 0 !important; } .canvas-area { height: 42dvh !important; max-height: 42dvh !important; min-height: 160px !important; } .glass-panel-responsive header { padding: 0.75rem 1rem !important; } .glass-panel-responsive > div[role="region"] { padding: 1rem !important; } } @media (max-width: 375px) { .glass-panel-responsive { height: 60dvh !important; max-height: 60dvh !important; } .canvas-area { height: 40dvh !important; max-height: 40dvh !important; min-height: 140px !important; } } @media (max-height: 500px) and (orientation: landscape) { .layout-container { flex-direction: row !important; } .glass-panel-responsive { order: unset !important; position: relative !important; width: 320px !important; min-width: 320px !important; height: 100% !important; max-height: 100% !important; border-radius: 0 !important; border-top: none !important; border-left: 1px solid var(--color-border) !important; overflow-y: auto !important; } .canvas-area { height: 100% !important; max-height: 100% !important; width: auto !important; flex: 1 !important; } .mobile-handle { display: none !important; } } .mobile-handle { display: none; } .panel-expand-btn { display: none !important; } @media (max-width: 768px) { .panel-expand-btn { display: flex !important; } .layout-expanded .canvas-area { height: 0 !important; max-height: 0 !important; min-height: 0 !important; overflow: hidden !important; } } @media (max-width: 480px) { .glass-panel-responsive.panel-expanded { height: 100dvh !important; max-height: 100dvh !important; } } @media (max-width: 375px) { .glass-panel-responsive.panel-expanded { height: 100dvh !important; max-height: 100dvh !important; } } .desktop-configurator { display: block !important; position: relative; z-index: 10; } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; } .hero-gradient { animation: none !important; } } html, body { overflow-x: hidden; max-width: 100vw; }