* {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      line-height: 1.6;
      color: #e5e7eb;
      background: #0a0a0a;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1rem;
      overflow-x: hidden;
    }

    /* Animated background matching landing page */
    .bg-animation {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: -1;
      background: radial-gradient(circle at 20% 80%, #ff6b6b22 0%, transparent 50%),
                  radial-gradient(circle at 80% 20%, #4ecdc422 0%, transparent 50%),
                  radial-gradient(circle at 40% 40%, #45b7d122 0%, transparent 50%);
      animation: bgShift 15s ease-in-out infinite;
    }

    @keyframes bgShift {
      0%, 100% { 
        background: radial-gradient(circle at 20% 80%, #ff6b6b22 0%, transparent 50%),
                    radial-gradient(circle at 80% 20%, #4ecdc422 0%, transparent 50%),
                    radial-gradient(circle at 40% 40%, #45b7d122 0%, transparent 50%);
      }
      33% { 
        background: radial-gradient(circle at 60% 10%, #ff6b6b22 0%, transparent 50%),
                    radial-gradient(circle at 10% 60%, #4ecdc422 0%, transparent 50%),
                    radial-gradient(circle at 90% 90%, #45b7d122 0%, transparent 50%);
      }
      66% { 
        background: radial-gradient(circle at 90% 30%, #ff6b6b22 0%, transparent 50%),
                    radial-gradient(circle at 30% 90%, #4ecdc422 0%, transparent 50%),
                    radial-gradient(circle at 10% 10%, #45b7d122 0%, transparent 50%);
      }
    }

    /* Floating particles */
    .hero-particles {
      position: fixed;
      width: 100%;
      height: 100%;
      overflow: hidden;
      z-index: -1;
    }

    .particle {
      position: absolute;
      width: 4px;
      height: 4px;
      background: #4ecdc4;
      border-radius: 50%;
      animation: float 6s ease-in-out infinite;
      opacity: 0.4;
    }

    .particle:nth-child(1) { left: 10%; animation-delay: 0s; background: #ff6b6b; }
    .particle:nth-child(2) { left: 20%; animation-delay: 0.5s; background: #4ecdc4; }
    .particle:nth-child(3) { left: 30%; animation-delay: 1s; background: #45b7d1; }
    .particle:nth-child(4) { left: 40%; animation-delay: 1.5s; background: #ff6b6b; }
    .particle:nth-child(5) { left: 50%; animation-delay: 2s; background: #4ecdc4; }
    .particle:nth-child(6) { left: 60%; animation-delay: 2.5s; background: #45b7d1; }
    .particle:nth-child(7) { left: 70%; animation-delay: 3s; background: #ff6b6b; }
    .particle:nth-child(8) { left: 80%; animation-delay: 3.5s; background: #4ecdc4; }
    .particle:nth-child(9) { left: 90%; animation-delay: 4s; background: #45b7d1; }

    @keyframes float {
      0%, 100% { transform: translateY(100vh) rotate(0deg); }
      50% { transform: translateY(-100px) rotate(180deg); }
    }

    .register-container {
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(20px);
      padding: 3rem;
      border-radius: 25px;
      box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
      width: 100%;
      max-width: 500px;
      border: 1px solid rgba(255, 255, 255, 0.1);
      position: relative;
      overflow: hidden;
      animation: slideIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    @keyframes slideIn {
      from { 
        opacity: 0; 
        transform: translateY(50px) scale(0.9); 
      }
      to { 
        opacity: 1; 
        transform: translateY(0) scale(1); 
      }
    }

    .register-container::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(135deg, rgba(255, 107, 107, 0.1) 0%, rgba(78, 205, 196, 0.1) 100%);
      opacity: 0.3;
      z-index: -1;
    }

    .register-container::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 2px;
      background: linear-gradient(90deg, #ff6b6b, #4ecdc4, #45b7d1);
      z-index: 1;
    }

    .register-header {
      text-align: center;
      margin-bottom: 2.5rem;
      position: relative;
      z-index: 2;
    }

    .register-header h2 {
      background: linear-gradient(135deg, #ff6b6b 0%, #4ecdc4 50%, #45b7d1 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      font-size: 2.5rem;
      font-weight: 900;
      margin-bottom: 0.5rem;
      animation: glow 2s ease-in-out infinite alternate;
    }

    @keyframes glow {
      from { filter: drop-shadow(0 0 20px rgba(78, 205, 196, 0.3)); }
      to { filter: drop-shadow(0 0 30px rgba(255, 107, 107, 0.4)); }
    }

    .register-header p {
      color: #9ca3af;
      font-size: 1rem;
      font-weight: 300;
    }

    .flash {
      padding: 1rem;
      border-radius: 12px;
      margin-bottom: 1.5rem;
      font-size: 0.9rem;
      backdrop-filter: blur(10px);
      border: 1px solid;
      position: relative;
      overflow: hidden;
    }

    .flash::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 2px;
      background: currentColor;
    }

    .flash.error, .flash.danger {
      background: rgba(239, 68, 68, 0.1);
      color: #fca5a5;
      border-color: rgba(239, 68, 68, 0.3);
    }

    .flash.success {
      background: rgba(16, 185, 129, 0.1);
      color: #6ee7b7;
      border-color: rgba(16, 185, 129, 0.3);
    }

    .flash.info {
      background: rgba(59, 130, 246, 0.1);
      color: #93c5fd;
      border-color: rgba(59, 130, 246, 0.3);
    }

    .flash.warning {
      background: rgba(245, 158, 11, 0.1);
      color: #fcd34d;
      border-color: rgba(245, 158, 11, 0.3);
    }

    form {
      display: flex;
      flex-direction: column;
      gap: 1.5rem;
      position: relative;
      z-index: 2;
    }

    label {
      font-weight: 600;
      color: #f3f4f6;
      font-size: 0.95rem;
      margin-bottom: 0.5rem;
      display: block;
    }

    input[type="text"],
    input[type="email"],
    input[type="password"] {
      width: 100%;
      padding: 1rem;
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 12px;
      font-size: 1rem;
      transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(10px);
      color: #e5e7eb;
      font-family: inherit;
    }

    input[type="text"]::placeholder,
    input[type="email"]::placeholder,
    input[type="password"]::placeholder {
      color: #6b7280;
    }

    input[type="text"]:focus,
    input[type="email"]:focus,
    input[type="password"]:focus {
      outline: none;
      border-color: #4ecdc4;
      box-shadow: 0 0 0 3px rgba(78, 205, 196, 0.2);
      background: rgba(255, 255, 255, 0.08);
      transform: translateY(-2px);
    }

    .role-section {
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(10px);
      padding: 1.5rem;
      border-radius: 15px;
      border: 1px solid rgba(255, 255, 255, 0.1);
      transition: all 0.3s ease;
    }

    .role-section:hover {
      border-color: rgba(78, 205, 196, 0.3);
      background: rgba(255, 255, 255, 0.08);
    }

    .role-section label:first-child {
      display: block;
      margin-bottom: 1rem;
      font-weight: 600;
      color: #f3f4f6;
      font-size: 0.95rem;
    }

    .role-options {
      display: flex;
      gap: 2rem;
    }

    .role-option {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      cursor: pointer;
      padding: 0.5rem;
      border-radius: 8px;
      transition: all 0.3s ease;
    }

    .role-option:hover {
      background: rgba(78, 205, 196, 0.1);
    }

    .role-option input[type="radio"] {
      width: 20px;
      height: 20px;
      margin: 0;
      accent-color: #4ecdc4;
      cursor: pointer;
    }

    .role-option label {
      margin: 0;
      font-weight: 500;
      color: #d1d5db;
      cursor: pointer;
      font-size: 0.9rem;
    }

    button {
      background: linear-gradient(135deg, #ff6b6b 0%, #ff8e53 100%);
      color: white;
      padding: 1.25rem;
      border: none;
      border-radius: 12px;
      font-size: 1.1rem;
      font-weight: 600;
      cursor: pointer;
      transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      margin-top: 0.5rem;
      position: relative;
      overflow: hidden;
      box-shadow: 0 10px 30px rgba(255, 107, 107, 0.3);
    }

    button::before {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
      transition: left 0.5s;
    }

    button:hover::before {
      left: 100%;
    }

    button:hover {
      transform: translateY(-3px) scale(1.02);
      box-shadow: 0 20px 40px rgba(255, 107, 107, 0.4);
    }

    button:active {
      transform: translateY(-1px) scale(0.98);
    }

    .divider {
      display: flex;
      align-items: center;
      margin: 2rem 0;
      color: #6b7280;
      font-size: 0.9rem;
      position: relative;
      z-index: 2;
    }

    .divider::before,
    .divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    }

    .divider::before {
      margin-right: 1rem;
    }

    .divider::after {
      margin-left: 1rem;
    }

    .google-auth-section {
      margin-bottom: 2rem;
      position: relative;
      z-index: 2;
    }

    .google-register-form {
      margin-bottom: 1rem;
    }

    .google-register-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      padding: 1.25rem 1rem;
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(10px);
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 12px;
      color: #e5e7eb;
      font-size: 1rem;
      font-weight: 500;
      cursor: pointer;
      transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
      position: relative;
      overflow: hidden;
    }

    .google-register-btn::before {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
      transition: left 0.5s;
    }

    .google-register-btn:hover::before {
      left: 100%;
    }

    .google-register-btn:hover {
      background: rgba(255, 255, 255, 0.08);
      border-color: #4ecdc4;
      transform: translateY(-2px);
      box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
    }

    .google-register-btn:active {
      transform: translateY(0);
    }

    .google-icon {
      width: 22px;
      height: 22px;
      margin-right: 0.75rem;
      background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%234285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/><path fill="%2334A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="%23FBBC05" d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"/><path fill="%23EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"/></svg>') no-repeat center;
      background-size: contain;
    }

    .auth-note {
      background: rgba(69, 183, 209, 0.1);
      border: 1px solid rgba(69, 183, 209, 0.3);
      border-radius: 12px;
      padding: 1rem;
      margin-bottom: 1.5rem;
      text-align: center;
      backdrop-filter: blur(10px);
    }

    .auth-note p {
      color: #93c5fd;
      font-size: 0.9rem;
      margin: 0;
    }

    .login-link {
      text-align: center;
      margin-top: 2rem;
      padding-top: 2rem;
      border-top: 1px solid rgba(255, 255, 255, 0.1);
      position: relative;
      z-index: 2;
    }

    .login-link p {
      color: #9ca3af;
      font-size: 0.95rem;
    }

    .login-link a {
      color: #4ecdc4;
      text-decoration: none;
      font-weight: 600;
      transition: all 0.3s ease;
      position: relative;
    }

    .login-link a::after {
      content: '';
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 0;
      height: 2px;
      background: linear-gradient(90deg, #4ecdc4, #45b7d1);
      transition: width 0.3s ease;
    }

    .login-link a:hover::after {
      width: 100%;
    }

    .login-link a:hover {
      color: #6ee7b7;
      text-shadow: 0 0 10px rgba(78, 205, 196, 0.5);
    }

    .google-auth-disabled {
      background: rgba(107, 114, 128, 0.1);
      border: 1px solid rgba(107, 114, 128, 0.3);
      border-radius: 12px;
      padding: 1rem;
      margin-bottom: 1.5rem;
      text-align: center;
      backdrop-filter: blur(10px);
    }

    .google-auth-disabled p {
      color: #9ca3af;
      font-size: 0.9rem;
      margin: 0;
    }

    /* Back to home link */
    .back-home {
      position: fixed;
      top: 2rem;
      left: 2rem;
      z-index: 1000;
    }

    .back-home a {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      color: #e5e7eb;
      text-decoration: none;
      font-weight: 600;
      padding: 0.75rem 1.5rem;
      background: rgba(255, 255, 255, 0.1);
      backdrop-filter: blur(10px);
      border-radius: 50px;
      border: 1px solid rgba(255, 255, 255, 0.2);
      transition: all 0.3s ease;
      font-size: 0.9rem;
    }

    .back-home a:hover {
      background: rgba(255, 255, 255, 0.15);
      border-color: #4ecdc4;
      transform: translateX(-5px);
      box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
    }

    @media (max-width: 600px) {
      .register-container {
        padding: 2rem;
        border-radius: 20px;
        margin: 1rem;
      }

      .register-header h2 {
        font-size: 2rem;
      }

      .role-options {
        flex-direction: column;
        gap: 1rem;
      }

      .google-register-btn {
        font-size: 0.95rem;
        padding: 1.1rem 1rem;
      }

      .google-icon {
        width: 20px;
        height: 20px;
        margin-right: 0.5rem;
      }

      .back-home {
        top: 1rem;
        left: 1rem;
      }

      .back-home a {
        padding: 0.5rem 1rem;
        font-size: 0.8rem;
      }
    }

    @media (max-width: 480px) {
      .register-container {
        padding: 1.5rem;
        margin: 0.5rem;
      }
    }