/* ============================================== Theme: Material Dark for Virtual Smartphone (VR Optimized) All sizes increased for VR readability and raycast interaction ============================================== */ /* Base body styling */ body { font-family: LatoLatin; background-color: #121212; color: #FFFFFF; width: 100%; height: 100%; margin: 0; padding: 0; animation: 0.2s cubic-out fade-in; } /* ============== Typography (VR-sized) ============== */ .text-h1 { font-size: 120px; font-weight: 300; } .text-h2 { font-size: 80px; font-weight: 300; } .text-h3 { font-size: 64px; font-weight: 400; } .text-h4 { font-size: 48px; font-weight: 400; } .text-h5 { font-size: 32px; font-weight: 400; } .text-h6 { font-size: 28px; font-weight: 500; } .text-body1 { font-size: 22px; font-weight: 400; } .text-body2 { font-size: 18px; font-weight: 400; } .text-caption { font-size: 16px; font-weight: 400; } .text-overline { font-size: 14px; font-weight: 500; text-transform: uppercase; letter-spacing: 2px; } /* ============== Text Colors ============== */ .text-primary { color: #FFFFFF; } .text-secondary { color: #B3B3B3; } .text-disabled { color: #666666; } .text-accent { color: #BB86FC; } .text-accent-secondary { color: #03DAC6; } .text-error { color: #CF6679; } /* ============== Background Colors ============== */ .bg-primary { background-color: #121212; } .bg-surface { background-color: #1E1E1E; } .bg-surface-variant { background-color: #2D2D2D; } .bg-accent { background-color: #BB86FC; } .bg-accent-secondary { background-color: #03DAC6; } .bg-error { background-color: #CF6679; } /* Hover highlight color - used for interactive element feedback */ .bg-hover { background-color: rgba(255, 255, 255, 0.12); } /* ============== Spacing Utilities (VR-scaled) ============== */ .p-0 { padding: 0; } .p-1 { padding: 6px; } .p-2 { padding: 12px; } .p-3 { padding: 18px; } .p-4 { padding: 24px; } .p-5 { padding: 36px; } .p-6 { padding: 48px; } .p-8 { padding: 72px; } .m-0 { margin: 0; } .m-1 { margin: 6px; } .m-2 { margin: 12px; } .m-3 { margin: 18px; } .m-4 { margin: 24px; } .m-5 { margin: 36px; } .m-6 { margin: 48px; } .m-8 { margin: 72px; } .mt-1 { margin-top: 6px; } .mt-2 { margin-top: 12px; } .mt-3 { margin-top: 18px; } .mt-4 { margin-top: 24px; } .mb-1 { margin-bottom: 6px; } .mb-2 { margin-bottom: 12px; } .mb-3 { margin-bottom: 18px; } .mb-4 { margin-bottom: 24px; } /* ============== Layout Utilities ============== */ .flex { display: flex; } .flex-row { display: flex; flex-direction: row; } .flex-col { display: flex; flex-direction: column; } .flex-center { display: flex; justify-content: center; align-items: center; } .flex-between { display: flex; justify-content: space-between; } .flex-around { display: flex; justify-content: space-around; } .flex-1 { flex: 1; } .w-full { width: 100%; } .h-full { height: 100%; } .text-center { text-align: center; } .text-left { text-align: left; } .text-right { text-align: right; } /* ============== Border Utilities ============== */ .rounded { border-radius: 6px; } .rounded-lg { border-radius: 12px; } .rounded-xl { border-radius: 20px; } .rounded-full { border-radius: 9999px; } /* ============== Screen Structure ============== */ .screen { width: 100%; height: 100%; display: flex; flex-direction: column; background-color: #121212; } .screen-content { flex: 1; overflow: auto; } /* ============== Animations ============== */ @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes slide-in-right { 0% { transform: translateX(100px); opacity: 0; } 100% { transform: translateX(0px); opacity: 1; } } @keyframes slide-in-left { 0% { transform: translateX(-100px); opacity: 0; } 100% { transform: translateX(0px); opacity: 1; } } @keyframes slide-up { 0% { transform: translateY(50px); opacity: 0; } 100% { transform: translateY(0px); opacity: 1; } } @keyframes scale-in { 0% { transform: scale(0.9); opacity: 0; } 100% { transform: scale(1.0); opacity: 1; } } /* Hover highlight animation */ @keyframes hover-pulse { 0% { background-color: rgba(255, 255, 255, 0.0); } 50% { background-color: rgba(255, 255, 255, 0.15); } 100% { background-color: rgba(255, 255, 255, 0.1); } } /* Screen transition classes */ .nav-forward { animation: 0.2s cubic-out slide-in-right; } .nav-back { animation: 0.2s cubic-out slide-in-left; } .nav-home { animation: 0.2s back-out scale-in; } .nav-default { animation: 0.15s cubic-out fade-in; } /* Animation utility classes */ .animate-fade-in { animation: 0.2s cubic-out fade-in; } .animate-slide-right { animation: 0.25s cubic-out slide-in-right; } .animate-slide-left { animation: 0.25s cubic-out slide-in-left; } .animate-slide-up { animation: 0.2s cubic-out slide-up; } .animate-scale-in { animation: 0.2s back-out scale-in; } /* ============== Interactive Base Class ============== */ /* All interactive elements should use cursor: pointer and have hover feedback */ .interactive { cursor: pointer; } .interactive:hover { background-color: rgba(255, 255, 255, 0.1); } .interactive:active { background-color: rgba(255, 255, 255, 0.2); }