* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; background: linear-gradient(135deg, #0a0e27 0%, #1a1f3a 100%); min-height: 100vh; max-height: 100vh; overflow: hidden; margin: 0; padding: 0; } #root { min-height: 100vh; max-height: 100vh; overflow: hidden; display: flex; flex-direction: column; } /* Новогодние снежинки */ @keyframes snow { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 100% { transform: translateY(100vh) rotate(360deg); opacity: 0; } } .snowflake { position: fixed; top: -10px; color: white; font-size: 1em; font-family: Arial; text-shadow: 0 0 5px rgba(255, 255, 255, 0.8); animation: snow 10s linear infinite; pointer-events: none; z-index: 1; } /* Page styles */ .home-page, .create-room-page, .join-room-page, .room-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem; } .home-container, .create-room-container, .join-room-container, .room-container { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 2px solid rgba(255, 215, 0, 0.3); border-radius: 20px; padding: 2rem; max-width: 600px; width: 100%; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); } .home-container h1, .create-room-container h1, .join-room-container h1, .room-container h1 { color: gold; text-align: center; margin-bottom: 1.5rem; font-size: 2rem; text-shadow: 0 0 10px rgba(255, 215, 0, 0.5); } .welcome-text { text-align: center; color: #fff; margin-bottom: 2rem; font-size: 1.2rem; } .menu-buttons { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 2rem; } .menu-button { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 12px; padding: 1rem 2rem; color: #fff; font-size: 1rem; font-weight: bold; cursor: pointer; transition: all 0.3s ease; text-align: center; } .menu-button:hover { background: rgba(255, 255, 255, 0.2); border-color: rgba(255, 215, 0, 0.6); transform: translateY(-2px); box-shadow: 0 4px 15px rgba(255, 215, 0, 0.3); } .menu-button:active { transform: translateY(0); } .menu-button.primary { background: linear-gradient(135deg, #ffd700, #ffed4e); color: #1a1f3a; border-color: gold; } .menu-button.primary:hover { background: linear-gradient(135deg, #ffed4e, #ffd700); box-shadow: 0 4px 20px rgba(255, 215, 0, 0.6); } .user-stats { text-align: center; color: #fff; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.2); } .user-stats p { margin: 0.5rem 0; font-size: 1rem; } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; color: #fff; margin-bottom: 0.5rem; font-weight: 500; } .form-group input, .form-group select { width: 100%; padding: 0.75rem; border: 2px solid rgba(255, 215, 0, 0.3); border-radius: 8px; background: rgba(255, 255, 255, 0.1); color: #fff; font-size: 1rem; outline: none; transition: all 0.3s ease; } .form-group input::placeholder { color: rgba(255, 255, 255, 0.5); } .form-group input:focus, .form-group select:focus { border-color: gold; background: rgba(255, 255, 255, 0.15); box-shadow: 0 0 10px rgba(255, 215, 0, 0.3); } .form-group.checkbox { display: flex; align-items: center; gap: 0.5rem; } .form-group.checkbox label { display: flex; align-items: center; gap: 0.5rem; margin: 0; cursor: pointer; } .form-group.checkbox input[type="checkbox"] { width: auto; cursor: pointer; } .button-group { display: flex; gap: 1rem; justify-content: center; margin-top: 2rem; } .button-group button { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 12px; padding: 0.75rem 1.5rem; color: #fff; font-size: 1rem; font-weight: bold; cursor: pointer; transition: all 0.3s ease; } .button-group button:hover:not(:disabled) { background: rgba(255, 255, 255, 0.2); border-color: rgba(255, 215, 0, 0.6); transform: translateY(-2px); box-shadow: 0 4px 15px rgba(255, 215, 0, 0.3); } .button-group button:active:not(:disabled) { transform: translateY(0); } .button-group button:disabled { opacity: 0.5; cursor: not-allowed; } .button-group button.primary { background: linear-gradient(135deg, #ffd700, #ffed4e); color: #1a1f3a; border-color: gold; } .button-group button.primary:hover:not(:disabled) { background: linear-gradient(135deg, #ffed4e, #ffd700); box-shadow: 0 4px 20px rgba(255, 215, 0, 0.6); } .loading, .error-page { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; color: #fff; text-align: center; } .error-page h1 { color: gold; margin-bottom: 1rem; font-size: 2rem; text-shadow: 0 0 10px rgba(255, 215, 0, 0.5); } .error-page p { margin-bottom: 2rem; font-size: 1.2rem; } .error-page button { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 12px; padding: 0.75rem 1.5rem; color: #fff; font-size: 1rem; font-weight: bold; cursor: pointer; transition: all 0.3s ease; } .error-page button:hover { background: rgba(255, 255, 255, 0.2); border-color: rgba(255, 215, 0, 0.6); transform: translateY(-2px); box-shadow: 0 4px 15px rgba(255, 215, 0, 0.3); } .room-info { background: rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 1rem; margin-bottom: 1.5rem; } .room-info p { color: #fff; margin: 0.5rem 0; font-size: 1rem; } .qr-code { text-align: center; margin-bottom: 2rem; } .qr-code h3 { color: gold; margin-bottom: 1rem; font-size: 1.2rem; text-shadow: 0 0 10px rgba(255, 215, 0, 0.5); } .qr-code img { max-width: 250px; width: 100%; border: 2px solid rgba(255, 215, 0, 0.3); border-radius: 12px; padding: 1rem; background: #fff; } .participants-list { margin-bottom: 2rem; } .participants-list h3 { color: gold; margin-bottom: 1rem; font-size: 1.2rem; text-shadow: 0 0 10px rgba(255, 215, 0, 0.5); } .participants-list ul { list-style: none; padding: 0; } .participants-list li { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border: 2px solid rgba(255, 255, 255, 0.2); border-radius: 8px; padding: 0.75rem 1rem; margin-bottom: 0.5rem; color: #fff; font-size: 1rem; }