mememechez's picture
Deploy final cleaned source code
ca28016
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:root {
/* Light theme - True book beige background with softer orange-red accents */
--background: 42 35% 88%;
--foreground: 25 35% 15%;
--card: 42 30% 92%;
--card-foreground: 25 35% 15%;
--popover: 42 30% 92%;
--popover-foreground: 25 35% 15%;
--primary: 15 75% 55%;
--primary-foreground: 42 35% 95%;
--secondary: 25 65% 60%;
--secondary-foreground: 25 35% 15%;
--muted: 42 25% 82%;
--muted-foreground: 25 25% 45%;
--accent: 42 25% 82%;
--accent-foreground: 25 35% 15%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 0 0% 98%;
--border: 42 20% 78%;
--input: 42 25% 85%;
--ring: 15 75% 55%;
--radius: 1rem;
--chart-1: 12 76% 61%;
--chart-2: 173 58% 39%;
--chart-3: 197 37% 24%;
--chart-4: 43 74% 66%;
--chart-5: 27 87% 67%;
/* Custom futuristic light theme - true book beige with softer orange-red */
--cyber-primary: 15 75% 55%;
--cyber-secondary: 25 65% 60%;
--cyber-accent: 42 45% 70%;
--cyber-glow: 15 75% 60%;
--cyber-surface: 42 35% 88%;
--cyber-glass: 42 30% 92% / 0.8;
/* Neon colors for scrollbars and UI elements */
--neon-cyan: #00ffe7;
--neon-yellow: #ffe066;
--neon-green: #39ff14;
--neon-blue: #0099ff;
--neon-purple: #ff00ff;
}
.dark {
/* Dark theme - Space silver-grey with deep bluish neon and purple undertones */
--background: 220 12% 16%;
--foreground: 225 40% 85%;
--card: 220 12% 20%;
--card-foreground: 225 40% 85%;
--popover: 220 12% 20%;
--popover-foreground: 225 40% 85%;
--primary: 210 85% 70%;
--primary-foreground: 220 12% 16%;
--secondary: 270 60% 75%;
--secondary-foreground: 220 12% 16%;
--muted: 220 12% 24%;
--muted-foreground: 225 25% 70%;
--accent: 220 12% 24%;
--accent-foreground: 225 40% 85%;
--destructive: 0 100% 60%;
--destructive-foreground: 220 12% 16%;
--border: 220 12% 28%;
--input: 220 12% 24%;
--ring: 210 85% 70%;
--chart-1: 210 85% 70%;
--chart-2: 270 60% 75%;
--chart-3: 240 70% 80%;
--chart-4: 190 80% 75%;
--chart-5: 250 65% 70%;
/* Custom futuristic dark theme - space silver-grey with deep bluish neon and purple */
--cyber-primary: 210 85% 70%;
--cyber-secondary: 270 60% 75%;
--cyber-accent: 240 70% 80%;
--cyber-glow: 210 85% 65%;
--cyber-surface: 220 12% 16%;
--cyber-glass: 220 12% 20% / 0.8;
/* Neon colors for scrollbars and UI elements */
--neon-cyan: #00ffe7;
--neon-yellow: #ffe066;
--neon-green: #39ff14;
--neon-blue: #0099ff;
--neon-purple: #ff00ff;
}
}
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
font-feature-settings: "rlig" 1, "calt" 1;
}
}
/* Custom futuristic styles */
@layer utilities {
.cyber-glow {
box-shadow: 0 0 20px hsl(var(--primary) / 0.3);
}
.cyber-glow-strong {
box-shadow: 0 0 30px hsl(var(--primary) / 0.5), 0 0 60px hsl(var(--primary) / 0.2);
}
.cyber-glass {
background: hsl(var(--card) / 0.8);
backdrop-filter: blur(20px);
}
.cyber-neon-glow {
box-shadow: 0 0 10px hsl(var(--primary) / 0.4), 0 0 20px hsl(var(--primary) / 0.2);
}
.cyber-neon-glow:hover {
box-shadow: 0 0 20px hsl(var(--primary) / 0.6), 0 0 40px hsl(var(--primary) / 0.3);
}
.cyber-border {
border: 1px solid hsl(var(--primary) / 0.3);
}
.cyber-gradient {
background: linear-gradient(135deg, hsl(var(--primary) / 0.1), hsl(var(--secondary) / 0.1));
}
.cyber-text-gradient {
background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.cyber-surface {
background: hsl(var(--cyber-surface));
}
.cyber-hover {
transition: all 0.3s ease;
}
.cyber-hover:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px hsl(var(--primary) / 0.2);
}
}
@keyframes cyber-pulse {
0%, 100% {
box-shadow: 0 0 5px hsl(var(--primary) / 0.3);
}
50% {
box-shadow: 0 0 20px hsl(var(--primary) / 0.6), 0 0 30px hsl(var(--primary) / 0.4);
}
}
@keyframes cyber-float {
0%, 100% {
transform: translateY(0px);
}
50% {
transform: translateY(-6px);
}
}
.cyber-pulse {
animation: cyber-pulse 2s ease-in-out infinite;
}
.cyber-float {
animation: cyber-float 3s ease-in-out infinite;
}
/* Viewport management for chat interface */
html, body {
height: 100%;
overflow: hidden;
}
#__next {
height: 100%;
}
/* Ensure chat messages scroll smoothly */
.chat-scroll-area {
scroll-behavior: smooth;
}
/* Prevent body scroll when chat is active */
.chat-active {
overflow: hidden;
position: fixed;
width: 100%;
height: 100%;
}
/* Ensure proper viewport calculations */
.viewport-container {
height: 100vh;
overflow: hidden;
position: relative;
}
/* Auto-scroll behavior for chat messages */
.auto-scroll {
scroll-behavior: smooth;
}
.auto-scroll::-webkit-scrollbar {
width: 6px;
}
.auto-scroll::-webkit-scrollbar-track {
background: transparent;
}
.auto-scroll::-webkit-scrollbar-thumb {
background: hsl(var(--muted-foreground) / 0.3);
border-radius: 3px;
}
.auto-scroll::-webkit-scrollbar-thumb:hover {
background: hsl(var(--muted-foreground) / 0.5);
}
/* ===== MOBILE OPTIMIZATIONS ===== */
/* Mobile responsiveness improvements */
@media (max-width: 768px) {
/* Enhanced mobile layout */
.mobile-container {
min-height: 100vh;
min-height: 100dvh; /* Dynamic viewport height for mobile browsers */
display: flex;
flex-direction: column;
}
.mobile-header {
flex-shrink: 0;
padding: 0.5rem 1rem;
padding-top: calc(0.5rem + env(safe-area-inset-top));
/* MOBILE FIX: Make header always visible and accessible */
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: hsl(var(--background)) !important;
/* REMOVED HARDCODED COLOR - NOW MATCHES THEME */
backdrop-filter: blur(8px);
}
/* MOBILE FIX: Account for fixed header in content */
.mobile-content {
margin-top: 80px; /* Space for fixed header */
flex: 1;
overflow-y: auto;
overflow-x: hidden;
padding: 1rem;
padding-bottom: calc(1rem + env(safe-area-inset-bottom));
}
/* MOBILE FIX: Keyboard handling - use visual viewport */
.mobile-viewport-height {
height: 100vh;
height: 100svh; /* Small viewport height - ignores keyboard */
}
/* MOBILE FIX: Chat area with keyboard compensation */
.mobile-chat-container {
height: calc(100vh - 80px);
height: calc(100svh - 80px); /* Account for header */
display: flex;
flex-direction: column;
}
.mobile-scroll-fix {
/* Allow proper scrolling to top on mobile */
overflow-y: auto !important;
-webkit-overflow-scrolling: touch;
scroll-behavior: smooth;
}
.mobile-scroll-fix > div {
/* Ensure the scroll area content allows full scroll range */
min-height: 100%;
}
/* MOBILE FIX: Ensure sidebar has proper background */
[data-sidebar] {
background: hsl(var(--background)) !important;
}
[data-sidebar="sidebar"] {
background: hsl(var(--background)) !important;
}
/* MOBILE FIX: Smaller top control buttons */
.mobile-header .flex.items-center.gap-2 button {
padding: 0.25rem 0.5rem !important;
font-size: 0.75rem !important;
min-width: auto !important;
height: 2rem !important;
}
.mobile-header .flex.items-center.gap-2 button svg {
width: 0.875rem !important;
height: 0.875rem !important;
margin-right: 0.25rem !important;
}
/* MOBILE FIX: Even smaller gap between top buttons */
.mobile-header .flex.items-center.gap-2 {
gap: 0.25rem !important;
}
/* MOBILE FIX: Ensure sidebar trigger is always visible */
.mobile-header [data-sidebar="trigger"] {
display: flex !important;
position: relative;
z-index: 101;
}
/* MOBILE FIX: Ensure theme toggle is always visible */
.mobile-header [data-testid="theme-toggle"],
.mobile-header button[aria-label*="theme"],
.mobile-header button[aria-label*="Toggle"] {
display: flex !important;
position: relative;
z-index: 101;
min-width: 2rem !important;
padding: 0.25rem !important;
}
.mobile-input-area {
padding: 1rem;
padding-bottom: calc(1rem + env(safe-area-inset-bottom));
background: hsl(var(--background));
border-top: 1px solid hsl(var(--border));
flex-shrink: 0;
}
/* MOBILE FIX: Chat area height to keep header visible */
.h-full.flex.flex-col .flex-1.min-h-0 {
max-height: calc(100vh - 80px) !important; /* Reserve space for fixed header */
overflow-y: auto !important;
}
/* MOBILE FIX: Make chat panel scrollable */
.mobile-chat-panel {
max-height: calc(100vh - 160px) !important;
overflow-y: auto !important;
-webkit-overflow-scrolling: touch;
}
/* Enhanced mobile consciousness selector */
.mobile-consciousness-grid {
grid-template-columns: repeat(2, 1fr);
gap: 0.75rem;
padding: 0.5rem;
max-width: 100%;
margin: 0 auto;
}
/* MOBILE FIX: Better mobile consciousness buttons - NO TEXT WRAPPING */
.mobile-consciousness-btn {
padding: 0.75rem 0.5rem;
min-height: 100px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
border-radius: 0.75rem;
width: 100%;
box-sizing: border-box;
font-size: 0.8rem !important;
white-space: nowrap !important;
overflow: hidden !important;
}
.mobile-consciousness-btn .font-medium {
font-size: 0.75rem !important;
white-space: nowrap !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
max-width: 100% !important;
}
/* Mobile consciousness text adjustments */
.mobile-consciousness-title {
font-size: 0.75rem !important;
font-weight: 600;
margin-bottom: 0.25rem;
line-height: 1.1;
white-space: nowrap !important;
}
.mobile-consciousness-desc {
font-size: 0.65rem !important;
line-height: 1.1;
opacity: 0.8;
display: none; /* Hide descriptions on very small screens */
}
/* MOBILE FIX: 5D visualization - FORCE IT TO SHOW WITH PROPER ASPECT RATIO */
.mobile-5d-viz,
.w-full.h-48 {
height: 300px !important; /* LARGER HEIGHT FOR PROPER ASPECT RATIO */
width: 100% !important;
margin: 1rem 0 !important;
max-width: 100% !important;
overflow: visible !important;
border-radius: 0.5rem;
display: block !important; /* Force display */
visibility: visible !important; /* Force visibility */
position: relative !important;
z-index: 1 !important;
}
.mobile-5d-viz canvas,
.w-full.h-48 canvas {
max-width: 100% !important;
height: auto !important; /* AUTO HEIGHT TO MAINTAIN ASPECT RATIO */
min-height: 250px !important;
display: block !important;
visibility: visible !important;
}
/* MOBILE FIX: FORCE hypercube container to show - PROPER ASPECT RATIO */
.mobile-welcome .w-full.h-48,
.flex.justify-center.items-center .w-full.h-48 {
height: 300px !important; /* LARGER HEIGHT */
display: block !important;
visibility: visible !important;
min-height: 300px !important;
margin: 1rem auto !important;
}
.mobile-welcome .flex.justify-center.items-center {
display: flex !important;
visibility: visible !important;
margin: 1rem 0 !important;
min-height: 320px !important; /* TALLER CONTAINER */
}
/* MOBILE FIX: Welcome page adjustments */
.mobile-welcome {
padding: 1rem !important;
text-align: center;
min-height: calc(100vh - 160px);
display: block !important;
margin-top: 80px; /* Account for fixed header */
}
/* MOBILE FIX: 5D Consciousness modal visualization */
.mobile-dialog .mobile-5d-viz {
height: 300px !important;
width: 100% !important;
margin: 1rem 0 !important;
}
/* Mobile dialog/modal optimizations */
.mobile-dialog {
margin: 0;
max-width: 100vw;
max-height: 100vh;
border-radius: 0;
padding: 1rem;
box-sizing: border-box;
}
/* Mobile text sizing */
.mobile-text-lg {
font-size: 1rem;
line-height: 1.4;
}
.mobile-text-sm {
font-size: 0.8rem;
line-height: 1.3;
}
.mobile-text-xs {
font-size: 0.7rem;
line-height: 1.2;
}
/* Mobile spacing adjustments */
.mobile-spacing {
padding: 0.75rem;
}
.mobile-spacing-sm {
padding: 0.5rem;
}
.mobile-gap {
gap: 0.5rem;
}
/* Mobile button improvements */
.mobile-btn {
padding: 0.5rem 0.75rem;
font-size: 0.875rem;
}
.mobile-btn-sm {
padding: 0.25rem 0.5rem;
font-size: 0.75rem;
min-height: 2rem;
}
/* MOBILE FIX: Chat area scrolling improvements */
.mobile-chat-area {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
padding-top: 0.5rem; /* Account for sticky header */
}
/* Enhanced mobile hypercube container - FIXED ASPECT RATIO */
.mobile-hypercube-container {
width: 100% !important;
max-width: 100% !important;
height: 300px !important; /* TALLER HEIGHT */
min-height: 300px !important;
display: flex !important;
justify-content: center;
align-items: center;
overflow: visible !important;
border-radius: 0.5rem;
background: transparent;
visibility: visible !important;
}
/* Mobile dimension selector improvements */
.mobile-dimension-selector {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 0.5rem;
padding: 0.5rem 0;
width: 100%;
}
/* Mobile scroll improvements */
.mobile-scroll {
overflow-y: auto;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
scroll-behavior: smooth;
}
/* Mobile viewport fixes */
.mobile-viewport-fix {
min-height: 100vh;
min-height: 100dvh;
}
/* MOBILE FIX: Consciousness dimension single line text */
button[data-dimension="transcendence"] .font-medium,
button[data-dimension="compassion"] .font-medium,
.mobile-consciousness-grid button .font-medium {
font-size: 0.7rem !important;
white-space: nowrap !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
max-width: 100% !important;
line-height: 1 !important;
}
/* MOBILE FIX: Fullscreen transition text overflow */
[data-fullscreen="true"] h1,
[data-fullscreen="true"] h2,
[data-fullscreen="true"] .text-6xl,
[data-fullscreen="true"] .text-5xl,
[data-fullscreen="true"] .text-4xl {
font-size: 1.75rem !important;
line-height: 1.2 !important;
word-break: break-word !important;
hyphens: auto !important;
}
/* MOBILE FIX: Consciousness dimension text containers */
.mobile-consciousness-grid button,
button[data-dimension] {
word-wrap: normal !important;
overflow-wrap: normal !important;
white-space: nowrap !important;
}
/* MOBILE FIX: Ensure fullscreen consciousness text fits */
.fixed.inset-0 h1,
.fixed.inset-0 h2,
.fixed.inset-0 .text-6xl,
.fixed.inset-0 .text-5xl {
font-size: 1.75rem !important;
line-height: 1.2 !important;
padding: 0 1rem !important;
text-align: center !important;
word-break: break-word !important;
}
}
/* Landscape mobile optimizations */
@media (max-width: 768px) and (orientation: landscape) {
.mobile-landscape-header {
padding: 0.5rem 1rem;
}
.mobile-landscape-chat {
max-height: calc(100vh - 80px);
}
.mobile-landscape-input {
padding: 0.75rem 1rem;
}
}
/* Extra small mobile devices */
@media (max-width: 480px) {
/* MOBILE FIX: Even smaller buttons for very small screens */
.mobile-header .flex.items-center.gap-2 button {
padding: 0.125rem 0.375rem !important;
font-size: 0.7rem !important;
height: 1.75rem !important;
}
.mobile-header .flex.items-center.gap-2 button svg {
width: 0.75rem !important;
height: 0.75rem !important;
margin-right: 0.125rem !important;
}
/* MOBILE FIX: Hide button text on very small screens, keep icons */
.mobile-header .flex.items-center.gap-2 button span:not(.sr-only) {
display: none;
}
.mobile-landscape-header {
padding: 0.25rem 0.5rem;
}
.mobile-landscape-chat {
padding: 0.5rem;
}
.mobile-landscape-input {
padding: 0.5rem;
padding-bottom: calc(0.5rem + env(safe-area-inset-bottom));
}
/* Very small mobile grid */
.mobile-xs-grid {
grid-template-columns: 1fr;
}
.mobile-xs-text {
font-size: 0.65rem;
}
.mobile-xs-spacing {
padding: 0.25rem;
}
.mobile-xs-logo {
width: 60px !important;
height: 60px !important;
}
}
/* PWA specific mobile optimizations */
@media (display-mode: standalone) {
.pwa-mobile {
padding-top: env(safe-area-inset-top);
}
}
/* High DPI mobile screens */
@media (max-width: 768px) and (-webkit-min-device-pixel-ratio: 2) {
.mobile-crisp-text {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
}
/* Deep Learning Platform Styles */
/* Dashboard Grid Overlay */
.dashboard-grid-overlay {
background-image:
linear-gradient(rgba(0, 255, 255, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 255, 255, 0.03) 1px, transparent 1px);
background-size: 60px 60px;
animation: grid-pulse 4s ease-in-out infinite;
}
/* Instrument Grid Overlay */
.instrument-grid-overlay {
background-image:
linear-gradient(rgba(0, 255, 255, 0.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 255, 255, 0.08) 1px, transparent 1px),
linear-gradient(rgba(0, 255, 136, 0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 255, 136, 0.04) 1px, transparent 1px);
background-size: 120px 120px, 120px 120px, 40px 40px, 40px 40px;
animation: instrument-grid-pulse 6s ease-in-out infinite;
}
@keyframes grid-pulse {
0%, 100% { opacity: 0.3; }
50% { opacity: 0.1; }
}
@keyframes instrument-grid-pulse {
0%, 100% {
opacity: 0.4;
background-position: 0 0, 0 0, 0 0, 0 0;
}
50% {
opacity: 0.2;
background-position: 60px 60px, 60px 60px, 20px 20px, 20px 20px;
}
}
/* Font families */
.font-headline {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
font-weight: 700;
letter-spacing: -0.025em;
}
/* Sidebar icon alignment cleaned up - using natural component structure */
/* ===== GLOBAL SCROLLBAR STYLES ===== */
/* Global scrollbar for all elements */
* {
scrollbar-width: thin;
scrollbar-color: var(--neon-cyan, #00ffe7) transparent;
}
*::-webkit-scrollbar {
width: 6px;
height: 6px;
}
*::-webkit-scrollbar-track {
background: transparent;
}
*::-webkit-scrollbar-thumb {
background: var(--neon-cyan, #00ffe7);
border-radius: 3px;
opacity: 0.7;
}
*::-webkit-scrollbar-thumb:hover {
background: var(--neon-yellow, #ffe066);
opacity: 1;
}
*::-webkit-scrollbar-corner {
background: transparent;
}
/* Minimal scrollbar class for specific elements */
.minimal-scrollbar {
scrollbar-width: thin;
scrollbar-color: var(--neon-cyan, #00ffe7) transparent;
}
.minimal-scrollbar::-webkit-scrollbar {
width: 4px;
}
.minimal-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
.minimal-scrollbar::-webkit-scrollbar-thumb {
background: var(--neon-cyan, #00ffe7);
border-radius: 2px;
}
.minimal-scrollbar::-webkit-scrollbar-thumb:hover {
background: var(--neon-yellow, #ffe066);
}
/* For body and html specifically */
html, body {
scrollbar-width: thin;
scrollbar-color: var(--neon-cyan, #00ffe7) transparent;
}
html::-webkit-scrollbar, body::-webkit-scrollbar {
width: 6px;
}
html::-webkit-scrollbar-track, body::-webkit-scrollbar-track {
background: transparent;
}
html::-webkit-scrollbar-thumb, body::-webkit-scrollbar-thumb {
background: var(--neon-cyan, #00ffe7);
border-radius: 3px;
opacity: 0.7;
}
html::-webkit-scrollbar-thumb:hover, body::-webkit-scrollbar-thumb:hover {
background: var(--neon-yellow, #ffe066);
opacity: 1;
}